summaryrefslogtreecommitdiffstats
path: root/chromium/ppapi
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-08 14:30:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-12 13:49:54 +0200
commitab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch)
tree498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/ppapi
parent4ce69f7403811819800e7c5ae1318b2647e778d1 (diff)
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/ppapi')
-rw-r--r--chromium/ppapi/BUILD.gn719
-rw-r--r--chromium/ppapi/PRESUBMIT.py45
-rw-r--r--chromium/ppapi/api/dev/pp_optional_structs_dev.idl14
-rw-r--r--chromium/ppapi/api/dev/ppb_alarms_dev.idl181
-rw-r--r--chromium/ppapi/api/dev/ppb_audio_input_dev.idl28
-rw-r--r--chromium/ppapi/api/dev/ppb_file_io_dev.idl116
-rw-r--r--chromium/ppapi/api/dev/ppb_find_dev.idl35
-rw-r--r--chromium/ppapi/api/dev/ppb_graphics_2d_dev.idl96
-rw-r--r--chromium/ppapi/api/dev/ppb_keyboard_input_event_dev.idl60
-rw-r--r--chromium/ppapi/api/dev/ppb_resource_array_dev.idl68
-rw-r--r--chromium/ppapi/api/dev/ppb_var_resource_dev.idl38
-rw-r--r--chromium/ppapi/api/dev/ppb_video_capture_dev.idl20
-rw-r--r--chromium/ppapi/api/extensions/dev/ppb_ext_socket_dev.idl542
-rw-r--r--chromium/ppapi/api/pp_codecs.idl57
-rw-r--r--chromium/ppapi/api/pp_errors.idl12
-rw-r--r--chromium/ppapi/api/pp_macros.idl16
-rw-r--r--chromium/ppapi/api/pp_rect.idl39
-rw-r--r--chromium/ppapi/api/pp_size.idl26
-rw-r--r--chromium/ppapi/api/pp_var.idl31
-rw-r--r--chromium/ppapi/api/ppb.idl2
-rw-r--r--chromium/ppapi/api/ppb_audio.idl2
-rw-r--r--chromium/ppapi/api/ppb_audio_buffer.idl140
-rw-r--r--chromium/ppapi/api/ppb_audio_config.idl2
-rw-r--r--chromium/ppapi/api/ppb_compositor.idl131
-rw-r--r--chromium/ppapi/api/ppb_compositor_layer.idl222
-rw-r--r--chromium/ppapi/api/ppb_file_mapping.idl131
-rw-r--r--chromium/ppapi/api/ppb_file_ref.idl43
-rw-r--r--chromium/ppapi/api/ppb_input_event.idl69
-rw-r--r--chromium/ppapi/api/ppb_media_stream_audio_track.idl201
-rw-r--r--chromium/ppapi/api/ppb_media_stream_video_track.idl247
-rw-r--r--chromium/ppapi/api/ppb_message_loop.idl4
-rw-r--r--chromium/ppapi/api/ppb_messaging.idl62
-rw-r--r--chromium/ppapi/api/ppb_var.idl45
-rw-r--r--chromium/ppapi/api/ppb_video_decoder.idl216
-rw-r--r--chromium/ppapi/api/ppb_video_frame.idl123
-rw-r--r--chromium/ppapi/api/ppb_view.idl26
-rw-r--r--chromium/ppapi/api/ppp_input_event.idl8
-rw-r--r--chromium/ppapi/api/ppp_message_handler.idl70
-rw-r--r--chromium/ppapi/api/private/finish_writing_these/ppb_pdf.idl12
-rw-r--r--chromium/ppapi/api/private/pp_content_decryptor.idl41
-rw-r--r--chromium/ppapi/api/private/ppb_content_decryptor_private.idl83
-rw-r--r--chromium/ppapi/api/private/ppb_display_color_profile_private.idl97
-rw-r--r--chromium/ppapi/api/private/ppb_find_private.idl66
-rw-r--r--chromium/ppapi/api/private/ppb_flash_clipboard.idl14
-rw-r--r--chromium/ppapi/api/private/ppb_flash_drm.idl8
-rw-r--r--chromium/ppapi/api/private/ppb_input_event_private.idl54
-rw-r--r--chromium/ppapi/api/private/ppb_nacl_private.idl385
-rw-r--r--chromium/ppapi/api/private/ppb_uma_private.idl27
-rw-r--r--chromium/ppapi/api/private/ppp_content_decryptor_private.idl66
-rw-r--r--chromium/ppapi/api/private/ppp_find_private.idl35
-rw-r--r--chromium/ppapi/c/dev/pp_optional_structs_dev.h34
-rw-r--r--chromium/ppapi/c/dev/ppb_alarms_dev.h210
-rw-r--r--chromium/ppapi/c/dev/ppb_audio_input_dev.h25
-rw-r--r--chromium/ppapi/c/dev/ppb_file_io_dev.h138
-rw-r--r--chromium/ppapi/c/dev/ppb_find_dev.h51
-rw-r--r--chromium/ppapi/c/dev/ppb_graphics_2d_dev.h122
-rw-r--r--chromium/ppapi/c/dev/ppb_keyboard_input_event_dev.h84
-rw-r--r--chromium/ppapi/c/dev/ppb_opengles2ext_dev.h20
-rw-r--r--chromium/ppapi/c/dev/ppb_resource_array_dev.h85
-rw-r--r--chromium/ppapi/c/dev/ppb_var_resource_dev.h60
-rw-r--r--chromium/ppapi/c/dev/ppb_video_capture_dev.h20
-rw-r--r--chromium/ppapi/c/dev/ppp_find_dev.h35
-rw-r--r--chromium/ppapi/c/extensions/dev/ppb_ext_socket_dev.h603
-rw-r--r--chromium/ppapi/c/pp_codecs.h83
-rw-r--r--chromium/ppapi/c/pp_errors.h13
-rw-r--r--chromium/ppapi/c/pp_macros.h20
-rw-r--r--chromium/ppapi/c/pp_rect.h40
-rw-r--r--chromium/ppapi/c/pp_size.h28
-rw-r--r--chromium/ppapi/c/pp_var.h33
-rw-r--r--chromium/ppapi/c/ppb.h4
-rw-r--r--chromium/ppapi/c/ppb_audio.h4
-rw-r--r--chromium/ppapi/c/ppb_audio_buffer.h156
-rw-r--r--chromium/ppapi/c/ppb_audio_config.h4
-rw-r--r--chromium/ppapi/c/ppb_compositor.h148
-rw-r--r--chromium/ppapi/c/ppb_compositor_layer.h236
-rw-r--r--chromium/ppapi/c/ppb_file_mapping.h147
-rw-r--r--chromium/ppapi/c/ppb_file_ref.h78
-rw-r--r--chromium/ppapi/c/ppb_input_event.h53
-rw-r--r--chromium/ppapi/c/ppb_media_stream_audio_track.h215
-rw-r--r--chromium/ppapi/c/ppb_media_stream_video_track.h275
-rw-r--r--chromium/ppapi/c/ppb_message_loop.h4
-rw-r--r--chromium/ppapi/c/ppb_messaging.h67
-rw-r--r--chromium/ppapi/c/ppb_opengles2.h743
-rw-r--r--chromium/ppapi/c/ppb_var.h53
-rw-r--r--chromium/ppapi/c/ppb_video_decoder.h222
-rw-r--r--chromium/ppapi/c/ppb_video_frame.h139
-rw-r--r--chromium/ppapi/c/ppb_view.h34
-rw-r--r--chromium/ppapi/c/ppp_input_event.h10
-rw-r--r--chromium/ppapi/c/ppp_message_handler.h87
-rw-r--r--chromium/ppapi/c/private/pp_content_decryptor.h41
-rw-r--r--chromium/ppapi/c/private/ppb_content_decryptor_private.h88
-rw-r--r--chromium/ppapi/c/private/ppb_display_color_profile_private.h123
-rw-r--r--chromium/ppapi/c/private/ppb_find_private.h81
-rw-r--r--chromium/ppapi/c/private/ppb_flash_clipboard.h34
-rw-r--r--chromium/ppapi/c/private/ppb_flash_drm.h8
-rw-r--r--chromium/ppapi/c/private/ppb_input_event_private.h78
-rw-r--r--chromium/ppapi/c/private/ppb_nacl_private.h381
-rw-r--r--chromium/ppapi/c/private/ppb_pdf.h6
-rw-r--r--chromium/ppapi/c/private/ppb_uma_private.h29
-rw-r--r--chromium/ppapi/c/private/ppp_content_decryptor_private.h75
-rw-r--r--chromium/ppapi/c/private/ppp_find_private.h58
-rw-r--r--chromium/ppapi/c/private/ppp_pdf.h34
-rw-r--r--chromium/ppapi/cpp/audio.h2
-rw-r--r--chromium/ppapi/cpp/audio_buffer.cc91
-rw-r--r--chromium/ppapi/cpp/audio_buffer.h85
-rw-r--r--chromium/ppapi/cpp/audio_config.h2
-rw-r--r--chromium/ppapi/cpp/completion_callback.h170
-rw-r--r--chromium/ppapi/cpp/compositor.cc79
-rw-r--r--chromium/ppapi/cpp/compositor.h90
-rw-r--r--chromium/ppapi/cpp/compositor_layer.cc142
-rw-r--r--chromium/ppapi/cpp/compositor_layer.h188
-rw-r--r--chromium/ppapi/cpp/dev/audio_input_dev.cc43
-rw-r--r--chromium/ppapi/cpp/dev/audio_input_dev.h4
-rw-r--r--chromium/ppapi/cpp/dev/find_dev.cc77
-rw-r--r--chromium/ppapi/cpp/dev/graphics_2d_dev.cc64
-rw-r--r--chromium/ppapi/cpp/dev/graphics_2d_dev.h76
-rw-r--r--chromium/ppapi/cpp/dev/printing_dev.h2
-rw-r--r--chromium/ppapi/cpp/dev/resource_array_dev.cc92
-rw-r--r--chromium/ppapi/cpp/dev/resource_array_dev.h71
-rw-r--r--chromium/ppapi/cpp/dev/var_resource_dev.cc70
-rw-r--r--chromium/ppapi/cpp/dev/var_resource_dev.h53
-rw-r--r--chromium/ppapi/cpp/dev/video_capture_dev.cc44
-rw-r--r--chromium/ppapi/cpp/extensions/dev/socket_dev.cc654
-rw-r--r--chromium/ppapi/cpp/extensions/dev/socket_dev.h290
-rw-r--r--chromium/ppapi/cpp/extensions/dict_field.h100
-rw-r--r--chromium/ppapi/cpp/extensions/ext_output_traits.h142
-rw-r--r--chromium/ppapi/cpp/extensions/from_var_converter.h236
-rw-r--r--chromium/ppapi/cpp/extensions/optional.h97
-rw-r--r--chromium/ppapi/cpp/extensions/to_var_converter.h156
-rw-r--r--chromium/ppapi/cpp/file_io.cc1
-rw-r--r--chromium/ppapi/cpp/file_ref.cc91
-rw-r--r--chromium/ppapi/cpp/file_ref.h28
-rw-r--r--chromium/ppapi/cpp/image_data.h2
-rw-r--r--chromium/ppapi/cpp/input_event.cc88
-rw-r--r--chromium/ppapi/cpp/input_event.h37
-rw-r--r--chromium/ppapi/cpp/instance.cc8
-rw-r--r--chromium/ppapi/cpp/instance.h20
-rw-r--r--chromium/ppapi/cpp/media_stream_audio_track.cc111
-rw-r--r--chromium/ppapi/cpp/media_stream_audio_track.h144
-rw-r--r--chromium/ppapi/cpp/media_stream_video_track.cc167
-rw-r--r--chromium/ppapi/cpp/media_stream_video_track.h164
-rw-r--r--chromium/ppapi/cpp/message_loop.h4
-rw-r--r--chromium/ppapi/cpp/private/content_decryptor_private.cc129
-rw-r--r--chromium/ppapi/cpp/private/content_decryptor_private.h40
-rw-r--r--chromium/ppapi/cpp/private/find_private.cc99
-rw-r--r--chromium/ppapi/cpp/private/find_private.h (renamed from chromium/ppapi/cpp/dev/find_dev.h)28
-rw-r--r--chromium/ppapi/cpp/private/flash_clipboard.cc62
-rw-r--r--chromium/ppapi/cpp/private/flash_clipboard.h6
-rw-r--r--chromium/ppapi/cpp/private/input_event_private.cc44
-rw-r--r--chromium/ppapi/cpp/private/input_event_private.h27
-rw-r--r--chromium/ppapi/cpp/private/pdf.cc38
-rw-r--r--chromium/ppapi/cpp/private/pdf.h10
-rw-r--r--chromium/ppapi/cpp/private/uma_private.cc79
-rw-r--r--chromium/ppapi/cpp/private/uma_private.h49
-rw-r--r--chromium/ppapi/cpp/rect.cc109
-rw-r--r--chromium/ppapi/cpp/rect.h416
-rw-r--r--chromium/ppapi/cpp/resource.h4
-rw-r--r--chromium/ppapi/cpp/size.h160
-rw-r--r--chromium/ppapi/cpp/var.cc111
-rw-r--r--chromium/ppapi/cpp/var.h12
-rw-r--r--chromium/ppapi/cpp/video_decoder.cc96
-rw-r--r--chromium/ppapi/cpp/video_decoder.h181
-rw-r--r--chromium/ppapi/cpp/video_frame.cc74
-rw-r--r--chromium/ppapi/cpp/video_frame.h77
-rw-r--r--chromium/ppapi/cpp/view.cc48
-rw-r--r--chromium/ppapi/cpp/view.h7
-rw-r--r--chromium/ppapi/examples/compositor/compositor.cc445
-rw-r--r--chromium/ppapi/examples/compositor/compositor.html28
-rw-r--r--chromium/ppapi/examples/compositor/spinning_cube.cc459
-rw-r--r--chromium/ppapi/examples/compositor/spinning_cube.h42
-rw-r--r--chromium/ppapi/examples/file_chooser/file_chooser.cc2
-rw-r--r--chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.cc150
-rw-r--r--chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.html18
-rw-r--r--chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.cc466
-rw-r--r--chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.h42
-rw-r--r--chromium/ppapi/examples/media_stream_audio/media_stream_audio.cc224
-rw-r--r--chromium/ppapi/examples/media_stream_audio/media_stream_audio.html44
-rw-r--r--chromium/ppapi/examples/media_stream_video/media_stream_video.cc494
-rw-r--r--chromium/ppapi/examples/media_stream_video/media_stream_video.html74
-rw-r--r--chromium/ppapi/examples/video_decode/OWNERS1
-rw-r--r--chromium/ppapi/examples/video_decode/testdata.h45418
-rw-r--r--chromium/ppapi/examples/video_decode/video_decode.cc848
-rw-r--r--chromium/ppapi/examples/video_decode/video_decode.html2
-rw-r--r--chromium/ppapi/examples/video_decode/video_decode_dev.cc685
-rw-r--r--chromium/ppapi/examples/video_decode/video_decode_dev.html18
-rw-r--r--chromium/ppapi/examples/video_effects/video_effects.html10
-rw-r--r--chromium/ppapi/generators/idl_ast.py9
-rwxr-xr-xchromium/ppapi/generators/idl_c_header.py34
-rwxr-xr-xchromium/ppapi/generators/idl_c_proto.py55
-rwxr-xr-xchromium/ppapi/generators/idl_gen_pnacl.py8
-rw-r--r--chromium/ppapi/generators/idl_gen_wrapper.py29
-rwxr-xr-xchromium/ppapi/generators/idl_lexer.py3
-rwxr-xr-xchromium/ppapi/generators/idl_node.py22
-rwxr-xr-xchromium/ppapi/generators/idl_parser.py82
-rwxr-xr-xchromium/ppapi/generators/idl_release.py7
-rwxr-xr-xchromium/ppapi/generators/idl_thunk.py18
-rw-r--r--chromium/ppapi/generators/test_cgen/interface.h6
-rw-r--r--chromium/ppapi/generators/test_cgen/interface.idl5
-rw-r--r--chromium/ppapi/generators/test_cgen_range/dev_channel_interface.h101
-rw-r--r--chromium/ppapi/generators/test_cgen_range/dev_channel_interface.idl67
-rw-r--r--chromium/ppapi/generators/test_cgen_range/versions.h1
-rw-r--r--chromium/ppapi/generators/test_cgen_range/versions.idl8
-rw-r--r--chromium/ppapi/generators/test_gen_pnacl/test_interfaces.idl6
-rw-r--r--chromium/ppapi/host/error_conversion.cc4
-rw-r--r--chromium/ppapi/host/host_message_context.cc4
-rw-r--r--chromium/ppapi/host/host_message_context.h3
-rw-r--r--chromium/ppapi/host/ppapi_host.cc17
-rw-r--r--chromium/ppapi/host/ppapi_host.h8
-rw-r--r--chromium/ppapi/host/resource_host.cc8
-rw-r--r--chromium/ppapi/host/resource_host.h2
-rw-r--r--chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.c11
-rw-r--r--chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.h2
-rw-r--r--chromium/ppapi/lib/gl/gles2/gles2.c585
-rw-r--r--chromium/ppapi/lib/gl/include/GLES2/gl2ext.h10
-rw-r--r--chromium/ppapi/lib/gl/include/KHR/khrplatform.h15
-rw-r--r--chromium/ppapi/nacl_irt/DEPS16
-rw-r--r--chromium/ppapi/nacl_irt/irt_manifest.h21
-rw-r--r--chromium/ppapi/nacl_irt/irt_ppapi.cc64
-rw-r--r--chromium/ppapi/nacl_irt/irt_ppapi.h13
-rw-r--r--chromium/ppapi/nacl_irt/irt_start.cc26
-rw-r--r--chromium/ppapi/nacl_irt/manifest_service.cc112
-rw-r--r--chromium/ppapi/nacl_irt/manifest_service.h44
-rw-r--r--chromium/ppapi/nacl_irt/plugin_main.cc60
-rw-r--r--chromium/ppapi/nacl_irt/plugin_main.h25
-rw-r--r--chromium/ppapi/nacl_irt/plugin_startup.cc115
-rw-r--r--chromium/ppapi/nacl_irt/plugin_startup.h51
-rw-r--r--chromium/ppapi/nacl_irt/ppapi_dispatcher.cc226
-rw-r--r--chromium/ppapi/nacl_irt/ppapi_dispatcher.h100
-rw-r--r--chromium/ppapi/nacl_irt/public/README10
-rw-r--r--chromium/ppapi/nacl_irt/public/irt_nonsfi.h24
-rw-r--r--chromium/ppapi/nacl_irt/public/irt_ppapi.h42
-rw-r--r--chromium/ppapi/native_client/DEPS9
-rw-r--r--chromium/ppapi/native_client/chrome_main.scons17
-rw-r--r--chromium/ppapi/native_client/native_client.gyp178
-rw-r--r--chromium/ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h10
-rwxr-xr-xchromium/ppapi/native_client/src/tools/srpcgen.py466
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/DEPS10
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/arch_arm/sandbox_isa.cc18
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/arch_x86/sandbox_isa.cc28
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/file_downloader.cc356
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/file_downloader.h131
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/file_utils.cc77
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/file_utils.h38
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/json_manifest.cc651
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/json_manifest.h89
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/manifest.h77
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/module_ppapi.cc8
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/nacl_entry_points.h34
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.cc115
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h60
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers_unittest.cc147
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/nexe_arch.h31
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/plugin.cc1514
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/plugin.gyp1
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/plugin.gypi22
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/plugin.h336
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/plugin_error.h123
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc427
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h86
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.cc42
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.h40
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.cc240
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.h75
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc290
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h44
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.cc191
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.h111
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc70
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h10
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/service_runtime.cc844
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/service_runtime.h170
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/temporary_file.cc65
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/temporary_file.h27
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/utility.cc97
-rw-r--r--chromium/ppapi/native_client/src/trusted/plugin/utility.h13
-rw-r--r--chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c2
-rw-r--r--chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h2
-rw-r--r--chromium/ppapi/native_client/src/untrusted/irt_stub/thread_creator.h10
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c79
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h30
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp95
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c2186
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h (renamed from chromium/ppapi/generators/pnacl_shim.h)8
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c6
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c156
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h15
-rwxr-xr-xchromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py120
-rw-r--r--chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp74
-rw-r--r--chromium/ppapi/ppapi_internal.gyp14
-rw-r--r--chromium/ppapi/ppapi_ipc_nacl.gyp (renamed from chromium/ppapi/ppapi_ipc_untrusted.gyp)16
-rw-r--r--chromium/ppapi/ppapi_nacl.gyp (renamed from chromium/ppapi/ppapi_untrusted.gyp)64
-rw-r--r--chromium/ppapi/ppapi_nacl_test_common.gypi63
-rw-r--r--chromium/ppapi/ppapi_proxy.gypi52
-rw-r--r--chromium/ppapi/ppapi_proxy_nacl.gyp51
-rw-r--r--chromium/ppapi/ppapi_proxy_untrusted.gyp49
-rw-r--r--chromium/ppapi/ppapi_shared.gypi51
-rw-r--r--chromium/ppapi/ppapi_shared_nacl.gyp (renamed from chromium/ppapi/ppapi_shared_untrusted.gyp)16
-rw-r--r--chromium/ppapi/ppapi_sources.gypi88
-rw-r--r--chromium/ppapi/ppapi_tests.gypi100
-rw-r--r--chromium/ppapi/proxy/DEPS8
-rw-r--r--chromium/ppapi/proxy/OWNERS5
-rw-r--r--chromium/ppapi/proxy/audio_buffer_resource.cc112
-rw-r--r--chromium/ppapi/proxy/audio_buffer_resource.h57
-rw-r--r--chromium/ppapi/proxy/audio_input_resource.cc103
-rw-r--r--chromium/ppapi/proxy/audio_input_resource.h23
-rw-r--r--chromium/ppapi/proxy/compositor_layer_resource.cc368
-rw-r--r--chromium/ppapi/proxy/compositor_layer_resource.h99
-rw-r--r--chromium/ppapi/proxy/compositor_resource.cc154
-rw-r--r--chromium/ppapi/proxy/compositor_resource.h80
-rw-r--r--chromium/ppapi/proxy/device_enumeration_resource_helper.cc43
-rw-r--r--chromium/ppapi/proxy/device_enumeration_resource_helper.h7
-rw-r--r--chromium/ppapi/proxy/dispatch_reply_message.h14
-rw-r--r--chromium/ppapi/proxy/dispatcher.cc15
-rw-r--r--chromium/ppapi/proxy/dispatcher.h27
-rw-r--r--chromium/ppapi/proxy/extensions_common_resource.cc139
-rw-r--r--chromium/ppapi/proxy/extensions_common_resource.h68
-rw-r--r--chromium/ppapi/proxy/file_chooser_resource.cc2
-rw-r--r--chromium/ppapi/proxy/file_io_resource.cc354
-rw-r--r--chromium/ppapi/proxy/file_io_resource.h113
-rw-r--r--chromium/ppapi/proxy/file_mapping_resource.cc160
-rw-r--r--chromium/ppapi/proxy/file_mapping_resource.h77
-rw-r--r--chromium/ppapi/proxy/file_mapping_resource_posix.cc89
-rw-r--r--chromium/ppapi/proxy/file_mapping_resource_win.cc40
-rw-r--r--chromium/ppapi/proxy/file_ref_resource.cc29
-rw-r--r--chromium/ppapi/proxy/file_ref_resource.h12
-rw-r--r--chromium/ppapi/proxy/file_system_resource.cc119
-rw-r--r--chromium/ppapi/proxy/file_system_resource.h28
-rw-r--r--chromium/ppapi/proxy/file_system_resource_unittest.cc369
-rw-r--r--chromium/ppapi/proxy/flash_clipboard_resource.cc12
-rw-r--r--chromium/ppapi/proxy/flash_clipboard_resource.h4
-rw-r--r--chromium/ppapi/proxy/flash_file_resource.cc2
-rw-r--r--chromium/ppapi/proxy/graphics_2d_resource.cc27
-rw-r--r--chromium/ppapi/proxy/graphics_2d_resource.h2
-rw-r--r--chromium/ppapi/proxy/host_dispatcher.cc4
-rw-r--r--chromium/ppapi/proxy/host_dispatcher.h8
-rw-r--r--chromium/ppapi/proxy/interface_list.cc179
-rw-r--r--chromium/ppapi/proxy/interface_list.h44
-rw-r--r--chromium/ppapi/proxy/interface_list_unittest.cc80
-rw-r--r--chromium/ppapi/proxy/interface_proxy.h18
-rw-r--r--chromium/ppapi/proxy/media_stream_audio_track_resource.cc197
-rw-r--r--chromium/ppapi/proxy/media_stream_audio_track_resource.h76
-rw-r--r--chromium/ppapi/proxy/media_stream_track_resource_base.cc93
-rw-r--r--chromium/ppapi/proxy/media_stream_track_resource_base.h71
-rw-r--r--chromium/ppapi/proxy/media_stream_video_track_resource.cc225
-rw-r--r--chromium/ppapi/proxy/media_stream_video_track_resource.h79
-rw-r--r--chromium/ppapi/proxy/message_handler.cc134
-rw-r--r--chromium/ppapi/proxy/message_handler.h75
-rw-r--r--chromium/ppapi/proxy/nacl_message_scanner.cc293
-rw-r--r--chromium/ppapi/proxy/nacl_message_scanner.h78
-rw-r--r--chromium/ppapi/proxy/nacl_message_scanner_unittest.cc295
-rw-r--r--chromium/ppapi/proxy/network_monitor_resource.cc4
-rw-r--r--chromium/ppapi/proxy/pdf_resource.cc16
-rw-r--r--chromium/ppapi/proxy/pdf_resource.h2
-rw-r--r--chromium/ppapi/proxy/pdf_resource_unittest.cc8
-rw-r--r--chromium/ppapi/proxy/plugin_dispatcher.cc10
-rw-r--r--chromium/ppapi/proxy/plugin_dispatcher.h8
-rw-r--r--chromium/ppapi/proxy/plugin_globals.cc39
-rw-r--r--chromium/ppapi/proxy/plugin_globals.h20
-rw-r--r--chromium/ppapi/proxy/plugin_main_nacl.cc290
-rw-r--r--chromium/ppapi/proxy/plugin_message_filter.cc13
-rw-r--r--chromium/ppapi/proxy/plugin_message_filter.h13
-rw-r--r--chromium/ppapi/proxy/plugin_var_tracker.cc42
-rw-r--r--chromium/ppapi/proxy/ppapi_command_buffer_proxy.cc176
-rw-r--r--chromium/ppapi/proxy/ppapi_command_buffer_proxy.h33
-rw-r--r--chromium/ppapi/proxy/ppapi_messages.h543
-rw-r--r--chromium/ppapi/proxy/ppapi_param_traits.cc38
-rw-r--r--chromium/ppapi/proxy/ppapi_param_traits.h10
-rw-r--r--chromium/ppapi/proxy/ppb_audio_proxy.cc2
-rw-r--r--chromium/ppapi/proxy/ppb_broker_proxy.cc13
-rw-r--r--chromium/ppapi/proxy/ppb_core_proxy.cc6
-rw-r--r--chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc114
-rw-r--r--chromium/ppapi/proxy/ppb_graphics_3d_proxy.h51
-rw-r--r--chromium/ppapi/proxy/ppb_image_data_proxy.cc23
-rw-r--r--chromium/ppapi/proxy/ppb_instance_proxy.cc304
-rw-r--r--chromium/ppapi/proxy/ppb_instance_proxy.h82
-rw-r--r--chromium/ppapi/proxy/ppb_message_loop_proxy.cc2
-rw-r--r--chromium/ppapi/proxy/ppb_message_loop_proxy.h4
-rw-r--r--chromium/ppapi/proxy/ppb_var_unittest.cc8
-rw-r--r--chromium/ppapi/proxy/ppb_video_decoder_proxy.cc27
-rw-r--r--chromium/ppapi/proxy/ppb_video_decoder_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.cc108
-rw-r--r--chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.h17
-rw-r--r--chromium/ppapi/proxy/ppp_find_proxy.cc103
-rw-r--r--chromium/ppapi/proxy/ppp_find_proxy.h46
-rw-r--r--chromium/ppapi/proxy/ppp_graphics_3d_proxy.cc15
-rw-r--r--chromium/ppapi/proxy/ppp_graphics_3d_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppp_input_event_proxy.cc15
-rw-r--r--chromium/ppapi/proxy/ppp_input_event_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppp_instance_private_proxy.cc15
-rw-r--r--chromium/ppapi/proxy/ppp_instance_private_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppp_messaging_proxy.cc105
-rw-r--r--chromium/ppapi/proxy/ppp_messaging_proxy.h5
-rw-r--r--chromium/ppapi/proxy/ppp_messaging_proxy_unittest.cc32
-rw-r--r--chromium/ppapi/proxy/ppp_mouse_lock_proxy.cc15
-rw-r--r--chromium/ppapi/proxy/ppp_mouse_lock_proxy.h2
-rw-r--r--chromium/ppapi/proxy/ppp_pdf_proxy.cc77
-rw-r--r--chromium/ppapi/proxy/ppp_pdf_proxy.h40
-rw-r--r--chromium/ppapi/proxy/ppp_video_decoder_proxy.cc19
-rw-r--r--chromium/ppapi/proxy/ppp_video_decoder_proxy.h2
-rw-r--r--chromium/ppapi/proxy/proxy_channel.cc15
-rw-r--r--chromium/ppapi/proxy/raw_var_data.cc2
-rw-r--r--chromium/ppapi/proxy/raw_var_data_unittest.cc2
-rw-r--r--chromium/ppapi/proxy/resource_creation_proxy.cc47
-rw-r--r--chromium/ppapi/proxy/resource_creation_proxy.h19
-rw-r--r--chromium/ppapi/proxy/resource_message_test_sink.cc59
-rw-r--r--chromium/ppapi/proxy/resource_message_test_sink.h13
-rw-r--r--chromium/ppapi/proxy/serialized_handle.cc41
-rw-r--r--chromium/ppapi/proxy/serialized_handle.h63
-rw-r--r--chromium/ppapi/proxy/serialized_structs.h3
-rw-r--r--chromium/ppapi/proxy/serialized_var.cc4
-rw-r--r--chromium/ppapi/proxy/talk_resource.cc4
-rw-r--r--chromium/ppapi/proxy/tcp_socket_resource_base.cc31
-rw-r--r--chromium/ppapi/proxy/uma_private_resource.cc110
-rw-r--r--chromium/ppapi/proxy/uma_private_resource.h62
-rw-r--r--chromium/ppapi/proxy/url_loader_resource.cc4
-rw-r--r--chromium/ppapi/proxy/video_capture_resource.cc10
-rw-r--r--chromium/ppapi/proxy/video_capture_resource.h3
-rw-r--r--chromium/ppapi/proxy/video_decoder_constants.h28
-rw-r--r--chromium/ppapi/proxy/video_decoder_resource.cc518
-rw-r--r--chromium/ppapi/proxy/video_decoder_resource.h181
-rw-r--r--chromium/ppapi/proxy/video_decoder_resource_unittest.cc583
-rw-r--r--chromium/ppapi/proxy/video_frame_resource.cc96
-rw-r--r--chromium/ppapi/proxy/video_frame_resource.h52
-rw-r--r--chromium/ppapi/proxy/websocket_resource.cc22
-rw-r--r--chromium/ppapi/proxy/websocket_resource_unittest.cc2
-rw-r--r--chromium/ppapi/shared_impl/DEPS4
-rw-r--r--chromium/ppapi/shared_impl/README.txt2
-rw-r--r--chromium/ppapi/shared_impl/api_id.h4
-rw-r--r--chromium/ppapi/shared_impl/array_var.cc14
-rw-r--r--chromium/ppapi/shared_impl/array_var.h8
-rw-r--r--chromium/ppapi/shared_impl/array_writer.cc46
-rw-r--r--chromium/ppapi/shared_impl/array_writer.h10
-rw-r--r--chromium/ppapi/shared_impl/callback_tracker.cc12
-rw-r--r--chromium/ppapi/shared_impl/compositor_layer_data.cc36
-rw-r--r--chromium/ppapi/shared_impl/compositor_layer_data.h119
-rw-r--r--chromium/ppapi/shared_impl/dictionary_var.cc24
-rw-r--r--chromium/ppapi/shared_impl/dictionary_var.h4
-rw-r--r--chromium/ppapi/shared_impl/dir_contents.h1
-rw-r--r--chromium/ppapi/shared_impl/file_growth.cc41
-rw-r--r--chromium/ppapi/shared_impl/file_growth.h33
-rw-r--r--chromium/ppapi/shared_impl/file_io_state_manager.cc13
-rw-r--r--chromium/ppapi/shared_impl/file_io_state_manager.h1
-rw-r--r--chromium/ppapi/shared_impl/file_path.cc8
-rw-r--r--chromium/ppapi/shared_impl/file_ref_create_info.cc10
-rw-r--r--chromium/ppapi/shared_impl/file_ref_create_info.h17
-rw-r--r--chromium/ppapi/shared_impl/file_ref_util.cc4
-rw-r--r--chromium/ppapi/shared_impl/file_type_conversion.cc44
-rw-r--r--chromium/ppapi/shared_impl/file_type_conversion.h12
-rw-r--r--chromium/ppapi/shared_impl/flash_clipboard_format_registry.cc19
-rw-r--r--chromium/ppapi/shared_impl/flash_clipboard_format_registry.h1
-rw-r--r--chromium/ppapi/shared_impl/host_resource.cc4
-rw-r--r--chromium/ppapi/shared_impl/host_resource.h8
-rw-r--r--chromium/ppapi/shared_impl/id_assignment.cc2
-rw-r--r--chromium/ppapi/shared_impl/id_assignment.h6
-rw-r--r--chromium/ppapi/shared_impl/media_stream_audio_track_shared.cc17
-rw-r--r--chromium/ppapi/shared_impl/media_stream_audio_track_shared.h25
-rw-r--r--chromium/ppapi/shared_impl/media_stream_audio_track_shared_unittest.cc33
-rw-r--r--chromium/ppapi/shared_impl/media_stream_buffer.h58
-rw-r--r--chromium/ppapi/shared_impl/media_stream_buffer_manager.cc81
-rw-r--r--chromium/ppapi/shared_impl/media_stream_buffer_manager.h97
-rw-r--r--chromium/ppapi/shared_impl/media_stream_buffer_manager_unittest.cc180
-rw-r--r--chromium/ppapi/shared_impl/media_stream_video_track_shared.cc40
-rw-r--r--chromium/ppapi/shared_impl/media_stream_video_track_shared.h32
-rw-r--r--chromium/ppapi/shared_impl/media_stream_video_track_shared_unittest.cc96
-rw-r--r--chromium/ppapi/shared_impl/platform_file.cc4
-rw-r--r--chromium/ppapi/shared_impl/platform_file.h2
-rw-r--r--chromium/ppapi/shared_impl/ppapi_constants.h19
-rw-r--r--chromium/ppapi/shared_impl/ppapi_globals.cc19
-rw-r--r--chromium/ppapi/shared_impl/ppapi_globals.h21
-rw-r--r--chromium/ppapi/shared_impl/ppapi_nacl_channel_args.cc18
-rw-r--r--chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.cc20
-rw-r--r--chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.h (renamed from chromium/ppapi/shared_impl/ppapi_nacl_channel_args.h)15
-rw-r--r--chromium/ppapi/shared_impl/ppapi_permissions.cc9
-rw-r--r--chromium/ppapi/shared_impl/ppapi_permissions.h14
-rw-r--r--chromium/ppapi/shared_impl/ppapi_preferences.cc16
-rw-r--r--chromium/ppapi/shared_impl/ppapi_preferences.h1
-rw-r--r--chromium/ppapi/shared_impl/ppb_audio_config_shared.cc29
-rw-r--r--chromium/ppapi/shared_impl/ppb_audio_config_shared.h6
-rw-r--r--chromium/ppapi/shared_impl/ppb_audio_shared.cc150
-rw-r--r--chromium/ppapi/shared_impl/ppb_audio_shared.h24
-rw-r--r--chromium/ppapi/shared_impl/ppb_crypto_shared.cc4
-rw-r--r--chromium/ppapi/shared_impl/ppb_device_ref_shared.cc43
-rw-r--r--chromium/ppapi/shared_impl/ppb_device_ref_shared.h10
-rw-r--r--chromium/ppapi/shared_impl/ppb_gamepad_shared.cc12
-rw-r--r--chromium/ppapi/shared_impl/ppb_gamepad_shared.h55
-rw-r--r--chromium/ppapi/shared_impl/ppb_graphics_3d_shared.cc24
-rw-r--r--chromium/ppapi/shared_impl/ppb_graphics_3d_shared.h5
-rw-r--r--chromium/ppapi/shared_impl/ppb_image_data_shared.cc5
-rw-r--r--chromium/ppapi/shared_impl/ppb_input_event_shared.cc64
-rw-r--r--chromium/ppapi/shared_impl/ppb_input_event_shared.h10
-rw-r--r--chromium/ppapi/shared_impl/ppb_instance_shared.cc18
-rw-r--r--chromium/ppapi/shared_impl/ppb_memory_shared.cc13
-rw-r--r--chromium/ppapi/shared_impl/ppb_message_loop_shared.cc9
-rw-r--r--chromium/ppapi/shared_impl/ppb_opengles2_shared.cc1075
-rw-r--r--chromium/ppapi/shared_impl/ppb_opengles2_shared.h2
-rw-r--r--chromium/ppapi/shared_impl/ppb_resource_array_shared.cc51
-rw-r--r--chromium/ppapi/shared_impl/ppb_resource_array_shared.h42
-rw-r--r--chromium/ppapi/shared_impl/ppb_tcp_socket_shared.cc6
-rw-r--r--chromium/ppapi/shared_impl/ppb_tcp_socket_shared.h9
-rw-r--r--chromium/ppapi/shared_impl/ppb_trace_event_impl.cc64
-rw-r--r--chromium/ppapi/shared_impl/ppb_trace_event_impl.h19
-rw-r--r--chromium/ppapi/shared_impl/ppb_url_util_shared.cc5
-rw-r--r--chromium/ppapi/shared_impl/ppb_url_util_shared.h3
-rw-r--r--chromium/ppapi/shared_impl/ppb_var_shared.cc49
-rw-r--r--chromium/ppapi/shared_impl/ppb_var_shared.h1
-rw-r--r--chromium/ppapi/shared_impl/ppb_video_decoder_shared.cc16
-rw-r--r--chromium/ppapi/shared_impl/ppb_video_decoder_shared.h9
-rw-r--r--chromium/ppapi/shared_impl/ppb_view_shared.cc36
-rw-r--r--chromium/ppapi/shared_impl/ppb_view_shared.h10
-rw-r--r--chromium/ppapi/shared_impl/ppp_flash_browser_operations_shared.h7
-rw-r--r--chromium/ppapi/shared_impl/ppp_instance_combined.cc15
-rw-r--r--chromium/ppapi/shared_impl/ppp_instance_combined.h1
-rw-r--r--chromium/ppapi/shared_impl/private/ppb_char_set_shared.cc2
-rw-r--r--chromium/ppapi/shared_impl/proxy_lock.cc7
-rw-r--r--chromium/ppapi/shared_impl/proxy_lock.h42
-rw-r--r--chromium/ppapi/shared_impl/proxy_lock_unittest.cc23
-rw-r--r--chromium/ppapi/shared_impl/resource.cc9
-rw-r--r--chromium/ppapi/shared_impl/resource.h160
-rw-r--r--chromium/ppapi/shared_impl/resource_tracker.cc9
-rw-r--r--chromium/ppapi/shared_impl/resource_tracker_unittest.cc11
-rw-r--r--chromium/ppapi/shared_impl/resource_var.cc20
-rw-r--r--chromium/ppapi/shared_impl/scoped_pp_resource.cc10
-rw-r--r--chromium/ppapi/shared_impl/scoped_pp_var.cc17
-rw-r--r--chromium/ppapi/shared_impl/singleton_resource_id.h3
-rw-r--r--chromium/ppapi/shared_impl/socket_option_data.cc10
-rw-r--r--chromium/ppapi/shared_impl/socket_option_data.h6
-rw-r--r--chromium/ppapi/shared_impl/test_globals.cc41
-rw-r--r--chromium/ppapi/shared_impl/test_globals.h19
-rw-r--r--chromium/ppapi/shared_impl/test_harness_utils.cc31
-rw-r--r--chromium/ppapi/shared_impl/test_harness_utils.h29
-rw-r--r--chromium/ppapi/shared_impl/thread_aware_callback.cc10
-rw-r--r--chromium/ppapi/shared_impl/thread_aware_callback.h10
-rw-r--r--chromium/ppapi/shared_impl/thread_aware_callback_unittest.cc47
-rw-r--r--chromium/ppapi/shared_impl/time_conversion.cc10
-rw-r--r--chromium/ppapi/shared_impl/tracked_callback.cc21
-rw-r--r--chromium/ppapi/shared_impl/tracked_callback.h8
-rw-r--r--chromium/ppapi/shared_impl/tracked_callback_unittest.cc26
-rw-r--r--chromium/ppapi/shared_impl/unittest_utils.cc76
-rw-r--r--chromium/ppapi/shared_impl/unittest_utils.h7
-rw-r--r--chromium/ppapi/shared_impl/url_request_info_data.cc24
-rw-r--r--chromium/ppapi/shared_impl/url_response_info_data.cc6
-rw-r--r--chromium/ppapi/shared_impl/var.cc77
-rw-r--r--chromium/ppapi/shared_impl/var.h8
-rw-r--r--chromium/ppapi/shared_impl/var_tracker.cc21
-rw-r--r--chromium/ppapi/shared_impl/var_tracker.h12
-rw-r--r--chromium/ppapi/shared_impl/var_tracker_unittest.cc27
-rw-r--r--chromium/ppapi/shared_impl/var_value_conversions.cc394
-rw-r--r--chromium/ppapi/shared_impl/var_value_conversions.h60
-rw-r--r--chromium/ppapi/shared_impl/var_value_conversions_unittest.cc396
-rw-r--r--chromium/ppapi/tests/extensions/extensions.gyp36
-rw-r--r--chromium/ppapi/thunk/OWNERS12
-rw-r--r--chromium/ppapi/thunk/enter.cc6
-rw-r--r--chromium/ppapi/thunk/extensions_common_api.h44
-rw-r--r--chromium/ppapi/thunk/interfaces_legacy.h5
-rw-r--r--chromium/ppapi/thunk/interfaces_postamble.h10
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_private.h48
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_private_flash.h45
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_private_no_permissions.h37
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_public_dev.h96
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_public_dev_channel.h25
-rw-r--r--chromium/ppapi/thunk/interfaces_ppb_public_stable.h124
-rw-r--r--chromium/ppapi/thunk/interfaces_preamble.h12
-rw-r--r--chromium/ppapi/thunk/ppb_alarms_dev_thunk.cc82
-rw-r--r--chromium/ppapi/thunk/ppb_audio_buffer_api.h38
-rw-r--r--chromium/ppapi/thunk/ppb_audio_buffer_thunk.cc108
-rw-r--r--chromium/ppapi/thunk/ppb_audio_input_api.h7
-rw-r--r--chromium/ppapi/thunk/ppb_audio_input_dev_thunk.cc35
-rw-r--r--chromium/ppapi/thunk/ppb_compositor_api.h27
-rw-r--r--chromium/ppapi/thunk/ppb_compositor_layer_api.h43
-rw-r--r--chromium/ppapi/thunk/ppb_compositor_layer_thunk.cc136
-rw-r--r--chromium/ppapi/thunk/ppb_compositor_thunk.cc73
-rw-r--r--chromium/ppapi/thunk/ppb_console_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_content_decryptor_private_thunk.cc82
-rw-r--r--chromium/ppapi/thunk/ppb_device_ref_dev_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_display_color_profile_private_thunk.cc78
-rw-r--r--chromium/ppapi/thunk/ppb_ext_socket_thunk.cc419
-rw-r--r--chromium/ppapi/thunk/ppb_file_chooser_dev_thunk.cc12
-rw-r--r--chromium/ppapi/thunk/ppb_file_chooser_trusted_thunk.cc12
-rw-r--r--chromium/ppapi/thunk/ppb_file_io_api.h4
-rw-r--r--chromium/ppapi/thunk/ppb_file_io_thunk.cc10
-rw-r--r--chromium/ppapi/thunk/ppb_file_mapping_api.h46
-rw-r--r--chromium/ppapi/thunk/ppb_file_mapping_thunk.cc77
-rw-r--r--chromium/ppapi/thunk/ppb_file_ref_api.h2
-rw-r--r--chromium/ppapi/thunk/ppb_file_ref_thunk.cc36
-rw-r--r--chromium/ppapi/thunk/ppb_file_system_api.h6
-rw-r--r--chromium/ppapi/thunk/ppb_file_system_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_find_dev_thunk.cc50
-rw-r--r--chromium/ppapi/thunk/ppb_find_private_thunk.cc69
-rw-r--r--chromium/ppapi/thunk/ppb_flash_clipboard_api.h4
-rw-r--r--chromium/ppapi/thunk/ppb_flash_clipboard_thunk.cc22
-rw-r--r--chromium/ppapi/thunk/ppb_flash_drm_thunk.cc10
-rw-r--r--chromium/ppapi/thunk/ppb_fullscreen_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_gamepad_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_graphics_2d_api.h5
-rw-r--r--chromium/ppapi/thunk/ppb_graphics_2d_dev_thunk.cc78
-rw-r--r--chromium/ppapi/thunk/ppb_graphics_2d_thunk.cc10
-rw-r--r--chromium/ppapi/thunk/ppb_graphics_3d_api.h14
-rw-r--r--chromium/ppapi/thunk/ppb_graphics_3d_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_host_resolver_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_image_data_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_input_event_api.h6
-rw-r--r--chromium/ppapi/thunk/ppb_input_event_private_thunk.cc42
-rw-r--r--chromium/ppapi/thunk/ppb_input_event_thunk.cc88
-rw-r--r--chromium/ppapi/thunk/ppb_instance_api.h44
-rw-r--r--chromium/ppapi/thunk/ppb_instance_private_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_instance_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_isolated_file_system_private_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_media_stream_audio_track_api.h31
-rw-r--r--chromium/ppapi/thunk/ppb_media_stream_audio_track_thunk.cc112
-rw-r--r--chromium/ppapi/thunk/ppb_media_stream_video_track_api.h35
-rw-r--r--chromium/ppapi/thunk/ppb_media_stream_video_track_thunk.cc160
-rw-r--r--chromium/ppapi/thunk/ppb_messaging_thunk.cc40
-rw-r--r--chromium/ppapi/thunk/ppb_mouse_cursor_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_mouse_lock_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_network_list_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_network_monitor_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_network_proxy_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_output_protection_private_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_pdf_api.h2
-rw-r--r--chromium/ppapi/thunk/ppb_pdf_thunk.cc16
-rw-r--r--chromium/ppapi/thunk/ppb_platform_verification_private_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_printing_dev_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_resource_array_api.h25
-rw-r--r--chromium/ppapi/thunk/ppb_resource_array_dev_thunk.cc67
-rw-r--r--chromium/ppapi/thunk/ppb_truetype_font_dev_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_udp_socket_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_uma_private_thunk.cc95
-rw-r--r--chromium/ppapi/thunk/ppb_uma_singleton_api.h47
-rw-r--r--chromium/ppapi/thunk/ppb_url_loader_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_url_loader_trusted_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_url_request_info_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_url_response_info_thunk.cc9
-rw-r--r--chromium/ppapi/thunk/ppb_var_resource_dev_thunk.cc46
-rw-r--r--chromium/ppapi/thunk/ppb_video_capture_api.h3
-rw-r--r--chromium/ppapi/thunk/ppb_video_capture_thunk.cc26
-rw-r--r--chromium/ppapi/thunk/ppb_video_decoder_api.h30
-rw-r--r--chromium/ppapi/thunk/ppb_video_decoder_dev_api.h34
-rw-r--r--chromium/ppapi/thunk/ppb_video_decoder_dev_thunk.cc96
-rw-r--r--chromium/ppapi/thunk/ppb_video_decoder_thunk.cc106
-rw-r--r--chromium/ppapi/thunk/ppb_video_frame_api.h36
-rw-r--r--chromium/ppapi/thunk/ppb_video_frame_thunk.cc90
-rw-r--r--chromium/ppapi/thunk/ppb_view_api.h1
-rw-r--r--chromium/ppapi/thunk/ppb_view_dev_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_view_thunk.cc34
-rw-r--r--chromium/ppapi/thunk/ppb_websocket_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/ppb_widget_dev_thunk.cc10
-rw-r--r--chromium/ppapi/thunk/ppb_zoom_dev_thunk.cc8
-rw-r--r--chromium/ppapi/thunk/resource_creation_api.h18
-rw-r--r--chromium/ppapi/thunk/thunk.h7
-rw-r--r--chromium/ppapi/tools/pepper_hash_for_uma.cc37
-rw-r--r--chromium/ppapi/tools/ppapi_tools.gyp18
-rw-r--r--chromium/ppapi/utility/completion_callback_factory.h169
-rw-r--r--chromium/ppapi/utility/websocket/websocket_api.cc4
653 files changed, 64265 insertions, 32131 deletions
diff --git a/chromium/ppapi/BUILD.gn b/chromium/ppapi/BUILD.gn
new file mode 100644
index 00000000000..78d5ce9aba0
--- /dev/null
+++ b/chromium/ppapi/BUILD.gn
@@ -0,0 +1,719 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+gypi_values = exec_script(
+ "//build/gypi_to_gn.py",
+ [ rebase_path("ppapi_sources.gypi") ],
+ "scope",
+ [ "ppapi_sources.gypi" ])
+
+# TODO(GYP) support chrome_multiple_dll
+#if (chrome_multiple_dll) {
+# blink_target = "//third_party/WebKit/public:blink_minimal"
+#} else {
+# blink_target = "//third_party/WebKit/public:blink"
+#}
+
+# These are just headers.
+source_set("ppapi_c") {
+ sources = gypi_values.c_source_files
+}
+
+source_set("ppapi_cpp_objects") {
+ sources = gypi_values.cpp_source_files
+
+ if (is_win) {
+ cflags = [
+ "/we4244", # Implicit conversion, possible loss of data.
+ ]
+ } else {
+ cflags = [
+ "-Wextra",
+ "-pedantic",
+ ]
+ }
+}
+
+source_set("ppapi_cpp") {
+ sources = [
+ "cpp/module_embedder.h",
+ "cpp/ppp_entrypoints.cc",
+ ]
+
+ if (is_posix) {
+ cflags = [
+ "-Wextra",
+ "-pedantic",
+ ]
+ }
+
+ deps = [
+ ":ppapi_c",
+ ":ppapi_cpp_objects",
+ ]
+}
+
+source_set("ppapi_gles2") {
+ sources = [
+ "lib/gl/gles2/gl2ext_ppapi.c",
+ "lib/gl/gles2/gl2ext_ppapi.h",
+ "lib/gl/gles2/gles2.c",
+ ]
+
+ include_dirs = [ "lib/gl/include" ]
+
+ deps = [
+ ":ppapi_c",
+ ]
+}
+
+# TODO(brettw) argument list is too long. Need to add response files.
+#shared_library("ppapi_tests") {
+# sources = gypi_values.test_common_source_files +
+# gypi_values.test_trusted_source_files
+#
+# defines = [ "GL_GLEXT_PROTOTYPES" ]
+# include_dirs = [ "lib/gl/include" ]
+#
+# deps = [
+# ":ppapi_cpp",
+# ":ppapi_shared",
+# ]
+#}
+
+component("ppapi_shared") {
+ sources = [
+ "shared_impl/array_var.cc",
+ "shared_impl/array_var.h",
+ "shared_impl/array_writer.cc",
+ "shared_impl/array_writer.h",
+ "shared_impl/callback_tracker.cc",
+ "shared_impl/callback_tracker.h",
+ "shared_impl/dictionary_var.cc",
+ "shared_impl/dictionary_var.h",
+ "shared_impl/file_io_state_manager.cc",
+ "shared_impl/file_io_state_manager.h",
+ "shared_impl/file_growth.cc",
+ "shared_impl/file_growth.h",
+ "shared_impl/file_path.cc",
+ "shared_impl/file_path.h",
+ "shared_impl/file_ref_create_info.cc",
+ "shared_impl/file_ref_create_info.h",
+ "shared_impl/file_ref_util.cc",
+ "shared_impl/file_ref_util.h",
+ "shared_impl/file_system_util.cc",
+ "shared_impl/file_system_util.h",
+ "shared_impl/file_type_conversion.cc",
+ "shared_impl/file_type_conversion.h",
+ "shared_impl/host_resource.cc",
+ "shared_impl/host_resource.h",
+ "shared_impl/id_assignment.cc",
+ "shared_impl/id_assignment.h",
+ "shared_impl/media_stream_buffer.h",
+ "shared_impl/media_stream_buffer_manager.cc",
+ "shared_impl/media_stream_buffer_manager.h",
+ "shared_impl/media_stream_video_track_shared.h",
+ "shared_impl/media_stream_video_track_shared.cc",
+ "shared_impl/platform_file.cc",
+ "shared_impl/platform_file.h",
+ "shared_impl/ppapi_constants.h",
+ "shared_impl/ppapi_globals.cc",
+ "shared_impl/ppapi_globals.h",
+ "shared_impl/ppapi_nacl_plugin_args.cc",
+ "shared_impl/ppapi_nacl_plugin_args.h",
+ "shared_impl/ppapi_permissions.cc",
+ "shared_impl/ppapi_permissions.h",
+ "shared_impl/ppapi_preferences.cc",
+ "shared_impl/ppapi_preferences.h",
+ "shared_impl/ppapi_switches.cc",
+ "shared_impl/ppapi_switches.h",
+ "shared_impl/ppb_audio_config_shared.cc",
+ "shared_impl/ppb_audio_config_shared.h",
+ "shared_impl/ppb_audio_shared.cc",
+ "shared_impl/ppb_audio_shared.h",
+ "shared_impl/ppb_crypto_shared.cc",
+ "shared_impl/ppb_device_ref_shared.cc",
+ "shared_impl/ppb_device_ref_shared.h",
+ "shared_impl/ppb_gamepad_shared.cc",
+ "shared_impl/ppb_gamepad_shared.h",
+ "shared_impl/ppb_graphics_3d_shared.cc",
+ "shared_impl/ppb_graphics_3d_shared.h",
+ "shared_impl/ppb_image_data_shared.cc",
+ "shared_impl/ppb_image_data_shared.h",
+ "shared_impl/ppb_input_event_shared.cc",
+ "shared_impl/ppb_input_event_shared.h",
+ "shared_impl/ppb_instance_shared.cc",
+ "shared_impl/ppb_instance_shared.h",
+ "shared_impl/ppb_memory_shared.cc",
+ "shared_impl/ppb_message_loop_shared.cc",
+ "shared_impl/ppb_message_loop_shared.h",
+ "shared_impl/ppb_opengles2_shared.cc",
+ "shared_impl/ppb_opengles2_shared.h",
+ "shared_impl/ppb_tcp_socket_shared.cc",
+ "shared_impl/ppb_tcp_socket_shared.h",
+ "shared_impl/ppb_trace_event_impl.cc",
+ "shared_impl/ppb_trace_event_impl.h",
+ "shared_impl/ppb_var_shared.cc",
+ "shared_impl/ppb_var_shared.h",
+ "shared_impl/ppb_view_shared.cc",
+ "shared_impl/ppb_view_shared.h",
+ "shared_impl/ppp_flash_browser_operations_shared.h",
+ "shared_impl/ppp_instance_combined.cc",
+ "shared_impl/ppp_instance_combined.h",
+ "shared_impl/proxy_lock.cc",
+ "shared_impl/proxy_lock.h",
+ "shared_impl/resource.cc",
+ "shared_impl/resource.h",
+ "shared_impl/resource_tracker.cc",
+ "shared_impl/resource_tracker.h",
+ "shared_impl/resource_var.cc",
+ "shared_impl/resource_var.h",
+ "shared_impl/scoped_pp_resource.cc",
+ "shared_impl/scoped_pp_resource.h",
+ "shared_impl/scoped_pp_var.cc",
+ "shared_impl/scoped_pp_var.h",
+ "shared_impl/socket_option_data.cc",
+ "shared_impl/socket_option_data.h",
+ "shared_impl/thread_aware_callback.cc",
+ "shared_impl/thread_aware_callback.h",
+ "shared_impl/time_conversion.cc",
+ "shared_impl/time_conversion.h",
+ "shared_impl/tracked_callback.cc",
+ "shared_impl/tracked_callback.h",
+ "shared_impl/url_request_info_data.cc",
+ "shared_impl/url_request_info_data.h",
+ "shared_impl/url_response_info_data.cc",
+ "shared_impl/url_response_info_data.h",
+ "shared_impl/var.cc",
+ "shared_impl/var.h",
+ "shared_impl/var_tracker.cc",
+ "shared_impl/var_tracker.h",
+ # TODO(viettrungluu): Split these out; it won"t be used in NaCl.
+ "shared_impl/private/net_address_private_impl.cc",
+ "shared_impl/private/net_address_private_impl_constants.cc",
+ "shared_impl/private/net_address_private_impl.h",
+
+ "shared_impl/private/ppb_x509_certificate_private_shared.cc",
+ "shared_impl/private/ppb_x509_certificate_private_shared.h",
+
+ "thunk/enter.cc",
+ "thunk/enter.h",
+ "thunk/ppb_audio_api.h",
+ "thunk/ppb_audio_config_api.h",
+ "thunk/ppb_audio_config_thunk.cc",
+ "thunk/ppb_audio_buffer_api.h",
+ "thunk/ppb_audio_buffer_thunk.cc",
+ "thunk/ppb_audio_input_api.h",
+ "thunk/ppb_audio_thunk.cc",
+ "thunk/ppb_broker_api.h",
+ "thunk/ppb_browser_font_trusted_api.h",
+ "thunk/ppb_buffer_api.h",
+ "thunk/ppb_console_thunk.cc",
+ "thunk/ppb_cursor_control_thunk.cc",
+ "thunk/ppb_device_ref_api.h",
+ "thunk/ppb_device_ref_dev_thunk.cc",
+ "thunk/ppb_ext_crx_file_system_private_thunk.cc",
+ "thunk/ppb_file_chooser_api.h",
+ "thunk/ppb_file_chooser_dev_thunk.cc",
+ "thunk/ppb_file_chooser_trusted_thunk.cc",
+ "thunk/ppb_file_io_api.h",
+ "thunk/ppb_file_io_private_thunk.cc",
+ "thunk/ppb_file_io_thunk.cc",
+ "thunk/ppb_file_mapping_thunk.cc",
+ "thunk/ppb_file_ref_api.h",
+ "thunk/ppb_file_ref_thunk.cc",
+ "thunk/ppb_file_system_api.h",
+ "thunk/ppb_file_system_thunk.cc",
+ "thunk/ppb_find_private_thunk.cc",
+ "thunk/ppb_flash_clipboard_api.h",
+ "thunk/ppb_flash_drm_api.h",
+ "thunk/ppb_flash_font_file_api.h",
+ "thunk/ppb_flash_fullscreen_api.h",
+ "thunk/ppb_flash_functions_api.h",
+ "thunk/ppb_flash_menu_api.h",
+ "thunk/ppb_flash_message_loop_api.h",
+ "thunk/ppb_flash_print_thunk.cc",
+ "thunk/ppb_fullscreen_thunk.cc",
+ "thunk/ppb_gamepad_api.h",
+ "thunk/ppb_gamepad_thunk.cc",
+ "thunk/ppb_graphics_2d_api.h",
+ "thunk/ppb_graphics_2d_thunk.cc",
+ "thunk/ppb_graphics_3d_api.h",
+ "thunk/ppb_graphics_3d_thunk.cc",
+ "thunk/ppb_host_resolver_api.h",
+ "thunk/ppb_host_resolver_thunk.cc",
+ "thunk/ppb_host_resolver_private_api.h",
+ "thunk/ppb_host_resolver_private_thunk.cc",
+ "thunk/ppb_image_data_api.h",
+ "thunk/ppb_image_data_thunk.cc",
+ "thunk/ppb_input_event_api.h",
+ "thunk/ppb_input_event_thunk.cc",
+ "thunk/ppb_instance_api.h",
+ "thunk/ppb_instance_private_thunk.cc",
+ "thunk/ppb_instance_thunk.cc",
+ "thunk/ppb_isolated_file_system_private_api.h",
+ "thunk/ppb_isolated_file_system_private_thunk.cc",
+ "thunk/ppb_media_stream_audio_track_api.h",
+ "thunk/ppb_media_stream_audio_track_thunk.cc",
+ "thunk/ppb_media_stream_video_track_api.h",
+ "thunk/ppb_media_stream_video_track_thunk.cc",
+ "thunk/ppb_message_loop_api.h",
+ "thunk/ppb_messaging_thunk.cc",
+ "thunk/ppb_mouse_cursor_thunk.cc",
+ "thunk/ppb_mouse_lock_thunk.cc",
+ "thunk/ppb_net_address_api.h",
+ "thunk/ppb_net_address_thunk.cc",
+ "thunk/ppb_network_list_api.h",
+ "thunk/ppb_network_list_thunk.cc",
+ "thunk/ppb_network_monitor_api.h",
+ "thunk/ppb_network_monitor_thunk.cc",
+ "thunk/ppb_network_proxy_api.h",
+ "thunk/ppb_network_proxy_thunk.cc",
+ "thunk/ppb_output_protection_api.h",
+ "thunk/ppb_output_protection_private_thunk.cc",
+ "thunk/ppb_pdf_api.h",
+ "thunk/ppb_platform_verification_api.h",
+ "thunk/ppb_printing_api.h",
+ "thunk/ppb_printing_dev_thunk.cc",
+ "thunk/ppb_scrollbar_api.h",
+ "thunk/ppb_talk_private_api.h",
+ "thunk/ppb_tcp_server_socket_private_api.h",
+ "thunk/ppb_tcp_server_socket_private_thunk.cc",
+ "thunk/ppb_tcp_socket_api.h",
+ "thunk/ppb_tcp_socket_private_api.h",
+ "thunk/ppb_tcp_socket_private_thunk.cc",
+ "thunk/ppb_tcp_socket_thunk.cc",
+ "thunk/ppb_text_input_thunk.cc",
+ "thunk/ppb_truetype_font_api.h",
+ "thunk/ppb_truetype_font_singleton_api.h",
+ "thunk/ppb_truetype_font_dev_thunk.cc",
+ "thunk/ppb_udp_socket_api.h",
+ "thunk/ppb_udp_socket_thunk.cc",
+ "thunk/ppb_udp_socket_private_api.h",
+ "thunk/ppb_udp_socket_private_thunk.cc",
+ "thunk/ppb_uma_private_thunk.cc",
+ "thunk/ppb_uma_singleton_api.h",
+ "thunk/ppb_url_loader_api.h",
+ "thunk/ppb_url_loader_thunk.cc",
+ "thunk/ppb_url_loader_trusted_thunk.cc",
+ "thunk/ppb_url_request_info_api.h",
+ "thunk/ppb_url_request_info_thunk.cc",
+ "thunk/ppb_url_response_info_api.h",
+ "thunk/ppb_url_response_info_thunk.cc",
+ "thunk/ppb_var_array_thunk.cc",
+ "thunk/ppb_var_dictionary_thunk.cc",
+ "thunk/ppb_video_capture_api.h",
+ "thunk/ppb_video_decoder_api.h",
+ "thunk/ppb_video_decoder_dev_api.h",
+ "thunk/ppb_video_destination_private_api.h",
+ "thunk/ppb_video_destination_private_thunk.cc",
+ "thunk/ppb_video_frame_api.h",
+ "thunk/ppb_video_frame_thunk.cc",
+ "thunk/ppb_video_source_private_api.h",
+ "thunk/ppb_video_source_private_thunk.cc",
+ "thunk/ppb_view_api.h",
+ "thunk/ppb_view_dev_thunk.cc",
+ "thunk/ppb_view_thunk.cc",
+ "thunk/ppb_websocket_api.h",
+ "thunk/ppb_websocket_thunk.cc",
+ "thunk/ppb_widget_api.h",
+ "thunk/ppb_widget_dev_thunk.cc",
+ "thunk/ppb_x509_certificate_private_api.h",
+ "thunk/ppb_x509_certificate_private_thunk.cc",
+ "thunk/ppb_zoom_dev_thunk.cc",
+ "thunk/thunk.h",
+ ]
+
+ if (!is_nacl) {
+ sources += [
+ "shared_impl/flash_clipboard_format_registry.cc",
+ "shared_impl/flash_clipboard_format_registry.h",
+ "shared_impl/ppb_url_util_shared.cc",
+ "shared_impl/ppb_url_util_shared.h",
+ "shared_impl/ppb_video_decoder_shared.cc",
+ "shared_impl/ppb_video_decoder_shared.h",
+ "shared_impl/private/ppb_char_set_shared.cc",
+ "shared_impl/private/ppb_char_set_shared.h",
+ "thunk/ppb_audio_input_dev_thunk.cc",
+ "thunk/ppb_broker_thunk.cc",
+ "thunk/ppb_browser_font_trusted_thunk.cc",
+ "thunk/ppb_buffer_thunk.cc",
+ "thunk/ppb_content_decryptor_private_thunk.cc",
+ "thunk/ppb_char_set_thunk.cc",
+ "thunk/ppb_flash_clipboard_thunk.cc",
+ "thunk/ppb_flash_device_id_thunk.cc",
+ "thunk/ppb_flash_drm_thunk.cc",
+ "thunk/ppb_flash_file_fileref_thunk.cc",
+ "thunk/ppb_flash_file_modulelocal_thunk.cc",
+ "thunk/ppb_flash_font_file_thunk.cc",
+ "thunk/ppb_flash_fullscreen_thunk.cc",
+ "thunk/ppb_flash_menu_thunk.cc",
+ "thunk/ppb_flash_thunk.cc",
+ "thunk/ppb_flash_message_loop_thunk.cc",
+ "thunk/ppb_gles_chromium_texture_mapping_thunk.cc",
+ "thunk/ppb_pdf_thunk.cc",
+ "thunk/ppb_platform_verification_private_thunk.cc",
+ "thunk/ppb_scrollbar_thunk.cc",
+ "thunk/ppb_talk_private_thunk.cc",
+ "thunk/ppb_url_util_thunk.cc",
+ "thunk/ppb_video_capture_thunk.cc",
+ "thunk/ppb_video_decoder_dev_thunk.cc",
+ ]
+ }
+
+ # We exclude a few more things for nacl_win64, to avoid pulling in more
+ # dependencies.
+ if (is_win && cpu_arch == "x64" && current_toolchain != default_toolchain) {
+ sources -= [
+ "shared_impl/ppb_audio_shared.cc",
+ "shared_impl/ppb_graphics_3d_shared.cc",
+ "shared_impl/ppb_opengles2_shared.cc",
+ "shared_impl/private/ppb_host_resolver_shared.cc",
+ "shared_impl/private/net_address_private_impl.cc",
+ "thunk/ppb_graphics_3d_thunk.cc",
+ "thunk/ppb_host_resolver_private_thunk.cc",
+ "thunk/ppb_tcp_server_socket_private_thunk.cc",
+ "thunk/ppb_tcp_socket_private_thunk.cc",
+ "thunk/ppb_udp_socket_private_thunk.cc",
+ "thunk/ppb_x509_certificate_private_thunk.cc",
+ ]
+ }
+
+ defines = [
+ "PPAPI_SHARED_IMPLEMENTATION",
+ "PPAPI_THUNK_IMPLEMENTATION",
+ ]
+
+ deps = [
+ ":ppapi_c",
+ "//base",
+ "//base:i18n",
+ "//base/third_party/dynamic_annotations",
+ "//gpu/command_buffer/client",
+ "//gpu/command_buffer/client:gles2_implementation",
+ "//gpu/command_buffer/common",
+ "//ipc",
+ #"//media:shared_memory_support", TODO(GYP)
+ "//skia",
+ "//third_party/icu:icuuc",
+ "//ui/surface",
+ "//url",
+ ]
+
+ if (is_mac) {
+ libs = [ "QuartzCore.framework" ]
+ } else if (is_win) {
+ cflags = [ "/wd4267" ] # size_t to int truncation.
+ }
+
+ # TODO(GYP)
+ #deps += [ blink_target ]
+ #forward_dependent_configs_from = [ blink_target ]
+}
+
+source_set("ppapi_ipc") {
+ sources = [
+ "proxy/nacl_message_scanner.cc",
+ "proxy/nacl_message_scanner.h",
+ "proxy/ppapi_messages.cc",
+ "proxy/ppapi_messages.h",
+ "proxy/ppapi_param_traits.cc",
+ "proxy/ppapi_param_traits.h",
+ "proxy/raw_var_data.cc",
+ "proxy/raw_var_data.h",
+ "proxy/resource_message_params.cc",
+ "proxy/resource_message_params.h",
+ "proxy/serialized_flash_menu.cc",
+ "proxy/serialized_flash_menu.h",
+ "proxy/serialized_handle.cc",
+ "proxy/serialized_handle.h",
+ "proxy/serialized_structs.cc",
+ "proxy/serialized_structs.h",
+ "proxy/serialized_var.cc",
+ "proxy/serialized_var.h",
+ "proxy/var_serialization_rules.h",
+ ]
+
+ deps = [
+ ":ppapi_c",
+ ":ppapi_shared",
+ "//base",
+ "//gpu/ipc",
+ "//ipc",
+ "//skia",
+ ]
+
+ if (is_nacl) {
+ sources -= [ "proxy/serialized_flash_menu.cc" ]
+ }
+}
+
+component("ppapi_proxy") {
+ sources = [
+ # Take some standalone files from the C++ wrapper allowing us to more
+ # easily make async callbacks in the proxy. We can"t depend on the
+ # full C++ wrappers at this layer since the C++ wrappers expect
+ # symbols defining the globals for "being a plugin" which we are not.
+ # These callback files are standalone.
+ "cpp/completion_callback.h",
+ "utility/completion_callback_factory.h",
+
+ "proxy/audio_buffer_resource.cc",
+ "proxy/audio_buffer_resource.h",
+ "proxy/broker_resource.cc",
+ "proxy/broker_resource.h",
+ "proxy/connection.h",
+ "proxy/dispatcher.cc",
+ "proxy/dispatcher.h",
+ "proxy/enter_proxy.h",
+ "proxy/error_conversion.cc",
+ "proxy/error_conversion.h",
+ "proxy/file_chooser_resource.cc",
+ "proxy/file_chooser_resource.h",
+ "proxy/file_io_resource.cc",
+ "proxy/file_io_resource.h",
+ "proxy/file_mapping_resource.cc",
+ "proxy/file_mapping_resource.h",
+ "proxy/file_mapping_resource_posix.cc",
+ "proxy/file_mapping_resource_win.cc",
+ "proxy/file_ref_resource.cc",
+ "proxy/file_ref_resource.h",
+ "proxy/file_system_resource.cc",
+ "proxy/file_system_resource.h",
+ "proxy/gamepad_resource.cc",
+ "proxy/gamepad_resource.h",
+ "proxy/graphics_2d_resource.cc",
+ "proxy/graphics_2d_resource.h",
+ "proxy/host_resolver_private_resource.cc",
+ "proxy/host_resolver_private_resource.h",
+ "proxy/host_resolver_resource.cc",
+ "proxy/host_resolver_resource.h",
+ "proxy/host_resolver_resource_base.cc",
+ "proxy/host_resolver_resource_base.h",
+ "proxy/interface_list.cc",
+ "proxy/interface_list.h",
+ "proxy/interface_proxy.cc",
+ "proxy/interface_proxy.h",
+ "proxy/isolated_file_system_private_resource.cc",
+ "proxy/isolated_file_system_private_resource.h",
+ "proxy/locking_resource_releaser.h",
+ "proxy/media_stream_audio_track_resource.cc",
+ "proxy/media_stream_audio_track_resource.h",
+ "proxy/media_stream_track_resource_base.cc",
+ "proxy/media_stream_track_resource_base.h",
+ "proxy/media_stream_video_track_resource.cc",
+ "proxy/media_stream_video_track_resource.h",
+ "proxy/net_address_resource.cc",
+ "proxy/net_address_resource.h",
+ "proxy/network_list_resource.cc",
+ "proxy/network_list_resource.h",
+ "proxy/network_monitor_resource.cc",
+ "proxy/network_monitor_resource.h",
+ "proxy/network_proxy_resource.cc",
+ "proxy/network_proxy_resource.h",
+ "proxy/output_protection_resource.cc",
+ "proxy/output_protection_resource.h",
+ "proxy/plugin_array_buffer_var.cc",
+ "proxy/plugin_array_buffer_var.h",
+ "proxy/plugin_dispatcher.cc",
+ "proxy/plugin_dispatcher.h",
+ "proxy/plugin_globals.cc",
+ "proxy/plugin_globals.h",
+ "proxy/plugin_message_filter.cc",
+ "proxy/plugin_message_filter.h",
+ "proxy/plugin_resource.cc",
+ "proxy/plugin_resource.h",
+ "proxy/plugin_resource_tracker.cc",
+ "proxy/plugin_resource_tracker.h",
+ "proxy/plugin_resource_var.cc",
+ "proxy/plugin_resource_var.h",
+ "proxy/plugin_var_serialization_rules.cc",
+ "proxy/plugin_var_serialization_rules.h",
+ "proxy/plugin_var_tracker.cc",
+ "proxy/plugin_var_tracker.h",
+ "proxy/ppapi_command_buffer_proxy.cc",
+ "proxy/ppapi_command_buffer_proxy.h",
+ "proxy/ppapi_messages.h",
+ "proxy/ppapi_message_utils.h",
+ "proxy/ppb_audio_proxy.cc",
+ "proxy/ppb_audio_proxy.h",
+ "proxy/ppb_core_proxy.cc",
+ "proxy/ppb_core_proxy.h",
+ "proxy/ppb_graphics_3d_proxy.cc",
+ "proxy/ppb_graphics_3d_proxy.h",
+ "proxy/ppb_image_data_proxy.cc",
+ "proxy/ppb_image_data_proxy.h",
+ "proxy/ppb_instance_proxy.cc",
+ "proxy/ppb_instance_proxy.h",
+ "proxy/ppb_message_loop_proxy.cc",
+ "proxy/ppb_message_loop_proxy.h",
+ "proxy/ppb_testing_proxy.cc",
+ "proxy/ppb_testing_proxy.h",
+ "proxy/ppb_var_deprecated_proxy.cc",
+ "proxy/ppb_var_deprecated_proxy.h",
+ "proxy/ppb_x509_certificate_private_proxy.cc",
+ "proxy/ppb_x509_certificate_private_proxy.h",
+ "proxy/ppp_class_proxy.cc",
+ "proxy/ppp_class_proxy.h",
+ "proxy/ppp_find_proxy.cc",
+ "proxy/ppp_find_proxy.h",
+ "proxy/ppp_graphics_3d_proxy.cc",
+ "proxy/ppp_graphics_3d_proxy.h",
+ "proxy/ppp_input_event_proxy.cc",
+ "proxy/ppp_input_event_proxy.h",
+ "proxy/ppp_instance_proxy.cc",
+ "proxy/ppp_instance_proxy.h",
+ "proxy/ppp_messaging_proxy.cc",
+ "proxy/ppp_messaging_proxy.h",
+ "proxy/ppp_mouse_lock_proxy.cc",
+ "proxy/ppp_mouse_lock_proxy.h",
+ "proxy/ppp_pdf_proxy.cc",
+ "proxy/ppp_pdf_proxy.h",
+ "proxy/ppp_printing_proxy.cc",
+ "proxy/ppp_printing_proxy.h",
+ "proxy/ppp_text_input_proxy.cc",
+ "proxy/ppp_text_input_proxy.h",
+ "proxy/printing_resource.cc",
+ "proxy/printing_resource.h",
+ "proxy/proxy_array_output.cc",
+ "proxy/proxy_array_output.h",
+ "proxy/proxy_channel.cc",
+ "proxy/proxy_channel.h",
+ "proxy/proxy_completion_callback_factory.h",
+ "proxy/proxy_module.cc",
+ "proxy/proxy_module.h",
+ "proxy/proxy_object_var.cc",
+ "proxy/proxy_object_var.h",
+ "proxy/resource_creation_proxy.cc",
+ "proxy/resource_creation_proxy.h",
+ "proxy/resource_reply_thread_registrar.cc",
+ "proxy/resource_reply_thread_registrar.h",
+ "proxy/tcp_server_socket_private_resource.cc",
+ "proxy/tcp_server_socket_private_resource.h",
+ "proxy/tcp_socket_private_resource.cc",
+ "proxy/tcp_socket_private_resource.h",
+ "proxy/tcp_socket_resource.cc",
+ "proxy/tcp_socket_resource.h",
+ "proxy/tcp_socket_resource_base.cc",
+ "proxy/tcp_socket_resource_base.h",
+ "proxy/truetype_font_resource.cc",
+ "proxy/truetype_font_resource.h",
+ "proxy/truetype_font_singleton_resource.cc",
+ "proxy/truetype_font_singleton_resource.h",
+ "proxy/udp_socket_private_resource.cc",
+ "proxy/udp_socket_private_resource.h",
+ "proxy/udp_socket_resource.cc",
+ "proxy/udp_socket_resource.h",
+ "proxy/udp_socket_resource_base.cc",
+ "proxy/udp_socket_resource_base.h",
+ "proxy/uma_private_resource.cc",
+ "proxy/uma_private_resource.h",
+ "proxy/url_loader_resource.cc",
+ "proxy/url_loader_resource.h",
+ "proxy/url_request_info_resource.cc",
+ "proxy/url_request_info_resource.h",
+ "proxy/url_response_info_resource.cc",
+ "proxy/url_response_info_resource.h",
+ "proxy/var_serialization_rules.h",
+ "proxy/video_destination_resource.cc",
+ "proxy/video_destination_resource.h",
+ "proxy/video_frame_resource.cc",
+ "proxy/video_frame_resource.h",
+ "proxy/video_source_resource.cc",
+ "proxy/video_source_resource.h",
+ "proxy/websocket_resource.cc",
+ "proxy/websocket_resource.h",
+ ]
+
+ if (is_nacl) {
+ sources += [
+ "nacl_irt/irt_ppapi.cc",
+ "nacl_irt/irt_ppapi.h",
+ "nacl_irt/irt_start.cc",
+ "nacl_irt/manifest_service.cc",
+ "nacl_irt/manifest_service.h",
+ "nacl_irt/plugin_main.cc",
+ "nacl_irt/plugin_main.h",
+ "nacl_irt/plugin_startup.cc",
+ "nacl_irt/plugin_startup.h",
+ "nacl_irt/ppapi_dispatcher.cc",
+ "nacl_irt/ppapi_dispatcher.h",
+ ]
+ } else {
+ sources += [
+ "proxy/audio_input_resource.cc",
+ "proxy/audio_input_resource.h",
+ "proxy/broker_dispatcher.cc",
+ "proxy/broker_dispatcher.h",
+ "proxy/browser_font_singleton_resource.cc",
+ "proxy/browser_font_singleton_resource.h",
+ "proxy/device_enumeration_resource_helper.cc",
+ "proxy/device_enumeration_resource_helper.h",
+ "proxy/flash_clipboard_resource.cc",
+ "proxy/flash_clipboard_resource.h",
+ "proxy/flash_drm_resource.cc",
+ "proxy/flash_drm_resource.h",
+ "proxy/flash_file_resource.cc",
+ "proxy/flash_file_resource.h",
+ "proxy/flash_font_file_resource.cc",
+ "proxy/flash_font_file_resource.h",
+ "proxy/flash_fullscreen_resource.cc",
+ "proxy/flash_fullscreen_resource.h",
+ "proxy/flash_menu_resource.cc",
+ "proxy/flash_menu_resource.h",
+ "proxy/flash_resource.cc",
+ "proxy/flash_resource.h",
+ "proxy/host_dispatcher.cc",
+ "proxy/host_dispatcher.h",
+ "proxy/host_var_serialization_rules.cc",
+ "proxy/host_var_serialization_rules.h",
+ "proxy/pdf_resource.cc",
+ "proxy/pdf_resource.h",
+ "proxy/platform_verification_private_resource.cc",
+ "proxy/platform_verification_private_resource.h",
+ "proxy/ppb_broker_proxy.cc",
+ "proxy/ppb_broker_proxy.h",
+ "proxy/ppb_buffer_proxy.cc",
+ "proxy/ppb_buffer_proxy.h",
+ "proxy/ppb_flash_message_loop_proxy.cc",
+ "proxy/ppb_flash_message_loop_proxy.h",
+ "proxy/ppb_video_decoder_proxy.cc",
+ "proxy/ppb_video_decoder_proxy.h",
+ "proxy/ppp_content_decryptor_private_proxy.cc",
+ "proxy/ppp_content_decryptor_private_proxy.h",
+ "proxy/ppp_instance_private_proxy.cc",
+ "proxy/ppp_instance_private_proxy.h",
+ "proxy/ppp_video_decoder_proxy.cc",
+ "proxy/ppp_video_decoder_proxy.h",
+ "proxy/talk_resource.cc",
+ "proxy/talk_resource.h",
+ "proxy/video_capture_resource.cc",
+ "proxy/video_capture_resource.h",
+ ]
+ }
+
+ defines = [ "PPAPI_PROXY_IMPLEMENTATION" ]
+
+ deps = [
+ ":ppapi_c",
+ ":ppapi_shared",
+ ":ppapi_ipc",
+ "//base",
+ "//base/third_party/dynamic_annotations",
+ "//gpu/command_buffer/client:gles2_implementation",
+ "//gpu/ipc",
+ #"//media:shared_memory_support", # TODO(GYP)
+ "//ipc",
+ "//skia",
+ "//third_party/icu",
+ "//ui/surface",
+ #blink_target, TODO(GYP)
+ ]
+
+ if (is_win) {
+ cflags = [ "/wd4267" ] # size_t to int truncation.
+ }
+}
+
+# TODO(GYP) other targets from ppapi_tests.gyp
diff --git a/chromium/ppapi/PRESUBMIT.py b/chromium/ppapi/PRESUBMIT.py
index 46038fbe70e..c8d61784888 100644
--- a/chromium/ppapi/PRESUBMIT.py
+++ b/chromium/ppapi/PRESUBMIT.py
@@ -66,8 +66,6 @@ def CheckTODO(input_api, output_api):
# Only examine public stable interfaces.
if name_parts[2] in ['dev', 'private', 'trusted']:
continue
- if name_parts[2] == 'extensions' and name_parts[3] == 'dev':
- continue
filepath = os.path.join('..', filename)
if RE_TODO.search(open(filepath, 'rb').read()):
@@ -146,6 +144,38 @@ def CheckUpdatedNaClSDK(input_api, output_api):
'PPAPI Interface modified without updating NaCl SDK.',
output_api)
+# Verify that changes to ppapi/thunk/interfaces_* files have a corresponding
+# change to tools/metrics/histograms/histograms.xml for UMA tracking.
+def CheckHistogramXml(input_api, output_api):
+ # We can't use input_api.LocalPaths() here because we need to know about
+ # changes outside of ppapi/. See tools/depot_tools/presubmit_support.py for
+ # details on input_api.
+ files = input_api.change.AffectedFiles()
+
+ INTERFACE_FILES = ('ppapi/thunk/interfaces_legacy.h',
+ 'ppapi/thunk/interfaces_ppb_private_flash.h',
+ 'ppapi/thunk/interfaces_ppb_private.h',
+ 'ppapi/thunk/interfaces_ppb_private_no_permissions.h',
+ 'ppapi/thunk/interfaces_ppb_public_dev_channel.h',
+ 'ppapi/thunk/interfaces_ppb_public_dev.h',
+ 'ppapi/thunk/interfaces_ppb_public_stable.h')
+ HISTOGRAM_XML_FILE = 'tools/metrics/histograms/histograms.xml'
+ interface_changes = []
+ has_histogram_xml_change = False
+ for filename in files:
+ path = filename.LocalPath()
+ if path in INTERFACE_FILES:
+ interface_changes.append(path)
+ if path == HISTOGRAM_XML_FILE:
+ has_histogram_xml_change = True
+
+ if interface_changes and not has_histogram_xml_change:
+ return [output_api.PresubmitNotifyResult(
+ 'Missing change to tools/metrics/histograms/histograms.xml.\n' +
+ 'Run pepper_hash_for_uma to make get values for new interfaces.\n' +
+ 'Interface changes:\n' + '\n'.join(interface_changes))]
+ return []
+
def CheckChange(input_api, output_api):
results = []
@@ -157,16 +187,27 @@ def CheckChange(input_api, output_api):
results.extend(CheckUpdatedNaClSDK(input_api, output_api))
+ results.extend(CheckHistogramXml(input_api, output_api))
+
# Verify all modified *.idl have a matching *.h
files = input_api.LocalPaths()
h_files = []
idl_files = []
generators_changed = False
+ # These are autogenerated by the command buffer generator, they don't go
+ # through idl.
+ whitelist = ['ppb_opengles2', 'ppb_opengles2ext_dev']
+
+ # The PDF interface is hand-written.
+ whitelist += ['ppb_pdf', 'ppp_pdf']
+
# Find all relevant .h and .idl files.
for filename in files:
name, ext = os.path.splitext(filename)
name_parts = name.split(os.sep)
+ if name_parts[-1] in whitelist:
+ continue
if name_parts[0:2] == ['ppapi', 'c'] and ext == '.h':
h_files.append('/'.join(name_parts[2:]))
elif name_parts[0:2] == ['ppapi', 'api'] and ext == '.idl':
diff --git a/chromium/ppapi/api/dev/pp_optional_structs_dev.idl b/chromium/ppapi/api/dev/pp_optional_structs_dev.idl
deleted file mode 100644
index 3e0829fe40f..00000000000
--- a/chromium/ppapi/api/dev/pp_optional_structs_dev.idl
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines optional structs for primitive types.
- */
-
-struct PP_Optional_Double_Dev {
- double_t value;
- PP_Bool is_set;
-};
-
diff --git a/chromium/ppapi/api/dev/ppb_alarms_dev.idl b/chromium/ppapi/api/dev/ppb_alarms_dev.idl
deleted file mode 100644
index b2345c4c5cb..00000000000
--- a/chromium/ppapi/api/dev/ppb_alarms_dev.idl
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the Pepper equivalent of the <code>chrome.alarms</code>
- * extension API.
- */
-
-label Chrome {
- M33 = 0.1
-};
-
-struct PP_Alarms_Alarm_Dev {
- /**
- * Name of this alarm.
- */
- PP_Var name;
- /**
- * Time at which this alarm was scheduled to fire, in milliseconds past the
- * epoch. For performance reasons, the alarm may have been delayed an
- * arbitrary amount beyond this.
- */
- double_t scheduled_time;
- /**
- * If set, the alarm is a repeating alarm and will fire again in
- * <code>period_in_minutes</code> minutes.
- */
- PP_Optional_Double_Dev period_in_minutes;
-};
-
-struct PP_Alarms_AlarmCreateInfo_Dev {
- /**
- * Time at which the alarm should fire, in milliseconds past the epoch.
- */
- PP_Optional_Double_Dev when;
- /**
- * Length of time in minutes after which the
- * <code>PP_Alarms_OnAlarm_Dev</code> event should fire.
- */
- PP_Optional_Double_Dev delay_in_minutes;
- /**
- * If set, the <code>PP_Alarms_OnAlarm_Dev</code> event should fire every
- * <code>period_in_minutes</code> minutes after the initial event specified by
- * <code>when</code> or <code>delay_in_minutes</code>. If not set, the alarm
- * will only fire once.
- */
- PP_Optional_Double_Dev period_in_minutes;
-};
-
-struct PP_Alarms_Alarm_Array_Dev {
- uint32_t size;
- [size_is(count)] PP_Alarms_Alarm_Dev[] elements;
-};
-
-/**
- * Fired when an alarm has elapsed. Useful for event pages.
- *
- * @param[in] listener_id The listener ID.
- * @param[inout] user_data The opaque pointer that was used when registering the
- * listener.
- * @param[in] alarm The alarm that has elapsed.
- */
-typedef void PP_Alarms_OnAlarm_Dev(
- [in] uint32_t listener_id,
- [inout] mem_t user_data,
- [in] PP_Alarms_Alarm_Dev alarm);
-
-interface PPB_Alarms_Dev {
- /**
- * Creates an alarm. Near the time(s) specified by <code>alarm_info</code>,
- * the <code>PP_Alarms_OnAlarm_Dev</code> event is fired. If there is another
- * alarm with the same name (or no name if none is specified), it will be
- * cancelled and replaced by this alarm.
- *
- * In order to reduce the load on the user's machine, Chrome limits alarms
- * to at most once every 1 minute but may delay them an arbitrary amount more.
- * That is, setting
- * <code>PP_Alarms_AlarmCreateInfo_Dev.delay_in_minutes</code> or
- * <code>PP_Alarms_AlarmCreateInfo_Dev.period_in_minutes</code> to less than
- * <code>1</code> will not be honored and will cause a warning.
- * <code>PP_Alarms_AlarmCreateInfo_Dev.when</code> can be set to less than 1
- * minute after "now" without warning but won't actually cause the alarm to
- * fire for at least 1 minute.
- *
- * To help you debug your app or extension, when you've loaded it unpacked,
- * there's no limit to how often the alarm can fire.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. Optional name to
- * identify this alarm. Defaults to the empty string.
- * @param[in] alarm_info Describes when the alarm should fire. The initial
- * time must be specified by either <code>when</code> or
- * <code>delay_in_minutes</code> (but not both). If
- * <code>period_in_minutes</code> is set, the alarm will repeat every
- * <code>period_in_minutes</code> minutes after the initial event. If neither
- * <code>when</code> or <code>delay_in_minutes</code> is set for a repeating
- * alarm, <code>period_in_minutes</code> is used as the default for
- * <code>delay_in_minutes</code>.
- */
- void Create(
- [in] PP_Instance instance,
- [in] PP_Var name,
- [in] PP_Alarms_AlarmCreateInfo_Dev alarm_info);
-
- /**
- * Retrieves details about the specified alarm.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. The name of the
- * alarm to get. Defaults to the empty string.
- * @param[out] alarm A <code>PP_Alarms_Alarm_Dev</code> struct to store the
- * output result.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
- * completion.
- *
- * @return An error code from <code>pp_errors.h</code>
- */
- int32_t Get(
- [in] PP_Instance instance,
- [in] PP_Var name,
- [out] PP_Alarms_Alarm_Dev alarm,
- [in] PP_CompletionCallback callback);
-
- /**
- * Gets an array of all the alarms.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[out] alarms A <code>PP_Alarms_Alarm_Array_Dev</code> to store the
- * output result.
- * @param[in] array_allocator A <code>PP_ArrayOutput</code> to allocate memory
- * for <code>alarms</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
- * completion.
- *
- * @return An error code from <code>pp_errors.h</code>
- */
- int32_t GetAll(
- [in] PP_Instance instance,
- [out] PP_Alarms_Alarm_Array_Dev alarms,
- [in] PP_ArrayOutput array_allocator,
- [in] PP_CompletionCallback callback);
-
- /**
- * Clears the alarm with the given name.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. The name of the
- * alarm to clear. Defaults to the empty string.
- */
- void Clear(
- [in] PP_Instance instance,
- [in] PP_Var name);
-
- /**
- * Clears all alarms.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- */
- void ClearAll(
- [in] PP_Instance instance);
-
- /**
- * Registers <code>PP_Alarms_OnAlarm_Dev</code> event.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] callback The callback to receive notifications.
- * @param[inout] user_data An opaque pointer that will be passed to
- * <code>callback</code>.
- *
- * @return A listener ID, or 0 if failed.
- *
- * TODO(yzshen): add a PPB_Events_Dev interface for unregistering:
- * void UnregisterListener(PP_instance instance, uint32_t listener_id);
- */
- uint32_t AddOnAlarmListener(
- [in] PP_Instance instance,
- [in] PP_Alarms_OnAlarm_Dev callback,
- [inout] mem_t user_data);
-};
diff --git a/chromium/ppapi/api/dev/ppb_audio_input_dev.idl b/chromium/ppapi/api/dev/ppb_audio_input_dev.idl
index fe960253898..71ce6eb7525 100644
--- a/chromium/ppapi/api/dev/ppb_audio_input_dev.idl
+++ b/chromium/ppapi/api/dev/ppb_audio_input_dev.idl
@@ -9,7 +9,6 @@
*/
label Chrome {
- M19 = 0.2,
M25 = 0.3,
M30 = 0.4
};
@@ -75,33 +74,6 @@ interface PPB_AudioInput_Dev {
/**
* Enumerates audio input devices.
*
- * Please note that:
- * - this method ignores the previous value pointed to by <code>devices</code>
- * (won't release reference even if it is not 0);
- * - <code>devices</code> must be valid until <code>callback</code> is called,
- * if the method returns <code>PP_OK_COMPLETIONPENDING</code>;
- * - the ref count of the returned <code>devices</code> has already been
- * increased by 1 for the caller.
- *
- * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
- * input resource.
- * @param[out] devices Once the operation is completed successfully,
- * <code>devices</code> will be set to a <code>PPB_ResourceArray_Dev</code>
- * resource, which holds a list of <code>PPB_DeviceRef_Dev</code> resources.
- * @param[in] callback A <code>PP_CompletionCallback</code> to run on
- * completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [deprecate=0.3]
- int32_t EnumerateDevices(
- [in] PP_Resource audio_input,
- [out] PP_Resource devices,
- [in] PP_CompletionCallback callback);
-
- /**
- * Enumerates audio input devices.
- *
* @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
* input resource.
* @param[in] output An output array which will receive
diff --git a/chromium/ppapi/api/dev/ppb_file_io_dev.idl b/chromium/ppapi/api/dev/ppb_file_io_dev.idl
deleted file mode 100644
index 82a64521116..00000000000
--- a/chromium/ppapi/api/dev/ppb_file_io_dev.idl
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-/**
- * This file defines methods for use with a PPB_FileIO resource that may become
- * stable in the future. For now, they can be used only in plugins with DEV
- * permissions.
- */
-
-label Chrome {
- M31 = 0.1
-};
-
-/**
- * The PP_FileMapProtection values indicate the permissions requested for the
- * file mapping. These should be used in a uint32_t bitfield.
- */
-[assert_size(4)]
- enum PP_FileMapProtection {
- /** Requests read access to the mapped address. */
- PP_FILEMAPPROTECTION_READ = 1u << 0,
-
- /** Requests write access to the mapped address. */
- PP_FILEMAPPROTECTION_WRITE = 1u << 1
-};
-
-/**
- * The PP_FileMapFlags contain flag values for use with Map().
- */
-[assert_size(4)]
- enum PP_FileMapFlags {
- /**
- * Requests a shared mapping. If this flag is set, changes written to the
- * memory region will be reflected in the underlying file and will thus
- * eventually be visible to other processes which have opened the file. The
- * file may not actually be updated until Unmap() is called. This is only
- * valid if the PPB_FileIO resource was opened with write permission.
- */
- PP_FILEMAPFLAG_SHARED = 1u << 0,
-
- /**
- * Requests a copy-on-write mapping. If this flag is set, changes are not
- * written to the underlying file, but only in the memory of the process
- * (copy-on-write).
- */
- PP_FILEMAPFLAG_PRIVATE = 1u << 1,
-
- /**
- * Forces Map() to map the file contents at the provided |address|. If Map()
- * can not comply, Map() will fail.
- */
- PP_FILEMAPFLAG_FIXED = 1u << 2
-};
-
-/**
- * PPB_FileIO_Dev contains functions that are usable with PPB_FileIO resources
- * but aren't yet considered stable yet and thus are not supported for general
- * NaCl or PNaCl apps yet. Features here are being tested and refined for
- * possible future inclusion in (stable) PPB_FileIO.
- */
-interface PPB_FileIO_Dev {
- /**
- * Map() maps the contents from an offset of the file into memory.
- *
- * @param[in] file_io A PP_Resource corresponding to a file.
- * @param[in] length The number of bytes to map.
- * @param[in] map_protection A bitfield containing values from
- * PP_FileMapProtection, indicating what memory operations should be permitted
- * on the mapped region.
- * @param[in] map_flags A bitfield containing values from
- * PP_FileMapFlags, providing options for the behavior of Map. If the region
- * is to be writeable, then exactly one of PP_FILEMAPFLAG_SHARED or
- * PP_FILEMAPFLAG_PRIVATE must be set.
- * @param[in] offset The offset into the file. Must be a multiple of the
- * Map page size as returned by GetMapPageSize.
- * @param[inout] address The value of |*address|, if non-NULL, will be used as
- * a hint to determine where in memory the file should be mapped. If the value
- * is NULL, the host operating system will choose |address|. Upon
- * Map() completing, |*address| will contain the actual memory location at
- * which the file was mapped. If the plugin provides a non-NULL |*address|, it
- * must be a multiple of the map page size as returned by GetMapPageSize().
- * @param[in] callback A PP_CompletionCallback to be called upon
- * completion of Map().
- *
- * @return An int32_t containing an error code from <code>pp_errors.h</code>.
- */
- int32_t Map([in] PP_Resource file_io,
- [in] int64_t length,
- [in] uint32_t map_protection,
- [in] uint32_t map_flags,
- [in] int64_t offset,
- [inout] mem_ptr_t address,
- [in] PP_CompletionCallback callback);
-
- /**
- * Unmap() deletes the mapping of the specified address address to a
- * file io. The specified address must have been retrieved with
- * Map().
- * @param[in] file_io A PP_Resource corresponding to a file.
- * @param[in] address The starting address of the address in memory to
- * be unmapped.
- * @param[in] length The length of the region to unmap.
- */
- void Unmap(PP_Resource file_io, mem_t address, int64_t length);
-
- /**
- * GetMapPageSize() returns the size of pages that Map() uses. Returns 0 on
- * failure.
- */
- [on_failure=0]
- int64_t GetMapPageSize(PP_Resource file_io);
-};
-
diff --git a/chromium/ppapi/api/dev/ppb_find_dev.idl b/chromium/ppapi/api/dev/ppb_find_dev.idl
deleted file mode 100644
index 4f92f1ce971..00000000000
--- a/chromium/ppapi/api/dev/ppb_find_dev.idl
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_Find_Dev</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
- M14 = 0.3
-};
-
-interface PPB_Find_Dev {
- /**
- * Updates the number of find results for the current search term. If
- * there are no matches 0 should be passed in. Only when the plugin has
- * finished searching should it pass in the final count with final_result set
- * to PP_TRUE.
- */
- void NumberOfFindResultsChanged(
- [in] PP_Instance instance,
- [in] int32_t total,
- [in] PP_Bool final_result);
-
- /**
- * Updates the index of the currently selected search item.
- */
- void SelectedFindResultChanged(
- [in] PP_Instance instance,
- [in] int32_t index);
-};
-
diff --git a/chromium/ppapi/api/dev/ppb_graphics_2d_dev.idl b/chromium/ppapi/api/dev/ppb_graphics_2d_dev.idl
deleted file mode 100644
index 28a844416a6..00000000000
--- a/chromium/ppapi/api/dev/ppb_graphics_2d_dev.idl
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* This file contains the <code>PPB_Graphics2D_Dev</code> interface. */
-
-[generate_thunk]
-
-label Chrome {
- M22 = 0.1,
- M32 = 0.2
-};
-
-/**
- * These options affect how the existing graphics context is displayed when a
- * plugin is resized.
- */
-[assert_size(4)]
-enum PP_Graphics2D_Dev_ResizeMode {
- /**
- * In this mode, the context does not change size or offset. If the backing
- * store is the same size as the plugin element, this will result in the
- * pixels on the right side of the plugin element being unavailable, revealing
- * the contents underneath it.
- */
- PP_GRAPHICS2D_DEV_RESIZEMODE_DEFAULT,
- /**
- * In this mode, the context and its offset are scaled relative to how much
- * the plugin element has been resized.
- */
- PP_GRAPHICS2D_DEV_RESIZEMODE_STRETCH
-};
-
-/* PPB_Graphics2D_Dev interface */
-interface PPB_Graphics2D_Dev {
- /**
- * SetScale() sets the scale factor that will be applied when painting the
- * graphics context onto the output device. Typically, if rendering at device
- * resolution is desired, the context would be created with the width and
- * height scaled up by the view's GetDeviceScale and SetScale called with a
- * scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
- * to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
- * 2.0, one would call Create with a size of (w=400, h=200) and then call
- * SetScale with 0.5. One would then treat each pixel in the context as a
- * single device pixel.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] scale The scale to apply when painting.
- *
- * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
- * the resource is invalid or the scale factor is 0 or less.
- */
- PP_Bool SetScale(
- [in] PP_Resource resource,
- [in] float_t scale);
-
- /***
- * GetScale() gets the scale factor that will be applied when painting the
- * graphics context onto the output device.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- *
- * @return Returns the scale factor for the graphics context. If the resource
- * is not a valid <code>Graphics2D</code> context, this will return 0.0.
- */
- float_t GetScale(
- [in] PP_Resource resource);
-
- /***
- * Sets the offset into the plugin element at which the graphics context is
- * painted. This allows a portion of the plugin element to be painted to.
- * The new offset will only be applied after Flush() has been called.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] offset The offset at which the context should be painted.
- */
- [version=0.2]
- void SetOffset(
- [in] PP_Resource resource,
- [in] PP_Point offset);
-
- /***
- * Sets the resize mode for the graphics context. When a plugin element is
- * resized in the DOM, it takes time for the plugin to update the graphics
- * context in the renderer. These options affect how the existing context is
- * displayed until the backing store is updated by the plugin.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] resize_mode The resize mode to change this context to.
- */
- void SetResizeMode(
- [in] PP_Resource resource,
- [in] PP_Graphics2D_Dev_ResizeMode resize_mode);
-};
-
diff --git a/chromium/ppapi/api/dev/ppb_keyboard_input_event_dev.idl b/chromium/ppapi/api/dev/ppb_keyboard_input_event_dev.idl
deleted file mode 100644
index 0612b99411d..00000000000
--- a/chromium/ppapi/api/dev/ppb_keyboard_input_event_dev.idl
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_KeyboardInputEvent_Dev</code> interface,
- * which provides access to USB key codes that identify the physical key being
- * pressed.
- */
-
-label Chrome {
- M31 = 0.2
-};
-
-/**
- * The <code>PPB_KeyboardInputEvent_Dev</code> interface is an extension to the
- * PPB_KeyboardInputEvent</code> interface that provides
- */
-[macro="PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE"]
-interface PPB_KeyboardInputEvent_Dev {
- /**
- * This sets a USB key code in the given <code>PP_Resource</code>. It is
- * intended that this method be called immediately after any call to
- * <code>Create</code>.
- *
- * @param[in] key_event A <code>PP_Resource</code> created by
- * <code>PPB_KeyboardInputEvent</code>'s <code>Create</code> method.
- *
- * @param[in] usb_key_code The USB key code to associate with this
- * <code>key_event</code>.
- *
- * @return <code>PP_TRUE</code> if the USB key code was set successfully.
- */
- PP_Bool SetUsbKeyCode([in] PP_Resource key_event,
- [in] uint32_t usb_key_code);
-
- /**
- * GetUsbKeyCode() returns the USB key code associated with this keyboard
- * event.
- *
- * @param[in] key_event The key event for which to return the key code.
- *
- * @return The USB key code field for the keyboard event. If there is no
- * USB scancode associated with this event, or if the PP_Resource does not
- * support the PPB_InputEvent_API (i.e., it is not an input event), then
- * a 0 is returned.
- */
- uint32_t GetUsbKeyCode([in] PP_Resource key_event);
-
- /**
- * GetCode() returns the DOM |code| field for this keyboard event, as
- * defined by the UI Events spec: http://www.w3.org/TR/uievents/
- *
- * @param[in] key_event The key event for which to return the key code.
- *
- * @return The string that contains the DOM |code| for the keyboard event.
- */
- PP_Var GetCode([in] PP_Resource key_event);
-};
diff --git a/chromium/ppapi/api/dev/ppb_resource_array_dev.idl b/chromium/ppapi/api/dev/ppb_resource_array_dev.idl
deleted file mode 100644
index b7497b23735..00000000000
--- a/chromium/ppapi/api/dev/ppb_resource_array_dev.idl
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_ResourceArray_Dev</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
- M18 = 0.1
-};
-
-/**
- * A resource array holds a list of resources and retains a reference to each of
- * them.
- */
-interface PPB_ResourceArray_Dev {
- /**
- * Creates a resource array.
- * Note: It will add a reference to each of the elements.
- *
- * @param[in] elements <code>PP_Resource</code>s to be stored in the created
- * resource array.
- * @param[in] size The number of elements.
- *
- * @return A <code>PP_Resource</code> corresponding to a resource array if
- * successful; 0 if failed.
- */
- PP_Resource Create([in] PP_Instance instance,
- [in, size_as=size] PP_Resource[] elements,
- [in] uint32_t size);
-
- /**
- * Determines if the provided resource is a resource array.
- *
- * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
- * resource.
- *
- * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
- * resource is a resource array, otherwise <code>PP_FALSE</code>.
- */
- PP_Bool IsResourceArray([in] PP_Resource resource);
-
- /**
- * Gets the array size.
- *
- * @param[in] resource_array The resource array.
- *
- * @return How many elements are there in the array.
- */
- uint32_t GetSize([in] PP_Resource resource_array);
-
- /**
- * Gets the element at the specified position.
- * Note: It doesn't add a reference to the returned resource for the caller.
- *
- * @param[in] resource_array The resource array.
- * @param[in] index An integer indicating a position in the array.
- *
- * @return A <code>PP_Resource</code>. Returns 0 if the index is out of range.
- */
- PP_Resource GetAt(
- [in] PP_Resource resource_array,
- [in] uint32_t index);
-};
diff --git a/chromium/ppapi/api/dev/ppb_var_resource_dev.idl b/chromium/ppapi/api/dev/ppb_var_resource_dev.idl
deleted file mode 100644
index 2e5a6f307cc..00000000000
--- a/chromium/ppapi/api/dev/ppb_var_resource_dev.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_VarResource</code> struct providing
- * a way to interact with resource vars.
- */
-
-label Chrome {
- M32 = 0.1
-};
-
-[macro="PPB_VAR_RESOURCE_DEV_INTERFACE"]
-interface PPB_VarResource_Dev {
- /**
- * Converts a resource-type var to a <code>PP_Resource</code>.
- *
- * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
- *
- * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
- * is not a resource. The reference count of the resource is incremented on
- * behalf of the caller.
- */
- PP_Resource VarToResource([in] PP_Var var);
-
- /**
- * Creates a new <code>PP_Var</code> from a given resource.
- *
- * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
- *
- * @return A <code>PP_Var</code> created for this resource, with type
- * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
- * 1 on behalf of the caller.
- */
- PP_Var VarFromResource([in] PP_Resource resource);
-};
diff --git a/chromium/ppapi/api/dev/ppb_video_capture_dev.idl b/chromium/ppapi/api/dev/ppb_video_capture_dev.idl
index 89379608624..a05374a4107 100644
--- a/chromium/ppapi/api/dev/ppb_video_capture_dev.idl
+++ b/chromium/ppapi/api/dev/ppb_video_capture_dev.idl
@@ -7,7 +7,6 @@
* This file defines the <code>PPB_VideoCapture_Dev</code> interface.
*/
label Chrome {
- M19 = 0.2,
M25 = 0.3
};
@@ -54,25 +53,6 @@ interface PPB_VideoCapture_Dev {
[in] PP_Resource video_capture);
/**
- * Enumerates video capture devices. Once the operation is completed
- * successfully, |devices| will be set to a PPB_ResourceArray_Dev resource,
- * which holds a list of PPB_DeviceRef_Dev resources.
- *
- * Please note that:
- * - this method ignores the previous value pointed to by |devices| (won't
- * release reference even if it is not 0);
- * - |devices| must be valid until |callback| is called, if the method
- * returns PP_OK_COMPLETIONPENDING;
- * - the ref count of the returned |devices| has already been increased by 1
- * for the caller.
- */
- [deprecate=0.3]
- int32_t EnumerateDevices(
- [in] PP_Resource video_capture,
- [out] PP_Resource devices,
- [in] PP_CompletionCallback callback);
-
- /**
* Enumerates video capture devices.
*
* @param[in] video_capture A <code>PP_Resource</code> corresponding to a
diff --git a/chromium/ppapi/api/extensions/dev/ppb_ext_socket_dev.idl b/chromium/ppapi/api/extensions/dev/ppb_ext_socket_dev.idl
deleted file mode 100644
index 9b0fc7b3aee..00000000000
--- a/chromium/ppapi/api/extensions/dev/ppb_ext_socket_dev.idl
+++ /dev/null
@@ -1,542 +0,0 @@
-/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the Pepper equivalent of the <code>chrome.socket</code>
- * extension API.
- */
-
-label Chrome {
- M28 = 0.1,
- M29 = 0.2
-};
-
-/**
- * A string <code>PP_Var</code> which has one of the following values:
- * - "tcp"
- * - "udp"
- */
-typedef PP_Var PP_Ext_Socket_SocketType_Dev;
-
-/**
- * A dictionary <code>PP_Var</code>.
- */
-typedef PP_Var PP_Ext_Socket_CreateOptions_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "socketId" : integer <code>PP_Var</code>
- * The id of the newly created socket.
- */
-typedef PP_Var PP_Ext_Socket_CreateInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * - "socketId" : integer or undefined <code>PP_Var</code>
- * The id of the accepted socket.
- */
-typedef PP_Var PP_Ext_Socket_AcceptInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * The resultCode returned from the underlying read() call.
- * - "data" : array buffer <code>PP_Var</code>
- */
-typedef PP_Var PP_Ext_Socket_ReadInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "bytesWritten" : integer <code>PP_Var</code>
- * The number of bytes sent, or a negative error code.
- */
-typedef PP_Var PP_Ext_Socket_WriteInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * The resultCode returned from the underlying recvfrom() call.
- * - "data": array buffer <code>PP_Var</code>
- * - "address": string <code>PP_Var</code>
- * The address of the remote machine.
- * - "port": integer <code>PP_Var</code>
- */
-typedef PP_Var PP_Ext_Socket_RecvFromInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "socketType" : string <code>PP_Var</code> which matches the description of
- * <code>PP_Ext_Socket_SocketType_Dev</code>
- * The type of the passed socket. This will be <code>tcp</code> or
- * <code>udp</code>.
- * - "connected" : boolean <code>PP_Var</code>
- * Whether or not the underlying socket is connected.
- *
- * For <code>tcp</code> sockets, this will remain true even if the remote peer
- * has disconnected. Reading or writing to the socket may then result in an
- * error, hinting that this socket should be disconnected via
- * <code>Disconnect()</code>.
- *
- * For <code>udp</code> sockets, this just represents whether a default remote
- * address has been specified for reading and writing packets.
- * - "peerAddress" : string or undefined <code>PP_Var</code>
- * If the underlying socket is connected, contains the IPv4/6 address of the
- * peer.
- * - "peerPort" : integer or undefined <code>PP_Var</code>
- * If the underlying socket is connected, contains the port of the connected
- * peer.
- * - "localAddress" : string or undefined <code>PP_Var</code>
- * If the underlying socket is bound or connected, contains its local IPv4/6
- * address.
- * - "localPort" : integer or undefined <code>PP_Var</code>
- * If the underlying socket is bound or connected, contains its local port.
- */
-typedef PP_Var PP_Ext_Socket_SocketInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "name" : string <code>PP_Var</code>
- * The underlying name of the adapter. On *nix, this will typically be "eth0",
- * "lo", etc.
- * - "address": string <code>PP_Var</code>
- * The available IPv4/6 address.
- */
-typedef PP_Var PP_Ext_Socket_NetworkInterface_Dev;
-
-/**
- * An array <code>PP_Var</code> which contains elements of
- * <code>PP_Ext_Socket_NetworkInterface_Dev</code>.
- */
-typedef PP_Var PP_Ext_Socket_NetworkInterface_Dev_Array;
-
-interface PPB_Ext_Socket_Dev {
- /**
- * Creates a socket of the specified type that will connect to the specified
- * remote machine.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] type A <code>PP_Ext_Socket_SocketType_Dev</code>. The type of
- * socket to create. Must be <code>tcp</code> or <code>udp</code>.
- * @param[in] options An undefined <code>PP_Var</code> or
- * <code>PP_Ext_Socket_CreateOptions_Dev</code>. The socket options.
- * @param[out] create_info A <code>PP_Ext_Socket_CreateInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Create(
- [in] PP_Instance instance,
- [in] PP_Ext_Socket_SocketType_Dev type,
- [in] PP_Ext_Socket_CreateOptions_Dev options,
- [out] PP_Ext_Socket_CreateInfo_Dev create_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * Destroys the socket. Each socket created should be destroyed after use.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- */
- void Destroy(
- [in] PP_Instance instance,
- [in] PP_Var socket_id);
-
- /**
- * Connects the socket to the remote machine (for a <code>tcp</code> socket).
- * For a <code>udp</code> socket, this sets the default address which packets
- * are sent to and read from for <code>Read()</code> and <code>Write()</code>
- * calls.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] hostname A string <code>PP_Var</code>. The hostname or IP
- * address of the remote machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the remote
- * machine.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Connect(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var hostname,
- [in] PP_Var port,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Binds the local address for socket. Currently, it does not support TCP
- * socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The address of the local
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the local
- * machine.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Bind(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var address,
- [in] PP_Var port,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Disconnects the socket. For UDP sockets, <code>Disconnect</code> is a
- * non-operation but is safe to call.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- */
- void Disconnect(
- [in] PP_Instance instance,
- [in] PP_Var socket_id);
-
- /**
- * Reads data from the given connected socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
- * read buffer size.
- * @param[out] read_info A <code>PP_Ext_Socket_ReadInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Read(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var buffer_size,
- [out] PP_Ext_Socket_ReadInfo_Dev read_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * Writes data on the given connected socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] data An array buffer <code>PP_Var</code>. The data to write.
- * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Write(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var data,
- [out] PP_Ext_Socket_WriteInfo_Dev write_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * Receives data from the given UDP socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
- * receive buffer size.
- * @param[out] recv_from_info A <code>PP_Ext_Socket_RecvFromInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t RecvFrom(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var buffer_size,
- [out] PP_Ext_Socket_RecvFromInfo_Dev recv_from_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * Sends data on the given UDP socket to the given address and port.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] data An array buffer <code>PP_Var</code>.
- * @param[in] address A string <code>PP_Var</code>. The address of the remote
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the remote
- * machine.
- * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t SendTo(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var data,
- [in] PP_Var address,
- [in] PP_Var port,
- [out] PP_Ext_Socket_WriteInfo_Dev write_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * This method applies to TCP sockets only.
- * Listens for connections on the specified port and address. This effectively
- * makes this a server socket, and client socket functions (Connect, Read,
- * Write) can no longer be used on this socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The address of the local
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the local
- * machine.
- * @param[in] backlog An undefined or integer <code>PP_Var</code>. Length of
- * the socket's listen queue.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Listen(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var address,
- [in] PP_Var port,
- [in] PP_Var backlog,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * This method applies to TCP sockets only.
- * Registers a callback function to be called when a connection is accepted on
- * this listening server socket. Listen must be called first.
- * If there is already an active accept callback, this callback will be
- * invoked immediately with an error as the resultCode.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] accept_info A <code>PP_Ext_Socket_AcceptInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t Accept(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [out] PP_Ext_Socket_AcceptInfo_Dev accept_info,
- [in] PP_CompletionCallback callback);
-
- /**
- * Enables or disables the keep-alive functionality for a TCP connection.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] enable A boolean <code>PP_Var</code>. If true, enable keep-alive
- * functionality.
- * @param[in] delay An undefined or integer <code>PP_Var</code>. Set the delay
- * seconds between the last data packet received and the first keepalive
- * probe. Default is 0.
- * @param[out] result A boolean <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t SetKeepAlive(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var enable,
- [in] PP_Var delay,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Sets or clears <code>TCP_NODELAY</code> for a TCP connection. Nagle's
- * algorithm will be disabled when <code>TCP_NODELAY</code> is set.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] no_delay A boolean <code>PP_Var</code>.
- * @param[out] result A boolean <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t SetNoDelay(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var no_delay,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Retrieves the state of the given socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] result A <code>PP_Ext_Socket_SocketInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t GetInfo(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [out] PP_Ext_Socket_SocketInfo_Dev result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Retrieves information about local adapters on this system.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[out] result A <code>PP_Ext_Socket_NetworkInterface_Dev_Array</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t GetNetworkList(
- [in] PP_Instance instance,
- [out] PP_Ext_Socket_NetworkInterface_Dev_Array result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Joins the multicast group and starts to receive packets from that group.
- * The socket must be of UDP type and must be bound to a local port before
- * calling this method.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The group address to join.
- * Domain names are not supported.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [version=0.2]
- int32_t JoinGroup(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var address,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Leaves the multicast group previously joined using <code>JoinGroup</code>.
- * It's not necessary to leave the multicast group before destroying the
- * socket or exiting. This is automatically called by the OS.
- *
- * Leaving the group will prevent the router from sending multicast datagrams
- * to the local host, presuming no other process on the host is still joined
- * to the group.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The group address to
- * leave. Domain names are not supported.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [version=0.2]
- int32_t LeaveGroup(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var address,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Sets the time-to-live of multicast packets sent to the multicast group.
- *
- * Calling this method does not require multicast permissions.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] ttl An integer <code>PP_Var</code>. The time-to-live value.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [version=0.2]
- int32_t SetMulticastTimeToLive(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var ttl,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Sets whether multicast packets sent from the host to the multicast group
- * will be looped back to the host.
- *
- * Note: the behavior of <code>SetMulticastLoopbackMode</code> is slightly
- * different between Windows and Unix-like systems. The inconsistency
- * happens only when there is more than one application on the same host
- * joined to the same multicast group while having different settings on
- * multicast loopback mode. On Windows, the applications with loopback off
- * will not RECEIVE the loopback packets; while on Unix-like systems, the
- * applications with loopback off will not SEND the loopback packets to
- * other applications on the same host. See MSDN: http://goo.gl/6vqbj
- *
- * Calling this method does not require multicast permissions.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] enabled A boolean <code>PP_Var</code>. Indicates whether to
- * enable loopback mode.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [version=0.2]
- int32_t SetMulticastLoopbackMode(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [in] PP_Var enabled,
- [out] PP_Var result,
- [in] PP_CompletionCallback callback);
-
- /**
- * Gets the multicast group addresses the socket is currently joined to.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] groups An array <code>PP_Var</code> of string
- * <code>PP_Var</code>s.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- [version=0.2]
- int32_t GetJoinedGroups(
- [in] PP_Instance instance,
- [in] PP_Var socket_id,
- [out] PP_Var groups,
- [in] PP_CompletionCallback callback);
-};
diff --git a/chromium/ppapi/api/pp_codecs.idl b/chromium/ppapi/api/pp_codecs.idl
new file mode 100644
index 00000000000..ecb61d02331
--- /dev/null
+++ b/chromium/ppapi/api/pp_codecs.idl
@@ -0,0 +1,57 @@
+/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Video profiles.
+ */
+enum PP_VideoProfile {
+ PP_VIDEOPROFILE_H264BASELINE = 0,
+ PP_VIDEOPROFILE_H264MAIN = 1,
+ PP_VIDEOPROFILE_H264EXTENDED = 2,
+ PP_VIDEOPROFILE_H264HIGH = 3,
+ PP_VIDEOPROFILE_H264HIGH10PROFILE = 4,
+ PP_VIDEOPROFILE_H264HIGH422PROFILE = 5,
+ PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6,
+ PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7,
+ PP_VIDEOPROFILE_H264SCALABLEHIGH = 8,
+ PP_VIDEOPROFILE_H264STEREOHIGH = 9,
+ PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10,
+ PP_VIDEOPROFILE_VP8MAIN = 11,
+ PP_VIDEOPROFILE_VP9MAIN = 12,
+ PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9MAIN
+};
+
+/**
+ * Struct describing a decoded video picture. The decoded picture data is stored
+ * in the GL texture corresponding to |texture_id|. The plugin can determine
+ * which Decode call generated the picture using |decode_id|.
+ */
+struct PP_VideoPicture {
+ /**
+ * |decode_id| parameter of the Decode call which generated this picture.
+ * See the PPB_VideoDecoder function Decode() for more details.
+ */
+ uint32_t decode_id;
+
+ /**
+ * Texture ID in the plugin's GL context. The plugin can use this to render
+ * the decoded picture.
+ */
+ uint32_t texture_id;
+
+ /**
+ * The GL texture target for the decoded picture. Possible values are:
+ * GL_TEXTURE_2D (normalized texture coordinates)
+ * GL_TEXTURE_RECTANGLE_ARB (dimension dependent texture coordinates)
+ *
+ * The pixel format of the texture is GL_RGBA.
+ */
+ uint32_t texture_target;
+
+ /**
+ * Dimensions of the texture holding the decoded picture.
+ */
+ PP_Size texture_size;
+};
diff --git a/chromium/ppapi/api/pp_errors.idl b/chromium/ppapi/api/pp_errors.idl
index 1e4e8706aa2..2d958ecaeeb 100644
--- a/chromium/ppapi/api/pp_errors.idl
+++ b/chromium/ppapi/api/pp_errors.idl
@@ -85,6 +85,17 @@
* input events, and there are reentrancy and deadlock issues).
*/
PP_ERROR_BLOCKS_MAIN_THREAD = -13,
+ /**
+ * This value indicates that the plugin sent bad input data to a resource,
+ * leaving it in an invalid state. The resource can't be used after returning
+ * this error and should be released.
+ */
+ PP_ERROR_MALFORMED_INPUT = -14,
+ /**
+ * This value indicates that a resource has failed. The resource can't be
+ * used after returning this error and should be released.
+ */
+ PP_ERROR_RESOURCE_FAILED = -15,
/** This value indicates failure due to a file that does not exist. */
PP_ERROR_FILENOTFOUND = -20,
@@ -129,6 +140,7 @@
* thread.
*/
PP_ERROR_WRONG_THREAD = -52,
+
/**
* This value indicates that the connection was closed. For TCP sockets, it
* corresponds to a TCP FIN.
diff --git a/chromium/ppapi/api/pp_macros.idl b/chromium/ppapi/api/pp_macros.idl
index 999da67d381..9f02c274985 100644
--- a/chromium/ppapi/api/pp_macros.idl
+++ b/chromium/ppapi/api/pp_macros.idl
@@ -86,22 +86,6 @@ PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, struct NAME, SIZE)
#define PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(NAME, SIZE) \
PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, enum NAME, SIZE)
-/* This is roughly copied from base/compiler_specific.h, and makes it possible
- to pass 'this' in a constructor initializer list, when you really mean it.
- E.g.:
- Foo::Foo(MyInstance* instance)
- : PP_ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {}
- */
-#if defined(_MSC_VER)
-# define PP_ALLOW_THIS_IN_INITIALIZER_LIST(code) \
- __pragma(warning(push)) \
- __pragma(warning(disable:4355)) \
- code \
- __pragma(warning(pop))
-#else
-# define PP_ALLOW_THIS_IN_INITIALIZER_LIST(code) code
-#endif
-
/**
* @}
* End of addtogroup PP
diff --git a/chromium/ppapi/api/pp_rect.idl b/chromium/ppapi/api/pp_rect.idl
index f342ab0e96a..b83e3cdb5a1 100644
--- a/chromium/ppapi/api/pp_rect.idl
+++ b/chromium/ppapi/api/pp_rect.idl
@@ -23,6 +23,21 @@ struct PP_Rect {
PP_Size size;
};
+/**
+ * The <code>PP_FloatRect</code> struct contains the size and location of a 2D
+ * rectangle.
+ */
+struct PP_FloatRect {
+ /**
+ * This value represents the x and y coordinates of the upper-left corner of
+ * the rectangle.
+ */
+ PP_FloatPoint point;
+
+ /** This value represents the width and height of the rectangle. */
+ PP_FloatSize size;
+};
+
#inline c
/**
@@ -52,6 +67,30 @@ PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y,
ret.size.height = h;
return ret;
}
+
+/**
+ * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y
+ * coordinates and width and height dimensions as float values.
+ *
+ * @param[in] x An float value representing a horizontal coordinate of a
+ * point, starting with 0 as the left-most coordinate.
+ * @param[in] y An float value representing a vertical coordinate of a point,
+ * starting with 0 as the top-most coordinate.
+ * @param[in] w An float value representing a width.
+ * @param[in] h An float value representing a height.
+ *
+ * @return A <code>PP_FloatRect</code> structure.
+ */
+PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y,
+ float w, float h) {
+ struct PP_FloatRect ret;
+ ret.point.x = x;
+ ret.point.y = y;
+ ret.size.width = w;
+ ret.size.height = h;
+ return ret;
+}
+
/**
* @}
*/
diff --git a/chromium/ppapi/api/pp_size.idl b/chromium/ppapi/api/pp_size.idl
index f289231c364..e320fadee61 100644
--- a/chromium/ppapi/api/pp_size.idl
+++ b/chromium/ppapi/api/pp_size.idl
@@ -18,6 +18,16 @@ struct PP_Size {
int32_t height;
};
+/**
+ * The <code>PP_FloatSize</code> struct contains the size of a 2D rectangle.
+ */
+struct PP_FloatSize {
+ /** This value represents the width of the rectangle. */
+ float_t width;
+ /** This value represents the height of the rectangle. */
+ float_t height;
+};
+
#inline c
/**
* @addtogroup Functions
@@ -39,6 +49,22 @@ PP_INLINE struct PP_Size PP_MakeSize(int32_t w, int32_t h) {
ret.height = h;
return ret;
}
+
+/**
+ * PP_MakeFloatSize() creates a <code>PP_FloatSize</code> given a
+ * width and height as float values.
+ *
+ * @param[in] w An float value representing a width.
+ * @param[in] h An float value representing a height.
+ *
+ * @return A <code>PP_FloatSize</code> structure.
+ */
+PP_INLINE struct PP_FloatSize PP_MakeFloatSize(float w, float h) {
+ struct PP_FloatSize ret;
+ ret.width = w;
+ ret.height = h;
+ return ret;
+}
/**
* @}
*/
diff --git a/chromium/ppapi/api/pp_var.idl b/chromium/ppapi/api/pp_var.idl
index 425d99ba7bf..545585d14ea 100644
--- a/chromium/ppapi/api/pp_var.idl
+++ b/chromium/ppapi/api/pp_var.idl
@@ -45,15 +45,15 @@ enum PP_VarType {
* The Var represents a string. The <code>as_id</code> field is used to
* identify the string, which may be created and retrieved from the
* <code>PPB_Var</code> interface. These objects are reference counted, so
- * AddRef and Release must be used properly to avoid memory leaks.
+ * AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_STRING = 5,
/**
* Represents a JavaScript object. This vartype is not currently usable
* from modules, although it is used internally for some tasks. These objects
- * are reference counted, so AddRef and Release must be used properly to avoid
- * memory leaks.
+ * are reference counted, so AddRef() and Release() must be used properly to
+ * avoid memory leaks.
*/
PP_VARTYPE_OBJECT = 6,
@@ -61,7 +61,7 @@ enum PP_VarType {
* Represents an array of Vars. The <code>as_id</code> field is used to
* identify the array, which may be created and manipulated from the
* <code>PPB_VarArray</code> interface. These objects are reference counted,
- * so AddRef and Release must be used properly to avoid memory leaks.
+ * so AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY = 7,
@@ -69,7 +69,8 @@ enum PP_VarType {
* Represents a mapping from strings to Vars. The <code>as_id</code> field is
* used to identify the dictionary, which may be created and manipulated from
* the <code>PPB_VarDictionary</code> interface. These objects are reference
- * counted, so AddRef and Release must be used properly to avoid memory leaks.
+ * counted, so AddRef() and Release() must be used properly to avoid memory
+ * leaks.
*/
PP_VARTYPE_DICTIONARY = 8,
@@ -78,15 +79,25 @@ enum PP_VarType {
* represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
* only meant to contain basic numeric types, and is always stored
* contiguously. See PPB_VarArrayBuffer_Dev for functions special to
- * ArrayBuffer vars. These objects are reference counted, so AddRef and
- * Release must be used properly to avoid memory leaks.
+ * ArrayBuffer vars. These objects are reference counted, so AddRef() and
+ * Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY_BUFFER = 9,
/**
- * Resources are not currently supported but will be added in the future
- * These objects are reference counted, so AddRef and Release must be used
- * properly to avoid memory leaks.
+ * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
+ * </code>. This can be useful for sending or receiving some types of
+ * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
+ * <code>PPP_Messaging</code>.
+ *
+ * These objects are reference counted, so AddRef() and Release() must be used
+ * properly to avoid memory leaks. Under normal circumstances, the
+ * <code>PP_Var</code> will implicitly hold a reference count on the
+ * <code>PP_Resource</code> on your behalf. For example, if you call
+ * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
+ * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
+ * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
+ * reference count goes to zero.
*/
PP_VARTYPE_RESOURCE = 10
};
diff --git a/chromium/ppapi/api/ppb.idl b/chromium/ppapi/api/ppb.idl
index 465b7e56b32..76d80b31900 100644
--- a/chromium/ppapi/api/ppb.idl
+++ b/chromium/ppapi/api/ppb.idl
@@ -19,7 +19,7 @@
* <code>ppb.audio.h</code> or
* <code>PPB_GRAPHICS_2D_INTERFACE</code> in <code>ppb_graphics_2d.h</code>.
* Click
- * <a href="/native-client/{{pepperversion}}/pepperc/globals_defs"
+ * <a href="globals_defs.html"
* title="macros">here</a> for a complete list of interface
* names.
*
diff --git a/chromium/ppapi/api/ppb_audio.idl b/chromium/ppapi/api/ppb_audio.idl
index 7a996badd0b..d79ca97739e 100644
--- a/chromium/ppapi/api/ppb_audio.idl
+++ b/chromium/ppapi/api/ppb_audio.idl
@@ -33,7 +33,7 @@ typedef void PPB_Audio_Callback([out] mem_t sample_buffer,
/**
* The <code>PPB_Audio</code> interface contains pointers to several functions
* for handling audio resources. Refer to the
- * <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio</a>
+ * <a href="/native-client/devguide/coding/audio.html">Audio</a>
* chapter in the Developer's Guide for information on using this interface.
* Please see descriptions for each <code>PPB_Audio</code> and
* <code>PPB_AudioConfig</code> function for more details. A C example using
diff --git a/chromium/ppapi/api/ppb_audio_buffer.idl b/chromium/ppapi/api/ppb_audio_buffer.idl
new file mode 100644
index 00000000000..8640f00dd1f
--- /dev/null
+++ b/chromium/ppapi/api/ppb_audio_buffer.idl
@@ -0,0 +1,140 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Defines the <code>PPB_AudioBuffer</code> interface.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M34 = 0.1,
+ M35 = 0.1
+};
+
+/**
+ * PP_AudioBuffer_SampleRate is an enumeration of the different audio sample
+ * rates.
+ */
+enum PP_AudioBuffer_SampleRate {
+ PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN = 0,
+ PP_AUDIOBUFFER_SAMPLERATE_8000 = 8000,
+ PP_AUDIOBUFFER_SAMPLERATE_16000 = 16000,
+ PP_AUDIOBUFFER_SAMPLERATE_22050 = 22050,
+ PP_AUDIOBUFFER_SAMPLERATE_32000 = 32000,
+ PP_AUDIOBUFFER_SAMPLERATE_44100 = 44100,
+ PP_AUDIOBUFFER_SAMPLERATE_48000 = 48000,
+ PP_AUDIOBUFFER_SAMPLERATE_96000 = 96000,
+ PP_AUDIOBUFFER_SAMPLERATE_192000 = 192000
+};
+
+/**
+ * PP_AudioBuffer_SampleSize is an enumeration of the different audio sample
+ * sizes.
+ */
+enum PP_AudioBuffer_SampleSize {
+ PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN = 0,
+ PP_AUDIOBUFFER_SAMPLESIZE_16_BITS = 2
+};
+
+[version=0.1]
+interface PPB_AudioBuffer {
+ /**
+ * Determines if a resource is an AudioBuffer resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is an AudioBuffer resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool IsAudioBuffer([in] PP_Resource resource);
+
+ /**
+ * Gets the timestamp of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
+ * buffer. Given in seconds since the start of the containing audio stream.
+ */
+ [on_failure=0.0]
+ PP_TimeDelta GetTimestamp([in] PP_Resource buffer);
+
+ /**
+ * Sets the timestamp of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ * of the audio buffer. Given in seconds since the start of the containing
+ * audio stream.
+ */
+ void SetTimestamp([in] PP_Resource buffer, [in] PP_TimeDelta timestamp);
+
+ /**
+ * Gets the sample rate of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The sample rate of the audio buffer.
+ */
+ [on_failure=PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN]
+ PP_AudioBuffer_SampleRate GetSampleRate([in] PP_Resource buffer);
+
+ /**
+ * Gets the sample size of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The sample size of the audio buffer.
+ */
+ [on_failure=PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN]
+ PP_AudioBuffer_SampleSize GetSampleSize([in] PP_Resource buffer);
+
+ /**
+ * Gets the number of channels in the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The number of channels in the audio buffer.
+ */
+ uint32_t GetNumberOfChannels([in] PP_Resource buffer);
+
+ /**
+ * Gets the number of samples in the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The number of samples in the audio buffer.
+ * For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
+ * containing 4410 * 2 samples would have a duration of 100 milliseconds.
+ */
+ uint32_t GetNumberOfSamples([in] PP_Resource buffer);
+
+ /**
+ * Gets the data buffer containing the audio samples.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return A pointer to the beginning of the data buffer.
+ */
+ mem_t GetDataBuffer([in] PP_Resource buffer);
+
+ /**
+ * Gets the size of the data buffer in bytes.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The size of the data buffer in bytes.
+ */
+ uint32_t GetDataBufferSize([in] PP_Resource buffer);
+};
diff --git a/chromium/ppapi/api/ppb_audio_config.idl b/chromium/ppapi/api/ppb_audio_config.idl
index 1d64b4fb052..fd4cef4fe05 100644
--- a/chromium/ppapi/api/ppb_audio_config.idl
+++ b/chromium/ppapi/api/ppb_audio_config.idl
@@ -45,7 +45,7 @@ enum PP_AudioSampleRate {
* This interface only supports 16-bit stereo output.
*
* Refer to the
- * <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio
+ * <a href="/native-client/devguide/coding/audio.html">Audio
* </a> chapter in the Developer's Guide for information on using this
* interface.
*/
diff --git a/chromium/ppapi/api/ppb_compositor.idl b/chromium/ppapi/api/ppb_compositor.idl
new file mode 100644
index 00000000000..0fb62b38b70
--- /dev/null
+++ b/chromium/ppapi/api/ppb_compositor.idl
@@ -0,0 +1,131 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M37 = 0.1
+};
+
+/**
+ * Defines the <code>PPB_Compositor</code> interface. Used for setting
+ * <code>PPB_CompositorLayer</code> layers to the Chromium compositor for
+ * compositing. This allows a plugin to combine different sources of visual
+ * data efficiently, such as <code>PPB_ImageData</code> images and
+ * OpenGL textures. See also <code>PPB_CompositorLayer</code> for more
+ * information.
+ * This interface is still in development (Dev API status) and may change,
+ * so is only supported on Dev channel and Canary currently.
+ *
+ * <strong>Example usage from plugin code:</strong>
+ *
+ * <strong>Setup:</strong>
+ * @code
+ * PP_Resource compositor;
+ * compositor = compositor_if->Create(instance);
+ * instance_if->BindGraphics(instance, compositor);
+ * @endcode
+ *
+ * <strong>Setup layer stack:</strong>
+ * @code
+ * PP_Resource color_layer = compositor_if->AddLayer(compositor);
+ * PP_Resource texture_layer = compositor_if->AddLayer(compositor);
+ * @endcode
+ *
+ * <strong> Present one frame:</strong>
+ * layer_if->SetColor(color_layer, 255, 255, 0, 255, PP_MakeSize(400, 400));
+ * PP_CompletionCallback release_callback = {
+ * TextureReleasedCallback, 0, PP_COMPLETIONCALLBACK_FLAG_NONE,
+ * };
+ * layer_if->SetTexture(texture_layer, graphics3d, texture_id,
+ * PP_MakeSize(300, 300), release_callback);
+ *
+ * PP_CompletionCallback callback = {
+ * DidFinishCommitLayersCallback,
+ * (void*) texture_id,
+ * PP_COMPLETIONCALLBACK_FLAG_NONE,
+ * };
+ * compositor_if->CommitLayers(compositor, callback);
+ * @endcode
+ *
+ * <strong>release callback</strong>
+ * void ReleaseCallback(int32_t result, void* user_data) {
+ * if (result == PP_OK) {
+ * uint32_t texture_id = (uint32_t) user_data;
+ * // reuse the texture or delete it.
+ * }
+ * }
+ *
+ * <strong>Shutdown:</strong>
+ * @code
+ * core->ReleaseResource(color_layer);
+ * core->ReleaseResource(texture_layer);
+ * core->ReleaseResource(compositor);
+ * @endcode
+ */
+
+interface PPB_Compositor {
+ /**
+ * Determines if a resource is a compositor resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a compositor resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool IsCompositor([in] PP_Resource resource);
+
+ /**
+ * Creates a Compositor resource.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ *
+ * @return A <code>PP_Resource</code> containing the compositor resource if
+ * sucessful or 0 otherwise.
+ */
+ PP_Resource Create([in] PP_Instance instance);
+
+ /**
+ * Creates a new <code>PPB_CompositorLayer</code> and adds it to the end
+ * of the layer stack. A <code>PP_Resource</code> containing the layer is
+ * returned. It is uninitialized, <code>SetColor()</code>,
+ * <code>SetTexture</code> or <code>SetImage</code> should be used to
+ * initialize it. The layer will appear above other pre-existing layers.
+ * If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code> is
+ * released, the returned layer will be invalidated, and any further calls on
+ * the layer will return <code>PP_ERROR_BADRESOURCE</code>.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ *
+ * @return A <code>PP_Resource</code> containing the compositor layer
+ * resource if sucessful or 0 otherwise.
+ */
+ PP_Resource AddLayer([in] PP_Resource compositor);
+
+ /**
+ * Commits layers added by <code>AddLayer()</code> to the chromium compositor.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ * @param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * layers have been represented on screen.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t CommitLayers([in] PP_Resource compositor,
+ [in] PP_CompletionCallback cc);
+
+ /**
+ * Resets layers added by <code>AddLayer()</code>.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t ResetLayers([in] PP_Resource compositor);
+};
diff --git a/chromium/ppapi/api/ppb_compositor_layer.idl b/chromium/ppapi/api/ppb_compositor_layer.idl
new file mode 100644
index 00000000000..a457ccc2a63
--- /dev/null
+++ b/chromium/ppapi/api/ppb_compositor_layer.idl
@@ -0,0 +1,222 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M37 = 0.1
+};
+
+/**
+ * This enumeration contains blend modes used for computing the result pixels
+ * based on the source RGBA values in layers with the RGBA values that are
+ * already in the destination framebuffer.
+ * alpha_src, color_src: source alpha and color.
+ * alpha_dst, color_dst: destination alpha and color (before compositing).
+ * Below descriptions of the blend modes assume the colors are pre-multiplied.
+ * This interface is still in development (Dev API status) and may change,
+ * so is only supported on Dev channel and Canary currently.
+ */
+enum PP_BlendMode {
+ /**
+ * No blending, copy source to the destination directly.
+ */
+ PP_BLENDMODE_NONE,
+
+ /**
+ * Source is placed over the destination.
+ * Resulting alpha = alpha_src + alpha_dst - alpha_src * alpha_dst
+ * Resulting color = color_src + color_dst * (1 - alpha_src)
+ */
+ PP_BLENDMODE_SRC_OVER,
+
+ /**
+ * The last blend mode.
+ */
+ PP_BLENDMODE_LAST = PP_BLENDMODE_SRC_OVER
+};
+
+/**
+ * Defines the <code>PPB_CompositorLayer</code> interface. It is used by
+ * <code>PPB_Compositor</code>.
+ */
+interface PPB_CompositorLayer {
+ /**
+ * Determines if a resource is a compositor layer resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a compositor layer resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool IsCompositorLayer([in] PP_Resource resource);
+
+ /**
+ * Sets the color of a solid color layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its color.
+ * If the layer has been initialized to another kind of layer, the layer will
+ * not be changed, and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] red A <code>float</code> for the red color component. It will be
+ * clamped to [0, 1].
+ * param[in] green A <code>float</code> for the green color component. It will
+ * be clamped to [0, 1].
+ * param[in] blue A <code>float</code> for the blue color component. It will
+ * be clamped to [0, 1].
+ * param[in] alpha A <code>float</code> for the alpha color component. It will
+ * be clamped to [0, 1].
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetColor([in] PP_Resource layer,
+ [in] float_t red,
+ [in] float_t green,
+ [in] float_t blue,
+ [in] float_t alpha,
+ [in] PP_Size size);
+
+ /**
+ * Sets the texture of a texture layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its texture.
+ * The source rect will be set to ((0, 0), (1, 1)). If the layer has been
+ * initialized to another kind of layer, the layer will not be changed,
+ * and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] context A <code>PP_Resource</code> corresponding to a graphics
+ * 3d resource which owns the GL texture.
+ * param[in] texture A GL texture object id.
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform.
+ * param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * the texture is released by Chromium compositor.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetTexture([in] PP_Resource layer,
+ [in] PP_Resource context,
+ [in] uint32_t texture,
+ [in] PP_Size size,
+ [in] PP_CompletionCallback cc);
+
+ /**
+ * Sets the image of an image layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its image.
+ * The layer size will be set to the image's size. The source rect will be set
+ * to the full image. If the layer has been initialized to another kind of
+ * layer, the layer will not be changed, and <code>PP_ERROR_BADARGUMENT</code>
+ * will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] image_data A <code>PP_Resource</code> corresponding to
+ * an image data resource.
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform. If NULL, the image's size will be used.
+ * param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * the image data is released by Chromium compositor.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetImage([in] PP_Resource layer,
+ [in] PP_Resource image_data,
+ [in] PP_Size size,
+ [in] PP_CompletionCallback cc);
+
+ /**
+ * Sets a clip rectangle for a compositor layer. The Chromium compositor
+ * applies a transform matrix on the layer first, and then clips the layer
+ * with the rectangle.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] rect The clip rectangle. The origin is top-left corner of
+ * the plugin.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetClipRect([in] PP_Resource layer,
+ [in] PP_Rect rect);
+
+ /**
+ * Sets a transform matrix which is used to composite the layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] matrix A float array with 16 elements. The matrix is
+ * column major. The default transform matrix is an identity matrix.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetTransform([in] PP_Resource layer,
+ [in] float_t[16] matrix);
+
+ /**
+ * Sets the opacity value which will be applied to the layer. The effective
+ * value of each pixel is computed as:
+ *
+ * if (premult_alpha)
+ * pixel.rgb = pixel.rgb * opacity;
+ * pixel.a = pixel.a * opactiy;
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] opacity A <code>float</code> for the opacity value, The default
+ * value is 1.0f.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetOpacity([in] PP_Resource layer,
+ [in] float_t opacity);
+
+ /**
+ * Sets the blend mode which is used to composite the layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] mode A <code>PP_BlendMode</code>. The default mode is
+ * <code>PP_BLENDMODE_SRC_OVER</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetBlendMode([in] PP_Resource layer,
+ [in] PP_BlendMode mode);
+
+ /**
+ * Sets a source rectangle for a texture layer or an image layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] rect A <code>PP_FloatRect</code> for an area of the source to
+ * consider. For a texture layer, rect is in uv coordinates. For an image
+ * layer, rect is in pixels. If the rect is beyond the dimensions of the
+ * texture or image, <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ * If the layer size does not match the source rect size, bilinear scaling
+ * will be used.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetSourceRect([in] PP_Resource layer,
+ [in] PP_FloatRect rect);
+
+ /**
+ * Sets the premultiplied alpha for an texture layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] premult A <code>PP_Bool</code> with <code>PP_TRUE</code> if
+ * pre-multiplied alpha is used.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t SetPremultipliedAlpha([in] PP_Resource layer,
+ [in] PP_Bool premult);
+};
diff --git a/chromium/ppapi/api/ppb_file_mapping.idl b/chromium/ppapi/api/ppb_file_mapping.idl
new file mode 100644
index 00000000000..7037955d343
--- /dev/null
+++ b/chromium/ppapi/api/ppb_file_mapping.idl
@@ -0,0 +1,131 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+/**
+ * This file defines methods for mapping and unmapping files into and out of
+ * memory.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M34 = 0.1
+};
+
+/**
+ * The PP_FileMapProtection values indicate the permissions requested for the
+ * file mapping. These should be used in a uint32_t bitfield.
+ */
+[assert_size(4)]
+enum PP_FileMapProtection {
+ /** Requests read access to the mapped address. */
+ PP_FILEMAPPROTECTION_READ = 1u << 0,
+
+ /** Requests write access to the mapped address. */
+ PP_FILEMAPPROTECTION_WRITE = 1u << 1
+};
+
+/**
+ * The PP_FileMapFlags contain flag values for use with Map().
+ */
+[assert_size(4)]
+enum PP_FileMapFlags {
+ /**
+ * Requests a shared mapping. If this flag is set, changes written to the
+ * memory region will be reflected in the underlying file and will thus
+ * eventually be visible to other processes which have opened the file. The
+ * file may not actually be updated until Unmap() is called. This is only
+ * valid if the PPB_FileIO resource was opened with write permission.
+ */
+ PP_FILEMAPFLAG_SHARED = 1u << 0,
+
+ /**
+ * Requests a copy-on-write mapping. If this flag is set, changes are not
+ * written to the underlying file, but only in the memory of the process
+ * (copy-on-write).
+ */
+ PP_FILEMAPFLAG_PRIVATE = 1u << 1,
+
+ /**
+ * Forces Map() to map the file contents at the provided |address|. If Map()
+ * can not comply, Map() will fail.
+ */
+ PP_FILEMAPFLAG_FIXED = 1u << 2
+};
+
+/**
+ * PPB_FileMapping contains functions for mapping and unmapping files into and
+ * out of memory.
+ */
+[singleton]
+interface PPB_FileMapping {
+ /**
+ * Map() maps the contents from an offset of the file into memory.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ * @param[in] file_io A <code>PPB_FileIO</code> <code>PP_Resource</code>
+ * corresponding to the file that should be mapped in to memory.
+ * @param[in] length The number of bytes to map.
+ * @param[in] map_protection A bitfield containing values from
+ * <code>PP_FileMapProtection</code>, indicating what memory operations
+ * should be permitted on the mapped region.
+ * @param[in] map_flags A bitfield containing values from
+ * <code>PP_FileMapFlags</code>, providing options for the behavior of Map.
+ * If the region is to be writeable, then exactly one of
+ * <code>PP_FILEMAPFLAG_SHARED</code> or <code>PP_FILEMAPFLAG_PRIVATE</code>
+ * must be set.
+ * @param[in] offset The offset into the file. Must be a multiple of the
+ * Map page size as returned by GetMapPageSize().
+ * @param[inout] address The value of <code>*address</code>, if non-NULL,
+ * will be used as a hint to determine where in memory the file should be
+ * mapped. If the value is NULL, the host operating system will choose
+ * <code>address</code>. Upon Map() completing, <code>*address</code> will
+ * contain the actual memory location at which the file was mapped. If the
+ * plugin provides a non-NULL <code>*address</code>, it must be a multiple of
+ * the map page size as returned by GetMapPageSize().
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of Map().
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t Map([in] PP_Instance instance,
+ [in] PP_Resource file_io,
+ [in] int64_t length,
+ [in] uint32_t map_protection,
+ [in] uint32_t map_flags,
+ [in] int64_t offset,
+ [inout] mem_ptr_t address,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Unmap() deletes the mapping of the specified address. The specified
+ * address must have been retrieved with Map().
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance.
+ * @param[in] address The starting address of the address in memory to
+ * be unmapped.
+ * @param[in] length The length of the region to unmap.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of Unmap().
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t Unmap([in] PP_Instance instance,
+ [in] mem_t address,
+ [in] int64_t length,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * GetMapPageSize() retrieves the size of pages that Map() uses.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance.
+ *
+ * @return The size of pages that Map() uses. Returns 0 on failure.
+ */
+ [on_failure=0]
+ int64_t GetMapPageSize(PP_Instance instance);
+};
+
diff --git a/chromium/ppapi/api/ppb_file_ref.idl b/chromium/ppapi/api/ppb_file_ref.idl
index d9226471a9f..f3207e05bd2 100644
--- a/chromium/ppapi/api/ppb_file_ref.idl
+++ b/chromium/ppapi/api/ppb_file_ref.idl
@@ -10,7 +10,25 @@
label Chrome {
M14 = 1.0,
- M28 = 1.1
+ M28 = 1.1,
+ M34 = 1.2
+};
+
+/**
+ * The <code>PP_MakeDirectoryFlags</code> enum contains flags used to control
+ * behavior of <code>PPB_FileRef.MakeDirectory()</code>.
+ */
+enum PP_MakeDirectoryFlags {
+ PP_MAKEDIRECTORYFLAG_NONE = 0 << 0,
+
+ /** Requests that ancestor directories are created if they do not exist. */
+ PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS = 1 << 0,
+
+ /**
+ * Requests that the PPB_FileRef.MakeDirectory() call fails if the directory
+ * already exists.
+ */
+ PP_MAKEDIRECTORYFLAG_EXCLUSIVE = 1 << 1
};
/**
@@ -105,17 +123,40 @@ interface PPB_FileRef {
* @param[in] make_ancestors A <code>PP_Bool</code> set to
* <code>PP_TRUE</code> to make ancestor directories or <code>PP_FALSE</code>
* if ancestor directories are not needed.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of MakeDirectory().
*
* @return An int32_t containing an error code from <code>pp_errors.h</code>.
* Succeeds if the directory already exists. Fails if ancestor directories
* do not exist and <code>make_ancestors</code> was passed as
* <code>PP_FALSE</code>.
*/
+ [deprecate=1.2]
int32_t MakeDirectory([in] PP_Resource directory_ref,
[in] PP_Bool make_ancestors,
[in] PP_CompletionCallback callback);
/**
+ * MakeDirectory() makes a new directory in the file system according to the
+ * given <code>make_directory_flags</code>, which is a bit-mask of the
+ * <code>PP_MakeDirectoryFlags</code> values. It is not valid to make a
+ * directory in the external file system.
+ *
+ * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
+ * reference.
+ * @param[in] make_directory_flags A bit-mask of the
+ * <code>PP_MakeDirectoryFlags</code> values.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of MakeDirectory().
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ [version=1.2]
+ int32_t MakeDirectory([in] PP_Resource directory_ref,
+ [in] int32_t make_directory_flags,
+ [in] PP_CompletionCallback callback);
+
+ /**
* Touch() Updates time stamps for a file. You must have write access to the
* file if it exists in the external filesystem.
*
diff --git a/chromium/ppapi/api/ppb_input_event.idl b/chromium/ppapi/api/ppb_input_event.idl
index 2ed2e25ecb0..b9224fa584a 100644
--- a/chromium/ppapi/api/ppb_input_event.idl
+++ b/chromium/ppapi/api/ppb_input_event.idl
@@ -9,7 +9,8 @@
label Chrome {
M13 = 1.0,
- M14 = 1.1
+ M14 = 1.1,
+ M34 = 1.2
};
/**
@@ -312,12 +313,10 @@ interface PPB_InputEvent {
* the page.
*
* Note that synthetic mouse events will be generated from touch events if
- * (and only if) the you do not request touch events.
+ * (and only if) you do not request touch events.
*
* When requesting input events through this function, the events will be
- * delivered and <i>not</i> bubbled to the page. This means that even if you
- * aren't interested in the message, no other parts of the page will get
- * a crack at the message.
+ * delivered and <i>not</i> bubbled to the default handlers.
*
* <strong>Example:</strong>
* @code
@@ -352,8 +351,8 @@ interface PPB_InputEvent {
* By default, no input events are delivered. In most cases you would
* register to receive events by calling RequestInputEvents(). In some cases,
* however, you may wish to filter events such that they can be bubbled up
- * to the DOM. In this case, register for those classes of events using
- * this function instead of RequestInputEvents().
+ * to the default handlers. In this case, register for those classes of
+ * events using this function instead of RequestInputEvents().
*
* Filtering input events requires significantly more overhead than just
* delivering them to the instance. As such, you should only request
@@ -733,8 +732,8 @@ interface PPB_KeyboardInputEvent {
* <code>PP_InputEvent_Modifier</code> flags.
*
* @param[in] key_code This value reflects the DOM KeyboardEvent
- * <code>keyCode</code> field. Chrome populates this with the Windows-style
- * Virtual Key code of the key.
+ * <code>keyCode</code> field, which is the Windows-style Virtual Key
+ * code of the key.
*
* @param[in] character_text This value represents the typed character as a
* UTF-8 string.
@@ -742,6 +741,7 @@ interface PPB_KeyboardInputEvent {
* @return A <code>PP_Resource</code> containing the new keyboard input
* event.
*/
+ [deprecate=1.2]
PP_Resource Create([in] PP_Instance instance,
[in] PP_InputEvent_Type type,
[in] PP_TimeTicks time_stamp,
@@ -750,6 +750,45 @@ interface PPB_KeyboardInputEvent {
[in] PP_Var character_text);
/**
+ * Creates a keyboard input event with the given parameters. Normally you
+ * will get a keyboard event passed through the HandleInputEvent and will not
+ * need to create them, but some applications may want to create their own
+ * for internal use. The type must be one of the keyboard event types.
+ *
+ * @param[in] instance The instance for which this event occurred.
+ *
+ * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
+ * input event.
+ *
+ * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
+ * when the event occurred.
+ *
+ * @param[in] modifiers A bit field combination of the
+ * <code>PP_InputEvent_Modifier</code> flags.
+ *
+ * @param[in] key_code This value reflects the DOM KeyboardEvent
+ * <code>keyCode</code> field, which is the Windows-style Virtual Key
+ * code of the key.
+ *
+ * @param[in] character_text This value represents the typed character as a
+ * UTF-8 string.
+ *
+ * @param[in] code This value represents the DOM3 |code| string that
+ * corresponds to the physical key being pressed.
+ *
+ * @return A <code>PP_Resource</code> containing the new keyboard input
+ * event.
+ */
+ [version=1.2]
+ PP_Resource Create([in] PP_Instance instance,
+ [in] PP_InputEvent_Type type,
+ [in] PP_TimeTicks time_stamp,
+ [in] uint32_t modifiers,
+ [in] uint32_t key_code,
+ [in] PP_Var character_text,
+ [in] PP_Var code);
+
+ /**
* IsKeyboardInputEvent() determines if a resource is a keyboard event.
*
* @param[in] resource A <code>PP_Resource</code> corresponding to an event.
@@ -781,6 +820,18 @@ interface PPB_KeyboardInputEvent {
* undefined var.
*/
PP_Var GetCharacterText([in] PP_Resource character_event);
+
+ /**
+ * GetCode() returns the DOM |code| field for this keyboard event, as
+ * defined in the DOM3 Events spec:
+ * http://www.w3.org/TR/DOM-Level-3-Events/
+ *
+ * @param[in] key_event The key event for which to return the key code.
+ *
+ * @return The string that contains the DOM |code| for the keyboard event.
+ */
+ [version=1.2]
+ PP_Var GetCode([in] PP_Resource key_event);
};
[assert_size(4)]
diff --git a/chromium/ppapi/api/ppb_media_stream_audio_track.idl b/chromium/ppapi/api/ppb_media_stream_audio_track.idl
new file mode 100644
index 00000000000..4ffa9461aef
--- /dev/null
+++ b/chromium/ppapi/api/ppb_media_stream_audio_track.idl
@@ -0,0 +1,201 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Defines the <code>PPB_MediaStreamAudioTrack</code> interface. Used for
+ * receiving audio samples from a MediaStream audio track in the browser.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M34 = 0.1,
+ M35 = 0.1
+};
+
+/**
+ * This enumeration contains audio track attributes which are used by
+ * <code>Configure()</code>.
+ */
+enum PP_MediaStreamAudioTrack_Attrib {
+ /**
+ * Attribute list terminator.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE = 0,
+
+ /**
+ * The maximum number of buffers to hold audio samples.
+ * Note: this is only used as advisory; the browser may allocate more or fewer
+ * based on available resources. How many buffers depends on usage -
+ * request at least 2 to make sure latency doesn't cause lost samples. If
+ * the plugin expects to hold on to more than one buffer at a time (e.g. to do
+ * multi-buffer processing), it should request that many more.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS = 1,
+
+ /**
+ * The sample rate of audio data in buffers. The attribute value is a
+ * <code>PP_AudioBuffer_SampleRate</code>.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE = 2,
+
+ /**
+ * The sample size of audio data in buffers in bytes. The attribute value is a
+ * <code>PP_AudioBuffer_SampleSize</code>.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE = 3,
+
+ /**
+ * The number of channels in audio buffers.
+ *
+ * Supported values: 1, 2
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS = 4,
+
+ /**
+ * The duration of an audio buffer in milliseconds.
+ *
+ * Valid range: 10 to 10000
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION = 5
+};
+
+[version=0.1]
+interface PPB_MediaStreamAudioTrack {
+ /**
+ * Determines if a resource is a MediaStream audio track resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a Mediastream audio track resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool IsMediaStreamAudioTrack([in] PP_Resource resource);
+
+ /**
+ * Configures underlying buffers for incoming audio samples.
+ * If the application doesn't want to drop samples, then the
+ * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
+ * chosen such that inter-buffer processing time variability won't overrun all
+ * the input buffers. If all buffers are filled, then samples will be
+ * dropped. The application can detect this by examining the timestamp on
+ * returned buffers. If <code>Configure()</code> is not called, default
+ * settings will be used. Calls to Configure while the plugin holds
+ * buffers will fail.
+ * Example usage from plugin code:
+ * @code
+ * int32_t attribs[] = {
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
+ * track_if->Configure(track, attribs, callback);
+ * @endcode
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] attrib_list A list of attribute name-value pairs in which each
+ * attribute is immediately followed by the corresponding desired value.
+ * The list is terminated by
+ * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE</code>.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of <code>Configure()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t Configure([in] PP_Resource audio_track,
+ [in] int32_t[] attrib_list,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Gets attribute value for a given attribute name.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
+ * querying.
+ * @param[out] value A int32_t for storing the attribute value on success.
+ * Otherwise, the value will not be changed.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t GetAttrib([in] PP_Resource audio_track,
+ [in] PP_MediaStreamAudioTrack_Attrib attrib,
+ [out] int32_t value);
+
+ /**
+ * Returns the track ID of the underlying MediaStream audio track.
+ *
+ * @param[in] audio_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Var</code> containing the MediaStream track ID as
+ * a string.
+ */
+ PP_Var GetId([in] PP_Resource audio_track);
+
+ /**
+ * Checks whether the underlying MediaStream track has ended.
+ * Calls to GetBuffer while the track has ended are safe to make and will
+ * complete, but will fail.
+ *
+ * @param[in] audio_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
+ */
+ [on_failure=PP_TRUE]
+ PP_Bool HasEnded([in] PP_Resource audio_track);
+
+ /**
+ * Gets the next audio buffer from the MediaStream track.
+ * If internal processing is slower than the incoming buffer rate, new buffers
+ * will be dropped from the incoming stream. Once all buffers are full,
+ * audio samples will be dropped until <code>RecycleBuffer()</code> is called
+ * to free a slot for another buffer.
+ * If there are no audio data in the input buffer,
+ * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ * <code>callback</code> will be called, when a new buffer of audio samples
+ * is received or an error happens.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[out] buffer A <code>PP_Resource</code> corresponding to
+ * an AudioBuffer resource.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of GetBuffer().
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t GetBuffer([in] PP_Resource audio_track,
+ [out] PP_Resource buffer,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
+ * reuse the buffer. And the buffer will become invalid. The caller should
+ * release all references it holds to <code>buffer</code> and not use it
+ * anymore.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to
+ * an AudioBuffer resource returned by <code>GetBuffer()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t RecycleBuffer([in] PP_Resource audio_track,
+ [in] PP_Resource buffer);
+
+ /**
+ * Closes the MediaStream audio track and disconnects it from the audio
+ * source. After calling <code>Close()</code>, no new buffers will be
+ * received.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to a
+ * MediaStream audio track resource.
+ */
+ void Close([in] PP_Resource audio_track);
+};
+
diff --git a/chromium/ppapi/api/ppb_media_stream_video_track.idl b/chromium/ppapi/api/ppb_media_stream_video_track.idl
new file mode 100644
index 00000000000..2cf85304c38
--- /dev/null
+++ b/chromium/ppapi/api/ppb_media_stream_video_track.idl
@@ -0,0 +1,247 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Defines the <code>PPB_MediaStreamVideoTrack</code> interface. Used for
+ * receiving video frames from a MediaStream video track in the browser.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M34 = 0.1,
+ M35 = 0.1,
+ [channel=dev] M36 = 1.0
+};
+
+/**
+ * This enumeration contains video track attributes which are used by
+ * <code>Configure()</code>.
+ */
+enum PP_MediaStreamVideoTrack_Attrib {
+ /**
+ * Attribute list terminator.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE = 0,
+
+ /**
+ * The maximum number of frames to hold in the input buffer.
+ * Note: this is only used as advisory; the browser may allocate more or fewer
+ * based on available resources. How many frames to buffer depends on usage -
+ * request at least 2 to make sure latency doesn't cause lost frames. If
+ * the plugin expects to hold on to more than one frame at a time (e.g. to do
+ * multi-frame processing), it should request that many more.
+ * If this attribute is not specified or value 0 is specified for this
+ * attribute, the default value will be used.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES = 1,
+
+ /**
+ * The width of video frames in pixels. It should be a multiple of 4.
+ * If the specified size is different from the video source (webcam),
+ * frames will be scaled to specified size.
+ * If this attribute is not specified or value 0 is specified, the original
+ * frame size of the video track will be used.
+ *
+ * Maximum value: 4096 (4K resolution).
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH = 2,
+
+ /**
+ * The height of video frames in pixels. It should be a multiple of 4.
+ * If the specified size is different from the video source (webcam),
+ * frames will be scaled to specified size.
+ * If this attribute is not specified or value 0 is specified, the original
+ * frame size of the video track will be used.
+ *
+ * Maximum value: 4096 (4K resolution).
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT = 3,
+
+ /**
+ * The format of video frames. The attribute value is
+ * a <code>PP_VideoFrame_Format</code>. If the specified format is different
+ * from the video source (webcam), frames will be converted to specified
+ * format.
+ * If this attribute is not specified or value
+ * <code>PP_VIDEOFRAME_FORMAT_UNKNOWN</code> is specified, the orignal frame
+ * format of the video track will be used.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT = 4
+};
+
+[version=0.1]
+interface PPB_MediaStreamVideoTrack {
+ /**
+ * Creates a PPB_MediaStreamVideoTrack resource for video output. Call this
+ * when you will be creating frames and putting them to the track.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ *
+ * @return A <code>PP_Resource</code> corresponding to a
+ * PPB_MediaStreamVideoTrack resource if successful, 0 if failed.
+ */
+ [version=1.0]
+ PP_Resource Create([in] PP_Instance instance);
+
+ /**
+ * Determines if a resource is a MediaStream video track resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a Mediastream video track resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool IsMediaStreamVideoTrack([in] PP_Resource resource);
+
+ /**
+ * Configures underlying frame buffers for incoming frames.
+ * If the application doesn't want to drop frames, then the
+ * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
+ * chosen such that inter-frame processing time variability won't overrun the
+ * input buffer. If the buffer is overfilled, then frames will be dropped.
+ * The application can detect this by examining the timestamp on returned
+ * frames. If some attributes are not specified, default values will be used
+ * for those unspecified attributes. If <code>Configure()</code> is not
+ * called, default settings will be used.
+ * Example usage from plugin code:
+ * @code
+ * int32_t attribs[] = {
+ * PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
+ * PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
+ * track_if->Configure(track, attribs, callback);
+ * @endcode
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] attrib_list A list of attribute name-value pairs in which each
+ * attribute is immediately followed by the corresponding desired value.
+ * The list is terminated by
+ * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
+ * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
+ * completion of <code>Configure()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ * Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
+ * <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
+ * holds some frames which are not recycled with <code>RecycleFrame()</code>.
+ * If an error is returned, all attributes and the underlying buffer will not
+ * be changed.
+ */
+ int32_t Configure([in] PP_Resource video_track,
+ [in] int32_t[] attrib_list,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Gets attribute value for a given attribute name.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
+ * querying.
+ * @param[out] value A int32_t for storing the attribute value on success.
+ * Otherwise, the value will not be changed.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t GetAttrib([in] PP_Resource video_track,
+ [in] PP_MediaStreamVideoTrack_Attrib attrib,
+ [out] int32_t value);
+
+ /**
+ * Returns the track ID of the underlying MediaStream video track.
+ *
+ * @param[in] video_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Var</code> containing the MediaStream track ID as
+ * a string.
+ */
+ PP_Var GetId([in] PP_Resource video_track);
+
+ /**
+ * Checks whether the underlying MediaStream track has ended.
+ * Calls to GetFrame while the track has ended are safe to make and will
+ * complete, but will fail.
+ *
+ * @param[in] video_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
+ */
+ [on_failure=PP_TRUE]
+ PP_Bool HasEnded([in] PP_Resource video_track);
+
+ /**
+ * Gets the next video frame from the MediaStream track.
+ * If internal processing is slower than the incoming frame rate, new frames
+ * will be dropped from the incoming stream. Once the input buffer is full,
+ * frames will be dropped until <code>RecycleFrame()</code> is called to free
+ * a spot for another frame to be buffered.
+ * If there are no frames in the input buffer,
+ * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ * <code>callback</code> will be called when a new frame is received or an
+ * error happens.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[out] frame A <code>PP_Resource</code> corresponding to a VideoFrame
+ * resource.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of GetFrame().
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames buffer
+ * was not allocated successfully.
+ */
+ int32_t GetFrame([in] PP_Resource video_track,
+ [out] PP_Resource frame,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Recycles a frame returned by <code>GetFrame()</code>, so the track can
+ * reuse the underlying buffer of this frame. And the frame will become
+ * invalid. The caller should release all references it holds to
+ * <code>frame</code> and not use it anymore.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a VideoFrame
+ * resource returned by <code>GetFrame()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t RecycleFrame([in] PP_Resource video_track,
+ [in] PP_Resource frame);
+
+ /**
+ * Closes the MediaStream video track and disconnects it from video source.
+ * After calling <code>Close()</code>, no new frames will be received.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a
+ * MediaStream video track resource.
+ */
+ void Close([in] PP_Resource video_track);
+
+ /**
+ * Gets a free frame for output. The frame is allocated by
+ * <code>Configure()</code>. The caller should fill it with frame data, and
+ * then use |PutFrame()| to send the frame back.
+ */
+ [version=1.0]
+ int32_t GetEmptyFrame([in] PP_Resource video_track,
+ [out] PP_Resource frame,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Sends a frame returned by |GetEmptyFrame()| to the output track.
+ * After this function, the |frame| should not be used anymore and the
+ * caller should release the reference that it holds.
+ */
+ [version=1.0]
+ int32_t PutFrame([in] PP_Resource video_track, [in] PP_Resource frame);
+};
+
diff --git a/chromium/ppapi/api/ppb_message_loop.idl b/chromium/ppapi/api/ppb_message_loop.idl
index 0adc0b34f73..73ad14db836 100644
--- a/chromium/ppapi/api/ppb_message_loop.idl
+++ b/chromium/ppapi/api/ppb_message_loop.idl
@@ -58,8 +58,8 @@ label Chrome {
* The main thread has an implicitly created message loop. The main thread is
* the thread where PPP_InitializeModule and PPP_Instance functions are called.
* You can retrieve a reference to this message loop by calling
- * GetForMainThread() or, if your code is on the main thread,
- * GetForCurrentThread() will also work.
+ * GetForMainThread() or, if your code is on the main thread, GetCurrent() will
+ * also work.
*
* Some special threads created by the system can not have message loops. In
* particular, the background thread created for audio processing has this
diff --git a/chromium/ppapi/api/ppb_messaging.idl b/chromium/ppapi/api/ppb_messaging.idl
index 0f9a3aa8c2b..5100f5f5ed8 100644
--- a/chromium/ppapi/api/ppb_messaging.idl
+++ b/chromium/ppapi/api/ppb_messaging.idl
@@ -12,7 +12,8 @@
[generate_thunk]
label Chrome {
- M14 = 1.0
+ M14 = 1.0,
+ [channel=dev] M37 = 1.1
};
/**
@@ -81,6 +82,65 @@ interface PPB_Messaging {
*
* The browser will pop-up an alert saying "Hello world!"
*/
+ [version=1.0]
void PostMessage([in] PP_Instance instance, [in] PP_Var message);
+
+ /**
+ * Registers a handler for receiving messages from JavaScript. If a handler
+ * is registered this way, it will replace PPP_Messaging, and all messages
+ * sent from JavaScript via postMessage and postMessageAndAwaitResponse will
+ * be dispatched to <code>handler</code>.
+ *
+ * The function calls will be dispatched via <code>message_loop</code>. This
+ * means that the functions will be invoked on the thread to which
+ * <code>message_loop</code> is attached, when <code>message_loop</code> is
+ * run. It is illegal to pass the main thread message loop;
+ * RegisterMessageHandler will return PP_ERROR_WRONG_THREAD in that case.
+ * If you quit <code>message_loop</code> before calling Unregister(),
+ * the browser will not be able to call functions in the plugin's message
+ * handler any more. That could mean missing some messages or could cause a
+ * leak if you depend on Destroy() to free hander data. So you should,
+ * whenever possible, Unregister() the handler prior to quitting its event
+ * loop.
+ *
+ * Attempting to register a message handler when one is already registered
+ * will cause the current MessageHandler to be unregistered and replaced. In
+ * that case, no messages will be sent to the "default" message handler
+ * (PPP_Messaging). Messages will stop arriving at the prior message handler
+ * and will begin to be dispatched at the new message handler.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data A pointer the plugin may choose to use when handling
+ * calls to functions within PPP_MessageHandler. The browser will pass this
+ * same pointer when invoking functions within PPP_MessageHandler.
+ * @param[in] handler The plugin-provided set of functions for handling
+ * messages.
+ * @param[in] message_loop Represents the message loop on which
+ * PPP_MessageHandler functions should be invoked.
+ * @return PP_OK on success, or an error from pp_errors.h.
+ */
+ [version=1.1]
+ int32_t RegisterMessageHandler([in] PP_Instance instance,
+ [inout] mem_t user_data,
+ [in] PPP_MessageHandler handler,
+ [in] PP_Resource message_loop);
+ /**
+ * Unregisters the current message handler for <code>instance</code> if one
+ * is registered. After this call, the message handler (if one was
+ * registered) will have "Destroy" called on it and will receive no further
+ * messages after that point. After that point, all messages sent from
+ * JavaScript using postMessage() will be dispatched to PPP_Messaging (if
+ * the plugin supports PPP_MESSAGING_INTERFACE). Attempts to call
+ * postMessageAndAwaitResponse() from JavaScript will fail.
+ *
+ * Attempting to unregister a message handler when none is registered has no
+ * effect.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ */
+ [version=1.1]
+ void UnregisterMessageHandler([in] PP_Instance instance);
};
diff --git a/chromium/ppapi/api/ppb_var.idl b/chromium/ppapi/api/ppb_var.idl
index 5bc613102ac..cc12b1bb3b7 100644
--- a/chromium/ppapi/api/ppb_var.idl
+++ b/chromium/ppapi/api/ppb_var.idl
@@ -9,7 +9,8 @@
label Chrome {
M14 = 1.0,
- M18 = 1.1
+ M18 = 1.1,
+ M34 = 1.2
};
/**
@@ -28,9 +29,13 @@ interface PPB_Var {
/**
* Release() removes a reference to given var, deleting it if the internal
- * reference count becomes 0. If the given var is not a refcounted object,
- * this function will do nothing so you can always call it no matter what
- * the type.
+ * reference count becomes 0. If the <code>PP_Var</code> is of type
+ * <code>PP_VARTYPE_RESOURCE</code>,
+ * it will implicitly release a reference count on the
+ * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
+ *
+ * If the given var is not a refcounted object, this function will do nothing
+ * so you can always call it no matter what the type.
*
* @param[in] var A <code>PP_Var</code> that will have a reference removed.
*/
@@ -45,7 +50,7 @@ interface PPB_Var {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never
* return <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
@@ -73,8 +78,8 @@ interface PPB_Var {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
- * return <code>NULL</code> on success, even for empty strings.
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never return
+ * <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
* AddRef'ed for the caller. When the caller is done with it, it should be
@@ -112,5 +117,31 @@ interface PPB_Var {
*/
[version=1.0]
str_t VarToUtf8([in] PP_Var var, [out] uint32_t len);
+
+ /**
+ * Converts a resource-type var to a <code>PP_Resource</code>.
+ *
+ * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
+ *
+ * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
+ * is not a resource. The reference count of the resource is incremented on
+ * behalf of the caller.
+ */
+ [version=1.2]
+ PP_Resource VarToResource([in] PP_Var var);
+
+ /**
+ * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
+ * reference count on the <code>PP_Resource</code> (equivalent to
+ * PPB_Core::AddRefResource(resource)).
+ *
+ * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
+ *
+ * @return A <code>PP_Var</code> created for this resource, with type
+ * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
+ * 1 on behalf of the caller.
+ */
+ [version=1.2]
+ PP_Var VarFromResource([in] PP_Resource resource);
};
diff --git a/chromium/ppapi/api/ppb_video_decoder.idl b/chromium/ppapi/api/ppb_video_decoder.idl
new file mode 100644
index 00000000000..b450633b818
--- /dev/null
+++ b/chromium/ppapi/api/ppb_video_decoder.idl
@@ -0,0 +1,216 @@
+/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the <code>PPB_VideoDecoder</code> interface.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M36 = 0.1
+};
+
+/**
+ * Video decoder interface.
+ *
+ * Typical usage:
+ * - Call Create() to create a new video decoder resource.
+ * - Call Initialize() to initialize it with a 3d graphics context and the
+ * desired codec profile.
+ * - Call Decode() continuously (waiting for each previous call to complete) to
+ * push bitstream buffers to the decoder.
+ * - Call GetPicture() continuously (waiting for each previous call to complete)
+ * to pull decoded pictures from the decoder.
+ * - Call Flush() to signal end of stream to the decoder and perform shutdown
+ * when it completes.
+ * - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
+ * for the callback before restarting decoding at another point.
+ * - To destroy the decoder, the plugin should release all of its references to
+ * it. Any pending callbacks will abort before the decoder is destroyed.
+ *
+ * Available video codecs vary by platform.
+ * All: theora, vorbis, vp8.
+ * Chrome and ChromeOS: aac, h264.
+ * ChromeOS: mpeg4.
+ */
+interface PPB_VideoDecoder {
+ /**
+ * Creates a new video decoder resource.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance
+ * with the video decoder.
+ *
+ * @return A <code>PP_Resource</code> corresponding to a video decoder if
+ * successful or 0 otherwise.
+ */
+ PP_Resource Create(
+ [in] PP_Instance instance);
+
+ /**
+ * Determines if the given resource is a video decoder.
+ *
+ * @param[in] resource A <code>PP_Resource</code> identifying a resource.
+ *
+ * @return <code>PP_TRUE</code> if the resource is a
+ * <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is
+ * invalid or some other type.
+ */
+ PP_Bool IsVideoDecoder(
+ [in] PP_Resource resource);
+
+ /**
+ * Initializes a video decoder resource. This should be called after Create()
+ * and before any other functions.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
+ * during decoding.
+ * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
+ * codec profile.
+ * @param[in] allow_software_fallback A <code>PP_Bool</code> specifying
+ * whether the decoder can fall back to software decoding if a suitable
+ * hardware decoder isn't available.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
+ * requested profile is not supported. In this case, the client may call
+ * Initialize() again with different parameters to find a good configuration.
+ */
+ int32_t Initialize(
+ [in] PP_Resource video_decoder,
+ [in] PP_Resource graphics3d_context,
+ [in] PP_VideoProfile profile,
+ [in] PP_Bool allow_software_fallback,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
+ * |buffer|. The plugin should wait until the decoder signals completion by
+ * returning PP_OK or by running |callback| before calling Decode() again.
+ *
+ * In general, each bitstream buffer should contain a demuxed bitstream frame
+ * for the selected video codec. For example, H264 decoders expect to receive
+ * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
+ * decoders expect to receive a bitstream frame without the IVF frame header.
+ *
+ * If the call to Decode() eventually results in a picture, the |decode_id|
+ * parameter is copied into the returned picture. The plugin can use this to
+ * associate decoded pictures with Decode() calls (e.g. to assign timestamps
+ * or frame numbers to pictures.) This value is opaque to the API so the
+ * plugin is free to pass any value.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] decode_id An optional value, chosen by the plugin, that can be
+ * used to associate calls to Decode() with decoded pictures returned by
+ * GetPicture().
+ * @param[in] size Buffer size in bytes.
+ * @param[in] buffer Starting address of buffer.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
+ * or Reset() call is pending.
+ * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
+ * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
+ * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
+ */
+ int32_t Decode(
+ [in] PP_Resource video_decoder,
+ [in] uint32_t decode_id,
+ [in] uint32_t size,
+ [in] mem_t buffer,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Gets the next picture from the decoder. The picture is valid after the
+ * decoder signals completion by returning PP_OK or running |callback|. The
+ * plugin can call GetPicture() again after the decoder signals completion.
+ * When the plugin is finished using the picture, it should return it to the
+ * system by calling RecyclePicture().
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[out] picture A <code>PP_VideoPicture</code> to hold the decoded
+ * picture.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
+ * call is pending.
+ * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
+ * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
+ * completes while GetPicture() is pending.
+ */
+ int32_t GetPicture(
+ [in] PP_Resource video_decoder,
+ [out] PP_VideoPicture picture,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Recycles a picture that the plugin has received from the decoder.
+ * The plugin should call this as soon as it has finished using the texture so
+ * the decoder can decode more pictures.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] picture A <code>PP_VideoPicture</code> to return to
+ * the decoder.
+ */
+ void RecyclePicture(
+ [in] PP_Resource video_decoder,
+ [in] PP_VideoPicture picture);
+
+ /**
+ * Flushes the decoder. The plugin should call Flush() when it reaches the
+ * end of its video stream in order to stop cleanly. The decoder will run any
+ * pending Decode() call to completion. The plugin should make no further
+ * calls to the decoder other than GetPicture() and RecyclePicture() until
+ * the decoder signals completion by running |callback|. Just before
+ * completion, any pending GetPicture() call will complete by running its
+ * callback with result PP_ERROR_ABORTED to signal that no more pictures are
+ * available. Any pictures held by the plugin remain valid during and after
+ * the flush and should be recycled back to the decoder.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized.
+ */
+ int32_t Flush(
+ [in] PP_Resource video_decoder,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * Resets the decoder as quickly as possible. The plugin can call Reset() to
+ * skip to another position in the video stream. After Reset() returns, any
+ * pending calls to Decode() and GetPicture()) abort, causing their callbacks
+ * to run with PP_ERROR_ABORTED. The plugin should not make further calls to
+ * the decoder other than RecyclePicture() until the decoder signals
+ * completion by running |callback|. Any pictures held by the plugin remain
+ * valid during and after the reset and should be recycled back to the
+ * decoder.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized.
+ */
+ int32_t Reset(
+ [in] PP_Resource video_decoder,
+ [in] PP_CompletionCallback callback);
+};
diff --git a/chromium/ppapi/api/ppb_video_frame.idl b/chromium/ppapi/api/ppb_video_frame.idl
new file mode 100644
index 00000000000..57378925aa8
--- /dev/null
+++ b/chromium/ppapi/api/ppb_video_frame.idl
@@ -0,0 +1,123 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * Defines the <code>PPB_VideoFrame</code> interface.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ [channel=dev] M34 = 0.1,
+ M35 = 0.1
+};
+
+enum PP_VideoFrame_Format {
+ /**
+ * Unknown format value.
+ */
+ PP_VIDEOFRAME_FORMAT_UNKNOWN = 0,
+
+ /**
+ * 12bpp YVU planar 1x1 Y, 2x2 VU samples.
+ */
+ PP_VIDEOFRAME_FORMAT_YV12 = 1,
+
+ /**
+ * 12bpp YUV planar 1x1 Y, 2x2 UV samples.
+ */
+ PP_VIDEOFRAME_FORMAT_I420 = 2,
+
+ /**
+ * 32bpp BGRA.
+ */
+ PP_VIDEOFRAME_FORMAT_BGRA = 3,
+
+ /**
+ * The last format.
+ */
+ PP_VIDEOFRAME_FORMAT_LAST = PP_VIDEOFRAME_FORMAT_BGRA
+};
+
+[version=0.1]
+interface PPB_VideoFrame {
+ /**
+ * Determines if a resource is a VideoFrame resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool IsVideoFrame([in] PP_Resource resource);
+
+ /**
+ * Gets the timestamp of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A <code>PP_TimeDelta</code> containing the timestamp of the video
+ * frame. Given in seconds since the start of the containing video stream.
+ */
+ [on_failure=0.0]
+ PP_TimeDelta GetTimestamp([in] PP_Resource frame);
+
+ /**
+ * Sets the timestamp of the video frame. Given in seconds since the
+ * start of the containing video stream.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ * of the video frame. Given in seconds since the start of the containing
+ * video stream.
+ */
+ void SetTimestamp([in] PP_Resource frame, [in] PP_TimeDelta timestamp);
+
+ /**
+ * Gets the format of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A <code>PP_VideoFrame_Format</code> containing the format of the
+ * video frame.
+ */
+ [on_failure=PP_VIDEOFRAME_FORMAT_UNKNOWN]
+ PP_VideoFrame_Format GetFormat([in] PP_Resource frame);
+
+ /**
+ * Gets the size of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ * @param[out] size A <code>PP_Size</code>.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
+ * <code>PP_FALSE</code> on failure.
+ */
+ PP_Bool GetSize([in] PP_Resource frame, [out] PP_Size size);
+
+ /**
+ * Gets the data buffer for video frame pixels.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A pointer to the beginning of the data buffer.
+ */
+ mem_t GetDataBuffer([in] PP_Resource frame);
+
+ /**
+ * Gets the size of data buffer.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return The size of the data buffer.
+ */
+ uint32_t GetDataBufferSize([in] PP_Resource frame);
+};
diff --git a/chromium/ppapi/api/ppb_view.idl b/chromium/ppapi/api/ppb_view.idl
index a01c5e828d3..e0e0cce075b 100644
--- a/chromium/ppapi/api/ppb_view.idl
+++ b/chromium/ppapi/api/ppb_view.idl
@@ -12,7 +12,8 @@
label Chrome {
M18 = 1.0,
- M28 = 1.1
+ M28 = 1.1,
+ [channel=dev] M37 = 1.2
};
/**
@@ -88,7 +89,7 @@ interface PPB_View {
* and IsPageVisible() (whether the page is visible to the user).
*
* @param resource A <code>PP_Resource</code> corresponding to a
- * <code>PPB_View</code> resource.
+ * <code>PPB_View</code> resource.
*
* @return <code>PP_TRUE</code> if the instance might be visible to the
* user, <code>PP_FALSE</code> if it is definitely not visible.
@@ -108,7 +109,7 @@ interface PPB_View {
* not visible.
*
* @param resource A <code>PP_Resource</code> corresponding to a
- * <code>PPB_View</code> resource.
+ * <code>PPB_View</code> resource.
*
* @return <code>PP_TRUE</code> if the instance is plausibly visible to the
* user, <code>PP_FALSE</code> if it is definitely not visible.
@@ -151,7 +152,7 @@ interface PPB_View {
* the visual distraction when this happens.
*
* @param resource A <code>PP_Resource</code> corresponding to a
- * <code>PPB_View</code> resource.
+ * <code>PPB_View</code> resource.
*
* @param clip Output argument receiving the clip rect on success.
*
@@ -193,5 +194,22 @@ interface PPB_View {
*/
[version=1.1]
float_t GetCSSScale([in] PP_Resource resource);
+
+ /**
+ * GetScrollOffset returns the scroll offset of the window containing the
+ * plugin.
+ *
+ * @param[in] resource A <code>PP_Resource</code> corresponding to a
+ * <code>PPB_View</code> resource.
+ *
+ * @param[out] offset A <code>PP_Point</code> which will be set to the value
+ * of the scroll offset in CSS pixels.
+ *
+ * @return Returns <code>PP_TRUE</code> if the resource was valid and the
+ * offset was filled in, <code>PP_FALSE</code> if not.
+ */
+ [version=1.2]
+ PP_Bool GetScrollOffset([in] PP_Resource resource,
+ [out] PP_Point offset);
};
diff --git a/chromium/ppapi/api/ppp_input_event.idl b/chromium/ppapi/api/ppp_input_event.idl
index a7efb5b6156..97285c28420 100644
--- a/chromium/ppapi/api/ppp_input_event.idl
+++ b/chromium/ppapi/api/ppp_input_event.idl
@@ -20,10 +20,10 @@ interface PPP_InputEvent {
* PPB_InputEvent.RequestInputEvents() or RequestFilteringInputEvents(). By
* default, no events are delivered.
*
- * If the event was handled, it will not be forwarded to the web page or
- * browser. If it was not handled, it will bubble according to the normal
- * rules. So it is important that an instance respond accurately with whether
- * event propagation should continue.
+ * If the event was handled, it will not be forwarded to the default handlers
+ * in the web page. If it was not handled, it may be dispatched to a default
+ * handler. So it is important that an instance respond accurately with
+ * whether event propagation should continue.
*
* Event propagation also controls focus. If you handle an event like a mouse
* event, typically the instance will be given focus. Returning false from
diff --git a/chromium/ppapi/api/ppp_message_handler.idl b/chromium/ppapi/api/ppp_message_handler.idl
new file mode 100644
index 00000000000..675b1a3cf7b
--- /dev/null
+++ b/chromium/ppapi/api/ppp_message_handler.idl
@@ -0,0 +1,70 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the <code>PPP_MessageHandler</code> interface that plugins
+ * can implement and register using PPB_Messaging::RegisterMessageHandler in
+ * order to handle messages sent from JavaScript via postMessage() or
+ * postMessageAndAwaitResponse().
+ */
+
+label Chrome {
+ [channel=none] M37 = 0.1
+};
+
+/**
+ * The <code>PPP_MessageHandler</code> interface is implemented by the plugin
+ * if the plugin wants to receive messages from a thread other than the main
+ * Pepper thread, or if the plugin wants to handle blocking messages which
+ * JavaScript may send via postMessageAndAwaitResponse().
+ *
+ * This interface struct should not be returned by PPP_GetInterface; instead it
+ * must be passed as a parameter to PPB_Messaging::RegisterMessageHandler.
+ */
+[no_interface_string]
+interface PPP_MessageHandler {
+ /**
+ * Invoked as a result of JavaScript invoking postMessage() on the plugin's
+ * DOM element.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ * @param[in] message A copy of the parameter that JavaScript provided to
+ * postMessage().
+ */
+ void HandleMessage([in] PP_Instance instance,
+ [inout] mem_t user_data,
+ [in] PP_Var message);
+ /**
+ * Invoked as a result of JavaScript invoking postMessageAndAwaitResponse()
+ * on the plugin's DOM element.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ * @param[in] message is a copy of the parameter that JavaScript provided
+ * to postMessageAndAwaitResponse.
+ * @return will be copied to a JavaScript object which is returned as
+ * the result of postMessageAndAwaitResponse to the invoking JavaScript.
+ */
+ PP_Var HandleBlockingMessage([in] PP_Instance instance,
+ [inout] mem_t user_data,
+ [in] PP_Var message);
+ /**
+ * Invoked when the handler object is no longer needed. After this, no more
+ * calls will be made which pass this same value for <code>instance</code>
+ * and <code>user_data</code>.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ */
+ void Destroy([in] PP_Instance instance, [inout] mem_t user_data);
+};
+
diff --git a/chromium/ppapi/api/private/finish_writing_these/ppb_pdf.idl b/chromium/ppapi/api/private/finish_writing_these/ppb_pdf.idl
index d586f09c38f..20e077f346a 100644
--- a/chromium/ppapi/api/private/finish_writing_these/ppb_pdf.idl
+++ b/chromium/ppapi/api/private/finish_writing_these/ppb_pdf.idl
@@ -150,4 +150,16 @@ interface PPB_PDF_0_1 {
/* Returns PP_TRUE if the plugin is out of process. */
PP_Bool IsOutOfProcess(
[in] PP_Instance instance);
+
+ /* Sets the selected text of the plugin. If |selected_text| is empty, then no
+ * text is selected. */
+ void SetSelectedText(
+ [in] PP_Instance instance,
+ [in] str_t selected_text);
+
+ /* Sets the link under the cursor. If |url| is empty, then no link is under
+ * the cursor. */
+ void SetLinkUnderCursor(
+ [in] PP_Instance instance,
+ [in] str_t url);
};
diff --git a/chromium/ppapi/api/private/pp_content_decryptor.idl b/chromium/ppapi/api/private/pp_content_decryptor.idl
index 41a39974083..4493c3eab7a 100644
--- a/chromium/ppapi/api/private/pp_content_decryptor.idl
+++ b/chromium/ppapi/api/private/pp_content_decryptor.idl
@@ -81,7 +81,7 @@ struct PP_DecryptSubsampleDescription {
* The <code>PP_EncryptedBlockInfo</code> struct contains all the information
* needed to decrypt an encrypted block.
*/
-[assert_size(248)]
+[assert_size(240)]
struct PP_EncryptedBlockInfo {
/**
* Information needed by the client to track the block to be decrypted.
@@ -94,11 +94,6 @@ struct PP_EncryptedBlockInfo {
uint32_t data_size;
/**
- * Size in bytes of data to be discarded before applying the decryption.
- */
- uint32_t data_offset;
-
- /**
* Key ID of the block to be decrypted.
*
* TODO(xhwang): For WebM the key ID can be as large as 2048 bytes in theory.
@@ -121,12 +116,6 @@ struct PP_EncryptedBlockInfo {
*/
PP_DecryptSubsampleDescription[16] subsamples;
uint32_t num_subsamples;
-
- /**
- * 4-byte padding to make the size of <code>PP_EncryptedBlockInfo</code>
- * a multiple of 8 bytes. The value of this field should not be used.
- */
- uint32_t padding;
};
/**
@@ -337,7 +326,8 @@ struct PP_AudioDecoderConfig {
enum PP_VideoCodec {
PP_VIDEOCODEC_UNKNOWN = 0,
PP_VIDEOCODEC_VP8 = 1,
- PP_VIDEOCODEC_H264 = 2
+ PP_VIDEOCODEC_H264 = 2,
+ PP_VIDEOCODEC_VP9 = 3
};
/**
@@ -348,7 +338,7 @@ enum PP_VideoCodec {
[assert_size(4)]
enum PP_VideoCodecProfile {
PP_VIDEOCODECPROFILE_UNKNOWN = 0,
- PP_VIDEOCODECPROFILE_VP8_MAIN = 1,
+ PP_VIDEOCODECPROFILE_NOT_NEEDED = 1,
PP_VIDEOCODECPROFILE_H264_BASELINE = 2,
PP_VIDEOCODECPROFILE_H264_MAIN = 3,
PP_VIDEOCODECPROFILE_H264_EXTENDED = 4,
@@ -409,3 +399,26 @@ enum PP_DecryptorStreamType {
PP_DECRYPTORSTREAMTYPE_AUDIO = 0,
PP_DECRYPTORSTREAMTYPE_VIDEO = 1
};
+
+/**
+ * <code>PP_SessionType</code> contains session type constants.
+ */
+[assert_size(4)]
+enum PP_SessionType {
+ PP_SESSIONTYPE_TEMPORARY = 0,
+ PP_SESSIONTYPE_PERSISTENT = 1
+};
+
+/**
+ * <code>PP_CdmExceptionCode</code> contains exception code constants.
+ */
+[assert_size(4)]
+enum PP_CdmExceptionCode {
+ PP_CDMEXCEPTIONCODE_NOTSUPPORTEDERROR = 1,
+ PP_CDMEXCEPTIONCODE_INVALIDSTATEERROR = 2,
+ PP_CDMEXCEPTIONCODE_INVALIDACCESSERROR = 3,
+ PP_CDMEXCEPTIONCODE_QUOTAEXCEEDEDERROR = 4,
+ PP_CDMEXCEPTIONCODE_UNKNOWNERROR = 5,
+ PP_CDMEXCEPTIONCODE_CLIENTERROR = 6,
+ PP_CDMEXCEPTIONCODE_OUTPUTERROR = 7
+};
diff --git a/chromium/ppapi/api/private/ppb_content_decryptor_private.idl b/chromium/ppapi/api/private/ppb_content_decryptor_private.idl
index cade7245984..e4dfd4f1420 100644
--- a/chromium/ppapi/api/private/ppb_content_decryptor_private.idl
+++ b/chromium/ppapi/api/private/ppb_content_decryptor_private.idl
@@ -12,7 +12,7 @@
[generate_thunk]
label Chrome {
- M33 = 0.9
+ M36 = 0.12
};
/**
@@ -24,22 +24,48 @@ label Chrome {
*/
interface PPB_ContentDecryptor_Private {
/**
- * A session has been created by the CDM.
+ * A promise has been resolved by the CDM.
*
- * @param[in] session_id Identifies the session for which the CDM
- * created a session.
+ * @param[in] promise_id Identifies the promise that the CDM resolved.
+ */
+ void PromiseResolved(
+ [in] PP_Instance instance,
+ [in] uint32_t promise_id);
+
+ /**
+ * A promise has been resolved by the CDM.
*
- * @param[in] web_session_id A <code>PP_Var</code> of type
- * <code>PP_VARTYPE_STRING</code> containing the string for the
- * MediaKeySession's sessionId attribute.
+ * @param[in] promise_id Identifies the promise that the CDM resolved.
*
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute.
*/
- void SessionCreated(
+ void PromiseResolvedWithSession(
[in] PP_Instance instance,
- [in] uint32_t session_id,
+ [in] uint32_t promise_id,
[in] PP_Var web_session_id);
/**
+ * A promise has been rejected by the CDM due to an error.
+ *
+ * @param[in] promise_id Identifies the promise that the CDM rejected.
+ *
+ * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing
+ * the exception code.
+ *
+ * @param[in] system_code A system error code.
+ *
+ * @param[in] error_description A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the error description.
+ */
+ void PromiseRejected(
+ [in] PP_Instance instance,
+ [in] uint32_t promise_id,
+ [in] PP_CdmExceptionCode exception_code,
+ [in] uint32_t system_code,
+ [in] PP_Var error_description);
+
+ /**
* A message or request has been generated for key_system in the CDM, and
* must be sent to the web application.
*
@@ -53,8 +79,9 @@ interface PPB_ContentDecryptor_Private {
* of <code>UpdateSession()</code> and <code>SessionMessage()</code> calls
* required to prepare for decryption.
*
- * @param[in] session_id Identifies the session for which the message
- * is intended.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute for
+ * which the message is intended.
*
* @param[in] message A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAY_BUFFER</code> that contains the message.
@@ -65,7 +92,7 @@ interface PPB_ContentDecryptor_Private {
*/
void SessionMessage(
[in] PP_Instance instance,
- [in] uint32_t session_id,
+ [in] PP_Var web_session_id,
[in] PP_Var message,
[in] PP_Var destination_url);
@@ -81,11 +108,13 @@ interface PPB_ContentDecryptor_Private {
* The CDM must call <code>SessionReady()</code> when the sequence is
* completed, and, in response, the browser must notify the web application.
*
- * @param[in] session_id Identifies the session that is ready.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that is now ready.
*/
void SessionReady(
[in] PP_Instance instance,
- [in] uint32_t session_id);
+ [in] PP_Var web_session_id);
/**
* The session has been closed as the result of a call to the
@@ -93,28 +122,36 @@ interface PPB_ContentDecryptor_Private {
* <code>PPP_ContentDecryptor_Private</code> interface, or due to other
* factors as determined by the CDM.
*
- * @param[in] session_id Identifies the session that is closed.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that is now closed.
*/
void SessionClosed(
[in] PP_Instance instance,
- [in] uint32_t session_id);
+ [in] PP_Var web_session_id);
/**
* An error occurred in a <code>PPP_ContentDecryptor_Private</code> method,
* or within the plugin implementing the interface.
*
- * @param[in] session_id Identifies the session for which the error
- * is intended.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that caused the error.
+ *
+ * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing
+ * the exception code.
*
- * @param[in] media_error A MediaKeyError.
+ * @param[in] system_code A system error code.
*
- * @param[in] system_error A system error code.
+ * @param[in] error_description A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the error description.
*/
void SessionError(
[in] PP_Instance instance,
- [in] uint32_t session_id,
- [in] int32_t media_error,
- [in] int32_t system_code);
+ [in] PP_Var web_session_id,
+ [in] PP_CdmExceptionCode exception_code,
+ [in] uint32_t system_code,
+ [in] PP_Var error_description);
/**
* Called after the <code>Decrypt()</code> method on the
diff --git a/chromium/ppapi/api/private/ppb_display_color_profile_private.idl b/chromium/ppapi/api/private/ppb_display_color_profile_private.idl
new file mode 100644
index 00000000000..41e48416591
--- /dev/null
+++ b/chromium/ppapi/api/private/ppb_display_color_profile_private.idl
@@ -0,0 +1,97 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the <code>PPB_DisplayColorProfile</code> struct used for
+ * getting the color profile of the display.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ M33 = 0.1
+};
+
+/**
+ * <code>PPB_DisplayColorProfile_Private</code> defines the methods for getting
+ * the display color profile and monitoring its changes.
+ *
+ * <strong>Setup:<strong>
+ * @code
+ * PP_ArrayOutput output = { MyAllocatorFunction, color_profile_data };
+ * PP_Resource display_cp = display_cp_interface->Create(instance);
+ * display_cp_interface->GetColorProfile(display_cp,
+ * output,
+ * completion_callback);
+ * @endcode
+ */
+interface PPB_DisplayColorProfile_Private {
+ /**
+ * Create() creates a display color profile resource.
+ *
+ * @param[in] instance The module instance.
+ * @return A <code>PP_Resource</code> containing a display color profile
+ * resource.
+ */
+ PP_Resource Create([in] PP_Instance instance);
+
+ /**
+ * IsDisplayColorProfile() determines if the given resource is a valid
+ * <code>DisplayColorProfile</code> resource.
+ *
+ * @param[in] resource A <code>DisplayColorProfile</code> context resource.
+ * @return Returns:
+ * - <code>PP_TRUE</code> if the given resource is a valid
+ * <code>DisplayColorProfile</code>
+ * - <code>PP_FALSE</code> if it is an invalid resource or is a resource
+ * of another type.
+ */
+ PP_Bool IsDisplayColorProfile([in] PP_Resource resource);
+
+ /**
+ * GetColorProfile() enqueues a request for the current display color profile.
+ *
+ * This method is intended for getting the color profile data of the display
+ * on which the browser window resides. [However currently Chrome only
+ * considers the system's primary display color profile when doing its color
+ * management. For consistency this method will also return the color profile
+ * that Chrome uses for its browser window.]
+ *
+ * @param[in] display_color_profile_res The display color profile resource.
+ * @param[in] color_profile A <code>PP_OutputArray</code> which on success
+ * will receive a byte array containing the ICC color profile data (see
+ * www.color.org for a reference to the ICC color profile specification
+ * and versions). The returned color profile version is the one supported by
+ * the host system.
+ * @param[in] callback The completion callback to be called once the display
+ * color profile data is available.
+ *
+ * @return Returns an error code from <code>pp_errors.h</code>.
+ */
+ int32_t GetColorProfile([in] PP_Resource display_color_profile_res,
+ [in] PP_ArrayOutput color_profile,
+ [in] PP_CompletionCallback callback);
+
+ /**
+ * RegisterColorProfileChangeCallback() registers a callback to be called next
+ * time the color profile for the browser window in which the plugin resides
+ * changes. In order to get notifications for all color profile changes a call
+ * to RegisterColorProfileChangeCallback() function should be done when the
+ * previous notification was fired.
+ *
+ * There might be 2 scenarios in which the color profile for a window changes:
+ * a) The window is moved from one display to another;
+ * b) The user changes the display color space from the system settings.
+ *
+ * @param[in] display_color_profile_res The display color profile resource.
+ * @param[in] callback The callback to be invoked next time the display
+ * color profile changes.
+ *
+ * @return Returns an error code from <code>pp_errors.h</code>.
+ */
+ int32_t RegisterColorProfileChangeCallback(
+ [in] PP_Resource display_color_profile_res,
+ [in] PP_CompletionCallback callback);
+};
diff --git a/chromium/ppapi/api/private/ppb_find_private.idl b/chromium/ppapi/api/private/ppb_find_private.idl
new file mode 100644
index 00000000000..e6f7cfa7283
--- /dev/null
+++ b/chromium/ppapi/api/private/ppb_find_private.idl
@@ -0,0 +1,66 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the <code>PPB_Find_Private</code> interface.
+ */
+
+[generate_thunk]
+
+label Chrome {
+ M14 = 0.3
+};
+
+/**
+ * This is a private interface for doing browser Find in the PDF plugin.
+ */
+interface PPB_Find_Private {
+ /**
+ * Sets the instance of this plugin as the mechanism that will be used to
+ * handle find requests in the renderer. This will only succeed if the plugin
+ * is embedded within the content of the top level frame. Note that this will
+ * result in the renderer handing over all responsibility for doing find to
+ * the plugin and content from the rest of the page will not be searched.
+ *
+ *
+ * In the case that the plugin is loaded directly as the top level document,
+ * this function does not need to be called. In that case the plugin is
+ * assumed to handle find requests.
+ *
+ * There can only be one plugin which handles find requests. If a plugin calls
+ * this while an existing plugin is registered, the existing plugin will be
+ * de-registered and will no longer receive any requests.
+ */
+ void SetPluginToHandleFindRequests(
+ [in] PP_Instance instance);
+
+ /**
+ * Updates the number of find results for the current search term. If
+ * there are no matches 0 should be passed in. Only when the plugin has
+ * finished searching should it pass in the final count with final_result set
+ * to PP_TRUE.
+ */
+ void NumberOfFindResultsChanged(
+ [in] PP_Instance instance,
+ [in] int32_t total,
+ [in] PP_Bool final_result);
+
+ /**
+ * Updates the index of the currently selected search item.
+ */
+ void SelectedFindResultChanged(
+ [in] PP_Instance instance,
+ [in] int32_t index);
+
+ /**
+ * Updates the tickmarks on the scrollbar for the find request. |tickmarks|
+ * contains |count| PP_Rects indicating the tickmark ranges.
+ */
+ void SetTickmarks(
+ [in] PP_Instance instance,
+ [in, size_as=count] PP_Rect[] tickmarks,
+ [in] uint32_t count);
+};
+
diff --git a/chromium/ppapi/api/private/ppb_flash_clipboard.idl b/chromium/ppapi/api/private/ppb_flash_clipboard.idl
index 5a973182a07..d2fef48a074 100644
--- a/chromium/ppapi/api/private/ppb_flash_clipboard.idl
+++ b/chromium/ppapi/api/private/ppb_flash_clipboard.idl
@@ -10,7 +10,8 @@
label Chrome {
M19 = 4.0,
- M24 = 5.0
+ M24 = 5.0,
+ M34 = 5.1
};
/**
@@ -142,4 +143,15 @@ interface PPB_Flash_Clipboard {
[in] uint32_t data_item_count,
[in, size_is(data_item_count)] uint32_t[] formats,
[in, size_is(data_item_count)] PP_Var[] data_items);
+
+ /**
+ * Gets a sequence number which uniquely identifies clipboard state. This can
+ * be used to version the data on the clipboard and determine whether it has
+ * changed. The sequence number will be placed in |sequence_number| and
+ * PP_TRUE returned if the sequence number was retrieved successfully.
+ */
+ [version=5.1]
+ PP_Bool GetSequenceNumber([in] PP_Instance instance_id,
+ [in] PP_Flash_Clipboard_Type clipboard_type,
+ [out] uint64_t sequence_number);
};
diff --git a/chromium/ppapi/api/private/ppb_flash_drm.idl b/chromium/ppapi/api/private/ppb_flash_drm.idl
index c6f6efff5ae..a5da9673d1b 100644
--- a/chromium/ppapi/api/private/ppb_flash_drm.idl
+++ b/chromium/ppapi/api/private/ppb_flash_drm.idl
@@ -34,9 +34,11 @@ interface PPB_Flash_DRM {
[in] PP_CompletionCallback callback);
/**
- * Windows only. Synchronously outputs the HMONITOR corresponding to the
- * monitor on which the plugin instance is displayed in |hmonitor|. PP_TRUE is
- * returned on success.
+ * Windows and Mac only. Synchronously outputs the HMONITOR or
+ * CGDirectDisplayID corresponding to the monitor on which the plugin instance
+ * is displayed in |hmonitor|. This value is queried asynchronously and this
+ * will return PP_FALSE if the value is not yet available or an error
+ * occurred. PP_TRUE is returned on success.
*/
PP_Bool GetHmonitor([in] PP_Resource drm,
[out] int64_t hmonitor);
diff --git a/chromium/ppapi/api/private/ppb_input_event_private.idl b/chromium/ppapi/api/private/ppb_input_event_private.idl
new file mode 100644
index 00000000000..f06804f613e
--- /dev/null
+++ b/chromium/ppapi/api/private/ppb_input_event_private.idl
@@ -0,0 +1,54 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * This file defines the PPB_InputEvent_Private interfaces.
+ */
+
+label Chrome {
+ M37 = 0.1
+};
+
+/**
+ * The <code>PPB_InputEvent_Private</code> interface contains pointers to several
+ * functions related to generic input events on the browser.
+ */
+
+interface PPB_InputEvent_Private {
+ /**
+ * TraceInputLatency() traces the latency of the input event. The input
+ * latency is shown in the trace viewer. The starting point of the input
+ * latency is when the input event is sent from renderer to plugin. If the
+ * input event does not cause any rendering damage, the end point of input
+ * latency is when TraceInputLatency() is called on the event. If the input
+ * event does cause rendering damage, the end point of input latency is when
+ * the resulted plugin frame eventually reaches screen.
+ *
+ * Notes: In the current version, only Graphics2D damage is considered as
+ * rendering damage. And it works only when the Graphics2Ds are bound to
+ * the plugin instance.
+ *
+ * @param[in] event A <code>PP_Resource</code> corresponding to an input
+ * event.
+ *
+ * @param[in] has_damage A bool indicating whether the event has caused any
+ * rendering damage.
+ *
+ * @return <code>PP_TRUE</code> if the latency for the given event is tracked.
+ */
+ PP_Bool TraceInputLatency([in] PP_Resource event,
+ [in] PP_Bool has_damage);
+
+ /**
+ * StartTrackingLatency() requests input latency to be tracked.
+ *
+ * Without calling StartTrackingLatency() first, TraceInputLatency() won't
+ * take effect.
+ *
+ * @param[in] instance The <code>PP_Instance</code> of the instance requesting
+ * to start tracking input latency.
+ */
+ void StartTrackingLatency([in] PP_Instance instance);
+};
diff --git a/chromium/ppapi/api/private/ppb_nacl_private.idl b/chromium/ppapi/api/private/ppb_nacl_private.idl
index 4e215d7fa89..9a94214b0f6 100644
--- a/chromium/ppapi/api/private/ppb_nacl_private.idl
+++ b/chromium/ppapi/api/private/ppb_nacl_private.idl
@@ -15,13 +15,93 @@ label Chrome {
#include "ppapi/c/private/ppb_instance_private.h"
#endinl
-/** NaCl-specific errors that should be reported to the user */
+/** NaCl-specific errors that should be reported to the user.
+ * These error codes are reported via UMA so, if you edit them:
+ * 1) make sure you understand UMA first.
+ * 2) update src/tools/metrics/histograms/histograms.xml
+ * Values are explicitly specified to make sure they don't shift around when
+ * edited, and also to make reading about:histograms easier.
+ */
enum PP_NaClError {
- /**
- * The manifest program element does not contain a program usable on the
- * user's architecture
- */
- PP_NACL_MANIFEST_MISSING_ARCH = 0
+ PP_NACL_ERROR_LOAD_SUCCESS = 0,
+ PP_NACL_ERROR_LOAD_ABORTED = 1,
+ PP_NACL_ERROR_UNKNOWN = 2,
+ PP_NACL_ERROR_MANIFEST_RESOLVE_URL = 3,
+ PP_NACL_ERROR_MANIFEST_LOAD_URL = 4,
+ PP_NACL_ERROR_MANIFEST_STAT = 5,
+ PP_NACL_ERROR_MANIFEST_TOO_LARGE = 6,
+ PP_NACL_ERROR_MANIFEST_OPEN = 7,
+ PP_NACL_ERROR_MANIFEST_MEMORY_ALLOC = 8,
+ PP_NACL_ERROR_MANIFEST_READ = 9,
+ PP_NACL_ERROR_MANIFEST_PARSING = 10,
+ PP_NACL_ERROR_MANIFEST_SCHEMA_VALIDATE = 11,
+ PP_NACL_ERROR_MANIFEST_GET_NEXE_URL = 12,
+ PP_NACL_ERROR_NEXE_LOAD_URL = 13,
+ PP_NACL_ERROR_NEXE_ORIGIN_PROTOCOL = 14,
+ PP_NACL_ERROR_NEXE_FH_DUP = 15,
+ PP_NACL_ERROR_NEXE_STAT = 16,
+ PP_NACL_ERROR_ELF_CHECK_IO = 17,
+ PP_NACL_ERROR_ELF_CHECK_FAIL = 18,
+ PP_NACL_ERROR_SEL_LDR_INIT = 19,
+ PP_NACL_ERROR_SEL_LDR_CREATE_LAUNCHER = 20,
+ PP_NACL_ERROR_SEL_LDR_FD = 21,
+ PP_NACL_ERROR_SEL_LDR_LAUNCH = 22,
+ /* Deprecated, safe to reuse the value because it's never logged in UMA.
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION = 23, */
+ PP_NACL_ERROR_SEL_LDR_SEND_NEXE = 24,
+ PP_NACL_ERROR_SEL_LDR_HANDLE_PASSING = 25,
+ PP_NACL_ERROR_SEL_LDR_START_MODULE = 26,
+ PP_NACL_ERROR_SEL_LDR_START_STATUS = 27,
+ PP_NACL_ERROR_SRPC_CONNECTION_FAIL = 28,
+ PP_NACL_ERROR_START_PROXY_CHECK_PPP = 29,
+ PP_NACL_ERROR_START_PROXY_ALLOC = 30,
+ PP_NACL_ERROR_START_PROXY_MODULE = 31,
+ PP_NACL_ERROR_START_PROXY_INSTANCE = 32,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL = 33,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SETUP = 34,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_WRAPPER = 35,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SERVICE = 36,
+ PP_NACL_ERROR_START_PROXY_CRASH = 37,
+ PP_NACL_ERROR_MANIFEST_PROGRAM_MISSING_ARCH = 38,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_INPROGRESS = 39,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOACCESS = 40,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOQUOTA = 41,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOSPACE = 42,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_OTHER = 43,
+ PP_NACL_ERROR_PNACL_CACHE_DIRECTORY_CREATE = 44,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOACCESS = 45,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOQUOTA = 46,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOSPACE = 47,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOTAFILE = 48,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_OTHER = 49,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_NOACCESS = 50,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_NOTFOUND = 51,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_OTHER = 52,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_NOQUOTA = 53,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_NOSPACE = 54,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_OTHER = 55,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_RENAME_NOACCESS = 56,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_RENAME_OTHER = 57,
+ PP_NACL_ERROR_PNACL_RESOURCE_FETCH = 58,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_ABORTED = 59,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_NOACCESS = 60,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_OTHER = 61,
+ PP_NACL_ERROR_PNACL_THREAD_CREATE = 62,
+ PP_NACL_ERROR_PNACL_LLC_SETUP = 63,
+ PP_NACL_ERROR_PNACL_LD_SETUP = 64,
+ PP_NACL_ERROR_PNACL_LLC_INTERNAL = 65,
+ PP_NACL_ERROR_PNACL_LD_INTERNAL = 66,
+ PP_NACL_ERROR_PNACL_CREATE_TEMP = 67,
+ /* This entry is no longer used, but should not be removed, because UMA
+ numbers need to be kept consistent. */
+ PP_NACL_ERROR_PNACL_NOT_ENABLED = 68,
+ PP_NACL_ERROR_MANIFEST_NOACCESS_URL = 69,
+ PP_NACL_ERROR_NEXE_NOACCESS_URL = 70,
+ PP_NACL_ERROR_PNACL_CRASH_THROTTLED = 71,
+
+ /* If you add a code, read the enum comment above on how to update
+ histograms. */
+ PP_NACL_ERROR_MAX
};
/** Event types that NaCl may use when reporting load progress or errors. */
@@ -35,6 +115,67 @@ enum PP_NaClEventType {
PP_NACL_EVENT_CRASH
};
+enum PP_UrlSchemeType {
+ PP_SCHEME_CHROME_EXTENSION,
+ PP_SCHEME_DATA,
+ PP_SCHEME_OTHER
+};
+
+enum PP_NaClReadyState {
+ /* The trusted plugin begins in this ready state. */
+ PP_NACL_READY_STATE_UNSENT = 0,
+ /* The manifest file has been requested, but not yet received. */
+ PP_NACL_READY_STATE_OPENED = 1,
+ /* The manifest file has been received and the nexe successfully requested. */
+ PP_NACL_READY_STATE_LOADING = 3,
+ /* The nexe has been loaded and the proxy started, so it is ready for
+ interaction with the page. */
+ PP_NACL_READY_STATE_DONE = 4
+};
+
+struct PP_PNaClOptions {
+ PP_Bool translate;
+ PP_Bool is_debug;
+ int32_t opt_level;
+};
+
+/* Callback invoked upon completion of PPP_ManifestService::OpenResource(). */
+typedef void PP_OpenResourceCompletionCallback([inout] mem_t user_data,
+ [in] PP_FileHandle file_handle);
+
+/* ManifestService to support irt_open_resource() function.
+ * All functions of the service should have PP_Bool return value. It represents
+ * whether the service is still alive or not. Trivially Quit() should always
+ * return false. However, other functions also can return false.
+ * Once false is called, as the service has been destructed, all functions
+ * should never be called afterwords.
+ */
+interface PPP_ManifestService {
+ /* Called when ManifestService should be destructed. */
+ PP_Bool Quit([inout] mem_t user_data);
+
+ /* Called when PPAPI initialization in the NaCl plugin is finished. */
+ PP_Bool StartupInitializationComplete([inout] mem_t user_data);
+
+ /* Called when irt_open_resource() is invoked in the NaCl plugin.
+ * Upon completion, callback will be invoked with given callback_user_data
+ * and the result file handle (or PP_kInvalidFileHandle on error). */
+ PP_Bool OpenResource([inout] mem_t user_data,
+ [in] str_t entry_key,
+ [in] PP_OpenResourceCompletionCallback callback,
+ [inout] mem_t callback_user_data);
+};
+
+/* Corresponds to NaClFileInfo in
+ * native_client/src/trusted/validator/nacl_file_info.h */
+struct PP_NaClFileInfo {
+ PP_FileHandle handle;
+
+ /* See NaClFileToken comment in nacl_file_info.h */
+ uint64_t token_lo;
+ uint64_t token_hi;
+};
+
/* PPB_NaCl_Private */
interface PPB_NaCl_Private {
/* Launches NaCl's sel_ldr process. Returns PP_EXTERNAL_PLUGIN_OK on success
@@ -46,6 +187,8 @@ interface PPB_NaCl_Private {
* does not need PPAPI, then it can run off the main thread.
* The |uses_irt| flag indicates whether the IRT should be loaded in this
* NaCl process. This is true for ABI stable nexes.
+ * The |uses_nonsfi_mode| flag indicates whether or not nonsfi-mode should
+ * be used with the binary pointed by the url.
* The |enable_dyncode_syscalls| flag indicates whether or not the nexe
* will be able to use dynamic code system calls (e.g., mmap with PROT_EXEC).
* The |enable_exception_handling| flag indicates whether or not the nexe
@@ -54,26 +197,25 @@ interface PPB_NaCl_Private {
* the nexe contribute to crash throttling statisics and whether nexe starts
* are throttled by crash throttling.
*/
- PP_ExternalPluginResult LaunchSelLdr([in] PP_Instance instance,
- [in] str_t alleged_url,
- [in] PP_Bool uses_irt,
- [in] PP_Bool uses_ppapi,
- [in] PP_Bool enable_ppapi_dev,
- [in] PP_Bool enable_dyncode_syscalls,
- [in] PP_Bool enable_exception_handling,
- [in] PP_Bool enable_crash_throttling,
- [out] mem_t imc_handle,
- [out] PP_Var error_message);
+ void LaunchSelLdr([in] PP_Instance instance,
+ [in] PP_Bool main_service_runtime,
+ [in] str_t alleged_url,
+ [in] PP_Bool uses_irt,
+ [in] PP_Bool uses_ppapi,
+ [in] PP_Bool uses_nonsfi_mode,
+ [in] PP_Bool enable_ppapi_dev,
+ [in] PP_Bool enable_dyncode_syscalls,
+ [in] PP_Bool enable_exception_handling,
+ [in] PP_Bool enable_crash_throttling,
+ [in] PPP_ManifestService manifest_service_interface,
+ [inout] mem_t manifest_service_user_data,
+ [out] mem_t imc_handle,
+ [in] PP_CompletionCallback callback);
/* This function starts the IPC proxy so the nexe can communicate with the
- * browser. Returns PP_EXTERNAL_PLUGIN_OK on success, otherwise a result code
- * indicating the failure. PP_EXTERNAL_PLUGIN_FAILED is returned if
- * LaunchSelLdr wasn't called with the instance.
- * PP_EXTERNAL_PLUGIN_ERROR_MODULE is returned if the module can't be
- * initialized. PP_EXTERNAL_PLUGIN_ERROR_INSTANCE is returned if the instance
- * can't be initialized.
+ * browser.
*/
- PP_ExternalPluginResult StartPpapiProxy(PP_Instance instance);
+ PP_Bool StartPpapiProxy(PP_Instance instance);
/* On POSIX systems, this function returns the file descriptor of
* /dev/urandom. On non-POSIX systems, this function returns 0.
@@ -98,10 +240,10 @@ interface PPB_NaCl_Private {
[in] uint32_t desired_access,
[in] uint32_t options);
- /* Returns a read-only file descriptor of a file rooted in the Pnacl
- * component directory, or an invalid handle on failure.
+ /* Returns a read-only file descriptor for a url for pnacl translator tools,
+ * or an invalid handle on failure.
*/
- PP_FileHandle GetReadonlyPnaclFd([in] str_t filename);
+ PP_FileHandle GetReadonlyPnaclFd([in] str_t url);
/* This creates a temporary file that will be deleted by the time
* the last handle is closed (or earlier on POSIX systems), and
@@ -109,27 +251,30 @@ interface PPB_NaCl_Private {
*/
PP_FileHandle CreateTemporaryFile([in] PP_Instance instance);
+ /* Return the number of processors in the system as reported by the OS */
+ int32_t GetNumberOfProcessors();
+
+ /* Return whether the non-SFI mode is enabled. */
+ PP_Bool IsNonSFIModeEnabled();
+
/* Create a temporary file, which will be deleted by the time the
* last handle is closed (or earlier on POSIX systems), to use for
* the nexe with the cache information given by |pexe_url|,
- * |abi_version|, |opt_level|, |last_modified|, |etag|, and
- * |has_no_store_header|. If the nexe is already present in the
- * cache, |is_hit| is set to PP_TRUE and the contents of the nexe
- * will be copied into the temporary file. Otherwise |is_hit| is set
- * to PP_FALSE and the temporary file will be writeable. Currently
- * the implementation is a stub, which always sets is_hit to false
- * and calls the implementation of CreateTemporaryFile. In a
- * subsequent CL it will call into the browser which will remember
- * the association between the cache key and the fd, and copy the
- * nexe into the cache after the translation finishes.
+ * |abi_version|, |opt_level|, and |headers|. If the nexe is already present
+ * in the cache, |is_hit| is set to PP_TRUE and the contents of the nexe will
+ * be copied into the temporary file. Otherwise |is_hit| is set to PP_FALSE
+ * and the temporary file will be writeable. Currently the implementation is
+ * a stub, which always sets is_hit to false and calls the implementation of
+ * CreateTemporaryFile. In a subsequent CL it will call into the browser
+ * which will remember the association between the cache key and the fd, and
+ * copy the nexe into the cache after the translation finishes.
*/
int32_t GetNexeFd([in] PP_Instance instance,
[in] str_t pexe_url,
[in] uint32_t abi_version,
[in] uint32_t opt_level,
- [in] str_t last_modified,
- [in] str_t etag,
- [in] PP_Bool has_no_store_header,
+ [in] str_t headers,
+ [in] str_t extra_flags,
[out] PP_Bool is_hit,
[out] PP_FileHandle nexe_handle,
[in] PP_CompletionCallback callback);
@@ -144,36 +289,156 @@ interface PPB_NaCl_Private {
* the plugin.)
*/
void ReportTranslationFinished([in] PP_Instance instance,
- [in] PP_Bool success);
-
- /* Display a UI message to the user. */
- PP_ExternalPluginResult ReportNaClError([in] PP_Instance instance,
- [in] PP_NaClError message_id);
-
- /* Opens a NaCl executable file in the application's extension directory
- * corresponding to the file URL and returns a file descriptor, or an invalid
- * handle on failure. |metadata| is left unchanged on failure.
- */
- PP_FileHandle OpenNaClExecutable([in] PP_Instance instance,
- [in] str_t file_url,
- [out] uint64_t file_token_lo,
- [out] uint64_t file_token_hi);
-
+ [in] PP_Bool success,
+ [in] int32_t opt_level,
+ [in] int64_t pexe_size,
+ [in] int64_t compile_time_us,
+ [in] int64_t total_time_us);
/* Dispatch a progress event on the DOM element where the given instance is
* embedded.
*/
void DispatchEvent([in] PP_Instance instance,
[in] PP_NaClEventType event_type,
- [in] PP_Var resource_url,
+ [in] str_t resource_url,
[in] PP_Bool length_is_computable,
[in] uint64_t loaded_bytes,
[in] uint64_t total_bytes);
- /* Sets a read-only property on the <embed> DOM element that corresponds to
- * the given instance.
+ /* Report that the nexe loaded successfully. */
+ void ReportLoadSuccess([in] PP_Instance instance,
+ [in] str_t url,
+ [in] uint64_t loaded_bytes,
+ [in] uint64_t total_bytes);
+
+ /* Report an error that occured while attempting to load a nexe. */
+ void ReportLoadError([in] PP_Instance instance,
+ [in] PP_NaClError error,
+ [in] str_t error_message);
+
+ /* Reports that loading a nexe was aborted. */
+ void ReportLoadAbort([in] PP_Instance instance);
+
+ /* Reports that the nexe has crashed. */
+ void NexeDidCrash([in] PP_Instance instance,
+ [in] str_t crash_log);
+
+ /* Performs internal setup when an instance is created. */
+ void InstanceCreated([in] PP_Instance instance);
+
+ /* Performs internal cleanup when an instance is destroyed. */
+ void InstanceDestroyed([in] PP_Instance instance);
+
+ /* Return true if the NaCl debug stub is enabled and the app loaded from
+ * alleged_nmf_url will be attached to a debugger.
+ */
+ PP_Bool NaClDebugEnabledForURL([in] str_t alleged_nmf_url);
+
+ /* Returns the kind of SFI sandbox implemented by NaCl on this
+ * platform.
+ */
+ str_t GetSandboxArch();
+
+ /* Logs the message to the console. */
+ void LogToConsole([in] PP_Instance instance,
+ [in] str_t message);
+
+ /* Returns the NaCl readiness status for this instance. */
+ PP_NaClReadyState GetNaClReadyState([in] PP_Instance instance);
+
+ /* Returns the exit status of the plugin process. */
+ int32_t GetExitStatus([in] PP_Instance instance);
+
+ /* Sets the exit status of the plugin process. */
+ void SetExitStatus([in] PP_Instance instance,
+ [in] int32_t exit_status);
+
+ /* Logs the message via VLOG. */
+ void Vlog([in] str_t message);
+
+ /* Initializes internal state for a NaCl plugin. */
+ void InitializePlugin([in] PP_Instance instance,
+ [in] uint32_t argc,
+ [in, size_as=argc] str_t[] argn,
+ [in, size_as=argv] str_t[] argv);
+
+ /* Returns the size of the nexe. */
+ int64_t GetNexeSize([in] PP_Instance instance);
+
+ /* Requests the NaCl manifest specified in the plugin arguments. */
+ void RequestNaClManifest([in] PP_Instance instance,
+ [in] PP_CompletionCallback callback);
+
+ PP_Var GetManifestBaseURL([in] PP_Instance instance);
+
+ /* Processes the NaCl manifest once it's been retrieved.
+ * TODO(teravest): Move the rest of the supporting logic out of the trusted
+ * plugin.
+ */
+ void ProcessNaClManifest([in] PP_Instance instance,
+ [in] str_t program_url);
+
+ PP_Bool DevInterfacesEnabled([in] PP_Instance instance);
+
+ PP_Bool GetManifestProgramURL([in] PP_Instance instance,
+ [out] PP_Var full_url,
+ [out] PP_PNaClOptions pnacl_options,
+ [out] PP_Bool uses_nonsfi_mode);
+
+ PP_Bool ManifestResolveKey([in] PP_Instance instance,
+ [in] PP_Bool helper_process,
+ [in] str_t key,
+ [out] PP_Var full_url,
+ [out] PP_PNaClOptions pnacl_options);
+
+ /* Returns the filenames for the llc and ld tools, parsing that information
+ * from the file given in |filename|.
+ */
+ PP_Bool GetPnaclResourceInfo([in] PP_Instance instance,
+ [in] str_t filename,
+ [out] PP_Var llc_tool_name,
+ [out] PP_Var ld_tool_name);
+
+ // PP_Var string of attributes describing the CPU features supported
+ // by the current architecture. The string is a comma-delimited list
+ // of attributes supported by LLVM in its -mattr= option:
+ // http://llvm.org/docs/CommandGuide/llc.html#cmdoption-mattr
+ PP_Var GetCpuFeatureAttrs();
+
+ /* Posts a message to the JavaScript object for the given instance.
+ * This method may be called on any thread.
+ */
+ void PostMessageToJavaScript([in] PP_Instance instance,
+ [in] str_t message);
+
+ /* Downloads the .nexe file at the given URL to a file, and sets |file_info|
+ * to information for a handle to a file containing its contents.
+ * If metadata for identity-based validation caching is available
+ * then it sets token information in |file_info| (otherwise left untouched).
+ */
+ void DownloadNexe([in] PP_Instance instance,
+ [in] str_t url,
+ [out] PP_NaClFileInfo file_info,
+ [in] PP_CompletionCallback callback);
+
+ /* Downloads a non-nexe file specified in the manifest, and sets |file_info|
+ * to corresponding information about the file. */
+ void DownloadFile([in] PP_Instance instance,
+ [in] str_t url,
+ [out] PP_NaClFileInfo file_info,
+ [in] PP_CompletionCallback callback);
+
+ /* Reports the status of sel_ldr for UMA reporting.
+ * |max_status| has to be provided because the implementation of this
+ * interface can't access the NaClErrorCode enum.
+ */
+ void ReportSelLdrStatus([in] PP_Instance instance,
+ [in] int32_t load_status,
+ [in] int32_t max_status);
+
+ /* Logs time taken by an operation to UMA histograms.
+ * This function is safe to call on any thread.
*/
- void SetReadOnlyProperty([in] PP_Instance instance,
- [in] PP_Var key,
- [in] PP_Var value);
+ void LogTranslateTime([in] str_t histogram_name,
+ [in] int64_t time_us);
};
diff --git a/chromium/ppapi/api/private/ppb_uma_private.idl b/chromium/ppapi/api/private/ppb_uma_private.idl
index cdb39080fa2..2d9b950fbba 100644
--- a/chromium/ppapi/api/private/ppb_uma_private.idl
+++ b/chromium/ppapi/api/private/ppb_uma_private.idl
@@ -6,8 +6,11 @@
/**
* This file defines the <code>PPB_UMA_Private</code> interface.
*/
+
+[generate_thunk,thunk_include="ppapi/thunk/ppb_uma_singleton_api.h"]
+
label Chrome {
- M18 = 0.1
+ M35 = 0.3
};
/**
@@ -19,7 +22,9 @@ interface PPB_UMA_Private {
* sample given in milliseconds in the histogram given by |name|, possibly
* creating the histogram if it does not exist.
*/
- void HistogramCustomTimes([in] PP_Var name,
+ [singleton,api=PPB_UMA_Singleton_API]
+ void HistogramCustomTimes([in] PP_Instance instance,
+ [in] PP_Var name,
[in] int64_t sample,
[in] int64_t min,
[in] int64_t max,
@@ -30,7 +35,9 @@ interface PPB_UMA_Private {
* in the histogram given by |name|, possibly creating the histogram if it
* does not exist.
*/
- void HistogramCustomCounts([in] PP_Var name,
+ [singleton,api=PPB_UMA_Singleton_API]
+ void HistogramCustomCounts([in] PP_Instance instance,
+ [in] PP_Var name,
[in] int32_t sample,
[in] int32_t min,
[in] int32_t max,
@@ -42,7 +49,19 @@ interface PPB_UMA_Private {
* does not exist. The sample represents a value in an enumeration bounded
* by |boundary_value|, that is, sample < boundary_value always.
*/
- void HistogramEnumeration([in] PP_Var name,
+ [singleton,api=PPB_UMA_Singleton_API]
+ void HistogramEnumeration([in] PP_Instance instance,
+ [in] PP_Var name,
[in] int32_t sample,
[in] int32_t boundary_value);
+
+ /**
+ * IsCrashReportingEnabled returns PP_OK to the completion callback to
+ * indicate that the current user has opted-in to crash reporting, or
+ * PP_ERROR_* on failure or when a user has not opted-in. This can be used to
+ * gate other reporting processes such as analytics and crash reporting.
+ */
+ [singleton,api=PPB_UMA_Singleton_API]
+ int32_t IsCrashReportingEnabled([in] PP_Instance instance,
+ [in] PP_CompletionCallback callback);
};
diff --git a/chromium/ppapi/api/private/ppp_content_decryptor_private.idl b/chromium/ppapi/api/private/ppp_content_decryptor_private.idl
index b943efe4a8b..73a52258bb0 100644
--- a/chromium/ppapi/api/private/ppp_content_decryptor_private.idl
+++ b/chromium/ppapi/api/private/ppp_content_decryptor_private.idl
@@ -9,7 +9,7 @@
* Decryption Modules, not normal plugins.
*/
label Chrome {
- M33 = 0.9
+ M36 = 0.12
};
/**
@@ -31,30 +31,52 @@ interface PPP_ContentDecryptor_Private {
[in] PP_Var key_system);
/**
- * Creates a session. <code>type</code> contains the MIME type of
+ * Creates a session. <code>init_data_type</code> contains the MIME type of
* <code>init_data</code>. <code>init_data</code> is a data buffer
* containing data for use in generating the request.
*
- * Note: <code>CreateSession()</code> must create the session ID used in
- * other methods on this interface. The session ID must be provided to the
- * browser by the CDM via <code>SessionCreated()</code> on the
+ * Note: <code>CreateSession()</code> must create a web session ID and provide
+ * it to the browser via <code>SessionCreated()</code> on the
* <code>PPB_ContentDecryptor_Private</code> interface.
*
- * @param[in] session_id A reference for the session for which a session
- * should be generated.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure when creating the session.
*
- * @param[in] type A <code>PP_Var</code> of type
+ * @param[in] init_data_type A <code>PP_Var</code> of type
* <code>PP_VARTYPE_STRING</code> containing the MIME type for init_data.
*
* @param[in] init_data A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAYBUFFER</code> containing container specific
* initialization data.
+ *
+ * @param[in] session_type A <code>PP_SessionType</code> that indicates the
+ * type of session to be created.
*/
void CreateSession(
[in] PP_Instance instance,
- [in] uint32_t session_id,
- [in] PP_Var type,
- [in] PP_Var init_data);
+ [in] uint32_t promise_id,
+ [in] PP_Var init_data_type,
+ [in] PP_Var init_data,
+ [in] PP_SessionType session_type);
+
+ /**
+ * Loads a session whose web session ID is <code>web_session_id</code>.
+ *
+ * Note: After the session is successfully loaded, the CDM must call
+ * <code>SessionCreated()</code> with <code>web_session_id</code> on the
+ * <code>PPB_ContentDecryptor_Private</code> interface.
+ *
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of loading the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to load.
+ */
+ void LoadSession(
+ [in] PP_Instance instance,
+ [in] uint32_t promise_id,
+ [in] PP_Var web_session_id);
/**
* Provides a license or other message to the decryptor.
@@ -68,7 +90,12 @@ interface PPP_ContentDecryptor_Private {
* <code>PPB_ContentDecryptor_Private</code> interface, and the browser
* must notify the web application.
*
- * @param[in] session_id A reference for the session to update.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of updating the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to be updated.
*
* @param[in] response A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAYBUFFER</code> containing the license or other
@@ -76,18 +103,25 @@ interface PPP_ContentDecryptor_Private {
*/
void UpdateSession(
[in] PP_Instance instance,
- [in] uint32_t session_id,
+ [in] uint32_t promise_id,
+ [in] PP_Var web_session_id,
[in] PP_Var response);
/**
* Release the specified session and related resources.
*
- * @param[in] session_id A reference for the session that should be
- * released.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of releasing the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to be released.
+ *
*/
void ReleaseSession(
[in] PP_Instance instance,
- [in] uint32_t session_id);
+ [in] uint32_t promise_id,
+ [in] PP_Var web_session_id);
/**
* Decrypts the block and returns the unencrypted block via
diff --git a/chromium/ppapi/api/private/ppp_find_private.idl b/chromium/ppapi/api/private/ppp_find_private.idl
new file mode 100644
index 00000000000..bb6580c02f2
--- /dev/null
+++ b/chromium/ppapi/api/private/ppp_find_private.idl
@@ -0,0 +1,35 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+label Chrome {
+ M14 = 0.3
+};
+
+interface PPP_Find_Private {
+ /**
+ * Finds the given UTF-8 text starting at the current selection. The number of
+ * results will be updated asynchronously via NumberOfFindResultsChanged in
+ * PPB_Find. Note that multiple StartFind calls can happen before StopFind is
+ * called in the case of the search term changing.
+ *
+ * Return PP_FALSE if the plugin doesn't support find in page. Consequently,
+ * it won't call any callbacks.
+ */
+ PP_Bool StartFind([in] PP_Instance instance,
+ [in] str_t text,
+ [in] PP_Bool case_sensitive);
+
+ /**
+ * Go to the next/previous result.
+ */
+ void SelectFindResult([in] PP_Instance instance,
+ [in] PP_Bool forward);
+
+ /**
+ * Tells the plugin that the find operation has stopped, so it should clear
+ * any highlighting.
+ */
+ void StopFind([in] PP_Instance instance);
+};
diff --git a/chromium/ppapi/c/dev/pp_optional_structs_dev.h b/chromium/ppapi/c/dev/pp_optional_structs_dev.h
deleted file mode 100644
index 06608febb73..00000000000
--- a/chromium/ppapi/c/dev/pp_optional_structs_dev.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/pp_optional_structs_dev.idl modified Tue Dec 10 17:39:38 2013. */
-
-#ifndef PPAPI_C_DEV_PP_OPTIONAL_STRUCTS_DEV_H_
-#define PPAPI_C_DEV_PP_OPTIONAL_STRUCTS_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines optional structs for primitive types.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_Optional_Double_Dev {
- double value;
- PP_Bool is_set;
-};
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PP_OPTIONAL_STRUCTS_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_alarms_dev.h b/chromium/ppapi/c/dev/ppb_alarms_dev.h
deleted file mode 100644
index 96617930b3e..00000000000
--- a/chromium/ppapi/c/dev/ppb_alarms_dev.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_alarms_dev.idl modified Tue Dec 10 17:40:20 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_ALARMS_DEV_H_
-#define PPAPI_C_DEV_PPB_ALARMS_DEV_H_
-
-#include "ppapi/c/dev/pp_optional_structs_dev.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_ALARMS_DEV_INTERFACE_0_1 "PPB_Alarms(Dev);0.1"
-#define PPB_ALARMS_DEV_INTERFACE PPB_ALARMS_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the Pepper equivalent of the <code>chrome.alarms</code>
- * extension API.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_Alarms_Alarm_Dev {
- /**
- * Name of this alarm.
- */
- struct PP_Var name;
- /**
- * Time at which this alarm was scheduled to fire, in milliseconds past the
- * epoch. For performance reasons, the alarm may have been delayed an
- * arbitrary amount beyond this.
- */
- double scheduled_time;
- /**
- * If set, the alarm is a repeating alarm and will fire again in
- * <code>period_in_minutes</code> minutes.
- */
- struct PP_Optional_Double_Dev period_in_minutes;
-};
-
-struct PP_Alarms_AlarmCreateInfo_Dev {
- /**
- * Time at which the alarm should fire, in milliseconds past the epoch.
- */
- struct PP_Optional_Double_Dev when;
- /**
- * Length of time in minutes after which the
- * <code>PP_Alarms_OnAlarm_Dev</code> event should fire.
- */
- struct PP_Optional_Double_Dev delay_in_minutes;
- /**
- * If set, the <code>PP_Alarms_OnAlarm_Dev</code> event should fire every
- * <code>period_in_minutes</code> minutes after the initial event specified by
- * <code>when</code> or <code>delay_in_minutes</code>. If not set, the alarm
- * will only fire once.
- */
- struct PP_Optional_Double_Dev period_in_minutes;
-};
-
-struct PP_Alarms_Alarm_Array_Dev {
- uint32_t size;
- struct PP_Alarms_Alarm_Dev *elements;
-};
-/**
- * @}
- */
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * Fired when an alarm has elapsed. Useful for event pages.
- *
- * @param[in] listener_id The listener ID.
- * @param[inout] user_data The opaque pointer that was used when registering the
- * listener.
- * @param[in] alarm The alarm that has elapsed.
- */
-typedef void (*PP_Alarms_OnAlarm_Dev)(
- uint32_t listener_id,
- void* user_data,
- const struct PP_Alarms_Alarm_Dev* alarm);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Alarms_Dev_0_1 {
- /**
- * Creates an alarm. Near the time(s) specified by <code>alarm_info</code>,
- * the <code>PP_Alarms_OnAlarm_Dev</code> event is fired. If there is another
- * alarm with the same name (or no name if none is specified), it will be
- * cancelled and replaced by this alarm.
- *
- * In order to reduce the load on the user's machine, Chrome limits alarms
- * to at most once every 1 minute but may delay them an arbitrary amount more.
- * That is, setting
- * <code>PP_Alarms_AlarmCreateInfo_Dev.delay_in_minutes</code> or
- * <code>PP_Alarms_AlarmCreateInfo_Dev.period_in_minutes</code> to less than
- * <code>1</code> will not be honored and will cause a warning.
- * <code>PP_Alarms_AlarmCreateInfo_Dev.when</code> can be set to less than 1
- * minute after "now" without warning but won't actually cause the alarm to
- * fire for at least 1 minute.
- *
- * To help you debug your app or extension, when you've loaded it unpacked,
- * there's no limit to how often the alarm can fire.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. Optional name to
- * identify this alarm. Defaults to the empty string.
- * @param[in] alarm_info Describes when the alarm should fire. The initial
- * time must be specified by either <code>when</code> or
- * <code>delay_in_minutes</code> (but not both). If
- * <code>period_in_minutes</code> is set, the alarm will repeat every
- * <code>period_in_minutes</code> minutes after the initial event. If neither
- * <code>when</code> or <code>delay_in_minutes</code> is set for a repeating
- * alarm, <code>period_in_minutes</code> is used as the default for
- * <code>delay_in_minutes</code>.
- */
- void (*Create)(PP_Instance instance,
- struct PP_Var name,
- const struct PP_Alarms_AlarmCreateInfo_Dev* alarm_info);
- /**
- * Retrieves details about the specified alarm.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. The name of the
- * alarm to get. Defaults to the empty string.
- * @param[out] alarm A <code>PP_Alarms_Alarm_Dev</code> struct to store the
- * output result.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
- * completion.
- *
- * @return An error code from <code>pp_errors.h</code>
- */
- int32_t (*Get)(PP_Instance instance,
- struct PP_Var name,
- struct PP_Alarms_Alarm_Dev* alarm,
- struct PP_CompletionCallback callback);
- /**
- * Gets an array of all the alarms.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[out] alarms A <code>PP_Alarms_Alarm_Array_Dev</code> to store the
- * output result.
- * @param[in] array_allocator A <code>PP_ArrayOutput</code> to allocate memory
- * for <code>alarms</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
- * completion.
- *
- * @return An error code from <code>pp_errors.h</code>
- */
- int32_t (*GetAll)(PP_Instance instance,
- struct PP_Alarms_Alarm_Array_Dev* alarms,
- struct PP_ArrayOutput array_allocator,
- struct PP_CompletionCallback callback);
- /**
- * Clears the alarm with the given name.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] name A string or undefined <code>PP_Var</code>. The name of the
- * alarm to clear. Defaults to the empty string.
- */
- void (*Clear)(PP_Instance instance, struct PP_Var name);
- /**
- * Clears all alarms.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- */
- void (*ClearAll)(PP_Instance instance);
- /**
- * Registers <code>PP_Alarms_OnAlarm_Dev</code> event.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] callback The callback to receive notifications.
- * @param[inout] user_data An opaque pointer that will be passed to
- * <code>callback</code>.
- *
- * @return A listener ID, or 0 if failed.
- *
- * TODO(yzshen): add a PPB_Events_Dev interface for unregistering:
- * void UnregisterListener(PP_instance instance, uint32_t listener_id);
- */
- uint32_t (*AddOnAlarmListener)(PP_Instance instance,
- PP_Alarms_OnAlarm_Dev callback,
- void* user_data);
-};
-
-typedef struct PPB_Alarms_Dev_0_1 PPB_Alarms_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_ALARMS_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_audio_input_dev.h b/chromium/ppapi/c/dev/ppb_audio_input_dev.h
index 2fd4d0709f7..bd065f01845 100644
--- a/chromium/ppapi/c/dev/ppb_audio_input_dev.h
+++ b/chromium/ppapi/c/dev/ppb_audio_input_dev.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From dev/ppb_audio_input_dev.idl modified Fri May 10 16:06:35 2013. */
+/* From dev/ppb_audio_input_dev.idl modified Thu Dec 12 15:35:39 2013. */
#ifndef PPAPI_C_DEV_PPB_AUDIO_INPUT_DEV_H_
#define PPAPI_C_DEV_PPB_AUDIO_INPUT_DEV_H_
@@ -18,7 +18,6 @@
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_time.h"
-#define PPB_AUDIO_INPUT_DEV_INTERFACE_0_2 "PPB_AudioInput(Dev);0.2"
#define PPB_AUDIO_INPUT_DEV_INTERFACE_0_3 "PPB_AudioInput(Dev);0.3"
#define PPB_AUDIO_INPUT_DEV_INTERFACE_0_4 "PPB_AudioInput(Dev);0.4"
#define PPB_AUDIO_INPUT_DEV_INTERFACE PPB_AUDIO_INPUT_DEV_INTERFACE_0_4
@@ -50,7 +49,7 @@ typedef void (*PPB_AudioInput_Callback)(const void* sample_buffer,
PP_TimeDelta latency,
void* user_data);
-typedef void (*PPB_AudioInput_Callback_0_2)(const void* sample_buffer,
+typedef void (*PPB_AudioInput_Callback_0_3)(const void* sample_buffer,
uint32_t buffer_size_in_bytes,
void* user_data);
/**
@@ -211,24 +210,6 @@ struct PPB_AudioInput_Dev_0_4 {
typedef struct PPB_AudioInput_Dev_0_4 PPB_AudioInput_Dev;
-struct PPB_AudioInput_Dev_0_2 {
- PP_Resource (*Create)(PP_Instance instance);
- PP_Bool (*IsAudioInput)(PP_Resource resource);
- int32_t (*EnumerateDevices)(PP_Resource audio_input,
- PP_Resource* devices,
- struct PP_CompletionCallback callback);
- int32_t (*Open)(PP_Resource audio_input,
- PP_Resource device_ref,
- PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback,
- void* user_data,
- struct PP_CompletionCallback callback);
- PP_Resource (*GetCurrentConfig)(PP_Resource audio_input);
- PP_Bool (*StartCapture)(PP_Resource audio_input);
- PP_Bool (*StopCapture)(PP_Resource audio_input);
- void (*Close)(PP_Resource audio_input);
-};
-
struct PPB_AudioInput_Dev_0_3 {
PP_Resource (*Create)(PP_Instance instance);
PP_Bool (*IsAudioInput)(PP_Resource resource);
@@ -241,7 +222,7 @@ struct PPB_AudioInput_Dev_0_3 {
int32_t (*Open)(PP_Resource audio_input,
PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback,
+ PPB_AudioInput_Callback_0_3 audio_input_callback,
void* user_data,
struct PP_CompletionCallback callback);
PP_Resource (*GetCurrentConfig)(PP_Resource audio_input);
diff --git a/chromium/ppapi/c/dev/ppb_file_io_dev.h b/chromium/ppapi/c/dev/ppb_file_io_dev.h
deleted file mode 100644
index a60d3a64c10..00000000000
--- a/chromium/ppapi/c/dev/ppb_file_io_dev.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_file_io_dev.idl modified Thu Sep 19 10:07:03 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_FILE_IO_DEV_H_
-#define PPAPI_C_DEV_PPB_FILE_IO_DEV_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_FILEIO_DEV_INTERFACE_0_1 "PPB_FileIO(Dev);0.1"
-#define PPB_FILEIO_DEV_INTERFACE PPB_FILEIO_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines methods for use with a PPB_FileIO resource that may become
- * stable in the future. For now, they can be used only in plugins with DEV
- * permissions.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The PP_FileMapProtection values indicate the permissions requested for the
- * file mapping. These should be used in a uint32_t bitfield.
- */
-typedef enum {
- /** Requests read access to the mapped address. */
- PP_FILEMAPPROTECTION_READ = 1u << 0,
- /** Requests write access to the mapped address. */
- PP_FILEMAPPROTECTION_WRITE = 1u << 1
-} PP_FileMapProtection;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileMapProtection, 4);
-
-/**
- * The PP_FileMapFlags contain flag values for use with Map().
- */
-typedef enum {
- /**
- * Requests a shared mapping. If this flag is set, changes written to the
- * memory region will be reflected in the underlying file and will thus
- * eventually be visible to other processes which have opened the file. The
- * file may not actually be updated until Unmap() is called. This is only
- * valid if the PPB_FileIO resource was opened with write permission.
- */
- PP_FILEMAPFLAG_SHARED = 1u << 0,
- /**
- * Requests a copy-on-write mapping. If this flag is set, changes are not
- * written to the underlying file, but only in the memory of the process
- * (copy-on-write).
- */
- PP_FILEMAPFLAG_PRIVATE = 1u << 1,
- /**
- * Forces Map() to map the file contents at the provided |address|. If Map()
- * can not comply, Map() will fail.
- */
- PP_FILEMAPFLAG_FIXED = 1u << 2
-} PP_FileMapFlags;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileMapFlags, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * PPB_FileIO_Dev contains functions that are usable with PPB_FileIO resources
- * but aren't yet considered stable yet and thus are not supported for general
- * NaCl or PNaCl apps yet. Features here are being tested and refined for
- * possible future inclusion in (stable) PPB_FileIO.
- */
-struct PPB_FileIO_Dev_0_1 {
- /**
- * Map() maps the contents from an offset of the file into memory.
- *
- * @param[in] file_io A PP_Resource corresponding to a file.
- * @param[in] length The number of bytes to map.
- * @param[in] map_protection A bitfield containing values from
- * PP_FileMapProtection, indicating what memory operations should be permitted
- * on the mapped region.
- * @param[in] map_flags A bitfield containing values from
- * PP_FileMapFlags, providing options for the behavior of Map. If the region
- * is to be writeable, then exactly one of PP_FILEMAPFLAG_SHARED or
- * PP_FILEMAPFLAG_PRIVATE must be set.
- * @param[in] offset The offset into the file. Must be a multiple of the
- * Map page size as returned by GetMapPageSize.
- * @param[inout] address The value of |*address|, if non-NULL, will be used as
- * a hint to determine where in memory the file should be mapped. If the value
- * is NULL, the host operating system will choose |address|. Upon
- * Map() completing, |*address| will contain the actual memory location at
- * which the file was mapped. If the plugin provides a non-NULL |*address|, it
- * must be a multiple of the map page size as returned by GetMapPageSize().
- * @param[in] callback A PP_CompletionCallback to be called upon
- * completion of Map().
- *
- * @return An int32_t containing an error code from <code>pp_errors.h</code>.
- */
- int32_t (*Map)(PP_Resource file_io,
- int64_t length,
- uint32_t map_protection,
- uint32_t map_flags,
- int64_t offset,
- void** address,
- struct PP_CompletionCallback callback);
- /**
- * Unmap() deletes the mapping of the specified address address to a
- * file io. The specified address must have been retrieved with
- * Map().
- * @param[in] file_io A PP_Resource corresponding to a file.
- * @param[in] address The starting address of the address in memory to
- * be unmapped.
- * @param[in] length The length of the region to unmap.
- */
- void (*Unmap)(PP_Resource file_io, void* address, int64_t length);
- /**
- * GetMapPageSize() returns the size of pages that Map() uses. Returns 0 on
- * failure.
- */
- int64_t (*GetMapPageSize)(PP_Resource file_io);
-};
-
-typedef struct PPB_FileIO_Dev_0_1 PPB_FileIO_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_FILE_IO_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_find_dev.h b/chromium/ppapi/c/dev/ppb_find_dev.h
deleted file mode 100644
index 203425d291a..00000000000
--- a/chromium/ppapi/c/dev/ppb_find_dev.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_find_dev.idl modified Wed Oct 5 14:06:02 2011. */
-
-#ifndef PPAPI_C_DEV_PPB_FIND_DEV_H_
-#define PPAPI_C_DEV_PPB_FIND_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_FIND_DEV_INTERFACE_0_3 "PPB_Find(Dev);0.3"
-#define PPB_FIND_DEV_INTERFACE PPB_FIND_DEV_INTERFACE_0_3
-
-/**
- * @file
- * This file defines the <code>PPB_Find_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Find_Dev_0_3 {
- /**
- * Updates the number of find results for the current search term. If
- * there are no matches 0 should be passed in. Only when the plugin has
- * finished searching should it pass in the final count with final_result set
- * to PP_TRUE.
- */
- void (*NumberOfFindResultsChanged)(PP_Instance instance,
- int32_t total,
- PP_Bool final_result);
- /**
- * Updates the index of the currently selected search item.
- */
- void (*SelectedFindResultChanged)(PP_Instance instance, int32_t index);
-};
-
-typedef struct PPB_Find_Dev_0_3 PPB_Find_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_FIND_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_graphics_2d_dev.h b/chromium/ppapi/c/dev/ppb_graphics_2d_dev.h
deleted file mode 100644
index 245ae588ff7..00000000000
--- a/chromium/ppapi/c/dev/ppb_graphics_2d_dev.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_graphics_2d_dev.idl modified Tue Nov 12 11:22:26 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_GRAPHICS_2D_DEV_H_
-#define PPAPI_C_DEV_PPB_GRAPHICS_2D_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_GRAPHICS2D_DEV_INTERFACE_0_1 "PPB_Graphics2D(Dev);0.1"
-#define PPB_GRAPHICS2D_DEV_INTERFACE_0_2 "PPB_Graphics2D(Dev);0.2"
-#define PPB_GRAPHICS2D_DEV_INTERFACE PPB_GRAPHICS2D_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file contains the <code>PPB_Graphics2D_Dev</code> interface. */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * These options affect how the existing graphics context is displayed when a
- * plugin is resized.
- */
-typedef enum {
- /**
- * In this mode, the context does not change size or offset. If the backing
- * store is the same size as the plugin element, this will result in the
- * pixels on the right side of the plugin element being unavailable, revealing
- * the contents underneath it.
- */
- PP_GRAPHICS2D_DEV_RESIZEMODE_DEFAULT,
- /**
- * In this mode, the context and its offset are scaled relative to how much
- * the plugin element has been resized.
- */
- PP_GRAPHICS2D_DEV_RESIZEMODE_STRETCH
-} PP_Graphics2D_Dev_ResizeMode;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Graphics2D_Dev_ResizeMode, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* PPB_Graphics2D_Dev interface */
-struct PPB_Graphics2D_Dev_0_2 {
- /**
- * SetScale() sets the scale factor that will be applied when painting the
- * graphics context onto the output device. Typically, if rendering at device
- * resolution is desired, the context would be created with the width and
- * height scaled up by the view's GetDeviceScale and SetScale called with a
- * scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
- * to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
- * 2.0, one would call Create with a size of (w=400, h=200) and then call
- * SetScale with 0.5. One would then treat each pixel in the context as a
- * single device pixel.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] scale The scale to apply when painting.
- *
- * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
- * the resource is invalid or the scale factor is 0 or less.
- */
- PP_Bool (*SetScale)(PP_Resource resource, float scale);
- /***
- * GetScale() gets the scale factor that will be applied when painting the
- * graphics context onto the output device.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- *
- * @return Returns the scale factor for the graphics context. If the resource
- * is not a valid <code>Graphics2D</code> context, this will return 0.0.
- */
- float (*GetScale)(PP_Resource resource);
- /***
- * Sets the offset into the plugin element at which the graphics context is
- * painted. This allows a portion of the plugin element to be painted to.
- * The new offset will only be applied after Flush() has been called.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] offset The offset at which the context should be painted.
- */
- void (*SetOffset)(PP_Resource resource, const struct PP_Point* offset);
- /***
- * Sets the resize mode for the graphics context. When a plugin element is
- * resized in the DOM, it takes time for the plugin to update the graphics
- * context in the renderer. These options affect how the existing context is
- * displayed until the backing store is updated by the plugin.
- *
- * @param[in] resource A <code>Graphics2D</code> context resource.
- * @param[in] resize_mode The resize mode to change this context to.
- */
- void (*SetResizeMode)(PP_Resource resource,
- PP_Graphics2D_Dev_ResizeMode resize_mode);
-};
-
-typedef struct PPB_Graphics2D_Dev_0_2 PPB_Graphics2D_Dev;
-
-struct PPB_Graphics2D_Dev_0_1 {
- PP_Bool (*SetScale)(PP_Resource resource, float scale);
- float (*GetScale)(PP_Resource resource);
- void (*SetResizeMode)(PP_Resource resource,
- PP_Graphics2D_Dev_ResizeMode resize_mode);
-};
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_GRAPHICS_2D_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_keyboard_input_event_dev.h b/chromium/ppapi/c/dev/ppb_keyboard_input_event_dev.h
deleted file mode 100644
index a921bd9f36f..00000000000
--- a/chromium/ppapi/c/dev/ppb_keyboard_input_event_dev.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_keyboard_input_event_dev.idl,
- * modified Fri Sep 6 10:00:04 2013.
- */
-
-#ifndef PPAPI_C_DEV_PPB_KEYBOARD_INPUT_EVENT_DEV_H_
-#define PPAPI_C_DEV_PPB_KEYBOARD_INPUT_EVENT_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE_0_2 \
- "PPB_KeyboardInputEvent(Dev);0.2"
-#define PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE \
- PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_KeyboardInputEvent_Dev</code> interface,
- * which provides access to USB key codes that identify the physical key being
- * pressed.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_KeyboardInputEvent_Dev</code> interface is an extension to the
- * PPB_KeyboardInputEvent</code> interface that provides
- */
-struct PPB_KeyboardInputEvent_Dev_0_2 {
- /**
- * This sets a USB key code in the given <code>PP_Resource</code>. It is
- * intended that this method be called immediately after any call to
- * <code>Create</code>.
- *
- * @param[in] key_event A <code>PP_Resource</code> created by
- * <code>PPB_KeyboardInputEvent</code>'s <code>Create</code> method.
- *
- * @param[in] usb_key_code The USB key code to associate with this
- * <code>key_event</code>.
- *
- * @return <code>PP_TRUE</code> if the USB key code was set successfully.
- */
- PP_Bool (*SetUsbKeyCode)(PP_Resource key_event, uint32_t usb_key_code);
- /**
- * GetUsbKeyCode() returns the USB key code associated with this keyboard
- * event.
- *
- * @param[in] key_event The key event for which to return the key code.
- *
- * @return The USB key code field for the keyboard event. If there is no
- * USB scancode associated with this event, or if the PP_Resource does not
- * support the PPB_InputEvent_API (i.e., it is not an input event), then
- * a 0 is returned.
- */
- uint32_t (*GetUsbKeyCode)(PP_Resource key_event);
- /**
- * GetCode() returns the DOM |code| field for this keyboard event, as
- * defined by the UI Events spec: http://www.w3.org/TR/uievents/
- *
- * @param[in] key_event The key event for which to return the key code.
- *
- * @return The string that contains the DOM |code| for the keyboard event.
- */
- struct PP_Var (*GetCode)(PP_Resource key_event);
-};
-
-typedef struct PPB_KeyboardInputEvent_Dev_0_2 PPB_KeyboardInputEvent_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_KEYBOARD_INPUT_EVENT_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_opengles2ext_dev.h b/chromium/ppapi/c/dev/ppb_opengles2ext_dev.h
index 9696c636696..81dc7f48236 100644
--- a/chromium/ppapi/c/dev/ppb_opengles2ext_dev.h
+++ b/chromium/ppapi/c/dev/ppb_opengles2ext_dev.h
@@ -1,17 +1,29 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
+// It's formatted by clang-format using chromium coding style:
+// clang-format -i -style=chromium filename
// DO NOT EDIT!
// OpenGL ES interface.
-#ifndef C_DEV_PPB_OPENGLES2EXT_DEV_H_
-#define C_DEV_PPB_OPENGLES2EXT_DEV_H_
+#ifndef PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_
+#define PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/ppb_opengles2.h"
-#endif // C_DEV_PPB_OPENGLES2EXT_DEV_H_
+#define PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0 \
+ "PPB_OpenGLES2DrawBuffers(Dev);1.0"
+#define PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE \
+ PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0
+struct PPB_OpenGLES2DrawBuffers_Dev {
+ void (*DrawBuffersEXT)(PP_Resource context,
+ GLsizei count,
+ const GLenum* bufs);
+};
+
+#endif // PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_
diff --git a/chromium/ppapi/c/dev/ppb_resource_array_dev.h b/chromium/ppapi/c/dev/ppb_resource_array_dev.h
deleted file mode 100644
index 03a811e8307..00000000000
--- a/chromium/ppapi/c/dev/ppb_resource_array_dev.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_resource_array_dev.idl modified Fri Jan 6 11:59:21 2012. */
-
-#ifndef PPAPI_C_DEV_PPB_RESOURCE_ARRAY_DEV_H_
-#define PPAPI_C_DEV_PPB_RESOURCE_ARRAY_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_RESOURCEARRAY_DEV_INTERFACE_0_1 "PPB_ResourceArray(Dev);0.1"
-#define PPB_RESOURCEARRAY_DEV_INTERFACE PPB_RESOURCEARRAY_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_ResourceArray_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * A resource array holds a list of resources and retains a reference to each of
- * them.
- */
-struct PPB_ResourceArray_Dev_0_1 {
- /**
- * Creates a resource array.
- * Note: It will add a reference to each of the elements.
- *
- * @param[in] elements <code>PP_Resource</code>s to be stored in the created
- * resource array.
- * @param[in] size The number of elements.
- *
- * @return A <code>PP_Resource</code> corresponding to a resource array if
- * successful; 0 if failed.
- */
- PP_Resource (*Create)(PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size);
- /**
- * Determines if the provided resource is a resource array.
- *
- * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
- * resource.
- *
- * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
- * resource is a resource array, otherwise <code>PP_FALSE</code>.
- */
- PP_Bool (*IsResourceArray)(PP_Resource resource);
- /**
- * Gets the array size.
- *
- * @param[in] resource_array The resource array.
- *
- * @return How many elements are there in the array.
- */
- uint32_t (*GetSize)(PP_Resource resource_array);
- /**
- * Gets the element at the specified position.
- * Note: It doesn't add a reference to the returned resource for the caller.
- *
- * @param[in] resource_array The resource array.
- * @param[in] index An integer indicating a position in the array.
- *
- * @return A <code>PP_Resource</code>. Returns 0 if the index is out of range.
- */
- PP_Resource (*GetAt)(PP_Resource resource_array, uint32_t index);
-};
-
-typedef struct PPB_ResourceArray_Dev_0_1 PPB_ResourceArray_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_RESOURCE_ARRAY_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_var_resource_dev.h b/chromium/ppapi/c/dev/ppb_var_resource_dev.h
deleted file mode 100644
index 463f10a17c7..00000000000
--- a/chromium/ppapi/c/dev/ppb_var_resource_dev.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_var_resource_dev.idl modified Fri Oct 11 10:31:47 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_
-#define PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VAR_RESOURCE_DEV_INTERFACE_0_1 "PPB_VarResource(Dev);0.1"
-#define PPB_VAR_RESOURCE_DEV_INTERFACE PPB_VAR_RESOURCE_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_VarResource</code> struct providing
- * a way to interact with resource vars.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_VarResource_Dev_0_1 {
- /**
- * Converts a resource-type var to a <code>PP_Resource</code>.
- *
- * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
- *
- * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
- * is not a resource. The reference count of the resource is incremented on
- * behalf of the caller.
- */
- PP_Resource (*VarToResource)(struct PP_Var var);
- /**
- * Creates a new <code>PP_Var</code> from a given resource.
- *
- * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
- *
- * @return A <code>PP_Var</code> created for this resource, with type
- * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
- * 1 on behalf of the caller.
- */
- struct PP_Var (*VarFromResource)(PP_Resource resource);
-};
-
-typedef struct PPB_VarResource_Dev_0_1 PPB_VarResource_Dev;
-/**
- * @}
- */
-
-#endif /* PPAPI_C_DEV_PPB_VAR_RESOURCE_DEV_H_ */
-
diff --git a/chromium/ppapi/c/dev/ppb_video_capture_dev.h b/chromium/ppapi/c/dev/ppb_video_capture_dev.h
index a4704b21fd9..30f543ee709 100644
--- a/chromium/ppapi/c/dev/ppb_video_capture_dev.h
+++ b/chromium/ppapi/c/dev/ppb_video_capture_dev.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From dev/ppb_video_capture_dev.idl modified Wed Dec 05 13:18:10 2012. */
+/* From dev/ppb_video_capture_dev.idl modified Thu Dec 12 15:36:11 2013. */
#ifndef PPAPI_C_DEV_PPB_VIDEO_CAPTURE_DEV_H_
#define PPAPI_C_DEV_PPB_VIDEO_CAPTURE_DEV_H_
@@ -18,7 +18,6 @@
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
-#define PPB_VIDEOCAPTURE_DEV_INTERFACE_0_2 "PPB_VideoCapture(Dev);0.2"
#define PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3 "PPB_VideoCapture(Dev);0.3"
#define PPB_VIDEOCAPTURE_DEV_INTERFACE PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3
@@ -160,23 +159,6 @@ struct PPB_VideoCapture_Dev_0_3 {
};
typedef struct PPB_VideoCapture_Dev_0_3 PPB_VideoCapture_Dev;
-
-struct PPB_VideoCapture_Dev_0_2 {
- PP_Resource (*Create)(PP_Instance instance);
- PP_Bool (*IsVideoCapture)(PP_Resource video_capture);
- int32_t (*EnumerateDevices)(PP_Resource video_capture,
- PP_Resource* devices,
- struct PP_CompletionCallback callback);
- int32_t (*Open)(PP_Resource video_capture,
- PP_Resource device_ref,
- const struct PP_VideoCaptureDeviceInfo_Dev* requested_info,
- uint32_t buffer_count,
- struct PP_CompletionCallback callback);
- int32_t (*StartCapture)(PP_Resource video_capture);
- int32_t (*ReuseBuffer)(PP_Resource video_capture, uint32_t buffer);
- int32_t (*StopCapture)(PP_Resource video_capture);
- void (*Close)(PP_Resource video_capture);
-};
/**
* @}
*/
diff --git a/chromium/ppapi/c/dev/ppp_find_dev.h b/chromium/ppapi/c/dev/ppp_find_dev.h
deleted file mode 100644
index ecf0729f440..00000000000
--- a/chromium/ppapi/c/dev/ppp_find_dev.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (c) 2010 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef PPAPI_C_DEV_PPP_FIND_DEV_H_
-#define PPAPI_C_DEV_PPP_FIND_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-
-#define PPP_FIND_DEV_INTERFACE "PPP_Find(Dev);0.3"
-
-struct PPP_Find_Dev {
- // Finds the given UTF-8 text starting at the current selection. The number of
- // results will be updated asynchronously via NumberOfFindResultsChanged in
- // PPB_Find. Note that multiple StartFind calls can happen before StopFind is
- // called in the case of the search term changing.
- //
- // Return PP_FALSE if the plugin doesn't support find in page. Consequently,
- // it won't call any callbacks.
- PP_Bool (*StartFind)(PP_Instance instance,
- const char* text,
- PP_Bool case_sensitive);
-
- // Go to the next/previous result.
- void (*SelectFindResult)(PP_Instance instance,
- PP_Bool forward);
-
- // Tells the plugin that the find operation has stopped, so it should clear
- // any highlighting.
- void (*StopFind)(PP_Instance instance);
-};
-
-#endif /* PPAPI_C_DEV_PPP_FIND_DEV_H_ */
-
diff --git a/chromium/ppapi/c/extensions/dev/ppb_ext_socket_dev.h b/chromium/ppapi/c/extensions/dev/ppb_ext_socket_dev.h
deleted file mode 100644
index 61bddd1b18f..00000000000
--- a/chromium/ppapi/c/extensions/dev/ppb_ext_socket_dev.h
+++ /dev/null
@@ -1,603 +0,0 @@
-/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From extensions/dev/ppb_ext_socket_dev.idl,
- * modified Tue May 21 16:00:11 2013.
- */
-
-#ifndef PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_
-#define PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_EXT_SOCKET_DEV_INTERFACE_0_1 "PPB_Ext_Socket(Dev);0.1"
-#define PPB_EXT_SOCKET_DEV_INTERFACE_0_2 "PPB_Ext_Socket(Dev);0.2"
-#define PPB_EXT_SOCKET_DEV_INTERFACE PPB_EXT_SOCKET_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the Pepper equivalent of the <code>chrome.socket</code>
- * extension API.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * A string <code>PP_Var</code> which has one of the following values:
- * - "tcp"
- * - "udp"
- */
-typedef struct PP_Var PP_Ext_Socket_SocketType_Dev;
-
-/**
- * A dictionary <code>PP_Var</code>.
- */
-typedef struct PP_Var PP_Ext_Socket_CreateOptions_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "socketId" : integer <code>PP_Var</code>
- * The id of the newly created socket.
- */
-typedef struct PP_Var PP_Ext_Socket_CreateInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * - "socketId" : integer or undefined <code>PP_Var</code>
- * The id of the accepted socket.
- */
-typedef struct PP_Var PP_Ext_Socket_AcceptInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * The resultCode returned from the underlying read() call.
- * - "data" : array buffer <code>PP_Var</code>
- */
-typedef struct PP_Var PP_Ext_Socket_ReadInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "bytesWritten" : integer <code>PP_Var</code>
- * The number of bytes sent, or a negative error code.
- */
-typedef struct PP_Var PP_Ext_Socket_WriteInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "resultCode" : integer <code>PP_Var</code>
- * The resultCode returned from the underlying recvfrom() call.
- * - "data": array buffer <code>PP_Var</code>
- * - "address": string <code>PP_Var</code>
- * The address of the remote machine.
- * - "port": integer <code>PP_Var</code>
- */
-typedef struct PP_Var PP_Ext_Socket_RecvFromInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "socketType" : string <code>PP_Var</code> which matches the description of
- * <code>PP_Ext_Socket_SocketType_Dev</code>
- * The type of the passed socket. This will be <code>tcp</code> or
- * <code>udp</code>.
- * - "connected" : boolean <code>PP_Var</code>
- * Whether or not the underlying socket is connected.
- *
- * For <code>tcp</code> sockets, this will remain true even if the remote peer
- * has disconnected. Reading or writing to the socket may then result in an
- * error, hinting that this socket should be disconnected via
- * <code>Disconnect()</code>.
- *
- * For <code>udp</code> sockets, this just represents whether a default remote
- * address has been specified for reading and writing packets.
- * - "peerAddress" : string or undefined <code>PP_Var</code>
- * If the underlying socket is connected, contains the IPv4/6 address of the
- * peer.
- * - "peerPort" : integer or undefined <code>PP_Var</code>
- * If the underlying socket is connected, contains the port of the connected
- * peer.
- * - "localAddress" : string or undefined <code>PP_Var</code>
- * If the underlying socket is bound or connected, contains its local IPv4/6
- * address.
- * - "localPort" : integer or undefined <code>PP_Var</code>
- * If the underlying socket is bound or connected, contains its local port.
- */
-typedef struct PP_Var PP_Ext_Socket_SocketInfo_Dev;
-
-/**
- * A dictionary <code>PP_Var</code> which contains
- * - "name" : string <code>PP_Var</code>
- * The underlying name of the adapter. On *nix, this will typically be "eth0",
- * "lo", etc.
- * - "address": string <code>PP_Var</code>
- * The available IPv4/6 address.
- */
-typedef struct PP_Var PP_Ext_Socket_NetworkInterface_Dev;
-
-/**
- * An array <code>PP_Var</code> which contains elements of
- * <code>PP_Ext_Socket_NetworkInterface_Dev</code>.
- */
-typedef struct PP_Var PP_Ext_Socket_NetworkInterface_Dev_Array;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Ext_Socket_Dev_0_2 {
- /**
- * Creates a socket of the specified type that will connect to the specified
- * remote machine.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] type A <code>PP_Ext_Socket_SocketType_Dev</code>. The type of
- * socket to create. Must be <code>tcp</code> or <code>udp</code>.
- * @param[in] options An undefined <code>PP_Var</code> or
- * <code>PP_Ext_Socket_CreateOptions_Dev</code>. The socket options.
- * @param[out] create_info A <code>PP_Ext_Socket_CreateInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Create)(PP_Instance instance,
- PP_Ext_Socket_SocketType_Dev type,
- PP_Ext_Socket_CreateOptions_Dev options,
- PP_Ext_Socket_CreateInfo_Dev* create_info,
- struct PP_CompletionCallback callback);
- /**
- * Destroys the socket. Each socket created should be destroyed after use.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- */
- void (*Destroy)(PP_Instance instance, struct PP_Var socket_id);
- /**
- * Connects the socket to the remote machine (for a <code>tcp</code> socket).
- * For a <code>udp</code> socket, this sets the default address which packets
- * are sent to and read from for <code>Read()</code> and <code>Write()</code>
- * calls.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] hostname A string <code>PP_Var</code>. The hostname or IP
- * address of the remote machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the remote
- * machine.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Connect)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var hostname,
- struct PP_Var port,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Binds the local address for socket. Currently, it does not support TCP
- * socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The address of the local
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the local
- * machine.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Bind)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var port,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Disconnects the socket. For UDP sockets, <code>Disconnect</code> is a
- * non-operation but is safe to call.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- */
- void (*Disconnect)(PP_Instance instance, struct PP_Var socket_id);
- /**
- * Reads data from the given connected socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
- * read buffer size.
- * @param[out] read_info A <code>PP_Ext_Socket_ReadInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Read)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var buffer_size,
- PP_Ext_Socket_ReadInfo_Dev* read_info,
- struct PP_CompletionCallback callback);
- /**
- * Writes data on the given connected socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] data An array buffer <code>PP_Var</code>. The data to write.
- * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Write)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var data,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- struct PP_CompletionCallback callback);
- /**
- * Receives data from the given UDP socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
- * receive buffer size.
- * @param[out] recv_from_info A <code>PP_Ext_Socket_RecvFromInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*RecvFrom)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var buffer_size,
- PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info,
- struct PP_CompletionCallback callback);
- /**
- * Sends data on the given UDP socket to the given address and port.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] data An array buffer <code>PP_Var</code>.
- * @param[in] address A string <code>PP_Var</code>. The address of the remote
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the remote
- * machine.
- * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*SendTo)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var data,
- struct PP_Var address,
- struct PP_Var port,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- struct PP_CompletionCallback callback);
- /**
- * This method applies to TCP sockets only.
- * Listens for connections on the specified port and address. This effectively
- * makes this a server socket, and client socket functions (Connect, Read,
- * Write) can no longer be used on this socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The address of the local
- * machine.
- * @param[in] port An integer <code>PP_Var</code>. The port of the local
- * machine.
- * @param[in] backlog An undefined or integer <code>PP_Var</code>. Length of
- * the socket's listen queue.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Listen)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var port,
- struct PP_Var backlog,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * This method applies to TCP sockets only.
- * Registers a callback function to be called when a connection is accepted on
- * this listening server socket. Listen must be called first.
- * If there is already an active accept callback, this callback will be
- * invoked immediately with an error as the resultCode.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] accept_info A <code>PP_Ext_Socket_AcceptInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*Accept)(PP_Instance instance,
- struct PP_Var socket_id,
- PP_Ext_Socket_AcceptInfo_Dev* accept_info,
- struct PP_CompletionCallback callback);
- /**
- * Enables or disables the keep-alive functionality for a TCP connection.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] enable A boolean <code>PP_Var</code>. If true, enable keep-alive
- * functionality.
- * @param[in] delay An undefined or integer <code>PP_Var</code>. Set the delay
- * seconds between the last data packet received and the first keepalive
- * probe. Default is 0.
- * @param[out] result A boolean <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*SetKeepAlive)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var enable,
- struct PP_Var delay,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Sets or clears <code>TCP_NODELAY</code> for a TCP connection. Nagle's
- * algorithm will be disabled when <code>TCP_NODELAY</code> is set.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] no_delay A boolean <code>PP_Var</code>.
- * @param[out] result A boolean <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*SetNoDelay)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var no_delay,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Retrieves the state of the given socket.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] result A <code>PP_Ext_Socket_SocketInfo_Dev</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*GetInfo)(PP_Instance instance,
- struct PP_Var socket_id,
- PP_Ext_Socket_SocketInfo_Dev* result,
- struct PP_CompletionCallback callback);
- /**
- * Retrieves information about local adapters on this system.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[out] result A <code>PP_Ext_Socket_NetworkInterface_Dev_Array</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*GetNetworkList)(PP_Instance instance,
- PP_Ext_Socket_NetworkInterface_Dev_Array* result,
- struct PP_CompletionCallback callback);
- /**
- * Joins the multicast group and starts to receive packets from that group.
- * The socket must be of UDP type and must be bound to a local port before
- * calling this method.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The group address to join.
- * Domain names are not supported.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*JoinGroup)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Leaves the multicast group previously joined using <code>JoinGroup</code>.
- * It's not necessary to leave the multicast group before destroying the
- * socket or exiting. This is automatically called by the OS.
- *
- * Leaving the group will prevent the router from sending multicast datagrams
- * to the local host, presuming no other process on the host is still joined
- * to the group.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] address A string <code>PP_Var</code>. The group address to
- * leave. Domain names are not supported.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*LeaveGroup)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Sets the time-to-live of multicast packets sent to the multicast group.
- *
- * Calling this method does not require multicast permissions.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] ttl An integer <code>PP_Var</code>. The time-to-live value.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*SetMulticastTimeToLive)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var ttl,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Sets whether multicast packets sent from the host to the multicast group
- * will be looped back to the host.
- *
- * Note: the behavior of <code>SetMulticastLoopbackMode</code> is slightly
- * different between Windows and Unix-like systems. The inconsistency
- * happens only when there is more than one application on the same host
- * joined to the same multicast group while having different settings on
- * multicast loopback mode. On Windows, the applications with loopback off
- * will not RECEIVE the loopback packets; while on Unix-like systems, the
- * applications with loopback off will not SEND the loopback packets to
- * other applications on the same host. See MSDN: http://goo.gl/6vqbj
- *
- * Calling this method does not require multicast permissions.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[in] enabled A boolean <code>PP_Var</code>. Indicates whether to
- * enable loopback mode.
- * @param[out] result An integer <code>PP_Var</code>.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*SetMulticastLoopbackMode)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var enabled,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- /**
- * Gets the multicast group addresses the socket is currently joined to.
- *
- * @param[in] instance A <code>PP_Instance</code>.
- * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
- * @param[out] groups An array <code>PP_Var</code> of string
- * <code>PP_Var</code>s.
- * @param[in] callback A <code>PP_CompletionCallback</code> to be called
- * upon completion.
- *
- * @return An error code from <code>pp_errors.h</code>.
- */
- int32_t (*GetJoinedGroups)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var* groups,
- struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_Ext_Socket_Dev_0_2 PPB_Ext_Socket_Dev;
-
-struct PPB_Ext_Socket_Dev_0_1 {
- int32_t (*Create)(PP_Instance instance,
- PP_Ext_Socket_SocketType_Dev type,
- PP_Ext_Socket_CreateOptions_Dev options,
- PP_Ext_Socket_CreateInfo_Dev* create_info,
- struct PP_CompletionCallback callback);
- void (*Destroy)(PP_Instance instance, struct PP_Var socket_id);
- int32_t (*Connect)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var hostname,
- struct PP_Var port,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- int32_t (*Bind)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var port,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- void (*Disconnect)(PP_Instance instance, struct PP_Var socket_id);
- int32_t (*Read)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var buffer_size,
- PP_Ext_Socket_ReadInfo_Dev* read_info,
- struct PP_CompletionCallback callback);
- int32_t (*Write)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var data,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- struct PP_CompletionCallback callback);
- int32_t (*RecvFrom)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var buffer_size,
- PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info,
- struct PP_CompletionCallback callback);
- int32_t (*SendTo)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var data,
- struct PP_Var address,
- struct PP_Var port,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- struct PP_CompletionCallback callback);
- int32_t (*Listen)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var address,
- struct PP_Var port,
- struct PP_Var backlog,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- int32_t (*Accept)(PP_Instance instance,
- struct PP_Var socket_id,
- PP_Ext_Socket_AcceptInfo_Dev* accept_info,
- struct PP_CompletionCallback callback);
- int32_t (*SetKeepAlive)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var enable,
- struct PP_Var delay,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- int32_t (*SetNoDelay)(PP_Instance instance,
- struct PP_Var socket_id,
- struct PP_Var no_delay,
- struct PP_Var* result,
- struct PP_CompletionCallback callback);
- int32_t (*GetInfo)(PP_Instance instance,
- struct PP_Var socket_id,
- PP_Ext_Socket_SocketInfo_Dev* result,
- struct PP_CompletionCallback callback);
- int32_t (*GetNetworkList)(PP_Instance instance,
- PP_Ext_Socket_NetworkInterface_Dev_Array* result,
- struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif /* PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_ */
-
diff --git a/chromium/ppapi/c/pp_codecs.h b/chromium/ppapi/c/pp_codecs.h
new file mode 100644
index 00000000000..356a10bac4d
--- /dev/null
+++ b/chromium/ppapi/c/pp_codecs.h
@@ -0,0 +1,83 @@
+/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From pp_codecs.idl modified Tue Jun 10 13:32:45 2014. */
+
+#ifndef PPAPI_C_PP_CODECS_H_
+#define PPAPI_C_PP_CODECS_H_
+
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/c/pp_stdint.h"
+
+/**
+ * @file
+ * Video profiles.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+typedef enum {
+ PP_VIDEOPROFILE_H264BASELINE = 0,
+ PP_VIDEOPROFILE_H264MAIN = 1,
+ PP_VIDEOPROFILE_H264EXTENDED = 2,
+ PP_VIDEOPROFILE_H264HIGH = 3,
+ PP_VIDEOPROFILE_H264HIGH10PROFILE = 4,
+ PP_VIDEOPROFILE_H264HIGH422PROFILE = 5,
+ PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6,
+ PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7,
+ PP_VIDEOPROFILE_H264SCALABLEHIGH = 8,
+ PP_VIDEOPROFILE_H264STEREOHIGH = 9,
+ PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10,
+ PP_VIDEOPROFILE_VP8MAIN = 11,
+ PP_VIDEOPROFILE_VP9MAIN = 12,
+ PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9MAIN
+} PP_VideoProfile;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+/**
+ * Struct describing a decoded video picture. The decoded picture data is stored
+ * in the GL texture corresponding to |texture_id|. The plugin can determine
+ * which Decode call generated the picture using |decode_id|.
+ */
+struct PP_VideoPicture {
+ /**
+ * |decode_id| parameter of the Decode call which generated this picture.
+ * See the PPB_VideoDecoder function Decode() for more details.
+ */
+ uint32_t decode_id;
+ /**
+ * Texture ID in the plugin's GL context. The plugin can use this to render
+ * the decoded picture.
+ */
+ uint32_t texture_id;
+ /**
+ * The GL texture target for the decoded picture. Possible values are:
+ * GL_TEXTURE_2D (normalized texture coordinates)
+ * GL_TEXTURE_RECTANGLE_ARB (dimension dependent texture coordinates)
+ *
+ * The pixel format of the texture is GL_RGBA.
+ */
+ uint32_t texture_target;
+ /**
+ * Dimensions of the texture holding the decoded picture.
+ */
+ struct PP_Size texture_size;
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PP_CODECS_H_ */
+
diff --git a/chromium/ppapi/c/pp_errors.h b/chromium/ppapi/c/pp_errors.h
index d0411c6f70e..e65bb92144b 100644
--- a/chromium/ppapi/c/pp_errors.h
+++ b/chromium/ppapi/c/pp_errors.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From pp_errors.idl modified Thu Jun 13 13:02:05 2013. */
+/* From pp_errors.idl modified Thu May 15 16:12:26 2014. */
#ifndef PPAPI_C_PP_ERRORS_H_
#define PPAPI_C_PP_ERRORS_H_
@@ -86,6 +86,17 @@ enum {
* input events, and there are reentrancy and deadlock issues).
*/
PP_ERROR_BLOCKS_MAIN_THREAD = -13,
+ /**
+ * This value indicates that the plugin sent bad input data to a resource,
+ * leaving it in an invalid state. The resource can't be used after returning
+ * this error and should be released.
+ */
+ PP_ERROR_MALFORMED_INPUT = -14,
+ /**
+ * This value indicates that a resource has failed. The resource can't be
+ * used after returning this error and should be released.
+ */
+ PP_ERROR_RESOURCE_FAILED = -15,
/** This value indicates failure due to a file that does not exist. */
PP_ERROR_FILENOTFOUND = -20,
/** This value indicates failure due to a file that already exists. */
diff --git a/chromium/ppapi/c/pp_macros.h b/chromium/ppapi/c/pp_macros.h
index e143b2290e9..31d7297fd43 100644
--- a/chromium/ppapi/c/pp_macros.h
+++ b/chromium/ppapi/c/pp_macros.h
@@ -3,13 +3,13 @@
* found in the LICENSE file.
*/
-/* From pp_macros.idl modified Wed Mar 6 13:04:56 2013. */
+/* From pp_macros.idl modified Tue May 20 17:13:23 2014. */
#ifndef PPAPI_C_PP_MACROS_H_
#define PPAPI_C_PP_MACROS_H_
-#define PPAPI_RELEASE 33
+#define PPAPI_RELEASE 37
/**
* @file
@@ -95,22 +95,6 @@ PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, struct NAME, SIZE)
#define PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(NAME, SIZE) \
PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, enum NAME, SIZE)
-/* This is roughly copied from base/compiler_specific.h, and makes it possible
- to pass 'this' in a constructor initializer list, when you really mean it.
- E.g.:
- Foo::Foo(MyInstance* instance)
- : PP_ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {}
- */
-#if defined(_MSC_VER)
-# define PP_ALLOW_THIS_IN_INITIALIZER_LIST(code) \
- __pragma(warning(push)) \
- __pragma(warning(disable:4355)) \
- code \
- __pragma(warning(pop))
-#else
-# define PP_ALLOW_THIS_IN_INITIALIZER_LIST(code) code
-#endif
-
/**
* @}
* End of addtogroup PP
diff --git a/chromium/ppapi/c/pp_rect.h b/chromium/ppapi/c/pp_rect.h
index 38825c33336..60002f8ecdc 100644
--- a/chromium/ppapi/c/pp_rect.h
+++ b/chromium/ppapi/c/pp_rect.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From pp_rect.idl modified Wed Oct 5 14:06:02 2011. */
+/* From pp_rect.idl modified Tue Jun 3 12:31:06 2014. */
#ifndef PPAPI_C_PP_RECT_H_
#define PPAPI_C_PP_RECT_H_
@@ -37,6 +37,20 @@ struct PP_Rect {
struct PP_Size size;
};
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Rect, 16);
+
+/**
+ * The <code>PP_FloatRect</code> struct contains the size and location of a 2D
+ * rectangle.
+ */
+struct PP_FloatRect {
+ /**
+ * This value represents the x and y coordinates of the upper-left corner of
+ * the rectangle.
+ */
+ struct PP_FloatPoint point;
+ /** This value represents the width and height of the rectangle. */
+ struct PP_FloatSize size;
+};
/**
* @}
*/
@@ -69,6 +83,30 @@ PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y,
ret.size.height = h;
return ret;
}
+
+/**
+ * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y
+ * coordinates and width and height dimensions as float values.
+ *
+ * @param[in] x An float value representing a horizontal coordinate of a
+ * point, starting with 0 as the left-most coordinate.
+ * @param[in] y An float value representing a vertical coordinate of a point,
+ * starting with 0 as the top-most coordinate.
+ * @param[in] w An float value representing a width.
+ * @param[in] h An float value representing a height.
+ *
+ * @return A <code>PP_FloatRect</code> structure.
+ */
+PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y,
+ float w, float h) {
+ struct PP_FloatRect ret;
+ ret.point.x = x;
+ ret.point.y = y;
+ ret.size.width = w;
+ ret.size.height = h;
+ return ret;
+}
+
/**
* @}
*/
diff --git a/chromium/ppapi/c/pp_size.h b/chromium/ppapi/c/pp_size.h
index 117369cb9f8..fe87224a2d8 100644
--- a/chromium/ppapi/c/pp_size.h
+++ b/chromium/ppapi/c/pp_size.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From pp_size.idl modified Wed Oct 5 14:06:02 2011. */
+/* From pp_size.idl modified Tue Jun 3 12:31:20 2014. */
#ifndef PPAPI_C_PP_SIZE_H_
#define PPAPI_C_PP_SIZE_H_
@@ -31,6 +31,16 @@ struct PP_Size {
int32_t height;
};
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Size, 8);
+
+/**
+ * The <code>PP_FloatSize</code> struct contains the size of a 2D rectangle.
+ */
+struct PP_FloatSize {
+ /** This value represents the width of the rectangle. */
+ float width;
+ /** This value represents the height of the rectangle. */
+ float height;
+};
/**
* @}
*/
@@ -55,6 +65,22 @@ PP_INLINE struct PP_Size PP_MakeSize(int32_t w, int32_t h) {
ret.height = h;
return ret;
}
+
+/**
+ * PP_MakeFloatSize() creates a <code>PP_FloatSize</code> given a
+ * width and height as float values.
+ *
+ * @param[in] w An float value representing a width.
+ * @param[in] h An float value representing a height.
+ *
+ * @return A <code>PP_FloatSize</code> structure.
+ */
+PP_INLINE struct PP_FloatSize PP_MakeFloatSize(float w, float h) {
+ struct PP_FloatSize ret;
+ ret.width = w;
+ ret.height = h;
+ return ret;
+}
/**
* @}
*/
diff --git a/chromium/ppapi/c/pp_var.h b/chromium/ppapi/c/pp_var.h
index 0648c652c3c..15a8df69653 100644
--- a/chromium/ppapi/c/pp_var.h
+++ b/chromium/ppapi/c/pp_var.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From pp_var.idl modified Thu Sep 12 16:41:36 2013. */
+/* From pp_var.idl modified Thu Apr 10 14:52:30 2014. */
#ifndef PPAPI_C_PP_VAR_H_
#define PPAPI_C_PP_VAR_H_
@@ -54,28 +54,29 @@ typedef enum {
* The Var represents a string. The <code>as_id</code> field is used to
* identify the string, which may be created and retrieved from the
* <code>PPB_Var</code> interface. These objects are reference counted, so
- * AddRef and Release must be used properly to avoid memory leaks.
+ * AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_STRING = 5,
/**
* Represents a JavaScript object. This vartype is not currently usable
* from modules, although it is used internally for some tasks. These objects
- * are reference counted, so AddRef and Release must be used properly to avoid
- * memory leaks.
+ * are reference counted, so AddRef() and Release() must be used properly to
+ * avoid memory leaks.
*/
PP_VARTYPE_OBJECT = 6,
/**
* Represents an array of Vars. The <code>as_id</code> field is used to
* identify the array, which may be created and manipulated from the
* <code>PPB_VarArray</code> interface. These objects are reference counted,
- * so AddRef and Release must be used properly to avoid memory leaks.
+ * so AddRef() and Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY = 7,
/**
* Represents a mapping from strings to Vars. The <code>as_id</code> field is
* used to identify the dictionary, which may be created and manipulated from
* the <code>PPB_VarDictionary</code> interface. These objects are reference
- * counted, so AddRef and Release must be used properly to avoid memory leaks.
+ * counted, so AddRef() and Release() must be used properly to avoid memory
+ * leaks.
*/
PP_VARTYPE_DICTIONARY = 8,
/**
@@ -83,14 +84,24 @@ typedef enum {
* represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
* only meant to contain basic numeric types, and is always stored
* contiguously. See PPB_VarArrayBuffer_Dev for functions special to
- * ArrayBuffer vars. These objects are reference counted, so AddRef and
- * Release must be used properly to avoid memory leaks.
+ * ArrayBuffer vars. These objects are reference counted, so AddRef() and
+ * Release() must be used properly to avoid memory leaks.
*/
PP_VARTYPE_ARRAY_BUFFER = 9,
/**
- * Resources are not currently supported but will be added in the future
- * These objects are reference counted, so AddRef and Release must be used
- * properly to avoid memory leaks.
+ * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
+ * </code>. This can be useful for sending or receiving some types of
+ * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
+ * <code>PPP_Messaging</code>.
+ *
+ * These objects are reference counted, so AddRef() and Release() must be used
+ * properly to avoid memory leaks. Under normal circumstances, the
+ * <code>PP_Var</code> will implicitly hold a reference count on the
+ * <code>PP_Resource</code> on your behalf. For example, if you call
+ * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
+ * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
+ * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
+ * reference count goes to zero.
*/
PP_VARTYPE_RESOURCE = 10
} PP_VarType;
diff --git a/chromium/ppapi/c/ppb.h b/chromium/ppapi/c/ppb.h
index 4c228b000fc..cb6e6b4ffad 100644
--- a/chromium/ppapi/c/ppb.h
+++ b/chromium/ppapi/c/ppb.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb.idl modified Thu Mar 1 14:49:34 2012. */
+/* From ppb.idl modified Fri Jan 24 16:19:56 2014. */
#ifndef PPAPI_C_PPB_H_
#define PPAPI_C_PPB_H_
@@ -33,7 +33,7 @@
* <code>ppb.audio.h</code> or
* <code>PPB_GRAPHICS_2D_INTERFACE</code> in <code>ppb_graphics_2d.h</code>.
* Click
- * <a href="/native-client/{{pepperversion}}/pepperc/globals_defs"
+ * <a href="globals_defs.html"
* title="macros">here</a> for a complete list of interface
* names.
*
diff --git a/chromium/ppapi/c/ppb_audio.h b/chromium/ppapi/c/ppb_audio.h
index d41839a177d..edfb7f7723e 100644
--- a/chromium/ppapi/c/ppb_audio.h
+++ b/chromium/ppapi/c/ppb_audio.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_audio.idl modified Thu Aug 01 13:19:46 2013. */
+/* From ppb_audio.idl modified Fri Jan 24 16:18:44 2014. */
#ifndef PPAPI_C_PPB_AUDIO_H_
#define PPAPI_C_PPB_AUDIO_H_
@@ -61,7 +61,7 @@ typedef void (*PPB_Audio_Callback_1_0)(void* sample_buffer,
/**
* The <code>PPB_Audio</code> interface contains pointers to several functions
* for handling audio resources. Refer to the
- * <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio</a>
+ * <a href="/native-client/devguide/coding/audio.html">Audio</a>
* chapter in the Developer's Guide for information on using this interface.
* Please see descriptions for each <code>PPB_Audio</code> and
* <code>PPB_AudioConfig</code> function for more details. A C example using
diff --git a/chromium/ppapi/c/ppb_audio_buffer.h b/chromium/ppapi/c/ppb_audio_buffer.h
new file mode 100644
index 00000000000..fe728a31585
--- /dev/null
+++ b/chromium/ppapi/c/ppb_audio_buffer.h
@@ -0,0 +1,156 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_audio_buffer.idl modified Tue Mar 25 18:29:27 2014. */
+
+#ifndef PPAPI_C_PPB_AUDIO_BUFFER_H_
+#define PPAPI_C_PPB_AUDIO_BUFFER_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_time.h"
+
+#define PPB_AUDIOBUFFER_INTERFACE_0_1 "PPB_AudioBuffer;0.1"
+#define PPB_AUDIOBUFFER_INTERFACE PPB_AUDIOBUFFER_INTERFACE_0_1
+
+/**
+ * @file
+ * Defines the <code>PPB_AudioBuffer</code> interface.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * PP_AudioBuffer_SampleRate is an enumeration of the different audio sample
+ * rates.
+ */
+typedef enum {
+ PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN = 0,
+ PP_AUDIOBUFFER_SAMPLERATE_8000 = 8000,
+ PP_AUDIOBUFFER_SAMPLERATE_16000 = 16000,
+ PP_AUDIOBUFFER_SAMPLERATE_22050 = 22050,
+ PP_AUDIOBUFFER_SAMPLERATE_32000 = 32000,
+ PP_AUDIOBUFFER_SAMPLERATE_44100 = 44100,
+ PP_AUDIOBUFFER_SAMPLERATE_48000 = 48000,
+ PP_AUDIOBUFFER_SAMPLERATE_96000 = 96000,
+ PP_AUDIOBUFFER_SAMPLERATE_192000 = 192000
+} PP_AudioBuffer_SampleRate;
+
+/**
+ * PP_AudioBuffer_SampleSize is an enumeration of the different audio sample
+ * sizes.
+ */
+typedef enum {
+ PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN = 0,
+ PP_AUDIOBUFFER_SAMPLESIZE_16_BITS = 2
+} PP_AudioBuffer_SampleSize;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPB_AudioBuffer_0_1 {
+ /**
+ * Determines if a resource is an AudioBuffer resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is an AudioBuffer resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool (*IsAudioBuffer)(PP_Resource resource);
+ /**
+ * Gets the timestamp of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
+ * buffer. Given in seconds since the start of the containing audio stream.
+ */
+ PP_TimeDelta (*GetTimestamp)(PP_Resource buffer);
+ /**
+ * Sets the timestamp of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ * of the audio buffer. Given in seconds since the start of the containing
+ * audio stream.
+ */
+ void (*SetTimestamp)(PP_Resource buffer, PP_TimeDelta timestamp);
+ /**
+ * Gets the sample rate of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The sample rate of the audio buffer.
+ */
+ PP_AudioBuffer_SampleRate (*GetSampleRate)(PP_Resource buffer);
+ /**
+ * Gets the sample size of the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The sample size of the audio buffer.
+ */
+ PP_AudioBuffer_SampleSize (*GetSampleSize)(PP_Resource buffer);
+ /**
+ * Gets the number of channels in the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The number of channels in the audio buffer.
+ */
+ uint32_t (*GetNumberOfChannels)(PP_Resource buffer);
+ /**
+ * Gets the number of samples in the audio buffer.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The number of samples in the audio buffer.
+ * For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
+ * containing 4410 * 2 samples would have a duration of 100 milliseconds.
+ */
+ uint32_t (*GetNumberOfSamples)(PP_Resource buffer);
+ /**
+ * Gets the data buffer containing the audio samples.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return A pointer to the beginning of the data buffer.
+ */
+ void* (*GetDataBuffer)(PP_Resource buffer);
+ /**
+ * Gets the size of the data buffer in bytes.
+ *
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
+ * buffer resource.
+ *
+ * @return The size of the data buffer in bytes.
+ */
+ uint32_t (*GetDataBufferSize)(PP_Resource buffer);
+};
+
+typedef struct PPB_AudioBuffer_0_1 PPB_AudioBuffer;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_AUDIO_BUFFER_H_ */
+
diff --git a/chromium/ppapi/c/ppb_audio_config.h b/chromium/ppapi/c/ppb_audio_config.h
index a1e2e4b248e..87f861b62b8 100644
--- a/chromium/ppapi/c/ppb_audio_config.h
+++ b/chromium/ppapi/c/ppb_audio_config.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_audio_config.idl modified Thu Mar 28 10:07:11 2013. */
+/* From ppb_audio_config.idl modified Fri Jan 24 16:19:35 2014. */
#ifndef PPAPI_C_PPB_AUDIO_CONFIG_H_
#define PPAPI_C_PPB_AUDIO_CONFIG_H_
@@ -66,7 +66,7 @@ PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioSampleRate, 4);
* This interface only supports 16-bit stereo output.
*
* Refer to the
- * <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio
+ * <a href="/native-client/devguide/coding/audio.html">Audio
* </a> chapter in the Developer's Guide for information on using this
* interface.
*/
diff --git a/chromium/ppapi/c/ppb_compositor.h b/chromium/ppapi/c/ppb_compositor.h
new file mode 100644
index 00000000000..18c9760b06c
--- /dev/null
+++ b/chromium/ppapi/c/ppb_compositor.h
@@ -0,0 +1,148 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_compositor.idl modified Tue Jun 3 12:44:44 2014. */
+
+#ifndef PPAPI_C_PPB_COMPOSITOR_H_
+#define PPAPI_C_PPB_COMPOSITOR_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_COMPOSITOR_INTERFACE_0_1 "PPB_Compositor;0.1" /* dev */
+/**
+ * @file
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * Defines the <code>PPB_Compositor</code> interface. Used for setting
+ * <code>PPB_CompositorLayer</code> layers to the Chromium compositor for
+ * compositing. This allows a plugin to combine different sources of visual
+ * data efficiently, such as <code>PPB_ImageData</code> images and
+ * OpenGL textures. See also <code>PPB_CompositorLayer</code> for more
+ * information.
+ * This interface is still in development (Dev API status) and may change,
+ * so is only supported on Dev channel and Canary currently.
+ *
+ * <strong>Example usage from plugin code:</strong>
+ *
+ * <strong>Setup:</strong>
+ * @code
+ * PP_Resource compositor;
+ * compositor = compositor_if->Create(instance);
+ * instance_if->BindGraphics(instance, compositor);
+ * @endcode
+ *
+ * <strong>Setup layer stack:</strong>
+ * @code
+ * PP_Resource color_layer = compositor_if->AddLayer(compositor);
+ * PP_Resource texture_layer = compositor_if->AddLayer(compositor);
+ * @endcode
+ *
+ * <strong> Present one frame:</strong>
+ * layer_if->SetColor(color_layer, 255, 255, 0, 255, PP_MakeSize(400, 400));
+ * PP_CompletionCallback release_callback = {
+ * TextureReleasedCallback, 0, PP_COMPLETIONCALLBACK_FLAG_NONE,
+ * };
+ * layer_if->SetTexture(texture_layer, graphics3d, texture_id,
+ * PP_MakeSize(300, 300), release_callback);
+ *
+ * PP_CompletionCallback callback = {
+ * DidFinishCommitLayersCallback,
+ * (void*) texture_id,
+ * PP_COMPLETIONCALLBACK_FLAG_NONE,
+ * };
+ * compositor_if->CommitLayers(compositor, callback);
+ * @endcode
+ *
+ * <strong>release callback</strong>
+ * void ReleaseCallback(int32_t result, void* user_data) {
+ * if (result == PP_OK) {
+ * uint32_t texture_id = (uint32_t) user_data;
+ * // reuse the texture or delete it.
+ * }
+ * }
+ *
+ * <strong>Shutdown:</strong>
+ * @code
+ * core->ReleaseResource(color_layer);
+ * core->ReleaseResource(texture_layer);
+ * core->ReleaseResource(compositor);
+ * @endcode
+ */
+struct PPB_Compositor_0_1 { /* dev */
+ /**
+ * Determines if a resource is a compositor resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a compositor resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool (*IsCompositor)(PP_Resource resource);
+ /**
+ * Creates a Compositor resource.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ *
+ * @return A <code>PP_Resource</code> containing the compositor resource if
+ * sucessful or 0 otherwise.
+ */
+ PP_Resource (*Create)(PP_Instance instance);
+ /**
+ * Creates a new <code>PPB_CompositorLayer</code> and adds it to the end
+ * of the layer stack. A <code>PP_Resource</code> containing the layer is
+ * returned. It is uninitialized, <code>SetColor()</code>,
+ * <code>SetTexture</code> or <code>SetImage</code> should be used to
+ * initialize it. The layer will appear above other pre-existing layers.
+ * If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code> is
+ * released, the returned layer will be invalidated, and any further calls on
+ * the layer will return <code>PP_ERROR_BADRESOURCE</code>.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ *
+ * @return A <code>PP_Resource</code> containing the compositor layer
+ * resource if sucessful or 0 otherwise.
+ */
+ PP_Resource (*AddLayer)(PP_Resource compositor);
+ /**
+ * Commits layers added by <code>AddLayer()</code> to the chromium compositor.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ * @param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * layers have been represented on screen.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*CommitLayers)(PP_Resource compositor,
+ struct PP_CompletionCallback cc);
+ /**
+ * Resets layers added by <code>AddLayer()</code>.
+ *
+ * param[in] compositor A <code>PP_Resource</code> corresponding to
+ * a compositor layer resource.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*ResetLayers)(PP_Resource compositor);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_COMPOSITOR_H_ */
+
diff --git a/chromium/ppapi/c/ppb_compositor_layer.h b/chromium/ppapi/c/ppb_compositor_layer.h
new file mode 100644
index 00000000000..8fcb1ab60f9
--- /dev/null
+++ b/chromium/ppapi/c/ppb_compositor_layer.h
@@ -0,0 +1,236 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_compositor_layer.idl modified Wed Jun 4 11:17:54 2014. */
+
+#ifndef PPAPI_C_PPB_COMPOSITOR_LAYER_H_
+#define PPAPI_C_PPB_COMPOSITOR_LAYER_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_point.h"
+#include "ppapi/c/pp_rect.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_COMPOSITORLAYER_INTERFACE_0_1 "PPB_CompositorLayer;0.1" /* dev */
+/**
+ * @file
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * This enumeration contains blend modes used for computing the result pixels
+ * based on the source RGBA values in layers with the RGBA values that are
+ * already in the destination framebuffer.
+ * alpha_src, color_src: source alpha and color.
+ * alpha_dst, color_dst: destination alpha and color (before compositing).
+ * Below descriptions of the blend modes assume the colors are pre-multiplied.
+ * This interface is still in development (Dev API status) and may change,
+ * so is only supported on Dev channel and Canary currently.
+ */
+typedef enum {
+ /**
+ * No blending, copy source to the destination directly.
+ */
+ PP_BLENDMODE_NONE,
+ /**
+ * Source is placed over the destination.
+ * Resulting alpha = alpha_src + alpha_dst - alpha_src * alpha_dst
+ * Resulting color = color_src + color_dst * (1 - alpha_src)
+ */
+ PP_BLENDMODE_SRC_OVER,
+ /**
+ * The last blend mode.
+ */
+ PP_BLENDMODE_LAST = PP_BLENDMODE_SRC_OVER
+} PP_BlendMode;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * Defines the <code>PPB_CompositorLayer</code> interface. It is used by
+ * <code>PPB_Compositor</code>.
+ */
+struct PPB_CompositorLayer_0_1 { /* dev */
+ /**
+ * Determines if a resource is a compositor layer resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a compositor layer resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool (*IsCompositorLayer)(PP_Resource resource);
+ /**
+ * Sets the color of a solid color layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its color.
+ * If the layer has been initialized to another kind of layer, the layer will
+ * not be changed, and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] red A <code>float</code> for the red color component. It will be
+ * clamped to [0, 1].
+ * param[in] green A <code>float</code> for the green color component. It will
+ * be clamped to [0, 1].
+ * param[in] blue A <code>float</code> for the blue color component. It will
+ * be clamped to [0, 1].
+ * param[in] alpha A <code>float</code> for the alpha color component. It will
+ * be clamped to [0, 1].
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetColor)(PP_Resource layer,
+ float red,
+ float green,
+ float blue,
+ float alpha,
+ const struct PP_Size* size);
+ /**
+ * Sets the texture of a texture layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its texture.
+ * The source rect will be set to ((0, 0), (1, 1)). If the layer has been
+ * initialized to another kind of layer, the layer will not be changed,
+ * and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] context A <code>PP_Resource</code> corresponding to a graphics
+ * 3d resource which owns the GL texture.
+ * param[in] texture A GL texture object id.
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform.
+ * param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * the texture is released by Chromium compositor.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetTexture)(PP_Resource layer,
+ PP_Resource context,
+ uint32_t texture,
+ const struct PP_Size* size,
+ struct PP_CompletionCallback cc);
+ /**
+ * Sets the image of an image layer. If the layer is uninitialized,
+ * it will initialize the layer first, and then set its image.
+ * The layer size will be set to the image's size. The source rect will be set
+ * to the full image. If the layer has been initialized to another kind of
+ * layer, the layer will not be changed, and <code>PP_ERROR_BADARGUMENT</code>
+ * will be returned.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] image_data A <code>PP_Resource</code> corresponding to
+ * an image data resource.
+ * param[in] size A <code>PP_Size</code> for the size of the layer before
+ * transform. If NULL, the image's size will be used.
+ * param[in] cc A <code>PP_CompletionCallback</code> to be called when
+ * the image data is released by Chromium compositor.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetImage)(PP_Resource layer,
+ PP_Resource image_data,
+ const struct PP_Size* size,
+ struct PP_CompletionCallback cc);
+ /**
+ * Sets a clip rectangle for a compositor layer. The Chromium compositor
+ * applies a transform matrix on the layer first, and then clips the layer
+ * with the rectangle.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] rect The clip rectangle. The origin is top-left corner of
+ * the plugin.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetClipRect)(PP_Resource layer, const struct PP_Rect* rect);
+ /**
+ * Sets a transform matrix which is used to composite the layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] matrix A float array with 16 elements. The matrix is
+ * column major. The default transform matrix is an identity matrix.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetTransform)(PP_Resource layer, const float matrix[16]);
+ /**
+ * Sets the opacity value which will be applied to the layer. The effective
+ * value of each pixel is computed as:
+ *
+ * if (premult_alpha)
+ * pixel.rgb = pixel.rgb * opacity;
+ * pixel.a = pixel.a * opactiy;
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] opacity A <code>float</code> for the opacity value, The default
+ * value is 1.0f.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetOpacity)(PP_Resource layer, float opacity);
+ /**
+ * Sets the blend mode which is used to composite the layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] mode A <code>PP_BlendMode</code>. The default mode is
+ * <code>PP_BLENDMODE_SRC_OVER</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetBlendMode)(PP_Resource layer, PP_BlendMode mode);
+ /**
+ * Sets a source rectangle for a texture layer or an image layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] rect A <code>PP_FloatRect</code> for an area of the source to
+ * consider. For a texture layer, rect is in uv coordinates. For an image
+ * layer, rect is in pixels. If the rect is beyond the dimensions of the
+ * texture or image, <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ * If the layer size does not match the source rect size, bilinear scaling
+ * will be used.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetSourceRect)(PP_Resource layer, const struct PP_FloatRect* rect);
+ /**
+ * Sets the premultiplied alpha for an texture layer.
+ *
+ * param[in] layer A <code>PP_Resource</code> corresponding to a compositor
+ * layer resource.
+ * param[in] premult A <code>PP_Bool</code> with <code>PP_TRUE</code> if
+ * pre-multiplied alpha is used.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*SetPremultipliedAlpha)(PP_Resource layer, PP_Bool premult);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_COMPOSITOR_LAYER_H_ */
+
diff --git a/chromium/ppapi/c/ppb_file_mapping.h b/chromium/ppapi/c/ppb_file_mapping.h
new file mode 100644
index 00000000000..3c1f87bf928
--- /dev/null
+++ b/chromium/ppapi/c/ppb_file_mapping.h
@@ -0,0 +1,147 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_file_mapping.idl modified Mon Jan 27 11:00:43 2014. */
+
+#ifndef PPAPI_C_PPB_FILE_MAPPING_H_
+#define PPAPI_C_PPB_FILE_MAPPING_H_
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_FILEMAPPING_INTERFACE_0_1 "PPB_FileMapping;0.1" /* dev */
+/**
+ * @file
+ * This file defines methods for mapping and unmapping files into and out of
+ * memory.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * The PP_FileMapProtection values indicate the permissions requested for the
+ * file mapping. These should be used in a uint32_t bitfield.
+ */
+typedef enum {
+ /** Requests read access to the mapped address. */
+ PP_FILEMAPPROTECTION_READ = 1u << 0,
+ /** Requests write access to the mapped address. */
+ PP_FILEMAPPROTECTION_WRITE = 1u << 1
+} PP_FileMapProtection;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileMapProtection, 4);
+
+/**
+ * The PP_FileMapFlags contain flag values for use with Map().
+ */
+typedef enum {
+ /**
+ * Requests a shared mapping. If this flag is set, changes written to the
+ * memory region will be reflected in the underlying file and will thus
+ * eventually be visible to other processes which have opened the file. The
+ * file may not actually be updated until Unmap() is called. This is only
+ * valid if the PPB_FileIO resource was opened with write permission.
+ */
+ PP_FILEMAPFLAG_SHARED = 1u << 0,
+ /**
+ * Requests a copy-on-write mapping. If this flag is set, changes are not
+ * written to the underlying file, but only in the memory of the process
+ * (copy-on-write).
+ */
+ PP_FILEMAPFLAG_PRIVATE = 1u << 1,
+ /**
+ * Forces Map() to map the file contents at the provided |address|. If Map()
+ * can not comply, Map() will fail.
+ */
+ PP_FILEMAPFLAG_FIXED = 1u << 2
+} PP_FileMapFlags;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileMapFlags, 4);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * PPB_FileMapping contains functions for mapping and unmapping files into and
+ * out of memory.
+ */
+struct PPB_FileMapping_0_1 { /* dev */
+ /**
+ * Map() maps the contents from an offset of the file into memory.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ * @param[in] file_io A <code>PPB_FileIO</code> <code>PP_Resource</code>
+ * corresponding to the file that should be mapped in to memory.
+ * @param[in] length The number of bytes to map.
+ * @param[in] map_protection A bitfield containing values from
+ * <code>PP_FileMapProtection</code>, indicating what memory operations
+ * should be permitted on the mapped region.
+ * @param[in] map_flags A bitfield containing values from
+ * <code>PP_FileMapFlags</code>, providing options for the behavior of Map.
+ * If the region is to be writeable, then exactly one of
+ * <code>PP_FILEMAPFLAG_SHARED</code> or <code>PP_FILEMAPFLAG_PRIVATE</code>
+ * must be set.
+ * @param[in] offset The offset into the file. Must be a multiple of the
+ * Map page size as returned by GetMapPageSize().
+ * @param[inout] address The value of <code>*address</code>, if non-NULL,
+ * will be used as a hint to determine where in memory the file should be
+ * mapped. If the value is NULL, the host operating system will choose
+ * <code>address</code>. Upon Map() completing, <code>*address</code> will
+ * contain the actual memory location at which the file was mapped. If the
+ * plugin provides a non-NULL <code>*address</code>, it must be a multiple of
+ * the map page size as returned by GetMapPageSize().
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of Map().
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*Map)(PP_Instance instance,
+ PP_Resource file_io,
+ int64_t length,
+ uint32_t map_protection,
+ uint32_t map_flags,
+ int64_t offset,
+ void** address,
+ struct PP_CompletionCallback callback);
+ /**
+ * Unmap() deletes the mapping of the specified address. The specified
+ * address must have been retrieved with Map().
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance.
+ * @param[in] address The starting address of the address in memory to
+ * be unmapped.
+ * @param[in] length The length of the region to unmap.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of Unmap().
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*Unmap)(PP_Instance instance,
+ const void* address,
+ int64_t length,
+ struct PP_CompletionCallback callback);
+ /**
+ * GetMapPageSize() retrieves the size of pages that Map() uses.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance.
+ *
+ * @return The size of pages that Map() uses. Returns 0 on failure.
+ */
+ int64_t (*GetMapPageSize)(PP_Instance instance);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_FILE_MAPPING_H_ */
+
diff --git a/chromium/ppapi/c/ppb_file_ref.h b/chromium/ppapi/c/ppb_file_ref.h
index 873ef188868..b4f29552ecc 100644
--- a/chromium/ppapi/c/ppb_file_ref.h
+++ b/chromium/ppapi/c/ppb_file_ref.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_file_ref.idl modified Thu Aug 15 10:50:43 2013. */
+/* From ppb_file_ref.idl modified Wed Jan 29 20:50:29 2014. */
#ifndef PPAPI_C_PPB_FILE_REF_H_
#define PPAPI_C_PPB_FILE_REF_H_
@@ -20,7 +20,8 @@
#define PPB_FILEREF_INTERFACE_1_0 "PPB_FileRef;1.0"
#define PPB_FILEREF_INTERFACE_1_1 "PPB_FileRef;1.1"
-#define PPB_FILEREF_INTERFACE PPB_FILEREF_INTERFACE_1_1
+#define PPB_FILEREF_INTERFACE_1_2 "PPB_FileRef;1.2"
+#define PPB_FILEREF_INTERFACE PPB_FILEREF_INTERFACE_1_2
/**
* @file
@@ -30,6 +31,28 @@
/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * The <code>PP_MakeDirectoryFlags</code> enum contains flags used to control
+ * behavior of <code>PPB_FileRef.MakeDirectory()</code>.
+ */
+typedef enum {
+ PP_MAKEDIRECTORYFLAG_NONE = 0 << 0,
+ /** Requests that ancestor directories are created if they do not exist. */
+ PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS = 1 << 0,
+ /**
+ * Requests that the PPB_FileRef.MakeDirectory() call fails if the directory
+ * already exists.
+ */
+ PP_MAKEDIRECTORYFLAG_EXCLUSIVE = 1 << 1
+} PP_MakeDirectoryFlags;
+/**
+ * @}
+ */
+
+/**
* @addtogroup Interfaces
* @{
*/
@@ -38,7 +61,7 @@
* a file system. This struct contains a <code>PP_FileSystemType</code>
* identifier and a file path string.
*/
-struct PPB_FileRef_1_1 {
+struct PPB_FileRef_1_2 {
/**
* Create() creates a weak pointer to a file in the given file system. File
* paths are POSIX style.
@@ -110,24 +133,22 @@ struct PPB_FileRef_1_1 {
*/
PP_Resource (*GetParent)(PP_Resource file_ref);
/**
- * MakeDirectory() makes a new directory in the file system as well as any
- * parent directories if the <code>make_ancestors</code> argument is
- * <code>PP_TRUE</code>. It is not valid to make a directory in the external
- * file system.
+ * MakeDirectory() makes a new directory in the file system according to the
+ * given <code>make_directory_flags</code>, which is a bit-mask of the
+ * <code>PP_MakeDirectoryFlags</code> values. It is not valid to make a
+ * directory in the external file system.
*
* @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
* reference.
- * @param[in] make_ancestors A <code>PP_Bool</code> set to
- * <code>PP_TRUE</code> to make ancestor directories or <code>PP_FALSE</code>
- * if ancestor directories are not needed.
+ * @param[in] make_directory_flags A bit-mask of the
+ * <code>PP_MakeDirectoryFlags</code> values.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of MakeDirectory().
*
* @return An int32_t containing an error code from <code>pp_errors.h</code>.
- * Succeeds if the directory already exists. Fails if ancestor directories
- * do not exist and <code>make_ancestors</code> was passed as
- * <code>PP_FALSE</code>.
*/
int32_t (*MakeDirectory)(PP_Resource directory_ref,
- PP_Bool make_ancestors,
+ int32_t make_directory_flags,
struct PP_CompletionCallback callback);
/**
* Touch() Updates time stamps for a file. You must have write access to the
@@ -212,7 +233,7 @@ struct PPB_FileRef_1_1 {
struct PP_CompletionCallback callback);
};
-typedef struct PPB_FileRef_1_1 PPB_FileRef;
+typedef struct PPB_FileRef_1_2 PPB_FileRef;
struct PPB_FileRef_1_0 {
PP_Resource (*Create)(PP_Resource file_system, const char* path);
@@ -234,6 +255,33 @@ struct PPB_FileRef_1_0 {
PP_Resource new_file_ref,
struct PP_CompletionCallback callback);
};
+
+struct PPB_FileRef_1_1 {
+ PP_Resource (*Create)(PP_Resource file_system, const char* path);
+ PP_Bool (*IsFileRef)(PP_Resource resource);
+ PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref);
+ struct PP_Var (*GetName)(PP_Resource file_ref);
+ struct PP_Var (*GetPath)(PP_Resource file_ref);
+ PP_Resource (*GetParent)(PP_Resource file_ref);
+ int32_t (*MakeDirectory)(PP_Resource directory_ref,
+ PP_Bool make_ancestors,
+ struct PP_CompletionCallback callback);
+ int32_t (*Touch)(PP_Resource file_ref,
+ PP_Time last_access_time,
+ PP_Time last_modified_time,
+ struct PP_CompletionCallback callback);
+ int32_t (*Delete)(PP_Resource file_ref,
+ struct PP_CompletionCallback callback);
+ int32_t (*Rename)(PP_Resource file_ref,
+ PP_Resource new_file_ref,
+ struct PP_CompletionCallback callback);
+ int32_t (*Query)(PP_Resource file_ref,
+ struct PP_FileInfo* info,
+ struct PP_CompletionCallback callback);
+ int32_t (*ReadDirectoryEntries)(PP_Resource file_ref,
+ struct PP_ArrayOutput output,
+ struct PP_CompletionCallback callback);
+};
/**
* @}
*/
diff --git a/chromium/ppapi/c/ppb_input_event.h b/chromium/ppapi/c/ppb_input_event.h
index 2624f0b9618..ca2bf152b9d 100644
--- a/chromium/ppapi/c/ppb_input_event.h
+++ b/chromium/ppapi/c/ppb_input_event.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_input_event.idl modified Tue Jul 23 19:23:51 2013. */
+/* From ppb_input_event.idl modified Thu Apr 3 14:52:10 2014. */
#ifndef PPAPI_C_PPB_INPUT_EVENT_H_
#define PPAPI_C_PPB_INPUT_EVENT_H_
@@ -29,8 +29,9 @@
#define PPB_WHEEL_INPUT_EVENT_INTERFACE PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0
#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0 "PPB_KeyboardInputEvent;1.0"
+#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2 "PPB_KeyboardInputEvent;1.2"
#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE \
- PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0
+ PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2
#define PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0 "PPB_TouchInputEvent;1.0"
#define PPB_TOUCH_INPUT_EVENT_INTERFACE PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0
@@ -330,12 +331,10 @@ struct PPB_InputEvent_1_0 {
* the page.
*
* Note that synthetic mouse events will be generated from touch events if
- * (and only if) the you do not request touch events.
+ * (and only if) you do not request touch events.
*
* When requesting input events through this function, the events will be
- * delivered and <i>not</i> bubbled to the page. This means that even if you
- * aren't interested in the message, no other parts of the page will get
- * a crack at the message.
+ * delivered and <i>not</i> bubbled to the default handlers.
*
* <strong>Example:</strong>
* @code
@@ -368,8 +367,8 @@ struct PPB_InputEvent_1_0 {
* By default, no input events are delivered. In most cases you would
* register to receive events by calling RequestInputEvents(). In some cases,
* however, you may wish to filter events such that they can be bubbled up
- * to the DOM. In this case, register for those classes of events using
- * this function instead of RequestInputEvents().
+ * to the default handlers. In this case, register for those classes of
+ * events using this function instead of RequestInputEvents().
*
* Filtering input events requires significantly more overhead than just
* delivering them to the instance. As such, you should only request
@@ -695,7 +694,7 @@ typedef struct PPB_WheelInputEvent_1_0 PPB_WheelInputEvent;
* The <code>PPB_KeyboardInputEvent</code> interface contains pointers to
* several functions related to keyboard input events.
*/
-struct PPB_KeyboardInputEvent_1_0 {
+struct PPB_KeyboardInputEvent_1_2 {
/**
* Creates a keyboard input event with the given parameters. Normally you
* will get a keyboard event passed through the HandleInputEvent and will not
@@ -710,16 +709,19 @@ struct PPB_KeyboardInputEvent_1_0 {
* @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
* when the event occurred.
*
- * @param[in] modifiers A bit field combination of the
+ * @param[in] modifiers A bit field combination of the
* <code>PP_InputEvent_Modifier</code> flags.
*
* @param[in] key_code This value reflects the DOM KeyboardEvent
- * <code>keyCode</code> field. Chrome populates this with the Windows-style
- * Virtual Key code of the key.
+ * <code>keyCode</code> field, which is the Windows-style Virtual Key
+ * code of the key.
*
* @param[in] character_text This value represents the typed character as a
* UTF-8 string.
*
+ * @param[in] code This value represents the DOM3 |code| string that
+ * corresponds to the physical key being pressed.
+ *
* @return A <code>PP_Resource</code> containing the new keyboard input
* event.
*/
@@ -728,7 +730,8 @@ struct PPB_KeyboardInputEvent_1_0 {
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
- struct PP_Var character_text);
+ struct PP_Var character_text,
+ struct PP_Var code);
/**
* IsKeyboardInputEvent() determines if a resource is a keyboard event.
*
@@ -759,9 +762,31 @@ struct PPB_KeyboardInputEvent_1_0 {
* undefined var.
*/
struct PP_Var (*GetCharacterText)(PP_Resource character_event);
+ /**
+ * GetCode() returns the DOM |code| field for this keyboard event, as
+ * defined in the DOM3 Events spec:
+ * http://www.w3.org/TR/DOM-Level-3-Events/
+ *
+ * @param[in] key_event The key event for which to return the key code.
+ *
+ * @return The string that contains the DOM |code| for the keyboard event.
+ */
+ struct PP_Var (*GetCode)(PP_Resource key_event);
};
-typedef struct PPB_KeyboardInputEvent_1_0 PPB_KeyboardInputEvent;
+typedef struct PPB_KeyboardInputEvent_1_2 PPB_KeyboardInputEvent;
+
+struct PPB_KeyboardInputEvent_1_0 {
+ PP_Resource (*Create)(PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ struct PP_Var character_text);
+ PP_Bool (*IsKeyboardInputEvent)(PP_Resource resource);
+ uint32_t (*GetKeyCode)(PP_Resource key_event);
+ struct PP_Var (*GetCharacterText)(PP_Resource character_event);
+};
/**
* @}
*/
diff --git a/chromium/ppapi/c/ppb_media_stream_audio_track.h b/chromium/ppapi/c/ppb_media_stream_audio_track.h
new file mode 100644
index 00000000000..a57f9eb2c62
--- /dev/null
+++ b/chromium/ppapi/c/ppb_media_stream_audio_track.h
@@ -0,0 +1,215 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_media_stream_audio_track.idl modified Wed May 28 09:36:15 2014. */
+
+#ifndef PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_
+#define PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+
+#define PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1 "PPB_MediaStreamAudioTrack;0.1"
+#define PPB_MEDIASTREAMAUDIOTRACK_INTERFACE \
+ PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1
+
+/**
+ * @file
+ * Defines the <code>PPB_MediaStreamAudioTrack</code> interface. Used for
+ * receiving audio samples from a MediaStream audio track in the browser.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * This enumeration contains audio track attributes which are used by
+ * <code>Configure()</code>.
+ */
+typedef enum {
+ /**
+ * Attribute list terminator.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE = 0,
+ /**
+ * The maximum number of buffers to hold audio samples.
+ * Note: this is only used as advisory; the browser may allocate more or fewer
+ * based on available resources. How many buffers depends on usage -
+ * request at least 2 to make sure latency doesn't cause lost samples. If
+ * the plugin expects to hold on to more than one buffer at a time (e.g. to do
+ * multi-buffer processing), it should request that many more.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS = 1,
+ /**
+ * The sample rate of audio data in buffers. The attribute value is a
+ * <code>PP_AudioBuffer_SampleRate</code>.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE = 2,
+ /**
+ * The sample size of audio data in buffers in bytes. The attribute value is a
+ * <code>PP_AudioBuffer_SampleSize</code>.
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE = 3,
+ /**
+ * The number of channels in audio buffers.
+ *
+ * Supported values: 1, 2
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS = 4,
+ /**
+ * The duration of an audio buffer in milliseconds.
+ *
+ * Valid range: 10 to 10000
+ */
+ PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION = 5
+} PP_MediaStreamAudioTrack_Attrib;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPB_MediaStreamAudioTrack_0_1 {
+ /**
+ * Determines if a resource is a MediaStream audio track resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a Mediastream audio track resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool (*IsMediaStreamAudioTrack)(PP_Resource resource);
+ /**
+ * Configures underlying buffers for incoming audio samples.
+ * If the application doesn't want to drop samples, then the
+ * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
+ * chosen such that inter-buffer processing time variability won't overrun all
+ * the input buffers. If all buffers are filled, then samples will be
+ * dropped. The application can detect this by examining the timestamp on
+ * returned buffers. If <code>Configure()</code> is not called, default
+ * settings will be used. Calls to Configure while the plugin holds
+ * buffers will fail.
+ * Example usage from plugin code:
+ * @code
+ * int32_t attribs[] = {
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
+ * PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
+ * track_if->Configure(track, attribs, callback);
+ * @endcode
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] attrib_list A list of attribute name-value pairs in which each
+ * attribute is immediately followed by the corresponding desired value.
+ * The list is terminated by
+ * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE</code>.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of <code>Configure()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*Configure)(PP_Resource audio_track,
+ const int32_t attrib_list[],
+ struct PP_CompletionCallback callback);
+ /**
+ * Gets attribute value for a given attribute name.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
+ * querying.
+ * @param[out] value A int32_t for storing the attribute value on success.
+ * Otherwise, the value will not be changed.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*GetAttrib)(PP_Resource audio_track,
+ PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value);
+ /**
+ * Returns the track ID of the underlying MediaStream audio track.
+ *
+ * @param[in] audio_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Var</code> containing the MediaStream track ID as
+ * a string.
+ */
+ struct PP_Var (*GetId)(PP_Resource audio_track);
+ /**
+ * Checks whether the underlying MediaStream track has ended.
+ * Calls to GetBuffer while the track has ended are safe to make and will
+ * complete, but will fail.
+ *
+ * @param[in] audio_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool (*HasEnded)(PP_Resource audio_track);
+ /**
+ * Gets the next audio buffer from the MediaStream track.
+ * If internal processing is slower than the incoming buffer rate, new buffers
+ * will be dropped from the incoming stream. Once all buffers are full,
+ * audio samples will be dropped until <code>RecycleBuffer()</code> is called
+ * to free a slot for another buffer.
+ * If there are no audio data in the input buffer,
+ * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ * <code>callback</code> will be called, when a new buffer of audio samples
+ * is received or an error happens.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[out] buffer A <code>PP_Resource</code> corresponding to
+ * an AudioBuffer resource.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of GetBuffer().
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*GetBuffer)(PP_Resource audio_track,
+ PP_Resource* buffer,
+ struct PP_CompletionCallback callback);
+ /**
+ * Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
+ * reuse the buffer. And the buffer will become invalid. The caller should
+ * release all references it holds to <code>buffer</code> and not use it
+ * anymore.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
+ * resource.
+ * @param[in] buffer A <code>PP_Resource</code> corresponding to
+ * an AudioBuffer resource returned by <code>GetBuffer()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*RecycleBuffer)(PP_Resource audio_track, PP_Resource buffer);
+ /**
+ * Closes the MediaStream audio track and disconnects it from the audio
+ * source. After calling <code>Close()</code>, no new buffers will be
+ * received.
+ *
+ * @param[in] audio_track A <code>PP_Resource</code> corresponding to a
+ * MediaStream audio track resource.
+ */
+ void (*Close)(PP_Resource audio_track);
+};
+
+typedef struct PPB_MediaStreamAudioTrack_0_1 PPB_MediaStreamAudioTrack;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_ */
+
diff --git a/chromium/ppapi/c/ppb_media_stream_video_track.h b/chromium/ppapi/c/ppb_media_stream_video_track.h
new file mode 100644
index 00000000000..31c7a803b94
--- /dev/null
+++ b/chromium/ppapi/c/ppb_media_stream_video_track.h
@@ -0,0 +1,275 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_media_stream_video_track.idl modified Mon Apr 7 15:25:56 2014. */
+
+#ifndef PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_
+#define PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+
+#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1 "PPB_MediaStreamVideoTrack;0.1"
+#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0 \
+ "PPB_MediaStreamVideoTrack;1.0" /* dev */
+#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE \
+ PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1
+
+/**
+ * @file
+ * Defines the <code>PPB_MediaStreamVideoTrack</code> interface. Used for
+ * receiving video frames from a MediaStream video track in the browser.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+/**
+ * This enumeration contains video track attributes which are used by
+ * <code>Configure()</code>.
+ */
+typedef enum {
+ /**
+ * Attribute list terminator.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE = 0,
+ /**
+ * The maximum number of frames to hold in the input buffer.
+ * Note: this is only used as advisory; the browser may allocate more or fewer
+ * based on available resources. How many frames to buffer depends on usage -
+ * request at least 2 to make sure latency doesn't cause lost frames. If
+ * the plugin expects to hold on to more than one frame at a time (e.g. to do
+ * multi-frame processing), it should request that many more.
+ * If this attribute is not specified or value 0 is specified for this
+ * attribute, the default value will be used.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES = 1,
+ /**
+ * The width of video frames in pixels. It should be a multiple of 4.
+ * If the specified size is different from the video source (webcam),
+ * frames will be scaled to specified size.
+ * If this attribute is not specified or value 0 is specified, the original
+ * frame size of the video track will be used.
+ *
+ * Maximum value: 4096 (4K resolution).
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH = 2,
+ /**
+ * The height of video frames in pixels. It should be a multiple of 4.
+ * If the specified size is different from the video source (webcam),
+ * frames will be scaled to specified size.
+ * If this attribute is not specified or value 0 is specified, the original
+ * frame size of the video track will be used.
+ *
+ * Maximum value: 4096 (4K resolution).
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT = 3,
+ /**
+ * The format of video frames. The attribute value is
+ * a <code>PP_VideoFrame_Format</code>. If the specified format is different
+ * from the video source (webcam), frames will be converted to specified
+ * format.
+ * If this attribute is not specified or value
+ * <code>PP_VIDEOFRAME_FORMAT_UNKNOWN</code> is specified, the orignal frame
+ * format of the video track will be used.
+ */
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT = 4
+} PP_MediaStreamVideoTrack_Attrib;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPB_MediaStreamVideoTrack_1_0 { /* dev */
+ /**
+ * Creates a PPB_MediaStreamVideoTrack resource for video output. Call this
+ * when you will be creating frames and putting them to the track.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance of
+ * a module.
+ *
+ * @return A <code>PP_Resource</code> corresponding to a
+ * PPB_MediaStreamVideoTrack resource if successful, 0 if failed.
+ */
+ PP_Resource (*Create)(PP_Instance instance);
+ /**
+ * Determines if a resource is a MediaStream video track resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a Mediastream video track resource or <code>PP_FALSE</code>
+ * otherwise.
+ */
+ PP_Bool (*IsMediaStreamVideoTrack)(PP_Resource resource);
+ /**
+ * Configures underlying frame buffers for incoming frames.
+ * If the application doesn't want to drop frames, then the
+ * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
+ * chosen such that inter-frame processing time variability won't overrun the
+ * input buffer. If the buffer is overfilled, then frames will be dropped.
+ * The application can detect this by examining the timestamp on returned
+ * frames. If some attributes are not specified, default values will be used
+ * for those unspecified attributes. If <code>Configure()</code> is not
+ * called, default settings will be used.
+ * Example usage from plugin code:
+ * @code
+ * int32_t attribs[] = {
+ * PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
+ * PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
+ * track_if->Configure(track, attribs, callback);
+ * @endcode
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] attrib_list A list of attribute name-value pairs in which each
+ * attribute is immediately followed by the corresponding desired value.
+ * The list is terminated by
+ * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
+ * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
+ * completion of <code>Configure()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ * Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
+ * <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
+ * holds some frames which are not recycled with <code>RecycleFrame()</code>.
+ * If an error is returned, all attributes and the underlying buffer will not
+ * be changed.
+ */
+ int32_t (*Configure)(PP_Resource video_track,
+ const int32_t attrib_list[],
+ struct PP_CompletionCallback callback);
+ /**
+ * Gets attribute value for a given attribute name.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
+ * querying.
+ * @param[out] value A int32_t for storing the attribute value on success.
+ * Otherwise, the value will not be changed.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*GetAttrib)(PP_Resource video_track,
+ PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value);
+ /**
+ * Returns the track ID of the underlying MediaStream video track.
+ *
+ * @param[in] video_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Var</code> containing the MediaStream track ID as
+ * a string.
+ */
+ struct PP_Var (*GetId)(PP_Resource video_track);
+ /**
+ * Checks whether the underlying MediaStream track has ended.
+ * Calls to GetFrame while the track has ended are safe to make and will
+ * complete, but will fail.
+ *
+ * @param[in] video_track The <code>PP_Resource</code> to check.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool (*HasEnded)(PP_Resource video_track);
+ /**
+ * Gets the next video frame from the MediaStream track.
+ * If internal processing is slower than the incoming frame rate, new frames
+ * will be dropped from the incoming stream. Once the input buffer is full,
+ * frames will be dropped until <code>RecycleFrame()</code> is called to free
+ * a spot for another frame to be buffered.
+ * If there are no frames in the input buffer,
+ * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ * <code>callback</code> will be called when a new frame is received or an
+ * error happens.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[out] frame A <code>PP_Resource</code> corresponding to a VideoFrame
+ * resource.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion of GetFrame().
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames buffer
+ * was not allocated successfully.
+ */
+ int32_t (*GetFrame)(PP_Resource video_track,
+ PP_Resource* frame,
+ struct PP_CompletionCallback callback);
+ /**
+ * Recycles a frame returned by <code>GetFrame()</code>, so the track can
+ * reuse the underlying buffer of this frame. And the frame will become
+ * invalid. The caller should release all references it holds to
+ * <code>frame</code> and not use it anymore.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
+ * resource.
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a VideoFrame
+ * resource returned by <code>GetFrame()</code>.
+ *
+ * @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ */
+ int32_t (*RecycleFrame)(PP_Resource video_track, PP_Resource frame);
+ /**
+ * Closes the MediaStream video track and disconnects it from video source.
+ * After calling <code>Close()</code>, no new frames will be received.
+ *
+ * @param[in] video_track A <code>PP_Resource</code> corresponding to a
+ * MediaStream video track resource.
+ */
+ void (*Close)(PP_Resource video_track);
+ /**
+ * Gets a free frame for output. The frame is allocated by
+ * <code>Configure()</code>. The caller should fill it with frame data, and
+ * then use |PutFrame()| to send the frame back.
+ */
+ int32_t (*GetEmptyFrame)(PP_Resource video_track,
+ PP_Resource* frame,
+ struct PP_CompletionCallback callback);
+ /**
+ * Sends a frame returned by |GetEmptyFrame()| to the output track.
+ * After this function, the |frame| should not be used anymore and the
+ * caller should release the reference that it holds.
+ */
+ int32_t (*PutFrame)(PP_Resource video_track, PP_Resource frame);
+};
+
+struct PPB_MediaStreamVideoTrack_0_1 {
+ PP_Bool (*IsMediaStreamVideoTrack)(PP_Resource resource);
+ int32_t (*Configure)(PP_Resource video_track,
+ const int32_t attrib_list[],
+ struct PP_CompletionCallback callback);
+ int32_t (*GetAttrib)(PP_Resource video_track,
+ PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value);
+ struct PP_Var (*GetId)(PP_Resource video_track);
+ PP_Bool (*HasEnded)(PP_Resource video_track);
+ int32_t (*GetFrame)(PP_Resource video_track,
+ PP_Resource* frame,
+ struct PP_CompletionCallback callback);
+ int32_t (*RecycleFrame)(PP_Resource video_track, PP_Resource frame);
+ void (*Close)(PP_Resource video_track);
+};
+
+typedef struct PPB_MediaStreamVideoTrack_0_1 PPB_MediaStreamVideoTrack;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_ */
+
diff --git a/chromium/ppapi/c/ppb_message_loop.h b/chromium/ppapi/c/ppb_message_loop.h
index 0ddce165c15..26725bcf3ea 100644
--- a/chromium/ppapi/c/ppb_message_loop.h
+++ b/chromium/ppapi/c/ppb_message_loop.h
@@ -76,8 +76,8 @@
* The main thread has an implicitly created message loop. The main thread is
* the thread where PPP_InitializeModule and PPP_Instance functions are called.
* You can retrieve a reference to this message loop by calling
- * GetForMainThread() or, if your code is on the main thread,
- * GetForCurrentThread() will also work.
+ * GetForMainThread() or, if your code is on the main thread, GetCurrent() will
+ * also work.
*
* Some special threads created by the system can not have message loops. In
* particular, the background thread created for audio processing has this
diff --git a/chromium/ppapi/c/ppb_messaging.h b/chromium/ppapi/c/ppb_messaging.h
index 06e31205167..c361d1488bc 100644
--- a/chromium/ppapi/c/ppb_messaging.h
+++ b/chromium/ppapi/c/ppb_messaging.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_messaging.idl modified Wed Jun 5 10:32:59 2013. */
+/* From ppb_messaging.idl modified Fri Jun 13 15:28:26 2014. */
#ifndef PPAPI_C_PPB_MESSAGING_H_
#define PPAPI_C_PPB_MESSAGING_H_
@@ -11,10 +11,13 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_var.h"
+#include "ppapi/c/ppp_message_handler.h"
#define PPB_MESSAGING_INTERFACE_1_0 "PPB_Messaging;1.0"
+#define PPB_MESSAGING_INTERFACE_1_1 "PPB_Messaging;1.1" /* dev */
#define PPB_MESSAGING_INTERFACE PPB_MESSAGING_INTERFACE_1_0
/**
@@ -34,7 +37,7 @@
* and is related to sending messages to JavaScript message event listeners on
* the DOM element associated with specific module instance.
*/
-struct PPB_Messaging_1_0 {
+struct PPB_Messaging_1_1 { /* dev */
/**
* PostMessage() asynchronously invokes any listeners for message events on
* the DOM element for the given module instance. A call to PostMessage()
@@ -96,6 +99,66 @@ struct PPB_Messaging_1_0 {
* The browser will pop-up an alert saying "Hello world!"
*/
void (*PostMessage)(PP_Instance instance, struct PP_Var message);
+ /**
+ * Registers a handler for receiving messages from JavaScript. If a handler
+ * is registered this way, it will replace PPP_Messaging, and all messages
+ * sent from JavaScript via postMessage and postMessageAndAwaitResponse will
+ * be dispatched to <code>handler</code>.
+ *
+ * The function calls will be dispatched via <code>message_loop</code>. This
+ * means that the functions will be invoked on the thread to which
+ * <code>message_loop</code> is attached, when <code>message_loop</code> is
+ * run. It is illegal to pass the main thread message loop;
+ * RegisterMessageHandler will return PP_ERROR_WRONG_THREAD in that case.
+ * If you quit <code>message_loop</code> before calling Unregister(),
+ * the browser will not be able to call functions in the plugin's message
+ * handler any more. That could mean missing some messages or could cause a
+ * leak if you depend on Destroy() to free hander data. So you should,
+ * whenever possible, Unregister() the handler prior to quitting its event
+ * loop.
+ *
+ * Attempting to register a message handler when one is already registered
+ * will cause the current MessageHandler to be unregistered and replaced. In
+ * that case, no messages will be sent to the "default" message handler
+ * (PPP_Messaging). Messages will stop arriving at the prior message handler
+ * and will begin to be dispatched at the new message handler.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data A pointer the plugin may choose to use when handling
+ * calls to functions within PPP_MessageHandler. The browser will pass this
+ * same pointer when invoking functions within PPP_MessageHandler.
+ * @param[in] handler The plugin-provided set of functions for handling
+ * messages.
+ * @param[in] message_loop Represents the message loop on which
+ * PPP_MessageHandler functions should be invoked.
+ * @return PP_OK on success, or an error from pp_errors.h.
+ */
+ int32_t (*RegisterMessageHandler)(
+ PP_Instance instance,
+ void* user_data,
+ const struct PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop);
+ /**
+ * Unregisters the current message handler for <code>instance</code> if one
+ * is registered. After this call, the message handler (if one was
+ * registered) will have "Destroy" called on it and will receive no further
+ * messages after that point. After that point, all messages sent from
+ * JavaScript using postMessage() will be dispatched to PPP_Messaging (if
+ * the plugin supports PPP_MESSAGING_INTERFACE). Attempts to call
+ * postMessageAndAwaitResponse() from JavaScript will fail.
+ *
+ * Attempting to unregister a message handler when none is registered has no
+ * effect.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ */
+ void (*UnregisterMessageHandler)(PP_Instance instance);
+};
+
+struct PPB_Messaging_1_0 {
+ void (*PostMessage)(PP_Instance instance, struct PP_Var message);
};
typedef struct PPB_Messaging_1_0 PPB_Messaging;
diff --git a/chromium/ppapi/c/ppb_opengles2.h b/chromium/ppapi/c/ppb_opengles2.h
index fbfe846823b..7f876e199ff 100644
--- a/chromium/ppapi/c/ppb_opengles2.h
+++ b/chromium/ppapi/c/ppb_opengles2.h
@@ -1,9 +1,11 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
+// It's formatted by clang-format using chromium coding style:
+// clang-format -i -style=chromium filename
// DO NOT EDIT!
// OpenGL ES interface.
@@ -13,23 +15,28 @@
#include "ppapi/c/pp_resource.h"
#ifndef __gl2_h_
-typedef unsigned int GLenum;
typedef void GLvoid;
-typedef long int GLintptr;
typedef int GLsizei;
-typedef long int GLsizeiptr;
+typedef unsigned short GLushort;
+typedef short GLshort;
+typedef unsigned char GLubyte;
+typedef unsigned int GLenum;
typedef int GLint;
typedef unsigned char GLboolean;
-typedef unsigned int GLuint;
typedef unsigned int GLbitfield;
-typedef short GLshort;
typedef float GLfloat;
typedef float GLclampf;
typedef signed char GLbyte;
-typedef unsigned char GLubyte;
+typedef unsigned int GLuint;
typedef int GLfixed;
-typedef unsigned short GLushort;
typedef int GLclampx;
+#ifdef _WIN64
+typedef long long int GLintptr;
+typedef long long int GLsizeiptr;
+#else
+typedef long int GLintptr;
+typedef long int GLsizeiptr;
+#endif // _WIN64
#endif // __gl2_h_
#define PPB_OPENGLES2_INTERFACE_1_0 "PPB_OpenGLES2;1.0"
@@ -38,151 +45,249 @@ typedef int GLclampx;
struct PPB_OpenGLES2 {
void (*ActiveTexture)(PP_Resource context, GLenum texture);
void (*AttachShader)(PP_Resource context, GLuint program, GLuint shader);
- void (*BindAttribLocation)(
- PP_Resource context, GLuint program, GLuint index, const char* name);
+ void (*BindAttribLocation)(PP_Resource context,
+ GLuint program,
+ GLuint index,
+ const char* name);
void (*BindBuffer)(PP_Resource context, GLenum target, GLuint buffer);
- void (*BindFramebuffer)(
- PP_Resource context, GLenum target, GLuint framebuffer);
- void (*BindRenderbuffer)(
- PP_Resource context, GLenum target, GLuint renderbuffer);
+ void (*BindFramebuffer)(PP_Resource context,
+ GLenum target,
+ GLuint framebuffer);
+ void (*BindRenderbuffer)(PP_Resource context,
+ GLenum target,
+ GLuint renderbuffer);
void (*BindTexture)(PP_Resource context, GLenum target, GLuint texture);
- void (*BlendColor)(
- PP_Resource context, GLclampf red, GLclampf green, GLclampf blue,
- GLclampf alpha);
+ void (*BlendColor)(PP_Resource context,
+ GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha);
void (*BlendEquation)(PP_Resource context, GLenum mode);
- void (*BlendEquationSeparate)(
- PP_Resource context, GLenum modeRGB, GLenum modeAlpha);
+ void (*BlendEquationSeparate)(PP_Resource context,
+ GLenum modeRGB,
+ GLenum modeAlpha);
void (*BlendFunc)(PP_Resource context, GLenum sfactor, GLenum dfactor);
- void (*BlendFuncSeparate)(
- PP_Resource context, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
- GLenum dstAlpha);
- void (*BufferData)(
- PP_Resource context, GLenum target, GLsizeiptr size, const void* data,
- GLenum usage);
- void (*BufferSubData)(
- PP_Resource context, GLenum target, GLintptr offset, GLsizeiptr size,
- const void* data);
+ void (*BlendFuncSeparate)(PP_Resource context,
+ GLenum srcRGB,
+ GLenum dstRGB,
+ GLenum srcAlpha,
+ GLenum dstAlpha);
+ void (*BufferData)(PP_Resource context,
+ GLenum target,
+ GLsizeiptr size,
+ const void* data,
+ GLenum usage);
+ void (*BufferSubData)(PP_Resource context,
+ GLenum target,
+ GLintptr offset,
+ GLsizeiptr size,
+ const void* data);
GLenum (*CheckFramebufferStatus)(PP_Resource context, GLenum target);
void (*Clear)(PP_Resource context, GLbitfield mask);
- void (*ClearColor)(
- PP_Resource context, GLclampf red, GLclampf green, GLclampf blue,
- GLclampf alpha);
+ void (*ClearColor)(PP_Resource context,
+ GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha);
void (*ClearDepthf)(PP_Resource context, GLclampf depth);
void (*ClearStencil)(PP_Resource context, GLint s);
- void (*ColorMask)(
- PP_Resource context, GLboolean red, GLboolean green, GLboolean blue,
- GLboolean alpha);
+ void (*ColorMask)(PP_Resource context,
+ GLboolean red,
+ GLboolean green,
+ GLboolean blue,
+ GLboolean alpha);
void (*CompileShader)(PP_Resource context, GLuint shader);
- void (*CompressedTexImage2D)(
- PP_Resource context, GLenum target, GLint level, GLenum internalformat,
- GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
- const void* data);
- void (*CompressedTexSubImage2D)(
- PP_Resource context, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format,
- GLsizei imageSize, const void* data);
- void (*CopyTexImage2D)(
- PP_Resource context, GLenum target, GLint level, GLenum internalformat,
- GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
- void (*CopyTexSubImage2D)(
- PP_Resource context, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+ void (*CompressedTexImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLsizei imageSize,
+ const void* data);
+ void (*CompressedTexSubImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data);
+ void (*CopyTexImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border);
+ void (*CopyTexSubImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height);
GLuint (*CreateProgram)(PP_Resource context);
GLuint (*CreateShader)(PP_Resource context, GLenum type);
void (*CullFace)(PP_Resource context, GLenum mode);
void (*DeleteBuffers)(PP_Resource context, GLsizei n, const GLuint* buffers);
- void (*DeleteFramebuffers)(
- PP_Resource context, GLsizei n, const GLuint* framebuffers);
+ void (*DeleteFramebuffers)(PP_Resource context,
+ GLsizei n,
+ const GLuint* framebuffers);
void (*DeleteProgram)(PP_Resource context, GLuint program);
- void (*DeleteRenderbuffers)(
- PP_Resource context, GLsizei n, const GLuint* renderbuffers);
+ void (*DeleteRenderbuffers)(PP_Resource context,
+ GLsizei n,
+ const GLuint* renderbuffers);
void (*DeleteShader)(PP_Resource context, GLuint shader);
- void (*DeleteTextures)(
- PP_Resource context, GLsizei n, const GLuint* textures);
+ void (*DeleteTextures)(PP_Resource context,
+ GLsizei n,
+ const GLuint* textures);
void (*DepthFunc)(PP_Resource context, GLenum func);
void (*DepthMask)(PP_Resource context, GLboolean flag);
void (*DepthRangef)(PP_Resource context, GLclampf zNear, GLclampf zFar);
void (*DetachShader)(PP_Resource context, GLuint program, GLuint shader);
void (*Disable)(PP_Resource context, GLenum cap);
void (*DisableVertexAttribArray)(PP_Resource context, GLuint index);
- void (*DrawArrays)(
- PP_Resource context, GLenum mode, GLint first, GLsizei count);
- void (*DrawElements)(
- PP_Resource context, GLenum mode, GLsizei count, GLenum type,
- const void* indices);
+ void (*DrawArrays)(PP_Resource context,
+ GLenum mode,
+ GLint first,
+ GLsizei count);
+ void (*DrawElements)(PP_Resource context,
+ GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices);
void (*Enable)(PP_Resource context, GLenum cap);
void (*EnableVertexAttribArray)(PP_Resource context, GLuint index);
void (*Finish)(PP_Resource context);
void (*Flush)(PP_Resource context);
- void (*FramebufferRenderbuffer)(
- PP_Resource context, GLenum target, GLenum attachment,
- GLenum renderbuffertarget, GLuint renderbuffer);
- void (*FramebufferTexture2D)(
- PP_Resource context, GLenum target, GLenum attachment, GLenum textarget,
- GLuint texture, GLint level);
+ void (*FramebufferRenderbuffer)(PP_Resource context,
+ GLenum target,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer);
+ void (*FramebufferTexture2D)(PP_Resource context,
+ GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level);
void (*FrontFace)(PP_Resource context, GLenum mode);
void (*GenBuffers)(PP_Resource context, GLsizei n, GLuint* buffers);
void (*GenerateMipmap)(PP_Resource context, GLenum target);
- void (*GenFramebuffers)(
- PP_Resource context, GLsizei n, GLuint* framebuffers);
- void (*GenRenderbuffers)(
- PP_Resource context, GLsizei n, GLuint* renderbuffers);
+ void (*GenFramebuffers)(PP_Resource context, GLsizei n, GLuint* framebuffers);
+ void (*GenRenderbuffers)(PP_Resource context,
+ GLsizei n,
+ GLuint* renderbuffers);
void (*GenTextures)(PP_Resource context, GLsizei n, GLuint* textures);
- void (*GetActiveAttrib)(
- PP_Resource context, GLuint program, GLuint index, GLsizei bufsize,
- GLsizei* length, GLint* size, GLenum* type, char* name);
- void (*GetActiveUniform)(
- PP_Resource context, GLuint program, GLuint index, GLsizei bufsize,
- GLsizei* length, GLint* size, GLenum* type, char* name);
- void (*GetAttachedShaders)(
- PP_Resource context, GLuint program, GLsizei maxcount, GLsizei* count,
- GLuint* shaders);
- GLint (*GetAttribLocation)(
- PP_Resource context, GLuint program, const char* name);
+ void (*GetActiveAttrib)(PP_Resource context,
+ GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name);
+ void (*GetActiveUniform)(PP_Resource context,
+ GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name);
+ void (*GetAttachedShaders)(PP_Resource context,
+ GLuint program,
+ GLsizei maxcount,
+ GLsizei* count,
+ GLuint* shaders);
+ GLint (*GetAttribLocation)(PP_Resource context,
+ GLuint program,
+ const char* name);
void (*GetBooleanv)(PP_Resource context, GLenum pname, GLboolean* params);
- void (*GetBufferParameteriv)(
- PP_Resource context, GLenum target, GLenum pname, GLint* params);
+ void (*GetBufferParameteriv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLint* params);
GLenum (*GetError)(PP_Resource context);
void (*GetFloatv)(PP_Resource context, GLenum pname, GLfloat* params);
- void (*GetFramebufferAttachmentParameteriv)(
- PP_Resource context, GLenum target, GLenum attachment, GLenum pname,
- GLint* params);
+ void (*GetFramebufferAttachmentParameteriv)(PP_Resource context,
+ GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint* params);
void (*GetIntegerv)(PP_Resource context, GLenum pname, GLint* params);
- void (*GetProgramiv)(
- PP_Resource context, GLuint program, GLenum pname, GLint* params);
- void (*GetProgramInfoLog)(
- PP_Resource context, GLuint program, GLsizei bufsize, GLsizei* length,
- char* infolog);
- void (*GetRenderbufferParameteriv)(
- PP_Resource context, GLenum target, GLenum pname, GLint* params);
- void (*GetShaderiv)(
- PP_Resource context, GLuint shader, GLenum pname, GLint* params);
- void (*GetShaderInfoLog)(
- PP_Resource context, GLuint shader, GLsizei bufsize, GLsizei* length,
- char* infolog);
- void (*GetShaderPrecisionFormat)(
- PP_Resource context, GLenum shadertype, GLenum precisiontype,
- GLint* range, GLint* precision);
- void (*GetShaderSource)(
- PP_Resource context, GLuint shader, GLsizei bufsize, GLsizei* length,
- char* source);
+ void (*GetProgramiv)(PP_Resource context,
+ GLuint program,
+ GLenum pname,
+ GLint* params);
+ void (*GetProgramInfoLog)(PP_Resource context,
+ GLuint program,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog);
+ void (*GetRenderbufferParameteriv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLint* params);
+ void (*GetShaderiv)(PP_Resource context,
+ GLuint shader,
+ GLenum pname,
+ GLint* params);
+ void (*GetShaderInfoLog)(PP_Resource context,
+ GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog);
+ void (*GetShaderPrecisionFormat)(PP_Resource context,
+ GLenum shadertype,
+ GLenum precisiontype,
+ GLint* range,
+ GLint* precision);
+ void (*GetShaderSource)(PP_Resource context,
+ GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* source);
const GLubyte* (*GetString)(PP_Resource context, GLenum name);
- void (*GetTexParameterfv)(
- PP_Resource context, GLenum target, GLenum pname, GLfloat* params);
- void (*GetTexParameteriv)(
- PP_Resource context, GLenum target, GLenum pname, GLint* params);
- void (*GetUniformfv)(
- PP_Resource context, GLuint program, GLint location, GLfloat* params);
- void (*GetUniformiv)(
- PP_Resource context, GLuint program, GLint location, GLint* params);
- GLint (*GetUniformLocation)(
- PP_Resource context, GLuint program, const char* name);
- void (*GetVertexAttribfv)(
- PP_Resource context, GLuint index, GLenum pname, GLfloat* params);
- void (*GetVertexAttribiv)(
- PP_Resource context, GLuint index, GLenum pname, GLint* params);
- void (*GetVertexAttribPointerv)(
- PP_Resource context, GLuint index, GLenum pname, void** pointer);
+ void (*GetTexParameterfv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLfloat* params);
+ void (*GetTexParameteriv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLint* params);
+ void (*GetUniformfv)(PP_Resource context,
+ GLuint program,
+ GLint location,
+ GLfloat* params);
+ void (*GetUniformiv)(PP_Resource context,
+ GLuint program,
+ GLint location,
+ GLint* params);
+ GLint (*GetUniformLocation)(PP_Resource context,
+ GLuint program,
+ const char* name);
+ void (*GetVertexAttribfv)(PP_Resource context,
+ GLuint index,
+ GLenum pname,
+ GLfloat* params);
+ void (*GetVertexAttribiv)(PP_Resource context,
+ GLuint index,
+ GLenum pname,
+ GLint* params);
+ void (*GetVertexAttribPointerv)(PP_Resource context,
+ GLuint index,
+ GLenum pname,
+ void** pointer);
void (*Hint)(PP_Resource context, GLenum target, GLenum mode);
GLboolean (*IsBuffer)(PP_Resource context, GLuint buffer);
GLboolean (*IsEnabled)(PP_Resource context, GLenum cap);
@@ -195,165 +300,293 @@ struct PPB_OpenGLES2 {
void (*LinkProgram)(PP_Resource context, GLuint program);
void (*PixelStorei)(PP_Resource context, GLenum pname, GLint param);
void (*PolygonOffset)(PP_Resource context, GLfloat factor, GLfloat units);
- void (*ReadPixels)(
- PP_Resource context, GLint x, GLint y, GLsizei width, GLsizei height,
- GLenum format, GLenum type, void* pixels);
+ void (*ReadPixels)(PP_Resource context,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ void* pixels);
void (*ReleaseShaderCompiler)(PP_Resource context);
- void (*RenderbufferStorage)(
- PP_Resource context, GLenum target, GLenum internalformat, GLsizei width,
- GLsizei height);
- void (*SampleCoverage)(
- PP_Resource context, GLclampf value, GLboolean invert);
- void (*Scissor)(
- PP_Resource context, GLint x, GLint y, GLsizei width, GLsizei height);
- void (*ShaderBinary)(
- PP_Resource context, GLsizei n, const GLuint* shaders,
- GLenum binaryformat, const void* binary, GLsizei length);
- void (*ShaderSource)(
- PP_Resource context, GLuint shader, GLsizei count, const char** str,
- const GLint* length);
- void (*StencilFunc)(
- PP_Resource context, GLenum func, GLint ref, GLuint mask);
- void (*StencilFuncSeparate)(
- PP_Resource context, GLenum face, GLenum func, GLint ref, GLuint mask);
+ void (*RenderbufferStorage)(PP_Resource context,
+ GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height);
+ void (*SampleCoverage)(PP_Resource context, GLclampf value, GLboolean invert);
+ void (*Scissor)(PP_Resource context,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height);
+ void (*ShaderBinary)(PP_Resource context,
+ GLsizei n,
+ const GLuint* shaders,
+ GLenum binaryformat,
+ const void* binary,
+ GLsizei length);
+ void (*ShaderSource)(PP_Resource context,
+ GLuint shader,
+ GLsizei count,
+ const char** str,
+ const GLint* length);
+ void (*StencilFunc)(PP_Resource context, GLenum func, GLint ref, GLuint mask);
+ void (*StencilFuncSeparate)(PP_Resource context,
+ GLenum face,
+ GLenum func,
+ GLint ref,
+ GLuint mask);
void (*StencilMask)(PP_Resource context, GLuint mask);
void (*StencilMaskSeparate)(PP_Resource context, GLenum face, GLuint mask);
- void (*StencilOp)(
- PP_Resource context, GLenum fail, GLenum zfail, GLenum zpass);
- void (*StencilOpSeparate)(
- PP_Resource context, GLenum face, GLenum fail, GLenum zfail,
- GLenum zpass);
- void (*TexImage2D)(
- PP_Resource context, GLenum target, GLint level, GLint internalformat,
- GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
- const void* pixels);
- void (*TexParameterf)(
- PP_Resource context, GLenum target, GLenum pname, GLfloat param);
- void (*TexParameterfv)(
- PP_Resource context, GLenum target, GLenum pname, const GLfloat* params);
- void (*TexParameteri)(
- PP_Resource context, GLenum target, GLenum pname, GLint param);
- void (*TexParameteriv)(
- PP_Resource context, GLenum target, GLenum pname, const GLint* params);
- void (*TexSubImage2D)(
- PP_Resource context, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
- const void* pixels);
+ void (*StencilOp)(PP_Resource context,
+ GLenum fail,
+ GLenum zfail,
+ GLenum zpass);
+ void (*StencilOpSeparate)(PP_Resource context,
+ GLenum face,
+ GLenum fail,
+ GLenum zfail,
+ GLenum zpass);
+ void (*TexImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels);
+ void (*TexParameterf)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLfloat param);
+ void (*TexParameterfv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ const GLfloat* params);
+ void (*TexParameteri)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLint param);
+ void (*TexParameteriv)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ const GLint* params);
+ void (*TexSubImage2D)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels);
void (*Uniform1f)(PP_Resource context, GLint location, GLfloat x);
- void (*Uniform1fv)(
- PP_Resource context, GLint location, GLsizei count, const GLfloat* v);
+ void (*Uniform1fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v);
void (*Uniform1i)(PP_Resource context, GLint location, GLint x);
- void (*Uniform1iv)(
- PP_Resource context, GLint location, GLsizei count, const GLint* v);
+ void (*Uniform1iv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLint* v);
void (*Uniform2f)(PP_Resource context, GLint location, GLfloat x, GLfloat y);
- void (*Uniform2fv)(
- PP_Resource context, GLint location, GLsizei count, const GLfloat* v);
+ void (*Uniform2fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v);
void (*Uniform2i)(PP_Resource context, GLint location, GLint x, GLint y);
- void (*Uniform2iv)(
- PP_Resource context, GLint location, GLsizei count, const GLint* v);
- void (*Uniform3f)(
- PP_Resource context, GLint location, GLfloat x, GLfloat y, GLfloat z);
- void (*Uniform3fv)(
- PP_Resource context, GLint location, GLsizei count, const GLfloat* v);
- void (*Uniform3i)(
- PP_Resource context, GLint location, GLint x, GLint y, GLint z);
- void (*Uniform3iv)(
- PP_Resource context, GLint location, GLsizei count, const GLint* v);
- void (*Uniform4f)(
- PP_Resource context, GLint location, GLfloat x, GLfloat y, GLfloat z,
- GLfloat w);
- void (*Uniform4fv)(
- PP_Resource context, GLint location, GLsizei count, const GLfloat* v);
- void (*Uniform4i)(
- PP_Resource context, GLint location, GLint x, GLint y, GLint z, GLint w);
- void (*Uniform4iv)(
- PP_Resource context, GLint location, GLsizei count, const GLint* v);
- void (*UniformMatrix2fv)(
- PP_Resource context, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value);
- void (*UniformMatrix3fv)(
- PP_Resource context, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value);
- void (*UniformMatrix4fv)(
- PP_Resource context, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value);
+ void (*Uniform2iv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLint* v);
+ void (*Uniform3f)(PP_Resource context,
+ GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z);
+ void (*Uniform3fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v);
+ void (*Uniform3i)(PP_Resource context,
+ GLint location,
+ GLint x,
+ GLint y,
+ GLint z);
+ void (*Uniform3iv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLint* v);
+ void (*Uniform4f)(PP_Resource context,
+ GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w);
+ void (*Uniform4fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v);
+ void (*Uniform4i)(PP_Resource context,
+ GLint location,
+ GLint x,
+ GLint y,
+ GLint z,
+ GLint w);
+ void (*Uniform4iv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ const GLint* v);
+ void (*UniformMatrix2fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value);
+ void (*UniformMatrix3fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value);
+ void (*UniformMatrix4fv)(PP_Resource context,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value);
void (*UseProgram)(PP_Resource context, GLuint program);
void (*ValidateProgram)(PP_Resource context, GLuint program);
void (*VertexAttrib1f)(PP_Resource context, GLuint indx, GLfloat x);
- void (*VertexAttrib1fv)(
- PP_Resource context, GLuint indx, const GLfloat* values);
- void (*VertexAttrib2f)(
- PP_Resource context, GLuint indx, GLfloat x, GLfloat y);
- void (*VertexAttrib2fv)(
- PP_Resource context, GLuint indx, const GLfloat* values);
- void (*VertexAttrib3f)(
- PP_Resource context, GLuint indx, GLfloat x, GLfloat y, GLfloat z);
- void (*VertexAttrib3fv)(
- PP_Resource context, GLuint indx, const GLfloat* values);
- void (*VertexAttrib4f)(
- PP_Resource context, GLuint indx, GLfloat x, GLfloat y, GLfloat z,
- GLfloat w);
- void (*VertexAttrib4fv)(
- PP_Resource context, GLuint indx, const GLfloat* values);
- void (*VertexAttribPointer)(
- PP_Resource context, GLuint indx, GLint size, GLenum type,
- GLboolean normalized, GLsizei stride, const void* ptr);
- void (*Viewport)(
- PP_Resource context, GLint x, GLint y, GLsizei width, GLsizei height);
+ void (*VertexAttrib1fv)(PP_Resource context,
+ GLuint indx,
+ const GLfloat* values);
+ void (*VertexAttrib2f)(PP_Resource context,
+ GLuint indx,
+ GLfloat x,
+ GLfloat y);
+ void (*VertexAttrib2fv)(PP_Resource context,
+ GLuint indx,
+ const GLfloat* values);
+ void (*VertexAttrib3f)(PP_Resource context,
+ GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z);
+ void (*VertexAttrib3fv)(PP_Resource context,
+ GLuint indx,
+ const GLfloat* values);
+ void (*VertexAttrib4f)(PP_Resource context,
+ GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w);
+ void (*VertexAttrib4fv)(PP_Resource context,
+ GLuint indx,
+ const GLfloat* values);
+ void (*VertexAttribPointer)(PP_Resource context,
+ GLuint indx,
+ GLint size,
+ GLenum type,
+ GLboolean normalized,
+ GLsizei stride,
+ const void* ptr);
+ void (*Viewport)(PP_Resource context,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height);
};
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 "PPB_OpenGLES2InstancedArrays;1.0" // NOLINT
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 // NOLINT
+#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 \
+ "PPB_OpenGLES2InstancedArrays;1.0"
+#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE \
+ PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0
struct PPB_OpenGLES2InstancedArrays {
- void (*DrawArraysInstancedANGLE)(
- PP_Resource context, GLenum mode, GLint first, GLsizei count,
- GLsizei primcount);
- void (*DrawElementsInstancedANGLE)(
- PP_Resource context, GLenum mode, GLsizei count, GLenum type,
- const void* indices, GLsizei primcount);
- void (*VertexAttribDivisorANGLE)(
- PP_Resource context, GLuint index, GLuint divisor);
+ void (*DrawArraysInstancedANGLE)(PP_Resource context,
+ GLenum mode,
+ GLint first,
+ GLsizei count,
+ GLsizei primcount);
+ void (*DrawElementsInstancedANGLE)(PP_Resource context,
+ GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount);
+ void (*VertexAttribDivisorANGLE)(PP_Resource context,
+ GLuint index,
+ GLuint divisor);
};
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 "PPB_OpenGLES2FramebufferBlit;1.0" // NOLINT
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 // NOLINT
+#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 \
+ "PPB_OpenGLES2FramebufferBlit;1.0"
+#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE \
+ PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0
struct PPB_OpenGLES2FramebufferBlit {
- void (*BlitFramebufferEXT)(
- PP_Resource context, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
- GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
- GLenum filter);
+ void (*BlitFramebufferEXT)(PP_Resource context,
+ GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter);
};
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 "PPB_OpenGLES2FramebufferMultisample;1.0" // NOLINT
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 // NOLINT
+#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 \
+ "PPB_OpenGLES2FramebufferMultisample;1.0"
+#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE \
+ PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0
struct PPB_OpenGLES2FramebufferMultisample {
- void (*RenderbufferStorageMultisampleEXT)(
- PP_Resource context, GLenum target, GLsizei samples,
- GLenum internalformat, GLsizei width, GLsizei height);
+ void (*RenderbufferStorageMultisampleEXT)(PP_Resource context,
+ GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height);
};
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 "PPB_OpenGLES2ChromiumEnableFeature;1.0" // NOLINT
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 // NOLINT
+#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 \
+ "PPB_OpenGLES2ChromiumEnableFeature;1.0"
+#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE \
+ PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0
struct PPB_OpenGLES2ChromiumEnableFeature {
GLboolean (*EnableFeatureCHROMIUM)(PP_Resource context, const char* feature);
};
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 "PPB_OpenGLES2ChromiumMapSub;1.0" // NOLINT
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 // NOLINT
+#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 \
+ "PPB_OpenGLES2ChromiumMapSub;1.0"
+#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE \
+ PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0
struct PPB_OpenGLES2ChromiumMapSub {
- void* (*MapBufferSubDataCHROMIUM)(
- PP_Resource context, GLuint target, GLintptr offset, GLsizeiptr size,
- GLenum access);
+ void* (*MapBufferSubDataCHROMIUM)(PP_Resource context,
+ GLuint target,
+ GLintptr offset,
+ GLsizeiptr size,
+ GLenum access);
void (*UnmapBufferSubDataCHROMIUM)(PP_Resource context, const void* mem);
- void* (*MapTexSubImage2DCHROMIUM)(
- PP_Resource context, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
- GLenum access);
+ void* (*MapTexSubImage2DCHROMIUM)(PP_Resource context,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLenum access);
void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
};
@@ -362,16 +595,20 @@ struct PPB_OpenGLES2ChromiumMapSub {
struct PPB_OpenGLES2Query {
void (*GenQueriesEXT)(PP_Resource context, GLsizei n, GLuint* queries);
- void (*DeleteQueriesEXT)(
- PP_Resource context, GLsizei n, const GLuint* queries);
+ void (*DeleteQueriesEXT)(PP_Resource context,
+ GLsizei n,
+ const GLuint* queries);
GLboolean (*IsQueryEXT)(PP_Resource context, GLuint id);
void (*BeginQueryEXT)(PP_Resource context, GLenum target, GLuint id);
void (*EndQueryEXT)(PP_Resource context, GLenum target);
- void (*GetQueryivEXT)(
- PP_Resource context, GLenum target, GLenum pname, GLint* params);
- void (*GetQueryObjectuivEXT)(
- PP_Resource context, GLuint id, GLenum pname, GLuint* params);
+ void (*GetQueryivEXT)(PP_Resource context,
+ GLenum target,
+ GLenum pname,
+ GLint* params);
+ void (*GetQueryObjectuivEXT)(PP_Resource context,
+ GLuint id,
+ GLenum pname,
+ GLuint* params);
};
#endif // PPAPI_C_PPB_OPENGLES2_H_
-
diff --git a/chromium/ppapi/c/ppb_var.h b/chromium/ppapi/c/ppb_var.h
index 523622dbd77..b4a361a8b28 100644
--- a/chromium/ppapi/c/ppb_var.h
+++ b/chromium/ppapi/c/ppb_var.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_var.idl modified Wed Dec 14 18:08:00 2011. */
+/* From ppb_var.idl modified Thu Apr 10 14:54:41 2014. */
#ifndef PPAPI_C_PPB_VAR_H_
#define PPAPI_C_PPB_VAR_H_
@@ -11,12 +11,14 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_module.h"
+#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_var.h"
#define PPB_VAR_INTERFACE_1_0 "PPB_Var;1.0"
#define PPB_VAR_INTERFACE_1_1 "PPB_Var;1.1"
-#define PPB_VAR_INTERFACE PPB_VAR_INTERFACE_1_1
+#define PPB_VAR_INTERFACE_1_2 "PPB_Var;1.2"
+#define PPB_VAR_INTERFACE PPB_VAR_INTERFACE_1_2
/**
* @file
@@ -31,7 +33,7 @@
/**
* PPB_Var API
*/
-struct PPB_Var_1_1 {
+struct PPB_Var_1_2 {
/**
* AddRef() adds a reference to the given var. If this is not a refcounted
* object, this function will do nothing so you can always call it no matter
@@ -42,9 +44,13 @@ struct PPB_Var_1_1 {
void (*AddRef)(struct PP_Var var);
/**
* Release() removes a reference to given var, deleting it if the internal
- * reference count becomes 0. If the given var is not a refcounted object,
- * this function will do nothing so you can always call it no matter what
- * the type.
+ * reference count becomes 0. If the <code>PP_Var</code> is of type
+ * <code>PP_VARTYPE_RESOURCE</code>,
+ * it will implicitly release a reference count on the
+ * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
+ *
+ * If the given var is not a refcounted object, this function will do nothing
+ * so you can always call it no matter what the type.
*
* @param[in] var A <code>PP_Var</code> that will have a reference removed.
*/
@@ -57,8 +63,8 @@ struct PPB_Var_1_1 {
*
* If the length is 0, the <code>*data</code> pointer will not be dereferenced
* and may be <code>NULL</code>. Note, however if length is 0, the
- * "NULL-ness" will not be preserved, as <code>VarToUtf8</code> will never
- * return <code>NULL</code> on success, even for empty strings.
+ * "NULL-ness" will not be preserved, as VarToUtf8() will never return
+ * <code>NULL</code> on success, even for empty strings.
*
* The resulting object will be a refcounted string object. It will be
* AddRef'ed for the caller. When the caller is done with it, it should be
@@ -93,9 +99,31 @@ struct PPB_Var_1_1 {
* @return A char* encoded in UTF-8.
*/
const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
+ /**
+ * Converts a resource-type var to a <code>PP_Resource</code>.
+ *
+ * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
+ *
+ * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
+ * is not a resource. The reference count of the resource is incremented on
+ * behalf of the caller.
+ */
+ PP_Resource (*VarToResource)(struct PP_Var var);
+ /**
+ * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
+ * reference count on the <code>PP_Resource</code> (equivalent to
+ * PPB_Core::AddRefResource(resource)).
+ *
+ * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
+ *
+ * @return A <code>PP_Var</code> created for this resource, with type
+ * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
+ * 1 on behalf of the caller.
+ */
+ struct PP_Var (*VarFromResource)(PP_Resource resource);
};
-typedef struct PPB_Var_1_1 PPB_Var;
+typedef struct PPB_Var_1_2 PPB_Var;
struct PPB_Var_1_0 {
void (*AddRef)(struct PP_Var var);
@@ -105,6 +133,13 @@ struct PPB_Var_1_0 {
uint32_t len);
const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
};
+
+struct PPB_Var_1_1 {
+ void (*AddRef)(struct PP_Var var);
+ void (*Release)(struct PP_Var var);
+ struct PP_Var (*VarFromUtf8)(const char* data, uint32_t len);
+ const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
+};
/**
* @}
*/
diff --git a/chromium/ppapi/c/ppb_video_decoder.h b/chromium/ppapi/c/ppb_video_decoder.h
new file mode 100644
index 00000000000..edab7bcafdc
--- /dev/null
+++ b/chromium/ppapi/c/ppb_video_decoder.h
@@ -0,0 +1,222 @@
+/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_video_decoder.idl modified Fri Jul 11 18:06:37 2014. */
+
+#ifndef PPAPI_C_PPB_VIDEO_DECODER_H_
+#define PPAPI_C_PPB_VIDEO_DECODER_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_codecs.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_VIDEODECODER_INTERFACE_0_1 "PPB_VideoDecoder;0.1" /* dev */
+/**
+ * @file
+ * This file defines the <code>PPB_VideoDecoder</code> interface.
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * Video decoder interface.
+ *
+ * Typical usage:
+ * - Call Create() to create a new video decoder resource.
+ * - Call Initialize() to initialize it with a 3d graphics context and the
+ * desired codec profile.
+ * - Call Decode() continuously (waiting for each previous call to complete) to
+ * push bitstream buffers to the decoder.
+ * - Call GetPicture() continuously (waiting for each previous call to complete)
+ * to pull decoded pictures from the decoder.
+ * - Call Flush() to signal end of stream to the decoder and perform shutdown
+ * when it completes.
+ * - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
+ * for the callback before restarting decoding at another point.
+ * - To destroy the decoder, the plugin should release all of its references to
+ * it. Any pending callbacks will abort before the decoder is destroyed.
+ *
+ * Available video codecs vary by platform.
+ * All: theora, vorbis, vp8.
+ * Chrome and ChromeOS: aac, h264.
+ * ChromeOS: mpeg4.
+ */
+struct PPB_VideoDecoder_0_1 { /* dev */
+ /**
+ * Creates a new video decoder resource.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying the instance
+ * with the video decoder.
+ *
+ * @return A <code>PP_Resource</code> corresponding to a video decoder if
+ * successful or 0 otherwise.
+ */
+ PP_Resource (*Create)(PP_Instance instance);
+ /**
+ * Determines if the given resource is a video decoder.
+ *
+ * @param[in] resource A <code>PP_Resource</code> identifying a resource.
+ *
+ * @return <code>PP_TRUE</code> if the resource is a
+ * <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is
+ * invalid or some other type.
+ */
+ PP_Bool (*IsVideoDecoder)(PP_Resource resource);
+ /**
+ * Initializes a video decoder resource. This should be called after Create()
+ * and before any other functions.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
+ * during decoding.
+ * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
+ * codec profile.
+ * @param[in] allow_software_fallback A <code>PP_Bool</code> specifying
+ * whether the decoder can fall back to software decoding if a suitable
+ * hardware decoder isn't available.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
+ * requested profile is not supported. In this case, the client may call
+ * Initialize() again with different parameters to find a good configuration.
+ */
+ int32_t (*Initialize)(PP_Resource video_decoder,
+ PP_Resource graphics3d_context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ struct PP_CompletionCallback callback);
+ /**
+ * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
+ * |buffer|. The plugin should wait until the decoder signals completion by
+ * returning PP_OK or by running |callback| before calling Decode() again.
+ *
+ * In general, each bitstream buffer should contain a demuxed bitstream frame
+ * for the selected video codec. For example, H264 decoders expect to receive
+ * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
+ * decoders expect to receive a bitstream frame without the IVF frame header.
+ *
+ * If the call to Decode() eventually results in a picture, the |decode_id|
+ * parameter is copied into the returned picture. The plugin can use this to
+ * associate decoded pictures with Decode() calls (e.g. to assign timestamps
+ * or frame numbers to pictures.) This value is opaque to the API so the
+ * plugin is free to pass any value.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] decode_id An optional value, chosen by the plugin, that can be
+ * used to associate calls to Decode() with decoded pictures returned by
+ * GetPicture().
+ * @param[in] size Buffer size in bytes.
+ * @param[in] buffer Starting address of buffer.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
+ * or Reset() call is pending.
+ * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
+ * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
+ * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
+ */
+ int32_t (*Decode)(PP_Resource video_decoder,
+ uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ struct PP_CompletionCallback callback);
+ /**
+ * Gets the next picture from the decoder. The picture is valid after the
+ * decoder signals completion by returning PP_OK or running |callback|. The
+ * plugin can call GetPicture() again after the decoder signals completion.
+ * When the plugin is finished using the picture, it should return it to the
+ * system by calling RecyclePicture().
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[out] picture A <code>PP_VideoPicture</code> to hold the decoded
+ * picture.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
+ * call is pending.
+ * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
+ * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
+ * completes while GetPicture() is pending.
+ */
+ int32_t (*GetPicture)(PP_Resource video_decoder,
+ struct PP_VideoPicture* picture,
+ struct PP_CompletionCallback callback);
+ /**
+ * Recycles a picture that the plugin has received from the decoder.
+ * The plugin should call this as soon as it has finished using the texture so
+ * the decoder can decode more pictures.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] picture A <code>PP_VideoPicture</code> to return to
+ * the decoder.
+ */
+ void (*RecyclePicture)(PP_Resource video_decoder,
+ const struct PP_VideoPicture* picture);
+ /**
+ * Flushes the decoder. The plugin should call Flush() when it reaches the
+ * end of its video stream in order to stop cleanly. The decoder will run any
+ * pending Decode() call to completion. The plugin should make no further
+ * calls to the decoder other than GetPicture() and RecyclePicture() until
+ * the decoder signals completion by running |callback|. Just before
+ * completion, any pending GetPicture() call will complete by running its
+ * callback with result PP_ERROR_ABORTED to signal that no more pictures are
+ * available. Any pictures held by the plugin remain valid during and after
+ * the flush and should be recycled back to the decoder.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized.
+ */
+ int32_t (*Flush)(PP_Resource video_decoder,
+ struct PP_CompletionCallback callback);
+ /**
+ * Resets the decoder as quickly as possible. The plugin can call Reset() to
+ * skip to another position in the video stream. After Reset() returns, any
+ * pending calls to Decode() and GetPicture()) abort, causing their callbacks
+ * to run with PP_ERROR_ABORTED. The plugin should not make further calls to
+ * the decoder other than RecyclePicture() until the decoder signals
+ * completion by running |callback|. Any pictures held by the plugin remain
+ * valid during and after the reset and should be recycled back to the
+ * decoder.
+ *
+ * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ * decoder.
+ * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
+ * completion.
+ *
+ * @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ * Returns PP_ERROR_FAILED if the decoder isn't initialized.
+ */
+ int32_t (*Reset)(PP_Resource video_decoder,
+ struct PP_CompletionCallback callback);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_VIDEO_DECODER_H_ */
+
diff --git a/chromium/ppapi/c/ppb_video_frame.h b/chromium/ppapi/c/ppb_video_frame.h
new file mode 100644
index 00000000000..3efe3924927
--- /dev/null
+++ b/chromium/ppapi/c/ppb_video_frame.h
@@ -0,0 +1,139 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppb_video_frame.idl modified Tue Mar 25 18:28:57 2014. */
+
+#ifndef PPAPI_C_PPB_VIDEO_FRAME_H_
+#define PPAPI_C_PPB_VIDEO_FRAME_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_time.h"
+
+#define PPB_VIDEOFRAME_INTERFACE_0_1 "PPB_VideoFrame;0.1"
+#define PPB_VIDEOFRAME_INTERFACE PPB_VIDEOFRAME_INTERFACE_0_1
+
+/**
+ * @file
+ * Defines the <code>PPB_VideoFrame</code> interface.
+ */
+
+
+/**
+ * @addtogroup Enums
+ * @{
+ */
+typedef enum {
+ /**
+ * Unknown format value.
+ */
+ PP_VIDEOFRAME_FORMAT_UNKNOWN = 0,
+ /**
+ * 12bpp YVU planar 1x1 Y, 2x2 VU samples.
+ */
+ PP_VIDEOFRAME_FORMAT_YV12 = 1,
+ /**
+ * 12bpp YUV planar 1x1 Y, 2x2 UV samples.
+ */
+ PP_VIDEOFRAME_FORMAT_I420 = 2,
+ /**
+ * 32bpp BGRA.
+ */
+ PP_VIDEOFRAME_FORMAT_BGRA = 3,
+ /**
+ * The last format.
+ */
+ PP_VIDEOFRAME_FORMAT_LAST = PP_VIDEOFRAME_FORMAT_BGRA
+} PP_VideoFrame_Format;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPB_VideoFrame_0_1 {
+ /**
+ * Determines if a resource is a VideoFrame resource.
+ *
+ * @param[in] resource The <code>PP_Resource</code> to test.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
+ * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise.
+ */
+ PP_Bool (*IsVideoFrame)(PP_Resource resource);
+ /**
+ * Gets the timestamp of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A <code>PP_TimeDelta</code> containing the timestamp of the video
+ * frame. Given in seconds since the start of the containing video stream.
+ */
+ PP_TimeDelta (*GetTimestamp)(PP_Resource frame);
+ /**
+ * Sets the timestamp of the video frame. Given in seconds since the
+ * start of the containing video stream.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ * of the video frame. Given in seconds since the start of the containing
+ * video stream.
+ */
+ void (*SetTimestamp)(PP_Resource frame, PP_TimeDelta timestamp);
+ /**
+ * Gets the format of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A <code>PP_VideoFrame_Format</code> containing the format of the
+ * video frame.
+ */
+ PP_VideoFrame_Format (*GetFormat)(PP_Resource frame);
+ /**
+ * Gets the size of the video frame.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ * @param[out] size A <code>PP_Size</code>.
+ *
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
+ * <code>PP_FALSE</code> on failure.
+ */
+ PP_Bool (*GetSize)(PP_Resource frame, struct PP_Size* size);
+ /**
+ * Gets the data buffer for video frame pixels.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return A pointer to the beginning of the data buffer.
+ */
+ void* (*GetDataBuffer)(PP_Resource frame);
+ /**
+ * Gets the size of data buffer.
+ *
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
+ * resource.
+ *
+ * @return The size of the data buffer.
+ */
+ uint32_t (*GetDataBufferSize)(PP_Resource frame);
+};
+
+typedef struct PPB_VideoFrame_0_1 PPB_VideoFrame;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPB_VIDEO_FRAME_H_ */
+
diff --git a/chromium/ppapi/c/ppb_view.h b/chromium/ppapi/c/ppb_view.h
index 8b82c78a3b8..ee3c73683a3 100644
--- a/chromium/ppapi/c/ppb_view.h
+++ b/chromium/ppapi/c/ppb_view.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppb_view.idl modified Fri Mar 29 11:55:32 2013. */
+/* From ppb_view.idl modified Tue Jun 17 10:27:32 2014. */
#ifndef PPAPI_C_PPB_VIEW_H_
#define PPAPI_C_PPB_VIEW_H_
@@ -18,6 +18,7 @@
#define PPB_VIEW_INTERFACE_1_0 "PPB_View;1.0"
#define PPB_VIEW_INTERFACE_1_1 "PPB_View;1.1"
+#define PPB_VIEW_INTERFACE_1_2 "PPB_View;1.2" /* dev */
#define PPB_VIEW_INTERFACE PPB_VIEW_INTERFACE_1_1
/**
@@ -36,7 +37,7 @@
* You will receive new view information using
* <code>PPP_Instance.DidChangeView</code>.
*/
-struct PPB_View_1_1 {
+struct PPB_View_1_2 { /* dev */
/**
* IsView() determines if the given resource is a valid
* <code>PPB_View</code> resource. Note that <code>PPB_ViewChanged</code>
@@ -197,10 +198,22 @@ struct PPB_View_1_1 {
* DIPs per CSS pixel. If the resource is invalid, the value will be 0.0.
*/
float (*GetCSSScale)(PP_Resource resource);
+ /**
+ * GetScrollOffset returns the scroll offset of the window containing the
+ * plugin.
+ *
+ * @param[in] resource A <code>PP_Resource</code> corresponding to a
+ * <code>PPB_View</code> resource.
+ *
+ * @param[out] offset A <code>PP_Point</code> which will be set to the value
+ * of the scroll offset in CSS pixels.
+ *
+ * @return Returns <code>PP_TRUE</code> if the resource was valid and the
+ * offset was filled in, <code>PP_FALSE</code> if not.
+ */
+ PP_Bool (*GetScrollOffset)(PP_Resource resource, struct PP_Point* offset);
};
-typedef struct PPB_View_1_1 PPB_View;
-
struct PPB_View_1_0 {
PP_Bool (*IsView)(PP_Resource resource);
PP_Bool (*GetRect)(PP_Resource resource, struct PP_Rect* rect);
@@ -209,6 +222,19 @@ struct PPB_View_1_0 {
PP_Bool (*IsPageVisible)(PP_Resource resource);
PP_Bool (*GetClipRect)(PP_Resource resource, struct PP_Rect* clip);
};
+
+struct PPB_View_1_1 {
+ PP_Bool (*IsView)(PP_Resource resource);
+ PP_Bool (*GetRect)(PP_Resource resource, struct PP_Rect* rect);
+ PP_Bool (*IsFullscreen)(PP_Resource resource);
+ PP_Bool (*IsVisible)(PP_Resource resource);
+ PP_Bool (*IsPageVisible)(PP_Resource resource);
+ PP_Bool (*GetClipRect)(PP_Resource resource, struct PP_Rect* clip);
+ float (*GetDeviceScale)(PP_Resource resource);
+ float (*GetCSSScale)(PP_Resource resource);
+};
+
+typedef struct PPB_View_1_1 PPB_View;
/**
* @}
*/
diff --git a/chromium/ppapi/c/ppp_input_event.h b/chromium/ppapi/c/ppp_input_event.h
index 76c32b28719..4f3e017d935 100644
--- a/chromium/ppapi/c/ppp_input_event.h
+++ b/chromium/ppapi/c/ppp_input_event.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From ppp_input_event.idl modified Mon Dec 19 19:44:12 2011. */
+/* From ppp_input_event.idl modified Tue Apr 8 15:19:45 2014. */
#ifndef PPAPI_C_PPP_INPUT_EVENT_H_
#define PPAPI_C_PPP_INPUT_EVENT_H_
@@ -35,10 +35,10 @@ struct PPP_InputEvent_0_1 {
* PPB_InputEvent.RequestInputEvents() or RequestFilteringInputEvents(). By
* default, no events are delivered.
*
- * If the event was handled, it will not be forwarded to the web page or
- * browser. If it was not handled, it will bubble according to the normal
- * rules. So it is important that an instance respond accurately with whether
- * event propagation should continue.
+ * If the event was handled, it will not be forwarded to the default handlers
+ * in the web page. If it was not handled, it may be dispatched to a default
+ * handler. So it is important that an instance respond accurately with
+ * whether event propagation should continue.
*
* Event propagation also controls focus. If you handle an event like a mouse
* event, typically the instance will be given focus. Returning false from
diff --git a/chromium/ppapi/c/ppp_message_handler.h b/chromium/ppapi/c/ppp_message_handler.h
new file mode 100644
index 00000000000..8032378a92b
--- /dev/null
+++ b/chromium/ppapi/c/ppp_message_handler.h
@@ -0,0 +1,87 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From ppp_message_handler.idl modified Tue Jun 3 16:50:26 2014. */
+
+#ifndef PPAPI_C_PPP_MESSAGE_HANDLER_H_
+#define PPAPI_C_PPP_MESSAGE_HANDLER_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/c/pp_var.h"
+
+/**
+ * @file
+ * This file defines the <code>PPP_MessageHandler</code> interface that plugins
+ * can implement and register using PPB_Messaging::RegisterMessageHandler in
+ * order to handle messages sent from JavaScript via postMessage() or
+ * postMessageAndAwaitResponse().
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * The <code>PPP_MessageHandler</code> interface is implemented by the plugin
+ * if the plugin wants to receive messages from a thread other than the main
+ * Pepper thread, or if the plugin wants to handle blocking messages which
+ * JavaScript may send via postMessageAndAwaitResponse().
+ *
+ * This interface struct should not be returned by PPP_GetInterface; instead it
+ * must be passed as a parameter to PPB_Messaging::RegisterMessageHandler.
+ */
+struct PPP_MessageHandler_0_1 {
+ /**
+ * Invoked as a result of JavaScript invoking postMessage() on the plugin's
+ * DOM element.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ * @param[in] message A copy of the parameter that JavaScript provided to
+ * postMessage().
+ */
+ void (*HandleMessage)(PP_Instance instance,
+ void* user_data,
+ struct PP_Var message);
+ /**
+ * Invoked as a result of JavaScript invoking postMessageAndAwaitResponse()
+ * on the plugin's DOM element.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ * @param[in] message is a copy of the parameter that JavaScript provided
+ * to postMessageAndAwaitResponse.
+ * @return will be copied to a JavaScript object which is returned as
+ * the result of postMessageAndAwaitResponse to the invoking JavaScript.
+ */
+ struct PP_Var (*HandleBlockingMessage)(PP_Instance instance,
+ void* user_data,
+ struct PP_Var message);
+ /**
+ * Invoked when the handler object is no longer needed. After this, no more
+ * calls will be made which pass this same value for <code>instance</code>
+ * and <code>user_data</code>.
+ *
+ * @param[in] instance A <code>PP_Instance</code> identifying one instance
+ * of a module.
+ * @param[in] user_data is the same pointer which was provided by a call to
+ * RegisterMessageHandler.
+ */
+ void (*Destroy)(PP_Instance instance, void* user_data);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PPP_MESSAGE_HANDLER_H_ */
+
diff --git a/chromium/ppapi/c/private/pp_content_decryptor.h b/chromium/ppapi/c/private/pp_content_decryptor.h
index a282abbf3a5..971d2a0b619 100644
--- a/chromium/ppapi/c/private/pp_content_decryptor.h
+++ b/chromium/ppapi/c/private/pp_content_decryptor.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From private/pp_content_decryptor.idl modified Mon Oct 21 18:38:44 2013. */
+/* From private/pp_content_decryptor.idl modified Thu Jun 5 13:39:15 2014. */
#ifndef PPAPI_C_PRIVATE_PP_CONTENT_DECRYPTOR_H_
#define PPAPI_C_PRIVATE_PP_CONTENT_DECRYPTOR_H_
@@ -103,10 +103,6 @@ struct PP_EncryptedBlockInfo {
*/
uint32_t data_size;
/**
- * Size in bytes of data to be discarded before applying the decryption.
- */
- uint32_t data_offset;
- /**
* Key ID of the block to be decrypted.
*
* TODO(xhwang): For WebM the key ID can be as large as 2048 bytes in theory.
@@ -127,13 +123,8 @@ struct PP_EncryptedBlockInfo {
*/
struct PP_DecryptSubsampleDescription subsamples[16];
uint32_t num_subsamples;
- /**
- * 4-byte padding to make the size of <code>PP_EncryptedBlockInfo</code>
- * a multiple of 8 bytes. The value of this field should not be used.
- */
- uint32_t padding;
};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_EncryptedBlockInfo, 248);
+PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_EncryptedBlockInfo, 240);
/**
* @}
*/
@@ -375,7 +366,8 @@ PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_AudioDecoderConfig, 20);
typedef enum {
PP_VIDEOCODEC_UNKNOWN = 0,
PP_VIDEOCODEC_VP8 = 1,
- PP_VIDEOCODEC_H264 = 2
+ PP_VIDEOCODEC_H264 = 2,
+ PP_VIDEOCODEC_VP9 = 3
} PP_VideoCodec;
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoCodec, 4);
@@ -386,7 +378,7 @@ PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoCodec, 4);
*/
typedef enum {
PP_VIDEOCODECPROFILE_UNKNOWN = 0,
- PP_VIDEOCODECPROFILE_VP8_MAIN = 1,
+ PP_VIDEOCODECPROFILE_NOT_NEEDED = 1,
PP_VIDEOCODECPROFILE_H264_BASELINE = 2,
PP_VIDEOCODECPROFILE_H264_MAIN = 3,
PP_VIDEOCODECPROFILE_H264_EXTENDED = 4,
@@ -457,6 +449,29 @@ typedef enum {
PP_DECRYPTORSTREAMTYPE_VIDEO = 1
} PP_DecryptorStreamType;
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_DecryptorStreamType, 4);
+
+/**
+ * <code>PP_SessionType</code> contains session type constants.
+ */
+typedef enum {
+ PP_SESSIONTYPE_TEMPORARY = 0,
+ PP_SESSIONTYPE_PERSISTENT = 1
+} PP_SessionType;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_SessionType, 4);
+
+/**
+ * <code>PP_CdmExceptionCode</code> contains exception code constants.
+ */
+typedef enum {
+ PP_CDMEXCEPTIONCODE_NOTSUPPORTEDERROR = 1,
+ PP_CDMEXCEPTIONCODE_INVALIDSTATEERROR = 2,
+ PP_CDMEXCEPTIONCODE_INVALIDACCESSERROR = 3,
+ PP_CDMEXCEPTIONCODE_QUOTAEXCEEDEDERROR = 4,
+ PP_CDMEXCEPTIONCODE_UNKNOWNERROR = 5,
+ PP_CDMEXCEPTIONCODE_CLIENTERROR = 6,
+ PP_CDMEXCEPTIONCODE_OUTPUTERROR = 7
+} PP_CdmExceptionCode;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_CdmExceptionCode, 4);
/**
* @}
*/
diff --git a/chromium/ppapi/c/private/ppb_content_decryptor_private.h b/chromium/ppapi/c/private/ppb_content_decryptor_private.h
index 58492a00a4c..c65c9f8a943 100644
--- a/chromium/ppapi/c/private/ppb_content_decryptor_private.h
+++ b/chromium/ppapi/c/private/ppb_content_decryptor_private.h
@@ -4,7 +4,7 @@
*/
/* From private/ppb_content_decryptor_private.idl,
- * modified Fri Dec 6 12:16:22 2013.
+ * modified Thu Jun 5 13:39:15 2014.
*/
#ifndef PPAPI_C_PRIVATE_PPB_CONTENT_DECRYPTOR_PRIVATE_H_
@@ -18,10 +18,10 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/c/private/pp_content_decryptor.h"
-#define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9 \
- "PPB_ContentDecryptor_Private;0.9"
+#define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 \
+ "PPB_ContentDecryptor_Private;0.12"
#define PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE \
- PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9
+ PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12
/**
* @file
@@ -42,21 +42,42 @@
* browser side support for the Content Decryption Module (CDM) for Encrypted
* Media Extensions: http://www.w3.org/TR/encrypted-media/
*/
-struct PPB_ContentDecryptor_Private_0_9 {
+struct PPB_ContentDecryptor_Private_0_12 {
/**
- * A session has been created by the CDM.
+ * A promise has been resolved by the CDM.
*
- * @param[in] session_id Identifies the session for which the CDM
- * created a session.
+ * @param[in] promise_id Identifies the promise that the CDM resolved.
+ */
+ void (*PromiseResolved)(PP_Instance instance, uint32_t promise_id);
+ /**
+ * A promise has been resolved by the CDM.
+ *
+ * @param[in] promise_id Identifies the promise that the CDM resolved.
*
* @param[in] web_session_id A <code>PP_Var</code> of type
- * <code>PP_VARTYPE_STRING</code> containing the string for the
- * MediaKeySession's sessionId attribute.
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute.
+ */
+ void (*PromiseResolvedWithSession)(PP_Instance instance,
+ uint32_t promise_id,
+ struct PP_Var web_session_id);
+ /**
+ * A promise has been rejected by the CDM due to an error.
+ *
+ * @param[in] promise_id Identifies the promise that the CDM rejected.
+ *
+ * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing
+ * the exception code.
*
+ * @param[in] system_code A system error code.
+ *
+ * @param[in] error_description A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the error description.
*/
- void (*SessionCreated)(PP_Instance instance,
- uint32_t session_id,
- struct PP_Var web_session_id);
+ void (*PromiseRejected)(PP_Instance instance,
+ uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ struct PP_Var error_description);
/**
* A message or request has been generated for key_system in the CDM, and
* must be sent to the web application.
@@ -71,8 +92,9 @@ struct PPB_ContentDecryptor_Private_0_9 {
* of <code>UpdateSession()</code> and <code>SessionMessage()</code> calls
* required to prepare for decryption.
*
- * @param[in] session_id Identifies the session for which the message
- * is intended.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute for
+ * which the message is intended.
*
* @param[in] message A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAY_BUFFER</code> that contains the message.
@@ -82,7 +104,7 @@ struct PPB_ContentDecryptor_Private_0_9 {
* message.
*/
void (*SessionMessage)(PP_Instance instance,
- uint32_t session_id,
+ struct PP_Var web_session_id,
struct PP_Var message,
struct PP_Var destination_url);
/**
@@ -97,33 +119,43 @@ struct PPB_ContentDecryptor_Private_0_9 {
* The CDM must call <code>SessionReady()</code> when the sequence is
* completed, and, in response, the browser must notify the web application.
*
- * @param[in] session_id Identifies the session that is ready.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that is now ready.
*/
- void (*SessionReady)(PP_Instance instance, uint32_t session_id);
+ void (*SessionReady)(PP_Instance instance, struct PP_Var web_session_id);
/**
* The session has been closed as the result of a call to the
* <code>ReleaseSession()</code> method on the
* <code>PPP_ContentDecryptor_Private</code> interface, or due to other
* factors as determined by the CDM.
*
- * @param[in] session_id Identifies the session that is closed.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that is now closed.
*/
- void (*SessionClosed)(PP_Instance instance, uint32_t session_id);
+ void (*SessionClosed)(PP_Instance instance, struct PP_Var web_session_id);
/**
* An error occurred in a <code>PPP_ContentDecryptor_Private</code> method,
* or within the plugin implementing the interface.
*
- * @param[in] session_id Identifies the session for which the error
- * is intended.
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the session's ID attribute of
+ * the session that caused the error.
+ *
+ * @param[in] exception_code A <code>PP_CdmExceptionCode</code> containing
+ * the exception code.
*
- * @param[in] media_error A MediaKeyError.
+ * @param[in] system_code A system error code.
*
- * @param[in] system_error A system error code.
+ * @param[in] error_description A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the error description.
*/
void (*SessionError)(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_code);
+ struct PP_Var web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ struct PP_Var error_description);
/**
* Called after the <code>Decrypt()</code> method on the
* <code>PPP_ContentDecryptor_Private</code> interface completes to
@@ -253,7 +285,7 @@ struct PPB_ContentDecryptor_Private_0_9 {
const struct PP_DecryptedSampleInfo* decrypted_sample_info);
};
-typedef struct PPB_ContentDecryptor_Private_0_9 PPB_ContentDecryptor_Private;
+typedef struct PPB_ContentDecryptor_Private_0_12 PPB_ContentDecryptor_Private;
/**
* @}
*/
diff --git a/chromium/ppapi/c/private/ppb_display_color_profile_private.h b/chromium/ppapi/c/private/ppb_display_color_profile_private.h
new file mode 100644
index 00000000000..d215a75f801
--- /dev/null
+++ b/chromium/ppapi/c/private/ppb_display_color_profile_private.h
@@ -0,0 +1,123 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From private/ppb_display_color_profile_private.idl,
+ * modified Mon Dec 16 20:53:23 2013.
+ */
+
+#ifndef PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_
+#define PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_
+
+#include "ppapi/c/pp_array_output.h"
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1 \
+ "PPB_DisplayColorProfile_Private;0.1"
+#define PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE \
+ PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1
+
+/**
+ * @file
+ * This file defines the <code>PPB_DisplayColorProfile</code> struct used for
+ * getting the color profile of the display.
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * <code>PPB_DisplayColorProfile_Private</code> defines the methods for getting
+ * the display color profile and monitoring its changes.
+ *
+ * <strong>Setup:<strong>
+ * @code
+ * PP_ArrayOutput output = { MyAllocatorFunction, color_profile_data };
+ * PP_Resource display_cp = display_cp_interface->Create(instance);
+ * display_cp_interface->GetColorProfile(display_cp,
+ * output,
+ * completion_callback);
+ * @endcode
+ */
+struct PPB_DisplayColorProfile_Private_0_1 {
+ /**
+ * Create() creates a display color profile resource.
+ *
+ * @param[in] instance The module instance.
+ * @return A <code>PP_Resource</code> containing a display color profile
+ * resource.
+ */
+ PP_Resource (*Create)(PP_Instance instance);
+ /**
+ * IsDisplayColorProfile() determines if the given resource is a valid
+ * <code>DisplayColorProfile</code> resource.
+ *
+ * @param[in] resource A <code>DisplayColorProfile</code> context resource.
+ * @return Returns:
+ * - <code>PP_TRUE</code> if the given resource is a valid
+ * <code>DisplayColorProfile</code>
+ * - <code>PP_FALSE</code> if it is an invalid resource or is a resource
+ * of another type.
+ */
+ PP_Bool (*IsDisplayColorProfile)(PP_Resource resource);
+ /**
+ * GetColorProfile() enqueues a request for the current display color profile.
+ *
+ * This method is intended for getting the color profile data of the display
+ * on which the browser window resides. [However currently Chrome only
+ * considers the system's primary display color profile when doing its color
+ * management. For consistency this method will also return the color profile
+ * that Chrome uses for its browser window.]
+ *
+ * @param[in] display_color_profile_res The display color profile resource.
+ * @param[in] color_profile A <code>PP_OutputArray</code> which on success
+ * will receive a byte array containing the ICC color profile data (see
+ * www.color.org for a reference to the ICC color profile specification
+ * and versions). The returned color profile version is the one supported by
+ * the host system.
+ * @param[in] callback The completion callback to be called once the display
+ * color profile data is available.
+ *
+ * @return Returns an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*GetColorProfile)(PP_Resource display_color_profile_res,
+ struct PP_ArrayOutput color_profile,
+ struct PP_CompletionCallback callback);
+ /**
+ * RegisterColorProfileChangeCallback() registers a callback to be called next
+ * time the color profile for the browser window in which the plugin resides
+ * changes. In order to get notifications for all color profile changes a call
+ * to RegisterColorProfileChangeCallback() function should be done when the
+ * previous notification was fired.
+ *
+ * There might be 2 scenarios in which the color profile for a window changes:
+ * a) The window is moved from one display to another;
+ * b) The user changes the display color space from the system settings.
+ *
+ * @param[in] display_color_profile_res The display color profile resource.
+ * @param[in] callback The callback to be invoked next time the display
+ * color profile changes.
+ *
+ * @return Returns an error code from <code>pp_errors.h</code>.
+ */
+ int32_t (*RegisterColorProfileChangeCallback)(
+ PP_Resource display_color_profile_res,
+ struct PP_CompletionCallback callback);
+};
+
+typedef struct PPB_DisplayColorProfile_Private_0_1
+ PPB_DisplayColorProfile_Private;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_ */
+
diff --git a/chromium/ppapi/c/private/ppb_find_private.h b/chromium/ppapi/c/private/ppb_find_private.h
new file mode 100644
index 00000000000..09ebab00137
--- /dev/null
+++ b/chromium/ppapi/c/private/ppb_find_private.h
@@ -0,0 +1,81 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From private/ppb_find_private.idl modified Wed Mar 19 13:42:13 2014. */
+
+#ifndef PPAPI_C_PRIVATE_PPB_FIND_PRIVATE_H_
+#define PPAPI_C_PRIVATE_PPB_FIND_PRIVATE_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_point.h"
+#include "ppapi/c/pp_rect.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_FIND_PRIVATE_INTERFACE_0_3 "PPB_Find_Private;0.3"
+#define PPB_FIND_PRIVATE_INTERFACE PPB_FIND_PRIVATE_INTERFACE_0_3
+
+/**
+ * @file
+ * This file defines the <code>PPB_Find_Private</code> interface.
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * This is a private interface for doing browser Find in the PDF plugin.
+ */
+struct PPB_Find_Private_0_3 {
+ /**
+ * Sets the instance of this plugin as the mechanism that will be used to
+ * handle find requests in the renderer. This will only succeed if the plugin
+ * is embedded within the content of the top level frame. Note that this will
+ * result in the renderer handing over all responsibility for doing find to
+ * the plugin and content from the rest of the page will not be searched.
+ *
+ *
+ * In the case that the plugin is loaded directly as the top level document,
+ * this function does not need to be called. In that case the plugin is
+ * assumed to handle find requests.
+ *
+ * There can only be one plugin which handles find requests. If a plugin calls
+ * this while an existing plugin is registered, the existing plugin will be
+ * de-registered and will no longer receive any requests.
+ */
+ void (*SetPluginToHandleFindRequests)(PP_Instance instance);
+ /**
+ * Updates the number of find results for the current search term. If
+ * there are no matches 0 should be passed in. Only when the plugin has
+ * finished searching should it pass in the final count with final_result set
+ * to PP_TRUE.
+ */
+ void (*NumberOfFindResultsChanged)(PP_Instance instance,
+ int32_t total,
+ PP_Bool final_result);
+ /**
+ * Updates the index of the currently selected search item.
+ */
+ void (*SelectedFindResultChanged)(PP_Instance instance, int32_t index);
+ /**
+ * Updates the tickmarks on the scrollbar for the find request. |tickmarks|
+ * contains |count| PP_Rects indicating the tickmark ranges.
+ */
+ void (*SetTickmarks)(PP_Instance instance,
+ const struct PP_Rect tickmarks[],
+ uint32_t count);
+};
+
+typedef struct PPB_Find_Private_0_3 PPB_Find_Private;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PRIVATE_PPB_FIND_PRIVATE_H_ */
+
diff --git a/chromium/ppapi/c/private/ppb_flash_clipboard.h b/chromium/ppapi/c/private/ppb_flash_clipboard.h
index d59957a828e..1ff8614c58b 100644
--- a/chromium/ppapi/c/private/ppb_flash_clipboard.h
+++ b/chromium/ppapi/c/private/ppb_flash_clipboard.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From private/ppb_flash_clipboard.idl modified Thu Mar 28 10:23:59 2013. */
+/* From private/ppb_flash_clipboard.idl modified Thu Jan 23 10:16:39 2014. */
#ifndef PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_
#define PPAPI_C_PRIVATE_PPB_FLASH_CLIPBOARD_H_
@@ -16,7 +16,8 @@
#define PPB_FLASH_CLIPBOARD_INTERFACE_4_0 "PPB_Flash_Clipboard;4.0"
#define PPB_FLASH_CLIPBOARD_INTERFACE_5_0 "PPB_Flash_Clipboard;5.0"
-#define PPB_FLASH_CLIPBOARD_INTERFACE PPB_FLASH_CLIPBOARD_INTERFACE_5_0
+#define PPB_FLASH_CLIPBOARD_INTERFACE_5_1 "PPB_Flash_Clipboard;5.1"
+#define PPB_FLASH_CLIPBOARD_INTERFACE PPB_FLASH_CLIPBOARD_INTERFACE_5_1
/**
* @file
@@ -77,7 +78,7 @@ PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Flash_Clipboard_Format, 4);
* used by Pepper Flash to access the clipboard.
*
*/
-struct PPB_Flash_Clipboard_5_0 {
+struct PPB_Flash_Clipboard_5_1 {
/**
* Registers a custom clipboard format. The format is identified by a
* string. An id identifying the format will be returned if the format is
@@ -129,9 +130,18 @@ struct PPB_Flash_Clipboard_5_0 {
uint32_t data_item_count,
const uint32_t formats[],
const struct PP_Var data_items[]);
+ /**
+ * Gets a sequence number which uniquely identifies clipboard state. This can
+ * be used to version the data on the clipboard and determine whether it has
+ * changed. The sequence number will be placed in |sequence_number| and
+ * PP_TRUE returned if the sequence number was retrieved successfully.
+ */
+ PP_Bool (*GetSequenceNumber)(PP_Instance instance_id,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number);
};
-typedef struct PPB_Flash_Clipboard_5_0 PPB_Flash_Clipboard;
+typedef struct PPB_Flash_Clipboard_5_1 PPB_Flash_Clipboard;
struct PPB_Flash_Clipboard_4_0 {
PP_Bool (*IsFormatAvailable)(PP_Instance instance_id,
@@ -146,6 +156,22 @@ struct PPB_Flash_Clipboard_4_0 {
const PP_Flash_Clipboard_Format formats[],
const struct PP_Var data_items[]);
};
+
+struct PPB_Flash_Clipboard_5_0 {
+ uint32_t (*RegisterCustomFormat)(PP_Instance instance_id,
+ const char* format_name);
+ PP_Bool (*IsFormatAvailable)(PP_Instance instance_id,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint32_t format);
+ struct PP_Var (*ReadData)(PP_Instance instance_id,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint32_t format);
+ int32_t (*WriteData)(PP_Instance instance_id,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint32_t data_item_count,
+ const uint32_t formats[],
+ const struct PP_Var data_items[]);
+};
/**
* @}
*/
diff --git a/chromium/ppapi/c/private/ppb_flash_drm.h b/chromium/ppapi/c/private/ppb_flash_drm.h
index 88d0f765b59..62f7226b9f7 100644
--- a/chromium/ppapi/c/private/ppb_flash_drm.h
+++ b/chromium/ppapi/c/private/ppb_flash_drm.h
@@ -48,9 +48,11 @@ struct PPB_Flash_DRM_1_1 {
struct PP_Var* id,
struct PP_CompletionCallback callback);
/**
- * Windows only. Synchronously outputs the HMONITOR corresponding to the
- * monitor on which the plugin instance is displayed in |hmonitor|. PP_TRUE is
- * returned on success.
+ * Windows and Mac only. Synchronously outputs the HMONITOR or
+ * CGDirectDisplayID corresponding to the monitor on which the plugin instance
+ * is displayed in |hmonitor|. This value is queried asynchronously and this
+ * will return PP_FALSE if the value is not yet available or an error
+ * occurred. PP_TRUE is returned on success.
*/
PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor);
/**
diff --git a/chromium/ppapi/c/private/ppb_input_event_private.h b/chromium/ppapi/c/private/ppb_input_event_private.h
new file mode 100644
index 00000000000..9ab20645347
--- /dev/null
+++ b/chromium/ppapi/c/private/ppb_input_event_private.h
@@ -0,0 +1,78 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From private/ppb_input_event_private.idl,
+ * modified Tue May 20 18:31:39 2014.
+ */
+
+#ifndef PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_
+#define PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_INPUTEVENT_PRIVATE_INTERFACE_0_1 "PPB_InputEvent_Private;0.1"
+#define PPB_INPUTEVENT_PRIVATE_INTERFACE PPB_INPUTEVENT_PRIVATE_INTERFACE_0_1
+
+/**
+ * @file
+ * This file defines the PPB_InputEvent_Private interfaces.
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * The <code>PPB_InputEvent_Private</code> interface contains pointers to
+ several
+ * functions related to generic input events on the browser.
+ */
+struct PPB_InputEvent_Private_0_1 {
+ /**
+ * TraceInputLatency() traces the latency of the input event. The input
+ * latency is shown in the trace viewer. The starting point of the input
+ * latency is when the input event is sent from renderer to plugin. If the
+ * input event does not cause any rendering damage, the end point of input
+ * latency is when TraceInputLatency() is called on the event. If the input
+ * event does cause rendering damage, the end point of input latency is when
+ * the resulted plugin frame eventually reaches screen.
+ *
+ * Notes: In the current version, only Graphics2D damage is considered as
+ * rendering damage. And it works only when the Graphics2Ds are bound to
+ * the plugin instance.
+ *
+ * @param[in] event A <code>PP_Resource</code> corresponding to an input
+ * event.
+ *
+ * @param[in] has_damage A bool indicating whether the event has caused any
+ * rendering damage.
+ *
+ * @return <code>PP_TRUE</code> if the latency for the given event is tracked.
+ */
+ PP_Bool (*TraceInputLatency)(PP_Resource event, PP_Bool has_damage);
+ /**
+ * StartTrackingLatency() requests input latency to be tracked.
+ *
+ * Without calling StartTrackingLatency() first, TraceInputLatency() won't
+ * take effect.
+ *
+ * @param[in] instance The <code>PP_Instance</code> of the instance requesting
+ * to start tracking input latency.
+ */
+ void (*StartTrackingLatency)(PP_Instance instance);
+};
+
+typedef struct PPB_InputEvent_Private_0_1 PPB_InputEvent_Private;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PRIVATE_PPB_INPUT_EVENT_PRIVATE_H_ */
+
diff --git a/chromium/ppapi/c/private/ppb_nacl_private.h b/chromium/ppapi/c/private/ppb_nacl_private.h
index 44bbb9fde9b..9df8723a420 100644
--- a/chromium/ppapi/c/private/ppb_nacl_private.h
+++ b/chromium/ppapi/c/private/ppb_nacl_private.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From private/ppb_nacl_private.idl modified Fri Nov 29 09:11:40 2013. */
+/* From private/ppb_nacl_private.idl modified Fri Jun 13 15:14:51 2014. */
#ifndef PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_
#define PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_
@@ -14,7 +14,9 @@
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_instance_private.h"
+
+#define PPP_MANIFESTSERVICE_INTERFACE_1_0 "PPP_ManifestService;1.0"
+#define PPP_MANIFESTSERVICE_INTERFACE PPP_MANIFESTSERVICE_INTERFACE_1_0
#define PPB_NACL_PRIVATE_INTERFACE_1_0 "PPB_NaCl_Private;1.0"
#define PPB_NACL_PRIVATE_INTERFACE PPB_NACL_PRIVATE_INTERFACE_1_0
@@ -32,13 +34,92 @@
* @addtogroup Enums
* @{
*/
-/** NaCl-specific errors that should be reported to the user */
+/** NaCl-specific errors that should be reported to the user.
+ * These error codes are reported via UMA so, if you edit them:
+ * 1) make sure you understand UMA first.
+ * 2) update src/tools/metrics/histograms/histograms.xml
+ * Values are explicitly specified to make sure they don't shift around when
+ * edited, and also to make reading about:histograms easier.
+ */
typedef enum {
- /**
- * The manifest program element does not contain a program usable on the
- * user's architecture
+ PP_NACL_ERROR_LOAD_SUCCESS = 0,
+ PP_NACL_ERROR_LOAD_ABORTED = 1,
+ PP_NACL_ERROR_UNKNOWN = 2,
+ PP_NACL_ERROR_MANIFEST_RESOLVE_URL = 3,
+ PP_NACL_ERROR_MANIFEST_LOAD_URL = 4,
+ PP_NACL_ERROR_MANIFEST_STAT = 5,
+ PP_NACL_ERROR_MANIFEST_TOO_LARGE = 6,
+ PP_NACL_ERROR_MANIFEST_OPEN = 7,
+ PP_NACL_ERROR_MANIFEST_MEMORY_ALLOC = 8,
+ PP_NACL_ERROR_MANIFEST_READ = 9,
+ PP_NACL_ERROR_MANIFEST_PARSING = 10,
+ PP_NACL_ERROR_MANIFEST_SCHEMA_VALIDATE = 11,
+ PP_NACL_ERROR_MANIFEST_GET_NEXE_URL = 12,
+ PP_NACL_ERROR_NEXE_LOAD_URL = 13,
+ PP_NACL_ERROR_NEXE_ORIGIN_PROTOCOL = 14,
+ PP_NACL_ERROR_NEXE_FH_DUP = 15,
+ PP_NACL_ERROR_NEXE_STAT = 16,
+ PP_NACL_ERROR_ELF_CHECK_IO = 17,
+ PP_NACL_ERROR_ELF_CHECK_FAIL = 18,
+ PP_NACL_ERROR_SEL_LDR_INIT = 19,
+ PP_NACL_ERROR_SEL_LDR_CREATE_LAUNCHER = 20,
+ PP_NACL_ERROR_SEL_LDR_FD = 21,
+ PP_NACL_ERROR_SEL_LDR_LAUNCH = 22,
+ /* Deprecated, safe to reuse the value because it's never logged in UMA.
+ */
+ PP_NACL_ERROR_SEL_LDR_SEND_NEXE = 24,
+ PP_NACL_ERROR_SEL_LDR_HANDLE_PASSING = 25,
+ PP_NACL_ERROR_SEL_LDR_START_MODULE = 26,
+ PP_NACL_ERROR_SEL_LDR_START_STATUS = 27,
+ PP_NACL_ERROR_SRPC_CONNECTION_FAIL = 28,
+ PP_NACL_ERROR_START_PROXY_CHECK_PPP = 29,
+ PP_NACL_ERROR_START_PROXY_ALLOC = 30,
+ PP_NACL_ERROR_START_PROXY_MODULE = 31,
+ PP_NACL_ERROR_START_PROXY_INSTANCE = 32,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL = 33,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SETUP = 34,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_WRAPPER = 35,
+ PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SERVICE = 36,
+ PP_NACL_ERROR_START_PROXY_CRASH = 37,
+ PP_NACL_ERROR_MANIFEST_PROGRAM_MISSING_ARCH = 38,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_INPROGRESS = 39,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOACCESS = 40,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOQUOTA = 41,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_NOSPACE = 42,
+ PP_NACL_ERROR_PNACL_CACHE_OPEN_OTHER = 43,
+ PP_NACL_ERROR_PNACL_CACHE_DIRECTORY_CREATE = 44,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOACCESS = 45,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOQUOTA = 46,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOSPACE = 47,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_NOTAFILE = 48,
+ PP_NACL_ERROR_PNACL_CACHE_FILEOPEN_OTHER = 49,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_NOACCESS = 50,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_NOTFOUND = 51,
+ PP_NACL_ERROR_PNACL_CACHE_FETCH_OTHER = 52,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_NOQUOTA = 53,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_NOSPACE = 54,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_COPY_OTHER = 55,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_RENAME_NOACCESS = 56,
+ PP_NACL_ERROR_PNACL_CACHE_FINALIZE_RENAME_OTHER = 57,
+ PP_NACL_ERROR_PNACL_RESOURCE_FETCH = 58,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_ABORTED = 59,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_NOACCESS = 60,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_OTHER = 61,
+ PP_NACL_ERROR_PNACL_THREAD_CREATE = 62,
+ PP_NACL_ERROR_PNACL_LLC_SETUP = 63,
+ PP_NACL_ERROR_PNACL_LD_SETUP = 64,
+ PP_NACL_ERROR_PNACL_LLC_INTERNAL = 65,
+ PP_NACL_ERROR_PNACL_LD_INTERNAL = 66,
+ PP_NACL_ERROR_PNACL_CREATE_TEMP = 67,
+ /* This entry is no longer used, but should not be removed, because UMA
*/
- PP_NACL_MANIFEST_MISSING_ARCH = 0
+ PP_NACL_ERROR_PNACL_NOT_ENABLED = 68,
+ PP_NACL_ERROR_MANIFEST_NOACCESS_URL = 69,
+ PP_NACL_ERROR_NEXE_NOACCESS_URL = 70,
+ PP_NACL_ERROR_PNACL_CRASH_THROTTLED = 71,
+ /* If you add a code, read the enum comment above on how to update
+ */
+ PP_NACL_ERROR_MAX
} PP_NaClError;
/** Event types that NaCl may use when reporting load progress or errors. */
@@ -51,6 +132,94 @@ typedef enum {
PP_NACL_EVENT_LOADEND,
PP_NACL_EVENT_CRASH
} PP_NaClEventType;
+
+typedef enum {
+ PP_SCHEME_CHROME_EXTENSION,
+ PP_SCHEME_DATA,
+ PP_SCHEME_OTHER
+} PP_UrlSchemeType;
+
+typedef enum {
+ /* The trusted plugin begins in this ready state. */
+ PP_NACL_READY_STATE_UNSENT = 0,
+ /* The manifest file has been requested, but not yet received. */
+ PP_NACL_READY_STATE_OPENED = 1,
+ /* The manifest file has been received and the nexe successfully requested. */
+ PP_NACL_READY_STATE_LOADING = 3,
+ /* The nexe has been loaded and the proxy started, so it is ready for
+ */
+ PP_NACL_READY_STATE_DONE = 4
+} PP_NaClReadyState;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+struct PP_PNaClOptions {
+ PP_Bool translate;
+ PP_Bool is_debug;
+ int32_t opt_level;
+};
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Typedefs
+ * @{
+ */
+/* Callback invoked upon completion of PPP_ManifestService::OpenResource(). */
+typedef void (*PP_OpenResourceCompletionCallback)(void* user_data,
+ PP_FileHandle file_handle);
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/* ManifestService to support irt_open_resource() function.
+ * All functions of the service should have PP_Bool return value. It represents
+ * whether the service is still alive or not. Trivially Quit() should always
+ * return false. However, other functions also can return false.
+ * Once false is called, as the service has been destructed, all functions
+ * should never be called afterwords.
+ */
+struct PPP_ManifestService_1_0 {
+ /* Called when ManifestService should be destructed. */
+ PP_Bool (*Quit)(void* user_data);
+ /* Called when PPAPI initialization in the NaCl plugin is finished. */
+ PP_Bool (*StartupInitializationComplete)(void* user_data);
+ /* Called when irt_open_resource() is invoked in the NaCl plugin.
+ * Upon completion, callback will be invoked with given callback_user_data
+ * and the result file handle (or PP_kInvalidFileHandle on error). */
+ PP_Bool (*OpenResource)(void* user_data,
+ const char* entry_key,
+ PP_OpenResourceCompletionCallback callback,
+ void* callback_user_data);
+};
+
+typedef struct PPP_ManifestService_1_0 PPP_ManifestService;
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup Structs
+ * @{
+ */
+/* Corresponds to NaClFileInfo in
+ * native_client/src/trusted/validator/nacl_file_info.h */
+struct PP_NaClFileInfo {
+ PP_FileHandle handle;
+ /* See NaClFileToken comment in nacl_file_info.h */
+ uint64_t token_lo;
+ uint64_t token_hi;
+};
/**
* @}
*/
@@ -70,6 +239,8 @@ struct PPB_NaCl_Private_1_0 {
* does not need PPAPI, then it can run off the main thread.
* The |uses_irt| flag indicates whether the IRT should be loaded in this
* NaCl process. This is true for ABI stable nexes.
+ * The |uses_nonsfi_mode| flag indicates whether or not nonsfi-mode should
+ * be used with the binary pointed by the url.
* The |enable_dyncode_syscalls| flag indicates whether or not the nexe
* will be able to use dynamic code system calls (e.g., mmap with PROT_EXEC).
* The |enable_exception_handling| flag indicates whether or not the nexe
@@ -78,25 +249,25 @@ struct PPB_NaCl_Private_1_0 {
* the nexe contribute to crash throttling statisics and whether nexe starts
* are throttled by crash throttling.
*/
- PP_ExternalPluginResult (*LaunchSelLdr)(PP_Instance instance,
- const char* alleged_url,
- PP_Bool uses_irt,
- PP_Bool uses_ppapi,
- PP_Bool enable_ppapi_dev,
- PP_Bool enable_dyncode_syscalls,
- PP_Bool enable_exception_handling,
- PP_Bool enable_crash_throttling,
- void* imc_handle,
- struct PP_Var* error_message);
+ void (*LaunchSelLdr)(
+ PP_Instance instance,
+ PP_Bool main_service_runtime,
+ const char* alleged_url,
+ PP_Bool uses_irt,
+ PP_Bool uses_ppapi,
+ PP_Bool uses_nonsfi_mode,
+ PP_Bool enable_ppapi_dev,
+ PP_Bool enable_dyncode_syscalls,
+ PP_Bool enable_exception_handling,
+ PP_Bool enable_crash_throttling,
+ const struct PPP_ManifestService_1_0* manifest_service_interface,
+ void* manifest_service_user_data,
+ void* imc_handle,
+ struct PP_CompletionCallback callback);
/* This function starts the IPC proxy so the nexe can communicate with the
- * browser. Returns PP_EXTERNAL_PLUGIN_OK on success, otherwise a result code
- * indicating the failure. PP_EXTERNAL_PLUGIN_FAILED is returned if
- * LaunchSelLdr wasn't called with the instance.
- * PP_EXTERNAL_PLUGIN_ERROR_MODULE is returned if the module can't be
- * initialized. PP_EXTERNAL_PLUGIN_ERROR_INSTANCE is returned if the instance
- * can't be initialized.
- */
- PP_ExternalPluginResult (*StartPpapiProxy)(PP_Instance instance);
+ * browser.
+ */
+ PP_Bool (*StartPpapiProxy)(PP_Instance instance);
/* On POSIX systems, this function returns the file descriptor of
* /dev/urandom. On non-POSIX systems, this function returns 0.
*/
@@ -117,36 +288,37 @@ struct PPB_NaCl_Private_1_0 {
PP_FileHandle* target_handle,
uint32_t desired_access,
uint32_t options);
- /* Returns a read-only file descriptor of a file rooted in the Pnacl
- * component directory, or an invalid handle on failure.
+ /* Returns a read-only file descriptor for a url for pnacl translator tools,
+ * or an invalid handle on failure.
*/
- PP_FileHandle (*GetReadonlyPnaclFd)(const char* filename);
+ PP_FileHandle (*GetReadonlyPnaclFd)(const char* url);
/* This creates a temporary file that will be deleted by the time
* the last handle is closed (or earlier on POSIX systems), and
* returns a posix handle to that temporary file.
*/
PP_FileHandle (*CreateTemporaryFile)(PP_Instance instance);
+ /* Return the number of processors in the system as reported by the OS */
+ int32_t (*GetNumberOfProcessors)(void);
+ /* Return whether the non-SFI mode is enabled. */
+ PP_Bool (*IsNonSFIModeEnabled)(void);
/* Create a temporary file, which will be deleted by the time the
* last handle is closed (or earlier on POSIX systems), to use for
* the nexe with the cache information given by |pexe_url|,
- * |abi_version|, |opt_level|, |last_modified|, |etag|, and
- * |has_no_store_header|. If the nexe is already present in the
- * cache, |is_hit| is set to PP_TRUE and the contents of the nexe
- * will be copied into the temporary file. Otherwise |is_hit| is set
- * to PP_FALSE and the temporary file will be writeable. Currently
- * the implementation is a stub, which always sets is_hit to false
- * and calls the implementation of CreateTemporaryFile. In a
- * subsequent CL it will call into the browser which will remember
- * the association between the cache key and the fd, and copy the
- * nexe into the cache after the translation finishes.
+ * |abi_version|, |opt_level|, and |headers|. If the nexe is already present
+ * in the cache, |is_hit| is set to PP_TRUE and the contents of the nexe will
+ * be copied into the temporary file. Otherwise |is_hit| is set to PP_FALSE
+ * and the temporary file will be writeable. Currently the implementation is
+ * a stub, which always sets is_hit to false and calls the implementation of
+ * CreateTemporaryFile. In a subsequent CL it will call into the browser
+ * which will remember the association between the cache key and the fd, and
+ * copy the nexe into the cache after the translation finishes.
*/
int32_t (*GetNexeFd)(PP_Instance instance,
const char* pexe_url,
uint32_t abi_version,
uint32_t opt_level,
- const char* last_modified,
- const char* etag,
- PP_Bool has_no_store_header,
+ const char* headers,
+ const char* extra_flags,
PP_Bool* is_hit,
PP_FileHandle* nexe_handle,
struct PP_CompletionCallback callback);
@@ -159,33 +331,124 @@ struct PPB_NaCl_Private_1_0 {
* the browser is in incognito mode, no notification will be delivered to
* the plugin.)
*/
- void (*ReportTranslationFinished)(PP_Instance instance, PP_Bool success);
- /* Display a UI message to the user. */
- PP_ExternalPluginResult (*ReportNaClError)(PP_Instance instance,
- PP_NaClError message_id);
- /* Opens a NaCl executable file in the application's extension directory
- * corresponding to the file URL and returns a file descriptor, or an invalid
- * handle on failure. |metadata| is left unchanged on failure.
- */
- PP_FileHandle (*OpenNaClExecutable)(PP_Instance instance,
- const char* file_url,
- uint64_t* file_token_lo,
- uint64_t* file_token_hi);
+ void (*ReportTranslationFinished)(PP_Instance instance,
+ PP_Bool success,
+ int32_t opt_level,
+ int64_t pexe_size,
+ int64_t compile_time_us,
+ int64_t total_time_us);
/* Dispatch a progress event on the DOM element where the given instance is
* embedded.
*/
void (*DispatchEvent)(PP_Instance instance,
PP_NaClEventType event_type,
- struct PP_Var resource_url,
+ const char* resource_url,
PP_Bool length_is_computable,
uint64_t loaded_bytes,
uint64_t total_bytes);
- /* Sets a read-only property on the <embed> DOM element that corresponds to
- * the given instance.
+ /* Report that the nexe loaded successfully. */
+ void (*ReportLoadSuccess)(PP_Instance instance,
+ const char* url,
+ uint64_t loaded_bytes,
+ uint64_t total_bytes);
+ /* Report an error that occured while attempting to load a nexe. */
+ void (*ReportLoadError)(PP_Instance instance,
+ PP_NaClError error,
+ const char* error_message);
+ /* Reports that loading a nexe was aborted. */
+ void (*ReportLoadAbort)(PP_Instance instance);
+ /* Reports that the nexe has crashed. */
+ void (*NexeDidCrash)(PP_Instance instance, const char* crash_log);
+ /* Performs internal setup when an instance is created. */
+ void (*InstanceCreated)(PP_Instance instance);
+ /* Performs internal cleanup when an instance is destroyed. */
+ void (*InstanceDestroyed)(PP_Instance instance);
+ /* Return true if the NaCl debug stub is enabled and the app loaded from
+ * alleged_nmf_url will be attached to a debugger.
+ */
+ PP_Bool (*NaClDebugEnabledForURL)(const char* alleged_nmf_url);
+ /* Returns the kind of SFI sandbox implemented by NaCl on this
+ * platform.
+ */
+ const char* (*GetSandboxArch)(void);
+ /* Logs the message to the console. */
+ void (*LogToConsole)(PP_Instance instance, const char* message);
+ /* Returns the NaCl readiness status for this instance. */
+ PP_NaClReadyState (*GetNaClReadyState)(PP_Instance instance);
+ /* Returns the exit status of the plugin process. */
+ int32_t (*GetExitStatus)(PP_Instance instance);
+ /* Sets the exit status of the plugin process. */
+ void (*SetExitStatus)(PP_Instance instance, int32_t exit_status);
+ /* Logs the message via VLOG. */
+ void (*Vlog)(const char* message);
+ /* Initializes internal state for a NaCl plugin. */
+ void (*InitializePlugin)(PP_Instance instance,
+ uint32_t argc,
+ const char* argn[],
+ const char* argv[]);
+ /* Returns the size of the nexe. */
+ int64_t (*GetNexeSize)(PP_Instance instance);
+ /* Requests the NaCl manifest specified in the plugin arguments. */
+ void (*RequestNaClManifest)(PP_Instance instance,
+ struct PP_CompletionCallback callback);
+ struct PP_Var (*GetManifestBaseURL)(PP_Instance instance);
+ /* Processes the NaCl manifest once it's been retrieved.
+ * TODO(teravest): Move the rest of the supporting logic out of the trusted
+ * plugin.
+ */
+ void (*ProcessNaClManifest)(PP_Instance instance, const char* program_url);
+ PP_Bool (*DevInterfacesEnabled)(PP_Instance instance);
+ PP_Bool (*GetManifestProgramURL)(PP_Instance instance,
+ struct PP_Var* full_url,
+ struct PP_PNaClOptions* pnacl_options,
+ PP_Bool* uses_nonsfi_mode);
+ PP_Bool (*ManifestResolveKey)(PP_Instance instance,
+ PP_Bool helper_process,
+ const char* key,
+ struct PP_Var* full_url,
+ struct PP_PNaClOptions* pnacl_options);
+ /* Returns the filenames for the llc and ld tools, parsing that information
+ * from the file given in |filename|.
+ */
+ PP_Bool (*GetPnaclResourceInfo)(PP_Instance instance,
+ const char* filename,
+ struct PP_Var* llc_tool_name,
+ struct PP_Var* ld_tool_name);
+ /* PP_Var string of attributes describing the CPU features supported
+ * by the current architecture. The string is a comma-delimited list
+ * of attributes supported by LLVM in its -mattr= option:
+ * http://llvm.org/docs/CommandGuide/llc.html#cmdoption-mattr */
+ struct PP_Var (*GetCpuFeatureAttrs)(void);
+ /* Posts a message to the JavaScript object for the given instance.
+ * This method may be called on any thread.
+ */
+ void (*PostMessageToJavaScript)(PP_Instance instance, const char* message);
+ /* Downloads the .nexe file at the given URL to a file, and sets |file_info|
+ * to information for a handle to a file containing its contents.
+ * If metadata for identity-based validation caching is available
+ * then it sets token information in |file_info| (otherwise left untouched).
+ */
+ void (*DownloadNexe)(PP_Instance instance,
+ const char* url,
+ struct PP_NaClFileInfo* file_info,
+ struct PP_CompletionCallback callback);
+ /* Downloads a non-nexe file specified in the manifest, and sets |file_info|
+ * to corresponding information about the file. */
+ void (*DownloadFile)(PP_Instance instance,
+ const char* url,
+ struct PP_NaClFileInfo* file_info,
+ struct PP_CompletionCallback callback);
+ /* Reports the status of sel_ldr for UMA reporting.
+ * |max_status| has to be provided because the implementation of this
+ * interface can't access the NaClErrorCode enum.
+ */
+ void (*ReportSelLdrStatus)(PP_Instance instance,
+ int32_t load_status,
+ int32_t max_status);
+ /* Logs time taken by an operation to UMA histograms.
+ * This function is safe to call on any thread.
*/
- void (*SetReadOnlyProperty)(PP_Instance instance,
- struct PP_Var key,
- struct PP_Var value);
+ void (*LogTranslateTime)(const char* histogram_name, int64_t time_us);
};
typedef struct PPB_NaCl_Private_1_0 PPB_NaCl_Private;
diff --git a/chromium/ppapi/c/private/ppb_pdf.h b/chromium/ppapi/c/private/ppb_pdf.h
index 9053802b897..c0b570bc6bb 100644
--- a/chromium/ppapi/c/private/ppb_pdf.h
+++ b/chromium/ppapi/c/private/ppb_pdf.h
@@ -163,6 +163,12 @@ struct PPB_PDF {
// Returns PP_TRUE if the plugin is out of process.
PP_Bool(*IsOutOfProcess)(PP_Instance instance);
+
+ // Sets the selected text of the plugin.
+ void(*SetSelectedText)(PP_Instance instance, const char* selected_text);
+
+ // Sets the link currently under the cursor.
+ void (*SetLinkUnderCursor)(PP_Instance instance, const char* url);
};
#endif // PPAPI_C_PRIVATE_PPB_PDF_H_
diff --git a/chromium/ppapi/c/private/ppb_uma_private.h b/chromium/ppapi/c/private/ppb_uma_private.h
index b681addef66..04cad428c16 100644
--- a/chromium/ppapi/c/private/ppb_uma_private.h
+++ b/chromium/ppapi/c/private/ppb_uma_private.h
@@ -3,18 +3,20 @@
* found in the LICENSE file.
*/
-/* From private/ppb_uma_private.idl modified Tue Oct 2 13:17:06 2012. */
+/* From private/ppb_uma_private.idl modified Fri Mar 14 16:59:33 2014. */
#ifndef PPAPI_C_PRIVATE_PPB_UMA_PRIVATE_H_
#define PPAPI_C_PRIVATE_PPB_UMA_PRIVATE_H_
#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_var.h"
-#define PPB_UMA_PRIVATE_INTERFACE_0_1 "PPB_UMA_Private;0.1"
-#define PPB_UMA_PRIVATE_INTERFACE PPB_UMA_PRIVATE_INTERFACE_0_1
+#define PPB_UMA_PRIVATE_INTERFACE_0_3 "PPB_UMA_Private;0.3"
+#define PPB_UMA_PRIVATE_INTERFACE PPB_UMA_PRIVATE_INTERFACE_0_3
/**
* @file
@@ -29,13 +31,14 @@
/**
* Contains functions for plugins to report UMA usage stats.
*/
-struct PPB_UMA_Private_0_1 {
+struct PPB_UMA_Private_0_3 {
/**
* HistogramCustomTimes is a pointer to a function which records a time
* sample given in milliseconds in the histogram given by |name|, possibly
* creating the histogram if it does not exist.
*/
- void (*HistogramCustomTimes)(struct PP_Var name,
+ void (*HistogramCustomTimes)(PP_Instance instance,
+ struct PP_Var name,
int64_t sample,
int64_t min,
int64_t max,
@@ -45,7 +48,8 @@ struct PPB_UMA_Private_0_1 {
* in the histogram given by |name|, possibly creating the histogram if it
* does not exist.
*/
- void (*HistogramCustomCounts)(struct PP_Var name,
+ void (*HistogramCustomCounts)(PP_Instance instance,
+ struct PP_Var name,
int32_t sample,
int32_t min,
int32_t max,
@@ -56,12 +60,21 @@ struct PPB_UMA_Private_0_1 {
* does not exist. The sample represents a value in an enumeration bounded
* by |boundary_value|, that is, sample < boundary_value always.
*/
- void (*HistogramEnumeration)(struct PP_Var name,
+ void (*HistogramEnumeration)(PP_Instance instance,
+ struct PP_Var name,
int32_t sample,
int32_t boundary_value);
+ /**
+ * IsCrashReportingEnabled returns PP_OK to the completion callback to
+ * indicate that the current user has opted-in to crash reporting, or
+ * PP_ERROR_* on failure or when a user has not opted-in. This can be used to
+ * gate other reporting processes such as analytics and crash reporting.
+ */
+ int32_t (*IsCrashReportingEnabled)(PP_Instance instance,
+ struct PP_CompletionCallback callback);
};
-typedef struct PPB_UMA_Private_0_1 PPB_UMA_Private;
+typedef struct PPB_UMA_Private_0_3 PPB_UMA_Private;
/**
* @}
*/
diff --git a/chromium/ppapi/c/private/ppp_content_decryptor_private.h b/chromium/ppapi/c/private/ppp_content_decryptor_private.h
index 27d172d7e73..3470005802a 100644
--- a/chromium/ppapi/c/private/ppp_content_decryptor_private.h
+++ b/chromium/ppapi/c/private/ppp_content_decryptor_private.h
@@ -4,7 +4,7 @@
*/
/* From private/ppp_content_decryptor_private.idl,
- * modified Tue Dec 3 17:05:10 2013.
+ * modified Thu May 1 10:36:31 2014.
*/
#ifndef PPAPI_C_PRIVATE_PPP_CONTENT_DECRYPTOR_PRIVATE_H_
@@ -18,10 +18,10 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/c/private/pp_content_decryptor.h"
-#define PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9 \
- "PPP_ContentDecryptor_Private;0.9"
+#define PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12 \
+ "PPP_ContentDecryptor_Private;0.12"
#define PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE \
- PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9
+ PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12
/**
* @file
@@ -42,7 +42,7 @@
* Decryption Module (CDM) for Encrypted Media Extensions:
* http://www.w3.org/TR/encrypted-media/
*/
-struct PPP_ContentDecryptor_Private_0_9 {
+struct PPP_ContentDecryptor_Private_0_12 {
/**
* Initialize for the specified key system.
*
@@ -51,29 +51,49 @@ struct PPP_ContentDecryptor_Private_0_9 {
*/
void (*Initialize)(PP_Instance instance, struct PP_Var key_system);
/**
- * Creates a session. <code>type</code> contains the MIME type of
+ * Creates a session. <code>init_data_type</code> contains the MIME type of
* <code>init_data</code>. <code>init_data</code> is a data buffer
* containing data for use in generating the request.
*
- * Note: <code>CreateSession()</code> must create the session ID used in
- * other methods on this interface. The session ID must be provided to the
- * browser by the CDM via <code>SessionCreated()</code> on the
+ * Note: <code>CreateSession()</code> must create a web session ID and provide
+ * it to the browser via <code>SessionCreated()</code> on the
* <code>PPB_ContentDecryptor_Private</code> interface.
*
- * @param[in] session_id A reference for the session for which a session
- * should be generated.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure when creating the session.
*
- * @param[in] type A <code>PP_Var</code> of type
+ * @param[in] init_data_type A <code>PP_Var</code> of type
* <code>PP_VARTYPE_STRING</code> containing the MIME type for init_data.
*
* @param[in] init_data A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAYBUFFER</code> containing container specific
* initialization data.
+ *
+ * @param[in] session_type A <code>PP_SessionType</code> that indicates the
+ * type of session to be created.
*/
void (*CreateSession)(PP_Instance instance,
- uint32_t session_id,
- struct PP_Var type,
- struct PP_Var init_data);
+ uint32_t promise_id,
+ struct PP_Var init_data_type,
+ struct PP_Var init_data,
+ PP_SessionType session_type);
+ /**
+ * Loads a session whose web session ID is <code>web_session_id</code>.
+ *
+ * Note: After the session is successfully loaded, the CDM must call
+ * <code>SessionCreated()</code> with <code>web_session_id</code> on the
+ * <code>PPB_ContentDecryptor_Private</code> interface.
+ *
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of loading the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to load.
+ */
+ void (*LoadSession)(PP_Instance instance,
+ uint32_t promise_id,
+ struct PP_Var web_session_id);
/**
* Provides a license or other message to the decryptor.
*
@@ -86,22 +106,35 @@ struct PPP_ContentDecryptor_Private_0_9 {
* <code>PPB_ContentDecryptor_Private</code> interface, and the browser
* must notify the web application.
*
- * @param[in] session_id A reference for the session to update.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of updating the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to be updated.
*
* @param[in] response A <code>PP_Var</code> of type
* <code>PP_VARTYPE_ARRAYBUFFER</code> containing the license or other
* message for the given session ID.
*/
void (*UpdateSession)(PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
+ struct PP_Var web_session_id,
struct PP_Var response);
/**
* Release the specified session and related resources.
*
- * @param[in] session_id A reference for the session that should be
- * released.
+ * @param[in] promise_id A reference for the promise that gets resolved or
+ * rejected depending upon the success or failure of releasing the session.
+ *
+ * @param[in] web_session_id A <code>PP_Var</code> of type
+ * <code>PP_VARTYPE_STRING</code> containing the web session ID of the session
+ * to be released.
+ *
*/
- void (*ReleaseSession)(PP_Instance instance, uint32_t session_id);
+ void (*ReleaseSession)(PP_Instance instance,
+ uint32_t promise_id,
+ struct PP_Var web_session_id);
/**
* Decrypts the block and returns the unencrypted block via
* <code>DeliverBlock()</code> on the
@@ -228,7 +261,7 @@ struct PPP_ContentDecryptor_Private_0_9 {
const struct PP_EncryptedBlockInfo* encrypted_block_info);
};
-typedef struct PPP_ContentDecryptor_Private_0_9 PPP_ContentDecryptor_Private;
+typedef struct PPP_ContentDecryptor_Private_0_12 PPP_ContentDecryptor_Private;
/**
* @}
*/
diff --git a/chromium/ppapi/c/private/ppp_find_private.h b/chromium/ppapi/c/private/ppp_find_private.h
new file mode 100644
index 00000000000..00b26de62bd
--- /dev/null
+++ b/chromium/ppapi/c/private/ppp_find_private.h
@@ -0,0 +1,58 @@
+/* Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From private/ppp_find_private.idl modified Thu Mar 20 11:34:17 2014. */
+
+#ifndef PPAPI_C_PRIVATE_PPP_FIND_PRIVATE_H_
+#define PPAPI_C_PRIVATE_PPP_FIND_PRIVATE_H_
+
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPP_FIND_PRIVATE_INTERFACE_0_3 "PPP_Find_Private;0.3"
+#define PPP_FIND_PRIVATE_INTERFACE PPP_FIND_PRIVATE_INTERFACE_0_3
+
+/**
+ * @file
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPP_Find_Private_0_3 {
+ /**
+ * Finds the given UTF-8 text starting at the current selection. The number of
+ * results will be updated asynchronously via NumberOfFindResultsChanged in
+ * PPB_Find. Note that multiple StartFind calls can happen before StopFind is
+ * called in the case of the search term changing.
+ *
+ * Return PP_FALSE if the plugin doesn't support find in page. Consequently,
+ * it won't call any callbacks.
+ */
+ PP_Bool (*StartFind)(PP_Instance instance,
+ const char* text,
+ PP_Bool case_sensitive);
+ /**
+ * Go to the next/previous result.
+ */
+ void (*SelectFindResult)(PP_Instance instance, PP_Bool forward);
+ /**
+ * Tells the plugin that the find operation has stopped, so it should clear
+ * any highlighting.
+ */
+ void (*StopFind)(PP_Instance instance);
+};
+
+typedef struct PPP_Find_Private_0_3 PPP_Find_Private;
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_PRIVATE_PPP_FIND_PRIVATE_H_ */
+
diff --git a/chromium/ppapi/c/private/ppp_pdf.h b/chromium/ppapi/c/private/ppp_pdf.h
new file mode 100644
index 00000000000..144e95cdff7
--- /dev/null
+++ b/chromium/ppapi/c/private/ppp_pdf.h
@@ -0,0 +1,34 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_C_PRIVATE_PPP_PDF_H_
+#define PPAPI_C_PRIVATE_PPP_PDF_H_
+
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/pp_point.h"
+#include "ppapi/c/pp_var.h"
+
+#define PPP_PDF_INTERFACE_1 "PPP_Pdf;1"
+#define PPP_PDF_INTERFACE PPP_PDF_INTERFACE_1
+
+typedef enum {
+ // Rotates the page 90 degrees clockwise from its current orientation.
+ PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW,
+ // Rotates the page 90 degrees counterclockwise from its current orientation.
+ PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW
+} PP_PrivatePageTransformType;
+PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrivatePageTransformType, 4);
+
+struct PPP_Pdf_1 {
+ // Returns an absolute URL if the position is over a link.
+ PP_Var (*GetLinkAtPosition)(PP_Instance instance,
+ PP_Point point);
+
+ // Requests that the plugin apply the given transform to its view.
+ void (*Transform)(PP_Instance instance, PP_PrivatePageTransformType type);
+};
+
+typedef PPP_Pdf_1 PPP_Pdf;
+
+#endif // PPAPI_C_PRIVATE_PPP_PDF_H_
diff --git a/chromium/ppapi/cpp/audio.h b/chromium/ppapi/cpp/audio.h
index 29a19f364f1..7f37cb8dd6b 100644
--- a/chromium/ppapi/cpp/audio.h
+++ b/chromium/ppapi/cpp/audio.h
@@ -19,7 +19,7 @@ namespace pp {
class InstanceHandle;
/// An audio resource. Refer to the
-/// <a href="/native-client/devguide/coding/audio">Audio</a>
+/// <a href="/native-client/devguide/coding/audio.html">Audio</a>
/// chapter in the Developer's Guide for information on using this interface.
class Audio : public Resource {
public:
diff --git a/chromium/ppapi/cpp/audio_buffer.cc b/chromium/ppapi/cpp/audio_buffer.cc
new file mode 100644
index 00000000000..e1952c22606
--- /dev/null
+++ b/chromium/ppapi/cpp/audio_buffer.cc
@@ -0,0 +1,91 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/audio_buffer.h"
+
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_AudioBuffer_0_1>() {
+ return PPB_AUDIOBUFFER_INTERFACE_0_1;
+}
+
+} // namespace
+
+AudioBuffer::AudioBuffer() {
+}
+
+AudioBuffer::AudioBuffer(const AudioBuffer& other) : Resource(other) {
+}
+
+AudioBuffer::AudioBuffer(const Resource& resource) : Resource(resource) {
+}
+
+AudioBuffer::AudioBuffer(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+AudioBuffer::~AudioBuffer() {
+}
+
+PP_TimeDelta AudioBuffer::GetTimestamp() const {
+ if (has_interface<PPB_AudioBuffer_0_1>())
+ return get_interface<PPB_AudioBuffer_0_1>()->GetTimestamp(pp_resource());
+ return 0.0;
+}
+
+void AudioBuffer::SetTimestamp(PP_TimeDelta timestamp) {
+ if (has_interface<PPB_AudioBuffer_0_1>()) {
+ get_interface<PPB_AudioBuffer_0_1>()->SetTimestamp(pp_resource(),
+ timestamp);
+ }
+}
+
+PP_AudioBuffer_SampleRate AudioBuffer::GetSampleRate() const {
+ if (has_interface<PPB_AudioBuffer_0_1>())
+ return get_interface<PPB_AudioBuffer_0_1>()->GetSampleRate(pp_resource());
+ return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
+}
+
+PP_AudioBuffer_SampleSize AudioBuffer::GetSampleSize() const {
+ if (has_interface<PPB_AudioBuffer_0_1>())
+ return get_interface<PPB_AudioBuffer_0_1>()->GetSampleSize(pp_resource());
+ return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
+}
+
+uint32_t AudioBuffer::GetNumberOfChannels() const {
+ if (has_interface<PPB_AudioBuffer_0_1>()) {
+ return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfChannels(
+ pp_resource());
+ }
+ return 0;
+}
+
+uint32_t AudioBuffer::GetNumberOfSamples() const {
+ if (has_interface<PPB_AudioBuffer_0_1>()) {
+ return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfSamples(
+ pp_resource());
+ }
+ return 0;
+}
+
+void* AudioBuffer::GetDataBuffer() {
+ if (has_interface<PPB_AudioBuffer_0_1>())
+ return get_interface<PPB_AudioBuffer_0_1>()->GetDataBuffer(pp_resource());
+ return NULL;
+}
+
+uint32_t AudioBuffer::GetDataBufferSize() const {
+ if (has_interface<PPB_AudioBuffer_0_1>()) {
+ return get_interface<PPB_AudioBuffer_0_1>()->GetDataBufferSize(
+ pp_resource());
+ }
+ return 0;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/audio_buffer.h b/chromium/ppapi/cpp/audio_buffer.h
new file mode 100644
index 00000000000..ecaa439d1cb
--- /dev/null
+++ b/chromium/ppapi/cpp/audio_buffer.h
@@ -0,0 +1,85 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_AUDIO_BUFFER_H_
+#define PPAPI_CPP_AUDIO_BUFFER_H_
+
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/cpp/resource.h"
+
+namespace pp {
+
+class AudioBuffer : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>AudioBuffer</code> object.
+ AudioBuffer();
+
+ /// The copy constructor for <code>AudioBuffer</code>.
+ ///
+ /// @param[in] other A reference to an <code>AudioBuffer</code>.
+ AudioBuffer(const AudioBuffer& other);
+
+ /// Constructs an <code>AudioBuffer</code> from a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_AudioBuffer</code> resource.
+ explicit AudioBuffer(const Resource& resource);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added for you.
+ ///
+ /// @param[in] resource A <code>PPB_AudioBuffer</code> resource.
+ AudioBuffer(PassRef, PP_Resource resource);
+
+ virtual ~AudioBuffer();
+
+ /// Gets the timestamp of the audio buffer.
+ ///
+ /// @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
+ /// buffer. Given in seconds since the start of the containing audio stream.
+ PP_TimeDelta GetTimestamp() const;
+
+ /// Sets the timestamp of the audio buffer.
+ ///
+ /// @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ /// of the audio buffer. Given in seconds since the start of the containing
+ /// audio stream.
+ void SetTimestamp(PP_TimeDelta timestamp);
+
+ /// Gets the sample rate of the audio buffer.
+ ///
+ /// @return The sample rate of the audio buffer.
+ PP_AudioBuffer_SampleRate GetSampleRate() const;
+
+ /// Gets the sample size of the audio buffer in bytes.
+ ///
+ /// @return The sample size of the audio buffer in bytes.
+ PP_AudioBuffer_SampleSize GetSampleSize() const;
+
+ /// Gets the number of channels in the audio buffer.
+ ///
+ /// @return The number of channels in the audio buffer.
+ uint32_t GetNumberOfChannels() const;
+
+ /// Gets the number of samples in the audio buffer.
+ ///
+ /// @return The number of samples in the audio buffer.
+ /// For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
+ /// containing 4,410 * 2 samples would have a duration of 100 milliseconds.
+ uint32_t GetNumberOfSamples() const;
+
+ /// Gets the data buffer containing the audio buffer samples.
+ ///
+ /// @return A pointer to the beginning of the data buffer.
+ void* GetDataBuffer();
+
+ /// Gets the size of data buffer in bytes.
+ ///
+ /// @return The size of the data buffer in bytes.
+ uint32_t GetDataBufferSize() const;
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_AUDIO_BUFFER_H_
diff --git a/chromium/ppapi/cpp/audio_config.h b/chromium/ppapi/cpp/audio_config.h
index e7ade547906..7e12e9d0e40 100644
--- a/chromium/ppapi/cpp/audio_config.h
+++ b/chromium/ppapi/cpp/audio_config.h
@@ -18,7 +18,7 @@ namespace pp {
class InstanceHandle;
/// A 16 bit stereo AudioConfig resource. Refer to the
-/// <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio
+/// <a href="/native-client/devguide/coding/audio.html">Audio
/// </a>chapter in the Developer's Guide for information on using this
/// interface.
///
diff --git a/chromium/ppapi/cpp/completion_callback.h b/chromium/ppapi/cpp/completion_callback.h
index 14d67846aa1..2062180a52a 100644
--- a/chromium/ppapi/cpp/completion_callback.h
+++ b/chromium/ppapi/cpp/completion_callback.h
@@ -7,7 +7,6 @@
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/extensions/ext_output_traits.h"
#include "ppapi/cpp/logging.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/output_traits.h"
@@ -168,50 +167,6 @@ class CompletionCallback {
PP_CompletionCallback cc_;
};
-namespace internal {
-
-/// The base class of [Ext]CompletionCallbackWithOutput.
-///
-/// The template parameter Traits determines the storage type
-/// (OutputStorageType), the output parameter type used by the browser
-/// (APIArgType), and how to map OutputStorageType to APIArgType.
-template <typename T, typename Traits>
-class CompletionCallbackWithOutputBase : public CompletionCallback {
- public:
- typedef typename Traits::StorageType OutputStorageType;
- typedef typename Traits::APIArgType APIArgType;
- typedef Traits TraitsType;
-
- explicit CompletionCallbackWithOutputBase(OutputStorageType* output)
- : CompletionCallback(),
- output_(output) {
- }
-
- CompletionCallbackWithOutputBase(PP_CompletionCallback_Func func,
- void* user_data,
- OutputStorageType* output)
- : CompletionCallback(func, user_data),
- output_(output) {
- }
-
- CompletionCallbackWithOutputBase(PP_CompletionCallback_Func func,
- void* user_data,
- int32_t flags,
- OutputStorageType* output)
- : CompletionCallback(func, user_data, flags),
- output_(output) {
- }
-
- APIArgType output() const {
- return Traits::StorageToAPIArg(*output_);
- }
-
- private:
- OutputStorageType* output_;
-};
-
-} // namespace internal
-
/// A CompletionCallbackWithOutput defines a completion callback that
/// additionally stores a pointer to some output data. Some C++ wrappers
/// take a CompletionCallbackWithOutput when the browser is returning a
@@ -228,37 +183,36 @@ class CompletionCallbackWithOutputBase : public CompletionCallback {
/// it just stores a pointer to it. C++ wrapper objects that accept a
/// CompletionCallbackWithOutput will retrieve this pointer and pass it to
/// the browser as the output parameter.
-template <typename T>
-class CompletionCallbackWithOutput
- : public internal::CompletionCallbackWithOutputBase<
- T, internal::CallbackOutputTraits<T> > {
+template<typename T>
+class CompletionCallbackWithOutput : public CompletionCallback {
public:
- typedef internal::CompletionCallbackWithOutputBase<
- T, internal::CallbackOutputTraits<T> > BaseType;
+ /// The type that will actually be stored in the completion callback. In the
+ /// common case, this will be equal to the template parameter (for example,
+ /// CompletionCallbackWithOutput<int> would obviously take an int*. However,
+ /// resources are passed as PP_Resource, vars as PP_Var, and arrays as our
+ /// special ArrayOutputAdapter object. The CallbackOutputTraits defines
+ /// specializations for all of these cases.
+ typedef typename internal::CallbackOutputTraits<T>::StorageType
+ OutputStorageType;
+ typedef typename internal::CallbackOutputTraits<T>::APIArgType
+ APIArgType;
/// The default constructor will create a blocking
- /// <code>CompletionCallbackWithOutput</code> that references the given output
+ /// <code>CompletionCallback</code> that references the given output
/// data.
///
/// @param[in] output A pointer to the data associated with the callback. The
/// caller must ensure that this pointer outlives the completion callback.
- /// In the common case, <code>OutputStorageType</code> will be equal to the
- /// template parameter T (for example,
- /// <code>CompletionCallbackWithOutput<int></code> would obviously take an
- /// int*. However, resources are passed as PP_Resource, vars as PP_Var, and
- /// arrays as our special ArrayOutputAdapter object.
- /// <code>internal::CallbackOutputTraits</code> defines specializations for
- /// all of these cases.
///
/// <strong>Note:</strong> Blocking completion callbacks are only allowed from
- /// background threads.
- explicit CompletionCallbackWithOutput(
- typename BaseType::OutputStorageType* output)
- : BaseType(output) {
+ /// from background threads.
+ CompletionCallbackWithOutput(OutputStorageType* output)
+ : CompletionCallback(),
+ output_(output) {
}
- /// A constructor for creating a <code>CompletionCallbackWithOutput</code>
- /// that references the given output data.
+ /// A constructor for creating a <code>CompletionCallback</code> that
+ /// references the given output data.
///
/// @param[in] func The function to be called on completion.
/// @param[in] user_data The user data to be passed to the callback function.
@@ -268,12 +222,13 @@ class CompletionCallbackWithOutput
/// caller must ensure that this pointer outlives the completion callback.
CompletionCallbackWithOutput(PP_CompletionCallback_Func func,
void* user_data,
- typename BaseType::OutputStorageType* output)
- : BaseType(func, user_data, output) {
+ OutputStorageType* output)
+ : CompletionCallback(func, user_data),
+ output_(output) {
}
- /// A constructor for creating a <code>CompletionCallbackWithOutput</code>
- /// that references the given output data.
+ /// A constructor for creating a <code>CompletionCallback</code> that
+ /// references the given output data.
///
/// @param[in] func The function to be called on completion.
///
@@ -290,82 +245,19 @@ class CompletionCallbackWithOutput
CompletionCallbackWithOutput(PP_CompletionCallback_Func func,
void* user_data,
int32_t flags,
- typename BaseType::OutputStorageType* output)
- : BaseType(func, user_data, flags, output) {
- }
-};
-
-namespace ext {
-
-/// ExtCompletionCallbackWithOutput is similar to CompletionCallbackWithOutput,
-/// but used by APIs within the pp::ext namespace. Usually it is used with the
-/// CompletionCallbackFactory's NewExtCallbackWithOutput.
-template <typename T>
-class ExtCompletionCallbackWithOutput
- : public ::pp::internal::CompletionCallbackWithOutputBase<
- T, internal::ExtCallbackOutputTraits<T> > {
- public:
- typedef ::pp::internal::CompletionCallbackWithOutputBase<
- T, internal::ExtCallbackOutputTraits<T> > BaseType;
-
- /// The default constructor will create a blocking
- /// <code>ExtCompletionCallbackWithOutput</code> that references the given
- /// output data.
- ///
- /// @param[in] output A pointer to the data associated with the callback. The
- /// caller must ensure that this pointer outlives the completion callback.
- /// <code>OutputStorageType</code> is either
- /// <code>ext::internal::ArrayVarOutputAdapterWithStorage<U></code> (if the
- /// template parameter T is of the form std::vector<U>) or
- /// <code>ext::internal::VarOutputAdapterWithStorage<T></code> (otherwise).
- ///
- /// <strong>Note:</strong> Blocking completion callbacks are only allowed from
- /// background threads.
- explicit ExtCompletionCallbackWithOutput(
- typename BaseType::OutputStorageType* output)
- : BaseType(output) {
+ OutputStorageType* output)
+ : CompletionCallback(func, user_data, flags),
+ output_(output) {
}
- /// A constructor for creating an <code>ExtCompletionCallbackWithOutput</code>
- /// that references the given output data.
- ///
- /// @param[in] func The function to be called on completion.
- /// @param[in] user_data The user data to be passed to the callback function.
- /// This is optional and is typically used to help track state in case of
- /// multiple pending callbacks.
- /// @param[in] output A pointer to the data associated with the callback. The
- /// caller must ensure that this pointer outlives the completion callback.
- ExtCompletionCallbackWithOutput(PP_CompletionCallback_Func func,
- void* user_data,
- typename BaseType::OutputStorageType* output)
- : BaseType(func, user_data, output) {
+ APIArgType output() const {
+ return internal::CallbackOutputTraits<T>::StorageToAPIArg(*output_);
}
- /// A constructor for creating an <code>ExtCompletionCallbackWithOutput</code>
- /// that references the given output data.
- ///
- /// @param[in] func The function to be called on completion.
- ///
- /// @param[in] user_data The user data to be passed to the callback function.
- /// This is optional and is typically used to help track state in case of
- /// multiple pending callbacks.
- ///
- /// @param[in] flags Bit field combination of
- /// <code>PP_CompletionCallback_Flag</code> flags used to control how
- /// non-NULL callbacks are scheduled by asynchronous methods.
- ///
- /// @param[in] output A pointer to the data associated with the callback. The
- /// caller must ensure that this pointer outlives the completion callback.
- ExtCompletionCallbackWithOutput(PP_CompletionCallback_Func func,
- void* user_data,
- int32_t flags,
- typename BaseType::OutputStorageType* output)
- : BaseType(func, user_data, flags, output) {
- }
+ private:
+ OutputStorageType* output_;
};
-} // namespace ext
-
/// BlockUntilComplete() is used in place of an actual completion callback
/// to request blocking behavior. If specified, the calling thread will block
/// until the function completes. Blocking completion callbacks are only
diff --git a/chromium/ppapi/cpp/compositor.cc b/chromium/ppapi/cpp/compositor.cc
new file mode 100644
index 00000000000..163a241ed53
--- /dev/null
+++ b/chromium/ppapi/cpp/compositor.cc
@@ -0,0 +1,79 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/compositor.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_Compositor_0_1>() {
+ return PPB_COMPOSITOR_INTERFACE_0_1;
+}
+
+} // namespace
+
+Compositor::Compositor() {
+}
+
+Compositor::Compositor(const InstanceHandle& instance) {
+ if (has_interface<PPB_Compositor_0_1>()) {
+ PassRefFromConstructor(get_interface<PPB_Compositor_0_1>()->Create(
+ instance.pp_instance()));
+ }
+}
+
+Compositor::Compositor(
+ const Compositor& other) : Resource(other) {
+}
+
+Compositor::Compositor(const Resource& resource)
+ : Resource(resource) {
+ PP_DCHECK(IsCompositor(resource));
+}
+
+Compositor::Compositor(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+Compositor::~Compositor() {
+}
+
+CompositorLayer Compositor::AddLayer() {
+ PP_Resource layer = 0;
+ if (has_interface<PPB_Compositor_0_1>()) {
+ layer = get_interface<PPB_Compositor_0_1>()->AddLayer(pp_resource());
+ }
+ return CompositorLayer(PASS_REF, layer);
+}
+
+int32_t Compositor::CommitLayers(const CompletionCallback& cc) {
+ if (has_interface<PPB_Compositor_0_1>()) {
+ return get_interface<PPB_Compositor_0_1>()->CommitLayers(
+ pp_resource(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t Compositor::ResetLayers() {
+ if (has_interface<PPB_Compositor_0_1>()) {
+ return get_interface<PPB_Compositor_0_1>()->ResetLayers(pp_resource());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+bool Compositor::IsCompositor(const Resource& resource) {
+ if (has_interface<PPB_Compositor_0_1>()) {
+ return PP_ToBool(get_interface<PPB_Compositor_0_1>()->
+ IsCompositor(resource.pp_resource()));
+ }
+ return false;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/compositor.h b/chromium/ppapi/cpp/compositor.h
new file mode 100644
index 00000000000..c89e26244d9
--- /dev/null
+++ b/chromium/ppapi/cpp/compositor.h
@@ -0,0 +1,90 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_COMPOSITOR_H_
+#define PPAPI_CPP_COMPOSITOR_H_
+
+#include "ppapi/c/ppb_compositor.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/compositor_layer.h"
+#include "ppapi/cpp/resource.h"
+
+/// @file
+/// This file defines the API to create a compositor in the browser.
+namespace pp {
+
+/// The <code>Compositor</code> interface is used for setting
+/// <code>CompositorLayer</code> layers to the Chromium compositor for
+/// compositing. This allows a plugin to combine different sources of visual
+/// data efficiently, such as <code>ImageData</code> images and OpenGL textures.
+/// See also <code>CompositorLayer</code> for more information.
+class Compositor : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>Compositor</code> object.
+ Compositor();
+
+ /// A constructor for creating and initializing a compositor.
+ ///
+ /// On failure, the object will be is_null().
+ explicit Compositor(const InstanceHandle& instance);
+
+ /// The copy constructor for <code>Compositor</code>.
+ ///
+ /// @param[in] other A reference to a <code>Compositor</code>.
+ Compositor(const Compositor& other);
+
+ /// Constructs a <code>Compositor</code> from a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_Compositor</code> resource.
+ explicit Compositor(const Resource& resource);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added on behalf of the caller.
+ ///
+ /// @param[in] resource A <code>PPB_Compositor</code> resource.
+ Compositor(PassRef, PP_Resource resource);
+
+ /// Destructor.
+ ~Compositor();
+
+ /// Creates a new <code>CompositorLayer</code> and adds it to the end of the
+ /// layer stack. A <code>CompositorLayer</code> containing the layer is
+ /// returned. It is uninitialized, <code>SetColor()</code>,
+ /// <code>SetTexture</code> or <code>SetImage</code> should be used to
+ /// initialize it. The layer will appear above other pre-existing layers.
+ /// If <code>ResetLayers</code> is called or the <code>PPB_Compositor</code>
+ /// is released, the returned layer will be invalidated, and any further calls
+ /// on the layer will return <code>PP_ERROR_BADRESOURCE</code>.
+ ///
+ /// @return A <code>CompositorLayer</code> containing the compositor layer
+ /// resource.
+ CompositorLayer AddLayer();
+
+ /// Commits layers added by <code>AddLayer()</code> to the chromium
+ /// compositor.
+ ///
+ /// @param[in] cc A <code>CompletionCallback</code> to be called when
+ /// layers have been represented on screen.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t CommitLayers(const CompletionCallback& cc);
+
+ /// Resets layers added by <code>AddLayer()</code>
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t ResetLayers();
+
+ /// Checks whether a <code>Resource</code> is a compositor, to test whether
+ /// it is appropriate for use with the <code>Compositor</code> constructor.
+ ///
+ /// @param[in] resource A <code>Resource</code> to test.
+ ///
+ /// @return True if <code>resource</code> is a compositor.
+ static bool IsCompositor(const Resource& resource);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_COMPOSITOR_H_
diff --git a/chromium/ppapi/cpp/compositor_layer.cc b/chromium/ppapi/cpp/compositor_layer.cc
new file mode 100644
index 00000000000..cbe823a3ac0
--- /dev/null
+++ b/chromium/ppapi/cpp/compositor_layer.cc
@@ -0,0 +1,142 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/compositor_layer.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_CompositorLayer_0_1>() {
+ return PPB_COMPOSITORLAYER_INTERFACE_0_1;
+}
+
+} // namespace
+
+CompositorLayer::CompositorLayer() {
+}
+
+CompositorLayer::CompositorLayer(
+ const CompositorLayer& other) : Resource(other) {
+}
+
+CompositorLayer::CompositorLayer(const Resource& resource)
+ : Resource(resource) {
+ PP_DCHECK(IsCompositorLayer(resource));
+}
+
+CompositorLayer::CompositorLayer(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+CompositorLayer::~CompositorLayer() {
+}
+
+int32_t CompositorLayer::SetColor(float red,
+ float green,
+ float blue,
+ float alpha,
+ const Size& size) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetColor(
+ pp_resource(), red, green, blue, alpha, &size.pp_size());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetTexture(const Graphics3D& context,
+ uint32_t texture,
+ const Size& size,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetTexture(
+ pp_resource(), context.pp_resource(), texture, &size.pp_size(),
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t CompositorLayer::SetImage(const ImageData& image,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetImage(
+ pp_resource(), image.pp_resource(), NULL,
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t CompositorLayer::SetImage(const ImageData& image,
+ const Size& size,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetImage(
+ pp_resource(), image.pp_resource(), &size.pp_size(),
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t CompositorLayer::SetClipRect(const Rect& rect) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetClipRect(
+ pp_resource(), &rect.pp_rect());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetTransform(const float matrix[16]) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetTransform(
+ pp_resource(), matrix);
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetOpacity(float opacity) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetOpacity(
+ pp_resource(), opacity);
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetBlendMode(PP_BlendMode mode) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetBlendMode(
+ pp_resource(), mode);
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetSourceRect(const FloatRect& rect) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetSourceRect(
+ pp_resource(), &rect.pp_float_rect());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+int32_t CompositorLayer::SetPremultipliedAlpha(bool premult) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return get_interface<PPB_CompositorLayer_0_1>()->SetPremultipliedAlpha(
+ pp_resource(), PP_FromBool(premult));
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+bool CompositorLayer::IsCompositorLayer(const Resource& resource) {
+ if (has_interface<PPB_CompositorLayer_0_1>()) {
+ return PP_ToBool(get_interface<PPB_CompositorLayer_0_1>()->
+ IsCompositorLayer(resource.pp_resource()));
+ }
+ return false;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/compositor_layer.h b/chromium/ppapi/cpp/compositor_layer.h
new file mode 100644
index 00000000000..f431bd8d5ae
--- /dev/null
+++ b/chromium/ppapi/cpp/compositor_layer.h
@@ -0,0 +1,188 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_COMPOSITOR_LAYER_H_
+#define PPAPI_CPP_COMPOSITOR_LAYER_H_
+
+#include "ppapi/c/ppb_compositor_layer.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/image_data.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/resource.h"
+#include "ppapi/cpp/size.h"
+
+namespace pp {
+
+class CompositorLayer : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>CompositorLayer</code> object.
+ CompositorLayer();
+
+ /// The copy constructor for <code>CompositorLayer</code>.
+ ///
+ /// @param[in] other A reference to a <code>CompositorLayer</code>.
+ CompositorLayer(const CompositorLayer& other);
+
+ /// Constructs a <code>CompositorLayer</code> from a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_CompositorLayer</code> resource.
+ explicit CompositorLayer(const Resource& resource);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added for you.
+ ///
+ /// @param[in] resource A <code>PPB_CompositorLayer</code> resource.
+ CompositorLayer(PassRef, PP_Resource resource);
+
+ /// Destructor.
+ ~CompositorLayer();
+
+ /// Sets the color of a solid color layer. If the layer is uninitialized, it
+ /// will initialize the layer first, and then set its color. If the layer has
+ /// been initialized to another kind of layer, the layer will not be changed,
+ /// and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ ///
+ /// param[in] red A <code>float</code> for the red color component. It will be
+ /// clamped to [0, 1]
+ /// param[in] green A <code>float</code> for the green color component.
+ /// It will be clamped to [0, 1].
+ /// param[in] blue A <code>float</code> for the blue color component. It will
+ /// be clamped to [0, 1].
+ /// param[in] alpha A <code>float</code> for the alpha color component.
+ /// It will be clamped to [0, 1].
+ /// param[in] size A <code>Size</code> for the size of the layer before
+ /// transform.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetColor(float red,
+ float green,
+ float blue,
+ float alpha,
+ const Size& size);
+
+ /// Sets the texture of a texture layer. If the layer is uninitialized, it
+ /// will initialize the layer first, and then set its texture. The source rect
+ /// will be set to ((0, 0), (1, 1)). If the layer has been initialized to
+ /// another kind of layer, the layer will not be changed, and
+ /// <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ ///
+ /// param[in] context A <code>Graphics3D</code> corresponding to a graphics 3d
+ /// resource which owns the GL texture.
+ /// param[in] texture A GL texture object id.
+ /// param[in] size A <code>Size</code> for the size of the layer before
+ /// transform.
+ /// param[in] cc A <code>CompletionCallback</code> to be called when
+ /// the texture is released by Chromium compositor.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetTexture(const Graphics3D& context,
+ uint32_t texture,
+ const Size& size,
+ const CompletionCallback& cc);
+
+ /// Sets the image of an image layer. If the layer is uninitialized, it will
+ /// initiliaze the layer first, and then set the image of it. If the layer has
+ /// been initialized to another kind of layer, the layer will not be changed,
+ /// and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ ///
+ /// param[in] image_data A <code>PP_Resource</code> corresponding to an image
+ /// data resource.
+ /// param[in] cc A <code>CompletionCallback</code> to be called when
+ /// the image data is released by Chromium compositor.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetImage(const ImageData& image,
+ const CompletionCallback& callback);
+
+ /// Sets the image of an image layer. If the layer is uninitialized, it will
+ /// initialize the layer first, and then set its image. The layer size will
+ /// be set to the image's size. The source rect will be set to the full image.
+ /// If the layer has been initialized to another kind of layer, the layer will
+ /// not be changed, and <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ ///
+ /// param[in] image_data A <code>ImageData</code> corresponding to an image
+ /// data resource.
+ /// param[in] size A <code>Size</code> for the size of the layer before
+ /// transform.
+ /// param[in] cc A <code>CompletionCallback</code> to be called when the image
+ /// data is released by Chromium compositor.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetImage(const ImageData& image,
+ const Size& size,
+ const CompletionCallback& callback);
+
+ /// Sets a clip rectangle for a compositor layer. The Chromium compositor
+ /// applies a transform matrix on the layer first, and then clips the layer
+ /// with the rectangle.
+ ///
+ /// param[in] rect The clip rectangle. The origin is top-left corner of
+ /// the plugin.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetClipRect(const Rect& rect);
+
+ /// Sets a transform matrix which is used to composite the layer.
+ ///
+ /// param[in] matrix A float array with 16 elements. The matrix is coloum
+ /// major. The default transform matrix is an identity matrix.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetTransform(const float matrix[16]);
+
+ /// Sets the opacity value which will be applied to the layer. The effective
+ /// value of each pixel is computed as:
+ ///
+ /// if (premult_alpha)
+ /// pixel.rgb = pixel.rgb * opacity;
+ /// pixel.a = pixel.a * opactiy;
+ ///
+ /// param[in] opacity A <code>float</code> for the opacity value.
+ /// The default value is 1.0f.
+ ///
+ ///@return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetOpacity(float opacity);
+
+ /// Sets the blend mode which is used to composite the layer.
+ ///
+ /// param[in] mode A <code>PP_BlendMode</code>. The default value is
+ /// <code>PP_BLENDMODE_SRC_OVER</code>.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetBlendMode(PP_BlendMode mode);
+
+ /// Sets a source rectangle for a texture layer or an image layer.
+ ///
+ /// param[in] rect A <code>FloatRect</code> for an area of the source to
+ /// consider. For a texture layer, rect is in uv coordinates. For an image
+ /// layer, rect is in pixels. If the rect is beyond the dimensions of the
+ /// texture or image, <code>PP_ERROR_BADARGUMENT</code> will be returned.
+ /// If the layer size does not match the source rect size, bilinear scaling
+ /// will be used.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetSourceRect(const FloatRect& rect);
+
+ /// Sets the premultiplied alpha for an texture layer.
+ ///
+ /// param[in] premult A <code>bool</code> with <code>true</code> if
+ /// pre-multiplied alpha is used.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t SetPremultipliedAlpha(bool premult);
+
+ /// Checks whether a <code>Resource</code> is a compositor layer, to test
+ /// whether it is appropriate for use with the <code>CompositorLayer</code>
+ /// constructor.
+ ///
+ /// @param[in] resource A <code>Resource</code> to test.
+ ///
+ /// @return True if <code>resource</code> is a compositor layer.
+ static bool IsCompositorLayer(const Resource& resource);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_COMPOSITOR_LAYER_H_
diff --git a/chromium/ppapi/cpp/dev/audio_input_dev.cc b/chromium/ppapi/cpp/dev/audio_input_dev.cc
index 0c2f37786fe..c98fefa947a 100644
--- a/chromium/ppapi/cpp/dev/audio_input_dev.cc
+++ b/chromium/ppapi/cpp/dev/audio_input_dev.cc
@@ -6,7 +6,6 @@
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/dev/resource_array_dev.h"
#include "ppapi/cpp/instance_handle.h"
#include "ppapi/cpp/module_impl.h"
@@ -14,10 +13,6 @@ namespace pp {
namespace {
-template <> const char* interface_name<PPB_AudioInput_Dev_0_2>() {
- return PPB_AUDIO_INPUT_DEV_INTERFACE_0_2;
-}
-
template <> const char* interface_name<PPB_AudioInput_Dev_0_3>() {
return PPB_AUDIO_INPUT_DEV_INTERFACE_0_3;
}
@@ -38,9 +33,6 @@ AudioInput_Dev::AudioInput_Dev(const InstanceHandle& instance) {
} else if (has_interface<PPB_AudioInput_Dev_0_3>()) {
PassRefFromConstructor(get_interface<PPB_AudioInput_Dev_0_3>()->Create(
instance.pp_instance()));
- } else if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- PassRefFromConstructor(get_interface<PPB_AudioInput_Dev_0_2>()->Create(
- instance.pp_instance()));
}
}
@@ -50,8 +42,7 @@ AudioInput_Dev::~AudioInput_Dev() {
// static
bool AudioInput_Dev::IsAvailable() {
return has_interface<PPB_AudioInput_Dev_0_4>() ||
- has_interface<PPB_AudioInput_Dev_0_3>() ||
- has_interface<PPB_AudioInput_Dev_0_2>();
+ has_interface<PPB_AudioInput_Dev_0_3>();
}
int32_t AudioInput_Dev::EnumerateDevices(
@@ -64,19 +55,6 @@ int32_t AudioInput_Dev::EnumerateDevices(
return get_interface<PPB_AudioInput_Dev_0_3>()->EnumerateDevices(
pp_resource(), callback.output(), callback.pp_completion_callback());
}
- if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- if (!callback.pp_completion_callback().func)
- return callback.MayForce(PP_ERROR_BLOCKS_MAIN_THREAD);
-
- // ArrayOutputCallbackConverter is responsible to delete it.
- ResourceArray_Dev::ArrayOutputCallbackData* data =
- new ResourceArray_Dev::ArrayOutputCallbackData(
- callback.output(), callback.pp_completion_callback());
- return get_interface<PPB_AudioInput_Dev_0_2>()->EnumerateDevices(
- pp_resource(), &data->resource_array_output,
- PP_MakeCompletionCallback(
- &ResourceArray_Dev::ArrayOutputCallbackConverter, data));
- }
return callback.MayForce(PP_ERROR_NOINTERFACE);
}
@@ -113,18 +91,13 @@ int32_t AudioInput_Dev::Open(const DeviceRef_Dev& device_ref,
int32_t AudioInput_Dev::Open(
const DeviceRef_Dev& device_ref,
const AudioConfig& config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
void* user_data,
const CompletionCallback& callback) {
if (has_interface<PPB_AudioInput_Dev_0_3>()) {
return get_interface<PPB_AudioInput_Dev_0_3>()->Open(
pp_resource(), device_ref.pp_resource(), config.pp_resource(),
- audio_input_callback_0_2, user_data, callback.pp_completion_callback());
- }
- if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- return get_interface<PPB_AudioInput_Dev_0_2>()->Open(
- pp_resource(), device_ref.pp_resource(), config.pp_resource(),
- audio_input_callback_0_2, user_data, callback.pp_completion_callback());
+ audio_input_callback_0_3, user_data, callback.pp_completion_callback());
}
return callback.MayForce(PP_ERROR_NOINTERFACE);
@@ -139,10 +112,6 @@ bool AudioInput_Dev::StartCapture() {
return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_3>()->StartCapture(
pp_resource()));
}
- if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_2>()->StartCapture(
- pp_resource()));
- }
return false;
}
@@ -156,10 +125,6 @@ bool AudioInput_Dev::StopCapture() {
return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_3>()->StopCapture(
pp_resource()));
}
- if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_2>()->StopCapture(
- pp_resource()));
- }
return false;
}
@@ -169,8 +134,6 @@ void AudioInput_Dev::Close() {
get_interface<PPB_AudioInput_Dev_0_4>()->Close(pp_resource());
} else if (has_interface<PPB_AudioInput_Dev_0_3>()) {
get_interface<PPB_AudioInput_Dev_0_3>()->Close(pp_resource());
- } else if (has_interface<PPB_AudioInput_Dev_0_2>()) {
- get_interface<PPB_AudioInput_Dev_0_2>()->Close(pp_resource());
}
}
diff --git a/chromium/ppapi/cpp/dev/audio_input_dev.h b/chromium/ppapi/cpp/dev/audio_input_dev.h
index cb1f4ef6cd3..a6e5a544ca5 100644
--- a/chromium/ppapi/cpp/dev/audio_input_dev.h
+++ b/chromium/ppapi/cpp/dev/audio_input_dev.h
@@ -50,10 +50,10 @@ class AudioInput_Dev : public Resource {
void* user_data,
const CompletionCallback& callback);
- /// Requires <code>PPB_AudioInput_Dev</code> version 0.2 or 0.3.
+ /// Requires <code>PPB_AudioInput_Dev</code> version 0.3.
int32_t Open(const DeviceRef_Dev& device_ref,
const AudioConfig& config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
void* user_data,
const CompletionCallback& callback);
diff --git a/chromium/ppapi/cpp/dev/find_dev.cc b/chromium/ppapi/cpp/dev/find_dev.cc
deleted file mode 100644
index e9640bc7e11..00000000000
--- a/chromium/ppapi/cpp/dev/find_dev.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/cpp/dev/find_dev.h"
-
-#include "ppapi/c/dev/ppb_find_dev.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Find_Dev>() {
- return PPB_FIND_DEV_INTERFACE;
-}
-
-static const char kPPPFindInterface[] = PPP_FIND_DEV_INTERFACE;
-
-PP_Bool StartFind(PP_Instance instance,
- const char* text,
- PP_Bool case_sensitive) {
- void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
- if (!object)
- return PP_FALSE;
- bool return_value = static_cast<Find_Dev*>(object)->StartFind(
- text, PP_ToBool(case_sensitive));
- return PP_FromBool(return_value);
-}
-
-void SelectFindResult(PP_Instance instance, PP_Bool forward) {
- void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
- if (object)
- static_cast<Find_Dev*>(object)->SelectFindResult(PP_ToBool(forward));
-}
-
-void StopFind(PP_Instance instance) {
- void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
- if (object)
- static_cast<Find_Dev*>(object)->StopFind();
-}
-
-const PPP_Find_Dev ppp_find = {
- &StartFind,
- &SelectFindResult,
- &StopFind
-};
-
-} // namespace
-
-Find_Dev::Find_Dev(Instance* instance) : associated_instance_(instance) {
- Module::Get()->AddPluginInterface(kPPPFindInterface, &ppp_find);
- instance->AddPerInstanceObject(kPPPFindInterface, this);
-}
-
-Find_Dev::~Find_Dev() {
- Instance::RemovePerInstanceObject(associated_instance_,
- kPPPFindInterface, this);
-}
-
-void Find_Dev::NumberOfFindResultsChanged(int32_t total, bool final_result) {
- if (has_interface<PPB_Find_Dev>()) {
- get_interface<PPB_Find_Dev>()->NumberOfFindResultsChanged(
- associated_instance_.pp_instance(), total, PP_FromBool(final_result));
- }
-}
-
-void Find_Dev::SelectedFindResultChanged(int32_t index) {
- if (has_interface<PPB_Find_Dev>()) {
- get_interface<PPB_Find_Dev>()->SelectedFindResultChanged(
- associated_instance_.pp_instance(), index);
- }
-}
-
-} // namespace pp
diff --git a/chromium/ppapi/cpp/dev/graphics_2d_dev.cc b/chromium/ppapi/cpp/dev/graphics_2d_dev.cc
deleted file mode 100644
index 3fd000cc2d6..00000000000
--- a/chromium/ppapi/cpp/dev/graphics_2d_dev.cc
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/cpp/dev/graphics_2d_dev.h"
-
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/point.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Graphics2D_Dev_0_1>() {
- return PPB_GRAPHICS2D_DEV_INTERFACE_0_1;
-}
-
-template <> const char* interface_name<PPB_Graphics2D_Dev_0_2>() {
- return PPB_GRAPHICS2D_DEV_INTERFACE_0_2;
-}
-
-} // namespace
-
-// static
-bool Graphics2D_Dev::SupportsScale() {
- return has_interface<PPB_Graphics2D_Dev_0_1>() ||
- has_interface<PPB_Graphics2D_Dev_0_2>();
-}
-
-bool Graphics2D_Dev::SetScale(float scale) {
- if (has_interface<PPB_Graphics2D_Dev_0_2>()) {
- return PP_ToBool(get_interface<PPB_Graphics2D_Dev_0_2>()->SetScale(
- pp_resource(), scale));
- }
- if (has_interface<PPB_Graphics2D_Dev_0_1>()) {
- return PP_ToBool(get_interface<PPB_Graphics2D_Dev_0_1>()->SetScale(
- pp_resource(), scale));
- }
- return false;
-}
-
-float Graphics2D_Dev::GetScale() {
- if (has_interface<PPB_Graphics2D_Dev_0_2>())
- return get_interface<PPB_Graphics2D_Dev_0_2>()->GetScale(pp_resource());
- if (has_interface<PPB_Graphics2D_Dev_0_1>())
- return get_interface<PPB_Graphics2D_Dev_0_1>()->GetScale(pp_resource());
- return 1.0f;
-}
-
-void Graphics2D_Dev::SetOffset(const pp::Point& offset) {
- if (!has_interface<PPB_Graphics2D_Dev_0_2>())
- return;
- get_interface<PPB_Graphics2D_Dev_0_2>()->SetOffset(pp_resource(),
- &offset.pp_point());
-}
-
-void Graphics2D_Dev::SetResizeMode(PP_Graphics2D_Dev_ResizeMode resize_mode) {
- if (!has_interface<PPB_Graphics2D_Dev_0_2>())
- return;
- get_interface<PPB_Graphics2D_Dev_0_2>()->SetResizeMode(pp_resource(),
- resize_mode);
-}
-
-} // namespace pp
diff --git a/chromium/ppapi/cpp/dev/graphics_2d_dev.h b/chromium/ppapi/cpp/dev/graphics_2d_dev.h
deleted file mode 100644
index 52c2e666d9e..00000000000
--- a/chromium/ppapi/cpp/dev/graphics_2d_dev.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_
-#define PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_
-
-#include "ppapi/cpp/graphics_2d.h"
-
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
-
-namespace pp {
-
-class Point;
-
-// Graphics2DDev is a version of Graphics2D that exposes under-development APIs
-// for HiDPI
-class Graphics2D_Dev : public Graphics2D {
- public:
- /// Default constructor for creating an is_null()
- /// <code>Graphics2D_Dev</code> object.
- Graphics2D_Dev() : Graphics2D() {}
-
- // Constructor for creating a <code>Graphics2DDev</code> object from an
- // existing <code>Graphics2D</code> object.
- Graphics2D_Dev(const Graphics2D& other) : Graphics2D(other) {}
-
- virtual ~Graphics2D_Dev() {}
-
- /// Returns true if SetScale and GetScale are supported. False if not.
- static bool SupportsScale();
-
- /// SetScale() sets the scale factor that will be applied when painting the
- /// graphics context onto the output device. Typically, if rendering at device
- /// resolution is desired, the context would be created with the width and
- /// height scaled up by the view's GetDeviceScale and SetScale called with a
- /// scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
- /// to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
- /// 2.0, one would call Create with a size of (w=400, h=200) and then call
- /// SetScale with 0.5. One would then treat each pixel in the context as a
- /// single device pixel.
- ///
- /// @param[in] scale The scale to apply when painting.
- ///
- /// @return Returns <code>true</code> on success or <code>false</code>
- /// if the resource is invalid or the scale factor is 0 or less.
- bool SetScale(float scale);
-
- /// GetScale() gets the scale factor that will be applied when painting the
- /// graphics context onto the output device.
- ///
- /// @return Returns the scale factor for the graphics context. If the resource
- /// is invalid, 0.0 will be returned.
- float GetScale();
-
- /// Set the offset into the plugin element at which the graphics context is
- /// painted. This allows a portion of the plugin element to be painted to.
- /// The new offset will only be applied after Flush() has been called.
- ///
- /// @param[in] resource A <code>Graphics2D</code> context resource.
- /// @param[in] offset The offset at which the context should be painted.
- void SetOffset(const pp::Point& offset);
-
- /// Sets the resize mode for the graphics context. When a plugin element is
- /// resized in the DOM, it takes time for the plugin to update the graphics
- /// context in the renderer. These options affect how the existing context is
- /// displayed until the backing store is updated by the plugin.
- ///
- ///@param[in] resource A <code>Graphics2D</code> context resource.
- ///@param[in] resize_mode The resize mode to change this context to.
- void SetResizeMode(PP_Graphics2D_Dev_ResizeMode resize_mode);
-};
-
-} // namespace pp
-
-#endif // PPAPI_CPP_DEV_GRAPHICS_2D_DEV_H_
diff --git a/chromium/ppapi/cpp/dev/printing_dev.h b/chromium/ppapi/cpp/dev/printing_dev.h
index b219b13116f..869dbacc5b2 100644
--- a/chromium/ppapi/cpp/dev/printing_dev.h
+++ b/chromium/ppapi/cpp/dev/printing_dev.h
@@ -15,7 +15,7 @@ namespace pp {
class Instance;
// You would typically use this either via inheritance on your instance or
-// by composition: see find_dev.h for an example.
+// by composition: see find_private.h for an example.
class Printing_Dev : public Resource {
public:
// The instance parameter must outlive this class.
diff --git a/chromium/ppapi/cpp/dev/resource_array_dev.cc b/chromium/ppapi/cpp/dev/resource_array_dev.cc
deleted file mode 100644
index 5bd25493264..00000000000
--- a/chromium/ppapi/cpp/dev/resource_array_dev.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/cpp/dev/resource_array_dev.h"
-
-#include "ppapi/c/dev/ppb_resource_array_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_ResourceArray_Dev>() {
- return PPB_RESOURCEARRAY_DEV_INTERFACE;
-}
-
-} // namespace
-
-ResourceArray_Dev::ResourceArray_Dev() {
-}
-
-ResourceArray_Dev::ResourceArray_Dev(PassRef, PP_Resource resource)
- : Resource(PASS_REF, resource) {
-}
-
-ResourceArray_Dev::ResourceArray_Dev(const ResourceArray_Dev& other)
- : Resource(other) {
-}
-
-ResourceArray_Dev::ResourceArray_Dev(const InstanceHandle& instance,
- const PP_Resource elements[],
- uint32_t size) {
- if (has_interface<PPB_ResourceArray_Dev>()) {
- PassRefFromConstructor(get_interface<PPB_ResourceArray_Dev>()->Create(
- instance.pp_instance(), elements, size));
- }
-}
-
-ResourceArray_Dev::~ResourceArray_Dev() {
-}
-
-ResourceArray_Dev& ResourceArray_Dev::operator=(
- const ResourceArray_Dev& other) {
- Resource::operator=(other);
- return *this;
-}
-
-uint32_t ResourceArray_Dev::size() const {
- if (!has_interface<PPB_ResourceArray_Dev>())
- return 0;
- return get_interface<PPB_ResourceArray_Dev>()->GetSize(pp_resource());
-}
-
-PP_Resource ResourceArray_Dev::operator[](uint32_t index) const {
- if (!has_interface<PPB_ResourceArray_Dev>())
- return 0;
- return get_interface<PPB_ResourceArray_Dev>()->GetAt(pp_resource(), index);
-}
-
-// static
-void ResourceArray_Dev::ArrayOutputCallbackConverter(void* user_data,
- int32_t result) {
- ArrayOutputCallbackData* data =
- static_cast<ArrayOutputCallbackData*>(user_data);
-
- // data->resource_array_output should remain 0 if the call failed.
- ResourceArray_Dev resources(PASS_REF, data->resource_array_output);
- PP_DCHECK(resources.is_null() || result == PP_OK);
-
- // Need to issue the "GetDataBuffer" even for error cases and when the number
- // of items is 0.
- PP_Resource* output_buf = static_cast<PP_Resource*>(
- data->output.GetDataBuffer(
- data->output.user_data, resources.is_null() ? 0 : resources.size(),
- sizeof(PP_Resource)));
- if (output_buf) {
- for (uint32_t index = 0; index < resources.size(); ++index) {
- output_buf[index] = resources[index];
- Module::Get()->core()->AddRefResource(output_buf[index]);
- }
- }
-
- PP_RunCompletionCallback(&data->original_callback, result);
- delete data;
-}
-
-} // namespace pp
diff --git a/chromium/ppapi/cpp/dev/resource_array_dev.h b/chromium/ppapi/cpp/dev/resource_array_dev.h
deleted file mode 100644
index f9daf5f0320..00000000000
--- a/chromium/ppapi/cpp/dev/resource_array_dev.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_DEV_RESOURCE_ARRAY_DEV_H_
-#define PPAPI_CPP_DEV_RESOURCE_ARRAY_DEV_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-class ResourceArray_Dev : public Resource {
- public:
- // Heap-allocated data passed to ArrayOutputCallbackConverter(). Please see
- // the comment of ArrayOutputCallbackConverter() for more details.
- struct ArrayOutputCallbackData {
- ArrayOutputCallbackData(const PP_ArrayOutput& array_output,
- const PP_CompletionCallback& callback)
- : resource_array_output(0),
- output(array_output),
- original_callback(callback) {
- }
-
- PP_Resource resource_array_output;
- PP_ArrayOutput output;
- PP_CompletionCallback original_callback;
- };
-
- ResourceArray_Dev();
-
- ResourceArray_Dev(PassRef, PP_Resource resource);
-
- ResourceArray_Dev(const ResourceArray_Dev& other);
-
- ResourceArray_Dev(const InstanceHandle& instance,
- const PP_Resource elements[],
- uint32_t size);
-
- virtual ~ResourceArray_Dev();
-
- ResourceArray_Dev& operator=(const ResourceArray_Dev& other);
-
- uint32_t size() const;
-
- PP_Resource operator[](uint32_t index) const;
-
- // This is an adapter for backward compatibility. It works with those APIs
- // which take a PPB_ResourceArray_Dev resource as output parameter, and
- // returns results using PP_ArrayOutput. For example:
- //
- // ResourceArray_Dev::ArrayOutputCallbackData* data =
- // new ResourceArray_Dev::ArrayOutputCallbackData(
- // pp_array_output, callback);
- // ppb_foo->Bar(
- // foo_resource, &data->resource_array_output,
- // PP_MakeCompletionCallback(
- // &ResourceArray_Dev::ArrayOutputCallbackConverter, data));
- //
- // It takes a heap-allocated ArrayOutputCallbackData struct passed as the user
- // data, and deletes it when the call completes.
- static void ArrayOutputCallbackConverter(void* user_data, int32_t result);
-};
-
-} // namespace pp
-
-#endif // PPAPI_CPP_DEV_RESOURCE_ARRAY_DEV_H_
diff --git a/chromium/ppapi/cpp/dev/var_resource_dev.cc b/chromium/ppapi/cpp/dev/var_resource_dev.cc
deleted file mode 100644
index 69fb15b0898..00000000000
--- a/chromium/ppapi/cpp/dev/var_resource_dev.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/cpp/dev/var_resource_dev.h"
-
-#include "ppapi/c/dev/ppb_var_resource_dev.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VarResource_Dev_0_1>() {
- return PPB_VAR_RESOURCE_DEV_INTERFACE_0_1;
-}
-
-} // namespace
-
-VarResource_Dev::VarResource_Dev(const pp::Resource& resource) : Var(Null()) {
- if (!has_interface<PPB_VarResource_Dev_0_1>()) {
- PP_NOTREACHED();
- return;
- }
-
- // Note: Var(Null()) sets is_managed_ to true, so |var_| will be properly
- // released upon destruction.
- var_ = get_interface<PPB_VarResource_Dev_0_1>()->VarFromResource(
- resource.pp_resource());
-}
-
-VarResource_Dev::VarResource_Dev(const Var& var) : Var(var) {
- if (!var.is_resource()) {
- PP_NOTREACHED();
-
- // This takes care of releasing the reference that this object holds.
- Var::operator=(Var(Null()));
- }
-}
-
-VarResource_Dev::VarResource_Dev(const VarResource_Dev& other) : Var(other) {}
-
-VarResource_Dev::~VarResource_Dev() {}
-
-VarResource_Dev& VarResource_Dev::operator=(const VarResource_Dev& other) {
- Var::operator=(other);
- return *this;
-}
-
-Var& VarResource_Dev::operator=(const Var& other) {
- if (other.is_resource()) {
- Var::operator=(other);
- } else {
- PP_NOTREACHED();
- Var::operator=(Var(Null()));
- }
- return *this;
-}
-
-pp::Resource VarResource_Dev::AsResource() {
- if (!has_interface<PPB_VarResource_Dev_0_1>())
- return pp::Resource();
-
- return pp::Resource(
- pp::PASS_REF,
- get_interface<PPB_VarResource_Dev_0_1>()->VarToResource(var_));
-}
-
-} // namespace pp
diff --git a/chromium/ppapi/cpp/dev/var_resource_dev.h b/chromium/ppapi/cpp/dev/var_resource_dev.h
deleted file mode 100644
index ab879a55635..00000000000
--- a/chromium/ppapi/cpp/dev/var_resource_dev.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_VAR_RESOURCE_DEV_H_
-#define PPAPI_CPP_VAR_RESOURCE_DEV_H_
-
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API for interacting with resource vars.
-
-namespace pp {
-
-class VarResource_Dev : public Var {
- public:
- /// Constructs a <code>VarResource_Dev</code> given a resource.
- explicit VarResource_Dev(const pp::Resource& resource);
-
- /// Constructs a <code>VarResource_Dev</code> given a var for which
- /// is_resource() is true. This will refer to the same resource var, but allow
- /// you to access methods specific to resources.
- ///
- /// @param[in] var A resource var.
- explicit VarResource_Dev(const Var& var);
-
- /// Copy constructor.
- VarResource_Dev(const VarResource_Dev& other);
-
- virtual ~VarResource_Dev();
-
- /// Assignment operator.
- VarResource_Dev& operator=(const VarResource_Dev& other);
-
- /// The <code>Var</code> assignment operator is overridden here so that we can
- /// check for assigning a non-resource var to a <code>VarResource_Dev</code>.
- ///
- /// @param[in] other The resource var to be assigned.
- ///
- /// @return The resulting <code>VarResource_Dev</code> (as a
- /// <code>Var</code>&).
- virtual Var& operator=(const Var& other);
-
- /// Gets the resource contained in the var.
- ///
- /// @return The <code>pp::Resource</code> that is contained in the var.
- pp::Resource AsResource();
-};
-
-} // namespace pp
-
-#endif // PPAPI_CPP_VAR_RESOURCE_DEV_H_
diff --git a/chromium/ppapi/cpp/dev/video_capture_dev.cc b/chromium/ppapi/cpp/dev/video_capture_dev.cc
index 46fdb5973ca..36293b78a15 100644
--- a/chromium/ppapi/cpp/dev/video_capture_dev.cc
+++ b/chromium/ppapi/cpp/dev/video_capture_dev.cc
@@ -6,7 +6,6 @@
#include "ppapi/c/dev/ppb_video_capture_dev.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/dev/resource_array_dev.h"
#include "ppapi/cpp/instance_handle.h"
#include "ppapi/cpp/module_impl.h"
@@ -14,10 +13,6 @@ namespace pp {
namespace {
-template <> const char* interface_name<PPB_VideoCapture_Dev_0_2>() {
- return PPB_VIDEOCAPTURE_DEV_INTERFACE_0_2;
-}
-
template <> const char* interface_name<PPB_VideoCapture_Dev_0_3>() {
return PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3;
}
@@ -28,9 +23,6 @@ VideoCapture_Dev::VideoCapture_Dev(const InstanceHandle& instance) {
if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
PassRefFromConstructor(get_interface<PPB_VideoCapture_Dev_0_3>()->Create(
instance.pp_instance()));
- } else if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- PassRefFromConstructor(get_interface<PPB_VideoCapture_Dev_0_2>()->Create(
- instance.pp_instance()));
}
}
@@ -43,8 +35,7 @@ VideoCapture_Dev::~VideoCapture_Dev() {
// static
bool VideoCapture_Dev::IsAvailable() {
- return has_interface<PPB_VideoCapture_Dev_0_3>() ||
- has_interface<PPB_VideoCapture_Dev_0_2>();
+ return has_interface<PPB_VideoCapture_Dev_0_3>();
}
int32_t VideoCapture_Dev::EnumerateDevices(
@@ -54,20 +45,6 @@ int32_t VideoCapture_Dev::EnumerateDevices(
pp_resource(), callback.output(), callback.pp_completion_callback());
}
- if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- if (!callback.pp_completion_callback().func)
- return callback.MayForce(PP_ERROR_BLOCKS_MAIN_THREAD);
-
- // ArrayOutputCallbackConverter is responsible to delete it.
- ResourceArray_Dev::ArrayOutputCallbackData* data =
- new ResourceArray_Dev::ArrayOutputCallbackData(
- callback.output(), callback.pp_completion_callback());
- return get_interface<PPB_VideoCapture_Dev_0_2>()->EnumerateDevices(
- pp_resource(), &data->resource_array_output,
- PP_MakeCompletionCallback(
- &ResourceArray_Dev::ArrayOutputCallbackConverter, data));
- }
-
return callback.MayForce(PP_ERROR_NOINTERFACE);
}
@@ -92,11 +69,6 @@ int32_t VideoCapture_Dev::Open(
pp_resource(), device_ref.pp_resource(), &requested_info, buffer_count,
callback.pp_completion_callback());
}
- if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- return get_interface<PPB_VideoCapture_Dev_0_2>()->Open(
- pp_resource(), device_ref.pp_resource(), &requested_info, buffer_count,
- callback.pp_completion_callback());
- }
return callback.MayForce(PP_ERROR_NOINTERFACE);
}
@@ -106,10 +78,6 @@ int32_t VideoCapture_Dev::StartCapture() {
return get_interface<PPB_VideoCapture_Dev_0_3>()->StartCapture(
pp_resource());
}
- if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- return get_interface<PPB_VideoCapture_Dev_0_2>()->StartCapture(
- pp_resource());
- }
return PP_ERROR_NOINTERFACE;
}
@@ -119,10 +87,6 @@ int32_t VideoCapture_Dev::ReuseBuffer(uint32_t buffer) {
return get_interface<PPB_VideoCapture_Dev_0_3>()->ReuseBuffer(pp_resource(),
buffer);
}
- if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- return get_interface<PPB_VideoCapture_Dev_0_2>()->ReuseBuffer(pp_resource(),
- buffer);
- }
return PP_ERROR_NOINTERFACE;
}
@@ -132,10 +96,6 @@ int32_t VideoCapture_Dev::StopCapture() {
return get_interface<PPB_VideoCapture_Dev_0_3>()->StopCapture(
pp_resource());
}
- if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- return get_interface<PPB_VideoCapture_Dev_0_2>()->StopCapture(
- pp_resource());
- }
return PP_ERROR_NOINTERFACE;
}
@@ -143,8 +103,6 @@ int32_t VideoCapture_Dev::StopCapture() {
void VideoCapture_Dev::Close() {
if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
get_interface<PPB_VideoCapture_Dev_0_3>()->Close(pp_resource());
- } else if (has_interface<PPB_VideoCapture_Dev_0_2>()) {
- get_interface<PPB_VideoCapture_Dev_0_2>()->Close(pp_resource());
}
}
diff --git a/chromium/ppapi/cpp/extensions/dev/socket_dev.cc b/chromium/ppapi/cpp/extensions/dev/socket_dev.cc
deleted file mode 100644
index a2c9e7f5ec1..00000000000
--- a/chromium/ppapi/cpp/extensions/dev/socket_dev.cc
+++ /dev/null
@@ -1,654 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/cpp/extensions/dev/socket_dev.h"
-
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/extensions/optional.h"
-#include "ppapi/cpp/extensions/to_var_converter.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Ext_Socket_Dev_0_2>() {
- return PPB_EXT_SOCKET_DEV_INTERFACE_0_2;
-}
-
-} // namespace
-
-namespace ext {
-namespace socket {
-
-const char* const SocketType_Dev::kTcp = "tcp";
-const char* const SocketType_Dev::kUdp = "udp";
-
-SocketType_Dev::SocketType_Dev() : value(NONE) {
-}
-
-SocketType_Dev::SocketType_Dev(ValueType in_value) : value(in_value) {
-}
-
-SocketType_Dev::~SocketType_Dev() {
-}
-
-bool SocketType_Dev::Populate(const PP_Var& var_value) {
- if (var_value.type != PP_VARTYPE_STRING)
- return false;
-
- std::string string_value = Var(var_value).AsString();
- if (string_value == kTcp) {
- value = TCP;
- } else if (string_value == kUdp) {
- value = UDP;
- } else {
- value = NONE;
- return false;
- }
- return true;
-}
-
-Var SocketType_Dev::CreateVar() const {
- switch (value) {
- case TCP:
- return Var(kTcp);
- case UDP:
- return Var(kUdp);
- default:
- PP_NOTREACHED();
- return Var(std::string());
- }
-}
-
-const char* const CreateInfo_Dev::kSocketId = "socketId";
-
-CreateInfo_Dev::CreateInfo_Dev()
- : socket_id(kSocketId) {
-}
-
-CreateInfo_Dev::~CreateInfo_Dev() {
-}
-
-bool CreateInfo_Dev::Populate(const PP_Ext_Socket_CreateInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = socket_id.Populate(dict);
-
- return result;
-}
-
-Var CreateInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = socket_id.AddTo(&dict);
- // Suppress unused variable warnings.
- static_cast<void>(result);
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const AcceptInfo_Dev::kResultCode = "resultCode";
-const char* const AcceptInfo_Dev::kSocketId = "socketId";
-
-AcceptInfo_Dev::AcceptInfo_Dev()
- : result_code(kResultCode),
- socket_id(kSocketId) {
-}
-
-AcceptInfo_Dev::~AcceptInfo_Dev() {
-}
-
-bool AcceptInfo_Dev::Populate(const PP_Ext_Socket_AcceptInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = result_code.Populate(dict);
- result = socket_id.Populate(dict) && result;
-
- return result;
-}
-
-Var AcceptInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = result_code.AddTo(&dict);
- result = socket_id.MayAddTo(&dict) && result;
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const ReadInfo_Dev::kResultCode = "resultCode";
-const char* const ReadInfo_Dev::kData = "data";
-
-ReadInfo_Dev::ReadInfo_Dev()
- : result_code(kResultCode),
- data(kData) {
-}
-
-ReadInfo_Dev::~ReadInfo_Dev() {
-}
-
-bool ReadInfo_Dev::Populate(const PP_Ext_Socket_ReadInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = result_code.Populate(dict);
- result = data.Populate(dict) && result;
-
- return result;
-}
-
-Var ReadInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = result_code.AddTo(&dict);
- result = data.AddTo(&dict) && result;
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const WriteInfo_Dev::kBytesWritten = "bytesWritten";
-
-WriteInfo_Dev::WriteInfo_Dev()
- : bytes_written(kBytesWritten) {
-}
-
-WriteInfo_Dev::~WriteInfo_Dev() {
-}
-
-bool WriteInfo_Dev::Populate(const PP_Ext_Socket_WriteInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = bytes_written.Populate(dict);
-
- return result;
-}
-
-Var WriteInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = bytes_written.AddTo(&dict);
- // Suppress unused variable warnings.
- static_cast<void>(result);
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const RecvFromInfo_Dev::kResultCode = "resultCode";
-const char* const RecvFromInfo_Dev::kData = "data";
-const char* const RecvFromInfo_Dev::kAddress = "address";
-const char* const RecvFromInfo_Dev::kPort = "port";
-
-RecvFromInfo_Dev::RecvFromInfo_Dev()
- : result_code(kResultCode),
- data(kData),
- address(kAddress),
- port(kPort) {
-}
-
-RecvFromInfo_Dev::~RecvFromInfo_Dev() {
-}
-
-bool RecvFromInfo_Dev::Populate(const PP_Ext_Socket_RecvFromInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = result_code.Populate(dict);
- result = data.Populate(dict) && result;
- result = address.Populate(dict) && result;
- result = port.Populate(dict) && result;
-
- return result;
-}
-
-Var RecvFromInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = result_code.AddTo(&dict);
- result = data.AddTo(&dict) && result;
- result = address.AddTo(&dict) && result;
- result = port.AddTo(&dict) && result;
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const SocketInfo_Dev::kSocketType = "socketType";
-const char* const SocketInfo_Dev::kConnected = "connected";
-const char* const SocketInfo_Dev::kPeerAddress = "peerAddress";
-const char* const SocketInfo_Dev::kPeerPort = "peerPort";
-const char* const SocketInfo_Dev::kLocalAddress = "localAddress";
-const char* const SocketInfo_Dev::kLocalPort = "localPort";
-
-SocketInfo_Dev::SocketInfo_Dev()
- : socket_type(kSocketType),
- connected(kConnected),
- peer_address(kPeerAddress),
- peer_port(kPeerPort),
- local_address(kLocalAddress),
- local_port(kLocalPort) {
-}
-
-SocketInfo_Dev::~SocketInfo_Dev() {
-}
-
-bool SocketInfo_Dev::Populate(const PP_Ext_Socket_SocketInfo_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = socket_type.Populate(dict);
- result = connected.Populate(dict) && result;
- result = peer_address.Populate(dict) && result;
- result = peer_port.Populate(dict) && result;
- result = local_address.Populate(dict) && result;
- result = local_port.Populate(dict) && result;
-
- return result;
-}
-
-Var SocketInfo_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = socket_type.AddTo(&dict);
- result = connected.AddTo(&dict) && result;
- result = peer_address.MayAddTo(&dict) && result;
- result = peer_port.MayAddTo(&dict) && result;
- result = local_address.MayAddTo(&dict) && result;
- result = local_port.MayAddTo(&dict) && result;
- PP_DCHECK(result);
-
- return dict;
-}
-
-const char* const NetworkInterface_Dev::kName = "name";
-const char* const NetworkInterface_Dev::kAddress = "address";
-
-NetworkInterface_Dev::NetworkInterface_Dev()
- : name(kName),
- address(kAddress) {
-}
-
-NetworkInterface_Dev::~NetworkInterface_Dev() {
-}
-
-bool NetworkInterface_Dev::Populate(
- const PP_Ext_Socket_NetworkInterface_Dev& value) {
- if (value.type != PP_VARTYPE_DICTIONARY)
- return false;
-
- VarDictionary dict(value);
- bool result = name.Populate(dict);
- result = address.Populate(dict) && result;
-
- return result;
-}
-
-Var NetworkInterface_Dev::CreateVar() const {
- VarDictionary dict;
-
- bool result = name.AddTo(&dict);
- result = address.AddTo(&dict) && result;
- PP_DCHECK(result);
-
- return dict;
-}
-
-Socket_Dev::Socket_Dev(const InstanceHandle& instance) : instance_(instance) {
-}
-
-Socket_Dev::~Socket_Dev() {
-}
-
-int32_t Socket_Dev::Create(const SocketType_Dev& type,
- const Optional<CreateOptions_Dev>& options,
- const CreateCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<SocketType_Dev> type_var(type);
- internal::ToVarConverter<Optional<CreateOptions_Dev> > options_var(options);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Create(
- instance_.pp_instance(),
- type_var.pp_var(),
- options_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-void Socket_Dev::Destroy(int32_t socket_id) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return;
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Destroy(
- instance_.pp_instance(),
- socket_id_var.pp_var());
-}
-
-int32_t Socket_Dev::Connect(int32_t socket_id,
- const std::string& hostname,
- int32_t port,
- const ConnectCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<std::string> hostname_var(hostname);
- internal::ToVarConverter<int32_t> port_var(port);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Connect(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- hostname_var.pp_var(),
- port_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::Bind(int32_t socket_id,
- const std::string& address,
- int32_t port,
- const BindCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<std::string> address_var(address);
- internal::ToVarConverter<int32_t> port_var(port);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Bind(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- address_var.pp_var(),
- port_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-void Socket_Dev::Disconnect(int32_t socket_id) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return;
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Disconnect(
- instance_.pp_instance(),
- socket_id_var.pp_var());
-}
-
-int32_t Socket_Dev::Read(int32_t socket_id,
- const Optional<int32_t>& buffer_size,
- const ReadCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<Optional<int32_t> > buffer_size_var(buffer_size);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Read(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- buffer_size_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::Write(int32_t socket_id,
- const VarArrayBuffer& data,
- const WriteCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<Var> data_var(data);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Write(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- data_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::RecvFrom(int32_t socket_id,
- const Optional<int32_t>& buffer_size,
- const RecvFromCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<Optional<int32_t> > buffer_size_var(buffer_size);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->RecvFrom(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- buffer_size_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::SendTo(int32_t socket_id,
- const VarArrayBuffer& data,
- const std::string& address,
- int32_t port,
- const SendToCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<Var> data_var(data);
- internal::ToVarConverter<std::string> address_var(address);
- internal::ToVarConverter<int32_t> port_var(port);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->SendTo(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- data_var.pp_var(),
- address_var.pp_var(),
- port_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::Listen(int32_t socket_id,
- const std::string& address,
- int32_t port,
- const Optional<int32_t>& backlog,
- const ListenCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<std::string> address_var(address);
- internal::ToVarConverter<int32_t> port_var(port);
- internal::ToVarConverter<Optional<int32_t> > backlog_var(backlog);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Listen(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- address_var.pp_var(),
- port_var.pp_var(),
- backlog_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::Accept(int32_t socket_id,
- const AcceptCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->Accept(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::SetKeepAlive(int32_t socket_id,
- bool enable,
- const Optional<int32_t>& delay,
- const SetKeepAliveCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<bool> enable_var(enable);
- internal::ToVarConverter<Optional<int32_t> > delay_var(delay);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->SetKeepAlive(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- enable_var.pp_var(),
- delay_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::SetNoDelay(int32_t socket_id,
- bool no_delay,
- const SetNoDelayCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<bool> no_delay_var(no_delay);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->SetNoDelay(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- no_delay_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::GetInfo(int32_t socket_id,
- const GetInfoCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->GetInfo(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::GetNetworkList(const GetNetworkListCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->GetNetworkList(
- instance_.pp_instance(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::JoinGroup(int32_t socket_id,
- const std::string& address,
- const JoinGroupCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<std::string> address_var(address);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->JoinGroup(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- address_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::LeaveGroup(int32_t socket_id,
- const std::string& address,
- const LeaveGroupCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<std::string> address_var(address);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->LeaveGroup(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- address_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::SetMulticastTimeToLive(
- int32_t socket_id,
- int32_t ttl,
- const SetMulticastTimeToLiveCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<int32_t> ttl_var(ttl);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->SetMulticastTimeToLive(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- ttl_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::SetMulticastLoopbackMode(
- int32_t socket_id,
- bool enabled,
- const SetMulticastLoopbackModeCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
- internal::ToVarConverter<bool> enabled_var(enabled);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->SetMulticastLoopbackMode(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- enabled_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-int32_t Socket_Dev::GetJoinedGroups(int32_t socket_id,
- const GetJoinedGroupsCallback& callback) {
- if (!has_interface<PPB_Ext_Socket_Dev_0_2>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
-
- internal::ToVarConverter<int32_t> socket_id_var(socket_id);
-
- return get_interface<PPB_Ext_Socket_Dev_0_2>()->GetJoinedGroups(
- instance_.pp_instance(),
- socket_id_var.pp_var(),
- callback.output(),
- callback.pp_completion_callback());
-}
-
-} // namespace socket
-} // namespace ext
-} // namespace pp
diff --git a/chromium/ppapi/cpp/extensions/dev/socket_dev.h b/chromium/ppapi/cpp/extensions/dev/socket_dev.h
deleted file mode 100644
index b6ac7b58ad2..00000000000
--- a/chromium/ppapi/cpp/extensions/dev/socket_dev.h
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
-#define PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
-
-#include <string>
-#include <vector>
-
-#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
-#include "ppapi/cpp/extensions/dict_field.h"
-#include "ppapi/cpp/extensions/ext_output_traits.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_array_buffer.h"
-#include "ppapi/cpp/var_dictionary.h"
-
-namespace pp {
-namespace ext {
-
-template <class T>
-class ExtCompletionCallbackWithOutput;
-
-template <class T>
-class Optional;
-
-namespace socket {
-
-// Data types ------------------------------------------------------------------
-class SocketType_Dev {
- public:
- enum ValueType {
- NONE,
- TCP,
- UDP
- };
-
- SocketType_Dev();
- SocketType_Dev(ValueType in_value);
- ~SocketType_Dev();
-
- bool Populate(const PP_Var& var_value);
-
- Var CreateVar() const;
-
- ValueType value;
-
- static const char* const kTcp;
- static const char* const kUdp;
-};
-
-typedef VarDictionary CreateOptions_Dev;
-
-class CreateInfo_Dev {
- public:
- CreateInfo_Dev();
- ~CreateInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_CreateInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kSocketId;
-
- DictField<int32_t> socket_id;
-};
-
-class AcceptInfo_Dev {
- public:
- AcceptInfo_Dev();
- ~AcceptInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_AcceptInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kResultCode;
- static const char* const kSocketId;
-
- DictField<int32_t> result_code;
- OptionalDictField<int32_t> socket_id;
-};
-
-class ReadInfo_Dev {
- public:
- ReadInfo_Dev();
- ~ReadInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_ReadInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kResultCode;
- static const char* const kData;
-
- DictField<int32_t> result_code;
- DictField<VarArrayBuffer> data;
-};
-
-class WriteInfo_Dev {
- public:
- WriteInfo_Dev();
- ~WriteInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_WriteInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kBytesWritten;
-
- DictField<int32_t> bytes_written;
-};
-
-class RecvFromInfo_Dev {
- public:
- RecvFromInfo_Dev();
- ~RecvFromInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_RecvFromInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kResultCode;
- static const char* const kData;
- static const char* const kAddress;
- static const char* const kPort;
-
- DictField<int32_t> result_code;
- DictField<VarArrayBuffer> data;
- DictField<std::string> address;
- DictField<int32_t> port;
-};
-
-class SocketInfo_Dev {
- public:
- SocketInfo_Dev();
- ~SocketInfo_Dev();
-
- bool Populate(const PP_Ext_Socket_SocketInfo_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kSocketType;
- static const char* const kConnected;
- static const char* const kPeerAddress;
- static const char* const kPeerPort;
- static const char* const kLocalAddress;
- static const char* const kLocalPort;
-
- DictField<SocketType_Dev> socket_type;
- DictField<bool> connected;
- OptionalDictField<std::string> peer_address;
- OptionalDictField<int32_t> peer_port;
- OptionalDictField<std::string> local_address;
- OptionalDictField<int32_t> local_port;
-};
-
-class NetworkInterface_Dev {
- public:
- NetworkInterface_Dev();
- ~NetworkInterface_Dev();
-
- bool Populate(const PP_Ext_Socket_NetworkInterface_Dev& value);
-
- Var CreateVar() const;
-
- static const char* const kName;
- static const char* const kAddress;
-
- DictField<std::string> name;
- DictField<std::string> address;
-};
-
-// Functions -------------------------------------------------------------------
-class Socket_Dev {
- public:
- explicit Socket_Dev(const InstanceHandle& instance);
- ~Socket_Dev();
-
- typedef ExtCompletionCallbackWithOutput<CreateInfo_Dev> CreateCallback;
- int32_t Create(const SocketType_Dev& type,
- const Optional<CreateOptions_Dev>& options,
- const CreateCallback& callback);
-
- void Destroy(int32_t socket_id);
-
- typedef ExtCompletionCallbackWithOutput<int32_t> ConnectCallback;
- int32_t Connect(int32_t socket_id,
- const std::string& hostname,
- int32_t port,
- const ConnectCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t> BindCallback;
- int32_t Bind(int32_t socket_id,
- const std::string& address,
- int32_t port,
- const BindCallback& callback);
-
- void Disconnect(int32_t socket_id);
-
- typedef ExtCompletionCallbackWithOutput<ReadInfo_Dev> ReadCallback;
- int32_t Read(int32_t socket_id,
- const Optional<int32_t>& buffer_size,
- const ReadCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<WriteInfo_Dev> WriteCallback;
- int32_t Write(int32_t socket_id,
- const VarArrayBuffer& data,
- const WriteCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<RecvFromInfo_Dev> RecvFromCallback;
- int32_t RecvFrom(int32_t socket_id,
- const Optional<int32_t>& buffer_size,
- const RecvFromCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<WriteInfo_Dev> SendToCallback;
- int32_t SendTo(int32_t socket_id,
- const VarArrayBuffer& data,
- const std::string& address,
- int32_t port,
- const SendToCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t> ListenCallback;
- int32_t Listen(int32_t socket_id,
- const std::string& address,
- int32_t port,
- const Optional<int32_t>& backlog,
- const ListenCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<AcceptInfo_Dev> AcceptCallback;
- int32_t Accept(int32_t socket_id, const AcceptCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<bool> SetKeepAliveCallback;
- int32_t SetKeepAlive(int32_t socket_id,
- bool enable,
- const Optional<int32_t>& delay,
- const SetKeepAliveCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<bool> SetNoDelayCallback;
- int32_t SetNoDelay(int32_t socket_id,
- bool no_delay,
- const SetNoDelayCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<SocketInfo_Dev> GetInfoCallback;
- int32_t GetInfo(int32_t socket_id,
- const GetInfoCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<std::vector<NetworkInterface_Dev> >
- GetNetworkListCallback;
- int32_t GetNetworkList(const GetNetworkListCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t> JoinGroupCallback;
- int32_t JoinGroup(int32_t socket_id,
- const std::string& address,
- const JoinGroupCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t> LeaveGroupCallback;
- int32_t LeaveGroup(int32_t socket_id,
- const std::string& address,
- const LeaveGroupCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t>
- SetMulticastTimeToLiveCallback;
- int32_t SetMulticastTimeToLive(
- int32_t socket_id,
- int32_t ttl,
- const SetMulticastTimeToLiveCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<int32_t>
- SetMulticastLoopbackModeCallback;
- int32_t SetMulticastLoopbackMode(
- int32_t socket_id,
- bool enabled,
- const SetMulticastLoopbackModeCallback& callback);
-
- typedef ExtCompletionCallbackWithOutput<std::vector<std::string> >
- GetJoinedGroupsCallback;
- int32_t GetJoinedGroups(int32_t socket_id,
- const GetJoinedGroupsCallback& callback);
-
- private:
- InstanceHandle instance_;
-};
-
-} // namespace socket
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_DEV_SOCKET_DEV_H_
diff --git a/chromium/ppapi/cpp/extensions/dict_field.h b/chromium/ppapi/cpp/extensions/dict_field.h
deleted file mode 100644
index f332014e897..00000000000
--- a/chromium/ppapi/cpp/extensions/dict_field.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_DICT_FIELD_H_
-#define PPAPI_CPP_EXTENSIONS_DICT_FIELD_H_
-
-#include <string>
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/cpp/extensions/from_var_converter.h"
-#include "ppapi/cpp/extensions/optional.h"
-#include "ppapi/cpp/extensions/to_var_converter.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_dictionary.h"
-
-namespace pp {
-namespace ext {
-
-template <class T>
-class DictField {
- public:
- explicit DictField(const std::string& key) : key_(key), value_() {
- }
-
- ~DictField() {
- }
-
- const std::string& key() const { return key_; }
-
- // Returns the value.
- T& operator()() { return value_; }
- const T& operator()() const { return value_; }
-
- // Adds this field to the dictionary var.
- bool AddTo(VarDictionary* dict) const {
- if (!dict)
- return false;
-
- internal::ToVarConverter<T> converter(value_);
- return dict->Set(Var(key_), converter.var());
- }
-
- bool Populate(const VarDictionary& dict) {
- Var value_var = dict.Get(Var(key_));
- if (value_var.is_undefined())
- return false;
-
- internal::FromVarConverter<T> converter(value_var.pp_var());
- value_ = converter.value();
- return true;
- }
-
- private:
- std::string key_;
- T value_;
-};
-
-template <class T>
-class OptionalDictField {
- public:
- explicit OptionalDictField(const std::string& key) : key_(key) {
- }
-
- ~OptionalDictField() {
- }
-
- const std::string& key() const { return key_; }
-
- // Returns the value.
- Optional<T>& operator()() { return value_; }
- const Optional<T>& operator()() const { return value_; }
-
- // Adds this field to the dictionary var, if |value| has been set.
- bool MayAddTo(VarDictionary* dict) const {
- if (!dict)
- return false;
- if (!value_.IsSet())
- return true;
-
- internal::ToVarConverter<T> converter(*value_);
- return dict->Set(Var(key_), converter.var());
- }
-
- bool Populate(const VarDictionary& dict) {
- Var value_var = dict.Get(Var(key_));
- internal::FromVarConverter<Optional<T> > converter(value_var.pp_var());
- value_.Swap(&converter.value());
- return true;
- }
-
- private:
- std::string key_;
- Optional<T> value_;
-};
-
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_DICT_FIELD_H_
diff --git a/chromium/ppapi/cpp/extensions/ext_output_traits.h b/chromium/ppapi/cpp/extensions/ext_output_traits.h
deleted file mode 100644
index ed57be10d98..00000000000
--- a/chromium/ppapi/cpp/extensions/ext_output_traits.h
+++ /dev/null
@@ -1,142 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_OUTPUT_TRAITS_H_
-#define PPAPI_CPP_EXTENSIONS_OUTPUT_TRAITS_H_
-
-#include <vector>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/cpp/extensions/from_var_converter.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_array.h"
-
-namespace pp {
-namespace ext {
-namespace internal {
-
-template <class T>
-class VarOutputAdapterWithStorage {
- public:
- VarOutputAdapterWithStorage() : pp_var_(PP_MakeUndefined()) {
- }
-
- ~VarOutputAdapterWithStorage() {
- PP_DCHECK(pp_var_.type == PP_VARTYPE_UNDEFINED);
- }
-
- PP_Var& pp_var() { return pp_var_; }
-
- T& output() {
- Var auto_release(PASS_REF, pp_var_);
- converter_.Set(pp_var_);
- pp_var_ = PP_MakeUndefined();
- return converter_.value();
- }
-
- private:
- PP_Var pp_var_;
- FromVarConverter<T> converter_;
-
- // Disallow copying and assignment.
- VarOutputAdapterWithStorage(const VarOutputAdapterWithStorage<T>&);
- VarOutputAdapterWithStorage<T>& operator=(
- const VarOutputAdapterWithStorage<T>&);
-};
-
-// ExtCallbackOutputTraits is used with ExtCompletionCallbackWithOutput. Unlike
-// pp::internal::CallbackOutputTraits, it always uses PP_Var* as output
-// parameter type to interact with the browser.
-//
-// For example, CompletionCallbackWithOutput<double> (using
-// pp::internal::CallbackOutputTraits) uses double* as the output parameter
-// type; while ExtCompletionCallbackWithOutput<double> uses PP_Var*.
-template <class T>
-struct ExtCallbackOutputTraits {
- typedef PP_Var* APIArgType;
- typedef VarOutputAdapterWithStorage<T> StorageType;
-
- static inline APIArgType StorageToAPIArg(StorageType& t) {
- return &t.pp_var();
- }
-
- // This must be called exactly once to consume the one PP_Var reference
- // assigned to us by the browser.
- static inline T& StorageToPluginArg(StorageType& t) {
- return t.output();
- }
-
- static inline void Initialize(StorageType* /* t */) {}
-};
-
-// This class provides storage for a PP_Var and a vector of objects which are
-// of type T. The PP_Var is used as an output parameter to receive an array var
-// from the browser. Each element in the array var is converted to a T object,
-// using FromVarConverter, and stores in the vector.
-template <class T>
-class ArrayVarOutputAdapterWithStorage {
- public:
- ArrayVarOutputAdapterWithStorage() : pp_var_(PP_MakeUndefined()) {
- }
-
- ~ArrayVarOutputAdapterWithStorage() {
- PP_DCHECK(pp_var_.type == PP_VARTYPE_UNDEFINED);
- }
-
- PP_Var& pp_var() { return pp_var_; }
-
- std::vector<T>& output() {
- PP_DCHECK(output_storage_.empty());
-
- Var var(PASS_REF, pp_var_);
- pp_var_ = PP_MakeUndefined();
- if (var.is_array()) {
- VarArray array(var);
-
- uint32_t length = array.GetLength();
- output_storage_.reserve(length);
- for (uint32_t i = 0; i < length; ++i) {
- FromVarConverter<T> converter(array.Get(i).pp_var());
- output_storage_.push_back(converter.value());
- }
- }
-
- return output_storage_;
- }
-
- private:
- PP_Var pp_var_;
- std::vector<T> output_storage_;
-
- // Disallow copying and assignment.
- ArrayVarOutputAdapterWithStorage(const ArrayVarOutputAdapterWithStorage<T>&);
- ArrayVarOutputAdapterWithStorage<T>& operator=(
- const ArrayVarOutputAdapterWithStorage<T>&);
-};
-
-template <class T>
-struct ExtCallbackOutputTraits< std::vector<T> > {
- typedef PP_Var* APIArgType;
- typedef ArrayVarOutputAdapterWithStorage<T> StorageType;
-
- static inline APIArgType StorageToAPIArg(StorageType& t) {
- return &t.pp_var();
- }
-
- // This must be called exactly once to consume the one PP_Var reference
- // assigned to us by the browser.
- static inline std::vector<T>& StorageToPluginArg(StorageType& t) {
- return t.output();
- }
-
- static inline void Initialize(StorageType* /* t */) {}
-};
-
-} // namespace internal
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_OUTPUT_TRAITS_H_
diff --git a/chromium/ppapi/cpp/extensions/from_var_converter.h b/chromium/ppapi/cpp/extensions/from_var_converter.h
deleted file mode 100644
index 06ae0df2501..00000000000
--- a/chromium/ppapi/cpp/extensions/from_var_converter.h
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
-#define PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
-
-#include <string>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/cpp/extensions/optional.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_array.h"
-#include "ppapi/cpp/var_array_buffer.h"
-#include "ppapi/cpp/var_dictionary.h"
-
-namespace pp {
-namespace ext {
-namespace internal {
-
-template <class T>
-class FromVarConverterBase {
- public:
- T& value() { return value_; }
-
- protected:
- FromVarConverterBase() : value_() {
- }
-
- explicit FromVarConverterBase(const T& value) : value_(value) {
- }
-
- ~FromVarConverterBase() {
- }
-
- T value_;
-};
-
-template <class T>
-class FromVarConverter : public FromVarConverterBase<T> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- bool succeeded = FromVarConverterBase<T>::value_.Populate(var);
- // Suppress unused variable warnings.
- static_cast<void>(succeeded);
- PP_DCHECK(succeeded);
- }
-};
-
-template <class T>
-class FromVarConverter<Optional<T> >
- : public FromVarConverterBase<Optional<T> > {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- if (var.type == PP_VARTYPE_UNDEFINED) {
- FromVarConverterBase<Optional<T> >::value_.Reset();
- } else {
- FromVarConverter<T> converter(var);
- FromVarConverterBase<Optional<T> >::value_ = converter.value();
- }
- }
-};
-
-template <>
-class FromVarConverter<bool> : public FromVarConverterBase<bool> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<bool>::value_ = Var(var).AsBool();
- }
-};
-
-template <>
-class FromVarConverter<int32_t> : public FromVarConverterBase<int32_t> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<int32_t>::value_ = Var(var).AsInt();
- }
-};
-
-template <>
-class FromVarConverter<double> : public FromVarConverterBase<double> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<double>::value_ = Var(var).AsDouble();
- }
-};
-
-template <>
-class FromVarConverter<std::string> : public FromVarConverterBase<std::string> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<std::string>::value_ = Var(var).AsString();
- }
-};
-
-template <>
-class FromVarConverter<Var> : public FromVarConverterBase<Var> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<Var>::value_ = Var(var);
- }
-};
-
-template <>
-class FromVarConverter<VarArray>
- : public FromVarConverterBase<VarArray> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<VarArray>::value_ = Var(var);
- }
-};
-
-template <>
-class FromVarConverter<VarDictionary>
- : public FromVarConverterBase<VarDictionary> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<VarDictionary>::value_ = Var(var);
- }
-};
-
-template <>
-class FromVarConverter<VarArrayBuffer>
- : public FromVarConverterBase<VarArrayBuffer> {
- public:
- FromVarConverter() {
- }
-
- explicit FromVarConverter(const PP_Var& var) {
- Set(var);
- }
-
- ~FromVarConverter() {
- }
-
- void Set(const PP_Var& var) {
- FromVarConverterBase<VarArrayBuffer>::value_ = Var(var);
- }
-};
-
-} // namespace internal
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_FROM_VAR_CONVERTOR_H_
diff --git a/chromium/ppapi/cpp/extensions/optional.h b/chromium/ppapi/cpp/extensions/optional.h
deleted file mode 100644
index fdef839aa1c..00000000000
--- a/chromium/ppapi/cpp/extensions/optional.h
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_OPTIONAL_H_
-#define PPAPI_CPP_EXTENSIONS_OPTIONAL_H_
-
-namespace pp {
-namespace ext {
-
-template <class T>
-class Optional {
- public:
- Optional() : value_(NULL) {
- }
- // Takes ownership of |value|.
- explicit Optional(T* value) : value_(value) {
- }
- Optional(const T& value) : value_(new T(value)) {
- }
- Optional(const Optional<T>& other)
- : value_(other.value_ ? new T(*other.value_) : NULL) {
- }
-
- ~Optional() {
- Reset();
- }
-
- Optional<T>& operator=(const T& other) {
- if (value_ == &other)
- return *this;
-
- Reset();
- value_ = new T(other);
-
- return *this;
- }
-
- Optional<T>& operator=(const Optional<T>& other) {
- if (value_ == other.value_)
- return *this;
-
- Reset();
- if (other.value_)
- value_ = new T(*other.value_);
-
- return *this;
- }
-
- bool IsSet() const {
- return !!value_;
- }
-
- T* Get() const {
- return value_;
- }
-
- // Should only be used when IsSet() is true.
- T& operator*() const {
- return *value_;
- }
-
- // Should only be used when IsSet() is true.
- T* operator->() const {
- PP_DCHECK(value_);
- return value_;
- }
-
- // Takes ownership of |value|.
- void Set(T* value) {
- if (value == value_)
- return;
-
- Reset();
- *value_ = value;
- }
-
- void Reset() {
- T* value = value_;
- value_ = NULL;
- delete value;
- }
-
- void Swap(Optional<T>* other) {
- T* temp = value_;
- value_ = other->value_;
- other->value_ = temp;
- }
-
- private:
- T* value_;
-};
-
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_OPTIONAL_H_
diff --git a/chromium/ppapi/cpp/extensions/to_var_converter.h b/chromium/ppapi/cpp/extensions/to_var_converter.h
deleted file mode 100644
index e38499977fb..00000000000
--- a/chromium/ppapi/cpp/extensions/to_var_converter.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_CPP_EXTENSIONS_TO_VAR_CONVERTOR_H_
-#define PPAPI_CPP_EXTENSIONS_TO_VAR_CONVERTOR_H_
-
-#include <string>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/cpp/extensions/optional.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_array.h"
-#include "ppapi/cpp/var_array_buffer.h"
-#include "ppapi/cpp/var_dictionary.h"
-
-namespace pp {
-namespace ext {
-namespace internal {
-
-class ToVarConverterBase {
- public:
- PP_Var pp_var() const {
- return var_.pp_var();
- }
-
- const Var& var() const {
- return var_;
- }
-
- protected:
- ToVarConverterBase() {
- }
-
- explicit ToVarConverterBase(const PP_Var& var) : var_(var) {
- }
-
- explicit ToVarConverterBase(const Var& var): var_(var) {
- }
-
- ~ToVarConverterBase() {
- }
-
- Var var_;
-};
-
-template <class T>
-class ToVarConverter : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const T& object)
- : ToVarConverterBase(object.CreateVar()) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <class T>
-class ToVarConverter<Optional<T> > : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const Optional<T>& object)
- : ToVarConverterBase(
- object.IsSet() ? ToVarConverter<T>(*object).pp_var() :
- PP_MakeUndefined()) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<bool> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(bool object) : ToVarConverterBase(Var(object)) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<int32_t> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(int32_t object) : ToVarConverterBase(Var(object)) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<double> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(double object) : ToVarConverterBase(Var(object)) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<std::string> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const std::string& object)
- : ToVarConverterBase(Var(object)) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<Var> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const Var& object) : ToVarConverterBase(object) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<VarArray> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const Var& object) : ToVarConverterBase(object) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<VarDictionary> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const Var& object) : ToVarConverterBase(object) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-template <>
-class ToVarConverter<VarArrayBuffer> : public ToVarConverterBase {
- public:
- explicit ToVarConverter(const Var& object) : ToVarConverterBase(object) {
- }
-
- ~ToVarConverter() {
- }
-};
-
-} // namespace internal
-} // namespace ext
-} // namespace pp
-
-#endif // PPAPI_CPP_EXTENSIONS_TO_VAR_CONVERTOR_H_
diff --git a/chromium/ppapi/cpp/file_io.cc b/chromium/ppapi/cpp/file_io.cc
index faaf2846f75..640016cabdb 100644
--- a/chromium/ppapi/cpp/file_io.cc
+++ b/chromium/ppapi/cpp/file_io.cc
@@ -9,7 +9,6 @@
#include "ppapi/c/ppb_file_io.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/dev/resource_array_dev.h"
#include "ppapi/cpp/file_ref.h"
#include "ppapi/cpp/instance_handle.h"
#include "ppapi/cpp/module.h"
diff --git a/chromium/ppapi/cpp/file_ref.cc b/chromium/ppapi/cpp/file_ref.cc
index 0bc9487eb5e..f9294a7e02c 100644
--- a/chromium/ppapi/cpp/file_ref.cc
+++ b/chromium/ppapi/cpp/file_ref.cc
@@ -4,6 +4,7 @@
#include "ppapi/cpp/file_ref.h"
+#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/cpp/completion_callback.h"
#include "ppapi/cpp/directory_entry.h"
@@ -22,6 +23,10 @@ template <> const char* interface_name<PPB_FileRef_1_1>() {
return PPB_FILEREF_INTERFACE_1_1;
}
+template <> const char* interface_name<PPB_FileRef_1_2>() {
+ return PPB_FILEREF_INTERFACE_1_2;
+}
+
} // namespace
FileRef::FileRef(PP_Resource resource) : Resource(resource) {
@@ -32,7 +37,10 @@ FileRef::FileRef(PassRef, PP_Resource resource) : Resource(PASS_REF, resource) {
FileRef::FileRef(const FileSystem& file_system,
const char* path) {
- if (has_interface<PPB_FileRef_1_1>()) {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ PassRefFromConstructor(get_interface<PPB_FileRef_1_2>()->Create(
+ file_system.pp_resource(), path));
+ } else if (has_interface<PPB_FileRef_1_1>()) {
PassRefFromConstructor(get_interface<PPB_FileRef_1_1>()->Create(
file_system.pp_resource(), path));
} else if (has_interface<PPB_FileRef_1_0>()) {
@@ -46,6 +54,8 @@ FileRef::FileRef(const FileRef& other)
}
PP_FileSystemType FileRef::GetFileSystemType() const {
+ if (has_interface<PPB_FileRef_1_2>())
+ return get_interface<PPB_FileRef_1_2>()->GetFileSystemType(pp_resource());
if (has_interface<PPB_FileRef_1_1>())
return get_interface<PPB_FileRef_1_1>()->GetFileSystemType(pp_resource());
if (has_interface<PPB_FileRef_1_0>())
@@ -54,6 +64,10 @@ PP_FileSystemType FileRef::GetFileSystemType() const {
}
Var FileRef::GetName() const {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_2>()->GetName(pp_resource()));
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return Var(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetName(pp_resource()));
@@ -66,6 +80,10 @@ Var FileRef::GetName() const {
}
Var FileRef::GetPath() const {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_FileRef_1_2>()->GetPath(pp_resource()));
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return Var(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetPath(pp_resource()));
@@ -78,6 +96,10 @@ Var FileRef::GetPath() const {
}
FileRef FileRef::GetParent() const {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return FileRef(PASS_REF,
+ get_interface<PPB_FileRef_1_2>()->GetParent(pp_resource()));
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return FileRef(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetParent(pp_resource()));
@@ -89,34 +111,28 @@ FileRef FileRef::GetParent() const {
return FileRef();
}
-int32_t FileRef::MakeDirectory(const CompletionCallback& cc) {
- if (has_interface<PPB_FileRef_1_1>()) {
- return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
- pp_resource(),
- PP_FALSE, // make_ancestors
- cc.pp_completion_callback());
- }
- if (has_interface<PPB_FileRef_1_0>()) {
- return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
+int32_t FileRef::MakeDirectory(int32_t make_directory_flags,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->MakeDirectory(
pp_resource(),
- PP_FALSE, // make_ancestors
+ make_directory_flags,
cc.pp_completion_callback());
}
- return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::MakeDirectoryIncludingAncestors(
- const CompletionCallback& cc) {
if (has_interface<PPB_FileRef_1_1>()) {
+ if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
+ return cc.MayForce(PP_ERROR_NOTSUPPORTED);
return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
pp_resource(),
- PP_TRUE, // make_ancestors
+ PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
cc.pp_completion_callback());
}
if (has_interface<PPB_FileRef_1_0>()) {
+ if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
+ return cc.MayForce(PP_ERROR_NOTSUPPORTED);
return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
pp_resource(),
- PP_TRUE, // make_ancestors
+ PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
cc.pp_completion_callback());
}
return cc.MayForce(PP_ERROR_NOINTERFACE);
@@ -125,6 +141,11 @@ int32_t FileRef::MakeDirectoryIncludingAncestors(
int32_t FileRef::Touch(PP_Time last_access_time,
PP_Time last_modified_time,
const CompletionCallback& cc) {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->Touch(
+ pp_resource(), last_access_time, last_modified_time,
+ cc.pp_completion_callback());
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Touch(
pp_resource(), last_access_time, last_modified_time,
@@ -139,6 +160,10 @@ int32_t FileRef::Touch(PP_Time last_access_time,
}
int32_t FileRef::Delete(const CompletionCallback& cc) {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->Delete(
+ pp_resource(), cc.pp_completion_callback());
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Delete(
pp_resource(), cc.pp_completion_callback());
@@ -152,6 +177,10 @@ int32_t FileRef::Delete(const CompletionCallback& cc) {
int32_t FileRef::Rename(const FileRef& new_file_ref,
const CompletionCallback& cc) {
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->Rename(
+ pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
+ }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Rename(
pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
@@ -164,19 +193,29 @@ int32_t FileRef::Rename(const FileRef& new_file_ref,
}
int32_t FileRef::Query(const CompletionCallbackWithOutput<PP_FileInfo>& cc) {
- if (!has_interface<PPB_FileRef_1_1>())
- return cc.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_1>()->Query(
- pp_resource(), cc.output(), cc.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->Query(
+ pp_resource(), cc.output(), cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->Query(
+ pp_resource(), cc.output(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
}
int32_t FileRef::ReadDirectoryEntries(
const CompletionCallbackWithOutput<std::vector<DirectoryEntry> >&
callback) {
- if (!has_interface<PPB_FileRef_1_1>())
- return callback.MayForce(PP_ERROR_NOINTERFACE);
- return get_interface<PPB_FileRef_1_1>()->ReadDirectoryEntries(
- pp_resource(), callback.output(), callback.pp_completion_callback());
+ if (has_interface<PPB_FileRef_1_2>()) {
+ return get_interface<PPB_FileRef_1_2>()->ReadDirectoryEntries(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->ReadDirectoryEntries(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
}
} // namespace pp
diff --git a/chromium/ppapi/cpp/file_ref.h b/chromium/ppapi/cpp/file_ref.h
index 452d2a61321..9f940883050 100644
--- a/chromium/ppapi/cpp/file_ref.h
+++ b/chromium/ppapi/cpp/file_ref.h
@@ -90,30 +90,20 @@ class FileRef : public Resource {
/// <code>PP_FileSystemType_External</code>.
FileRef GetParent() const;
- /// MakeDirectory() makes a new directory in the file system. It is not
- /// valid to make a directory in the external file system.
- /// <strong>Note:</strong> Use MakeDirectoryIncludingAncestors() to create
- /// parent directories.
- ///
- /// @param[in] cc A <code>CompletionCallback</code> to be called upon
- /// completion of MakeDirectory().
- ///
- /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
- /// Succeeds if the directory already exists. Fails if ancestor
- /// directortories do not exist (see MakeDirectoryIncludingAncestors for the
- /// alternative).
- int32_t MakeDirectory(const CompletionCallback& cc);
-
- /// MakeDirectoryIncludingAncestors() makes a new directory in the file
- /// system as well as any parent directories. It is not valid to make a
+ /// MakeDirectory() makes a new directory in the file system according to the
+ /// given <code>make_directory_flags</code>, which is a bit-mask of the
+ /// <code>PP_MakeDirectoryFlags</code> values. It is not valid to make a
/// directory in the external file system.
///
+ /// @param[in] make_directory_flags A bit-mask of the
+ /// <code>PP_MakeDirectoryFlags</code> values.
+ /// See <code>ppb_file_ref.h</code> for more details.
/// @param[in] cc A <code>CompletionCallback</code> to be called upon
- /// completion of MakeDirectoryIncludingAncestors().
+ /// completion of MakeDirectory().
///
/// @return An int32_t containing an error code from <code>pp_errors.h</code>.
- /// Succeeds if the directory already exists.
- int32_t MakeDirectoryIncludingAncestors(const CompletionCallback& cc);
+ int32_t MakeDirectory(int32_t make_directory_flags,
+ const CompletionCallback& cc);
/// Touch() Updates time stamps for a file. You must have write access to the
/// file if it exists in the external filesystem.
diff --git a/chromium/ppapi/cpp/image_data.h b/chromium/ppapi/cpp/image_data.h
index d94ea820b53..e9366ceb415 100644
--- a/chromium/ppapi/cpp/image_data.h
+++ b/chromium/ppapi/cpp/image_data.h
@@ -46,7 +46,7 @@ class ImageData : public Resource {
/// @param[in] format A PP_ImageDataFormat containing desired image format.
/// PP_ImageDataFormat is an enumeration of the different types of
/// image data formats. Refer to
- /// <a href="../pepperc/ppb__image__data_8h.html">
+ /// <a href="../c/ppb__image__data_8h.html">
/// <code>ppb_image_data.h</code></a> for further information.
///
/// @param[in] size A pointer to a <code>Size</code> containing the image
diff --git a/chromium/ppapi/cpp/input_event.cc b/chromium/ppapi/cpp/input_event.cc
index e4e00039300..93385bfc4d2 100644
--- a/chromium/ppapi/cpp/input_event.cc
+++ b/chromium/ppapi/cpp/input_event.cc
@@ -19,6 +19,10 @@ template <> const char* interface_name<PPB_InputEvent_1_0>() {
return PPB_INPUT_EVENT_INTERFACE_1_0;
}
+template <> const char* interface_name<PPB_KeyboardInputEvent_1_2>() {
+ return PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2;
+}
+
template <> const char* interface_name<PPB_KeyboardInputEvent_1_0>() {
return PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0;
}
@@ -189,11 +193,19 @@ KeyboardInputEvent::KeyboardInputEvent() : InputEvent() {
}
KeyboardInputEvent::KeyboardInputEvent(const InputEvent& event) : InputEvent() {
- // Type check the input event before setting it.
- if (!has_interface<PPB_KeyboardInputEvent_1_0>())
- return;
- if (get_interface<PPB_KeyboardInputEvent_1_0>()->IsKeyboardInputEvent(
- event.pp_resource())) {
+ PP_Bool is_keyboard_event = PP_FALSE;
+
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ is_keyboard_event =
+ get_interface<PPB_KeyboardInputEvent_1_2>()->IsKeyboardInputEvent(
+ event.pp_resource());
+ } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
+ is_keyboard_event =
+ get_interface<PPB_KeyboardInputEvent_1_0>()->IsKeyboardInputEvent(
+ event.pp_resource());
+ }
+
+ if (PP_ToBool(is_keyboard_event)) {
Module::Get()->core()->AddRefResource(event.pp_resource());
PassRefFromConstructor(event.pp_resource());
}
@@ -205,26 +217,66 @@ KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance,
uint32_t modifiers,
uint32_t key_code,
const Var& character_text) {
- // Type check the input event before setting it.
- if (!has_interface<PPB_KeyboardInputEvent_1_0>())
- return;
- PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
- instance.pp_instance(), type, time_stamp, modifiers, key_code,
- character_text.pp_var()));
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_2>()->Create(
+ instance.pp_instance(), type, time_stamp, modifiers, key_code,
+ character_text.pp_var(), Var().pp_var()));
+ } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
+ PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
+ instance.pp_instance(), type, time_stamp, modifiers, key_code,
+ character_text.pp_var()));
+ }
+}
+
+KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ const Var& character_text,
+ const Var& code) {
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_2>()->Create(
+ instance.pp_instance(), type, time_stamp, modifiers, key_code,
+ character_text.pp_var(), code.pp_var()));
+ } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
+ PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
+ instance.pp_instance(), type, time_stamp, modifiers, key_code,
+ character_text.pp_var()));
+ }
}
uint32_t KeyboardInputEvent::GetKeyCode() const {
- if (!has_interface<PPB_KeyboardInputEvent_1_0>())
- return 0;
- return get_interface<PPB_KeyboardInputEvent_1_0>()->GetKeyCode(pp_resource());
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ return get_interface<PPB_KeyboardInputEvent_1_2>()->GetKeyCode(
+ pp_resource());
+ } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
+ return get_interface<PPB_KeyboardInputEvent_1_0>()->GetKeyCode(
+ pp_resource());
+ }
+ return 0;
}
Var KeyboardInputEvent::GetCharacterText() const {
- if (!has_interface<PPB_KeyboardInputEvent_1_0>())
- return Var();
- return Var(PASS_REF,
- get_interface<PPB_KeyboardInputEvent_1_0>()->GetCharacterText(
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_KeyboardInputEvent_1_2>()->GetCharacterText(
+ pp_resource()));
+ } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_KeyboardInputEvent_1_0>()->GetCharacterText(
pp_resource()));
+ }
+ return Var();
+}
+
+Var KeyboardInputEvent::GetCode() const {
+ if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
+ return Var(PASS_REF,
+ get_interface<PPB_KeyboardInputEvent_1_2>()->GetCode(
+ pp_resource()));
+ }
+ return Var();
}
// TouchInputEvent ------------------------------------------------------------
diff --git a/chromium/ppapi/cpp/input_event.h b/chromium/ppapi/cpp/input_event.h
index 69651841d01..f9641efad61 100644
--- a/chromium/ppapi/cpp/input_event.h
+++ b/chromium/ppapi/cpp/input_event.h
@@ -288,6 +288,37 @@ class KeyboardInputEvent : public InputEvent {
uint32_t key_code,
const Var& character_text);
+ /// Constructs a keyboard input even from the given parameters.
+ ///
+ /// @param[in] instance The instance for which this event occurred.
+ ///
+ /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
+ /// input event.
+ ///
+ /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
+ /// when the event occurred.
+ ///
+ /// @param[in] modifiers A bit field combination of the
+ /// <code>PP_InputEvent_Modifier</code> flags.
+ ///
+ /// @param[in] key_code This value reflects the DOM KeyboardEvent
+ /// <code>keyCode</code> field. Chrome populates this with the Windows-style
+ /// Virtual Key code of the key.
+ ///
+ /// @param[in] character_text This value represents the typed character as a
+ /// UTF-8 string.
+ ///
+ /// @param[in] code This value reflects the DOM KeyboardEvent
+ /// <code>code</code> field, which identifies the physical key associated
+ /// with the event.
+ KeyboardInputEvent(const InstanceHandle& instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ const Var& character_text,
+ const Var& code);
+
/// Returns the DOM keyCode field for the keyboard event.
/// Chrome populates this with the Windows-style Virtual Key code of the key.
uint32_t GetKeyCode() const;
@@ -298,6 +329,12 @@ class KeyboardInputEvent : public InputEvent {
/// input events. For non-character input events the return value will be an
/// undefined var.
Var GetCharacterText() const;
+
+ /// Returns the DOM |code| for the keyboard event.
+ //
+ /// @return A string var representing a physical key that was pressed to
+ /// generate this event.
+ Var GetCode() const;
};
class TouchInputEvent : public InputEvent {
diff --git a/chromium/ppapi/cpp/instance.cc b/chromium/ppapi/cpp/instance.cc
index d285fd49366..a5be2b97613 100644
--- a/chromium/ppapi/cpp/instance.cc
+++ b/chromium/ppapi/cpp/instance.cc
@@ -9,6 +9,7 @@
#include "ppapi/c/ppb_input_event.h"
#include "ppapi/c/ppb_instance.h"
#include "ppapi/c/ppb_messaging.h"
+#include "ppapi/cpp/compositor.h"
#include "ppapi/cpp/graphics_2d.h"
#include "ppapi/cpp/graphics_3d.h"
#include "ppapi/cpp/image_data.h"
@@ -93,6 +94,13 @@ bool Instance::BindGraphics(const Graphics3D& graphics) {
pp_instance(), graphics.pp_resource()));
}
+bool Instance::BindGraphics(const Compositor& compositor) {
+ if (!has_interface<PPB_Instance_1_0>())
+ return false;
+ return PP_ToBool(get_interface<PPB_Instance_1_0>()->BindGraphics(
+ pp_instance(), compositor.pp_resource()));
+}
+
bool Instance::IsFullFrame() {
if (!has_interface<PPB_Instance_1_0>())
return false;
diff --git a/chromium/ppapi/cpp/instance.h b/chromium/ppapi/cpp/instance.h
index 6bf4e839381..af024db336a 100644
--- a/chromium/ppapi/cpp/instance.h
+++ b/chromium/ppapi/cpp/instance.h
@@ -28,6 +28,7 @@ struct PP_InputEvent;
/// The C++ interface to the Pepper API.
namespace pp {
+class Compositor;
class Graphics2D;
class Graphics3D;
class InputEvent;
@@ -174,10 +175,10 @@ class Instance {
/// RequestInputEvents() or RequestFilteringInputEvents(). By
/// default, no events are delivered.
///
- /// If the event was handled, it will not be forwarded to the web page or
- /// browser. If it was not handled, it will bubble according to the normal
- /// rules. So it is important that an instance respond accurately with whether
- /// event propagation should continue.
+ /// If the event was handled, it will not be forwarded to any default
+ /// handlers. If it was not handled, it may be dispatched to a default
+ /// handler. So it is important that an instance respond accurately with
+ /// whether event propagation should continue.
///
/// Event propagation also controls focus. If you handle an event like a mouse
/// event, typically the instance will be given focus. Returning false from
@@ -316,6 +317,17 @@ class Instance {
/// instance, so the caller can release its reference if it chooses.
bool BindGraphics(const Graphics3D& graphics);
+ /// Binds the given Compositor as the current display surface.
+ /// Refer to <code>BindGraphics(const Graphics2D& graphics)</code> for
+ /// further information.
+ ///
+ /// @param[in] compositor A <code>Compositor</code> to bind.
+ ///
+ /// @return true if bind was successful or false if the device was not the
+ /// correct type. On success, a reference to the device will be held by the
+ /// instance, so the caller can release its reference if it chooses.
+ bool BindGraphics(const Compositor& compositor);
+
/// IsFullFrame() determines if the instance is full-frame (repr).
/// Such an instance represents the entire document in a frame rather than an
/// embedded resource. This can happen if the user does a top-level
diff --git a/chromium/ppapi/cpp/media_stream_audio_track.cc b/chromium/ppapi/cpp/media_stream_audio_track.cc
new file mode 100644
index 00000000000..a233bbd046f
--- /dev/null
+++ b/chromium/ppapi/cpp/media_stream_audio_track.cc
@@ -0,0 +1,111 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/media_stream_audio_track.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+#include "ppapi/cpp/audio_buffer.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_MediaStreamAudioTrack_0_1>() {
+ return PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1;
+}
+
+} // namespace
+
+MediaStreamAudioTrack::MediaStreamAudioTrack() {
+}
+
+MediaStreamAudioTrack::MediaStreamAudioTrack(
+ const MediaStreamAudioTrack& other) : Resource(other) {
+}
+
+MediaStreamAudioTrack::MediaStreamAudioTrack(const Resource& resource)
+ : Resource(resource) {
+ PP_DCHECK(IsMediaStreamAudioTrack(resource));
+}
+
+MediaStreamAudioTrack::MediaStreamAudioTrack(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+MediaStreamAudioTrack::~MediaStreamAudioTrack() {
+}
+
+int32_t MediaStreamAudioTrack::Configure(
+ const int32_t attributes[],
+ const CompletionCallback& callback) {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamAudioTrack_0_1>()->Configure(
+ pp_resource(), attributes, callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t MediaStreamAudioTrack::GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value) {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetAttrib(
+ pp_resource(), attrib, value);
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+std::string MediaStreamAudioTrack::GetId() const {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ pp::Var id(PASS_REF, get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetId(
+ pp_resource()));
+ if (id.is_string())
+ return id.AsString();
+ }
+ return std::string();
+}
+
+bool MediaStreamAudioTrack::HasEnded() const {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->HasEnded(
+ pp_resource()));
+ }
+ return true;
+}
+
+int32_t MediaStreamAudioTrack::GetBuffer(
+ const CompletionCallbackWithOutput<AudioBuffer>& callback) {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetBuffer(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t MediaStreamAudioTrack::RecycleBuffer(const AudioBuffer& buffer) {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamAudioTrack_0_1>()->RecycleBuffer(
+ pp_resource(), buffer.pp_resource());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+void MediaStreamAudioTrack::Close() {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>())
+ get_interface<PPB_MediaStreamAudioTrack_0_1>()->Close(pp_resource());
+}
+
+// static
+bool MediaStreamAudioTrack::IsMediaStreamAudioTrack(const Resource& resource) {
+ if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->
+ IsMediaStreamAudioTrack(resource.pp_resource()));
+ }
+ return false;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/media_stream_audio_track.h b/chromium/ppapi/cpp/media_stream_audio_track.h
new file mode 100644
index 00000000000..680e52b832e
--- /dev/null
+++ b/chromium/ppapi/cpp/media_stream_audio_track.h
@@ -0,0 +1,144 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
+#define PPAPI_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
+
+#include <string>
+
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+#include "ppapi/cpp/resource.h"
+#include "ppapi/cpp/var.h"
+
+/// @file
+/// This file defines the <code>MediaStreamAudioTrack</code> interface for an
+/// audio source resource, which receives audio buffers from a MediaStream audio
+/// track in the browser.
+
+namespace pp {
+
+class AudioBuffer;
+class CompletionCallback;
+template <typename T> class CompletionCallbackWithOutput;
+
+/// The <code>MediaStreamAudioTrack</code> class contains methods for
+/// receiving audio buffers from a MediaStream audio track in the browser.
+class MediaStreamAudioTrack : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>MediaStreamAudioTrack</code> object.
+ MediaStreamAudioTrack();
+
+ /// The copy constructor for <code>MediaStreamAudioTrack</code>.
+ ///
+ /// @param[in] other A reference to a <code>MediaStreamAudioTrack</code>.
+ MediaStreamAudioTrack(const MediaStreamAudioTrack& other);
+
+ /// Constructs a <code>MediaStreamAudioTrack</code> from
+ /// a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_MediaStreamAudioTrack</code> resource.
+ explicit MediaStreamAudioTrack(const Resource& resource);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added for you.
+ ///
+ /// @param[in] resource A <code>PPB_MediaStreamAudioTrack</code> resource.
+ MediaStreamAudioTrack(PassRef, PP_Resource resource);
+
+ ~MediaStreamAudioTrack();
+
+ /// Configures underlying buffer buffers for incoming audio samples.
+ /// If the application doesn't want to drop samples, then the
+ /// <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
+ /// chosen such that inter-buffer processing time variability won't overrun
+ /// all input buffers. If all buffers are filled, then samples will be
+ /// dropped. The application can detect this by examining the timestamp on
+ /// returned buffers. If <code>Configure()</code> is not called, default
+ /// settings will be used. Calls to Configure while the plugin holds
+ /// buffers will fail.
+ /// Example usage from plugin code:
+ /// @code
+ /// int32_t attribs[] = {
+ /// PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
+ /// PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
+ /// PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
+ /// track.Configure(attribs, callback);
+ /// @endcode
+ ///
+ /// @param[in] attrib_list A list of attribute name-value pairs in which each
+ /// attribute is immediately followed by the corresponding desired value.
+ /// The list is terminated by
+ /// <code>PP_MEDIASTREAMAUDIOTRACK_AUDIO_NONE</code>.
+ /// @param[in] callback A <code>CompletionCallback</code> to be called upon
+ /// completion of <code>Configure()</code>.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t Configure(const int32_t attributes[],
+ const CompletionCallback& callback);
+
+ /// Gets attribute value for a given attribute name.
+ ///
+ /// @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
+ /// querying.
+ /// @param[out] value A int32_t for storing the attribute value.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value);
+
+ /// Returns the track ID of the underlying MediaStream audio track.
+ std::string GetId() const;
+
+ /// Checks whether the underlying MediaStream track has ended.
+ /// Calls to GetBuffer while the track has ended are safe to make and will
+ /// complete, but will fail.
+ bool HasEnded() const;
+
+ /// Gets the next audio buffer from the MediaStream track.
+ /// If internal processing is slower than the incoming buffer rate,
+ /// new buffers will be dropped from the incoming stream. Once all buffers
+ /// are full, audio samples will be dropped until <code>RecycleBuffer()</code>
+ /// is called to free a spot for another buffer.
+ /// If there are no audio data in the input buffer,
+ /// <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ /// <code>callback</code> will be called when a new buffer of audio samples
+ /// is received or some error happens.
+ ///
+ /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
+ /// called upon completion of <code>GetBuffer()</code>. If success,
+ /// an AudioBuffer will be passed into the completion callback function.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t GetBuffer(
+ const CompletionCallbackWithOutput<AudioBuffer>& callback);
+
+ /// Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
+ /// reuse the buffer. And the buffer will become invalid. The caller should
+ /// release all references it holds to <code>buffer</code> and not use it
+ /// anymore.
+ ///
+ /// @param[in] buffer A AudioBuffer returned by <code>GetBuffer()</code>.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t RecycleBuffer(const AudioBuffer& buffer);
+
+ /// Closes the MediaStream audio track, and disconnects it from the audio
+ /// source.
+ /// After calling <code>Close()</code>, no new buffers will be received.
+ void Close();
+
+ /// Checks whether a <code>Resource</code> is a MediaStream audio track,
+ /// to test whether it is appropriate for use with the
+ /// <code>MediaStreamAudioTrack</code> constructor.
+ ///
+ /// @param[in] resource A <code>Resource</code> to test.
+ ///
+ /// @return True if <code>resource</code> is a MediaStream audio track.
+ static bool IsMediaStreamAudioTrack(const Resource& resource);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
diff --git a/chromium/ppapi/cpp/media_stream_video_track.cc b/chromium/ppapi/cpp/media_stream_video_track.cc
new file mode 100644
index 00000000000..47ff1406f75
--- /dev/null
+++ b/chromium/ppapi/cpp/media_stream_video_track.cc
@@ -0,0 +1,167 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/media_stream_video_track.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_media_stream_video_track.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+#include "ppapi/cpp/video_frame.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_MediaStreamVideoTrack_1_0>() {
+ return PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0;
+}
+
+template <> const char* interface_name<PPB_MediaStreamVideoTrack_0_1>() {
+ return PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1;
+}
+
+} // namespace
+
+MediaStreamVideoTrack::MediaStreamVideoTrack() {
+}
+
+MediaStreamVideoTrack::MediaStreamVideoTrack(
+ const MediaStreamVideoTrack& other) : Resource(other) {
+}
+
+MediaStreamVideoTrack::MediaStreamVideoTrack(const Resource& resource)
+ : Resource(resource) {
+ PP_DCHECK(IsMediaStreamVideoTrack(resource));
+}
+
+MediaStreamVideoTrack::MediaStreamVideoTrack(const InstanceHandle& instance) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ PassRefFromConstructor(
+ get_interface<PPB_MediaStreamVideoTrack_1_0>()->Create(
+ instance.pp_instance()));
+ return;
+ }
+ PP_DCHECK(false);
+}
+
+MediaStreamVideoTrack::MediaStreamVideoTrack(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+MediaStreamVideoTrack::~MediaStreamVideoTrack() {
+}
+
+int32_t MediaStreamVideoTrack::Configure(
+ const int32_t attributes[],
+ const CompletionCallback& callback) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->Configure(
+ pp_resource(), attributes, callback.pp_completion_callback());
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_0_1>()->Configure(
+ pp_resource(), attributes, callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t MediaStreamVideoTrack::GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetAttrib(
+ pp_resource(), attrib, value);
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetAttrib(
+ pp_resource(), attrib, value);
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+std::string MediaStreamVideoTrack::GetId() const {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ pp::Var id(PASS_REF, get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetId(
+ pp_resource()));
+ if (id.is_string())
+ return id.AsString();
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ pp::Var id(PASS_REF, get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetId(
+ pp_resource()));
+ if (id.is_string())
+ return id.AsString();
+ }
+ return std::string();
+}
+
+bool MediaStreamVideoTrack::HasEnded() const {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_1_0>()->HasEnded(
+ pp_resource()));
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_0_1>()->HasEnded(
+ pp_resource()));
+ }
+ return true;
+}
+
+int32_t MediaStreamVideoTrack::GetFrame(
+ const CompletionCallbackWithOutput<VideoFrame>& callback) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetFrame(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetFrame(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t MediaStreamVideoTrack::RecycleFrame(const VideoFrame& frame) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->RecycleFrame(
+ pp_resource(), frame.pp_resource());
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_0_1>()->RecycleFrame(
+ pp_resource(), frame.pp_resource());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+void MediaStreamVideoTrack::Close() {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>())
+ get_interface<PPB_MediaStreamVideoTrack_1_0>()->Close(pp_resource());
+ else if (has_interface<PPB_MediaStreamVideoTrack_0_1>())
+ get_interface<PPB_MediaStreamVideoTrack_0_1>()->Close(pp_resource());
+
+}
+
+int32_t MediaStreamVideoTrack::GetEmptyFrame(
+ const CompletionCallbackWithOutput<VideoFrame>& callback) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetEmptyFrame(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
+ }
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t MediaStreamVideoTrack::PutFrame(const VideoFrame& frame) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return get_interface<PPB_MediaStreamVideoTrack_1_0>()->PutFrame(
+ pp_resource(), frame.pp_resource());
+ }
+ return PP_ERROR_NOINTERFACE;
+}
+
+bool MediaStreamVideoTrack::IsMediaStreamVideoTrack(const Resource& resource) {
+ if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_1_0>()->
+ IsMediaStreamVideoTrack(resource.pp_resource()));
+ } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
+ return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_0_1>()->
+ IsMediaStreamVideoTrack(resource.pp_resource()));
+ }
+ return false;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/media_stream_video_track.h b/chromium/ppapi/cpp/media_stream_video_track.h
new file mode 100644
index 00000000000..5d03745f196
--- /dev/null
+++ b/chromium/ppapi/cpp/media_stream_video_track.h
@@ -0,0 +1,164 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
+#define PPAPI_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
+
+#include <string>
+
+#include "ppapi/c/ppb_media_stream_video_track.h"
+#include "ppapi/cpp/resource.h"
+#include "ppapi/cpp/var.h"
+
+/// @file
+/// This file defines the <code>MediaStreamVideoTrack</code> interface for a
+/// video source resource, which receives video frames from a MediaStream video
+/// track in the browser.
+
+namespace pp {
+
+class VideoFrame;
+class CompletionCallback;
+template <typename T> class CompletionCallbackWithOutput;
+
+/// The <code>MediaStreamVideoTrack</code> class contains methods for
+/// receiving video frames from a MediaStream video track in the browser.
+class MediaStreamVideoTrack : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>MediaStreamVideoTrack</code> object.
+ MediaStreamVideoTrack();
+
+ /// The copy constructor for <code>MediaStreamVideoTrack</code>.
+ ///
+ /// @param[in] other A reference to a <code>MediaStreamVideoTrack</code>.
+ MediaStreamVideoTrack(const MediaStreamVideoTrack& other);
+
+ /// Constructs a <code>MediaStreamVideoTrack</code> from
+ /// a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_MediaStreamVideoTrack</code> resource.
+ explicit MediaStreamVideoTrack(const Resource& resource);
+
+ /// Constructs a <code>MediaStreamVideoTrack</code> that outputs given frames
+ /// to a new video track, which will be consumed by Javascript.
+ explicit MediaStreamVideoTrack(const InstanceHandle& instance);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added for you.
+ ///
+ /// @param[in] resource A <code>PPB_MediaStreamVideoTrack</code> resource.
+ MediaStreamVideoTrack(PassRef, PP_Resource resource);
+
+ ~MediaStreamVideoTrack();
+
+ /// Configures underlying frame buffers for incoming frames.
+ /// If the application doesn't want to drop frames, then the
+ /// <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
+ /// chosen such that inter-frame processing time variability won't overrun the
+ /// input buffer. If the buffer is overfilled, then frames will be dropped.
+ /// The application can detect this by examining the timestamp on returned
+ /// frames. If some attributes are not specified, default values will be used
+ /// for those unspecified attributes. If <code>Configure()</code> is not
+ /// called, default settings will be used.
+ /// Example usage from plugin code:
+ /// @code
+ /// int32_t attribs[] = {
+ /// PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
+ /// PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
+ /// track.Configure(attribs, callback);
+ /// @endcode
+ ///
+ /// @param[in] attrib_list A list of attribute name-value pairs in which each
+ /// attribute is immediately followed by the corresponding desired value.
+ /// The list is terminated by
+ /// <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
+ /// @param[in] callback A <code>CompletionCallback</code> to be called upon
+ /// completion of <code>Configure()</code>.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ /// Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
+ /// <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
+ /// holds some frames which are not recycled with <code>RecycleFrame()</code>.
+ /// If an error is returned, all attributes and the underlying buffer will not
+ /// be changed.
+ int32_t Configure(const int32_t attributes[],
+ const CompletionCallback& callback);
+
+ /// Gets attribute value for a given attribute name.
+ ///
+ /// @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
+ /// querying.
+ /// @param[out] value A int32_t for storing the attribute value.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value);
+
+ /// Returns the track ID of the underlying MediaStream video track.
+ std::string GetId() const;
+
+ /// Checks whether the underlying MediaStream track has ended.
+ /// Calls to GetFrame while the track has ended are safe to make and will
+ /// complete, but will fail.
+ bool HasEnded() const;
+
+ /// Gets the next video frame from the MediaStream track.
+ /// If internal processing is slower than the incoming frame rate, new frames
+ /// will be dropped from the incoming stream. Once the input buffer is full,
+ /// frames will be dropped until <code>RecycleFrame()</code> is called to free
+ /// a spot for another frame to be buffered.
+ /// If there are no frames in the input buffer,
+ /// <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
+ /// <code>callback</code> will be called when a new frame is received or some
+ /// error happens.
+ ///
+ /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
+ /// called upon completion of <code>GetFrame()</code>. If success,
+ /// a VideoFrame will be passed into the completion callback function.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames
+ /// buffer was not allocated successfully.
+ int32_t GetFrame(
+ const CompletionCallbackWithOutput<VideoFrame>& callback);
+
+ /// Recycles a frame returned by <code>GetFrame()</code>, so the track can
+ /// reuse the underlying buffer of this frame. And the frame will become
+ /// invalid. The caller should release all references it holds to
+ /// <code>frame</code> and not use it anymore.
+ ///
+ /// @param[in] frame A VideoFrame returned by <code>GetFrame()</code>.
+ ///
+ /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
+ int32_t RecycleFrame(const VideoFrame& frame);
+
+ /// Closes the MediaStream video track, and disconnects it from video source.
+ /// After calling <code>Close()</code>, no new frames will be received.
+ void Close();
+
+ // Gets a free frame for output. The frame is allocated by
+ // <code>Configure()</code>. The caller should fill it with frame data, and
+ // then use |PutFrame()| to send the frame back.
+ int32_t GetEmptyFrame(
+ const CompletionCallbackWithOutput<VideoFrame>& callback);
+
+ // Sends a frame returned by |GetEmptyFrame()| to the output track.
+ // After this function, the |frame| should not be used anymore and the
+ // caller should release the reference that it holds.
+ int32_t PutFrame(const VideoFrame& frame);
+
+ /// Checks whether a <code>Resource</code> is a MediaStream video track,
+ /// to test whether it is appropriate for use with the
+ /// <code>MediaStreamVideoTrack</code> constructor.
+ ///
+ /// @param[in] resource A <code>Resource</code> to test.
+ ///
+ /// @return True if <code>resource</code> is a MediaStream video track.
+ static bool IsMediaStreamVideoTrack(const Resource& resource);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
diff --git a/chromium/ppapi/cpp/message_loop.h b/chromium/ppapi/cpp/message_loop.h
index c1e217bbe36..6ae374682ec 100644
--- a/chromium/ppapi/cpp/message_loop.h
+++ b/chromium/ppapi/cpp/message_loop.h
@@ -63,8 +63,8 @@ class InstanceHandle;
/// The main thread has an implicitly created message loop. The main thread is
/// the thread where PPP_InitializeModule and PPP_Instance functions are called.
/// You can retrieve a reference to this message loop by calling
-/// GetForMainThread() or, if your code is on the main thread,
-/// GetForCurrentThread() will also work.
+/// GetForMainThread() or, if your code is on the main thread, GetCurrent() will
+/// also work.
///
/// Some special threads created by the system can not have message loops. In
/// particular, the background thread created for audio processing has this
diff --git a/chromium/ppapi/cpp/private/content_decryptor_private.cc b/chromium/ppapi/cpp/private/content_decryptor_private.cc
index 776393a2e20..3142511f7fb 100644
--- a/chromium/ppapi/cpp/private/content_decryptor_private.cc
+++ b/chromium/ppapi/cpp/private/content_decryptor_private.cc
@@ -39,16 +39,17 @@ void Initialize(PP_Instance instance,
}
void CreateSession(PP_Instance instance,
- uint32_t session_id,
- PP_Var type_arg,
- PP_Var init_data_arg) {
+ uint32_t promise_id,
+ PP_Var init_data_type_arg,
+ PP_Var init_data_arg,
+ PP_SessionType session_type) {
void* object =
Instance::GetPerInstanceObject(instance, kPPPContentDecryptorInterface);
if (!object)
return;
- pp::Var type_var(pp::PASS_REF, type_arg);
- if (!type_var.is_string())
+ pp::Var init_data_type_var(pp::PASS_REF, init_data_type_arg);
+ if (!init_data_type_var.is_string())
return;
pp::Var init_data_var(pp::PASS_REF, init_data_arg);
@@ -57,35 +58,65 @@ void CreateSession(PP_Instance instance,
pp::VarArrayBuffer init_data_array_buffer(init_data_var);
static_cast<ContentDecryptor_Private*>(object)
- ->CreateSession(session_id, type_var.AsString(), init_data_array_buffer);
+ ->CreateSession(promise_id,
+ init_data_type_var.AsString(),
+ init_data_array_buffer,
+ session_type);
+}
+
+void LoadSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id_arg) {
+ void* object =
+ Instance::GetPerInstanceObject(instance, kPPPContentDecryptorInterface);
+ if (!object)
+ return;
+
+ pp::Var web_session_id_var(web_session_id_arg);
+ if (!web_session_id_var.is_string())
+ return;
+
+ static_cast<ContentDecryptor_Private*>(object)
+ ->LoadSession(promise_id, web_session_id_var.AsString());
}
void UpdateSession(PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
+ PP_Var web_session_id_arg,
PP_Var response_arg) {
void* object =
Instance::GetPerInstanceObject(instance, kPPPContentDecryptorInterface);
if (!object)
return;
- pp::Var response_var(pp::PASS_REF, response_arg);
+ pp::Var web_session_id_var(web_session_id_arg);
+ if (!web_session_id_var.is_string())
+ return;
+
+ pp::Var response_var(response_arg);
if (!response_var.is_array_buffer())
return;
pp::VarArrayBuffer response(response_var);
static_cast<ContentDecryptor_Private*>(object)
- ->UpdateSession(session_id, response);
+ ->UpdateSession(promise_id, web_session_id_var.AsString(), response);
}
-void ReleaseSession(PP_Instance instance, uint32_t session_id) {
+void ReleaseSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id_arg) {
void* object =
Instance::GetPerInstanceObject(instance, kPPPContentDecryptorInterface);
if (!object)
return;
- static_cast<ContentDecryptor_Private*>(object)->ReleaseSession(session_id);
-}
+ pp::Var web_session_id_var(web_session_id_arg);
+ if (!web_session_id_var.is_string())
+ return;
+ static_cast<ContentDecryptor_Private*>(object)
+ ->ReleaseSession(promise_id, web_session_id_var.AsString());
+}
void Decrypt(PP_Instance instance,
PP_Resource encrypted_resource,
@@ -177,6 +208,7 @@ void DecryptAndDecode(PP_Instance instance,
const PPP_ContentDecryptor_Private ppp_content_decryptor = {
&Initialize,
&CreateSession,
+ &LoadSession,
&UpdateSession,
&ReleaseSession,
&Decrypt,
@@ -206,54 +238,87 @@ ContentDecryptor_Private::~ContentDecryptor_Private() {
this);
}
-void ContentDecryptor_Private::SessionCreated(
- uint32_t session_id,
+void ContentDecryptor_Private::PromiseResolved(uint32_t promise_id) {
+ if (has_interface<PPB_ContentDecryptor_Private>()) {
+ get_interface<PPB_ContentDecryptor_Private>()->PromiseResolved(
+ associated_instance_.pp_instance(), promise_id);
+ }
+}
+
+void ContentDecryptor_Private::PromiseResolvedWithSession(
+ uint32_t promise_id,
const std::string& web_session_id) {
if (has_interface<PPB_ContentDecryptor_Private>()) {
pp::Var web_session_id_var(web_session_id);
- get_interface<PPB_ContentDecryptor_Private>()->SessionCreated(
+ get_interface<PPB_ContentDecryptor_Private>()->PromiseResolvedWithSession(
associated_instance_.pp_instance(),
- session_id,
+ promise_id,
web_session_id_var.pp_var());
}
}
-void ContentDecryptor_Private::SessionMessage(uint32_t session_id,
- pp::VarArrayBuffer message,
- const std::string& default_url) {
+void ContentDecryptor_Private::PromiseRejected(
+ uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ const std::string& error_description) {
if (has_interface<PPB_ContentDecryptor_Private>()) {
- pp::Var default_url_var(default_url);
+ pp::Var error_description_var(error_description);
+ get_interface<PPB_ContentDecryptor_Private>()->PromiseRejected(
+ associated_instance_.pp_instance(),
+ promise_id,
+ exception_code,
+ system_code,
+ error_description_var.pp_var());
+ }
+}
+
+void ContentDecryptor_Private::SessionMessage(
+ const std::string& web_session_id,
+ pp::VarArrayBuffer message,
+ const std::string& destination_url) {
+ if (has_interface<PPB_ContentDecryptor_Private>()) {
+ pp::Var web_session_id_var(web_session_id);
+ pp::Var destination_url_var(destination_url);
get_interface<PPB_ContentDecryptor_Private>()->SessionMessage(
associated_instance_.pp_instance(),
- session_id,
+ web_session_id_var.pp_var(),
message.pp_var(),
- default_url_var.pp_var());
+ destination_url_var.pp_var());
}
}
-void ContentDecryptor_Private::SessionReady(uint32_t session_id) {
+void ContentDecryptor_Private::SessionReady(const std::string& web_session_id) {
if (has_interface<PPB_ContentDecryptor_Private>()) {
+ pp::Var web_session_id_var(web_session_id);
get_interface<PPB_ContentDecryptor_Private>()->SessionReady(
- associated_instance_.pp_instance(), session_id);
+ associated_instance_.pp_instance(), web_session_id_var.pp_var());
}
}
-void ContentDecryptor_Private::SessionClosed(uint32_t session_id) {
+void ContentDecryptor_Private::SessionClosed(
+ const std::string& web_session_id) {
if (has_interface<PPB_ContentDecryptor_Private>()) {
+ pp::Var web_session_id_var(web_session_id);
get_interface<PPB_ContentDecryptor_Private>()->SessionClosed(
- associated_instance_.pp_instance(), session_id);
+ associated_instance_.pp_instance(), web_session_id_var.pp_var());
}
}
-void ContentDecryptor_Private::SessionError(uint32_t session_id,
- int32_t media_error,
- int32_t system_code) {
+void ContentDecryptor_Private::SessionError(
+ const std::string& web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ const std::string& error_description) {
if (has_interface<PPB_ContentDecryptor_Private>()) {
+ pp::Var web_session_id_var(web_session_id);
+ pp::Var error_description_var(error_description);
get_interface<PPB_ContentDecryptor_Private>()->SessionError(
associated_instance_.pp_instance(),
- session_id,
- media_error,
- system_code);
+ web_session_id_var.pp_var(),
+ exception_code,
+ system_code,
+ error_description_var.pp_var());
}
}
diff --git a/chromium/ppapi/cpp/private/content_decryptor_private.h b/chromium/ppapi/cpp/private/content_decryptor_private.h
index d2c17c1869a..674bd38a1f2 100644
--- a/chromium/ppapi/cpp/private/content_decryptor_private.h
+++ b/chromium/ppapi/cpp/private/content_decryptor_private.h
@@ -5,6 +5,8 @@
#ifndef PPAPI_CPP_PRIVATE_CONTENT_DECRYPTOR_PRIVATE_H_
#define PPAPI_CPP_PRIVATE_CONTENT_DECRYPTOR_PRIVATE_H_
+#include <string>
+
#include "ppapi/c/private/pp_content_decryptor.h"
#include "ppapi/c/private/ppb_content_decryptor_private.h"
#include "ppapi/c/private/ppp_content_decryptor_private.h"
@@ -32,12 +34,17 @@ class ContentDecryptor_Private {
// strings. The change would allow the CDM wrapper to reuse vars when
// replying to the browser.
virtual void Initialize(const std::string& key_system) = 0;
- virtual void CreateSession(uint32_t session_id,
- const std::string& type,
- pp::VarArrayBuffer init_data) = 0;
- virtual void UpdateSession(uint32_t session_id,
+ virtual void CreateSession(uint32_t promise_id,
+ const std::string& init_data_type,
+ pp::VarArrayBuffer init_data,
+ PP_SessionType session_type) = 0;
+ virtual void LoadSession(uint32_t promise_id,
+ const std::string& web_session_id) = 0;
+ virtual void UpdateSession(uint32_t promise_id,
+ const std::string& web_session_id,
pp::VarArrayBuffer response) = 0;
- virtual void ReleaseSession(uint32_t session_id) = 0;
+ virtual void ReleaseSession(uint32_t promise_id,
+ const std::string& web_session_id) = 0;
virtual void Decrypt(pp::Buffer_Dev encrypted_buffer,
const PP_EncryptedBlockInfo& encrypted_block_info) = 0;
virtual void InitializeAudioDecoder(
@@ -58,15 +65,22 @@ class ContentDecryptor_Private {
// PPB_ContentDecryptor_Private methods for passing data from the decryptor
// to the browser.
- void SessionCreated(uint32_t session_id, const std::string& web_session_id);
- void SessionMessage(uint32_t session_id,
+ void PromiseResolved(uint32_t promise_id);
+ void PromiseResolvedWithSession(uint32_t promise_id,
+ const std::string& web_session_id);
+ void PromiseRejected(uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ const std::string& error_description);
+ void SessionMessage(const std::string& web_session_id,
pp::VarArrayBuffer message,
- const std::string& default_url);
- void SessionReady(uint32_t session_id);
- void SessionClosed(uint32_t session_id);
- void SessionError(uint32_t session_id,
- int32_t media_error,
- int32_t system_code);
+ const std::string& destination_url);
+ void SessionReady(const std::string& web_session_id);
+ void SessionClosed(const std::string& web_session_id);
+ void SessionError(const std::string& web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ const std::string& error_description);
// The plugin must not hold a reference to the encrypted buffer resource
// provided to Decrypt() when it calls this method. The browser will reuse
diff --git a/chromium/ppapi/cpp/private/find_private.cc b/chromium/ppapi/cpp/private/find_private.cc
new file mode 100644
index 00000000000..2765ae02eb1
--- /dev/null
+++ b/chromium/ppapi/cpp/private/find_private.cc
@@ -0,0 +1,99 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/private/find_private.h"
+
+#include "ppapi/c/private/ppb_find_private.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/rect.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_Find_Private>() {
+ return PPB_FIND_PRIVATE_INTERFACE;
+}
+
+static const char kPPPFindInterface[] = PPP_FIND_PRIVATE_INTERFACE;
+
+PP_Bool StartFind(PP_Instance instance,
+ const char* text,
+ PP_Bool case_sensitive) {
+ void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
+ if (!object)
+ return PP_FALSE;
+ bool return_value = static_cast<Find_Private*>(object)->StartFind(
+ text, PP_ToBool(case_sensitive));
+ return PP_FromBool(return_value);
+}
+
+void SelectFindResult(PP_Instance instance, PP_Bool forward) {
+ void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
+ if (object)
+ static_cast<Find_Private*>(object)->SelectFindResult(PP_ToBool(forward));
+}
+
+void StopFind(PP_Instance instance) {
+ void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface);
+ if (object)
+ static_cast<Find_Private*>(object)->StopFind();
+}
+
+const PPP_Find_Private ppp_find = {
+ &StartFind,
+ &SelectFindResult,
+ &StopFind
+};
+
+} // namespace
+
+Find_Private::Find_Private(Instance* instance)
+ : associated_instance_(instance) {
+ Module::Get()->AddPluginInterface(kPPPFindInterface, &ppp_find);
+ instance->AddPerInstanceObject(kPPPFindInterface, this);
+}
+
+Find_Private::~Find_Private() {
+ Instance::RemovePerInstanceObject(associated_instance_,
+ kPPPFindInterface, this);
+}
+
+void Find_Private::SetPluginToHandleFindRequests() {
+ if (has_interface<PPB_Find_Private>()) {
+ get_interface<PPB_Find_Private>()->SetPluginToHandleFindRequests(
+ associated_instance_.pp_instance());
+ }
+}
+
+void Find_Private::NumberOfFindResultsChanged(int32_t total,
+ bool final_result) {
+ if (has_interface<PPB_Find_Private>()) {
+ get_interface<PPB_Find_Private>()->NumberOfFindResultsChanged(
+ associated_instance_.pp_instance(), total, PP_FromBool(final_result));
+ }
+}
+
+void Find_Private::SelectedFindResultChanged(int32_t index) {
+ if (has_interface<PPB_Find_Private>()) {
+ get_interface<PPB_Find_Private>()->SelectedFindResultChanged(
+ associated_instance_.pp_instance(), index);
+ }
+}
+
+void Find_Private::SetTickmarks(const std::vector<pp::Rect>& tickmarks) {
+ if (has_interface<PPB_Find_Private>()) {
+ std::vector<PP_Rect> tickmarks_converted(tickmarks.begin(),
+ tickmarks.end());
+ PP_Rect* array =
+ tickmarks_converted.empty() ? NULL : &tickmarks_converted[0];
+ get_interface<PPB_Find_Private>()->SetTickmarks(
+ associated_instance_.pp_instance(), array,
+ static_cast<uint32_t>(tickmarks.size()));
+ }
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/dev/find_dev.h b/chromium/ppapi/cpp/private/find_private.h
index 89c2d5a0cf5..268033b6218 100644
--- a/chromium/ppapi/cpp/dev/find_dev.h
+++ b/chromium/ppapi/cpp/private/find_private.h
@@ -1,18 +1,20 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef PPAPI_CPP_DEV_FIND_DEV_H_
-#define PPAPI_CPP_DEV_FIND_DEV_H_
+#ifndef PPAPI_CPP_PRIVATE_FIND_PRIVATE_H_
+#define PPAPI_CPP_PRIVATE_FIND_PRIVATE_H_
#include <string>
+#include <vector>
-#include "ppapi/c/dev/ppp_find_dev.h"
+#include "ppapi/c/private/ppp_find_private.h"
#include "ppapi/cpp/instance_handle.h"
namespace pp {
class Instance;
+class Rect;
// This class allows you to associate the PPP_Find and PPB_Find C-based
// interfaces with an object. It associates itself with the given instance, and
@@ -20,8 +22,8 @@ class Instance;
// browser calls.
//
// You would typically use this either via inheritance on your instance:
-// class MyInstance : public pp::Instance, public pp::Find_Dev {
-// class MyInstance() : pp::Find_Dev(this) {
+// class MyInstance : public pp::Instance, public pp::Find_Private {
+// class MyInstance() : pp::Find_Private(this) {
// }
// ...
// };
@@ -37,21 +39,23 @@ class Instance;
//
// MyFinder finder_;
// };
-class Find_Dev {
+class Find_Private {
public:
// The instance parameter must outlive this class.
- Find_Dev(Instance* instance);
- virtual ~Find_Dev();
+ Find_Private(Instance* instance);
+ virtual ~Find_Private();
- // PPP_Find_Dev functions exposed as virtual functions for you to
+ // PPP_Find_Private functions exposed as virtual functions for you to
// override.
virtual bool StartFind(const std::string& text, bool case_sensitive) = 0;
virtual void SelectFindResult(bool forward) = 0;
virtual void StopFind() = 0;
- // PPB_Find_Def functions for you to call to report find results.
+ // PPB_Find_Private functions for you to call to report find results.
+ void SetPluginToHandleFindRequests();
void NumberOfFindResultsChanged(int32_t total, bool final_result);
void SelectedFindResultChanged(int32_t index);
+ void SetTickmarks(const std::vector<pp::Rect>& tickmarks);
private:
InstanceHandle associated_instance_;
@@ -59,4 +63,4 @@ class Find_Dev {
} // namespace pp
-#endif // PPAPI_CPP_DEV_FIND_DEV_H_
+#endif // PPAPI_CPP_PRIVATE_FIND_PRIVATE_H_
diff --git a/chromium/ppapi/cpp/private/flash_clipboard.cc b/chromium/ppapi/cpp/private/flash_clipboard.cc
index c63f747bcc0..77e68ba3ad1 100644
--- a/chromium/ppapi/cpp/private/flash_clipboard.cc
+++ b/chromium/ppapi/cpp/private/flash_clipboard.cc
@@ -24,13 +24,18 @@ template <> const char* interface_name<PPB_Flash_Clipboard_5_0>() {
return PPB_FLASH_CLIPBOARD_INTERFACE_5_0;
}
+template <> const char* interface_name<PPB_Flash_Clipboard_5_1>() {
+ return PPB_FLASH_CLIPBOARD_INTERFACE_5_1;
+}
+
} // namespace
namespace flash {
// static
bool Clipboard::IsAvailable() {
- return has_interface<PPB_Flash_Clipboard_5_0>() ||
+ return has_interface<PPB_Flash_Clipboard_5_1>() ||
+ has_interface<PPB_Flash_Clipboard_5_0>() ||
has_interface<PPB_Flash_Clipboard_4_0>() ;
}
@@ -38,7 +43,10 @@ bool Clipboard::IsAvailable() {
uint32_t Clipboard::RegisterCustomFormat(const InstanceHandle& instance,
const std::string& format_name) {
uint32_t rv = PP_FLASH_CLIPBOARD_FORMAT_INVALID;
- if (has_interface<PPB_Flash_Clipboard_5_0>()) {
+ if (has_interface<PPB_Flash_Clipboard_5_1>()) {
+ rv = get_interface<PPB_Flash_Clipboard_5_1>()->RegisterCustomFormat(
+ instance.pp_instance(), format_name.c_str());
+ } else if (has_interface<PPB_Flash_Clipboard_5_0>()) {
rv = get_interface<PPB_Flash_Clipboard_5_0>()->RegisterCustomFormat(
instance.pp_instance(), format_name.c_str());
}
@@ -50,7 +58,10 @@ bool Clipboard::IsFormatAvailable(const InstanceHandle& instance,
PP_Flash_Clipboard_Type clipboard_type,
uint32_t format) {
bool rv = false;
- if (has_interface<PPB_Flash_Clipboard_5_0>()) {
+ if (has_interface<PPB_Flash_Clipboard_5_1>()) {
+ rv = PP_ToBool(get_interface<PPB_Flash_Clipboard_5_1>()->IsFormatAvailable(
+ instance.pp_instance(), clipboard_type, format));
+ } else if (has_interface<PPB_Flash_Clipboard_5_0>()) {
rv = PP_ToBool(get_interface<PPB_Flash_Clipboard_5_0>()->IsFormatAvailable(
instance.pp_instance(), clipboard_type, format));
} else if (has_interface<PPB_Flash_Clipboard_4_0>()) {
@@ -68,7 +79,14 @@ bool Clipboard::ReadData(
uint32_t format,
Var* out) {
bool rv = false;
- if (has_interface<PPB_Flash_Clipboard_5_0>()) {
+ if (has_interface<PPB_Flash_Clipboard_5_1>()) {
+ PP_Var result = get_interface<PPB_Flash_Clipboard_5_1>()->ReadData(
+ instance.pp_instance(),
+ clipboard_type,
+ format);
+ *out = Var(PASS_REF, result);
+ rv = true;
+ } else if (has_interface<PPB_Flash_Clipboard_5_0>()) {
PP_Var result = get_interface<PPB_Flash_Clipboard_5_0>()->ReadData(
instance.pp_instance(),
clipboard_type,
@@ -96,7 +114,29 @@ bool Clipboard::WriteData(
return false;
bool rv = false;
- if (has_interface<PPB_Flash_Clipboard_5_0>()) {
+ if (has_interface<PPB_Flash_Clipboard_5_1>()) {
+ // Convert vector of pp::Var into a vector of PP_Var.
+ std::vector<PP_Var> data_items_vector;
+ for (uint32_t i = 0; i < data_items.size(); ++i)
+ data_items_vector.push_back(data_items[i].pp_var());
+
+ // Ensure that we don't dereference the memory in empty vectors. We still
+ // want to call WriteData because it has the effect of clearing the
+ // clipboard.
+ const uint32_t* formats_ptr(NULL);
+ const PP_Var* data_items_ptr(NULL);
+ if (data_items.size() > 0) {
+ formats_ptr = &formats[0];
+ data_items_ptr = &data_items_vector[0];
+ }
+
+ rv = (get_interface<PPB_Flash_Clipboard_5_1>()->WriteData(
+ instance.pp_instance(),
+ clipboard_type,
+ data_items.size(),
+ formats_ptr,
+ data_items_ptr) == PP_OK);
+ } else if (has_interface<PPB_Flash_Clipboard_5_0>()) {
// Convert vector of pp::Var into a vector of PP_Var.
std::vector<PP_Var> data_items_vector;
for (uint32_t i = 0; i < data_items.size(); ++i)
@@ -148,5 +188,17 @@ bool Clipboard::WriteData(
return rv;
}
+// static
+bool Clipboard::GetSequenceNumber(const InstanceHandle& instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number) {
+ if (has_interface<PPB_Flash_Clipboard_5_1>()) {
+ return PP_ToBool(
+ get_interface<PPB_Flash_Clipboard_5_1>()->GetSequenceNumber(
+ instance.pp_instance(), clipboard_type, sequence_number));
+ }
+ return false;
+}
+
} // namespace flash
} // namespace pp
diff --git a/chromium/ppapi/cpp/private/flash_clipboard.h b/chromium/ppapi/cpp/private/flash_clipboard.h
index aab06efb1e9..0df6028cf5a 100644
--- a/chromium/ppapi/cpp/private/flash_clipboard.h
+++ b/chromium/ppapi/cpp/private/flash_clipboard.h
@@ -45,6 +45,12 @@ class Clipboard {
PP_Flash_Clipboard_Type clipboard_type,
const std::vector<uint32_t>& formats,
const std::vector<Var>& data_items);
+
+ // Outputs a sequence number that uniquely identifies the clipboard state in
+ // |sequence_number| and returns true if successful.
+ static bool GetSequenceNumber(const InstanceHandle& instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number);
};
} // namespace flash
diff --git a/chromium/ppapi/cpp/private/input_event_private.cc b/chromium/ppapi/cpp/private/input_event_private.cc
new file mode 100644
index 00000000000..7b53358c713
--- /dev/null
+++ b/chromium/ppapi/cpp/private/input_event_private.cc
@@ -0,0 +1,44 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/private/input_event_private.h"
+
+#include "ppapi/cpp/module_impl.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_InputEvent_Private>() {
+ return PPB_INPUTEVENT_PRIVATE_INTERFACE;
+}
+
+} // namespace
+
+InputEventPrivate::InputEventPrivate() : InputEvent() {
+}
+
+InputEventPrivate::InputEventPrivate(const InputEvent& event) : InputEvent() {
+ if (!has_interface<PPB_InputEvent_Private_0_1>())
+ return;
+ Module::Get()->core()->AddRefResource(event.pp_resource());
+ PassRefFromConstructor(event.pp_resource());
+}
+
+bool InputEventPrivate::TraceInputLatency(bool has_damage) {
+ if (!has_interface<PPB_InputEvent_Private_0_1>())
+ return false;
+ return PP_ToBool(
+ get_interface<PPB_InputEvent_Private_0_1>()->TraceInputLatency(
+ pp_resource(), PP_FromBool(has_damage)));
+}
+
+void InputEventPrivate::StartTrackingLatency(const InstanceHandle& instance) {
+ if (!has_interface<PPB_InputEvent_Private>())
+ return;
+ return get_interface<PPB_InputEvent_Private>()->StartTrackingLatency(
+ instance.pp_instance());
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/private/input_event_private.h b/chromium/ppapi/cpp/private/input_event_private.h
new file mode 100644
index 00000000000..3fb4e3a4014
--- /dev/null
+++ b/chromium/ppapi/cpp/private/input_event_private.h
@@ -0,0 +1,27 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_PRIVATE_INPUT_EVENT_PRIVATE_H_
+#define PPAPI_CPP_PRIVATE_INPUT_EVENT_PRIVATE_H_
+
+#include "ppapi/c/private/ppb_input_event_private.h"
+#include "ppapi/cpp/input_event.h"
+
+namespace pp {
+
+class InputEventPrivate : public InputEvent {
+ public:
+ InputEventPrivate();
+ explicit InputEventPrivate(const InputEvent& event);
+
+ bool TraceInputLatency(bool has_damage);
+
+ /// See PPB_InputEventPrivate.StartTrackingLatency.
+ static void StartTrackingLatency (const InstanceHandle& instance);
+
+};
+
+}
+
+#endif // PPAPI_CPP_PRIVATE_INPUT_EVENT_PRIVATE_H_
diff --git a/chromium/ppapi/cpp/private/pdf.cc b/chromium/ppapi/cpp/private/pdf.cc
index 77fb0b29432..ac5b941fad4 100644
--- a/chromium/ppapi/cpp/private/pdf.cc
+++ b/chromium/ppapi/cpp/private/pdf.cc
@@ -50,29 +50,6 @@ ImageData PDF::GetResourceImage(const InstanceHandle& instance,
// static
PP_Resource PDF::GetFontFileWithFallback(
const InstanceHandle& instance,
- const PP_FontDescription_Dev* description,
- PP_PrivateFontCharset charset) {
- if (has_interface<PPB_PDF>()) {
- PP_BrowserFont_Trusted_Description converted_desc;
- converted_desc.face = description->face;
- converted_desc.family = static_cast<PP_BrowserFont_Trusted_Family>(
- description->family);
- converted_desc.size = description->size;
- converted_desc.weight = static_cast<PP_BrowserFont_Trusted_Weight>(
- description->weight);
- converted_desc.italic = description->italic;
- converted_desc.small_caps = description->small_caps;
- converted_desc.letter_spacing = description->letter_spacing;
- converted_desc.word_spacing = description->word_spacing;
- return get_interface<PPB_PDF>()->GetFontFileWithFallback(
- instance.pp_instance(), &converted_desc, charset);
- }
- return 0;
-}
-
-// static
-PP_Resource PDF::GetFontFileWithFallback(
- const InstanceHandle& instance,
const PP_BrowserFont_Trusted_Description* description,
PP_PrivateFontCharset charset) {
if (has_interface<PPB_PDF>()) {
@@ -205,4 +182,19 @@ bool PDF::IsOutOfProcess(const InstanceHandle& instance) {
return false;
}
+// static
+void PDF::SetSelectedText(const InstanceHandle& instance,
+ const char* selected_text) {
+ if (has_interface<PPB_PDF>()) {
+ get_interface<PPB_PDF>()->SetSelectedText(instance.pp_instance(),
+ selected_text);
+ }
+}
+
+// static
+void PDF::SetLinkUnderCursor(const InstanceHandle& instance, const char* url) {
+ if (has_interface<PPB_PDF>())
+ get_interface<PPB_PDF>()->SetLinkUnderCursor(instance.pp_instance(), url);
+}
+
} // namespace pp
diff --git a/chromium/ppapi/cpp/private/pdf.h b/chromium/ppapi/cpp/private/pdf.h
index 4634430b1d7..586952c98be 100644
--- a/chromium/ppapi/cpp/private/pdf.h
+++ b/chromium/ppapi/cpp/private/pdf.h
@@ -26,12 +26,6 @@ class PDF {
PP_ResourceString string_id);
static ImageData GetResourceImage(const InstanceHandle& instance,
PP_ResourceImage image_id);
- // TODO(raymes): Remove this version when the PDF code is changed to use
- // PP_BrowserFont_Trusted_Description.
- static PP_Resource GetFontFileWithFallback(
- const InstanceHandle& instance,
- const PP_FontDescription_Dev* description,
- PP_PrivateFontCharset charset);
static PP_Resource GetFontFileWithFallback(
const InstanceHandle& instance,
const PP_BrowserFont_Trusted_Description* description,
@@ -65,6 +59,10 @@ class PDF {
static Var ModalPromptForPassword(const InstanceHandle& instance,
Var message);
static bool IsOutOfProcess(const InstanceHandle& instance);
+ static void SetSelectedText(const InstanceHandle& instance,
+ const char* selected_text);
+ static void SetLinkUnderCursor(const InstanceHandle& instance,
+ const char* url);
};
} // namespace pp
diff --git a/chromium/ppapi/cpp/private/uma_private.cc b/chromium/ppapi/cpp/private/uma_private.cc
new file mode 100644
index 00000000000..3ec0872611c
--- /dev/null
+++ b/chromium/ppapi/cpp/private/uma_private.cc
@@ -0,0 +1,79 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/private/uma_private.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/private/ppb_uma_private.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/module_impl.h"
+#include "ppapi/cpp/var.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_UMA_Private_0_3>() {
+ return PPB_UMA_PRIVATE_INTERFACE_0_3;
+}
+
+} // namespace
+
+UMAPrivate::UMAPrivate() {
+}
+
+UMAPrivate::UMAPrivate(
+ const InstanceHandle& instance) : instance_(instance.pp_instance()) {
+}
+
+UMAPrivate::~UMAPrivate() {
+}
+
+bool UMAPrivate::IsAvailable() {
+ return has_interface<PPB_UMA_Private_0_3>();
+}
+
+void UMAPrivate::HistogramCustomTimes(const std::string& name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count) {
+ if (!IsAvailable())
+ return;
+ get_interface<PPB_UMA_Private_0_3>()->
+ HistogramCustomTimes(instance_, pp::Var(name).pp_var(),
+ sample, min, max, bucket_count);
+}
+
+void UMAPrivate::HistogramCustomCounts(const std::string& name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count) {
+ if (!IsAvailable())
+ return;
+ get_interface<PPB_UMA_Private_0_3>()->
+ HistogramCustomCounts(instance_, pp::Var(name).pp_var(),
+ sample, min, max, bucket_count);
+}
+
+void UMAPrivate::HistogramEnumeration(const std::string& name,
+ int32_t sample,
+ int32_t boundary_value) {
+ if (!IsAvailable())
+ return;
+ get_interface<PPB_UMA_Private_0_3>()->
+ HistogramEnumeration(instance_, pp::Var(name).pp_var(),
+ sample, boundary_value);
+}
+
+int32_t UMAPrivate::IsCrashReportingEnabled(const CompletionCallback& cc) {
+ if (!IsAvailable())
+ return PP_ERROR_NOINTERFACE;
+
+ return get_interface<PPB_UMA_Private_0_3>()->
+ IsCrashReportingEnabled(instance_, cc.pp_completion_callback());
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/private/uma_private.h b/chromium/ppapi/cpp/private/uma_private.h
new file mode 100644
index 00000000000..78d526d82be
--- /dev/null
+++ b/chromium/ppapi/cpp/private/uma_private.h
@@ -0,0 +1,49 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
+#define PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
+
+#include <string>
+
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/cpp/instance_handle.h"
+
+namespace pp {
+
+class CompletionCallback;
+
+class UMAPrivate {
+ public:
+ UMAPrivate();
+ explicit UMAPrivate(const InstanceHandle& instance);
+ ~UMAPrivate();
+
+ static bool IsAvailable();
+
+ void HistogramCustomTimes(const std::string& name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count);
+
+ void HistogramCustomCounts(const std::string& name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count);
+
+ void HistogramEnumeration(const std::string& name,
+ int32_t sample,
+ int32_t boundary_value);
+
+ int32_t IsCrashReportingEnabled(const CompletionCallback& cc);
+
+ private:
+ PP_Instance instance_;
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
diff --git a/chromium/ppapi/cpp/rect.cc b/chromium/ppapi/cpp/rect.cc
index 1e9ff05236b..738fb6d0fb5 100644
--- a/chromium/ppapi/cpp/rect.cc
+++ b/chromium/ppapi/cpp/rect.cc
@@ -8,8 +8,9 @@
namespace {
-void AdjustAlongAxis(int32_t dst_origin, int32_t dst_size,
- int32_t* origin, int32_t* size) {
+template<typename T>
+void AdjustAlongAxis(T dst_origin, T dst_size,
+ T* origin, T* size) {
if (*origin < dst_origin) {
*origin = dst_origin;
*size = std::min(dst_size, *size);
@@ -127,4 +128,108 @@ bool Rect::SharesEdgeWith(const Rect& rect) const {
(y() == rect.bottom() || bottom() == rect.y()));
}
+void FloatRect::Inset(float left, float top, float right, float bottom) {
+ Offset(left, top);
+ set_width(std::max<float>(width() - left - right, 0.0f));
+ set_height(std::max<float>(height() - top - bottom, 0.0f));
+}
+
+void FloatRect::Offset(float horizontal, float vertical) {
+ rect_.point.x += horizontal;
+ rect_.point.y += vertical;
+}
+
+bool FloatRect::Contains(float point_x, float point_y) const {
+ return (point_x >= x()) && (point_x < right()) &&
+ (point_y >= y()) && (point_y < bottom());
+}
+
+bool FloatRect::Contains(const FloatRect& rect) const {
+ return (rect.x() >= x() && rect.right() <= right() &&
+ rect.y() >= y() && rect.bottom() <= bottom());
+}
+
+bool FloatRect::Intersects(const FloatRect& rect) const {
+ return !(rect.x() >= right() || rect.right() <= x() ||
+ rect.y() >= bottom() || rect.bottom() <= y());
+}
+
+FloatRect FloatRect::Intersect(const FloatRect& rect) const {
+ float rx = std::max(x(), rect.x());
+ float ry = std::max(y(), rect.y());
+ float rr = std::min(right(), rect.right());
+ float rb = std::min(bottom(), rect.bottom());
+
+ if (rx >= rr || ry >= rb)
+ rx = ry = rr = rb = 0; // non-intersecting
+
+ return FloatRect(rx, ry, rr - rx, rb - ry);
+}
+
+FloatRect FloatRect::Union(const FloatRect& rect) const {
+ // special case empty rects...
+ if (IsEmpty())
+ return rect;
+ if (rect.IsEmpty())
+ return *this;
+
+ float rx = std::min(x(), rect.x());
+ float ry = std::min(y(), rect.y());
+ float rr = std::max(right(), rect.right());
+ float rb = std::max(bottom(), rect.bottom());
+
+ return FloatRect(rx, ry, rr - rx, rb - ry);
+}
+
+FloatRect FloatRect::Subtract(const FloatRect& rect) const {
+ // boundary cases:
+ if (!Intersects(rect))
+ return *this;
+ if (rect.Contains(*this))
+ return FloatRect();
+
+ float rx = x();
+ float ry = y();
+ float rr = right();
+ float rb = bottom();
+
+ if (rect.y() <= y() && rect.bottom() >= bottom()) {
+ // complete intersection in the y-direction
+ if (rect.x() <= x()) {
+ rx = rect.right();
+ } else {
+ rr = rect.x();
+ }
+ } else if (rect.x() <= x() && rect.right() >= right()) {
+ // complete intersection in the x-direction
+ if (rect.y() <= y()) {
+ ry = rect.bottom();
+ } else {
+ rb = rect.y();
+ }
+ }
+ return FloatRect(rx, ry, rr - rx, rb - ry);
+}
+
+FloatRect FloatRect::AdjustToFit(const FloatRect& rect) const {
+ float new_x = x();
+ float new_y = y();
+ float new_width = width();
+ float new_height = height();
+ AdjustAlongAxis(rect.x(), rect.width(), &new_x, &new_width);
+ AdjustAlongAxis(rect.y(), rect.height(), &new_y, &new_height);
+ return FloatRect(new_x, new_y, new_width, new_height);
+}
+
+FloatPoint FloatRect::CenterPoint() const {
+ return FloatPoint(x() + (width() + 1.0f) / 2.0f,
+ y() + (height() + 1.0f) / 2.0f);
+}
+
+bool FloatRect::SharesEdgeWith(const FloatRect& rect) const {
+ return (y() == rect.y() && height() == rect.height() &&
+ (x() == rect.right() || right() == rect.x())) ||
+ (x() == rect.x() && width() == rect.width() &&
+ (y() == rect.bottom() || bottom() == rect.y()));
+}
} // namespace pp
diff --git a/chromium/ppapi/cpp/rect.h b/chromium/ppapi/cpp/rect.h
index b47226bd707..15bb1f5205c 100644
--- a/chromium/ppapi/cpp/rect.h
+++ b/chromium/ppapi/cpp/rect.h
@@ -301,7 +301,7 @@ class Rect {
///
/// @return true if the area of the rectangle is zero.
bool IsEmpty() const {
- return rect_.size.width == 0 && rect_.size.height == 0;
+ return rect_.size.width == 0 || rect_.size.height == 0;
}
/// Contains() determines if the point identified by point_x and point_y
@@ -396,6 +396,392 @@ class Rect {
PP_Rect rect_;
};
+/// A 2 dimensional rectangle. A rectangle is represented by x and y (which
+/// identifies the upper-left corner of the rectangle), width, and height.
+class FloatRect {
+ public:
+
+ /// The default constructor. Creates a <code>Rect</code> in the upper-left
+ /// at 0.0f,0.0f with height and width of 0.0f.
+ FloatRect() {
+ rect_.point.x = 0.0f;
+ rect_.point.y = 0.0f;
+ rect_.size.width = 0.0f;
+ rect_.size.height = 0.0f;
+ }
+
+ /// A constructor accepting a reference to a <code>PP_FloatRect and</code>
+ /// converting the <code>PP_FloatRect</code> to a <code>FloatRect</code>. This
+ /// is an implicit conversion constructor.
+ ///
+ /// @param[in] rect A <code>PP_FloatRect</code>.
+ FloatRect(const PP_FloatRect& rect) { // Implicit.
+ set_x(rect.point.x);
+ set_y(rect.point.y);
+ set_width(rect.size.width);
+ set_height(rect.size.height);
+ }
+
+ /// A constructor accepting two float values for width and height and
+ /// converting them to a <code>FloatRect</code> in the upper-left starting
+ /// coordinate of 0.0f, 0.0f.
+ ///
+ /// @param[in] w An float value representing a width.
+ /// @param[in] h An float value representing a height.
+ FloatRect(float w, float h) {
+ set_x(0);
+ set_y(0);
+ set_width(w);
+ set_height(h);
+ }
+
+ /// A constructor accepting four float values for width, height, x, and y.
+ ///
+ /// @param[in] x An float value representing a horizontal coordinate
+ /// of a point, starting with 0.0f as the left-most coordinate.
+ /// @param[in] y An float value representing a vertical coordinate
+ /// of a point, starting with 0.0f as the top-most coordinate.
+ /// @param[in] w An float value representing a width.
+ /// @param[in] h An float value representing a height.
+ FloatRect(float x, float y, float w, float h) {
+ set_x(x);
+ set_y(y);
+ set_width(w);
+ set_height(h);
+ }
+
+ /// A constructor accepting a pointer to a FloatSize and converting the
+ /// <code>FloatSize</code> to a <code>FloatRect</code> in the upper-left
+ /// starting coordinate of 0.0f,0.0f.
+ ///
+ /// @param[in] s A pointer to a <code>FloatSize</code>.
+ explicit FloatRect(const FloatSize& s) {
+ set_x(0);
+ set_y(0);
+ set_size(s);
+ }
+
+ /// A constructor accepting a pointer to a <code>FloatPoint</code>
+ /// representing the origin of the rectangle and a pointer to a
+ /// <code>FloatSize</code> representing the height and width.
+ ///
+ /// @param[in] origin A pointer to a <code>FloatPoint</code> representing the
+ /// upper-left starting coordinate.
+ /// @param[in] size A pointer to a <code>FloatSize</code> representing the
+ /// height and width.
+ FloatRect(const FloatPoint& origin, const FloatSize& size) {
+ set_point(origin);
+ set_size(size);
+ }
+
+ /// Destructor.
+ ~FloatRect() {
+ }
+
+ /// PP_FloatRect() allows implicit conversion of a <code>FloatRect</code> to a
+ /// <code>PP_FloatRect</code>.
+ ///
+ /// @return A <code>Point</code>.
+ operator PP_FloatRect() const {
+ return rect_;
+ }
+
+ /// Getter function for returning the internal <code>PP_FloatRect</code>
+ /// struct.
+ ///
+ /// @return A const reference to the internal <code>PP_FloatRect</code>
+ /// struct.
+ const PP_FloatRect& pp_float_rect() const {
+ return rect_;
+ }
+
+ /// Getter function for returning the internal <code>PP_FloatRect</code>
+ /// struct.
+ ///
+ /// @return A mutable reference to the <code>PP_FloatRect</code> struct.
+ PP_FloatRect& pp_float_rect() {
+ return rect_;
+ }
+
+
+ /// Getter function for returning the value of x.
+ ///
+ /// @return The value of x for this <code>FloatPoint</code>.
+ float x() const {
+ return rect_.point.x;
+ }
+
+ /// Setter function for setting the value of x.
+ ///
+ /// @param[in] in_x A new x value.
+ void set_x(float in_x) {
+ rect_.point.x = in_x;
+ }
+
+ /// Getter function for returning the value of y.
+ ///
+ /// @return The value of y for this <code>FloatPoint</code>.
+ float y() const {
+ return rect_.point.y;
+ }
+
+ /// Setter function for setting the value of y.
+ ///
+ /// @param[in] in_y A new y value.
+ void set_y(float in_y) {
+ rect_.point.y = in_y;
+ }
+
+ /// Getter function for returning the value of width.
+ ///
+ /// @return The value of width for this <code>FloatRect</code>.
+ float width() const {
+ return rect_.size.width;
+ }
+
+ /// Setter function for setting the value of width.
+ ///
+ /// @param[in] w A new width value.
+ void set_width(float w) {
+ if (w < 0.0f) {
+ PP_DCHECK(w >= 0.0f);
+ w = 0.0f;
+ }
+ rect_.size.width = w;
+ }
+
+ /// Getter function for returning the value of height.
+ ///
+ /// @return The value of height for this <code>FloatRect</code>.
+ float height() const {
+ return rect_.size.height;
+ }
+
+ /// Setter function for setting the value of height.
+ ///
+ /// @param[in] h A new width height.
+ void set_height(float h) {
+ if (h < 0.0f) {
+ PP_DCHECK(h >= 0.0f);
+ h = 0.0f;
+ }
+ rect_.size.height = h;
+ }
+
+ /// Getter function for returning the <code>FloatPoint</code>.
+ ///
+ /// @return A <code>FloatPoint</code>.
+ FloatPoint point() const {
+ return FloatPoint(rect_.point);
+ }
+
+ /// Setter function for setting the value of the <code>FloatPoint</code>.
+ ///
+ /// @param[in] origin A <code>FloatPoint</code> representing the upper-left
+ /// starting coordinate.
+ void set_point(const FloatPoint& origin) {
+ rect_.point = origin;
+ }
+
+ /// Getter function for returning the <code>FloatSize</code>.
+ ///
+ /// @return The size of the rectangle.
+ FloatSize Floatsize() const {
+ return FloatSize(rect_.size);
+ }
+
+ /// Setter function for setting the <code>FloatSize</code>.
+ ///
+ /// @param[in] s A pointer to a <code>FloatSize</code> representing the height
+ /// and width.
+ void set_size(const FloatSize& s) {
+ rect_.size.width = s.width();
+ rect_.size.height = s.height();
+ }
+
+ /// Getter function to get the upper-bound for the x-coordinates of the
+ /// rectangle. Note that this coordinate value is one past the highest x
+ /// value of pixels in the rectangle. This loop will access all the pixels
+ /// in a horizontal line in the rectangle:
+ /// <code>for (float x = rect.x(); x < rect.right(); ++x) {}</code>
+ ///
+ /// @return The value of x + width for this point.
+ float right() const {
+ return x() + width();
+ }
+
+ /// Getter function to get the upper-bound for the y-coordinates of the
+ /// rectangle. Note that this coordinate value is one past the highest xy
+ /// value of pixels in the rectangle. This loop will access all the pixels
+ /// in a horizontal line in the rectangle:
+ /// <code>for (float y = rect.y(); y < rect.bottom(); ++y) {}</code>
+ ///
+ /// @return The value of y + height for this point.
+ float bottom() const {
+ return y() + height();
+ }
+
+ /// Setter function for setting the value of the <code>FloatRect</code>.
+ ///
+ /// @param[in] x A new x value.
+ /// @param[in] y A new y value.
+ /// @param[in] w A new width value.
+ /// @param[in] h A new height value.
+ void SetRect(float x, float y, float w, float h) {
+ set_x(x);
+ set_y(y);
+ set_width(w);
+ set_height(h);
+ }
+
+ /// Setter function for setting the value of the <code>FloatRect</code>.
+ ///
+ /// @param[in] rect A pointer to a <code>PP_FloatRect</code>.
+ void SetRect(const PP_FloatRect& rect) {
+ rect_ = rect;
+ }
+
+ /// Inset() shrinks the rectangle by a horizontal and vertical
+ /// distance on all sides.
+ ///
+ /// @param[in] horizontal An float value representing a horizontal
+ /// shrinking distance.
+ /// @param[in] vertical An float value representing a vertical
+ /// shrinking distance.
+ void Inset(float horizontal, float vertical) {
+ Inset(horizontal, vertical, horizontal, vertical);
+ }
+
+ /// Inset() shrinks the rectangle by the specified amount on each
+ /// side.
+ ///
+ /// @param[in] left An float value representing a left
+ /// shrinking distance.
+ /// @param[in] top An float value representing a top
+ /// shrinking distance.
+ /// @param[in] right An float value representing a right
+ /// shrinking distance.
+ /// @param[in] bottom An float value representing a bottom
+ /// shrinking distance.
+ void Inset(float left, float top, float right, float bottom);
+
+ /// Offset() moves the rectangle by a horizontal and vertical distance.
+ ///
+ /// @param[in] horizontal An float value representing a horizontal
+ /// move distance.
+ /// @param[in] vertical An float value representing a vertical
+ /// move distance.
+ void Offset(float horizontal, float vertical);
+
+ /// Offset() moves the rectangle by a horizontal and vertical distance.
+ ///
+ /// @param[in] point A pointer to a <code>FloatPoint</code> representing the
+ /// horizontal and vertical move distances.
+ void Offset(const FloatPoint& point) {
+ Offset(point.x(), point.y());
+ }
+
+ /// IsEmpty() determines if the area of a rectangle is zero. Returns true if
+ /// the area of the rectangle is zero.
+ ///
+ /// @return true if the area of the rectangle is zero.
+ bool IsEmpty() const {
+ return rect_.size.width == 0.0f || rect_.size.height == 0.0f;
+ }
+
+ /// Contains() determines if the point identified by point_x and point_y
+ /// falls inside this rectangle. The point (x, y) is inside the rectangle,
+ /// but the point (x + width, y + height) is not.
+ ///
+ /// @param[in] point_x An float value representing a x value.
+ /// @param[in] point_y An float value representing a y value.
+ ///
+ /// @return true if the point_x and point_y fall inside the rectangle.
+ bool Contains(float point_x, float point_y) const;
+
+ /// Contains() determines if the specified point is contained by this
+ /// rectangle.
+ ///
+ /// @param[in] point A pointer to a Point representing a 2D coordinate.
+ ///
+ /// @return true if the point_x and point_y fall inside the rectangle.
+ bool Contains(const FloatPoint& point) const {
+ return Contains(point.x(), point.y());
+ }
+
+ /// Contains() determines if this rectangle contains the specified rectangle.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return true if the rectangle fall inside this rectangle.
+ bool Contains(const FloatRect& rect) const;
+
+ /// Intersects() determines if this rectangle intersects the specified
+ /// rectangle.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return true if the rectangle intersects this rectangle.
+ bool Intersects(const FloatRect& rect) const;
+
+ /// Intersect() computes the intersection of this rectangle with the given
+ /// rectangle.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return A <code>FloatRect</code> representing the intersection.
+ FloatRect Intersect(const FloatRect& rect) const;
+
+ /// Union() computes the union of this rectangle with the given rectangle.
+ /// The union is the smallest rectangle containing both rectangles.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return A <code>FloatRect</code> representing the union.
+ FloatRect Union(const FloatRect& rect) const;
+
+ /// Subtract() computes the rectangle resulting from subtracting
+ /// <code>rect</code> from this Rect. If <code>rect</code>does not intersect
+ /// completely in either the x or y direction, then <code>*this</code> is
+ /// returned. If <code>rect</code> contains <code>this</code>, then an empty
+ /// <code>Rect</code> is returned.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return A <code>FloatRect</code> representing the subtraction.
+ FloatRect Subtract(const FloatRect& rect) const;
+
+ /// AdjustToFit() fits as much of the receiving rectangle within
+ /// the supplied rectangle as possible, returning the result. For example,
+ /// if the receiver had a x-location of 2 and a width of 4, and the supplied
+ /// rectangle had an x-location of 0 with a width of 5, the returned
+ /// rectangle would have an x-location of 1 with a width of 4.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return A <code>FloatRect</code> representing the difference between this
+ /// rectangle and the receiving rectangle.
+ FloatRect AdjustToFit(const FloatRect& rect) const;
+
+ /// CenterPoint() determines the center of this rectangle.
+ ///
+ /// @return A <code>FloatPoint</code> representing the center of this
+ /// rectangle.
+ FloatPoint CenterPoint() const;
+
+ /// SharesEdgeWith() determines if this rectangle shares an entire edge
+ /// (same width or same height) with the given rectangle, and the
+ /// rectangles do not overlap.
+ ///
+ /// @param[in] rect A pointer to a <code>FloatRect</code>.
+ ///
+ /// @return true if this rectangle and supplied rectangle share an edge.
+ bool SharesEdgeWith(const FloatRect& rect) const;
+
+ private:
+ PP_FloatRect rect_;
+};
+
} // namespace pp
/// This function determines whether the x, y, width, and height values of two
@@ -423,5 +809,33 @@ inline bool operator!=(const pp::Rect& lhs, const pp::Rect& rhs) {
return !(lhs == rhs);
}
+/// This function determines whether the x, y, width, and height values of two
+/// rectangles and are equal.
+///
+/// @param[in] lhs The <code>FloatRect</code> on the left-hand side of the
+/// equation.
+/// @param[in] rhs The <code>FloatRect</code> on the right-hand side of the
+/// equation.
+///
+/// @return true if they are equal, false if unequal.
+inline bool operator==(const pp::FloatRect& lhs, const pp::FloatRect& rhs) {
+ return lhs.x() == rhs.x() &&
+ lhs.y() == rhs.y() &&
+ lhs.width() == rhs.width() &&
+ lhs.height() == rhs.height();
+}
+
+/// This function determines whether two Rects are not equal.
+///
+/// @param[in] lhs The <code>FloatRect</code> on the left-hand side of the
+/// equation.
+/// @param[in] rhs The <code>FloatRect</code> on the right-hand side of the
+/// equation.
+///
+/// @return true if the given Rects are equal, otherwise false.
+inline bool operator!=(const pp::FloatRect& lhs, const pp::FloatRect& rhs) {
+ return !(lhs == rhs);
+}
+
#endif
diff --git a/chromium/ppapi/cpp/resource.h b/chromium/ppapi/cpp/resource.h
index 311db6a1caf..7823a73af5f 100644
--- a/chromium/ppapi/cpp/resource.h
+++ b/chromium/ppapi/cpp/resource.h
@@ -14,7 +14,7 @@
/// with the module.
namespace pp {
-class VarResource_Dev;
+class Var;
/// A reference counted module resource.
class Resource {
@@ -87,7 +87,7 @@ class Resource {
void Clear();
private:
- friend class VarResource_Dev;
+ friend class Var;
PP_Resource pp_resource_;
};
diff --git a/chromium/ppapi/cpp/size.h b/chromium/ppapi/cpp/size.h
index 6c935615192..e96b598b3f8 100644
--- a/chromium/ppapi/cpp/size.h
+++ b/chromium/ppapi/cpp/size.h
@@ -145,6 +145,140 @@ class Size {
PP_Size size_;
};
+/// A size of an object based on width and height.
+class FloatSize {
+ public:
+
+ /// The default constructor. Initializes the width and height to 0.0f.
+ FloatSize() {
+ size_.width = 0.0f;
+ size_.height = 0.0f;
+ }
+
+ /// A constructor accepting a pointer to a <code>PP_FloatSize</code> and
+ /// converting the <code>PP_FloatSize</code> to a <code>FloatSize</code>.
+ /// This is an implicit conversion constructor.
+ ///
+ /// @param[in] s A pointer to a <code>PP_FloatSize</code>.
+ FloatSize(const PP_FloatSize& s) { // Implicit.
+ // Want the >= 0 checking of the setter.
+ set_width(s.width);
+ set_height(s.height);
+ }
+
+ /// A constructor accepting two float values for width and height and
+ /// converting them to a <code>FloatSize</code>.
+ ///
+ /// @param[in] w An float value representing a width.
+ /// @param[in] h An float value representing a height.
+ FloatSize(float w, float h) {
+ // Want the >= 0.0f checking of the setter.
+ set_width(w);
+ set_height(h);
+ }
+
+ /// Destructor.
+ ~FloatSize() {
+ }
+
+ /// PP_FloatSize() allows implicit conversion of a <code>FloatSize</code> to a
+ /// <code>PP_FloatSize</code>.
+ ///
+ /// @return A Size.
+ operator PP_FloatSize() {
+ return size_;
+ }
+
+ /// Getter function for returning the internal <code>PP_FloatSize</code>
+ /// struct.
+ ///
+ /// @return A const reference to the internal <code>PP_FloatSize</code>
+ /// struct.
+ const PP_FloatSize& pp_float_size() const {
+ return size_;
+ }
+
+ /// Getter function for returning the internal <code>PP_FloatSize</code>
+ /// struct.
+ ///
+ /// @return A mutable reference to the <code>PP_FloatSize</code> struct.
+ PP_FloatSize& pp_float_size() {
+ return size_;
+ }
+
+ /// Getter function for returning the value of width.
+ ///
+ /// @return The value of width for this <code>FloatSize</code>.
+ float width() const {
+ return size_.width;
+ }
+
+ /// Setter function for setting the value of width.
+ ///
+ /// @param[in] w A new width value.
+ void set_width(float w) {
+ if (w < 0.0f) {
+ PP_DCHECK(w >= 0.0f);
+ w = 0.0f;
+ }
+ size_.width = w;
+ }
+
+ /// Getter function for returning the value of height.
+ ///
+ /// @return The value of height for this <code>FloatSize</code>.
+ float height() const {
+ return size_.height;
+ }
+
+ /// Setter function for setting the value of height.
+ ///
+ /// @param[in] h A new height value.
+ void set_height(float h) {
+ if (h < 0.0f) {
+ PP_DCHECK(h >= 0.0f);
+ h = 0.0f;
+ }
+ size_.height = h;
+ }
+
+ /// GetArea() determines the area (width * height).
+ ///
+ /// @return The area.
+ float GetArea() const {
+ return width() * height();
+ }
+
+ /// SetSize() sets the value of width and height.
+ ///
+ /// @param[in] w A new width value.
+ /// @param[in] h A new height value.
+ void SetSize(float w, float h) {
+ set_width(w);
+ set_height(h);
+ }
+
+ /// Enlarge() enlarges the size of an object.
+ ///
+ /// @param[in] w A width to add the current width.
+ /// @param[in] h A height to add to the current height.
+ void Enlarge(float w, float h) {
+ set_width(width() + w);
+ set_height(height() + h);
+ }
+
+ /// IsEmpty() determines if the size is zero.
+ ///
+ /// @return true if the size is zero.
+ bool IsEmpty() const {
+ // Size doesn't allow negative dimensions, so testing for 0.0f is enough.
+ return (width() == 0.0f) || (height() == 0.0f);
+ }
+
+ private:
+ PP_FloatSize size_;
+};
+
} // namespace pp
/// This function determines whether the width and height values of two sizes
@@ -170,5 +304,31 @@ inline bool operator!=(const pp::Size& lhs, const pp::Size& rhs) {
return !(lhs == rhs);
}
+/// This function determines whether the width and height values of two sizes
+/// are equal.
+///
+/// @param[in] lhs The <code>FloatSize</code> on the left-hand side of the
+/// equation.
+/// @param[in] rhs The <code>FloatSize</code> on the right-hand side of the
+/// equation.
+///
+/// @return true if they are equal, false if unequal.
+inline bool operator==(const pp::FloatSize& lhs, const pp::FloatSize& rhs) {
+ return lhs.width() == rhs.width() && lhs.height() == rhs.height();
+}
+
+/// This function determines whether two <code>FloatSizes</code> are not equal.
+///
+/// @param[in] lhs The <code>FloatSize</code> on the left-hand side of the
+/// equation.
+/// @param[in] rhs The <code>FloatSize</code> on the right-hand side of the
+/// equation.
+///
+/// @return true if the <code>FloatSize</code> of lhs are equal to the
+/// <code>FloatSize</code> of rhs, otherwise false.
+inline bool operator!=(const pp::FloatSize& lhs, const pp::FloatSize& rhs) {
+ return !(lhs == rhs);
+}
+
#endif // PPAPI_CPP_SIZE_H_
diff --git a/chromium/ppapi/cpp/var.cc b/chromium/ppapi/cpp/var.cc
index 1108e05ef46..e16b0e40668 100644
--- a/chromium/ppapi/cpp/var.cc
+++ b/chromium/ppapi/cpp/var.cc
@@ -25,6 +25,9 @@ namespace pp {
namespace {
+template <> const char* interface_name<PPB_Var_1_2>() {
+ return PPB_VAR_INTERFACE_1_2;
+}
template <> const char* interface_name<PPB_Var_1_1>() {
return PPB_VAR_INTERFACE_1_1;
}
@@ -39,19 +42,51 @@ inline bool NeedsRefcounting(const PP_Var& var) {
return var.type > PP_VARTYPE_DOUBLE;
}
-// This helper function detects whether PPB_Var version 1.1 is available. If so,
-// it uses it to create a PP_Var for the given string. Otherwise it falls back
-// to PPB_Var version 1.0.
+// This helper function uses the latest available version of VarFromUtf8. Note
+// that version 1.0 of this method has a different API to later versions.
PP_Var VarFromUtf8Helper(const char* utf8_str, uint32_t len) {
- if (has_interface<PPB_Var_1_1>()) {
+ if (has_interface<PPB_Var_1_2>()) {
+ return get_interface<PPB_Var_1_2>()->VarFromUtf8(utf8_str, len);
+ } else if (has_interface<PPB_Var_1_1>()) {
return get_interface<PPB_Var_1_1>()->VarFromUtf8(utf8_str, len);
} else if (has_interface<PPB_Var_1_0>()) {
return get_interface<PPB_Var_1_0>()->VarFromUtf8(Module::Get()->pp_module(),
utf8_str,
len);
- } else {
- return PP_MakeNull();
}
+ return PP_MakeNull();
+}
+
+// This helper function uses the latest available version of AddRef.
+// Returns true on success, false if no appropriate interface was available.
+bool AddRefHelper(const PP_Var& var) {
+ if (has_interface<PPB_Var_1_2>()) {
+ get_interface<PPB_Var_1_2>()->AddRef(var);
+ return true;
+ } else if (has_interface<PPB_Var_1_1>()) {
+ get_interface<PPB_Var_1_1>()->AddRef(var);
+ return true;
+ } else if (has_interface<PPB_Var_1_0>()) {
+ get_interface<PPB_Var_1_0>()->AddRef(var);
+ return true;
+ }
+ return false;
+}
+
+// This helper function uses the latest available version of Release.
+// Returns true on success, false if no appropriate interface was available.
+bool ReleaseHelper(const PP_Var& var) {
+ if (has_interface<PPB_Var_1_2>()) {
+ get_interface<PPB_Var_1_2>()->Release(var);
+ return true;
+ } else if (has_interface<PPB_Var_1_1>()) {
+ get_interface<PPB_Var_1_1>()->Release(var);
+ return true;
+ } else if (has_interface<PPB_Var_1_0>()) {
+ get_interface<PPB_Var_1_0>()->Release(var);
+ return true;
+ }
+ return false;
}
} // namespace
@@ -101,14 +136,25 @@ Var::Var(const std::string& utf8_str) {
is_managed_ = true;
}
+Var::Var(const pp::Resource& resource) {
+ if (has_interface<PPB_Var_1_2>()) {
+ var_ = get_interface<PPB_Var_1_2>()->VarFromResource(
+ resource.pp_resource());
+ } else {
+ PP_NOTREACHED();
+ return;
+ }
+ // Set |is_managed_| to true, so |var_| will be properly released upon
+ // destruction.
+ is_managed_ = true;
+}
+
Var::Var(const PP_Var& var) {
var_ = var;
is_managed_ = true;
if (NeedsRefcounting(var_)) {
- if (has_interface<PPB_Var_1_0>())
- get_interface<PPB_Var_1_0>()->AddRef(var_);
- else
+ if (!AddRefHelper(var_))
var_.type = PP_VARTYPE_NULL;
}
}
@@ -117,18 +163,14 @@ Var::Var(const Var& other) {
var_ = other.var_;
is_managed_ = true;
if (NeedsRefcounting(var_)) {
- if (has_interface<PPB_Var_1_0>())
- get_interface<PPB_Var_1_0>()->AddRef(var_);
- else
+ if (!AddRefHelper(var_))
var_.type = PP_VARTYPE_NULL;
}
}
Var::~Var() {
- if (NeedsRefcounting(var_) &&
- is_managed_ &&
- has_interface<PPB_Var_1_0>())
- get_interface<PPB_Var_1_0>()->Release(var_);
+ if (NeedsRefcounting(var_) && is_managed_)
+ ReleaseHelper(var_);
}
Var& Var::operator=(const Var& other) {
@@ -143,12 +185,10 @@ Var& Var::operator=(const Var& other) {
bool old_is_managed = is_managed_;
is_managed_ = true;
if (NeedsRefcounting(other.var_)) {
- // Assume we already has_interface<PPB_Var_1_0> for refcounted vars or else
- // we couldn't have created them in the first place.
- get_interface<PPB_Var_1_0>()->AddRef(other.var_);
+ AddRefHelper(other.var_);
}
if (NeedsRefcounting(var_) && old_is_managed)
- get_interface<PPB_Var_1_0>()->Release(var_);
+ ReleaseHelper(var_);
var_ = other.var_;
return *this;
@@ -175,7 +215,8 @@ bool Var::operator==(const Var& other) const {
case PP_VARTYPE_ARRAY:
case PP_VARTYPE_ARRAY_BUFFER:
case PP_VARTYPE_DICTIONARY:
- default: // Objects, arrays, dictionaries.
+ case PP_VARTYPE_RESOURCE:
+ default: // Objects, arrays, dictionaries, resources.
return var_.value.as_id == other.var_.value.as_id;
}
}
@@ -212,13 +253,33 @@ std::string Var::AsString() const {
return std::string();
}
- if (!has_interface<PPB_Var_1_0>())
- return std::string();
uint32_t len;
- const char* str = get_interface<PPB_Var_1_0>()->VarToUtf8(var_, &len);
+ const char* str;
+ if (has_interface<PPB_Var_1_2>())
+ str = get_interface<PPB_Var_1_2>()->VarToUtf8(var_, &len);
+ else if (has_interface<PPB_Var_1_1>())
+ str = get_interface<PPB_Var_1_1>()->VarToUtf8(var_, &len);
+ else if (has_interface<PPB_Var_1_0>())
+ str = get_interface<PPB_Var_1_0>()->VarToUtf8(var_, &len);
+ else
+ return std::string();
return std::string(str, len);
}
+pp::Resource Var::AsResource() const {
+ if (!is_resource()) {
+ PP_NOTREACHED();
+ return pp::Resource();
+ }
+
+ if (has_interface<PPB_Var_1_2>()) {
+ return pp::Resource(pp::PASS_REF,
+ get_interface<PPB_Var_1_2>()->VarToResource(var_));
+ } else {
+ return pp::Resource();
+ }
+}
+
std::string Var::DebugString() const {
char buf[256];
if (is_undefined()) {
@@ -249,6 +310,8 @@ std::string Var::DebugString() const {
snprintf(buf, sizeof(buf), "Var(DICTIONARY)");
} else if (is_array_buffer()) {
snprintf(buf, sizeof(buf), "Var(ARRAY_BUFFER)");
+ } else if (is_resource()) {
+ snprintf(buf, sizeof(buf), "Var(RESOURCE)");
} else {
buf[0] = '\0';
}
diff --git a/chromium/ppapi/cpp/var.h b/chromium/ppapi/cpp/var.h
index 5cb26d9ee83..a79f3c4f3e2 100644
--- a/chromium/ppapi/cpp/var.h
+++ b/chromium/ppapi/cpp/var.h
@@ -10,6 +10,7 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/cpp/pass_ref.h"
+#include "ppapi/cpp/resource.h"
/// @file
/// This file defines the API for handling the passing of data types between
@@ -50,6 +51,9 @@ class Var {
/// A constructor used to create a UTF-8 character <code>Var</code>.
Var(const std::string& utf8_str); // Must be encoded in UTF-8.
+ /// A constructor used to create a resource <code>Var</code>.
+ explicit Var(const pp::Resource& resource);
+
/// A constructor used when you have received a <code>Var</code> as a return
/// value that has had its reference count incremented for you.
///
@@ -65,8 +69,6 @@ class Var {
struct DontManage {};
- // TODO(brettw): remove DontManage when this bug is fixed
- // http://code.google.com/p/chromium/issues/detail?id=52105
/// This constructor is used when we've given a <code>PP_Var</code> as an
/// input argument from somewhere and that reference is managing the
/// reference count for us. The object will not have its reference count
@@ -211,6 +213,12 @@ class Var {
/// @return A string version of this <code>Var</code>.
std::string AsString() const;
+ /// Gets the resource contained in the var. If this object is not a resource,
+ /// it will assert in debug mode, and return a null resource.
+ ///
+ /// @return The <code>pp::Resource</code> that is contained in the var.
+ pp::Resource AsResource() const;
+
/// This function returns the internal <code>PP_Var</code>
/// managed by this <code>Var</code> object.
///
diff --git a/chromium/ppapi/cpp/video_decoder.cc b/chromium/ppapi/cpp/video_decoder.cc
new file mode 100644
index 00000000000..3277a213b2a
--- /dev/null
+++ b/chromium/ppapi/cpp/video_decoder.cc
@@ -0,0 +1,96 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/video_decoder.h"
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_video_decoder.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/instance_handle.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+
+namespace pp {
+
+namespace {
+
+template <>
+const char* interface_name<PPB_VideoDecoder_0_1>() {
+ return PPB_VIDEODECODER_INTERFACE_0_1;
+}
+
+} // namespace
+
+VideoDecoder::VideoDecoder() {
+}
+
+VideoDecoder::VideoDecoder(const InstanceHandle& instance) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ PassRefFromConstructor(
+ get_interface<PPB_VideoDecoder_0_1>()->Create(instance.pp_instance()));
+ }
+}
+
+VideoDecoder::VideoDecoder(const VideoDecoder& other) : Resource(other) {
+}
+
+int32_t VideoDecoder::Initialize(const Graphics3D& context,
+ PP_VideoProfile profile,
+ bool allow_software_fallback,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ return get_interface<PPB_VideoDecoder_0_1>()->Initialize(
+ pp_resource(),
+ context.pp_resource(),
+ profile,
+ PP_FromBool(allow_software_fallback),
+ cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t VideoDecoder::Decode(uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ const CompletionCallback& cc) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ return get_interface<PPB_VideoDecoder_0_1>()->Decode(
+ pp_resource(), decode_id, size, buffer, cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t VideoDecoder::GetPicture(
+ const CompletionCallbackWithOutput<PP_VideoPicture>& cc) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ return get_interface<PPB_VideoDecoder_0_1>()->GetPicture(
+ pp_resource(), cc.output(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+void VideoDecoder::RecyclePicture(const PP_VideoPicture& picture) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ get_interface<PPB_VideoDecoder_0_1>()->RecyclePicture(pp_resource(),
+ &picture);
+ }
+}
+
+int32_t VideoDecoder::Flush(const CompletionCallback& cc) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ return get_interface<PPB_VideoDecoder_0_1>()->Flush(
+ pp_resource(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t VideoDecoder::Reset(const CompletionCallback& cc) {
+ if (has_interface<PPB_VideoDecoder_0_1>()) {
+ return get_interface<PPB_VideoDecoder_0_1>()->Reset(
+ pp_resource(), cc.pp_completion_callback());
+ }
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/video_decoder.h b/chromium/ppapi/cpp/video_decoder.h
new file mode 100644
index 00000000000..c3a2a7c2fdb
--- /dev/null
+++ b/chromium/ppapi/cpp/video_decoder.h
@@ -0,0 +1,181 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_VIDEO_DECODER_H_
+#define PPAPI_CPP_VIDEO_DECODER_H_
+
+#include "ppapi/c/pp_codecs.h"
+#include "ppapi/c/pp_size.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/resource.h"
+#include "ppapi/cpp/size.h"
+
+/// @file
+/// This file defines the API to create and use a VideoDecoder resource.
+
+struct PP_FileInfo;
+
+namespace pp {
+
+class InstanceHandle;
+
+/// Video decoder interface.
+///
+/// Typical usage:
+/// - Call Create() to create a new video decoder resource.
+/// - Call Initialize() to initialize it with a 3d graphics context and the
+/// desired codec profile.
+/// - Call Decode() continuously (waiting for each previous call to complete) to
+/// push bitstream buffers to the decoder.
+/// - Call GetPicture() continuously (waiting for each previous call to
+/// complete) to pull decoded pictures from the decoder.
+/// - Call Flush() to signal end of stream to the decoder and perform shutdown
+/// when it completes.
+/// - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
+/// for the callback before restarting decoding at another point.
+/// - To destroy the decoder, the plugin should release all of its references to
+/// it. Any pending callbacks will abort before the decoder is destroyed.
+///
+/// Available video codecs vary by platform.
+/// All: theora, vorbis, vp8.
+/// Chrome and ChromeOS: aac, h264.
+/// ChromeOS: mpeg4.
+class VideoDecoder : public Resource {
+ public:
+ /// Default constructor for creating an is_null() <code>VideoDecoder</code>
+ /// object.
+ VideoDecoder();
+
+ /// A constructor used to create a <code>VideoDecoder</code> and associate it
+ /// with the provided <code>Instance</code>.
+ /// @param[in] instance The instance with which this resource will be
+ /// associated.
+ explicit VideoDecoder(const InstanceHandle& instance);
+
+ /// The copy constructor for <code>VideoDecoder</code>.
+ /// @param[in] other A reference to a <code>VideoDecoder</code>.
+ VideoDecoder(const VideoDecoder& other);
+
+ /// Initializes a video decoder resource. This should be called after Create()
+ /// and before any other functions.
+ ///
+ /// @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ /// decoder.
+ /// @param[in] profile A <code>PP_VideoProfile</code> specifying the video
+ /// codec profile.
+ /// @param[in] allow_software_fallback A <code>PP_Bool</code> specifying
+ /// whether the decoder can fall back to software decoding if a suitable
+ /// hardware decoder isn't available.
+ /// @param[in] callback A <code>CompletionCallback</code> to be called on
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
+ /// requested profile is not supported. In this case, the client may call
+ /// Initialize() again with different parameters to find a good configuration.
+ int32_t Initialize(const Graphics3D& graphics3d_context,
+ PP_VideoProfile profile,
+ bool allow_software_fallback,
+ const CompletionCallback& callback);
+
+ /// Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
+ /// |buffer|. The plugin should wait until the decoder signals completion by
+ /// returning PP_OK or by running |callback| before calling Decode() again.
+ ///
+ /// In general, each bitstream buffer should contain a demuxed bitstream frame
+ /// for the selected video codec. For example, H264 decoders expect to receive
+ /// one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
+ /// decoders expect to receive a bitstream frame without the IVF frame header.
+ ///
+ /// If the call to Decode() eventually results in a picture, the |decode_id|
+ /// parameter is copied into the returned picture. The plugin can use this to
+ /// associate decoded pictures with Decode() calls (e.g. to assign timestamps
+ /// or frame numbers to pictures.) This value is opaque to the API so the
+ /// plugin is free to pass any value.
+ ///
+ /// @param[in] decode_id An optional value, chosen by the plugin, that can be
+ /// used to associate calls to Decode() with decoded pictures returned by
+ /// GetPicture().
+ /// @param[in] size Buffer size in bytes.
+ /// @param[in] buffer Starting address of buffer.
+ /// @param[in] callback A <code>CompletionCallback</code> to be called on
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
+ /// or Reset() call is pending.
+ /// Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
+ /// Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
+ /// Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
+ int32_t Decode(uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ const CompletionCallback& callback);
+
+ /// Gets the next picture from the decoder. The picture is valid after the
+ /// decoder signals completion by returning PP_OK or running |callback|. The
+ /// plugin can call GetPicture() again after the decoder signals completion.
+ /// When the plugin is finished using the picture, it should return it to the
+ /// system by calling RecyclePicture().
+ ///
+ /// @param[in] video_decoder A <code>PP_Resource</code> identifying the video
+ /// decoder.
+ /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
+ /// called on completion, and on success, to hold the picture descriptor.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
+ /// call is pending.
+ /// Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
+ /// Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
+ /// completes while GetPicture() is pending.
+ int32_t GetPicture(
+ const CompletionCallbackWithOutput<PP_VideoPicture>& callback);
+
+ /// Recycles a picture that the plugin has received from the decoder.
+ /// The plugin should call this as soon as it has finished using the texture
+ /// so the decoder can decode more pictures.
+ ///
+ /// @param[in] picture A <code>PP_VideoPicture</code> to return to the
+ /// decoder.
+ void RecyclePicture(const PP_VideoPicture& picture);
+
+ /// Flushes the decoder. The plugin should call Flush() when it reaches the
+ /// end of its video stream in order to stop cleanly. The decoder will run any
+ /// pending Decode() call to completion. The plugin should make no further
+ /// calls to the decoder other than GetPicture() and RecyclePicture() until
+ /// the decoder signals completion by running |callback|. Just before
+ /// completion, any pending GetPicture() call will complete by running its
+ /// callback with result PP_ERROR_ABORTED to signal that no more pictures are
+ /// available. Any pictures held by the plugin remain valid during and after
+ /// the flush and should be recycled back to the decoder.
+ ///
+ /// @param[in] callback A <code>CompletionCallback</code> to be called on
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_FAILED if the decoder isn't initialized.
+ int32_t Flush(const CompletionCallback& callback);
+
+ /// Resets the decoder as quickly as possible. The plugin can call Reset() to
+ /// skip to another position in the video stream. After Reset() returns, any
+ /// pending calls to Decode() and GetPicture()) abort, causing their callbacks
+ /// to run with PP_ERROR_ABORTED. The plugin should not make further calls to
+ /// the decoder other than RecyclePicture() until the decoder signals
+ /// completion by running |callback|. Any pictures held by the plugin remain
+ /// valid during and after the reset and should be recycled back to the
+ /// decoder.
+ ///
+ /// @param[in] callback A <code>CompletionCallback</code> to be called on
+ /// completion.
+ ///
+ /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
+ /// Returns PP_ERROR_FAILED if the decoder isn't initialized.
+int32_t Reset(const CompletionCallback& callback);
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_VIDEO_DECODER_H_
diff --git a/chromium/ppapi/cpp/video_frame.cc b/chromium/ppapi/cpp/video_frame.cc
new file mode 100644
index 00000000000..6ee75ebf852
--- /dev/null
+++ b/chromium/ppapi/cpp/video_frame.cc
@@ -0,0 +1,74 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/cpp/video_frame.h"
+
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/module_impl.h"
+
+namespace pp {
+
+namespace {
+
+template <> const char* interface_name<PPB_VideoFrame_0_1>() {
+ return PPB_VIDEOFRAME_INTERFACE_0_1;
+}
+
+}
+
+VideoFrame::VideoFrame() {
+}
+
+VideoFrame::VideoFrame(const VideoFrame& other) : Resource(other) {
+}
+
+VideoFrame::VideoFrame(const Resource& resource) : Resource(resource) {
+}
+
+VideoFrame::VideoFrame(PassRef, PP_Resource resource)
+ : Resource(PASS_REF, resource) {
+}
+
+VideoFrame::~VideoFrame() {
+}
+
+PP_TimeDelta VideoFrame::GetTimestamp() const {
+ if (has_interface<PPB_VideoFrame_0_1>())
+ return get_interface<PPB_VideoFrame_0_1>()->GetTimestamp(pp_resource());
+ return 0.0;
+}
+
+void VideoFrame::SetTimestamp(PP_TimeDelta timestamp) {
+ if (has_interface<PPB_VideoFrame_0_1>())
+ get_interface<PPB_VideoFrame_0_1>()->SetTimestamp(pp_resource(), timestamp);
+}
+
+PP_VideoFrame_Format VideoFrame::GetFormat() const {
+ if (has_interface<PPB_VideoFrame_0_1>())
+ return get_interface<PPB_VideoFrame_0_1>()->GetFormat(pp_resource());
+ return PP_VIDEOFRAME_FORMAT_UNKNOWN;
+}
+
+bool VideoFrame::GetSize(Size* size) const {
+ if (has_interface<PPB_VideoFrame_0_1>())
+ return PP_ToBool(get_interface<PPB_VideoFrame_0_1>()->GetSize(
+ pp_resource(), &size->pp_size()));
+ return false;
+}
+
+void* VideoFrame::GetDataBuffer() {
+ if (has_interface<PPB_VideoFrame_0_1>())
+ return get_interface<PPB_VideoFrame_0_1>()->GetDataBuffer(pp_resource());
+ return NULL;
+}
+
+uint32_t VideoFrame::GetDataBufferSize() const {
+ if (has_interface<PPB_VideoFrame_0_1>()) {
+ return get_interface<PPB_VideoFrame_0_1>()->GetDataBufferSize(
+ pp_resource());
+ }
+ return 0;
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/cpp/video_frame.h b/chromium/ppapi/cpp/video_frame.h
new file mode 100644
index 00000000000..d456158f462
--- /dev/null
+++ b/chromium/ppapi/cpp/video_frame.h
@@ -0,0 +1,77 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_CPP_VIDEO_FRAME_H_
+#define PPAPI_CPP_VIDEO_FRAME_H_
+
+#include "ppapi/c/ppb_video_frame.h"
+#include "ppapi/cpp/resource.h"
+#include "ppapi/cpp/size.h"
+
+namespace pp {
+
+class VideoFrame : public Resource {
+ public:
+ /// Default constructor for creating an is_null()
+ /// <code>VideoFrame</code> object.
+ VideoFrame();
+
+ /// The copy constructor for <code>VideoFrame</code>.
+ ///
+ /// @param[in] other A reference to a <code>VideoFrame</code>.
+ VideoFrame(const VideoFrame& other);
+
+ /// Constructs a <code>VideoFrame</code> from a <code>Resource</code>.
+ ///
+ /// @param[in] resource A <code>PPB_VideoFrame</code> resource.
+ explicit VideoFrame(const Resource& resource);
+
+ /// A constructor used when you have received a <code>PP_Resource</code> as a
+ /// return value that has had 1 ref added for you.
+ ///
+ /// @param[in] resource A <code>PPB_VideoFrame</code> resource.
+ VideoFrame(PassRef, PP_Resource resource);
+
+ virtual ~VideoFrame();
+
+ /// Gets the timestamp of the video frame.
+ ///
+ /// @return A <code>PP_TimeDelta</code> containing the timestamp of the video
+ /// frame. Given in seconds since the start of the containing video stream.
+ PP_TimeDelta GetTimestamp() const;
+
+ /// Sets the timestamp of the video frame.
+ ///
+ /// @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
+ /// of the video frame. Given in seconds since the start of the containing
+ /// video stream.
+ void SetTimestamp(PP_TimeDelta timestamp);
+
+ /// Gets the format of the video frame.
+ ///
+ /// @return A <code>PP_VideoFrame_Format</code> containing the format of the
+ /// video frame.
+ PP_VideoFrame_Format GetFormat() const;
+
+ /// Gets the size of the video frame.
+ ///
+ /// @param[out] size A <code>Size</code>.
+ ///
+ /// @return True on success or false on failure.
+ bool GetSize(Size* size) const;
+
+ /// Gets the data buffer for video frame pixels.
+ ///
+ /// @return A pointer to the beginning of the data buffer.
+ void* GetDataBuffer();
+
+ /// Gets the size of data buffer in bytes.
+ ///
+ /// @return The size of the data buffer in bytes.
+ uint32_t GetDataBufferSize() const;
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_VIDEO_FRAME_H_
diff --git a/chromium/ppapi/cpp/view.cc b/chromium/ppapi/cpp/view.cc
index ce347859d70..c17b387efce 100644
--- a/chromium/ppapi/cpp/view.cc
+++ b/chromium/ppapi/cpp/view.cc
@@ -19,6 +19,10 @@ template <> const char* interface_name<PPB_View_1_1>() {
return PPB_VIEW_INTERFACE_1_1;
}
+template <> const char* interface_name<PPB_View_1_2>() {
+ return PPB_VIEW_INTERFACE_1_2;
+}
+
} // namespace
View::View() : Resource() {
@@ -29,7 +33,10 @@ View::View(PP_Resource view_resource) : Resource(view_resource) {
Rect View::GetRect() const {
PP_Rect out;
- if (has_interface<PPB_View_1_1>()) {
+ if (has_interface<PPB_View_1_2>()) {
+ if (PP_ToBool(get_interface<PPB_View_1_2>()->GetRect(pp_resource(), &out)))
+ return Rect(out);
+ } else if (has_interface<PPB_View_1_1>()) {
if (PP_ToBool(get_interface<PPB_View_1_1>()->GetRect(pp_resource(), &out)))
return Rect(out);
} else if (has_interface<PPB_View_1_0>()) {
@@ -40,7 +47,10 @@ Rect View::GetRect() const {
}
bool View::IsFullscreen() const {
- if (has_interface<PPB_View_1_1>()) {
+ if (has_interface<PPB_View_1_2>()) {
+ return PP_ToBool(get_interface<PPB_View_1_2>()->IsFullscreen(
+ pp_resource()));
+ } else if (has_interface<PPB_View_1_1>()) {
return PP_ToBool(get_interface<PPB_View_1_1>()->IsFullscreen(
pp_resource()));
} else if (has_interface<PPB_View_1_0>()) {
@@ -51,7 +61,9 @@ bool View::IsFullscreen() const {
}
bool View::IsVisible() const {
- if (has_interface<PPB_View_1_1>())
+ if (has_interface<PPB_View_1_2>())
+ return PP_ToBool(get_interface<PPB_View_1_2>()->IsVisible(pp_resource()));
+ else if (has_interface<PPB_View_1_1>())
return PP_ToBool(get_interface<PPB_View_1_1>()->IsVisible(pp_resource()));
else if (has_interface<PPB_View_1_0>())
return PP_ToBool(get_interface<PPB_View_1_0>()->IsVisible(pp_resource()));
@@ -59,7 +71,10 @@ bool View::IsVisible() const {
}
bool View::IsPageVisible() const {
- if (has_interface<PPB_View_1_1>()) {
+ if (has_interface<PPB_View_1_2>()) {
+ return PP_ToBool(get_interface<PPB_View_1_2>()->IsPageVisible(
+ pp_resource()));
+ } else if (has_interface<PPB_View_1_1>()) {
return PP_ToBool(get_interface<PPB_View_1_1>()->IsPageVisible(
pp_resource()));
} else if (has_interface<PPB_View_1_0>()) {
@@ -71,7 +86,11 @@ bool View::IsPageVisible() const {
Rect View::GetClipRect() const {
PP_Rect out;
- if (has_interface<PPB_View_1_1>()) {
+ if (has_interface<PPB_View_1_2>()) {
+ if (PP_ToBool(get_interface<PPB_View_1_2>()->GetClipRect(pp_resource(),
+ &out)))
+ return Rect(out);
+ } else if (has_interface<PPB_View_1_1>()) {
if (PP_ToBool(get_interface<PPB_View_1_1>()->GetClipRect(pp_resource(),
&out)))
return Rect(out);
@@ -84,15 +103,30 @@ Rect View::GetClipRect() const {
}
float View::GetDeviceScale() const {
- if (has_interface<PPB_View_1_1>())
+ if (has_interface<PPB_View_1_2>())
+ return get_interface<PPB_View_1_2>()->GetDeviceScale(pp_resource());
+ else if (has_interface<PPB_View_1_1>())
return get_interface<PPB_View_1_1>()->GetDeviceScale(pp_resource());
return 1.0f;
}
float View::GetCSSScale() const {
- if (has_interface<PPB_View_1_1>())
+ if (has_interface<PPB_View_1_2>())
+ return get_interface<PPB_View_1_2>()->GetCSSScale(pp_resource());
+ else if (has_interface<PPB_View_1_1>())
return get_interface<PPB_View_1_1>()->GetCSSScale(pp_resource());
return 1.0f;
}
+Point View::GetScrollOffset() const {
+ PP_Point out;
+ if (has_interface<PPB_View_1_2>()) {
+ if (PP_ToBool(get_interface<PPB_View_1_2>()->GetScrollOffset(pp_resource(),
+ &out))) {
+ return Point(out);
+ }
+ }
+ return Point();
+}
+
} // namespace pp
diff --git a/chromium/ppapi/cpp/view.h b/chromium/ppapi/cpp/view.h
index 7ffd1682294..13c7a81b587 100644
--- a/chromium/ppapi/cpp/view.h
+++ b/chromium/ppapi/cpp/view.h
@@ -138,6 +138,13 @@ class View : public Resource {
/// @return A <code>float</code> value representing the number of DIPs per CSS
/// pixel.
float GetCSSScale() const;
+
+ /// GetScrollOffset returns the scroll offset of the window containing the
+ /// plugin.
+ ///
+ /// @return A <code>Point</code> which is set to the value of the scroll
+ /// offset in CSS pixels.
+ Point GetScrollOffset() const;
};
} // namespace pp
diff --git a/chromium/ppapi/examples/compositor/compositor.cc b/chromium/ppapi/examples/compositor/compositor.cc
new file mode 100644
index 00000000000..e7e3f1ffb0c
--- /dev/null
+++ b/chromium/ppapi/examples/compositor/compositor.cc
@@ -0,0 +1,445 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Needed on Windows to get |M_PI| from math.h.
+#ifdef _WIN32
+#define _USE_MATH_DEFINES
+#endif
+
+#include <math.h>
+
+#include <vector>
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/pp_input_event.h"
+#include "ppapi/cpp/compositor.h"
+#include "ppapi/cpp/compositor_layer.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/graphics_3d_client.h"
+#include "ppapi/cpp/image_data.h"
+#include "ppapi/cpp/input_event.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/var_dictionary.h"
+#include "ppapi/examples/compositor/spinning_cube.h"
+#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
+#include "ppapi/lib/gl/include/GLES2/gl2.h"
+#include "ppapi/lib/gl/include/GLES2/gl2ext.h"
+#include "ppapi/utility/completion_callback_factory.h"
+
+// Use assert as a poor-man's CHECK, even in non-debug mode.
+// Since <assert.h> redefines assert on every inclusion (it doesn't use
+// include-guards), make sure this is the last file #include'd in this file.
+#undef NDEBUG
+#include <assert.h>
+
+// When compiling natively on Windows, PostMessage can be #define-d to
+// something else.
+#ifdef PostMessage
+#undef PostMessage
+#endif
+
+// Assert |context_| isn't holding any GL Errors. Done as a macro instead of a
+// function to preserve line number information in the failure message.
+#define AssertNoGLError() \
+ PP_DCHECK(!glGetError());
+
+namespace {
+
+const int32_t kTextureWidth = 800;
+const int32_t kTextureHeight = 800;
+const int32_t kImageWidth = 256;
+const int32_t kImageHeight = 256;
+
+class DemoInstance : public pp::Instance, public pp::Graphics3DClient {
+ public:
+ DemoInstance(PP_Instance instance);
+ virtual ~DemoInstance();
+
+ // pp::Instance implementation (see PPP_Instance).
+ virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
+ virtual void DidChangeView(const pp::Rect& position,
+ const pp::Rect& clip);
+ virtual bool HandleInputEvent(const pp::InputEvent& event);
+
+ // pp::Graphics3DClient implementation.
+ virtual void Graphics3DContextLost();
+
+ private:
+ // GL-related functions.
+ void InitGL(int32_t result);
+ GLuint PrepareFramebuffer();
+ pp::ImageData PrepareImage();
+ void PrepareLayers(int32_t frame);
+ void Paint(int32_t result, int32_t frame);
+ void OnTextureReleased(int32_t result, GLuint texture);
+ void OnImageReleased(int32_t result, const pp::ImageData& image);
+
+ pp::CompletionCallbackFactory<DemoInstance> callback_factory_;
+
+ // Owned data.
+ pp::Graphics3D* context_;
+
+ GLuint fbo_;
+ GLuint rbo_;
+
+ std::vector<GLuint> textures_;
+ std::vector<pp::ImageData> images_;
+
+ pp::Compositor compositor_;
+ pp::CompositorLayer color_layer_;
+ pp::CompositorLayer stable_texture_layer_;
+ pp::CompositorLayer texture_layer_;
+ pp::CompositorLayer image_layer_;
+
+ bool rebuild_layers_;
+ int32_t total_resource_;
+
+ SpinningCube* cube_;
+};
+
+DemoInstance::DemoInstance(PP_Instance instance)
+ : pp::Instance(instance),
+ pp::Graphics3DClient(this),
+ callback_factory_(this),
+ context_(NULL),
+ fbo_(0),
+ rbo_(0),
+ rebuild_layers_(true),
+ total_resource_(0),
+ cube_(new SpinningCube()) {
+ RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
+}
+
+DemoInstance::~DemoInstance() {
+ delete cube_;
+ assert(glTerminatePPAPI());
+ delete context_;
+}
+
+bool DemoInstance::Init(uint32_t /*argc*/,
+ const char* /*argn*/[],
+ const char* /*argv*/[]) {
+ return !!glInitializePPAPI(pp::Module::Get()->get_browser_interface());
+}
+
+void DemoInstance::DidChangeView(
+ const pp::Rect& position, const pp::Rect& /*clip*/) {
+ if (position.width() == 0 || position.height() == 0)
+ return;
+ // Initialize graphics.
+ InitGL(0);
+}
+
+bool DemoInstance::HandleInputEvent(const pp::InputEvent& event) {
+ switch (event.GetType()) {
+ case PP_INPUTEVENT_TYPE_MOUSEDOWN:
+ rebuild_layers_ = true;
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
+void DemoInstance::Graphics3DContextLost() {
+ fbo_ = 0;
+ rbo_ = 0;
+ rebuild_layers_ = true;
+ total_resource_ -= static_cast<int32_t>(textures_.size());
+ textures_.clear();
+ delete context_;
+ context_ = NULL;
+ cube_->OnGLContextLost();
+ pp::CompletionCallback cb = callback_factory_.NewCallback(
+ &DemoInstance::InitGL);
+ pp::Module::Get()->core()->CallOnMainThread(0, cb, 0);
+}
+
+void DemoInstance::InitGL(int32_t /*result*/) {
+ if (context_)
+ return;
+ int32_t context_attributes[] = {
+ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
+ PP_GRAPHICS3DATTRIB_WIDTH, 32,
+ PP_GRAPHICS3DATTRIB_HEIGHT, 32,
+ PP_GRAPHICS3DATTRIB_NONE,
+ };
+ context_ = new pp::Graphics3D(this, context_attributes);
+ assert(!context_->is_null());
+ assert(BindGraphics(compositor_));
+
+ glSetCurrentContextPPAPI(context_->pp_resource());
+
+ cube_->Init(kTextureWidth, kTextureHeight);
+
+ Paint(PP_OK, 0);
+}
+
+GLuint DemoInstance::PrepareFramebuffer() {
+ GLuint texture = 0;
+ if (textures_.empty()) {
+ total_resource_++;
+ // Create a texture object
+ glGenTextures(1, &texture);
+ glBindTexture(GL_TEXTURE_2D, texture);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kTextureWidth, kTextureHeight, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glBindTexture(GL_TEXTURE_2D, 0);
+ } else {
+ texture = textures_.back();
+ textures_.pop_back();
+ }
+
+ if (!rbo_) {
+ // create a renderbuffer object to store depth info
+ glGenRenderbuffers(1, &rbo_);
+ glBindRenderbuffer(GL_RENDERBUFFER, rbo_);
+ glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16,
+ kTextureWidth, kTextureHeight);
+ glBindRenderbuffer(GL_RENDERBUFFER, 0);
+ }
+
+ if (!fbo_) {
+ // create a framebuffer object
+ glGenFramebuffers(1, &fbo_);
+ }
+
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo_);
+
+ // attach the texture to FBO color attachment point
+ glFramebufferTexture2D(GL_FRAMEBUFFER,
+ GL_COLOR_ATTACHMENT0,
+ GL_TEXTURE_2D,
+ texture,
+ 0);
+
+ // attach the renderbuffer to depth attachment point
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER,
+ GL_DEPTH_ATTACHMENT,
+ GL_RENDERBUFFER,
+ rbo_);
+
+ // check FBO status
+ GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+ assert(status == GL_FRAMEBUFFER_COMPLETE);
+
+ AssertNoGLError();
+ return texture;
+}
+
+pp::ImageData DemoInstance::PrepareImage() {
+ if (images_.empty()) {
+ total_resource_++;
+ return pp::ImageData(this,
+ PP_IMAGEDATAFORMAT_RGBA_PREMUL,
+ pp::Size(kImageWidth, kImageHeight),
+ false);
+ }
+ pp::ImageData image = images_.back();
+ images_.pop_back();
+ return image;
+}
+
+void DemoInstance::Paint(int32_t result, int32_t frame) {
+ assert(result == PP_OK);
+ if (result != PP_OK || !context_)
+ return;
+
+ if (rebuild_layers_) {
+ compositor_ = pp::Compositor(this);
+ assert(BindGraphics(compositor_));
+ color_layer_ = pp::CompositorLayer();
+ stable_texture_layer_ = pp::CompositorLayer();
+ texture_layer_ = pp::CompositorLayer();
+ image_layer_ = pp::CompositorLayer();
+ frame = 0;
+ rebuild_layers_ = false;
+ }
+
+ PrepareLayers(frame);
+
+ int32_t rv = compositor_.CommitLayers(
+ callback_factory_.NewCallback(&DemoInstance::Paint, ++frame));
+ assert(rv == PP_OK_COMPLETIONPENDING);
+
+ pp::VarDictionary dict;
+ dict.Set("total_resource", total_resource_);
+ size_t free_resource = textures_.size() + images_.size();
+ dict.Set("free_resource", static_cast<int32_t>(free_resource));
+ PostMessage(dict);
+}
+
+void DemoInstance::PrepareLayers(int32_t frame) {
+ int32_t rv;
+ float factor_sin = sin(M_PI / 180 * frame);
+ float factor_cos = cos(M_PI / 180 * frame);
+ {
+ // Set the background color layer.
+ if (color_layer_.is_null()) {
+ color_layer_ = compositor_.AddLayer();
+ assert(!color_layer_.is_null());
+ static const float transform[16] = {
+ 1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ 0.0f, 0.0f, 0.0f, 1.0f,
+ };
+ rv = color_layer_.SetTransform(transform);
+ assert(rv == PP_OK);
+ }
+ rv = color_layer_.SetColor(fabs(factor_sin),
+ fabs(factor_cos),
+ fabs(factor_sin * factor_cos),
+ 1.0f,
+ pp::Size(800, 600));
+ assert(rv == PP_OK);
+ }
+
+ {
+ // Set the image layer
+ if (image_layer_.is_null()) {
+ image_layer_ = compositor_.AddLayer();
+ assert(!image_layer_.is_null());
+ }
+ float x = frame % 800;
+ float y = 200 - 200 * factor_sin;
+ const float transform[16] = {
+ fabsf(factor_sin) + 0.2f, 0.0f, 0.0f, 0.0f,
+ 0.0f, fabsf(factor_sin) + 0.2f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ x, y, 0.0f, 1.0f,
+ };
+ rv = image_layer_.SetTransform(transform);
+ assert(rv == PP_OK);
+
+ pp::ImageData image = PrepareImage();
+ uint8_t *p = static_cast<uint8_t*>(image.data());
+ for (int x = 0; x < kImageWidth; ++x) {
+ for (int y = 0; y < kImageHeight; ++y) {
+ *(p++) = frame;
+ *(p++) = frame * x;
+ *(p++) = frame * y;
+ *(p++) = 255;
+ }
+ }
+ rv = image_layer_.SetImage(image, pp::Size(kImageWidth, kImageHeight),
+ callback_factory_.NewCallback(&DemoInstance::OnImageReleased, image));
+ assert(rv == PP_OK_COMPLETIONPENDING);
+ }
+
+ {
+ // Set the stable texture layer
+ if (stable_texture_layer_.is_null()) {
+ stable_texture_layer_ = compositor_.AddLayer();
+ assert(!stable_texture_layer_.is_null());
+ GLuint texture = PrepareFramebuffer();
+ cube_->UpdateForTimeDelta(0.02f);
+ cube_->Draw();
+ rv = stable_texture_layer_.SetTexture(
+ *context_,
+ texture, pp::Size(600, 600),
+ callback_factory_.NewCallback(&DemoInstance::OnTextureReleased,
+ texture));
+ assert(rv == PP_OK_COMPLETIONPENDING);
+ rv = stable_texture_layer_.SetPremultipliedAlpha(PP_FALSE);
+ assert(rv == PP_OK);
+ }
+
+ int32_t delta = 200 * fabsf(factor_sin);
+ if (delta != 0) {
+ int32_t x_y = 25 + delta;
+ int32_t w_h = 650 - delta - delta;
+ rv = stable_texture_layer_.SetClipRect(pp::Rect(x_y, x_y, w_h, w_h));
+ } else {
+ rv = stable_texture_layer_.SetClipRect(pp::Rect());
+ }
+ assert(rv == PP_OK);
+
+ const float transform[16] = {
+ factor_cos, -factor_sin, 0.0f, 0.0f,
+ factor_sin, factor_cos, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ 50.0f, 50.0f, 0.0f, 1.0f,
+ };
+ rv = stable_texture_layer_.SetTransform(transform);
+ assert(rv == PP_OK);
+ }
+
+ {
+ // Set the dynamic texture layer.
+ if (texture_layer_.is_null()) {
+ texture_layer_ = compositor_.AddLayer();
+ assert(!texture_layer_.is_null());
+ static const float transform[16] = {
+ 1.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 1.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 1.0f, 0.0f,
+ 200.0f, 0.0f, 0.0f, 1.0f,
+ };
+ rv = texture_layer_.SetTransform(transform);
+ assert(rv == PP_OK);
+ }
+
+ GLuint texture = PrepareFramebuffer();
+ cube_->UpdateForTimeDelta(0.02f);
+ cube_->Draw();
+ rv = texture_layer_.SetTexture(*context_, texture, pp::Size(400, 400),
+ callback_factory_.NewCallback(&DemoInstance::OnTextureReleased,
+ texture));
+ assert(rv == PP_OK_COMPLETIONPENDING);
+ rv = texture_layer_.SetPremultipliedAlpha(PP_FALSE);
+ assert(rv == PP_OK);
+ }
+}
+
+void DemoInstance::OnTextureReleased(int32_t result, GLuint texture) {
+ if (result == PP_OK) {
+ textures_.push_back(texture);
+ } else {
+ glDeleteTextures(1, &texture);
+ total_resource_--;
+ }
+}
+
+void DemoInstance::OnImageReleased(int32_t result, const pp::ImageData& image) {
+ if (result == PP_OK) {
+ images_.push_back(image);
+ } else {
+ total_resource_--;
+ }
+}
+
+// This object is the global object representing this plugin library as long
+// as it is loaded.
+class DemoModule : public pp::Module {
+ public:
+ DemoModule() : Module() {}
+ virtual ~DemoModule() {}
+
+ virtual pp::Instance* CreateInstance(PP_Instance instance) {
+ return new DemoInstance(instance);
+ }
+};
+
+} // anonymous namespace
+
+namespace pp {
+// Factory function for your specialization of the Module object.
+Module* CreateModule() {
+ return new DemoModule();
+}
+} // namespace pp
diff --git a/chromium/ppapi/examples/compositor/compositor.html b/chromium/ppapi/examples/compositor/compositor.html
new file mode 100644
index 00000000000..a0dcfbefc2e
--- /dev/null
+++ b/chromium/ppapi/examples/compositor/compositor.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+ <!--
+ Copyright 2014 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ -->
+<head>
+ <title>GLES2 Spinning Cube Example</title>
+</head>
+
+<body>
+
+<embed id="plugin" type="application/x-ppapi-example-compositor"
+ width="800" height="600"/> <br/>
+ Total resource: <input id="total" > <br/>
+ Free resource: <input id="free" > <br/>
+<script type="text/javascript">
+ var plugin = document.getElementById('plugin');
+ var total = document.getElementById('total');
+ var free = document.getElementById('free');
+ plugin.addEventListener('message', function(message) {
+ total.value = message.data.total_resource;
+ free.value = message.data.free_resource;
+ }, false);
+</script>
+</body>
+</html>
diff --git a/chromium/ppapi/examples/compositor/spinning_cube.cc b/chromium/ppapi/examples/compositor/spinning_cube.cc
new file mode 100644
index 00000000000..2e76699c046
--- /dev/null
+++ b/chromium/ppapi/examples/compositor/spinning_cube.cc
@@ -0,0 +1,459 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This example program is based on Simple_VertexShader.c from:
+
+//
+// Book: OpenGL(R) ES 2.0 Programming Guide
+// Authors: Aaftab Munshi, Dan Ginsburg, Dave Shreiner
+// ISBN-10: 0321502795
+// ISBN-13: 9780321502797
+// Publisher: Addison-Wesley Professional
+// URLs: http://safari.informit.com/9780321563835
+// http://www.opengles-book.com
+//
+
+#include "ppapi/examples/compositor/spinning_cube.h"
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <algorithm>
+
+#include "ppapi/lib/gl/include/GLES2/gl2.h"
+
+namespace {
+
+const float kPi = 3.14159265359f;
+
+int GenerateCube(GLuint *vbo_vertices,
+ GLuint *vbo_indices) {
+ const int num_indices = 36;
+
+ const GLfloat cube_vertices[] = {
+ -0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ };
+
+ const GLushort cube_indices[] = {
+ 0, 2, 1,
+ 0, 3, 2,
+ 4, 5, 6,
+ 4, 6, 7,
+ 3, 6, 2,
+ 3, 7, 6,
+ 0, 1, 5,
+ 0, 5, 4,
+ 0, 7, 3,
+ 0, 4, 7,
+ 1, 2, 6,
+ 1, 6, 5,
+ };
+
+ if (vbo_vertices) {
+ glGenBuffers(1, vbo_vertices);
+ glBindBuffer(GL_ARRAY_BUFFER, *vbo_vertices);
+ glBufferData(GL_ARRAY_BUFFER,
+ sizeof(cube_vertices),
+ cube_vertices,
+ GL_STATIC_DRAW);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ }
+
+ if (vbo_indices) {
+ glGenBuffers(1, vbo_indices);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, *vbo_indices);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+ sizeof(cube_indices),
+ cube_indices,
+ GL_STATIC_DRAW);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+ }
+
+ return num_indices;
+}
+
+GLuint LoadShader(GLenum type,
+ const char* shader_source) {
+ GLuint shader = glCreateShader(type);
+ glShaderSource(shader, 1, &shader_source, NULL);
+ glCompileShader(shader);
+
+ GLint compiled = 0;
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+
+ if (!compiled) {
+ glDeleteShader(shader);
+ return 0;
+ }
+
+ return shader;
+}
+
+GLuint LoadProgram(const char* vertext_shader_source,
+ const char* fragment_shader_source) {
+ GLuint vertex_shader = LoadShader(GL_VERTEX_SHADER,
+ vertext_shader_source);
+ if (!vertex_shader)
+ return 0;
+
+ GLuint fragment_shader = LoadShader(GL_FRAGMENT_SHADER,
+ fragment_shader_source);
+ if (!fragment_shader) {
+ glDeleteShader(vertex_shader);
+ return 0;
+ }
+
+ GLuint program_object = glCreateProgram();
+ glAttachShader(program_object, vertex_shader);
+ glAttachShader(program_object, fragment_shader);
+
+ glLinkProgram(program_object);
+
+ glDeleteShader(vertex_shader);
+ glDeleteShader(fragment_shader);
+
+ GLint linked = 0;
+ glGetProgramiv(program_object, GL_LINK_STATUS, &linked);
+
+ if (!linked) {
+ glDeleteProgram(program_object);
+ return 0;
+ }
+
+ return program_object;
+}
+
+class ESMatrix {
+ public:
+ GLfloat m[4][4];
+
+ ESMatrix() {
+ LoadZero();
+ }
+
+ void LoadZero() {
+ memset(this, 0x0, sizeof(ESMatrix));
+ }
+
+ void LoadIdentity() {
+ LoadZero();
+ m[0][0] = 1.0f;
+ m[1][1] = 1.0f;
+ m[2][2] = 1.0f;
+ m[3][3] = 1.0f;
+ }
+
+ void Multiply(ESMatrix* a, ESMatrix* b) {
+ ESMatrix result;
+ for (int i = 0; i < 4; ++i) {
+ result.m[i][0] = (a->m[i][0] * b->m[0][0]) +
+ (a->m[i][1] * b->m[1][0]) +
+ (a->m[i][2] * b->m[2][0]) +
+ (a->m[i][3] * b->m[3][0]);
+
+ result.m[i][1] = (a->m[i][0] * b->m[0][1]) +
+ (a->m[i][1] * b->m[1][1]) +
+ (a->m[i][2] * b->m[2][1]) +
+ (a->m[i][3] * b->m[3][1]);
+
+ result.m[i][2] = (a->m[i][0] * b->m[0][2]) +
+ (a->m[i][1] * b->m[1][2]) +
+ (a->m[i][2] * b->m[2][2]) +
+ (a->m[i][3] * b->m[3][2]);
+
+ result.m[i][3] = (a->m[i][0] * b->m[0][3]) +
+ (a->m[i][1] * b->m[1][3]) +
+ (a->m[i][2] * b->m[2][3]) +
+ (a->m[i][3] * b->m[3][3]);
+ }
+ *this = result;
+ }
+
+ void Frustum(float left,
+ float right,
+ float bottom,
+ float top,
+ float near_z,
+ float far_z) {
+ float delta_x = right - left;
+ float delta_y = top - bottom;
+ float delta_z = far_z - near_z;
+
+ if ((near_z <= 0.0f) ||
+ (far_z <= 0.0f) ||
+ (delta_z <= 0.0f) ||
+ (delta_y <= 0.0f) ||
+ (delta_y <= 0.0f))
+ return;
+
+ ESMatrix frust;
+ frust.m[0][0] = 2.0f * near_z / delta_x;
+ frust.m[0][1] = frust.m[0][2] = frust.m[0][3] = 0.0f;
+
+ frust.m[1][1] = 2.0f * near_z / delta_y;
+ frust.m[1][0] = frust.m[1][2] = frust.m[1][3] = 0.0f;
+
+ frust.m[2][0] = (right + left) / delta_x;
+ frust.m[2][1] = (top + bottom) / delta_y;
+ frust.m[2][2] = -(near_z + far_z) / delta_z;
+ frust.m[2][3] = -1.0f;
+
+ frust.m[3][2] = -2.0f * near_z * far_z / delta_z;
+ frust.m[3][0] = frust.m[3][1] = frust.m[3][3] = 0.0f;
+
+ Multiply(&frust, this);
+ }
+
+ void Perspective(float fov_y, float aspect, float near_z, float far_z) {
+ GLfloat frustum_h = tanf(fov_y / 360.0f * kPi) * near_z;
+ GLfloat frustum_w = frustum_h * aspect;
+ Frustum(-frustum_w, frustum_w, -frustum_h, frustum_h, near_z, far_z);
+ }
+
+ void Translate(GLfloat tx, GLfloat ty, GLfloat tz) {
+ m[3][0] += m[0][0] * tx + m[1][0] * ty + m[2][0] * tz;
+ m[3][1] += m[0][1] * tx + m[1][1] * ty + m[2][1] * tz;
+ m[3][2] += m[0][2] * tx + m[1][2] * ty + m[2][2] * tz;
+ m[3][3] += m[0][3] * tx + m[1][3] * ty + m[2][3] * tz;
+ }
+
+ void Rotate(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
+ GLfloat mag = sqrtf(x * x + y * y + z * z);
+
+ GLfloat sin_angle = sinf(angle * kPi / 180.0f);
+ GLfloat cos_angle = cosf(angle * kPi / 180.0f);
+ if (mag > 0.0f) {
+ GLfloat xx, yy, zz, xy, yz, zx, xs, ys, zs;
+ GLfloat one_minus_cos;
+ ESMatrix rotation;
+
+ x /= mag;
+ y /= mag;
+ z /= mag;
+
+ xx = x * x;
+ yy = y * y;
+ zz = z * z;
+ xy = x * y;
+ yz = y * z;
+ zx = z * x;
+ xs = x * sin_angle;
+ ys = y * sin_angle;
+ zs = z * sin_angle;
+ one_minus_cos = 1.0f - cos_angle;
+
+ rotation.m[0][0] = (one_minus_cos * xx) + cos_angle;
+ rotation.m[0][1] = (one_minus_cos * xy) - zs;
+ rotation.m[0][2] = (one_minus_cos * zx) + ys;
+ rotation.m[0][3] = 0.0F;
+
+ rotation.m[1][0] = (one_minus_cos * xy) + zs;
+ rotation.m[1][1] = (one_minus_cos * yy) + cos_angle;
+ rotation.m[1][2] = (one_minus_cos * yz) - xs;
+ rotation.m[1][3] = 0.0F;
+
+ rotation.m[2][0] = (one_minus_cos * zx) - ys;
+ rotation.m[2][1] = (one_minus_cos * yz) + xs;
+ rotation.m[2][2] = (one_minus_cos * zz) + cos_angle;
+ rotation.m[2][3] = 0.0F;
+
+ rotation.m[3][0] = 0.0F;
+ rotation.m[3][1] = 0.0F;
+ rotation.m[3][2] = 0.0F;
+ rotation.m[3][3] = 1.0F;
+
+ Multiply(&rotation, this);
+ }
+ }
+};
+
+float RotationForTimeDelta(float delta_time) {
+ return delta_time * 40.0f;
+}
+
+float RotationForDragDistance(float drag_distance) {
+ return drag_distance / 5; // Arbitrary damping.
+}
+
+} // namespace
+
+class SpinningCube::GLState {
+ public:
+ GLState();
+
+ void OnGLContextLost();
+
+ GLfloat angle_; // Survives losing the GL context.
+
+ GLuint program_object_;
+ GLint position_location_;
+ GLint mvp_location_;
+ GLuint vbo_vertices_;
+ GLuint vbo_indices_;
+ int num_indices_;
+ ESMatrix mvp_matrix_;
+};
+
+SpinningCube::GLState::GLState()
+ : angle_(0) {
+ OnGLContextLost();
+}
+
+void SpinningCube::GLState::OnGLContextLost() {
+ program_object_ = 0;
+ position_location_ = 0;
+ mvp_location_ = 0;
+ vbo_vertices_ = 0;
+ vbo_indices_ = 0;
+ num_indices_ = 0;
+}
+
+SpinningCube::SpinningCube()
+ : initialized_(false),
+ width_(0),
+ height_(0),
+ state_(new GLState()),
+ fling_multiplier_(1.0f),
+ direction_(1) {
+ state_->angle_ = 45.0f;
+}
+
+SpinningCube::~SpinningCube() {
+ if (!initialized_)
+ return;
+ if (state_->vbo_vertices_)
+ glDeleteBuffers(1, &state_->vbo_vertices_);
+ if (state_->vbo_indices_)
+ glDeleteBuffers(1, &state_->vbo_indices_);
+ if (state_->program_object_)
+ glDeleteProgram(state_->program_object_);
+
+ delete state_;
+}
+
+void SpinningCube::Init(uint32_t width, uint32_t height) {
+ width_ = width;
+ height_ = height;
+
+ if (!initialized_) {
+ initialized_ = true;
+ const char vertext_shader_source[] =
+ "uniform mat4 u_mvpMatrix; \n"
+ "attribute vec4 a_position; \n"
+ "varying vec4 v_color; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_Position = u_mvpMatrix * a_position; \n"
+ " v_color = vec4(a_position.x + 0.5, \n"
+ " a_position.y + 0.5, \n"
+ " a_position.z + 0.5, \n"
+ " 0.8); \n"
+ "} \n";
+
+ const char fragment_shader_source[] =
+ "precision mediump float; \n"
+ "varying vec4 v_color; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_FragColor = v_color; \n"
+ "} \n";
+
+ state_->program_object_ = LoadProgram(
+ vertext_shader_source, fragment_shader_source);
+ state_->position_location_ = glGetAttribLocation(
+ state_->program_object_, "a_position");
+ state_->mvp_location_ = glGetUniformLocation(
+ state_->program_object_, "u_mvpMatrix");
+ state_->num_indices_ = GenerateCube(&state_->vbo_vertices_,
+ &state_->vbo_indices_);
+
+ glClearColor(0.0f, 0.0f, 0.0f, 0.2f);
+ }
+}
+
+void SpinningCube::OnGLContextLost() {
+ // TODO(yzshen): Is it correct that in this case we don't need to do cleanup
+ // for program and buffers?
+ initialized_ = false;
+ height_ = 0;
+ width_ = 0;
+ state_->OnGLContextLost();
+}
+
+void SpinningCube::SetFlingMultiplier(float drag_distance,
+ float drag_time) {
+ fling_multiplier_ = RotationForDragDistance(drag_distance) /
+ RotationForTimeDelta(drag_time);
+
+}
+
+void SpinningCube::UpdateForTimeDelta(float delta_time) {
+ state_->angle_ += RotationForTimeDelta(delta_time) * fling_multiplier_;
+ if (state_->angle_ >= 360.0f)
+ state_->angle_ -= 360.0f;
+
+ // Arbitrary 50-step linear reduction in spin speed.
+ if (fling_multiplier_ > 1.0f) {
+ fling_multiplier_ =
+ std::max(1.0f, fling_multiplier_ - (fling_multiplier_ - 1.0f) / 50);
+ }
+
+ Update();
+}
+
+void SpinningCube::UpdateForDragDistance(float distance) {
+ state_->angle_ += RotationForDragDistance(distance);
+ if (state_->angle_ >= 360.0f )
+ state_->angle_ -= 360.0f;
+
+ Update();
+}
+
+void SpinningCube::Draw() {
+ glViewport(0, 0, width_, height_);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glEnable(GL_DEPTH_TEST);
+ glUseProgram(state_->program_object_);
+
+ glBindBuffer(GL_ARRAY_BUFFER, state_->vbo_vertices_);
+ glVertexAttribPointer(state_->position_location_,
+ 3,
+ GL_FLOAT,
+ GL_FALSE, 3 * sizeof(GLfloat),
+ 0);
+ glEnableVertexAttribArray(state_->position_location_);
+
+ glUniformMatrix4fv(state_->mvp_location_,
+ 1,
+ GL_FALSE,
+ (GLfloat*) &state_->mvp_matrix_.m[0][0]);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, state_->vbo_indices_);
+ glDrawElements(GL_TRIANGLES,
+ state_->num_indices_,
+ GL_UNSIGNED_SHORT,
+ 0);
+}
+
+void SpinningCube::Update() {
+ float aspect = static_cast<GLfloat>(width_) / static_cast<GLfloat>(height_);
+
+ ESMatrix perspective;
+ perspective.LoadIdentity();
+ perspective.Perspective(60.0f, aspect, 1.0f, 20.0f );
+
+ ESMatrix modelview;
+ modelview.LoadIdentity();
+ modelview.Translate(0.0, 0.0, -2.0);
+ modelview.Rotate(state_->angle_ * direction_, 1.0, 0.0, 1.0);
+
+ state_->mvp_matrix_.Multiply(&modelview, &perspective);
+}
diff --git a/chromium/ppapi/examples/compositor/spinning_cube.h b/chromium/ppapi/examples/compositor/spinning_cube.h
new file mode 100644
index 00000000000..84a302c2dec
--- /dev/null
+++ b/chromium/ppapi/examples/compositor/spinning_cube.h
@@ -0,0 +1,42 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
+#define PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
+
+#include "ppapi/c/pp_stdint.h"
+
+class SpinningCube {
+ public:
+ SpinningCube();
+ ~SpinningCube();
+
+ void Init(uint32_t width, uint32_t height);
+ void set_direction(int direction) { direction_ = direction; }
+ void SetFlingMultiplier(float drag_distance, float drag_time);
+ void UpdateForTimeDelta(float delta_time);
+ void UpdateForDragDistance(float distance);
+ void Draw();
+
+ void OnGLContextLost();
+
+ private:
+ class GLState;
+
+ // Disallow copy and assign.
+ SpinningCube(const SpinningCube& other);
+ SpinningCube& operator=(const SpinningCube& other);
+
+ void Update();
+
+ bool initialized_;
+ uint32_t width_;
+ uint32_t height_;
+ // Owned ptr.
+ GLState* state_;
+ float fling_multiplier_;
+ int direction_;
+};
+
+#endif // PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
diff --git a/chromium/ppapi/examples/file_chooser/file_chooser.cc b/chromium/ppapi/examples/file_chooser/file_chooser.cc
index fd207fea779..f220dd8b294 100644
--- a/chromium/ppapi/examples/file_chooser/file_chooser.cc
+++ b/chromium/ppapi/examples/file_chooser/file_chooser.cc
@@ -46,7 +46,7 @@ class MyInstance : public pp::InstancePrivate {
PP_FileChooserMode_Dev mode =
(multi_select ? PP_FILECHOOSERMODE_OPENMULTIPLE
: PP_FILECHOOSERMODE_OPEN);
- std::string accept_types = (multi_select ? "" : "plain/text");
+ std::string accept_types = (multi_select ? "" : "text/plain");
chooser_ = pp::FileChooser_Dev(this, mode, accept_types);
chooser_.Show(callback_factory_.NewCallbackWithOutput(
diff --git a/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.cc b/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.cc
new file mode 100644
index 00000000000..de1ccbaa0b3
--- /dev/null
+++ b/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.cc
@@ -0,0 +1,150 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/cpp/core.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/graphics_3d_client.h"
+#include "ppapi/cpp/input_event.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/examples/gles2_spinning_cube/spinning_cube.h"
+#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
+#include "ppapi/utility/completion_callback_factory.h"
+
+// Use assert as a poor-man's CHECK, even in non-debug mode.
+// Since <assert.h> redefines assert on every inclusion (it doesn't use
+// include-guards), make sure this is the last file #include'd in this file.
+#undef NDEBUG
+#include <assert.h>
+
+namespace {
+
+class DemoInstance : public pp::Instance, public pp::Graphics3DClient {
+ public:
+ DemoInstance(PP_Instance instance);
+ virtual ~DemoInstance();
+
+ // pp::Instance implementation (see PPP_Instance).
+ virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
+ virtual void DidChangeView(const pp::Rect& position,
+ const pp::Rect& clip);
+ virtual bool HandleInputEvent(const pp::InputEvent& event) {
+ // TODO(yzshen): Handle input events.
+ return true;
+ }
+
+ // pp::Graphics3DClient implementation.
+ virtual void Graphics3DContextLost();
+
+ private:
+ // GL-related functions.
+ void InitGL(int32_t result);
+ void Paint(int32_t result);
+
+ pp::Size plugin_size_;
+ pp::CompletionCallbackFactory<DemoInstance> callback_factory_;
+
+ // Owned data.
+ pp::Graphics3D* context_;
+
+ SpinningCube cube_;
+};
+
+DemoInstance::DemoInstance(PP_Instance instance)
+ : pp::Instance(instance),
+ pp::Graphics3DClient(this),
+ callback_factory_(this),
+ context_(NULL) {}
+
+DemoInstance::~DemoInstance() {
+ assert(glTerminatePPAPI());
+ delete context_;
+}
+
+bool DemoInstance::Init(uint32_t /*argc*/,
+ const char* /*argn*/[],
+ const char* /*argv*/[]) {
+ RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
+ return !!glInitializePPAPI(pp::Module::Get()->get_browser_interface());
+}
+
+void DemoInstance::DidChangeView(
+ const pp::Rect& position, const pp::Rect& /*clip*/) {
+ if (position.width() == 0 || position.height() == 0)
+ return;
+ plugin_size_ = position.size();
+
+ // Initialize graphics.
+ InitGL(0);
+}
+
+void DemoInstance::Graphics3DContextLost() {
+ delete context_;
+ context_ = NULL;
+ pp::CompletionCallback cb = callback_factory_.NewCallback(
+ &DemoInstance::InitGL);
+ pp::Module::Get()->core()->CallOnMainThread(0, cb, 0);
+}
+
+void DemoInstance::InitGL(int32_t /*result*/) {
+ assert(plugin_size_.width() && plugin_size_.height());
+
+ if (context_) {
+ context_->ResizeBuffers(plugin_size_.width(), plugin_size_.height());
+ return;
+ }
+ int32_t context_attributes[] = {
+ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
+ PP_GRAPHICS3DATTRIB_WIDTH, plugin_size_.width(),
+ PP_GRAPHICS3DATTRIB_HEIGHT, plugin_size_.height(),
+ PP_GRAPHICS3DATTRIB_NONE,
+ };
+ context_ = new pp::Graphics3D(this, context_attributes);
+ assert(!context_->is_null());
+ assert(BindGraphics(*context_));
+
+ glSetCurrentContextPPAPI(context_->pp_resource());
+ cube_.Init(plugin_size_.width(), plugin_size_.height());
+ Paint(PP_OK);
+}
+
+void DemoInstance::Paint(int32_t result) {
+ if (result != PP_OK || !context_)
+ return;
+
+ cube_.UpdateForTimeDelta(0.02f);
+ cube_.Draw();
+
+ context_->SwapBuffers(callback_factory_.NewCallback(&DemoInstance::Paint));
+}
+
+// This object is the global object representing this plugin library as long
+// as it is loaded.
+class DemoModule : public pp::Module {
+ public:
+ DemoModule() : Module() {}
+ virtual ~DemoModule() {}
+
+ virtual pp::Instance* CreateInstance(PP_Instance instance) {
+ return new DemoInstance(instance);
+ }
+};
+
+} // anonymous namespace
+
+namespace pp {
+// Factory function for your specialization of the Module object.
+Module* CreateModule() {
+ return new DemoModule();
+}
+} // namespace pp
diff --git a/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.html b/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.html
new file mode 100644
index 00000000000..73ee8ee4185
--- /dev/null
+++ b/chromium/ppapi/examples/gles2_spinning_cube/gles2_spinning_cube.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <!--
+ Copyright 2014 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ -->
+<head>
+ <title>GLES2 Spinning Cube Example</title>
+</head>
+
+<body>
+
+<embed id="plugin" type="application/x-ppapi-example-gles2-spinning-cube"
+ width="800" height="600"/>
+
+</body>
+</html>
diff --git a/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.cc b/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.cc
new file mode 100644
index 00000000000..c4d33ddc87e
--- /dev/null
+++ b/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.cc
@@ -0,0 +1,466 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This example program is based on Simple_VertexShader.c from:
+
+//
+// Book: OpenGL(R) ES 2.0 Programming Guide
+// Authors: Aaftab Munshi, Dan Ginsburg, Dave Shreiner
+// ISBN-10: 0321502795
+// ISBN-13: 9780321502797
+// Publisher: Addison-Wesley Professional
+// URLs: http://safari.informit.com/9780321563835
+// http://www.opengles-book.com
+//
+
+#include "ppapi/examples/gles2_spinning_cube/spinning_cube.h"
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <algorithm>
+
+#include "ppapi/lib/gl/include/GLES2/gl2.h"
+
+namespace {
+
+const float kPi = 3.14159265359f;
+
+int GenerateCube(GLuint *vbo_vertices,
+ GLuint *vbo_indices) {
+ const int num_indices = 36;
+
+ const GLfloat cube_vertices[] = {
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, -0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, -0.5f,
+ };
+
+ const GLushort cube_indices[] = {
+ 0, 2, 1,
+ 0, 3, 2,
+ 4, 5, 6,
+ 4, 6, 7,
+ 8, 9, 10,
+ 8, 10, 11,
+ 12, 15, 14,
+ 12, 14, 13,
+ 16, 17, 18,
+ 16, 18, 19,
+ 20, 23, 22,
+ 20, 22, 21
+ };
+
+ if (vbo_vertices) {
+ glGenBuffers(1, vbo_vertices);
+ glBindBuffer(GL_ARRAY_BUFFER, *vbo_vertices);
+ glBufferData(GL_ARRAY_BUFFER,
+ sizeof(cube_vertices),
+ cube_vertices,
+ GL_STATIC_DRAW);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ }
+
+ if (vbo_indices) {
+ glGenBuffers(1, vbo_indices);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, *vbo_indices);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+ sizeof(cube_indices),
+ cube_indices,
+ GL_STATIC_DRAW);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+ }
+
+ return num_indices;
+}
+
+GLuint LoadShader(GLenum type,
+ const char* shader_source) {
+ GLuint shader = glCreateShader(type);
+ glShaderSource(shader, 1, &shader_source, NULL);
+ glCompileShader(shader);
+
+ GLint compiled = 0;
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+
+ if (!compiled) {
+ glDeleteShader(shader);
+ return 0;
+ }
+
+ return shader;
+}
+
+GLuint LoadProgram(const char* vertext_shader_source,
+ const char* fragment_shader_source) {
+ GLuint vertex_shader = LoadShader(GL_VERTEX_SHADER,
+ vertext_shader_source);
+ if (!vertex_shader)
+ return 0;
+
+ GLuint fragment_shader = LoadShader(GL_FRAGMENT_SHADER,
+ fragment_shader_source);
+ if (!fragment_shader) {
+ glDeleteShader(vertex_shader);
+ return 0;
+ }
+
+ GLuint program_object = glCreateProgram();
+ glAttachShader(program_object, vertex_shader);
+ glAttachShader(program_object, fragment_shader);
+
+ glLinkProgram(program_object);
+
+ glDeleteShader(vertex_shader);
+ glDeleteShader(fragment_shader);
+
+ GLint linked = 0;
+ glGetProgramiv(program_object, GL_LINK_STATUS, &linked);
+
+ if (!linked) {
+ glDeleteProgram(program_object);
+ return 0;
+ }
+
+ return program_object;
+}
+
+class ESMatrix {
+ public:
+ GLfloat m[4][4];
+
+ ESMatrix() {
+ LoadZero();
+ }
+
+ void LoadZero() {
+ memset(this, 0x0, sizeof(ESMatrix));
+ }
+
+ void LoadIdentity() {
+ LoadZero();
+ m[0][0] = 1.0f;
+ m[1][1] = 1.0f;
+ m[2][2] = 1.0f;
+ m[3][3] = 1.0f;
+ }
+
+ void Multiply(ESMatrix* a, ESMatrix* b) {
+ ESMatrix result;
+ for (int i = 0; i < 4; ++i) {
+ result.m[i][0] = (a->m[i][0] * b->m[0][0]) +
+ (a->m[i][1] * b->m[1][0]) +
+ (a->m[i][2] * b->m[2][0]) +
+ (a->m[i][3] * b->m[3][0]);
+
+ result.m[i][1] = (a->m[i][0] * b->m[0][1]) +
+ (a->m[i][1] * b->m[1][1]) +
+ (a->m[i][2] * b->m[2][1]) +
+ (a->m[i][3] * b->m[3][1]);
+
+ result.m[i][2] = (a->m[i][0] * b->m[0][2]) +
+ (a->m[i][1] * b->m[1][2]) +
+ (a->m[i][2] * b->m[2][2]) +
+ (a->m[i][3] * b->m[3][2]);
+
+ result.m[i][3] = (a->m[i][0] * b->m[0][3]) +
+ (a->m[i][1] * b->m[1][3]) +
+ (a->m[i][2] * b->m[2][3]) +
+ (a->m[i][3] * b->m[3][3]);
+ }
+ *this = result;
+ }
+
+ void Frustum(float left,
+ float right,
+ float bottom,
+ float top,
+ float near_z,
+ float far_z) {
+ float delta_x = right - left;
+ float delta_y = top - bottom;
+ float delta_z = far_z - near_z;
+
+ if ((near_z <= 0.0f) ||
+ (far_z <= 0.0f) ||
+ (delta_z <= 0.0f) ||
+ (delta_y <= 0.0f) ||
+ (delta_y <= 0.0f))
+ return;
+
+ ESMatrix frust;
+ frust.m[0][0] = 2.0f * near_z / delta_x;
+ frust.m[0][1] = frust.m[0][2] = frust.m[0][3] = 0.0f;
+
+ frust.m[1][1] = 2.0f * near_z / delta_y;
+ frust.m[1][0] = frust.m[1][2] = frust.m[1][3] = 0.0f;
+
+ frust.m[2][0] = (right + left) / delta_x;
+ frust.m[2][1] = (top + bottom) / delta_y;
+ frust.m[2][2] = -(near_z + far_z) / delta_z;
+ frust.m[2][3] = -1.0f;
+
+ frust.m[3][2] = -2.0f * near_z * far_z / delta_z;
+ frust.m[3][0] = frust.m[3][1] = frust.m[3][3] = 0.0f;
+
+ Multiply(&frust, this);
+ }
+
+ void Perspective(float fov_y, float aspect, float near_z, float far_z) {
+ GLfloat frustum_h = tanf(fov_y / 360.0f * kPi) * near_z;
+ GLfloat frustum_w = frustum_h * aspect;
+ Frustum(-frustum_w, frustum_w, -frustum_h, frustum_h, near_z, far_z);
+ }
+
+ void Translate(GLfloat tx, GLfloat ty, GLfloat tz) {
+ m[3][0] += m[0][0] * tx + m[1][0] * ty + m[2][0] * tz;
+ m[3][1] += m[0][1] * tx + m[1][1] * ty + m[2][1] * tz;
+ m[3][2] += m[0][2] * tx + m[1][2] * ty + m[2][2] * tz;
+ m[3][3] += m[0][3] * tx + m[1][3] * ty + m[2][3] * tz;
+ }
+
+ void Rotate(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
+ GLfloat mag = sqrtf(x * x + y * y + z * z);
+
+ GLfloat sin_angle = sinf(angle * kPi / 180.0f);
+ GLfloat cos_angle = cosf(angle * kPi / 180.0f);
+ if (mag > 0.0f) {
+ GLfloat xx, yy, zz, xy, yz, zx, xs, ys, zs;
+ GLfloat one_minus_cos;
+ ESMatrix rotation;
+
+ x /= mag;
+ y /= mag;
+ z /= mag;
+
+ xx = x * x;
+ yy = y * y;
+ zz = z * z;
+ xy = x * y;
+ yz = y * z;
+ zx = z * x;
+ xs = x * sin_angle;
+ ys = y * sin_angle;
+ zs = z * sin_angle;
+ one_minus_cos = 1.0f - cos_angle;
+
+ rotation.m[0][0] = (one_minus_cos * xx) + cos_angle;
+ rotation.m[0][1] = (one_minus_cos * xy) - zs;
+ rotation.m[0][2] = (one_minus_cos * zx) + ys;
+ rotation.m[0][3] = 0.0F;
+
+ rotation.m[1][0] = (one_minus_cos * xy) + zs;
+ rotation.m[1][1] = (one_minus_cos * yy) + cos_angle;
+ rotation.m[1][2] = (one_minus_cos * yz) - xs;
+ rotation.m[1][3] = 0.0F;
+
+ rotation.m[2][0] = (one_minus_cos * zx) - ys;
+ rotation.m[2][1] = (one_minus_cos * yz) + xs;
+ rotation.m[2][2] = (one_minus_cos * zz) + cos_angle;
+ rotation.m[2][3] = 0.0F;
+
+ rotation.m[3][0] = 0.0F;
+ rotation.m[3][1] = 0.0F;
+ rotation.m[3][2] = 0.0F;
+ rotation.m[3][3] = 1.0F;
+
+ Multiply(&rotation, this);
+ }
+ }
+};
+
+float RotationForTimeDelta(float delta_time) {
+ return delta_time * 40.0f;
+}
+
+float RotationForDragDistance(float drag_distance) {
+ return drag_distance / 5; // Arbitrary damping.
+}
+
+} // namespace
+
+class SpinningCube::GLState {
+ public:
+ GLState();
+
+ void OnGLContextLost();
+
+ GLfloat angle_; // Survives losing the GL context.
+
+ GLuint program_object_;
+ GLint position_location_;
+ GLint mvp_location_;
+ GLuint vbo_vertices_;
+ GLuint vbo_indices_;
+ int num_indices_;
+ ESMatrix mvp_matrix_;
+};
+
+SpinningCube::GLState::GLState()
+ : angle_(0) {
+ OnGLContextLost();
+}
+
+void SpinningCube::GLState::OnGLContextLost() {
+ program_object_ = 0;
+ position_location_ = 0;
+ mvp_location_ = 0;
+ vbo_vertices_ = 0;
+ vbo_indices_ = 0;
+ num_indices_ = 0;
+}
+
+SpinningCube::SpinningCube()
+ : initialized_(false),
+ width_(0),
+ height_(0),
+ state_(new GLState()),
+ fling_multiplier_(1.0f),
+ direction_(1) {
+ state_->angle_ = 45.0f;
+}
+
+SpinningCube::~SpinningCube() {
+ if (!initialized_)
+ return;
+ if (state_->vbo_vertices_)
+ glDeleteBuffers(1, &state_->vbo_vertices_);
+ if (state_->vbo_indices_)
+ glDeleteBuffers(1, &state_->vbo_indices_);
+ if (state_->program_object_)
+ glDeleteProgram(state_->program_object_);
+
+ delete state_;
+}
+
+void SpinningCube::Init(uint32_t width, uint32_t height) {
+ width_ = width;
+ height_ = height;
+
+ if (!initialized_) {
+ initialized_ = true;
+ const char vertext_shader_source[] =
+ "uniform mat4 u_mvpMatrix; \n"
+ "attribute vec4 a_position; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_Position = u_mvpMatrix * a_position; \n"
+ "} \n";
+
+ const char fragment_shader_source[] =
+ "precision mediump float; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_FragColor = vec4( 0.0, 0.0, 1.0, 1.0 ); \n"
+ "} \n";
+
+ state_->program_object_ = LoadProgram(
+ vertext_shader_source, fragment_shader_source);
+ state_->position_location_ = glGetAttribLocation(
+ state_->program_object_, "a_position");
+ state_->mvp_location_ = glGetUniformLocation(
+ state_->program_object_, "u_mvpMatrix");
+ state_->num_indices_ = GenerateCube(
+ &state_->vbo_vertices_, &state_->vbo_indices_);
+
+ glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ }
+}
+
+void SpinningCube::OnGLContextLost() {
+ // TODO(yzshen): Is it correct that in this case we don't need to do cleanup
+ // for program and buffers?
+ initialized_ = false;
+ height_ = 0;
+ width_ = 0;
+ state_->OnGLContextLost();
+}
+
+void SpinningCube::SetFlingMultiplier(float drag_distance,
+ float drag_time) {
+ fling_multiplier_ = RotationForDragDistance(drag_distance) /
+ RotationForTimeDelta(drag_time);
+
+}
+
+void SpinningCube::UpdateForTimeDelta(float delta_time) {
+ state_->angle_ += RotationForTimeDelta(delta_time) * fling_multiplier_;
+ if (state_->angle_ >= 360.0f)
+ state_->angle_ -= 360.0f;
+
+ // Arbitrary 50-step linear reduction in spin speed.
+ if (fling_multiplier_ > 1.0f) {
+ fling_multiplier_ =
+ std::max(1.0f, fling_multiplier_ - (fling_multiplier_ - 1.0f) / 50);
+ }
+
+ Update();
+}
+
+void SpinningCube::UpdateForDragDistance(float distance) {
+ state_->angle_ += RotationForDragDistance(distance);
+ if (state_->angle_ >= 360.0f )
+ state_->angle_ -= 360.0f;
+
+ Update();
+}
+
+void SpinningCube::Draw() {
+ glViewport(0, 0, width_, height_);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glUseProgram(state_->program_object_);
+ glBindBuffer(GL_ARRAY_BUFFER, state_->vbo_vertices_);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, state_->vbo_indices_);
+ glVertexAttribPointer(state_->position_location_,
+ 3,
+ GL_FLOAT,
+ GL_FALSE, 3 * sizeof(GLfloat),
+ 0);
+ glEnableVertexAttribArray(state_->position_location_);
+ glUniformMatrix4fv(state_->mvp_location_,
+ 1,
+ GL_FALSE,
+ (GLfloat*) &state_->mvp_matrix_.m[0][0]);
+ glDrawElements(GL_TRIANGLES,
+ state_->num_indices_,
+ GL_UNSIGNED_SHORT,
+ 0);
+}
+
+void SpinningCube::Update() {
+ float aspect = static_cast<GLfloat>(width_) / static_cast<GLfloat>(height_);
+
+ ESMatrix perspective;
+ perspective.LoadIdentity();
+ perspective.Perspective(60.0f, aspect, 1.0f, 20.0f );
+
+ ESMatrix modelview;
+ modelview.LoadIdentity();
+ modelview.Translate(0.0, 0.0, -2.0);
+ modelview.Rotate(state_->angle_ * direction_, 1.0, 0.0, 1.0);
+
+ state_->mvp_matrix_.Multiply(&modelview, &perspective);
+}
diff --git a/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.h b/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.h
new file mode 100644
index 00000000000..84a302c2dec
--- /dev/null
+++ b/chromium/ppapi/examples/gles2_spinning_cube/spinning_cube.h
@@ -0,0 +1,42 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
+#define PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
+
+#include "ppapi/c/pp_stdint.h"
+
+class SpinningCube {
+ public:
+ SpinningCube();
+ ~SpinningCube();
+
+ void Init(uint32_t width, uint32_t height);
+ void set_direction(int direction) { direction_ = direction; }
+ void SetFlingMultiplier(float drag_distance, float drag_time);
+ void UpdateForTimeDelta(float delta_time);
+ void UpdateForDragDistance(float distance);
+ void Draw();
+
+ void OnGLContextLost();
+
+ private:
+ class GLState;
+
+ // Disallow copy and assign.
+ SpinningCube(const SpinningCube& other);
+ SpinningCube& operator=(const SpinningCube& other);
+
+ void Update();
+
+ bool initialized_;
+ uint32_t width_;
+ uint32_t height_;
+ // Owned ptr.
+ GLState* state_;
+ float fling_multiplier_;
+ int direction_;
+};
+
+#endif // PPAPI_EXAMPLES_GLES2_SPINNING_CUBE_SPINNING_CUBE_H_
diff --git a/chromium/ppapi/examples/media_stream_audio/media_stream_audio.cc b/chromium/ppapi/examples/media_stream_audio/media_stream_audio.cc
new file mode 100644
index 00000000000..1d7bac1748d
--- /dev/null
+++ b/chromium/ppapi/examples/media_stream_audio/media_stream_audio.cc
@@ -0,0 +1,224 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <algorithm>
+#include <limits>
+#include <vector>
+
+#include "ppapi/cpp/audio_buffer.h"
+#include "ppapi/cpp/graphics_2d.h"
+#include "ppapi/cpp/image_data.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/logging.h"
+#include "ppapi/cpp/media_stream_audio_track.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/size.h"
+#include "ppapi/cpp/var_dictionary.h"
+#include "ppapi/utility/completion_callback_factory.h"
+
+// When compiling natively on Windows, PostMessage can be #define-d to
+// something else.
+#ifdef PostMessage
+#undef PostMessage
+#endif
+
+// This example demonstrates receiving audio samples from an AndioMediaTrack
+// and visualizing them.
+
+namespace {
+
+const uint32_t kColorRed = 0xFFFF0000;
+const uint32_t kColorGreen = 0xFF00FF00;
+const uint32_t kColorGrey1 = 0xFF202020;
+const uint32_t kColorGrey2 = 0xFF404040;
+const uint32_t kColorGrey3 = 0xFF606060;
+
+class MediaStreamAudioInstance : public pp::Instance {
+ public:
+ explicit MediaStreamAudioInstance(PP_Instance instance)
+ : pp::Instance(instance),
+ callback_factory_(this),
+ first_buffer_(true),
+ sample_count_(0),
+ channel_count_(0),
+ timer_interval_(0),
+ pending_paint_(false),
+ waiting_for_flush_completion_(false) {
+ }
+
+ virtual ~MediaStreamAudioInstance() {
+ }
+
+ virtual void DidChangeView(const pp::Rect& position, const pp::Rect& clip) {
+ if (position.size() == size_)
+ return;
+
+ size_ = position.size();
+ device_context_ = pp::Graphics2D(this, size_, false);
+ if (!BindGraphics(device_context_))
+ return;
+
+ Paint();
+ }
+
+ virtual void HandleMessage(const pp::Var& var_message) {
+ if (!var_message.is_dictionary())
+ return;
+ pp::VarDictionary var_dictionary_message(var_message);
+ pp::Var var_track = var_dictionary_message.Get("track");
+ if (!var_track.is_resource())
+ return;
+
+ pp::Resource resource_track = var_track.AsResource();
+ audio_track_ = pp::MediaStreamAudioTrack(resource_track);
+ audio_track_.GetBuffer(callback_factory_.NewCallbackWithOutput(
+ &MediaStreamAudioInstance::OnGetBuffer));
+ }
+
+ private:
+ void ScheduleNextTimer() {
+ PP_DCHECK(timer_interval_ > 0);
+ pp::Module::Get()->core()->CallOnMainThread(
+ timer_interval_,
+ callback_factory_.NewCallback(&MediaStreamAudioInstance::OnTimer),
+ 0);
+ }
+
+ void OnTimer(int32_t) {
+ ScheduleNextTimer();
+ Paint();
+ }
+
+ void DidFlush(int32_t result) {
+ waiting_for_flush_completion_ = false;
+ if (pending_paint_)
+ Paint();
+ }
+
+ void Paint() {
+ if (waiting_for_flush_completion_) {
+ pending_paint_ = true;
+ return;
+ }
+
+ pending_paint_ = false;
+
+ if (size_.IsEmpty())
+ return; // Nothing to do.
+
+ pp::ImageData image = PaintImage(size_);
+ if (!image.is_null()) {
+ device_context_.ReplaceContents(&image);
+ waiting_for_flush_completion_ = true;
+ device_context_.Flush(
+ callback_factory_.NewCallback(&MediaStreamAudioInstance::DidFlush));
+ }
+ }
+
+ pp::ImageData PaintImage(const pp::Size& size) {
+ pp::ImageData image(this, PP_IMAGEDATAFORMAT_BGRA_PREMUL, size, false);
+ if (image.is_null())
+ return image;
+
+ // Clear to dark grey.
+ for (int y = 0; y < size.height(); y++) {
+ for (int x = 0; x < size.width(); x++)
+ *image.GetAddr32(pp::Point(x, y)) = kColorGrey1;
+ }
+
+ int mid_height = size.height() / 2;
+ int max_amplitude = size.height() * 4 / 10;
+
+ // Draw some lines.
+ for (int x = 0; x < size.width(); x++) {
+ *image.GetAddr32(pp::Point(x, mid_height)) = kColorGrey3;
+ *image.GetAddr32(pp::Point(x, mid_height + max_amplitude)) = kColorGrey2;
+ *image.GetAddr32(pp::Point(x, mid_height - max_amplitude)) = kColorGrey2;
+ }
+
+
+ // Draw our samples.
+ for (int x = 0, i = 0;
+ x < std::min(size.width(), static_cast<int>(sample_count_));
+ x++, i += channel_count_) {
+ for (uint32_t ch = 0; ch < std::min(channel_count_, 2U); ++ch) {
+ int y = samples_[i + ch] * max_amplitude /
+ (std::numeric_limits<int16_t>::max() + 1) + mid_height;
+ *image.GetAddr32(pp::Point(x, y)) = (ch == 0 ? kColorRed : kColorGreen);
+ }
+ }
+
+ return image;
+ }
+
+ // Callback that is invoked when new buffers are received.
+ void OnGetBuffer(int32_t result, pp::AudioBuffer buffer) {
+ if (result != PP_OK)
+ return;
+
+ PP_DCHECK(buffer.GetSampleSize() == PP_AUDIOBUFFER_SAMPLESIZE_16_BITS);
+ const char* data = static_cast<const char*>(buffer.GetDataBuffer());
+ uint32_t channels = buffer.GetNumberOfChannels();
+ uint32_t samples = buffer.GetNumberOfSamples() / channels;
+
+ if (channel_count_ != channels || sample_count_ != samples) {
+ channel_count_ = channels;
+ sample_count_ = samples;
+
+ samples_.resize(sample_count_ * channel_count_);
+ timer_interval_ = (sample_count_ * 1000) / buffer.GetSampleRate() + 5;
+ // Start the timer for the first buffer.
+ if (first_buffer_) {
+ first_buffer_ = false;
+ ScheduleNextTimer();
+ }
+ }
+
+ memcpy(samples_.data(), data,
+ sample_count_ * channel_count_ * sizeof(int16_t));
+
+ audio_track_.RecycleBuffer(buffer);
+ audio_track_.GetBuffer(callback_factory_.NewCallbackWithOutput(
+ &MediaStreamAudioInstance::OnGetBuffer));
+
+ }
+
+ pp::MediaStreamAudioTrack audio_track_;
+ pp::CompletionCallbackFactory<MediaStreamAudioInstance> callback_factory_;
+
+ bool first_buffer_;
+ uint32_t sample_count_;
+ uint32_t channel_count_;
+ std::vector<int16_t> samples_;
+
+ int32_t timer_interval_;
+
+ // Painting stuff.
+ pp::Size size_;
+ pp::Graphics2D device_context_;
+ bool pending_paint_;
+ bool waiting_for_flush_completion_;
+};
+
+class MediaStreamAudioModule : public pp::Module {
+ public:
+ virtual pp::Instance* CreateInstance(PP_Instance instance) {
+ return new MediaStreamAudioInstance(instance);
+ }
+};
+
+} // namespace
+
+namespace pp {
+
+// Factory function for your specialization of the Module object.
+Module* CreateModule() {
+ return new MediaStreamAudioModule();
+}
+
+} // namespace pp
diff --git a/chromium/ppapi/examples/media_stream_audio/media_stream_audio.html b/chromium/ppapi/examples/media_stream_audio/media_stream_audio.html
new file mode 100644
index 00000000000..6513ccdfa10
--- /dev/null
+++ b/chromium/ppapi/examples/media_stream_audio/media_stream_audio.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+ <!--
+ Copyright 2014 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ -->
+<head>
+ <title>Media Stream Audio Example</title>
+ <script type="text/javascript">
+ var plugin;
+ var stream;
+
+ function handleMessage(message) {
+ console.log(message);
+ }
+
+ function success(s) {
+ stream = s;
+ plugin.postMessage({track: stream.getAudioTracks()[0]});
+ }
+
+ function failure(e) {
+ console.log(e);
+ }
+
+ function initialize() {
+ plugin = document.getElementById('plugin');
+ plugin.addEventListener('message', handleMessage, false);
+ navigator.webkitGetUserMedia({ 'audio': true }, success, failure);
+ }
+
+ document.addEventListener('DOMContentLoaded', initialize, false);
+ </script>
+</head>
+
+<body>
+ <h1>Pepper MediaStream Audio API Example</h1><br>
+ This example demonstrates receiving frames from an audio MediaStreamTrack and
+ rendering them in a plugin.<br>
+ <embed id="plugin" type="application/x-ppapi-example-media-stream-audio"
+ width="320" height="240"/>
+</body>
+</html>
diff --git a/chromium/ppapi/examples/media_stream_video/media_stream_video.cc b/chromium/ppapi/examples/media_stream_video/media_stream_video.cc
new file mode 100644
index 00000000000..c0b60a3ece9
--- /dev/null
+++ b/chromium/ppapi/examples/media_stream_video/media_stream_video.cc
@@ -0,0 +1,494 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <string.h>
+
+#include <vector>
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_opengles2.h"
+#include "ppapi/cpp/completion_callback.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/graphics_3d_client.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/media_stream_video_track.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/var.h"
+#include "ppapi/cpp/var_dictionary.h"
+#include "ppapi/cpp/video_frame.h"
+#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
+#include "ppapi/utility/completion_callback_factory.h"
+
+// When compiling natively on Windows, PostMessage can be #define-d to
+// something else.
+#ifdef PostMessage
+#undef PostMessage
+#endif
+
+// Assert |context_| isn't holding any GL Errors. Done as a macro instead of a
+// function to preserve line number information in the failure message.
+#define AssertNoGLError() \
+ PP_DCHECK(!glGetError());
+
+namespace {
+
+// This object is the global object representing this plugin library as long
+// as it is loaded.
+class MediaStreamVideoModule : public pp::Module {
+ public:
+ MediaStreamVideoModule() : pp::Module() {}
+ virtual ~MediaStreamVideoModule() {}
+
+ virtual pp::Instance* CreateInstance(PP_Instance instance);
+};
+
+class MediaStreamVideoDemoInstance : public pp::Instance,
+ public pp::Graphics3DClient {
+ public:
+ MediaStreamVideoDemoInstance(PP_Instance instance, pp::Module* module);
+ virtual ~MediaStreamVideoDemoInstance();
+
+ // pp::Instance implementation (see PPP_Instance).
+ virtual void DidChangeView(const pp::Rect& position,
+ const pp::Rect& clip_ignored);
+ virtual void HandleMessage(const pp::Var& message_data);
+
+ // pp::Graphics3DClient implementation.
+ virtual void Graphics3DContextLost() {
+ InitGL();
+ CreateTextures();
+ Render();
+ }
+
+ private:
+ void DrawYUV();
+ void DrawRGB();
+ void Render();
+
+ // GL-related functions.
+ void InitGL();
+ GLuint CreateTexture(int32_t width, int32_t height, int unit, bool rgba);
+ void CreateGLObjects();
+ void CreateShader(GLuint program, GLenum type, const char* source);
+ void PaintFinished(int32_t result);
+ void CreateTextures();
+ void ConfigureTrack();
+
+
+ // MediaStreamVideoTrack callbacks.
+ void OnConfigure(int32_t result);
+ void OnGetFrame(int32_t result, pp::VideoFrame frame);
+
+ pp::Size position_size_;
+ bool is_painting_;
+ bool needs_paint_;
+ bool is_bgra_;
+ GLuint program_yuv_;
+ GLuint program_rgb_;
+ GLuint buffer_;
+ GLuint texture_y_;
+ GLuint texture_u_;
+ GLuint texture_v_;
+ GLuint texture_rgb_;
+ pp::MediaStreamVideoTrack video_track_;
+ pp::CompletionCallbackFactory<MediaStreamVideoDemoInstance> callback_factory_;
+ std::vector<int32_t> attrib_list_;
+
+ // MediaStreamVideoTrack attributes:
+ bool need_config_;
+ PP_VideoFrame_Format attrib_format_;
+ int32_t attrib_width_;
+ int32_t attrib_height_;
+
+ // Owned data.
+ pp::Graphics3D* context_;
+
+ pp::Size frame_size_;
+};
+
+MediaStreamVideoDemoInstance::MediaStreamVideoDemoInstance(
+ PP_Instance instance, pp::Module* module)
+ : pp::Instance(instance),
+ pp::Graphics3DClient(this),
+ is_painting_(false),
+ needs_paint_(false),
+ is_bgra_(false),
+ texture_y_(0),
+ texture_u_(0),
+ texture_v_(0),
+ texture_rgb_(0),
+ callback_factory_(this),
+ need_config_(false),
+ attrib_format_(PP_VIDEOFRAME_FORMAT_I420),
+ attrib_width_(0),
+ attrib_height_(0),
+ context_(NULL) {
+ if (!glInitializePPAPI(pp::Module::Get()->get_browser_interface())) {
+ LogToConsole(PP_LOGLEVEL_ERROR, pp::Var("Unable to initialize GL PPAPI!"));
+ assert(false);
+ }
+}
+
+MediaStreamVideoDemoInstance::~MediaStreamVideoDemoInstance() {
+ delete context_;
+}
+
+void MediaStreamVideoDemoInstance::DidChangeView(
+ const pp::Rect& position, const pp::Rect& clip_ignored) {
+ if (position.width() == 0 || position.height() == 0)
+ return;
+ if (position.size() == position_size_)
+ return;
+
+ position_size_ = position.size();
+
+ // Initialize graphics.
+ InitGL();
+ Render();
+}
+
+void MediaStreamVideoDemoInstance::HandleMessage(const pp::Var& var_message) {
+ if (!var_message.is_dictionary()) {
+ LogToConsole(PP_LOGLEVEL_ERROR, pp::Var("Invalid message!"));
+ return;
+ }
+
+ pp::VarDictionary var_dictionary_message(var_message);
+ std::string command = var_dictionary_message.Get("command").AsString();
+
+ if (command == "init") {
+ pp::Var var_track = var_dictionary_message.Get("track");
+ if (!var_track.is_resource())
+ return;
+ pp::Resource resource_track = var_track.AsResource();
+ video_track_ = pp::MediaStreamVideoTrack(resource_track);
+ ConfigureTrack();
+ } else if (command == "format") {
+ std::string str_format = var_dictionary_message.Get("format").AsString();
+ if (str_format == "YV12") {
+ attrib_format_ = PP_VIDEOFRAME_FORMAT_YV12;
+ } else if (str_format == "I420") {
+ attrib_format_ = PP_VIDEOFRAME_FORMAT_I420;
+ } else if (str_format == "BGRA") {
+ attrib_format_ = PP_VIDEOFRAME_FORMAT_BGRA;
+ } else {
+ attrib_format_ = PP_VIDEOFRAME_FORMAT_UNKNOWN;
+ }
+ need_config_ = true;
+ } else if (command == "size") {
+ attrib_width_ = var_dictionary_message.Get("width").AsInt();
+ attrib_height_ = var_dictionary_message.Get("height").AsInt();
+ need_config_ = true;
+ } else {
+ LogToConsole(PP_LOGLEVEL_ERROR, pp::Var("Invalid command!"));
+ }
+}
+
+void MediaStreamVideoDemoInstance::InitGL() {
+ PP_DCHECK(position_size_.width() && position_size_.height());
+ is_painting_ = false;
+
+ delete context_;
+ int32_t attributes[] = {
+ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
+ PP_GRAPHICS3DATTRIB_WIDTH, position_size_.width(),
+ PP_GRAPHICS3DATTRIB_HEIGHT, position_size_.height(),
+ PP_GRAPHICS3DATTRIB_NONE,
+ };
+ context_ = new pp::Graphics3D(this, attributes);
+ PP_DCHECK(!context_->is_null());
+
+ glSetCurrentContextPPAPI(context_->pp_resource());
+
+ // Set viewport window size and clear color bit.
+ glClearColor(1, 0, 0, 1);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glViewport(0, 0, position_size_.width(), position_size_.height());
+
+ BindGraphics(*context_);
+ AssertNoGLError();
+
+ CreateGLObjects();
+}
+
+void MediaStreamVideoDemoInstance::DrawYUV() {
+ static const float kColorMatrix[9] = {
+ 1.1643828125f, 1.1643828125f, 1.1643828125f,
+ 0.0f, -0.39176171875f, 2.017234375f,
+ 1.59602734375f, -0.81296875f, 0.0f
+ };
+
+ glUseProgram(program_yuv_);
+ glUniform1i(glGetUniformLocation(program_yuv_, "y_texture"), 0);
+ glUniform1i(glGetUniformLocation(program_yuv_, "u_texture"), 1);
+ glUniform1i(glGetUniformLocation(program_yuv_, "v_texture"), 2);
+ glUniformMatrix3fv(glGetUniformLocation(program_yuv_, "color_matrix"),
+ 1, GL_FALSE, kColorMatrix);
+ AssertNoGLError();
+
+ GLint pos_location = glGetAttribLocation(program_yuv_, "a_position");
+ GLint tc_location = glGetAttribLocation(program_yuv_, "a_texCoord");
+ AssertNoGLError();
+ glEnableVertexAttribArray(pos_location);
+ glVertexAttribPointer(pos_location, 2, GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArray(tc_location);
+ glVertexAttribPointer(tc_location, 2, GL_FLOAT, GL_FALSE, 0,
+ static_cast<float*>(0) + 16); // Skip position coordinates.
+ AssertNoGLError();
+
+ glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+ AssertNoGLError();
+}
+
+void MediaStreamVideoDemoInstance::DrawRGB() {
+ glUseProgram(program_rgb_);
+ glUniform1i(glGetUniformLocation(program_rgb_, "rgb_texture"), 3);
+ AssertNoGLError();
+
+ GLint pos_location = glGetAttribLocation(program_rgb_, "a_position");
+ GLint tc_location = glGetAttribLocation(program_rgb_, "a_texCoord");
+ AssertNoGLError();
+ glEnableVertexAttribArray(pos_location);
+ glVertexAttribPointer(pos_location, 2, GL_FLOAT, GL_FALSE, 0, 0);
+ glEnableVertexAttribArray(tc_location);
+ glVertexAttribPointer(tc_location, 2, GL_FLOAT, GL_FALSE, 0,
+ static_cast<float*>(0) + 16); // Skip position coordinates.
+ AssertNoGLError();
+
+ glDrawArrays(GL_TRIANGLE_STRIP, 4, 4);
+}
+
+void MediaStreamVideoDemoInstance::Render() {
+ PP_DCHECK(!is_painting_);
+ is_painting_ = true;
+ needs_paint_ = false;
+
+ if (texture_y_) {
+ DrawRGB();
+ DrawYUV();
+ } else {
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+ pp::CompletionCallback cb = callback_factory_.NewCallback(
+ &MediaStreamVideoDemoInstance::PaintFinished);
+ context_->SwapBuffers(cb);
+}
+
+void MediaStreamVideoDemoInstance::PaintFinished(int32_t result) {
+ is_painting_ = false;
+ if (needs_paint_)
+ Render();
+}
+
+GLuint MediaStreamVideoDemoInstance::CreateTexture(
+ int32_t width, int32_t height, int unit, bool rgba) {
+ GLuint texture_id;
+ glGenTextures(1, &texture_id);
+ AssertNoGLError();
+
+ // Assign parameters.
+ glActiveTexture(GL_TEXTURE0 + unit);
+ glBindTexture(GL_TEXTURE_2D, texture_id);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ // Allocate texture.
+ glTexImage2D(GL_TEXTURE_2D, 0,
+ rgba ? GL_BGRA_EXT : GL_LUMINANCE,
+ width, height, 0,
+ rgba ? GL_BGRA_EXT : GL_LUMINANCE, GL_UNSIGNED_BYTE, NULL);
+ AssertNoGLError();
+ return texture_id;
+}
+
+void MediaStreamVideoDemoInstance::CreateGLObjects() {
+ // Code and constants for shader.
+ static const char kVertexShader[] =
+ "varying vec2 v_texCoord; \n"
+ "attribute vec4 a_position; \n"
+ "attribute vec2 a_texCoord; \n"
+ "void main() \n"
+ "{ \n"
+ " v_texCoord = a_texCoord; \n"
+ " gl_Position = a_position; \n"
+ "}";
+
+ static const char kFragmentShaderYUV[] =
+ "precision mediump float; \n"
+ "varying vec2 v_texCoord; \n"
+ "uniform sampler2D y_texture; \n"
+ "uniform sampler2D u_texture; \n"
+ "uniform sampler2D v_texture; \n"
+ "uniform mat3 color_matrix; \n"
+ "void main() \n"
+ "{ \n"
+ " vec3 yuv; \n"
+ " yuv.x = texture2D(y_texture, v_texCoord).r; \n"
+ " yuv.y = texture2D(u_texture, v_texCoord).r; \n"
+ " yuv.z = texture2D(v_texture, v_texCoord).r; \n"
+ " vec3 rgb = color_matrix * (yuv - vec3(0.0625, 0.5, 0.5));\n"
+ " gl_FragColor = vec4(rgb, 1.0); \n"
+ "}";
+
+ static const char kFragmentShaderRGB[] =
+ "precision mediump float; \n"
+ "varying vec2 v_texCoord; \n"
+ "uniform sampler2D rgb_texture; \n"
+ "void main() \n"
+ "{ \n"
+ " gl_FragColor = texture2D(rgb_texture, v_texCoord); \n"
+ "}";
+
+ // Create shader programs.
+ program_yuv_ = glCreateProgram();
+ CreateShader(program_yuv_, GL_VERTEX_SHADER, kVertexShader);
+ CreateShader(program_yuv_, GL_FRAGMENT_SHADER, kFragmentShaderYUV);
+ glLinkProgram(program_yuv_);
+ AssertNoGLError();
+
+ program_rgb_ = glCreateProgram();
+ CreateShader(program_rgb_, GL_VERTEX_SHADER, kVertexShader);
+ CreateShader(program_rgb_, GL_FRAGMENT_SHADER, kFragmentShaderRGB);
+ glLinkProgram(program_rgb_);
+ AssertNoGLError();
+
+ // Assign vertex positions and texture coordinates to buffers for use in
+ // shader program.
+ static const float kVertices[] = {
+ -1, 1, -1, -1, 0, 1, 0, -1, // Position coordinates.
+ 0, 1, 0, -1, 1, 1, 1, -1, // Position coordinates.
+ 0, 0, 0, 1, 1, 0, 1, 1, // Texture coordinates.
+ 0, 0, 0, 1, 1, 0, 1, 1, // Texture coordinates.
+ };
+
+ glGenBuffers(1, &buffer_);
+ glBindBuffer(GL_ARRAY_BUFFER, buffer_);
+ glBufferData(GL_ARRAY_BUFFER, sizeof(kVertices), kVertices, GL_STATIC_DRAW);
+ AssertNoGLError();
+}
+
+void MediaStreamVideoDemoInstance::CreateShader(
+ GLuint program, GLenum type, const char* source) {
+ GLuint shader = glCreateShader(type);
+ GLint length = static_cast<GLint>(strlen(source) + 1);
+ glShaderSource(shader, 1, &source, &length);
+ glCompileShader(shader);
+ glAttachShader(program, shader);
+ glDeleteShader(shader);
+}
+
+void MediaStreamVideoDemoInstance::CreateTextures() {
+ int32_t width = frame_size_.width();
+ int32_t height = frame_size_.height();
+ if (width == 0 || height == 0)
+ return;
+ if (texture_y_)
+ glDeleteTextures(1, &texture_y_);
+ if (texture_u_)
+ glDeleteTextures(1, &texture_u_);
+ if (texture_v_)
+ glDeleteTextures(1, &texture_v_);
+ if (texture_rgb_)
+ glDeleteTextures(1, &texture_rgb_);
+ texture_y_ = CreateTexture(width, height, 0, false);
+
+ texture_u_ = CreateTexture(width / 2, height / 2, 1, false);
+ texture_v_ = CreateTexture(width / 2, height / 2, 2, false);
+ texture_rgb_ = CreateTexture(width, height, 3, true);
+}
+
+void MediaStreamVideoDemoInstance::ConfigureTrack() {
+ const int32_t attrib_list[] = {
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT, attrib_format_,
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH, attrib_width_,
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT, attrib_height_,
+ PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE
+ };
+ video_track_.Configure(attrib_list, callback_factory_.NewCallback(
+ &MediaStreamVideoDemoInstance::OnConfigure));
+}
+
+void MediaStreamVideoDemoInstance::OnConfigure(int32_t result) {
+ video_track_.GetFrame(callback_factory_.NewCallbackWithOutput(
+ &MediaStreamVideoDemoInstance::OnGetFrame));
+}
+
+void MediaStreamVideoDemoInstance::OnGetFrame(
+ int32_t result, pp::VideoFrame frame) {
+ if (result != PP_OK)
+ return;
+ const char* data = static_cast<const char*>(frame.GetDataBuffer());
+ pp::Size size;
+ frame.GetSize(&size);
+
+ if (size != frame_size_) {
+ frame_size_ = size;
+ CreateTextures();
+ }
+
+ is_bgra_ = (frame.GetFormat() == PP_VIDEOFRAME_FORMAT_BGRA);
+
+ int32_t width = frame_size_.width();
+ int32_t height = frame_size_.height();
+ if (!is_bgra_) {
+ glActiveTexture(GL_TEXTURE0);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
+
+ data += width * height;
+ width /= 2;
+ height /= 2;
+
+ glActiveTexture(GL_TEXTURE1);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
+
+ data += width * height;
+ glActiveTexture(GL_TEXTURE2);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, data);
+ } else {
+ glActiveTexture(GL_TEXTURE3);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height,
+ GL_BGRA_EXT, GL_UNSIGNED_BYTE, data);
+ }
+
+ if (is_painting_)
+ needs_paint_ = true;
+ else
+ Render();
+
+ video_track_.RecycleFrame(frame);
+ if (need_config_) {
+ ConfigureTrack();
+ need_config_ = false;
+ } else {
+ video_track_.GetFrame(callback_factory_.NewCallbackWithOutput(
+ &MediaStreamVideoDemoInstance::OnGetFrame));
+ }
+}
+
+pp::Instance* MediaStreamVideoModule::CreateInstance(PP_Instance instance) {
+ return new MediaStreamVideoDemoInstance(instance, this);
+}
+
+} // anonymous namespace
+
+namespace pp {
+// Factory function for your specialization of the Module object.
+Module* CreateModule() {
+ return new MediaStreamVideoModule();
+}
+} // namespace pp
diff --git a/chromium/ppapi/examples/media_stream_video/media_stream_video.html b/chromium/ppapi/examples/media_stream_video/media_stream_video.html
new file mode 100644
index 00000000000..ba7a3253435
--- /dev/null
+++ b/chromium/ppapi/examples/media_stream_video/media_stream_video.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+ <!--
+ Copyright 2014 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ -->
+<head>
+ <title>Media Stream Video Example</title>
+ <script type="text/javascript">
+ var plugin;
+ var stream;
+
+ function handleMessage(message) {
+ console.log(message);
+ }
+
+ function success(s) {
+ stream = s;
+ plugin.postMessage({command: 'init', track: stream.getVideoTracks()[0]});
+ }
+
+ function failure(e) {
+ console.log(e);
+ }
+
+ function initialize() {
+ plugin = document.getElementById('plugin');
+ plugin.addEventListener('message', handleMessage, false);
+ var constraints = {
+ audio: false,
+ video: {
+ mandatory: {
+ minWidth: 640,
+ minHeight: 320,
+ minFrameRate: 30
+ },
+ optional: []
+ }
+ };
+
+ navigator.webkitGetUserMedia(constraints, success, failure);
+ }
+
+ function changeFormat(format) {
+ plugin.postMessage({command:'format', format: format});
+ }
+
+ function changeSize(width, height) {
+ plugin.postMessage({command:'size', width: width, height: height});
+ }
+ document.addEventListener('DOMContentLoaded', initialize, false);
+ </script>
+</head>
+
+<body>
+ <h1>Pepper MediaStream Video API Example</h1><br>
+ This example demonstrates receiving frames from a video MediaStreamTrack and
+ rendering them in a plugin.<br>
+ Left side shows YUV frames. Right side shows BGRA frames.
+ <embed id="plugin" type="application/x-ppapi-example-media-stream-video"
+ width="640" height="240"/>
+ <h2>Format:</h2><br>
+ <button onclick="changeFormat('YV12')" >YV12</button>
+ <button onclick="changeFormat('I420')" >I420</button>
+ <button onclick="changeFormat('BGRA')" >BGRA</button>
+ <button onclick="changeFormat('DEFAULT')" >DEFAULT</button>
+ <h2>Size:</h2><br>
+ <button onclick="changeSize(72, 72)" >72 x 72</button>
+ <button onclick="changeSize(640, 360)" >640 x 360</button>
+ <button onclick="changeSize(1280, 720)" >1280 x 720</button>
+ <button onclick="changeSize(0, 0)" >DEFAULT</button>
+</body>
+</html>
diff --git a/chromium/ppapi/examples/video_decode/OWNERS b/chromium/ppapi/examples/video_decode/OWNERS
index b1eea3a9287..ec1eaca9cdf 100644
--- a/chromium/ppapi/examples/video_decode/OWNERS
+++ b/chromium/ppapi/examples/video_decode/OWNERS
@@ -1,2 +1 @@
-fischman@chromium.org
vrk@chromium.org
diff --git a/chromium/ppapi/examples/video_decode/testdata.h b/chromium/ppapi/examples/video_decode/testdata.h
index e5ab3d6c09b..68c200b29e0 100644
--- a/chromium/ppapi/examples/video_decode/testdata.h
+++ b/chromium/ppapi/examples/video_decode/testdata.h
@@ -2,12531 +2,32905 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef PPAPI_EXAMPLES_GLES2_TESTDATA_H_
-#define PPAPI_EXAMPLES_GLES2_TESTDATA_H_
+#ifndef PPAPI_EXAMPLES_VIDEO_DECODE_TESTDATA_H_
+#define PPAPI_EXAMPLES_VIDEO_DECODE_TESTDATA_H_
namespace {
-// We use a kData array of raw H264 data from test-25fps.h264 because
-// out-of-process file loading was not working right on ARM. This was
-// generated using xxd -i.
-// TODO(vrk/fischman): Load data from file.
+// We use a kData array of raw bitstream data because out-of-process file
+// loading was not working right on ARM.
+// TODO(bbudge): Load data from file.
+#if defined USE_VP8_TESTDATA_INSTEAD_OF_H264
+// VP8 data from test-25fps.vp8 generated using hexdump.
+const unsigned int kDataLen = 244426;
const unsigned char kData[] = {
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x07, 0x8c, 0x0b, 0xe1, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9,
- 0x18, 0x28, 0x3e, 0x60, 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b,
- 0xdf, 0x01, 0x00, 0x00, 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00,
- 0x01, 0x25, 0xb8, 0x20, 0x20, 0x63, 0xfc, 0x7e, 0x2c, 0x37, 0x14, 0x00,
- 0x60, 0x3c, 0x84, 0x92, 0xc0, 0x3c, 0x84, 0x89, 0x9e, 0x78, 0xc0, 0x79,
- 0x09, 0x25, 0x80, 0x23, 0xd7, 0xdb, 0x36, 0x3f, 0x6b, 0xc5, 0xe0, 0xf1,
- 0xc0, 0x79, 0x09, 0x13, 0x31, 0x1d, 0x7d, 0xa5, 0xdc, 0x0f, 0x54, 0x39,
- 0x43, 0xff, 0xfd, 0x36, 0xee, 0xf2, 0x03, 0x6f, 0x5d, 0xe0, 0x77, 0x7e,
- 0xde, 0xf7, 0xde, 0x1a, 0xc8, 0x45, 0x85, 0x40, 0x6d, 0x1e, 0x30, 0x1e,
- 0x44, 0x52, 0xdb, 0xd0, 0x23, 0xd7, 0xed, 0xf3, 0xc6, 0x03, 0xc8, 0x8a,
- 0x5b, 0xf1, 0x92, 0xd9, 0xb3, 0x63, 0x8f, 0xc4, 0x1b, 0x68, 0xf9, 0x87,
- 0x65, 0xbc, 0x76, 0xdb, 0xd0, 0x7f, 0xdf, 0xab, 0x40, 0xcd, 0x30, 0x2d,
- 0x6e, 0x16, 0xcb, 0xbf, 0xa0, 0x14, 0x1d, 0x75, 0xf0, 0xfe, 0x7f, 0x4a,
- 0x5e, 0xb3, 0x9d, 0x93, 0xff, 0xaf, 0x52, 0x3b, 0xe7, 0x69, 0x8f, 0x8f,
- 0xcd, 0xfe, 0x22, 0x0f, 0x11, 0x1d, 0xb3, 0xc6, 0x03, 0xc8, 0x49, 0x2d,
- 0xcf, 0x18, 0x0f, 0x21, 0x24, 0xb0, 0x08, 0xcc, 0xf9, 0xf9, 0x09, 0xa8,
- 0x7f, 0x9e, 0x86, 0x2b, 0xbe, 0x5f, 0xff, 0x37, 0xc6, 0x05, 0xbf, 0xc3,
- 0xb1, 0xfd, 0x78, 0x51, 0x75, 0xfa, 0xc4, 0xdf, 0xff, 0xbc, 0x4f, 0x85,
- 0x50, 0x75, 0x06, 0xcd, 0xfe, 0x97, 0x7d, 0x9e, 0xce, 0x51, 0x60, 0x6b,
- 0xe9, 0x0f, 0x90, 0x2d, 0x79, 0x58, 0xcf, 0x8f, 0x7c, 0xcc, 0xa7, 0x2f,
- 0xb7, 0x2e, 0xf4, 0x72, 0xef, 0x06, 0xa7, 0x2f, 0x88, 0xf5, 0x3c, 0xf2,
- 0x00, 0x65, 0xa8, 0x6e, 0x5d, 0x6c, 0x10, 0x7b, 0xf8, 0x5e, 0xdd, 0x1f,
- 0xdf, 0x34, 0xe9, 0xbd, 0x5b, 0xef, 0xc7, 0x07, 0xfa, 0x75, 0xba, 0x18,
- 0xf9, 0xb5, 0xa1, 0xf7, 0x5f, 0xdb, 0xb3, 0x9c, 0xe9, 0xfb, 0x7d, 0x4d,
- 0xdc, 0xee, 0x2b, 0xe8, 0x4a, 0xf5, 0x01, 0xb6, 0x28, 0xc0, 0x79, 0x11,
- 0x4b, 0x02, 0x66, 0xd9, 0xed, 0x94, 0xd6, 0x0f, 0x18, 0x0f, 0x22, 0x29,
- 0x6f, 0x01, 0x9b, 0xe8, 0xe4, 0x5d, 0x3e, 0x8a, 0xeb, 0xb8, 0xa7, 0xe7,
- 0xfe, 0xe3, 0x5f, 0xe0, 0x52, 0xaa, 0x77, 0xa9, 0xdf, 0xed, 0xa7, 0xef,
- 0xdd, 0x75, 0xf1, 0x8b, 0xd7, 0x6c, 0xe3, 0x2b, 0x7e, 0x6e, 0xf1, 0x74,
- 0xd3, 0x3b, 0x99, 0x6d, 0xbd, 0x07, 0xfd, 0xfa, 0xf1, 0x0d, 0x66, 0x2b,
- 0x0b, 0x6e, 0x78, 0xc0, 0x79, 0x11, 0x4b, 0x19, 0x99, 0x3d, 0x6c, 0xd7,
- 0xaf, 0xdb, 0xe7, 0x8c, 0x07, 0x91, 0x14, 0xb7, 0xf1, 0xc6, 0xa1, 0x28,
- 0x7f, 0xb5, 0xe3, 0x40, 0x6e, 0x91, 0x2e, 0xaf, 0xeb, 0xff, 0xef, 0xfd,
- 0x7d, 0x29, 0x97, 0xd4, 0x43, 0xfe, 0x2f, 0x4b, 0x13, 0x5c, 0x04, 0xcd,
- 0x79, 0xbf, 0xb9, 0x9e, 0xf8, 0x1f, 0xee, 0xe7, 0x36, 0x6f, 0xfd, 0xff,
- 0xa8, 0x01, 0xc4, 0xd9, 0xed, 0x9e, 0x30, 0x1e, 0x42, 0x49, 0x6e, 0x78,
- 0xc0, 0x79, 0x09, 0x25, 0x80, 0x46, 0x67, 0xcf, 0xcd, 0x45, 0x01, 0xc7,
- 0x72, 0xaf, 0x9d, 0xff, 0x72, 0xfa, 0x74, 0xe5, 0x59, 0x5a, 0xdf, 0x78,
- 0xc4, 0xed, 0xea, 0x13, 0xdf, 0xfe, 0x20, 0x8f, 0xa7, 0xb0, 0x0b, 0xfe,
- 0xa0, 0x69, 0x73, 0x9b, 0x5e, 0x7e, 0xff, 0x20, 0x7f, 0x7d, 0xd5, 0xde,
- 0xf1, 0xe3, 0x21, 0x2c, 0xc1, 0xad, 0x1e, 0x30, 0x1e, 0x44, 0x52, 0xc2,
- 0x5f, 0xc3, 0xfc, 0xf0, 0x4b, 0xee, 0x35, 0xcc, 0x78, 0xc0, 0x79, 0x11,
- 0x4b, 0x7e, 0x1d, 0xf3, 0x68, 0x50, 0x3b, 0xd5, 0x08, 0x01, 0x46, 0x2f,
- 0xeb, 0xfb, 0x56, 0x6e, 0xa1, 0x64, 0xb8, 0x86, 0xec, 0x80, 0x0f, 0x9c,
- 0xfc, 0xe7, 0x2f, 0xa7, 0x79, 0x3f, 0xd0, 0xcb, 0x34, 0xbf, 0x4e, 0xef,
- 0x91, 0x60, 0x77, 0x84, 0x2c, 0x2b, 0x5c, 0x1d, 0xf1, 0xa7, 0xd7, 0x81,
- 0xe4, 0x29, 0x70, 0x97, 0xf7, 0x7a, 0xde, 0x07, 0x90, 0xa5, 0xf8, 0x13,
- 0xf9, 0x1e, 0x2e, 0x00, 0xe3, 0xdd, 0x4c, 0xde, 0xba, 0xa4, 0xf5, 0x36,
- 0xb2, 0xfd, 0xef, 0x0c, 0xeb, 0xfb, 0x56, 0xea, 0x68, 0xff, 0x9f, 0xf0,
- 0x7d, 0x39, 0x2a, 0xa5, 0xab, 0xfd, 0xf1, 0xff, 0x3f, 0xe0, 0xfa, 0x31,
- 0x4d, 0x69, 0xf1, 0xf9, 0xf0, 0xfa, 0x5b, 0xf1, 0x2c, 0xb1, 0x80, 0xf1,
- 0x32, 0x4b, 0x7d, 0x9e, 0x30, 0x1e, 0x26, 0x49, 0x6d, 0x8c, 0xac, 0x8a,
- 0x92, 0xff, 0xaf, 0xe7, 0x8b, 0xf9, 0xe3, 0xec, 0x3d, 0x6d, 0xb6, 0xd8,
- 0x1b, 0xd6, 0xc4, 0x23, 0x79, 0x71, 0xf0, 0x3a, 0x37, 0x97, 0x1f, 0xff,
- 0x1f, 0x80, 0x21, 0x6d, 0xb6, 0xd8, 0x1b, 0xd6, 0xc0, 0x74, 0x65, 0x97,
- 0xf0, 0x3a, 0x32, 0xcb, 0xff, 0xf8, 0xfc, 0x01, 0x0b, 0x6d, 0xb6, 0xc0,
- 0xde, 0xb6, 0x03, 0xa3, 0x2c, 0xbf, 0x81, 0xd1, 0x96, 0x5f, 0xff, 0xc7,
- 0xe0, 0x08, 0x5b, 0x6d, 0xb6, 0x06, 0xf5, 0xb0, 0x1d, 0x19, 0x65, 0xfc,
- 0x0e, 0x8c, 0xb2, 0xff, 0xfe, 0x3f, 0x00, 0x42, 0xdb, 0x6d, 0xb0, 0x37,
- 0xad, 0x80, 0xe8, 0xcb, 0x2f, 0xe0, 0x74, 0x65, 0x97, 0xff, 0xf1, 0xf8,
- 0x02, 0x16, 0xdb, 0x6d, 0x81, 0xbd, 0x6c, 0x07, 0x46, 0x59, 0x7f, 0x03,
- 0xa3, 0x2c, 0xbf, 0xff, 0x8f, 0xc0, 0x10, 0xb6, 0xdb, 0x6c, 0x0d, 0xeb,
- 0x60, 0x3a, 0x32, 0xcb, 0xf8, 0x1d, 0x19, 0x65, 0xff, 0xfc, 0x7e, 0x00,
- 0x85, 0xb6, 0xdb, 0x60, 0x6f, 0x5b, 0x01, 0xd1, 0x96, 0x5f, 0xc0, 0xe8,
- 0xcb, 0x2f, 0xff, 0xe3, 0xf0, 0x04, 0x2d, 0xb6, 0xdb, 0x03, 0x7a, 0xd8,
- 0x0e, 0x8c, 0xb2, 0xfe, 0x07, 0x46, 0x59, 0x7f, 0xff, 0x1f, 0x40, 0x03,
- 0xdd, 0xf9, 0xcd, 0xfb, 0xfe, 0x30, 0x1d, 0x19, 0x65, 0xfc, 0x0e, 0x8c,
- 0xb2, 0xc0, 0x42, 0xec, 0xaf, 0x31, 0xdf, 0xfc, 0x0e, 0x89, 0xee, 0x70,
- 0x86, 0x55, 0xdc, 0xa0, 0x3c, 0xce, 0x7e, 0x07, 0x89, 0xae, 0x7f, 0xff,
- 0x03, 0xc4, 0xd7, 0x3e, 0x04, 0xc6, 0x78, 0x6f, 0x87, 0xc4, 0xfe, 0x15,
- 0xe3, 0xfe, 0x52, 0xcf, 0x97, 0x01, 0x21, 0x83, 0xec, 0xe9, 0xf0, 0xfa,
- 0xfe, 0x08, 0x0b, 0xb4, 0xf7, 0x27, 0xfc, 0x7f, 0xff, 0xfa, 0xc1, 0x0a,
- 0xc0, 0x24, 0x54, 0x1f, 0x20, 0xb3, 0x4f, 0x72, 0x7f, 0xc7, 0xc3, 0xfe,
- 0x07, 0x0a, 0xff, 0x01, 0x31, 0x9b, 0x86, 0xc7, 0xdb, 0x29, 0x6c, 0x93,
- 0xf7, 0xf1, 0xfc, 0x33, 0xc1, 0x01, 0xb0, 0x13, 0x19, 0xb8, 0x61, 0xf6,
- 0xca, 0x5b, 0xe1, 0xfa, 0xfc, 0x10, 0x70, 0x09, 0x15, 0x07, 0xc8, 0x2c,
- 0xd3, 0xdc, 0x9f, 0xf0, 0x3e, 0xc0, 0x03, 0x1e, 0xbf, 0xea, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xe0, 0x07, 0x5a, 0xd4, 0x0d, 0x46, 0xdf, 0xfd, 0x7c,
- 0x21, 0x52, 0x6d, 0x3d, 0xc4, 0xff, 0x8f, 0xc0, 0x4c, 0x67, 0xc3, 0x0f,
- 0xbc, 0xa5, 0xbf, 0xf9, 0xfe, 0x08, 0x0b, 0xd2, 0xa9, 0x5d, 0xf7, 0xdf,
- 0x7d, 0xf7, 0xdf, 0x1d, 0x30, 0x02, 0x14, 0xd3, 0x4d, 0x01, 0xe6, 0xf3,
- 0xe0, 0x74, 0x45, 0xb9, 0xfe, 0x07, 0x44, 0x5b, 0x9f, 0xc2, 0xdf, 0xd2,
- 0xb6, 0x8b, 0x1c, 0x07, 0x89, 0x99, 0x33, 0x92, 0x0e, 0xac, 0x3d, 0xd9,
- 0x93, 0xc1, 0xc0, 0x78, 0x99, 0x93, 0x38, 0x7e, 0x25, 0x0f, 0x74, 0x10,
- 0x63, 0xec, 0xa6, 0x88, 0x2b, 0x64, 0xa0, 0x9b, 0x91, 0x76, 0x4e, 0x3f,
- 0xae, 0x3f, 0x4f, 0x82, 0xda, 0xed, 0x8b, 0x99, 0x11, 0x8d, 0x55, 0xcc,
- 0x18, 0x7a, 0x6f, 0xac, 0x85, 0xe0, 0x0b, 0x5f, 0x4e, 0x09, 0x66, 0x7d,
- 0x67, 0x76, 0xe6, 0xfd, 0x01, 0xde, 0xac, 0x21, 0x53, 0x00, 0x8b, 0xf2,
- 0x4d, 0x21, 0x6a, 0x75, 0xb6, 0x5d, 0x6c, 0xf5, 0x29, 0xd6, 0xcc, 0x5c,
- 0x01, 0x6b, 0xcc, 0x36, 0x3b, 0x08, 0xcd, 0xb5, 0x1e, 0x33, 0xe6, 0xe5,
- 0x57, 0x5f, 0x01, 0xbd, 0xfa, 0xb6, 0xd1, 0x3a, 0x41, 0x19, 0x5e, 0xde,
- 0x1b, 0x93, 0xfe, 0xe9, 0x00, 0x01, 0x0a, 0x16, 0x0c, 0xfe, 0xde, 0x62,
- 0x6b, 0x3a, 0xb1, 0xed, 0xfc, 0x85, 0xe0, 0x0b, 0x55, 0x06, 0x01, 0xa6,
- 0x19, 0x81, 0xa9, 0xf4, 0x6d, 0xd0, 0x41, 0x90, 0x96, 0xca, 0x76, 0xbb,
- 0x51, 0xed, 0x73, 0x17, 0x26, 0x69, 0x41, 0x06, 0xe4, 0x26, 0x91, 0x3c,
- 0x3b, 0xf4, 0x97, 0xbe, 0xd9, 0x2e, 0x7e, 0x64, 0x46, 0x35, 0x5e, 0x4c,
- 0x3d, 0x35, 0xf9, 0x9d, 0xbd, 0x4e, 0x7b, 0x2e, 0x01, 0x17, 0x41, 0xf2,
- 0x57, 0x36, 0xdc, 0xed, 0x25, 0x8e, 0x97, 0xe4, 0x69, 0x35, 0xc2, 0x0e,
- 0xdc, 0xc6, 0xa2, 0x0b, 0x15, 0x95, 0xd4, 0xcd, 0xfd, 0xc9, 0xff, 0x7f,
- 0xf6, 0x70, 0x14, 0x60, 0xa5, 0x55, 0x90, 0xca, 0xc8, 0xa3, 0xda, 0xea,
- 0x08, 0x37, 0x20, 0x99, 0xa7, 0xa6, 0x91, 0x17, 0x1f, 0x87, 0x7e, 0x96,
- 0xe6, 0x02, 0x22, 0x31, 0xaa, 0xc2, 0x9b, 0xa6, 0xe5, 0xbf, 0x44, 0xd3,
- 0xa3, 0x2b, 0xb6, 0x97, 0x5c, 0x00, 0x6d, 0x0d, 0xcd, 0xbd, 0x52, 0x94,
- 0xcf, 0x7d, 0xc6, 0x53, 0x19, 0x93, 0x00, 0xa4, 0x44, 0x78, 0x02, 0xd6,
- 0x83, 0x57, 0xe0, 0x23, 0x36, 0xe8, 0xf7, 0xff, 0x64, 0xd6, 0x74, 0x4a,
- 0xc6, 0x31, 0xe3, 0xfa, 0x50, 0x10, 0x5a, 0x6f, 0x53, 0xc1, 0x99, 0xf3,
- 0x34, 0x55, 0x75, 0xf2, 0x1b, 0x9e, 0xe7, 0x82, 0x2f, 0x00, 0x5a, 0xb2,
- 0xe8, 0x9b, 0x3c, 0x59, 0x9c, 0x92, 0xa3, 0x6a, 0x63, 0xe2, 0x27, 0xa4,
- 0xd5, 0x88, 0x24, 0x1e, 0xfd, 0x54, 0x11, 0xb9, 0x0b, 0x69, 0xf3, 0x1e,
- 0x00, 0xb5, 0x4b, 0xf5, 0x83, 0xdd, 0xdd, 0xac, 0x21, 0x11, 0xd3, 0x53,
- 0x63, 0x29, 0x4b, 0x52, 0x1f, 0x6b, 0xfe, 0x13, 0x28, 0x2c, 0xd4, 0x9c,
- 0x75, 0xed, 0xc4, 0x39, 0xf7, 0x51, 0x35, 0xd7, 0x5d, 0x75, 0xd7, 0x5c,
- 0x74, 0xc0, 0x08, 0x53, 0x4d, 0x34, 0x07, 0x9b, 0xcf, 0x81, 0xd1, 0x16,
- 0xe7, 0xf8, 0x1d, 0x11, 0x6e, 0x71, 0xd4, 0x08, 0xd9, 0x36, 0x60, 0xe2,
- 0x29, 0xe1, 0xea, 0xf1, 0x08, 0xde, 0xe7, 0xfc, 0x0e, 0x8d, 0xee, 0x7e,
- 0x00, 0xdb, 0xfe, 0x1c, 0x69, 0xe0, 0x02, 0x5e, 0x7e, 0x47, 0x06, 0x1e,
- 0xd7, 0x01, 0xd2, 0x1e, 0x96, 0xf8, 0x08, 0xe9, 0xe9, 0xf8, 0xdd, 0x92,
- 0x33, 0x5f, 0x3d, 0xd0, 0xb8, 0xdf, 0x0e, 0xfd, 0x1c, 0x84, 0x6e, 0xe6,
- 0x89, 0x00, 0xed, 0x25, 0xa6, 0x29, 0xf4, 0xce, 0xa1, 0xea, 0x99, 0x3f,
- 0x7f, 0x17, 0xd4, 0xcf, 0xfc, 0x07, 0x48, 0x69, 0x2c, 0xba, 0xec, 0x01,
- 0x7f, 0xb2, 0xe4, 0x5c, 0x0a, 0xff, 0xc4, 0xe9, 0x06, 0x6a, 0x62, 0x05,
- 0x74, 0xfe, 0x70, 0xd5, 0x1b, 0x23, 0xe3, 0x3c, 0x04, 0x79, 0xf3, 0xf2,
- 0x2f, 0xa9, 0x84, 0x1c, 0x85, 0x51, 0x23, 0xad, 0x1d, 0x6c, 0xa5, 0xa6,
- 0x4f, 0xc8, 0x03, 0x9e, 0x4e, 0x60, 0x1c, 0xea, 0x76, 0x98, 0xae, 0x69,
- 0x9c, 0x7c, 0xd0, 0xb2, 0x4e, 0x33, 0xc0, 0x74, 0x86, 0x92, 0xde, 0x05,
- 0x7f, 0xe1, 0x8b, 0x90, 0x2b, 0xa1, 0x9b, 0x24, 0x7a, 0x5a, 0x93, 0x90,
- 0xaa, 0x78, 0x75, 0xf4, 0xc3, 0xd4, 0x18, 0xb3, 0x4e, 0xff, 0x80, 0x8f,
- 0x3e, 0x7e, 0x71, 0x7d, 0x4c, 0xf4, 0x8e, 0xb6, 0x7e, 0x40, 0x1c, 0xf7,
- 0x69, 0x8a, 0x76, 0x99, 0x27, 0x30, 0x0e, 0x7d, 0x5c, 0xd3, 0x18, 0xbb,
- 0x8b, 0x0d, 0x32, 0xc4, 0xef, 0xdf, 0xbe, 0xbf, 0xff, 0xf2, 0x28, 0x21,
- 0x34, 0x01, 0x91, 0x8a, 0x33, 0x21, 0xf0, 0x01, 0x23, 0xc0, 0x7e, 0xf2,
- 0x34, 0x20, 0x3f, 0xde, 0xf2, 0xfc, 0x4a, 0xe0, 0x08, 0x65, 0x60, 0xf8,
- 0x87, 0xbf, 0x20, 0x0a, 0x2a, 0x40, 0xf9, 0x00, 0x71, 0x7d, 0x2f, 0x07,
- 0xb4, 0x7f, 0x80, 0xff, 0x28, 0x1f, 0xee, 0x3b, 0xbf, 0xff, 0x0f, 0x31,
- 0xdc, 0xa8, 0xcc, 0x07, 0xf4, 0x86, 0x56, 0xbb, 0xbf, 0xad, 0xff, 0x15,
- 0xd4, 0x7f, 0xf8, 0x49, 0x40, 0x08, 0x1d, 0x57, 0x6b, 0xf7, 0x5f, 0x16,
- 0xf3, 0x51, 0xd0, 0x07, 0x6d, 0xe9, 0x60, 0x3f, 0x37, 0xf0, 0xaa, 0xff,
- 0xa9, 0xce, 0x09, 0xff, 0x01, 0x2b, 0xd4, 0x7e, 0x73, 0x05, 0xbf, 0x57,
- 0xa7, 0x5b, 0x80, 0x25, 0xf7, 0x41, 0xff, 0x7b, 0xd6, 0x97, 0xe8, 0x0f,
- 0xf1, 0x7e, 0xc2, 0x03, 0xff, 0xcf, 0xf0, 0x40, 0x5f, 0x82, 0x1f, 0x81,
- 0xfb, 0xce, 0xa5, 0x8e, 0x98, 0x01, 0x0a, 0x69, 0xa6, 0x80, 0xf3, 0x79,
- 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x03, 0xa2, 0x2d, 0xcf, 0xfa, 0x4f, 0xfe,
- 0x25, 0x0a, 0x38, 0x0f, 0x13, 0x22, 0x65, 0xc0, 0x58, 0x56, 0x4b, 0xaa,
- 0xe7, 0x8e, 0x03, 0xc4, 0xc8, 0x99, 0xc2, 0x04, 0x88, 0x27, 0xff, 0x09,
- 0x42, 0x56, 0x9c, 0x6d, 0x4c, 0x71, 0xc9, 0x92, 0x7f, 0xa3, 0xdc, 0x8a,
- 0x5b, 0xee, 0xd3, 0x06, 0xbe, 0xed, 0x01, 0xb5, 0x8c, 0xad, 0xf9, 0x6b,
- 0x8a, 0x4c, 0x3f, 0xe1, 0x29, 0xda, 0xb6, 0xef, 0xb4, 0x8d, 0x37, 0x1e,
- 0x8e, 0xea, 0x7f, 0xc8, 0x1c, 0xd8, 0x6d, 0x2e, 0xa8, 0x4a, 0xce, 0x34,
- 0x46, 0xf1, 0xee, 0x45, 0x2d, 0x64, 0x22, 0x46, 0x57, 0xff, 0x84, 0xad,
- 0x00, 0xbf, 0x56, 0xd9, 0x73, 0x26, 0x69, 0xb8, 0xd7, 0xdd, 0xa0, 0x0e,
- 0xd5, 0xb7, 0x7e, 0x13, 0xa4, 0xff, 0x93, 0x7b, 0xa9, 0x3f, 0xe3, 0x41,
- 0x3c, 0x0b, 0xfe, 0x12, 0xb4, 0x8d, 0x7c, 0x78, 0x98, 0x6e, 0x4b, 0xb0,
- 0x3f, 0x42, 0x6d, 0x69, 0xc6, 0xd4, 0xc7, 0x1c, 0x99, 0x27, 0xfa, 0x3d,
- 0x64, 0x52, 0xdf, 0x44, 0x15, 0x66, 0x3f, 0xfc, 0x25, 0x5c, 0xa4, 0xc2,
- 0x5f, 0x58, 0xeb, 0xb9, 0x4a, 0x53, 0xda, 0x3b, 0x56, 0xdd, 0xfa, 0x06,
- 0x3c, 0xa5, 0x45, 0x97, 0xe4, 0x89, 0xc9, 0xdf, 0x7d, 0xf7, 0xf2, 0xb4,
- 0xb2, 0x26, 0xfc, 0x26, 0x22, 0x38, 0x07, 0xf0, 0x83, 0xfc, 0x07, 0xf8,
- 0xe0, 0x05, 0x1e, 0xa7, 0x9f, 0x24, 0x1d, 0xf5, 0xfc, 0xf5, 0x12, 0x2e,
- 0xfb, 0xe4, 0xf3, 0x3a, 0x7f, 0x9d, 0x30, 0x4e, 0x22, 0x81, 0x86, 0x50,
- 0x7e, 0x18, 0x97, 0x78, 0x1f, 0xe3, 0x80, 0x29, 0xee, 0x59, 0xf2, 0x5f,
- 0x71, 0x7f, 0x3d, 0x44, 0xc7, 0x4c, 0x00, 0x85, 0x34, 0xd3, 0x40, 0x79,
- 0xbc, 0xf8, 0x1d, 0x11, 0x6e, 0x7f, 0x81, 0xd1, 0x16, 0xe7, 0x1d, 0x87,
- 0xad, 0xbf, 0x66, 0x07, 0x9b, 0xc2, 0x11, 0xbd, 0xce, 0x7e, 0x07, 0x46,
- 0xf7, 0x39, 0xfb, 0x9e, 0xfb, 0xef, 0xbe, 0xfa, 0xeb, 0xae, 0xbf, 0xed,
- 0x6f, 0x84, 0xa1, 0x41, 0x10, 0x0a, 0xb4, 0xe0, 0x3e, 0xa0, 0x44, 0xe5,
- 0x36, 0xac, 0x90, 0x11, 0x7d, 0x77, 0x1d, 0xff, 0xf2, 0x44, 0xf2, 0x4e,
- 0x3e, 0x40, 0x00, 0x4d, 0xa6, 0x92, 0x6d, 0x24, 0xd3, 0x7f, 0xfc, 0x1a,
- 0x4e, 0xe7, 0xdc, 0xb5, 0xff, 0x4a, 0x7c, 0x21, 0x0a, 0x08, 0xc0, 0x2f,
- 0xa5, 0x01, 0xf5, 0x02, 0x25, 0x96, 0x9a, 0xb2, 0x40, 0x30, 0x3f, 0x57,
- 0xc3, 0xbe, 0xa2, 0x7c, 0x74, 0xc0, 0x08, 0x53, 0x4d, 0x34, 0x07, 0x9b,
- 0xcf, 0x81, 0xd1, 0x16, 0xe7, 0xf8, 0x1d, 0x11, 0x6e, 0x71, 0xd8, 0x02,
- 0x16, 0xdb, 0x6d, 0x81, 0xe6, 0xf0, 0x0e, 0x8c, 0xb7, 0x3f, 0xe0, 0x74,
- 0x65, 0xb9, 0xff, 0x53, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0xfc,
- 0x3f, 0xa5, 0x20, 0x84, 0xd0, 0x02, 0x06, 0x5f, 0x72, 0xfc, 0xf4, 0xe0,
- 0xed, 0x10, 0x16, 0xbc, 0xff, 0xff, 0xc2, 0x8a, 0x01, 0xf3, 0x21, 0xfc,
- 0xfc, 0x11, 0x36, 0xdc, 0xd1, 0x18, 0x1c, 0x30, 0x49, 0xdb, 0x68, 0x43,
- 0x7f, 0x26, 0xdb, 0x25, 0x3a, 0xaf, 0xf6, 0x7f, 0x0f, 0xa3, 0x66, 0x45,
- 0x1c, 0x54, 0x76, 0x95, 0xea, 0xf9, 0x89, 0xd0, 0xa4, 0x72, 0x76, 0x13,
- 0x20, 0xe0, 0x1e, 0x0b, 0x16, 0xc0, 0x81, 0x9d, 0x35, 0xac, 0xaa, 0x3d,
- 0xdc, 0x96, 0x18, 0xc7, 0x03, 0x14, 0xe5, 0x88, 0xad, 0xb7, 0x37, 0x01,
- 0xfa, 0x08, 0x24, 0xe5, 0x38, 0x4a, 0xd0, 0x18, 0xa7, 0x2c, 0x43, 0xde,
- 0x1e, 0xae, 0x40, 0xf6, 0xd3, 0x09, 0x7a, 0x0d, 0x86, 0x4f, 0xf5, 0x8f,
- 0x26, 0x5c, 0x89, 0xe6, 0xe9, 0xc2, 0x9e, 0x92, 0x69, 0xed, 0xc1, 0xa1,
- 0x74, 0x1c, 0x8e, 0xf8, 0x76, 0xc6, 0x38, 0xec, 0x46, 0x28, 0x43, 0x4c,
- 0xba, 0x55, 0xb3, 0xff, 0xff, 0xda, 0x08, 0x5c, 0x00, 0x8a, 0xc8, 0xfa,
- 0x12, 0x8e, 0x8d, 0xbb, 0x72, 0x03, 0xea, 0xa2, 0x9e, 0x3a, 0x60, 0x04,
- 0x29, 0xa6, 0x9a, 0x03, 0xcd, 0xe7, 0xc0, 0xe8, 0x8b, 0x73, 0xfc, 0x0e,
- 0x88, 0xb7, 0x38, 0xec, 0x01, 0x0b, 0x6d, 0xb6, 0xc0, 0xf3, 0x78, 0x07,
- 0x46, 0x5b, 0x9f, 0xf0, 0x3a, 0x32, 0xdc, 0xff, 0xa9, 0xeb, 0xae, 0xba,
- 0xeb, 0xae, 0xba, 0xf0, 0x00, 0x00, 0x01, 0x25, 0x01, 0x2e, 0xe0, 0x80,
- 0x83, 0xbf, 0xff, 0xf0, 0xf4, 0x50, 0x00, 0x2f, 0xe3, 0xe6, 0x00, 0x0c,
- 0xad, 0xdd, 0xdd, 0x7f, 0xff, 0xfe, 0x00, 0xed, 0xad, 0x03, 0x35, 0x37,
- 0xff, 0xfa, 0x7d, 0x22, 0x9f, 0x68, 0xfe, 0x04, 0x6f, 0x23, 0xf5, 0x2f,
- 0x81, 0x22, 0xee, 0x67, 0xc7, 0x5a, 0xfa, 0x3e, 0x7d, 0x9f, 0xe0, 0x13,
- 0x35, 0x70, 0x7f, 0xfd, 0xdf, 0xce, 0x23, 0xbf, 0xff, 0x84, 0x9f, 0x17,
- 0x54, 0x5c, 0x47, 0x17, 0xff, 0xe1, 0xe8, 0x1a, 0xb7, 0x2d, 0xfc, 0x7d,
- 0x00, 0x13, 0xf5, 0x33, 0x0d, 0x4a, 0xee, 0xf9, 0x09, 0x0b, 0x06, 0x2d,
- 0xc0, 0x28, 0x7b, 0x87, 0x85, 0x32, 0xb9, 0x79, 0x8f, 0x85, 0x5f, 0xfe,
- 0x10, 0x94, 0x57, 0x02, 0x2e, 0xe9, 0xe7, 0xeb, 0xbf, 0x3f, 0xff, 0xff,
- 0x62, 0xf6, 0x96, 0x30, 0x90, 0x05, 0x16, 0xa4, 0x08, 0x28, 0x15, 0x30,
- 0x22, 0x78, 0x75, 0x2f, 0xe0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x00, 0x0d,
- 0xdf, 0x47, 0xcf, 0x1e, 0x0f, 0xff, 0xff, 0xc1, 0x00, 0x97, 0xe3, 0xe6,
- 0x00, 0x42, 0x9a, 0x69, 0xc0, 0x79, 0xbc, 0xf8, 0x1d, 0x11, 0x6e, 0x7f,
- 0x81, 0xd1, 0x16, 0xe7, 0xff, 0xff, 0xc2, 0x71, 0x40, 0x01, 0xc0, 0x78,
- 0x88, 0x89, 0x99, 0xe3, 0x80, 0xf1, 0x11, 0x13, 0x3f, 0xff, 0xfc, 0x26,
- 0x77, 0xef, 0xc9, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0xd3, 0x39,
- 0x9f, 0xcf, 0x8a, 0x11, 0x94, 0xd0, 0x1f, 0x87, 0xff, 0x02, 0x26, 0xd8,
- 0x1f, 0xbd, 0x9d, 0x03, 0xf0, 0xd2, 0x0f, 0xc3, 0xf8, 0xfd, 0x42, 0x7a,
- 0xe1, 0x58, 0x4d, 0xee, 0x03, 0xfc, 0xa7, 0xf8, 0x02, 0x35, 0xea, 0xcf,
- 0x72, 0xe9, 0x39, 0x79, 0x0d, 0xc4, 0xd7, 0xff, 0xf7, 0x22, 0x2c, 0x60,
- 0x8e, 0x00, 0x67, 0xdf, 0xd6, 0x76, 0xc0, 0x0c, 0xfb, 0xfa, 0xce, 0xc2,
- 0x7f, 0xd1, 0xef, 0xd0, 0x08, 0xed, 0x26, 0x07, 0xf8, 0x93, 0xf6, 0x0f,
- 0xc2, 0x1e, 0x00, 0xfb, 0x31, 0x11, 0x72, 0xff, 0x0f, 0x30, 0x24, 0x7a,
- 0xde, 0xf6, 0xfb, 0x50, 0x1f, 0xe3, 0xa7, 0xf8, 0x3f, 0x09, 0xee, 0x78,
- 0x42, 0x60, 0x04, 0x29, 0xa6, 0x9a, 0x03, 0xcd, 0xe7, 0xc0, 0xe8, 0x8b,
- 0x73, 0xfc, 0x0e, 0x88, 0xb7, 0x3e, 0xb0, 0xbd, 0x9b, 0x1f, 0xb1, 0x10,
- 0xcd, 0xbb, 0xee, 0x3a, 0xe4, 0xe9, 0xe5, 0x81, 0x8c, 0x74, 0x43, 0x15,
- 0xf9, 0xc1, 0x36, 0x0c, 0x55, 0xe6, 0x87, 0x55, 0xfe, 0xfa, 0xad, 0xcf,
- 0x46, 0xee, 0x1e, 0xc6, 0x3c, 0xad, 0x26, 0x08, 0x00, 0x74, 0xab, 0xd6,
- 0x51, 0x3d, 0x9f, 0xea, 0x17, 0xd9, 0xb1, 0xfb, 0x8c, 0xbf, 0x5f, 0xba,
- 0xf2, 0x3b, 0xc9, 0xeb, 0xc1, 0x0f, 0x2a, 0x01, 0x8a, 0xfd, 0xa1, 0x36,
- 0x0c, 0x5b, 0xcc, 0x43, 0xa8, 0xff, 0xae, 0x91, 0xb5, 0x9e, 0xc4, 0xe4,
- 0x94, 0x3d, 0xf9, 0xfa, 0xa9, 0x02, 0x00, 0x1d, 0x2a, 0xf5, 0x9b, 0x28,
- 0xff, 0xea, 0x17, 0xd9, 0xb1, 0xfb, 0x8c, 0xbf, 0x5f, 0xba, 0xf2, 0x3b,
- 0xc9, 0xeb, 0xc1, 0x0f, 0x2a, 0x01, 0x8a, 0xfd, 0xa1, 0x36, 0x0c, 0x5b,
- 0xcc, 0x43, 0xa8, 0xff, 0x57, 0x48, 0xda, 0xcf, 0x60, 0x4e, 0x49, 0x43,
- 0xdf, 0x9f, 0xaa, 0x90, 0x20, 0x01, 0xd2, 0xaf, 0x59, 0xd1, 0x7f, 0xd4,
- 0x2e, 0x3b, 0x62, 0x54, 0xdc, 0x65, 0xfa, 0xfd, 0xd7, 0x91, 0xde, 0x4f,
- 0x5e, 0x08, 0x79, 0x50, 0x0c, 0xd7, 0xb6, 0x82, 0x0c, 0x4b, 0x31, 0x0b,
- 0xd6, 0x8c, 0xec, 0xc0, 0x13, 0x92, 0x50, 0xf7, 0xe7, 0xea, 0xa4, 0x04,
- 0x23, 0x4e, 0x1f, 0x00, 0x3d, 0xfd, 0x0b, 0xbb, 0xd5, 0xa9, 0xbf, 0xe0,
- 0x7b, 0xaf, 0xcc, 0xa9, 0xbb, 0x59, 0xb6, 0x87, 0xd1, 0x9e, 0x80, 0xfa,
- 0x13, 0x51, 0xb4, 0x96, 0xb0, 0xbc, 0x99, 0x19, 0xaf, 0x79, 0x04, 0x11,
- 0xbe, 0x99, 0x89, 0x3f, 0x5a, 0x28, 0xe8, 0xf6, 0xfc, 0x04, 0x76, 0xad,
- 0x6f, 0xf8, 0x02, 0x37, 0x84, 0x29, 0xde, 0x8e, 0xa9, 0xbf, 0x7c, 0xc4,
- 0x1d, 0x7e, 0x65, 0x4d, 0xda, 0xcd, 0xb6, 0x3e, 0x8c, 0xf4, 0x07, 0xd0,
- 0xa5, 0x45, 0x47, 0xbf, 0x73, 0x26, 0x46, 0x6b, 0xde, 0x41, 0x04, 0x6f,
- 0xa6, 0x62, 0x4f, 0xd6, 0x8a, 0x3a, 0x3a, 0xf8, 0x11, 0xda, 0x87, 0xcf,
- 0xe0, 0x23, 0x78, 0x42, 0x9d, 0xea, 0xd4, 0xdf, 0xf9, 0x88, 0x38, 0xfc,
- 0xda, 0x9b, 0xb5, 0x9b, 0x6c, 0x7d, 0x19, 0xe8, 0x0f, 0xa1, 0x4a, 0x8a,
- 0x8f, 0x7e, 0xe6, 0x4c, 0x8c, 0xd7, 0xbc, 0x82, 0x08, 0xc9, 0xb8, 0xcc,
- 0x21, 0x35, 0x6d, 0x14, 0x74, 0x55, 0xf0, 0x23, 0xb5, 0x0f, 0x9f, 0xc0,
- 0x20, 0x1f, 0x62, 0x1e, 0xf4, 0x7a, 0x9b, 0xf0, 0xcd, 0xb6, 0xb8, 0x1b,
- 0x04, 0x79, 0xf8, 0xee, 0xd6, 0x6d, 0xa1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16,
- 0xaa, 0xff, 0xcf, 0x44, 0x03, 0x35, 0xed, 0xa0, 0x41, 0x19, 0x37, 0x19,
- 0x88, 0x4d, 0x5b, 0x46, 0x7a, 0x25, 0x09, 0x90, 0x71, 0x51, 0xa6, 0x7c,
- 0x7c, 0x09, 0xca, 0xb1, 0xef, 0xdd, 0x36, 0xda, 0xe2, 0x6c, 0x0a, 0x3c,
- 0xfc, 0x77, 0x6b, 0x36, 0xd8, 0xfa, 0x7e, 0x87, 0x76, 0x0f, 0x55, 0x6f,
- 0xba, 0x20, 0x19, 0xaf, 0x6d, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09, 0xb9,
- 0xb4, 0x67, 0xa2, 0x62, 0xe0, 0xe2, 0xa3, 0x4c, 0xfb, 0xe0, 0x4e, 0x55,
- 0x8f, 0x7e, 0xe9, 0xb6, 0xd7, 0x03, 0x60, 0x8f, 0x3f, 0x1d, 0xda, 0xcd,
- 0xb4, 0x3e, 0xaf, 0x83, 0xbb, 0x22, 0xd5, 0x5f, 0xf9, 0xe8, 0x80, 0x66,
- 0xbd, 0xb4, 0x08, 0x23, 0x26, 0xe3, 0x31, 0x09, 0xab, 0x68, 0xcf, 0x44,
- 0xa1, 0x32, 0x0e, 0x2a, 0x34, 0xcf, 0x8f, 0x81, 0x39, 0x56, 0x3d, 0xfb,
- 0xa6, 0xdb, 0x5c, 0x52, 0x82, 0xe1, 0xfe, 0x57, 0x31, 0x35, 0x9e, 0x6f,
- 0x34, 0x6f, 0x5b, 0xaa, 0x13, 0xd5, 0xd1, 0x55, 0xd5, 0x0a, 0xe0, 0xc6,
- 0xde, 0x64, 0x10, 0x9a, 0xb0, 0xc8, 0xb9, 0xb6, 0x10, 0x41, 0x0b, 0x15,
- 0x34, 0x5f, 0xaf, 0xfc, 0x26, 0x7d, 0xac, 0x06, 0x8a, 0xa9, 0xae, 0xd9,
- 0xd3, 0x09, 0x00, 0x79, 0x5c, 0xc4, 0xd6, 0x79, 0xbc, 0xd3, 0xbd, 0xbf,
- 0xbc, 0xb2, 0xc7, 0xc0, 0x21, 0xb7, 0xe6, 0x41, 0x37, 0x30, 0xc8, 0xb9,
- 0xb6, 0x08, 0x3c, 0x16, 0xac, 0x80, 0x69, 0x5b, 0xda, 0x8f, 0xd7, 0xd5,
- 0x9f, 0x84, 0xcf, 0xb5, 0x80, 0xd1, 0x55, 0x6b, 0xb4, 0x4e, 0x95, 0x0b,
- 0x00, 0x79, 0x5c, 0xc4, 0xd6, 0x79, 0xbc, 0xd5, 0x1b, 0xfd, 0xf1, 0xad,
- 0x6f, 0x80, 0x63, 0x6f, 0x64, 0x10, 0x9a, 0xb0, 0xc8, 0xb9, 0xb6, 0x10,
- 0x78, 0x2d, 0xb8, 0x17, 0x25, 0xef, 0xc5, 0xd5, 0x33, 0xbf, 0x82, 0x67,
- 0xb6, 0x80, 0x68, 0xaa, 0xb5, 0xda, 0x27, 0x12, 0x40, 0x90, 0x06, 0xdd,
- 0xcc, 0x4d, 0x67, 0x9b, 0xcc, 0x9c, 0x6f, 0xf7, 0x90, 0x71, 0x54, 0x99,
- 0x0f, 0xb2, 0x19, 0xeb, 0xb7, 0xb7, 0x74, 0x75, 0x80, 0x69, 0x5b, 0xda,
- 0x9f, 0xfe, 0x02, 0x11, 0x54, 0xd6, 0xb3, 0xfc, 0x71, 0xdb, 0xb8, 0x4f,
- 0x49, 0xba, 0xd4, 0xd8, 0xdd, 0x9b, 0x53, 0x6f, 0xea, 0x38, 0x7b, 0xd7,
- 0xc6, 0x24, 0xd3, 0x06, 0xa6, 0x93, 0x31, 0xc4, 0x2b, 0xc7, 0xbf, 0x7f,
- 0xf0, 0x10, 0x8a, 0xa6, 0xb5, 0x9f, 0xa8, 0x42, 0x3b, 0x77, 0x80, 0x85,
- 0x6a, 0x61, 0xc2, 0x80, 0x25, 0x41, 0x11, 0x15, 0xa3, 0xdf, 0xa6, 0xc6,
- 0x72, 0x03, 0x5e, 0x5c, 0xa7, 0x95, 0xbe, 0x06, 0x3d, 0x14, 0x7c, 0x71,
- 0x0a, 0xf1, 0xef, 0xdf, 0xf0, 0x10, 0x8a, 0xad, 0x6b, 0x24, 0x71, 0x47,
- 0x0e, 0x39, 0x77, 0x5d, 0x23, 0x28, 0x16, 0x1e, 0x63, 0x5a, 0xbf, 0x05,
- 0x31, 0x15, 0x1e, 0xfd, 0x6b, 0x76, 0x42, 0x4f, 0x61, 0x81, 0x76, 0xf0,
- 0x9b, 0x1a, 0xaf, 0x49, 0xf7, 0xd6, 0x38, 0x85, 0x78, 0xf7, 0xef, 0xf9,
- 0xf5, 0xf4, 0x0a, 0x08, 0x01, 0x77, 0x31, 0x6f, 0x38, 0x74, 0x6e, 0xa4,
- 0xc6, 0x52, 0xeb, 0xd1, 0x70, 0x27, 0x7f, 0x24, 0x3a, 0x18, 0x17, 0x67,
- 0x84, 0xd8, 0x38, 0xf5, 0x07, 0x26, 0x9f, 0x7d, 0x40, 0x42, 0x25, 0xb9,
- 0x6b, 0x40, 0x4a, 0x03, 0xe5, 0x5e, 0xb0, 0x18, 0xbe, 0x7d, 0x75, 0xa0,
- 0x51, 0x80, 0x0b, 0xb9, 0x8b, 0x79, 0xc3, 0xa3, 0x75, 0x58, 0xca, 0x5b,
- 0x7c, 0x29, 0x82, 0x38, 0x91, 0x69, 0x80, 0x60, 0x5d, 0x9e, 0x13, 0x62,
- 0xdd, 0x3e, 0xa4, 0xfb, 0xeb, 0x10, 0x89, 0x6c, 0x7b, 0xf9, 0x01, 0x28,
- 0xd2, 0xef, 0x21, 0xa5, 0x3c, 0x73, 0xf5, 0xf4, 0xd1, 0x80, 0x06, 0x36,
- 0x8c, 0x5b, 0xce, 0x1d, 0x1b, 0xaa, 0xc6, 0x52, 0xf5, 0x29, 0x80, 0x27,
- 0x7f, 0x24, 0x3a, 0x18, 0x7f, 0xe6, 0x12, 0xe7, 0x5b, 0xa7, 0xc4, 0xa0,
- 0xdb, 0x25, 0xb4, 0x42, 0x25, 0xe3, 0xdf, 0xc8, 0x12, 0x8d, 0x4b, 0xd3,
- 0xec, 0xa3, 0xa3, 0x3c, 0x03, 0xc0, 0x4b, 0x71, 0x4b, 0x59, 0x87, 0xdb,
- 0xa0, 0x80, 0x6e, 0xca, 0x69, 0x9f, 0x2f, 0x80, 0xe4, 0xb6, 0x98, 0x41,
- 0xde, 0xd6, 0x12, 0xaf, 0xa0, 0x29, 0xa8, 0x02, 0x10, 0x79, 0x98, 0xfb,
- 0xcd, 0x24, 0x93, 0x04, 0xcd, 0xc3, 0xd6, 0x03, 0x81, 0x56, 0x3a, 0x29,
- 0xbb, 0xdd, 0x7f, 0xfe, 0xdd, 0x04, 0x03, 0x6e, 0x0b, 0xf2, 0x5d, 0x78,
- 0x31, 0x40, 0x72, 0x5b, 0x4c, 0x31, 0x6d, 0xdd, 0x89, 0x57, 0xc0, 0x5b,
- 0x5a, 0x04, 0x2d, 0x76, 0xdf, 0xc1, 0x01, 0x33, 0x58, 0xf5, 0xd0, 0x70,
- 0x2e, 0xc7, 0x45, 0x53, 0xed, 0x7f, 0xfb, 0x74, 0x10, 0x0d, 0xe0, 0xbf,
- 0x25, 0xd7, 0xf4, 0x50, 0x1c, 0x96, 0xd3, 0x0c, 0x5b, 0x77, 0x62, 0x55,
- 0xf0, 0x16, 0xd6, 0x82, 0x16, 0xb7, 0x5e, 0xad, 0x30, 0x13, 0x35, 0xcb,
- 0xbc, 0x0e, 0x05, 0x58, 0xe8, 0xa6, 0x7f, 0x6b, 0xff, 0x6f, 0xfe, 0xf0,
- 0x5f, 0x92, 0xe8, 0x65, 0x9e, 0x8b, 0xb0, 0x31, 0xf8, 0x33, 0x12, 0xb2,
- 0xd2, 0xa0, 0x42, 0xd6, 0xeb, 0xd5, 0xa6, 0x11, 0xc5, 0xda, 0x09, 0x58,
- 0x3d, 0xeb, 0xa2, 0x69, 0x6b, 0x31, 0xf7, 0xf3, 0xdb, 0xff, 0xbe, 0x3d,
- 0x36, 0xd3, 0x24, 0x5c, 0x3d, 0x79, 0xfe, 0x03, 0x1f, 0xed, 0xcc, 0x25,
- 0x7a, 0xe3, 0xca, 0x09, 0x69, 0x9e, 0x08, 0xf6, 0x3d, 0xe4, 0x1d, 0x8b,
- 0xb5, 0xd1, 0x34, 0xb5, 0x98, 0xfb, 0xfb, 0x6d, 0xff, 0xdf, 0x1e, 0x9b,
- 0x69, 0x94, 0x12, 0xff, 0x1f, 0xe0, 0x31, 0xfe, 0xdc, 0xc2, 0x57, 0xae,
- 0x3c, 0x30, 0x4b, 0x4c, 0xf0, 0x23, 0xde, 0x3d, 0xe0, 0x4b, 0xc3, 0xd9,
- 0x74, 0x44, 0x8f, 0x4e, 0xfa, 0xfe, 0xdf, 0xf8, 0xf7, 0xc7, 0xa6, 0xda,
- 0x65, 0x04, 0xbf, 0xc7, 0xf8, 0xd2, 0xb4, 0xce, 0x30, 0x4b, 0x4c, 0xf0,
- 0x23, 0xde, 0x3d, 0xe4, 0x1a, 0x05, 0xd0, 0x18, 0x27, 0x58, 0xc3, 0xb2,
- 0x94, 0xf8, 0x7b, 0x2d, 0x90, 0x03, 0x87, 0x8f, 0x15, 0xc0, 0x26, 0x5a,
- 0xfa, 0xee, 0x70, 0x11, 0x1f, 0xc0, 0x57, 0xf8, 0xd2, 0x81, 0x95, 0xd5,
- 0x2b, 0x4c, 0xf0, 0x93, 0xed, 0x65, 0x40, 0xba, 0x01, 0x08, 0x34, 0x63,
- 0xdf, 0xab, 0x71, 0x76, 0xba, 0x7c, 0x3c, 0x78, 0xae, 0x00, 0xc4, 0xab,
- 0x5c, 0x25, 0xf8, 0x04, 0x47, 0xf0, 0x15, 0xfe, 0x0c, 0x63, 0x2b, 0xaa,
- 0x56, 0x99, 0xe1, 0x27, 0xda, 0xca, 0x81, 0x74, 0x02, 0x10, 0x19, 0x14,
- 0x7b, 0xf5, 0x6e, 0x2e, 0xd6, 0xc8, 0x01, 0xc3, 0xfc, 0x57, 0x00, 0x99,
- 0x6b, 0xeb, 0xb9, 0xc0, 0x44, 0x7f, 0x01, 0x5f, 0xe3, 0x4a, 0x06, 0x57,
- 0x54, 0xad, 0x33, 0xc2, 0x4f, 0xb5, 0x90, 0x77, 0xb4, 0x21, 0x06, 0x8c,
- 0x7b, 0xf5, 0x2c, 0xcc, 0x7b, 0xca, 0xda, 0x7f, 0x8e, 0xd7, 0x08, 0xaa,
- 0xeb, 0xaf, 0xdf, 0xd1, 0x48, 0x0b, 0xf9, 0x00, 0xaf, 0x03, 0x0b, 0xd3,
- 0x3a, 0x2f, 0xfd, 0x17, 0x06, 0x00, 0xba, 0x02, 0x0e, 0xf6, 0x92, 0xc5,
- 0xda, 0xac, 0xa2, 0x76, 0xdb, 0x6f, 0xf1, 0xda, 0x2a, 0x04, 0xb9, 0x5c,
- 0x1b, 0xd7, 0xef, 0xf1, 0x80, 0x98, 0x7b, 0x80, 0x57, 0x83, 0x0b, 0xd3,
- 0x37, 0x51, 0xf0, 0x60, 0x0b, 0xa0, 0x31, 0xdb, 0x59, 0xaf, 0x0f, 0x65,
- 0x39, 0x5a, 0x74, 0xb6, 0xdf, 0xe3, 0xb4, 0x54, 0x48, 0x6e, 0xeb, 0xf7,
- 0xf8, 0xc0, 0x98, 0x7b, 0x01, 0x5f, 0xe0, 0xf2, 0x6d, 0x33, 0xa2, 0xf8,
- 0x30, 0x05, 0x50, 0x10, 0x77, 0xb4, 0x6b, 0xc3, 0xd9, 0x56, 0x51, 0x3b,
- 0x6d, 0xb2, 0x43, 0xff, 0x70, 0x11, 0x15, 0x75, 0xd7, 0xef, 0xe0, 0x4c,
- 0x9b, 0x98, 0x92, 0x01, 0x27, 0xac, 0x0d, 0x85, 0xc0, 0xd2, 0x98, 0x39,
- 0xb4, 0x9b, 0xfc, 0x1d, 0x67, 0xa6, 0x7f, 0x84, 0x78, 0x3d, 0xea, 0x12,
- 0x3d, 0x18, 0xfa, 0x39, 0x24, 0x34, 0xfe, 0xea, 0x24, 0xd3, 0x3c, 0x13,
- 0xe8, 0x7a, 0xf4, 0x04, 0x9e, 0x98, 0x1b, 0x0b, 0x80, 0x62, 0x83, 0x9e,
- 0x93, 0x71, 0xe6, 0xee, 0x7b, 0xab, 0xc3, 0xd9, 0x6e, 0xbf, 0x84, 0x78,
- 0x3d, 0xea, 0x12, 0x3d, 0x31, 0xf4, 0x72, 0x48, 0x69, 0xfd, 0xd4, 0x49,
- 0xa6, 0x78, 0x27, 0xd0, 0xf5, 0xe8, 0x09, 0x3d, 0x30, 0x36, 0x17, 0x03,
- 0x6b, 0xc1, 0xcf, 0x49, 0xbf, 0x0d, 0x7f, 0x3d, 0xd5, 0xe1, 0xec, 0xba,
- 0x2f, 0x04, 0x7a, 0x1e, 0xfd, 0x84, 0x8f, 0x46, 0x3e, 0x8e, 0x5b, 0x69,
- 0x80, 0xf7, 0x51, 0x26, 0x99, 0xe0, 0x9f, 0x43, 0xd7, 0xb0, 0x1c, 0x54,
- 0x69, 0x80, 0xb2, 0xa7, 0x5d, 0xfe, 0x6e, 0xe7, 0xba, 0xbc, 0x3d, 0x96,
- 0xeb, 0xea, 0xc0, 0x38, 0x17, 0x63, 0x08, 0x76, 0xd7, 0xe5, 0x16, 0x0d,
- 0xb1, 0xef, 0xe0, 0x48, 0x37, 0x25, 0xd7, 0xe2, 0xef, 0xb6, 0x1e, 0x2a,
- 0x49, 0x86, 0x26, 0x70, 0xe8, 0x57, 0xcf, 0x82, 0x4f, 0xed, 0x05, 0x16,
- 0x83, 0xce, 0xee, 0xb8, 0x38, 0x38, 0x17, 0x63, 0x08, 0x76, 0xd7, 0x0c,
- 0xa2, 0xc1, 0xb6, 0x3d, 0xfc, 0x04, 0x83, 0x7d, 0x1e, 0xfc, 0x5d, 0xf6,
- 0xc3, 0xc5, 0x49, 0x30, 0xc4, 0xce, 0x3c, 0x2b, 0xe7, 0xc1, 0x27, 0xf6,
- 0x82, 0x8b, 0x41, 0xe7, 0x77, 0x5c, 0x5b, 0xc1, 0xc0, 0xab, 0x18, 0x21,
- 0xde, 0xd4, 0x3e, 0xc3, 0xbe, 0x3d, 0xf8, 0xc4, 0x83, 0x72, 0x5d, 0x78,
- 0x2a, 0x9f, 0x6a, 0x1e, 0x96, 0x93, 0x00, 0x62, 0x67, 0x46, 0xc6, 0xfc,
- 0xc8, 0x1e, 0x82, 0x1c, 0xdd, 0xc1, 0x0b, 0xec, 0x96, 0xbb, 0x1e, 0xfe,
- 0x99, 0xd6, 0x38, 0x15, 0x63, 0x03, 0x12, 0x69, 0x9a, 0x6e, 0xff, 0x0f,
- 0x89, 0x38, 0xeb, 0x36, 0x90, 0x06, 0x6d, 0x4c, 0xfd, 0xf5, 0x3f, 0xae,
- 0x64, 0x4c, 0x89, 0x9e, 0x65, 0x69, 0xee, 0xfb, 0xac, 0xc9, 0xaa, 0xab,
- 0xcf, 0xf3, 0xc1, 0xc0, 0x78, 0x99, 0x93, 0x31, 0xf6, 0x3e, 0x95, 0x2c,
- 0x55, 0x9b, 0x48, 0x6d, 0x4d, 0xa8, 0x5a, 0x4f, 0xbc, 0xff, 0x0c, 0xbe,
- 0xba, 0xc7, 0xe6, 0xc2, 0x92, 0x5d, 0xe7, 0xff, 0xfd, 0xd3, 0x77, 0xff,
- 0xe1, 0x28, 0xeb, 0x36, 0x91, 0x1b, 0x53, 0x56, 0x9e, 0xfa, 0x8b, 0xfe,
- 0xff, 0x8e, 0x8d, 0x1b, 0xaf, 0xba, 0x06, 0x6d, 0xd5, 0x4b, 0xb5, 0xff,
- 0x03, 0xdd, 0xff, 0xf8, 0x4a, 0x3a, 0xcd, 0xc9, 0x1b, 0x53, 0x42, 0x6e,
- 0x43, 0xeb, 0xff, 0x9e, 0x8d, 0xc6, 0xff, 0xef, 0x2c, 0x4b, 0xc1, 0xf8,
- 0xfc, 0x41, 0xa9, 0xf9, 0xe0, 0x21, 0x1b, 0xe4, 0x50, 0xfc, 0xfa, 0x17,
- 0x27, 0xde, 0x7f, 0xc7, 0x5a, 0xef, 0xfa, 0xc6, 0x0d, 0x55, 0xfd, 0x6f,
- 0xff, 0xf8, 0x1e, 0xef, 0xff, 0xc2, 0x50, 0x84, 0x6f, 0x91, 0x48, 0x7e,
- 0x6d, 0x37, 0x21, 0xf5, 0xff, 0x8c, 0xa3, 0x71, 0xbf, 0xfb, 0xcb, 0x12,
- 0xf0, 0x7e, 0x3f, 0x10, 0x6a, 0x7e, 0x78, 0x08, 0x46, 0xf9, 0x14, 0x3f,
- 0x3e, 0x85, 0xc9, 0xf7, 0x9f, 0xf1, 0xd6, 0xbb, 0xfe, 0xb1, 0x83, 0x55,
- 0x7f, 0x5b, 0xff, 0xfc, 0x7e, 0xd1, 0xaa, 0x7e, 0x06, 0x20, 0xdf, 0x22,
- 0x87, 0xe1, 0xad, 0xb9, 0x3e, 0xf3, 0xfe, 0x7b, 0xeb, 0xb3, 0xf6, 0x18,
- 0x35, 0x54, 0x7e, 0xdf, 0xff, 0xf7, 0x5d, 0xdf, 0xff, 0x84, 0xa1, 0x08,
- 0xdf, 0x10, 0xa6, 0x1f, 0x8c, 0x0d, 0xd6, 0x77, 0xcf, 0xff, 0x7e, 0x8d,
- 0x1b, 0xbe, 0xed, 0xb1, 0x2f, 0x07, 0xe3, 0xf0, 0x83, 0x54, 0xfc, 0x01,
- 0x08, 0xdf, 0x22, 0x87, 0xe6, 0xa1, 0x72, 0x7d, 0xe7, 0xfc, 0x75, 0xae,
- 0xff, 0xad, 0x18, 0xd5, 0x5f, 0xd6, 0xff, 0xff, 0x81, 0xee, 0xff, 0xfc,
- 0x25, 0x15, 0x52, 0x92, 0xab, 0xc0, 0xcf, 0xf7, 0x29, 0x2e, 0xef, 0xff,
- 0xcf, 0x46, 0xe3, 0x77, 0xf7, 0x87, 0x89, 0x78, 0x3f, 0x1f, 0x98, 0x68,
- 0x10, 0x12, 0x15, 0x25, 0xde, 0x06, 0x73, 0xfe, 0x8b, 0x1f, 0xbf, 0xe3,
- 0xad, 0x77, 0xfd, 0x68, 0xc6, 0xaa, 0xfe, 0xb7, 0xff, 0xfc, 0x0f, 0x77,
- 0xff, 0xe1, 0x28, 0xaa, 0x94, 0x95, 0x5e, 0x0c, 0xff, 0x72, 0x57, 0x7f,
- 0x6f, 0xfb, 0xf4, 0x69, 0xbb, 0xee, 0xd8, 0x1a, 0x96, 0xeb, 0xff, 0x81,
- 0xee, 0xff, 0xfc, 0x25, 0x32, 0x15, 0x12, 0xab, 0xc0, 0xcf, 0xfe, 0x52,
- 0x5d, 0xdf, 0xff, 0x32, 0x8d, 0xc6, 0xef, 0xbf, 0xd3, 0xc4, 0xbc, 0x1f,
- 0x8f, 0xe0, 0x6a, 0x7e, 0x7b, 0x61, 0x52, 0x5d, 0xe0, 0x67, 0x3f, 0xe8,
- 0xb1, 0xfb, 0xfc, 0xca, 0xd7, 0x7f, 0xd6, 0x8c, 0x6a, 0xaf, 0xeb, 0x7f,
- 0xff, 0xc0, 0xf7, 0x7f, 0xfe, 0x12, 0x8a, 0xa9, 0x49, 0x55, 0xe0, 0x67,
- 0xfe, 0xa5, 0xae, 0xeb, 0xfc, 0x65, 0x1b, 0x8d, 0xdf, 0xde, 0x1e, 0x25,
- 0xe0, 0xfc, 0x7f, 0x63, 0x2c, 0xd8, 0x54, 0x97, 0x78, 0x19, 0xcf, 0xfa,
- 0x2c, 0x7e, 0xff, 0x6a, 0x17, 0x27, 0xde, 0x18, 0x35, 0x57, 0xf5, 0xbf,
- 0xff, 0xc7, 0xfe, 0x36, 0xa5, 0x25, 0xde, 0x15, 0x53, 0x72, 0x1b, 0x53,
- 0xff, 0x1a, 0xdb, 0x93, 0xef, 0x06, 0x03, 0x55, 0x47, 0xed, 0xff, 0xfe,
- 0x3f, 0x0d, 0xea, 0x94, 0x97, 0x78, 0x55, 0x4d, 0xc8, 0x6d, 0x4f, 0xfc,
- 0x6b, 0x6e, 0x4f, 0xbc, 0x18, 0x35, 0x54, 0x7e, 0xdf, 0xff, 0xe3, 0xe9,
- 0xfa, 0x7b, 0x40, 0x79, 0xbc, 0x7a, 0xa5, 0x25, 0xde, 0x15, 0x53, 0x72,
- 0x1b, 0x53, 0xff, 0x1a, 0xdb, 0x93, 0xef, 0x06, 0x0d, 0x31, 0x45, 0x3f,
- 0xe7, 0xff, 0xc0, 0xe8, 0x9e, 0xe7, 0xff, 0xff, 0xc4, 0x90, 0xf1, 0xc0,
- 0x79, 0x11, 0x26, 0x60, 0x39, 0x36, 0x93, 0x03, 0x81, 0xc4, 0x41, 0xe7,
- 0x8e, 0x03, 0xc8, 0x89, 0x33, 0xfc, 0x21, 0xf0, 0x84, 0x51, 0x03, 0x86,
- 0x32, 0x00, 0xe1, 0x8c, 0x83, 0xc0, 0x51, 0x49, 0x74, 0x20, 0xbd, 0xda,
- 0x10, 0x47, 0x15, 0x73, 0x20, 0x1e, 0xaf, 0x1c, 0x55, 0xc6, 0x80, 0x7a,
- 0xba, 0x8a, 0x2b, 0x99, 0x00, 0xf2, 0xea, 0xfc, 0x61, 0xff, 0x0a, 0x40,
- 0x15, 0xba, 0xda, 0x01, 0xea, 0x78, 0x15, 0x23, 0xbe, 0xb6, 0x40, 0x3d,
- 0x5e, 0x56, 0xe9, 0xa0, 0x1e, 0xe3, 0xca, 0xdd, 0x34, 0x03, 0xdc, 0x7c,
- 0x47, 0x00, 0x87, 0xc0, 0xb1, 0x51, 0x00, 0xa9, 0x10, 0x0a, 0x9c, 0x04,
- 0x36, 0x9a, 0xad, 0x5e, 0xd3, 0x69, 0xaa, 0xd5, 0xc0, 0x6d, 0x36, 0x9a,
- 0xad, 0x5c, 0x06, 0xd3, 0x69, 0xaa, 0xd5, 0xc0, 0x7f, 0x18, 0xfd, 0xe3,
- 0x8a, 0x68, 0x1f, 0x02, 0x75, 0x24, 0x86, 0xe7, 0xf1, 0xd4, 0x92, 0x1b,
- 0x9f, 0xcf, 0xf2, 0xae, 0xb8, 0x9d, 0x49, 0x21, 0xb9, 0xfa, 0x8f, 0x93,
- 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0x8f, 0x98, 0x01,
- 0x0a, 0x69, 0xa6, 0x80, 0xf3, 0x79, 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x03,
- 0xa2, 0x2d, 0xcf, 0xf2, 0x0f, 0xfe, 0x25, 0x1e, 0x0e, 0x03, 0xc4, 0xcc,
- 0x99, 0x81, 0xf0, 0x69, 0x2c, 0xa3, 0x97, 0xcf, 0x07, 0x01, 0xe2, 0x66,
- 0x4c, 0xc2, 0xf2, 0x82, 0xb6, 0x98, 0xc2, 0x61, 0x7b, 0x18, 0xd0, 0x97,
- 0xeb, 0x58, 0x80, 0x04, 0x59, 0xb0, 0x64, 0xae, 0x4a, 0x4a, 0xe7, 0xfc,
- 0x40, 0x3f, 0xf0, 0x59, 0xd3, 0xf1, 0x00, 0x4a, 0xc4, 0x00, 0x09, 0xf8,
- 0x1d, 0x31, 0xdc, 0xc3, 0xa6, 0x3b, 0x90, 0x3c, 0x85, 0x72, 0x1e, 0x42,
- 0xb8, 0x17, 0x50, 0xad, 0x33, 0xfc, 0xd7, 0xeb, 0x58, 0x80, 0x04, 0x79,
- 0xb8, 0x32, 0x57, 0x32, 0x92, 0xb9, 0xff, 0xf0, 0xff, 0xc1, 0x67, 0x5f,
- 0xc3, 0x10, 0x69, 0x0c, 0x11, 0xd1, 0xc0, 0xe9, 0x8e, 0xe6, 0x1d, 0x31,
- 0xdc, 0x81, 0xd1, 0x96, 0xe4, 0x3a, 0x32, 0xdc, 0xff, 0xff, 0xa0, 0x59,
- 0x2f, 0xe2, 0x00, 0x11, 0x63, 0x7c, 0x19, 0x2b, 0x99, 0x49, 0x5c, 0xff,
- 0xff, 0xff, 0x05, 0x92, 0xfe, 0x1a, 0x03, 0x34, 0x30, 0xb6, 0xe0, 0x74,
- 0xc7, 0x73, 0x0e, 0x98, 0xee, 0x40, 0xf2, 0x15, 0xc8, 0x79, 0x0a, 0xe7,
- 0xc7, 0xff, 0xc1, 0x65, 0x3e, 0x18, 0x14, 0x4b, 0x83, 0x25, 0x73, 0x29,
- 0x2b, 0x9f, 0xa6, 0x5a, 0xeb, 0xae, 0xb8, 0xe9, 0x80, 0x01, 0x34, 0x93,
- 0x69, 0x36, 0x93, 0x6d, 0x7f, 0xfc, 0x00, 0x6c, 0x4b, 0x24, 0xcf, 0x35,
- 0xff, 0x7a, 0x8c, 0x0f, 0x7d, 0x37, 0x9f, 0xff, 0x5b, 0x4c, 0x79, 0x59,
- 0xb0, 0x01, 0x89, 0x72, 0xbd, 0xe9, 0xbf, 0x42, 0x49, 0xd1, 0xc6, 0xe0,
- 0x58, 0x0c, 0xbb, 0xbe, 0x11, 0xdf, 0xd0, 0x11, 0xb7, 0xb9, 0xa4, 0x7b,
- 0x57, 0xc7, 0x94, 0xeb, 0x3f, 0xf7, 0xdb, 0x86, 0xd3, 0xff, 0xf9, 0x7f,
- 0xfe, 0x37, 0x55, 0x5d, 0x4c, 0x58, 0x6b, 0x25, 0x2f, 0x7d, 0xe3, 0xfe,
- 0x7f, 0x04, 0x09, 0xa4, 0xc9, 0x99, 0xee, 0xfb, 0x69, 0x65, 0x56, 0x9b,
- 0xbf, 0x58, 0x30, 0x5c, 0x1c, 0x2f, 0x83, 0x12, 0xea, 0xff, 0x4d, 0xfa,
- 0x1a, 0xb1, 0x66, 0x80, 0xd7, 0xd2, 0xca, 0x35, 0xf0, 0x1b, 0xec, 0x38,
- 0xd7, 0xa4, 0xbb, 0x06, 0x20, 0x67, 0x3d, 0xcf, 0xa9, 0xf7, 0xc9, 0xde,
- 0x81, 0x0f, 0xf1, 0xdf, 0xbf, 0x2f, 0xcd, 0xfb, 0xf2, 0x3f, 0xff, 0x7c,
- 0x86, 0x9e, 0x1e, 0x0d, 0xa1, 0x4f, 0x40, 0x9a, 0x8d, 0xae, 0xb8, 0xe9,
- 0x80, 0x10, 0xa6, 0x9a, 0x68, 0x0f, 0x37, 0x9f, 0x03, 0xa2, 0x2d, 0xcf,
- 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x00, 0xff, 0xe2, 0xd1, 0xe0, 0xe0, 0x3c,
- 0x4c, 0xc9, 0x99, 0xe0, 0xe0, 0x03, 0x10, 0xf2, 0x28, 0x8c, 0x80, 0x87,
- 0xe0, 0x3a, 0x27, 0x49, 0x6c, 0x7a, 0x60, 0x08, 0x53, 0x69, 0x34, 0x06,
- 0xf5, 0xb7, 0xfe, 0x07, 0x44, 0x59, 0x7e, 0x07, 0x44, 0x59, 0x78, 0xf5,
- 0x00, 0x42, 0x9b, 0x49, 0xa0, 0x37, 0xad, 0xbf, 0xf0, 0x3a, 0x22, 0xcb,
- 0xf0, 0x3a, 0x22, 0xcb, 0xc7, 0xa8, 0x02, 0x14, 0xda, 0x4d, 0x01, 0xbd,
- 0x6d, 0xff, 0x81, 0xd1, 0x16, 0x5f, 0x81, 0xd1, 0x16, 0x5e, 0x3d, 0x40,
- 0x10, 0xa6, 0xd2, 0x68, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x88, 0xb2, 0xfc,
- 0x0e, 0x88, 0xb2, 0xf1, 0xea, 0x00, 0x85, 0x36, 0x93, 0x40, 0x6f, 0x5b,
- 0x7f, 0xe0, 0x74, 0x45, 0x97, 0xe0, 0x74, 0x45, 0x97, 0x8f, 0x50, 0x04,
- 0x29, 0xb4, 0x9a, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03,
- 0xa2, 0x2c, 0xbc, 0x7a, 0x80, 0x21, 0x4d, 0xa4, 0xd0, 0x1b, 0xd6, 0xdf,
- 0xf8, 0x1d, 0x11, 0x65, 0xf8, 0x1d, 0x11, 0x65, 0xe3, 0xb0, 0x04, 0x29,
- 0xb4, 0x9a, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2,
- 0x2c, 0xbc, 0x76, 0x00, 0x85, 0x36, 0x93, 0x40, 0x6f, 0x5b, 0x7f, 0xe0,
- 0x74, 0x45, 0x97, 0xe0, 0x74, 0x45, 0x97, 0x8e, 0xc0, 0x10, 0xa6, 0xd2,
- 0x68, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x88, 0xb2, 0xfc, 0x0e, 0x88, 0xb2,
- 0xf1, 0xd8, 0x02, 0x14, 0xda, 0x4d, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xd1,
- 0x16, 0x5f, 0x81, 0xd1, 0x16, 0x5e, 0x3b, 0x00, 0x42, 0x9b, 0x49, 0xa0,
- 0x37, 0xad, 0xbf, 0xf0, 0x3a, 0x22, 0xcb, 0xf0, 0x3a, 0x22, 0xcb, 0xc7,
- 0xe0, 0x08, 0x53, 0x69, 0x34, 0x06, 0xf5, 0xb7, 0xff, 0xc0, 0xe8, 0x8b,
- 0x2f, 0xc0, 0xe8, 0x8b, 0x2f, 0x1f, 0x87, 0xa9, 0xb4, 0x9a, 0x03, 0x7a,
- 0xdb, 0xff, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2, 0x2c, 0xbc, 0x7e,
- 0x02, 0xd4, 0xda, 0x4d, 0x01, 0xbd, 0x6d, 0xff, 0xfe, 0x07, 0x44, 0x59,
- 0x7e, 0x07, 0x44, 0x59, 0x78, 0xec, 0x01, 0x0a, 0x6d, 0x26, 0x80, 0xde,
- 0xb6, 0xff, 0xc0, 0xe8, 0x8b, 0x2f, 0xc0, 0xe8, 0x8b, 0x2f, 0x1d, 0x80,
- 0x21, 0x4d, 0xa4, 0xd0, 0x1b, 0xd6, 0xdf, 0xf8, 0x1d, 0x11, 0x65, 0xf8,
- 0x1d, 0x11, 0x65, 0xe3, 0xb0, 0x04, 0x29, 0xb4, 0x9a, 0x03, 0x7a, 0xdb,
- 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2, 0x2c, 0xbc, 0x75, 0x00, 0x16,
- 0x0e, 0xdf, 0xed, 0xfb, 0x0f, 0xe0, 0xbe, 0x07, 0x44, 0xf7, 0x3e, 0x07,
- 0x44, 0xf2, 0xf8, 0x1d, 0x13, 0xdc, 0x03, 0xa2, 0x79, 0x7c, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xe1, 0x09, 0x1f, 0x1f, 0xaa, 0xad, 0x40, 0x0e, 0x2d,
- 0x2f, 0xb0, 0xff, 0xf6, 0x60, 0x3f, 0xdc, 0xf4, 0x07, 0xd8, 0x2a, 0x21,
- 0x53, 0x6e, 0x03, 0xcc, 0x4d, 0x1a, 0x4d, 0x34, 0xd3, 0x7e, 0xba, 0x18,
- 0x0b, 0x9d, 0xef, 0xd9, 0xcf, 0xf1, 0xfb, 0x02, 0x76, 0xdf, 0x18, 0x45,
- 0x26, 0x6c, 0x44, 0x26, 0xfd, 0x9f, 0xf3, 0xff, 0x48, 0x19, 0x86, 0xdc,
- 0x9f, 0x6f, 0xfe, 0xf7, 0x71, 0x9e, 0x86, 0x7f, 0xed, 0x5a, 0xf0, 0x35,
- 0x15, 0xaa, 0xcf, 0x8d, 0x8c, 0x15, 0xdf, 0xd2, 0x0f, 0xfb, 0xc3, 0x90,
- 0xff, 0x03, 0xc2, 0x04, 0xce, 0xf8, 0xfb, 0xb2, 0x7d, 0x63, 0xad, 0x27,
- 0x5f, 0xb3, 0xbc, 0x7f, 0x84, 0x5e, 0x00, 0xad, 0xea, 0xe0, 0x37, 0x92,
- 0x0f, 0x7e, 0xe7, 0x81, 0xf5, 0xd1, 0x19, 0xb4, 0x03, 0xbb, 0x7c, 0xd7,
- 0xd0, 0x1f, 0xec, 0x38, 0x14, 0x5d, 0x5b, 0x6e, 0xef, 0x7e, 0x32, 0xd6,
- 0xd4, 0x02, 0x5d, 0x39, 0xed, 0xad, 0x77, 0xe5, 0xc7, 0xe7, 0x97, 0x8c,
- 0x21, 0xc9, 0x49, 0x9f, 0x4b, 0xc3, 0xfe, 0xd6, 0x86, 0x73, 0x69, 0x7e,
- 0xfe, 0xb7, 0x1c, 0x97, 0x55, 0x83, 0xd4, 0x9f, 0xc3, 0xd6, 0x66, 0x36,
- 0xbd, 0xff, 0xea, 0x18, 0xd2, 0x3f, 0x57, 0xb2, 0x9e, 0x76, 0xae, 0xbf,
- 0xfd, 0x03, 0xdd, 0xf2, 0x72, 0xc7, 0x2f, 0xe2, 0xad, 0x5b, 0xd1, 0xdf,
- 0x9c, 0xfd, 0xab, 0x50, 0xfa, 0xf4, 0xb9, 0x74, 0x60, 0xb7, 0xc6, 0x16,
- 0x4c, 0x01, 0x16, 0x76, 0x7f, 0xd9, 0xb1, 0x4f, 0xdd, 0xe1, 0xdf, 0xe3,
- 0x52, 0x4c, 0xf0, 0x12, 0x2f, 0x50, 0x1f, 0xfd, 0xef, 0x6a, 0x9f, 0x75,
- 0x6c, 0xf7, 0xfc, 0xeb, 0xda, 0xaf, 0x75, 0x7f, 0xff, 0xc9, 0x37, 0x57,
- 0x50, 0xfe, 0x7f, 0xe7, 0x17, 0xb7, 0xbd, 0x78, 0xe4, 0x18, 0xc6, 0xff,
- 0xdf, 0xb7, 0x98, 0xbf, 0x57, 0xde, 0xdb, 0xff, 0x5f, 0xbc, 0xbd, 0xf9,
- 0xff, 0x66, 0xda, 0x74, 0xf3, 0xbf, 0xaf, 0xf1, 0x9c, 0x98, 0x30, 0x99,
- 0x37, 0x63, 0xff, 0xe7, 0x4c, 0xdf, 0xed, 0xf1, 0xbf, 0xf4, 0x80, 0xbe,
- 0x76, 0x72, 0x77, 0x7f, 0x80, 0x3a, 0xad, 0xa5, 0x2d, 0x4f, 0x7d, 0xb4,
- 0x5b, 0xd3, 0xe0, 0xf9, 0xdf, 0xcf, 0xd1, 0xdc, 0x80, 0xd8, 0x7b, 0x67,
- 0x46, 0x96, 0xba, 0xe7, 0x10, 0xbd, 0x32, 0x04, 0x1f, 0xe8, 0x38, 0xbf,
- 0x19, 0xdf, 0xe5, 0x8e, 0x1f, 0xf3, 0x4c, 0x70, 0x6b, 0x4f, 0x84, 0x75,
- 0x00, 0x36, 0x7a, 0xbe, 0x11, 0xa4, 0x11, 0x9d, 0x53, 0xb8, 0xff, 0x4f,
- 0xc5, 0x2b, 0x92, 0xe0, 0xff, 0x8f, 0xcf, 0xb4, 0x35, 0x25, 0xf9, 0xeb,
- 0xcc, 0xc2, 0xea, 0xcf, 0x3d, 0x38, 0xff, 0xfb, 0x3e, 0x37, 0x9b, 0xa1,
- 0xf4, 0x93, 0x7b, 0xde, 0x7e, 0x1b, 0xbe, 0x33, 0x26, 0x08, 0xaa, 0x76,
- 0x07, 0xd1, 0x02, 0xdf, 0x7b, 0xcd, 0x48, 0xb5, 0x6e, 0xeb, 0x5f, 0x60,
- 0x7b, 0xe1, 0x1d, 0x1d, 0x6d, 0xff, 0xaf, 0x9f, 0x14, 0xfc, 0xcc, 0xba,
- 0x60, 0x07, 0xbd, 0x70, 0x1e, 0x59, 0x30, 0x19, 0x4e, 0x0f, 0xfb, 0xfc,
- 0x46, 0xfc, 0x05, 0xcf, 0xcb, 0x2a, 0xaa, 0xab, 0xff, 0x5f, 0x78, 0xc6,
- 0x2b, 0xc0, 0x0b, 0xab, 0xe9, 0xd8, 0xe2, 0xf6, 0x7e, 0x00, 0x49, 0xa5,
- 0xba, 0x5b, 0xfe, 0xdf, 0x13, 0x6a, 0xe0, 0x2e, 0x45, 0x9d, 0xf3, 0x5a,
- 0x45, 0x1e, 0xff, 0x70, 0x28, 0x2b, 0x36, 0xdb, 0x73, 0x48, 0xf9, 0xff,
- 0x0f, 0xb6, 0xfa, 0x80, 0xa2, 0xce, 0xe6, 0xd2, 0x9c, 0x70, 0xf4, 0x41,
- 0x9b, 0xfa, 0x83, 0xf0, 0xb3, 0xb9, 0x93, 0x49, 0xa3, 0xb1, 0x3c, 0x9f,
- 0xf8, 0x2c, 0x8c, 0x38, 0xac, 0x44, 0x89, 0xe3, 0xb2, 0xd8, 0x56, 0xd4,
- 0x57, 0x61, 0xef, 0x7f, 0xa0, 0x3f, 0xfa, 0xdf, 0x75, 0x15, 0xa4, 0xb5,
- 0x3f, 0xee, 0x7f, 0x6e, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b, 0x8f, 0xb5,
- 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5, 0xb8, 0xfb,
- 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b, 0x8f,
- 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5, 0xb8,
- 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b,
- 0x8f, 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5,
- 0xb8, 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad,
- 0x5b, 0x8f, 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda,
- 0xd5, 0xb8, 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd,
- 0xad, 0x5b, 0x8f, 0xb5, 0x56, 0xd7, 0xdd, 0xdd, 0xdd, 0xdd, 0xe4, 0xff,
- 0x83, 0x8c, 0x55, 0xc0, 0x0a, 0x2b, 0xbb, 0x64, 0x3e, 0xfd, 0x7e, 0x0d,
- 0x49, 0x07, 0x93, 0xf0, 0x43, 0xf0, 0x87, 0x06, 0x49, 0x07, 0x47, 0x06,
- 0x49, 0x07, 0xc0, 0x40, 0xff, 0x5f, 0xbc, 0xf1, 0x9b, 0x3d, 0x8a, 0xc5,
- 0x67, 0xb3, 0xd8, 0xac, 0x56, 0xee, 0x21, 0x53, 0x3d, 0x1a, 0xe6, 0x8c,
- 0xd2, 0x7f, 0xd2, 0x2b, 0x15, 0xef, 0x80, 0x0a, 0x4d, 0x36, 0xb6, 0x7b,
- 0x9f, 0xff, 0xed, 0x5e, 0x48, 0x97, 0xdb, 0x8a, 0xdc, 0x56, 0xe0, 0xc8,
- 0xea, 0xaf, 0xe7, 0xff, 0xeb, 0xbf, 0xcc, 0xb0, 0x01, 0x26, 0x8d, 0xdd,
- 0x1b, 0x9f, 0xff, 0x61, 0x91, 0xeb, 0x68, 0x7f, 0xf7, 0x2f, 0x17, 0xfc,
- 0x01, 0xa7, 0xfa, 0xbf, 0xe4, 0xc7, 0xaa, 0x61, 0xb0, 0x00, 0x6f, 0xe6,
- 0x9a, 0x81, 0xcb, 0x84, 0x3d, 0xbf, 0x80, 0x34, 0xff, 0x57, 0xfc, 0x83,
- 0xd5, 0x30, 0xd8, 0x30, 0x0d, 0xfc, 0xe6, 0x90, 0x3b, 0x9f, 0x19, 0xef,
- 0xb7, 0x7e, 0xfb, 0x77, 0x77, 0x00, 0x1a, 0x68, 0xdd, 0xd1, 0xb3, 0xff,
- 0xed, 0xc6, 0x47, 0xad, 0xc3, 0xff, 0xb9, 0x3b, 0xf6, 0xfe, 0x67, 0xc0,
- 0x2a, 0x5c, 0x31, 0x00, 0xdd, 0x4a, 0x4f, 0xc1, 0x87, 0x11, 0x18, 0xbb,
- 0x77, 0x77, 0x77, 0x77, 0x73, 0x2b, 0x57, 0x87, 0x79, 0xbc, 0xec, 0x56,
- 0xe0, 0x0d, 0x1e, 0x74, 0x03, 0xfb, 0x90, 0x2a, 0x39, 0x3d, 0x2c, 0x6a,
- 0xdb, 0xd8, 0x81, 0x03, 0x0a, 0xee, 0xee, 0xee, 0xee, 0x21, 0x62, 0xe7,
- 0xc7, 0xb9, 0xb1, 0xf1, 0xcc, 0xed, 0xdd, 0xde, 0x22, 0x5c, 0x47, 0x88,
- 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xfc, 0x50, 0x88, 0xa8, 0xb8,
- 0xa8, 0xbf, 0x08, 0x92, 0x73, 0xfe, 0x9f, 0x58, 0x46, 0x2e, 0xfd, 0xf3,
- 0x0a, 0xd3, 0x3c, 0x21, 0x0a, 0xa4, 0xf7, 0x1f, 0xfd, 0x3f, 0xe3, 0x08,
- 0x26, 0xb6, 0xb2, 0xd6, 0x4d, 0x78, 0x5f, 0xef, 0x67, 0x57, 0xef, 0xf0,
- 0xbb, 0x0c, 0x04, 0xe7, 0x83, 0xf4, 0x43, 0xe9, 0x28, 0x76, 0x64, 0x84,
- 0x5f, 0x76, 0x30, 0x4f, 0x56, 0xe7, 0xcf, 0xfd, 0xf6, 0x88, 0xc4, 0xa7,
- 0x3e, 0x46, 0xd6, 0xfa, 0x73, 0x49, 0x69, 0xa9, 0xf4, 0xef, 0x5f, 0xe1,
- 0xbd, 0xfa, 0xb8, 0xf9, 0xe3, 0x33, 0xed, 0xbd, 0xb1, 0xfc, 0x5a, 0x07,
- 0x5d, 0xd7, 0x68, 0x5d, 0xcd, 0xfd, 0x36, 0xa6, 0x93, 0x09, 0x5a, 0xfd,
- 0xcf, 0x26, 0x7a, 0x80, 0xdf, 0xb4, 0xcd, 0x1c, 0x93, 0xc0, 0xdf, 0xb3,
- 0x2f, 0xa6, 0x9c, 0xc8, 0x73, 0x54, 0xa8, 0xf2, 0x67, 0xcd, 0x9f, 0x4b,
- 0x87, 0x57, 0xb4, 0x0f, 0xe8, 0x0b, 0x87, 0x53, 0x57, 0x9f, 0xcc, 0xc7,
- 0xbf, 0x19, 0xf0, 0xea, 0x49, 0x35, 0x69, 0x2d, 0x2d, 0xd0, 0x17, 0xe0,
- 0xd3, 0xe8, 0x82, 0x81, 0xb0, 0x93, 0xc3, 0xb4, 0x48, 0x79, 0x93, 0x7f,
- 0xef, 0xb4, 0x27, 0x94, 0x67, 0xde, 0xed, 0xab, 0x40, 0x36, 0x7f, 0xb7,
- 0xfd, 0x69, 0xcc, 0xff, 0xef, 0xc6, 0x40, 0x55, 0xdd, 0x76, 0x85, 0xdd,
- 0xa3, 0xd1, 0xa5, 0x8c, 0x2e, 0x98, 0x93, 0xc5, 0xd7, 0xa1, 0x6f, 0xd9,
- 0xd3, 0xac, 0x5f, 0x5f, 0x6a, 0x3d, 0x69, 0x9a, 0x68, 0x77, 0x99, 0x1a,
- 0xba, 0xdc, 0x07, 0xff, 0x8b, 0xbf, 0x45, 0xfe, 0xc6, 0x0d, 0xf2, 0xdb,
- 0xe1, 0xff, 0x76, 0x01, 0xfb, 0x29, 0xda, 0x40, 0xd4, 0x9f, 0xc9, 0xe3,
- 0x0b, 0xe0, 0x05, 0xdf, 0x2f, 0xa6, 0x22, 0x7e, 0xe6, 0x46, 0xf7, 0x07,
- 0x67, 0xfa, 0x84, 0xd4, 0x3f, 0xcf, 0x7d, 0x6a, 0x55, 0x1f, 0xbf, 0xc4,
- 0x35, 0x7c, 0x04, 0x3e, 0x91, 0x0d, 0xee, 0x67, 0x60, 0xaa, 0x4d, 0xbc,
- 0xcf, 0x00, 0xef, 0xfc, 0x61, 0x09, 0x3d, 0x34, 0xb0, 0x7d, 0x68, 0x2d,
- 0xfa, 0x2d, 0x95, 0xa7, 0x58, 0xbe, 0xb2, 0xf8, 0x60, 0x2a, 0x3d, 0x69,
- 0xa2, 0x00, 0x35, 0x75, 0xaf, 0x43, 0xfe, 0xd9, 0x17, 0xfb, 0x1b, 0xb0,
- 0x26, 0x79, 0xac, 0xbf, 0xfc, 0x09, 0xe4, 0xb6, 0xfa, 0x7f, 0xe9, 0xd2,
- 0x9a, 0xfd, 0x1f, 0xc7, 0xbb, 0x93, 0xe4, 0xfc, 0x64, 0x2f, 0xaf, 0xbe,
- 0x0f, 0xfb, 0xc4, 0x1b, 0xc3, 0x28, 0xd2, 0xdf, 0x77, 0x84, 0x90, 0x09,
- 0xfd, 0xd5, 0xdb, 0xe3, 0xff, 0xcb, 0x29, 0x9e, 0x69, 0xb3, 0x0d, 0x65,
- 0x66, 0x3a, 0xac, 0x33, 0x9f, 0xf4, 0xbb, 0xef, 0x9f, 0x2f, 0xf5, 0x03,
- 0x52, 0x55, 0x31, 0xe6, 0x4d, 0xeb, 0xcb, 0x5f, 0x08, 0xb0, 0x0f, 0xaf,
- 0x28, 0xa8, 0xc6, 0xf7, 0xd8, 0xff, 0x89, 0x96, 0xb3, 0x93, 0xc0, 0x14,
- 0x6e, 0xc0, 0x82, 0x7f, 0x38, 0xfd, 0x0a, 0xef, 0x01, 0x2f, 0x9d, 0x1e,
- 0xab, 0x63, 0x2a, 0xf8, 0x95, 0xfd, 0xff, 0x6c, 0xc6, 0x81, 0x31, 0x32,
- 0x66, 0x72, 0x3a, 0x8d, 0x93, 0x2f, 0x9e, 0xc8, 0x68, 0xe5, 0x3b, 0xfe,
- 0xc3, 0x38, 0xd7, 0x6d, 0x8f, 0x15, 0x29, 0x82, 0x36, 0x98, 0xc1, 0x77,
- 0xe0, 0x3a, 0x17, 0x11, 0x8a, 0xbf, 0xeb, 0x51, 0xbb, 0x23, 0xcc, 0x3e,
- 0x48, 0x30, 0x47, 0xfe, 0x08, 0x49, 0x5f, 0xa4, 0xa3, 0xfd, 0x58, 0x2c,
- 0x6c, 0x48, 0xb0, 0xa4, 0x0e, 0x0d, 0xe9, 0x15, 0x76, 0x85, 0xb4, 0x42,
- 0xc8, 0x3c, 0x0c, 0x04, 0x70, 0x29, 0xd7, 0x2f, 0x33, 0xfb, 0xf1, 0x67,
- 0xe0, 0xe4, 0x98, 0x10, 0xd8, 0xe3, 0xe7, 0x05, 0x02, 0x96, 0x90, 0xc6,
- 0x66, 0x07, 0x07, 0x30, 0xdb, 0xeb, 0x2f, 0xc2, 0x62, 0xdc, 0x2b, 0x01,
- 0xee, 0x00, 0x02, 0x00, 0xc6, 0x20, 0xea, 0xfb, 0x36, 0x5a, 0x15, 0x4d,
- 0x95, 0x4f, 0x4d, 0xfa, 0x78, 0x48, 0x4f, 0x8f, 0xc3, 0xc8, 0xb5, 0x14,
- 0xd7, 0x81, 0x1c, 0x75, 0x98, 0x8a, 0xea, 0x84, 0x26, 0x48, 0x39, 0xe2,
- 0x67, 0x3f, 0xf1, 0x42, 0x22, 0xa2, 0xe2, 0xa2, 0xfc, 0x62, 0x98, 0x33,
- 0x20, 0xef, 0x02, 0x3d, 0xfb, 0xeb, 0x67, 0x9d, 0x53, 0x82, 0xf5, 0x7a,
- 0xbb, 0x27, 0xeb, 0xdb, 0x09, 0xb1, 0x6f, 0x5e, 0x30, 0x9f, 0xd2, 0x61,
- 0xb2, 0x0e, 0xcf, 0xc0, 0x6f, 0xfc, 0x66, 0xae, 0xfc, 0xd7, 0xc0, 0xd3,
- 0x5f, 0x01, 0xfe, 0xb6, 0xfa, 0x46, 0x7b, 0xb4, 0x5f, 0x5e, 0x4b, 0x66,
- 0x2b, 0x6e, 0x48, 0xf7, 0xe8, 0x86, 0x93, 0x1b, 0x06, 0xbc, 0x67, 0x9a,
- 0x77, 0x82, 0xfe, 0x01, 0x1e, 0xbe, 0xd9, 0x2f, 0x86, 0xc9, 0x0d, 0xa9,
- 0x64, 0xe8, 0x77, 0x3a, 0x83, 0xce, 0x60, 0x10, 0x3e, 0x88, 0x76, 0xf9,
- 0x78, 0x1f, 0xe9, 0xa9, 0x4e, 0x93, 0xa4, 0x45, 0x6f, 0xae, 0x3d, 0x1f,
- 0x84, 0x7f, 0x80, 0x6d, 0x7d, 0x85, 0xa5, 0x50, 0x2e, 0xdd, 0xff, 0xd3,
- 0xbf, 0xaa, 0xdb, 0x25, 0xe7, 0xfa, 0xe4, 0x6a, 0xbd, 0xc8, 0xde, 0xfd,
- 0x0e, 0x56, 0x95, 0x35, 0xdd, 0xba, 0x04, 0x2f, 0xd6, 0x4e, 0x5e, 0x33,
- 0xe0, 0x47, 0xbf, 0x7d, 0x7d, 0x2f, 0x86, 0xc9, 0xf4, 0x1f, 0x1d, 0xbe,
- 0x5e, 0x07, 0xfa, 0x6a, 0xce, 0x40, 0x77, 0xff, 0xac, 0x36, 0xef, 0x36,
- 0x72, 0x02, 0xee, 0xff, 0x80, 0xbe, 0xf8, 0xcc, 0x99, 0x92, 0xde, 0xff,
- 0x66, 0xfd, 0x6c, 0xf0, 0x40, 0x6d, 0xbf, 0xc0, 0x06, 0xb0, 0x1a, 0xca,
- 0xc0, 0x82, 0xea, 0xa5, 0xf7, 0x0f, 0x59, 0x19, 0x0d, 0x19, 0xf9, 0xe0,
- 0x6a, 0xc3, 0xf8, 0xd9, 0xc8, 0x2a, 0xd9, 0x27, 0xff, 0xf0, 0x96, 0xf1,
- 0x78, 0x90, 0x89, 0x9f, 0xee, 0xf8, 0x60, 0x13, 0x29, 0x66, 0x6d, 0x0b,
- 0x2f, 0xdd, 0x13, 0xe1, 0x3b, 0x78, 0xd8, 0x59, 0xfc, 0x1c, 0x15, 0x8a,
- 0xe2, 0xfc, 0x1f, 0xf3, 0xb3, 0xe2, 0x63, 0x71, 0x1f, 0xc4, 0x7c, 0x47,
- 0xf1, 0x18, 0x73, 0xff, 0x30, 0x88, 0x01, 0x91, 0x6d, 0xdf, 0xbf, 0xeb,
- 0x40, 0x03, 0x3b, 0x55, 0x5f, 0xaf, 0xf6, 0x9b, 0x6e, 0x79, 0x9f, 0xfa,
- 0xff, 0xf9, 0x27, 0xff, 0x07, 0x83, 0x97, 0x09, 0x18, 0x56, 0x20, 0x1d,
- 0xf5, 0x07, 0xc0, 0x00, 0x1d, 0xdd, 0x6d, 0xcf, 0x8f, 0xff, 0x58, 0x0a,
- 0x0e, 0x5a, 0xf9, 0xdb, 0x5f, 0x6f, 0x82, 0x82, 0xac, 0xce, 0x3b, 0xe1,
- 0xff, 0x09, 0x40, 0x0e, 0xf6, 0xb0, 0x0b, 0x04, 0xc8, 0xc9, 0x2c, 0xff,
- 0xf7, 0xc0, 0x26, 0x66, 0x25, 0x42, 0x93, 0xb1, 0xd8, 0x85, 0x40, 0xc3,
- 0x0c, 0x0e, 0x00, 0x80, 0x41, 0x08, 0x3c, 0xc2, 0xb1, 0x55, 0xff, 0xe1,
- 0x27, 0x80, 0x01, 0x54, 0x8c, 0xa4, 0x69, 0x97, 0xfa, 0xf8, 0x60, 0x00,
- 0x6d, 0xe8, 0x5a, 0x67, 0x5d, 0xb8, 0x64, 0x03, 0x1e, 0xc3, 0x90, 0x47,
- 0x7d, 0x2f, 0xf9, 0x82, 0xa1, 0xec, 0x2d, 0x55, 0x9c, 0x5a, 0xf8, 0x01,
- 0x0a, 0xdf, 0xcb, 0x47, 0xfc, 0x81, 0x04, 0x73, 0xe3, 0x99, 0x1d, 0x81,
- 0x0f, 0xa3, 0xe7, 0xf8, 0x25, 0xe2, 0x9f, 0x26, 0xff, 0xfb, 0x2f, 0xf8,
- 0xb7, 0x99, 0xec, 0xd9, 0x98, 0x00, 0x10, 0x2c, 0xfc, 0x99, 0x3d, 0xfe,
- 0x3b, 0xf7, 0x60, 0xf8, 0x34, 0x7e, 0x8e, 0xde, 0xab, 0x6e, 0x4f, 0xff,
- 0x68, 0x26, 0x2e, 0xfb, 0x74, 0x3f, 0xc4, 0xff, 0x70, 0x60, 0x6c, 0xd2,
- 0x6b, 0x4e, 0xf9, 0xff, 0xff, 0xf8, 0xf2, 0x97, 0xe0, 0x2d, 0x6b, 0x57,
- 0x75, 0xcf, 0xff, 0x83, 0x9e, 0x7f, 0x8a, 0x11, 0x15, 0x17, 0x15, 0x17,
- 0xe3, 0xaf, 0x61, 0xce, 0xa9, 0xe1, 0x99, 0xec, 0xfe, 0x7f, 0xff, 0xf1,
- 0x8c, 0x43, 0x4d, 0x59, 0xf7, 0xde, 0xc3, 0x9d, 0x52, 0x5b, 0xf1, 0x04,
- 0xb4, 0x42, 0x51, 0x19, 0xb4, 0x7e, 0x9a, 0x09, 0xdf, 0xe6, 0xe1, 0x06,
- 0x8d, 0x57, 0xdb, 0x86, 0x6a, 0xf9, 0xaf, 0x6b, 0x30, 0xe1, 0x43, 0x01,
- 0x1c, 0x6a, 0xbe, 0x7f, 0xdf, 0xfd, 0xe2, 0x20, 0xe5, 0xf3, 0x6a, 0xf7,
- 0xfd, 0xba, 0x6d, 0xae, 0xbe, 0xde, 0xf9, 0xda, 0x97, 0xa6, 0x0d, 0xa1,
- 0xd6, 0x86, 0xda, 0xe9, 0x61, 0x34, 0x0c, 0x43, 0x5d, 0x67, 0xdf, 0x33,
- 0x78, 0x6c, 0x1e, 0x22, 0xdc, 0xff, 0x1f, 0xf0, 0x94, 0x31, 0xeb, 0xd7,
- 0x2f, 0x6b, 0x13, 0xff, 0x83, 0xd9, 0x87, 0x0c, 0x0e, 0x5f, 0xf3, 0x5b,
- 0x7f, 0xf7, 0x6c, 0x02, 0x7f, 0xd5, 0xdb, 0x7f, 0xfb, 0xfd, 0x4c, 0xe0,
- 0xfe, 0x6f, 0x11, 0x32, 0xd7, 0x7f, 0xd2, 0x77, 0x7c, 0xbe, 0xfe, 0xf9,
- 0xfa, 0x1b, 0x4e, 0x5f, 0x2f, 0x44, 0xe9, 0xb9, 0xb9, 0x1f, 0x9c, 0x87,
- 0xef, 0x0d, 0x80, 0xc0, 0x6a, 0xaf, 0xfe, 0xc9, 0x88, 0xa3, 0xff, 0xf0,
- 0x94, 0x18, 0x16, 0xf4, 0x48, 0xcd, 0x0b, 0x14, 0x48, 0x6b, 0x1d, 0x53,
- 0x31, 0xab, 0xa1, 0x91, 0x3a, 0x03, 0x88, 0x66, 0xc1, 0xb6, 0xa1, 0x8c,
- 0xc5, 0x10, 0x5d, 0x64, 0x11, 0x4b, 0x4a, 0x37, 0xbc, 0x3c, 0xf1, 0xb3,
- 0x13, 0xf1, 0x05, 0xe0, 0x70, 0x1c, 0x22, 0x00, 0x7b, 0xbb, 0xe2, 0xef,
- 0xff, 0x88, 0x30, 0x9b, 0xd2, 0x73, 0xdd, 0xff, 0xf3, 0xeb, 0xcf, 0xcd,
- 0xb6, 0xdf, 0xbe, 0x0a, 0x06, 0xa0, 0x08, 0xb6, 0xd2, 0x4c, 0xff, 0xe5,
- 0x80, 0xa0, 0x2e, 0xdf, 0x46, 0x7e, 0x71, 0xbf, 0xf8, 0x16, 0x26, 0x27,
- 0x09, 0xc4, 0x07, 0x54, 0xcf, 0xad, 0x7e, 0xb5, 0x98, 0x3d, 0xad, 0xec,
- 0x6d, 0x85, 0x30, 0x02, 0x68, 0xd1, 0xe9, 0x7b, 0xeb, 0xbb, 0x81, 0x2c,
- 0xd1, 0x49, 0xac, 0x3d, 0xe1, 0xbe, 0x00, 0x0e, 0x8a, 0xba, 0x7b, 0x35,
- 0xee, 0xff, 0xaa, 0x0c, 0x14, 0x28, 0xdd, 0x74, 0xb7, 0xf3, 0x7f, 0xfa,
- 0xf4, 0x4f, 0xf0, 0x73, 0xc2, 0x7c, 0x23, 0x25, 0x2d, 0x3b, 0xe7, 0xff,
- 0xff, 0xe0, 0x11, 0x6a, 0x4f, 0xae, 0xc7, 0xfb, 0xc3, 0x56, 0x34, 0xad,
- 0x2f, 0x9f, 0x00, 0x24, 0x19, 0xd5, 0xb8, 0x9b, 0x78, 0x0b, 0x34, 0xac,
- 0xce, 0xd4, 0xe7, 0xfc, 0x1c, 0xf1, 0x3f, 0x14, 0x22, 0x2a, 0x2e, 0x2a,
- 0x2f, 0xc4, 0xc7, 0x5b, 0x3b, 0xd9, 0x9e, 0xb3, 0x7b, 0x3e, 0x10, 0xf0,
- 0x87, 0x84, 0x3c, 0x21, 0x3f, 0x15, 0x80, 0x1b, 0x7e, 0x97, 0x0e, 0x7b,
- 0xfc, 0x81, 0xad, 0xfa, 0xe2, 0xfb, 0x37, 0xee, 0xf4, 0x17, 0xb2, 0x9e,
- 0xb7, 0x93, 0xfd, 0xdd, 0x70, 0x2f, 0xd0, 0x4f, 0x00, 0x21, 0xeb, 0xfa,
- 0xcf, 0xff, 0xfb, 0xff, 0xff, 0x00, 0x0a, 0x6d, 0x12, 0x66, 0x79, 0x09,
- 0x15, 0x66, 0x06, 0xb1, 0x72, 0x26, 0xfc, 0x4e, 0x00, 0x2e, 0x61, 0xcb,
- 0xaa, 0x48, 0xe8, 0x7b, 0xff, 0xf2, 0x14, 0x8f, 0x67, 0xb7, 0x61, 0xc5,
- 0xdc, 0x02, 0xfe, 0x00, 0x59, 0x07, 0xfa, 0x44, 0x63, 0xab, 0xd5, 0x41,
- 0xdf, 0xd6, 0xf7, 0xef, 0x3f, 0xff, 0xef, 0xeb, 0x8a, 0x82, 0x80, 0x15,
- 0x65, 0x24, 0x54, 0x22, 0xff, 0xbe, 0x0b, 0x4e, 0xde, 0x74, 0x8d, 0xfd,
- 0xeb, 0x40, 0xd9, 0x9f, 0xbd, 0xeb, 0xb7, 0xfa, 0xf7, 0xe7, 0x89, 0xff,
- 0x14, 0x22, 0x2a, 0x2e, 0x2a, 0x2f, 0xc4, 0xcf, 0x59, 0xbd, 0x99, 0xeb,
- 0x37, 0xb3, 0xf8, 0x9c, 0x33, 0xf3, 0x60, 0x22, 0x3c, 0xd8, 0x1b, 0xff,
- 0xef, 0x07, 0x65, 0xf3, 0xff, 0x7b, 0x7d, 0x13, 0x13, 0x88, 0xf3, 0x7c,
- 0xff, 0xf8, 0x7c, 0x9c, 0x38, 0xc3, 0x49, 0x4c, 0xe4, 0xb6, 0xbf, 0xff,
- 0x7b, 0xf8, 0x99, 0x43, 0x88, 0xfe, 0x61, 0x10, 0x04, 0x24, 0xd7, 0x38,
- 0x0f, 0xe7, 0xba, 0x31, 0x94, 0x9e, 0xe1, 0xff, 0x3f, 0xf3, 0xc4, 0xfc,
- 0x50, 0x88, 0xa8, 0xb8, 0xa8, 0xbf, 0x13, 0x3d, 0x66, 0xf6, 0x67, 0xac,
- 0xd5, 0xa6, 0x7e, 0x19, 0x88, 0x86, 0x78, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0x84, 0x24, 0x0f, 0xa8, 0x09, 0x08, 0x67, 0x27, 0xf0, 0x12, 0x3e,
- 0x43, 0x40, 0x09, 0xaa, 0x7f, 0x0c, 0x47, 0xdf, 0xc7, 0xe4, 0xf9, 0x60,
- 0xf2, 0x0e, 0x71, 0x28, 0x15, 0x40, 0x10, 0x47, 0x1a, 0x4c, 0xb7, 0xb7,
- 0x78, 0x6e, 0x6e, 0xe7, 0x5f, 0xcc, 0x7f, 0xe0, 0x06, 0xab, 0x79, 0x57,
- 0xfd, 0xdf, 0x07, 0x00, 0xa0, 0x40, 0x97, 0x77, 0x77, 0x77, 0x78, 0x9f,
- 0x11, 0xe2, 0x3f, 0x84, 0x45, 0x40, 0x37, 0xbb, 0x03, 0xcf, 0xa0, 0x01,
- 0x6a, 0x6e, 0xab, 0xc7, 0x17, 0x4c, 0xff, 0x7f, 0xef, 0xb6, 0x70, 0x29,
- 0x51, 0x6d, 0xc1, 0x47, 0xbf, 0x8f, 0xf5, 0xf0, 0x3c, 0xf1, 0xfe, 0xdd,
- 0xc4, 0xc5, 0xff, 0x8a, 0x11, 0x07, 0x75, 0x3c, 0x54, 0x56, 0x2b, 0xc0,
- 0xf0, 0x07, 0xd1, 0x31, 0x58, 0xac, 0x1f, 0x29, 0x2d, 0x96, 0xc5, 0x60,
- 0x7d, 0x20, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x88, 0x9a, 0xe3, 0x20,
- 0x00, 0x88, 0xe0, 0x38, 0x43, 0x94, 0x36, 0x1a, 0x27, 0x0a, 0x16, 0x27,
- 0xe4, 0xe0, 0x5f, 0xfe, 0x06, 0x2c, 0x5b, 0x93, 0x69, 0xd6, 0xf6, 0x51,
- 0x01, 0x92, 0xa0, 0x03, 0xe7, 0xb0, 0x00, 0x10, 0x02, 0xff, 0xbd, 0xe0,
- 0x03, 0xe1, 0xcd, 0x2f, 0x14, 0x65, 0xb9, 0x7c, 0x80, 0x80, 0x7c, 0x5b,
- 0xe0, 0x15, 0x07, 0xee, 0x26, 0x31, 0xb1, 0xc1, 0x9f, 0x09, 0x2d, 0x23,
- 0xf7, 0xb1, 0xc6, 0x07, 0xe3, 0x5c, 0x20, 0x9c, 0x43, 0xc8, 0x0c, 0xdd,
- 0x4b, 0x00, 0x01, 0x00, 0x10, 0x00, 0x80, 0x06, 0x80, 0x0c, 0x81, 0xbc,
- 0xb3, 0x14, 0xe3, 0x20, 0x02, 0x00, 0x02, 0x7d, 0x60, 0x05, 0x00, 0x1b,
- 0x81, 0xa1, 0x22, 0x20, 0x00, 0x10, 0x21, 0x00, 0x14, 0x28, 0x00, 0x88,
- 0xff, 0xbf, 0x1e, 0xc0, 0x00, 0x40, 0x68, 0x00, 0x0b, 0xb0, 0x1e, 0x00,
- 0x26, 0xe7, 0x87, 0x80, 0x00, 0x81, 0x18, 0x00, 0x70, 0xa0, 0x02, 0x29,
- 0x83, 0xc0, 0x00, 0x40, 0x68, 0x00, 0x0a, 0x12, 0x00, 0x26, 0x98, 0x60,
- 0x00, 0x08, 0x02, 0x80, 0x04, 0x00, 0x3c, 0x00, 0x65, 0x30, 0xc0, 0x00,
- 0x28, 0x00, 0x18, 0x01, 0x00, 0x02, 0x29, 0x80, 0xdc, 0x67, 0xa8, 0x01,
- 0xc0, 0xec, 0xd0, 0x3a, 0x0d, 0x7d, 0xbb, 0xc4, 0x11, 0x80, 0xe5, 0x72,
- 0x08, 0x08, 0x30, 0x8b, 0xc8, 0x6e, 0x80, 0x03, 0x31, 0x38, 0x72, 0x7e,
- 0x20, 0x47, 0x8f, 0x11, 0x03, 0x73, 0x5b, 0x48, 0xfe, 0x47, 0x3e, 0x28,
- 0x6e, 0xf8, 0x3f, 0xff, 0xf5, 0x70, 0x8e, 0x03, 0xd9, 0x78, 0x1e, 0xf4,
- 0x81, 0xb4, 0xf7, 0x4e, 0x5a, 0x4f, 0xff, 0xfb, 0x60, 0x89, 0xad, 0xaa,
- 0x97, 0x8f, 0xf7, 0xec, 0x48, 0x90, 0x52, 0x19, 0x17, 0x02, 0xef, 0xcf,
- 0xa9, 0x2f, 0xbf, 0xfb, 0xfc, 0x01, 0x20, 0xba, 0x93, 0x71, 0x35, 0xf8,
- 0x4a, 0xce, 0x56, 0x78, 0x9c, 0xff, 0xc2, 0x22, 0x38, 0x00, 0xbd, 0x2a,
- 0x54, 0x9d, 0x1f, 0xef, 0xf9, 0xe0, 0x02, 0xf4, 0xa9, 0x52, 0xe8, 0xff,
- 0x7f, 0xcc, 0x21, 0x9b, 0x9b, 0x8b, 0xff, 0xd0, 0x01, 0x15, 0xee, 0x75,
- 0x6f, 0x28, 0xdb, 0xd2, 0xe8, 0x88, 0xff, 0x70, 0xfb, 0x93, 0xf8, 0x10,
- 0x3d, 0xc0, 0x09, 0xa6, 0xe9, 0xd9, 0xbf, 0xed, 0xac, 0x7f, 0xcf, 0x99,
- 0xab, 0x7f, 0xff, 0xb7, 0x8f, 0xde, 0x97, 0x55, 0x2f, 0xf0, 0x6b, 0x8a,
- 0xc5, 0x45, 0xc5, 0x45, 0xc2, 0x78, 0x0b, 0x00, 0x02, 0x21, 0x49, 0x24,
- 0x92, 0x49, 0x24, 0x0f, 0x37, 0x81, 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee,
- 0x70, 0x7f, 0x03, 0x80, 0x01, 0x50, 0x05, 0x07, 0xdc, 0xe0, 0xff, 0x3c,
- 0x4e, 0x7f, 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0x47, 0x88, 0xf9,
- 0xfc, 0x47, 0x9b, 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x03, 0x99, 0x72, 0x04,
- 0xb5, 0x57, 0x45, 0x2a, 0x3a, 0xff, 0x7e, 0x65, 0x1c, 0x20, 0x1f, 0xf0,
- 0xf2, 0x02, 0x54, 0xde, 0x00, 0xf8, 0x6c, 0x8d, 0x93, 0x84, 0xff, 0xbe,
- 0x00, 0x63, 0x32, 0x12, 0x39, 0xce, 0xac, 0x27, 0x25, 0x7d, 0xe1, 0xcd,
- 0x80, 0x3b, 0xff, 0xf0, 0x96, 0x00, 0x09, 0x99, 0x18, 0x94, 0x22, 0x97,
- 0x9c, 0xd1, 0x64, 0x34, 0xdc, 0x3b, 0x19, 0x20, 0x01, 0x5c, 0xe3, 0x9b,
- 0x92, 0x20, 0xd5, 0xc0, 0x4a, 0x93, 0x80, 0x35, 0x0f, 0xb3, 0xb0, 0x70,
- 0xaf, 0xf7, 0xdf, 0xf4, 0x03, 0xc0, 0x0b, 0x30, 0x7b, 0x88, 0x89, 0xc4,
- 0x7e, 0x02, 0x04, 0x50, 0x88, 0xa8, 0xb8, 0xa8, 0xb9, 0xa2, 0x1f, 0xff,
- 0x84, 0xcc, 0x00, 0x29, 0x0f, 0x1c, 0xee, 0x71, 0xc2, 0xbf, 0xc3, 0xd5,
- 0xee, 0x83, 0x30, 0x00, 0x20, 0xc3, 0x16, 0x4c, 0xcf, 0x00, 0x02, 0xf8,
- 0x0e, 0x00, 0x10, 0x20, 0xe5, 0x93, 0x38, 0x8b, 0x15, 0xc4, 0x78, 0x8f,
- 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11,
- 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x53, 0x00, 0x04,
- 0x19, 0x36, 0xe5, 0x36, 0xe5, 0x26, 0xb4, 0xa6, 0xf8, 0x00, 0xec, 0x25,
- 0xc2, 0xfb, 0x1c, 0xb2, 0x7d, 0x5e, 0xff, 0xc0, 0xe0, 0x00, 0x44, 0x04,
- 0x0b, 0xb9, 0xe8, 0x0f, 0x00, 0xc0, 0x0f, 0x20, 0xc4, 0x20, 0x5f, 0x80,
- 0xe0, 0x00, 0x50, 0x03, 0x03, 0x09, 0x26, 0x7c, 0x71, 0x15, 0x37, 0x7b,
- 0xcf, 0x13, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f, 0x3f, 0x9f,
- 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f, 0x3f, 0x9f, 0xf0, 0x10, 0x02,
- 0x84, 0x45, 0x45, 0xc5, 0x45, 0xf8, 0xa1, 0x00, 0xf9, 0x41, 0xd5, 0x00,
- 0xf4, 0xa0, 0xea, 0x80, 0x7a, 0x50, 0x75, 0x40, 0x3d, 0x28, 0x3a, 0xa3,
- 0xc6, 0x10, 0x0f, 0x92, 0x00, 0xf9, 0x20, 0x29, 0x48, 0x0a, 0x52, 0x01,
- 0x26, 0x90, 0x16, 0xbf, 0x33, 0xb5, 0xba, 0x81, 0x19, 0x17, 0x32, 0x29,
- 0x48, 0x0a, 0x52, 0x00, 0xf4, 0x90, 0x07, 0xa4, 0x83, 0x38, 0x01, 0x45,
- 0xc1, 0x91, 0x1f, 0x01, 0x30, 0xf8, 0x3a, 0x84, 0x31, 0x98, 0x92, 0x29,
- 0x26, 0x45, 0x29, 0x90, 0x0c, 0x7a, 0x2a, 0x6c, 0x3f, 0x90, 0x5a, 0x49,
- 0x59, 0x1e, 0x40, 0x3e, 0x22, 0x3e, 0x20, 0x97, 0x06, 0x5c, 0x18, 0x44,
- 0xfe, 0x80, 0xa5, 0x44, 0x79, 0x04, 0x91, 0xe0, 0x13, 0x08, 0xb9, 0x04,
- 0x9f, 0xc2, 0x31, 0x38, 0xc8, 0xfd, 0x48, 0x3f, 0x52, 0x3f, 0x52, 0x3f,
- 0x52, 0x61, 0xf0, 0x66, 0x64, 0xb0, 0x54, 0x97, 0x43, 0xf5, 0x23, 0xf5,
- 0x23, 0xf5, 0x23, 0xf5, 0x29, 0x25, 0x6a, 0x2e, 0x88, 0xff, 0x59, 0x87,
- 0xd7, 0x8c, 0x8f, 0x58, 0x0d, 0xcc, 0x8f, 0x91, 0x3e, 0x45, 0x05, 0x27,
- 0xa0, 0xa4, 0xec, 0xba, 0x3e, 0x44, 0x4c, 0x89, 0xf2, 0x20, 0xed, 0x46,
- 0x9d, 0xa0, 0x30, 0x99, 0xce, 0x4f, 0x0a, 0xe7, 0xf3, 0xf2, 0x61, 0x08,
- 0x8c, 0x22, 0x28, 0x44, 0x54, 0x5c, 0x54, 0x5c, 0x9f, 0xc3, 0x9e, 0x30,
- 0x89, 0xc8, 0xa6, 0x2a, 0xf1, 0x0a, 0x9f, 0x0a, 0xd3, 0x38, 0x85, 0x4c,
- 0x42, 0xa7, 0x30, 0xfc, 0x21, 0xfe, 0x1a, 0x13, 0xeb, 0x2a, 0x5a, 0x0b,
- 0xe2, 0x00, 0x00, 0x80, 0x90, 0x00, 0x78, 0x82, 0x58, 0x1c, 0x08, 0xc6,
- 0x5c, 0x87, 0x02, 0x31, 0x97, 0x23, 0xf7, 0x2b, 0xee, 0x4d, 0xe2, 0x3f,
- 0xfc, 0x16, 0x22, 0xa1, 0x64, 0x1c, 0x70, 0xc0, 0x00, 0xf8, 0x1e, 0x60,
- 0xc0, 0x00, 0x20, 0x20, 0x00, 0x7e, 0x07, 0x00, 0x43, 0x89, 0xb9, 0x87,
- 0x00, 0x43, 0x89, 0xb9, 0x81, 0xc0, 0x84, 0x32, 0xe6, 0x1c, 0x08, 0x43,
- 0x2e, 0x4d, 0xff, 0xfe, 0x83, 0x4d, 0xfc, 0xa9, 0x34, 0x17, 0xc1, 0xc0,
- 0x00, 0x40, 0x48, 0x00, 0x16, 0x0c, 0x0e, 0xe0, 0x70, 0x23, 0x19, 0x73,
- 0x0e, 0x04, 0x63, 0x2e, 0x63, 0xf7, 0x35, 0xf7, 0x26, 0xff, 0xff, 0x82,
- 0xc4, 0x54, 0x09, 0x50, 0x7c, 0x30, 0x00, 0x2a, 0x00, 0xae, 0x86, 0x00,
- 0x06, 0x40, 0x03, 0x88, 0xe0, 0x70, 0x04, 0x38, 0x9b, 0x98, 0x70, 0x04,
- 0x38, 0x9b, 0x98, 0x1c, 0x00, 0x10, 0x28, 0xfb, 0x98, 0x70, 0x00, 0x40,
- 0xa3, 0xee, 0x4d, 0xff, 0xfe, 0x81, 0x63, 0x06, 0x85, 0xd0, 0x7c, 0x40,
- 0x00, 0x10, 0x12, 0x00, 0x0f, 0x10, 0x12, 0x70, 0x38, 0x11, 0x8c, 0xb9,
- 0x87, 0x02, 0x31, 0x97, 0x31, 0xfb, 0x9a, 0xfb, 0x93, 0x78, 0x8f, 0xff,
- 0x05, 0x88, 0x0e, 0x82, 0x22, 0x0f, 0x86, 0x02, 0x00, 0x1c, 0x3a, 0x18,
- 0x00, 0x1c, 0x06, 0xee, 0x07, 0x00, 0x43, 0x89, 0xb9, 0x87, 0x00, 0x43,
- 0x89, 0xb9, 0x81, 0xc0, 0x84, 0x32, 0xe6, 0x1c, 0x08, 0x43, 0x2e, 0x4d,
- 0xe3, 0xff, 0xe0, 0xb2, 0x24, 0x0a, 0x9b, 0x14, 0x30, 0x00, 0x38, 0x33,
- 0xa1, 0xbb, 0xe0, 0x70, 0x23, 0x11, 0x73, 0x0e, 0x04, 0x62, 0x2e, 0x67,
- 0x86, 0x78, 0x13, 0xd6, 0x11, 0x32, 0x80, 0x16, 0x37, 0xd2, 0x4b, 0x1c,
- 0x5f, 0xae, 0x0b, 0xe5, 0xdf, 0x26, 0x5f, 0xbf, 0xce, 0x11, 0x18, 0x23,
- 0x19, 0x0b, 0xae, 0x04, 0x01, 0xc0, 0x0c, 0x5f, 0xa4, 0xf3, 0xff, 0x05,
- 0xef, 0xc2, 0xb2, 0x19, 0xb5, 0x2b, 0x15, 0xf2, 0x9e, 0x0b, 0xce, 0xde,
- 0xed, 0x3f, 0xf8, 0xdf, 0xff, 0xfc, 0xc3, 0x75, 0x6f, 0xcc, 0xa2, 0xaf,
- 0x9e, 0xfd, 0x2d, 0x6a, 0x06, 0x23, 0x4a, 0xe1, 0xff, 0xdd, 0x83, 0x59,
- 0x75, 0xdd, 0x9f, 0xfe, 0xff, 0xb8, 0x44, 0x67, 0x11, 0x1e, 0x67, 0xce,
- 0xda, 0x7c, 0xb6, 0xac, 0x19, 0xbd, 0x01, 0xf3, 0xb0, 0xca, 0xe1, 0x9f,
- 0x03, 0xf0, 0x1a, 0xba, 0xb8, 0xff, 0x77, 0xa0, 0xe4, 0xb4, 0xea, 0xb7,
- 0x77, 0xce, 0x82, 0xab, 0xad, 0x87, 0x67, 0xa0, 0x3d, 0x7f, 0xfa, 0x03,
- 0xe6, 0xe5, 0xce, 0x99, 0x32, 0x35, 0xf7, 0xbf, 0xdd, 0xe8, 0x55, 0x74,
- 0xb7, 0xb1, 0x1d, 0xf4, 0xa7, 0x84, 0x6f, 0x8a, 0x11, 0x00, 0x15, 0x41,
- 0x2a, 0x0e, 0xd2, 0x0a, 0x79, 0xe4, 0x1e, 0xaf, 0x41, 0x46, 0x1a, 0x28,
- 0xdc, 0x49, 0x6e, 0x30, 0x93, 0xd5, 0xe8, 0x2a, 0x82, 0x54, 0x1d, 0xa4,
- 0x14, 0xf3, 0xc8, 0x3d, 0x5e, 0x82, 0x8c, 0x34, 0x50, 0x88, 0x2c, 0x92,
- 0x0a, 0x2c, 0xf5, 0x7b, 0xc2, 0x1e, 0x15, 0xa6, 0x79, 0x80, 0x01, 0x23,
- 0xfb, 0xd6, 0xd6, 0xff, 0x4f, 0xc1, 0xaa, 0x65, 0xff, 0xff, 0xfd, 0x44,
- 0x7a, 0xfd, 0x46, 0x7f, 0xff, 0xfe, 0x2f, 0x81, 0xc0, 0x00, 0x40, 0x9a,
- 0x80, 0x00, 0x80, 0x5f, 0xbc, 0x0e, 0x00, 0x02, 0x04, 0xd4, 0x00, 0x04,
- 0x02, 0xfd, 0xf0, 0x8f, 0xff, 0xff, 0xfc, 0x5f, 0x03, 0x80, 0x00, 0x81,
- 0x35, 0x00, 0x01, 0x00, 0xbf, 0x78, 0x1c, 0x00, 0x04, 0x09, 0xa8, 0x00,
- 0x08, 0x05, 0xfb, 0xe1, 0x1f, 0x08, 0x84, 0x55, 0x7b, 0xa6, 0x7c, 0x17,
- 0x79, 0x6e, 0x0d, 0x74, 0x02, 0x52, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xa8, 0x81, 0x60, 0x10, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x5f, 0xf9, 0x8f, 0xb0, 0x60, 0x8f, 0x7d, 0xa1, 0x98, 0x98,
- 0xaf, 0xff, 0xff, 0xff, 0x14, 0x12, 0x83, 0x8d, 0x25, 0x90, 0x5c, 0x6a,
- 0xdd, 0x61, 0xc1, 0x66, 0x12, 0xbf, 0xda, 0x77, 0xf6, 0x1c, 0x94, 0x5b,
- 0x62, 0x9c, 0x83, 0x9e, 0xd3, 0x4a, 0x41, 0xcf, 0x15, 0xff, 0xfc, 0x31,
- 0xfa, 0xd8, 0x3f, 0x8b, 0x27, 0x0c, 0xfe, 0x34, 0x88, 0xd2, 0x5f, 0xae,
- 0x33, 0x49, 0x9f, 0x3f, 0xd0, 0x60, 0x57, 0x71, 0x61, 0xf6, 0x96, 0x09,
- 0x98, 0x36, 0xc9, 0x46, 0x7a, 0x7a, 0x5a, 0x18, 0x1e, 0xf8, 0xd5, 0x2b,
- 0xdf, 0x7f, 0xff, 0xc3, 0x1c, 0x30, 0x7f, 0xf8, 0x49, 0x60, 0x87, 0xdd,
- 0x96, 0x32, 0xf0, 0xcb, 0xaa, 0x7d, 0x86, 0x2d, 0x0f, 0x93, 0x7e, 0x08,
- 0x0b, 0x91, 0xb4, 0xf8, 0xed, 0x82, 0x5f, 0xff, 0xfc, 0x43, 0x09, 0x38,
- 0x38, 0x6c, 0x18, 0xe8, 0x35, 0xf4, 0xd3, 0xe3, 0xb6, 0xe2, 0x30, 0xdc,
- 0xf8, 0x6b, 0x8e, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2, 0x05,
- 0x80, 0x95, 0xf3, 0xeb, 0xbe, 0x29, 0x74, 0xf9, 0x71, 0x81, 0xaf, 0x0d,
- 0x78, 0x6b, 0x83, 0x1f, 0xff, 0xc2, 0x1f, 0xef, 0xfc, 0xdf, 0xe4, 0x5f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0xe2, 0x11, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x7f,
- 0xf5, 0xff, 0x5f, 0xff, 0xde, 0x19, 0x98, 0xfc, 0x00, 0xf1, 0x55, 0xa3,
- 0xe4, 0xff, 0xd1, 0x3c, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20,
- 0xee, 0x08, 0x3e, 0x9f, 0xa9, 0x3f, 0x12, 0x11, 0xc1, 0x0c, 0x51, 0x00,
- 0x03, 0x6a, 0xfd, 0xd2, 0xd3, 0xf9, 0x57, 0x20, 0xa1, 0x31, 0xce, 0x9c,
- 0x80, 0xc5, 0x53, 0x33, 0x0f, 0xa3, 0xc0, 0x11, 0xfe, 0xb7, 0xb1, 0x46,
- 0xa7, 0xca, 0x28, 0xa0, 0x0a, 0x87, 0xdb, 0xcc, 0x6e, 0xda, 0xc9, 0x7c,
- 0x12, 0xe8, 0x86, 0x32, 0x6f, 0xfd, 0xf5, 0xb0, 0x34, 0xae, 0x4f, 0x03,
- 0x87, 0xf1, 0x22, 0xfe, 0x0d, 0x63, 0x30, 0xa8, 0xa8, 0x6a, 0x10, 0x6e,
- 0xd7, 0xda, 0x67, 0xe0, 0x28, 0x31, 0x05, 0x54, 0x1b, 0xb3, 0xdb, 0x1f,
- 0xdf, 0x8f, 0x21, 0xe2, 0x73, 0xf9, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xcd,
- 0xfa, 0xe4, 0xcc, 0x1e, 0xc6, 0x70, 0x00, 0xcd, 0xb6, 0xf8, 0xa6, 0xe7,
- 0x34, 0xb2, 0x34, 0x64, 0x57, 0x79, 0xfa, 0x0e, 0x41, 0x23, 0x6a, 0xa5,
- 0x76, 0xb0, 0x04, 0x72, 0x6d, 0x20, 0x99, 0x85, 0xa4, 0x2d, 0x47, 0x3a,
- 0x8c, 0x1e, 0x12, 0x67, 0xf3, 0xff, 0xff, 0xf9, 0x82, 0xab, 0xfe, 0xa7,
- 0x38, 0x27, 0x2e, 0x01, 0x23, 0xf2, 0x9f, 0xdc, 0xc1, 0x63, 0xf5, 0x7a,
- 0x75, 0xb8, 0x01, 0x97, 0xdd, 0x43, 0xe3, 0xd6, 0xb4, 0xaf, 0xa0, 0x3f,
- 0xc5, 0xf7, 0x61, 0xf8, 0x0c, 0xdf, 0xf9, 0xfe, 0x08, 0x0b, 0xf0, 0x3e,
- 0xef, 0x03, 0xf7, 0x9d, 0xff, 0xff, 0xff, 0xcd, 0x1f, 0x0f, 0xfc, 0x24,
- 0x20, 0x3b, 0x46, 0x40, 0x30, 0x84, 0xd0, 0x6d, 0xa8, 0x18, 0x3f, 0x00,
- 0x3b, 0x46, 0x40, 0x30, 0x84, 0x90, 0x1b, 0x6a, 0x00, 0x3b, 0x4d, 0x00,
- 0xc6, 0x79, 0x01, 0xb6, 0xaf, 0x06, 0x0e, 0x7f, 0x62, 0x63, 0x73, 0x7f,
- 0xff, 0x78, 0x21, 0x36, 0x00, 0x19, 0x8d, 0xb7, 0xa2, 0x4d, 0xa6, 0x1c,
- 0xe5, 0x72, 0x1d, 0xe4, 0x7e, 0xf7, 0x4c, 0x67, 0x3f, 0x27, 0x79, 0xd3,
- 0x16, 0x96, 0x87, 0xe4, 0x28, 0x3f, 0x0e, 0x01, 0xe9, 0x37, 0xc1, 0x47,
- 0x33, 0xf8, 0x00, 0x7d, 0x36, 0x72, 0x23, 0x40, 0xd4, 0xcf, 0xde, 0xcf,
- 0x0e, 0xe4, 0x96, 0x3e, 0x20, 0x7f, 0x07, 0x84, 0xdf, 0xa5, 0x56, 0x33,
- 0xbd, 0x55, 0xe0, 0xc4, 0x2b, 0x5f, 0x3f, 0x7e, 0xf7, 0xbc, 0x7e, 0x07,
- 0xca, 0x3f, 0x9b, 0xff, 0xb9, 0x11, 0x63, 0x3c, 0x00, 0x96, 0x67, 0x09,
- 0x1d, 0x51, 0x76, 0xb0, 0x02, 0x59, 0x9c, 0x24, 0x75, 0x45, 0xda, 0x07,
- 0x9d, 0x4f, 0x36, 0x82, 0x6f, 0xa7, 0x00, 0x17, 0x7f, 0x85, 0x15, 0xcc,
- 0x38, 0xbf, 0x52, 0x7d, 0xc7, 0xeb, 0xc1, 0x79, 0xa4, 0xee, 0xe4, 0x52,
- 0xff, 0x09, 0x60, 0x01, 0xf4, 0xd9, 0xc8, 0x9a, 0x06, 0xa6, 0x7e, 0xf6,
- 0x03, 0x79, 0xca, 0xe8, 0xec, 0x9f, 0xbd, 0x81, 0x2a, 0xbf, 0xfe, 0x29,
- 0x6f, 0xa8, 0x3f, 0xf9, 0x3e, 0x04, 0x1f, 0xd6, 0xf3, 0xe3, 0xbd, 0xe2,
- 0x48, 0x58, 0x00, 0x42, 0xbb, 0x4e, 0x65, 0x9a, 0x70, 0xf0, 0x88, 0x88,
- 0xf8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88, 0x44, 0x1d, 0xff, 0x03,
- 0xce, 0x23, 0xbf, 0x1b, 0x80, 0x80, 0xaf, 0xfb, 0xff, 0x84, 0x3f, 0xff,
- 0x2f, 0x8c, 0xf2, 0x7b, 0xf0, 0xaf, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7,
- 0xff, 0x3f, 0xff, 0xcc, 0x10, 0x86, 0x54, 0xce, 0x4f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x47, 0xff, 0xff, 0xff, 0xe2, 0xfe,
- 0xbe, 0xbf, 0xeb, 0x31, 0xf0, 0x02, 0x69, 0x6d, 0xa2, 0x8d, 0xd7, 0xfc,
- 0x6c, 0x3d, 0x24, 0x82, 0x4a, 0x52, 0xe1, 0x1f, 0x2d, 0xf7, 0x8a, 0xff,
- 0xff, 0xff, 0x7e, 0xb1, 0x43, 0x00, 0xc7, 0x25, 0x8b, 0x37, 0x8b, 0x5f,
- 0xc4, 0xd1, 0xdd, 0x7d, 0xe0, 0x0a, 0x57, 0x33, 0x01, 0xdb, 0x00, 0xda,
- 0xfd, 0xfd, 0x00, 0x11, 0x07, 0x17, 0xe3, 0x5d, 0x13, 0xff, 0xf6, 0xa5,
- 0x5d, 0x8d, 0x4e, 0x5e, 0xfd, 0xf0, 0x0c, 0x8b, 0x74, 0xc6, 0x7a, 0x55,
- 0xfc, 0x66, 0xf9, 0x68, 0x60, 0x29, 0xf0, 0xbf, 0xe1, 0x31, 0x20, 0xbb,
- 0xbc, 0x06, 0x7b, 0x18, 0xcb, 0xde, 0xfa, 0x24, 0x3a, 0x70, 0xdb, 0xbb,
- 0x44, 0xaf, 0xe9, 0xf5, 0xc8, 0x03, 0xe2, 0x3f, 0x55, 0x2b, 0xe7, 0xde,
- 0x98, 0x70, 0xf6, 0x58, 0xaf, 0xff, 0xeb, 0x18, 0xb8, 0x08, 0x4e, 0xbd,
- 0xf9, 0xcd, 0xf3, 0x73, 0x60, 0x01, 0xfc, 0x28, 0xf5, 0x0f, 0x9a, 0x88,
- 0xd3, 0xd3, 0xe0, 0x4e, 0xdb, 0x63, 0x9f, 0xec, 0xf0, 0x35, 0x61, 0xd1,
- 0x2a, 0x6b, 0x53, 0x5b, 0x47, 0x9b, 0x4d, 0x30, 0x21, 0x3f, 0xf1, 0xb0,
- 0x75, 0x03, 0xc4, 0x0e, 0x8c, 0xef, 0xab, 0xf8, 0x06, 0xbf, 0xba, 0x77,
- 0x43, 0xff, 0xf8, 0x60, 0x2a, 0xbf, 0xea, 0x71, 0x82, 0x77, 0x80, 0x48,
- 0xfd, 0x4f, 0xee, 0x60, 0xb1, 0xfa, 0xbd, 0x3a, 0xdc, 0x00, 0xcb, 0xee,
- 0xa1, 0xf1, 0xeb, 0x5a, 0x57, 0xd0, 0x1f, 0xe2, 0xf1, 0x54, 0xd8, 0x11,
- 0xd5, 0x03, 0xfe, 0x6a, 0xbb, 0xff, 0xfe, 0x4e, 0x05, 0x41, 0x04, 0x00,
- 0x31, 0xeb, 0xea, 0x7f, 0xfd, 0xdf, 0x4f, 0x6c, 0x53, 0x18, 0xb8, 0xed,
- 0x70, 0x07, 0x79, 0xa6, 0x9d, 0x4d, 0x34, 0x2e, 0xb8, 0x0b, 0x88, 0xbf,
- 0x36, 0x31, 0xfa, 0x9d, 0x16, 0x28, 0x14, 0xcb, 0xe9, 0xf0, 0x04, 0x68,
- 0x98, 0x29, 0xc4, 0x90, 0x19, 0xed, 0x44, 0x23, 0x10, 0x1c, 0x19, 0xf6,
- 0x84, 0x81, 0x67, 0x0c, 0x79, 0x31, 0x11, 0x11, 0x17, 0xc4, 0x97, 0x80,
- 0x06, 0x6d, 0xb7, 0xca, 0x6e, 0x00, 0x3d, 0xaf, 0x80, 0xfd, 0xe6, 0xbe,
- 0xed, 0xd1, 0x02, 0xff, 0x7d, 0x2b, 0x57, 0xbe, 0xfd, 0x5f, 0x06, 0x04,
- 0xdb, 0xcf, 0xff, 0xee, 0xc6, 0xbf, 0x80, 0xfd, 0xec, 0x13, 0xaf, 0xc0,
- 0xfd, 0xe7, 0xeb, 0x8e, 0xdb, 0xf0, 0xc7, 0x91, 0x31, 0x48, 0x8b, 0xe0,
- 0x9a, 0x08, 0xf4, 0x07, 0xff, 0xf0, 0x7d, 0x60, 0xfc, 0x20, 0x1e, 0x3a,
- 0x53, 0x35, 0x07, 0xd7, 0xaf, 0x80, 0x20, 0x7d, 0x57, 0x01, 0xfe, 0xbb,
- 0x00, 0x1e, 0x2a, 0xb8, 0x09, 0x76, 0x72, 0x9f, 0x1d, 0xb5, 0xde, 0x36,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa3, 0x0d, 0x83, 0xbc, 0xb8, 0xff,
- 0xbf, 0x84, 0x3f, 0xcb, 0x8c, 0xc9, 0xbc, 0x2b, 0xff, 0xf8, 0x43, 0xfd,
- 0xfc, 0xff, 0xbe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xe3, 0x19, 0x01, 0x6f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xaf, 0xff, 0xfc, 0xc7, 0xe0, 0x97, 0xd7, 0xef, 0xc3, 0x32, 0xbd, 0x13,
- 0x05, 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x0c, 0x01, 0xbd,
- 0xa0, 0xab, 0x0a, 0xb8, 0xbb, 0x2c, 0x60, 0x1d, 0xaf, 0x69, 0xcb, 0xbb,
- 0x9f, 0xa0, 0x48, 0xa1, 0xa1, 0xd5, 0xc6, 0x66, 0x41, 0x48, 0x91, 0xe7,
- 0x0b, 0x1f, 0xcd, 0x9f, 0xda, 0x5f, 0x84, 0xc5, 0xcb, 0x60, 0x0f, 0x6b,
- 0x27, 0x27, 0xc4, 0x39, 0xd7, 0xed, 0x20, 0x3e, 0xdd, 0x69, 0xef, 0xf8,
- 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0xae, 0xd7, 0x75, 0x58, 0xc2, 0x60, 0x3a,
- 0x43, 0x49, 0x6a, 0x1c, 0x03, 0x38, 0x3a, 0x10, 0x08, 0xb0, 0x05, 0x55,
- 0x69, 0xfa, 0x80, 0x0e, 0x45, 0xe7, 0xe1, 0x95, 0xd3, 0x3c, 0xaf, 0x44,
- 0xd4, 0xf5, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x99, 0x02,
- 0xbb, 0x8f, 0xfc, 0x25, 0x0a, 0xfb, 0xf8, 0x86, 0x99, 0x3d, 0xe6, 0x45,
- 0x4f, 0xa4, 0xf9, 0x97, 0x8a, 0xa2, 0xec, 0x37, 0x24, 0x67, 0xb4, 0x78,
- 0xcf, 0xe4, 0x11, 0x1b, 0x98, 0xce, 0x78, 0x7d, 0x29, 0x82, 0x71, 0x1d,
- 0x10, 0xc0, 0x2a, 0x7c, 0x77, 0x90, 0xf1, 0x39, 0xfc, 0xdf, 0x4a, 0x71,
- 0x84, 0x23, 0x05, 0x50, 0x14, 0x38, 0x93, 0x18, 0x1b, 0x35, 0x2d, 0xf0,
- 0x89, 0x86, 0x68, 0x3b, 0x60, 0xef, 0x7c, 0x87, 0x80, 0x30, 0xff, 0xad,
- 0x7f, 0xf4, 0xfc, 0x29, 0x24, 0xd6, 0xe7, 0xab, 0xfc, 0x02, 0x01, 0xb7,
- 0x65, 0xfe, 0x88, 0x17, 0x4b, 0xff, 0xff, 0xd9, 0x41, 0xd3, 0x1a, 0xcb,
- 0x7c, 0x74, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64, 0x08, 0x7e,
- 0x5f, 0x5f, 0xf1, 0x9f, 0xf7, 0xff, 0x08, 0x7f, 0xfe, 0x5f, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff,
- 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfc, 0x31, 0xff, 0xa8, 0x70, 0x85, 0x4f,
- 0x81, 0x0f, 0x64, 0xff, 0x97, 0xe0, 0x06, 0xb5, 0xb2, 0x01, 0xa8, 0xdd,
- 0x7b, 0x9a, 0x08, 0xe2, 0xbf, 0xff, 0xff, 0xfc, 0x50, 0xa6, 0x91, 0x0e,
- 0x44, 0xb7, 0xd0, 0x73, 0xbc, 0x0e, 0x5e, 0x46, 0x73, 0xa8, 0x83, 0x71,
- 0x53, 0x27, 0xe1, 0xe9, 0x4a, 0x40, 0xf4, 0xb5, 0xd6, 0x13, 0x8e, 0x42,
- 0x3a, 0xe9, 0x9f, 0x0c, 0x15, 0x3e, 0xd2, 0xfc, 0x26, 0x2d, 0x3a, 0x19,
- 0x66, 0x1d, 0xd4, 0x00, 0x71, 0x4e, 0x71, 0x9b, 0x66, 0xf2, 0x1f, 0xf7,
- 0x67, 0xf4, 0xa2, 0xbf, 0xff, 0x86, 0x38, 0xf0, 0x03, 0x41, 0xd5, 0x22,
- 0xcd, 0x80, 0x47, 0xaf, 0xb6, 0x21, 0x9b, 0x52, 0x19, 0xa6, 0x40, 0x4e,
- 0xca, 0x0b, 0x39, 0x97, 0x84, 0x0d, 0xcd, 0x65, 0x7e, 0xa9, 0xea, 0xc4,
- 0x54, 0x6f, 0xcb, 0xd2, 0xf6, 0x01, 0x5d, 0x0c, 0xff, 0xff, 0xf7, 0xff,
- 0xfc, 0x30, 0x2a, 0x62, 0xcc, 0xe5, 0xff, 0x09, 0x31, 0xaa, 0x93, 0x69,
- 0xf9, 0xf2, 0xbc, 0x21, 0x07, 0x1d, 0x29, 0x60, 0x9c, 0x2a, 0x6e, 0xcf,
- 0xe3, 0x1d, 0x5b, 0xa9, 0xbd, 0xd4, 0x9f, 0xf0, 0x19, 0xf2, 0x3f, 0x0c,
- 0x19, 0xcf, 0x0c, 0x74, 0xa6, 0x09, 0xcb, 0xc6, 0xb3, 0x08, 0x70, 0x55,
- 0x9f, 0x1d, 0x90, 0x31, 0xff, 0xfb, 0xbc, 0x2b, 0xe0, 0x23, 0x33, 0xe7,
- 0xe7, 0x3b, 0x66, 0x6b, 0x34, 0x5d, 0xa8, 0x86, 0x3f, 0xee, 0xe4, 0xfe,
- 0x33, 0xc0, 0x4d, 0x47, 0xa0, 0xe0, 0x08, 0xcc, 0xf9, 0xf9, 0x3b, 0x66,
- 0x6b, 0xfc, 0xd1, 0x76, 0xa0, 0xff, 0xd6, 0x21, 0x0a, 0x00, 0x05, 0x62,
- 0x80, 0x01, 0x5c, 0x48, 0x74, 0xa6, 0x78, 0x6f, 0x7f, 0xdf, 0x80, 0x26,
- 0xa7, 0x80, 0x61, 0xc8, 0xe3, 0xf8, 0x78, 0x3f, 0x1d, 0xb7, 0xe8, 0x4d,
- 0x9c, 0x00, 0xcf, 0xee, 0xfd, 0xdf, 0x5b, 0x07, 0xf1, 0xf0, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x83, 0x3c, 0xba, 0xf8, 0xcf, 0xbf,
- 0x84, 0x3f, 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff,
- 0xe1, 0x0f, 0xf7, 0xfe, 0x6f, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x00, 0x93, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xeb, 0xff, 0xfb, 0xc2, 0x9f, 0x12, 0x51, 0x38, 0xf6, 0xb8,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x0c, 0x08, 0xd9, 0xde, 0x0f,
- 0xa3, 0x59, 0x5c, 0xd1, 0xca, 0xc5, 0x8c, 0x18, 0x4d, 0x1f, 0xc5, 0x7f,
- 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x61, 0x49, 0x45, 0x9b, 0x8d, 0x79, 0x0d,
- 0x9b, 0x0a, 0xe2, 0x0d, 0xe4, 0xe6, 0x23, 0x3f, 0xff, 0xff, 0xff, 0xdf,
- 0xff, 0xff, 0xff, 0xcf, 0xe5, 0xf1, 0xde, 0x65, 0xc2, 0x31, 0xde, 0xf1,
- 0x39, 0x82, 0xab, 0xaf, 0xc5, 0x79, 0x26, 0xff, 0x5d, 0x75, 0xc9, 0x81,
- 0xc4, 0x04, 0xe9, 0x84, 0xc7, 0x69, 0x6f, 0x1b, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0x90, 0x84, 0x05, 0x97, 0xfc, 0x9f, 0xe2, 0x05, 0x03, 0xaf,
- 0x0b, 0x07, 0x8a, 0x0c, 0x1d, 0x7c, 0xf9, 0xbf, 0x19, 0xff, 0x0a, 0x7f,
- 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf5, 0xff, 0xff,
- 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47,
- 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
- 0xff, 0x79, 0x8f, 0x84, 0x2a, 0xb4, 0xba, 0xe2, 0xbf, 0xff, 0xff, 0xf8,
- 0x60, 0xd0, 0x2e, 0x3b, 0x33, 0xed, 0x2b, 0x31, 0xfe, 0x56, 0x0d, 0xf3,
- 0x95, 0xfc, 0x15, 0x49, 0x43, 0x67, 0xc1, 0xde, 0xd6, 0x6e, 0xc6, 0x02,
- 0x86, 0x70, 0x2e, 0x35, 0xfd, 0x7f, 0x15, 0xff, 0xfc, 0x31, 0xf8, 0xad,
- 0xf3, 0x06, 0xc5, 0x9b, 0x81, 0xb7, 0x4b, 0x02, 0x1f, 0x76, 0xd3, 0x39,
- 0x6a, 0x89, 0x8e, 0x7f, 0xff, 0xfb, 0xff, 0xfe, 0x18, 0xb5, 0x22, 0xdf,
- 0xf8, 0x48, 0xf6, 0x1c, 0x08, 0x9b, 0x9e, 0xa2, 0x7f, 0x73, 0xe5, 0xc7,
- 0x66, 0x7c, 0x76, 0xdf, 0x86, 0x04, 0x21, 0xa8, 0x7f, 0xc3, 0xfc, 0x86,
- 0x2c, 0x1d, 0x41, 0xc8, 0x8e, 0x0c, 0x53, 0x25, 0x4d, 0x1e, 0x3b, 0xe8,
- 0x63, 0xfc, 0x57, 0x15, 0xb4, 0x2b, 0xb3, 0xd8, 0x20, 0x81, 0xad, 0xe6,
- 0x67, 0x88, 0xc1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5, 0x1d,
- 0x80, 0xa3, 0xca, 0xba, 0xf8, 0xcf, 0xbf, 0x84, 0x3f, 0xcb, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff,
- 0x37, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x00, 0x93, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb,
- 0xff, 0xfb, 0x19, 0x13, 0xe3, 0x31, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xef,
- 0x05, 0xb1, 0x58, 0xc7, 0xbc, 0x0c, 0x74, 0x38, 0xa6, 0x96, 0xbc, 0x6c,
- 0x72, 0x42, 0xa6, 0x87, 0xbf, 0x8e, 0xd1, 0x06, 0xc8, 0x76, 0x64, 0x74,
- 0xf1, 0x02, 0x9c, 0x3a, 0x13, 0x1c, 0x5d, 0x0d, 0x0e, 0x44, 0x31, 0x21,
- 0x0e, 0x75, 0xf7, 0x69, 0xd6, 0xe2, 0xbf, 0xff, 0xfc, 0xdf, 0xe8, 0x40,
- 0x18, 0x63, 0x09, 0x8d, 0x7b, 0x85, 0xc9, 0xbb, 0x83, 0x8d, 0x4b, 0x3f,
- 0x37, 0xe2, 0x0d, 0xd5, 0x38, 0xb5, 0xda, 0x84, 0xd5, 0x88, 0x75, 0x33,
- 0x81, 0x32, 0x97, 0x8b, 0xed, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
- 0xfe, 0x6c, 0x78, 0x04, 0x3f, 0x84, 0x9e, 0xe0, 0x6f, 0x5d, 0xd0, 0x64,
- 0x8f, 0xcf, 0xe5, 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x78, 0x9c, 0xda, 0x7c,
- 0xd2, 0x78, 0x64, 0x9e, 0x37, 0xff, 0x8c, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0x94, 0xa4, 0x05, 0x97, 0xfd, 0x9b, 0xf9, 0xfd, 0x38, 0x7c,
- 0x40, 0x42, 0x58, 0x50, 0xff, 0x37, 0xfa, 0x4c, 0xfe, 0x1e, 0x6f, 0xe6,
- 0xfd, 0xbe, 0xde, 0x31, 0x44, 0x3e, 0x2b, 0xef, 0x8a, 0xef, 0xc6, 0x7f,
- 0xdf, 0x10, 0xa5, 0xf8, 0xa0, 0xc5, 0x06, 0x1a, 0x1c, 0x0b, 0x07, 0xc1,
- 0x63, 0x28, 0x90, 0xc1, 0x07, 0x94, 0x67, 0xe1, 0x0f, 0xf9, 0xbf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
- 0x9f, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xd7, 0xff, 0xff, 0x37, 0xff, 0xe4,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x89, 0x60, 0x14, 0x7f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0x5f, 0x8a,
- 0xff, 0xff, 0xff, 0x5e, 0xb1, 0x44, 0xd8, 0x62, 0x04, 0x88, 0xd9, 0x97,
- 0x16, 0xe3, 0x22, 0xbf, 0xfd, 0x7b, 0x90, 0x59, 0x79, 0xb3, 0x36, 0x4f,
- 0xff, 0xff, 0x7f, 0xfe, 0xbd, 0x88, 0x88, 0x28, 0x3c, 0xfa, 0x41, 0xa7,
- 0xea, 0x27, 0x7e, 0x7c, 0xb8, 0xec, 0xdf, 0x1b, 0xbe, 0x18, 0xcf, 0xf5,
- 0xd2, 0xa7, 0x25, 0xfe, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa6,
- 0x25, 0x80, 0xd2, 0xfb, 0x5e, 0xa0, 0x41, 0x30, 0x88, 0x91, 0xce, 0x18,
- 0xfd, 0xb9, 0xdb, 0xc6, 0x62, 0x1f, 0x7e, 0xf7, 0x15, 0xde, 0x33, 0xed,
- 0x7a, 0xe1, 0x0f, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe4, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31,
- 0x01, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0xfa, 0x20, 0xf7, 0x37,
- 0x24, 0x5f, 0x12, 0x35, 0xa1, 0xf7, 0x7e, 0x1b, 0xe9, 0x7f, 0x15, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xc5, 0x19, 0x91, 0x86, 0xbb, 0x5d, 0x10, 0xe3,
- 0xf5, 0x97, 0x30, 0x06, 0x62, 0x0c, 0x8a, 0x2e, 0x52, 0x18, 0xc2, 0x0d,
- 0x6b, 0x49, 0xfb, 0x82, 0x17, 0x5b, 0x46, 0x0e, 0x77, 0xf9, 0x04, 0x05,
- 0x9b, 0x6a, 0x0c, 0xa6, 0xbe, 0x20, 0x16, 0x14, 0x58, 0x2a, 0x26, 0x44,
- 0x92, 0xc2, 0x03, 0x2a, 0x7e, 0x78, 0xaf, 0xff, 0xff, 0xe4, 0x26, 0x13,
- 0x3b, 0xc2, 0x79, 0xbf, 0x5b, 0x3e, 0x80, 0xdb, 0xf0, 0x2d, 0x6a, 0x9d,
- 0xbb, 0x20, 0x4b, 0xfb, 0x77, 0xe0, 0xff, 0x79, 0x0b, 0xdb, 0xe3, 0x68,
- 0x8c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xc4, 0x43, 0x0e, 0x5f,
- 0x84, 0xfa, 0xd2, 0x63, 0xe1, 0x13, 0x93, 0xf1, 0x31, 0x10, 0x07, 0x87,
- 0xf8, 0x4a, 0x13, 0x3e, 0xd6, 0x27, 0x69, 0x58, 0xbd, 0x51, 0xf6, 0xb9,
- 0x41, 0xe5, 0xff, 0xcf, 0xe5, 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x6a, 0x0f,
- 0x73, 0x16, 0x06, 0x29, 0xa6, 0x79, 0xe2, 0x6b, 0xfe, 0x32, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x0e, 0x7e, 0xcd, 0x87, 0xc7, 0xfc,
- 0x26, 0x20, 0x12, 0xb0, 0x1f, 0x6e, 0xf8, 0x34, 0x35, 0x06, 0x51, 0x49,
- 0x9e, 0x22, 0x25, 0xfc, 0x50, 0x89, 0x83, 0x03, 0x71, 0xa0, 0x55, 0xef,
- 0xff, 0xfc, 0x67, 0xfd, 0x19, 0x3f, 0xd3, 0xf8, 0x20, 0xc6, 0x13, 0x65,
- 0x43, 0x50, 0x54, 0x07, 0xc8, 0x19, 0x00, 0x54, 0x1a, 0x2e, 0x31, 0x9f,
- 0xc9, 0x84, 0x3d, 0x13, 0xf8, 0x53, 0xc4, 0x62, 0x5e, 0x98, 0xeb, 0x7c,
- 0x5b, 0xf1, 0x63, 0x86, 0x64, 0x3f, 0x2f, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf9, 0x7f, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb,
- 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9,
- 0xcb, 0x60, 0x12, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf5, 0xff, 0x79, 0x8f, 0xc2, 0x3f, 0xe9, 0x0c, 0xc4, 0xc5, 0x7f, 0xff,
- 0xff, 0xbf, 0x8a, 0x09, 0x47, 0x66, 0x20, 0xec, 0xc8, 0x4d, 0xdd, 0x51,
- 0x96, 0x38, 0x7c, 0x12, 0xc5, 0x80, 0x9b, 0xf5, 0x1e, 0xff, 0x22, 0x97,
- 0x6c, 0xc8, 0x05, 0x5b, 0x3f, 0x15, 0xff, 0xef, 0xc3, 0x1f, 0x88, 0x30,
- 0xc1, 0xbc, 0x59, 0x39, 0x6c, 0xd2, 0x42, 0x56, 0x5c, 0xb9, 0x4c, 0x99,
- 0xf9, 0xff, 0xff, 0xef, 0xff, 0xdf, 0x86, 0x38, 0x61, 0xff, 0x84, 0xb9,
- 0xe2, 0x0d, 0xa6, 0x5e, 0x48, 0x9f, 0x2e, 0x3b, 0x37, 0xc6, 0xed, 0x44,
- 0xea, 0x08, 0x6b, 0xe3, 0x20, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7,
- 0x2d, 0x80, 0xb2, 0xfb, 0x0c, 0x74, 0xf8, 0xe9, 0x4c, 0x13, 0x88, 0x88,
- 0x07, 0xd8, 0x17, 0x7b, 0xff, 0xfe, 0x33, 0xe8, 0x31, 0xe8, 0x94, 0xfa,
- 0x70, 0xfb, 0xe8, 0x07, 0x95, 0x60, 0xfb, 0xf8, 0x43, 0x4b, 0x97, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xf5,
- 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01, 0xcf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xaf, 0xfe, 0x4e, 0xcb, 0x0c, 0xcc, 0x27, 0x84, 0x8c, 0x37, 0x41, 0x3c,
- 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x1d, 0xa4, 0x08, 0x62,
- 0xe5, 0x8c, 0x60, 0x4a, 0x09, 0xa9, 0x9e, 0xc0, 0x1c, 0x7b, 0xac, 0x4b,
- 0x6f, 0x5e, 0x02, 0xdb, 0xeb, 0x7f, 0xa9, 0x27, 0x2c, 0x45, 0x71, 0x38,
- 0xc9, 0x39, 0x69, 0x3c, 0x1e, 0x79, 0x71, 0x22, 0xf8, 0x0d, 0xed, 0x34,
- 0x9f, 0x9e, 0x56, 0x44, 0x54, 0x99, 0xfa, 0x0f, 0xc5, 0x7f, 0xff, 0xff,
- 0x31, 0x03, 0x12, 0x7a, 0xde, 0xc6, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xfd,
- 0x16, 0x04, 0xc3, 0x53, 0xf3, 0x7c, 0x0d, 0xf8, 0x94, 0x46, 0xf3, 0xc8,
- 0x08, 0xe4, 0x34, 0x83, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff,
- 0x9a, 0x3e, 0x1f, 0xf8, 0x4a, 0x21, 0x99, 0x1a, 0x1b, 0x9f, 0xf8, 0x08,
- 0x66, 0x46, 0x55, 0xa8, 0x04, 0x33, 0x26, 0x2a, 0xd5, 0xe1, 0xcf, 0xe5,
- 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x66, 0xf8, 0x5b, 0xd8, 0xb8, 0x50, 0xb6,
- 0x05, 0x2a, 0x50, 0xcf, 0x78, 0xca, 0x85, 0x50, 0x73, 0xc4, 0xd7, 0xfc,
- 0x64, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x9c, 0xe4, 0x0c, 0x7e, 0x8d,
- 0xf9, 0x6d, 0x0f, 0x89, 0x11, 0xc1, 0x1e, 0xfb, 0x04, 0x04, 0x0c, 0xf3,
- 0xff, 0x54, 0x24, 0x65, 0x70, 0x97, 0x11, 0x13, 0x5f, 0xff, 0xfc, 0x67,
- 0xa3, 0x31, 0x37, 0xc2, 0xdf, 0x84, 0xc4, 0x71, 0xa1, 0x11, 0x91, 0xb4,
- 0x9f, 0xbf, 0xcf, 0x13, 0xf2, 0x88, 0xdc, 0x64, 0x20, 0x3f, 0x84, 0x39,
- 0x1c, 0x09, 0x7a, 0xc3, 0xdf, 0x98, 0x57, 0xc0, 0x3f, 0xe1, 0xea, 0x39,
- 0xf3, 0xed, 0x6f, 0xbe, 0xc0, 0xb0, 0x19, 0xe5, 0xf7, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x27, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21,
- 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xaa, 0x0d, 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf5, 0xfb, 0xf5, 0xeb, 0x8a, 0xff, 0xff, 0xff, 0xeb, 0x15,
- 0x2b, 0x05, 0x6c, 0x49, 0x44, 0x1d, 0x6a, 0x55, 0x2f, 0xf7, 0x52, 0x09,
- 0x3e, 0x01, 0x33, 0xe7, 0x16, 0xde, 0x3d, 0x68, 0xb4, 0xbe, 0x2b, 0xff,
- 0xdf, 0xac, 0x5c, 0x08, 0x9a, 0x7b, 0xab, 0x39, 0x07, 0xcd, 0x1d, 0xd7,
- 0x2a, 0x7f, 0xaa, 0x8b, 0x3a, 0xcc, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x9c,
- 0x1c, 0x08, 0x54, 0x2d, 0x34, 0x7a, 0xca, 0xa0, 0x93, 0x40, 0xca, 0x49,
- 0x95, 0x34, 0x9e, 0x7c, 0xb8, 0xec, 0xdf, 0x1b, 0xb0, 0x4b, 0x28, 0x69,
- 0x4c, 0xfe, 0x07, 0xdd, 0xcf, 0x87, 0xdd, 0xc8, 0x7d, 0xdc, 0x7f, 0x19,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35, 0x80, 0x93, 0xd0, 0x63,
- 0xfb, 0x7c, 0xa1, 0x0f, 0x9a, 0x06, 0x50, 0x69, 0x98, 0xef, 0xaf, 0xfe,
- 0x33, 0x40, 0x97, 0x01, 0x1f, 0xae, 0x3d, 0xff, 0xe1, 0xb2, 0xb9, 0x94,
- 0x55, 0xcd, 0x7c, 0x20, 0xbd, 0x64, 0x42, 0xbd, 0x30, 0xb0, 0x07, 0xe0,
- 0x9b, 0x00, 0x51, 0xa6, 0xe6, 0xfc, 0x9b, 0x71, 0x12, 0x11, 0x32, 0x1f,
- 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0x85, 0x3f, 0xff, 0x08,
- 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x01, 0xaf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xaf, 0xff, 0xfc, 0xc2, 0x78, 0x4d, 0xe7, 0x97, 0x0c, 0xca, 0xf2,
- 0x12, 0xeb, 0xbb, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x84, 0x0e,
- 0xce, 0xfc, 0x3e, 0xdc, 0xde, 0x26, 0x91, 0xb9, 0xf3, 0x07, 0x27, 0x82,
- 0x28, 0xba, 0x2a, 0xe3, 0x08, 0x32, 0x64, 0x6c, 0x78, 0xe8, 0x56, 0x76,
- 0xa6, 0x39, 0x60, 0x09, 0x8c, 0xbf, 0xe3, 0xfe, 0xe7, 0x83, 0xfd, 0x8e,
- 0x81, 0x95, 0x36, 0x7f, 0x69, 0xfe, 0x13, 0x16, 0xf8, 0x00, 0x30, 0x81,
- 0x79, 0xc5, 0x0e, 0x71, 0xe4, 0xa2, 0xfd, 0x24, 0xf7, 0xfc, 0x57, 0xff,
- 0xff, 0xf2, 0x92, 0x36, 0x17, 0x08, 0xbf, 0x37, 0xf5, 0xda, 0xee, 0xab,
- 0x18, 0xb0, 0x1d, 0x21, 0xa4, 0xb7, 0x04, 0x20, 0x0d, 0x10, 0x08, 0xb0,
- 0x11, 0x9b, 0x4f, 0xd4, 0x01, 0xd2, 0xf3, 0xf2, 0xbd, 0x46, 0x6b, 0x2d,
- 0x6d, 0x49, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xe6, 0x40, 0xae,
- 0x05, 0xff, 0x09, 0x31, 0x66, 0x4c, 0x43, 0x4c, 0x9e, 0xec, 0xc8, 0xd3,
- 0xe9, 0x3e, 0x65, 0xe2, 0xa8, 0xbb, 0x37, 0x53, 0xd5, 0xec, 0xfe, 0x5f,
- 0x1d, 0xe6, 0xe6, 0x2f, 0x08, 0x5b, 0xd3, 0xe3, 0x7d, 0x9b, 0xe0, 0x43,
- 0x22, 0xfc, 0x13, 0x61, 0x1e, 0x0f, 0x7a, 0x0f, 0xa0, 0x3c, 0x3c, 0x73,
- 0x01, 0x0c, 0x04, 0xb9, 0xe2, 0x75, 0xcc, 0x69, 0x13, 0x8d, 0x09, 0xdf,
- 0x8c, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x0a, 0x7f,
- 0x37, 0xe5, 0x91, 0x7e, 0x09, 0x84, 0x40, 0x4a, 0xe4, 0x43, 0x02, 0x3d,
- 0x18, 0x08, 0x78, 0xe6, 0x02, 0x18, 0x09, 0x78, 0x1e, 0x3f, 0xc4, 0xc4,
- 0xff, 0xff, 0xfc, 0x61, 0xa9, 0x99, 0x2f, 0xe7, 0xc5, 0x08, 0x81, 0x13,
- 0xd0, 0x1f, 0xe3, 0xff, 0xa0, 0x63, 0xa0, 0x42, 0x08, 0x1b, 0x03, 0x71,
- 0x79, 0xe4, 0xef, 0x9a, 0x5f, 0xac, 0x4f, 0x5c, 0x26, 0xef, 0xd1, 0x63,
- 0x01, 0x01, 0xa3, 0xcf, 0xff, 0xc2, 0x06, 0xfa, 0xff, 0xf0, 0xf9, 0x23,
- 0x05, 0x97, 0xc0, 0xf3, 0xff, 0xe4, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x27, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb,
- 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
- 0x4f, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xd7, 0xfe, 0x63, 0xe0, 0x10, 0x3a, 0x1f, 0x69, 0x7a, 0x0b, 0xd3, 0xc5,
- 0x88, 0xc5, 0x7f, 0xff, 0xff, 0xbf, 0x8a, 0x14, 0xc8, 0xa3, 0x83, 0x91,
- 0x6a, 0x2d, 0x36, 0x91, 0xec, 0x70, 0x66, 0x9e, 0xe0, 0xc7, 0xb8, 0x60,
- 0xa9, 0xf6, 0x97, 0xe1, 0x31, 0x65, 0x56, 0x6e, 0xc3, 0x06, 0xac, 0xd7,
- 0x5d, 0xbd, 0x9f, 0x15, 0xff, 0xef, 0xc3, 0x1c, 0x78, 0x01, 0xa0, 0xea,
- 0x91, 0x66, 0xd1, 0x01, 0xb6, 0xa5, 0x80, 0xdb, 0x49, 0x91, 0x25, 0x3a,
- 0xf5, 0x79, 0x08, 0xe9, 0x7c, 0x5e, 0x53, 0x6e, 0x7f, 0xff, 0xfb, 0xff,
- 0xfe, 0x18, 0x65, 0x41, 0x66, 0x72, 0xff, 0x84, 0x98, 0x71, 0xab, 0xf7,
- 0x48, 0xc4, 0x41, 0x35, 0xe9, 0xea, 0x13, 0x2f, 0x72, 0xcf, 0x97, 0x1d,
- 0x99, 0xfe, 0x37, 0x61, 0x8f, 0x81, 0x0f, 0xb7, 0x8c, 0x2f, 0x14, 0x7c,
- 0x11, 0xc9, 0xa7, 0x0c, 0x07, 0xee, 0xdf, 0xe3, 0x20, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x80, 0x83, 0xec, 0x32, 0x0e, 0x4c, 0x68,
- 0x47, 0xc1, 0xf8, 0x0e, 0x02, 0xb0, 0x88, 0x30, 0x78, 0x42, 0xe1, 0xc1,
- 0x04, 0x2c, 0x80, 0xc9, 0x3d, 0xff, 0xf1, 0x8b, 0xc3, 0x1e, 0xd2, 0xa9,
- 0x0a, 0xeb, 0x82, 0x64, 0x34, 0x22, 0x3e, 0x1c, 0x41, 0x82, 0xb9, 0x2e,
- 0x80, 0x4f, 0xe1, 0x00, 0x4d, 0x2f, 0xe1, 0x00, 0x7b, 0x0f, 0xff, 0xff,
- 0x27, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21,
- 0xfe, 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe9, 0x49, 0x01, 0xcf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xaf, 0xff, 0xef, 0x0a, 0x7c, 0x49, 0x45, 0xe0, 0x4b, 0xf8, 0x65,
- 0x6f, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xf2, 0x48, 0x30,
- 0x03, 0x16, 0x74, 0xcf, 0x21, 0x02, 0xf3, 0xe3, 0x83, 0x3f, 0xf8, 0x55,
- 0x94, 0xb7, 0x28, 0x91, 0x22, 0x3c, 0x3b, 0x84, 0xed, 0x3e, 0x86, 0xbb,
- 0x9f, 0x87, 0xde, 0xc5, 0x7f, 0xff, 0xff, 0xcd, 0xfa, 0x83, 0x12, 0x12,
- 0xa4, 0xac, 0x9c, 0x09, 0x8b, 0xd4, 0xcf, 0x17, 0xb1, 0xd4, 0xca, 0x4a,
- 0xd1, 0x42, 0x04, 0x3f, 0x05, 0x94, 0xc5, 0xd9, 0x83, 0x16, 0x3f, 0x8b,
- 0x2b, 0x3f, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xb6, 0x56, 0x76,
- 0x10, 0x32, 0x61, 0xfc, 0xbe, 0x3b, 0xcd, 0xff, 0x1b, 0xf3, 0x7f, 0xe3,
- 0xdd, 0xe1, 0x52, 0xec, 0x81, 0x19, 0x8e, 0x43, 0x27, 0x96, 0x5c, 0xdf,
- 0xf7, 0xdf, 0xc6, 0x78, 0x46, 0x7a, 0x70, 0x2a, 0x4c, 0xcc, 0x4b, 0x0b,
- 0x3f, 0x02, 0x2d, 0xf3, 0x6e, 0xe4, 0x0e, 0x3f, 0xf0, 0x97, 0x4a, 0xc8,
- 0x65, 0xec, 0x64, 0x10, 0x25, 0xfe, 0x2f, 0xb9, 0xe2, 0x75, 0xff, 0x19,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x0c, 0x59, 0x08, 0x68,
- 0x12, 0xb2, 0xc7, 0x15, 0x7e, 0x6d, 0x3e, 0x97, 0x4f, 0x84, 0xe7, 0x83,
- 0xe6, 0x08, 0x03, 0xec, 0x04, 0x07, 0xff, 0xeb, 0xff, 0xff, 0x8c, 0x34,
- 0xf4, 0x99, 0xfc, 0xf8, 0x7d, 0x6f, 0xac, 0x04, 0x0e, 0x8f, 0x13, 0xff,
- 0xc2, 0x1f, 0xff, 0xfc, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4,
- 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xff, 0x84, 0x3f, 0xff, 0x7f, 0xff,
- 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x91,
- 0x60, 0x10, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
- 0xff, 0x79, 0x84, 0xe0, 0x06, 0x5d, 0x7e, 0xd6, 0xbe, 0xdf, 0x5c, 0x57,
- 0xff, 0xff, 0xff, 0x0c, 0x07, 0x08, 0x51, 0x45, 0xc1, 0xa5, 0x18, 0x69,
- 0xfa, 0x6e, 0x6f, 0x04, 0x89, 0x92, 0x70, 0x01, 0x6d, 0xfc, 0x6f, 0xfc,
- 0x63, 0xcd, 0x6c, 0x91, 0x88, 0xa1, 0x00, 0xb1, 0x9c, 0x05, 0xdf, 0xd9,
- 0xed, 0xfe, 0x2b, 0xff, 0xf8, 0x63, 0xf1, 0x58, 0xea, 0xcc, 0x51, 0x66,
- 0xe0, 0x6c, 0xd4, 0xb0, 0x21, 0xf7, 0x6e, 0x1f, 0x01, 0x6f, 0xec, 0x08,
- 0x31, 0xd9, 0x8c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x31, 0x6a, 0x6d, 0xff,
- 0x84, 0x8f, 0x32, 0x08, 0x08, 0x6d, 0x3a, 0xb5, 0x15, 0xc2, 0x03, 0xfc,
- 0xf9, 0x71, 0xd9, 0xbe, 0x35, 0x7a, 0xf4, 0x0e, 0x26, 0x75, 0x01, 0x66,
- 0x98, 0x1d, 0x25, 0xf0, 0xc7, 0xc1, 0xc5, 0xff, 0xc4, 0xae, 0x04, 0xaa,
- 0x99, 0xb2, 0x09, 0x7f, 0x8f, 0xcc, 0x31, 0x3d, 0xef, 0xe3, 0x20, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x80, 0x82, 0x5e, 0x18, 0xd3,
- 0xe8, 0x2e, 0x6f, 0x0d, 0x8a, 0xc7, 0x06, 0x0f, 0xc1, 0xb1, 0x90, 0x9e,
- 0x0f, 0x08, 0xae, 0xe3, 0x77, 0xf4, 0x0e, 0x01, 0x03, 0x29, 0x04, 0x11,
- 0x3e, 0xa3, 0xf1, 0x5f, 0x93, 0xff, 0x8c, 0x7f, 0xc3, 0x33, 0xd7, 0xc2,
- 0x1f, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f,
- 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51, 0x01, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0x4f, 0x1e, 0xf6, 0x26, 0x5e, 0x13,
- 0x7b, 0xad, 0x6d, 0xf8, 0x8c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f,
- 0x07, 0xbc, 0x64, 0x51, 0x81, 0x0f, 0xbb, 0x50, 0xcb, 0x8c, 0x7b, 0x83,
- 0x28, 0x83, 0x4e, 0xbd, 0x13, 0x36, 0xfe, 0x4f, 0x1b, 0x11, 0x11, 0x2c,
- 0x72, 0xca, 0x34, 0x72, 0xae, 0xb8, 0x57, 0xdf, 0x87, 0x17, 0x72, 0xc4,
- 0x40, 0x89, 0xd2, 0xf5, 0x96, 0x0b, 0xe5, 0x56, 0x95, 0x0b, 0xcc, 0x90,
- 0xfb, 0x4b, 0xf0, 0x99, 0xc3, 0xb2, 0x71, 0xde, 0xc5, 0x78, 0xaf, 0xff,
- 0xff, 0x37, 0xe2, 0x68, 0x40, 0x14, 0x66, 0xb2, 0x72, 0xcb, 0x03, 0x7d,
- 0x2d, 0xc0, 0x2a, 0xf8, 0xae, 0xde, 0xfd, 0x96, 0x76, 0xb1, 0x05, 0x5c,
- 0xdf, 0xac, 0x88, 0x26, 0x9d, 0xf8, 0x24, 0x7b, 0x1a, 0xdd, 0xfa, 0x63,
- 0x73, 0x06, 0xf4, 0xc6, 0x8b, 0xda, 0x6e, 0x7b, 0x97, 0x23, 0x3f, 0x37,
- 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbc, 0x44, 0x46, 0x09, 0x05, 0x89,
- 0x9c, 0x4c, 0x32, 0x4d, 0xf9, 0x37, 0xba, 0xb4, 0xd5, 0xff, 0xe4, 0x6b,
- 0x03, 0x1d, 0x5c, 0xfe, 0x5f, 0x1d, 0xcc, 0x58, 0x48, 0x11, 0xbe, 0xd4,
- 0xb0, 0x00, 0x73, 0x7f, 0x8f, 0x5f, 0x04, 0x1b, 0x03, 0xf9, 0xa3, 0xcd,
- 0xff, 0xaf, 0x51, 0x85, 0x78, 0xc3, 0x49, 0x50, 0xd6, 0x5b, 0x70, 0x76,
- 0x34, 0x9f, 0xf1, 0xb0, 0xec, 0x53, 0x80, 0xf6, 0x82, 0x4c, 0x83, 0xda,
- 0x09, 0x32, 0x20, 0x6c, 0x21, 0xf1, 0x95, 0xc8, 0x88, 0x18, 0x99, 0xee,
- 0x23, 0xe1, 0x48, 0x80, 0x02, 0x39, 0xff, 0x4b, 0x57, 0xcc, 0xc1, 0x95,
- 0x2f, 0x9e, 0x13, 0x20, 0x7a, 0x5d, 0xff, 0xdf, 0xfc, 0x64, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44, 0x0e, 0x41, 0x59, 0x00, 0x02, 0x2b,
- 0x77, 0x77, 0x5d, 0xf0, 0x8a, 0x6d, 0xc7, 0xff, 0xf9, 0x7f, 0xff, 0xf8,
- 0xcf, 0xfb, 0xff, 0x84, 0x3f, 0xff, 0xf9, 0x3d, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xc9, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08, 0x7f,
- 0xfe, 0xff, 0xff, 0x37, 0xff, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xaa, 0xd3, 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf5, 0xfa, 0xf5, 0xef, 0x8a, 0xff, 0xff, 0xff, 0x5e, 0xb1,
- 0x48, 0xa8, 0x60, 0xc5, 0x4d, 0x16, 0x02, 0x8c, 0x17, 0xe6, 0xd4, 0x79,
- 0x5e, 0x57, 0x10, 0xc5, 0xe0, 0x99, 0x53, 0x2a, 0xc5, 0x7f, 0xfa, 0xf8,
- 0xb3, 0x70, 0x1d, 0xa7, 0x77, 0x60, 0xfb, 0x77, 0x73, 0x19, 0x3f, 0xff,
- 0xfd, 0xff, 0xfa, 0xf6, 0x22, 0x20, 0xa0, 0xe1, 0x2f, 0x07, 0x62, 0x74,
- 0xf5, 0xc5, 0x89, 0xb6, 0xa5, 0x7e, 0x3a, 0x47, 0x41, 0xec, 0xf9, 0x71,
- 0xcb, 0xd7, 0xae, 0x4f, 0x8d, 0x8a, 0x71, 0x4e, 0x0a, 0x79, 0x69, 0x6e,
- 0x21, 0xf0, 0xc6, 0x2f, 0xbb, 0x87, 0xf8, 0x79, 0xf9, 0x2e, 0x09, 0xb0,
- 0x22, 0xfc, 0xfc, 0xff, 0x08, 0xf7, 0x0a, 0x2a, 0x5f, 0xff, 0xc1, 0x35,
- 0x5f, 0xe0, 0x9b, 0xae, 0xbf, 0xfb, 0xf8, 0xc8, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xab, 0x4d, 0x80, 0x92, 0x04, 0xd2, 0x7e, 0x11, 0x5b, 0x71,
- 0xff, 0xf9, 0x7f, 0xf8, 0xcf, 0xbf, 0x84, 0x3f, 0xf9, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6,
- 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xeb, 0x59, 0x01, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xef, 0x11, 0x30, 0x9c, 0xd8, 0x02, 0x4d, 0xf7, 0x6d, 0xf1, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x51, 0x87, 0xc4, 0x8b, 0x33, 0x2c, 0x42, 0x3c,
- 0x37, 0xff, 0x4f, 0x0a, 0xc7, 0x0e, 0x63, 0x06, 0x98, 0x81, 0x3c, 0x65,
- 0x51, 0xb2, 0x01, 0x23, 0x7e, 0xaf, 0xfb, 0xdb, 0x9e, 0x01, 0x8b, 0xa8,
- 0x98, 0xba, 0xc6, 0xf0, 0x3d, 0x7e, 0x5b, 0x57, 0x44, 0xcd, 0xf0, 0xc9,
- 0x7c, 0x4a, 0x93, 0xa5, 0x88, 0x1a, 0xa3, 0xe6, 0x0b, 0x7d, 0x6f, 0xf8,
- 0x4c, 0x58, 0x3b, 0xc9, 0x33, 0xb0, 0x93, 0x66, 0xd0, 0x99, 0x92, 0xad,
- 0x5e, 0xd9, 0x95, 0x4f, 0x3c, 0x57, 0xff, 0xff, 0xf3, 0x18, 0x74, 0x68,
- 0x30, 0x3e, 0xa8, 0x09, 0x19, 0x29, 0xbf, 0x5b, 0x3c, 0xd0, 0x1b, 0x6f,
- 0x80, 0x2d, 0xe2, 0x1d, 0x49, 0x9e, 0x5d, 0xe0, 0x22, 0x67, 0xa4, 0x1d,
- 0xeb, 0xaa, 0xae, 0xbf, 0x77, 0x1a, 0xec, 0xac, 0xf7, 0xbe, 0xb5, 0x9c,
- 0x66, 0xf1, 0x92, 0x7f, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xcc, 0x50,
- 0x0f, 0x0f, 0xf0, 0x94, 0x26, 0x7d, 0xad, 0xa5, 0xfa, 0x02, 0x3d, 0xc1,
- 0x0f, 0x32, 0xab, 0x76, 0x33, 0x8d, 0x25, 0x3e, 0xf8, 0xff, 0xbf, 0x21,
- 0xa5, 0x95, 0x40, 0xad, 0xaf, 0x65, 0x84, 0xbc, 0x08, 0x42, 0x9c, 0xf2,
- 0xf0, 0xfd, 0xdc, 0x20, 0x2c, 0xce, 0x10, 0x0f, 0xe1, 0x36, 0x1b, 0xc5,
- 0xe6, 0xff, 0x39, 0x9f, 0xc1, 0x03, 0xe3, 0xc5, 0x9b, 0x80, 0x02, 0x4f,
- 0x17, 0xed, 0x04, 0x40, 0x99, 0x0a, 0x0a, 0x5c, 0x10, 0xbc, 0x9f, 0xa9,
- 0x92, 0xf2, 0xbc, 0x4c, 0x4e, 0x69, 0xeb, 0x13, 0xff, 0x84, 0x84, 0x6f,
- 0x84, 0x3c, 0x12, 0x37, 0xc1, 0x06, 0xcf, 0x62, 0x6f, 0xf3, 0x3a, 0xe7,
- 0x82, 0x04, 0x36, 0x48, 0xf1, 0xf0, 0x82, 0xbf, 0xf8, 0xaf, 0x5f, 0xc6,
- 0x98, 0xb1, 0xb2, 0x9d, 0xec, 0xb3, 0x7a, 0xb7, 0xff, 0x0f, 0xe0, 0x9d,
- 0xa9, 0xbf, 0xbb, 0xfc, 0x66, 0x2b, 0xd4, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xad, 0x64, 0x08, 0x5f, 0x51, 0xbf, 0x81, 0xb7, 0x13, 0xdf, 0x20,
- 0x88, 0xe9, 0xc3, 0xe3, 0x3f, 0x15, 0x80, 0xe2, 0x01, 0x61, 0x53, 0x3c,
- 0x07, 0x04, 0x25, 0x35, 0x33, 0xfc, 0x67, 0xfd, 0xff, 0xff, 0x8d, 0xc7,
- 0x7f, 0xff, 0xf2, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xff,
- 0xff, 0xfc, 0x29, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xfd, 0xff, 0xfe, 0x6f,
- 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x10,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0x98,
- 0x4e, 0x83, 0x02, 0x56, 0xb4, 0x9a, 0x19, 0x89, 0x8a, 0xff, 0xff, 0xff,
- 0x7e, 0x18, 0x30, 0x29, 0xc0, 0x1e, 0x36, 0x98, 0x58, 0x48, 0xfb, 0x58,
- 0xe1, 0xa9, 0xe2, 0x3e, 0x3a, 0x44, 0xf8, 0xed, 0xa8, 0x97, 0x16, 0x1c,
- 0x07, 0x0c, 0x07, 0xf0, 0x97, 0xe0, 0x80, 0x5a, 0x1d, 0xdb, 0x98, 0x9e,
- 0xee, 0x71, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0xdc, 0x60, 0x1e, 0x2c, 0x9c,
- 0x12, 0x3d, 0x80, 0xd2, 0xb7, 0x1b, 0x68, 0x3d, 0xf5, 0xb1, 0x93, 0x3f,
- 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x62, 0x62, 0x30, 0x09, 0xc2, 0xab, 0x60,
- 0xfc, 0xd1, 0xf8, 0x3f, 0xf9, 0xd6, 0x57, 0x83, 0x4b, 0x21, 0x75, 0xc9,
- 0x8e, 0x0c, 0x7d, 0xa1, 0xf6, 0x94, 0x28, 0xfa, 0x02, 0xbf, 0x0c, 0x57,
- 0x55, 0x15, 0xff, 0x84, 0x9e, 0xfa, 0x01, 0x78, 0x63, 0x15, 0xf0, 0xea,
- 0xa1, 0x82, 0x75, 0x84, 0x0d, 0x00, 0xc8, 0x31, 0xf0, 0xc7, 0xc3, 0xd5,
- 0x7e, 0x47, 0xf1, 0xaf, 0xb0, 0x4d, 0x60, 0x25, 0x6b, 0x9f, 0x9e, 0x09,
- 0xeb, 0x1b, 0x06, 0xd2, 0xa5, 0xff, 0xef, 0xe3, 0x20, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x2e, 0xac, 0x55, 0x80, 0x82, 0xf9, 0x5f, 0xf5, 0xf8, 0xcf,
- 0xbf, 0x84, 0x3f, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6, 0xff, 0x27, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xec, 0x61,
- 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc2, 0x76, 0x43, 0x4f, 0xfb,
- 0xc3, 0x31, 0x7c, 0x48, 0xf6, 0x06, 0xbe, 0xdf, 0xe0, 0x08, 0x15, 0x29,
- 0xb8, 0xdf, 0xa9, 0x9e, 0x26, 0x2b, 0xff, 0xff, 0xf9, 0x82, 0x58, 0xcb,
- 0x47, 0xe5, 0x3f, 0x0e, 0x27, 0xd1, 0xff, 0xf8, 0xa4, 0x1a, 0x4f, 0xe3,
- 0x72, 0x10, 0xee, 0x24, 0x7a, 0x03, 0xfd, 0x4c, 0x35, 0x4c, 0x8e, 0x44,
- 0x1d, 0x8f, 0x9e, 0x70, 0x32, 0x98, 0xd9, 0xad, 0x83, 0x80, 0xc6, 0x03,
- 0x64, 0x0e, 0xb5, 0xf3, 0x76, 0x7f, 0xf4, 0x63, 0x4b, 0x73, 0xc0, 0x8f,
- 0xf0, 0xfe, 0x4d, 0x65, 0x24, 0x31, 0xcb, 0x61, 0x01, 0x7f, 0x23, 0xae,
- 0xf4, 0x6c, 0xed, 0x1d, 0x5e, 0xf0, 0xeb, 0xfc, 0x43, 0xff, 0xd9, 0xff,
- 0x1e, 0x44, 0x67, 0x96, 0x44, 0x2c, 0xae, 0x16, 0x58, 0x39, 0x11, 0x9e,
- 0x5a, 0x4f, 0x81, 0x07, 0xf1, 0x22, 0xfe, 0x0c, 0xaf, 0x7f, 0x74, 0x7d,
- 0xee, 0x2c, 0x23, 0x18, 0xd2, 0x2d, 0x9f, 0x88, 0xa5, 0x8a, 0xff, 0xff,
- 0xfe, 0x30, 0xdc, 0x23, 0xf3, 0xd3, 0xd7, 0x32, 0xe6, 0x9c, 0x7e, 0xd8,
- 0x61, 0x33, 0xfa, 0x0c, 0x90, 0x20, 0x13, 0x30, 0xbc, 0x1d, 0x66, 0xfc,
- 0x42, 0x4c, 0xc1, 0xed, 0xf8, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0xc5, 0xa4,
- 0x71, 0x40, 0x9f, 0x0b, 0x18, 0x53, 0xc8, 0xbc, 0xe7, 0xc1, 0x9f, 0x82,
- 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f, 0x20, 0x88, 0xdb, 0x37,
- 0xff, 0xe4, 0x50, 0x42, 0x68, 0x03, 0x23, 0x14, 0x66, 0x43, 0xe0, 0x07,
- 0x20, 0xfc, 0x3c, 0xcd, 0xfb, 0xde, 0x31, 0x4a, 0x59, 0x38, 0x02, 0x19,
- 0x58, 0x7c, 0xc7, 0xbf, 0x20, 0x06, 0xa0, 0xa4, 0xc8, 0x0b, 0xa6, 0x08,
- 0x72, 0x1d, 0xbb, 0x80, 0xcc, 0x05, 0x4c, 0x0b, 0x65, 0x06, 0x0b, 0xff,
- 0xd8, 0x28, 0x03, 0xad, 0x7a, 0x3e, 0x78, 0x7f, 0xf7, 0xff, 0xff, 0xfc,
- 0x41, 0x15, 0x88, 0x82, 0x03, 0x60, 0x1e, 0xed, 0xc5, 0xa8, 0x70, 0x07,
- 0x55, 0x70, 0x7a, 0x1c, 0xc1, 0xcd, 0x1f, 0x0f, 0xfc, 0x24, 0xc3, 0xe9,
- 0xa0, 0x66, 0x3c, 0xad, 0x40, 0xbe, 0x00, 0x8a, 0x68, 0x19, 0x8e, 0x6a,
- 0xd4, 0x00, 0x8a, 0x68, 0x19, 0x8a, 0x6a, 0xd5, 0xe1, 0xce, 0x69, 0x5b,
- 0xc8, 0x9b, 0xf0, 0x99, 0x63, 0x80, 0x7f, 0x10, 0x3f, 0x01, 0xf8, 0x40,
- 0x0e, 0x35, 0x3c, 0xf4, 0xbf, 0xa1, 0x61, 0x49, 0x40, 0x03, 0x2b, 0x77,
- 0x77, 0x5f, 0xff, 0xff, 0x85, 0x5b, 0x26, 0x46, 0x47, 0x55, 0xef, 0xff,
- 0xcc, 0x14, 0xfa, 0x45, 0x3e, 0x13, 0x37, 0xc0, 0x31, 0xff, 0x3a, 0x81,
- 0x81, 0x8f, 0x5c, 0x3b, 0xf9, 0xfe, 0x00, 0x93, 0xf7, 0x24, 0x1c, 0xf8,
- 0x4d, 0xc3, 0x28, 0x3f, 0x0c, 0x8a, 0xd8, 0x1f, 0x81, 0x0d, 0x42, 0x1d,
- 0xe0, 0x51, 0xdc, 0x56, 0x50, 0xb4, 0xd1, 0x84, 0x2e, 0x1d, 0x3f, 0xa3,
- 0xc4, 0xe6, 0xa7, 0xa7, 0xd2, 0x98, 0xa1, 0x94, 0x7d, 0x82, 0xd8, 0x3f,
- 0x0f, 0x5d, 0x98, 0x35, 0xba, 0x3e, 0x06, 0x64, 0x1f, 0x76, 0xd9, 0x3f,
- 0xf8, 0x82, 0x16, 0x12, 0x61, 0x60, 0x71, 0xde, 0xc2, 0x92, 0x80, 0x08,
- 0xad, 0xf7, 0x77, 0x7e, 0xfd, 0xf8, 0x01, 0xa0, 0xe6, 0x66, 0x89, 0x3c,
- 0xbd, 0xff, 0xfe, 0x02, 0x62, 0x90, 0x47, 0x99, 0x42, 0x3c, 0xea, 0xed,
- 0xcc, 0x46, 0x32, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb1, 0x84, 0x57,
- 0x21, 0x21, 0x74, 0x00, 0x27, 0xf2, 0xa0, 0xec, 0x2b, 0x3e, 0x02, 0x66,
- 0xb8, 0x0f, 0xfa, 0xb2, 0xf0, 0x8a, 0xc3, 0x3b, 0xb2, 0xf8, 0x11, 0xdd,
- 0x01, 0xfe, 0x2d, 0xa4, 0x1b, 0xef, 0x13, 0x13, 0xf8, 0xde, 0x3c, 0x46,
- 0xd2, 0x0f, 0xc3, 0xf8, 0x22, 0x6c, 0x0f, 0xde, 0x68, 0x58, 0x45, 0xc1,
- 0xfa, 0x3f, 0xc5, 0xb1, 0x37, 0xf0, 0x3f, 0xd4, 0x9f, 0xf0, 0xca, 0x26,
- 0xcc, 0xd9, 0x9d, 0xef, 0x7c, 0x22, 0xb8, 0x04, 0x8f, 0xd7, 0xb0, 0x6e,
- 0x7f, 0xba, 0x4a, 0x66, 0x5e, 0x13, 0x00, 0x8f, 0x5f, 0x87, 0xfc, 0x7b,
- 0x4f, 0xf0, 0x7e, 0x01, 0xff, 0xdb, 0x01, 0x3b, 0x5c, 0x05, 0xf2, 0xc4,
- 0xfb, 0x03, 0xfd, 0x5f, 0xed, 0x48, 0x0f, 0xf1, 0x78, 0x43, 0x91, 0xe1,
- 0xe8, 0x31, 0x1f, 0xda, 0xa6, 0x19, 0xbd, 0x87, 0xf1, 0x0a, 0xd0, 0x4a,
- 0xba, 0x9b, 0x08, 0xd8, 0x31, 0x66, 0xda, 0x04, 0xbc, 0xbe, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0,
- 0x87, 0xff, 0xef, 0xff, 0xf3, 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xab, 0x57, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x16, 0x51, 0x38, 0x69, 0x0b, 0x2e, 0x4c,
- 0x49, 0x62, 0xbf, 0xfd, 0xfb, 0xff, 0xdf, 0xac, 0x50, 0x80, 0x24, 0xde,
- 0x73, 0xf5, 0x8c, 0x75, 0x78, 0x2e, 0x20, 0xad, 0xbe, 0x00, 0x4c, 0x39,
- 0x43, 0xff, 0x71, 0x3a, 0xf5, 0x5e, 0xb9, 0x6c, 0x6c, 0xa4, 0x90, 0x48,
- 0x81, 0x27, 0x07, 0x5c, 0x93, 0x31, 0xd6, 0xde, 0xd6, 0xf6, 0xf1, 0xd0,
- 0x12, 0xda, 0x95, 0x15, 0x7f, 0xc5, 0x7f, 0xfb, 0xf5, 0x8c, 0xf0, 0xc2,
- 0x69, 0x6e, 0xc8, 0x04, 0xb7, 0x44, 0x66, 0x5e, 0x16, 0xff, 0xcd, 0x9e,
- 0x03, 0x89, 0x71, 0xcd, 0x07, 0x5e, 0x97, 0x04, 0xb7, 0x87, 0x58, 0x62,
- 0x4c, 0xcd, 0x5d, 0x9b, 0x44, 0xe1, 0x8f, 0xff, 0xc8, 0xa0, 0x84, 0xb0,
- 0x02, 0x23, 0xdc, 0x99, 0xa3, 0xf7, 0xcd, 0xfa, 0xca, 0x4f, 0x82, 0x58,
- 0xca, 0x32, 0x1b, 0xfb, 0xff, 0xf7, 0xe4, 0xc3, 0x21, 0x01, 0x08, 0x11,
- 0x5e, 0xd3, 0x37, 0xd3, 0x9f, 0xf8, 0x09, 0x9b, 0xba, 0xff, 0x09, 0x07,
- 0x28, 0x03, 0xa7, 0xec, 0xe3, 0x7d, 0x49, 0x41, 0x48, 0x9f, 0x71, 0xaa,
- 0x4e, 0x3c, 0xe1, 0x89, 0x4a, 0x1b, 0x5b, 0xf0, 0x99, 0x78, 0xfe, 0x61,
- 0x2b, 0x05, 0x59, 0xfe, 0x18, 0x04, 0x9e, 0x9f, 0x30, 0x03, 0x82, 0x7e,
- 0x08, 0x9f, 0x1f, 0xe0, 0xe1, 0xb8, 0xb7, 0x7e, 0x04, 0xff, 0x8f, 0x4a,
- 0xbb, 0x7c, 0x73, 0xe8, 0x35, 0x13, 0x86, 0x12, 0x69, 0x0e, 0x78, 0x4f,
- 0x16, 0x30, 0x32, 0x8b, 0x03, 0xfa, 0x01, 0xf8, 0xf8, 0x20, 0x7b, 0x7c,
- 0x76, 0xc9, 0x11, 0x90, 0x4e, 0x10, 0x60, 0x01, 0x76, 0xf8, 0xd8, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x81, 0x0b, 0xbe, 0x5d, 0x7c,
- 0x63, 0xfd, 0xfc, 0x21, 0xdf, 0xe5, 0xdf, 0xff, 0xff, 0xff, 0xc9, 0xff,
- 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff, 0x37, 0xf9, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xed,
- 0x69, 0x01, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xc4, 0x4a, 0x27, 0x1d, 0x68,
- 0x09, 0x77, 0x76, 0xb6, 0xc4, 0xf6, 0x48, 0x89, 0xb8, 0x08, 0xe8, 0xf4,
- 0x6c, 0x3c, 0x5f, 0xff, 0xff, 0xff, 0xfc, 0x50, 0x88, 0x12, 0xb5, 0xa4,
- 0xd5, 0x14, 0xd3, 0x2b, 0x4d, 0xde, 0x63, 0x00, 0xfd, 0x14, 0x4e, 0xe9,
- 0x17, 0x46, 0xac, 0xf9, 0x8e, 0x9f, 0x9b, 0x0d, 0x4e, 0x09, 0x8d, 0xff,
- 0x32, 0x0c, 0xbf, 0xf8, 0x13, 0x7e, 0x0f, 0x7e, 0x6f, 0x63, 0xde, 0x74,
- 0x4a, 0xc6, 0x38, 0x36, 0x23, 0x68, 0xea, 0x61, 0xaa, 0x1b, 0xbe, 0x5b,
- 0xba, 0xfd, 0x0d, 0xf1, 0xe9, 0x5e, 0x63, 0x4d, 0x60, 0x0c, 0xcf, 0x6a,
- 0x05, 0x91, 0xfe, 0xe5, 0xca, 0xc6, 0x43, 0x52, 0xc4, 0x7b, 0x1b, 0xb3,
- 0xc3, 0x4e, 0xa9, 0x0b, 0xcd, 0xcc, 0xcb, 0xe0, 0x3a, 0x87, 0x61, 0xc2,
- 0x8b, 0x00, 0xc6, 0x2e, 0xbc, 0xde, 0xbf, 0xde, 0xd7, 0xea, 0xb5, 0xb7,
- 0x8a, 0xff, 0xff, 0xff, 0x9b, 0xfa, 0xed, 0x76, 0x55, 0x8c, 0x36, 0x06,
- 0xcd, 0x4b, 0x70, 0x2a, 0x38, 0x26, 0xb0, 0x78, 0xfd, 0x07, 0x49, 0x9f,
- 0xa5, 0xe5, 0x75, 0xb5, 0x9f, 0xef, 0x07, 0x21, 0x8c, 0xc2, 0xf8, 0xbc,
- 0x3f, 0xe1, 0x22, 0x90, 0x60, 0xf8, 0x30, 0x49, 0x07, 0x99, 0xd6, 0x2a,
- 0xac, 0x5d, 0x5a, 0x78, 0x9e, 0x11, 0x2a, 0x7a, 0x38, 0x5d, 0xa8, 0xd4,
- 0xae, 0x13, 0xb3, 0xc1, 0x5e, 0x99, 0xf2, 0x7f, 0xff, 0xff, 0xcc, 0x81,
- 0x5c, 0x07, 0xfe, 0x12, 0x4d, 0x66, 0xc2, 0x4f, 0x52, 0x98, 0x85, 0x94,
- 0x4d, 0x46, 0x9a, 0x79, 0xa5, 0xb3, 0xfc, 0x4c, 0x6e, 0x78, 0x8d, 0x01,
- 0x06, 0x10, 0x89, 0xf8, 0x0f, 0xbd, 0x33, 0x81, 0x8a, 0x69, 0x9a, 0xf1,
- 0xde, 0xe0, 0xc6, 0x2b, 0x00, 0x77, 0x7b, 0x30, 0xf7, 0x28, 0x92, 0x9a,
- 0x09, 0x3b, 0x0a, 0x3a, 0x66, 0x0f, 0x2d, 0xb2, 0x16, 0x41, 0x98, 0x18,
- 0xf3, 0x5e, 0x3b, 0xd8, 0x89, 0xef, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xb5, 0xa4, 0x0e, 0x7e, 0x5f, 0x5f, 0xf1, 0x9f, 0xf7, 0xff,
- 0x08, 0xff, 0xc1, 0x6f, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9,
- 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x99, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0xc5,
- 0xe3, 0xa6, 0xdb, 0xf7, 0xf3, 0x70, 0xf3, 0x76, 0x8b, 0x2b, 0x4a, 0x8f,
- 0x29, 0x74, 0xd3, 0xfd, 0xe2, 0xbf, 0xff, 0xf7, 0x98, 0x45, 0x14, 0x25,
- 0xfb, 0x5f, 0xbc, 0x22, 0xcc, 0x80, 0xc6, 0x50, 0xe0, 0xce, 0x18, 0x31,
- 0xb7, 0x0f, 0x18, 0x00, 0x1f, 0x0e, 0x18, 0x34, 0x0b, 0x3e, 0xcc, 0xe4,
- 0x8a, 0x63, 0x64, 0x04, 0x4f, 0x83, 0xee, 0xa0, 0x65, 0x30, 0x18, 0xf7,
- 0xea, 0x70, 0x02, 0x39, 0x32, 0xd3, 0x35, 0x60, 0x14, 0xa9, 0x7e, 0x99,
- 0x7f, 0xb3, 0xc1, 0x03, 0xe4, 0x27, 0x59, 0xa5, 0xa1, 0x84, 0xfe, 0xd2,
- 0xfc, 0x26, 0x75, 0x5a, 0x22, 0x74, 0x7b, 0x71, 0x0e, 0x7f, 0x15, 0xff,
- 0xfc, 0x31, 0xc7, 0x80, 0x1a, 0x0e, 0xa9, 0x16, 0x4c, 0x26, 0x7d, 0xac,
- 0x1d, 0x5d, 0x2c, 0x0e, 0xae, 0x4c, 0x10, 0xca, 0x16, 0x5a, 0xf1, 0x93,
- 0x25, 0x7a, 0x79, 0x30, 0x55, 0x39, 0x9f, 0x2b, 0xe0, 0x0b, 0xf3, 0xf0,
- 0xc7, 0xef, 0x7f, 0xf0, 0x91, 0xf8, 0x16, 0x1c, 0x42, 0x84, 0x12, 0x03,
- 0x94, 0x87, 0xc3, 0x02, 0xfb, 0x8f, 0xff, 0x0f, 0x34, 0x49, 0xfe, 0x57,
- 0xfb, 0xeb, 0xfe, 0xff, 0xff, 0x86, 0x19, 0x4c, 0x42, 0xe3, 0xff, 0x09,
- 0x18, 0x23, 0xcf, 0x9f, 0x9d, 0xe5, 0xcc, 0x1d, 0xe5, 0x2c, 0x77, 0xcd,
- 0x27, 0x31, 0x83, 0xf5, 0x78, 0x9d, 0x23, 0xd9, 0xf8, 0x6a, 0x2f, 0x0d,
- 0xfa, 0xeb, 0x1d, 0xb0, 0xcf, 0xae, 0xb1, 0xdc, 0x31, 0xfc, 0x3f, 0xe1,
- 0x41, 0x10, 0x0e, 0xe8, 0xc5, 0xf3, 0xf0, 0x4b, 0xe6, 0xe6, 0x86, 0x22,
- 0x93, 0x06, 0x38, 0x40, 0xc9, 0x92, 0xc8, 0x26, 0x55, 0x49, 0xb8, 0xac,
- 0xaa, 0xce, 0xc5, 0xaf, 0x3b, 0x57, 0x59, 0x84, 0xea, 0x6e, 0x2c, 0xad,
- 0x6a, 0xce, 0x15, 0x27, 0x89, 0x47, 0x58, 0x62, 0x0f, 0x59, 0xa1, 0x4e,
- 0x16, 0x6b, 0x65, 0x90, 0x36, 0x9a, 0x0d, 0xc2, 0xb6, 0xbd, 0x09, 0x70,
- 0x8b, 0xed, 0x7f, 0xf4, 0x6b, 0x13, 0x2a, 0x28, 0xe8, 0x70, 0xc6, 0x88,
- 0x27, 0x39, 0x4e, 0x12, 0xb8, 0x1b, 0x6a, 0x59, 0x4e, 0xd4, 0xa2, 0x93,
- 0x99, 0xa7, 0x12, 0xda, 0xfd, 0xe5, 0x52, 0xa6, 0x76, 0xd4, 0x86, 0x30,
- 0xa7, 0xa4, 0x9a, 0x7b, 0x70, 0x60, 0x2c, 0x83, 0x98, 0x63, 0xce, 0xf1,
- 0xa9, 0x32, 0xa2, 0x54, 0xeb, 0x10, 0xfe, 0x36, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xae, 0x65, 0x81, 0x8e, 0x43, 0x40, 0x8c, 0xad, 0x4c, 0xfe,
- 0xea, 0x49, 0x4b, 0x29, 0x25, 0x2d, 0xfb, 0x60, 0x9b, 0xd8, 0x52, 0x4a,
- 0x5b, 0xf1, 0x04, 0x06, 0x02, 0xc8, 0x12, 0x7e, 0x05, 0xc6, 0xc2, 0xc1,
- 0x60, 0xb5, 0x14, 0xa5, 0x2d, 0xe4, 0x66, 0x99, 0x57, 0x88, 0x2c, 0x08,
- 0xeb, 0xa6, 0x7e, 0xc6, 0xa7, 0xff, 0xaf, 0x8c, 0xfb, 0xfb, 0x0c, 0x70,
- 0xab, 0x7d, 0x82, 0x96, 0x28, 0x51, 0xc0, 0xc2, 0x44, 0x99, 0x80, 0x8e,
- 0x99, 0x90, 0x1f, 0x42, 0x8c, 0xb4, 0x90, 0x72, 0x39, 0x7c, 0xc0, 0x1a,
- 0x86, 0xc9, 0xcf, 0x30, 0x32, 0x63, 0xc7, 0x03, 0x09, 0x12, 0x66, 0x20,
- 0x05, 0xf8, 0x10, 0xb6, 0x1f, 0x44, 0x12, 0x39, 0xee, 0x18, 0xc3, 0x56,
- 0xfb, 0x05, 0x23, 0x20, 0x23, 0xa6, 0x64, 0x07, 0xd0, 0xa3, 0x2d, 0x24,
- 0x1c, 0x8e, 0x5f, 0x30, 0x06, 0xa1, 0xb2, 0x73, 0xcc, 0x0c, 0x98, 0x23,
- 0x6d, 0xaf, 0xc0, 0x98, 0xc4, 0x00, 0xbf, 0x02, 0x16, 0xc3, 0xe8, 0x82,
- 0x47, 0x3d, 0xc3, 0x18, 0x6a, 0xdf, 0x60, 0xa4, 0x64, 0x04, 0x74, 0xcc,
- 0x80, 0xfa, 0x14, 0x65, 0xa4, 0x83, 0x91, 0xcb, 0xe6, 0x00, 0xd4, 0x36,
- 0x4e, 0x79, 0x81, 0x93, 0x04, 0x6d, 0xb5, 0xf8, 0x13, 0x18, 0x80, 0x17,
- 0xe0, 0x42, 0xd8, 0x7d, 0x10, 0x48, 0xe7, 0xb8, 0x63, 0x0d, 0x58, 0xbe,
- 0x34, 0x8c, 0x80, 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x9b, 0x0a,
- 0xb4, 0xe0, 0x9c, 0x06, 0x5b, 0x6d, 0x82, 0x36, 0xda, 0xfc, 0x09, 0x83,
- 0x67, 0xda, 0xc2, 0x75, 0x79, 0x1f, 0x5d, 0xa4, 0x80, 0x72, 0x0c, 0x89,
- 0x93, 0x26, 0x27, 0x10, 0xc6, 0x1a, 0xb1, 0x68, 0x11, 0xa4, 0x64, 0x02,
- 0x2d, 0xe3, 0x61, 0xd5, 0x3a, 0x0c, 0x4c, 0xd8, 0x55, 0xa7, 0x04, 0xe0,
- 0x32, 0xdb, 0x6d, 0xc3, 0x35, 0x9e, 0x93, 0x37, 0x68, 0x4e, 0xaf, 0x23,
- 0xeb, 0xb4, 0x90, 0x0e, 0x41, 0x91, 0x32, 0x64, 0xc4, 0xe2, 0x18, 0xc3,
- 0x56, 0x2d, 0x02, 0x34, 0x8c, 0x80, 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41,
- 0x89, 0x9b, 0x0a, 0xb4, 0xe0, 0x9c, 0x06, 0x5b, 0x6d, 0xb8, 0x66, 0xb3,
- 0xd2, 0x66, 0xed, 0x09, 0xd5, 0xe4, 0x7d, 0x76, 0x92, 0x01, 0xc8, 0x32,
- 0x26, 0x4c, 0x98, 0x9c, 0x43, 0x18, 0x6a, 0xc7, 0xa0, 0x53, 0x8c, 0x80,
- 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x9b, 0x0a, 0xb4, 0xe1, 0x80,
- 0x18, 0x34, 0x38, 0x66, 0xb3, 0xd2, 0x66, 0xed, 0x09, 0xd5, 0xe4, 0x7d,
- 0x76, 0xd6, 0x14, 0x1e, 0x16, 0x44, 0xcd, 0x3e, 0x4d, 0x50, 0xc7, 0xd4,
- 0xcc, 0x29, 0x64, 0xe3, 0x20, 0x11, 0x6f, 0x1b, 0x0e, 0xa9, 0xd0, 0x62,
- 0x65, 0x80, 0x91, 0x86, 0x00, 0x60, 0xd0, 0xe6, 0xdc, 0x9f, 0x80, 0x8f,
- 0x7d, 0x1e, 0x01, 0x55, 0xd2, 0xaa, 0x2f, 0x50, 0xb8, 0x19, 0x7b, 0x1e,
- 0xc5, 0xb9, 0x37, 0x43, 0x1f, 0x53, 0x30, 0xa5, 0x93, 0x8c, 0x80, 0x45,
- 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x96, 0x02, 0x46, 0x18, 0x01, 0x83,
- 0x43, 0x9b, 0x72, 0x7e, 0x02, 0x3d, 0xf4, 0x78, 0x05, 0x57, 0x4a, 0xa8,
- 0xbd, 0x42, 0xe0, 0x65, 0xec, 0x7b, 0x16, 0xe4, 0xdd, 0x0c, 0x7d, 0x4c,
- 0xc2, 0x96, 0x4e, 0x32, 0x01, 0x16, 0xf1, 0xb0, 0xea, 0x9d, 0x06, 0x26,
- 0x58, 0x09, 0x18, 0x60, 0x06, 0x0d, 0x0e, 0x6d, 0xc9, 0xf8, 0x08, 0xf7,
- 0xd1, 0xe0, 0x15, 0x5d, 0x2a, 0xa2, 0xf5, 0x0b, 0x81, 0x97, 0xb1, 0xec,
- 0x5b, 0x93, 0x74, 0x31, 0xf3, 0x54, 0x0a, 0x5b, 0xc6, 0x40, 0x4d, 0x99,
- 0x84, 0x9f, 0xa9, 0xea, 0xa5, 0x22, 0xc0, 0x48, 0xc1, 0xc1, 0xe9, 0xe7,
- 0xb9, 0xb7, 0x27, 0xe0, 0x23, 0x36, 0xd0, 0xf8, 0x08, 0x58, 0xa4, 0x98,
- 0x7b, 0xe8, 0x88, 0xde, 0xd6, 0x97, 0x55, 0x58, 0x3d, 0xea, 0x18, 0xf9,
- 0xaa, 0x05, 0x1d, 0xa1, 0x8c, 0x80, 0x9b, 0x33, 0x09, 0x3f, 0x53, 0xd5,
- 0x4a, 0x45, 0x80, 0x91, 0x83, 0x83, 0xd3, 0xcf, 0x74, 0xe9, 0x30, 0x23,
- 0x33, 0xaf, 0x80, 0x42, 0xc5, 0x24, 0xc3, 0xdf, 0x44, 0x48, 0xda, 0xd2,
- 0xea, 0xab, 0x07, 0xbd, 0x43, 0x1f, 0x35, 0x40, 0xa3, 0xb4, 0x31, 0x90,
- 0x13, 0x66, 0x61, 0x27, 0xea, 0x7a, 0xa9, 0x48, 0xb0, 0x12, 0x30, 0x70,
- 0x7a, 0x79, 0xee, 0x9d, 0x26, 0x04, 0x66, 0x75, 0xf0, 0x08, 0x58, 0xa4,
- 0x98, 0x7b, 0xe8, 0x89, 0x1b, 0x5a, 0x5d, 0x55, 0x60, 0xf7, 0xa8, 0x63,
- 0xc0, 0x45, 0x02, 0x91, 0x46, 0x08, 0xc8, 0x09, 0xb3, 0x72, 0x7e, 0x97,
- 0xa5, 0x0c, 0x92, 0x80, 0xdb, 0x35, 0xb4, 0xbd, 0x87, 0x74, 0xe9, 0x30,
- 0x34, 0x99, 0x26, 0x32, 0x07, 0x20, 0x9e, 0x29, 0x2b, 0x59, 0x57, 0x11,
- 0x9a, 0x28, 0x86, 0x05, 0x40, 0x32, 0x6f, 0x14, 0x60, 0xbc, 0x07, 0xf8,
- 0x2a, 0xaa, 0x09, 0xf9, 0x86, 0x83, 0x2a, 0xf9, 0x92, 0x00, 0xc8, 0x4e,
- 0xce, 0x11, 0xb6, 0xd6, 0x34, 0x9a, 0x4c, 0x2a, 0x07, 0x20, 0x4e, 0xd1,
- 0x57, 0x95, 0x71, 0x19, 0xaa, 0x98, 0x63, 0x19, 0xa1, 0x20, 0x71, 0x46,
- 0x0b, 0xe3, 0xbe, 0x8b, 0x22, 0x2d, 0x0a, 0x49, 0xc3, 0x69, 0x06, 0x03,
- 0x27, 0xf9, 0xe4, 0x1e, 0x8f, 0x7c, 0x23, 0x6d, 0xac, 0x69, 0x34, 0x98,
- 0x54, 0x0c, 0x41, 0x3c, 0x64, 0xad, 0x65, 0x73, 0x13, 0x4d, 0x54, 0xc3,
- 0x1f, 0x36, 0x40, 0xe2, 0x0d, 0xb9, 0x63, 0xf0, 0x03, 0x26, 0xec, 0xcc,
- 0x26, 0xe6, 0x8c, 0xf4, 0x07, 0xd0, 0x8d, 0x01, 0x91, 0x59, 0x55, 0x66,
- 0x0c, 0x11, 0xe1, 0x1b, 0x6d, 0x63, 0x49, 0xa4, 0xc2, 0xa0, 0x72, 0x06,
- 0xc1, 0xa5, 0x81, 0xa5, 0xfa, 0xee, 0x21, 0x71, 0xd2, 0x18, 0xf9, 0x92,
- 0x7e, 0xd8, 0xc8, 0x01, 0x93, 0x76, 0x66, 0x13, 0x73, 0x46, 0x7a, 0x03,
- 0xe8, 0x52, 0x41, 0x78, 0x07, 0x95, 0x66, 0x0c, 0x11, 0xf0, 0x99, 0xf6,
- 0xbd, 0x62, 0x62, 0xe2, 0x98, 0x64, 0x1a, 0x5e, 0x1c, 0xee, 0x24, 0x78,
- 0xf7, 0xab, 0x30, 0xc7, 0xcc, 0x93, 0xf6, 0xc6, 0x40, 0x0c, 0x9b, 0xb3,
- 0x30, 0x9b, 0x9a, 0x33, 0xd0, 0x1f, 0x42, 0x92, 0x0b, 0xc0, 0x3c, 0xab,
- 0x30, 0x60, 0x8f, 0x84, 0xcf, 0xb5, 0xd6, 0x26, 0x2e, 0x29, 0x86, 0x41,
- 0xa5, 0xe1, 0xce, 0xe2, 0x47, 0x8f, 0x7a, 0xb3, 0x0c, 0x7d, 0xc9, 0x3e,
- 0x8c, 0x51, 0x90, 0x03, 0x26, 0xec, 0xcc, 0x26, 0xe6, 0x26, 0x4b, 0xcc,
- 0xe5, 0xa3, 0x02, 0x7f, 0x18, 0x56, 0xc9, 0x4a, 0x76, 0x8f, 0x09, 0x9f,
- 0x6b, 0xac, 0x4c, 0x6b, 0xe1, 0x3b, 0x43, 0xfd, 0xb0, 0x62, 0xc7, 0xb2,
- 0x09, 0xe9, 0x98, 0x62, 0xcc, 0x0d, 0xf8, 0x96, 0x17, 0x20, 0x4e, 0x4c,
- 0x95, 0xc9, 0xa2, 0x17, 0x21, 0x0a, 0xca, 0x8e, 0x4d, 0x69, 0xa4, 0xe3,
- 0x65, 0xd6, 0xdc, 0xdd, 0xde, 0x58, 0x0d, 0x62, 0x63, 0xc3, 0xdc, 0x82,
- 0x72, 0xac, 0x96, 0xb1, 0xb8, 0x06, 0xd9, 0xe3, 0xdf, 0xef, 0x0c, 0x23,
- 0x6d, 0xc6, 0x82, 0x58, 0x5e, 0x4f, 0x43, 0xd7, 0xa5, 0x72, 0x6a, 0x24,
- 0x5d, 0xaa, 0x8e, 0x4d, 0x69, 0xa4, 0xe3, 0x65, 0xd6, 0xdc, 0xdd, 0xde,
- 0x38, 0x0c, 0x62, 0x63, 0xc3, 0xdc, 0x82, 0x61, 0x41, 0xe1, 0x37, 0x00,
- 0xdb, 0x3c, 0x7b, 0xfd, 0xe1, 0x84, 0x6d, 0xb8, 0xd0, 0x4b, 0x0b, 0xc9,
- 0xe8, 0x7a, 0xf4, 0xae, 0x4d, 0x44, 0x8b, 0xb5, 0x51, 0xc9, 0xad, 0x34,
- 0x9c, 0x6c, 0xba, 0xdb, 0x9b, 0xbb, 0xc7, 0x01, 0x8c, 0x4c, 0x78, 0x7b,
- 0x90, 0x4c, 0x28, 0x3c, 0x26, 0xe0, 0x1b, 0x67, 0x8f, 0x7f, 0xbc, 0x30,
- 0x9b, 0x30, 0x44, 0x41, 0x3f, 0x13, 0x93, 0xd0, 0xf5, 0xee, 0x44, 0xc2,
- 0x24, 0x5d, 0xaa, 0x9c, 0x97, 0xa6, 0x2c, 0x7b, 0xb3, 0xbb, 0xa8, 0x6f,
- 0x5f, 0x8e, 0x03, 0x18, 0x19, 0x2b, 0x6e, 0xc4, 0xbf, 0x02, 0x61, 0x41,
- 0xe1, 0x2f, 0xd5, 0x26, 0xa1, 0x8e, 0xcc, 0x11, 0x40, 0x4e, 0x38, 0x9c,
- 0x97, 0x93, 0xe7, 0x91, 0x30, 0x42, 0x78, 0x7b, 0x95, 0x4e, 0x4b, 0xd3,
- 0x16, 0x3d, 0xd9, 0xdd, 0xd4, 0x37, 0xaf, 0xc3, 0x07, 0x97, 0xb4, 0xc9,
- 0x5b, 0x70, 0x6b, 0xff, 0xd0, 0x77, 0xd1, 0x12, 0x10, 0xcd, 0x01, 0xa5,
- 0x6c, 0x31, 0xd9, 0x82, 0x28, 0x09, 0xc7, 0x13, 0x92, 0xf2, 0x7c, 0xf2,
- 0x26, 0x08, 0x4f, 0x0f, 0x72, 0xa9, 0xc9, 0x7a, 0x62, 0xc7, 0xbb, 0x3b,
- 0xba, 0x86, 0xf5, 0xf8, 0x60, 0xf2, 0xf6, 0x99, 0x2b, 0x6e, 0x0d, 0x7f,
- 0xfa, 0x0e, 0xfa, 0x22, 0x42, 0x19, 0xa0, 0x34, 0xad, 0x86, 0x3b, 0x36,
- 0x08, 0x09, 0xc7, 0x79, 0x2f, 0x27, 0xcf, 0x22, 0x60, 0x84, 0xf0, 0xf7,
- 0x2a, 0x9c, 0x97, 0xa6, 0x2c, 0x7b, 0xe0, 0xe8, 0x6f, 0x5e, 0x18, 0x3c,
- 0xbd, 0xa6, 0x4a, 0xdb, 0x83, 0x5f, 0xfe, 0x83, 0xbe, 0x88, 0x90, 0x86,
- 0x68, 0x0d, 0x2b, 0x7d, 0x7f, 0x0c, 0x76, 0xd8, 0x11, 0x91, 0xb2, 0xc4,
- 0xc8, 0x8f, 0x8f, 0x79, 0x75, 0xc6, 0x06, 0xef, 0x67, 0x8e, 0x9f, 0xee,
- 0x01, 0x41, 0xea, 0x49, 0xc9, 0x4e, 0x60, 0x42, 0x29, 0xd5, 0x15, 0x78,
- 0x66, 0x4f, 0xf4, 0xf8, 0x3d, 0x0c, 0x76, 0xd8, 0x11, 0x91, 0xb2, 0xc4,
- 0xc8, 0x8f, 0x8f, 0x79, 0x75, 0xe4, 0xa0, 0xdd, 0xec, 0xf1, 0xd3, 0xfd,
- 0xc0, 0xa0, 0xf2, 0x92, 0x72, 0x53, 0x98, 0x10, 0x8d, 0x7c, 0x55, 0xe1,
- 0x99, 0x3f, 0xd3, 0xe0, 0xf4, 0x31, 0xdb, 0x64, 0x46, 0x46, 0x8f, 0x72,
- 0x23, 0xe3, 0xde, 0x5d, 0x79, 0x28, 0x37, 0x7b, 0x3c, 0x74, 0xff, 0x81,
- 0x41, 0xe5, 0x24, 0xe4, 0xa7, 0x30, 0x21, 0x1a, 0xf8, 0xab, 0xc3, 0x32,
- 0x7f, 0xa7, 0xc1, 0xeb, 0xfe, 0x18, 0xc7, 0xb2, 0x23, 0x23, 0x7c, 0x4e,
- 0xe5, 0x3e, 0x3d, 0xcc, 0x1a, 0x07, 0x20, 0x65, 0xa9, 0xc6, 0xd6, 0x38,
- 0x2f, 0xca, 0x01, 0x50, 0x76, 0xe7, 0x27, 0x00, 0x4b, 0x77, 0xa7, 0xc1,
- 0xe4, 0x95, 0x91, 0x57, 0x90, 0xc6, 0x3d, 0x91, 0x12, 0xc1, 0x10, 0x89,
- 0xb5, 0x88, 0x4e, 0xe1, 0xee, 0x01, 0xa0, 0x51, 0x06, 0xdf, 0x45, 0x3a,
- 0xb1, 0x5e, 0x0b, 0xf2, 0x80, 0x54, 0x2e, 0x01, 0x21, 0x38, 0x01, 0x2d,
- 0xde, 0x9f, 0x07, 0xa9, 0xb1, 0x57, 0x90, 0xc6, 0x3d, 0x91, 0x10, 0x18,
- 0x22, 0x11, 0x36, 0xb1, 0x09, 0xdc, 0x3d, 0xc0, 0x34, 0x0a, 0x20, 0xdb,
- 0xe8, 0xa7, 0x56, 0x2b, 0xc1, 0x7e, 0x50, 0x0a, 0x85, 0xc0, 0x24, 0x27,
- 0x00, 0x24, 0x7a, 0xdb, 0x97, 0xda, 0x6c, 0x55, 0xe4, 0x31, 0x8e, 0x2c,
- 0x88, 0xc0, 0xdf, 0x13, 0x6b, 0x01, 0x23, 0x7d, 0x1e, 0x06, 0x81, 0x44,
- 0x1f, 0x73, 0x77, 0x15, 0x26, 0x99, 0xb5, 0x77, 0x41, 0x7e, 0x50, 0x0a,
- 0x80, 0x2c, 0xd7, 0x24, 0xe0, 0x24, 0x7a, 0xdb, 0x97, 0xd3, 0x3c, 0x88,
- 0x90, 0xc6, 0x98, 0xb2, 0x03, 0x5a, 0x5c, 0x4f, 0x02, 0x61, 0xb1, 0xbd,
- 0x47, 0x8c, 0x14, 0x1e, 0x77, 0xee, 0x6e, 0xe2, 0xa4, 0xd3, 0x36, 0x89,
- 0x5b, 0x08, 0x95, 0xac, 0x0a, 0x7e, 0xd2, 0x61, 0xae, 0x49, 0xd1, 0x06,
- 0x4c, 0x0d, 0x2b, 0x48, 0xe8, 0x44, 0x43, 0x1a, 0x62, 0xc8, 0x0d, 0x69,
- 0x16, 0x27, 0x81, 0x30, 0xd8, 0xde, 0xa3, 0xd2, 0x7c, 0x3d, 0x7b, 0xf7,
- 0x37, 0x71, 0x52, 0x69, 0x9d, 0x12, 0xb6, 0x11, 0x2a, 0xd0, 0x14, 0xff,
- 0xe4, 0xcd, 0x72, 0x4e, 0x88, 0x32, 0x60, 0x69, 0x5a, 0x3f, 0xd1, 0x12,
- 0x18, 0xd3, 0x46, 0x00, 0x6b, 0x00, 0x8e, 0x27, 0x81, 0x30, 0xd8, 0xde,
- 0xa3, 0xd4, 0x14, 0x1e, 0x77, 0xee, 0x6e, 0xea, 0x4c, 0x4e, 0x2d, 0x0e,
- 0xee, 0x08, 0x95, 0xac, 0x0a, 0x7e, 0xd2, 0x66, 0xb9, 0x27, 0x44, 0x19,
- 0x30, 0x34, 0xad, 0x1f, 0xe4, 0x44, 0x86, 0x11, 0xba, 0x71, 0x46, 0x00,
- 0x0c, 0x4c, 0x33, 0x59, 0xe9, 0x75, 0x91, 0xd9, 0x2f, 0x27, 0xce, 0xa3,
- 0x07, 0xb2, 0xc0, 0x66, 0x64, 0xc4, 0xe3, 0xd0, 0xee, 0xe2, 0x13, 0xc3,
- 0xdc, 0x8b, 0x01, 0x8c, 0x0a, 0xac, 0x96, 0x98, 0x14, 0x1e, 0x14, 0x30,
- 0x8d, 0xd3, 0x8a, 0x30, 0x00, 0x62, 0x61, 0x9a, 0xcf, 0x4b, 0xac, 0x8e,
- 0xc9, 0x79, 0x3e, 0x75, 0x18, 0x3d, 0x96, 0x03, 0x33, 0x26, 0x27, 0x1e,
- 0x87, 0x77, 0x10, 0x9e, 0x1e, 0xe4, 0x58, 0x0c, 0x60, 0x55, 0x64, 0xb4,
- 0xc0, 0xa0, 0xf0, 0xa1, 0x84, 0x6e, 0x90, 0x8a, 0x30, 0x40, 0x2e, 0x19,
- 0xac, 0xf4, 0xba, 0x64, 0x76, 0x4b, 0xc9, 0xf3, 0xa8, 0xc1, 0xec, 0xa8,
- 0x6f, 0x5a, 0xe6, 0x4c, 0xe3, 0xb2, 0x13, 0xc3, 0xdc, 0x8b, 0x01, 0x8c,
- 0x0a, 0xac, 0x96, 0x98, 0x14, 0x1e, 0x16, 0x06, 0x93, 0x24, 0xcf, 0xd9,
- 0xe7, 0xbb, 0xae, 0xf6, 0x8e, 0x14, 0x92, 0x55, 0xe0, 0x7f, 0xb2, 0x80,
- 0x8a, 0xd3, 0xae, 0x3b, 0x47, 0x09, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0x04,
- 0x56, 0x9d, 0x71, 0xda, 0x38, 0x49, 0x12, 0x55, 0xe7, 0xfe, 0xe0, 0x22,
- 0xb4, 0xeb, 0x8e, 0xd1, 0xc2, 0x48, 0x92, 0xaf, 0x3f, 0xf6, 0x80, 0x88,
- 0x5a, 0x26, 0xab, 0xc8, 0xe1, 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x02, 0x21,
- 0x68, 0x9a, 0xaf, 0x23, 0x85, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0x08, 0x85,
- 0xa2, 0x6a, 0xbc, 0x8e, 0x14, 0x89, 0x2a, 0xf3, 0xff, 0x70, 0x22, 0x16,
- 0x89, 0xaa, 0xf2, 0x38, 0x52, 0x24, 0xab, 0xcf, 0xfd, 0xc0, 0x88, 0x5a,
- 0x26, 0xab, 0xc8, 0xe1, 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x02, 0x21, 0x68,
- 0x9a, 0xaf, 0x23, 0x85, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0xc4, 0x2d, 0x13,
- 0x55, 0xe1, 0x90, 0xa4, 0x49, 0x57, 0x9f, 0xfb, 0x98, 0x85, 0xa2, 0x6a,
- 0xbc, 0x32, 0x14, 0x89, 0x2a, 0xf3, 0xff, 0x73, 0x10, 0xb4, 0x4d, 0x57,
- 0x86, 0x42, 0x91, 0x25, 0x5e, 0x7f, 0xee, 0x62, 0x16, 0x89, 0xaa, 0xf0,
- 0xc8, 0x52, 0x24, 0xab, 0xcf, 0xfd, 0xcc, 0x42, 0xd1, 0x35, 0x5e, 0x19,
- 0x0a, 0x44, 0x95, 0x79, 0xff, 0xb9, 0x88, 0x5a, 0x26, 0xab, 0xc3, 0x21,
- 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x31, 0x0b, 0x44, 0xd5, 0x78, 0x64, 0x29,
- 0x12, 0x55, 0xe7, 0xfe, 0xd8, 0x11, 0x09, 0xa2, 0x6a, 0xbc, 0x0c, 0x1a,
- 0x55, 0x47, 0x6f, 0xfd, 0xc0, 0x88, 0x4d, 0x13, 0x55, 0xe0, 0x60, 0xd2,
- 0xaa, 0x3b, 0x7f, 0xec, 0x80, 0x36, 0x5a, 0x4d, 0x3f, 0x0c, 0x1a, 0xab,
- 0x6f, 0xff, 0xff, 0xe1, 0x0f, 0xf7, 0xfe, 0x6f, 0xf2, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xee, 0x71,
- 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0x61, 0x3c, 0x01, 0x85, 0xab, 0xe3,
- 0x6f, 0x2f, 0xf0, 0xd6, 0x09, 0xfd, 0xe2, 0x66, 0xe1, 0x23, 0x7a, 0x00,
- 0xfd, 0xfd, 0x3f, 0x18, 0x44, 0xb1, 0x5f, 0xff, 0xff, 0xff, 0xf1, 0x42,
- 0x36, 0xee, 0xbf, 0x1c, 0x81, 0x8c, 0x12, 0xef, 0x6f, 0xf1, 0x71, 0xd1,
- 0x8d, 0x40, 0x87, 0xd0, 0x93, 0x09, 0x2b, 0x99, 0x6b, 0x3f, 0xc2, 0x2c,
- 0x78, 0xfd, 0xc6, 0x60, 0xe0, 0xce, 0x18, 0x30, 0xca, 0x7e, 0x1e, 0x30,
- 0x00, 0x3e, 0x1c, 0x9f, 0x20, 0x9f, 0x20, 0xc2, 0x4f, 0xe8, 0x58, 0x44,
- 0x0c, 0x71, 0xbf, 0x9e, 0xbb, 0x31, 0xc7, 0xda, 0x65, 0x3c, 0xb4, 0x03,
- 0x33, 0x0d, 0x75, 0xe3, 0x4e, 0x02, 0x78, 0xa5, 0x7e, 0xa6, 0xf8, 0x73,
- 0x61, 0xfd, 0xff, 0x09, 0x89, 0x21, 0x00, 0xb2, 0x0c, 0x75, 0x16, 0xb5,
- 0x57, 0x7b, 0xfa, 0x00, 0xe5, 0xb7, 0xd9, 0xf2, 0x79, 0xbf, 0xff, 0xff,
- 0xe6, 0xfc, 0x41, 0x8c, 0xc9, 0x52, 0xd6, 0x4e, 0x02, 0x3a, 0x3d, 0x3f,
- 0x3a, 0xba, 0x04, 0xf0, 0x2f, 0x77, 0xf1, 0xac, 0x60, 0x99, 0x0c, 0xb1,
- 0x23, 0x5c, 0x8b, 0x0d, 0xf8, 0x4c, 0xa8, 0x35, 0xb3, 0x1c, 0xf8, 0x13,
- 0x45, 0x83, 0x7f, 0x26, 0x55, 0x1e, 0xea, 0xd0, 0x88, 0xf9, 0x7f, 0xc8,
- 0x23, 0x02, 0x75, 0x48, 0xd3, 0x8f, 0xfc, 0x9f, 0x81, 0x24, 0x22, 0x36,
- 0x0f, 0x62, 0x30, 0x10, 0x6a, 0xcf, 0xf3, 0x9f, 0xc2, 0x46, 0x6f, 0x8e,
- 0x44, 0xe7, 0x57, 0x10, 0x6b, 0x3f, 0xf0, 0x82, 0xe0, 0x97, 0x80, 0x13,
- 0x3a, 0x80, 0x6e, 0xd0, 0xf1, 0x8f, 0x7e, 0x16, 0x00, 0x05, 0xa7, 0x80,
- 0x01, 0x68, 0xa0, 0x00, 0x5a, 0x28, 0x00, 0x16, 0x81, 0x29, 0x68, 0x02,
- 0x03, 0xf0, 0x86, 0x16, 0x73, 0x48, 0x7c, 0x03, 0xc0, 0x00, 0xb4, 0x31,
- 0x6f, 0xe2, 0x00, 0x9f, 0x50, 0x4f, 0xff, 0xff, 0xff, 0x10, 0x81, 0x15,
- 0xf1, 0xcc, 0x83, 0x13, 0x32, 0xcf, 0x75, 0x88, 0x5c, 0x70, 0x26, 0x74,
- 0x25, 0x9f, 0xd0, 0x4e, 0x5f, 0xde, 0xff, 0x7b, 0xc2, 0xb2, 0xbf, 0xff,
- 0xf0, 0x06, 0x7d, 0xfd, 0x1d, 0xbc, 0x71, 0x05, 0x00, 0x03, 0x11, 0x40,
- 0x00, 0xc4, 0x50, 0x00, 0x31, 0x04, 0x38, 0x00, 0x5b, 0x40, 0x46, 0x29,
- 0x00, 0x20, 0x3f, 0x09, 0xb1, 0xab, 0x7d, 0x6d, 0x15, 0x2a, 0x3c, 0x18,
- 0x21, 0xc0, 0x02, 0xda, 0x8e, 0x52, 0x40, 0x7e, 0x13, 0x7c, 0xa4, 0x80,
- 0xfc, 0x2f, 0xf8, 0xef, 0x67, 0xf3, 0x79, 0x11, 0x14, 0x88, 0xbe, 0x09,
- 0xba, 0xf8, 0x1f, 0xbe, 0x11, 0xb0, 0x25, 0xe7, 0xc6, 0xc0, 0x80, 0x43,
- 0x48, 0x21, 0x3d, 0x78, 0xef, 0x7c, 0x85, 0x80, 0x42, 0xdd, 0x47, 0xd6,
- 0xdf, 0x7e, 0x36, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4, 0x19,
- 0x7f, 0xcb, 0xeb, 0xfe, 0x33, 0xfe, 0xff, 0xe1, 0x0f, 0xff, 0xcb, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xff, 0xf0, 0xa7, 0xff,
- 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9, 0xbf, 0xff, 0x27, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xab, 0xdb, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xf7, 0xfd, 0x93, 0x86, 0x3f, 0xf3,
- 0xfc, 0x82, 0xbf, 0xff, 0xf7, 0xef, 0xdf, 0xc5, 0x20, 0xf7, 0x4b, 0xc0,
- 0xb4, 0x70, 0x56, 0x40, 0xaa, 0x9e, 0x65, 0x8f, 0xe8, 0x32, 0xdf, 0x89,
- 0x16, 0x0d, 0x24, 0x83, 0x34, 0xc5, 0xe7, 0xb3, 0x02, 0xbe, 0x72, 0xf7,
- 0xf4, 0x0a, 0x4c, 0xdf, 0xff, 0xc3, 0x1f, 0x8a, 0xc7, 0x36, 0x62, 0x8b,
- 0x37, 0x03, 0x66, 0xa5, 0x81, 0x0f, 0xbb, 0x3a, 0x97, 0x5e, 0x24, 0xad,
- 0xf6, 0xac, 0x14, 0x3d, 0x1d, 0x9f, 0xbf, 0xe1, 0x87, 0x5c, 0x57, 0xff,
- 0x84, 0x8f, 0x01, 0x0e, 0xe4, 0x8f, 0xad, 0xf0, 0xf5, 0x75, 0xdb, 0xf0,
- 0x7f, 0x68, 0xf5, 0x7f, 0x58, 0x9f, 0x14, 0x00, 0x30, 0x09, 0xff, 0xa4,
- 0x1e, 0x81, 0x40, 0x03, 0xf0, 0x58, 0x96, 0x19, 0x3f, 0xff, 0x86, 0x2d,
- 0x4d, 0xbf, 0xf0, 0x96, 0x64, 0x10, 0x10, 0xda, 0x75, 0x6a, 0x16, 0xc4,
- 0x4f, 0xe7, 0xd7, 0x0c, 0x7d, 0xad, 0xec, 0x6d, 0x85, 0x3c, 0x30, 0xf1,
- 0x82, 0xd9, 0xc2, 0xda, 0xfc, 0x76, 0xc1, 0x2f, 0xff, 0xfe, 0xce, 0x18,
- 0xb5, 0x8b, 0x95, 0xbf, 0x13, 0x8c, 0x88, 0x0e, 0xef, 0x90, 0x20, 0x1f,
- 0xac, 0x76, 0xdf, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaf,
- 0x6d, 0x81, 0xcb, 0xe5, 0xd7, 0xc6, 0x7d, 0xfc, 0x21, 0xff, 0xc9, 0xbf,
- 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xf7, 0xfe,
- 0x6f, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xef, 0x79, 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xef, 0x11, 0x31, 0xf0, 0x02, 0xda, 0x25, 0xb6, 0xc9, 0xba, 0xda, 0x63,
- 0xd3, 0xca, 0xc2, 0x3c, 0xa5, 0xc4, 0x0f, 0x43, 0x7c, 0xbc, 0x57, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xc9, 0xf9, 0x02, 0x18, 0x88, 0xa1, 0x84, 0xa0,
- 0x3a, 0xd1, 0x92, 0x69, 0x76, 0x57, 0xf3, 0x4f, 0x53, 0x86, 0xfa, 0x9e,
- 0x4c, 0x93, 0xe1, 0x0e, 0x4c, 0x48, 0xb8, 0x00, 0x2e, 0x53, 0xa0, 0x97,
- 0xd6, 0xee, 0xef, 0xcd, 0x30, 0x36, 0x47, 0xf9, 0x3c, 0xdf, 0xff, 0xff,
- 0xc5, 0x9a, 0x00, 0x42, 0x1b, 0xa2, 0xb3, 0xff, 0xfd, 0x5f, 0xe8, 0x09,
- 0x40, 0x0e, 0x86, 0xdb, 0xdd, 0x20, 0x61, 0xf9, 0xa0, 0x14, 0x39, 0x9d,
- 0x26, 0xfd, 0x6c, 0x41, 0x54, 0xef, 0xc0, 0x46, 0x53, 0xd3, 0xf3, 0x8b,
- 0xea, 0x67, 0x87, 0x1d, 0x6c, 0xfc, 0x80, 0x39, 0xee, 0xd3, 0x18, 0xb4,
- 0xc3, 0x49, 0xb7, 0x00, 0x67, 0xbf, 0x5c, 0x8b, 0x9f, 0xff, 0xff, 0xf9,
- 0x8b, 0xc0, 0x6f, 0x6b, 0xa9, 0xbf, 0xf3, 0xfc, 0x10, 0x17, 0x03, 0xee,
- 0xf0, 0x3f, 0x79, 0xdf, 0xff, 0xff, 0xbc, 0x44, 0x41, 0xa0, 0x15, 0x15,
- 0x21, 0x97, 0x88, 0xdc, 0xb8, 0xd8, 0xcd, 0x82, 0xc8, 0x9b, 0x31, 0x19,
- 0x00, 0x00, 0x6e, 0x09, 0x99, 0xe0, 0x4d, 0xbf, 0x8f, 0x7f, 0xf5, 0x8d,
- 0x92, 0x23, 0x27, 0xdd, 0xb3, 0xa8, 0x75, 0x9a, 0x39, 0x35, 0x1a, 0x6a,
- 0x4d, 0x79, 0xfd, 0x7d, 0xe0, 0xc7, 0x88, 0x8d, 0x59, 0x8c, 0xe9, 0x87,
- 0xce, 0x98, 0x27, 0x15, 0x40, 0xc3, 0x28, 0x3f, 0x0c, 0x25, 0xaf, 0x80,
- 0xff, 0x1c, 0x00, 0x70, 0xfd, 0xa2, 0x6e, 0x29, 0x7c, 0xc6, 0xde, 0x37,
- 0xe3, 0xbd, 0xfc, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x90, 0x75, 0x37,
- 0xe7, 0x05, 0xe8, 0xcc, 0xea, 0x7a, 0xd4, 0x4d, 0xff, 0x7d, 0xfc, 0x67,
- 0x80, 0x85, 0x65, 0x30, 0xe0, 0x09, 0x07, 0x53, 0x7e, 0x41, 0x7a, 0x33,
- 0x38, 0xf1, 0xfd, 0x3d, 0x6a, 0x0f, 0x7e, 0x6d, 0xdd, 0x11, 0xc3, 0xe9,
- 0xc5, 0x79, 0x2d, 0x9b, 0xf9, 0x20, 0xd5, 0x84, 0x0e, 0xcb, 0xef, 0x73,
- 0x71, 0x22, 0xd8, 0x1f, 0x35, 0xf9, 0x44, 0xd4, 0xdb, 0xe5, 0x71, 0xde,
- 0xf0, 0x89, 0x0b, 0x04, 0x8d, 0x81, 0xf5, 0x83, 0xfb, 0x84, 0xc3, 0xa4,
- 0x8d, 0xa9, 0x83, 0xfa, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xbd, 0xe4, 0x19, 0x7f, 0xcb, 0xeb, 0xfe, 0x33, 0xfe, 0xff, 0xe1, 0x0f,
- 0xff, 0xcb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xff,
- 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9, 0xbf, 0xff,
- 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x35, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x13,
- 0x80, 0x48, 0xb6, 0x93, 0x1c, 0x18, 0xff, 0x4f, 0xeb, 0xd0, 0xcc, 0x4c,
- 0x57, 0xff, 0xff, 0xff, 0x8a, 0x09, 0x13, 0xef, 0xd7, 0x65, 0x78, 0x99,
- 0x34, 0x8c, 0x2f, 0xec, 0x23, 0x5f, 0x52, 0xe0, 0x16, 0x2d, 0x0b, 0x00,
- 0x36, 0x58, 0x6d, 0xa2, 0x62, 0x4f, 0x85, 0xfe, 0xf8, 0x25, 0x8b, 0x00,
- 0xce, 0xe9, 0x7e, 0x93, 0x9c, 0x06, 0x55, 0x66, 0x8d, 0x7d, 0xaf, 0xf4,
- 0x61, 0xac, 0xc4, 0xe5, 0x84, 0x85, 0x22, 0x5d, 0xe7, 0xf9, 0x33, 0x7f,
- 0xfa, 0xf8, 0xb3, 0x50, 0xc3, 0x3b, 0xb8, 0x0a, 0x0a, 0xa3, 0x42, 0xde,
- 0xe7, 0x0d, 0xc6, 0xce, 0xf8, 0x28, 0x7f, 0xff, 0x7e, 0xfb, 0xff, 0xf5,
- 0xe1, 0x8a, 0xc5, 0x99, 0xff, 0xf0, 0x91, 0x7c, 0xd3, 0x60, 0x12, 0x37,
- 0x3a, 0x9e, 0x64, 0xa6, 0x43, 0x60, 0xcd, 0x7d, 0x01, 0x79, 0xf8, 0x63,
- 0x33, 0xeb, 0x86, 0xe2, 0xf4, 0x05, 0x10, 0xc9, 0x8d, 0x87, 0x52, 0x76,
- 0xb8, 0xbb, 0x86, 0x0c, 0xe9, 0x84, 0x9f, 0x3a, 0xe2, 0xc8, 0xc0, 0xc3,
- 0x28, 0x3f, 0x0c, 0xd7, 0x83, 0xcc, 0xc1, 0x11, 0x9c, 0x71, 0xa0, 0xf7,
- 0x78, 0xc8, 0x20, 0x5f, 0x1d, 0xbe, 0x18, 0xff, 0xee, 0x4e, 0x58, 0xc7,
- 0xc0, 0x85, 0xae, 0x66, 0x04, 0x2d, 0x73, 0x2b, 0x4c, 0x69, 0x80, 0x59,
- 0x46, 0x0e, 0xab, 0xfb, 0xc8, 0x0e, 0x03, 0x30, 0x20, 0x39, 0x64, 0x09,
- 0xad, 0x01, 0xfe, 0x25, 0x23, 0x06, 0xa5, 0xf5, 0xc7, 0x6d, 0x44, 0xf6,
- 0x5a, 0x1b, 0x6b, 0xfe, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xb0, 0x75, 0x81, 0x4b, 0xe5, 0xd7, 0xc6, 0x7d, 0xfc, 0x21, 0xfe, 0x5d,
- 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f, 0xbf,
- 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf0, 0x81, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xfe,
- 0x51, 0x38, 0x23, 0xd1, 0xbd, 0xf3, 0xe9, 0xe6, 0x7b, 0x20, 0xd2, 0x0c,
- 0xcf, 0x98, 0x9b, 0x01, 0x84, 0xdd, 0xcb, 0xb1, 0x32, 0x97, 0x01, 0x8d,
- 0x97, 0xb8, 0x7f, 0x2b, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xa8,
- 0x23, 0xd1, 0xf7, 0xe5, 0xa3, 0x84, 0x8c, 0x37, 0xe7, 0x4d, 0x17, 0xeb,
- 0xc2, 0x19, 0x1f, 0x7f, 0xce, 0x0b, 0x56, 0x20, 0xb3, 0x0b, 0x57, 0x84,
- 0xf0, 0x06, 0x8a, 0x96, 0x80, 0x97, 0x17, 0xee, 0xa7, 0x62, 0x5e, 0x0f,
- 0xc2, 0x2c, 0xa1, 0x80, 0xa8, 0x04, 0x0b, 0x04, 0x1e, 0x63, 0x37, 0xa4,
- 0x8c, 0x9d, 0xc3, 0xc8, 0x46, 0x63, 0x40, 0x8c, 0x59, 0x99, 0xcb, 0x95,
- 0xa0, 0x19, 0xd4, 0xe6, 0x63, 0x11, 0x14, 0xef, 0xa7, 0x85, 0xb2, 0xfa,
- 0xb0, 0x3a, 0xc6, 0xd2, 0x23, 0x6a, 0x6b, 0xcd, 0xdb, 0xe0, 0x3d, 0x89,
- 0x60, 0xd9, 0x26, 0x06, 0xec, 0xd0, 0x05, 0xae, 0x07, 0x02, 0xa5, 0x33,
- 0xe3, 0xe0, 0x65, 0x19, 0xac, 0x81, 0x4f, 0xa9, 0xff, 0x59, 0x9b, 0xf9,
- 0x7f, 0x87, 0x84, 0x8a, 0x44, 0xc3, 0x2d, 0x7a, 0x4f, 0xfe, 0x5f, 0x45,
- 0x55, 0x2f, 0x3c, 0x9e, 0x6f, 0xff, 0xff, 0xe2, 0xcd, 0x0e, 0x20, 0x14,
- 0x7a, 0x11, 0x34, 0x78, 0xd5, 0x2c, 0x18, 0x0e, 0x6f, 0xd6, 0xcf, 0x34,
- 0x06, 0xdb, 0xe0, 0x07, 0x05, 0xc8, 0x21, 0x6d, 0x03, 0xcd, 0xb8, 0x53,
- 0xa7, 0xe7, 0x80, 0x0a, 0x7c, 0x53, 0x23, 0x32, 0xd7, 0xff, 0xac, 0xba,
- 0xe4, 0xa7, 0xfd, 0xeb, 0x83, 0x84, 0x4e, 0xfa, 0x9f, 0xbe, 0xfd, 0x4c,
- 0xd7, 0x28, 0x75, 0x67, 0xc6, 0x4f, 0x3e, 0x0f, 0xf9, 0xd9, 0xe8, 0x4c,
- 0x6e, 0x5f, 0xf2, 0x08, 0xc3, 0xe8, 0x27, 0x7f, 0x88, 0x40, 0xde, 0xf9,
- 0x23, 0x7e, 0xfd, 0x1f, 0x13, 0x76, 0xfc, 0x43, 0x52, 0x01, 0x17, 0x0f,
- 0x4a, 0x35, 0xe0, 0x1d, 0xfc, 0x26, 0xb0, 0x41, 0xf0, 0x2e, 0x9c, 0xf0,
- 0x40, 0x42, 0x57, 0x2f, 0x29, 0x48, 0xb0, 0xe4, 0x56, 0xc0, 0xf7, 0x55,
- 0xe5, 0x2f, 0x49, 0x17, 0xcf, 0x7f, 0xff, 0xff, 0xc4, 0x1a, 0x04, 0x6d,
- 0x68, 0xd2, 0xf0, 0x16, 0x73, 0x3b, 0x32, 0xf2, 0x50, 0x49, 0x20, 0x7d,
- 0x4c, 0x58, 0xff, 0xfc, 0x25, 0x09, 0x8d, 0xf0, 0xd3, 0x81, 0xdf, 0x48,
- 0x5f, 0x41, 0xcb, 0x81, 0x98, 0xe9, 0x5a, 0x83, 0xa8, 0xbe, 0x12, 0x2f,
- 0xca, 0xe7, 0xfe, 0x78, 0xd9, 0xbd, 0x7c, 0x4e, 0xab, 0x84, 0xc5, 0x04,
- 0x5a, 0xe0, 0x3f, 0xfb, 0x72, 0x87, 0x05, 0xdb, 0xf9, 0x17, 0xe0, 0x79,
- 0x82, 0x19, 0x09, 0xf5, 0xa1, 0xf3, 0x11, 0x86, 0x26, 0xe4, 0x72, 0xfd,
- 0xfc, 0xf1, 0x38, 0x8f, 0x37, 0xd2, 0x9f, 0x08, 0x42, 0x82, 0x30, 0x01,
- 0x7b, 0x14, 0x9a, 0x25, 0x89, 0x8f, 0x7f, 0xfe, 0x43, 0x50, 0x1b, 0x09,
- 0x69, 0x8e, 0x38, 0xbb, 0x88, 0x04, 0xca, 0x59, 0x9f, 0x12, 0x3d, 0x43,
- 0x1d, 0xcc, 0xe4, 0x84, 0xa0, 0x57, 0x89, 0x26, 0x08, 0x5e, 0x5e, 0x6f,
- 0xcc, 0x21, 0x0d, 0x43, 0xfe, 0x1f, 0x58, 0x02, 0x8c, 0x76, 0x63, 0xaf,
- 0xa5, 0xc3, 0x9b, 0x10, 0xc1, 0x7f, 0xe1, 0x2e, 0x07, 0x10, 0x04, 0xac,
- 0x80, 0x11, 0x17, 0x5f, 0x5f, 0x77, 0xfd, 0xdb, 0xcb, 0x1a, 0xf0, 0xff,
- 0x04, 0xdf, 0xee, 0x1a, 0xbc, 0x21, 0x58, 0x00, 0x63, 0xf7, 0x73, 0xae,
- 0x16, 0x3c, 0x1e, 0x05, 0xcc, 0xc8, 0xc0, 0xd5, 0xd0, 0x15, 0xb4, 0xf3,
- 0x43, 0xe2, 0x61, 0xfb, 0xfb, 0x7e, 0x1f, 0x7d, 0xa5, 0xc7, 0x86, 0xc0,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x35, 0xff, 0x2f, 0x28,
- 0x8e, 0x3d, 0x6a, 0xf1, 0xbf, 0xf7, 0xcd, 0x87, 0x2e, 0x57, 0xf8, 0x43,
- 0xff, 0xf2, 0xf8, 0xcf, 0x27, 0xbf, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f,
- 0xff, 0x7f, 0xff, 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xac, 0x5f, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd7, 0x7e, 0xfc, 0x31, 0xff, 0xa8, 0x7c, 0x2a, 0x27, 0x02,
- 0x1e, 0xc9, 0xff, 0x2f, 0xe0, 0x0b, 0x69, 0x00, 0xf8, 0xce, 0x2f, 0x8a,
- 0xff, 0xff, 0xdf, 0xfe, 0x4f, 0x14, 0x28, 0x01, 0x31, 0x5f, 0x9d, 0x19,
- 0x9a, 0x85, 0xb4, 0xe0, 0x4a, 0x0d, 0xbc, 0x40, 0xfa, 0x31, 0x09, 0x21,
- 0xa0, 0x0e, 0x0b, 0xb2, 0x32, 0x19, 0x5e, 0x9e, 0xef, 0x75, 0x4b, 0xdd,
- 0xcf, 0xa9, 0x58, 0xb9, 0xeb, 0x73, 0xcb, 0xd5, 0x89, 0x33, 0x7f, 0xfb,
- 0xf0, 0xc7, 0xeb, 0x61, 0x80, 0x7b, 0x27, 0x01, 0x19, 0x4f, 0x4f, 0xce,
- 0x63, 0x6b, 0xde, 0xf0, 0x04, 0xde, 0x6b, 0xa9, 0xe7, 0xda, 0x44, 0xc5,
- 0x4f, 0x3f, 0xec, 0x53, 0x3e, 0x7e, 0xfd, 0xfb, 0xf7, 0xfb, 0xff, 0xf7,
- 0xe1, 0x8e, 0x18, 0x3f, 0xfc, 0x25, 0xc0, 0x15, 0xe9, 0xa7, 0x47, 0x88,
- 0x52, 0x65, 0xe0, 0x22, 0xcd, 0xf3, 0xb6, 0x3e, 0xb6, 0xf8, 0xed, 0xf0,
- 0xcc, 0x6e, 0x1a, 0xf0, 0xc7, 0xd2, 0x1c, 0x78, 0x46, 0x0c, 0x80, 0x5f,
- 0x54, 0x07, 0xd4, 0x08, 0xe2, 0x97, 0x34, 0x05, 0x5d, 0x60, 0x62, 0x4e,
- 0x5b, 0x8c, 0x0e, 0xad, 0xdf, 0xd0, 0x25, 0xe3, 0x34, 0x13, 0xe0, 0xe7,
- 0xdb, 0x88, 0xc3, 0x03, 0xdc, 0x7f, 0xf8, 0x7c, 0xa0, 0x9f, 0x52, 0x3a,
- 0x7d, 0x6c, 0xa0, 0x3c, 0x44, 0x69, 0x6f, 0xd7, 0x1b, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x83, 0x2f, 0x97, 0x5f, 0x19, 0xf6, 0xff,
- 0x08, 0x7f, 0x97, 0x7f, 0xff, 0xff, 0xff, 0x27, 0xff, 0xe1, 0x4f, 0xff,
- 0xc2, 0x1f, 0xef, 0xfc, 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x02, 0xbf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xff, 0xc9, 0xff,
- 0x8d, 0x8b, 0x13, 0x81, 0xfe, 0x16, 0x1f, 0x00, 0x0b, 0xe5, 0xe4, 0x3f,
- 0xad, 0xdb, 0xff, 0xdd, 0x31, 0xb3, 0x7f, 0xc3, 0x18, 0x24, 0xa5, 0xc0,
- 0x8c, 0xdd, 0xc8, 0xff, 0x93, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xcc, 0x32,
- 0x1f, 0xc1, 0x1c, 0x01, 0x7f, 0xf3, 0x1a, 0x05, 0x9d, 0x15, 0x99, 0xc8,
- 0x9c, 0xde, 0xd0, 0x08, 0xee, 0x9a, 0x66, 0x37, 0x4d, 0x1b, 0x6d, 0x2c,
- 0x21, 0xb4, 0xc7, 0x06, 0xf2, 0x40, 0xeb, 0x21, 0x76, 0xc6, 0x1c, 0xf6,
- 0x69, 0x6c, 0x57, 0xfa, 0x85, 0xbd, 0x0d, 0x25, 0x4c, 0xda, 0x6f, 0xac,
- 0x07, 0xb1, 0x2c, 0xd0, 0x19, 0xb5, 0x80, 0xcd, 0xa2, 0x94, 0x9f, 0x9e,
- 0x1a, 0x2e, 0x21, 0x17, 0xee, 0xe3, 0xd3, 0xd2, 0x33, 0xf6, 0x14, 0x0c,
- 0xe5, 0xb6, 0x4a, 0x97, 0x74, 0xf9, 0xa2, 0xa0, 0xe4, 0xc9, 0x0f, 0xb5,
- 0xff, 0x09, 0x8b, 0x94, 0x31, 0x2c, 0x0e, 0x6e, 0xdb, 0xdb, 0xe8, 0xe6,
- 0x79, 0x00, 0x96, 0x03, 0x31, 0x7b, 0xdf, 0x26, 0xdb, 0x82, 0xad, 0xc7,
- 0x1b, 0xdd, 0xe1, 0xc9, 0xe6, 0xff, 0xff, 0xf2, 0x78, 0x9f, 0xe2, 0xcd,
- 0x31, 0x45, 0xe8, 0x86, 0x05, 0xc0, 0xc0, 0xa6, 0xfd, 0x72, 0x66, 0x0f,
- 0x6f, 0x80, 0x06, 0x6d, 0xb7, 0xc5, 0x37, 0x39, 0xa5, 0x91, 0xa3, 0x22,
- 0xbb, 0xcf, 0xd0, 0x72, 0x09, 0x1b, 0x55, 0x2b, 0xb5, 0x80, 0x23, 0x93,
- 0x69, 0x04, 0xcc, 0x2d, 0x21, 0x6a, 0x39, 0xd4, 0x60, 0xf0, 0x93, 0x3f,
- 0xbc, 0x31, 0x27, 0x31, 0xf3, 0x9f, 0x0f, 0xaf, 0xef, 0xff, 0x64, 0x60,
- 0x10, 0xca, 0x1a, 0x3f, 0x5c, 0x0c, 0x1f, 0xf9, 0x4b, 0x84, 0x6c, 0x35,
- 0xde, 0xff, 0xff, 0xff, 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x30, 0x76, 0x8c,
- 0x80, 0x61, 0x09, 0xa0, 0xdb, 0x50, 0x30, 0x7e, 0x00, 0x76, 0x8c, 0x80,
- 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x76, 0x9a, 0x01, 0x8c, 0xf2, 0x03,
- 0x6d, 0x5e, 0x0c, 0x1d, 0xf9, 0x3b, 0x2c, 0xc8, 0x63, 0x63, 0x1a, 0xf4,
- 0x26, 0x27, 0xec, 0x55, 0x06, 0x12, 0xf6, 0xb3, 0x40, 0x62, 0x30, 0xc5,
- 0xfb, 0xe4, 0x72, 0x81, 0xe3, 0xa0, 0x2a, 0xfd, 0xf2, 0x60, 0x1f, 0x4b,
- 0x27, 0xe2, 0xa5, 0x88, 0xbf, 0x7e, 0xf9, 0x1c, 0x00, 0x3b, 0x53, 0x6f,
- 0x4a, 0x6e, 0x3f, 0x36, 0x61, 0xf5, 0xce, 0xa7, 0x16, 0xbe, 0x00, 0x80,
- 0xed, 0x6a, 0x6a, 0x7b, 0x97, 0xf8, 0x01, 0x6e, 0x6a, 0xf5, 0xa6, 0xfb,
- 0xcf, 0xb5, 0x37, 0x47, 0xff, 0xf7, 0x3e, 0xe4, 0xbc, 0x00, 0x11, 0xa5,
- 0xfc, 0xd5, 0xef, 0x74, 0xf1, 0x39, 0xbf, 0xff, 0xb4, 0x10, 0x88, 0x80,
- 0x04, 0x51, 0x27, 0x19, 0x04, 0x3f, 0xe6, 0x14, 0xfd, 0x1c, 0x05, 0x3c,
- 0xa2, 0xa7, 0x10, 0xfb, 0xbe, 0x82, 0xfd, 0x40, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xc6, 0x24, 0x1d, 0x7f, 0x89, 0x36, 0x1d, 0x6a, 0x35, 0x6e,
- 0x1f, 0x20, 0x91, 0x0d, 0xd7, 0x3f, 0xa9, 0xc6, 0x29, 0x00, 0x20, 0x39,
- 0xbf, 0x0d, 0xe2, 0x0f, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x5b, 0x9a, 0x5e,
- 0xb4, 0xdf, 0x79, 0xb5, 0x37, 0x47, 0xff, 0xf7, 0x3e, 0xe4, 0xbc, 0x00,
- 0x11, 0xa5, 0xfc, 0xd5, 0xef, 0x77, 0xf3, 0x7e, 0xc5, 0x9b, 0xb1, 0x1e,
- 0x31, 0x40, 0x07, 0xd0, 0x3b, 0x5c, 0x88, 0xc0, 0x30, 0x16, 0xfa, 0xe6,
- 0x00, 0x26, 0xb3, 0xd4, 0xf9, 0xff, 0xf6, 0x45, 0xfc, 0xfe, 0x00, 0x79,
- 0x5d, 0xb2, 0x4d, 0xc3, 0x90, 0x21, 0x19, 0x94, 0x49, 0x80, 0x6a, 0x46,
- 0x3f, 0x75, 0xc0, 0xb6, 0x0a, 0x6f, 0xed, 0x9b, 0x7a, 0xdb, 0xc6, 0xe1,
- 0x5e, 0x37, 0x91, 0x82, 0x5d, 0xbc, 0x6c, 0xf3, 0x0a, 0x78, 0xb6, 0x3a,
- 0xf2, 0xf6, 0x2c, 0x38, 0x8b, 0xe3, 0xf0, 0xcd, 0x72, 0xa7, 0x1c, 0x03,
- 0x60, 0x9d, 0x9f, 0x73, 0xd1, 0xfb, 0x77, 0x96, 0xbb, 0x8f, 0x66, 0xe9,
- 0xbe, 0x4a, 0x5f, 0x61, 0x84, 0x3f, 0xdc, 0x23, 0xc0, 0xd5, 0x0b, 0xc3,
- 0xc0, 0x3f, 0xed, 0x2a, 0xb7, 0xa8, 0x63, 0x93, 0xc6, 0x79, 0x3d, 0xf8,
- 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb, 0xff, 0x9f, 0xff, 0xf2, 0x7f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x21, 0xff, 0xff,
- 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfb, 0xcc, 0x27, 0x04,
- 0xbe, 0x6e, 0x6e, 0xcb, 0x2b, 0xc1, 0x13, 0xc6, 0xc9, 0x62, 0xbf, 0xff,
- 0xf7, 0xff, 0x86, 0x0d, 0x02, 0x01, 0x06, 0x67, 0x2a, 0xa8, 0xd8, 0xc0,
- 0x09, 0xfd, 0xb3, 0x31, 0x6e, 0x93, 0x65, 0xc3, 0xed, 0x30, 0x26, 0xd8,
- 0x70, 0x8c, 0xdc, 0x8a, 0x08, 0x0d, 0xa8, 0x26, 0x37, 0xbd, 0xf5, 0x43,
- 0xc1, 0x39, 0xa1, 0x30, 0x06, 0xed, 0xa0, 0x0b, 0x50, 0x54, 0xb0, 0xf0,
- 0x82, 0xaa, 0x67, 0x9c, 0x14, 0x5e, 0x2a, 0xd8, 0x85, 0xbe, 0x18, 0xf9,
- 0x12, 0x96, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x88, 0x22, 0xc3, 0xc3,
- 0x63, 0x75, 0x78, 0x3d, 0xa6, 0x15, 0x6d, 0xd4, 0xff, 0x5e, 0xac, 0x05,
- 0x0b, 0xf0, 0xab, 0x7f, 0x93, 0x37, 0xff, 0xbf, 0x58, 0xcf, 0x19, 0xcb,
- 0x54, 0x65, 0x80, 0x0e, 0xd1, 0xa1, 0xcd, 0x48, 0xea, 0xa0, 0xdd, 0x7d,
- 0x5b, 0x1d, 0xe7, 0x81, 0x0b, 0x1d, 0x84, 0x9f, 0x57, 0x9f, 0x0c, 0x3b,
- 0xac, 0x3e, 0xf1, 0xff, 0x66, 0x3b, 0x85, 0x88, 0x83, 0x26, 0xf8, 0x7f,
- 0xc6, 0x1f, 0x75, 0xb1, 0xff, 0x7e, 0xff, 0xbe, 0xff, 0xff, 0x93, 0x80,
- 0x88, 0x10, 0x80, 0x9b, 0x79, 0xff, 0xfd, 0xe5, 0xb9, 0x50, 0x97, 0x39,
- 0xe0, 0x26, 0xee, 0xea, 0xe6, 0x1b, 0x30, 0xa9, 0x1c, 0x4b, 0x1d, 0x69,
- 0xb0, 0x0c, 0x6f, 0xde, 0x56, 0x42, 0x82, 0x23, 0x59, 0x03, 0x3d, 0x21,
- 0x22, 0x0e, 0x06, 0x77, 0xd6, 0xdf, 0x1c, 0xfb, 0xdb, 0xe3, 0xb6, 0xbc,
- 0x30, 0x15, 0x5d, 0x7e, 0x2b, 0xc5, 0x17, 0x20, 0x68, 0x01, 0x06, 0xbf,
- 0xb3, 0xdf, 0xcb, 0xa7, 0xcb, 0xdc, 0x78, 0x05, 0xf4, 0xa0, 0x35, 0x11,
- 0x7e, 0x18, 0xff, 0x5d, 0x75, 0xc2, 0xb8, 0x0f, 0x7f, 0xfd, 0x7f, 0x80,
- 0x3d, 0xff, 0xce, 0xee, 0x30, 0x45, 0x44, 0x70, 0x45, 0xc3, 0x1f, 0xff,
- 0xda, 0x08, 0x70, 0x00, 0xc6, 0x79, 0xa1, 0x1d, 0x76, 0x11, 0x6d, 0x50,
- 0xa7, 0x94, 0xab, 0x99, 0xf7, 0x7d, 0x06, 0xc0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xb2, 0x85, 0x8a, 0xef, 0x91, 0x81, 0x24, 0x10, 0x6b, 0x10,
- 0x28, 0x01, 0x19, 0x78, 0x2e, 0x31, 0xef, 0xc7, 0x85, 0x34, 0xc0, 0x01,
- 0x3f, 0x3f, 0xc0, 0x00, 0x01, 0x00, 0x08, 0x01, 0xa0, 0xed, 0x48, 0x11,
- 0x87, 0x0e, 0x60, 0x03, 0xb5, 0x70, 0x17, 0x30, 0x5c, 0x83, 0x58, 0xd7,
- 0xfb, 0x7e, 0xb8, 0x43, 0xbf, 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff,
- 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf2, 0x91,
- 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc2, 0x70, 0x01, 0x93, 0xfc,
- 0xaf, 0xaf, 0xc0, 0x56, 0xfd, 0xce, 0xd5, 0xdf, 0x62, 0x0a, 0x2f, 0x85,
- 0xa9, 0x33, 0x24, 0x75, 0x7f, 0xf7, 0xf0, 0x12, 0xbf, 0x40, 0x5c, 0x3a,
- 0x86, 0xe5, 0x4f, 0x1c, 0x8c, 0xbf, 0xcf, 0x13, 0x15, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x6f, 0x43, 0x82, 0xca, 0x4e, 0x83, 0x18, 0x39, 0xaf, 0xd7,
- 0xf6, 0xf7, 0x8b, 0x0a, 0x23, 0xbf, 0xb9, 0xf9, 0x53, 0x20, 0x04, 0xde,
- 0xd4, 0x61, 0xa1, 0x0f, 0xf5, 0xe3, 0x4f, 0xaf, 0x7f, 0xcb, 0xd0, 0x18,
- 0x06, 0x11, 0xdc, 0xc5, 0x48, 0xbf, 0xfe, 0xf4, 0x37, 0x7f, 0x33, 0x31,
- 0x52, 0xd3, 0x07, 0x38, 0x02, 0x2d, 0xda, 0x81, 0x18, 0x42, 0x65, 0xaa,
- 0xea, 0x71, 0x00, 0x01, 0x8f, 0xf3, 0x32, 0x11, 0x47, 0x42, 0x89, 0xef,
- 0x76, 0xdc, 0x36, 0x1a, 0x0c, 0x04, 0xe5, 0x93, 0x93, 0xf9, 0x87, 0x79,
- 0xa4, 0x68, 0xda, 0x99, 0xb5, 0xd5, 0x3f, 0xe7, 0x04, 0x78, 0x20, 0x94,
- 0x58, 0x0c, 0x5c, 0xd2, 0xb3, 0x08, 0x5a, 0x40, 0x3e, 0xe3, 0x12, 0x76,
- 0x41, 0x09, 0x48, 0x06, 0x4f, 0x37, 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91,
- 0x31, 0x3b, 0xaa, 0xd9, 0xba, 0x2c, 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2,
- 0xf0, 0x40, 0x0e, 0x7d, 0x83, 0xe4, 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29,
- 0x53, 0xf5, 0x06, 0xe8, 0x7d, 0x9b, 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38,
- 0x1b, 0xb2, 0xd4, 0x17, 0x60, 0xe7, 0x19, 0xff, 0xff, 0xff, 0xfe, 0xff,
- 0xff, 0xff, 0xe6, 0x40, 0xae, 0x05, 0xff, 0x09, 0x30, 0x6a, 0x59, 0xcd,
- 0x63, 0x1c, 0xaa, 0x1a, 0xdf, 0xdb, 0x2b, 0xd6, 0x24, 0x1b, 0xed, 0x38,
- 0xe5, 0xd1, 0xf6, 0xaf, 0x89, 0xaa, 0xfa, 0xa4, 0xe7, 0xea, 0xd7, 0x3c,
- 0x0e, 0x7f, 0x5e, 0xfc, 0x77, 0xbf, 0x7e, 0x3b, 0xda, 0x86, 0x72, 0x17,
- 0x80, 0x18, 0x9f, 0xbb, 0xdf, 0xff, 0xbd, 0x4d, 0x87, 0xd2, 0x9f, 0x82,
- 0x06, 0x00, 0xba, 0xaa, 0x87, 0x78, 0x67, 0x85, 0xe7, 0xd5, 0xc7, 0xff,
- 0x1e, 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44, 0x57,
- 0xfd, 0x9b, 0xa7, 0xc7, 0x4a, 0x60, 0x9c, 0x44, 0x01, 0x2f, 0x69, 0x18,
- 0x00, 0x08, 0x00, 0x53, 0xd3, 0xbd, 0x78, 0x16, 0xbc, 0x0d, 0xcb, 0x7d,
- 0x86, 0xfb, 0x05, 0xb0, 0xfc, 0x04, 0xcf, 0x80, 0x98, 0x2a, 0xc0, 0x10,
- 0xee, 0x81, 0xe1, 0x0f, 0x7e, 0x7a, 0xf1, 0xbf, 0xf4, 0x6f, 0x44, 0xa7,
- 0xd3, 0x85, 0x0a, 0x43, 0xf3, 0xc6, 0xf7, 0x8a, 0xe0, 0x1a, 0x35, 0xe7,
- 0xcf, 0xb1, 0x0b, 0x71, 0xb8, 0xdf, 0xf9, 0xbf, 0xd2, 0x8e, 0x44, 0x58,
- 0xc2, 0x70, 0x00, 0xc2, 0x3c, 0x94, 0xcd, 0xa4, 0xdf, 0x00, 0x2a, 0x2e,
- 0x49, 0x1f, 0x09, 0xef, 0xfe, 0x07, 0x87, 0xfb, 0xad, 0x49, 0xdc, 0xe0,
- 0x02, 0xed, 0xca, 0x32, 0x23, 0x1f, 0xfe, 0x90, 0x7e, 0x60, 0xfc, 0x20,
- 0x00, 0x00, 0x5f, 0xd8, 0x60, 0x3b, 0xb6, 0x17, 0x72, 0x69, 0x99, 0x2f,
- 0xfa, 0x81, 0x1b, 0x33, 0x36, 0xf4, 0x48, 0x8f, 0xf9, 0xeb, 0x1b, 0x7a,
- 0x48, 0x53, 0x26, 0x3f, 0x98, 0x30, 0x87, 0xaf, 0x2f, 0xbf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21,
- 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xac, 0xe3, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xaf, 0xdf, 0xc5, 0x9f, 0x00, 0xd4, 0xb2, 0x34, 0xe6, 0xf0,
- 0x05, 0x7f, 0xa9, 0x9a, 0x86, 0xbd, 0xf4, 0x7a, 0xb8, 0xaf, 0xff, 0xff,
- 0xf7, 0x98, 0xdc, 0x65, 0xa2, 0x18, 0x0e, 0xcf, 0xa2, 0x8b, 0xa2, 0xa0,
- 0xda, 0x6f, 0xe2, 0x71, 0xe9, 0xfe, 0x8c, 0x1b, 0xb0, 0x34, 0xd3, 0x83,
- 0xab, 0xa7, 0x80, 0x11, 0x47, 0x42, 0x89, 0xff, 0x76, 0xdc, 0x36, 0x1a,
- 0x0c, 0xd7, 0x07, 0x2c, 0x08, 0xe4, 0xdb, 0x35, 0x2c, 0x7d, 0x2a, 0x5a,
- 0xa2, 0x58, 0x90, 0xea, 0xe5, 0xb9, 0x07, 0x62, 0xe5, 0xe1, 0x24, 0x98,
- 0xd2, 0x67, 0x53, 0x3c, 0x99, 0xbf, 0xff, 0x86, 0x38, 0xf0, 0x03, 0x41,
- 0xd5, 0x22, 0xcd, 0x80, 0x18, 0x1e, 0x57, 0xc7, 0x61, 0xea, 0xe9, 0x61,
- 0xea, 0xe4, 0xc1, 0x58, 0xa2, 0x80, 0x90, 0xe6, 0x5e, 0x01, 0x9b, 0xdc,
- 0xe6, 0x9e, 0x61, 0x2e, 0x56, 0xfc, 0xc3, 0x6b, 0x64, 0x8d, 0xf9, 0xea,
- 0x95, 0x36, 0x00, 0xbe, 0x0c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x30, 0x2a,
- 0x82, 0x17, 0x1f, 0xf8, 0x49, 0x99, 0x44, 0x93, 0x6a, 0xbc, 0x0c, 0xc4,
- 0xdb, 0xa0, 0xfe, 0xef, 0x1e, 0xea, 0x96, 0x02, 0x39, 0x38, 0x68, 0x1d,
- 0xbe, 0x68, 0x46, 0xda, 0x7a, 0x33, 0xbe, 0x51, 0x7f, 0xf0, 0x03, 0x3e,
- 0xb7, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0x38, 0x63, 0x3f, 0xa1, 0xcf, 0x0c,
- 0x26, 0x5c, 0x78, 0x0f, 0xf2, 0x12, 0xe0, 0x3f, 0xc6, 0xf0, 0x12, 0x6d,
- 0xc0, 0x7d, 0x24, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3,
- 0x8d, 0x84, 0xbe, 0xc3, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02, 0xad,
- 0x34, 0x0c, 0x63, 0xe7, 0x80, 0x5f, 0x03, 0xe8, 0x08, 0x6d, 0x15, 0xe1,
- 0x8c, 0x3e, 0x74, 0x3f, 0x82, 0x06, 0x04, 0xcd, 0x40, 0x7e, 0xf6, 0x78,
- 0xeb, 0x77, 0x33, 0x87, 0x26, 0xc2, 0x03, 0x7d, 0x63, 0x7e, 0x97, 0x86,
- 0x27, 0xe6, 0x1d, 0xd0, 0x8b, 0x6b, 0xc0, 0x85, 0xac, 0x7f, 0xfe, 0x1f,
- 0xfc, 0x0b, 0xbe, 0x0c, 0x8c, 0x01, 0x84, 0x74, 0xa6, 0x72, 0xbe, 0xfb,
- 0x08, 0x76, 0xd6, 0x02, 0xff, 0xca, 0x67, 0xbf, 0x00, 0x8d, 0x7a, 0x46,
- 0x1f, 0xc5, 0xff, 0x5c, 0x60, 0x6f, 0x84, 0x80, 0x00, 0xff, 0x84, 0x3f,
- 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f,
- 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x01, 0x0f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x81, 0x37, 0xe0, 0x21, 0x21, 0x1b, 0xdc,
- 0x9f, 0x9b, 0x08, 0x94, 0xa5, 0xea, 0xf0, 0xff, 0x3c, 0x57, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x30, 0xae, 0x32, 0xd1, 0x27, 0xe0, 0xa7, 0x8d, 0x84,
- 0x50, 0x61, 0xb9, 0xa4, 0xe5, 0xda, 0x6c, 0x6e, 0x40, 0xef, 0x14, 0xbe,
- 0xc1, 0x29, 0x94, 0xf3, 0x03, 0xa9, 0x68, 0xc0, 0x15, 0x91, 0xe3, 0xac,
- 0x5c, 0x9e, 0xd5, 0x18, 0x4e, 0x37, 0xf7, 0x30, 0x7f, 0xdf, 0xf0, 0x98,
- 0x96, 0xa0, 0x05, 0xea, 0x11, 0x7a, 0xaf, 0x71, 0x30, 0x51, 0xf9, 0x4b,
- 0xbd, 0xfd, 0xa8, 0x01, 0x42, 0xf8, 0x32, 0xb7, 0xfe, 0x4f, 0x37, 0xff,
- 0xff, 0xfc, 0xdf, 0x88, 0x32, 0x99, 0x2a, 0x5a, 0xcd, 0xc0, 0x14, 0x74,
- 0x43, 0xa8, 0xfc, 0xdb, 0x07, 0x56, 0xfc, 0xf0, 0x15, 0x49, 0xc9, 0xf8,
- 0x51, 0xa0, 0x09, 0xa1, 0x28, 0xcb, 0xba, 0xe4, 0x58, 0x1e, 0xb8, 0x36,
- 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07, 0xaf, 0x36,
- 0x54, 0x96, 0xd9, 0xdc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfe,
- 0x21, 0x88, 0x1d, 0xd4, 0xbd, 0x16, 0x1f, 0x90, 0x72, 0x37, 0x25, 0x66,
- 0x2f, 0xc7, 0xa0, 0x7f, 0x3f, 0xaf, 0x7e, 0x3b, 0xdf, 0xbf, 0x1d, 0xec,
- 0xdf, 0x0f, 0xfe, 0x1f, 0x2c, 0x04, 0xbe, 0xe5, 0xef, 0x6a, 0xfc, 0x99,
- 0x3c, 0x4f, 0xaf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64,
- 0x25, 0xff, 0x46, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07, 0x11, 0x9c, 0x08,
- 0x99, 0x02, 0x57, 0xff, 0xa7, 0xb0, 0x3c, 0x01, 0xf7, 0x11, 0x3f, 0xeb,
- 0xc6, 0xfa, 0x37, 0xff, 0xb4, 0x06, 0x08, 0x4c, 0x00, 0x44, 0xcf, 0xba,
- 0x7f, 0x9e, 0xfe, 0x8a, 0x98, 0x18, 0x40, 0xd9, 0x95, 0x60, 0x01, 0x84,
- 0x79, 0x29, 0xbd, 0x2c, 0x1f, 0xc2, 0x26, 0x1f, 0x80, 0x7f, 0xc3, 0xd0,
- 0x05, 0xb5, 0x7c, 0xfc, 0xd1, 0xff, 0x4f, 0x5f, 0xf8, 0x64, 0x20, 0x22,
- 0x28, 0x00, 0x08, 0x00, 0x40, 0x08, 0xa6, 0xe6, 0x65, 0x00, 0x05, 0x7d,
- 0xf1, 0x90, 0xfb, 0x05, 0x03, 0x08, 0xe8, 0x0c, 0x20, 0xbe, 0x40, 0x58,
- 0xce, 0xe9, 0x7f, 0x97, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
- 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff,
- 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x2d,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6,
- 0x13, 0x80, 0x8f, 0x3d, 0x1b, 0xd8, 0xf8, 0x63, 0xff, 0x3f, 0xc1, 0x01,
- 0x74, 0x07, 0x15, 0xff, 0xff, 0xfe, 0xfe, 0x28, 0x73, 0x58, 0xed, 0x23,
- 0x8d, 0xeb, 0xa5, 0xe0, 0x1b, 0x15, 0x3e, 0x2b, 0x50, 0x06, 0x31, 0xe2,
- 0x63, 0x41, 0x3e, 0x4a, 0x2c, 0x02, 0x92, 0x95, 0x1f, 0x0c, 0x05, 0xbe,
- 0xb7, 0xfc, 0x26, 0x2c, 0x06, 0x0b, 0x11, 0x02, 0x73, 0xa0, 0xe4, 0xd3,
- 0x0f, 0xd3, 0x36, 0x55, 0x6a, 0xf3, 0x25, 0x4a, 0x55, 0xe7, 0x93, 0x37,
- 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x30, 0x61, 0xb3, 0x61, 0x33, 0xed,
- 0x60, 0xe9, 0x35, 0x2d, 0xe7, 0x0d, 0x83, 0x7c, 0xd2, 0x7f, 0xd1, 0x9a,
- 0x8c, 0xf3, 0x7e, 0x15, 0x6a, 0x8b, 0xdf, 0xfe, 0x96, 0x62, 0x6e, 0x79,
- 0x12, 0x2d, 0x9f, 0xff, 0xfe, 0xff, 0xff, 0x86, 0x2d, 0x4d, 0xbf, 0xf0,
- 0x91, 0xe0, 0x31, 0xe8, 0x9f, 0xf0, 0x13, 0x5a, 0x32, 0x68, 0x36, 0xd4,
- 0x2d, 0xe1, 0x21, 0x38, 0xfe, 0x7d, 0x6f, 0x1d, 0xbd, 0xe3, 0xb6, 0x18,
- 0xf8, 0x7f, 0x1a, 0x41, 0x0e, 0x07, 0x48, 0x69, 0x9f, 0x0c, 0xc4, 0xd6,
- 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb4, 0x95, 0x83, 0x2f, 0xa5,
- 0xef, 0x12, 0x20, 0x04, 0x2a, 0x9f, 0x1e, 0x0c, 0x62, 0x77, 0xc3, 0x7b,
- 0xce, 0xf2, 0x20, 0xce, 0x83, 0x07, 0x48, 0x61, 0xd3, 0x35, 0xaf, 0x8c,
- 0xfd, 0x78, 0x61, 0x03, 0xfe, 0x3f, 0x09, 0xfc, 0x24, 0xfb, 0x5c, 0x1d,
- 0x7b, 0x4c, 0x87, 0x83, 0x88, 0x3f, 0x08, 0x75, 0xe1, 0x8a, 0x38, 0x83,
- 0xff, 0xf0, 0x96, 0x02, 0x5d, 0xec, 0xb2, 0xff, 0x77, 0xc2, 0x64, 0x6f,
- 0xe4, 0x9b, 0x9d, 0x12, 0x8b, 0xc9, 0x01, 0x70, 0x8b, 0xfc, 0xbb, 0xff,
- 0xff, 0xff, 0xf9, 0x7f, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff, 0x37,
- 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xf4, 0xa1, 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xfc, 0xc7, 0xc0, 0x0a, 0x25, 0x16, 0x6c, 0x64, 0xef, 0xb7, 0x01, 0xe2,
- 0x65, 0x78, 0x20, 0xfa, 0xff, 0xd7, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf9, 0x3f, 0x8c, 0xc9, 0x14, 0x30, 0xe8, 0x32, 0xd3, 0x76, 0x82, 0xe9,
- 0x74, 0x84, 0xaa, 0xae, 0xa6, 0xe0, 0x79, 0x0e, 0x3f, 0xa1, 0x01, 0x02,
- 0x91, 0x8b, 0x82, 0x02, 0xee, 0x56, 0x77, 0xcf, 0xd8, 0xeb, 0xbf, 0x27,
- 0x9b, 0xff, 0xff, 0xcd, 0xfc, 0x11, 0x81, 0x92, 0x18, 0xc2, 0x60, 0x0c,
- 0xfe, 0x47, 0xa2, 0xef, 0x8e, 0x9b, 0x86, 0x13, 0x20, 0x3e, 0x99, 0xc5,
- 0xae, 0xc1, 0xd7, 0xd5, 0xc0, 0x47, 0xdc, 0xde, 0x4c, 0x1b, 0x4e, 0x6f,
- 0xd6, 0xc5, 0x9a, 0x76, 0xb8, 0x08, 0xe9, 0xe9, 0xf9, 0xca, 0x6b, 0x1b,
- 0x0e, 0x7e, 0x40, 0x1c, 0xe0, 0x3b, 0x39, 0x31, 0x8e, 0x98, 0x93, 0x98,
- 0x07, 0x3e, 0xae, 0x69, 0x8a, 0x13, 0x27, 0xff, 0xff, 0xff, 0xfb, 0xff,
- 0xff, 0xf3, 0x44, 0x61, 0x17, 0xff, 0x84, 0x98, 0x42, 0xd3, 0xe3, 0xc4,
- 0x20, 0x4c, 0xcb, 0xbc, 0x4c, 0x13, 0x1b, 0x20, 0x93, 0x7a, 0x42, 0x66,
- 0xad, 0x44, 0x20, 0x48, 0xca, 0x3a, 0xb4, 0x86, 0xeb, 0x65, 0xc8, 0x23,
- 0x6b, 0x95, 0x8c, 0x10, 0x9f, 0xdc, 0x44, 0x4f, 0x18, 0x80, 0xa7, 0x4f,
- 0xf7, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe0, 0x43,
- 0xec, 0x1c, 0x61, 0x61, 0xc4, 0x5d, 0xa0, 0xe2, 0x0f, 0xc0, 0x27, 0x81,
- 0xf0, 0x24, 0xe3, 0x64, 0x99, 0x48, 0x38, 0x1f, 0x9b, 0xf1, 0xb0, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x08, 0x5f, 0xf9, 0xbf, 0xff,
- 0xb4, 0x10, 0x9a, 0x04, 0x85, 0xb4, 0x07, 0xe1, 0x60, 0xbb, 0x43, 0xbe,
- 0x4d, 0x76, 0x2f, 0x2f, 0xf0, 0xf4, 0x26, 0x7d, 0xae, 0xbc, 0x04, 0xee,
- 0x42, 0xf8, 0x19, 0x4f, 0x7e, 0xbf, 0xe3, 0x3e, 0x6f, 0x62, 0x2a, 0xb3,
- 0xa6, 0xbb, 0x27, 0x09, 0x9f, 0x6b, 0x0e, 0xc9, 0x8f, 0xfd, 0x34, 0x19,
- 0x48, 0x0b, 0x32, 0xe2, 0x91, 0xee, 0x5e, 0xd2, 0x5e, 0x09, 0x9e, 0x2e,
- 0xbf, 0xe1, 0x0e, 0x43, 0x60, 0x0f, 0xc8, 0x2a, 0x49, 0x0f, 0x32, 0x8e,
- 0x10, 0x0f, 0xf8, 0x79, 0x03, 0x15, 0x11, 0x80, 0xc4, 0x40, 0x40, 0xf2,
- 0xeb, 0xee, 0x9f, 0xfc, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
- 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xef, 0xff, 0xf3,
- 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
- 0x66, 0x3e, 0x01, 0x41, 0xc9, 0x39, 0x8d, 0x4a, 0x9b, 0xa5, 0xa1, 0x98,
- 0x98, 0xaf, 0xff, 0xff, 0xfe, 0x18, 0x0e, 0xd6, 0x0a, 0x83, 0x96, 0x31,
- 0x81, 0x2d, 0x84, 0x45, 0xea, 0x67, 0xb0, 0x23, 0x6e, 0x19, 0xe6, 0xa7,
- 0xf3, 0xc0, 0xb5, 0xd4, 0xef, 0xa9, 0x27, 0x2c, 0x3f, 0xae, 0xcb, 0x8c,
- 0x93, 0x96, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc5, 0xf0, 0x23, 0x2d, 0x1a,
- 0x55, 0xe7, 0xa2, 0x16, 0x57, 0x0b, 0x2e, 0x06, 0xa7, 0xe7, 0xf9, 0x33,
- 0x7f, 0xfa, 0xf8, 0xb3, 0x22, 0x86, 0x77, 0x70, 0x14, 0x15, 0x46, 0x85,
- 0xb9, 0x4f, 0xce, 0x1b, 0x8d, 0x9d, 0xd0, 0x53, 0x0f, 0xff, 0xff, 0x7f,
- 0xfe, 0xbd, 0x08, 0x88, 0x29, 0x50, 0x02, 0x2a, 0x01, 0xc1, 0xfa, 0x11,
- 0x43, 0x7e, 0x26, 0x6f, 0x37, 0xf4, 0x8d, 0x8f, 0x06, 0x6a, 0xba, 0x29,
- 0xbe, 0xf1, 0x31, 0xbd, 0x62, 0x35, 0x4d, 0xbf, 0xe5, 0xe7, 0xd6, 0xf1,
- 0xdb, 0xde, 0x3b, 0x61, 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x38, 0x8b,
- 0xb5, 0xa1, 0x84, 0x7c, 0x9f, 0x8c, 0xa0, 0x0a, 0x20, 0xde, 0x36, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d, 0x81, 0x4b, 0xf5, 0xe8, 0x18,
- 0x06, 0x47, 0x08, 0x81, 0x89, 0x34, 0xc8, 0x8c, 0xf6, 0x93, 0x35, 0x8f,
- 0xb6, 0x3e, 0x0c, 0x3f, 0xe0, 0x20, 0x17, 0xc9, 0x6b, 0x1e, 0xbe, 0x33,
- 0xaf, 0x0c, 0x31, 0x07, 0xda, 0xdf, 0x84, 0xff, 0x09, 0x58, 0x98, 0xd0,
- 0xa4, 0xc7, 0xd7, 0xc2, 0x12, 0x38, 0x44, 0xff, 0xf7, 0xc3, 0x02, 0x1e,
- 0x01, 0xff, 0x0f, 0x20, 0x1c, 0x65, 0x36, 0x80, 0x7e, 0x60, 0x81, 0xf9,
- 0x4f, 0x87, 0xef, 0xfe, 0x5d, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xff, 0x85,
- 0x3f, 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x01,
- 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0x89, 0x94, 0x4e, 0x04, 0x0f,
- 0xc0, 0x26, 0xde, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x0a, 0x82,
- 0x81, 0x42, 0x00, 0x15, 0x63, 0x68, 0xa3, 0x6a, 0x6d, 0x90, 0xde, 0x6b,
- 0xc0, 0x0b, 0x65, 0x4c, 0x50, 0xff, 0x9b, 0x1f, 0x0d, 0xc3, 0x35, 0x90,
- 0x1a, 0x52, 0x24, 0x9f, 0x98, 0x40, 0x16, 0x33, 0x8d, 0x40, 0x67, 0x57,
- 0xa9, 0x79, 0xed, 0x8f, 0xe9, 0x7f, 0xc9, 0xe6, 0xff, 0xff, 0xff, 0x9b,
- 0xf5, 0xb3, 0x89, 0xa0, 0x36, 0xc9, 0xc0, 0x16, 0xf0, 0x8b, 0x5a, 0x67,
- 0x29, 0xac, 0x60, 0x0d, 0x7a, 0x6d, 0x20, 0xef, 0x7c, 0xd2, 0x99, 0x7a,
- 0xfa, 0xdf, 0x75, 0x83, 0xa3, 0x17, 0xef, 0xeb, 0x59, 0xc6, 0x67, 0xff,
- 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x98, 0xa0, 0x1e, 0x1f, 0xe1, 0x28,
- 0x13, 0x1b, 0xed, 0xf3, 0x0a, 0xfa, 0x83, 0x18, 0xd3, 0x31, 0xb6, 0xad,
- 0xd9, 0x75, 0x90, 0xe7, 0x49, 0xbb, 0xe3, 0xfe, 0x7f, 0x5e, 0xfc, 0x77,
- 0xbf, 0x7e, 0x3b, 0xd1, 0xbf, 0xff, 0x27, 0x82, 0x13, 0xc0, 0x23, 0xd7,
- 0xdb, 0x00, 0x18, 0xdf, 0x14, 0x2f, 0x33, 0xef, 0xfc, 0x03, 0x0e, 0x6f,
- 0x83, 0x8b, 0xcb, 0xf1, 0x2b, 0x80, 0x24, 0x74, 0x87, 0xd1, 0x19, 0x40,
- 0x4c, 0x29, 0xa4, 0xfc, 0x90, 0xf0, 0x1f, 0x84, 0xf1, 0x7b, 0x65, 0x01,
- 0x8f, 0x0f, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4,
- 0x11, 0x7c, 0xda, 0x7b, 0xa1, 0x0a, 0x39, 0x16, 0xc4, 0x63, 0x83, 0x07,
- 0xc0, 0x23, 0xd7, 0xdb, 0x0f, 0xec, 0x8c, 0xcf, 0x07, 0x80, 0x18, 0xdf,
- 0x28, 0x7c, 0x8f, 0xbf, 0xf1, 0x05, 0xfa, 0xb8, 0xba, 0x4f, 0xe5, 0x03,
- 0x0f, 0xfc, 0xd7, 0xff, 0xfe, 0x1e, 0x60, 0x07, 0xe7, 0xa4, 0x3e, 0xc8,
- 0xc9, 0x70, 0xe8, 0x0f, 0xc2, 0x1e, 0x07, 0xf8, 0x09, 0x80, 0x73, 0x88,
- 0x9e, 0xbd, 0x7f, 0xc6, 0x1a, 0x99, 0xcc, 0xfe, 0x7c, 0x50, 0x88, 0x2e,
- 0x77, 0x5b, 0x94, 0xfe, 0xcf, 0xff, 0x09, 0xb8, 0xff, 0xfe, 0xfe, 0x23,
- 0xdd, 0xe0, 0x7e, 0xf6, 0x52, 0x61, 0xff, 0xff, 0x07, 0xf6, 0x0f, 0xc3,
- 0xe6, 0xff, 0x5c, 0xf5, 0xc2, 0xb0, 0x07, 0xfa, 0xef, 0xb5, 0xb3, 0xff,
- 0x7d, 0x7f, 0xe0, 0x07, 0x87, 0x5d, 0x6a, 0x6e, 0xe1, 0xcb, 0x0c, 0xad,
- 0xf7, 0x6b, 0xdf, 0xfe, 0xbf, 0xff, 0x08, 0x7f, 0xb8, 0x69, 0x0c, 0xcd,
- 0x78, 0x79, 0xff, 0x97, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f,
- 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xef, 0xff, 0xf3,
- 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfc,
- 0x12, 0xce, 0x00, 0x0c, 0xf9, 0x4f, 0x7a, 0x93, 0xd7, 0xfe, 0x00, 0xc5,
- 0x72, 0x36, 0x55, 0x5e, 0xfe, 0x00, 0xf6, 0x90, 0x1f, 0xb1, 0x7c, 0x57,
- 0xff, 0xff, 0xff, 0x58, 0xa1, 0x40, 0x1e, 0x5b, 0xfd, 0x0e, 0xb2, 0x29,
- 0x83, 0xc2, 0x50, 0x76, 0xc2, 0x0b, 0xe6, 0x2b, 0xc2, 0xa7, 0xb2, 0x38,
- 0x5b, 0x51, 0xec, 0x79, 0x75, 0x2b, 0x16, 0x21, 0x77, 0x8f, 0xc0, 0xbf,
- 0x83, 0x93, 0x37, 0xff, 0xf0, 0xc7, 0xeb, 0x61, 0x80, 0x7b, 0x27, 0x02,
- 0x6b, 0xe9, 0x9f, 0x43, 0x82, 0x41, 0xb4, 0xeb, 0x6b, 0x52, 0x62, 0xa7,
- 0x9f, 0x8f, 0xa5, 0x26, 0x7c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x31, 0xc3,
- 0x07, 0xff, 0x84, 0xb8, 0x09, 0x6e, 0x6a, 0x3c, 0x43, 0x4c, 0xbc, 0x09,
- 0x3f, 0xcb, 0x63, 0xeb, 0x78, 0xed, 0xef, 0x1d, 0xa5, 0xe1, 0x8f, 0x81,
- 0x0c, 0x8b, 0xf0, 0x4c, 0x58, 0x71, 0x17, 0x68, 0x31, 0x01, 0xe1, 0xe7,
- 0x28, 0x10, 0xa0, 0x4d, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xb6, 0xa5, 0x81, 0x4b, 0xaf, 0x0c, 0x7e, 0x59, 0x17, 0xe3, 0x04, 0x40,
- 0x45, 0x8c, 0xc4, 0x04, 0x7a, 0x28, 0x10, 0xfe, 0x50, 0x21, 0x40, 0x93,
- 0x3e, 0xfb, 0xd7, 0xc6, 0x47, 0xe1, 0xa7, 0xb9, 0x60, 0x30, 0x11, 0x63,
- 0x3c, 0x08, 0xf4, 0x34, 0x5f, 0x9e, 0x07, 0x8e, 0xe7, 0xe1, 0x8f, 0xf3,
- 0x89, 0xeb, 0x8b, 0x9f, 0xf0, 0x9b, 0x5e, 0x07, 0xf8, 0xbf, 0xc0, 0x0f,
- 0xdd, 0xea, 0x6e, 0x1c, 0xba, 0x4c, 0x5e, 0x5e, 0xfe, 0x10, 0xef, 0xf2,
- 0xef, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xfd,
- 0xff, 0x9b, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x01, 0x0f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x80, 0x04, 0xd5, 0xcf, 0xed, 0x24, 0x7f,
- 0xe4, 0xeb, 0x0d, 0xdc, 0xe3, 0x04, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0xc1, 0xd9, 0xd1, 0x51, 0x45, 0xc9, 0xcd, 0xe3, 0x05, 0x2b, 0x8f,
- 0x45, 0xdc, 0x51, 0x4d, 0xc4, 0x47, 0xae, 0xc6, 0xef, 0x34, 0x69, 0x80,
- 0x18, 0xd8, 0xa2, 0x7b, 0x36, 0xff, 0x41, 0x84, 0x74, 0x7c, 0xfc, 0x5f,
- 0xec, 0xdf, 0x96, 0x5a, 0x95, 0xfa, 0xd0, 0x35, 0x3e, 0x64, 0x87, 0xda,
- 0x5f, 0x84, 0xc5, 0x81, 0xb8, 0x72, 0x54, 0xf9, 0xbc, 0x65, 0x14, 0x17,
- 0x82, 0x65, 0xeb, 0x7b, 0xed, 0x2d, 0x60, 0x5c, 0x9d, 0xfd, 0xc9, 0xe6,
- 0xff, 0xff, 0xff, 0x9b, 0xf1, 0x09, 0x33, 0x07, 0xb2, 0x70, 0x03, 0x03,
- 0xd5, 0xf1, 0xdb, 0x56, 0x68, 0xf3, 0x78, 0x78, 0xc2, 0xf2, 0x7e, 0xb4,
- 0xe0, 0xdf, 0xa3, 0x54, 0xc7, 0x3a, 0x88, 0x15, 0xa0, 0xfe, 0x7f, 0xff,
- 0xff, 0xff, 0xbf, 0xff, 0xff, 0xe2, 0x26, 0x7a, 0x59, 0x09, 0xa2, 0x26,
- 0x73, 0x47, 0xc3, 0xff, 0x09, 0x42, 0x18, 0x64, 0x2c, 0xad, 0x40, 0xc1,
- 0xf8, 0x08, 0x61, 0x90, 0xa6, 0xad, 0x40, 0x21, 0x86, 0x42, 0x9a, 0xb5,
- 0x78, 0x30, 0x73, 0xfa, 0xf7, 0xe3, 0xbd, 0xfb, 0xf1, 0xc6, 0xf9, 0x43,
- 0xe9, 0x08, 0x50, 0xbc, 0x07, 0x46, 0x50, 0x69, 0x68, 0x02, 0x4a, 0xa2,
- 0x66, 0xb8, 0x5f, 0x7a, 0x12, 0x1d, 0x54, 0xd9, 0x2a, 0xbe, 0x5e, 0x9b,
- 0x0e, 0xee, 0x3f, 0xe1, 0x27, 0xe0, 0x06, 0x56, 0x9d, 0x71, 0xdb, 0xe7,
- 0x36, 0x38, 0xff, 0xf0, 0xfc, 0x02, 0x51, 0x48, 0xda, 0xaf, 0x3a, 0xbf,
- 0x0a, 0x50, 0x00, 0x45, 0x6e, 0xee, 0xeb, 0x2f, 0x80, 0x44, 0x53, 0x68,
- 0x1f, 0x6b, 0xff, 0xef, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xda, 0xc4, 0x25, 0xc8, 0x68, 0x01, 0xb1, 0xda, 0xd0, 0x18, 0x83, 0x87,
- 0x37, 0xe6, 0xd3, 0xe9, 0x14, 0xf8, 0x4d, 0x07, 0x00, 0x18, 0x46, 0x9d,
- 0xfa, 0x4f, 0xdc, 0xf0, 0x7a, 0x39, 0x27, 0xb2, 0xe7, 0xaf, 0xa7, 0xf8,
- 0x00, 0x77, 0x9d, 0xf5, 0x6b, 0xff, 0x30, 0x15, 0x9f, 0xdf, 0xaf, 0x1b,
- 0xf8, 0x0a, 0xdd, 0xff, 0xc2, 0x1f, 0xff, 0x97, 0xdf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x9f, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff,
- 0xfd, 0xff, 0xfe, 0x6f, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xad, 0xeb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xd7, 0xfd, 0xfb, 0x13, 0x8a, 0xff, 0xff, 0xff, 0xe1, 0x80, 0xec,
- 0x31, 0x45, 0x17, 0x82, 0xe3, 0x08, 0x02, 0xad, 0x6c, 0xb4, 0x84, 0x00,
- 0x16, 0xa0, 0x13, 0x7b, 0xf5, 0x3e, 0x04, 0x88, 0x09, 0x8a, 0xff, 0x9b,
- 0xfe, 0x3a, 0x90, 0x95, 0x9b, 0x45, 0x06, 0x5a, 0x18, 0x0f, 0xfb, 0xfe,
- 0x13, 0x16, 0x09, 0x43, 0x85, 0x75, 0xce, 0xda, 0x05, 0x37, 0x5e, 0xfa,
- 0xbc, 0xa8, 0x39, 0x6e, 0xa2, 0x9d, 0xff, 0x26, 0x6f, 0xff, 0xeb, 0x08,
- 0x2e, 0x04, 0x4d, 0xee, 0x00, 0x1c, 0x63, 0x88, 0xf7, 0x51, 0x57, 0xef,
- 0x33, 0x47, 0x8e, 0x25, 0x73, 0x68, 0x3f, 0xe6, 0x97, 0x04, 0xa9, 0xc2,
- 0xac, 0x38, 0x24, 0xcc, 0xe7, 0xd3, 0xa4, 0x7f, 0xff, 0xfb, 0xff, 0xf7,
- 0xe4, 0xe0, 0x68, 0x10, 0xa6, 0x7c, 0x9c, 0xff, 0xc0, 0x26, 0x6b, 0x43,
- 0xf0, 0x48, 0x91, 0x0a, 0x3c, 0xde, 0x19, 0x3d, 0xe1, 0xf2, 0x12, 0x26,
- 0x46, 0xa9, 0x38, 0xf3, 0xeb, 0x78, 0xed, 0xef, 0x1c, 0xbc, 0x31, 0xff,
- 0xc7, 0x77, 0x85, 0x4b, 0x84, 0xcf, 0xb5, 0x91, 0x1c, 0xa4, 0x5a, 0x11,
- 0x3d, 0x5c, 0x31, 0xff, 0x7d, 0xfc, 0x67, 0x80, 0x9a, 0x9e, 0x83, 0x80,
- 0x23, 0xa1, 0xd4, 0x33, 0xc4, 0x6d, 0x33, 0x7f, 0x2f, 0x3f, 0x5d, 0xd4,
- 0xff, 0xc3, 0x1b, 0xb9, 0x03, 0x87, 0xfc, 0x25, 0xd6, 0xb4, 0xec, 0xdb,
- 0xdf, 0xa0, 0xd2, 0x79, 0x01, 0x33, 0x74, 0xfc, 0xef, 0xde, 0x36, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x81, 0x0a, 0x43, 0x40, 0x45,
- 0xbf, 0x7e, 0xff, 0xef, 0x97, 0x5f, 0x19, 0xf7, 0xf0, 0x87, 0xf9, 0x77,
- 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xfe, 0xff,
- 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
- 0xf3, 0x1f, 0x80, 0x4c, 0x19, 0xb9, 0x23, 0x92, 0xc4, 0xc9, 0x17, 0xc0,
- 0x68, 0x0b, 0x7c, 0x4d, 0x27, 0xdf, 0x07, 0x80, 0x1b, 0x5f, 0xb2, 0x5d,
- 0xdf, 0x30, 0x29, 0xf9, 0x0b, 0x3b, 0xa2, 0x3b, 0xdf, 0x4f, 0x13, 0x15,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xc4, 0x93, 0x19, 0x14, 0x38, 0x00,
- 0x77, 0xb2, 0x64, 0x34, 0x74, 0xd5, 0xe7, 0xe4, 0xa1, 0x40, 0xbd, 0xe1,
- 0x91, 0xe1, 0x47, 0x76, 0x7f, 0x20, 0x01, 0x91, 0x96, 0x93, 0x37, 0xef,
- 0xfb, 0x68, 0xb6, 0xc0, 0x77, 0xa2, 0x04, 0x8d, 0xde, 0x58, 0x45, 0xf8,
- 0x10, 0x40, 0xe6, 0x30, 0x69, 0xc4, 0x1e, 0x36, 0x98, 0x5a, 0x9b, 0x65,
- 0xe8, 0xdd, 0xe7, 0xff, 0x7b, 0x4e, 0xd2, 0x02, 0xbe, 0x7f, 0x0e, 0xf6,
- 0xe5, 0x2e, 0xdf, 0x68, 0x00, 0x02, 0x72, 0x49, 0x6d, 0xff, 0x0c, 0x7f,
- 0x8b, 0x0f, 0xff, 0x77, 0xfc, 0x00, 0xdd, 0xd1, 0x91, 0xd5, 0x5a, 0x1d,
- 0x39, 0xa2, 0x32, 0x36, 0xa6, 0x19, 0xcf, 0xb2, 0xab, 0xbf, 0x9c, 0x1e,
- 0x60, 0xfe, 0x12, 0xfc, 0x10, 0x09, 0x06, 0x11, 0x64, 0xa6, 0x3f, 0x13,
- 0xef, 0xff, 0x0c, 0x01, 0x46, 0x78, 0x59, 0x57, 0x77, 0xfc, 0x9e, 0x6f,
- 0xff, 0xff, 0xe2, 0xc9, 0x28, 0x60, 0x61, 0xf8, 0x87, 0x47, 0xa6, 0x3d,
- 0xd4, 0x66, 0xfc, 0x54, 0x89, 0x89, 0xdd, 0x56, 0xfc, 0x26, 0x7d, 0xaf,
- 0x07, 0x04, 0x85, 0x24, 0xb0, 0x89, 0xac, 0x7f, 0x9f, 0xc0, 0x22, 0x95,
- 0xec, 0x07, 0xcc, 0x66, 0xfe, 0xbe, 0x01, 0x89, 0x85, 0x9d, 0x3f, 0x52,
- 0xca, 0xe4, 0x1a, 0x90, 0x8b, 0xf9, 0xf7, 0x7d, 0x91, 0x34, 0xfc, 0x3c,
- 0x4b, 0xc0, 0xe2, 0x46, 0x50, 0x25, 0x40, 0xe4, 0xd6, 0xbb, 0x10, 0x44,
- 0x6d, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xcc, 0x11, 0x5c, 0x0b,
- 0xfe, 0x12, 0x18, 0x0d, 0xb4, 0x8d, 0x34, 0xc7, 0xc9, 0x21, 0xac, 0x5b,
- 0xb1, 0xb9, 0x6b, 0x13, 0x2c, 0x7b, 0x4c, 0x2c, 0x56, 0x67, 0x5b, 0xee,
- 0x56, 0x94, 0xfa, 0xa4, 0xc9, 0xfa, 0x4c, 0xb9, 0xe0, 0x19, 0xf9, 0x4a,
- 0xc1, 0xc0, 0x07, 0xff, 0x4f, 0xc0, 0x38, 0x13, 0xf7, 0xb0, 0x0d, 0x7f,
- 0x74, 0xee, 0x8b, 0xdf, 0x8e, 0xe2, 0xb0, 0x03, 0x8c, 0x92, 0x30, 0x18,
- 0xc1, 0xae, 0x68, 0x6e, 0x64, 0x7b, 0x01, 0x81, 0x07, 0x12, 0xd0, 0x66,
- 0x56, 0x63, 0xf2, 0x94, 0x02, 0x5d, 0x3c, 0x00, 0x04, 0x02, 0x33, 0x57,
- 0x55, 0xaf, 0xfc, 0x24, 0xc1, 0x4f, 0x72, 0xf2, 0x7e, 0x07, 0x1f, 0xa8,
- 0xf7, 0xf0, 0x45, 0xeb, 0x5e, 0x7f, 0xfc, 0x62, 0xf2, 0x6d, 0x57, 0xe3,
- 0xaa, 0xf0, 0x4e, 0xbe, 0x05, 0x07, 0x46, 0x40, 0x6a, 0xe8, 0x2a, 0x75,
- 0xf6, 0x7b, 0xe9, 0x00, 0x51, 0xf7, 0x81, 0xa8, 0x89, 0xb5, 0x5d, 0xac,
- 0x7c, 0x5f, 0xf3, 0x7c, 0x3d, 0x57, 0xe0, 0x81, 0x7c, 0x01, 0xfa, 0xa8,
- 0xee, 0xe0, 0x0f, 0xdd, 0x67, 0x79, 0xa7, 0xe3, 0x89, 0xfc, 0x14, 0x78,
- 0xa7, 0xc0, 0x70, 0x21, 0x0c, 0x29, 0x32, 0xd0, 0x03, 0x04, 0x6f, 0x01,
- 0x77, 0xca, 0x26, 0x25, 0x62, 0x3c, 0xc3, 0xd5, 0xff, 0xf8, 0x7c, 0xc0,
- 0x0b, 0x32, 0xaa, 0x3b, 0xda, 0x03, 0xf2, 0x4d, 0x37, 0x5a, 0xdf, 0xef,
- 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x35, 0xfe,
- 0x51, 0x08, 0x1e, 0x12, 0xe0, 0x66, 0x22, 0xfa, 0xf1, 0xbc, 0x54, 0x80,
- 0x28, 0x72, 0x1f, 0xf2, 0x38, 0x25, 0xf8, 0x91, 0xb8, 0xff, 0xfe, 0xff,
- 0xf2, 0xfa, 0x02, 0xc3, 0xd8, 0x9b, 0xe6, 0xc0, 0x27, 0x7a, 0xa7, 0xfc,
- 0x67, 0xff, 0x84, 0x39, 0x1c, 0x26, 0xe0, 0xcc, 0x5f, 0xda, 0x78, 0x7c,
- 0x36, 0x80, 0xf7, 0xf8, 0x8c, 0x33, 0xb2, 0x75, 0x88, 0x5f, 0x2f, 0x8c,
- 0xf2, 0x7b, 0xf0, 0xaf, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9,
- 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60,
- 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef,
- 0xc8, 0x26, 0x58, 0xb3, 0xe0, 0x8d, 0xa3, 0xbe, 0xaf, 0xe3, 0x45, 0x86,
- 0x4c, 0x22, 0x58, 0xaf, 0xff, 0xff, 0xf7, 0xe1, 0x83, 0x06, 0xb3, 0xc5,
- 0xe3, 0x4a, 0xad, 0x88, 0x02, 0x6f, 0xcd, 0xd9, 0xff, 0xd1, 0x69, 0x6e,
- 0x78, 0x03, 0xf1, 0xeb, 0xfd, 0x40, 0xf8, 0x33, 0x5d, 0x16, 0xd3, 0xc0,
- 0xd7, 0xd6, 0x7f, 0xc6, 0xff, 0xa6, 0x88, 0x70, 0x84, 0x41, 0xd3, 0x53,
- 0x60, 0x99, 0x2e, 0x9a, 0xa2, 0x44, 0x89, 0x8c, 0xba, 0x1f, 0x39, 0x78,
- 0x60, 0xe3, 0xd2, 0x3a, 0xa8, 0xf1, 0x8f, 0xf9, 0x33, 0x7f, 0xfb, 0xf0,
- 0xc7, 0x1e, 0x00, 0x68, 0x3a, 0xa4, 0x59, 0xb0, 0x03, 0x03, 0xd5, 0xf1,
- 0xd9, 0x73, 0x4b, 0x2e, 0x64, 0xc1, 0x58, 0xa5, 0x02, 0xc5, 0x32, 0xf0,
- 0x12, 0x37, 0x75, 0x3c, 0xc2, 0xb9, 0x5b, 0xf3, 0x0d, 0xad, 0x92, 0x6f,
- 0xcf, 0x59, 0xcd, 0x80, 0x2f, 0x83, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c,
- 0x54, 0xc4, 0x2e, 0x23, 0xfe, 0x12, 0x66, 0x51, 0x24, 0x6c, 0xab, 0xc0,
- 0xda, 0x5a, 0xd2, 0xd8, 0x3c, 0x4d, 0x29, 0x61, 0x30, 0x63, 0x21, 0xf3,
- 0x34, 0x13, 0x6d, 0x26, 0x33, 0xbe, 0xa5, 0xff, 0xc0, 0x0c, 0xeb, 0xad,
- 0xe3, 0x96, 0x62, 0xc0, 0x0a, 0x1f, 0xb6, 0x1d, 0x19, 0x7f, 0xd2, 0x78,
- 0x00, 0x1a, 0xc3, 0x1f, 0xe2, 0x20, 0x0b, 0xe1, 0x5e, 0x36, 0xa1, 0xd2,
- 0x1b, 0x5f, 0xa1, 0xe0, 0x12, 0xb7, 0xde, 0xd0, 0xc7, 0xff, 0x1d, 0x56,
- 0x15, 0xe5, 0xb9, 0x10, 0x3c, 0x0e, 0x32, 0xc2, 0x06, 0x9a, 0x03, 0xc8,
- 0xe9, 0x4d, 0x62, 0xbb, 0xc7, 0x06, 0x3e, 0x1f, 0xd2, 0x10, 0x43, 0x80,
- 0x09, 0x2a, 0x89, 0xbb, 0x8b, 0xef, 0x42, 0x43, 0xaa, 0x9b, 0x25, 0xaf,
- 0x97, 0xa1, 0xb8, 0x95, 0x86, 0xbc, 0x91, 0x18, 0x81, 0x00, 0x13, 0x3c,
- 0xa5, 0xdb, 0x10, 0x27, 0xb5, 0xfc, 0x4b, 0xf6, 0x58, 0xff, 0xbc, 0x6c,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x82, 0x37, 0xcb, 0xaf,
- 0x8c, 0x7f, 0xbf, 0x84, 0x1f, 0xfc, 0xbb, 0xff, 0xff, 0xff, 0xf9, 0x3f,
- 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6, 0xff, 0x27, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf8,
- 0xc1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x84,
- 0x8c, 0x0e, 0x08, 0x03, 0xf3, 0xfa, 0x7e, 0x6c, 0x22, 0x52, 0x97, 0x8a,
- 0xde, 0x3f, 0xe1, 0xfe, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x29,
- 0x05, 0x0c, 0x01, 0x05, 0xbd, 0x2e, 0x59, 0x12, 0x35, 0x9e, 0xfb, 0xaf,
- 0x1a, 0xa3, 0xe6, 0xa4, 0x2e, 0x60, 0x05, 0x68, 0xd0, 0x7c, 0x85, 0xcc,
- 0xbd, 0xf7, 0xee, 0xef, 0xb8, 0x53, 0x05, 0x3e, 0x17, 0xfc, 0x26, 0x25,
- 0xf4, 0x00, 0xbd, 0xcc, 0xbd, 0x57, 0xc2, 0x4c, 0x25, 0xbe, 0x0a, 0x66,
- 0x7c, 0x50, 0x03, 0x58, 0xbd, 0x39, 0x4f, 0xbf, 0xb9, 0x3c, 0xdf, 0xff,
- 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x37, 0x00, 0x51, 0xd1,
- 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3, 0xc0, 0x55, 0x27, 0x27, 0xe1,
- 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xea, 0xc5, 0x81, 0xeb, 0x83, 0x65,
- 0x3e, 0x4c, 0x59, 0x98, 0xbe, 0xa7, 0x93, 0xa2, 0xc0, 0x7a, 0xf1, 0x32,
- 0xa4, 0xb6, 0xce, 0xe7, 0x37, 0xff, 0xe4, 0x50, 0x42, 0x78, 0x01, 0x11,
- 0xb6, 0x12, 0x15, 0xd8, 0xff, 0x78, 0x00, 0xf5, 0x2f, 0x80, 0xfd, 0xe6,
- 0x3e, 0xff, 0xc1, 0xff, 0xff, 0xb9, 0xe5, 0xfc, 0x73, 0xe9, 0x82, 0x18,
- 0xf9, 0xe3, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xfb, 0x20, 0x9b, 0xf0,
- 0x7b, 0x30, 0x38, 0x3e, 0x61, 0x86, 0x94, 0x73, 0x4a, 0xd2, 0x29, 0x13,
- 0x7e, 0x24, 0xb0, 0x07, 0xa9, 0x7c, 0x07, 0xef, 0x30, 0x07, 0xc9, 0x57,
- 0x4f, 0x71, 0xfb, 0x9f, 0xb7, 0xbf, 0xc7, 0xff, 0xf7, 0x03, 0x0e, 0x00,
- 0x7c, 0x76, 0xed, 0x9f, 0xb8, 0xa4, 0x18, 0xce, 0xff, 0xfa, 0xff, 0xdd,
- 0xf3, 0x0a, 0x4f, 0x4f, 0x98, 0x4e, 0x09, 0xfe, 0x00, 0xd9, 0xfa, 0x97,
- 0xf8, 0x1e, 0x81, 0x81, 0x23, 0xd0, 0xef, 0x6f, 0xfc, 0x01, 0xcd, 0xcb,
- 0x3d, 0x22, 0x78, 0xee, 0x6c, 0x27, 0x62, 0xa3, 0x1e, 0x26, 0x27, 0x98,
- 0x8f, 0x32, 0x4d, 0x21, 0xcf, 0x09, 0xe2, 0xc6, 0x00, 0x95, 0xea, 0x5f,
- 0xe0, 0x7f, 0xe1, 0xc4, 0x5b, 0xbf, 0xc0, 0x1c, 0xdd, 0x67, 0xa5, 0xef,
- 0xc7, 0x73, 0x16, 0x30, 0x1e, 0x01, 0xec, 0xde, 0x2d, 0xff, 0xc3, 0xe5,
- 0xf0, 0x01, 0x9f, 0xf1, 0x17, 0xf3, 0xfe, 0xff, 0xfb, 0xf1, 0xb0, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x25, 0xff, 0x2f, 0xaf, 0x1b,
- 0xff, 0x7f, 0xf0, 0x87, 0xff, 0xe5, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x27, 0xff, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0x7f,
- 0xff, 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae,
- 0x6f, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xd7, 0xfd, 0x92, 0x2c, 0xf8, 0x10, 0xfd, 0x0d, 0xb9, 0x7e, 0x3a, 0x59,
- 0x76, 0x4c, 0x57, 0xff, 0xff, 0xff, 0x65, 0x8a, 0x10, 0x11, 0x8e, 0xd2,
- 0x38, 0xde, 0xb3, 0x6f, 0xc0, 0x6f, 0x14, 0xa3, 0xd0, 0x1d, 0x7c, 0x80,
- 0x14, 0x68, 0x72, 0x93, 0xb6, 0x7f, 0x14, 0x8a, 0x3d, 0x02, 0x71, 0x14,
- 0xa8, 0xfc, 0x48, 0x92, 0xa0, 0x13, 0x20, 0xca, 0x48, 0x50, 0x9d, 0x37,
- 0xbf, 0x2e, 0xa4, 0x8c, 0xb7, 0x0d, 0xee, 0xf7, 0xc6, 0xf4, 0x3f, 0x0a,
- 0x7c, 0x99, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0x83, 0x15, 0x9b,
- 0x00, 0x8f, 0x5f, 0x6c, 0x3d, 0x9d, 0x2d, 0xe1, 0xd9, 0x78, 0x09, 0xbb,
- 0x5a, 0x0f, 0x93, 0x7f, 0xd2, 0x03, 0xcf, 0x5f, 0xf8, 0x75, 0xa9, 0x0b,
- 0xfb, 0xfd, 0x46, 0x8a, 0xb4, 0xea, 0x79, 0x12, 0xec, 0xeb, 0xd7, 0xff,
- 0xf7, 0xff, 0xfc, 0x31, 0x6a, 0x6d, 0xff, 0x84, 0x8f, 0x00, 0xc7, 0x56,
- 0x9f, 0xe4, 0x04, 0xd6, 0x86, 0xca, 0x81, 0xb6, 0xa1, 0x6f, 0x09, 0x09,
- 0xc7, 0xc0, 0xe7, 0x0c, 0x4a, 0xc5, 0x50, 0x22, 0x6d, 0x7b, 0x50, 0x09,
- 0x1e, 0xac, 0x3f, 0xfe, 0xee, 0x17, 0x54, 0x79, 0x98, 0x08, 0x3f, 0xe9,
- 0xf2, 0x57, 0xec, 0x0e, 0x8b, 0xc0, 0x0f, 0x9f, 0xca, 0x36, 0xe2, 0x90,
- 0x2b, 0x7b, 0xfe, 0x6f, 0xfb, 0xff, 0xc0, 0x40, 0xf7, 0x9d, 0xe2, 0x2f,
- 0xc3, 0x1f, 0xe7, 0x33, 0xf8, 0x20, 0x2f, 0x00, 0xe0, 0x97, 0xeb, 0x78,
- 0x64, 0x17, 0x80, 0xfc, 0x2c, 0x98, 0xe7, 0xd0, 0x62, 0x7a, 0xc4, 0xff,
- 0xe1, 0xf4, 0x00, 0xf7, 0xed, 0x01, 0x2e, 0xdf, 0x00, 0x7b, 0xef, 0x8f,
- 0x62, 0x18, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x02, 0x2d, 0x0d, 0xde, 0x78,
- 0x12, 0xfa, 0x03, 0xf7, 0xb3, 0xb7, 0x06, 0x0b, 0xbc, 0x73, 0xee, 0x42,
- 0x80, 0xeb, 0x5f, 0x46, 0xf7, 0x2d, 0x07, 0xfe, 0xf1, 0xb0, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x2f, 0x97, 0x5f, 0x19, 0xf7,
- 0xf0, 0x87, 0xf9, 0x77, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xfe, 0x14, 0xff,
- 0xfc, 0x21, 0xfe, 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x01, 0x4f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xaf, 0xf2, 0x97, 0x0d, 0xe5, 0x80, 0x45, 0xe5, 0x9c,
- 0x64, 0xeb, 0xbb, 0x62, 0x7c, 0xbf, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xc5,
- 0x1a, 0x01, 0x33, 0x5f, 0xa7, 0xf7, 0x7f, 0x01, 0x0b, 0x36, 0x8f, 0xfc,
- 0xb2, 0x74, 0x3c, 0x74, 0xce, 0x64, 0x45, 0x29, 0x38, 0xf0, 0x38, 0xb7,
- 0x87, 0x01, 0xd6, 0xbe, 0x6e, 0xcf, 0xe9, 0xe0, 0x39, 0x12, 0x9e, 0xd1,
- 0x6e, 0xb1, 0xaa, 0xe2, 0x68, 0xdb, 0x38, 0xeb, 0xa6, 0x6f, 0xed, 0xc0,
- 0x7f, 0x80, 0x8c, 0xac, 0xd4, 0x7b, 0xf3, 0x7b, 0x18, 0x44, 0x0a, 0x89,
- 0x58, 0xc8, 0x47, 0xc9, 0xf8, 0x21, 0x86, 0x02, 0x17, 0xae, 0xf0, 0xa6,
- 0x03, 0x3b, 0x4f, 0x70, 0x8b, 0xff, 0xf8, 0x0d, 0xef, 0xd5, 0xf2, 0x15,
- 0xc0, 0x16, 0xb1, 0x4c, 0xa9, 0xb3, 0xec, 0xce, 0x48, 0x2a, 0xb6, 0x85,
- 0xd3, 0x12, 0x37, 0xa4, 0x67, 0xa6, 0x47, 0xcb, 0x80, 0x63, 0xab, 0xec,
- 0x40, 0x70, 0xdb, 0xa1, 0x6e, 0xc7, 0xcc, 0x5c, 0x01, 0x6a, 0x4d, 0x7e,
- 0xac, 0x69, 0xbb, 0xc9, 0x70, 0xc8, 0x86, 0x35, 0x5c, 0x29, 0xba, 0x69,
- 0x93, 0xfb, 0x4f, 0xf0, 0x99, 0x49, 0x91, 0x31, 0xad, 0xa7, 0x6e, 0x21,
- 0xcf, 0xe4, 0xf3, 0x7f, 0xff, 0xf9, 0xbf, 0x15, 0x40, 0x03, 0x06, 0xa5,
- 0x93, 0x80, 0x33, 0xf9, 0x1e, 0x8b, 0xbb, 0xb9, 0x62, 0x13, 0x58, 0xc5,
- 0x5d, 0x0e, 0x37, 0x28, 0x66, 0x25, 0xed, 0x48, 0xeb, 0xd1, 0xe4, 0xcb,
- 0xa3, 0x72, 0x0f, 0xcf, 0x21, 0xf7, 0x5a, 0xc9, 0xbf, 0x5b, 0x10, 0x55,
- 0x3b, 0x7e, 0x02, 0x32, 0x9e, 0x9f, 0x9c, 0x5f, 0x53, 0x3c, 0x38, 0xeb,
- 0x67, 0xe4, 0x01, 0xcf, 0x74, 0xa6, 0x31, 0xd3, 0x0d, 0x26, 0xdc, 0x01,
- 0x9e, 0xfd, 0x72, 0x2e, 0x7e, 0x62, 0xc0, 0x85, 0xb8, 0xfd, 0xd9, 0xf9,
- 0x3f, 0x03, 0xc8, 0x12, 0x00, 0xc2, 0x06, 0x0c, 0x42, 0xe0, 0x90, 0x06,
- 0x90, 0xac, 0x40, 0x08, 0x20, 0xdd, 0x57, 0x9d, 0xbf, 0x00, 0x4b, 0xe6,
- 0x7e, 0x44, 0x13, 0x7f, 0x50, 0x73, 0x0f, 0x77, 0xff, 0xe1, 0x26, 0x3a,
- 0x5a, 0xdb, 0x40, 0x3f, 0x30, 0xca, 0xd3, 0x5d, 0xfd, 0x6f, 0xf3, 0xff,
- 0xff, 0xfd, 0xff, 0xff, 0xf9, 0x98, 0x67, 0x09, 0x7f, 0xc2, 0x48, 0x05,
- 0xb2, 0xb5, 0x8c, 0x37, 0x1c, 0xa6, 0x58, 0x8d, 0xa1, 0x48, 0xd2, 0xd3,
- 0x36, 0x8b, 0x14, 0x6b, 0xf4, 0xe2, 0x80, 0x76, 0x59, 0x22, 0x26, 0x8d,
- 0xdd, 0xb3, 0xe5, 0xfa, 0xc0, 0x42, 0x98, 0x62, 0x6b, 0xf3, 0xfc, 0xf1,
- 0x39, 0xfb, 0xf1, 0xde, 0xc2, 0x92, 0x00, 0x02, 0x6d, 0x34, 0x93, 0x69,
- 0x26, 0x9b, 0xff, 0xe0, 0x69, 0x86, 0xb5, 0xf7, 0xe3, 0xbe, 0x6f, 0xe1,
- 0xff, 0x0a, 0x12, 0x01, 0xf3, 0x20, 0xfe, 0x7e, 0x08, 0x9b, 0x6e, 0x69,
- 0xa2, 0x93, 0x86, 0x09, 0x3b, 0x6d, 0x08, 0x67, 0xf2, 0x6f, 0x4a, 0xf5,
- 0x7d, 0x6e, 0x04, 0x8f, 0xe5, 0x91, 0x71, 0xde, 0x6a, 0x22, 0xa7, 0x74,
- 0xcd, 0x5e, 0xab, 0x6f, 0xa5, 0x0e, 0x39, 0x39, 0x98, 0x4c, 0x83, 0x88,
- 0x78, 0x2c, 0x5b, 0x04, 0x03, 0x77, 0x5e, 0xb2, 0xb6, 0x86, 0x8f, 0x77,
- 0x2c, 0x81, 0xa3, 0x43, 0x83, 0x03, 0x12, 0x39, 0x60, 0x8b, 0xf3, 0x36,
- 0xa6, 0xf8, 0xb3, 0x45, 0x22, 0x93, 0x94, 0xe1, 0x2b, 0x40, 0x62, 0x4e,
- 0x58, 0xcf, 0x63, 0xde, 0xae, 0x80, 0xfb, 0x5c, 0x07, 0x5c, 0xca, 0xd3,
- 0xe4, 0xf8, 0x37, 0x20, 0x89, 0x0f, 0xad, 0x34, 0xd8, 0x53, 0xd2, 0x4d,
- 0x3d, 0xb8, 0x34, 0x09, 0x50, 0x72, 0x3b, 0xe1, 0xda, 0x8a, 0x78, 0xec,
- 0x47, 0x8a, 0x10, 0x69, 0x9c, 0x59, 0xdb, 0x3f, 0xe3, 0x60, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x0a, 0x7c, 0x82, 0x20, 0x48, 0x2e,
- 0xe6, 0x7f, 0xdb, 0x54, 0x4c, 0xe5, 0x95, 0x13, 0x39, 0x6f, 0xf1, 0x10,
- 0x34, 0x4c, 0xe5, 0x95, 0x13, 0x39, 0x6f, 0x54, 0x4c, 0xe5, 0xba, 0x5f,
- 0xc4, 0x20, 0x68, 0x12, 0xa0, 0x20, 0xb7, 0x81, 0x20, 0x78, 0x1c, 0xc2,
- 0xc0, 0x96, 0x8a, 0xa6, 0xe5, 0xbc, 0x83, 0xf6, 0x55, 0xc2, 0x92, 0xe0,
- 0x44, 0x5b, 0xa7, 0x9f, 0x9e, 0xff, 0x9f, 0xff, 0xfe, 0xbf, 0xe3, 0x3f,
- 0xef, 0xfe, 0xcd, 0x38, 0x2f, 0x6c, 0x7e, 0xc5, 0x01, 0x19, 0xb3, 0xbe,
- 0xcd, 0xd6, 0x94, 0xa4, 0x58, 0x07, 0x31, 0xe0, 0x31, 0x4d, 0xe6, 0x82,
- 0x6c, 0x18, 0xab, 0x63, 0x20, 0xea, 0x73, 0xdb, 0x46, 0x09, 0xa4, 0x98,
- 0x6e, 0x2c, 0x3d, 0x8c, 0x78, 0x53, 0xa2, 0x60, 0x80, 0x01, 0xd2, 0xaf,
- 0x58, 0x0e, 0xdc, 0x99, 0xff, 0x9b, 0xfb, 0x36, 0x3f, 0x71, 0x94, 0xbc,
- 0x9b, 0xdd, 0x78, 0xde, 0xbd, 0x89, 0xfc, 0xff, 0xe8, 0x86, 0x29, 0xbc,
- 0xd0, 0x26, 0xc1, 0x8a, 0xb6, 0x36, 0x1d, 0x4e, 0x7b, 0x69, 0x1b, 0x59,
- 0xec, 0x09, 0xc8, 0xb4, 0x1e, 0xfc, 0xf2, 0xfa, 0x90, 0x20, 0x00, 0x74,
- 0xab, 0xd6, 0x03, 0xb7, 0x26, 0x77, 0xf9, 0xb0, 0xf6, 0x6c, 0x7e, 0xe3,
- 0x29, 0x79, 0x37, 0xba, 0xf1, 0xbd, 0x7b, 0x13, 0xf9, 0xe1, 0xf4, 0x43,
- 0x14, 0xde, 0x68, 0x13, 0x60, 0xc5, 0x5b, 0x1b, 0x0e, 0xa7, 0x3d, 0xb4,
- 0x8d, 0xac, 0xf6, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x10,
- 0x00, 0x3a, 0x55, 0xeb, 0x01, 0xdb, 0x93, 0x3b, 0xfc, 0xd8, 0x63, 0xb6,
- 0x29, 0x4d, 0xc6, 0x52, 0xf2, 0x6f, 0x75, 0xe3, 0x7a, 0xf6, 0x27, 0xf3,
- 0xc3, 0xe8, 0x86, 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9, 0x8d, 0x85, 0xeb,
- 0x45, 0x2a, 0xbc, 0x98, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48,
- 0x08, 0x46, 0x8e, 0x1f, 0x01, 0x64, 0x48, 0xd1, 0xe8, 0xea, 0x6f, 0xee,
- 0x60, 0x31, 0x08, 0xfd, 0x13, 0xdd, 0xac, 0xd9, 0xa1, 0xf3, 0x73, 0xea,
- 0x03, 0xe8, 0x69, 0x50, 0xa8, 0xf7, 0xee, 0xca, 0x06, 0x6b, 0xd9, 0x90,
- 0x10, 0x4a, 0xe9, 0x8c, 0x82, 0xf5, 0xa2, 0x95, 0x5e, 0x4c, 0x39, 0x53,
- 0xc0, 0x23, 0x99, 0x76, 0x7d, 0x7a, 0x05, 0x91, 0x33, 0x47, 0xaa, 0x54,
- 0xdf, 0xf3, 0x01, 0x88, 0x47, 0xe8, 0x9e, 0xed, 0x66, 0xcd, 0x0f, 0x9b,
- 0x9f, 0x50, 0x1f, 0x43, 0x4a, 0x85, 0x47, 0xbf, 0x76, 0x50, 0x33, 0x5e,
- 0xcc, 0x80, 0x82, 0x57, 0x4c, 0x64, 0x17, 0xad, 0x14, 0xaa, 0xf2, 0x61,
- 0xca, 0x9e, 0x01, 0x1c, 0xcb, 0xb3, 0xeb, 0xd0, 0x2c, 0x89, 0x9a, 0x3d,
- 0x52, 0xa6, 0xff, 0x98, 0x0c, 0x42, 0x3f, 0x44, 0xf7, 0x6b, 0x36, 0x68,
- 0x7c, 0xdc, 0xfa, 0x80, 0xfa, 0x1a, 0x54, 0x2a, 0x3d, 0xfb, 0xb2, 0x81,
- 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x04, 0xdc, 0xda, 0x29,
- 0xdd, 0x73, 0x95, 0x3c, 0x02, 0x39, 0x97, 0x67, 0xd7, 0xa0, 0x59, 0x13,
- 0x34, 0x7a, 0xa5, 0x4d, 0xfa, 0x36, 0xee, 0x98, 0x4d, 0x82, 0x3c, 0xfc,
- 0x77, 0x6b, 0x36, 0x6c, 0x7d, 0x5f, 0x07, 0x76, 0x45, 0xaa, 0xbf, 0xf3,
- 0xd1, 0x00, 0xcd, 0x7b, 0x32, 0x02, 0x08, 0x64, 0xdd, 0x99, 0x84, 0xdc,
- 0xda, 0x29, 0xdd, 0x70, 0xf5, 0x26, 0x41, 0xc1, 0x49, 0xd3, 0x3d, 0xbf,
- 0x81, 0x38, 0x55, 0x8f, 0x7e, 0xe9, 0xb6, 0xd5, 0x30, 0x9b, 0x04, 0x79,
- 0xf8, 0xee, 0xd6, 0x6c, 0xd8, 0xfa, 0xbe, 0x0e, 0xec, 0x8b, 0x55, 0x7f,
- 0xe7, 0xa2, 0x01, 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09,
- 0xb9, 0xb4, 0x53, 0xba, 0xe1, 0xea, 0x4c, 0x83, 0x82, 0x93, 0xa6, 0x7b,
- 0x7f, 0x02, 0x70, 0xab, 0x1e, 0xfd, 0xd3, 0x6d, 0xaa, 0x61, 0x36, 0x08,
- 0xf3, 0xf1, 0xdd, 0xac, 0xd9, 0xb1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16, 0xaa,
- 0xff, 0xcf, 0x44, 0x03, 0x35, 0xec, 0xc8, 0x08, 0x21, 0x93, 0x76, 0x66,
- 0x13, 0x73, 0x68, 0xa7, 0x75, 0xc3, 0xd4, 0x99, 0x07, 0x05, 0x27, 0x4c,
- 0xf6, 0xfe, 0x04, 0xe1, 0x56, 0x3d, 0xfb, 0xa6, 0xdb, 0x54, 0xc2, 0x74,
- 0x37, 0x0f, 0xf2, 0xb9, 0x89, 0x93, 0x3c, 0xde, 0x63, 0x6f, 0x5a, 0xbc,
- 0xa7, 0xb7, 0xcc, 0x85, 0xc7, 0xe0, 0x21, 0xb7, 0xe6, 0x40, 0x9b, 0x98,
- 0x64, 0x5c, 0xcc, 0xc2, 0x0f, 0x05, 0xba, 0x90, 0xf4, 0x93, 0x01, 0xdb,
- 0x4c, 0xff, 0xc2, 0x66, 0xda, 0x80, 0x68, 0x2a, 0xad, 0x76, 0x9a, 0x74,
- 0x37, 0x09, 0x00, 0x79, 0x5c, 0xc4, 0xc9, 0x9e, 0x6f, 0x31, 0xb7, 0xad,
- 0x5f, 0x82, 0x16, 0xba, 0xbf, 0xd0, 0x10, 0xdb, 0xf3, 0x20, 0x4d, 0xcc,
- 0x32, 0x2e, 0x66, 0x61, 0x04, 0x10, 0xb7, 0x52, 0x00, 0xe9, 0x2b, 0x3f,
- 0x38, 0x86, 0xd3, 0x20, 0x85, 0xf0, 0x99, 0xb6, 0xa0, 0x1a, 0x0a, 0xab,
- 0x5d, 0xa6, 0x9d, 0x0d, 0xc2, 0x40, 0x1e, 0x57, 0x31, 0x32, 0x67, 0x9b,
- 0xcc, 0x6d, 0xeb, 0x57, 0xe0, 0x85, 0xae, 0xaf, 0xf4, 0x04, 0x36, 0xfc,
- 0xc8, 0x13, 0x73, 0x0c, 0x8b, 0x99, 0x98, 0x41, 0x04, 0x2d, 0xd4, 0x80,
- 0x3a, 0x4a, 0xcf, 0xce, 0x21, 0xb4, 0xc8, 0x21, 0x7c, 0x26, 0x6d, 0xa8,
- 0x06, 0x82, 0xaa, 0xd7, 0x69, 0xa7, 0x1a, 0x04, 0x80, 0x36, 0xee, 0x62,
- 0x64, 0xcf, 0x37, 0x9a, 0x31, 0xea, 0xf7, 0xe0, 0x87, 0x82, 0x9a, 0x26,
- 0x12, 0xb6, 0x62, 0x19, 0xeb, 0xb4, 0xd7, 0x2c, 0x32, 0x67, 0xc0, 0x34,
- 0x29, 0x56, 0xb5, 0x3f, 0xfe, 0x02, 0x10, 0x55, 0x1a, 0xd6, 0x4d, 0xff,
- 0x8e, 0xdd, 0xc2, 0x79, 0x11, 0x9d, 0x6a, 0x6c, 0x1b, 0x59, 0xb5, 0x37,
- 0xd4, 0x70, 0xf7, 0xaf, 0x83, 0xcc, 0x4a, 0x98, 0x0e, 0x98, 0xd5, 0x32,
- 0x7d, 0x4c, 0x40, 0xaf, 0x1e, 0xfd, 0xff, 0xc0, 0x42, 0x0a, 0xa6, 0xb5,
- 0x93, 0x71, 0xa8, 0x71, 0xdb, 0xbc, 0x04, 0x2b, 0x29, 0x87, 0x03, 0xc1,
- 0x9d, 0x04, 0x44, 0x2b, 0x47, 0xbf, 0x46, 0x46, 0x69, 0x61, 0xc7, 0x94,
- 0x27, 0xb4, 0x6f, 0x91, 0x19, 0x8d, 0x98, 0xdf, 0xa9, 0x88, 0x15, 0xe3,
- 0xdf, 0xbf, 0xf0, 0x10, 0x82, 0xa9, 0xad, 0x64, 0xc4, 0x71, 0x37, 0x0e,
- 0x39, 0x71, 0x36, 0xbe, 0x19, 0xe0, 0x1f, 0x40, 0x6d, 0xeb, 0x57, 0xd5,
- 0x4c, 0x44, 0x2b, 0x47, 0xbf, 0x40, 0x35, 0x6c, 0xc4, 0x44, 0xfd, 0x0c,
- 0x09, 0xad, 0xe2, 0x6c, 0x16, 0x93, 0x34, 0xdb, 0x6a, 0xbf, 0x53, 0x10,
- 0x2b, 0xc7, 0xbf, 0x7f, 0x35, 0x7a, 0x88, 0x63, 0x97, 0x13, 0x31, 0x56,
- 0xc7, 0x87, 0x4d, 0xeb, 0x24, 0xcf, 0x9f, 0x2e, 0x0b, 0x56, 0x0c, 0xeb,
- 0xd8, 0x90, 0x74, 0x30, 0x27, 0x66, 0xc1, 0x36, 0x08, 0x98, 0x93, 0x34,
- 0xdb, 0x6a, 0x80, 0x80, 0x5f, 0x25, 0xac, 0x02, 0x50, 0x07, 0xce, 0xbd,
- 0x60, 0x31, 0x4d, 0x5f, 0x16, 0xc7, 0xf7, 0x31, 0x56, 0xc7, 0x07, 0x4d,
- 0xeb, 0x25, 0x9f, 0x3e, 0x5c, 0x16, 0xac, 0x19, 0xd7, 0xb1, 0x61, 0xd0,
- 0xc0, 0x9a, 0xcd, 0x82, 0x6c, 0x11, 0x31, 0x26, 0x60, 0xb7, 0xee, 0xa8,
- 0x08, 0x05, 0xf2, 0x5a, 0xc0, 0x25, 0x00, 0x7c, 0xab, 0xd6, 0x03, 0x17,
- 0xf0, 0x5c, 0xd5, 0x0a, 0xd3, 0x8e, 0x31, 0xb4, 0x62, 0xde, 0x38, 0x3a,
- 0x37, 0x4a, 0x63, 0x29, 0x02, 0xf6, 0x47, 0x12, 0x2d, 0x30, 0x0c, 0x3f,
- 0xf3, 0x02, 0x5c, 0xeb, 0x74, 0xf8, 0x94, 0x06, 0xd9, 0x2d, 0xa0, 0x20,
- 0x1f, 0xa5, 0xac, 0x02, 0x50, 0x1f, 0x2a, 0xf5, 0x81, 0xeb, 0xcf, 0x00,
- 0x38, 0x09, 0x6e, 0x14, 0x5a, 0xc9, 0xa1, 0x86, 0xd8, 0x27, 0xdd, 0x91,
- 0x34, 0xcf, 0x59, 0x7c, 0x07, 0x25, 0xe9, 0x84, 0x16, 0xb7, 0x5d, 0xc5,
- 0x5b, 0x80, 0xb6, 0xb4, 0x04, 0x20, 0xf3, 0x63, 0xef, 0x33, 0x14, 0x98,
- 0x46, 0x6c, 0x7a, 0xf4, 0x07, 0x15, 0x34, 0xce, 0x8a, 0x67, 0xf6, 0xbe,
- 0x6f, 0x0d, 0xba, 0x08, 0x06, 0xd8, 0x8c, 0xff, 0x92, 0xeb, 0xaf, 0xe0,
- 0x38, 0x53, 0xf4, 0xc2, 0x0b, 0x7b, 0xab, 0x03, 0x7e, 0xda, 0x02, 0xda,
- 0xd0, 0x42, 0xd6, 0xeb, 0xc1, 0xfd, 0xa6, 0x01, 0xad, 0xd3, 0x1e, 0xba,
- 0x0e, 0x01, 0x76, 0x3b, 0x99, 0xfd, 0xaf, 0x9b, 0xc3, 0x6e, 0x82, 0x01,
- 0xb8, 0x8c, 0xff, 0x92, 0xeb, 0xaf, 0xe0, 0x38, 0x53, 0xf4, 0xc2, 0x0b,
- 0x7b, 0xab, 0x03, 0x7e, 0xda, 0x02, 0xda, 0xd0, 0x42, 0xd6, 0xeb, 0xc1,
- 0xfd, 0xa6, 0x01, 0xad, 0xd3, 0x1e, 0xba, 0x0e, 0x01, 0x76, 0x3b, 0x99,
- 0xfd, 0xaf, 0x9b, 0xed, 0xff, 0xdc, 0x46, 0x7f, 0xc9, 0x74, 0x36, 0xa7,
- 0xf8, 0x90, 0x10, 0x05, 0xb5, 0x7f, 0x38, 0x2c, 0xcb, 0x4d, 0x02, 0x16,
- 0xb7, 0x5e, 0x0f, 0xed, 0x30, 0x87, 0xa1, 0xef, 0xd0, 0x25, 0x6b, 0x1e,
- 0xfd, 0x78, 0xd1, 0xeb, 0x31, 0xf7, 0xcd, 0x03, 0x00, 0x6d, 0xbf, 0xdf,
- 0x1e, 0x98, 0xd5, 0x30, 0x41, 0x7a, 0x1e, 0xb3, 0xfc, 0x10, 0x0b, 0x6a,
- 0xfe, 0x60, 0xb3, 0x2d, 0x34, 0xa5, 0xad, 0xe7, 0xa3, 0x04, 0x7b, 0x1e,
- 0xf2, 0x09, 0x70, 0x7b, 0x9e, 0xc6, 0x83, 0xd6, 0x31, 0xf7, 0xcd, 0x03,
- 0x00, 0x6d, 0xbf, 0xdf, 0x1e, 0x98, 0xd5, 0x30, 0x41, 0x7a, 0x1e, 0xb3,
- 0xfc, 0x10, 0x0b, 0x6a, 0xfe, 0x60, 0xb3, 0x2d, 0x34, 0xa5, 0xad, 0xe7,
- 0xa3, 0x04, 0x7b, 0x1e, 0xf2, 0x09, 0x70, 0x7b, 0x9e, 0xc6, 0x83, 0xd6,
- 0x31, 0xf7, 0xcd, 0x03, 0x00, 0xed, 0xe3, 0xdf, 0x1e, 0x98, 0xd5, 0x30,
- 0x41, 0x7a, 0x1e, 0xb3, 0xfc, 0x1d, 0x09, 0x2a, 0x67, 0x52, 0xd6, 0xf3,
- 0xd1, 0x82, 0x3d, 0x8f, 0x79, 0x40, 0xe8, 0x22, 0xa0, 0x01, 0x26, 0x1c,
- 0xd4, 0xa1, 0xd9, 0x49, 0x7b, 0x1e, 0xf2, 0x9a, 0x88, 0x01, 0xc3, 0xc7,
- 0x8a, 0xe0, 0x11, 0x29, 0xd3, 0x0c, 0xbf, 0xf4, 0x04, 0x45, 0xfc, 0x02,
- 0xbe, 0x0e, 0x32, 0xa4, 0x7a, 0x12, 0x54, 0xcf, 0x02, 0x5d, 0xf6, 0xc4,
- 0x20, 0x8a, 0x82, 0x08, 0x03, 0x22, 0x8f, 0x7e, 0xa9, 0xe0, 0xf7, 0xa9,
- 0xa8, 0x80, 0x1c, 0x3c, 0x78, 0xae, 0x01, 0x12, 0x9d, 0x30, 0xcb, 0xff,
- 0x40, 0x44, 0x5f, 0xc0, 0x2b, 0xe0, 0xe3, 0x2a, 0x47, 0xa1, 0x25, 0x4c,
- 0xf0, 0x25, 0xdf, 0x6c, 0x42, 0x08, 0xa8, 0x20, 0x80, 0x32, 0x28, 0xf7,
- 0xea, 0x9e, 0x0f, 0x7a, 0x9a, 0x88, 0x01, 0xc3, 0xfc, 0x57, 0x00, 0x89,
- 0x4e, 0x98, 0x65, 0xff, 0xa0, 0x22, 0x2f, 0xe0, 0x15, 0xf0, 0x71, 0x95,
- 0x23, 0xd0, 0x92, 0xa6, 0x78, 0x12, 0xef, 0xb6, 0x93, 0xbd, 0xa8, 0x20,
- 0x0c, 0x8a, 0x3d, 0xfa, 0x6b, 0x3d, 0x35, 0xac, 0x99, 0xb6, 0xff, 0x1d,
- 0xa2, 0xa1, 0x31, 0x4b, 0x40, 0x4a, 0xfd, 0xfe, 0xc0, 0x4c, 0x3d, 0xc0,
- 0x2b, 0xc0, 0x78, 0x96, 0xa6, 0x5c, 0x53, 0x3f, 0x03, 0xc1, 0x95, 0x01,
- 0x07, 0x7b, 0x46, 0xac, 0x1e, 0xf4, 0x75, 0xb2, 0x69, 0xd2, 0x66, 0xd3,
- 0xfc, 0x76, 0xb8, 0x12, 0xd2, 0xb8, 0x37, 0xaf, 0xdf, 0x3e, 0xc0, 0x5f,
- 0xc4, 0x02, 0xbc, 0x03, 0xc4, 0xb5, 0x32, 0xe2, 0x99, 0xff, 0x96, 0x8b,
- 0x81, 0xe0, 0xca, 0x80, 0x83, 0xbd, 0xa2, 0x2b, 0x63, 0xde, 0x47, 0x5b,
- 0x26, 0x9d, 0x26, 0x6d, 0x3f, 0xc7, 0x6b, 0x81, 0x2d, 0x2b, 0x83, 0x7a,
- 0xfd, 0xf3, 0xec, 0x05, 0xfc, 0x40, 0x2b, 0xc0, 0x3c, 0x4b, 0x53, 0x2e,
- 0x29, 0x9f, 0xf9, 0x68, 0xb8, 0x1e, 0x0c, 0xa8, 0x08, 0x3b, 0xda, 0x22,
- 0xb6, 0x3d, 0xe4, 0x75, 0xb2, 0x69, 0xd2, 0x66, 0xc9, 0x21, 0xa7, 0xf7,
- 0x02, 0x5c, 0xae, 0x0d, 0xeb, 0xf7, 0xcf, 0xb0, 0x4f, 0xa1, 0xea, 0x00,
- 0x24, 0xba, 0xb0, 0xe1, 0x5c, 0x03, 0x13, 0x64, 0xc6, 0xd2, 0x6f, 0xf1,
- 0xaf, 0xa7, 0xda, 0xe4, 0xc6, 0xec, 0x04, 0x78, 0x3d, 0xeb, 0x02, 0xde,
- 0x43, 0xba, 0x9b, 0x92, 0x43, 0x4f, 0xee, 0xa0, 0x24, 0xa9, 0x9e, 0x04,
- 0xf9, 0x43, 0xd6, 0x00, 0x92, 0xe4, 0xc0, 0xd8, 0x5c, 0x0d, 0x29, 0x6c,
- 0x9b, 0x69, 0x37, 0xf7, 0xd4, 0xfa, 0xaf, 0x0f, 0x64, 0xfa, 0xbf, 0x46,
- 0x08, 0xf6, 0x3d, 0xe5, 0x81, 0x6f, 0x47, 0x75, 0x30, 0xe4, 0x90, 0xd3,
- 0xfb, 0x8f, 0x98, 0x95, 0x33, 0xc0, 0x9f, 0x28, 0x7a, 0xc0, 0x12, 0x5c,
- 0xb0, 0x36, 0x17, 0x03, 0x4a, 0x5b, 0x26, 0x6d, 0x26, 0xfe, 0xfa, 0x9f,
- 0x55, 0x60, 0xf7, 0xa6, 0x59, 0x31, 0xd8, 0x23, 0xd8, 0xf7, 0x96, 0x05,
- 0xbd, 0x1d, 0xd4, 0xc3, 0x94, 0x58, 0x29, 0x80, 0xf7, 0x1f, 0x31, 0x74,
- 0xcf, 0x02, 0x7c, 0xa1, 0xeb, 0x20, 0x38, 0x29, 0xb2, 0x64, 0x61, 0x28,
- 0xcb, 0x77, 0xfd, 0xf5, 0x3e, 0x9a, 0xd8, 0xf7, 0x93, 0xea, 0xfd, 0x83,
- 0x80, 0x4a, 0xc6, 0x08, 0x77, 0xb5, 0x30, 0x7d, 0xbb, 0xe3, 0xdf, 0x8c,
- 0x01, 0x6d, 0x77, 0x25, 0xd7, 0x66, 0x22, 0xef, 0xb6, 0x1e, 0x0a, 0x65,
- 0x4c, 0x31, 0x31, 0xc3, 0xe1, 0x5f, 0x3e, 0x04, 0xbb, 0xed, 0x82, 0x17,
- 0xf1, 0x2d, 0x76, 0x7f, 0x53, 0x0b, 0x74, 0x1c, 0x02, 0x56, 0x3c, 0x10,
- 0xef, 0x6a, 0x6f, 0xdb, 0xbe, 0x3d, 0xf8, 0xc0, 0x16, 0xd7, 0x72, 0x5d,
- 0x7a, 0x38, 0xbb, 0xed, 0x87, 0x82, 0x99, 0x53, 0x0c, 0x4c, 0x70, 0xe8,
- 0x57, 0xcf, 0x82, 0x5d, 0xee, 0xb0, 0x85, 0xfc, 0x4b, 0x5d, 0xdf, 0x53,
- 0x0a, 0x54, 0x03, 0x80, 0x5d, 0x8f, 0x04, 0x3b, 0xda, 0x9b, 0xf6, 0x1d,
- 0xf1, 0xef, 0xe0, 0x0b, 0x6b, 0xb4, 0x97, 0x5f, 0xab, 0xb7, 0x70, 0xf4,
- 0x5d, 0x13, 0x00, 0x89, 0x8e, 0x1f, 0x0a, 0xf8, 0x42, 0x09, 0x50, 0x41,
- 0x2e, 0xf7, 0x58, 0x42, 0xfe, 0x25, 0xae, 0xc7, 0xbf, 0xa6, 0x16, 0xe8,
- 0x38, 0x05, 0x58, 0xf0, 0x1e, 0xc4, 0xa9, 0x9e, 0x20, 0xe3, 0xac, 0x6d,
- 0x12, 0x36, 0xa6, 0x31, 0x0b, 0x44, 0xd5, 0x78, 0x1f, 0xd7, 0x5a, 0x75,
- 0xc7, 0x63, 0x21, 0x48, 0x92, 0xaf, 0x3f, 0xfc, 0x43, 0x1d, 0x63, 0x68,
- 0x91, 0xb5, 0x34, 0x68, 0x4d, 0x13, 0x55, 0xe7, 0xfd, 0x75, 0xa7, 0x5c,
- 0x76, 0x32, 0x12, 0x44, 0x95, 0x79, 0xff, 0xe2, 0x23, 0xac, 0x6d, 0x12,
- 0x36, 0xa6, 0x8d, 0x09, 0xa2, 0x6a, 0xbc, 0xff, 0xae, 0xb4, 0xeb, 0x8e,
- 0xc6, 0x42, 0x48, 0x92, 0xaf, 0x3f, 0xfc, 0x44, 0x75, 0x8d, 0xa2, 0x46,
- 0xd4, 0xc6, 0x21, 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8,
- 0x30, 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30,
- 0xfd, 0x1a, 0x13, 0x44, 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83,
- 0x06, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f,
- 0xd1, 0xa1, 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8, 0x30,
- 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfd,
- 0x1a, 0x13, 0x44, 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a,
- 0x55, 0x47, 0x6f, 0xff, 0x11, 0x08, 0x46, 0xf4, 0x26, 0x8c, 0x3f, 0x18,
- 0x84, 0xd1, 0x35, 0x5e, 0x7f, 0xd7, 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95,
- 0x51, 0xdb, 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xc6, 0x21,
- 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54,
- 0x76, 0xff, 0xf1, 0x10, 0x84, 0x6f, 0x42, 0x68, 0xc3, 0xf1, 0x88, 0x4d,
- 0x13, 0x55, 0xe7, 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0xac, 0x69, 0x55, 0x1d,
- 0xbf, 0xfc, 0x44, 0xc8, 0x49, 0x12, 0x55, 0xe0, 0x47, 0x3f, 0xb1, 0x35,
- 0x61, 0xfb, 0xfe, 0xba, 0xd3, 0xae, 0x3b, 0x56, 0x34, 0xaa, 0x8e, 0xdf,
- 0xfe, 0x22, 0x64, 0x24, 0x89, 0x2a, 0xf0, 0x23, 0x9f, 0xd8, 0x9a, 0xb0,
- 0xfd, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff,
- 0x11, 0x32, 0x12, 0x44, 0x95, 0x78, 0x11, 0xcf, 0xec, 0x4d, 0x58, 0x7e,
- 0xff, 0xae, 0xb4, 0xeb, 0x8e, 0xd5, 0x8d, 0x2a, 0xa3, 0xb7, 0xff, 0x88,
- 0x99, 0x09, 0x22, 0x4a, 0xbc, 0x08, 0xe7, 0xf6, 0x26, 0xac, 0x3f, 0x7f,
- 0x86, 0x56, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x18,
- 0xe1, 0x24, 0x49, 0x57, 0x81, 0x1c, 0xfe, 0xc4, 0xd5, 0x87, 0xef, 0xf0,
- 0xca, 0xd3, 0xae, 0x3b, 0x56, 0x34, 0xaa, 0x8e, 0xdf, 0xfe, 0x23, 0x1c,
- 0x24, 0x89, 0x2a, 0xf0, 0x23, 0x9f, 0xd8, 0x9a, 0xb0, 0xfd, 0xfe, 0x19,
- 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x63, 0x84,
- 0x91, 0x25, 0x5e, 0x04, 0x73, 0xfb, 0x13, 0x56, 0x1f, 0xbf, 0xcc, 0x42,
- 0x68, 0x9a, 0xaf, 0x2b, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x8e, 0x12,
- 0x44, 0x95, 0x78, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x6f, 0xf3, 0x10, 0x9a,
- 0x26, 0xab, 0xca, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x63, 0x84, 0x91,
- 0x25, 0x5e, 0x0e, 0xb1, 0xb4, 0x48, 0xda, 0x9b, 0xfc, 0xc4, 0x26, 0x89,
- 0xaa, 0xf2, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x0a, 0x38, 0x52, 0x24,
- 0xab, 0xc1, 0xd6, 0x36, 0x89, 0x1b, 0x53, 0x7f, 0x98, 0x85, 0xa2, 0x6a,
- 0xbc, 0x0c, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0xff, 0xff, 0xf8, 0x43, 0xff,
- 0xf7, 0xff, 0xf9, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xae, 0xb1, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xd7, 0x5e, 0xbe, 0x63, 0xe0, 0x24, 0x1d, 0x26, 0xfc, 0x8a, 0x67,
- 0xc9, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30, 0x6b,
- 0x58, 0x1e, 0x31, 0x82, 0xd8, 0x40, 0x12, 0xfd, 0xab, 0xe3, 0x5a, 0xb9,
- 0xf8, 0x81, 0xc4, 0x5e, 0xa3, 0x3d, 0x90, 0xd9, 0x8c, 0xf5, 0x8c, 0xf6,
- 0xfd, 0xe9, 0x44, 0xcd, 0xf1, 0x84, 0x9c, 0xb1, 0xde, 0x5e, 0x2e, 0x59,
- 0x03, 0x54, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0x79, 0x8c, 0xb4, 0x69,
- 0x57, 0x9e, 0x8c, 0x2c, 0xae, 0x16, 0x5d, 0x0d, 0x8f, 0xc9, 0x9b, 0xff,
- 0xd7, 0xc5, 0x9b, 0x1a, 0x37, 0x01, 0x41, 0x54, 0x68, 0x5b, 0xe7, 0x0d,
- 0xc6, 0xce, 0xea, 0x28, 0x77, 0xe1, 0x8f, 0xde, 0xfe, 0x94, 0xb2, 0xf0,
- 0x04, 0x32, 0xb0, 0x7c, 0x63, 0xdf, 0x90, 0x48, 0x3a, 0x90, 0x3a, 0xbc,
- 0x99, 0xc4, 0xf0, 0x10, 0x3b, 0xe0, 0x3f, 0x6c, 0x0f, 0xf3, 0x8c, 0x82,
- 0xa5, 0x7f, 0xfb, 0xff, 0xf5, 0xe8, 0x44, 0x44, 0x1d, 0xc0, 0x85, 0x4c,
- 0x28, 0x3c, 0x27, 0x93, 0x80, 0x99, 0xbe, 0x37, 0xf2, 0x2f, 0x16, 0x21,
- 0x1a, 0x57, 0x51, 0x45, 0xbf, 0x26, 0x36, 0xd6, 0xc6, 0xa9, 0xb7, 0xfc,
- 0xbc, 0xfd, 0x02, 0x10, 0x24, 0x61, 0x80, 0xa7, 0xd3, 0x4f, 0x84, 0xfa,
- 0x02, 0x98, 0x2d, 0x8e, 0x9c, 0x1e, 0x3b, 0x61, 0x8a, 0x47, 0x4f, 0xa5,
- 0x31, 0x5d, 0x02, 0xf3, 0xf9, 0x02, 0x51, 0xcb, 0xbb, 0xc7, 0x75, 0xeb,
- 0xd6, 0x43, 0xe0, 0x41, 0xa9, 0x2e, 0x7e, 0xbd, 0x7e, 0x36, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xba, 0xc5, 0x81, 0x4b, 0xae, 0x5d, 0x7c, 0x67,
- 0xdf, 0xda, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7,
- 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xef, 0xff, 0xff, 0xff, 0xe4,
- 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xfd, 0xff, 0x9b, 0xfc, 0x9f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xfa, 0xd1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x89, 0x8f,
- 0x8e, 0x96, 0x4e, 0xa6, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xfc, 0xc2, 0x23,
- 0xc3, 0xfa, 0xf3, 0xfe, 0xdd, 0x46, 0x42, 0x04, 0x4b, 0x06, 0x05, 0xfc,
- 0xca, 0x81, 0x37, 0x93, 0x33, 0xca, 0xa3, 0x64, 0x02, 0x6b, 0x1c, 0x14,
- 0xdb, 0xfd, 0x97, 0x0f, 0x5a, 0x60, 0x0c, 0x13, 0x94, 0x89, 0x6a, 0xb7,
- 0x9d, 0xf0, 0x34, 0x93, 0x6c, 0x40, 0x1d, 0x02, 0x45, 0xc0, 0x16, 0xbc,
- 0xc3, 0x63, 0xb0, 0x42, 0xe9, 0xff, 0x42, 0xd8, 0x4f, 0x29, 0xc0, 0x52,
- 0x94, 0xa6, 0x77, 0x88, 0x05, 0x02, 0x45, 0xb4, 0x30, 0x1d, 0x07, 0xda,
- 0x61, 0x5d, 0x30, 0x70, 0xe6, 0x30, 0x96, 0xbc, 0x27, 0x91, 0x62, 0x46,
- 0x44, 0x5d, 0xaf, 0x27, 0x9b, 0xff, 0xff, 0xf9, 0x84, 0x47, 0x45, 0x44,
- 0x7c, 0x34, 0x0b, 0xc3, 0x0c, 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb2, 0xf0,
- 0x05, 0x1d, 0x08, 0xb5, 0x9f, 0x9c, 0x5b, 0x94, 0xcf, 0x01, 0x45, 0x69,
- 0xb5, 0x99, 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc,
- 0xcf, 0xba, 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcd, 0x88, 0x8d, 0x93,
- 0x98, 0x44, 0x12, 0x36, 0x02, 0xf7, 0xff, 0x10, 0xb8, 0x48, 0xe3, 0xd8,
- 0x31, 0x90, 0x82, 0x27, 0xbb, 0xcf, 0x99, 0xc7, 0x7c, 0x3f, 0xe1, 0x28,
- 0x09, 0x8c, 0x54, 0x35, 0x0d, 0xbe, 0x90, 0x31, 0xf6, 0xb9, 0xcd, 0x7d,
- 0xf7, 0xff, 0x81, 0xd0, 0x22, 0x20, 0xf3, 0x0a, 0xc0, 0x57, 0xff, 0x84,
- 0x9e, 0x11, 0x2a, 0x7a, 0x38, 0x22, 0xba, 0x9e, 0xd4, 0x73, 0xd5, 0xfe,
- 0x25, 0x70, 0x22, 0xf0, 0x00, 0x7b, 0xea, 0x18, 0x6d, 0x28, 0x6a, 0x3e,
- 0x83, 0x1e, 0xbc, 0x00, 0x1e, 0xcf, 0xf7, 0xff, 0x6f, 0x8c, 0xc1, 0xfc,
- 0xc3, 0x38, 0x88, 0xe0, 0xc9, 0xff, 0xff, 0xfd, 0xa4, 0x89, 0x4a, 0xcc,
- 0x50, 0x0f, 0x1f, 0xf0, 0x94, 0x13, 0x3d, 0xb5, 0x38, 0x77, 0xd2, 0x17,
- 0xd0, 0x21, 0xb0, 0xc9, 0xab, 0x76, 0x36, 0x41, 0x88, 0xe9, 0x36, 0x8d,
- 0xc7, 0xfc, 0x9e, 0xfd, 0x1e, 0x5c, 0xdf, 0x69, 0x7b, 0x5b, 0x0a, 0x61,
- 0xa4, 0xb7, 0xd1, 0x36, 0x98, 0x1f, 0x49, 0x40, 0x3f, 0xb8, 0x3b, 0xf7,
- 0xc8, 0x67, 0xf0, 0xef, 0xde, 0xbc, 0x67, 0xaf, 0x61, 0x3f, 0xff, 0xfc,
- 0x00, 0xc0, 0xfd, 0x5e, 0x3a, 0x6b, 0x58, 0xb9, 0x13, 0x7e, 0x27, 0x00,
- 0xd6, 0xb8, 0xea, 0x05, 0x29, 0x2d, 0x67, 0x3e, 0x00, 0xe3, 0x53, 0xcf,
- 0x4b, 0xcb, 0xe3, 0xbf, 0x5e, 0x33, 0xd7, 0xcf, 0x13, 0x88, 0xf0, 0xa4,
- 0x9f, 0x81, 0x76, 0xee, 0x4e, 0xb7, 0x3e, 0xff, 0xff, 0x01, 0x81, 0x88,
- 0x97, 0xf1, 0x87, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44,
- 0x25, 0xf2, 0x7f, 0x07, 0x9f, 0x89, 0xf1, 0x1e, 0x23, 0xc4, 0x7f, 0xaf,
- 0x1b, 0xff, 0x7f, 0xf6, 0xa0, 0x20, 0x7c, 0x4f, 0x88, 0xf1, 0x1e, 0x23,
- 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xcd,
- 0xe2, 0xbf, 0xfc, 0x3e, 0x68, 0x00, 0xef, 0x0a, 0xe9, 0xa6, 0x8e, 0xbf,
- 0xf6, 0xfc, 0xca, 0x38, 0x40, 0x3f, 0xe1, 0xe4, 0x29, 0x1c, 0x52, 0xb1,
- 0x43, 0x6f, 0xa4, 0x05, 0x63, 0x37, 0xa2, 0xb7, 0x3e, 0xff, 0x9b, 0x00,
- 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x45, 0x39, 0x27, 0x18, 0x62, 0x52, 0x5f,
- 0xef, 0x8a, 0x83, 0x6a, 0x96, 0x30, 0x71, 0xa7, 0x0c, 0x20, 0xe7, 0xc1,
- 0x10, 0x47, 0x7c, 0xdf, 0xf8, 0x0e, 0x80, 0x12, 0x38, 0x98, 0x9c, 0x47,
- 0xe0, 0x20, 0x73, 0x44, 0x3f, 0xff, 0x09, 0x8e, 0x00, 0x36, 0x5e, 0xcc,
- 0x09, 0x77, 0x5e, 0xf3, 0x08, 0x8c, 0x44, 0xcc, 0xf0, 0x70, 0x1c, 0x84,
- 0x66, 0x4c, 0xe2, 0x2c, 0x5e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c,
- 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47,
- 0x88, 0xf1, 0x1e, 0x23, 0xc2, 0x98, 0x00, 0x5e, 0xab, 0x6a, 0xda, 0x9a,
- 0xff, 0xf3, 0xe0, 0x05, 0x3c, 0x6c, 0x89, 0x9d, 0x57, 0xbf, 0xf0, 0x38,
- 0x82, 0x16, 0xe7, 0x84, 0xe5, 0x0f, 0x05, 0xdd, 0xd5, 0x56, 0x81, 0xe6,
- 0xf0, 0x80, 0x45, 0x7d, 0xcf, 0xf8, 0x1c, 0x11, 0x5f, 0x73, 0xff, 0x11,
- 0x12, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88,
- 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1,
- 0x1f, 0x80, 0x80, 0xff, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd,
- 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xf3, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
- 0xe6, 0x3e, 0x81, 0x00, 0x26, 0xcd, 0xa9, 0xc7, 0xd0, 0xcc, 0x4c, 0x57,
- 0xff, 0xfe, 0xfd, 0xff, 0x0c, 0x2a, 0x04, 0xe2, 0x0c, 0xcf, 0x6a, 0x05,
- 0x84, 0x82, 0xe9, 0x9e, 0xe5, 0xc6, 0x53, 0x01, 0xbc, 0x14, 0x78, 0x23,
- 0xf6, 0x30, 0xd9, 0xa9, 0x7c, 0xc2, 0x5f, 0x6a, 0x90, 0xbc, 0xdc, 0xc6,
- 0x7a, 0xd5, 0xe1, 0xc3, 0x01, 0xfc, 0x3f, 0xc1, 0x00, 0xb0, 0x1b, 0xb5,
- 0xbb, 0xff, 0xb7, 0xdb, 0x1d, 0x5f, 0xdd, 0x3c, 0x99, 0xbf, 0xfd, 0xf8,
- 0x63, 0xf5, 0xb0, 0xc0, 0x3d, 0x93, 0x81, 0x35, 0xf4, 0xcf, 0xa1, 0xc0,
- 0x90, 0x6e, 0x49, 0x9a, 0xd4, 0x99, 0x53, 0xcf, 0xf1, 0xf4, 0x92, 0x67,
- 0xce, 0xfd, 0xfb, 0xf0, 0xc0, 0xae, 0xe2, 0xc1, 0xed, 0x0c, 0x4b, 0xae,
- 0x12, 0x84, 0xe7, 0xb8, 0x05, 0xdb, 0xe9, 0x6f, 0xc4, 0x29, 0x31, 0xfc,
- 0x24, 0x18, 0xf2, 0xb9, 0x3f, 0xfd, 0xfb, 0x13, 0x10, 0xa0, 0x07, 0xad,
- 0x84, 0x93, 0x77, 0x07, 0xe3, 0x4a, 0x3d, 0x91, 0xe7, 0xf8, 0xf1, 0xf9,
- 0xf4, 0x19, 0x97, 0x0c, 0x5a, 0xdf, 0x26, 0xfc, 0x27, 0xa4, 0x92, 0xf9,
- 0x8a, 0xc9, 0xc7, 0x0e, 0xd3, 0xed, 0x63, 0xb6, 0x09, 0x70, 0x00, 0x87,
- 0xaf, 0xfa, 0xbe, 0xff, 0xf8, 0x11, 0xef, 0x6c, 0x98, 0xfa, 0xb1, 0xde,
- 0x75, 0xc1, 0xf3, 0x64, 0x3a, 0xc5, 0xf9, 0xe2, 0x16, 0xfd, 0xd5, 0xeb,
- 0x1d, 0xc3, 0x33, 0xe1, 0xae, 0x83, 0x3e, 0x1a, 0xfc, 0x6c, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xbb, 0xcd, 0x81, 0x4d, 0xf2, 0xeb, 0xe3, 0x3e,
- 0xfe, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0x86, 0xbc, 0x35,
- 0xe1, 0xaf, 0x0d, 0x78, 0x63, 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x0b, 0xea,
- 0x80, 0xd4, 0x45, 0xfb, 0xf7, 0xe1, 0x87, 0xff, 0xff, 0x0f, 0x1c, 0x13,
- 0xbb, 0xc7, 0xe1, 0xbf, 0x0e, 0x7b, 0xfc, 0x27, 0x85, 0x7f, 0xff, 0x08,
- 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x02, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xe5, 0x3e, 0x18, 0x5f,
- 0xe8, 0x44, 0xdc, 0xb7, 0x37, 0xef, 0x0c, 0xcd, 0xe0, 0x03, 0xd9, 0x22,
- 0x68, 0x7e, 0xcd, 0x7d, 0x4f, 0x13, 0x15, 0xff, 0xff, 0xff, 0xff, 0x14,
- 0x10, 0x87, 0x24, 0xcb, 0x05, 0x0c, 0x30, 0xcc, 0x8c, 0xdb, 0xf6, 0xfc,
- 0x20, 0xe7, 0xe8, 0x0f, 0xde, 0x3a, 0x03, 0xe0, 0x0c, 0xe8, 0x44, 0xef,
- 0x40, 0x69, 0x0a, 0x78, 0x65, 0xef, 0xf0, 0x4a, 0xfb, 0x3e, 0xff, 0x84,
- 0x70, 0xf6, 0xed, 0x43, 0x6b, 0x22, 0x1f, 0xe0, 0x43, 0xdf, 0xf5, 0x0e,
- 0x2f, 0x4e, 0x10, 0xb7, 0xa6, 0x22, 0xcf, 0x22, 0xbd, 0x3f, 0xa9, 0x3f,
- 0x12, 0x11, 0xc1, 0x0c, 0x61, 0x1e, 0x09, 0x0f, 0x49, 0xcb, 0x19, 0xc0,
- 0x32, 0x2f, 0xe2, 0xe6, 0x7e, 0x75, 0x5c, 0x41, 0x62, 0x63, 0x8b, 0x9c,
- 0x80, 0xc4, 0xa9, 0x8d, 0x4b, 0xd0, 0xb0, 0x0c, 0xff, 0x6e, 0xc1, 0x62,
- 0x8d, 0x4f, 0x94, 0x71, 0x4c, 0xc0, 0x98, 0xc1, 0xdf, 0x01, 0xf0, 0xc3,
- 0x6d, 0x31, 0xbb, 0x4a, 0xc7, 0xe8, 0x25, 0xd1, 0x04, 0x55, 0xf1, 0x7e,
- 0x06, 0x74, 0x07, 0x80, 0x62, 0x08, 0x22, 0x45, 0xfc, 0x1a, 0xc6, 0x61,
- 0x53, 0x90, 0x54, 0x20, 0xdd, 0xaf, 0x94, 0x27, 0x80, 0x82, 0x10, 0x44,
- 0x40, 0x8d, 0xe7, 0xf0, 0xec, 0xf1, 0x3f, 0x9b, 0xff, 0xff, 0xf8, 0xc0,
- 0x87, 0x00, 0x62, 0xfd, 0x73, 0xf6, 0xbb, 0xe1, 0x8e, 0x83, 0xed, 0xa9,
- 0xea, 0xdb, 0xe3, 0x08, 0x2b, 0x6c, 0x9e, 0x8e, 0x77, 0x48, 0x5d, 0x77,
- 0x14, 0xdf, 0xae, 0x4c, 0xc1, 0xec, 0xbe, 0x00, 0x19, 0xb6, 0xdf, 0x14,
- 0xda, 0x75, 0x5b, 0x2c, 0xd1, 0xa2, 0x5d, 0xaf, 0xe8, 0x39, 0x04, 0x8d,
- 0x8a, 0x95, 0xda, 0xc0, 0x11, 0xc9, 0xb9, 0x04, 0xcc, 0x3a, 0x42, 0xd4,
- 0x73, 0xa8, 0xc7, 0x44, 0x99, 0xfc, 0x98, 0x62, 0xf9, 0x8b, 0x68, 0x13,
- 0x69, 0x6c, 0xf5, 0xfc, 0x38, 0xf0, 0x92, 0x81, 0x1e, 0xb0, 0x36, 0xce,
- 0x94, 0x00, 0x1e, 0x47, 0x8d, 0x9f, 0xfd, 0xea, 0x38, 0x6e, 0x54, 0x88,
- 0x22, 0xff, 0xc4, 0x38, 0x41, 0x87, 0xf6, 0x3b, 0x00, 0x01, 0x02, 0x4f,
- 0xe0, 0x6f, 0xb0, 0x5f, 0x98, 0x2a, 0xbf, 0xea, 0x73, 0x82, 0x7f, 0xc0,
- 0x24, 0x7e, 0x49, 0xfd, 0xcc, 0x1e, 0x3f, 0x56, 0x8f, 0x7f, 0x20, 0x03,
- 0x2f, 0xba, 0xb7, 0xf7, 0x9c, 0xd2, 0xfd, 0x01, 0xfe, 0x2f, 0xbb, 0x77,
- 0x93, 0x7f, 0xe7, 0xf8, 0x20, 0x2f, 0xc1, 0xf7, 0x83, 0xf0, 0xef, 0xff,
- 0xff, 0xf8, 0x81, 0x06, 0xb9, 0xf2, 0xbc, 0xbf, 0x4e, 0x86, 0x09, 0x8c,
- 0x9d, 0x3c, 0xdc, 0xd9, 0xaf, 0x5e, 0x6e, 0xcb, 0xd1, 0x81, 0x5a, 0x0f,
- 0x06, 0x73, 0x47, 0xc3, 0xff, 0x09, 0x61, 0xd1, 0x90, 0x0c, 0x21, 0x34,
- 0x1b, 0x6a, 0x06, 0x0f, 0xc0, 0x0e, 0xd1, 0x90, 0x0c, 0x21, 0x24, 0x06,
- 0xda, 0x80, 0x0e, 0xd3, 0x40, 0x31, 0x9e, 0x40, 0x6d, 0xab, 0xc1, 0x83,
- 0x9f, 0x8e, 0x2c, 0x09, 0xf5, 0x2f, 0xcf, 0x73, 0x1b, 0x2f, 0xa0, 0x9a,
- 0xff, 0xc6, 0x50, 0xb3, 0x77, 0x0f, 0x80, 0xec, 0x44, 0x4e, 0x6f, 0xff,
- 0xef, 0x04, 0x26, 0xc0, 0x03, 0x31, 0xb6, 0xf4, 0x49, 0xb4, 0xc3, 0x9c,
- 0xae, 0x43, 0xbc, 0x8f, 0xde, 0xe9, 0x8c, 0xe7, 0xe4, 0xef, 0x3a, 0x62,
- 0xd2, 0x5b, 0xbc, 0x42, 0x83, 0xf0, 0xe0, 0x1e, 0x93, 0x7c, 0x14, 0x73,
- 0x3f, 0x80, 0x07, 0xd3, 0x67, 0x22, 0x34, 0x0d, 0x4c, 0xfd, 0xec, 0xf0,
- 0xee, 0x52, 0xc7, 0xc4, 0x0f, 0xe0, 0xf0, 0x9b, 0xf4, 0xaa, 0xc6, 0x77,
- 0xaa, 0xbc, 0x18, 0xad, 0x6b, 0xd3, 0xdf, 0xff, 0xfb, 0xf8, 0xee, 0x4c,
- 0xe0, 0xe8, 0x61, 0x2b, 0x93, 0x3f, 0x9b, 0xff, 0xb9, 0x11, 0x63, 0x3c,
- 0x00, 0x96, 0x67, 0x09, 0x1d, 0x51, 0x76, 0xb0, 0x02, 0x59, 0x9c, 0x24,
- 0x75, 0x45, 0xda, 0x07, 0x9d, 0x4f, 0x36, 0x82, 0x6f, 0xa7, 0x00, 0x17,
- 0x7f, 0x85, 0x15, 0xcc, 0x38, 0xbf, 0x52, 0xfd, 0xe3, 0xf5, 0xe0, 0x2f,
- 0xcd, 0x27, 0x77, 0x22, 0x97, 0xf8, 0x4b, 0x00, 0x0f, 0xa6, 0xce, 0x44,
- 0xd0, 0x35, 0x33, 0xf7, 0xb0, 0x1b, 0xce, 0x57, 0x47, 0x64, 0xfd, 0xec,
- 0x09, 0x55, 0xff, 0xf1, 0x4b, 0x7d, 0x41, 0xff, 0xe3, 0xb8, 0xad, 0x61,
- 0xf8, 0x28, 0x58, 0x81, 0xf8, 0x0a, 0xfd, 0xf8, 0x03, 0x78, 0x92, 0x16,
- 0x00, 0x36, 0xe9, 0xda, 0xd3, 0xdb, 0xee, 0xf9, 0xef, 0xdf, 0x1f, 0x6f,
- 0x66, 0xdb, 0x60, 0xc3, 0xaf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xef, 0x64, 0x1d, 0x7f, 0xcb, 0xc8, 0x2a, 0x3c, 0x26, 0x9b, 0xd7, 0x8d,
- 0xe2, 0x1c, 0x34, 0x89, 0xf3, 0xd1, 0x47, 0x87, 0xaa, 0xb7, 0x6f, 0xa3,
- 0xc4, 0xfc, 0x58, 0x8c, 0x26, 0x70, 0x56, 0x8c, 0x7d, 0x3a, 0x17, 0xf7,
- 0x25, 0x4e, 0x2e, 0x13, 0xb0, 0x34, 0xa7, 0xc2, 0x1c, 0x8e, 0x09, 0x34,
- 0x05, 0x89, 0xff, 0x68, 0x31, 0xec, 0x1a, 0xc6, 0x04, 0x9f, 0xf9, 0x17,
- 0xda, 0xff, 0xc4, 0x61, 0xc4, 0x00, 0x9c, 0xc1, 0x9f, 0xba, 0x78, 0xd7,
- 0x2f, 0x10, 0x60, 0x42, 0xf0, 0x1f, 0x2c, 0x4f, 0x35, 0x5f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
- 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xdf, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xff, 0xac, 0xc7, 0xc0, 0x24, 0x7b,
- 0x5a, 0x7b, 0x9b, 0x29, 0x63, 0x45, 0xc5, 0x7f, 0xff, 0xef, 0xdf, 0xbf,
- 0x58, 0xa1, 0x01, 0x17, 0xa9, 0x73, 0x3c, 0xff, 0x8f, 0x36, 0x8f, 0x02,
- 0x11, 0x0e, 0xd0, 0x92, 0x1e, 0xff, 0xd0, 0x03, 0x39, 0x78, 0x52, 0x95,
- 0x7f, 0xbc, 0xa8, 0x71, 0xad, 0x20, 0xcf, 0x13, 0x3b, 0x9d, 0x85, 0xa2,
- 0x18, 0x0f, 0xfb, 0xfe, 0x13, 0x12, 0x11, 0x00, 0xbd, 0xcc, 0xbd, 0x57,
- 0xb8, 0x98, 0x28, 0xfc, 0xaf, 0xbd, 0xfc, 0x6c, 0x00, 0xb1, 0x7c, 0xa9,
- 0xce, 0xfe, 0xa9, 0x33, 0x7f, 0xfb, 0xf5, 0x84, 0x17, 0x1d, 0x8d, 0x00,
- 0x56, 0xe3, 0x41, 0x2a, 0x0e, 0xa2, 0xaf, 0xde, 0x66, 0xa7, 0x82, 0x57,
- 0x8a, 0x59, 0x56, 0x78, 0x7a, 0x0f, 0xb0, 0x3d, 0xea, 0xfe, 0x7c, 0x06,
- 0xe3, 0xc8, 0x1a, 0x6f, 0x3f, 0xb9, 0xa7, 0xdd, 0xb7, 0xce, 0xfd, 0xfb,
- 0xf7, 0xe1, 0x80, 0xaa, 0xff, 0xa9, 0xc6, 0x09, 0xde, 0x1e, 0xb8, 0x40,
- 0xef, 0xc1, 0xec, 0x4c, 0x10, 0x09, 0x40, 0x03, 0x00, 0x6c, 0xe2, 0x7f,
- 0x80, 0xd9, 0xaa, 0xef, 0xff, 0xdf, 0x93, 0x0c, 0x84, 0x04, 0x10, 0x00,
- 0xe6, 0xfd, 0x9b, 0xbd, 0xa9, 0xf9, 0xa2, 0x38, 0x67, 0x81, 0x97, 0xdd,
- 0xcc, 0xfe, 0x2e, 0x00, 0x35, 0xa4, 0x2a, 0x7f, 0xd3, 0x87, 0x37, 0xf3,
- 0x9d, 0x30, 0x51, 0x35, 0x27, 0x9c, 0x6d, 0x22, 0x44, 0xfc, 0x0c, 0xef,
- 0xae, 0x82, 0x20, 0x49, 0xc3, 0x1e, 0x4e, 0x44, 0x44, 0x44, 0x5e, 0x24,
- 0xbc, 0x02, 0x3d, 0x7d, 0xb0, 0x72, 0x0f, 0xc3, 0x1d, 0xe1, 0x1b, 0x8c,
- 0xa2, 0x3f, 0xa1, 0xdf, 0xfe, 0x83, 0x03, 0xf0, 0x80, 0x40, 0xfc, 0x07,
- 0xef, 0x67, 0xd7, 0x1c, 0xfb, 0x7e, 0x18, 0xf2, 0x26, 0x29, 0x11, 0x7c,
- 0x13, 0x50, 0x18, 0x61, 0x07, 0xe1, 0x00, 0x42, 0xa9, 0xba, 0x02, 0x3d,
- 0x7c, 0x0e, 0xd8, 0x10, 0x80, 0xed, 0xc0, 0x84, 0xe5, 0x63, 0x9f, 0x6b,
- 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc, 0xd5, 0x84, 0xbe,
- 0x57, 0xd6, 0x35, 0xfe, 0xdf, 0xe1, 0x07, 0xef, 0xf2, 0xbf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xc2, 0x1f, 0xef, 0xfc,
- 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xc5, 0xff, 0xd7, 0xfd, 0x73, 0x1f, 0x84, 0xee, 0x3e, 0xf9, 0xff, 0x33,
- 0xda, 0x08, 0x18, 0x08, 0x5f, 0x8b, 0x59, 0x17, 0x40, 0x7b, 0x4c, 0xdf,
- 0xb6, 0x00, 0x2b, 0x4c, 0xc8, 0x6d, 0xd2, 0xc3, 0xef, 0x7e, 0xb0, 0xcc,
- 0xaf, 0x07, 0x97, 0x16, 0xd6, 0x68, 0x43, 0xfe, 0xdf, 0x15, 0xff, 0xff,
- 0xfc, 0xc2, 0xb0, 0xda, 0x63, 0xff, 0xfe, 0x25, 0xa1, 0x21, 0x15, 0xb4,
- 0x66, 0x75, 0x68, 0xd1, 0xf8, 0xa8, 0xe7, 0xff, 0x40, 0x55, 0xb7, 0x31,
- 0xa0, 0x49, 0xee, 0xcc, 0xe4, 0x8a, 0xbb, 0x20, 0x02, 0x7e, 0x7e, 0x8d,
- 0x18, 0xca, 0xff, 0xb4, 0x7f, 0x76, 0xd0, 0x73, 0x3d, 0x31, 0xa2, 0xe1,
- 0x8d, 0x2b, 0xc5, 0xdf, 0xf9, 0xd7, 0xf1, 0x3a, 0x08, 0x32, 0xe9, 0xe7,
- 0xeb, 0x03, 0x1c, 0x9b, 0x1d, 0xd1, 0x7b, 0xfa, 0x47, 0x55, 0x31, 0x22,
- 0xae, 0xdf, 0x01, 0x6c, 0x49, 0xc3, 0x40, 0x33, 0x78, 0x76, 0xb6, 0x22,
- 0x76, 0xf3, 0x41, 0x44, 0x93, 0xf0, 0x38, 0xf0, 0x8d, 0xad, 0xc7, 0xd3,
- 0xd2, 0x7f, 0xa1, 0x77, 0xeb, 0x97, 0x95, 0x0f, 0xcc, 0xca, 0xfc, 0xd3,
- 0x67, 0xf6, 0x9f, 0xe1, 0x31, 0x7d, 0xd3, 0xe9, 0xc8, 0xd3, 0x40, 0x00,
- 0x20, 0x2e, 0x0e, 0xe7, 0x3e, 0x00, 0x82, 0xfd, 0x15, 0x1f, 0xed, 0xbe,
- 0xcc, 0x5a, 0xc5, 0x07, 0x7d, 0xfd, 0xb9, 0xed, 0xef, 0x8b, 0x6f, 0x03,
- 0xfc, 0x5e, 0x4f, 0x37, 0xff, 0xff, 0xf3, 0x08, 0x22, 0x23, 0x00, 0x06,
- 0x30, 0x0e, 0x03, 0x37, 0xe2, 0xa4, 0x40, 0x2e, 0xea, 0xb6, 0x5e, 0x00,
- 0x60, 0x79, 0x5f, 0x1d, 0xb1, 0x00, 0x36, 0x08, 0xf9, 0x64, 0xc1, 0x98,
- 0x53, 0xae, 0x1f, 0xf7, 0xfa, 0x80, 0xc1, 0x0a, 0x14, 0xbd, 0xc0, 0xbe,
- 0x61, 0x52, 0x5d, 0x80, 0x84, 0x00, 0x44, 0x89, 0x7a, 0xa3, 0xec, 0xa1,
- 0x27, 0xd1, 0x02, 0xa5, 0xce, 0x8b, 0xce, 0xcb, 0x30, 0x99, 0x59, 0xf9,
- 0x18, 0xd5, 0x4f, 0xef, 0xdd, 0x53, 0x04, 0x5a, 0x4c, 0x13, 0xd9, 0xce,
- 0x6f, 0x17, 0xc9, 0x76, 0x7e, 0x62, 0xd0, 0xc7, 0xc6, 0x1f, 0xff, 0xf9,
- 0x21, 0xb8, 0x98, 0x3c, 0xfc, 0xd8, 0x47, 0xa5, 0x4d, 0x30, 0xff, 0x81,
- 0xfb, 0xff, 0xff, 0xff, 0x9b, 0x15, 0xdc, 0x7f, 0xe1, 0x22, 0x05, 0xb1,
- 0x11, 0x8d, 0x11, 0x63, 0xea, 0x49, 0xe0, 0x92, 0xa1, 0xec, 0xdc, 0xdd,
- 0x86, 0x70, 0x0a, 0xb5, 0xa2, 0x4a, 0x9d, 0xdf, 0xc4, 0xc0, 0x9e, 0x09,
- 0x62, 0x1c, 0x71, 0xd7, 0x6d, 0xb2, 0xb4, 0xb3, 0xbd, 0x14, 0x37, 0x7f,
- 0xfd, 0x18, 0x8b, 0xef, 0x00, 0x00, 0x39, 0xe3, 0x7c, 0xdd, 0x88, 0x8f,
- 0xad, 0x48, 0x68, 0xaf, 0x42, 0x62, 0x73, 0x19, 0xd3, 0x0f, 0x9d, 0x30,
- 0x4e, 0x20, 0x04, 0x8d, 0x71, 0xff, 0xfd, 0xc1, 0xfb, 0xc1, 0xf8, 0x7c,
- 0x01, 0xfa, 0xee, 0xf5, 0xbc, 0xfd, 0xdb, 0xc0, 0x0f, 0x97, 0xad, 0x13,
- 0x71, 0x4b, 0xcc, 0xcd, 0x7c, 0x9f, 0xcf, 0xf1, 0xde, 0xfe, 0x26, 0x27,
- 0x3f, 0x9b, 0xe9, 0x0e, 0x3c, 0x23, 0x05, 0x78, 0x05, 0xf5, 0x40, 0x7d,
- 0x40, 0x84, 0xae, 0x49, 0xcf, 0x4f, 0x97, 0xb0, 0x1c, 0x11, 0x09, 0x64,
- 0xb7, 0x06, 0x6d, 0xfa, 0xb6, 0xbf, 0xc0, 0x00, 0xad, 0x33, 0x97, 0xab,
- 0xda, 0xe1, 0x49, 0x11, 0xdc, 0xce, 0xb0, 0xc2, 0x0f, 0x45, 0x9b, 0xff,
- 0xfe, 0x1f, 0x2c, 0x01, 0x41, 0x32, 0x30, 0x08, 0x39, 0x40, 0x51, 0xb9,
- 0xfe, 0x61, 0xee, 0x3f, 0xfc, 0x3e, 0x40, 0x00, 0x79, 0x52, 0xcb, 0xf4,
- 0xc7, 0x17, 0x8b, 0xed, 0x01, 0xf3, 0x5f, 0x1f, 0xff, 0x09, 0x17, 0x00,
- 0x49, 0x92, 0x49, 0x0f, 0x3f, 0xb6, 0x7f, 0x8d, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x0b, 0x5f, 0xe2, 0x44, 0x61, 0x16, 0x1e,
- 0x46, 0xb0, 0x16, 0xbc, 0x77, 0xc5, 0xe4, 0x50, 0xc4, 0x47, 0x50, 0x54,
- 0x25, 0xe3, 0x78, 0xa7, 0x91, 0xcd, 0x43, 0x98, 0x7b, 0xf8, 0xba, 0xc2,
- 0x5f, 0xbd, 0xc0, 0x83, 0x58, 0x1f, 0x6a, 0xce, 0xdf, 0x17, 0xd0, 0x86,
- 0x45, 0x7b, 0x06, 0x1e, 0xc3, 0xdf, 0xee, 0x53, 0x43, 0xe1, 0xed, 0x16,
- 0x10, 0xff, 0xfb, 0xc1, 0x31, 0x70, 0x1f, 0xc4, 0x72, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f,
- 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xeb, 0xff, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xaf, 0x77, 0x60, 0x57, 0xff, 0xff, 0xff, 0xeb, 0xff,
- 0xff, 0xff, 0xfd, 0x7d, 0x3f, 0xef, 0xc3, 0x1f, 0xfa, 0x87, 0x08, 0x54,
- 0xf8, 0x01, 0x3a, 0x46, 0x9e, 0x1c, 0x31, 0xfa, 0xfc, 0x00, 0x75, 0x31,
- 0x32, 0x94, 0xc0, 0x75, 0x8c, 0xd5, 0xed, 0x08, 0x32, 0x04, 0x62, 0x31,
- 0x5f, 0xfe, 0xff, 0xf7, 0xf2, 0x1b, 0x8c, 0x9e, 0xa1, 0x83, 0x40, 0xc1,
- 0x6c, 0xce, 0x4b, 0x5d, 0x90, 0x33, 0xba, 0x73, 0x31, 0xba, 0x68, 0xdb,
- 0xd2, 0xc3, 0xd1, 0x6a, 0xc3, 0xa5, 0x0d, 0x3b, 0x2c, 0x78, 0x82, 0xe6,
- 0x40, 0xef, 0x46, 0xe4, 0xa5, 0x5c, 0x18, 0xda, 0xff, 0xc7, 0xc0, 0x1b,
- 0x59, 0xa0, 0x0b, 0x5c, 0x62, 0x02, 0xa5, 0x33, 0xc3, 0xf7, 0xc0, 0x1c,
- 0x19, 0xf8, 0xa9, 0xa5, 0x98, 0x15, 0xc0, 0xd7, 0x1e, 0x50, 0xc1, 0x53,
- 0xec, 0x05, 0xf8, 0x4c, 0x58, 0x04, 0xbb, 0x86, 0x16, 0x1f, 0x10, 0xdd,
- 0xcf, 0x9f, 0x29, 0x40, 0x34, 0x97, 0xf7, 0xeb, 0xef, 0xc5, 0x67, 0x06,
- 0xbd, 0x8f, 0xfb, 0xf3, 0xcb, 0xf9, 0xe4, 0xcd, 0xff, 0xef, 0xc3, 0x1c,
- 0x78, 0x01, 0xa3, 0xea, 0x91, 0x66, 0xc0, 0x03, 0x36, 0xdb, 0xe5, 0x36,
- 0x86, 0xee, 0x96, 0x37, 0x72, 0x60, 0x37, 0xc3, 0xa8, 0xd0, 0x34, 0x71,
- 0x6e, 0x00, 0x8c, 0xad, 0x34, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0x69, 0x1c,
- 0x3b, 0x23, 0x32, 0x23, 0x7e, 0x78, 0x7e, 0x98, 0x95, 0x70, 0x11, 0xea,
- 0x7e, 0xd4, 0xfe, 0x3b, 0xff, 0xdf, 0xbf, 0xdf, 0xff, 0xf0, 0xc5, 0x50,
- 0x42, 0xe3, 0xff, 0x09, 0x30, 0x96, 0x67, 0x09, 0x1d, 0x51, 0x76, 0x83,
- 0x0c, 0x57, 0x6d, 0x29, 0xfa, 0xbf, 0x1e, 0x02, 0xa9, 0xa5, 0x81, 0x2f,
- 0xfc, 0x2f, 0x8f, 0x48, 0xdf, 0xaa, 0xd9, 0xd9, 0x6b, 0x66, 0x4c, 0xbb,
- 0x78, 0xa2, 0x7f, 0xfc, 0x00, 0xce, 0xfa, 0xd0, 0x6e, 0x37, 0x7c, 0x76,
- 0xf8, 0x63, 0xff, 0xf7, 0x78, 0x54, 0x47, 0x00, 0x31, 0x2e, 0x22, 0x36,
- 0x97, 0x6b, 0x0c, 0xd9, 0xad, 0x23, 0x7f, 0xfe, 0xb9, 0x95, 0xd2, 0xeb,
- 0xff, 0xa6, 0x18, 0xff, 0xbb, 0xdd, 0xf8, 0xcf, 0x00, 0x0c, 0x4c, 0xfb,
- 0xd0, 0x8b, 0x58, 0x00, 0x62, 0x5c, 0x44, 0x6d, 0x2e, 0xd0, 0x66, 0xcd,
- 0x69, 0x1b, 0xff, 0xf5, 0xc3, 0xf3, 0x2b, 0xa5, 0xd7, 0xff, 0x48, 0x7f,
- 0x86, 0x37, 0x79, 0x8a, 0x7c, 0x21, 0x14, 0xb9, 0xd0, 0xca, 0x74, 0x3e,
- 0x3d, 0x03, 0x0b, 0xde, 0xfb, 0xbe, 0x78, 0x00, 0x62, 0x67, 0xde, 0x84,
- 0x5a, 0x8b, 0x65, 0x72, 0x4f, 0x8f, 0xc4, 0x82, 0xf7, 0x81, 0x20, 0x94,
- 0x77, 0x12, 0xda, 0x67, 0x7d, 0x77, 0x20, 0x13, 0x29, 0x66, 0x6e, 0x24,
- 0x66, 0xa1, 0x8e, 0x7d, 0x86, 0x3f, 0xff, 0xe1, 0xf3, 0xc0, 0x16, 0xb4,
- 0xc1, 0x0a, 0xc4, 0x37, 0x3f, 0xd0, 0x9b, 0x81, 0x76, 0xed, 0x3a, 0x67,
- 0x3f, 0xa0, 0xfe, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbd,
- 0xdd, 0x82, 0xae, 0xf9, 0x75, 0x8d, 0x7f, 0xbf, 0x84, 0x3f, 0x7c, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f,
- 0xbf, 0x9f, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd, 0xe9, 0x03, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
- 0xff, 0xfd, 0xe1, 0x4f, 0x10, 0x52, 0x89, 0xc0, 0x0e, 0x77, 0xf5, 0x87,
- 0xec, 0x74, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x41, 0x1c, 0x64,
- 0xf5, 0x27, 0xe2, 0x44, 0xf8, 0xa2, 0x00, 0x1e, 0x17, 0xa2, 0xdc, 0x74,
- 0x2b, 0x61, 0xd9, 0x50, 0x1f, 0x14, 0xd6, 0x84, 0x18, 0x56, 0xf5, 0x0f,
- 0x02, 0x44, 0xad, 0xc8, 0x5b, 0x7d, 0x6f, 0x8f, 0xfc, 0x48, 0xbb, 0x82,
- 0xbf, 0x03, 0xcc, 0xda, 0x03, 0x37, 0x9e, 0x21, 0x4a, 0x44, 0xbf, 0xdc,
- 0xff, 0x4e, 0x02, 0x0b, 0x7e, 0x07, 0xf8, 0xbc, 0x9e, 0x6f, 0xff, 0xff,
- 0xf9, 0xbf, 0x10, 0x65, 0x32, 0x54, 0x95, 0x9b, 0x80, 0x1c, 0x5c, 0x84,
- 0x5e, 0xc3, 0xcc, 0xad, 0xb9, 0x37, 0x1e, 0x02, 0x11, 0x2c, 0xd4, 0xba,
- 0x99, 0x1a, 0xe0, 0x01, 0x13, 0x28, 0x26, 0x7a, 0x63, 0x8d, 0xca, 0x80,
- 0x06, 0xf7, 0x40, 0x6d, 0x53, 0xae, 0xa1, 0x57, 0x31, 0x7c, 0xed, 0x5d,
- 0xaf, 0x12, 0x00, 0x33, 0xba, 0x8d, 0xaa, 0x24, 0xd5, 0x0e, 0x37, 0x27,
- 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0x0d, 0xaf, 0x6e, 0x8f,
- 0x5f, 0x8b, 0x45, 0xe2, 0x1d, 0x23, 0x41, 0x62, 0x05, 0x2d, 0x5b, 0xf9,
- 0xe3, 0x66, 0xf5, 0xef, 0xc7, 0x7b, 0xf6, 0xb0, 0x52, 0x07, 0x93, 0x08,
- 0x80, 0x32, 0x3d, 0xd6, 0xbf, 0xea, 0xf8, 0xef, 0x78, 0x9c, 0xc5, 0x55,
- 0xd4, 0x3c, 0x57, 0x8a, 0xe3, 0xa2, 0x98, 0x03, 0xc7, 0xea, 0xf4, 0xeb,
- 0x77, 0x51, 0x8b, 0xdc, 0x78, 0x05, 0x17, 0xb6, 0x06, 0xa2, 0x2f, 0xcd,
- 0xfe, 0xba, 0xeb, 0x85, 0x71, 0xeb, 0xbf, 0xfa, 0xff, 0x00, 0x5e, 0x55,
- 0x47, 0x7b, 0x46, 0x3a, 0x63, 0xe3, 0x20, 0x1f, 0xd2, 0xf9, 0xbf, 0xff,
- 0xb4, 0x10, 0xb8, 0x01, 0x15, 0x91, 0xf4, 0x25, 0x1d, 0x13, 0xdb, 0xa5,
- 0x54, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x35, 0xff,
- 0x20, 0x52, 0x40, 0x00, 0x85, 0xee, 0xee, 0xfb, 0xf8, 0x01, 0xbd, 0x96,
- 0x25, 0x74, 0xfb, 0x5f, 0xff, 0xf1, 0x06, 0x70, 0x73, 0xa0, 0x34, 0x0a,
- 0x7b, 0xf2, 0x36, 0x5a, 0x34, 0x00, 0x02, 0x00, 0x35, 0xe7, 0xf8, 0x00,
- 0x00, 0x20, 0x07, 0x00, 0x56, 0x9e, 0xc0, 0xc5, 0x02, 0xa6, 0x00, 0x50,
- 0x5c, 0xc0, 0xf1, 0xd1, 0x80, 0xd7, 0x8d, 0xff, 0x85, 0x3f, 0xff, 0x2f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff,
- 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60, 0x67, 0xff,
- 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xe1, 0x8f, 0xfd,
- 0x43, 0x84, 0x2a, 0x7c, 0x00, 0xad, 0x34, 0xf1, 0xc2, 0x1f, 0x5f, 0x80,
- 0x17, 0x64, 0x2e, 0xe4, 0x02, 0xac, 0x47, 0x5e, 0xdb, 0x2b, 0x2b, 0xc2,
- 0x56, 0x25, 0xac, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x04, 0x36, 0x66,
- 0x7d, 0xa5, 0x62, 0x03, 0x3b, 0xa3, 0x4c, 0xc6, 0xe9, 0xa3, 0x6f, 0x4b,
- 0x08, 0x6d, 0x31, 0xab, 0x0e, 0x26, 0x86, 0xa8, 0x98, 0xda, 0x9a, 0xb3,
- 0x6d, 0x3c, 0x05, 0x8e, 0x89, 0x30, 0x32, 0x5a, 0x60, 0x1e, 0xca, 0x66,
- 0x40, 0x66, 0xd6, 0x0c, 0x40, 0x25, 0x29, 0x9d, 0xe1, 0xcd, 0x06, 0xb9,
- 0x1c, 0x30, 0xf4, 0x29, 0x5f, 0xca, 0x30, 0x7f, 0xa8, 0x40, 0x2c, 0x67,
- 0x09, 0xf6, 0x07, 0x1d, 0xe1, 0x6b, 0x7b, 0xef, 0x85, 0xa5, 0x37, 0x9f,
- 0x5d, 0x79, 0x33, 0x7f, 0xff, 0x0c, 0x71, 0xea, 0x0e, 0x33, 0x66, 0xd9,
- 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3c, 0x48, 0xca, 0x5b, 0xc0, 0x89,
- 0xac, 0x7f, 0x9f, 0x8e, 0xb6, 0x43, 0x48, 0x70, 0xe5, 0x83, 0x3a, 0xe7,
- 0x34, 0x59, 0x3f, 0x73, 0xfc, 0x14, 0xce, 0x4a, 0x20, 0x55, 0x4e, 0xfd,
- 0x9f, 0x05, 0x44, 0xa3, 0xd2, 0x01, 0xe6, 0x78, 0xf3, 0xff, 0xff, 0xdf,
- 0xff, 0xf0, 0xc5, 0xa9, 0x26, 0xff, 0xc2, 0x47, 0x80, 0x50, 0x5a, 0x98,
- 0xf7, 0xf9, 0x04, 0xf1, 0x1c, 0x58, 0x74, 0x8e, 0x46, 0xb8, 0xa0, 0xce,
- 0x08, 0x83, 0xfc, 0x8f, 0x18, 0x43, 0x3e, 0xb7, 0x8e, 0xde, 0xc3, 0x1f,
- 0x48, 0x7f, 0x18, 0x53, 0x00, 0xdd, 0x51, 0xd4, 0x08, 0x0b, 0x52, 0xe7,
- 0xd1, 0xe9, 0x8f, 0x5f, 0x6d, 0xf1, 0xdb, 0x7e, 0x18, 0x10, 0x86, 0xa1,
- 0xff, 0x0f, 0xf0, 0x05, 0x79, 0x71, 0x0a, 0xbe, 0x97, 0x4e, 0x18, 0xc4,
- 0x30, 0x5f, 0xf8, 0x4b, 0x81, 0xc8, 0x03, 0x46, 0x40, 0x08, 0x75, 0xf5,
- 0xf5, 0xf7, 0xfd, 0xdc, 0x65, 0x88, 0x4d, 0x8f, 0xf2, 0xe1, 0x8f, 0xf0,
- 0x0d, 0x56, 0xd0, 0xac, 0x00, 0x32, 0x37, 0x76, 0xbe, 0xc5, 0xff, 0x07,
- 0x81, 0x41, 0xd1, 0x90, 0x1a, 0xba, 0x02, 0xf8, 0xb1, 0x21, 0xfd, 0xa4,
- 0x37, 0xff, 0xc5, 0x40, 0x19, 0xe1, 0x5c, 0x60, 0xfd, 0x8d, 0xe0, 0xd8,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbe, 0xe5, 0x86, 0xbe, 0x45, 0xfa,
- 0xc6, 0xfd, 0xfc, 0x21, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xc2, 0x9f, 0xff, 0x84, 0x3f, 0xdf, 0xf9, 0xbf, 0xc9, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfe,
- 0xf1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc7, 0xc0, 0x0c, 0x0f,
- 0x57, 0xc7, 0x60, 0x8c, 0xdc, 0xee, 0x8e, 0xba, 0x4f, 0xf8, 0x31, 0x13,
- 0x2f, 0x07, 0x3a, 0x34, 0x43, 0x56, 0x4d, 0x5e, 0xfc, 0x46, 0x2b, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0xde, 0x87, 0x01, 0x02, 0x93, 0xa0, 0xc6, 0x1a,
- 0x1f, 0xaf, 0xb7, 0x7c, 0x08, 0x51, 0x1d, 0xfd, 0xcf, 0xe8, 0x80, 0x0c,
- 0xe2, 0xa3, 0xf4, 0x11, 0x7f, 0xfe, 0x49, 0xd3, 0xdf, 0xab, 0xd0, 0x18,
- 0x03, 0x18, 0xcc, 0x55, 0xbd, 0x7d, 0xe8, 0x6e, 0xfe, 0x6b, 0x0d, 0x2d,
- 0x30, 0x76, 0x7d, 0x16, 0xe8, 0xa8, 0x31, 0x88, 0x01, 0x78, 0xf5, 0x61,
- 0xe6, 0x8f, 0x60, 0x66, 0xa7, 0x3a, 0x69, 0xe1, 0x14, 0x74, 0x28, 0x9f,
- 0xd7, 0x6e, 0x86, 0x1a, 0x0c, 0xde, 0x82, 0xac, 0x08, 0xeb, 0x66, 0x6a,
- 0x56, 0x3e, 0x92, 0x96, 0xa1, 0x20, 0x82, 0x19, 0x12, 0x24, 0x1b, 0xda,
- 0xf1, 0xcd, 0x63, 0xbf, 0x79, 0x40, 0x25, 0x24, 0x2d, 0x14, 0xef, 0x7c,
- 0x35, 0xc9, 0x77, 0xfc, 0x1b, 0xc9, 0xe6, 0xff, 0xff, 0xf2, 0x7c, 0x48,
- 0x9c, 0x23, 0x84, 0x4d, 0x80, 0x84, 0xb5, 0xb7, 0xe7, 0x80, 0x9a, 0xf5,
- 0x47, 0x80, 0xef, 0x77, 0x05, 0x9a, 0xf5, 0x7a, 0xa0, 0x6a, 0x0f, 0x21,
- 0xbe, 0xf4, 0x79, 0x27, 0xda, 0x33, 0xf3, 0x83, 0x58, 0x97, 0x79, 0x3c,
- 0x7f, 0xeb, 0x73, 0xcd, 0x2c, 0x9b, 0xeb, 0xc2, 0x3c, 0x3c, 0xfd, 0xf1,
- 0x80, 0x32, 0xff, 0xc9, 0x0e, 0xff, 0xf9, 0x01, 0x2a, 0x4b, 0x66, 0x50,
- 0xbf, 0x9c, 0x82, 0x78, 0x46, 0x1f, 0x60, 0x60, 0xdd, 0x93, 0xde, 0xbe,
- 0xb1, 0xad, 0xf4, 0x73, 0x09, 0xa1, 0x1c, 0x7d, 0x8f, 0x72, 0x36, 0x2d,
- 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xb1, 0x21, 0x08, 0x81,
- 0x0f, 0x1a, 0x50, 0x4f, 0xb3, 0x43, 0x86, 0xd9, 0x7b, 0xfb, 0x6c, 0x06,
- 0x4d, 0x0c, 0x72, 0xd7, 0x6e, 0xec, 0xe1, 0x2c, 0x42, 0x76, 0xa8, 0x0f,
- 0xf1, 0x59, 0x64, 0x88, 0xc9, 0xf7, 0x64, 0xcb, 0x87, 0x15, 0xf9, 0xf5,
- 0x10, 0x54, 0x82, 0xa5, 0x8a, 0xfc, 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc,
- 0x77, 0xb3, 0x7c, 0x27, 0xff, 0x0f, 0x9f, 0xb0, 0x39, 0xb3, 0xfa, 0x1c,
- 0xfe, 0x13, 0x58, 0x65, 0x07, 0xe1, 0xc8, 0xbb, 0x03, 0xfc, 0x68, 0x07,
- 0x80, 0x8d, 0xe9, 0x01, 0xf4, 0xab, 0x3c, 0x4f, 0xe3, 0x60, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x25, 0xff, 0x66, 0xfc, 0x4f, 0xe9,
- 0xc2, 0x82, 0x00, 0x14, 0xfa, 0x60, 0x87, 0x3e, 0x78, 0x07, 0xf0, 0x3b,
- 0xe0, 0x43, 0x70, 0xaf, 0x36, 0x1f, 0x3a, 0x1f, 0xc1, 0x03, 0x02, 0x1f,
- 0xe0, 0x7e, 0xf6, 0x78, 0xe7, 0xbb, 0x8e, 0x1c, 0x9a, 0x88, 0x0c, 0xdf,
- 0xb1, 0x7b, 0x4b, 0x18, 0xa0, 0x0b, 0x7a, 0x82, 0x1d, 0x26, 0x30, 0xaf,
- 0xf0, 0x23, 0x14, 0x98, 0x1f, 0x84, 0x06, 0xf8, 0x3d, 0x4f, 0xeb, 0xc6,
- 0xff, 0xdf, 0x1e, 0xbc, 0x00, 0xee, 0xda, 0x62, 0x53, 0x79, 0xbe, 0x78,
- 0x00, 0x1b, 0x8a, 0x00, 0x06, 0xe0, 0x0c, 0x01, 0xbc, 0xc2, 0x38, 0x88,
- 0xe3, 0x1e, 0xbc, 0x00, 0x1e, 0xde, 0xde, 0x3b, 0x6d, 0xf9, 0xf9, 0x88,
- 0x88, 0xbf, 0xfe, 0x1e, 0x28, 0x24, 0x79, 0x9c, 0x57, 0x60, 0x7f, 0x89,
- 0x7c, 0x0f, 0xfc, 0x21, 0xff, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xe1,
- 0x0f, 0xff, 0xdf, 0xff, 0xe6, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xaf, 0xfb, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xd7, 0xeb, 0xd6, 0x63, 0xe0, 0x48, 0xd6, 0x06, 0xd2,
- 0x5b, 0x03, 0x28, 0x8e, 0x2b, 0xff, 0xff, 0xfd, 0x7c, 0x50, 0xa2, 0x2e,
- 0x36, 0xb1, 0x10, 0x58, 0x06, 0x20, 0x5e, 0xe5, 0x68, 0x00, 0x61, 0x79,
- 0x00, 0xc6, 0x12, 0xc8, 0xd0, 0x30, 0x70, 0x87, 0x53, 0x71, 0x96, 0x51,
- 0x54, 0x97, 0x53, 0x35, 0x1f, 0xb7, 0xe4, 0x30, 0x90, 0xfb, 0x4b, 0xf0,
- 0x98, 0xb0, 0x07, 0x70, 0xe4, 0xa9, 0xf3, 0x79, 0x95, 0x41, 0x51, 0x30,
- 0xfb, 0xab, 0xdb, 0x65, 0x6c, 0x08, 0x4b, 0xc3, 0x93, 0x37, 0xff, 0xaf,
- 0x8b, 0x34, 0x62, 0xf0, 0x13, 0x7e, 0x59, 0xdc, 0x90, 0x07, 0x6c, 0x54,
- 0x2d, 0xda, 0x1b, 0x3f, 0x19, 0x40, 0xeb, 0x8b, 0x67, 0xf4, 0x36, 0xea,
- 0xd5, 0x1f, 0xff, 0xfe, 0xff, 0xfd, 0x78, 0x62, 0xb1, 0xb3, 0xff, 0xe1,
- 0x22, 0xf8, 0xf7, 0x5d, 0xd2, 0x00, 0x66, 0x56, 0x9a, 0x6b, 0x57, 0x84,
- 0x25, 0x86, 0x40, 0x02, 0xd7, 0xee, 0x19, 0x7d, 0xa3, 0x1e, 0x76, 0xc0,
- 0xd7, 0x3b, 0xcf, 0xad, 0xe3, 0xb7, 0xbc, 0x76, 0xdc, 0x46, 0x18, 0xcc,
- 0x3e, 0xb9, 0xd4, 0xe2, 0xde, 0x00, 0xb7, 0xe7, 0xc7, 0xb2, 0xff, 0x01,
- 0x03, 0xde, 0x77, 0x88, 0xbf, 0xc0, 0x3c, 0x11, 0xec, 0xee, 0xdc, 0x33,
- 0x13, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x82,
- 0x2f, 0xb5, 0xe1, 0x8e, 0xb9, 0xfd, 0x4e, 0x31, 0x42, 0x00, 0x10, 0xee,
- 0x81, 0xe1, 0x4f, 0x7e, 0x00, 0x0f, 0xc0, 0x40, 0xf6, 0xce, 0xf1, 0x17,
- 0xde, 0x08, 0xf6, 0x77, 0x6f, 0xc3, 0x1f, 0xb1, 0x66, 0x6d, 0x3c, 0x66,
- 0x04, 0xd8, 0x42, 0xa4, 0xc6, 0x15, 0xef, 0x80, 0x2d, 0xf9, 0xf1, 0xec,
- 0x9a, 0xdd, 0x26, 0x06, 0x11, 0xd0, 0xf5, 0xfd, 0x7c, 0x67, 0xda, 0xf5,
- 0xbf, 0xb4, 0x6b, 0xd7, 0xbf, 0x5f, 0x78, 0xdf, 0xf2, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xfe, 0xff, 0xcd,
- 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xff, 0xf9, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xff, 0x31, 0xf0, 0xf2, 0x11, 0x95, 0x00,
- 0x93, 0x78, 0x88, 0xbe, 0x82, 0x6c, 0xf0, 0xec, 0xf9, 0x00, 0x2b, 0x4d,
- 0xab, 0x4f, 0xd3, 0xf7, 0xaf, 0x29, 0x7b, 0x2f, 0x62, 0xbf, 0xff, 0xff,
- 0xff, 0xff, 0xf8, 0x44, 0x52, 0xf0, 0x78, 0x16, 0x9a, 0xd4, 0x08, 0x9e,
- 0xc0, 0xbf, 0xfb, 0x7e, 0x73, 0x86, 0x11, 0xe0, 0x7f, 0xf1, 0x15, 0xb0,
- 0x3e, 0xe2, 0x90, 0xf6, 0x7f, 0xb8, 0xf0, 0x1c, 0xc1, 0xcc, 0x50, 0x91,
- 0x45, 0xce, 0xa3, 0x18, 0x40, 0x07, 0xdf, 0xe1, 0xd3, 0xc4, 0xc9, 0x9f,
- 0xd0, 0x9e, 0x4c, 0xcf, 0xed, 0xbc, 0x33, 0xa2, 0x25, 0x75, 0x71, 0x9f,
- 0x55, 0x80, 0x10, 0x86, 0x7a, 0x0a, 0x13, 0xaf, 0x7f, 0x18, 0x9a, 0xec,
- 0xfa, 0xf0, 0x39, 0x1a, 0x1f, 0xe7, 0x86, 0xe5, 0x6e, 0x79, 0x0e, 0x7f,
- 0x0e, 0xc1, 0x92, 0x08, 0xfc, 0x01, 0x7b, 0x98, 0xc8, 0x49, 0xb4, 0xc0,
- 0x7c, 0x40, 0x2c, 0x12, 0x2c, 0x3f, 0x57, 0xbd, 0x7b, 0x77, 0x8d, 0xaf,
- 0x06, 0xea, 0xa3, 0x00, 0xf0, 0x52, 0x0a, 0x3d, 0x6b, 0xc1, 0xbe, 0x44,
- 0x15, 0x31, 0x04, 0x42, 0x0d, 0xda, 0xf2, 0x79, 0xbf, 0xff, 0xff, 0x84,
- 0x4d, 0x8c, 0xe6, 0xf0, 0x00, 0x30, 0x13, 0xeb, 0xd2, 0xf0, 0x60, 0x51,
- 0xe5, 0x82, 0xa7, 0xc1, 0x80, 0xc9, 0x6e, 0x6b, 0x73, 0x8e, 0xfa, 0x0e,
- 0x0d, 0xad, 0x9b, 0xf5, 0xb3, 0xc1, 0x01, 0xb6, 0xf8, 0x01, 0x31, 0xf9,
- 0x50, 0x42, 0x6d, 0x43, 0xec, 0x6f, 0x68, 0xd1, 0x3f, 0x3c, 0x01, 0x76,
- 0x7c, 0x29, 0xd1, 0xdd, 0xa9, 0xff, 0xfb, 0xcb, 0xad, 0x44, 0x91, 0xfe,
- 0xf7, 0xc3, 0x08, 0xdb, 0x6d, 0x4d, 0xff, 0xff, 0x7d, 0x6c, 0xb5, 0xca,
- 0x1a, 0xf7, 0xff, 0xc6, 0x43, 0xc3, 0xb8, 0x3f, 0xe7, 0x67, 0xc4, 0x46,
- 0xe2, 0x7c, 0x47, 0x93, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xf8, 0x81,
- 0x80, 0x41, 0xeb, 0xc3, 0xf6, 0x78, 0xbf, 0x0d, 0x43, 0xc8, 0xbb, 0x9e,
- 0x7b, 0xb0, 0xde, 0xea, 0x72, 0xf5, 0x7a, 0x4b, 0x84, 0xdc, 0xc4, 0x40,
- 0x1e, 0x1f, 0xe1, 0x28, 0x4c, 0x66, 0xe1, 0xa8, 0x94, 0xdc, 0x6d, 0x22,
- 0x6a, 0xe0, 0xba, 0x64, 0x31, 0xdd, 0x93, 0x5b, 0x86, 0xc8, 0x34, 0xa2,
- 0xdc, 0x26, 0x75, 0x45, 0x73, 0xfe, 0x4f, 0x7e, 0xbd, 0xf8, 0xcf, 0x5e,
- 0xfd, 0xf8, 0xcf, 0x5e, 0xcd, 0xf0, 0xfe, 0x34, 0x82, 0x12, 0xc0, 0xe1,
- 0x38, 0xc9, 0x98, 0x4c, 0xdd, 0x9b, 0xfe, 0xf9, 0xe2, 0x6b, 0xc6, 0x1f,
- 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff, 0xe4, 0x1d, 0x7f, 0xd9,
- 0xb0, 0xfe, 0x3f, 0x84, 0xc4, 0x00, 0x0e, 0x74, 0x68, 0x86, 0xac, 0x00,
- 0x2e, 0xaf, 0x06, 0x05, 0x9a, 0xf9, 0x3f, 0x9d, 0xf7, 0xfb, 0xef, 0x53,
- 0x30, 0xe1, 0x38, 0xc9, 0x9f, 0x06, 0x20, 0x2a, 0x78, 0x30, 0x01, 0x50,
- 0x11, 0xca, 0x0b, 0x1b, 0x04, 0x16, 0xae, 0x10, 0xbb, 0xaf, 0xda, 0x5f,
- 0xdf, 0x6b, 0xc6, 0xff, 0xd1, 0x93, 0xff, 0x1f, 0x84, 0xe1, 0x33, 0x76,
- 0x6f, 0xfb, 0xff, 0xc0, 0x03, 0x2f, 0xd3, 0xa7, 0x34, 0x91, 0x86, 0x60,
- 0x70, 0x41, 0xb5, 0x04, 0xdf, 0xfd, 0xc9, 0xcb, 0x19, 0xe0, 0x06, 0x7d,
- 0xbe, 0xb3, 0xb6, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x07, 0x9d, 0xf2, 0x99,
- 0xef, 0xc0, 0x11, 0xda, 0x46, 0x07, 0xf8, 0xa3, 0xec, 0xbb, 0x0f, 0xfa,
- 0xc0, 0x00, 0x03, 0xff, 0x6c, 0x32, 0x87, 0xfd, 0x5b, 0x16, 0x4c, 0xb3,
- 0x39, 0xe1, 0x0f, 0xfc, 0xd0, 0x10, 0x77, 0xff, 0xe1, 0x25, 0x00, 0x67,
- 0x04, 0x12, 0x65, 0x30, 0xea, 0x9b, 0x7f, 0xee, 0x7c, 0xa9, 0xd9, 0xa8,
- 0x06, 0x9c, 0x71, 0x7a, 0x10, 0x0c, 0x45, 0xf9, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff,
- 0xe1, 0x0f, 0xff, 0xdf, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xa8, 0x3d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xaf, 0xdf, 0xbc, 0xc7, 0xc0, 0x51, 0xe9, 0x6d, 0x50,
- 0x11, 0xc9, 0x46, 0x64, 0x87, 0x9f, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd,
- 0x7a, 0xf7, 0x98, 0x77, 0x19, 0x68, 0x86, 0x03, 0x9c, 0x01, 0x14, 0x5d,
- 0xa8, 0x11, 0x84, 0x21, 0x9a, 0xb4, 0xe2, 0x00, 0x0c, 0x7e, 0x66, 0x40,
- 0x18, 0xe5, 0x16, 0xff, 0x8d, 0xd2, 0x7c, 0x02, 0xf6, 0x9d, 0x3e, 0x61,
- 0xde, 0xd2, 0x71, 0xb5, 0x34, 0x35, 0x54, 0xf9, 0xc1, 0x03, 0x86, 0x03,
- 0xf8, 0x4b, 0xf0, 0x40, 0x2c, 0x18, 0x5d, 0x2b, 0x36, 0xbf, 0xbf, 0x78,
- 0x40, 0x29, 0x9e, 0x28, 0xb5, 0xbd, 0xe4, 0xcd, 0xff, 0xef, 0xc3, 0x1f,
- 0xae, 0x30, 0x0f, 0x64, 0xe0, 0x0d, 0x54, 0x8d, 0xa7, 0xe6, 0x62, 0xf5,
- 0xc7, 0xdf, 0xfb, 0xe0, 0x06, 0x65, 0x69, 0xa7, 0x6a, 0xf5, 0x6e, 0xd8,
- 0x92, 0x29, 0x8f, 0x7d, 0xfd, 0x62, 0xac, 0x79, 0xff, 0xff, 0xef, 0xff,
- 0xdf, 0x86, 0x38, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x4d, 0xd1, 0xa3, 0x54,
- 0xf1, 0x0a, 0x26, 0x5e, 0x00, 0xd7, 0x26, 0xdc, 0xed, 0x8f, 0xad, 0xe3,
- 0xb7, 0xbc, 0x76, 0xd4, 0x69, 0x0b, 0xc2, 0x5e, 0x1b, 0xef, 0x0c, 0x61,
- 0xf4, 0xa7, 0xe0, 0x81, 0x80, 0x3d, 0xff, 0xc7, 0x7e, 0xcc, 0x0e, 0xab,
- 0xe1, 0xdf, 0xf3, 0xac, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0,
- 0xf5, 0x84, 0xbe, 0xc3, 0x1d, 0x3e, 0x3a, 0x53, 0x14, 0x22, 0x00, 0xab,
- 0x26, 0xd0, 0x00, 0x38, 0xf5, 0x06, 0xe0, 0x5b, 0x08, 0x3f, 0xa0, 0x50,
- 0x0c, 0x6b, 0x80, 0xb4, 0x47, 0xbf, 0xd6, 0x37, 0xe8, 0x31, 0xe8, 0x94,
- 0xfa, 0x70, 0xa3, 0x34, 0xef, 0xe7, 0xb4, 0xc7, 0x00, 0xcf, 0xd1, 0xf3,
- 0xec, 0x88, 0xdb, 0xc6, 0xff, 0x95, 0x00, 0xc8, 0xdd, 0xd7, 0xb7, 0x86,
- 0x0d, 0xde, 0x04, 0x27, 0xf3, 0xbf, 0x84, 0x3f, 0x5c, 0xbf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f, 0xbf, 0xf3,
- 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xe0, 0xfd, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xfb,
- 0xcb, 0xf9, 0x46, 0xe0, 0x44, 0xf4, 0x6f, 0x5e, 0x2b, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x98, 0x57, 0x01, 0xf7, 0xcb, 0x78, 0x45, 0x00, 0x0a, 0xcb,
- 0x24, 0x2b, 0x3d, 0x5c, 0x52, 0x3b, 0xaf, 0xbc, 0x03, 0xf6, 0xc0, 0xec,
- 0x0d, 0xab, 0xff, 0x96, 0x85, 0x96, 0xc0, 0x0a, 0x39, 0x3c, 0x15, 0x87,
- 0xff, 0xd9, 0xf2, 0x0b, 0x1b, 0xf2, 0xe0, 0x43, 0xe6, 0x3a, 0xb3, 0x0f,
- 0x23, 0x2d, 0x36, 0x1f, 0xdf, 0xf0, 0x99, 0xda, 0x80, 0x65, 0x01, 0x31,
- 0x7a, 0xaf, 0x84, 0x8c, 0xd9, 0xf9, 0xce, 0x67, 0xbf, 0xd7, 0x20, 0x75,
- 0x0f, 0xf7, 0x5f, 0x3e, 0xf0, 0x6a, 0x4f, 0x37, 0xff, 0xff, 0xfc, 0x9e,
- 0x59, 0x65, 0x21, 0x08, 0x2e, 0xe0, 0x07, 0x1e, 0xb2, 0x8f, 0xff, 0x7c,
- 0x1f, 0x1d, 0x25, 0xd5, 0xdf, 0x57, 0x3d, 0x43, 0x02, 0x13, 0xdd, 0x80,
- 0xdc, 0x76, 0x80, 0xd3, 0xab, 0x46, 0xfe, 0x0c, 0xbe, 0xee, 0x8e, 0xc7,
- 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb1, 0x38, 0x81, 0x08, 0x01,
- 0x85, 0xeb, 0xe3, 0xe5, 0xec, 0x58, 0xe6, 0x43, 0x18, 0x1c, 0x9f, 0xf0,
- 0x14, 0x99, 0xf6, 0xad, 0x6c, 0xd8, 0x6f, 0x7e, 0x6d, 0x9d, 0x4c, 0xb2,
- 0xf0, 0x21, 0xe8, 0x7a, 0x09, 0xa4, 0x19, 0x43, 0xe9, 0x04, 0x3f, 0x6e,
- 0x7c, 0x88, 0x0e, 0x0c, 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3,
- 0x7c, 0x3f, 0xf8, 0x7c, 0xb0, 0x01, 0x18, 0x6b, 0xea, 0xef, 0xef, 0xf7,
- 0x0a, 0x61, 0xf8, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0x83, 0xf4,
- 0x6b, 0xfe, 0x8d, 0xfd, 0xbe, 0x1c, 0x3e, 0x68, 0x0e, 0x41, 0x08, 0x12,
- 0x99, 0x01, 0x95, 0xa9, 0x49, 0xae, 0xef, 0x03, 0xe6, 0xbd, 0x78, 0xdf,
- 0x46, 0xff, 0xf6, 0x80, 0x41, 0x0c, 0x00, 0x6b, 0xfa, 0x4e, 0xf5, 0xf9,
- 0xef, 0xe7, 0x3c, 0xff, 0xfc, 0x23, 0xc8, 0x20, 0x07, 0x21, 0x98, 0xa9,
- 0x85, 0x80, 0x00, 0x80, 0x4f, 0xc9, 0xe0, 0x44, 0x08, 0xfe, 0xf0, 0x49,
- 0xf0, 0x34, 0x54, 0x01, 0x9d, 0xdb, 0xfc, 0xb8, 0x32, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff,
- 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e, 0x60,
- 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00, 0x00,
- 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8, 0x20,
- 0x20, 0xaf, 0xf1, 0xf8, 0xb0, 0xdc, 0x50, 0x00, 0x3f, 0x01, 0xc2, 0x21,
- 0x0c, 0x96, 0x01, 0xc2, 0x21, 0x0c, 0x4c, 0xf3, 0xc0, 0x06, 0x03, 0x84,
- 0x42, 0x19, 0x2c, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd7, 0x4e, 0x4b,
- 0x9b, 0x5b, 0xa7, 0xf8, 0xf0, 0x01, 0xc0, 0x70, 0x88, 0x43, 0x13, 0x3a,
- 0xa2, 0x95, 0x59, 0xfa, 0x77, 0xd7, 0x77, 0x81, 0xaa, 0x66, 0xd6, 0x58,
- 0x1f, 0x35, 0xff, 0xff, 0xe6, 0x0b, 0xf9, 0x11, 0xc1, 0xd3, 0x57, 0x7f,
- 0x9e, 0xd7, 0x24, 0x19, 0xee, 0xeb, 0x4f, 0x5f, 0x77, 0x8e, 0xb2, 0x8b,
- 0x0a, 0x81, 0xda, 0x3c, 0x01, 0x80, 0xe1, 0x30, 0xca, 0x96, 0x04, 0x80,
- 0x03, 0xb6, 0xdf, 0x29, 0xbc, 0x78, 0x03, 0x01, 0xc2, 0x61, 0x95, 0x2d,
- 0x3d, 0xce, 0xb9, 0xfd, 0xff, 0xbe, 0x02, 0xe5, 0xa4, 0x32, 0xcb, 0x61,
- 0xdc, 0xef, 0xff, 0xac, 0x24, 0xf1, 0xe1, 0x0e, 0xb8, 0xb0, 0xdd, 0xb5,
- 0x19, 0x32, 0x19, 0x5e, 0x55, 0x23, 0xfb, 0xfd, 0xf7, 0x47, 0xc0, 0xe2,
- 0x47, 0x33, 0xcf, 0xed, 0x32, 0x0a, 0x32, 0xef, 0xf0, 0xe0, 0xf0, 0x1c,
- 0x0d, 0x5a, 0x2e, 0x45, 0xb6, 0xb3, 0xfd, 0xed, 0xa4, 0x35, 0x65, 0x3d,
- 0xca, 0x93, 0xd1, 0x3e, 0xfd, 0xa3, 0x31, 0xdb, 0x0b, 0xad, 0x23, 0x92,
- 0xff, 0xde, 0xff, 0x11, 0x07, 0x88, 0xc6, 0xd9, 0xe0, 0x03, 0x01, 0xc2,
- 0x21, 0x0c, 0x96, 0xe7, 0x80, 0x0c, 0x07, 0x08, 0x84, 0x32, 0x58, 0x00,
- 0x8a, 0x59, 0xc2, 0x67, 0x56, 0x37, 0x6b, 0xae, 0x35, 0x6d, 0x29, 0xdb,
- 0xfc, 0x04, 0x66, 0x90, 0x6d, 0x2f, 0x5e, 0x86, 0x7f, 0xf8, 0x3b, 0x11,
- 0x2c, 0x6a, 0xbe, 0x75, 0x86, 0xff, 0xff, 0x8f, 0x02, 0x55, 0x86, 0x54,
- 0x45, 0x57, 0x67, 0x97, 0xdf, 0xfb, 0x91, 0x30, 0xbf, 0xc4, 0x6a, 0x0e,
- 0xa0, 0x4a, 0xc8, 0x1a, 0x2b, 0xab, 0x9a, 0x89, 0xdf, 0xa0, 0x5e, 0x0b,
- 0x89, 0x4c, 0xd0, 0xec, 0x7a, 0x43, 0xe4, 0x05, 0x99, 0x6f, 0x1a, 0xae,
- 0x0d, 0x17, 0xa5, 0xff, 0xd6, 0x20, 0x43, 0x16, 0x5f, 0xb7, 0x3a, 0xda,
- 0xae, 0xdf, 0x01, 0x7c, 0xeb, 0x6a, 0xbb, 0x7c, 0x07, 0x10, 0xc5, 0x97,
- 0xcd, 0x28, 0xb3, 0x32, 0x2f, 0xb5, 0xc0, 0x88, 0x00, 0x02, 0xb5, 0x6a,
- 0xcf, 0x6d, 0xb0, 0x4f, 0xb9, 0x4f, 0xfe, 0x02, 0x4f, 0xaf, 0xa1, 0x93,
- 0x1b, 0x17, 0xd3, 0x8f, 0xb4, 0x4c, 0xb3, 0x23, 0xb8, 0xc5, 0xbb, 0xb2,
- 0xc1, 0xfa, 0xb7, 0xa5, 0x85, 0x4f, 0xbf, 0x01, 0x36, 0xe6, 0x53, 0x03,
- 0x76, 0xeb, 0x5d, 0x43, 0xcd, 0x65, 0x11, 0x91, 0xfc, 0xfe, 0xc3, 0x8d,
- 0xb5, 0x9e, 0x68, 0x8b, 0xdf, 0xee, 0x2b, 0xe8, 0x4a, 0xee, 0xa2, 0xb6,
- 0x51, 0x40, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2c, 0x00, 0x10, 0x6e, 0x9a,
- 0xd9, 0x69, 0xbb, 0xd3, 0xad, 0xa3, 0x44, 0x6e, 0xd1, 0xe0, 0x03, 0x01,
- 0xc2, 0x21, 0x0c, 0x96, 0xf0, 0x01, 0x22, 0xf3, 0x4a, 0x66, 0x10, 0xb4,
- 0x8d, 0x3a, 0xce, 0x48, 0x00, 0x94, 0xdd, 0x0f, 0xbf, 0xf5, 0xa6, 0x63,
- 0x44, 0xab, 0x62, 0x0b, 0xff, 0xff, 0x2c, 0x28, 0xcd, 0xb3, 0xa7, 0xe8,
- 0xc7, 0xff, 0xdb, 0x6b, 0x3b, 0xdf, 0xf7, 0xf9, 0x62, 0x40, 0x02, 0xaa,
- 0xe6, 0xb4, 0x69, 0x3b, 0xd0, 0x76, 0xb1, 0x27, 0x45, 0x96, 0x8f, 0xb3,
- 0xfd, 0x57, 0x35, 0xa3, 0x93, 0x54, 0x64, 0xf4, 0x61, 0x9e, 0x15, 0x9f,
- 0xff, 0xfb, 0xbf, 0xac, 0xeb, 0xd9, 0x6e, 0x78, 0x00, 0xc0, 0x70, 0x88,
- 0x43, 0x25, 0xbf, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb4, 0x7e, 0xea, 0xdb,
- 0xd1, 0x26, 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2d, 0x7e, 0x69,
- 0xd7, 0xc7, 0xfd, 0xf6, 0x1e, 0x0c, 0x96, 0x36, 0x88, 0x80, 0x93, 0x0d,
- 0x7e, 0xbf, 0x55, 0xde, 0x40, 0x04, 0xec, 0x88, 0xfa, 0xee, 0xb5, 0xec,
- 0xc6, 0x2e, 0xcd, 0xde, 0xdd, 0x7f, 0xdf, 0xda, 0x43, 0x46, 0x79, 0xe6,
- 0x46, 0x82, 0x47, 0xff, 0xb3, 0x00, 0x00, 0x88, 0xbd, 0xc9, 0x80, 0x03,
- 0x3b, 0x64, 0xd5, 0xad, 0xce, 0xc1, 0x9b, 0xcd, 0xff, 0xd6, 0xff, 0xff,
- 0x6f, 0xd7, 0x6c, 0x9a, 0xb4, 0xf9, 0xdf, 0xea, 0x21, 0x89, 0xb3, 0xdc,
- 0xf0, 0x01, 0x80, 0xe1, 0x10, 0x86, 0x4b, 0x73, 0xc0, 0x06, 0x03, 0x84,
- 0x42, 0x19, 0x2c, 0x00, 0x45, 0x2c, 0xe1, 0x33, 0xab, 0x1b, 0xb5, 0x7e,
- 0x69, 0xd7, 0xc7, 0xfd, 0xf7, 0xa2, 0xc0, 0x79, 0xf1, 0x22, 0x22, 0x96,
- 0x37, 0xfe, 0xbf, 0x9f, 0x02, 0xf9, 0xb4, 0x36, 0x84, 0x44, 0xff, 0xfc,
- 0x18, 0x13, 0x66, 0xa6, 0xc1, 0x9f, 0x93, 0x4b, 0x7f, 0xfb, 0x00, 0xb8,
- 0xe9, 0x54, 0xa6, 0x26, 0x76, 0x61, 0xef, 0xd0, 0x1b, 0x21, 0x7c, 0x5c,
- 0x58, 0xe6, 0xb5, 0xfb, 0xe6, 0xb3, 0xbd, 0xef, 0x7f, 0x96, 0xe8, 0x78,
- 0xe3, 0x01, 0x1d, 0x01, 0xad, 0x1e, 0x00, 0xc0, 0x70, 0x98, 0x65, 0x4b,
- 0x00, 0xe6, 0xbe, 0x4f, 0xe7, 0x2f, 0x9c, 0x9e, 0x25, 0x47, 0xc6, 0xd4,
- 0xc7, 0x80, 0x30, 0x1c, 0x26, 0x19, 0x52, 0xdf, 0xed, 0x17, 0x95, 0x32,
- 0x42, 0x76, 0x27, 0xde, 0x10, 0x00, 0x0c, 0x08, 0xc7, 0x1c, 0x6d, 0x87,
- 0x56, 0xae, 0x52, 0x22, 0xf9, 0x00, 0x09, 0xbe, 0x30, 0xdd, 0x90, 0x00,
- 0xdc, 0x85, 0xcf, 0xdb, 0x5c, 0x56, 0x9e, 0x41, 0x8a, 0xe4, 0xda, 0x5a,
- 0xbd, 0x43, 0x46, 0x40, 0xd9, 0x97, 0xf3, 0x3b, 0xbe, 0x53, 0x8d, 0x55,
- 0x3d, 0xf9, 0xe1, 0x0b, 0x02, 0xf7, 0x89, 0x97, 0x02, 0xfc, 0xa6, 0x9d,
- 0xdf, 0xbc, 0x0e, 0x11, 0x08, 0x97, 0x00, 0x28, 0xc9, 0xfc, 0x9b, 0xd3,
- 0xb0, 0x38, 0x44, 0x22, 0x58, 0x60, 0x01, 0x37, 0x1b, 0x5b, 0x20, 0x85,
- 0xb0, 0x79, 0x1a, 0xa7, 0xd9, 0x1c, 0x57, 0xae, 0xae, 0xa2, 0x5d, 0x2a,
- 0x67, 0x2c, 0x27, 0x18, 0x3d, 0x1c, 0x6d, 0x83, 0xab, 0x5d, 0x1c, 0xc8,
- 0xf7, 0x09, 0x2d, 0x6f, 0xdb, 0x9d, 0x61, 0x52, 0x30, 0x46, 0xdb, 0x13,
- 0xdd, 0xff, 0xb8, 0x49, 0x6b, 0x7e, 0xdc, 0xea, 0xc8, 0x94, 0x26, 0x3b,
- 0x48, 0xe6, 0xff, 0xff, 0xbf, 0x0f, 0xa5, 0xbf, 0x12, 0x24, 0xb0, 0x00,
- 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x83, 0xcf, 0x00, 0x02, 0xf0,
- 0x1c, 0x00, 0x82, 0x0a, 0x5a, 0x5b, 0x81, 0x17, 0x90, 0xd5, 0xb9, 0x82,
- 0x46, 0x67, 0x46, 0x0f, 0x15, 0x49, 0x22, 0xa4, 0xa7, 0xff, 0xfe, 0xfe,
- 0x3f, 0x0f, 0x00, 0x4e, 0x72, 0x9c, 0xa5, 0x14, 0x0d, 0xeb, 0x62, 0x00,
- 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f,
- 0xc0, 0x10, 0x00, 0x9c, 0xe7, 0x39, 0xce, 0x70, 0x37, 0xad, 0x80, 0xe0,
- 0x02, 0x0a, 0x2e, 0x5f, 0xc0, 0xe0, 0x02, 0x0a, 0x2e, 0x5f, 0xff, 0xc7,
- 0xe0, 0x08, 0x00, 0x4e, 0x73, 0x9c, 0xe7, 0x38, 0x1b, 0xd6, 0xc0, 0x70,
- 0x01, 0x05, 0x17, 0x2f, 0xe0, 0x70, 0x01, 0x05, 0x17, 0x2f, 0xff, 0xe3,
- 0xf0, 0x04, 0x00, 0x27, 0x39, 0xce, 0x73, 0x9c, 0x0d, 0xeb, 0x60, 0x38,
- 0x00, 0x82, 0x8b, 0x97, 0xf0, 0x38, 0x00, 0x82, 0x8b, 0x97, 0xff, 0xf1,
- 0xf8, 0x02, 0x00, 0x13, 0x9c, 0xe7, 0x39, 0xce, 0x06, 0xf5, 0xb0, 0x1c,
- 0x00, 0x41, 0x45, 0xcb, 0xf8, 0x1c, 0x00, 0x41, 0x45, 0xcb, 0xff, 0xf8,
- 0xfc, 0x01, 0x00, 0x09, 0xce, 0x73, 0x9c, 0xe7, 0x03, 0x7a, 0xd8, 0x0e,
- 0x00, 0x20, 0xa2, 0xe5, 0xfc, 0x0e, 0x00, 0x20, 0xa2, 0xe5, 0xff, 0xfc,
- 0x7e, 0x00, 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xbd, 0x6c, 0x07,
- 0x00, 0x10, 0x51, 0x72, 0xfe, 0x07, 0x00, 0x10, 0x51, 0x72, 0xff, 0xfe,
- 0x3f, 0x00, 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xde, 0xb6, 0x03,
- 0x80, 0x08, 0x28, 0xb9, 0x7f, 0x03, 0x80, 0x08, 0x28, 0xb9, 0x7f, 0xff,
- 0x1f, 0x80, 0x20, 0x01, 0x39, 0xce, 0x73, 0x9c, 0xe0, 0x6f, 0x5b, 0x01,
- 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff,
- 0x8f, 0xc0, 0x01, 0x00, 0x19, 0x0a, 0x5a, 0x5b, 0x28, 0x2a, 0x21, 0xad,
- 0x4c, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c,
- 0xb0, 0x02, 0x1a, 0x46, 0xb2, 0x30, 0xc6, 0xeb, 0xd3, 0x70, 0xfe, 0x07,
- 0x00, 0x10, 0x41, 0x77, 0x38, 0xec, 0x01, 0x31, 0x66, 0x23, 0xdb, 0x32,
- 0x94, 0xc4, 0x4f, 0xac, 0x80, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0xeb, 0x00,
- 0xcb, 0x08, 0x70, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0x96, 0x12, 0xc0, 0x00,
- 0x80, 0x99, 0xe8, 0x12, 0x14, 0xa1, 0xf0, 0xf8, 0x9e, 0x38, 0x57, 0x8d,
- 0x80, 0x03, 0x29, 0xdc, 0x63, 0x6a, 0x63, 0x2d, 0xcd, 0x42, 0xdf, 0x80,
- 0x04, 0x1b, 0x1c, 0xda, 0xf3, 0x30, 0x0e, 0xd1, 0x9f, 0x0f, 0xaf, 0xe0,
- 0x81, 0xf9, 0xb0, 0x28, 0xa9, 0x16, 0x9f, 0x08, 0x7f, 0xdf, 0xff, 0xfe,
- 0xb0, 0x42, 0xb0, 0x00, 0x83, 0x63, 0x9b, 0x5e, 0x66, 0x01, 0xda, 0x3a,
- 0xf6, 0x12, 0x32, 0x3c, 0x38, 0x67, 0xf5, 0xff, 0xfc, 0x0e, 0x15, 0xfe,
- 0x00, 0x30, 0x26, 0x7a, 0x04, 0x85, 0x29, 0x06, 0x36, 0x00, 0x0c, 0xa7,
- 0x71, 0x8d, 0xa9, 0x8c, 0xb7, 0x3a, 0x16, 0x24, 0x4f, 0x7f, 0x11, 0xf8,
- 0x67, 0x85, 0x44, 0x60, 0x03, 0x02, 0x67, 0xa0, 0x48, 0x52, 0xb0, 0x1b,
- 0x00, 0x06, 0x53, 0xb8, 0xc6, 0xd4, 0xd8, 0xcc, 0xce, 0x6a, 0x07, 0x00,
- 0xdb, 0x6d, 0xf2, 0x9b, 0x9f, 0x0f, 0xba, 0xfc, 0x10, 0x78, 0x60, 0xb4,
- 0xa8, 0x80, 0xee, 0x5f, 0xbc, 0x05, 0x41, 0x44, 0xc9, 0xbc, 0xd0, 0xbb,
- 0xef, 0xff, 0xf7, 0x82, 0x1e, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd3,
- 0xd0, 0x0c, 0x41, 0x1f, 0x00, 0x51, 0x1d, 0xff, 0xcf, 0xf0, 0xaf, 0x02,
- 0x13, 0xc9, 0x33, 0x21, 0x2f, 0xe9, 0xb0, 0x7c, 0x00, 0x2f, 0x53, 0x28,
- 0x5c, 0xa4, 0xc0, 0x3a, 0x47, 0x25, 0x13, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
- 0xd7, 0x1d, 0x10, 0x00, 0x80, 0x04, 0xc7, 0x31, 0xcc, 0x73, 0x01, 0xe6,
- 0xf3, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x73, 0xfc, 0x0e, 0x00, 0x20, 0x82,
- 0xee, 0x7f, 0xda, 0x1f, 0x49, 0xd9, 0x0b, 0x00, 0x02, 0x38, 0x0e, 0x01,
- 0x08, 0x71, 0x09, 0x9c, 0x50, 0x1c, 0x2e, 0xa2, 0xb5, 0x07, 0xa8, 0xb5,
- 0xfa, 0x1e, 0x00, 0x04, 0x70, 0x1c, 0x02, 0x10, 0xe2, 0x13, 0x38, 0x04,
- 0xbe, 0xb3, 0x5e, 0x27, 0xfe, 0x9d, 0xb4, 0xf5, 0xd3, 0x63, 0xc5, 0x85,
- 0xd1, 0x09, 0x6c, 0xd2, 0xb2, 0x4e, 0xd8, 0x1a, 0xe4, 0xa3, 0x4e, 0x94,
- 0xe6, 0x0c, 0x6f, 0xab, 0x90, 0xf6, 0x9f, 0xaa, 0xcd, 0x98, 0x2b, 0x01,
- 0xa1, 0xdb, 0x8f, 0xd7, 0x2f, 0x2e, 0x1f, 0x7e, 0x84, 0x1e, 0x4d, 0xa9,
- 0x86, 0x4e, 0xfe, 0x42, 0x3d, 0x38, 0xa9, 0xf1, 0x11, 0xba, 0x98, 0x1a,
- 0xb7, 0x58, 0x02, 0xee, 0x51, 0xe8, 0x02, 0x72, 0xda, 0xbf, 0x5d, 0x35,
- 0x04, 0x26, 0x67, 0x2a, 0xa0, 0xdf, 0x3f, 0x7e, 0x9a, 0x63, 0x77, 0xfd,
- 0x8c, 0xfb, 0xbd, 0x07, 0x1f, 0x14, 0xce, 0xb0, 0xd0, 0x74, 0x53, 0x35,
- 0xe0, 0x32, 0xa9, 0x29, 0x8e, 0xc2, 0x37, 0xbf, 0xb6, 0xf9, 0xd1, 0xe9,
- 0xc0, 0xbc, 0xcc, 0x58, 0x47, 0x7f, 0x20, 0xf6, 0x24, 0xe3, 0x20, 0x33,
- 0x7a, 0x86, 0xf5, 0x98, 0x14, 0x8a, 0x43, 0xcf, 0x0d, 0x05, 0x89, 0x2f,
- 0x2b, 0x66, 0x2e, 0x7b, 0x50, 0xe9, 0x50, 0x8b, 0xff, 0x74, 0x10, 0x77,
- 0x2f, 0x24, 0xbf, 0xfb, 0x76, 0xd1, 0x3a, 0x41, 0x19, 0x5e, 0xdf, 0x80,
- 0x38, 0xeb, 0xb4, 0xb6, 0xfe, 0x89, 0xd7, 0x3a, 0x00, 0x01, 0x00, 0x67,
- 0x03, 0x62, 0x59, 0x7c, 0xfd, 0x1a, 0x31, 0x95, 0xff, 0x62, 0x2b, 0x4c,
- 0x09, 0xd8, 0xf0, 0x22, 0x6e, 0x0f, 0x7f, 0x85, 0xe3, 0x8a, 0x3d, 0x05,
- 0xc0, 0x5b, 0xe5, 0x41, 0xd6, 0x0d, 0xaf, 0x9c, 0xbd, 0x5a, 0x67, 0xc1,
- 0x45, 0x27, 0xe5, 0x1b, 0x74, 0x10, 0x64, 0x23, 0xb0, 0xbd, 0xa3, 0x3e,
- 0xef, 0x41, 0xce, 0x8c, 0x1f, 0x49, 0xe3, 0xde, 0xb6, 0xd3, 0x25, 0x64,
- 0xbb, 0x60, 0x1a, 0xe4, 0xa3, 0x4e, 0x4a, 0x73, 0xf2, 0xae, 0x99, 0x1d,
- 0xdb, 0x21, 0x76, 0xf0, 0xcf, 0xdd, 0xe4, 0xfe, 0x9c, 0x0f, 0x95, 0x43,
- 0xef, 0xd0, 0x83, 0xd9, 0xb5, 0x30, 0xc9, 0xdf, 0xc8, 0x47, 0xa7, 0x15,
- 0xf8, 0x88, 0xdd, 0x4c, 0x0d, 0x79, 0x9d, 0xb6, 0xaa, 0xcf, 0x67, 0xc0,
- 0x02, 0x5b, 0x32, 0x8b, 0x30, 0x50, 0x1d, 0xa2, 0x2e, 0x5a, 0xc8, 0xe1,
- 0x94, 0xc4, 0x11, 0xdf, 0xca, 0x35, 0x75, 0xc7, 0xeb, 0xf7, 0xe7, 0x1a,
- 0x52, 0x5e, 0xfb, 0xfc, 0x0c, 0xa8, 0x8c, 0x4c, 0xa5, 0x43, 0x85, 0x24,
- 0x3a, 0x41, 0x5f, 0x59, 0xbc, 0x85, 0x52, 0xfa, 0x9e, 0x7a, 0x2d, 0xe2,
- 0x45, 0x1e, 0x58, 0x99, 0xec, 0xe0, 0x29, 0x01, 0x49, 0x8b, 0x5c, 0xec,
- 0xc3, 0x86, 0x0f, 0xa4, 0xf1, 0xe9, 0x59, 0x2e, 0xd8, 0x0d, 0x72, 0x5b,
- 0xd3, 0x3b, 0x51, 0xa7, 0x4a, 0x73, 0x66, 0xd9, 0x0d, 0x0e, 0xd8, 0x73,
- 0xea, 0xfe, 0x03, 0x3f, 0xef, 0x4f, 0xe9, 0xc1, 0xf7, 0xe8, 0x41, 0xec,
- 0xda, 0x9b, 0xca, 0xfc, 0x84, 0x9d, 0x4c, 0x32, 0x7f, 0xe4, 0x23, 0xd3,
- 0x83, 0x23, 0xe8, 0x22, 0x9c, 0x8f, 0xfd, 0x30, 0x34, 0x0c, 0x37, 0xde,
- 0x96, 0x8d, 0x74, 0x22, 0xf2, 0x71, 0xf3, 0x8b, 0x2c, 0xff, 0x56, 0xe1,
- 0xf5, 0x7e, 0x5a, 0x68, 0x9e, 0x83, 0x7b, 0xcf, 0xe1, 0x6d, 0x36, 0xa9,
- 0x87, 0xf7, 0xb4, 0x50, 0x22, 0xea, 0x67, 0x98, 0x1c, 0xaf, 0xd3, 0xb6,
- 0x1b, 0xd4, 0x11, 0x68, 0x7f, 0x5e, 0xea, 0x58, 0x7e, 0xf9, 0x09, 0xc7,
- 0xbf, 0x70, 0x20, 0x7d, 0x3f, 0x00, 0x1f, 0x71, 0x98, 0x4d, 0x54, 0xe4,
- 0x33, 0xd2, 0xfa, 0x28, 0x02, 0xce, 0x4e, 0x83, 0x19, 0xee, 0xb7, 0x3a,
- 0x75, 0xdf, 0xf5, 0xca, 0x48, 0x62, 0x62, 0x3f, 0x6d, 0x78, 0x3c, 0xe8,
- 0x00, 0xee, 0x36, 0xc9, 0x06, 0x2c, 0x73, 0x17, 0xfb, 0xc1, 0xf4, 0x5e,
- 0xf2, 0x36, 0x0f, 0xef, 0x00, 0x8f, 0x5f, 0x87, 0xff, 0xfe, 0xe0, 0x0d,
- 0x13, 0x66, 0x8c, 0x17, 0x13, 0x36, 0xff, 0x82, 0x2b, 0x73, 0xaa, 0x3f,
- 0xff, 0xe6, 0x3c, 0x65, 0xa1, 0xd8, 0x58, 0x11, 0x6e, 0x43, 0xc6, 0x10,
- 0x01, 0x1d, 0xd7, 0xcb, 0xc9, 0x3f, 0x80, 0x28, 0xcc, 0x2a, 0x0b, 0xb0,
- 0x5c, 0xa6, 0x6f, 0x88, 0x36, 0xef, 0x7a, 0xeb, 0x65, 0xe3, 0x47, 0x44,
- 0x6e, 0xec, 0xdc, 0xf2, 0x0b, 0x11, 0x55, 0x7f, 0xcd, 0xdf, 0x47, 0xff,
- 0x3c, 0x38, 0x1a, 0x87, 0xf9, 0xf9, 0x81, 0x30, 0xcb, 0x96, 0x51, 0x05,
- 0x8c, 0x74, 0x17, 0x2f, 0x07, 0x09, 0x86, 0x5c, 0xb4, 0x3f, 0xef, 0xf8,
- 0x4c, 0x5f, 0xc1, 0x4d, 0x19, 0x85, 0xc5, 0x53, 0x50, 0xa3, 0x76, 0xbd,
- 0x41, 0x00, 0x4c, 0x08, 0x59, 0xe2, 0xe5, 0x83, 0x7d, 0x22, 0xc4, 0x8c,
- 0x98, 0xdd, 0xaf, 0x51, 0x35, 0xd7, 0x5d, 0x75, 0xd7, 0x5c, 0x74, 0x40,
- 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0,
- 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xff, 0xff,
- 0x28, 0x5a, 0x3c, 0x00, 0x0a, 0xe0, 0x38, 0x04, 0x30, 0x84, 0x93, 0x3f,
- 0x01, 0x1e, 0xbf, 0x6f, 0x9e, 0x00, 0x04, 0xf0, 0x1c, 0x02, 0x18, 0x42,
- 0x49, 0x9c, 0x1b, 0x68, 0x0a, 0x2d, 0xb4, 0x1c, 0xe3, 0xe2, 0x6c, 0x00,
- 0x34, 0x69, 0xdd, 0x3c, 0xfc, 0x8c, 0x41, 0x87, 0xb2, 0x7c, 0xa8, 0x32,
- 0xb1, 0xc9, 0xd4, 0xdf, 0xe0, 0x08, 0xb3, 0x13, 0x15, 0x59, 0xf9, 0x20,
- 0xe8, 0xb4, 0xc4, 0x41, 0x56, 0xff, 0x0c, 0x0f, 0x16, 0x70, 0x13, 0xfb,
- 0xbe, 0x60, 0xe3, 0xc0, 0x61, 0xea, 0xc1, 0xc7, 0x4b, 0x74, 0x7a, 0x8e,
- 0x61, 0xbd, 0xa2, 0xa9, 0xca, 0x6a, 0xf8, 0x7b, 0x34, 0x98, 0x60, 0x77,
- 0x54, 0xce, 0xa3, 0xea, 0x99, 0x3c, 0x6f, 0xf0, 0xeb, 0x4d, 0x1a, 0x43,
- 0xcf, 0xf8, 0x4c, 0xfb, 0x58, 0x1a, 0x0c, 0xa6, 0x39, 0xba, 0x9a, 0xca,
- 0xa3, 0xb1, 0x67, 0x78, 0x72, 0xf3, 0x04, 0x53, 0xa6, 0x03, 0xd5, 0x26,
- 0x01, 0x28, 0x19, 0xd9, 0xd4, 0x3f, 0xac, 0x90, 0x5c, 0x96, 0x21, 0x2c,
- 0xb5, 0xb0, 0xf0, 0x1a, 0x45, 0x58, 0x7b, 0xe7, 0x8d, 0x6c, 0x12, 0x5e,
- 0x31, 0x7e, 0x00, 0x8b, 0x32, 0x11, 0x55, 0x9f, 0x8d, 0xc2, 0x8e, 0x4f,
- 0xc1, 0x81, 0x96, 0x70, 0x21, 0xf0, 0xfe, 0x63, 0x8f, 0x5f, 0x47, 0x88,
- 0x00, 0x5e, 0xd1, 0x59, 0xa4, 0xc9, 0x1c, 0xdf, 0x24, 0x25, 0x14, 0xf4,
- 0x9a, 0x70, 0xb3, 0xbc, 0x1d, 0xb0, 0xf2, 0xb3, 0x4c, 0x1e, 0x24, 0x46,
- 0x99, 0xff, 0x42, 0xd4, 0x9c, 0xe3, 0x1f, 0xc0, 0x11, 0x33, 0x13, 0x15,
- 0x59, 0xf8, 0x03, 0x11, 0x68, 0x94, 0xcd, 0xa2, 0x6e, 0xc0, 0x0d, 0x56,
- 0x94, 0xcd, 0x0e, 0x37, 0xe8, 0x3d, 0x49, 0x90, 0x5d, 0x6a, 0x0c, 0xbe,
- 0xa3, 0x2f, 0x7a, 0x57, 0xf6, 0x68, 0x00, 0x04, 0x02, 0xa0, 0xf8, 0xed,
- 0x77, 0x11, 0x26, 0x78, 0xa2, 0xd6, 0xf4, 0x96, 0x73, 0x98, 0x05, 0xce,
- 0xbb, 0x53, 0x84, 0x9c, 0xc4, 0xc3, 0xe5, 0x76, 0x1e, 0xa1, 0x26, 0x60,
- 0xf6, 0xfe, 0x18, 0x00, 0x43, 0xab, 0x6f, 0x44, 0x9b, 0x5e, 0xab, 0x6b,
- 0x32, 0x1a, 0x22, 0xed, 0x7f, 0xd0, 0x39, 0x84, 0x8d, 0xaa, 0x95, 0xfa,
- 0xc6, 0xb9, 0x36, 0x90, 0x4c, 0xc2, 0xd2, 0x16, 0xe3, 0x9d, 0x46, 0x2d,
- 0x49, 0x9f, 0xdc, 0x6a, 0xbe, 0xff, 0x7d, 0xfe, 0xbf, 0xff, 0xf2, 0x28,
- 0x21, 0x11, 0x00, 0x0b, 0x64, 0x59, 0xed, 0x90, 0x04, 0x81, 0x49, 0x77,
- 0xec, 0x00, 0x1e, 0xc8, 0xbf, 0xbe, 0x94, 0xff, 0xff, 0xff, 0xeb, 0xde,
- 0xff, 0xff, 0xaf, 0xfe, 0xff, 0xde, 0xf2, 0xfc, 0x4a, 0xe0, 0x08, 0x00,
- 0x50, 0xc8, 0xa0, 0x3a, 0xc1, 0x07, 0xbf, 0x20, 0x03, 0xef, 0x06, 0x48,
- 0x84, 0x01, 0xd2, 0x31, 0xdd, 0x20, 0x8e, 0x2f, 0xde, 0xfc, 0xff, 0xf7,
- 0xfa, 0x18, 0x12, 0x91, 0x4a, 0xf6, 0x69, 0x1d, 0xf7, 0x06, 0x1e, 0xe3,
- 0xc6, 0x1f, 0xf0, 0x92, 0x0c, 0xf0, 0xa1, 0x34, 0x15, 0x6f, 0xfb, 0xe9,
- 0x00, 0x54, 0x53, 0x23, 0x2d, 0x0e, 0x65, 0x4e, 0xc3, 0x0c, 0x0e, 0x20,
- 0x08, 0x64, 0x1e, 0x2b, 0x01, 0x5f, 0xfe, 0x12, 0x2e, 0x00, 0x40, 0xb5,
- 0x4e, 0xd7, 0xee, 0xbe, 0x12, 0x34, 0xf8, 0xb4, 0xdc, 0xe8, 0x6d, 0x9e,
- 0x64, 0x05, 0x1f, 0x17, 0xfc, 0x2a, 0xbe, 0x23, 0xaa, 0x81, 0xc1, 0x3f,
- 0xe0, 0x06, 0x2f, 0xf2, 0xd3, 0xff, 0x48, 0x3c, 0x7e, 0xae, 0x3d, 0xfc,
- 0x80, 0x06, 0x5f, 0x7d, 0x76, 0xfd, 0xc0, 0x69, 0xdd, 0x3e, 0xb3, 0xff,
- 0x1f, 0x57, 0x8f, 0xd7, 0xff, 0xf3, 0xfc, 0x10, 0x17, 0xe0, 0xfb, 0xc1,
- 0xf8, 0x75, 0x2c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc,
- 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00,
- 0x82, 0x0b, 0xb9, 0xff, 0x49, 0xff, 0xc4, 0xa3, 0xc0, 0x00, 0x9e, 0x03,
- 0x80, 0x43, 0x08, 0x49, 0x33, 0x80, 0x70, 0x1d, 0x38, 0x54, 0x6d, 0x2a,
- 0xfe, 0x6b, 0x5b, 0x5d, 0xf0, 0x78, 0x00, 0x13, 0xc0, 0x70, 0x08, 0x61,
- 0x09, 0x26, 0x70, 0x60, 0x24, 0x42, 0x3f, 0xf8, 0x49, 0x07, 0xa4, 0xcc,
- 0x84, 0x54, 0x36, 0xa6, 0x02, 0x98, 0x56, 0xbc, 0x0d, 0xd6, 0x93, 0xf7,
- 0xcf, 0x00, 0x03, 0x69, 0xd8, 0xc6, 0xd4, 0xc9, 0x8d, 0x8f, 0xaf, 0x58,
- 0xad, 0x85, 0x43, 0x32, 0xa9, 0xf0, 0x97, 0x5c, 0xaf, 0xfc, 0x81, 0xc1,
- 0x3e, 0x4d, 0xac, 0x68, 0xc9, 0xfb, 0xd6, 0xb9, 0x20, 0x18, 0x7f, 0xc2,
- 0x5b, 0xd8, 0x3e, 0x08, 0x99, 0x4b, 0x7f, 0xc5, 0x17, 0x91, 0x8d, 0xaa,
- 0x3b, 0x99, 0x53, 0xb6, 0xde, 0x28, 0xc7, 0xe8, 0x38, 0x05, 0x4c, 0x06,
- 0xcb, 0x09, 0x7c, 0xc1, 0xe9, 0x33, 0x21, 0x15, 0x8d, 0xa9, 0xa5, 0xe9,
- 0x93, 0x86, 0x80, 0x0d, 0xa7, 0x61, 0x0d, 0xa9, 0xac, 0x84, 0x48, 0xc6,
- 0xff, 0xf0, 0x94, 0x13, 0x96, 0xba, 0xd1, 0xd3, 0xb2, 0xaf, 0xbe, 0xaf,
- 0x58, 0xad, 0x8e, 0x86, 0x1e, 0x37, 0x30, 0xf2, 0xa9, 0xf0, 0x97, 0x5c,
- 0xef, 0xfc, 0xab, 0x60, 0xf8, 0x22, 0x65, 0x3f, 0xf9, 0xf8, 0x27, 0xc9,
- 0xb5, 0x8d, 0x09, 0xbf, 0x7a, 0xa7, 0x6d, 0xbc, 0x50, 0x87, 0xea, 0xd2,
- 0x33, 0x01, 0x2f, 0xf8, 0x4a, 0x19, 0x92, 0x29, 0xb1, 0x0c, 0xa7, 0xfe,
- 0x7c, 0x83, 0x68, 0x6a, 0xad, 0xbe, 0x80, 0x73, 0x5b, 0x9e, 0xa4, 0xf4,
- 0x7b, 0x4c, 0x36, 0x5f, 0x39, 0x41, 0xc2, 0xff, 0xf6, 0xc8, 0x80, 0x01,
- 0x29, 0x04, 0x17, 0x61, 0x9d, 0xb5, 0x50, 0xfe, 0xe7, 0xc4, 0x7c, 0x3f,
- 0xf0, 0x96, 0x19, 0x23, 0x20, 0x18, 0x42, 0x60, 0x36, 0xd4, 0x18, 0x60,
- 0x07, 0x49, 0x19, 0x00, 0xc2, 0x12, 0x50, 0x6d, 0xa8, 0x00, 0xe9, 0x46,
- 0x80, 0x61, 0x1e, 0x40, 0x6d, 0xab, 0xc1, 0xea, 0x36, 0xba, 0xeb, 0xae,
- 0xbe, 0x56, 0x96, 0x44, 0xdf, 0x89, 0x15, 0x00, 0x0b, 0x69, 0x7f, 0x7d,
- 0x2b, 0xff, 0xf9, 0x02, 0x51, 0x25, 0x7c, 0x8d, 0x9c, 0xbb, 0x57, 0xd7,
- 0xff, 0xcf, 0xff, 0xff, 0x01, 0x87, 0x00, 0x2c, 0x83, 0xfd, 0x22, 0x31,
- 0xdd, 0xea, 0xa0, 0xc2, 0x3a, 0xde, 0xfd, 0xe7, 0xff, 0xfd, 0xfd, 0xc5,
- 0xba, 0x88, 0xa8, 0x95, 0x7e, 0x67, 0x4f, 0xf3, 0xa6, 0x09, 0xc4, 0x11,
- 0x7c, 0x7e, 0xbc, 0x52, 0x07, 0xf8, 0x4b, 0xd6, 0xc0, 0xff, 0x3b, 0x00,
- 0x3e, 0x5f, 0x34, 0x9b, 0x8a, 0x5e, 0xdc, 0xdd, 0x9b, 0xfe, 0xff, 0x51,
- 0x31, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f,
- 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
- 0xe7, 0x1d, 0x87, 0x80, 0x27, 0x39, 0xca, 0x72, 0xb8, 0x1e, 0x6f, 0x08,
- 0x00, 0x10, 0x51, 0xb7, 0x3f, 0xe0, 0x70, 0x01, 0x05, 0x1b, 0x73, 0xfe,
- 0xa2, 0x55, 0xf7, 0xdf, 0x7d, 0x75, 0xd7, 0x5d, 0x7f, 0xda, 0xdf, 0x09,
- 0x42, 0x82, 0x20, 0x01, 0x71, 0x87, 0x2a, 0x54, 0x92, 0xc7, 0x4d, 0xff,
- 0x40, 0x9f, 0xc1, 0x5d, 0x8d, 0xae, 0x82, 0xbf, 0xfb, 0xe8, 0x09, 0xd3,
- 0x26, 0xc8, 0xe2, 0x1a, 0x2b, 0x68, 0x64, 0x89, 0x0d, 0x75, 0x11, 0x51,
- 0x35, 0xff, 0x48, 0x7f, 0x08, 0x50, 0x47, 0x80, 0x5f, 0x54, 0x07, 0xd4,
- 0x08, 0x4a, 0xe4, 0xb9, 0xe9, 0xf2, 0xf4, 0x0a, 0xdb, 0xfd, 0x5b, 0x9f,
- 0xf7, 0xd4, 0x4f, 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39,
- 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00,
- 0x10, 0x41, 0x77, 0x38, 0xec, 0x01, 0x00, 0x09, 0xce, 0x71, 0x56, 0xb5,
- 0x81, 0xe6, 0xf0, 0x0e, 0x00, 0x20, 0xa3, 0x6e, 0x7f, 0xc0, 0xe0, 0x02,
- 0x0a, 0x36, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
- 0xfc, 0x3f, 0xa5, 0x20, 0x84, 0x44, 0x00, 0x28, 0x90, 0xa6, 0x98, 0x8e,
- 0xe8, 0xa8, 0x4f, 0xfe, 0xd9, 0x20, 0x38, 0xb6, 0x8a, 0x89, 0x92, 0x0f,
- 0x76, 0xca, 0x26, 0xbf, 0xe1, 0x6f, 0x6b, 0x61, 0x41, 0x10, 0x00, 0x9e,
- 0x75, 0xba, 0xb5, 0xff, 0x6f, 0xce, 0xa4, 0xa5, 0x1e, 0xaf, 0x00, 0x08,
- 0xa3, 0x79, 0x26, 0xbd, 0x7e, 0xf0, 0x62, 0x88, 0xed, 0x54, 0xdb, 0xef,
- 0x51, 0x21, 0xaf, 0xff, 0xfe, 0xd0, 0x42, 0x68, 0x00, 0x63, 0xf3, 0x44,
- 0x3f, 0x31, 0x1d, 0x9a, 0x0c, 0xb1, 0x7c, 0x61, 0xc7, 0x6c, 0x53, 0xc7,
- 0x44, 0x00, 0x20, 0x01, 0x31, 0xcc, 0x73, 0x1c, 0xc0, 0x79, 0xbc, 0xf8,
- 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xff, 0x03, 0x80, 0x08, 0x20, 0xbb, 0x9c,
- 0x76, 0x00, 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xe6, 0xf0, 0x0e,
- 0x00, 0x20, 0xa3, 0x6e, 0x7f, 0xc0, 0xe0, 0x02, 0x0a, 0x36, 0xe7, 0xfd,
- 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xe0, 0x00, 0x00, 0x01, 0x25,
- 0x01, 0x2e, 0xe0, 0x80, 0x87, 0xff, 0xff, 0xc3, 0xd1, 0x40, 0x00, 0x40,
- 0xc7, 0xc7, 0xcc, 0x00, 0x08, 0x32, 0x14, 0xa4, 0x29, 0x0a, 0x42, 0x90,
- 0xa4, 0x21, 0x4d, 0xf0, 0x02, 0xd4, 0x02, 0x9c, 0xe6, 0x73, 0x00, 0x15,
- 0xeb, 0x9b, 0xff, 0xfd, 0x3e, 0x91, 0x4f, 0x84, 0xd0, 0x70, 0x00, 0xb9,
- 0x19, 0xa8, 0xe4, 0xdb, 0x12, 0x77, 0xbc, 0x10, 0xc0, 0xe4, 0x4c, 0xb6,
- 0x4b, 0xbd, 0xed, 0xfe, 0x00, 0x0e, 0xcc, 0x8d, 0x7b, 0x24, 0x4c, 0xb7,
- 0xf8, 0x91, 0x2f, 0xfc, 0xb6, 0xb7, 0xc4, 0x88, 0xe0, 0x03, 0xbd, 0x92,
- 0x31, 0xa3, 0x2e, 0xaf, 0x00, 0x06, 0x26, 0x9a, 0x20, 0xb5, 0xc6, 0x00,
- 0x28, 0x1c, 0x3c, 0x12, 0xc5, 0xed, 0xbb, 0x44, 0xff, 0xe4, 0x06, 0xe3,
- 0xd1, 0xc9, 0xd9, 0x0b, 0xe7, 0x12, 0xaf, 0xff, 0x62, 0xf6, 0x96, 0x30,
- 0x44, 0x00, 0xd0, 0x76, 0xa4, 0x02, 0x07, 0x1c, 0x39, 0x82, 0x1e, 0x3f,
- 0x56, 0x5f, 0xcf, 0x80, 0x10, 0xf5, 0x8e, 0xb3, 0x39, 0xf9, 0x80, 0x74,
- 0xdf, 0xd1, 0xf3, 0xd3, 0xcb, 0xf9, 0xe4, 0x89, 0x0c, 0x7c, 0x40, 0x02,
- 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04,
- 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xff, 0xff, 0xf0,
- 0x9c, 0x50, 0x00, 0x10, 0x11, 0xc0, 0x70, 0x02, 0x08, 0x29, 0x44, 0xcc,
- 0xf0, 0x00, 0x2b, 0x80, 0xe0, 0x04, 0x10, 0x52, 0x89, 0x9b, 0x89, 0xbe,
- 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xbe, 0x99, 0xcc, 0xfe, 0x7c, 0x50,
- 0x8e, 0x84, 0xfb, 0xeb, 0x37, 0x7c, 0x92, 0xf6, 0xf8, 0x29, 0x39, 0xd7,
- 0x7e, 0x7f, 0xff, 0xfe, 0xf0, 0x15, 0x19, 0x5d, 0xf5, 0x3a, 0xff, 0xff,
- 0xe2, 0x9c, 0xeb, 0xbf, 0x9f, 0xff, 0xff, 0x80, 0xc0, 0x94, 0x65, 0x77,
- 0xd4, 0xef, 0xff, 0xe7, 0xff, 0xeb, 0x9e, 0xb8, 0x56, 0x08, 0x35, 0x6b,
- 0xbc, 0xed, 0x9e, 0x1f, 0xfa, 0x77, 0xf8, 0x00, 0xb0, 0x4d, 0xea, 0x78,
- 0xf0, 0xcc, 0x5f, 0x36, 0x05, 0x9a, 0x73, 0x26, 0xeb, 0xff, 0x7d, 0xf6,
- 0x36, 0xf8, 0x5b, 0xf0, 0x9c, 0x00, 0xc8, 0xbd, 0x5f, 0x3f, 0xfe, 0xc8,
- 0x31, 0x50, 0x65, 0x8e, 0xa4, 0x0f, 0xd8, 0xde, 0x78, 0x48, 0x75, 0x51,
- 0x32, 0x7e, 0xf9, 0x7b, 0xc6, 0x0d, 0x55, 0x3d, 0xfe, 0xfe, 0xa2, 0x7f,
- 0xfe, 0xe4, 0x45, 0x8c, 0x11, 0xc0, 0x03, 0x0b, 0xd5, 0x6f, 0xad, 0x80,
- 0x06, 0x17, 0xaa, 0xdf, 0x59, 0xc3, 0xfc, 0xac, 0xf7, 0xe0, 0x03, 0x1e,
- 0x9a, 0x4c, 0x7f, 0xfa, 0x8f, 0xea, 0x8c, 0x3f, 0xbd, 0x00, 0x00, 0x0f,
- 0xec, 0xc4, 0x45, 0xcb, 0xfc, 0x4b, 0x00, 0x18, 0x5e, 0xb7, 0xd7, 0xf6,
- 0xa3, 0x7f, 0xdf, 0x49, 0xfd, 0xbf, 0x61, 0xfa, 0xb0, 0x3f, 0x7b, 0x03,
- 0xef, 0x82, 0xf5, 0x3c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31,
- 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38,
- 0x00, 0x82, 0x0b, 0xb9, 0xc7, 0x61, 0xe0, 0x09, 0xce, 0x72, 0x94, 0xa5,
- 0x03, 0xcd, 0xe1, 0x00, 0x02, 0x0a, 0x2e, 0xe7, 0xfc, 0x0e, 0x00, 0x20,
- 0xa2, 0xee, 0x7f, 0xd4, 0x4d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
- 0xd7, 0xfd, 0x7f, 0xf8, 0x7c, 0xde, 0x00, 0x1e, 0xcc, 0xa0, 0x9b, 0x91,
- 0xc9, 0x21, 0x9b, 0xbf, 0xff, 0x10, 0xf0, 0x0f, 0xf8, 0x7b, 0x52, 0xc4,
- 0x93, 0x55, 0x5c, 0xe7, 0x40, 0x56, 0xcd, 0xf2, 0xb7, 0x3e, 0xff, 0xe0,
- 0x0e, 0xff, 0xfc, 0x24, 0xa0, 0x01, 0x97, 0xab, 0xa6, 0x36, 0x8e, 0x86,
- 0xf4, 0x76, 0x71, 0x01, 0xaa, 0x71, 0x2a, 0xf2, 0x10, 0x17, 0x08, 0xbf,
- 0xee, 0x5f, 0xff, 0xc3, 0xc2, 0x5f, 0xe3, 0xb7, 0xbf, 0x01, 0xfe, 0xba,
- 0xe3, 0xa2, 0x00, 0x10, 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde,
- 0x7c, 0x0e, 0x00, 0x20, 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d,
- 0xcf, 0x88, 0x7f, 0xfe, 0x13, 0x30, 0x00, 0xd3, 0x86, 0xfd, 0xca, 0x08,
- 0x9c, 0x3d, 0x5e, 0xd3, 0x0c, 0x02, 0x21, 0x4c, 0x4c, 0xcf, 0x00, 0x1c,
- 0x07, 0x02, 0x31, 0x4c, 0x4c, 0xdd, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7,
- 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x1f, 0x80, 0x02, 0x32, 0xac,
- 0xca, 0xcc, 0xaf, 0x32, 0xf8, 0x01, 0x32, 0x70, 0xd4, 0x84, 0x73, 0xfa,
- 0xbd, 0xff, 0x81, 0xc0, 0x10, 0x87, 0xdc, 0xe3, 0xa5, 0x0f, 0x00, 0x4e,
- 0x73, 0x94, 0xa5, 0x28, 0x1e, 0x6f, 0x08, 0x00, 0x10, 0x51, 0x77, 0x3f,
- 0xe0, 0x70, 0x01, 0x05, 0x17, 0x73, 0xfe, 0xa2, 0x6b, 0xae, 0xba, 0xeb,
- 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8e, 0x88, 0x00,
- 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39, 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00,
- 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xf0, 0xff,
- 0xc4, 0x8a, 0x14, 0x00, 0x70, 0x1c, 0x26, 0x19, 0x49, 0x98, 0x0e, 0x00,
- 0x13, 0xb9, 0x93, 0x03, 0x80, 0x01, 0x66, 0x02, 0x20, 0xf3, 0xc0, 0x1c,
- 0x07, 0x09, 0x86, 0x52, 0x67, 0xf8, 0xc3, 0xe1, 0x08, 0xa2, 0x07, 0x00,
- 0x02, 0x08, 0x19, 0x00, 0x70, 0x00, 0x20, 0x81, 0x90, 0x78, 0x0a, 0x02,
- 0x42, 0x12, 0xc8, 0x18, 0x2f, 0x77, 0x11, 0x40, 0x49, 0x62, 0xb0, 0x0f,
- 0x2e, 0x21, 0xc0, 0x49, 0x2c, 0x72, 0x00, 0xf5, 0x71, 0x0e, 0x02, 0x49,
- 0x62, 0xb0, 0x0f, 0x56, 0x99, 0xf8, 0xc3, 0xfe, 0x14, 0x80, 0x2a, 0x17,
- 0x92, 0x94, 0x80, 0x3d, 0x45, 0x90, 0x0d, 0x48, 0xe8, 0x5e, 0x4a, 0x53,
- 0x00, 0xf5, 0x78, 0xe8, 0x5e, 0x4a, 0x52, 0x00, 0xf5, 0x78, 0xe8, 0x5e,
- 0x4e, 0x53, 0x00, 0xf5, 0x7f, 0xe2, 0x3f, 0x1c, 0x22, 0xa0, 0xe4, 0x03,
- 0x52, 0x0e, 0x40, 0x35, 0x38, 0x08, 0x63, 0x21, 0x4b, 0x5a, 0xba, 0x0d,
- 0xa6, 0x32, 0x15, 0xeb, 0x56, 0xe4, 0x16, 0x98, 0xc8, 0x57, 0xad, 0x5b,
- 0x90, 0x5a, 0x48, 0xc8, 0xe4, 0xad, 0x5d, 0x07, 0xf1, 0x8f, 0xc6, 0x38,
- 0x51, 0x80, 0x2d, 0x6d, 0x84, 0x42, 0x21, 0xb9, 0xf8, 0x85, 0xb6, 0x11,
- 0x08, 0x86, 0xe7, 0xd8, 0x7a, 0xdb, 0x08, 0x84, 0xb5, 0xab, 0xc4, 0x2d,
- 0xb0, 0x88, 0x44, 0x37, 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
- 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c,
- 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0,
- 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x80, 0x7f, 0xe2, 0x48, 0x78, 0x00,
- 0x38, 0x0e, 0x01, 0x08, 0x71, 0x09, 0x98, 0x1c, 0x08, 0x1c, 0xa4, 0x13,
- 0xcf, 0x00, 0x02, 0x38, 0x0e, 0x01, 0x08, 0x71, 0x09, 0x9c, 0x03, 0x0f,
- 0xff, 0x05, 0x82, 0x59, 0xb4, 0x17, 0xc4, 0x00, 0x01, 0x00, 0x00, 0x0b,
- 0x10, 0x4b, 0x03, 0x90, 0x84, 0xb9, 0x0e, 0x42, 0x12, 0xe4, 0xf0, 0x9e,
- 0x1f, 0x10, 0xff, 0xe0, 0xb1, 0x32, 0x52, 0x0f, 0x88, 0x00, 0x04, 0xc3,
- 0xb0, 0x60, 0x00, 0x3c, 0x07, 0xe0, 0x70, 0x4e, 0x3d, 0xcc, 0x38, 0x27,
- 0x1e, 0xe4, 0x0e, 0x13, 0x09, 0x72, 0x1c, 0x26, 0x12, 0xe4, 0x03, 0x0f,
- 0xfe, 0x81, 0x63, 0x66, 0xd0, 0x5f, 0x10, 0x00, 0x04, 0x00, 0x00, 0x2c,
- 0x41, 0x5c, 0x0e, 0x42, 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf,
- 0x0f, 0xff, 0xfc, 0x16, 0x26, 0x49, 0xa0, 0xbe, 0x18, 0x00, 0x81, 0x59,
- 0x0c, 0x00, 0x10, 0x1d, 0xdc, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3,
- 0xdc, 0x81, 0xc0, 0x47, 0x2e, 0xe4, 0x38, 0x08, 0xe5, 0xdc, 0xff, 0xff,
- 0xa0, 0x58, 0xc1, 0xb6, 0x82, 0xf8, 0x80, 0x00, 0x20, 0x00, 0x01, 0x62,
- 0x08, 0x5c, 0x0e, 0x42, 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf,
- 0x0f, 0x88, 0xff, 0xf0, 0x58, 0x81, 0xa1, 0x44, 0x1f, 0x0c, 0x40, 0x00,
- 0x40, 0x04, 0x09, 0x0c, 0x00, 0x08, 0x09, 0x9c, 0x0e, 0x09, 0xc7, 0xb9,
- 0x87, 0x04, 0xe3, 0xdc, 0x81, 0xc2, 0x61, 0x2e, 0x43, 0x84, 0xc2, 0x5c,
- 0xf8, 0xff, 0xf8, 0x2c, 0x89, 0x2a, 0x78, 0x60, 0x00, 0x40, 0x84, 0x82,
- 0xde, 0x07, 0x21, 0x1a, 0xe6, 0x1c, 0x84, 0x6b, 0x99, 0xe1, 0x9e, 0x09,
- 0x9e, 0xba, 0xeb, 0xaf, 0xff, 0xfe, 0x70, 0x42, 0x22, 0x00, 0x1e, 0x68,
- 0x08, 0x4d, 0x66, 0x30, 0xde, 0x66, 0x83, 0x1f, 0xef, 0x50, 0x26, 0xc8,
- 0x25, 0xb2, 0x95, 0x9e, 0x49, 0xff, 0xf7, 0xfa, 0xd8, 0xa2, 0x59, 0x58,
- 0xac, 0x00, 0x1e, 0x8d, 0x63, 0x46, 0xd6, 0xd7, 0xe4, 0xff, 0xe5, 0x00,
- 0x27, 0xd8, 0xe8, 0x6e, 0x05, 0x80, 0x2f, 0x27, 0x91, 0x1a, 0xb8, 0xe6,
- 0xff, 0xc0, 0x27, 0x72, 0x94, 0x78, 0xe1, 0x59, 0xbe, 0x68, 0xc9, 0x37,
- 0x90, 0x91, 0x72, 0x4b, 0xff, 0x7f, 0x11, 0xb9, 0x3d, 0xee, 0xff, 0xf6,
- 0x7f, 0xff, 0xff, 0xf7, 0xef, 0x96, 0xf6, 0x26, 0xdf, 0xfd, 0x83, 0xa0,
- 0x98, 0x9d, 0x61, 0x7a, 0x2c, 0x7f, 0xfd, 0xf9, 0x20, 0x00, 0x13, 0xb2,
- 0x64, 0x06, 0x8d, 0xa7, 0x6b, 0x69, 0xbb, 0x5e, 0x28, 0xe7, 0x09, 0x93,
- 0xff, 0xf7, 0x11, 0xd6, 0x0c, 0xa4, 0x60, 0xef, 0x6f, 0x01, 0x54, 0x69,
- 0x86, 0xcd, 0xaf, 0x8f, 0xc9, 0xff, 0xe8, 0x2e, 0x07, 0x84, 0xb6, 0xf0,
- 0x76, 0x3d, 0x2c, 0x0d, 0x28, 0x56, 0xbb, 0xdf, 0xb5, 0x8f, 0xff, 0x78,
- 0x12, 0x74, 0x68, 0x4e, 0xac, 0xfa, 0xee, 0xc1, 0x88, 0x05, 0x6c, 0x7d,
- 0x95, 0xba, 0x43, 0xf4, 0x46, 0xf5, 0xe1, 0x9c, 0xd1, 0x34, 0x6e, 0xd5,
- 0xe0, 0x51, 0xc3, 0x66, 0x57, 0x37, 0x6b, 0x86, 0x1e, 0x7a, 0xeb, 0xcb,
- 0x5a, 0xab, 0x3f, 0xf0, 0xc2, 0x9c, 0xeb, 0x31, 0xeb, 0x1e, 0x2b, 0xff,
- 0xde, 0xef, 0xf9, 0x69, 0x12, 0x23, 0x76, 0x94, 0x23, 0x5d, 0x71, 0xd1,
- 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07,
- 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8,
- 0x07, 0xc3, 0xe2, 0xe7, 0x80, 0x01, 0x7c, 0x07, 0x00, 0x20, 0x82, 0x94,
- 0x4c, 0xcf, 0x00, 0x02, 0xb8, 0x00, 0x32, 0x68, 0xd0, 0x6a, 0x84, 0x1b,
- 0x9c, 0x69, 0x81, 0xc1, 0xe0, 0x38, 0x00, 0x82, 0x0b, 0x52, 0x5b, 0x1e,
- 0xa0, 0x08, 0x00, 0x4c, 0x73, 0x98, 0x85, 0x30, 0x1b, 0xd6, 0xdf, 0xf8,
- 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8f,
- 0x50, 0x04, 0x00, 0x26, 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc,
- 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7,
- 0xa8, 0x02, 0x00, 0x13, 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe,
- 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3,
- 0xd4, 0x01, 0x00, 0x09, 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff,
- 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
- 0xea, 0x00, 0x80, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
- 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78,
- 0xf5, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff,
- 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc,
- 0x7a, 0x80, 0x20, 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f,
- 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e,
- 0x3b, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff,
- 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc,
- 0x76, 0x00, 0x80, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
- 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78,
- 0xec, 0x01, 0x00, 0x09, 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff,
- 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
- 0xd8, 0x02, 0x00, 0x13, 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe,
- 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3,
- 0xb0, 0x04, 0x00, 0x26, 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc,
- 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7,
- 0xe0, 0x08, 0x00, 0x4c, 0x73, 0x98, 0xc7, 0x30, 0x1b, 0xd6, 0xdf, 0xff,
- 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
- 0xf8, 0x78, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xfe, 0x18,
- 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5,
- 0xe3, 0xf0, 0xf0, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
- 0xff, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b,
- 0x97, 0x8e, 0xc0, 0x10, 0x00, 0x98, 0xe7, 0x31, 0x8e, 0x60, 0x37, 0xad,
- 0xbf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0xe0, 0x70, 0x01, 0x04, 0x17,
- 0x2f, 0x1d, 0x80, 0x20, 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b,
- 0x7f, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
- 0x5e, 0x3b, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6,
- 0xff, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c,
- 0xbc, 0x75, 0x00, 0x16, 0x00, 0x04, 0xc8, 0x42, 0x94, 0x84, 0x29, 0x43,
- 0x0f, 0xe0, 0xbe, 0x07, 0x00, 0x43, 0x09, 0xb9, 0xf0, 0x38, 0x02, 0x18,
- 0x4c, 0xbe, 0x07, 0x00, 0x43, 0x09, 0xb8, 0x07, 0x00, 0x43, 0x09, 0x97,
- 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe1, 0x09, 0x01, 0x0f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff,
- 0xfd, 0x7f, 0xff, 0xe6, 0x13, 0xc0, 0x09, 0x7e, 0x72, 0xd7, 0xaf, 0xfc,
- 0x33, 0x2b, 0xe5, 0x3e, 0x06, 0x81, 0xf8, 0xaf, 0xf2, 0x0c, 0xe3, 0x29,
- 0x8f, 0xff, 0xff, 0xff, 0x94, 0xbc, 0x32, 0xcb, 0x79, 0xbc, 0x0f, 0xb6,
- 0x89, 0x83, 0x93, 0xc1, 0x14, 0x5d, 0x15, 0x71, 0x84, 0x00, 0x6f, 0xb5,
- 0xb5, 0xa8, 0xed, 0x90, 0x4b, 0x0b, 0xd0, 0x56, 0xdb, 0xa4, 0xba, 0x5f,
- 0x48, 0x33, 0x73, 0x80, 0x02, 0x28, 0xe8, 0x51, 0x3f, 0xee, 0xdb, 0x86,
- 0xc3, 0x41, 0x9d, 0x57, 0xdd, 0xe8, 0x47, 0x66, 0x4a, 0xf1, 0x3e, 0x24,
- 0xee, 0x69, 0xb3, 0xfb, 0x4c, 0x3e, 0x13, 0x16, 0x19, 0x7d, 0xdc, 0x00,
- 0x06, 0x76, 0xf9, 0xfc, 0x22, 0xdc, 0x49, 0x7b, 0x6f, 0x97, 0x98, 0x32,
- 0xdf, 0x5a, 0xf2, 0xf2, 0xfe, 0x78, 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0x15,
- 0x22, 0x62, 0x77, 0x55, 0xb3, 0x74, 0x58, 0x0e, 0x21, 0x14, 0x92, 0xc9,
- 0x65, 0xe0, 0x80, 0x1c, 0xfb, 0x07, 0xc8, 0x40, 0xc6, 0xf8, 0x06, 0x2c,
- 0x52, 0xa7, 0xea, 0x0d, 0xd0, 0xfb, 0x37, 0xf3, 0xed, 0xaa, 0x59, 0x3f,
- 0x38, 0x1b, 0xb2, 0xca, 0x17, 0x60, 0xe6, 0x6c, 0xcf, 0xcc, 0x7e, 0x13,
- 0xe2, 0xfd, 0x1f, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0x32, 0x05, 0x70,
- 0x2f, 0xf8, 0x48, 0x80, 0x59, 0x2c, 0xed, 0x71, 0x8e, 0x55, 0x0d, 0x6f,
- 0xef, 0x65, 0x4e, 0xb1, 0x30, 0xdf, 0x69, 0xc7, 0x2e, 0x8f, 0xb5, 0x74,
- 0xcd, 0x6f, 0xfa, 0x93, 0x4f, 0xd5, 0xae, 0x78, 0x33, 0xf9, 0x7c, 0x77,
- 0x31, 0x61, 0xf8, 0xbb, 0x9c, 0xde, 0x3b, 0xd9, 0xbe, 0x04, 0x32, 0x2e,
- 0x38, 0xcc, 0x00, 0x9b, 0xba, 0xbb, 0x77, 0x9f, 0x80, 0x3b, 0x7e, 0x09,
- 0x78, 0x00, 0x0e, 0x01, 0xdb, 0xf0, 0x4b, 0x90, 0x3b, 0x60, 0x42, 0x7b,
- 0xef, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x84, 0x24, 0x57,
- 0xfe, 0x6f, 0xcb, 0x22, 0x97, 0x8c, 0x11, 0x00, 0x42, 0x9b, 0x61, 0x10,
- 0x50, 0x23, 0xd0, 0x1d, 0xb0, 0x21, 0x3c, 0x07, 0x01, 0xdb, 0xc1, 0x2f,
- 0x00, 0xed, 0xd0, 0x21, 0x67, 0x8c, 0xf0, 0x1f, 0xa0, 0x3e, 0x7f, 0xd7,
- 0xbf, 0x18, 0x6a, 0x66, 0x46, 0xdf, 0x3e, 0x2b, 0x00, 0x17, 0x1a, 0xee,
- 0xdc, 0xa3, 0xf7, 0x3f, 0xfb, 0x4f, 0xb8, 0x0f, 0xff, 0xfb, 0x8f, 0x6f,
- 0x04, 0xbc, 0x60, 0x5d, 0xa8, 0xc4, 0x75, 0x34, 0x77, 0xcf, 0x75, 0x7c,
- 0x26, 0xf0, 0x3f, 0x7b, 0x3f, 0x31, 0x7f, 0x58, 0x9e, 0xb8, 0xb6, 0x78,
- 0x0f, 0xfa, 0xdc, 0x1f, 0x85, 0xf0, 0x05, 0xeb, 0x56, 0x7b, 0x2f, 0x28,
- 0xe4, 0xd1, 0xe7, 0xff, 0xef, 0xc6, 0x9b, 0xeb, 0xff, 0xc3, 0xe4, 0xc0,
- 0x2f, 0xa5, 0x01, 0xa8, 0x8b, 0xf8, 0x1f, 0x7f, 0x97, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff,
- 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0x8e, 0xe3,
- 0x2d, 0x1f, 0x2f, 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81,
- 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf,
- 0xf3, 0x1f, 0x00, 0x1d, 0x98, 0x9b, 0xb9, 0x00, 0xab, 0x15, 0xab, 0xc0,
- 0x96, 0x15, 0xf1, 0x17, 0xbb, 0x12, 0xac, 0x46, 0x2b, 0xbf, 0xf3, 0x08,
- 0xc3, 0xb3, 0xfd, 0xff, 0xfb, 0xf7, 0xe1, 0x80, 0xf0, 0x5a, 0x28, 0xbf,
- 0xc6, 0x21, 0xc6, 0x34, 0xc8, 0xe3, 0xc2, 0x59, 0x10, 0xeb, 0x1b, 0xa5,
- 0x26, 0x9e, 0x31, 0xef, 0xfe, 0xdc, 0x00, 0x36, 0xde, 0x85, 0x1b, 0xfe,
- 0xed, 0x98, 0x4c, 0x7a, 0x81, 0x79, 0x26, 0x06, 0x24, 0xf3, 0x28, 0xf5,
- 0x73, 0xd5, 0xc4, 0xfb, 0xee, 0x18, 0x2a, 0x7d, 0xa5, 0xf8, 0x4c, 0x58,
- 0x03, 0x3c, 0xc0, 0x70, 0x5a, 0x8e, 0xe7, 0xbf, 0x4a, 0x80, 0xd2, 0xfb,
- 0xf7, 0xc2, 0x35, 0x67, 0x0d, 0x79, 0x0f, 0xfb, 0xf3, 0xf3, 0xe7, 0x8a,
- 0xff, 0xfe, 0x18, 0xc7, 0xc0, 0x11, 0x1f, 0x54, 0x8b, 0x36, 0x00, 0x23,
- 0x6d, 0xbe, 0x49, 0xcf, 0xff, 0x32, 0xcc, 0xae, 0x94, 0xc0, 0xea, 0x3c,
- 0xc3, 0x47, 0x3c, 0xcb, 0x00, 0x8c, 0xda, 0x69, 0xda, 0xbc, 0xa2, 0x7c,
- 0x13, 0x48, 0xe1, 0xda, 0x36, 0x90, 0xdf, 0x9e, 0x1f, 0x99, 0x4c, 0xd0,
- 0x0d, 0x2f, 0x49, 0xf9, 0xdf, 0xff, 0xfe, 0xff, 0xff, 0x86, 0x2a, 0x82,
- 0x17, 0x1f, 0xf8, 0x49, 0x84, 0xb3, 0x38, 0x48, 0xea, 0x8b, 0xb4, 0x18,
- 0x62, 0xb9, 0xe9, 0x4f, 0xd5, 0xf8, 0xf0, 0x55, 0x34, 0xb0, 0x25, 0xff,
- 0x85, 0x2e, 0x29, 0x1b, 0xfd, 0xab, 0x67, 0x6b, 0x4c, 0xcc, 0x86, 0xfb,
- 0xca, 0x17, 0xff, 0x00, 0x33, 0xd9, 0x63, 0x80, 0x7f, 0xcb, 0x8e, 0x7c,
- 0xd8, 0xed, 0x86, 0x3e, 0x0c, 0x5e, 0xc5, 0xc6, 0x60, 0x02, 0x30, 0xd7,
- 0xd5, 0xdf, 0xdf, 0xe0, 0x03, 0x1e, 0x9e, 0x93, 0x7f, 0xf8, 0x2f, 0xe7,
- 0xc0, 0x0d, 0x8e, 0xde, 0x80, 0x43, 0x8e, 0x1c, 0xc1, 0xeb, 0xae, 0xa4,
- 0x3f, 0x4f, 0xc1, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2,
- 0x05, 0x86, 0xbf, 0x0c, 0x7f, 0xff, 0x68, 0x21, 0x34, 0x00, 0x87, 0xac,
- 0x75, 0x99, 0xcf, 0xcd, 0x07, 0xbb, 0xae, 0xae, 0xff, 0xda, 0x86, 0x2e,
- 0xc5, 0xe5, 0x2f, 0xc2, 0x70, 0x00, 0xc2, 0xf5, 0x5b, 0xeb, 0x54, 0x51,
- 0x2a, 0x86, 0x05, 0x5f, 0xd7, 0xa8, 0xaf, 0xdd, 0x53, 0x77, 0xee, 0xc1,
- 0x83, 0x2f, 0xde, 0xf1, 0x8b, 0xc3, 0x1e, 0xc4, 0x55, 0x61, 0x5d, 0x76,
- 0xb8, 0x00, 0x61, 0x7a, 0xad, 0xf5, 0x80, 0x2d, 0xf5, 0x81, 0xf5, 0x00,
- 0x32, 0xc0, 0x7e, 0xc0, 0x05, 0xb6, 0x5a, 0xec, 0xa3, 0x8f, 0xfd, 0x3a,
- 0x8a, 0xfd, 0xd5, 0x6e, 0xfd, 0xdb, 0xc3, 0xf3, 0x99, 0xcc, 0xdc, 0x7f,
- 0x81, 0xef, 0xaf, 0xbc, 0x68, 0x63, 0xeb, 0xff, 0xc3, 0xe5, 0x80, 0x5f,
- 0x4a, 0x03, 0x51, 0x17, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff,
- 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdd, 0xfe, 0x5c, 0x29,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xe2, 0x11, 0x01, 0x6f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xaf, 0xff, 0xef, 0x0a, 0x76, 0x34, 0xb9, 0x45, 0xe1, 0x1b, 0x0e, 0xf7,
- 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xc4, 0xf2, 0x45, 0x0c,
- 0x00, 0x51, 0x63, 0x9a, 0x6d, 0xa1, 0x1a, 0xde, 0x3e, 0x39, 0xa2, 0x4f,
- 0xe5, 0xc4, 0x4b, 0x90, 0xbb, 0x63, 0x04, 0x7e, 0x1f, 0xe5, 0x12, 0x24,
- 0x1f, 0xf8, 0x1d, 0xb5, 0x03, 0x1e, 0x7a, 0x63, 0x4d, 0xcf, 0x4e, 0x1f,
- 0x7b, 0x15, 0xff, 0xff, 0xff, 0x37, 0xe2, 0x0d, 0x3a, 0xa5, 0xac, 0x9c,
- 0x04, 0x74, 0x7a, 0x7e, 0x75, 0x74, 0x09, 0xe0, 0x5e, 0xef, 0xe3, 0x7f,
- 0x84, 0xce, 0xbe, 0x91, 0xae, 0x45, 0x86, 0xfc, 0x26, 0x54, 0x1c, 0x99,
- 0x8e, 0xdc, 0x09, 0xa2, 0xc1, 0xbf, 0x93, 0x2a, 0x8f, 0x75, 0x67, 0xff,
- 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf6, 0xcd, 0x1b, 0xd3, 0x20, 0xc7,
- 0xa2, 0x85, 0x91, 0xfc, 0xbe, 0x3b, 0xcd, 0xe3, 0xbe, 0x6f, 0xfe, 0x3b,
- 0xbc, 0x2a, 0x5c, 0x10, 0xef, 0x68, 0x0f, 0xf5, 0x39, 0x16, 0x35, 0x51,
- 0xea, 0x8a, 0x6f, 0xfb, 0xee, 0xfc, 0x67, 0x80, 0x85, 0x65, 0x30, 0xe0,
- 0x09, 0x16, 0x28, 0xe6, 0x78, 0x82, 0xf9, 0x1b, 0xf9, 0x7b, 0xf9, 0x1a,
- 0xc7, 0xf9, 0xb7, 0x72, 0x07, 0x12, 0xff, 0x15, 0xc7, 0xb2, 0xe7, 0x68,
- 0xf0, 0x50, 0x4a, 0xd0, 0x10, 0x42, 0x75, 0xef, 0xcf, 0xed, 0xfb, 0xf1,
- 0xb0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88, 0x44, 0x19, 0x64, 0x21,
- 0xa0, 0x0a, 0xdd, 0xc4, 0xd0, 0x75, 0x7e, 0x6d, 0x3e, 0x91, 0x4f, 0x84,
- 0xe0, 0x00, 0xe1, 0xeb, 0xb3, 0x78, 0x3f, 0x4a, 0x22, 0x79, 0x3d, 0xf8,
- 0xc4, 0x0a, 0x01, 0x46, 0x41, 0x1a, 0x04, 0x04, 0x57, 0x23, 0x72, 0x3e,
- 0xff, 0xef, 0xc6, 0xff, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43,
- 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff,
- 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x31, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
- 0x80, 0x11, 0x15, 0x2d, 0xec, 0xb7, 0xf6, 0xfa, 0xe2, 0xbf, 0xff, 0xff,
- 0xf8, 0x60, 0x38, 0x42, 0x8a, 0x2e, 0x2d, 0x28, 0xc3, 0x37, 0x0f, 0x28,
- 0xda, 0x9b, 0xfc, 0x09, 0x38, 0x64, 0x49, 0x80, 0x18, 0xe5, 0x2f, 0x7f,
- 0x1d, 0x0f, 0xf3, 0x83, 0xc9, 0xbb, 0x48, 0x18, 0xe7, 0x9a, 0x84, 0x02,
- 0xc6, 0x70, 0x06, 0xe0, 0xcf, 0xe2, 0xef, 0xbf, 0x4c, 0x39, 0x2f, 0xb1,
- 0x5f, 0xff, 0xc3, 0x1c, 0x7a, 0x83, 0x8c, 0xc1, 0x8a, 0xcd, 0x84, 0xcf,
- 0xb5, 0x83, 0xab, 0x52, 0xde, 0xc3, 0x35, 0x18, 0x9f, 0x53, 0x94, 0x8c,
- 0xf5, 0xf0, 0x1d, 0x6a, 0x2d, 0xdd, 0xaa, 0x46, 0xd3, 0xe4, 0xc3, 0x0d,
- 0x0f, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c, 0x5a, 0x9b, 0x7f, 0xe1, 0x23,
- 0xc0, 0x63, 0xd1, 0x3f, 0xe0, 0x34, 0x63, 0x26, 0xab, 0x50, 0xb7, 0x89,
- 0x13, 0x8f, 0xe7, 0xcb, 0x8e, 0xcd, 0xac, 0x62, 0xf5, 0xe8, 0x1c, 0x4c,
- 0xe0, 0x12, 0x3d, 0xf0, 0x7f, 0xfc, 0x80, 0x10, 0xa8, 0xf9, 0x18, 0x1d,
- 0xfa, 0x83, 0x86, 0x3e, 0x0e, 0x2f, 0xfe, 0x25, 0x70, 0x09, 0xbe, 0x51,
- 0xa3, 0x28, 0x08, 0x7d, 0xef, 0xca, 0xdc, 0x18, 0x27, 0x79, 0x8b, 0x23,
- 0xc7, 0xde, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa3, 0x0d, 0x81,
- 0x09, 0x78, 0x63, 0x4f, 0x74, 0x21, 0x37, 0x22, 0xd8, 0xac, 0x04, 0x6d,
- 0xd1, 0xf8, 0xab, 0xf0, 0x43, 0xbd, 0xa4, 0xc2, 0x7a, 0x83, 0xa3, 0x5f,
- 0x69, 0xdf, 0xd0, 0xd9, 0x28, 0x60, 0x74, 0x3c, 0x8c, 0xd8, 0x07, 0x1b,
- 0x67, 0xfa, 0x07, 0x00, 0x81, 0x94, 0x12, 0xf9, 0x79, 0xb3, 0x3b, 0xd5,
- 0x07, 0xff, 0xca, 0xbb, 0xe6, 0x79, 0x37, 0x8c, 0x0c, 0x53, 0x3a, 0xa7,
- 0xcf, 0x85, 0x16, 0x78, 0xef, 0xf7, 0xf7, 0x8e, 0xf9, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe,
- 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xe3, 0x19, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98,
- 0x4f, 0x0d, 0xe5, 0xb1, 0x32, 0xf0, 0x13, 0xfa, 0xfa, 0xc7, 0xe2, 0x31,
- 0x5f, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x4f, 0x19, 0x14, 0x60, 0x24,
- 0x19, 0xc9, 0x35, 0x46, 0xab, 0x7c, 0x13, 0x36, 0x94, 0x09, 0x1b, 0xdf,
- 0xf4, 0xb5, 0x80, 0xdd, 0x18, 0xdb, 0xb7, 0xff, 0x27, 0x89, 0x88, 0x88,
- 0x96, 0x39, 0x32, 0x17, 0x1a, 0x39, 0xd4, 0x56, 0x6d, 0xd7, 0x82, 0x2d,
- 0xaf, 0x7b, 0x3a, 0x44, 0x1a, 0x8e, 0x44, 0xdd, 0x6c, 0x02, 0x56, 0x51,
- 0x3f, 0x3f, 0x2f, 0xfc, 0xc9, 0x0f, 0xb5, 0xff, 0x09, 0x9c, 0x74, 0x52,
- 0xf4, 0x70, 0x8f, 0x04, 0x67, 0x71, 0x5f, 0xff, 0xfe, 0x6f, 0xc6, 0x86,
- 0x03, 0x66, 0xd9, 0xb8, 0x13, 0x17, 0xa9, 0x9f, 0x82, 0x16, 0xf6, 0xd9,
- 0x62, 0xa2, 0xb9, 0x21, 0xfc, 0x39, 0x09, 0xeb, 0xde, 0xd0, 0xf4, 0x66,
- 0x6c, 0x38, 0x03, 0x10, 0x4d, 0x3b, 0x7e, 0x04, 0xd7, 0xd3, 0x3b, 0x5a,
- 0x9e, 0xe4, 0x22, 0xde, 0x45, 0xb3, 0xa5, 0xa6, 0x31, 0x34, 0xc4, 0x1c,
- 0xf0, 0x0e, 0x6f, 0xd9, 0xe9, 0x85, 0x09, 0x93, 0xff, 0xff, 0xff, 0xfd,
- 0xff, 0xff, 0xf9, 0x9b, 0xb4, 0x8b, 0xfe, 0x12, 0x38, 0x24, 0xab, 0x59,
- 0xdc, 0x03, 0xde, 0x6b, 0xd3, 0xc4, 0xe3, 0x29, 0xf5, 0x5f, 0xc8, 0x20,
- 0x9c, 0x50, 0x89, 0xa7, 0xa2, 0x27, 0xf4, 0xe9, 0xfe, 0xf3, 0xf9, 0x7c,
- 0x77, 0x31, 0x60, 0x07, 0x5a, 0x50, 0xa1, 0xd3, 0xe5, 0x3c, 0x00, 0x09,
- 0xe6, 0xff, 0x11, 0x00, 0x5f, 0x0a, 0xf8, 0x81, 0x89, 0x35, 0xfe, 0x12,
- 0xfd, 0xae, 0x6f, 0xfe, 0x3a, 0x8c, 0x2b, 0xd4, 0x34, 0x15, 0x03, 0x59,
- 0x66, 0xbe, 0x03, 0x24, 0x6a, 0xa4, 0xf5, 0xe3, 0x21, 0xd8, 0xa7, 0x01,
- 0xec, 0x81, 0x26, 0x41, 0xec, 0x81, 0x26, 0x42, 0x0b, 0x58, 0x12, 0xc4,
- 0xcd, 0x60, 0x42, 0x22, 0x58, 0x1f, 0x00, 0xf1, 0xe2, 0x27, 0xe6, 0x1e,
- 0x2f, 0xff, 0xc2, 0x42, 0x02, 0x5f, 0xb5, 0xa8, 0x68, 0xf2, 0xa0, 0x6b,
- 0x22, 0x3f, 0x95, 0x75, 0xf7, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0x8c, 0x64, 0x0a, 0x41, 0x49, 0x00, 0x02, 0x2b, 0x77, 0x77, 0x5d,
- 0xf0, 0x44, 0xc3, 0x69, 0xbf, 0xff, 0xcb, 0xef, 0xc6, 0x7f, 0xdf, 0xfd,
- 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf,
- 0xff, 0x37, 0xfd, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60,
- 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
- 0xd7, 0xe2, 0xbf, 0xff, 0xff, 0xd7, 0xac, 0x52, 0x2a, 0x14, 0x80, 0x71,
- 0x97, 0x94, 0x3c, 0x0c, 0x88, 0x4c, 0x57, 0x18, 0x75, 0x51, 0x85, 0x68,
- 0xad, 0x9c, 0x36, 0xf9, 0x0c, 0x20, 0x7e, 0xdf, 0xe1, 0x31, 0x61, 0x20,
- 0xe5, 0x38, 0x71, 0x80, 0x6b, 0x41, 0x75, 0x7d, 0x3c, 0x09, 0x5d, 0x9e,
- 0xe2, 0xbf, 0xfd, 0x7c, 0x59, 0xb1, 0xa3, 0x70, 0x20, 0xd4, 0x7b, 0x74,
- 0x14, 0x13, 0x71, 0xed, 0xd4, 0x50, 0xff, 0xff, 0xf7, 0xff, 0xeb, 0xd0,
- 0x88, 0x82, 0x8b, 0x80, 0x4e, 0x81, 0x41, 0xf8, 0x87, 0x3a, 0xeb, 0x43,
- 0x3e, 0xe3, 0xc3, 0x30, 0x6a, 0x8a, 0x12, 0xea, 0x86, 0xf5, 0xc0, 0xcd,
- 0xbf, 0xe5, 0xe7, 0xcb, 0x8e, 0x5e, 0xbd, 0x72, 0x6b, 0x18, 0x18, 0xf8,
- 0x47, 0xe9, 0x08, 0x51, 0xf0, 0x32, 0x54, 0xb6, 0x61, 0xf9, 0x39, 0x86,
- 0x30, 0x0d, 0xdc, 0x03, 0xf8, 0x49, 0xf8, 0x44, 0xdb, 0x5f, 0x78, 0x26,
- 0xc1, 0x00, 0xdc, 0x8b, 0xc0, 0x91, 0xd5, 0x3c, 0x22, 0x65, 0x2f, 0xff,
- 0xf8, 0x26, 0xa0, 0x01, 0x17, 0x9d, 0xdc, 0xfb, 0xfc, 0x04, 0x6d, 0x64,
- 0x1d, 0x7f, 0xfd, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa4,
- 0x15, 0x81, 0x88, 0x13, 0x48, 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x82,
- 0x26, 0x36, 0x9b, 0xff, 0xf2, 0xef, 0x19, 0xf7, 0xf7, 0x8d, 0xff, 0xe4,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43,
- 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd, 0x7f, 0x9b, 0xea, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
- 0xff, 0xef, 0x11, 0x16, 0x27, 0x08, 0xd8, 0x75, 0xff, 0xd4, 0x26, 0x67,
- 0xfa, 0x3e, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x31, 0x47, 0x03,
- 0x6e, 0x35, 0x60, 0x1f, 0xa0, 0x1b, 0x2a, 0x19, 0x74, 0xb9, 0x8c, 0x0a,
- 0x63, 0x27, 0x8c, 0xaa, 0x36, 0x48, 0xcd, 0xb5, 0xab, 0xfc, 0x55, 0xc8,
- 0x08, 0xe9, 0xe0, 0x0e, 0x09, 0xca, 0x44, 0xb4, 0xe7, 0xee, 0xdf, 0x81,
- 0xb4, 0xdb, 0x10, 0x07, 0x48, 0xba, 0x1b, 0xf5, 0x1f, 0x04, 0x2e, 0x9f,
- 0xf4, 0x3d, 0x84, 0xb1, 0x62, 0x02, 0xaa, 0x67, 0x56, 0x20, 0x14, 0x09,
- 0x17, 0xe9, 0x3e, 0x66, 0x1d, 0xd3, 0x0c, 0xa4, 0x20, 0x6b, 0xe5, 0xe1,
- 0x3c, 0x8b, 0x12, 0x32, 0x22, 0xed, 0x78, 0xaf, 0xff, 0xff, 0xe6, 0x10,
- 0xe1, 0xa8, 0x8a, 0x94, 0x20, 0x1e, 0x6c, 0x3a, 0xd9, 0xf4, 0x06, 0xd9,
- 0x78, 0x02, 0xde, 0x11, 0x6b, 0x4c, 0xea, 0xe5, 0xc0, 0x6b, 0xd3, 0x69,
- 0x07, 0x7b, 0xe6, 0x94, 0xcb, 0xd7, 0x6d, 0x7a, 0xfd, 0xbe, 0x1c, 0xf7,
- 0x51, 0x93, 0xff, 0xc9, 0x30, 0xc9, 0x9f, 0xff, 0xff, 0xff, 0xef, 0xff,
- 0xff, 0xf8, 0x82, 0x8e, 0x0d, 0x3d, 0xb8, 0xc8, 0x27, 0x5e, 0xaa, 0xc1,
- 0xbf, 0x98, 0x88, 0x03, 0xc3, 0xfc, 0x24, 0x45, 0x79, 0x8c, 0x0e, 0xfa,
- 0x85, 0xf4, 0x10, 0xf1, 0xb2, 0x1b, 0xf8, 0xba, 0xc8, 0x51, 0xd2, 0x6e,
- 0x37, 0x1f, 0xf3, 0x9a, 0x59, 0x54, 0x1a, 0xda, 0xf6, 0x58, 0x04, 0x8c,
- 0xeb, 0x0f, 0xc3, 0xa5, 0x80, 0x2d, 0x88, 0x0f, 0xc2, 0x9e, 0xf8, 0x1f,
- 0xeb, 0xf2, 0x6d, 0x70, 0x1d, 0x27, 0x84, 0xac, 0x15, 0x67, 0xcf, 0xc0,
- 0x4f, 0xba, 0x3b, 0xc4, 0x5f, 0x9b, 0xfc, 0xe6, 0x7f, 0x04, 0x0f, 0xa0,
- 0x70, 0x44, 0xd2, 0xde, 0x19, 0x1b, 0x60, 0x7e, 0x16, 0x4f, 0x1c, 0x6f,
- 0xb4, 0x3f, 0x94, 0x28, 0xa3, 0xa2, 0x76, 0x21, 0x7a, 0x4a, 0xb4, 0xdb,
- 0x6a, 0xf1, 0x31, 0x33, 0x34, 0xf5, 0x89, 0xff, 0xc3, 0xe2, 0x00, 0x1f,
- 0xae, 0x60, 0x4b, 0xb7, 0xc0, 0x1f, 0xa5, 0x67, 0xb1, 0x37, 0xf9, 0x9c,
- 0xf5, 0xc2, 0xa8, 0x09, 0x9f, 0xc0, 0xd7, 0x79, 0xfe, 0x04, 0x4d, 0xe0,
- 0x7e, 0xf6, 0x77, 0x10, 0x60, 0xbb, 0xf1, 0xde, 0xcc, 0x3c, 0xc3, 0xff,
- 0x87, 0xcb, 0x81, 0x3a, 0x4c, 0x48, 0x6e, 0xbf, 0x7e, 0x36, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0x90, 0x84, 0x11, 0x7f, 0xcb, 0xef, 0xc6, 0x7f,
- 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47, 0x60, 0x39, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
- 0x8e, 0x34, 0x84, 0x8f, 0x4e, 0x56, 0x86, 0x62, 0x62, 0xbf, 0xff, 0xff,
- 0xdf, 0xc5, 0x04, 0x8d, 0x38, 0xb7, 0x08, 0x00, 0xc8, 0x99, 0x98, 0x2e,
- 0x0c, 0x93, 0x75, 0x80, 0xbd, 0x43, 0x64, 0xc4, 0xa3, 0xfa, 0xd3, 0xbf,
- 0x86, 0x30, 0xf8, 0x5f, 0xf0, 0x40, 0x2c, 0xcd, 0xfe, 0x7f, 0x5d, 0xf1,
- 0x54, 0xae, 0xa6, 0xf1, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0xd4, 0x3f, 0xb2,
- 0x70, 0x26, 0xbe, 0x99, 0xf4, 0x38, 0x65, 0xd6, 0x98, 0xd4, 0x85, 0x34,
- 0xbd, 0xf8, 0xfc, 0xa4, 0xcf, 0x9f, 0xff, 0xfe, 0xff, 0xfd, 0xfb, 0x13,
- 0x11, 0x80, 0x1d, 0x58, 0xb4, 0xdd, 0x41, 0xf8, 0xd2, 0x8f, 0x68, 0xf3,
- 0xfb, 0x0e, 0x5f, 0xe7, 0x59, 0x5e, 0x0b, 0x93, 0x3e, 0x5d, 0x72, 0x63,
- 0x83, 0x1f, 0x68, 0x7f, 0x28, 0x51, 0xf0, 0xcc, 0x99, 0xe3, 0xbc, 0x31,
- 0x58, 0x2a, 0xd7, 0xfe, 0x12, 0x65, 0xb1, 0xb1, 0x85, 0xf0, 0x05, 0xe1,
- 0x8c, 0x4f, 0xc4, 0x75, 0x50, 0xc1, 0x3a, 0xc2, 0x06, 0x80, 0x50, 0x90,
- 0x26, 0x17, 0x0c, 0x7c, 0x3d, 0x57, 0xe0, 0x81, 0x6c, 0x04, 0x60, 0x6b,
- 0xd6, 0x33, 0x61, 0x88, 0xea, 0xff, 0xfc, 0x3e, 0x53, 0x83, 0x42, 0x7c,
- 0x54, 0xcf, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5, 0x1d,
- 0x81, 0x8b, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1b, 0xff, 0xc9, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xff, 0xff,
- 0xf3, 0x7f, 0x97, 0xff, 0xff, 0xfa, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xe5, 0x29, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09,
- 0xd9, 0x04, 0xac, 0x2f, 0x45, 0xe1, 0x59, 0xbc, 0x00, 0xae, 0x6b, 0x77,
- 0xab, 0xf9, 0x3c, 0x4c, 0x57, 0xff, 0xfe, 0x60, 0x86, 0x1d, 0x9f, 0xef,
- 0xff, 0x94, 0xbc, 0x3d, 0x0d, 0xcb, 0xff, 0xf1, 0x48, 0x8d, 0xc8, 0x50,
- 0xd3, 0xdd, 0xc0, 0x6f, 0xe9, 0xad, 0x01, 0xf7, 0x0b, 0xe6, 0x30, 0x6b,
- 0x58, 0x1e, 0x31, 0xc2, 0xc8, 0x02, 0xac, 0xbd, 0x19, 0xd9, 0xff, 0xc6,
- 0xe9, 0xda, 0x40, 0x57, 0xcf, 0xe1, 0x1f, 0x0f, 0xe6, 0x8f, 0x01, 0xc8,
- 0x85, 0xa6, 0x3c, 0x00, 0xe5, 0x36, 0xf8, 0x87, 0x37, 0x7a, 0x3a, 0xa3,
- 0x23, 0x47, 0xbc, 0xe1, 0xd1, 0xf8, 0xb0, 0xff, 0x9d, 0xff, 0x1e, 0x42,
- 0x11, 0x32, 0xc7, 0x40, 0xc2, 0x2b, 0x8b, 0x96, 0x0e, 0x42, 0x11, 0x12,
- 0xd4, 0x02, 0xc2, 0x02, 0xc6, 0x24, 0x5f, 0xc1, 0xac, 0x66, 0x2a, 0x72,
- 0x1d, 0x88, 0x6e, 0xd7, 0xca, 0x13, 0xc0, 0x84, 0x21, 0xd1, 0x02, 0x37,
- 0x9f, 0xf1, 0x5f, 0xff, 0xff, 0xc6, 0x08, 0xe1, 0x23, 0xbf, 0x67, 0x0e,
- 0xfb, 0x40, 0x12, 0xbd, 0xd8, 0x7e, 0xf7, 0xa7, 0x02, 0x3f, 0xfc, 0xfe,
- 0x2f, 0x24, 0x53, 0xdf, 0x01, 0xe3, 0x6c, 0x32, 0xc9, 0xa2, 0xcc, 0xcd,
- 0xfa, 0xec, 0xd0, 0xf6, 0x5f, 0xe0, 0x01, 0x9b, 0x6d, 0xf2, 0x9b, 0x9c,
- 0x6c, 0x9a, 0x34, 0xab, 0xcf, 0xe0, 0x06, 0x64, 0x8e, 0x5c, 0x87, 0xd7,
- 0x60, 0xad, 0xb8, 0x71, 0x30, 0xe9, 0x12, 0x63, 0x9d, 0x46, 0x03, 0x72,
- 0x26, 0x7f, 0x20, 0x88, 0xdb, 0x37, 0xff, 0xe4, 0x50, 0x42, 0x68, 0x03,
- 0x23, 0x0a, 0x3b, 0xa0, 0xf8, 0x01, 0xc8, 0x3f, 0x0e, 0xc2, 0x03, 0x37,
- 0xef, 0x79, 0x45, 0x29, 0x64, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7, 0xbf,
- 0x20, 0x03, 0xef, 0x0d, 0xa6, 0x60, 0x3f, 0x8a, 0x77, 0x48, 0x3b, 0xcd,
- 0x34, 0x03, 0x18, 0x35, 0xcc, 0x0b, 0x21, 0xe0, 0x3f, 0x09, 0xff, 0xf0,
- 0x8f, 0x16, 0xfa, 0x40, 0x74, 0x6b, 0xb8, 0xf9, 0xe9, 0xf5, 0xff, 0x7f,
- 0xff, 0xff, 0xc4, 0x31, 0xa1, 0x05, 0xbe, 0x60, 0xe5, 0x36, 0xfa, 0xa0,
- 0x02, 0x39, 0xa3, 0xe1, 0xff, 0x84, 0x88, 0x02, 0xe9, 0xa0, 0x31, 0x1b,
- 0x15, 0xa8, 0x63, 0x3c, 0x01, 0x14, 0xd0, 0x18, 0x8d, 0x75, 0x6a, 0x00,
- 0x3b, 0x4d, 0x01, 0x88, 0xd7, 0x06, 0xda, 0xbc, 0x39, 0xcd, 0x2b, 0x48,
- 0xa4, 0x4d, 0xf8, 0x92, 0xc3, 0x90, 0x7e, 0x18, 0x41, 0xfe, 0x03, 0xfc,
- 0x76, 0xe7, 0xff, 0x80, 0x28, 0xf5, 0x3c, 0xf9, 0x20, 0xeb, 0xbb, 0xf9,
- 0xfc, 0x29, 0x28, 0x00, 0x8a, 0xdd, 0xdd, 0xdf, 0xff, 0xdf, 0x84, 0xbd,
- 0x93, 0x13, 0xa1, 0x7d, 0x5e, 0xff, 0xfc, 0xc1, 0x4f, 0xa6, 0x9f, 0x09,
- 0x9b, 0xe0, 0x14, 0x76, 0xf0, 0x3e, 0xa0, 0x78, 0x5e, 0x7d, 0x5c, 0x7f,
- 0xf1, 0xfe, 0x00, 0x40, 0xc9, 0xbb, 0x97, 0xe7, 0x9f, 0x8e, 0x5f, 0x47,
- 0x8b, 0xcd, 0x48, 0xe9, 0xf4, 0xa6, 0x28, 0x65, 0x1f, 0x60, 0xb6, 0x1f,
- 0xc0, 0x8d, 0xd4, 0x7e, 0xa5, 0xe5, 0x5a, 0xf8, 0xf9, 0xe3, 0xcc, 0x8c,
- 0xe7, 0x53, 0xde, 0xfc, 0x77, 0x14, 0x7b, 0x1c, 0xcc, 0x41, 0x47, 0x01,
- 0x06, 0x43, 0x78, 0x0b, 0x40, 0x61, 0x4b, 0x00, 0x08, 0xad, 0xdd, 0xdd,
- 0x77, 0xf8, 0x01, 0x21, 0xda, 0xa5, 0x7c, 0x9b, 0xd5, 0xef, 0xff, 0x84,
- 0x20, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x94, 0xa4, 0x15, 0x7f, 0x89,
- 0x36, 0x11, 0x71, 0xf5, 0xd8, 0x49, 0xfa, 0x42, 0xfb, 0x3f, 0xc0, 0x4c,
- 0xd5, 0x81, 0xff, 0xee, 0xcb, 0xef, 0xc6, 0x71, 0x0b, 0x4d, 0x81, 0xdf,
- 0x3f, 0x82, 0x3f, 0x81, 0xed, 0x69, 0xb3, 0x3b, 0xd7, 0x95, 0x99, 0xd8,
- 0xd8, 0x44, 0x3f, 0xfb, 0xf1, 0xbf, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff,
- 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x89, 0x60, 0x29, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xd1, 0x65, 0x13, 0x82,
- 0x3d, 0x8e, 0x2e, 0xb8, 0xaf, 0xfb, 0xff, 0xff, 0x7e, 0xb1, 0x42, 0x00,
- 0x0c, 0x8a, 0x97, 0x37, 0x9f, 0xeb, 0x2b, 0x2f, 0xc0, 0x85, 0x1d, 0xa3,
- 0x48, 0x7b, 0xff, 0x40, 0x0c, 0xe7, 0xc5, 0x2b, 0xaf, 0xf7, 0x95, 0x38,
- 0xfd, 0x20, 0xa7, 0x4d, 0xdc, 0xda, 0x90, 0x61, 0x8c, 0x3f, 0xbf, 0xe1,
- 0x33, 0x8c, 0x40, 0x12, 0x08, 0x8c, 0x3a, 0x22, 0x97, 0xbb, 0xdd, 0xef,
- 0x56, 0x03, 0x1e, 0xe1, 0x56, 0xfd, 0x51, 0x5f, 0xfe, 0xfd, 0x63, 0x3c,
- 0x08, 0x9b, 0xdc, 0x77, 0x93, 0xeb, 0x80, 0x36, 0x63, 0x42, 0x74, 0x1d,
- 0x4c, 0xdf, 0xbc, 0xcd, 0x1e, 0x0e, 0x31, 0x4b, 0x2a, 0xcf, 0x14, 0x4b,
- 0xd8, 0x10, 0xfe, 0x58, 0xc1, 0xc0, 0x93, 0x37, 0x9f, 0x49, 0x6d, 0x6d,
- 0x1c, 0x31, 0xff, 0xf9, 0x14, 0x10, 0x96, 0x00, 0x2b, 0x4d, 0xda, 0x23,
- 0x32, 0x3f, 0x7c, 0xcc, 0x03, 0xf5, 0x94, 0x9f, 0x00, 0x55, 0xa6, 0x83,
- 0x39, 0xf3, 0xc7, 0xff, 0xfb, 0xff, 0xf7, 0xe4, 0xe0, 0x7c, 0x10, 0x80,
- 0x81, 0xe9, 0x78, 0xee, 0x7e, 0x68, 0x8e, 0x33, 0xc0, 0xcb, 0xee, 0xec,
- 0xfe, 0x2e, 0x00, 0xd6, 0x90, 0x96, 0xf6, 0x9b, 0x03, 0x37, 0xef, 0x19,
- 0x11, 0x19, 0x31, 0xc6, 0xe4, 0x49, 0x3f, 0x3c, 0xe1, 0x89, 0x5a, 0x19,
- 0x13, 0x7e, 0x13, 0x2d, 0x14, 0x20, 0x70, 0x7e, 0x18, 0x11, 0x7c, 0xf0,
- 0xbf, 0xc3, 0x00, 0x93, 0xd3, 0x0c, 0xc0, 0x0e, 0x09, 0xfe, 0x02, 0x2d,
- 0xfa, 0xff, 0x03, 0xc0, 0x30, 0x8f, 0x87, 0x76, 0xf8, 0x03, 0xaf, 0x6e,
- 0x3d, 0x2a, 0xef, 0x1d, 0xa0, 0xd4, 0x4e, 0x18, 0x49, 0xa4, 0x39, 0xe1,
- 0x3c, 0x58, 0xc0, 0x44, 0xf8, 0xff, 0x07, 0xe1, 0xb8, 0xb7, 0x7f, 0x81,
- 0x3f, 0xe3, 0xd2, 0xf7, 0x8e, 0x7d, 0x92, 0x23, 0x20, 0x9f, 0x01, 0x06,
- 0xa8, 0x0f, 0xf1, 0x7d, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xa6, 0x25, 0x82, 0x2e, 0xf9, 0x77, 0x8c, 0x7f, 0xbf, 0xbc, 0x6f, 0xf9,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10,
- 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xe6, 0x31, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xb2, 0xfe,
- 0x27, 0xb2, 0x44, 0x4c, 0x27, 0x00, 0x8f, 0x23, 0xd2, 0x68, 0xf1, 0x7f,
- 0xff, 0xff, 0xff, 0xf1, 0x42, 0x20, 0x47, 0xed, 0x26, 0xfc, 0x22, 0xe4,
- 0x29, 0x05, 0xbc, 0x51, 0x09, 0x8c, 0xf0, 0xe0, 0x40, 0x08, 0xa7, 0xd3,
- 0x0d, 0x70, 0xaa, 0xee, 0xf6, 0xe6, 0xb5, 0xdb, 0x91, 0x31, 0xcf, 0xc8,
- 0xe3, 0xda, 0xe7, 0x90, 0x5b, 0xc4, 0x0c, 0xa0, 0xf7, 0xfe, 0x4f, 0xe5,
- 0x11, 0x88, 0x14, 0xc0, 0x2f, 0xb6, 0x83, 0xcd, 0x3d, 0xa9, 0x2b, 0x0f,
- 0x48, 0x68, 0x98, 0x3e, 0x84, 0x89, 0x81, 0xb6, 0xa2, 0x6b, 0x29, 0xc9,
- 0x23, 0x01, 0xf2, 0x70, 0xf7, 0x4c, 0x93, 0xca, 0x34, 0x40, 0x91, 0x01,
- 0x01, 0x02, 0x06, 0x11, 0x17, 0x7e, 0x2e, 0x39, 0xa7, 0x7d, 0x44, 0x7a,
- 0x0f, 0x0a, 0x5f, 0x44, 0xb0, 0x36, 0xec, 0xb5, 0x69, 0x8c, 0x5f, 0x4f,
- 0x9b, 0x5c, 0x6f, 0xd2, 0x30, 0x35, 0x4c, 0xf2, 0xad, 0xe3, 0xbd, 0x4d,
- 0x3d, 0xf6, 0xe6, 0x9f, 0xa6, 0xe6, 0xfa, 0x89, 0x13, 0x28, 0xb0, 0x07,
- 0xde, 0xdc, 0xbf, 0x1f, 0x5f, 0xff, 0xc6, 0x16, 0xfa, 0xaf, 0x3f, 0x78,
- 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0xae, 0xd7, 0x75, 0x58, 0xc3, 0x60, 0x3a,
- 0x43, 0x49, 0x6e, 0x08, 0x40, 0x1a, 0x20, 0x11, 0x60, 0x23, 0x36, 0x9f,
- 0xa8, 0x03, 0xa5, 0xe7, 0xe5, 0x7a, 0x8c, 0xd6, 0x5a, 0xda, 0x93, 0xfd,
- 0xe0, 0xe4, 0x30, 0x43, 0xe1, 0x3e, 0x1b, 0x0b, 0x98, 0x5c, 0x6e, 0xf0,
- 0xff, 0x84, 0x90, 0xc9, 0x62, 0xfc, 0xf0, 0x60, 0x2c, 0x83, 0xcc, 0x2b,
- 0x15, 0x16, 0x1f, 0x6f, 0x13, 0xc0, 0x21, 0x37, 0x68, 0xbf, 0x5f, 0x16,
- 0xee, 0x51, 0xb9, 0x9e, 0x9e, 0x95, 0x82, 0x03, 0xfc, 0x23, 0x39, 0xe1,
- 0x7f, 0xff, 0xff, 0xe6, 0x08, 0x2e, 0xe3, 0xff, 0x09, 0x23, 0x2f, 0xd2,
- 0x1a, 0x64, 0xf7, 0x99, 0x15, 0x3e, 0x93, 0xe6, 0x5e, 0x2a, 0x8b, 0xb3,
- 0xd4, 0x53, 0xda, 0x3d, 0x9f, 0xe2, 0x23, 0x73, 0xc4, 0x68, 0x08, 0x30,
- 0x84, 0x4e, 0x86, 0x2e, 0xd4, 0x27, 0x2a, 0xda, 0xd6, 0x7c, 0x0c, 0x49,
- 0xa6, 0x6b, 0xc7, 0x7b, 0x83, 0x18, 0xac, 0x01, 0xdd, 0xe6, 0x30, 0xf6,
- 0xaf, 0x25, 0xf4, 0x22, 0x3e, 0x62, 0x41, 0xd5, 0x6d, 0x2e, 0xd2, 0xd6,
- 0x60, 0xc2, 0xdb, 0x20, 0x4c, 0x83, 0x6c, 0x34, 0x90, 0xfb, 0xd7, 0xaf,
- 0x19, 0xed, 0x7c, 0x21, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4,
- 0x0a, 0x5e, 0x27, 0xc6, 0x7f, 0xdf, 0xfc, 0x23, 0xff, 0x2f, 0x84, 0xfc,
- 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff,
- 0xcb, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xa9, 0xcb, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0xc5, 0xe1, 0xad, 0x4e, 0xfd, 0x09,
- 0xf3, 0x70, 0x9b, 0xee, 0xd3, 0x21, 0x56, 0x95, 0x1c, 0xa5, 0x2e, 0x6b,
- 0x97, 0x15, 0xff, 0xff, 0xbc, 0x82, 0x2a, 0x12, 0x7d, 0xe2, 0x68, 0xf0,
- 0x4f, 0x8e, 0x83, 0xbb, 0x46, 0xdc, 0x76, 0xb4, 0x3e, 0xd4, 0xbe, 0xf1,
- 0x4d, 0x01, 0x27, 0x23, 0x27, 0x82, 0x81, 0xae, 0xb8, 0x95, 0x0c, 0x1a,
- 0x05, 0x9e, 0x0c, 0xce, 0x48, 0xa6, 0x36, 0x40, 0x13, 0x36, 0xda, 0x03,
- 0xcb, 0xec, 0x0c, 0xa6, 0x00, 0xa0, 0xea, 0xc3, 0xd2, 0x38, 0x6d, 0xc8,
- 0x86, 0xe9, 0xe4, 0x47, 0x80, 0x2d, 0x4b, 0xdf, 0x6a, 0x15, 0x8e, 0xef,
- 0x25, 0xc0, 0x8e, 0xbd, 0x9a, 0x95, 0xa9, 0x54, 0xb4, 0x30, 0x90, 0xfb,
- 0x5f, 0xf0, 0x99, 0xe6, 0x0d, 0x29, 0xc6, 0xbe, 0x9c, 0xb6, 0x42, 0xa9,
- 0xfc, 0x57, 0xff, 0xf0, 0xc6, 0x3e, 0x00, 0x88, 0x3a, 0xa4, 0x59, 0x30,
- 0x11, 0xb5, 0xdd, 0xf4, 0x21, 0x9b, 0x51, 0xec, 0xe4, 0xc2, 0xa3, 0x20,
- 0x91, 0xf7, 0x50, 0x89, 0xb8, 0x3d, 0x3b, 0x72, 0x33, 0x63, 0xa9, 0xbf,
- 0x3e, 0x57, 0x60, 0x0b, 0xe8, 0x67, 0xe1, 0x8f, 0xde, 0xff, 0xe2, 0x4f,
- 0xc0, 0xb0, 0x34, 0x82, 0x84, 0x12, 0x00, 0xd4, 0x90, 0x8b, 0xc6, 0xc1,
- 0x0b, 0xfe, 0x18, 0x71, 0xdd, 0xff, 0xf8, 0x79, 0x92, 0x25, 0x92, 0x56,
- 0xed, 0xfa, 0xeb, 0x7f, 0xff, 0xc3, 0x15, 0x41, 0x06, 0x72, 0xff, 0x84,
- 0x8c, 0x35, 0x52, 0x6d, 0x3f, 0x3e, 0xf6, 0xac, 0x38, 0xb4, 0xd4, 0x4c,
- 0x63, 0x21, 0xf3, 0x34, 0x63, 0xab, 0x75, 0x37, 0xba, 0x93, 0xfe, 0x01,
- 0xcf, 0xc3, 0x51, 0x78, 0x6b, 0xd7, 0x58, 0xe5, 0x56, 0x19, 0xf5, 0xd6,
- 0x3b, 0x86, 0x3f, 0x87, 0xfc, 0x28, 0x22, 0x01, 0x57, 0x46, 0x11, 0x76,
- 0x78, 0x3e, 0x02, 0x3f, 0x71, 0xb5, 0x34, 0x31, 0x14, 0x9d, 0xb0, 0x49,
- 0xd9, 0x2c, 0x91, 0x92, 0x94, 0x9b, 0xe7, 0x1b, 0x61, 0xf5, 0xb6, 0x3d,
- 0x63, 0x1a, 0xf6, 0xb0, 0xc4, 0x52, 0x44, 0x1a, 0x1d, 0x3d, 0xc3, 0x36,
- 0xdf, 0x5b, 0x75, 0x42, 0x38, 0x15, 0x21, 0x96, 0xed, 0x28, 0xb5, 0x86,
- 0x23, 0xac, 0xd0, 0xa7, 0x0b, 0x35, 0xb0, 0x48, 0xf6, 0x1e, 0x46, 0x78,
- 0x6b, 0x6b, 0x0b, 0x46, 0x42, 0xf6, 0xd7, 0xdf, 0x52, 0x34, 0x82, 0x98,
- 0xa2, 0x80, 0xef, 0x5e, 0xf8, 0x63, 0x48, 0x9c, 0xe5, 0x38, 0x4a, 0xe0,
- 0x6c, 0xd4, 0xb1, 0xa3, 0xe3, 0xd0, 0x36, 0x5a, 0xe1, 0x5b, 0x5d, 0x07,
- 0x80, 0xc6, 0x8e, 0x1d, 0x7d, 0x85, 0x29, 0x69, 0x96, 0x84, 0x63, 0x23,
- 0xd3, 0x43, 0x18, 0x53, 0xd2, 0x4d, 0x3d, 0xb8, 0x30, 0x04, 0x88, 0x3c,
- 0x81, 0xa0, 0xef, 0xe1, 0xbd, 0x2f, 0x1a, 0x98, 0x24, 0xce, 0x56, 0x90,
- 0xf1, 0xd0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x81, 0x0b,
- 0xc8, 0x68, 0x08, 0xd4, 0x5a, 0x0e, 0x7f, 0x11, 0x32, 0x42, 0x49, 0x61,
- 0xf2, 0x12, 0x4b, 0x7d, 0x8d, 0x4f, 0xfe, 0xd8, 0x11, 0xee, 0x98, 0x3e,
- 0x42, 0x49, 0x6f, 0xf1, 0x04, 0x06, 0x00, 0x99, 0x01, 0x1b, 0xd8, 0x09,
- 0x51, 0xca, 0x23, 0xf0, 0xb0, 0x04, 0xd4, 0x52, 0x4a, 0x5b, 0xc8, 0xcd,
- 0x32, 0xaf, 0x10, 0x58, 0x09, 0x45, 0x2d, 0x3f, 0x3e, 0xb8, 0xd6, 0x3f,
- 0x93, 0x19, 0xf7, 0xf6, 0x18, 0xfa, 0xb7, 0xd8, 0x00, 0x6c, 0x50, 0xa3,
- 0x80, 0xf2, 0x12, 0x26, 0x60, 0x06, 0x36, 0x96, 0x63, 0x67, 0xda, 0x18,
- 0xed, 0xca, 0x0d, 0x94, 0xd2, 0x13, 0xd3, 0x03, 0x4a, 0xa7, 0xa1, 0x1c,
- 0xf5, 0xc0, 0xc9, 0x8f, 0x1c, 0x07, 0x90, 0x91, 0x33, 0x0c, 0x58, 0x7e,
- 0xdb, 0x1d, 0x50, 0xb4, 0x83, 0x90, 0xe9, 0x0d, 0x33, 0x0c, 0x61, 0xab,
- 0x7d, 0x82, 0x31, 0x90, 0x03, 0x1b, 0x4b, 0x31, 0xb3, 0xed, 0x0c, 0x76,
- 0xe5, 0x06, 0xca, 0x69, 0x09, 0xe9, 0x81, 0xa5, 0x53, 0xd0, 0x8e, 0x7a,
- 0xe0, 0x64, 0xc0, 0x43, 0xee, 0xb6, 0xf2, 0xf2, 0x98, 0x62, 0xc3, 0xf6,
- 0xd8, 0xea, 0x85, 0xa4, 0x1c, 0x87, 0x48, 0x69, 0x98, 0x63, 0x0d, 0x5b,
- 0xec, 0x11, 0x8c, 0x80, 0x18, 0xda, 0x59, 0x8d, 0x9f, 0x68, 0x63, 0xb7,
- 0x28, 0x36, 0x53, 0x48, 0x4f, 0x4c, 0x0d, 0x2a, 0x9e, 0x84, 0x73, 0xd7,
- 0x03, 0x26, 0x02, 0x1f, 0x75, 0xb7, 0x97, 0x94, 0xc3, 0x16, 0x1f, 0xb6,
- 0xc7, 0x54, 0x2d, 0x20, 0xe4, 0x3a, 0x43, 0x4c, 0xc3, 0x18, 0x6a, 0xc5,
- 0xcd, 0xa0, 0x91, 0x90, 0x08, 0xa9, 0xb0, 0xc8, 0x3a, 0x18, 0xdf, 0xf9,
- 0x4e, 0xfe, 0x20, 0x0a, 0x4e, 0x83, 0x88, 0xd8, 0x00, 0xc9, 0x6d, 0xd8,
- 0x08, 0x7d, 0xd6, 0xde, 0x5e, 0x52, 0x04, 0xdb, 0xed, 0xf0, 0xeb, 0x70,
- 0xfd, 0xcf, 0x85, 0xd2, 0x20, 0x79, 0x00, 0x26, 0x21, 0xce, 0x1e, 0xe9,
- 0x0c, 0x61, 0xab, 0x16, 0x96, 0xd2, 0x32, 0x01, 0x15, 0x36, 0x19, 0x07,
- 0x43, 0x1b, 0xff, 0x29, 0xdf, 0xc4, 0x01, 0x49, 0xd0, 0x71, 0x1b, 0x00,
- 0x19, 0x2d, 0xbb, 0x71, 0x75, 0x2c, 0xf4, 0x11, 0xeb, 0xf6, 0xf8, 0x75,
- 0xb8, 0x7e, 0xe7, 0xc2, 0xe9, 0x10, 0x38, 0x80, 0x13, 0x10, 0xe7, 0x0f,
- 0x74, 0x86, 0x30, 0xd5, 0x8b, 0x4b, 0x69, 0x19, 0x00, 0x8a, 0x9b, 0x0c,
- 0x83, 0xa1, 0x8d, 0xff, 0x94, 0xef, 0xe2, 0x00, 0xa4, 0xe8, 0x38, 0x8d,
- 0x80, 0x0c, 0x96, 0xdd, 0xb8, 0xba, 0x96, 0x7a, 0x08, 0xf5, 0xfb, 0x7c,
- 0x3a, 0xdc, 0x3f, 0x73, 0xe1, 0x74, 0x88, 0x1c, 0x40, 0x09, 0x88, 0x73,
- 0x87, 0xba, 0x43, 0x18, 0x6a, 0xc7, 0xa5, 0x93, 0x8c, 0x80, 0x45, 0x4d,
- 0x86, 0x41, 0xd0, 0xc6, 0xff, 0xca, 0x77, 0xf1, 0x00, 0x52, 0x74, 0x1c,
- 0x26, 0x00, 0x01, 0xce, 0xf0, 0xe2, 0xea, 0x59, 0xe8, 0x23, 0xd7, 0xed,
- 0xf0, 0xab, 0x70, 0xfd, 0x91, 0xf8, 0xf2, 0xb6, 0x9a, 0x1e, 0x90, 0x16,
- 0x27, 0xbe, 0xd3, 0xe5, 0x0c, 0x7d, 0x4c, 0xc2, 0x96, 0x4e, 0x32, 0x01,
- 0x15, 0x36, 0x19, 0x07, 0x43, 0x1b, 0xff, 0x29, 0xdf, 0x96, 0x00, 0x22,
- 0x31, 0x40, 0x00, 0x1c, 0xef, 0x0e, 0x04, 0xfb, 0xb6, 0x83, 0x9a, 0xca,
- 0xdd, 0x1e, 0x00, 0x66, 0x73, 0x3d, 0x42, 0x3b, 0x39, 0x5b, 0x4d, 0x0f,
- 0x64, 0xda, 0x7b, 0x1f, 0xe1, 0x84, 0x7e, 0xed, 0x2e, 0xa1, 0x8f, 0xa9,
- 0x98, 0x52, 0xc9, 0xc6, 0x40, 0x22, 0xa6, 0xc3, 0x20, 0xe8, 0x63, 0x7f,
- 0xe5, 0x3b, 0xf2, 0xc0, 0x04, 0x46, 0x28, 0x00, 0x03, 0x9d, 0xe1, 0xe3,
- 0xef, 0x39, 0xfc, 0x35, 0x95, 0xba, 0x3c, 0x00, 0xcc, 0xe6, 0x7a, 0x84,
- 0x76, 0x72, 0xb6, 0x9a, 0x1e, 0xc9, 0xb4, 0xf6, 0x3f, 0xc3, 0x08, 0xfd,
- 0xda, 0x5d, 0x43, 0x1f, 0x53, 0x30, 0xa5, 0x93, 0x8c, 0x80, 0x45, 0x4d,
- 0x86, 0x41, 0xd0, 0xc6, 0xff, 0xca, 0x77, 0xe5, 0x80, 0x08, 0x8c, 0x50,
- 0x00, 0x07, 0x3b, 0xc3, 0xc7, 0xde, 0x73, 0xf8, 0x6b, 0x2b, 0x74, 0x78,
- 0x01, 0x99, 0xcc, 0xf5, 0x08, 0xec, 0xe5, 0x6d, 0x34, 0x3d, 0x93, 0x69,
- 0xec, 0x7f, 0x86, 0x11, 0xfb, 0xb4, 0xba, 0x86, 0x3e, 0x6a, 0x81, 0x40,
- 0x68, 0x63, 0x20, 0x06, 0x73, 0x76, 0x63, 0x32, 0x9d, 0x1c, 0x5a, 0x4f,
- 0xe4, 0x58, 0x00, 0x88, 0xc1, 0x82, 0x7d, 0x33, 0x37, 0xbc, 0x7d, 0xe7,
- 0x3f, 0x83, 0x2a, 0xac, 0xcb, 0x7c, 0x00, 0x60, 0x6f, 0xa1, 0x47, 0x72,
- 0x51, 0xfb, 0x25, 0x54, 0x51, 0xea, 0x69, 0xf2, 0x98, 0xf0, 0xff, 0x16,
- 0x18, 0xf9, 0xaa, 0x05, 0x2d, 0xef, 0xfe, 0xe0, 0x06, 0x73, 0x76, 0x63,
- 0x32, 0x9d, 0x1c, 0x5a, 0x4f, 0xe4, 0x58, 0x00, 0x88, 0xc1, 0x82, 0x7d,
- 0x33, 0x37, 0xbe, 0x0b, 0x3b, 0x6a, 0xc8, 0x03, 0x2a, 0xaf, 0x34, 0x40,
- 0x03, 0x03, 0x7d, 0x0a, 0x3b, 0x92, 0x8f, 0xd9, 0x2a, 0xa2, 0x8f, 0x53,
- 0x4f, 0x94, 0xc7, 0x87, 0xf8, 0xb0, 0xc7, 0xcd, 0x50, 0x29, 0x6f, 0x7f,
- 0xf7, 0x00, 0x33, 0x9b, 0xb3, 0x19, 0x94, 0xe8, 0xe2, 0xd2, 0x7f, 0x22,
- 0xc0, 0x04, 0x46, 0x0c, 0x13, 0xe9, 0x99, 0xbd, 0xf0, 0x59, 0xdb, 0x56,
- 0x40, 0x19, 0x55, 0x79, 0xa2, 0x00, 0x18, 0x1b, 0xe8, 0x51, 0xdc, 0x94,
- 0x7e, 0xc9, 0x55, 0x14, 0x7a, 0x9a, 0x7c, 0xa6, 0x3c, 0x3f, 0xc5, 0x86,
- 0x3c, 0x04, 0x90, 0x29, 0x14, 0x60, 0xbf, 0xfb, 0x80, 0x33, 0x9a, 0xcc,
- 0xea, 0xb2, 0x1a, 0xf1, 0x23, 0xd5, 0x82, 0x00, 0xcf, 0xc5, 0xf3, 0x42,
- 0x9c, 0x90, 0x7e, 0xfe, 0x0b, 0x3b, 0x6a, 0xc8, 0x0e, 0x90, 0xd1, 0x30,
- 0x84, 0x0b, 0x20, 0x28, 0xed, 0x64, 0x05, 0xaa, 0xa7, 0xaa, 0x02, 0xb4,
- 0xe0, 0xa1, 0x81, 0x51, 0x15, 0x51, 0x60, 0xe2, 0x8c, 0x17, 0xca, 0x5d,
- 0x53, 0xf8, 0x26, 0x59, 0x0c, 0xc1, 0x3d, 0x24, 0x08, 0x40, 0x06, 0xcb,
- 0x36, 0xd4, 0x00, 0x06, 0x13, 0xff, 0xe0, 0x21, 0xf7, 0x6d, 0xf1, 0xe9,
- 0x0d, 0x13, 0x08, 0x40, 0xb2, 0x01, 0xc7, 0xda, 0xe0, 0x29, 0xaa, 0x6f,
- 0x6d, 0x40, 0x5d, 0xd0, 0x10, 0xa1, 0x8c, 0x66, 0x04, 0x81, 0xc5, 0x18,
- 0x2f, 0x8e, 0xf9, 0xb9, 0x81, 0x23, 0x79, 0x91, 0x35, 0x71, 0x0a, 0x0a,
- 0x4c, 0x20, 0x0c, 0xcb, 0x69, 0x33, 0x55, 0xea, 0xa7, 0xbf, 0x80, 0x87,
- 0xdd, 0xb7, 0xc7, 0xa4, 0x34, 0x4c, 0x21, 0x02, 0x88, 0x0a, 0x3e, 0xd1,
- 0x01, 0x6d, 0x64, 0x7e, 0xa0, 0x2b, 0xa7, 0x05, 0x0c, 0x0f, 0x9b, 0x20,
- 0x71, 0x06, 0xdc, 0xb1, 0xfe, 0x00, 0x64, 0xce, 0x63, 0x71, 0x1b, 0x98,
- 0xcc, 0xde, 0x90, 0x7e, 0x7e, 0xa0, 0x00, 0x33, 0x3e, 0xea, 0x6f, 0x9d,
- 0x60, 0x69, 0x47, 0xc0, 0x43, 0xee, 0xdb, 0xe3, 0xd2, 0x1a, 0x26, 0x10,
- 0x81, 0x64, 0x03, 0x24, 0xe4, 0x5e, 0x22, 0xaf, 0x5b, 0xdb, 0x50, 0x17,
- 0x74, 0x0e, 0x18, 0xc3, 0x32, 0x4f, 0xdb, 0x19, 0x00, 0x32, 0x67, 0x31,
- 0xb8, 0x8d, 0xcc, 0x66, 0x6f, 0x48, 0x3f, 0x3f, 0x46, 0x89, 0xb3, 0x01,
- 0x52, 0x6f, 0x96, 0xb0, 0x34, 0xa3, 0xc0, 0x23, 0xd7, 0xdb, 0x4b, 0x75,
- 0x25, 0xc4, 0x03, 0x24, 0xc8, 0xbf, 0x11, 0x53, 0x81, 0x29, 0xf1, 0xec,
- 0x65, 0x4c, 0x31, 0xf3, 0x24, 0xfd, 0xb1, 0x90, 0x03, 0x26, 0x73, 0x1b,
- 0x88, 0xdc, 0xc6, 0x66, 0xf4, 0x83, 0xf3, 0xf4, 0x68, 0x9b, 0x30, 0x15,
- 0x26, 0xf9, 0x6b, 0x03, 0x4a, 0x3c, 0x04, 0x7a, 0xfd, 0xbf, 0xca, 0x99,
- 0xd9, 0x48, 0xc9, 0x32, 0x2f, 0xc4, 0x54, 0xe0, 0x4a, 0x7c, 0x7b, 0x04,
- 0x28, 0x63, 0xee, 0x49, 0xf4, 0x62, 0x8c, 0x80, 0x19, 0x33, 0x98, 0xdc,
- 0x46, 0xe6, 0x33, 0x4c, 0x2b, 0xca, 0x1f, 0x97, 0x46, 0x04, 0x7e, 0xe7,
- 0x0a, 0xd9, 0xff, 0x9a, 0x60, 0x69, 0xf1, 0xe0, 0x23, 0xd7, 0xed, 0xfe,
- 0x54, 0xc8, 0x31, 0x0a, 0x9b, 0xb6, 0x20, 0xef, 0x3f, 0x80, 0x4a, 0x7a,
- 0x3d, 0x90, 0x15, 0xe9, 0x98, 0x62, 0xd0, 0x64, 0xf8, 0x90, 0x96, 0x26,
- 0x40, 0x2b, 0x93, 0x20, 0x8a, 0xec, 0xf6, 0x03, 0x1f, 0xec, 0x13, 0x5e,
- 0x72, 0x8d, 0x5e, 0x9f, 0x32, 0x3d, 0x43, 0xdc, 0x49, 0xf7, 0x69, 0xde,
- 0x67, 0x7f, 0x10, 0x00, 0x7b, 0x06, 0x5f, 0xda, 0x3e, 0xb6, 0x01, 0x9d,
- 0x25, 0x58, 0xaf, 0x39, 0xfc, 0x00, 0xfb, 0xbc, 0x7a, 0x18, 0x46, 0xd9,
- 0x31, 0xa0, 0x90, 0xf1, 0x36, 0x86, 0xd6, 0xbd, 0x60, 0xf5, 0x72, 0x7d,
- 0x0f, 0x70, 0xff, 0x0e, 0x21, 0xab, 0x72, 0x54, 0x47, 0xa8, 0x7b, 0x89,
- 0x3e, 0xed, 0x3b, 0xcc, 0xef, 0xe5, 0x80, 0x0e, 0x60, 0xcb, 0xfb, 0x8f,
- 0xad, 0x80, 0x1d, 0x6a, 0x68, 0x7b, 0xd3, 0xf8, 0x01, 0xf7, 0x2c, 0x7a,
- 0x18, 0x46, 0xd9, 0x31, 0xa0, 0x90, 0xf1, 0x38, 0x0d, 0xa1, 0xfd, 0xfa,
- 0x3d, 0x5c, 0x9f, 0x43, 0xdc, 0x3f, 0xc3, 0x88, 0x6a, 0xdc, 0x95, 0x11,
- 0xea, 0x1e, 0xe2, 0x4f, 0xbb, 0x4e, 0xf3, 0x3b, 0xf9, 0x60, 0x03, 0x98,
- 0x32, 0xfe, 0xe3, 0xeb, 0x60, 0x07, 0x5a, 0x9a, 0x1e, 0xf4, 0xfe, 0x00,
- 0x7d, 0xcb, 0x1e, 0x86, 0x10, 0x2c, 0xc0, 0x02, 0x20, 0x92, 0xf1, 0x38,
- 0x0d, 0xa1, 0xfd, 0xfa, 0x3d, 0xb9, 0x32, 0x1e, 0xe1, 0xfe, 0x1d, 0xbb,
- 0x7e, 0xbb, 0xc1, 0x9f, 0x8f, 0x73, 0x1e, 0x67, 0x79, 0x26, 0xd3, 0xaf,
- 0xcb, 0x00, 0x1c, 0xc0, 0xcb, 0x89, 0xbe, 0x13, 0xdf, 0x68, 0x03, 0xad,
- 0x4d, 0x0f, 0x7a, 0x7f, 0x5e, 0x54, 0x7a, 0x18, 0xec, 0xc1, 0x14, 0x04,
- 0x6f, 0x89, 0x88, 0xcf, 0xe9, 0x2a, 0x2e, 0xa6, 0x4c, 0x7b, 0xb8, 0xfa,
- 0xda, 0x36, 0xf1, 0xeb, 0xa1, 0x9d, 0xc7, 0xb9, 0x8f, 0x33, 0xbc, 0x8d,
- 0x76, 0xf1, 0xa4, 0xf8, 0xb3, 0x93, 0xa7, 0xb8, 0x9b, 0xe1, 0x3d, 0xf6,
- 0x89, 0x77, 0x64, 0xaa, 0x95, 0xad, 0x0f, 0xdb, 0x9d, 0xf6, 0xd0, 0xc7,
- 0x66, 0x08, 0xa0, 0x23, 0x7c, 0x4c, 0x46, 0x7f, 0x24, 0xa8, 0xba, 0x99,
- 0x31, 0xee, 0xe3, 0xeb, 0x68, 0xdb, 0xc7, 0xae, 0x86, 0x77, 0x1e, 0xe6,
- 0x3c, 0xce, 0xf2, 0x35, 0xdb, 0xc6, 0x93, 0xe1, 0x53, 0x93, 0xa7, 0xb8,
- 0x9b, 0xe1, 0x3d, 0xf6, 0x8b, 0x7f, 0x22, 0xac, 0xad, 0x68, 0x7e, 0xdc,
- 0xef, 0xb6, 0x86, 0x3b, 0x36, 0xe8, 0x08, 0xd8, 0xe2, 0x62, 0x33, 0xf9,
- 0x25, 0x45, 0xd4, 0xc9, 0x8f, 0x77, 0x1f, 0x5b, 0x46, 0xde, 0x3d, 0x74,
- 0x32, 0xf8, 0xf7, 0xab, 0x12, 0x35, 0xdb, 0xc6, 0x93, 0xe1, 0x53, 0x93,
- 0xa7, 0xb8, 0x9b, 0xe1, 0x3d, 0xf6, 0x8b, 0x7f, 0x22, 0xac, 0xad, 0x68,
- 0x7e, 0xdc, 0xef, 0xb6, 0x86, 0x3b, 0x6c, 0x08, 0xc8, 0xc1, 0x1d, 0xdb,
- 0x7d, 0xcb, 0xde, 0xc0, 0xac, 0xe4, 0x03, 0x69, 0xec, 0xec, 0xa9, 0x9f,
- 0xf0, 0x18, 0x27, 0xd2, 0x9f, 0x23, 0x52, 0xc7, 0x00, 0x54, 0x14, 0x7c,
- 0xd1, 0x01, 0x6d, 0x61, 0x99, 0x37, 0xe4, 0xf8, 0x3d, 0xbf, 0xe1, 0x8e,
- 0xdb, 0x02, 0x32, 0x30, 0x47, 0x78, 0xbe, 0xc7, 0xf9, 0xb0, 0x5d, 0x94,
- 0x8d, 0xa7, 0xb3, 0xb2, 0xa6, 0x7f, 0xc0, 0x60, 0x9f, 0x4a, 0x7c, 0x8d,
- 0x4b, 0x1c, 0x01, 0x50, 0x51, 0xf6, 0x90, 0x16, 0xd6, 0x19, 0x93, 0x7e,
- 0x4f, 0x83, 0xdb, 0xfe, 0x18, 0xed, 0xb2, 0x23, 0x23, 0x4b, 0x89, 0xc5,
- 0xf6, 0x3f, 0xcd, 0x82, 0xec, 0xa4, 0x6d, 0x3d, 0x9d, 0x95, 0x33, 0xfd,
- 0x84, 0x03, 0x04, 0xfa, 0x53, 0xe4, 0x6a, 0x58, 0xe0, 0x0a, 0x82, 0x8f,
- 0xb4, 0x80, 0xb6, 0xb0, 0xcc, 0x9b, 0xf2, 0x7c, 0x1e, 0x86, 0x31, 0xec,
- 0x88, 0xc0, 0xd1, 0xe2, 0x7b, 0xf8, 0x7b, 0x63, 0xfc, 0x38, 0x74, 0x09,
- 0x10, 0x62, 0x41, 0xab, 0x03, 0xda, 0xd3, 0x1f, 0x1a, 0x10, 0x2e, 0x72,
- 0x80, 0x54, 0x0d, 0xbb, 0x8d, 0x53, 0x80, 0x48, 0x3a, 0x4d, 0xb9, 0x7d,
- 0x77, 0xf6, 0xe2, 0x02, 0x9a, 0x90, 0xc6, 0x3d, 0x91, 0x18, 0x1a, 0x3c,
- 0x4f, 0x45, 0xda, 0xf6, 0xd2, 0xf6, 0x07, 0x40, 0x91, 0x06, 0xaa, 0x75,
- 0x60, 0x7b, 0x5a, 0x63, 0xe3, 0x42, 0x05, 0xce, 0x50, 0x0a, 0x81, 0xb7,
- 0x71, 0xaa, 0x70, 0x06, 0x41, 0xd2, 0x6e, 0x76, 0xf9, 0xdf, 0xdb, 0x88,
- 0x0a, 0x6a, 0x43, 0x18, 0xf6, 0x44, 0x60, 0x68, 0xf1, 0x3d, 0x17, 0x6b,
- 0xdb, 0x4b, 0xd8, 0x1d, 0x02, 0x44, 0x1a, 0xa9, 0xd5, 0x81, 0xed, 0x69,
- 0x8f, 0x8d, 0x08, 0x17, 0x39, 0x40, 0x2a, 0x06, 0xdd, 0xc6, 0xa9, 0xc0,
- 0x19, 0x07, 0x49, 0xb9, 0xdb, 0xe7, 0x7f, 0x6e, 0x20, 0x29, 0xa9, 0x0c,
- 0x63, 0xa3, 0x51, 0x81, 0xbe, 0x27, 0xa2, 0xe0, 0x2d, 0x97, 0x7a, 0x8f,
- 0x07, 0x40, 0x91, 0x07, 0x33, 0xbc, 0xce, 0xe8, 0xd7, 0x9e, 0xfc, 0x83,
- 0xee, 0xc0, 0xb9, 0xca, 0x01, 0x50, 0x31, 0xce, 0xa7, 0x3e, 0x40, 0x32,
- 0x0e, 0x93, 0x73, 0xb7, 0xc8, 0x5f, 0x08, 0x8c, 0x86, 0x34, 0xc5, 0x90,
- 0x0d, 0x18, 0x07, 0x89, 0x97, 0x94, 0x80, 0xb6, 0x5d, 0xf4, 0x7a, 0x03,
- 0x68, 0x7f, 0x7e, 0x82, 0xaf, 0xbc, 0xce, 0xe4, 0x24, 0x34, 0xcf, 0x98,
- 0xff, 0x58, 0x63, 0xe5, 0x35, 0xed, 0xf7, 0xe9, 0x60, 0x02, 0x66, 0x03,
- 0x2e, 0xc7, 0xac, 0xce, 0xfb, 0x61, 0x7f, 0x88, 0xab, 0x21, 0x8d, 0x31,
- 0x64, 0x03, 0x46, 0x0f, 0x13, 0x2f, 0x29, 0x01, 0x6c, 0xbb, 0xd4, 0x7a,
- 0x03, 0x68, 0x7f, 0x7e, 0x86, 0xde, 0x6e, 0xdf, 0x72, 0x12, 0x1a, 0x67,
- 0xc8, 0x3e, 0xec, 0x31, 0xf2, 0xb5, 0x89, 0xef, 0xff, 0x2c, 0x00, 0x4c,
- 0xc0, 0x64, 0xf8, 0xf5, 0x99, 0xd5, 0xb0, 0xff, 0x11, 0x12, 0x18, 0xd3,
- 0x46, 0x09, 0xa3, 0x00, 0x71, 0x3d, 0x14, 0x80, 0xb6, 0x5d, 0xea, 0x3d,
- 0x01, 0xb4, 0x3f, 0xbf, 0x43, 0x5f, 0x79, 0x9d, 0xc4, 0x39, 0xc3, 0xdd,
- 0x39, 0x8f, 0x33, 0xb8, 0x63, 0xe5, 0x35, 0xed, 0xf7, 0xe9, 0x60, 0x02,
- 0x66, 0x03, 0x2e, 0xc7, 0xac, 0xce, 0xfb, 0x61, 0x7f, 0x88, 0xab, 0x21,
- 0x84, 0x6e, 0x9c, 0x51, 0x80, 0x03, 0x13, 0x1f, 0x52, 0x4f, 0x88, 0xc5,
- 0x18, 0x17, 0x3d, 0x11, 0x9f, 0xd2, 0x55, 0x17, 0x70, 0xff, 0x0c, 0xd9,
- 0xaa, 0x6f, 0x41, 0xcd, 0x0f, 0x74, 0x0e, 0x63, 0xcc, 0xee, 0x63, 0xdd,
- 0xc7, 0xd6, 0xc2, 0x00, 0x0e, 0x62, 0x88, 0xb1, 0xcb, 0x4a, 0x6e, 0x48,
- 0x7b, 0xd4, 0x30, 0x8d, 0xd3, 0x8a, 0x30, 0x00, 0x62, 0x62, 0xea, 0x59,
- 0xe9, 0xb9, 0x48, 0xe0, 0x28, 0x74, 0x11, 0x9f, 0xd2, 0x54, 0xdd, 0xdc,
- 0x3f, 0xc3, 0x36, 0x69, 0x4d, 0xe9, 0x37, 0x0f, 0x70, 0x19, 0x11, 0xe6,
- 0x77, 0x31, 0xee, 0xe3, 0xeb, 0x61, 0x00, 0x07, 0x31, 0x44, 0x16, 0x39,
- 0x69, 0x4d, 0xc9, 0x0f, 0x7a, 0x86, 0x11, 0xba, 0x33, 0xc5, 0x1b, 0x8d,
- 0xc1, 0x2a, 0x59, 0xea, 0x32, 0x93, 0x02, 0xe3, 0x68, 0x8c, 0xfe, 0x49,
- 0x54, 0x5d, 0xc3, 0xfc, 0x34, 0x4d, 0x26, 0xf6, 0x6f, 0x8e, 0xfa, 0xfc,
- 0xc7, 0xbb, 0x8f, 0xad, 0x84, 0x00, 0x1c, 0xc5, 0x10, 0x58, 0xe5, 0xa5,
- 0x37, 0x24, 0x3d, 0xea, 0x03, 0xa4, 0x34, 0x4c, 0xff, 0x67, 0xbe, 0xb7,
- 0x3a, 0xe1, 0xd1, 0xc2, 0x48, 0x92, 0xaf, 0x03, 0xfd, 0x94, 0x06, 0x7e,
- 0x6b, 0x9c, 0x9c, 0xab, 0x91, 0x62, 0x46, 0x44, 0x5d, 0xa0, 0xff, 0x70,
- 0x19, 0xf9, 0xae, 0x72, 0x72, 0xae, 0x45, 0x89, 0x19, 0x11, 0x76, 0x83,
- 0xfd, 0xc0, 0x67, 0xe6, 0xb9, 0xc9, 0xca, 0xb9, 0x16, 0x24, 0x64, 0x45,
- 0xda, 0x0f, 0xf6, 0x80, 0x41, 0xb8, 0xc8, 0x99, 0x2e, 0xd5, 0x7a, 0xb2,
- 0x22, 0x44, 0xbb, 0x5f, 0xfb, 0x80, 0x83, 0x71, 0x91, 0x32, 0x5d, 0xaa,
- 0xf5, 0x64, 0x44, 0x89, 0x76, 0xbf, 0xf7, 0x01, 0x06, 0xe3, 0x22, 0x64,
- 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32,
- 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86,
- 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee,
- 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7,
- 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12,
- 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88,
- 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea,
- 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5,
- 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64,
- 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32,
- 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86,
- 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xed,
- 0x80, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5d, 0x8d, 0x25, 0x4a, 0x4a,
- 0x78, 0x7b, 0x80, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5d, 0x8d, 0x25,
- 0x4a, 0x4a, 0x78, 0x7b, 0x20, 0x11, 0x09, 0xa2, 0x6a, 0xbc, 0xac, 0x69,
- 0x55, 0x1d, 0xbf, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf,
- 0xff, 0xff, 0xc6, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01,
- 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x5f, 0xff, 0xfd, 0x73, 0x09, 0xe1, 0x0e, 0xda, 0xff, 0xfb, 0xc4,
- 0xcd, 0xc0, 0x43, 0xb7, 0x1f, 0x4c, 0x0f, 0xaf, 0xbf, 0x48, 0x1d, 0x58,
- 0x92, 0x94, 0xbb, 0x6b, 0x7c, 0xb1, 0xd9, 0x78, 0xaf, 0xff, 0xff, 0xff,
- 0xf9, 0x06, 0x52, 0x4e, 0x4f, 0xf1, 0x34, 0x78, 0x27, 0x78, 0x38, 0x3c,
- 0x87, 0xee, 0x56, 0x84, 0xdb, 0xb3, 0xbc, 0xf9, 0x04, 0xef, 0xe3, 0xfc,
- 0x53, 0x20, 0x62, 0x9c, 0x8c, 0x9e, 0x08, 0x25, 0xd7, 0x4d, 0x34, 0xaf,
- 0x29, 0x06, 0x10, 0x26, 0xe1, 0xd9, 0x1d, 0x98, 0xad, 0x0e, 0x0c, 0x09,
- 0x85, 0xba, 0x8e, 0xb7, 0x24, 0xa6, 0x6f, 0x75, 0xe0, 0x35, 0x4d, 0x8a,
- 0xb1, 0x73, 0x66, 0x01, 0xe4, 0x1d, 0xef, 0x01, 0x60, 0x36, 0x9a, 0x1d,
- 0x62, 0xe6, 0x5e, 0x8d, 0xfc, 0xbd, 0xab, 0xc0, 0x5d, 0xcd, 0xa7, 0xc2,
- 0xff, 0x84, 0xc4, 0x92, 0x0d, 0x80, 0x0b, 0x0e, 0x55, 0xf3, 0x09, 0x85,
- 0xef, 0x87, 0xbd, 0x9e, 0xf4, 0x02, 0xcf, 0x5a, 0xa7, 0x3b, 0xcf, 0x71,
- 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x27, 0x00,
- 0x51, 0xd1, 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3, 0xc0, 0x55, 0x27,
- 0x27, 0xe1, 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xea, 0xc5, 0x81, 0xeb,
- 0x83, 0x65, 0x3e, 0x4c, 0x59, 0x98, 0xbe, 0xa7, 0x93, 0xa2, 0xc0, 0x7a,
- 0xf1, 0x32, 0x9a, 0x1e, 0xe4, 0x1e, 0xe3, 0xff, 0x90, 0xf8, 0x4d, 0xa0,
- 0x1f, 0xb4, 0xa1, 0xc6, 0x0a, 0xf7, 0x81, 0x24, 0x22, 0x39, 0xc2, 0x0e,
- 0x3b, 0xc7, 0xc0, 0x24, 0x37, 0x5b, 0x97, 0x23, 0x39, 0xd5, 0x47, 0x06,
- 0xbb, 0x7d, 0x00, 0xf0, 0x1b, 0x8e, 0x3c, 0xf0, 0x82, 0xe0, 0x0c, 0x8f,
- 0x7c, 0x00, 0x08, 0xd8, 0x3d, 0xdd, 0x07, 0x84, 0x3d, 0xf8, 0x78, 0x00,
- 0x1c, 0x9e, 0x00, 0x06, 0xa2, 0x80, 0x01, 0xc8, 0xa0, 0x00, 0x6a, 0x00,
- 0xcb, 0xcb, 0x64, 0x00, 0x21, 0xf0, 0x06, 0x17, 0x38, 0xc9, 0x0f, 0x84,
- 0x1e, 0x00, 0x06, 0xa1, 0x8b, 0x3d, 0xa1, 0x02, 0x3e, 0xa0, 0x9f, 0xff,
- 0xff, 0xfe, 0x21, 0x1a, 0x3b, 0x56, 0x8b, 0xd0, 0x74, 0x3d, 0x04, 0x34,
- 0x2d, 0x43, 0x78, 0x10, 0x34, 0x10, 0x73, 0xfa, 0x09, 0xcb, 0xf9, 0x58,
- 0x95, 0x8f, 0x95, 0x89, 0x58, 0x85, 0x25, 0xff, 0xff, 0x80, 0x08, 0x2f,
- 0x25, 0x6f, 0x48, 0xf1, 0xc4, 0x14, 0x00, 0x04, 0x00, 0x22, 0x80, 0x00,
- 0x80, 0x04, 0x50, 0x00, 0x10, 0x00, 0x80, 0x48, 0xfd, 0x00, 0x01, 0x6c,
- 0x00, 0xc7, 0xcf, 0x22, 0x00, 0x08, 0x7c, 0x08, 0xc6, 0xaa, 0xd9, 0xd6,
- 0x49, 0x25, 0x1e, 0x0c, 0x02, 0x47, 0xe8, 0x00, 0x0b, 0x69, 0xfb, 0x14,
- 0x44, 0x43, 0xe0, 0x4f, 0xd8, 0xa2, 0x22, 0x1f, 0x00, 0x3f, 0x8e, 0xf6,
- 0x7f, 0x37, 0x91, 0x31, 0x48, 0x88, 0xbc, 0x65, 0x81, 0x97, 0xc0, 0xfc,
- 0x01, 0x1f, 0xe5, 0xe0, 0x47, 0xaf, 0x80, 0xf7, 0x60, 0x84, 0x00, 0x7f,
- 0xfb, 0x02, 0x5d, 0x9d, 0xf7, 0xd7, 0x8e, 0xf7, 0xc8, 0x58, 0x01, 0x08,
- 0xfd, 0xf5, 0x1f, 0xf3, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0x9c, 0xe4, 0x25, 0xff, 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7,
- 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xaa, 0x0d, 0x60, 0x35, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd3, 0xff, 0xd9, 0x38, 0x63, 0xff, 0x3f, 0xc8, 0x2b, 0xff,
- 0xff, 0x7e, 0xfd, 0xfc, 0x52, 0x04, 0xe3, 0x49, 0xfa, 0xa5, 0x80, 0x58,
- 0xd8, 0xe1, 0x5f, 0x20, 0x2a, 0x39, 0x3c, 0x83, 0xba, 0x51, 0x04, 0x65,
- 0x29, 0x6f, 0xc4, 0x8b, 0x06, 0x85, 0x90, 0x67, 0x2a, 0x15, 0xcf, 0x66,
- 0x0b, 0x5b, 0x3a, 0xee, 0xbf, 0x60, 0xc6, 0x2b, 0xff, 0xf8, 0x63, 0x1f,
- 0x50, 0x01, 0x9b, 0x36, 0x2c, 0xda, 0x20, 0x1d, 0x26, 0x52, 0xc0, 0x96,
- 0xe4, 0xff, 0xa7, 0x2a, 0x33, 0xd3, 0xe1, 0x36, 0x2c, 0xee, 0xd5, 0x43,
- 0x7f, 0xd2, 0x1e, 0xa7, 0x9f, 0xbf, 0x7e, 0xfc, 0x30, 0x15, 0x5f, 0x67,
- 0x62, 0x53, 0x9c, 0x26, 0x7c, 0x09, 0x5d, 0x23, 0xf4, 0x91, 0x56, 0x6a,
- 0xc0, 0xe1, 0x68, 0x63, 0x41, 0x0d, 0xdc, 0x8a, 0x00, 0xf9, 0x3f, 0xff,
- 0x86, 0x2d, 0x49, 0x37, 0xfe, 0x12, 0xc3, 0xdd, 0xfc, 0x21, 0xb4, 0xd5,
- 0x6a, 0xac, 0x18, 0x9c, 0x7f, 0x3e, 0xc3, 0x1f, 0x69, 0x7b, 0x13, 0x61,
- 0x4d, 0x07, 0x08, 0xd4, 0x3a, 0x24, 0xc1, 0x63, 0xd8, 0x26, 0xd8, 0xe5,
- 0x3e, 0xbf, 0x1d, 0xb0, 0x4b, 0xff, 0xff, 0x82, 0x47, 0xa3, 0xde, 0x18,
- 0xb5, 0x8b, 0x95, 0xbf, 0x13, 0x86, 0x92, 0x62, 0xd0, 0xc0, 0x7b, 0xf0,
- 0x95, 0x87, 0xa3, 0xff, 0xad, 0x63, 0x36, 0xfb, 0xc6, 0xc0, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35, 0x81, 0x4b, 0xe5, 0xde, 0x33, 0xef,
- 0xef, 0x1b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
- 0x9f, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xd7,
- 0xf9, 0xbe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x01, 0x6f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x0c, 0xa1, 0x96, 0x78,
- 0xc9, 0xaf, 0xb7, 0xe2, 0x65, 0x2e, 0x00, 0x66, 0xcb, 0xfe, 0x7d, 0xff,
- 0x57, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x90, 0x21, 0x92,
- 0x28, 0x63, 0x58, 0x03, 0x2d, 0x12, 0x3d, 0x2a, 0xd5, 0xb7, 0x8c, 0xca,
- 0x34, 0x46, 0xfa, 0x79, 0x2e, 0x2d, 0x08, 0x08, 0x14, 0x8c, 0x5b, 0xe2,
- 0x37, 0x29, 0x6b, 0x57, 0xcf, 0x32, 0x1d, 0x7b, 0xc5, 0x7f, 0xff, 0xf9,
- 0xbf, 0x15, 0x42, 0x04, 0xa0, 0xec, 0x47, 0x2c, 0xb0, 0x1d, 0x26, 0x52,
- 0xdc, 0x0b, 0x03, 0x53, 0x77, 0x11, 0x79, 0x8f, 0x36, 0x11, 0x43, 0x68,
- 0x09, 0x23, 0x93, 0x5b, 0xea, 0x58, 0x00, 0xe6, 0xa0, 0x7b, 0x05, 0x58,
- 0xa6, 0xfd, 0x6c, 0x41, 0x54, 0xed, 0xf0, 0x11, 0x94, 0xf4, 0xfc, 0xe2,
- 0xfa, 0x99, 0xf7, 0x1d, 0x6c, 0xfc, 0x80, 0x39, 0xee, 0xd3, 0x18, 0xb4,
- 0xc3, 0x49, 0xb7, 0x00, 0x67, 0xbf, 0x5c, 0x8b, 0x9f, 0xff, 0xff, 0xf9,
- 0x8b, 0xc0, 0x7b, 0x6b, 0xa6, 0xff, 0x09, 0xfe, 0x08, 0x0b, 0x81, 0xf7,
- 0x78, 0x1f, 0xbc, 0xef, 0xff, 0xff, 0xcc, 0xc1, 0x3c, 0x0b, 0xfe, 0x12,
- 0x30, 0x41, 0x2f, 0xee, 0x18, 0x00, 0xc4, 0x9b, 0xe9, 0x7b, 0x4a, 0x5f,
- 0x36, 0xe6, 0x92, 0x03, 0x55, 0x9e, 0xd2, 0xd8, 0x83, 0xf6, 0x59, 0x22,
- 0x34, 0x9b, 0xab, 0x68, 0x82, 0xbd, 0x60, 0x21, 0x4c, 0x31, 0x35, 0x79,
- 0xfd, 0x7d, 0xe1, 0xde, 0x26, 0x34, 0x5e, 0x63, 0x3a, 0x7f, 0x9d, 0x30,
- 0x4e, 0x29, 0x2c, 0x3f, 0x01, 0x42, 0x83, 0xf0, 0xe2, 0x5a, 0xf0, 0x3f,
- 0xc7, 0x00, 0x38, 0x7e, 0xe2, 0xdc, 0x52, 0xf8, 0xbf, 0xff, 0xcd, 0xe3,
- 0xbd, 0xfc, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x90, 0x75, 0x37, 0xe7,
- 0x05, 0xe8, 0xcc, 0xea, 0x7a, 0xd4, 0x4d, 0xff, 0x7d, 0xfc, 0x67, 0x80,
- 0x85, 0x65, 0x30, 0xe0, 0x09, 0x07, 0x53, 0x7e, 0x41, 0x7a, 0x33, 0x38,
- 0xf1, 0xfd, 0x3d, 0x6a, 0x0f, 0x7e, 0x6d, 0xde, 0x8e, 0x1f, 0xc2, 0x2b,
- 0xc9, 0x6c, 0xdf, 0xc9, 0x06, 0xad, 0xa5, 0x65, 0x30, 0xe1, 0x34, 0x8b,
- 0xce, 0x6b, 0xee, 0x24, 0xf5, 0x53, 0x77, 0x8e, 0xf7, 0x84, 0x48, 0x58,
- 0x48, 0xe0, 0xff, 0x3f, 0xee, 0x05, 0x96, 0x92, 0xea, 0x60, 0xfe, 0x3e,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x19, 0x7f, 0xcb, 0xef,
- 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff,
- 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x4f, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
- 0x66, 0x13, 0x80, 0x84, 0x59, 0x26, 0x18, 0xdc, 0xa4, 0xdb, 0xe6, 0x86,
- 0x62, 0x62, 0xbf, 0xff, 0xff, 0xf8, 0x60, 0xd0, 0x2d, 0x60, 0x61, 0x78,
- 0xe1, 0x61, 0x20, 0x4a, 0xed, 0xdb, 0x72, 0xe3, 0x29, 0x8c, 0x40, 0xe2,
- 0x2f, 0x51, 0x9e, 0xc4, 0x6c, 0xe1, 0x9e, 0x68, 0xcf, 0x6f, 0xde, 0x12,
- 0xb0, 0x0a, 0x52, 0x30, 0x7d, 0x94, 0x7b, 0xd4, 0x24, 0xa5, 0x8e, 0xf2,
- 0xf1, 0x72, 0xc6, 0x12, 0x52, 0xd0, 0xc0, 0x7f, 0xcb, 0xf0, 0x98, 0xbe,
- 0x63, 0x26, 0x8d, 0x2a, 0xf3, 0xd1, 0x84, 0x8a, 0xa1, 0x65, 0xb6, 0x7a,
- 0xab, 0xeb, 0xf1, 0x5f, 0xfe, 0xbe, 0x2c, 0xd4, 0x30, 0xce, 0xee, 0x02,
- 0x80, 0xe9, 0x15, 0x0b, 0x76, 0x1c, 0xa1, 0xb4, 0x3b, 0xbd, 0xf6, 0x29,
- 0x87, 0xff, 0xf7, 0xef, 0xbf, 0xff, 0x5e, 0x41, 0x11, 0x11, 0x05, 0x22,
- 0xc0, 0x43, 0xa7, 0x42, 0x83, 0xe8, 0x47, 0x9d, 0x70, 0x19, 0x9a, 0xfe,
- 0x5f, 0xee, 0x4f, 0xb4, 0xf4, 0x86, 0xc5, 0x2a, 0x94, 0x37, 0x34, 0x6a,
- 0xa3, 0xc7, 0x91, 0x3a, 0x5e, 0x7d, 0x77, 0xe8, 0x0a, 0x21, 0x53, 0x16,
- 0x41, 0x01, 0x86, 0xe2, 0xad, 0xc2, 0x04, 0x14, 0x0c, 0x7b, 0x31, 0x40,
- 0xc2, 0x56, 0xe1, 0x01, 0xf6, 0x04, 0x21, 0x12, 0x48, 0x6b, 0x4d, 0x8d,
- 0x0e, 0x61, 0xe0, 0x33, 0xc0, 0x6b, 0x93, 0x10, 0x1c, 0xb0, 0x1c, 0x76,
- 0xf8, 0x63, 0xff, 0xb9, 0x39, 0x63, 0x1f, 0x01, 0x23, 0xd6, 0xfc, 0xc0,
- 0x48, 0xf5, 0xbf, 0x27, 0x61, 0x9b, 0x54, 0x01, 0x66, 0x43, 0x03, 0xa4,
- 0xbf, 0xbc, 0x90, 0x26, 0xc0, 0x80, 0xe6, 0xc0, 0xf9, 0x07, 0x04, 0x66,
- 0x89, 0x5f, 0x5d, 0x63, 0x36, 0xa2, 0x7b, 0x2c, 0x8d, 0x6d, 0xff, 0xc7,
- 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x81, 0x0b, 0xe5,
- 0xde, 0x33, 0xef, 0xef, 0x1b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xc2, 0x9f, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf,
- 0xff, 0xff, 0xd7, 0xf9, 0xbe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe9,
- 0x49, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x0b, 0xe1, 0xe4, 0x5b,
- 0x0f, 0x98, 0x98, 0x4d, 0xc3, 0x77, 0x54, 0x85, 0xac, 0x4c, 0xa5, 0xc4,
- 0xdb, 0x43, 0xf6, 0x53, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xcc, 0x2a, 0x1d,
- 0x4f, 0xee, 0x42, 0x7a, 0x67, 0xf8, 0xba, 0x44, 0x37, 0x0f, 0xe3, 0x65,
- 0xc2, 0x04, 0x7e, 0x96, 0x55, 0xff, 0xfd, 0xe1, 0x10, 0x50, 0x11, 0x80,
- 0xea, 0x86, 0xb9, 0x31, 0xb5, 0x35, 0xde, 0x50, 0xed, 0xa7, 0x13, 0x41,
- 0xd4, 0x08, 0xe6, 0x29, 0x75, 0x22, 0x05, 0xf1, 0x15, 0x74, 0x5f, 0x8f,
- 0x81, 0x94, 0x08, 0xd6, 0x40, 0x72, 0x88, 0x85, 0x91, 0xf9, 0x84, 0x01,
- 0x63, 0x12, 0x63, 0x00, 0x1c, 0xae, 0x5a, 0x67, 0xcf, 0x7d, 0x12, 0xf7,
- 0x2f, 0xfc, 0x57, 0xff, 0xff, 0x93, 0xc9, 0xfc, 0x58, 0x87, 0x20, 0x4a,
- 0x44, 0x63, 0xc1, 0xa9, 0xc0, 0x00, 0x1d, 0x1c, 0xdf, 0xad, 0x9e, 0x68,
- 0x0d, 0xb2, 0xf0, 0x03, 0x82, 0xe4, 0x10, 0xb6, 0x81, 0xe6, 0xdc, 0x29,
- 0xd3, 0xf3, 0xc0, 0x05, 0x3e, 0x29, 0x91, 0x99, 0x6b, 0xff, 0xd6, 0x5d,
- 0x72, 0x53, 0xfe, 0xf5, 0xfb, 0x08, 0x9d, 0xf5, 0x3f, 0x7d, 0xfa, 0x99,
- 0xae, 0x50, 0xea, 0xcf, 0x8c, 0x9e, 0x7c, 0x1f, 0xf3, 0xb3, 0xc9, 0x86,
- 0x2f, 0xff, 0xe4, 0x69, 0x37, 0x6f, 0xfe, 0x68, 0xf8, 0x9a, 0xf0, 0x4f,
- 0xa6, 0x2f, 0xbe, 0xff, 0xff, 0xff, 0x88, 0x43, 0xe3, 0xac, 0x87, 0xb6,
- 0x77, 0xbe, 0x1a, 0xf0, 0xb8, 0x21, 0x6f, 0xaf, 0xd3, 0x65, 0xac, 0x6a,
- 0xe6, 0x28, 0x07, 0x87, 0xf8, 0x4a, 0xdc, 0x6f, 0x86, 0x9c, 0x0e, 0xfa,
- 0x42, 0xfa, 0x07, 0x2d, 0x0c, 0xe6, 0x4b, 0x5b, 0x83, 0xa8, 0xbe, 0x22,
- 0x33, 0x4a, 0xe7, 0xfc, 0x9e, 0xfd, 0x7f, 0xd7, 0x09, 0xb0, 0x83, 0x82,
- 0xed, 0xcc, 0x38, 0x2e, 0xdf, 0x12, 0xfe, 0x03, 0xc1, 0x10, 0xc8, 0x40,
- 0x59, 0x09, 0xa0, 0x3f, 0x4d, 0xc6, 0x7a, 0xc9, 0x7f, 0x3c, 0x5e, 0x7f,
- 0x37, 0xd2, 0x9f, 0x08, 0x42, 0x82, 0x30, 0x01, 0x7b, 0x14, 0x9a, 0x25,
- 0x89, 0x8f, 0x7f, 0xfe, 0x43, 0x50, 0x1b, 0x09, 0x69, 0x85, 0x1c, 0x5d,
- 0xc4, 0x02, 0x65, 0x2c, 0xcf, 0x89, 0x1e, 0xa1, 0x8c, 0xf5, 0x96, 0xdf,
- 0x13, 0x98, 0x40, 0x43, 0x50, 0xff, 0x84, 0xa5, 0xcf, 0x80, 0x28, 0xc7,
- 0x66, 0x3a, 0xfa, 0x5a, 0xd2, 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8, 0x1c,
- 0x40, 0x17, 0x64, 0x00, 0xc8, 0xba, 0xfa, 0xf7, 0xef, 0xf7, 0xb7, 0x96,
- 0x35, 0xe1, 0xfe, 0x09, 0xbf, 0xc0, 0x35, 0x78, 0x42, 0xb0, 0x00, 0xc7,
- 0xee, 0xe7, 0x5c, 0x2c, 0x78, 0x3c, 0x0b, 0x99, 0x91, 0x81, 0xab, 0xa0,
- 0x2b, 0x69, 0xe6, 0x87, 0xc4, 0xc3, 0xf7, 0xf6, 0xfc, 0x3e, 0xfb, 0x4b,
- 0x8f, 0x0c, 0xf8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x35,
- 0xff, 0x11, 0xe3, 0x3f, 0xef, 0xfe, 0xfc, 0x6f, 0xff, 0xe5, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
- 0x7f, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2,
- 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x91, 0x60, 0x2d, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xe6, 0x13,
- 0x80, 0x1b, 0x2e, 0x46, 0x04, 0x83, 0xf5, 0xe0, 0xf4, 0xe9, 0x4d, 0xbf,
- 0x2f, 0x8a, 0xff, 0xff, 0xdf, 0xbf, 0xeb, 0x14, 0x28, 0xa9, 0x85, 0x56,
- 0xa5, 0xc6, 0x6a, 0x13, 0x6b, 0xc0, 0x3b, 0xc7, 0x6d, 0xe2, 0x00, 0x6f,
- 0x12, 0x91, 0xa0, 0x06, 0xc3, 0x6b, 0x04, 0xf0, 0x02, 0xd1, 0x63, 0x6d,
- 0xfb, 0xa5, 0x52, 0xb1, 0x63, 0x0b, 0xfe, 0xdd, 0x7e, 0x78, 0xd1, 0x98,
- 0xaf, 0xff, 0x7e, 0x18, 0xfd, 0x6c, 0x30, 0x0f, 0x64, 0xe0, 0x23, 0x29,
- 0xe9, 0xf9, 0xd5, 0xe5, 0xe5, 0xe0, 0x09, 0xbc, 0xd7, 0x53, 0xcf, 0xb4,
- 0x89, 0x8a, 0x9e, 0x7f, 0xac, 0xa4, 0xcf, 0x9f, 0xff, 0xdf, 0xef, 0xff,
- 0xdf, 0x86, 0x38, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x57, 0xa6, 0x9a, 0x8f,
- 0x10, 0x32, 0x65, 0xe0, 0x22, 0xcf, 0x73, 0xb6, 0x3e, 0xbe, 0x9f, 0x1d,
- 0xbe, 0xfc, 0x33, 0x1b, 0x86, 0x3e, 0x90, 0xe3, 0xc2, 0x30, 0x64, 0x02,
- 0xfa, 0xa0, 0x3e, 0xa0, 0x43, 0x8a, 0x5c, 0xf4, 0x1a, 0x7b, 0x03, 0x12,
- 0x72, 0xdc, 0xc0, 0xea, 0xfb, 0xed, 0xe1, 0x2f, 0x19, 0xa1, 0x7f, 0x07,
- 0x6d, 0x78, 0x60, 0x61, 0x71, 0x1f, 0xfc, 0x3e, 0x50, 0x4f, 0xa3, 0x01,
- 0x94, 0x32, 0xfa, 0xd9, 0x41, 0xe2, 0x23, 0x4b, 0x7e, 0xb8, 0xd8, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x83, 0x2f, 0x97, 0x78, 0xcf,
- 0xbf, 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff,
- 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51, 0x02, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0x8b, 0x5c, 0x10, 0x36, 0x6e, 0x71, 0xe1, 0x84, 0x0f, 0x0f,
- 0xfc, 0xa2, 0xf0, 0x10, 0x6e, 0xc0, 0xf7, 0x0e, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x73, 0x78, 0x01, 0x85, 0xeb, 0xef,
- 0xff, 0xb5, 0xe5, 0xf8, 0xd5, 0x48, 0x50, 0xfe, 0x4f, 0xfc, 0x6c, 0x5f,
- 0x0d, 0x22, 0xc2, 0x78, 0x00, 0x7f, 0x2c, 0x8d, 0xa7, 0xa5, 0xbf, 0x7b,
- 0x86, 0x47, 0xbe, 0xd7, 0xff, 0x4c, 0x60, 0x92, 0x97, 0x0a, 0x7e, 0x9d,
- 0x63, 0x8f, 0xfb, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xcc, 0x97,
- 0xcb, 0xa5, 0xe4, 0x12, 0x6d, 0xe1, 0x00, 0x7c, 0x47, 0x41, 0x82, 0x6d,
- 0xbe, 0x81, 0x2b, 0xe3, 0x73, 0x76, 0x52, 0x97, 0xc8, 0x8d, 0x29, 0x57,
- 0xf1, 0x4d, 0xb0, 0x89, 0xc1, 0x70, 0xa6, 0x7c, 0x6f, 0xa4, 0x68, 0x75,
- 0xd5, 0xe3, 0x38, 0xf0, 0xe6, 0x34, 0x0b, 0x3a, 0x2b, 0x33, 0x91, 0x39,
- 0xbd, 0x90, 0x19, 0xef, 0xd1, 0xa6, 0x32, 0xbf, 0xed, 0x1b, 0x6d, 0x2c,
- 0x17, 0x5f, 0x45, 0xde, 0x42, 0x3c, 0xa3, 0x17, 0xb6, 0x8c, 0xe3, 0x66,
- 0xd2, 0xd8, 0x57, 0xfd, 0xa4, 0x74, 0xfa, 0x9e, 0x45, 0x4f, 0x67, 0xd7,
- 0x07, 0xb1, 0x27, 0x19, 0x01, 0x9b, 0xda, 0x21, 0x68, 0x28, 0xa4, 0xfc,
- 0xf0, 0x84, 0x0b, 0xb2, 0x11, 0x7e, 0x1f, 0xa2, 0x9d, 0x4b, 0xdc, 0x71,
- 0xc1, 0x9d, 0x26, 0xd8, 0x92, 0x2f, 0xff, 0x9e, 0x78, 0xf2, 0x52, 0x2e,
- 0x99, 0x2f, 0xf7, 0x97, 0xe1, 0x31, 0x72, 0x86, 0x12, 0x51, 0xe3, 0x2d,
- 0xb7, 0xb7, 0xd3, 0xd3, 0x84, 0x07, 0xce, 0x19, 0x1f, 0xf3, 0xbe, 0x43,
- 0x6c, 0xf0, 0xab, 0x71, 0xc6, 0xe7, 0x78, 0x71, 0x5f, 0xff, 0xff, 0xc2,
- 0x22, 0x31, 0xd6, 0xbd, 0x00, 0x63, 0xe2, 0xe1, 0x50, 0x6a, 0xb8, 0xbb,
- 0x60, 0x94, 0x73, 0x7e, 0xb9, 0x33, 0x07, 0xb2, 0xf0, 0x00, 0xcc, 0x6d,
- 0xbd, 0x12, 0x6e, 0x73, 0x4b, 0x43, 0x47, 0x44, 0xbb, 0xcf, 0xe8, 0x1c,
- 0x82, 0x46, 0xd5, 0x4a, 0xf5, 0x60, 0x08, 0xe4, 0x66, 0x90, 0x4c, 0xe2,
- 0xd2, 0x16, 0x95, 0x04, 0xc6, 0x03, 0xf2, 0x26, 0x7f, 0x3f, 0x31, 0xe7,
- 0x3e, 0x73, 0xe9, 0xd0, 0xf7, 0xfc, 0x8a, 0x71, 0x88, 0xf0, 0xd5, 0xf8,
- 0x4d, 0x0f, 0xb7, 0xaa, 0x0e, 0xff, 0x2a, 0x99, 0x54, 0xf8, 0xe7, 0x08,
- 0x18, 0x1e, 0x7b, 0xc8, 0x6f, 0x01, 0x6e, 0x95, 0xad, 0x77, 0x04, 0x78,
- 0x76, 0x91, 0xe1, 0x35, 0xc6, 0x01, 0xe9, 0xe6, 0xa3, 0x10, 0x85, 0x60,
- 0x20, 0x0f, 0x94, 0xbc, 0x00, 0x84, 0xd7, 0x77, 0x7f, 0xf7, 0xfe, 0xff,
- 0xc4, 0x18, 0x23, 0xef, 0x38, 0xff, 0x25, 0xf9, 0x30, 0x8f, 0x3c, 0xef,
- 0xff, 0x88, 0x8e, 0x02, 0x54, 0x78, 0x40, 0xc0, 0xde, 0x6c, 0xa2, 0x98,
- 0x7d, 0x06, 0xea, 0x68, 0xc3, 0x0f, 0xfc, 0x25, 0x0e, 0x92, 0x32, 0x00,
- 0xc2, 0x13, 0x01, 0xb6, 0xa0, 0x5f, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08,
- 0x49, 0x01, 0xb6, 0xa0, 0x03, 0xa4, 0x8c, 0x80, 0x30, 0x84, 0x94, 0x1b,
- 0x6a, 0xf0, 0xe7, 0xe5, 0x28, 0xe8, 0x2a, 0x6f, 0x45, 0x5f, 0x50, 0xc7,
- 0x5c, 0x26, 0xaa, 0xb5, 0x7d, 0x4a, 0xbd, 0x46, 0xe0, 0x84, 0xa9, 0xc2,
- 0x6e, 0x37, 0xe7, 0x9f, 0x0c, 0x4f, 0xc5, 0x38, 0x6e, 0x0f, 0x8c, 0xdb,
- 0x03, 0xed, 0xe8, 0xaf, 0xaf, 0xbf, 0xbc, 0x33, 0xae, 0x4e, 0x04, 0xfa,
- 0x80, 0xff, 0xd9, 0x6c, 0xc5, 0x1e, 0x3b, 0xdf, 0x23, 0x80, 0x06, 0xba,
- 0x56, 0x79, 0x2b, 0x7f, 0xbf, 0xf8, 0x26, 0x26, 0xcc, 0x3e, 0xb9, 0xd4,
- 0xe2, 0xd7, 0xc0, 0x2c, 0x3a, 0xdd, 0x6b, 0x6e, 0xf5, 0xcb, 0xfc, 0x00,
- 0xb1, 0x66, 0x96, 0xcb, 0x4d, 0xf7, 0x9f, 0x69, 0xf7, 0x01, 0xff, 0xff,
- 0x7f, 0x9d, 0xe1, 0xfe, 0x78, 0x04, 0x34, 0xbf, 0x9a, 0xbd, 0xee, 0x89,
- 0x89, 0xcd, 0xff, 0xfd, 0xa0, 0x84, 0x44, 0x00, 0x1b, 0x36, 0x4d, 0x0d,
- 0x8c, 0x15, 0x39, 0xc7, 0x17, 0xa3, 0x40, 0x28, 0xb2, 0x8e, 0xbc, 0x73,
- 0xee, 0xfa, 0x0d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44,
- 0x09, 0xe0, 0x22, 0x3e, 0x42, 0x40, 0x0d, 0x83, 0x55, 0x3a, 0x02, 0x94,
- 0x38, 0x73, 0x7f, 0x80, 0x89, 0xc4, 0xcb, 0x66, 0xeb, 0x9f, 0xd4, 0xe3,
- 0x14, 0x20, 0x01, 0x01, 0xcd, 0xf8, 0x27, 0x8a, 0x3d, 0xf8, 0x00, 0x00,
- 0x10, 0xf8, 0x01, 0x62, 0xcd, 0x2d, 0x96, 0x4d, 0xf7, 0x9b, 0x4f, 0xb8,
- 0x0f, 0xff, 0xfb, 0xfc, 0xef, 0x0f, 0xf3, 0xc0, 0x21, 0xa5, 0xfc, 0xd5,
- 0xef, 0x77, 0xf3, 0x7e, 0xc5, 0x9b, 0xb1, 0x1e, 0x31, 0x40, 0x07, 0xd0,
- 0x1d, 0xa5, 0x22, 0x10, 0x03, 0x01, 0xef, 0xae, 0x60, 0x01, 0xb5, 0x9f,
- 0x14, 0xda, 0x3f, 0xff, 0xe4, 0x9f, 0x7d, 0xaf, 0xe0, 0x07, 0x87, 0x5d,
- 0x7a, 0x65, 0x70, 0xe4, 0x08, 0x43, 0x54, 0x8d, 0x94, 0x2e, 0xa1, 0x47,
- 0xee, 0xb8, 0x16, 0xc0, 0xa6, 0xeb, 0x6c, 0x89, 0xeb, 0x60, 0xcf, 0xef,
- 0x6f, 0xc5, 0x60, 0x79, 0xaf, 0xf0, 0x89, 0x6e, 0xee, 0x51, 0x67, 0xa0,
- 0x1d, 0xc1, 0x2b, 0xc3, 0xe5, 0xff, 0x8c, 0xd7, 0xfb, 0xe6, 0x02, 0x6d,
- 0xb6, 0x6e, 0x4d, 0xb4, 0x95, 0xf7, 0xfb, 0xf7, 0xe3, 0x7f, 0xde, 0x1c,
- 0x86, 0xe0, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x6f, 0xf1, 0x63, 0x31, 0xf2, 0xde, 0x03, 0xc3, 0xc8,
- 0x6e, 0x0f, 0xe6, 0x70, 0x83, 0x93, 0xf4, 0x35, 0x7f, 0xad, 0x85, 0x8b,
- 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0xd3, 0x60, 0x21, 0xff,
- 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xfa, 0x7f, 0xfc, 0xc2,
- 0x70, 0x95, 0x9c, 0x97, 0x65, 0x95, 0xe1, 0xfb, 0x4b, 0x15, 0xff, 0xff,
- 0xbf, 0xfe, 0x28, 0x60, 0x15, 0x19, 0x5e, 0xfb, 0x6d, 0x2e, 0x49, 0xd0,
- 0x0d, 0x8f, 0x36, 0xe1, 0xf3, 0x60, 0x00, 0x41, 0x79, 0x00, 0x31, 0x2a,
- 0x1b, 0xc5, 0x45, 0x10, 0xfe, 0x73, 0xbe, 0x24, 0xcb, 0xf9, 0x18, 0xb3,
- 0x38, 0xf9, 0x34, 0xa9, 0x35, 0x32, 0x18, 0x02, 0xff, 0x7f, 0xc2, 0x62,
- 0x44, 0x11, 0x61, 0xe1, 0xb5, 0xba, 0xbc, 0x1e, 0xd3, 0x0a, 0xa6, 0xee,
- 0x7f, 0xaf, 0x56, 0x02, 0x85, 0xf8, 0x55, 0xbf, 0xc5, 0x7f, 0xfb, 0xf5,
- 0x8c, 0xf1, 0x9c, 0xb7, 0x64, 0x00, 0xec, 0xd0, 0xe6, 0x23, 0x99, 0x78,
- 0x37, 0x5f, 0x56, 0xc7, 0x79, 0xe0, 0x42, 0xc7, 0x61, 0x27, 0xd5, 0xe7,
- 0x83, 0x0e, 0xeb, 0x0f, 0xbc, 0x7f, 0xd9, 0x8e, 0xe1, 0x62, 0x20, 0xcb,
- 0xbe, 0x1f, 0xf1, 0x87, 0xdd, 0x6c, 0x77, 0xff, 0xfc, 0x9d, 0xfb, 0xfe,
- 0xfc, 0x9c, 0x04, 0x40, 0x84, 0x04, 0xdb, 0xcf, 0xff, 0xef, 0x2d, 0xca,
- 0x84, 0xb9, 0xcf, 0x01, 0x37, 0x77, 0x57, 0x30, 0xb8, 0x00, 0xd2, 0x48,
- 0x4b, 0x1d, 0x69, 0xb0, 0x0c, 0x6f, 0xde, 0x40, 0x85, 0x04, 0x41, 0xe4,
- 0x0c, 0xf4, 0x84, 0x88, 0x39, 0xe7, 0xd7, 0xd3, 0xe3, 0x9f, 0x7b, 0x7c,
- 0x76, 0xd7, 0x86, 0x02, 0xab, 0xaf, 0xc5, 0x78, 0xa2, 0xe1, 0x1f, 0x2d,
- 0x82, 0x01, 0xfa, 0xfb, 0x3d, 0xf9, 0x74, 0x98, 0xbc, 0xbf, 0x00, 0xbe,
- 0x94, 0x06, 0xa2, 0x2f, 0xc3, 0x1f, 0xeb, 0xae, 0xb8, 0x57, 0x01, 0xef,
- 0xff, 0xaf, 0xf0, 0x07, 0xbf, 0xf9, 0xdd, 0xc6, 0x08, 0xa8, 0x8e, 0x08,
- 0xb1, 0xd0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x8a, 0xf9,
- 0x18, 0x29, 0x07, 0x1a, 0xc4, 0x0a, 0x00, 0x46, 0x5e, 0x0b, 0x8c, 0x7b,
- 0xf1, 0xe1, 0x4d, 0x30, 0x00, 0x4f, 0xcf, 0xf0, 0x00, 0x00, 0x40, 0x02,
- 0x00, 0xa2, 0xd4, 0x81, 0x18, 0x0a, 0x98, 0x01, 0x5a, 0xd0, 0x2e, 0x60,
- 0x1c, 0x06, 0xf1, 0x9d, 0xf7, 0xd7, 0x78, 0xdf, 0xf2, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc,
- 0xdd, 0xfb, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59,
- 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09, 0xc0, 0x04, 0x6d, 0xb7,
- 0x2b, 0x73, 0xfc, 0x11, 0x8f, 0x73, 0xb4, 0x7e, 0xb7, 0xf1, 0x05, 0x17,
- 0xc1, 0xea, 0x46, 0x64, 0x25, 0x93, 0xbe, 0xff, 0x80, 0x32, 0xfb, 0xe8,
- 0x4f, 0xf7, 0x50, 0x8c, 0x05, 0x22, 0xd3, 0xc9, 0x35, 0x4f, 0x13, 0x15,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0x43, 0x80, 0x81, 0x49, 0xd0, 0x63,
- 0x07, 0x06, 0x1f, 0x75, 0xd7, 0xc8, 0x54, 0x60, 0xa3, 0x53, 0x8e, 0xf7,
- 0xf4, 0x40, 0x02, 0xf6, 0xda, 0x43, 0xf5, 0x0d, 0x45, 0xe1, 0xca, 0xde,
- 0x9b, 0x1e, 0xef, 0x1e, 0x0f, 0xc0, 0x0c, 0x23, 0xb9, 0x85, 0x49, 0x17,
- 0xf7, 0xf1, 0x0f, 0xe3, 0x7f, 0x79, 0x15, 0x7a, 0x60, 0xe7, 0x00, 0x45,
- 0xbb, 0x50, 0x2c, 0x80, 0xfc, 0x6c, 0xb9, 0x57, 0x4f, 0xac, 0x00, 0x01,
- 0x19, 0x26, 0xeb, 0xf9, 0x06, 0x21, 0x7a, 0x14, 0x6f, 0xff, 0xb6, 0x61,
- 0x30, 0x1a, 0x81, 0x30, 0x02, 0xae, 0x99, 0x3a, 0x2b, 0x43, 0xbc, 0xd2,
- 0x34, 0x6d, 0x4c, 0x3b, 0xf6, 0x4a, 0x7f, 0xce, 0x1c, 0xdf, 0xe1, 0x2f,
- 0xc1, 0x00, 0xb0, 0x82, 0x2c, 0x94, 0xc7, 0x93, 0xff, 0x7b, 0xf0, 0xc0,
- 0x14, 0x67, 0x85, 0x95, 0x77, 0x7f, 0xc5, 0x7f, 0xff, 0xff, 0xcd, 0xf8,
- 0xa9, 0x13, 0x13, 0xba, 0xad, 0x9b, 0x84, 0xcf, 0xb5, 0xe0, 0xe2, 0x27,
- 0x69, 0x61, 0x13, 0x58, 0xff, 0x3f, 0x80, 0x45, 0x2b, 0xd8, 0x1f, 0x21,
- 0x1b, 0xfa, 0xf8, 0x06, 0x26, 0x16, 0x54, 0xfd, 0x4b, 0x37, 0x41, 0xa9,
- 0x08, 0xbf, 0x9f, 0x77, 0xd9, 0x17, 0x3f, 0x0b, 0x02, 0x71, 0xd9, 0x65,
- 0x05, 0xd8, 0x39, 0x93, 0x07, 0xff, 0xff, 0xff, 0x27, 0xff, 0xff, 0xfc,
- 0xc1, 0x75, 0xc0, 0xbf, 0xe1, 0x26, 0x03, 0xbb, 0x6a, 0x38, 0xf4, 0x1f,
- 0x24, 0x87, 0x65, 0xd4, 0xf1, 0xb9, 0x6b, 0x13, 0x2c, 0x7b, 0x50, 0x2c,
- 0x56, 0x4c, 0xf2, 0xcf, 0xd0, 0xb5, 0x27, 0xff, 0x52, 0x64, 0xfd, 0x26,
- 0x5c, 0xf0, 0x67, 0xf5, 0xff, 0x5e, 0x3b, 0xdf, 0xbf, 0x1d, 0xec, 0xdf,
- 0x0a, 0x7f, 0xc3, 0xe5, 0xe0, 0x0b, 0xbe, 0xac, 0x77, 0xf7, 0x37, 0xfa,
- 0x53, 0xf0, 0x40, 0xc0, 0x16, 0x55, 0x54, 0x3b, 0xc3, 0x3c, 0x2f, 0x3e,
- 0xae, 0x3f, 0xf8, 0xf1, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xad,
- 0x64, 0x37, 0xed, 0xe0, 0xa0, 0x0e, 0x21, 0x31, 0x10, 0x03, 0x2a, 0xb6,
- 0x48, 0xc0, 0x00, 0x40, 0x13, 0x57, 0xa1, 0xb1, 0xda, 0xd0, 0x0c, 0x61,
- 0xc3, 0x98, 0x01, 0x2f, 0x64, 0x8d, 0xd3, 0xde, 0x09, 0x69, 0x8e, 0xcb,
- 0x4a, 0xf5, 0xeb, 0xbe, 0x26, 0x27, 0x27, 0xf8, 0x40, 0x33, 0xdf, 0x8c,
- 0xff, 0xa3, 0x7a, 0x25, 0x3e, 0x9c, 0x28, 0x68, 0x3e, 0x8d, 0xff, 0x75,
- 0x59, 0xfc, 0x8f, 0x06, 0x8d, 0x79, 0xf3, 0xec, 0x21, 0xf7, 0x1b, 0xfe,
- 0xff, 0xcd, 0xfe, 0x94, 0x72, 0x22, 0xc6, 0x13, 0x80, 0x06, 0x11, 0xe4,
- 0xa6, 0x6d, 0x26, 0xe8, 0x50, 0x01, 0x79, 0xbe, 0x24, 0x47, 0xf1, 0x7f,
- 0xf0, 0x78, 0x1f, 0x3d, 0xd7, 0x4a, 0xf3, 0xa0, 0x02, 0xed, 0xca, 0x1b,
- 0x32, 0x8f, 0xff, 0x50, 0x2d, 0xd2, 0xa1, 0x87, 0xf7, 0xa0, 0x00, 0x00,
- 0xcf, 0xec, 0x30, 0x1d, 0xdb, 0x00, 0x1f, 0x38, 0x9a, 0x70, 0xe3, 0x4f,
- 0x01, 0xbb, 0x1a, 0xbf, 0xf7, 0x46, 0xc8, 0xff, 0x98, 0x1f, 0x5b, 0xb5,
- 0xcd, 0x33, 0x67, 0xf0, 0x37, 0xe3, 0x7d, 0x79, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff,
- 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14,
- 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x77, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0x7f, 0x16, 0x7c, 0x02,
- 0x10, 0x65, 0x89, 0x43, 0xf2, 0xdb, 0xf0, 0x03, 0xb7, 0x7a, 0x9a, 0x49,
- 0xae, 0x9b, 0xa3, 0xd5, 0xc5, 0x7f, 0xff, 0xff, 0xbf, 0x0c, 0x07, 0x67,
- 0x8a, 0x28, 0xba, 0x2a, 0x0d, 0x88, 0xd7, 0xf1, 0x38, 0xf4, 0xff, 0x46,
- 0x03, 0x76, 0x01, 0xa6, 0x9c, 0x1d, 0x4e, 0x9e, 0x00, 0x36, 0xde, 0x85,
- 0x1b, 0xfe, 0xed, 0xb8, 0x6f, 0xc6, 0x04, 0xc0, 0x95, 0xb4, 0x39, 0xd0,
- 0x3f, 0xf1, 0x36, 0x33, 0x52, 0xec, 0x7d, 0x12, 0x96, 0xa8, 0x91, 0x22,
- 0x43, 0xab, 0x96, 0xe4, 0x1d, 0x8b, 0x97, 0x84, 0x02, 0x98, 0x69, 0xb1,
- 0x5d, 0xcf, 0x2f, 0x65, 0xfc, 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0x00, 0x68,
- 0xfa, 0xa4, 0x59, 0xb0, 0x00, 0xcd, 0xbf, 0xe5, 0x7c, 0x24, 0xde, 0x24,
- 0xd4, 0x00, 0x9c, 0xee, 0x48, 0x24, 0x62, 0xd4, 0x00, 0x8c, 0xdc, 0xe6,
- 0xb5, 0x79, 0x45, 0xf0, 0x92, 0x47, 0x0d, 0xad, 0x92, 0x37, 0xe7, 0x9c,
- 0x49, 0xb8, 0x01, 0x49, 0xa4, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xf8, 0x62,
- 0xa8, 0x2c, 0x0e, 0x23, 0xfe, 0x12, 0x61, 0x2c, 0xce, 0x22, 0x33, 0x4b,
- 0xb4, 0x0d, 0x0c, 0x4d, 0xea, 0x87, 0xd3, 0xf1, 0xe2, 0xca, 0x96, 0x33,
- 0x88, 0x49, 0x95, 0x6e, 0x7e, 0x18, 0xcf, 0xad, 0x33, 0x30, 0xce, 0xf9,
- 0x45, 0xff, 0xc0, 0x39, 0xf5, 0xf5, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0x38,
- 0x63, 0x3f, 0xa1, 0xcf, 0x0c, 0x26, 0x5c, 0x3d, 0x07, 0xe1, 0xc4, 0x4b,
- 0xa0, 0x3f, 0xc7, 0xe8, 0x1f, 0x80, 0x36, 0xd3, 0x70, 0x1f, 0x49, 0x0f,
- 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xac, 0x55, 0x8b, 0xd8, 0x63,
- 0xf1, 0x3f, 0xa7, 0x0a, 0x08, 0x00, 0x54, 0x68, 0xc8, 0x0c, 0x21, 0xf3,
- 0xc0, 0x7e, 0x0f, 0x80, 0x90, 0x8d, 0x9f, 0xcf, 0xf0, 0xc7, 0xf9, 0xd0,
- 0xfe, 0x13, 0x7a, 0xc4, 0xcd, 0x40, 0x7e, 0xf6, 0x78, 0x75, 0xb5, 0xf3,
- 0x45, 0xdc, 0x63, 0x0f, 0xd7, 0xde, 0x33, 0xe9, 0x78, 0x62, 0x78, 0x4c,
- 0x3b, 0x89, 0x0e, 0xd7, 0x80, 0xfd, 0xf5, 0x8f, 0xff, 0xc3, 0xff, 0x80,
- 0x1b, 0xbd, 0x5b, 0x84, 0x00, 0x28, 0x8e, 0x94, 0xcf, 0x93, 0x7d, 0x80,
- 0x48, 0xfd, 0x7b, 0x0b, 0xfd, 0x0f, 0x61, 0x0c, 0x7c, 0xf4, 0x98, 0xf8,
- 0x13, 0xfc, 0xb9, 0x03, 0x11, 0xdf, 0x50, 0x00, 0x07, 0xdf, 0x78, 0xdf,
- 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc,
- 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0xec, 0x61, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66,
- 0x3e, 0x00, 0xca, 0xd5, 0xb8, 0x73, 0xcc, 0x1a, 0x94, 0x7b, 0xd2, 0x10,
- 0xfc, 0xc2, 0x25, 0x29, 0x76, 0xd7, 0xbd, 0x7f, 0x8f, 0xf1, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x79, 0x48, 0x28, 0x60, 0x18, 0xbe, 0xfb, 0x69,
- 0x34, 0x3a, 0x1a, 0xcf, 0x3d, 0xd7, 0x8c, 0x63, 0x06, 0xa2, 0x4a, 0x99,
- 0x78, 0x01, 0x5a, 0x34, 0x0f, 0x98, 0xb9, 0x95, 0xf9, 0xaf, 0xdd, 0x6d,
- 0x8e, 0xd4, 0x60, 0xcc, 0x14, 0xf8, 0x5f, 0xf0, 0x98, 0x99, 0xd2, 0x06,
- 0x5b, 0x10, 0x97, 0x9d, 0xf4, 0x51, 0x8c, 0x48, 0xdb, 0xd8, 0x6a, 0xf6,
- 0xfa, 0xe4, 0x07, 0xc8, 0x7e, 0x4e, 0xbe, 0x7d, 0xfb, 0xdc, 0x57, 0xff,
- 0xff, 0xfc, 0xdf, 0x88, 0x32, 0x99, 0x2a, 0x4a, 0xcd, 0xc0, 0x0e, 0x2e,
- 0x42, 0x2f, 0x61, 0xe6, 0x56, 0xdc, 0x9b, 0x8f, 0x01, 0x08, 0x96, 0x6a,
- 0x5d, 0x4c, 0x8d, 0x70, 0x00, 0x89, 0x94, 0x13, 0x3d, 0x31, 0xc6, 0xe5,
- 0x40, 0x03, 0x7b, 0xa0, 0x36, 0xaa, 0x15, 0xea, 0x15, 0x75, 0xbf, 0x9d,
- 0xab, 0xb5, 0xea, 0x00, 0x0c, 0xee, 0xa3, 0x6a, 0x89, 0x35, 0x43, 0x8d,
- 0xc9, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xe2, 0x1b, 0x5e, 0xdc,
- 0x3e, 0xcc, 0x0e, 0x0f, 0x98, 0x14, 0x34, 0xab, 0x31, 0x76, 0xb7, 0x0d,
- 0xfc, 0xfe, 0xbf, 0xeb, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0xff,
- 0xc3, 0xe5, 0x80, 0x06, 0x13, 0xf5, 0xfd, 0xd7, 0xd2, 0xf2, 0x62, 0x26,
- 0x24, 0x35, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb1, 0x84,
- 0x37, 0xe8, 0xdf, 0xdb, 0xe1, 0xc3, 0xe6, 0x80, 0xe2, 0x0c, 0x50, 0x84,
- 0xc8, 0x0c, 0x5f, 0xde, 0xda, 0xee, 0xf0, 0x28, 0x01, 0x47, 0x11, 0x3f,
- 0xef, 0xc6, 0x7a, 0x37, 0xff, 0xb4, 0x02, 0x08, 0x4c, 0x00, 0x36, 0xa9,
- 0xb5, 0xd3, 0xfc, 0xf7, 0xf7, 0x9e, 0x7d, 0x86, 0x02, 0x38, 0xb1, 0x18,
- 0x00, 0x49, 0xbe, 0x22, 0x4c, 0xd9, 0x13, 0x06, 0x77, 0x04, 0xf8, 0xbf,
- 0x77, 0xfb, 0xf1, 0xc6, 0x51, 0xf0, 0x0f, 0xf8, 0x7a, 0x03, 0xa9, 0x33,
- 0xd4, 0x23, 0x6b, 0xef, 0xb7, 0xf9, 0x3f, 0xfc, 0x44, 0x50, 0x00, 0x10,
- 0x08, 0x80, 0x08, 0xbc, 0x93, 0x98, 0xc9, 0x00, 0x35, 0xfd, 0xf1, 0x04,
- 0xd9, 0x80, 0xb0, 0x19, 0xc0, 0xa0, 0x5c, 0x40, 0x2c, 0x30, 0x71, 0x8f,
- 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff,
- 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff,
- 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x57, 0x60, 0x25,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0xcc,
- 0x27, 0x00, 0x8f, 0x5b, 0x49, 0xff, 0x97, 0xd0, 0x44, 0x4c, 0x57, 0xff,
- 0xff, 0xff, 0x78, 0xa1, 0x41, 0x47, 0x7b, 0x94, 0x99, 0x7b, 0xa5, 0xe0,
- 0x0d, 0xe2, 0x94, 0x5a, 0x03, 0xaf, 0x90, 0x03, 0x8d, 0x0e, 0x93, 0xb6,
- 0x3f, 0x8a, 0x22, 0x8f, 0x40, 0x9d, 0x21, 0x6b, 0x9d, 0xf0, 0xc6, 0xdf,
- 0x5b, 0xfe, 0x13, 0x16, 0x01, 0x41, 0xb0, 0x00, 0x98, 0x72, 0xaf, 0x7f,
- 0x6b, 0xc0, 0xf9, 0xaf, 0xb7, 0x4b, 0x9e, 0x19, 0x59, 0x8a, 0xfe, 0xf0,
- 0xcd, 0x5a, 0x4a, 0x4b, 0xb5, 0xe2, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07,
- 0x19, 0x83, 0x15, 0x9b, 0x00, 0x8f, 0x5f, 0x6c, 0x3c, 0x51, 0xd2, 0xde,
- 0x1d, 0x97, 0x80, 0x9b, 0x9a, 0xd0, 0x7c, 0x82, 0x3b, 0xdd, 0xa5, 0x1f,
- 0xbf, 0x7b, 0xfc, 0x1a, 0xf2, 0xa4, 0x15, 0xee, 0xfd, 0x91, 0x74, 0x89,
- 0xdc, 0xc3, 0x8d, 0x1f, 0x3f, 0xff, 0xe4, 0xff, 0xfe, 0x18, 0xb5, 0x36,
- 0xff, 0xc2, 0x47, 0x80, 0x51, 0xd5, 0x8f, 0x7f, 0x90, 0x9a, 0x6b, 0x1d,
- 0x65, 0x46, 0xe8, 0x2d, 0x68, 0x24, 0x27, 0x18, 0x73, 0xeb, 0xeb, 0x1d,
- 0xbd, 0xe3, 0xb6, 0x18, 0xf8, 0x7f, 0x1a, 0x41, 0x0e, 0x07, 0x44, 0x54,
- 0xce, 0x85, 0x0c, 0xc4, 0xc7, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xad, 0x5d, 0x84, 0xf4, 0xbc, 0x80, 0xa0, 0x10, 0x83, 0x10, 0x70, 0x24,
- 0x40, 0x02, 0x96, 0xd2, 0x94, 0x78, 0x33, 0x12, 0xcf, 0xb3, 0xeb, 0x7f,
- 0x91, 0xf4, 0xfc, 0xc1, 0x04, 0xaf, 0x3d, 0x6b, 0x78, 0xcf, 0xc3, 0x71,
- 0x38, 0x61, 0x0a, 0x1f, 0xc7, 0xe1, 0x31, 0x0d, 0x15, 0xc0, 0x26, 0x6e,
- 0xfd, 0xa3, 0xdd, 0xe9, 0x90, 0xf0, 0x1e, 0x41, 0x7f, 0xbc, 0x6f, 0x5e,
- 0x18, 0xa0, 0xdd, 0xff, 0xf8, 0x4b, 0x00, 0x8b, 0xd5, 0xdb, 0x2d, 0x5e,
- 0xf7, 0xc5, 0x41, 0xb5, 0x5d, 0x10, 0x38, 0xd3, 0x86, 0x10, 0x1a, 0xb6,
- 0xb1, 0x04, 0x77, 0xd2, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f,
- 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0x85, 0x20,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xed, 0x69, 0x01, 0x6f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x0c, 0xa1, 0x8b, 0x36, 0x32, 0x6b, 0xed,
- 0xfc, 0x41, 0x5e, 0x01, 0x26, 0xff, 0x0e, 0x1e, 0xfe, 0xf1, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x27, 0xf1, 0x98, 0x89, 0x06, 0x12, 0x83, 0x2d,
- 0x11, 0x26, 0x69, 0xfa, 0x5d, 0x54, 0x56, 0x57, 0x53, 0x02, 0x0e, 0xa2,
- 0x04, 0x91, 0x8b, 0x6c, 0x00, 0xab, 0xba, 0x09, 0x7c, 0xef, 0x33, 0xb7,
- 0x15, 0xff, 0xff, 0xe4, 0xff, 0x96, 0x24, 0x59, 0xb8, 0x03, 0xfb, 0x9c,
- 0xdd, 0xa0, 0x1b, 0x8b, 0x32, 0xe3, 0x28, 0xd8, 0x9b, 0xca, 0x32, 0xe3,
- 0x09, 0xc6, 0xf5, 0xf2, 0xbc, 0x5f, 0x00, 0x97, 0xfa, 0x41, 0xf3, 0xfd,
- 0x42, 0x33, 0x66, 0xa3, 0xd3, 0xd2, 0x25, 0x88, 0x87, 0x31, 0xa1, 0xb5,
- 0x80, 0xfb, 0xe7, 0x7f, 0x3f, 0x12, 0x28, 0x8c, 0x33, 0x09, 0xaf, 0x24,
- 0x1e, 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xfd, 0xc4, 0x88, 0x18, 0x20,
- 0xa1, 0x97, 0x24, 0xd0, 0x00, 0xe0, 0xec, 0xf1, 0x80, 0xc3, 0x7f, 0xd0,
- 0xe3, 0xbb, 0x65, 0x4f, 0x10, 0x49, 0xc7, 0x86, 0xad, 0xf3, 0x97, 0xb3,
- 0xfc, 0xf2, 0x7e, 0xc6, 0x94, 0x91, 0x09, 0x73, 0xee, 0xc3, 0x21, 0x07,
- 0xee, 0x10, 0x06, 0x86, 0xeb, 0x9f, 0xd7, 0xfd, 0x78, 0xef, 0x7e, 0xfd,
- 0x78, 0xcf, 0x66, 0xf8, 0x10, 0xfb, 0x78, 0xc2, 0xc2, 0x47, 0x0f, 0x7a,
- 0x0e, 0x20, 0xfc, 0x02, 0x78, 0x7c, 0x09, 0x38, 0xd9, 0x26, 0x42, 0x8b,
- 0x61, 0xf9, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4,
- 0x08, 0x7f, 0x37, 0xff, 0xf6, 0x82, 0x13, 0x40, 0x90, 0xb6, 0x80, 0xfc,
- 0x2c, 0x17, 0x68, 0x77, 0xca, 0x02, 0x84, 0x31, 0x70, 0x11, 0x0d, 0x27,
- 0xaf, 0x37, 0xdf, 0xed, 0xf0, 0xee, 0xb7, 0xe8, 0x36, 0x7a, 0x0f, 0xeb,
- 0xdf, 0x8c, 0xf9, 0xbd, 0x88, 0xaa, 0xc2, 0x7a, 0x85, 0x93, 0x84, 0xcf,
- 0xb5, 0x87, 0x64, 0xc7, 0x3f, 0xae, 0x03, 0x28, 0x07, 0x99, 0x7c, 0x52,
- 0x75, 0xaf, 0x49, 0x8b, 0xcb, 0xe2, 0x62, 0xeb, 0xfe, 0xfc, 0x6f, 0x21,
- 0xb0, 0x07, 0xd4, 0x15, 0x24, 0x87, 0x99, 0x44, 0x61, 0x00, 0xff, 0x87,
- 0x90, 0x18, 0x39, 0x44, 0x60, 0x3f, 0x88, 0x60, 0x79, 0x5d, 0xfd, 0x77,
- 0xff, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff,
- 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff,
- 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf9, 0xbf,
- 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x99, 0x60, 0x2d, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x3e, 0x02,
- 0x10, 0x59, 0x13, 0x0c, 0x18, 0xce, 0xd4, 0xdf, 0x5e, 0x86, 0x62, 0x62,
- 0xbf, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x2a, 0x0e, 0xfb, 0xc6, 0x04,
- 0xba, 0x06, 0x2f, 0x51, 0x9e, 0xc0, 0x23, 0x79, 0xd1, 0x5a, 0x8c, 0xf6,
- 0xfd, 0xe0, 0x26, 0xa7, 0xc1, 0xcf, 0xfa, 0x84, 0x94, 0xb1, 0xde, 0x5e,
- 0x2e, 0x58, 0xc2, 0x4a, 0x5a, 0x18, 0x0f, 0xf9, 0x7e, 0x13, 0x17, 0xcc,
- 0x64, 0xd1, 0xa5, 0x5e, 0x7a, 0x30, 0x91, 0x54, 0x2c, 0xb6, 0xcf, 0x55,
- 0x7d, 0x7e, 0x2b, 0xff, 0xd7, 0xc5, 0x9a, 0x88, 0x12, 0x3c, 0xce, 0xe7,
- 0x01, 0xd3, 0x2c, 0xb7, 0x41, 0x1f, 0x99, 0x43, 0x68, 0xf4, 0xf6, 0xfa,
- 0x9b, 0x58, 0x7f, 0xff, 0xc9, 0xff, 0xeb, 0xd0, 0x88, 0x82, 0x87, 0x40,
- 0x43, 0xa0, 0x1c, 0x1f, 0x42, 0x2c, 0x0d, 0x82, 0x3f, 0x78, 0x1e, 0xfe,
- 0x94, 0xfb, 0x4f, 0x4d, 0xfa, 0x4b, 0xa8, 0x50, 0xb7, 0xcb, 0x8d, 0x76,
- 0x77, 0xaa, 0x6d, 0x1f, 0xe5, 0xe7, 0xd7, 0xd6, 0x3b, 0x7b, 0xd6, 0x33,
- 0x61, 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x24, 0x70, 0xf7, 0xab, 0xd2,
- 0x04, 0x7c, 0x9f, 0x8e, 0x4a, 0x00, 0xa2, 0x0d, 0xe3, 0x60, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xae, 0x65, 0x81, 0x0f, 0xaf, 0x20, 0x30, 0x0c,
- 0x83, 0x18, 0xe1, 0x10, 0xd2, 0x99, 0x85, 0x05, 0x7c, 0x39, 0xff, 0xff,
- 0xe3, 0xa2, 0x10, 0xbc, 0x80, 0xbc, 0x7b, 0xf2, 0xf7, 0x8c, 0xeb, 0xc3,
- 0x0c, 0x4d, 0xf0, 0xb7, 0xe1, 0x38, 0xaf, 0xc3, 0xa9, 0x13, 0x20, 0xbe,
- 0x9f, 0xf7, 0xd7, 0xde, 0x36, 0x47, 0x02, 0x5f, 0xe9, 0x77, 0xfb, 0xfc,
- 0xbf, 0xff, 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f,
- 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f, 0xa8, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xee, 0x71, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f,
- 0xff, 0xfc, 0x4c, 0xa2, 0x70, 0x2f, 0xa0, 0xfb, 0x46, 0x2b, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xef, 0x80, 0x98, 0x14, 0x20, 0x01, 0x56, 0x36, 0x89,
- 0x1b, 0x53, 0x70, 0xbc, 0x01, 0x6a, 0x53, 0x03, 0x11, 0x26, 0x8f, 0x83,
- 0x70, 0x66, 0xb2, 0x03, 0x49, 0x11, 0x22, 0x7e, 0x61, 0x00, 0x58, 0xce,
- 0x06, 0x80, 0xe5, 0x72, 0xdb, 0xe7, 0xc4, 0xfb, 0xbf, 0xf8, 0xaf, 0xff,
- 0xff, 0x27, 0xe4, 0xf8, 0xb3, 0x4a, 0xb4, 0xa5, 0x0c, 0x0b, 0x21, 0x97,
- 0x90, 0x4d, 0x39, 0x7f, 0xe4, 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb7, 0xc0,
- 0x14, 0x74, 0x22, 0xd6, 0x7e, 0x71, 0x7c, 0xa6, 0x78, 0x01, 0xc5, 0x69,
- 0xb5, 0x99, 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc,
- 0xcf, 0xba, 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcc, 0x82, 0x23, 0x6f,
- 0xff, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xc4, 0x0a, 0xa2, 0x86, 0x57, 0xfc,
- 0x50, 0x44, 0xce, 0x35, 0xdf, 0x4f, 0xf7, 0xf3, 0x14, 0x03, 0xc3, 0xfc,
- 0x24, 0x88, 0xcf, 0x6d, 0x4e, 0x1d, 0xf4, 0x85, 0xf4, 0x08, 0x6c, 0x32,
- 0x6a, 0xdd, 0x8d, 0x90, 0x62, 0x3a, 0x4d, 0xa3, 0x71, 0xff, 0x3f, 0xaf,
- 0xfa, 0xf1, 0xde, 0xfd, 0xf8, 0xef, 0x46, 0xff, 0xfc, 0x9e, 0x08, 0x4f,
- 0x00, 0x30, 0x3c, 0xaf, 0x8e, 0xc0, 0x02, 0xef, 0xfc, 0x52, 0x97, 0x88,
- 0x7b, 0xff, 0x47, 0xf4, 0xbc, 0x13, 0x7c, 0x1c, 0x5e, 0x5f, 0x89, 0x5c,
- 0x00, 0xfc, 0xf4, 0x87, 0xd9, 0x19, 0x40, 0x13, 0xf6, 0x9a, 0x43, 0xa9,
- 0x0f, 0x01, 0xf8, 0x40, 0xca, 0xeb, 0x64, 0x03, 0xa6, 0x00, 0x0f, 0xef,
- 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4, 0x26, 0x6d,
- 0x3d, 0xd0, 0x85, 0x1c, 0x8b, 0x62, 0x30, 0xf5, 0xd9, 0xe0, 0x11, 0xeb,
- 0xed, 0x8a, 0xeb, 0x62, 0x01, 0xd3, 0x0d, 0x78, 0x3d, 0x40, 0x10, 0xdf,
- 0x14, 0x2f, 0x33, 0xef, 0xfc, 0x60, 0x8d, 0xab, 0xa5, 0xa9, 0x1f, 0x90,
- 0x30, 0xff, 0xf3, 0x5f, 0xff, 0xf8, 0x49, 0x80, 0x17, 0x9f, 0xa4, 0x1a,
- 0xb3, 0x79, 0x3e, 0x3f, 0xc0, 0x7f, 0x94, 0x00, 0x03, 0xf0, 0x5f, 0x81,
- 0x83, 0xfa, 0xf7, 0xe3, 0x0d, 0x4c, 0xe6, 0x7f, 0x3e, 0x29, 0x41, 0x13,
- 0x5d, 0xdb, 0x96, 0x7e, 0xe7, 0xdf, 0x69, 0xf7, 0x01, 0xff, 0xff, 0x7f,
- 0x0f, 0xb5, 0xf3, 0xc0, 0xff, 0x5d, 0x8d, 0x3e, 0xe0, 0x3f, 0xff, 0xef,
- 0xe3, 0xfd, 0x83, 0xf0, 0xf9, 0xbf, 0xd7, 0x3d, 0x70, 0xac, 0x01, 0x7b,
- 0x5d, 0xf6, 0xad, 0xbf, 0xf6, 0xff, 0xf8, 0x01, 0x61, 0xd6, 0xeb, 0xd9,
- 0x15, 0xeb, 0x96, 0x62, 0x7b, 0xe7, 0xf3, 0xff, 0xe8, 0xf1, 0x3f, 0xfd,
- 0xf8, 0xdf, 0xf6, 0x20, 0x78, 0x1e, 0x09, 0xbb, 0x8f, 0x60, 0xff, 0xbc,
- 0x38, 0x9f, 0xef, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xab, 0xdb, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd7, 0xfe, 0x63, 0xe0, 0x0b, 0x5a, 0x60, 0xb0, 0xb2, 0x60,
- 0xf5, 0xd5, 0x36, 0xfc, 0xbe, 0x2b, 0xff, 0xff, 0xff, 0x86, 0x03, 0xb3,
- 0xc2, 0xa0, 0xe8, 0xab, 0x8c, 0x15, 0x6f, 0xac, 0x8c, 0x1e, 0x7c, 0x15,
- 0x9d, 0xa9, 0x9c, 0xb0, 0x0b, 0x5f, 0x51, 0xf7, 0x3c, 0x1f, 0xec, 0x74,
- 0x0c, 0xaa, 0x95, 0x8b, 0x30, 0xbf, 0xb6, 0x6e, 0x5f, 0x96, 0x11, 0x8a,
- 0xff, 0xf7, 0xe1, 0x8f, 0xd6, 0xc3, 0x00, 0xf6, 0x4e, 0x04, 0xd7, 0xd3,
- 0x3e, 0x87, 0x04, 0x83, 0x69, 0xd6, 0xd6, 0xa4, 0xc5, 0x4f, 0x3f, 0x1f,
- 0x4a, 0x4c, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xbf, 0x0c, 0x70, 0xc1, 0xff,
- 0xe1, 0x2e, 0x02, 0x5b, 0x9d, 0x1e, 0x21, 0x93, 0x2f, 0x02, 0x4f, 0xf2,
- 0xd8, 0xfa, 0xfa, 0xc7, 0x6f, 0x7a, 0xc6, 0x69, 0x78, 0x63, 0xe0, 0x43,
- 0x22, 0xfc, 0x13, 0x16, 0x12, 0x38, 0x7b, 0xd0, 0x62, 0x03, 0xc3, 0xce,
- 0x50, 0x21, 0x40, 0x9b, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xaf, 0x6d, 0x81, 0x4d, 0x78, 0x63, 0xf2, 0xc8, 0xbf, 0x04, 0xc2, 0x20,
- 0x22, 0xc6, 0x62, 0x02, 0x3d, 0x14, 0x08, 0x79, 0xca, 0x04, 0x28, 0x12,
- 0x6f, 0xbd, 0xe3, 0x23, 0xf1, 0xd5, 0xe5, 0x80, 0xc0, 0x45, 0x8c, 0xf0,
- 0x23, 0xd0, 0x69, 0x3f, 0xd9, 0xe0, 0x78, 0xee, 0x7e, 0x18, 0xff, 0x38,
- 0xae, 0xa1, 0x17, 0x3f, 0xe1, 0x36, 0xbc, 0x0f, 0xf1, 0x7f, 0x80, 0x1f,
- 0x97, 0xdc, 0x4e, 0xb7, 0x76, 0x92, 0xf0, 0x6f, 0xef, 0x1b, 0xdf, 0xfc,
- 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08,
- 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff, 0xff, 0xaf, 0xf3, 0x7d, 0x40,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xef, 0x79, 0x03, 0xbf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5,
- 0xff, 0xfd, 0xe2, 0x66, 0x3e, 0x00, 0x17, 0xab, 0x47, 0xf6, 0x92, 0x3e,
- 0xf5, 0xd4, 0x33, 0x5c, 0x60, 0x92, 0x97, 0x52, 0x5f, 0xe2, 0xbf, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x60, 0xec, 0xe8, 0xa8, 0xa2, 0xe2, 0xe6, 0xf6,
- 0x39, 0xf9, 0x58, 0x75, 0x22, 0xdb, 0x49, 0x73, 0x6d, 0x4d, 0x68, 0x5a,
- 0xc3, 0x7d, 0xef, 0x36, 0xcf, 0x00, 0x1b, 0x6f, 0x42, 0x89, 0xff, 0x76,
- 0xd4, 0x53, 0xd0, 0x6d, 0x65, 0x3c, 0x9f, 0x8b, 0xfd, 0x9b, 0xf2, 0x1b,
- 0x9f, 0x25, 0xff, 0xd6, 0x45, 0x57, 0x3e, 0x64, 0x87, 0xda, 0x5f, 0x84,
- 0xc5, 0x8e, 0x2a, 0x1c, 0x94, 0xe7, 0xcd, 0xf3, 0xd1, 0x40, 0xbc, 0x09,
- 0xd7, 0xad, 0xf0, 0x7f, 0x8b, 0x2c, 0x37, 0x7b, 0xbc, 0x1e, 0x2b, 0xff,
- 0xff, 0xfe, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x0c, 0x0f, 0x2b,
- 0xe3, 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8, 0x58, 0xc2, 0x9e, 0x45, 0xe7,
- 0x3e, 0x01, 0x9f, 0x82, 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f,
- 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0x91, 0xa0, 0x26, 0xe3, 0xf3,
- 0x33, 0x47, 0xc3, 0xff, 0x09, 0x20, 0x17, 0x4d, 0x03, 0x31, 0xe5, 0x6a,
- 0x0f, 0xc0, 0x11, 0x4d, 0x03, 0x31, 0xcd, 0x5a, 0x80, 0x11, 0x4d, 0x03,
- 0x31, 0x4d, 0x5a, 0xbc, 0x39, 0xfd, 0x7f, 0xd7, 0x8e, 0xf7, 0xef, 0xc7,
- 0x1b, 0xe5, 0x2f, 0xa5, 0x21, 0x42, 0xf0, 0x1c, 0x46, 0x70, 0x24, 0xb4,
- 0x01, 0x74, 0xaa, 0x12, 0xae, 0xf9, 0x3e, 0xf4, 0x34, 0x01, 0x9e, 0x95,
- 0xa9, 0x87, 0x1d, 0xb2, 0x6c, 0x7b, 0x88, 0xff, 0x84, 0x9f, 0x80, 0x08,
- 0x7e, 0xee, 0x77, 0x3f, 0xfb, 0xe7, 0x37, 0xc7, 0xff, 0x87, 0xe0, 0x06,
- 0x25, 0xc4, 0x8d, 0xa5, 0xda, 0xc8, 0xd1, 0xfc, 0xdf, 0x08, 0xff, 0xc3,
- 0xea, 0x01, 0x19, 0x68, 0xd2, 0xaf, 0x3e, 0xfc, 0x6c, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xbd, 0xe4, 0x57, 0x21, 0xa0, 0x06, 0xc7, 0x65, 0xa0,
- 0x18, 0xc3, 0x87, 0x37, 0xe6, 0xd3, 0xe9, 0x14, 0xf8, 0x4d, 0x07, 0x00,
- 0x12, 0x6e, 0x9d, 0xfa, 0x27, 0xee, 0x78, 0x3d, 0x0e, 0x69, 0xec, 0xb9,
- 0xeb, 0xe9, 0xfe, 0x00, 0x0f, 0xb4, 0xef, 0xd4, 0xb5, 0xbf, 0xd8, 0x0a,
- 0xcf, 0xf1, 0x11, 0x35, 0xef, 0xc6, 0x73, 0x08, 0x82, 0x4f, 0x1f, 0xf6,
- 0xff, 0x01, 0x5b, 0xbf, 0xfb, 0xf1, 0xbc, 0x8e, 0x1d, 0x80, 0x37, 0xff,
- 0xed, 0x42, 0x46, 0x8a, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f,
- 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xac, 0x1d, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xf9, 0x04, 0x14, 0x4e, 0x2b, 0xff, 0xff,
- 0xff, 0x86, 0x03, 0xb0, 0xc1, 0x14, 0x5e, 0x0b, 0x8c, 0x20, 0x0a, 0x8d,
- 0x36, 0x5a, 0x42, 0x00, 0x2d, 0x40, 0x33, 0x7f, 0xba, 0x96, 0x93, 0x0b,
- 0x20, 0x08, 0xe4, 0xbd, 0xdc, 0xdf, 0xf0, 0x46, 0x5f, 0xe8, 0xb6, 0x61,
- 0x68, 0xc5, 0x34, 0xb4, 0x30, 0x1f, 0xf7, 0xfc, 0x26, 0x2c, 0x0f, 0x24,
- 0x0e, 0x0a, 0xcd, 0xce, 0x64, 0x44, 0x9b, 0xff, 0xfe, 0xaf, 0x2a, 0x0c,
- 0x7b, 0xa8, 0xa7, 0x7f, 0xc5, 0x7f, 0xff, 0x58, 0xb4, 0x00, 0xbb, 0x8e,
- 0x23, 0xdd, 0x47, 0x5f, 0xf3, 0x36, 0x78, 0x07, 0x12, 0xbb, 0x3e, 0xa7,
- 0xe4, 0x48, 0x00, 0xdc, 0x3a, 0x30, 0x70, 0x69, 0xbc, 0xbb, 0x6a, 0x6d,
- 0xb5, 0x9f, 0xff, 0xf2, 0x7f, 0xfb, 0xf2, 0x70, 0x2a, 0x08, 0x48, 0x0c,
- 0x67, 0xd1, 0x38, 0xcf, 0x00, 0x26, 0x6b, 0xba, 0xfc, 0x5c, 0x01, 0xa9,
- 0x21, 0x2d, 0xed, 0x6c, 0x19, 0xbf, 0x78, 0xc8, 0x88, 0xc9, 0x8c, 0x3d,
- 0x12, 0x4e, 0x3c, 0xfa, 0xfa, 0xc7, 0x6f, 0x78, 0xe5, 0xe1, 0x8f, 0xfe,
- 0x3b, 0xbc, 0x2a, 0x5c, 0x26, 0x7d, 0xac, 0x0e, 0xd3, 0xca, 0x45, 0x8c,
- 0xbc, 0xf5, 0x55, 0x0c, 0x7f, 0xdf, 0x7f, 0x19, 0xe0, 0x26, 0xa3, 0xd0,
- 0x70, 0x04, 0x74, 0x3a, 0xc6, 0x78, 0x8d, 0xa3, 0x37, 0xf2, 0xf3, 0xf3,
- 0xdf, 0xc7, 0x3e, 0x18, 0xdd, 0xc8, 0x1c, 0x7f, 0xe1, 0x2e, 0x3f, 0xba,
- 0x76, 0x91, 0x82, 0x82, 0x2f, 0x01, 0x04, 0xc3, 0x3a, 0x7e, 0x7f, 0x2f,
- 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb0, 0x75, 0x83, 0x27, 0x90,
- 0xd0, 0x11, 0x7e, 0xdf, 0x9f, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1b, 0xfb,
- 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff,
- 0x08, 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff, 0xff, 0x8d, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf0, 0x81, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
- 0xf3, 0x1f, 0x80, 0x4c, 0x19, 0xb8, 0x91, 0x69, 0x62, 0x64, 0x8b, 0xe0,
- 0x3c, 0xdd, 0xf0, 0xae, 0xdf, 0xec, 0x1e, 0x00, 0x72, 0x6f, 0x64, 0xba,
- 0xf9, 0x81, 0x4d, 0xe4, 0x16, 0x72, 0xb3, 0x15, 0xbf, 0xa7, 0x89, 0x8a,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0xe2, 0x49, 0x8c, 0x84, 0x47, 0x00,
- 0x0d, 0x7b, 0x26, 0x43, 0x47, 0x43, 0xd5, 0xe9, 0xfe, 0x85, 0x9b, 0x0e,
- 0x9e, 0xf0, 0x88, 0xfc, 0x16, 0x29, 0x48, 0x7e, 0x61, 0x91, 0x83, 0xa9,
- 0x89, 0xc0, 0x08, 0xa3, 0x26, 0x49, 0x9c, 0x6e, 0xee, 0xc6, 0xb3, 0x60,
- 0x3b, 0xc9, 0x10, 0x34, 0x3d, 0x7d, 0x23, 0x63, 0xdf, 0x80, 0x40, 0xe6,
- 0x30, 0x62, 0x38, 0x83, 0xc4, 0x1a, 0x61, 0x6a, 0x6d, 0x97, 0xa1, 0xad,
- 0xe7, 0xff, 0x7b, 0x47, 0x2e, 0x40, 0x2b, 0xe7, 0xf0, 0x8e, 0xac, 0xce,
- 0x29, 0x7b, 0xdf, 0x8c, 0x00, 0x01, 0x99, 0x24, 0x9b, 0x7f, 0xbb, 0x06,
- 0xd8, 0xdc, 0xbf, 0xce, 0xff, 0x80, 0x10, 0xed, 0x91, 0x89, 0x64, 0xf7,
- 0xa0, 0xf4, 0x98, 0xf2, 0x3e, 0x36, 0xa6, 0x0c, 0xe7, 0x6e, 0x24, 0x97,
- 0x77, 0xc3, 0x9b, 0xfc, 0x25, 0xf8, 0x20, 0x12, 0x05, 0x11, 0x71, 0x29,
- 0x8f, 0xa2, 0x3f, 0xff, 0xf0, 0x2a, 0x28, 0x88, 0xc7, 0x49, 0x96, 0xbf,
- 0xde, 0x2b, 0xff, 0xff, 0xf8, 0xb3, 0x0e, 0x9d, 0xa9, 0x10, 0x3f, 0xc3,
- 0x31, 0x2f, 0x46, 0x95, 0x13, 0xb9, 0xbf, 0x15, 0x22, 0x62, 0x77, 0x55,
- 0xb7, 0xc2, 0x67, 0xda, 0xf0, 0x40, 0x61, 0x8e, 0x6a, 0x70, 0x97, 0xd1,
- 0xff, 0xcf, 0x80, 0x60, 0x11, 0x45, 0x7b, 0x00, 0xf8, 0xcc, 0x6f, 0xeb,
- 0xe1, 0x28, 0x23, 0x36, 0x53, 0x9f, 0xea, 0x59, 0x5c, 0x81, 0xa9, 0x8c,
- 0xbf, 0x9f, 0x77, 0x6c, 0x85, 0xe3, 0xf1, 0x71, 0xa1, 0xfe, 0x7d, 0x56,
- 0x25, 0xa9, 0x04, 0xde, 0xe7, 0x37, 0x1e, 0x83, 0xcc, 0x44, 0x6f, 0x11,
- 0xdf, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xb1, 0x47, 0x5c, 0xc1, 0xde,
- 0x64, 0x0a, 0xe0, 0x5f, 0xf0, 0x92, 0x28, 0x8a, 0xd7, 0xd5, 0xe6, 0x3e,
- 0x2d, 0x9d, 0x62, 0xdf, 0x61, 0x9c, 0x2d, 0x78, 0x55, 0x9d, 0xdf, 0xc3,
- 0x8b, 0x17, 0x99, 0xe5, 0xab, 0x93, 0x46, 0x29, 0xba, 0x93, 0x4f, 0xd2,
- 0xc9, 0xcf, 0x00, 0x33, 0xf2, 0x97, 0x00, 0x0a, 0x7f, 0x29, 0xdf, 0x00,
- 0x38, 0x1b, 0xfe, 0xee, 0xfe, 0xe9, 0xdd, 0x1f, 0xaf, 0x1d, 0xc5, 0x60,
- 0x04, 0xaf, 0x91, 0x4c, 0x06, 0x33, 0xeb, 0x9a, 0x1b, 0x86, 0x27, 0xea,
- 0x14, 0x60, 0xe1, 0xcd, 0x01, 0xaf, 0xd6, 0x63, 0xfa, 0x94, 0x01, 0x10,
- 0x00, 0x00, 0x40, 0x33, 0x35, 0x75, 0x5a, 0xff, 0xc2, 0x4c, 0x15, 0x32,
- 0xe1, 0xfe, 0x0f, 0xc0, 0x3c, 0x1f, 0x2c, 0x92, 0xe7, 0x0f, 0xe8, 0xd5,
- 0xeb, 0x5e, 0x7f, 0xfe, 0x8b, 0x87, 0xf8, 0x26, 0xd5, 0x70, 0xc7, 0x55,
- 0xe0, 0x9d, 0x7c, 0x06, 0x80, 0xdc, 0xb5, 0x80, 0xd5, 0x38, 0x54, 0xeb,
- 0xec, 0xf7, 0xd2, 0x00, 0xa2, 0xf6, 0xc0, 0xd4, 0x44, 0x4c, 0xeb, 0xc7,
- 0xef, 0x03, 0xfe, 0x6f, 0x87, 0xaa, 0xfc, 0x10, 0x2f, 0x80, 0x3f, 0x2a,
- 0x8e, 0xee, 0x00, 0x7f, 0x75, 0x67, 0x7f, 0x74, 0xfc, 0x72, 0x10, 0x0c,
- 0x31, 0x4c, 0x00, 0x27, 0x95, 0xb3, 0x10, 0xbd, 0x5a, 0x43, 0x43, 0x40,
- 0x60, 0xc0, 0x83, 0x29, 0x26, 0x85, 0x35, 0x7f, 0x2b, 0xbb, 0x3f, 0x13,
- 0x13, 0x88, 0xf3, 0x0f, 0x57, 0xff, 0xe1, 0xf3, 0x00, 0x3c, 0xa5, 0x51,
- 0xdd, 0xc0, 0x07, 0xe2, 0x46, 0xa6, 0x75, 0xaf, 0xdf, 0x8d, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x15, 0x7f, 0xcb, 0xef, 0xc6,
- 0x72, 0x08, 0x60, 0x70, 0xcc, 0xb7, 0xbf, 0x9b, 0x86, 0x10, 0x3b, 0x77,
- 0xff, 0x7e, 0x37, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f,
- 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xac, 0x5f, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xeb, 0xff, 0xaf, 0xdf, 0x90, 0x4c, 0xb1, 0x67, 0xc1, 0x1b, 0x47,
- 0x7d, 0x5f, 0xc1, 0x1b, 0xd2, 0xf2, 0xae, 0x2b, 0xff, 0xff, 0xfd, 0xf8,
- 0x60, 0xc1, 0xac, 0xfb, 0xc6, 0x82, 0xab, 0x62, 0x00, 0x55, 0xaf, 0x8d,
- 0xd9, 0xff, 0xcd, 0xc6, 0x92, 0x9c, 0xf0, 0x07, 0xe3, 0xd3, 0xfd, 0x18,
- 0x37, 0x60, 0x34, 0xd3, 0x83, 0xab, 0xa7, 0x80, 0xeb, 0xf2, 0xc7, 0xfc,
- 0xef, 0xf9, 0xae, 0x0e, 0x58, 0x43, 0xa0, 0x33, 0x65, 0x70, 0x3f, 0x92,
- 0x77, 0x35, 0x44, 0xb1, 0x26, 0x63, 0x9d, 0xa3, 0xd7, 0x1e, 0x12, 0x53,
- 0x1a, 0x48, 0xee, 0xa3, 0xc5, 0x7f, 0xfb, 0xf0, 0xc7, 0x1e, 0x00, 0x68,
- 0xf9, 0xa4, 0x59, 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3d, 0x5a, 0x96,
- 0x1e, 0xad, 0x26, 0x0a, 0xc5, 0x14, 0x04, 0x82, 0x99, 0x78, 0x09, 0x19,
- 0xce, 0xa7, 0x94, 0x5f, 0x11, 0x48, 0xe1, 0xb5, 0xb4, 0x9b, 0xf3, 0xc7,
- 0x2e, 0xad, 0x80, 0x6b, 0x21, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xbf, 0x0c,
- 0x1a, 0xa0, 0x85, 0xc7, 0xfe, 0x12, 0x66, 0x51, 0x24, 0x6d, 0x57, 0x81,
- 0x98, 0x9b, 0xe8, 0x3f, 0xbb, 0xc7, 0xb9, 0x52, 0xc6, 0x39, 0x38, 0x78,
- 0x3b, 0x7c, 0xcd, 0x4a, 0xbe, 0x56, 0x33, 0xbe, 0x51, 0x7f, 0xf0, 0x00,
- 0xce, 0xba, 0xfa, 0xc7, 0x2c, 0xc5, 0x80, 0x11, 0x02, 0xfb, 0x30, 0xe8,
- 0x43, 0xf7, 0xf4, 0x9e, 0x00, 0x02, 0x00, 0x18, 0x63, 0xfc, 0x47, 0x5f,
- 0x0a, 0xdf, 0x6c, 0x0e, 0x88, 0xad, 0x7e, 0x87, 0x80, 0x4a, 0xdf, 0x7b,
- 0x43, 0x1f, 0xfc, 0x75, 0x18, 0x57, 0x8f, 0x77, 0xcb, 0x07, 0x80, 0xf3,
- 0x2c, 0x20, 0x69, 0xc0, 0x79, 0x1c, 0x76, 0xf4, 0xa4, 0x7d, 0x77, 0x8e,
- 0x7d, 0x06, 0xa2, 0x7a, 0x8c, 0x10, 0x20, 0x01, 0x91, 0xe8, 0x28, 0xc6,
- 0xc3, 0xde, 0xa5, 0xbf, 0x07, 0xac, 0xe5, 0x8c, 0x3c, 0xf4, 0x7b, 0xc6,
- 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x84, 0xbe, 0x5d,
- 0xe3, 0x1f, 0xbe, 0xfe, 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb,
- 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x01, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
- 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x81, 0x0b, 0x71, 0xfb, 0xf1,
- 0x11, 0x9f, 0xd3, 0xf3, 0x61, 0x12, 0x94, 0xbc, 0xbf, 0xad, 0x8f, 0xc5,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe5, 0x20, 0xa1, 0x81, 0x07, 0xdb,
- 0x97, 0x37, 0x56, 0xc1, 0xaf, 0x3d, 0x8f, 0xde, 0x35, 0x47, 0xcd, 0x48,
- 0x5c, 0xc0, 0x0d, 0xad, 0x07, 0xc8, 0x5c, 0xcb, 0xdf, 0x7e, 0xe7, 0x7b,
- 0x1f, 0x36, 0x9f, 0x0b, 0xfe, 0x13, 0x12, 0xfa, 0x06, 0xc0, 0x02, 0xcb,
- 0xd5, 0x7c, 0xc2, 0x60, 0xbf, 0xf0, 0x5b, 0xd9, 0xef, 0x40, 0x0b, 0x17,
- 0xb5, 0x4e, 0x77, 0xf5, 0x45, 0x7f, 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x2a,
- 0x12, 0xa5, 0xac, 0xdc, 0x01, 0x47, 0x44, 0x3a, 0x8f, 0xcd, 0xb0, 0x75,
- 0x6f, 0xcf, 0x01, 0x54, 0x9c, 0x9f, 0x85, 0x1a, 0x00, 0x9a, 0x12, 0x8c,
- 0xf3, 0xbb, 0xc5, 0x81, 0xeb, 0x83, 0x65, 0x3e, 0x4c, 0x59, 0x98, 0xbe,
- 0xa7, 0x93, 0xa2, 0xc0, 0x7a, 0xf1, 0x32, 0x9a, 0x1e, 0xe4, 0x1e, 0xe3,
- 0x9b, 0xff, 0xf2, 0x28, 0x21, 0x3c, 0x00, 0x88, 0xdb, 0x09, 0x0a, 0xec,
- 0x7f, 0xbc, 0x00, 0x7a, 0x97, 0xc0, 0x7e, 0xf3, 0x1f, 0x7f, 0xe0, 0xff,
- 0xff, 0xdc, 0xf2, 0xfe, 0x39, 0xf4, 0xc1, 0x0c, 0x7c, 0xf1, 0xff, 0xff,
- 0xc9, 0xff, 0xff, 0xff, 0xe2, 0x08, 0x68, 0x31, 0xe6, 0xe1, 0x6c, 0x08,
- 0x35, 0x1a, 0x4b, 0x80, 0x3b, 0x08, 0x47, 0xff, 0x39, 0xa5, 0x69, 0x14,
- 0x89, 0xbf, 0x12, 0x58, 0x03, 0xd4, 0xbe, 0x03, 0xf7, 0x98, 0x02, 0xe4,
- 0xab, 0xa7, 0xba, 0x7e, 0xa6, 0xf7, 0xf8, 0xff, 0xfe, 0xe0, 0x61, 0xc0,
- 0x0b, 0x8e, 0xdd, 0x32, 0x2a, 0xbd, 0x54, 0x18, 0xce, 0xff, 0xfb, 0xdf,
- 0xef, 0xf3, 0x0a, 0x4f, 0x4f, 0x98, 0x4e, 0x09, 0xfe, 0x02, 0x57, 0xa9,
- 0x7f, 0x81, 0xe8, 0x18, 0x12, 0x3d, 0x0e, 0xf6, 0xff, 0xc0, 0x1c, 0xdc,
- 0xb3, 0xd2, 0x27, 0x8e, 0xfe, 0x07, 0x0c, 0x44, 0x4e, 0x64, 0x9a, 0x43,
- 0x9e, 0x13, 0xc5, 0x8c, 0x01, 0x2b, 0xd4, 0xbf, 0xc0, 0xff, 0xc3, 0x88,
- 0xb7, 0x7f, 0x80, 0x39, 0xb9, 0x67, 0xa5, 0xef, 0xc7, 0x7b, 0x37, 0x8b,
- 0x7f, 0xf0, 0xf8, 0x9f, 0x00, 0x19, 0xff, 0x11, 0x7f, 0x3f, 0xef, 0xff,
- 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc6, 0x24, 0x25, 0xff,
- 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53,
- 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
- 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x25, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x3e,
- 0x02, 0x6e, 0x7a, 0xfb, 0x8e, 0x3b, 0x96, 0x2b, 0xff, 0xff, 0xff, 0xbc,
- 0x50, 0x83, 0x18, 0x3b, 0x91, 0x21, 0xdd, 0x1e, 0x97, 0x80, 0x37, 0x8a,
- 0x51, 0xe0, 0x0e, 0xbe, 0x40, 0x24, 0x18, 0x74, 0x80, 0x4f, 0xd0, 0xfe,
- 0x32, 0x28, 0xf4, 0x07, 0xee, 0x45, 0x20, 0xe0, 0x70, 0xc4, 0x8b, 0xeb,
- 0x7f, 0xc2, 0x62, 0x40, 0xc1, 0x00, 0x12, 0x08, 0x8e, 0x86, 0x4b, 0x07,
- 0xe5, 0xcc, 0x6e, 0xdb, 0xbd, 0x78, 0x66, 0xda, 0x4a, 0x4b, 0xb5, 0xe2,
- 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0xb3, 0x6c, 0xd8, 0x04, 0x7a,
- 0xfb, 0x61, 0xec, 0xe9, 0x6f, 0x09, 0x79, 0x79, 0x64, 0xdd, 0xad, 0x07,
- 0xc9, 0xbf, 0xe9, 0x01, 0xe7, 0xaf, 0xfc, 0x3a, 0xd4, 0x85, 0xfd, 0xfe,
- 0xa9, 0x15, 0x07, 0x30, 0xe3, 0x47, 0xce, 0xbd, 0x7f, 0xf9, 0x3f, 0xff,
- 0x86, 0x2d, 0x4d, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea, 0xd3, 0xfc, 0x80,
- 0x9a, 0xd0, 0xd9, 0x50, 0x36, 0xd4, 0x2d, 0xe0, 0x98, 0x9c, 0x7c, 0x0e,
- 0x70, 0xc4, 0xac, 0x55, 0x02, 0x26, 0xcf, 0xb5, 0x00, 0x64, 0x7a, 0xb8,
- 0x7f, 0xd3, 0xa1, 0x75, 0x47, 0x99, 0x80, 0x83, 0xfe, 0x9f, 0x25, 0x7e,
- 0xc0, 0xe8, 0xbc, 0x00, 0xf9, 0xfc, 0x91, 0xb7, 0x14, 0x83, 0x6f, 0x7f,
- 0xcd, 0xff, 0x7f, 0xf8, 0x10, 0x7e, 0x3b, 0xd2, 0xfc, 0x31, 0xfe, 0x75,
- 0x3f, 0x82, 0x02, 0xe1, 0x1d, 0xf8, 0x97, 0xf2, 0x73, 0xec, 0xa0, 0xfc,
- 0x24, 0xc7, 0x77, 0xe1, 0x89, 0xeb, 0x13, 0xff, 0x87, 0xd0, 0x02, 0xdf,
- 0xb5, 0x81, 0x0e, 0x9f, 0xe0, 0x0f, 0x7d, 0xf1, 0xec, 0x43, 0x1f, 0xe6,
- 0x73, 0xd7, 0x0a, 0xa0, 0x21, 0xd4, 0x06, 0xbb, 0xcf, 0xf0, 0x25, 0xf4,
- 0x07, 0xef, 0x67, 0x6e, 0x0c, 0x17, 0x78, 0xed, 0xb8, 0x92, 0x17, 0x02,
- 0x6f, 0x40, 0x79, 0x91, 0xf7, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xb2, 0x85, 0x82, 0x2f, 0x97, 0x78, 0xcf, 0xbf, 0xbc, 0x6f, 0xff,
- 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xc2,
- 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5f, 0xff, 0xff, 0xe3, 0x60, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xf2, 0x91, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xae,
- 0x24, 0xa5, 0xc0, 0x0e, 0xe6, 0xa7, 0x63, 0xdf, 0x0a, 0x4b, 0xdb, 0xd2,
- 0xed, 0x62, 0x7f, 0xfc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x51, 0xb8, 0x24,
- 0x10, 0xd9, 0x1a, 0x11, 0x73, 0x88, 0x03, 0xff, 0xe6, 0x20, 0x6f, 0x88,
- 0x98, 0xf3, 0x8b, 0x62, 0x77, 0x63, 0x5d, 0x30, 0x66, 0x41, 0xc5, 0xda,
- 0xa3, 0x88, 0x6a, 0xa4, 0xda, 0x7e, 0x2a, 0x50, 0xbc, 0x91, 0x90, 0x1c,
- 0x84, 0x17, 0x28, 0x44, 0xdd, 0x57, 0xd7, 0xf8, 0x08, 0xca, 0xcd, 0x47,
- 0xbf, 0x37, 0xb1, 0xe1, 0x2a, 0x25, 0x63, 0x21, 0x1f, 0x27, 0xe0, 0x86,
- 0x18, 0x08, 0x5e, 0xb6, 0xb1, 0x65, 0x4c, 0x0c, 0xed, 0x3d, 0xc2, 0x2f,
- 0xff, 0xe0, 0x37, 0xbf, 0x57, 0xc8, 0x57, 0x00, 0x5a, 0xf3, 0x2a, 0x6c,
- 0xfb, 0x33, 0x92, 0x0a, 0xad, 0xa3, 0x61, 0x30, 0xa9, 0xf9, 0x53, 0x2a,
- 0x53, 0x00, 0x1f, 0x39, 0xff, 0x46, 0x10, 0x6e, 0x50, 0xe9, 0xa7, 0x73,
- 0x17, 0x00, 0x5a, 0xa4, 0x7e, 0x8c, 0x36, 0x3b, 0xbc, 0x97, 0x0c, 0x88,
- 0x63, 0x55, 0xc2, 0x9b, 0xa6, 0x99, 0x3f, 0xb4, 0xff, 0x09, 0x95, 0x2c,
- 0xa1, 0x39, 0x68, 0xe8, 0xe2, 0x1c, 0xfe, 0x2b, 0xff, 0xf9, 0x3f, 0xf0,
- 0x41, 0x08, 0xae, 0x1e, 0x49, 0x94, 0x0d, 0x9a, 0x26, 0xe8, 0x3c, 0x64,
- 0x74, 0xc0, 0x27, 0x16, 0x5a, 0x82, 0xfe, 0xd9, 0x4a, 0xa1, 0x20, 0x7b,
- 0xfe, 0x4f, 0x97, 0x89, 0xc5, 0xbf, 0x1e, 0x8e, 0x01, 0xd1, 0x95, 0xd3,
- 0x07, 0x96, 0x6b, 0x5a, 0x94, 0x42, 0x06, 0x50, 0x3a, 0x32, 0x41, 0x12,
- 0xda, 0x61, 0xce, 0xd2, 0x6e, 0x3d, 0x5c, 0xa2, 0xd6, 0x02, 0x47, 0xca,
- 0x03, 0xbf, 0xa5, 0xac, 0xa6, 0x6a, 0x3d, 0x3d, 0x22, 0x58, 0xcc, 0x73,
- 0x0c, 0x1b, 0xd3, 0x0f, 0x9f, 0xd3, 0xbb, 0x13, 0xf1, 0x12, 0x46, 0x53,
- 0x98, 0x37, 0xa7, 0xa5, 0x1e, 0x3f, 0x31, 0x60, 0x42, 0xdc, 0x7e, 0xec,
- 0xfc, 0x9f, 0xe0, 0x61, 0x03, 0x00, 0x18, 0x40, 0xf8, 0x21, 0x70, 0x04,
- 0x32, 0xb1, 0xf2, 0x1e, 0xfc, 0x81, 0x24, 0x75, 0x9c, 0x5f, 0x00, 0x02,
- 0x97, 0x61, 0xe0, 0x00, 0x4b, 0x33, 0x8e, 0xef, 0xff, 0xc2, 0x4c, 0xad,
- 0x51, 0x98, 0x0e, 0xa4, 0x32, 0xb4, 0xee, 0xfe, 0xb7, 0xff, 0x3d, 0x79,
- 0x3f, 0xff, 0xbc, 0x32, 0x20, 0x42, 0x84, 0x43, 0x64, 0xe3, 0xd1, 0xde,
- 0x9a, 0x6a, 0x3c, 0x36, 0x15, 0x73, 0x8f, 0x34, 0x14, 0x92, 0x42, 0x76,
- 0x40, 0x80, 0x82, 0x32, 0x6f, 0x6e, 0x8c, 0xf3, 0x58, 0x60, 0x30, 0x51,
- 0x02, 0x3e, 0x02, 0xa2, 0x73, 0x40, 0xab, 0x6f, 0xc3, 0x99, 0x24, 0x94,
- 0x79, 0xf8, 0x32, 0x70, 0xd4, 0xe7, 0x73, 0x1b, 0xe2, 0xd7, 0x1f, 0xd1,
- 0x64, 0xae, 0x9e, 0x9e, 0x56, 0x3d, 0x79, 0x22, 0x34, 0x9b, 0xa2, 0xd8,
- 0x21, 0x3f, 0xca, 0x08, 0x4b, 0x1c, 0xbf, 0x3f, 0xc4, 0xc4, 0xe2, 0x7b,
- 0xf1, 0xde, 0xc2, 0x72, 0x00, 0x02, 0x6d, 0x34, 0x93, 0x69, 0x26, 0x9b,
- 0xff, 0xe0, 0x69, 0x86, 0xb5, 0xf7, 0xeb, 0xc6, 0x7c, 0xdf, 0xc3, 0xfe,
- 0x14, 0x24, 0x03, 0xe6, 0x41, 0xfc, 0xfc, 0x11, 0x36, 0xdc, 0xd3, 0x45,
- 0x27, 0x0c, 0x12, 0x76, 0xda, 0x10, 0xcf, 0xe4, 0xde, 0x95, 0xea, 0xfa,
- 0xdc, 0x09, 0x1f, 0xcb, 0x22, 0xe3, 0xbc, 0xd4, 0x45, 0x4e, 0xe9, 0x9a,
- 0xbd, 0x56, 0xdf, 0x4a, 0x1c, 0x72, 0x73, 0x30, 0x99, 0x07, 0x10, 0xf0,
- 0x58, 0xb6, 0x08, 0x06, 0xee, 0xbd, 0x65, 0x6d, 0x0d, 0x1e, 0xee, 0x59,
- 0x03, 0x46, 0x87, 0x06, 0x06, 0x24, 0x72, 0xc1, 0x17, 0xe6, 0x6d, 0x4d,
- 0xf1, 0x66, 0x8a, 0x45, 0x27, 0x29, 0xc2, 0x56, 0x80, 0xc4, 0x9c, 0xb1,
- 0x9e, 0xc7, 0xbd, 0x5d, 0x01, 0xf6, 0xb8, 0x0e, 0xb9, 0x95, 0xa7, 0xc9,
- 0xf0, 0x6e, 0x41, 0x12, 0x1f, 0x5a, 0x69, 0xb0, 0xa7, 0xa4, 0x9a, 0x7b,
- 0x70, 0x68, 0x12, 0xa0, 0xe4, 0x77, 0xc3, 0xb5, 0x14, 0xf1, 0xd8, 0x8f,
- 0x14, 0x20, 0xd3, 0x38, 0xb3, 0xb6, 0x78, 0xe8, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xca, 0x44, 0x0a, 0x5f, 0xe4, 0x11, 0x02, 0x41, 0x77, 0x33,
- 0xfe, 0xda, 0xa2, 0x67, 0x2c, 0xa8, 0x99, 0xcb, 0x7f, 0x88, 0x81, 0xa2,
- 0x67, 0x2c, 0xa8, 0x99, 0xcb, 0x7a, 0xa2, 0x67, 0x2d, 0xd2, 0xfe, 0x21,
- 0x03, 0x40, 0x95, 0x01, 0x05, 0xbc, 0x09, 0x03, 0xc0, 0xe6, 0x16, 0x04,
- 0xb4, 0x55, 0x37, 0x2d, 0xe4, 0x1f, 0xb2, 0xaf, 0xc4, 0x16, 0x02, 0x2e,
- 0xed, 0xf9, 0xf5, 0xfb, 0xf8, 0xff, 0xf7, 0xe3, 0x3f, 0xef, 0xfe, 0xcd,
- 0x38, 0x2f, 0x6c, 0x7e, 0xc5, 0x01, 0x19, 0xb3, 0xbe, 0xcd, 0xd6, 0x94,
- 0xa4, 0x58, 0x07, 0x31, 0xe0, 0x31, 0x4d, 0xe6, 0x82, 0x6c, 0x18, 0xab,
- 0x63, 0x20, 0xea, 0x73, 0xdb, 0x46, 0x09, 0xa4, 0x98, 0x6e, 0x2c, 0x3d,
- 0x8c, 0x78, 0x53, 0xa2, 0x60, 0x80, 0x01, 0xd2, 0xaf, 0x58, 0x0e, 0xdc,
- 0x99, 0xff, 0x9b, 0xfb, 0x36, 0x3f, 0x71, 0x94, 0xbc, 0x9b, 0xdd, 0x78,
- 0xde, 0xbd, 0x89, 0xfc, 0xff, 0xe8, 0x86, 0x29, 0xbc, 0xd0, 0x26, 0xc1,
- 0x8a, 0xb6, 0x36, 0x1d, 0x4e, 0x7b, 0x69, 0x1b, 0x59, 0xec, 0x09, 0xc8,
- 0xb4, 0x1e, 0xfc, 0xf2, 0xfa, 0x90, 0x20, 0x00, 0x74, 0xab, 0xd6, 0x03,
- 0xb7, 0x26, 0x77, 0xf9, 0xb0, 0xf6, 0x6c, 0x7e, 0xe3, 0x29, 0x79, 0x37,
- 0xba, 0xf1, 0xbd, 0x7b, 0x13, 0xf9, 0xe1, 0xf4, 0x43, 0x14, 0xde, 0x68,
- 0x13, 0x60, 0xc5, 0x5b, 0x1b, 0x0e, 0xa7, 0x3d, 0xb4, 0x8d, 0xac, 0xf6,
- 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x10, 0x00, 0x3a, 0x55,
- 0xeb, 0x01, 0xdb, 0x93, 0x3b, 0xfc, 0xd8, 0x63, 0xb6, 0x29, 0x4d, 0xc6,
- 0x52, 0xf2, 0x6f, 0x75, 0xe3, 0x7a, 0xf6, 0x27, 0xf3, 0xc3, 0xe8, 0x86,
- 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9, 0x8d, 0x85, 0xeb, 0x45, 0x2a, 0xbc,
- 0x98, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x08, 0x46, 0x8e,
- 0x1f, 0x01, 0x64, 0x48, 0xd1, 0xe8, 0xea, 0x6f, 0xee, 0x60, 0x31, 0x08,
- 0xfd, 0x13, 0xdd, 0xac, 0xd9, 0xa1, 0xf3, 0x73, 0xea, 0x03, 0xe8, 0x69,
- 0x50, 0xa8, 0xf7, 0xee, 0xca, 0x06, 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9,
- 0x8c, 0x82, 0xf5, 0xa2, 0x95, 0x5e, 0x4c, 0x39, 0x53, 0xc0, 0x23, 0x99,
- 0x76, 0x7d, 0x7a, 0x05, 0x91, 0x33, 0x47, 0xaa, 0x54, 0xdf, 0xf3, 0x01,
- 0x88, 0x47, 0xe8, 0x9e, 0xed, 0x66, 0xcd, 0x0f, 0x9b, 0x9f, 0x50, 0x1f,
- 0x43, 0x4a, 0x85, 0x47, 0xbf, 0x76, 0x50, 0x33, 0x5e, 0xcc, 0x80, 0x82,
- 0x57, 0x4c, 0x64, 0x17, 0xad, 0x14, 0xaa, 0xf2, 0x61, 0xca, 0x9e, 0x01,
- 0x1c, 0xcb, 0xb3, 0xeb, 0xd0, 0x2c, 0x89, 0x9a, 0x3d, 0x52, 0xa6, 0xff,
- 0x98, 0x0c, 0x42, 0x3f, 0x44, 0xf7, 0x6b, 0x36, 0x68, 0x7c, 0xdc, 0xfa,
- 0x80, 0xfa, 0x1a, 0x54, 0x2a, 0x3d, 0xfb, 0xb2, 0x81, 0x9a, 0xf6, 0x64,
- 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x04, 0xdc, 0xda, 0x29, 0xdd, 0x73, 0x95,
- 0x3c, 0x02, 0x39, 0x97, 0x67, 0xd7, 0xa0, 0x59, 0x13, 0x34, 0x7a, 0xa5,
- 0x4d, 0xfa, 0x36, 0xee, 0x98, 0x4d, 0x82, 0x3c, 0xfc, 0x77, 0x6b, 0x36,
- 0x6c, 0x7d, 0x5f, 0x07, 0x76, 0x45, 0xaa, 0xbf, 0xf3, 0xd1, 0x00, 0xcd,
- 0x7b, 0x32, 0x02, 0x08, 0x64, 0xdd, 0x99, 0x84, 0xdc, 0xda, 0x29, 0xdd,
- 0x70, 0xf5, 0x26, 0x41, 0xc1, 0x49, 0xd3, 0x3d, 0xbf, 0x81, 0x38, 0x55,
- 0x8f, 0x7e, 0xe9, 0xb6, 0xd5, 0x30, 0x9b, 0x04, 0x79, 0xf8, 0xee, 0xd6,
- 0x6c, 0xd8, 0xfa, 0xbe, 0x0e, 0xec, 0x8b, 0x55, 0x7f, 0xe7, 0xa2, 0x01,
- 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09, 0xb9, 0xb4, 0x53,
- 0xba, 0xe1, 0xea, 0x4c, 0x83, 0x82, 0x93, 0xa6, 0x7b, 0x7f, 0x02, 0x70,
- 0xab, 0x1e, 0xfd, 0xd3, 0x6d, 0xaa, 0x61, 0x36, 0x08, 0xf3, 0xf1, 0xdd,
- 0xac, 0xd9, 0xb1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16, 0xaa, 0xff, 0xcf, 0x44,
- 0x03, 0x35, 0xec, 0xc8, 0x08, 0x21, 0x93, 0x76, 0x66, 0x13, 0x73, 0x68,
- 0xa7, 0x75, 0xc3, 0xd4, 0x99, 0x07, 0x05, 0x27, 0x4c, 0xf6, 0xfe, 0x04,
- 0xe1, 0x56, 0x3d, 0xfb, 0xa6, 0xdb, 0x54, 0xc2, 0x74, 0x37, 0x0f, 0xf2,
- 0xb9, 0x89, 0x93, 0x3c, 0xde, 0x63, 0x6f, 0x5a, 0xbc, 0xa7, 0xb7, 0xcc,
- 0x85, 0xc7, 0xe0, 0x21, 0xb7, 0xe6, 0x40, 0x9b, 0x98, 0x64, 0x5c, 0xcc,
- 0xc2, 0x0f, 0x05, 0xba, 0x90, 0xf4, 0x93, 0x01, 0xdb, 0x4c, 0xff, 0xc2,
- 0x66, 0xda, 0x80, 0x68, 0x2a, 0xad, 0x76, 0x9a, 0x74, 0x37, 0x09, 0x00,
- 0x79, 0x5c, 0xc4, 0xc9, 0x9e, 0x6f, 0x31, 0xb7, 0xad, 0x5f, 0x82, 0x16,
- 0xba, 0xbf, 0xd0, 0x10, 0xdb, 0xf3, 0x20, 0x4d, 0xcc, 0x32, 0x2e, 0x66,
- 0x61, 0x04, 0x10, 0xb7, 0x52, 0x00, 0xe9, 0x2b, 0x3f, 0x38, 0x86, 0xd3,
- 0x20, 0x85, 0xf0, 0x99, 0xb6, 0xa0, 0x1a, 0x0a, 0xab, 0x5d, 0xa6, 0x9d,
- 0x0d, 0xc2, 0x40, 0x1e, 0x57, 0x31, 0x32, 0x67, 0x9b, 0xcc, 0x6d, 0xeb,
- 0x57, 0xe0, 0x85, 0xae, 0xaf, 0xf4, 0x04, 0x36, 0xfc, 0xc8, 0x13, 0x73,
- 0x0c, 0x8b, 0x99, 0x98, 0x41, 0x04, 0x2d, 0xd4, 0x80, 0x3a, 0x4a, 0xcf,
- 0xce, 0x21, 0xb4, 0xc8, 0x21, 0x7c, 0x26, 0x6d, 0xa8, 0x06, 0x82, 0xaa,
- 0xd7, 0x69, 0xa7, 0x1a, 0x04, 0x80, 0x36, 0xee, 0x62, 0x64, 0xcf, 0x37,
- 0x9a, 0x31, 0xea, 0xf7, 0xe0, 0x87, 0x82, 0x9a, 0x26, 0x12, 0xb6, 0x62,
- 0x19, 0xeb, 0xb4, 0xd7, 0x2c, 0x32, 0x67, 0xa2, 0x00, 0xd0, 0xa5, 0x5a,
- 0xd4, 0xff, 0xf8, 0x08, 0x41, 0x54, 0x6b, 0x59, 0x37, 0xfe, 0x3b, 0x77,
- 0x09, 0xe4, 0x46, 0x75, 0xa9, 0xb0, 0x6d, 0x66, 0xd4, 0xdf, 0x51, 0xc3,
- 0xde, 0xbe, 0x0f, 0x31, 0x2a, 0x60, 0x3a, 0x63, 0x54, 0xc9, 0xf5, 0x31,
- 0x02, 0xbc, 0x7b, 0xf7, 0xff, 0x01, 0x08, 0x2a, 0x9a, 0xd6, 0x4d, 0xc6,
- 0xa1, 0xc7, 0x6e, 0xf0, 0x10, 0xac, 0xa6, 0x1c, 0x0f, 0x06, 0x74, 0x11,
- 0x10, 0xad, 0x1e, 0xfd, 0x36, 0x33, 0x48, 0x0d, 0x79, 0x70, 0x9e, 0xd1,
- 0xbe, 0x40, 0x47, 0xd1, 0xef, 0xd4, 0xc4, 0x0a, 0xf1, 0xef, 0xdf, 0xf8,
- 0x08, 0x41, 0x54, 0xd6, 0xb2, 0x62, 0x38, 0x9b, 0x87, 0x1c, 0xb8, 0x9c,
- 0x24, 0x33, 0xc0, 0x2c, 0x06, 0xde, 0xb5, 0x7d, 0x54, 0xc4, 0x42, 0xb4,
- 0x7b, 0xf4, 0x03, 0x56, 0xcc, 0x44, 0x4f, 0xd0, 0xc0, 0x9a, 0xde, 0x26,
- 0xc1, 0x69, 0x33, 0x4d, 0xb6, 0xab, 0x39, 0x04, 0x40, 0xaf, 0x1e, 0xfd,
- 0xfc, 0xd5, 0xea, 0x21, 0x8e, 0x5c, 0x4c, 0xc5, 0x5b, 0x1e, 0x1d, 0x37,
- 0xac, 0x93, 0x3e, 0x7c, 0xb8, 0x2d, 0x58, 0x33, 0xaf, 0x62, 0x41, 0xd0,
- 0xc0, 0x9d, 0x9b, 0x04, 0xd8, 0x22, 0x62, 0x4c, 0xd3, 0x6d, 0xaa, 0x02,
- 0x01, 0x7c, 0x96, 0xb0, 0x09, 0x40, 0x1f, 0x3a, 0xf5, 0x80, 0xc5, 0x35,
- 0x7c, 0x5b, 0x1f, 0xdc, 0xc5, 0x5b, 0x1c, 0x1d, 0x37, 0xac, 0x96, 0x7c,
- 0xf9, 0x70, 0x5a, 0xb0, 0x67, 0x5e, 0xc5, 0x87, 0x43, 0x02, 0x6b, 0x36,
- 0x09, 0xb0, 0x44, 0xc4, 0x99, 0x82, 0xdf, 0xba, 0xa0, 0x20, 0x17, 0xc9,
- 0x6b, 0x00, 0x94, 0x01, 0xf2, 0xaf, 0x58, 0x0c, 0x5f, 0xc1, 0x73, 0x54,
- 0x23, 0x11, 0xc7, 0x18, 0xda, 0x31, 0x6f, 0x1c, 0x1d, 0x22, 0x92, 0x61,
- 0x52, 0x05, 0xc4, 0xe9, 0xc2, 0x74, 0xf1, 0x87, 0xfe, 0x60, 0x4b, 0x9c,
- 0xc0, 0x92, 0x64, 0x94, 0x06, 0xd9, 0xad, 0xa0, 0x20, 0x1f, 0x92, 0xd6,
- 0x01, 0x28, 0x0f, 0x95, 0x7a, 0xc0, 0xfc, 0xf0, 0x03, 0x80, 0x96, 0xe1,
- 0x65, 0xac, 0x9a, 0x18, 0x6d, 0x82, 0x7d, 0xd9, 0x13, 0x4c, 0xf5, 0x97,
- 0xc0, 0x72, 0x5e, 0x98, 0x41, 0x6b, 0x75, 0xdc, 0x55, 0xb8, 0x0b, 0x6b,
- 0x40, 0x42, 0x0f, 0x36, 0x3e, 0xf3, 0x31, 0x49, 0x84, 0x66, 0xc7, 0xaf,
- 0x40, 0x71, 0x53, 0x4c, 0xe8, 0xa6, 0x7f, 0x6b, 0xe6, 0xf0, 0xdb, 0xa0,
- 0x80, 0x6d, 0x88, 0xcf, 0xf9, 0x2e, 0xba, 0xfe, 0x03, 0x85, 0x3f, 0x4c,
- 0x20, 0xb7, 0xba, 0xb0, 0x37, 0xed, 0xa0, 0x2d, 0xad, 0x04, 0x2d, 0x6e,
- 0xbc, 0x1f, 0xda, 0x60, 0x1a, 0xdd, 0x31, 0xeb, 0xa0, 0xe0, 0x17, 0x63,
- 0xb9, 0x9f, 0xda, 0xf9, 0xbc, 0x36, 0xe8, 0x20, 0x1b, 0x88, 0xcf, 0xf9,
- 0x2e, 0xba, 0xfe, 0x03, 0x85, 0x3f, 0x4c, 0x20, 0xb7, 0xba, 0xb0, 0x37,
- 0xed, 0xa0, 0x2d, 0xad, 0x04, 0x2d, 0x6e, 0xbc, 0x1f, 0xda, 0x60, 0x1a,
- 0xdd, 0x31, 0xeb, 0xa0, 0xe0, 0x17, 0x63, 0xb9, 0x9f, 0xda, 0xf9, 0xbe,
- 0xdf, 0xfd, 0xc4, 0x67, 0xfc, 0x97, 0x43, 0x6a, 0x7f, 0x89, 0x01, 0x00,
- 0x5b, 0x57, 0xf3, 0x82, 0xcc, 0xb4, 0xd0, 0x21, 0x6b, 0x75, 0xe0, 0xfe,
- 0xd3, 0x08, 0x7a, 0x1e, 0xfd, 0x02, 0x56, 0xb1, 0xef, 0xd7, 0x8d, 0x1e,
- 0xb3, 0x1f, 0x7c, 0xd0, 0x30, 0x06, 0xdb, 0xfd, 0xf1, 0xe9, 0x8d, 0x53,
- 0x04, 0x17, 0xa1, 0xeb, 0x3f, 0xc1, 0x00, 0xb6, 0xaf, 0xe6, 0x0b, 0x32,
- 0xd3, 0x4a, 0x5a, 0xde, 0x7a, 0x30, 0x47, 0xb1, 0xef, 0x20, 0x97, 0x07,
- 0xb9, 0xec, 0x68, 0x3d, 0x63, 0x1f, 0x7c, 0xd0, 0x30, 0x06, 0xdb, 0xfd,
- 0xf1, 0xe9, 0x8d, 0x53, 0x04, 0x17, 0xa1, 0xeb, 0x3f, 0xc1, 0x00, 0xb6,
- 0xaf, 0xe6, 0x0b, 0x32, 0xd3, 0x4a, 0x5a, 0xde, 0x7a, 0x30, 0x47, 0xb1,
- 0xef, 0x20, 0x97, 0x07, 0xb9, 0xec, 0x68, 0x3d, 0x63, 0x1f, 0x7c, 0xd0,
- 0x30, 0x0e, 0xde, 0x3d, 0xf1, 0xe9, 0x8d, 0x53, 0x04, 0x17, 0xa1, 0xeb,
- 0x3f, 0xc1, 0xd0, 0x92, 0xa6, 0x75, 0x2d, 0x6f, 0x3d, 0x18, 0x23, 0xd8,
- 0xf7, 0x94, 0x0e, 0x82, 0x2a, 0x00, 0x12, 0x61, 0xcd, 0x4a, 0x1d, 0x94,
- 0x97, 0xb1, 0xef, 0x29, 0xa8, 0x80, 0x1c, 0x3c, 0x78, 0xae, 0x01, 0x12,
- 0x9d, 0x30, 0xcb, 0xff, 0x40, 0x44, 0x5f, 0xc0, 0x2b, 0xe0, 0xe3, 0x2a,
- 0x47, 0xa1, 0x25, 0x4c, 0xf0, 0x25, 0xdf, 0x6c, 0x42, 0x08, 0xa8, 0x20,
- 0x80, 0x32, 0x28, 0xf7, 0xea, 0x9e, 0x0f, 0x7a, 0x9a, 0x88, 0x01, 0xc3,
- 0xc7, 0x8a, 0xe0, 0x11, 0x29, 0xd3, 0x0c, 0xbf, 0xf4, 0x04, 0x45, 0xfc,
- 0x02, 0xbe, 0x0e, 0x32, 0xa4, 0x7a, 0x12, 0x54, 0xcf, 0x02, 0x5d, 0xf6,
- 0xc4, 0x20, 0x8a, 0x82, 0x08, 0x03, 0x22, 0x8f, 0x7e, 0xa9, 0xe0, 0xf7,
- 0xa9, 0xa8, 0x80, 0x1c, 0x3f, 0xc5, 0x70, 0x08, 0x94, 0xe9, 0x86, 0x5f,
- 0xfa, 0x02, 0x22, 0xfe, 0x01, 0x5f, 0x07, 0x19, 0x52, 0x3d, 0x09, 0x2a,
- 0x67, 0x81, 0x2e, 0xfb, 0x69, 0x3b, 0xda, 0x82, 0x00, 0xc8, 0xa3, 0xdf,
- 0xa6, 0xb3, 0xd3, 0x5a, 0xc9, 0x9b, 0x6f, 0xf1, 0xda, 0x2a, 0x13, 0x14,
- 0xb4, 0x04, 0xaf, 0xdf, 0xec, 0x04, 0xc3, 0xdc, 0x02, 0xbc, 0x07, 0x89,
- 0x6a, 0x65, 0xc5, 0x33, 0xf0, 0x3c, 0x19, 0x50, 0x10, 0x77, 0xb4, 0x6a,
- 0xc1, 0xef, 0x47, 0x5b, 0x26, 0x9d, 0x26, 0x6d, 0x3f, 0xc7, 0x6b, 0x81,
- 0x2d, 0x2b, 0x83, 0x7a, 0xfd, 0xf3, 0xec, 0x05, 0xfc, 0x40, 0x2b, 0xc0,
- 0x3c, 0x4b, 0x53, 0x2e, 0x29, 0x9f, 0xf9, 0x68, 0xb8, 0x1e, 0x0c, 0xa8,
- 0x08, 0x3b, 0xda, 0x22, 0xb6, 0x3d, 0xe4, 0x75, 0xb2, 0x69, 0xd2, 0x66,
- 0xd3, 0xfc, 0x76, 0xb8, 0x12, 0xd2, 0xb8, 0x37, 0xaf, 0xdf, 0x3e, 0xc0,
- 0x5f, 0xc4, 0x02, 0xbc, 0x03, 0xc4, 0xb5, 0x32, 0xe2, 0x99, 0xff, 0x96,
- 0x8b, 0x81, 0xe0, 0xca, 0x80, 0x83, 0xbd, 0xa2, 0x2b, 0x63, 0xde, 0x47,
- 0x5b, 0x26, 0x9d, 0x26, 0x6c, 0x92, 0x1a, 0x7f, 0x70, 0x25, 0xca, 0xe0,
- 0xde, 0xbf, 0x7c, 0xfb, 0x04, 0xfa, 0x1e, 0xa0, 0x02, 0x4b, 0xab, 0x0e,
- 0x15, 0xc0, 0xd2, 0x96, 0xc9, 0x8d, 0xa4, 0xdf, 0xe3, 0x5f, 0x4f, 0xb5,
- 0xc9, 0x8d, 0xd8, 0x08, 0xf0, 0x7b, 0xd6, 0x05, 0xbd, 0x0e, 0xea, 0x61,
- 0xc9, 0x21, 0xa7, 0xf7, 0x1f, 0x31, 0x74, 0xcf, 0x02, 0x7c, 0xa1, 0xeb,
- 0x00, 0x49, 0x72, 0x60, 0x6c, 0x2e, 0x06, 0x94, 0xb6, 0x4d, 0xb4, 0x9b,
- 0xfb, 0xea, 0x7d, 0x35, 0xb1, 0xef, 0x27, 0xd5, 0xfa, 0x30, 0x47, 0xb1,
- 0xef, 0x2c, 0x0b, 0x7a, 0x3b, 0xa9, 0x87, 0x24, 0x86, 0x9f, 0xdc, 0x7c,
- 0xc5, 0xd3, 0x3c, 0x09, 0xf2, 0x87, 0xac, 0x01, 0x25, 0xcb, 0x03, 0x61,
- 0x70, 0x34, 0xa5, 0xb2, 0x66, 0xd2, 0x6f, 0xef, 0xa9, 0xf4, 0xd6, 0xc7,
- 0xbc, 0x9f, 0x57, 0xec, 0x23, 0xc1, 0xef, 0x58, 0x16, 0xf4, 0x3b, 0xa9,
- 0xb9, 0x45, 0x82, 0x98, 0x0f, 0x75, 0x01, 0x25, 0x4c, 0xf0, 0x4f, 0x90,
- 0xf5, 0xec, 0x07, 0x05, 0x36, 0x4c, 0x13, 0x09, 0x46, 0x5b, 0xbf, 0xd3,
- 0xa9, 0xf5, 0x5e, 0x1e, 0xc9, 0x96, 0x4c, 0x76, 0x0e, 0x01, 0x2b, 0x18,
- 0x21, 0xde, 0xd4, 0xc1, 0xf6, 0xef, 0x8f, 0x7e, 0x30, 0x05, 0xb5, 0xdc,
- 0x97, 0x5d, 0x98, 0x8b, 0xbe, 0xd8, 0x78, 0x29, 0x95, 0x30, 0xc4, 0xc7,
- 0x0f, 0x85, 0x7c, 0xf8, 0x12, 0xef, 0xb6, 0x08, 0x5f, 0xc4, 0xb5, 0xd9,
- 0xfd, 0x4c, 0x2d, 0xd0, 0x70, 0x09, 0x58, 0xf0, 0x43, 0xbd, 0xa9, 0xbf,
- 0x6e, 0xf8, 0xf7, 0xe3, 0x00, 0x5b, 0x5d, 0xc9, 0x75, 0xe8, 0xe2, 0xef,
- 0xb6, 0x1e, 0x0a, 0x65, 0x4c, 0x31, 0x31, 0xc3, 0xa1, 0x5f, 0x3e, 0x09,
- 0x77, 0xba, 0xc2, 0x17, 0xf1, 0x2d, 0x77, 0x7d, 0x4c, 0x16, 0xf0, 0x70,
- 0x0b, 0xb1, 0x82, 0x1d, 0xed, 0x4d, 0xfb, 0x0e, 0xf8, 0xf7, 0xf0, 0x05,
- 0xb5, 0xdc, 0x97, 0x5e, 0x6e, 0x6e, 0xe1, 0xe8, 0xbe, 0x4c, 0x02, 0x21,
- 0x8e, 0x1f, 0x0a, 0xf8, 0x42, 0x09, 0x50, 0x41, 0x2e, 0xf7, 0x58, 0x42,
- 0xfe, 0x25, 0xae, 0xc7, 0xbe, 0xd3, 0x06, 0xf8, 0xe0, 0x15, 0x63, 0x01,
- 0xec, 0x4a, 0x99, 0xe2, 0x0e, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x63, 0x10,
- 0xb4, 0x4d, 0x57, 0x81, 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0x32, 0x14, 0x89,
- 0x2a, 0xf3, 0xff, 0xc4, 0x31, 0xd6, 0x36, 0x89, 0x1b, 0x53, 0x46, 0x84,
- 0xd1, 0x35, 0x5e, 0x7f, 0xd7, 0x5a, 0x75, 0xc7, 0x63, 0x21, 0x24, 0x49,
- 0x57, 0x9f, 0xfe, 0x22, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x68, 0xd0, 0x9a,
- 0x26, 0xab, 0xcf, 0xfa, 0xeb, 0x4e, 0xb8, 0xec, 0x64, 0x24, 0x89, 0x2a,
- 0xf3, 0xff, 0xc4, 0x47, 0x58, 0xda, 0x24, 0x6d, 0x4c, 0x62, 0x13, 0x44,
- 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83, 0x06, 0x95, 0x51, 0xdb,
- 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xd1, 0xa1, 0x34, 0x4d,
- 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8, 0x30, 0x69, 0x55, 0x1d, 0xbf,
- 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfd, 0x1a, 0x13, 0x44, 0xd5,
- 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83, 0x06, 0x95, 0x51, 0xdb, 0xff,
- 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xd1, 0xa1, 0x34, 0x4d, 0x57,
- 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1,
- 0x10, 0x84, 0x6f, 0x42, 0x68, 0xc3, 0xf1, 0x88, 0x4d, 0x13, 0x55, 0xe7,
- 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0xac, 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44,
- 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfc, 0x62, 0x13, 0x44, 0xd5, 0x79, 0xff,
- 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x08,
- 0x46, 0xf4, 0x26, 0x8c, 0x3f, 0x18, 0x84, 0xd1, 0x35, 0x5e, 0x7f, 0xd7,
- 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x4c, 0x84,
- 0x91, 0x25, 0x5e, 0x04, 0x73, 0xfb, 0x13, 0x56, 0x1f, 0xbf, 0xeb, 0xad,
- 0x3a, 0xe3, 0xb5, 0x63, 0x4a, 0xa8, 0xed, 0xff, 0xe2, 0x26, 0x42, 0x48,
- 0x92, 0xaf, 0x02, 0x39, 0xfd, 0x89, 0xab, 0x0f, 0xdf, 0xf5, 0xd6, 0x9d,
- 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x13, 0x21, 0x24, 0x49,
- 0x57, 0x81, 0x1c, 0xfe, 0xc4, 0xd5, 0x87, 0xef, 0xfa, 0xeb, 0x4e, 0xb8,
- 0xed, 0x58, 0xd2, 0xaa, 0x3b, 0x7f, 0xf8, 0x89, 0x90, 0x92, 0x24, 0xab,
- 0xc0, 0x8e, 0x7f, 0x62, 0x6a, 0xc3, 0xf7, 0xf8, 0x65, 0x69, 0xd7, 0x1d,
- 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x8e, 0x12, 0x44, 0x95, 0x78,
- 0x11, 0xcf, 0xec, 0x4d, 0x58, 0x7e, 0xff, 0x0c, 0xad, 0x3a, 0xe3, 0xb5,
- 0x63, 0x4a, 0xa8, 0xed, 0xff, 0xe2, 0x31, 0xc2, 0x48, 0x92, 0xaf, 0x02,
- 0x39, 0xfd, 0x89, 0xab, 0x0f, 0xdf, 0xe1, 0x95, 0xa7, 0x5c, 0x76, 0xac,
- 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x46, 0x38, 0x49, 0x12, 0x55, 0xe0, 0x47,
- 0x3f, 0xb1, 0x35, 0x61, 0xfb, 0xfc, 0xc4, 0x26, 0x89, 0xaa, 0xf2, 0xb1,
- 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x18, 0xe1, 0x24, 0x49, 0x57, 0x83, 0xac,
- 0x6d, 0x12, 0x36, 0xa6, 0xff, 0x31, 0x09, 0xa2, 0x6a, 0xbc, 0xac, 0x69,
- 0x55, 0x1d, 0xbf, 0xfc, 0x46, 0x38, 0x49, 0x12, 0x55, 0xe0, 0xeb, 0x1b,
- 0x44, 0x8d, 0xa9, 0xbf, 0xcc, 0x42, 0x68, 0x9a, 0xaf, 0x2b, 0x1a, 0x55,
- 0x47, 0x6f, 0xff, 0x10, 0xa3, 0x85, 0x22, 0x4a, 0xbc, 0x1d, 0x63, 0x68,
- 0x91, 0xb5, 0x37, 0xf9, 0x88, 0x5a, 0x26, 0xab, 0xc0, 0xc1, 0xa5, 0x54,
- 0x76, 0xff, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b,
- 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0x9b, 0xfe, 0xa0,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xe3, 0x60, 0x31, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x5e, 0xbe, 0x63, 0xe0, 0x18,
- 0xe9, 0x3c, 0x04, 0xca, 0x9b, 0x31, 0x68, 0x66, 0x26, 0x2b, 0xff, 0xff,
- 0x5f, 0xd7, 0x86, 0x0c, 0x0a, 0xd2, 0x07, 0x8c, 0x60, 0xb6, 0x10, 0x09,
- 0x1d, 0xb7, 0xd3, 0x1c, 0x9a, 0x45, 0xac, 0x17, 0xa8, 0xcf, 0x60, 0x42,
- 0x2e, 0xea, 0xe2, 0x33, 0xdb, 0xf7, 0xa5, 0x13, 0x37, 0xd4, 0x24, 0xe5,
- 0x8e, 0xf2, 0xf1, 0x72, 0xc8, 0x1a, 0xa2, 0x18, 0x0f, 0xfb, 0xfe, 0x13,
- 0x13, 0xcc, 0x65, 0xa3, 0x4a, 0xbc, 0xf4, 0x61, 0x65, 0x70, 0xb2, 0xe8,
- 0x6c, 0x7e, 0x2b, 0xfe, 0xbd, 0x7c, 0x59, 0xb0, 0x91, 0x9d, 0xdc, 0x05,
- 0x06, 0xa3, 0x42, 0xdf, 0x1b, 0x9b, 0x8f, 0x32, 0xdf, 0x82, 0x87, 0x7e,
- 0x18, 0xfd, 0xef, 0xe9, 0x4b, 0x2f, 0x00, 0x43, 0x2b, 0x07, 0xc6, 0x3d,
- 0xf9, 0x04, 0x83, 0xa9, 0x03, 0xab, 0xc9, 0x9c, 0x4f, 0x01, 0x03, 0xbe,
- 0x03, 0xf6, 0xc0, 0xff, 0x38, 0xc8, 0x2a, 0x57, 0x59, 0x3f, 0xeb, 0xd7,
- 0x86, 0x2b, 0x1b, 0x3f, 0xfe, 0x12, 0xf7, 0x9b, 0xa4, 0x02, 0x46, 0xe7,
- 0x53, 0xcc, 0x94, 0xc8, 0x6c, 0x14, 0xb3, 0xc0, 0x17, 0xb7, 0xe1, 0x8c,
- 0xcf, 0xd0, 0x21, 0x02, 0x66, 0x18, 0x0a, 0x7d, 0x34, 0xf8, 0x4f, 0x90,
- 0x30, 0x33, 0x05, 0xb1, 0xd3, 0x83, 0xc7, 0x6c, 0x31, 0x48, 0xe9, 0xf4,
- 0xa6, 0x2b, 0xa0, 0x5e, 0x7f, 0x18, 0x05, 0x5f, 0xbd, 0x63, 0x17, 0xaf,
- 0x5e, 0xb2, 0x1e, 0x04, 0x1a, 0x92, 0xf7, 0xf5, 0xeb, 0xf1, 0xb0, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d, 0x81, 0x4b, 0xae, 0x5d, 0xe3,
- 0x3e, 0xfe, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e,
- 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff,
- 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xf3, 0x99, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x79, 0x22, 0xcf,
- 0x86, 0xfd, 0xe3, 0x52, 0xa0, 0x3e, 0x58, 0xaf, 0xff, 0xff, 0xff, 0xf9,
- 0x84, 0x43, 0xd0, 0x83, 0xff, 0x2e, 0x81, 0x23, 0x3a, 0x06, 0x12, 0xf3,
- 0x33, 0x7c, 0x31, 0x96, 0x99, 0x50, 0x26, 0xe0, 0x4c, 0xcf, 0x29, 0x0d,
- 0x90, 0x8d, 0x63, 0x15, 0x5d, 0xb9, 0x72, 0x9d, 0x30, 0x06, 0x09, 0xca,
- 0x44, 0xb5, 0x5b, 0xce, 0xf8, 0x1a, 0x49, 0xb6, 0x20, 0x0e, 0x81, 0x22,
- 0xe0, 0x0b, 0x5f, 0x63, 0xf6, 0x08, 0x5d, 0x3f, 0xe8, 0x5b, 0x09, 0xf5,
- 0x38, 0x1e, 0x22, 0x2c, 0xb7, 0xd8, 0x80, 0x59, 0x89, 0x16, 0xd0, 0xc0,
- 0x74, 0x1f, 0x69, 0x85, 0x74, 0xc1, 0xc3, 0x90, 0xc2, 0x5a, 0xf0, 0x9e,
- 0x45, 0x89, 0x19, 0x11, 0x76, 0xbc, 0x57, 0xff, 0xfe, 0x28, 0xdc, 0x65,
- 0x38, 0x7c, 0x37, 0xc1, 0xff, 0x33, 0x41, 0x8c, 0x00, 0x06, 0x40, 0xdb,
- 0x19, 0xbf, 0x5b, 0x3c, 0xd0, 0x1b, 0x7e, 0x00, 0xa3, 0xa1, 0x16, 0xb3,
- 0xf3, 0x8b, 0xe5, 0x33, 0xc0, 0x51, 0x5a, 0x6d, 0x66, 0x5f, 0xbe, 0x68,
- 0xac, 0xbd, 0x76, 0x61, 0x6a, 0xfa, 0xaf, 0xcc, 0xfb, 0xa8, 0xec, 0xff,
- 0xf4, 0x57, 0xc3, 0x4c, 0xcf, 0xcc, 0x58, 0x24, 0x6c, 0x05, 0xef, 0xcf,
- 0x91, 0x58, 0x20, 0x4e, 0xf8, 0xd4, 0xff, 0x33, 0x8e, 0xf8, 0x7f, 0xc2,
- 0x50, 0x04, 0xc6, 0x2a, 0x1b, 0x86, 0xdf, 0x48, 0x18, 0xfb, 0x5c, 0xe7,
- 0x7d, 0xf7, 0xff, 0x81, 0xd0, 0x22, 0x20, 0xf3, 0x0a, 0xc0, 0x57, 0xff,
- 0x84, 0x9c, 0x82, 0x26, 0xa7, 0x9b, 0x81, 0xd5, 0xdd, 0x3d, 0x34, 0x64,
- 0xf5, 0x7f, 0x89, 0x5c, 0x09, 0x1b, 0x00, 0x0d, 0xac, 0x30, 0xda, 0x91,
- 0x98, 0xfa, 0x0c, 0x7a, 0xf0, 0x00, 0xf6, 0x7f, 0xbf, 0xfb, 0x7c, 0x66,
- 0x0f, 0xe6, 0x19, 0xc4, 0x47, 0x06, 0x4f, 0xff, 0xfc, 0x88, 0xc1, 0x93,
- 0x80, 0x03, 0x1c, 0x1a, 0x7f, 0x31, 0x40, 0x3c, 0x7f, 0xc2, 0x50, 0x4c,
- 0xf6, 0xd4, 0xe1, 0xdf, 0x48, 0x5f, 0x40, 0x86, 0xc3, 0x26, 0xad, 0xd8,
- 0xd9, 0x06, 0x23, 0xa4, 0xda, 0x37, 0x1f, 0xf3, 0xfa, 0x3c, 0xa1, 0xda,
- 0x64, 0xdf, 0x6b, 0x7b, 0x58, 0xa1, 0x4c, 0x22, 0x62, 0xdf, 0x18, 0x13,
- 0x67, 0x68, 0x3f, 0x39, 0xc0, 0x1f, 0xdc, 0x1d, 0xfb, 0xf0, 0x33, 0xf7,
- 0x8e, 0xfe, 0x7a, 0xf1, 0xde, 0xc2, 0x7f, 0xff, 0xf8, 0x01, 0x81, 0xfa,
- 0xbc, 0x74, 0xd6, 0xb1, 0x72, 0x26, 0xfc, 0x4e, 0x01, 0xad, 0x38, 0xea,
- 0x05, 0x29, 0x2d, 0x67, 0x3e, 0x01, 0x8d, 0x3c, 0xf4, 0x3c, 0xfe, 0xbb,
- 0xbd, 0x78, 0xef, 0x9e, 0x27, 0x11, 0xe1, 0x49, 0x3f, 0x02, 0xed, 0xdc,
- 0x9d, 0x6e, 0x7d, 0xff, 0xfe, 0x03, 0x03, 0x11, 0x2f, 0xe3, 0x60, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64, 0x25, 0xf2, 0x7f, 0x07, 0x9f,
- 0x89, 0xf1, 0x1e, 0x23, 0xc4, 0x7f, 0xbf, 0x19, 0xff, 0x7f, 0xf6, 0xa0,
- 0x20, 0x7c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2,
- 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xcd, 0xe2, 0xbf, 0xfc, 0x3e, 0x68,
- 0x00, 0xef, 0x0a, 0xe9, 0xa2, 0x47, 0x5f, 0xfb, 0x7e, 0x65, 0x1c, 0x20,
- 0x1f, 0xf0, 0xf2, 0x14, 0x8e, 0x29, 0x58, 0xa1, 0xb7, 0xd2, 0x02, 0xb1,
- 0x9b, 0xd1, 0x5b, 0x9f, 0x7f, 0xcd, 0x80, 0x38, 0xff, 0xf0, 0x96, 0x00,
- 0x22, 0x9c, 0x93, 0x46, 0x18, 0x94, 0x97, 0xfb, 0xe2, 0xa0, 0xda, 0xa5,
- 0x88, 0x1c, 0x69, 0xc1, 0xa0, 0x28, 0xb7, 0x32, 0x71, 0x0f, 0xe6, 0xff,
- 0xc0, 0x78, 0x00, 0x89, 0xc4, 0x44, 0xe2, 0x3c, 0x29, 0x10, 0x00, 0x80,
- 0x59, 0xd9, 0xd9, 0xd8, 0x0f, 0x37, 0x9f, 0x03, 0x82, 0x21, 0x37, 0x3f,
- 0xc0, 0xe0, 0x88, 0x4d, 0xcf, 0x34, 0x43, 0xff, 0xf0, 0x99, 0x80, 0x0d,
- 0x97, 0xb3, 0x02, 0x5d, 0xd7, 0xbc, 0xc2, 0x23, 0x11, 0x33, 0x3c, 0x1c,
- 0x07, 0x21, 0x19, 0x93, 0x38, 0x8b, 0x17, 0x88, 0xf1, 0x1e, 0x23, 0xc4,
- 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
- 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf0, 0xa6, 0x00, 0x17, 0xaa, 0xda,
- 0xb6, 0xa6, 0xbf, 0xfc, 0xf8, 0x01, 0x4f, 0x1b, 0x22, 0x67, 0x55, 0xef,
- 0xfc, 0x0e, 0x20, 0x85, 0xb9, 0xea, 0x04, 0x08, 0x10, 0x75, 0xfa, 0xfd,
- 0x7e, 0xbe, 0x10, 0xff, 0xff, 0xff, 0x9e, 0x37, 0x3f, 0x9f, 0x9c, 0xfe,
- 0x7e, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x04, 0x1f, 0xff, 0x3f,
- 0x27, 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x31,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfe, 0x63,
- 0xe3, 0x26, 0xa0, 0x33, 0x19, 0xb4, 0x9b, 0x1f, 0x43, 0x31, 0x31, 0x5f,
- 0xff, 0xff, 0x7e, 0xfe, 0x28, 0x24, 0x40, 0xce, 0x90, 0x80, 0x2c, 0xc0,
- 0xf6, 0xc0, 0x34, 0x06, 0x49, 0xb3, 0x00, 0x9a, 0xb8, 0xc3, 0x85, 0x78,
- 0xed, 0xc6, 0xbb, 0x37, 0x8f, 0xc3, 0x01, 0xfc, 0x3f, 0xc1, 0x00, 0xb3,
- 0x37, 0x7d, 0x7d, 0x7f, 0xcc, 0x8e, 0xb9, 0xfd, 0x6f, 0x15, 0xff, 0x7e,
- 0xfc, 0x31, 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x9a, 0xfa, 0x67, 0xd0,
- 0xe0, 0x90, 0x6d, 0x3a, 0xda, 0xd4, 0x98, 0xa9, 0xe7, 0xe3, 0xe9, 0x49,
- 0x9f, 0x3b, 0xf7, 0xef, 0xc3, 0x02, 0xbb, 0x8b, 0x7d, 0xa5, 0x89, 0x75,
- 0xc2, 0x50, 0x9c, 0xf7, 0x00, 0xbb, 0x7d, 0x2d, 0xf8, 0x85, 0x26, 0x3f,
- 0x84, 0x83, 0x1e, 0x57, 0x27, 0xfd, 0xff, 0x0c, 0x70, 0xc1, 0xff, 0xe1,
- 0x25, 0x80, 0x96, 0xe7, 0x47, 0x88, 0x64, 0xcb, 0xc0, 0x93, 0xee, 0x5b,
- 0x1f, 0x4f, 0xc3, 0x16, 0xb7, 0xc9, 0xbf, 0x09, 0x96, 0x92, 0x4b, 0xe8,
- 0xc7, 0x47, 0x0e, 0xd3, 0xed, 0x63, 0xb6, 0x09, 0x70, 0x00, 0x87, 0xaf,
- 0xfa, 0xbe, 0xff, 0xf8, 0x08, 0xf5, 0xed, 0xa6, 0x3e, 0xac, 0xef, 0x3a,
- 0xb6, 0xca, 0x00, 0x9d, 0x06, 0x11, 0x8f, 0xb6, 0x3e, 0xf5, 0xac, 0x67,
- 0x7e, 0x1a, 0x9f, 0x0d, 0x7b, 0xf0, 0xdf, 0x1d, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xb4, 0x95, 0x81, 0x4b, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xdf,
- 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xf8, 0x63,
- 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x0b, 0xea, 0x80, 0xd4, 0x45, 0xfb, 0xf7,
- 0xe1, 0x8f, 0xff, 0xf8, 0x78, 0xe2, 0x80, 0x01, 0xdf, 0x86, 0xfd, 0xfb,
- 0xfc, 0x27, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0xeb, 0x97,
- 0xff, 0xff, 0xfa, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf4,
- 0xa1, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xfe, 0x53, 0xe0, 0x24, 0xff, 0x81,
- 0xff, 0xd1, 0x20, 0xb7, 0x19, 0x74, 0xf9, 0x9f, 0x09, 0x16, 0x14, 0xdb,
- 0xc3, 0x33, 0x2e, 0x00, 0x2c, 0xe2, 0x6d, 0x75, 0x5f, 0x66, 0xfe, 0xd3,
- 0xc4, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xc8, 0x10, 0xe0, 0x23, 0xd7, 0xaf,
- 0x3b, 0xf8, 0x43, 0x94, 0x0a, 0x76, 0x5e, 0x5f, 0xd5, 0xea, 0xa5, 0xc3,
- 0xcf, 0x22, 0x8a, 0x5b, 0xa1, 0x38, 0xdb, 0xf2, 0x12, 0xbb, 0xb3, 0xfe,
- 0x11, 0x64, 0xdc, 0x91, 0xa9, 0xd8, 0x87, 0xf8, 0x10, 0xf7, 0xfd, 0x43,
- 0x8b, 0xd3, 0xa1, 0x8d, 0x16, 0x75, 0xe5, 0xbc, 0x9f, 0x89, 0x08, 0xe0,
- 0x86, 0x30, 0x8e, 0x48, 0x1e, 0x93, 0xfe, 0x08, 0x01, 0xb5, 0xbe, 0x8b,
- 0x4c, 0xfc, 0xa5, 0xd0, 0x50, 0x98, 0xe2, 0xe2, 0x40, 0x62, 0xa8, 0xcc,
- 0xc3, 0xe8, 0xf0, 0x04, 0x7f, 0xb7, 0x60, 0xb1, 0x46, 0xa7, 0xca, 0x38,
- 0xc6, 0x61, 0x8c, 0xa8, 0x7c, 0xee, 0x06, 0xde, 0x63, 0x72, 0x05, 0x63,
- 0xf4, 0x12, 0xe8, 0x82, 0x2a, 0xf8, 0xbf, 0x80, 0xe8, 0x0f, 0x10, 0x41,
- 0x12, 0x2f, 0xe0, 0xd6, 0x33, 0x0a, 0x8a, 0x86, 0xa1, 0x06, 0xed, 0x7c,
- 0xa1, 0x3c, 0x04, 0x10, 0x82, 0x2a, 0x04, 0x6f, 0x3f, 0xe2, 0xbf, 0xff,
- 0xf1, 0x66, 0x80, 0x31, 0xfa, 0xac, 0x71, 0x7f, 0x3f, 0xd8, 0x90, 0x7a,
- 0x77, 0xf1, 0x6c, 0x26, 0x67, 0x7b, 0x08, 0xbd, 0x7d, 0x5f, 0x45, 0x2f,
- 0x66, 0x96, 0x40, 0xb9, 0x1e, 0xe0, 0xde, 0x6f, 0xd7, 0x26, 0x60, 0xf7,
- 0xe0, 0x01, 0x9b, 0x6d, 0xf1, 0x4d, 0xce, 0x69, 0x64, 0x68, 0xc8, 0x57,
- 0x79, 0xfa, 0x0e, 0x41, 0x23, 0x6a, 0xa5, 0x76, 0xb0, 0x04, 0x72, 0x6d,
- 0x20, 0x99, 0x85, 0xa4, 0x2d, 0xc7, 0x3a, 0x8c, 0x1e, 0x24, 0xcf, 0xe8,
- 0x4c, 0x6e, 0x23, 0xe2, 0x3e, 0x23, 0xae, 0x61, 0x16, 0x81, 0x36, 0x96,
- 0xcf, 0x7f, 0x91, 0x46, 0x80, 0xc4, 0x3e, 0x82, 0xfd, 0xcf, 0xba, 0xd0,
- 0x5a, 0x43, 0x6b, 0x3f, 0xc4, 0x38, 0x41, 0xc3, 0xdc, 0x7b, 0x00, 0x01,
- 0x04, 0x9f, 0x03, 0x7d, 0xb7, 0x98, 0x2a, 0xbf, 0xea, 0xb3, 0x82, 0x7f,
- 0x00, 0x64, 0x7e, 0x5a, 0x7f, 0x48, 0x40, 0xfd, 0x51, 0xef, 0xe0, 0x00,
- 0xcb, 0xee, 0xad, 0xfd, 0xe7, 0x34, 0xb3, 0xb0, 0x3f, 0xca, 0x7f, 0x40,
- 0xe6, 0xff, 0xcf, 0xf0, 0x40, 0x5f, 0x80, 0x2f, 0x76, 0xd8, 0x1f, 0xbd,
- 0x9e, 0xff, 0xff, 0xf1, 0x02, 0x21, 0xa5, 0x3c, 0x90, 0x9f, 0x03, 0xce,
- 0xd8, 0xc9, 0x2e, 0x17, 0xe2, 0x38, 0x9f, 0xd8, 0x1b, 0xaf, 0x42, 0x7c,
- 0x33, 0xb6, 0x93, 0x3f, 0xf8, 0xd1, 0xe0, 0x9a, 0xa0, 0x95, 0xbf, 0x58,
- 0xff, 0xf4, 0x18, 0xd4, 0xce, 0xef, 0x9a, 0x3e, 0x1f, 0xf8, 0x4b, 0x0e,
- 0x8c, 0x80, 0x61, 0x09, 0x80, 0xdb, 0x50, 0x30, 0x7e, 0x00, 0x76, 0x8c,
- 0x80, 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x76, 0x9a, 0x01, 0x8c, 0xf2,
- 0x03, 0x6d, 0x5e, 0x0c, 0x1c, 0xfc, 0x49, 0x60, 0x4f, 0xa9, 0x7e, 0x7b,
- 0xba, 0x10, 0x11, 0xb7, 0x67, 0xfb, 0x78, 0xe6, 0xbb, 0x82, 0xc2, 0x67,
- 0x81, 0xf3, 0x3f, 0x89, 0x89, 0xcd, 0xff, 0xfd, 0xe0, 0x84, 0xd8, 0x00,
- 0x66, 0x36, 0xde, 0x89, 0x37, 0x30, 0xe7, 0x2b, 0x90, 0xef, 0x23, 0xf7,
- 0xba, 0x63, 0x39, 0xf9, 0x3b, 0xce, 0x98, 0xb5, 0xd0, 0x30, 0xca, 0x0f,
- 0xc3, 0x00, 0xf4, 0x9b, 0xe0, 0xa3, 0x99, 0xfc, 0x00, 0x3e, 0x9b, 0x39,
- 0x11, 0xa0, 0x6a, 0x67, 0xef, 0x67, 0x87, 0x72, 0x4b, 0x1f, 0x10, 0x7e,
- 0x0f, 0x09, 0xbf, 0x4a, 0xac, 0x67, 0x7a, 0xab, 0xc1, 0x8a, 0xd6, 0xbd,
- 0x3d, 0xff, 0xff, 0xbf, 0x8e, 0xe2, 0xbc, 0x04, 0xbf, 0xb5, 0xef, 0xee,
- 0x37, 0xf0, 0x3f, 0xcf, 0x7e, 0xcf, 0xe6, 0xff, 0xee, 0x44, 0x58, 0xcf,
- 0x00, 0x25, 0x99, 0xc2, 0x47, 0x54, 0x5d, 0xac, 0x00, 0x96, 0x67, 0x09,
- 0x1d, 0x51, 0x76, 0x81, 0xe7, 0x53, 0xcd, 0xa0, 0x9b, 0xe9, 0xc0, 0x05,
- 0xdf, 0xe1, 0x45, 0x73, 0x0e, 0x2f, 0xd4, 0x9f, 0x71, 0xfa, 0xf0, 0x5e,
- 0x69, 0x3b, 0xb9, 0x14, 0xbf, 0xc2, 0x58, 0x00, 0x7d, 0x36, 0x72, 0x26,
- 0x81, 0xa9, 0x9f, 0xbd, 0x80, 0xde, 0x72, 0xba, 0x3b, 0x27, 0xef, 0x60,
- 0x4a, 0xaf, 0xff, 0x8a, 0x2d, 0xf5, 0x07, 0xff, 0x8e, 0x52, 0xe6, 0xc3,
- 0xa8, 0x5d, 0xbb, 0xc4, 0x90, 0xb0, 0x01, 0x37, 0x27, 0x6b, 0xd3, 0xbb,
- 0xbe, 0x61, 0x11, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2,
- 0x84, 0x1d, 0x7f, 0xcb, 0xef, 0xc6, 0x72, 0x08, 0x1b, 0x77, 0xf3, 0x0b,
- 0x7d, 0x1e, 0x27, 0xff, 0x62, 0x20, 0x9d, 0xe0, 0x3e, 0xd6, 0xf7, 0xe3,
- 0x79, 0x1c, 0x24, 0xc0, 0xa2, 0x7f, 0x68, 0xcd, 0xc7, 0xee, 0x98, 0x00,
- 0x0f, 0xf1, 0x18, 0x75, 0x00, 0x53, 0x98, 0x33, 0xf7, 0x4c, 0x00, 0x07,
- 0x93, 0xfc, 0x41, 0x81, 0x0b, 0xc0, 0x7c, 0xb1, 0x3c, 0xd5, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
- 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfc, 0xca,
- 0x7f, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60,
- 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xae, 0xfd,
- 0xfa, 0x2c, 0xa7, 0xc1, 0x1e, 0xcb, 0x2e, 0x8b, 0x8a, 0xff, 0xff, 0xdf,
- 0xf7, 0xe8, 0x91, 0x42, 0x00, 0x08, 0xbd, 0x4b, 0x9b, 0xcf, 0xfa, 0xcd,
- 0xa3, 0xc0, 0x84, 0x43, 0xb4, 0x24, 0x87, 0xbf, 0xf4, 0x00, 0xce, 0x5e,
- 0x14, 0xa5, 0x5f, 0xef, 0x2a, 0x1c, 0x6b, 0xc8, 0x24, 0xe9, 0x8e, 0xac,
- 0xcf, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x84, 0x40, 0x2f, 0x73, 0x2f,
- 0x55, 0xee, 0x26, 0x0a, 0x17, 0x94, 0xbb, 0xdf, 0xc6, 0xc0, 0x0b, 0x17,
- 0xca, 0x9c, 0xef, 0xf8, 0xaf, 0xfb, 0xf7, 0xeb, 0x18, 0xb8, 0xec, 0x6e,
- 0xdb, 0x80, 0x2b, 0x71, 0xa0, 0x95, 0x07, 0x51, 0x57, 0xef, 0x33, 0x53,
- 0xc1, 0x2b, 0xc5, 0x2c, 0xeb, 0x3c, 0x3c, 0xd3, 0xeb, 0x03, 0xde, 0xff,
- 0xcf, 0x80, 0xdc, 0x79, 0x03, 0x4d, 0xe7, 0xf7, 0x34, 0xfb, 0xb6, 0xf9,
- 0xdf, 0xbf, 0x7e, 0xfc, 0x30, 0x15, 0x5f, 0xf5, 0x38, 0xc1, 0x3b, 0xc3,
- 0xd7, 0x08, 0x1d, 0xf8, 0x3d, 0x88, 0xe8, 0x20, 0x26, 0x78, 0x00, 0x58,
- 0x0d, 0x9c, 0x4f, 0xf0, 0x1b, 0x35, 0x5d, 0xff, 0xdf, 0xbf, 0x27, 0x02,
- 0xa0, 0x82, 0x02, 0x06, 0x97, 0xf6, 0xa7, 0xe6, 0x88, 0xe1, 0x9e, 0x00,
- 0x8b, 0xee, 0xec, 0xfe, 0x2e, 0x00, 0xd6, 0x90, 0x96, 0xf6, 0x9b, 0x01,
- 0x89, 0xfb, 0xc8, 0x10, 0xa1, 0x88, 0x78, 0xe3, 0x69, 0x12, 0x27, 0xe7,
- 0x9d, 0xf5, 0xc9, 0x03, 0x2e, 0x61, 0x3c, 0x09, 0x1e, 0xcd, 0xfd, 0x61,
- 0x8f, 0x27, 0x22, 0x22, 0x22, 0x2f, 0x12, 0x4e, 0x02, 0x3d, 0x7e, 0xdf,
- 0x0e, 0x41, 0xf8, 0x63, 0xbc, 0x23, 0x71, 0x94, 0x47, 0xf4, 0x3b, 0xff,
- 0xc0, 0x7e, 0x03, 0xf7, 0xb2, 0x03, 0xf0, 0x1f, 0xbd, 0x9f, 0x5c, 0x73,
- 0xe4, 0x0c, 0x79, 0x13, 0x14, 0x8a, 0x5e, 0x32, 0x80, 0xec, 0x20, 0xfc,
- 0x20, 0x0b, 0x55, 0x37, 0x01, 0x0e, 0xaf, 0x80, 0xed, 0xc0, 0x84, 0x00,
- 0xed, 0x58, 0x25, 0xcf, 0xf3, 0xd6, 0x3b, 0x6b, 0xbc, 0x6c, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe,
- 0xf1, 0xbd, 0xfb, 0xe4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xb8, 0x52, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x04, 0xf3, 0x60, 0x99, 0xb0, 0x3f,
- 0x47, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xa1, 0xc1, 0x7f, 0xb8, 0x00, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff,
- 0xe6, 0x13, 0xc0, 0x01, 0xeb, 0xdb, 0x43, 0x8c, 0xbb, 0xc8, 0xac, 0x33,
- 0x2b, 0xe4, 0x9c, 0x5b, 0x99, 0xa1, 0x0f, 0xfb, 0x7c, 0x57, 0xff, 0xc2,
- 0x62, 0x9d, 0xf3, 0x88, 0x36, 0x18, 0x7a, 0x0e, 0xff, 0xfc, 0xd9, 0x81,
- 0xe4, 0x16, 0x7c, 0x7f, 0xe2, 0xa9, 0xea, 0xc6, 0x1d, 0x4f, 0xfb, 0xfc,
- 0x21, 0x04, 0x3b, 0x1d, 0xd5, 0xf8, 0x6c, 0x03, 0x52, 0x01, 0x84, 0x38,
- 0x1a, 0xf4, 0x07, 0xd7, 0x74, 0x47, 0x0e, 0x1c, 0xfe, 0x63, 0x40, 0x93,
- 0xdd, 0x99, 0xe8, 0xab, 0xb4, 0x00, 0x27, 0xe7, 0xe8, 0xd3, 0x0c, 0xaf,
- 0xfb, 0x19, 0xf7, 0x6e, 0x3c, 0xae, 0xd3, 0x38, 0x30, 0xc6, 0x95, 0xe1,
- 0x77, 0xfe, 0x75, 0xfc, 0x4e, 0x84, 0x11, 0x74, 0xf3, 0xf5, 0x81, 0x8e,
- 0x4d, 0x8e, 0xe4, 0x5e, 0xfe, 0xa3, 0xd5, 0x4c, 0x48, 0xb6, 0xb8, 0x05,
- 0xb1, 0x27, 0x0d, 0x80, 0xcd, 0xe1, 0xda, 0xd8, 0x8c, 0xad, 0xe6, 0x82,
- 0x85, 0x33, 0xf0, 0x3a, 0xf0, 0xc3, 0x4b, 0xe6, 0x5e, 0x49, 0xfe, 0x84,
- 0xab, 0x57, 0x2f, 0x2a, 0x74, 0x13, 0x3b, 0xf3, 0x4d, 0x9f, 0xda, 0x7f,
- 0x84, 0xc5, 0xf7, 0x4f, 0xa7, 0x23, 0x4d, 0x00, 0x00, 0x80, 0xa8, 0x3b,
- 0x9d, 0xf0, 0x04, 0x17, 0x68, 0xaa, 0xff, 0x6d, 0xf4, 0x62, 0xd1, 0x41,
- 0xdf, 0x7f, 0x6e, 0x5e, 0xde, 0xf8, 0xed, 0xb0, 0x3f, 0xc5, 0xe2, 0xbf,
- 0xff, 0xf0, 0x89, 0xb2, 0xe0, 0xc8, 0x38, 0x0a, 0x36, 0x64, 0x5b, 0xd6,
- 0x4c, 0xd8, 0xc7, 0x91, 0xe1, 0xc8, 0xbb, 0x3c, 0xdf, 0x8a, 0x91, 0x00,
- 0xbb, 0xaa, 0xdf, 0x80, 0x18, 0x1e, 0x57, 0xc7, 0x6c, 0x40, 0x0d, 0x82,
- 0x3e, 0x59, 0x30, 0xcc, 0x33, 0xac, 0x3f, 0xff, 0x3f, 0x40, 0x60, 0x85,
- 0x0a, 0x5e, 0xe0, 0x5f, 0x30, 0xa9, 0x2e, 0xc0, 0x10, 0x80, 0x08, 0x91,
- 0x2f, 0x54, 0x7d, 0x94, 0x24, 0xfa, 0x20, 0x54, 0xb9, 0xd1, 0x79, 0xd9,
- 0x66, 0x13, 0x2b, 0x3f, 0x23, 0x1a, 0xa9, 0xfd, 0xfb, 0xaa, 0x60, 0x8b,
- 0x49, 0x82, 0x7b, 0x39, 0xcd, 0xe2, 0xf9, 0x2e, 0xcf, 0xcc, 0x5a, 0x18,
- 0x75, 0x65, 0xaf, 0x75, 0xf9, 0x50, 0x65, 0x0d, 0x87, 0xff, 0x93, 0x5a,
- 0xf8, 0x87, 0x0c, 0x43, 0x68, 0xf4, 0x71, 0x30, 0x61, 0x7f, 0x09, 0xf8,
- 0xfc, 0x58, 0xc0, 0x16, 0xd2, 0x21, 0xef, 0xf9, 0x4b, 0xc4, 0x4d, 0x47,
- 0xff, 0xdd, 0xef, 0xff, 0xff, 0x20, 0x81, 0xf4, 0x2e, 0x86, 0xc1, 0x79,
- 0x26, 0x0c, 0x8e, 0x04, 0x14, 0x74, 0x53, 0x41, 0xcd, 0xba, 0xee, 0x3f,
- 0xf0, 0x94, 0x2d, 0x88, 0x8c, 0x68, 0x8b, 0x1f, 0x52, 0x4f, 0x04, 0x95,
- 0x0f, 0x66, 0xe6, 0xec, 0x33, 0x80, 0x55, 0xad, 0x12, 0x58, 0xee, 0xfe,
- 0x26, 0x04, 0xf0, 0x4b, 0x10, 0xe3, 0x8e, 0xbb, 0x6d, 0x95, 0xa5, 0x9d,
- 0xe8, 0xa1, 0xbb, 0xff, 0xe8, 0xce, 0xbe, 0xf0, 0x00, 0x03, 0x3f, 0x10,
- 0x59, 0xf6, 0x40, 0x69, 0x1d, 0xf0, 0x26, 0x3d, 0xff, 0x5e, 0x84, 0x44,
- 0xe6, 0x33, 0xa6, 0x1f, 0x3a, 0x60, 0x9c, 0x45, 0x5e, 0x3f, 0x5e, 0x03,
- 0xf7, 0x7e, 0x07, 0xef, 0x66, 0x0f, 0x57, 0x7c, 0xb6, 0x3e, 0x35, 0xe0,
- 0x07, 0xcb, 0xd6, 0x89, 0xb8, 0xa5, 0xe3, 0x33, 0x77, 0xcb, 0xfd, 0xff,
- 0x1d, 0xc9, 0x8c, 0x1b, 0x3b, 0xf9, 0xe2, 0x73, 0xf9, 0xbe, 0x90, 0xe3,
- 0xc2, 0x30, 0x57, 0x80, 0x5f, 0x25, 0x01, 0xf5, 0x02, 0x12, 0xb9, 0x5c,
- 0xda, 0x7c, 0xbd, 0x80, 0xe0, 0x88, 0x4b, 0x25, 0xb8, 0x33, 0x6f, 0xd5,
- 0xb5, 0xfe, 0x00, 0x05, 0x69, 0x9c, 0xbd, 0x5e, 0xd7, 0x0a, 0x48, 0x8e,
- 0xe6, 0x70, 0x24, 0xdc, 0x06, 0xfe, 0x43, 0x8c, 0x01, 0x4c, 0xdf, 0xff,
- 0xf0, 0xf9, 0x60, 0x0a, 0x09, 0x91, 0x80, 0x41, 0xca, 0x02, 0x8d, 0xcf,
- 0xf3, 0x0f, 0x71, 0xff, 0xe1, 0xf2, 0x00, 0x03, 0xca, 0x96, 0x5f, 0xa6,
- 0x38, 0xbc, 0x5f, 0x68, 0x0f, 0x9a, 0xf8, 0xff, 0xf8, 0x48, 0xb8, 0x02,
- 0x4c, 0x92, 0x48, 0x79, 0xfd, 0xb3, 0x8e, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xd6, 0xa4, 0x0b, 0x5c, 0x86, 0x84, 0x7e, 0x15, 0xff, 0x12,
- 0xbe, 0x19, 0x80, 0x2b, 0xa4, 0x86, 0x65, 0xe3, 0x87, 0x25, 0xf7, 0xe3,
- 0x38, 0x8c, 0xd9, 0x86, 0xc6, 0xfa, 0x72, 0x38, 0xea, 0xfc, 0xb0, 0xcc,
- 0x5b, 0xaf, 0x28, 0x45, 0xf0, 0x8f, 0x81, 0x3e, 0xa0, 0x2e, 0x19, 0xd8,
- 0x33, 0x0f, 0xa2, 0x96, 0x8c, 0x38, 0x87, 0x70, 0x39, 0xdd, 0x1f, 0xfd,
- 0xf8, 0xee, 0xe3, 0x35, 0x30, 0x30, 0x1f, 0xf2, 0x7f, 0x94, 0xd9, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0x57, 0xff, 0xe4, 0x31, 0x46, 0x31, 0x92, 0x8b, 0xff, 0xc2, 0x1f, 0xff,
- 0xff, 0xff, 0xf4, 0x3d, 0x9f, 0x9b, 0xfc, 0x70, 0xac, 0x11, 0xb6, 0x04,
- 0xef, 0xfe, 0x10, 0xb9, 0x7e, 0xf4, 0x89, 0x28, 0xda, 0x08, 0x7f, 0x2f,
- 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60, 0x55, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xeb, 0xfe, 0x18, 0xff,
- 0xd4, 0x38, 0x42, 0xa7, 0xc0, 0x09, 0xd2, 0x69, 0xe3, 0x84, 0x3f, 0x5f,
- 0x80, 0x0e, 0xa6, 0x26, 0x52, 0x98, 0x0e, 0xb1, 0x9a, 0xbd, 0xc0, 0x72,
- 0x04, 0x62, 0x31, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x68, 0x18, 0x2d, 0x99,
- 0xcb, 0x5d, 0x8a, 0x19, 0xd4, 0xe6, 0x63, 0x11, 0x14, 0xef, 0xa7, 0xe1,
- 0xe8, 0x8f, 0x6e, 0x94, 0x34, 0xec, 0xb1, 0xe2, 0x0b, 0x99, 0x05, 0x58,
- 0xdd, 0x29, 0x2e, 0x41, 0x8d, 0xaf, 0xfc, 0x7c, 0x01, 0xbb, 0x34, 0x01,
- 0x6b, 0x01, 0xb0, 0x40, 0x55, 0x4c, 0xf1, 0x1b, 0x40, 0x1c, 0x08, 0xfc,
- 0x32, 0x6a, 0xb3, 0x23, 0xf8, 0x76, 0x58, 0x94, 0x30, 0x54, 0xfb, 0x4b,
- 0xf0, 0x98, 0xb0, 0x09, 0x77, 0x0c, 0x2c, 0x3e, 0x21, 0xbb, 0x9f, 0x1e,
- 0x52, 0x80, 0x68, 0x7f, 0xbf, 0x7e, 0xee, 0x4b, 0x38, 0x37, 0xe4, 0x3f,
- 0xef, 0xcf, 0x2f, 0xe7, 0x8a, 0xff, 0xfe, 0x18, 0xe3, 0xc0, 0x0d, 0x1f,
- 0x54, 0x8b, 0x36, 0x00, 0x19, 0xb6, 0xdf, 0x29, 0xb8, 0x6e, 0xd4, 0xb1,
- 0xbb, 0x49, 0x80, 0xdf, 0x0e, 0xa3, 0x40, 0xd1, 0xc5, 0xb8, 0x02, 0x32,
- 0xb4, 0xd1, 0xad, 0x5e, 0x51, 0x3e, 0x09, 0xa4, 0x70, 0xec, 0x8c, 0xc8,
- 0x8d, 0xf9, 0xe1, 0x7a, 0x98, 0x95, 0x70, 0x67, 0x6a, 0xb7, 0xdf, 0xc7,
- 0x7f, 0xfb, 0xf7, 0xfb, 0xff, 0xfe, 0x18, 0x05, 0x41, 0x0b, 0x97, 0xfc,
- 0x24, 0xc3, 0x5b, 0x31, 0x23, 0xf4, 0xbb, 0xc0, 0xc6, 0x2b, 0xb6, 0x90,
- 0xfb, 0xef, 0x1e, 0x02, 0xad, 0x25, 0x81, 0xaf, 0xfc, 0x2f, 0x8e, 0x43,
- 0x7f, 0xfc, 0xd3, 0xb2, 0xcb, 0x5f, 0xed, 0x32, 0xed, 0xe5, 0x0b, 0xff,
- 0xe0, 0x33, 0xbe, 0xb4, 0x1a, 0x8d, 0xdf, 0x1d, 0xbe, 0x18, 0xff, 0xfd,
- 0xde, 0x15, 0x11, 0xc0, 0x0c, 0x4b, 0x88, 0x8d, 0xa5, 0xda, 0xc3, 0x36,
- 0x6b, 0x48, 0xdf, 0xff, 0xae, 0x65, 0x74, 0xba, 0xff, 0xe9, 0x86, 0x3f,
- 0xee, 0xf7, 0x7e, 0x33, 0xc0, 0x03, 0x13, 0x3e, 0xf4, 0x22, 0xd6, 0x00,
- 0x18, 0x97, 0x11, 0x1b, 0x4b, 0xb4, 0x19, 0xb3, 0x5a, 0x46, 0xff, 0xfd,
- 0x70, 0xfc, 0xca, 0xe9, 0x75, 0xff, 0xd2, 0x1f, 0xe1, 0x8d, 0xde, 0x62,
- 0x9f, 0x08, 0x45, 0x2e, 0x74, 0x32, 0x9d, 0x0f, 0x8f, 0x40, 0xc2, 0xf7,
- 0xbe, 0xef, 0x9e, 0x00, 0x18, 0x99, 0xf7, 0xa1, 0x16, 0xb2, 0xd9, 0x5c,
- 0x93, 0xe3, 0xf1, 0x20, 0xbd, 0xe0, 0x48, 0x25, 0x1d, 0xc4, 0xb6, 0x98,
- 0xaf, 0xae, 0xe4, 0x02, 0x65, 0x2c, 0xcf, 0x44, 0x8d, 0xa8, 0x63, 0x9f,
- 0x61, 0x8f, 0xff, 0xf8, 0x7c, 0xf0, 0x05, 0xad, 0x30, 0x42, 0xb1, 0x0d,
- 0xcf, 0xf4, 0x26, 0xe0, 0x3d, 0x9a, 0xe4, 0xd4, 0xdc, 0xfe, 0x0c, 0x38,
- 0xf8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x82, 0xae, 0xf9,
- 0x77, 0x8c, 0x7f, 0xbf, 0xbc, 0x77, 0xc9, 0xdf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0x7f,
- 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x03, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x4e, 0xb1, 0xa5, 0x28, 0x9c, 0x01,
- 0x4b, 0x7e, 0xa0, 0x3e, 0xfb, 0x17, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf9, 0x3f, 0x12, 0x5f, 0x14, 0x30, 0x01, 0x04, 0x35, 0x3e, 0x4c, 0xdb,
- 0x41, 0x43, 0x49, 0xb1, 0xf1, 0x6a, 0x82, 0xac, 0x29, 0xfa, 0x94, 0xe3,
- 0x91, 0x41, 0x68, 0x6b, 0x1b, 0xa5, 0xdd, 0xde, 0xe7, 0x3f, 0x12, 0x2e,
- 0xe0, 0xaf, 0xc0, 0xf3, 0x36, 0x80, 0xcd, 0xe7, 0xb0, 0xa5, 0x22, 0x5f,
- 0xee, 0x7f, 0x73, 0x70, 0x08, 0x2f, 0x7e, 0x1f, 0xf4, 0xf1, 0x5f, 0xff,
- 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x64, 0xa9, 0x2b, 0x37, 0x00, 0x38, 0xb9,
- 0x08, 0xbd, 0x87, 0x99, 0x5b, 0x72, 0x6e, 0x3c, 0x04, 0x22, 0x59, 0xa9,
- 0x75, 0x32, 0x35, 0xc0, 0x02, 0x26, 0x50, 0x36, 0x7a, 0x72, 0x0e, 0xa5,
- 0x00, 0x0d, 0xee, 0x80, 0x9a, 0xa8, 0x57, 0xa8, 0x55, 0xd6, 0xfe, 0x76,
- 0xae, 0xd7, 0xa8, 0x00, 0x33, 0xba, 0x84, 0xd5, 0x12, 0x6a, 0x87, 0x1b,
- 0x93, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xf8, 0x86, 0xd7, 0xb7,
- 0x47, 0xaf, 0xc5, 0xa2, 0xf1, 0x0e, 0xa3, 0x41, 0x62, 0x05, 0x2a, 0xd8,
- 0x39, 0xf7, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf6, 0xb0, 0xc8, 0x16, 0x63,
- 0xbd, 0xe2, 0x73, 0x15, 0x57, 0x50, 0xf1, 0x5e, 0x28, 0xb8, 0xe8, 0xa6,
- 0x00, 0xf1, 0xfa, 0xbd, 0x3a, 0xdd, 0xd4, 0x62, 0xf7, 0x1e, 0x01, 0x45,
- 0xed, 0x81, 0xa8, 0x8b, 0xf3, 0x7f, 0xae, 0xba, 0xe1, 0x5c, 0x7a, 0xef,
- 0xfe, 0xbf, 0xc0, 0x17, 0x95, 0x51, 0xde, 0xd1, 0x8e, 0x98, 0xf8, 0xc8,
- 0x07, 0xf4, 0xbe, 0x6f, 0xff, 0xed, 0x04, 0x2e, 0x00, 0x45, 0x64, 0x7d,
- 0x09, 0x47, 0x44, 0xf6, 0xe9, 0x55, 0x06, 0xc0, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xda, 0xc4, 0x37, 0xe4, 0xe4, 0x24, 0x00, 0x9e, 0x65, 0x89,
- 0x5d, 0x15, 0x76, 0xbf, 0xe2, 0x0c, 0xe0, 0xe7, 0x40, 0x68, 0x14, 0xf7,
- 0xe4, 0x6c, 0xb4, 0x68, 0x00, 0x0e, 0xbc, 0xff, 0x00, 0x00, 0x04, 0x00,
- 0xe0, 0x0b, 0x2b, 0xd8, 0x18, 0xa9, 0x30, 0x02, 0x82, 0xe6, 0x07, 0x8e,
- 0x8c, 0x06, 0xfc, 0x67, 0xfc, 0x9e, 0xfc, 0x77, 0xfc, 0x9f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
- 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f,
- 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb, 0x60, 0x67, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0xe1, 0x8f, 0xfd,
- 0x43, 0x84, 0x2a, 0x7c, 0x00, 0xad, 0x34, 0xf1, 0xc6, 0x3e, 0xbf, 0x00,
- 0x2e, 0xc8, 0x5d, 0xc8, 0x05, 0x58, 0x8e, 0xbd, 0xd5, 0x59, 0x5e, 0x12,
- 0x31, 0x3c, 0xb1, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x68, 0x10, 0xd9, 0x99,
- 0xca, 0xd2, 0xb1, 0x01, 0x9d, 0xd1, 0xa6, 0x37, 0x74, 0xd3, 0xbb, 0x4f,
- 0x08, 0x6d, 0x30, 0x7c, 0x6e, 0x26, 0x86, 0xa8, 0x8c, 0x6d, 0x4d, 0x59,
- 0xb6, 0x9e, 0x02, 0xc7, 0x44, 0x98, 0x19, 0x2d, 0x30, 0x0f, 0x64, 0x99,
- 0xa0, 0x33, 0x6b, 0x85, 0x00, 0x95, 0x4c, 0xf8, 0x73, 0x41, 0xae, 0x47,
- 0x0c, 0x3d, 0x0a, 0x57, 0xf2, 0x8c, 0x1f, 0xe8, 0x61, 0xbf, 0x9f, 0xf8,
- 0x78, 0xe1, 0xa8, 0x98, 0x67, 0xaf, 0x64, 0x3e, 0x37, 0x95, 0x56, 0xf9,
- 0xe2, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0xb3, 0x1d, 0x9b, 0x00,
- 0x30, 0x3c, 0xaf, 0x8e, 0xc3, 0xc4, 0x8c, 0xa5, 0xbc, 0x04, 0x5e, 0xb5,
- 0xe7, 0xfc, 0x75, 0xb2, 0x1a, 0x43, 0x87, 0x2c, 0x19, 0xd7, 0x39, 0xa2,
- 0xc9, 0xfb, 0x9f, 0xe0, 0xa6, 0x72, 0x51, 0x02, 0xaa, 0x77, 0xec, 0xf8,
- 0x34, 0x8a, 0x3d, 0x40, 0x1d, 0xde, 0x3e, 0x7f, 0xff, 0xfb, 0xff, 0xfe,
- 0x18, 0xb5, 0x36, 0xff, 0xc2, 0x47, 0x80, 0x50, 0x5a, 0x58, 0xf7, 0xf9,
- 0x04, 0xf1, 0x1c, 0x58, 0x74, 0x8e, 0x46, 0xb8, 0xa0, 0xce, 0x04, 0x41,
- 0xfe, 0x47, 0x82, 0x0e, 0x7d, 0x6f, 0x1d, 0xbd, 0x86, 0x3e, 0x90, 0xfe,
- 0x10, 0xa6, 0x01, 0xba, 0xa3, 0xa8, 0x10, 0x16, 0xa5, 0xcf, 0xa3, 0xd3,
- 0x1e, 0xbe, 0xdb, 0xe3, 0xb6, 0xfc, 0x30, 0x21, 0x0d, 0x43, 0xfe, 0x1f,
- 0xe0, 0x0a, 0xf2, 0xe2, 0x15, 0x7d, 0x2e, 0x9c, 0x31, 0x88, 0x60, 0xbf,
- 0xf0, 0x97, 0x03, 0x90, 0x06, 0x8c, 0x80, 0x10, 0xeb, 0xeb, 0xeb, 0xef,
- 0xfb, 0xb8, 0xcb, 0x10, 0x9b, 0x1f, 0xe5, 0xc3, 0x1f, 0xe0, 0x1a, 0xad,
- 0xa1, 0x58, 0x00, 0x64, 0x6e, 0xed, 0x7d, 0x8b, 0xfe, 0x0f, 0x02, 0x83,
- 0xa3, 0x20, 0x35, 0x74, 0x05, 0xf1, 0x62, 0x43, 0xfb, 0x48, 0x6f, 0xff,
- 0x8a, 0x80, 0x33, 0xc2, 0xb8, 0xc1, 0xfb, 0x1b, 0xc1, 0xb0, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x86, 0xf2, 0x2f, 0xde, 0x33, 0xef,
- 0xef, 0x1d, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x15,
- 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0x98, 0xf8, 0x03, 0x23, 0xab, 0xeb, 0xd8, 0x4a, 0xdd, 0x68, 0xb1, 0x05,
- 0x13, 0x2f, 0x0c, 0x56, 0xd2, 0x75, 0xaf, 0xbf, 0xe2, 0x31, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xef, 0x05, 0x31, 0x46, 0x31, 0x7a, 0xed, 0xa5, 0x6b,
- 0x48, 0x2a, 0x40, 0x7d, 0xfe, 0x01, 0x1e, 0xbe, 0xd8, 0x35, 0x6e, 0x20,
- 0xe9, 0xaa, 0xb1, 0x8b, 0xd7, 0x6c, 0x61, 0x11, 0x1a, 0x5a, 0xa0, 0x6d,
- 0x0e, 0x10, 0x62, 0x32, 0x22, 0x32, 0x66, 0x0f, 0x11, 0x19, 0x33, 0x00,
- 0xf3, 0x63, 0x1b, 0xd0, 0x41, 0x95, 0xd4, 0xc3, 0x80, 0x08, 0xcc, 0x78,
- 0x14, 0x1b, 0x3d, 0x22, 0x40, 0x2b, 0xbf, 0xf0, 0xcb, 0x79, 0x9b, 0x6b,
- 0xeb, 0x3f, 0x46, 0x5c, 0xfc, 0x6c, 0x6a, 0xde, 0xfd, 0xc2, 0xe1, 0xa4,
- 0x33, 0x1f, 0xe8, 0x48, 0x20, 0x20, 0x81, 0x22, 0x41, 0xbd, 0xde, 0x72,
- 0xe7, 0x7e, 0xf2, 0x81, 0x2b, 0x42, 0xd1, 0x4e, 0xf9, 0x1e, 0x16, 0xbf,
- 0xc5, 0x7f, 0xff, 0xf9, 0xbf, 0xe5, 0x87, 0x8c, 0x58, 0x01, 0x0c, 0x65,
- 0xe4, 0x38, 0x9a, 0xef, 0x80, 0x28, 0xb1, 0xdb, 0x03, 0x17, 0xf7, 0xfb,
- 0x44, 0x69, 0xa2, 0x7d, 0x5f, 0xf9, 0xbf, 0x5b, 0x16, 0xa9, 0xd9, 0x38,
- 0x03, 0x55, 0x23, 0x69, 0xf9, 0xc5, 0xba, 0x99, 0xe0, 0x91, 0xee, 0xc5,
- 0x5e, 0x45, 0x80, 0x70, 0x1d, 0x9c, 0x98, 0xc7, 0x4c, 0x18, 0x6a, 0x6e,
- 0x0b, 0x6f, 0x1e, 0xab, 0x4c, 0x62, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff,
- 0xff, 0xf3, 0x6e, 0x38, 0x07, 0xfc, 0x24, 0xf0, 0x06, 0xb9, 0x36, 0xe7,
- 0x6c, 0x1b, 0x2f, 0x66, 0x12, 0x9b, 0xaf, 0x7c, 0x40, 0x0c, 0x43, 0x32,
- 0x64, 0xfa, 0xf5, 0xe4, 0x88, 0x88, 0x59, 0x61, 0xe1, 0x1b, 0xfe, 0x1c,
- 0x6d, 0x07, 0x3d, 0xf3, 0x4a, 0xea, 0x20, 0xa3, 0x0d, 0xd7, 0xe7, 0xf5,
- 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x3f, 0xf9, 0x26, 0xcf,
- 0xe8, 0x73, 0xf8, 0x4c, 0xb8, 0x65, 0x07, 0xe1, 0xcd, 0x78, 0x3f, 0x0d,
- 0xe0, 0x23, 0x7a, 0x40, 0x7d, 0x2a, 0xcf, 0x13, 0xf8, 0xd8, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x11, 0xfb, 0x37, 0xe2, 0x7f, 0x4e,
- 0x14, 0x10, 0x00, 0xa7, 0xd3, 0x04, 0x29, 0xf3, 0xc0, 0x7e, 0x70, 0x25,
- 0x05, 0xcd, 0xfe, 0x74, 0x3f, 0x84, 0xde, 0xf0, 0x21, 0xed, 0x81, 0xfb,
- 0xd9, 0xf4, 0xd8, 0xb5, 0x0a, 0x47, 0x7c, 0xdf, 0xb1, 0x7b, 0x4b, 0x18,
- 0xa0, 0x4d, 0x84, 0x2a, 0x4c, 0x61, 0x5e, 0xf8, 0x11, 0x8a, 0x4c, 0x0f,
- 0xc2, 0x0e, 0xc3, 0xd4, 0xfe, 0xfc, 0x67, 0xfd, 0xf1, 0xeb, 0x02, 0x47,
- 0x4c, 0x8c, 0xde, 0x6f, 0x9e, 0x00, 0x06, 0x62, 0x80, 0x01, 0x98, 0x03,
- 0x4d, 0xb1, 0x14, 0x0c, 0xa4, 0x6f, 0x80, 0x0e, 0xcf, 0x6f, 0x77, 0xef,
- 0xcf, 0xcc, 0xc4, 0x5f, 0xff, 0x87, 0x8a, 0x3b, 0x88, 0xed, 0x40, 0x7f,
- 0x8b, 0xbf, 0x07, 0xe1, 0xf7, 0xe3, 0xbf, 0xe4, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xff,
- 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60,
- 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
- 0xd6, 0x63, 0xe1, 0xc7, 0x4a, 0x02, 0xbe, 0x2b, 0xff, 0xff, 0xfd, 0x7a,
- 0xc5, 0x0a, 0x19, 0xdd, 0xed, 0x88, 0x81, 0x01, 0x95, 0x2f, 0x72, 0xb8,
- 0x00, 0xc2, 0xf2, 0x01, 0x85, 0x24, 0x9a, 0x0f, 0xba, 0x3b, 0xb7, 0x15,
- 0x93, 0x6a, 0x96, 0xba, 0x50, 0x1e, 0xdc, 0x43, 0x09, 0x0f, 0xb7, 0xf8,
- 0x4c, 0x58, 0x1b, 0x1c, 0x28, 0x5c, 0xca, 0xa1, 0x56, 0x43, 0xee, 0xaf,
- 0x5d, 0x95, 0x81, 0x2a, 0x59, 0xee, 0x2b, 0xfe, 0xbd, 0x7c, 0x59, 0xa6,
- 0x0c, 0x84, 0x83, 0x14, 0xdc, 0x48, 0x0e, 0xd9, 0xd0, 0xb7, 0x41, 0x1f,
- 0x8d, 0x43, 0x2e, 0x79, 0xf6, 0xe4, 0xd5, 0x6b, 0x0f, 0xff, 0xff, 0x7f,
- 0xfe, 0xbd, 0x08, 0x88, 0x28, 0x3b, 0x80, 0x41, 0x53, 0x07, 0x01, 0xb7,
- 0x10, 0xb0, 0x36, 0x08, 0xfd, 0xe0, 0x7b, 0xfa, 0x4f, 0xf3, 0xc9, 0xbf,
- 0x12, 0x5d, 0x42, 0x85, 0xbe, 0x6c, 0x1a, 0x83, 0xd5, 0xfa, 0xaa, 0x6d,
- 0xdf, 0xff, 0x20, 0xcf, 0xad, 0xe3, 0xb7, 0xbc, 0x76, 0xdc, 0x46, 0x18,
- 0xcc, 0x3e, 0xb9, 0xd4, 0xe2, 0xde, 0x00, 0xf7, 0xdf, 0x1e, 0xc7, 0x80,
- 0x81, 0xef, 0x3b, 0xc4, 0x5f, 0xfc, 0x37, 0x0e, 0xe3, 0x7f, 0x8d, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x83, 0x3d, 0xaf, 0x0c,
- 0x75, 0xcf, 0xea, 0x71, 0x82, 0x71, 0x00, 0x08, 0x77, 0x41, 0xe3, 0x9e,
- 0xfc, 0x00, 0x1f, 0x80, 0x81, 0xef, 0x3b, 0xc4, 0x50, 0xdc, 0x3b, 0x8f,
- 0x86, 0x3f, 0x6e, 0x60, 0xd2, 0xc6, 0x60, 0x9a, 0x23, 0xa7, 0x12, 0xc1,
- 0xf0, 0x05, 0xbf, 0x7c, 0x7b, 0x21, 0xea, 0x4f, 0x86, 0x81, 0x57, 0xfb,
- 0xc6, 0x7d, 0xaf, 0x5b, 0xf9, 0x83, 0x87, 0xb5, 0xef, 0x1b, 0xfe, 0x4f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0x84, 0x3f,
- 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xc6, 0xc0, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xf8, 0xc1, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09,
- 0xc6, 0x8a, 0x81, 0x2b, 0x50, 0x1b, 0xdc, 0x9b, 0xc4, 0x4d, 0xc7, 0x88,
- 0x40, 0x04, 0x6b, 0xd5, 0xf5, 0xfa, 0xef, 0x29, 0x73, 0xc2, 0x20, 0xbc,
- 0x57, 0xff, 0xff, 0xf3, 0x0e, 0xc6, 0x5a, 0x3f, 0xff, 0xfe, 0x28, 0xa4,
- 0x7f, 0x8f, 0xde, 0xda, 0x1b, 0xe0, 0x91, 0xe1, 0xfb, 0xd8, 0xc9, 0xc6,
- 0x6b, 0x23, 0xfc, 0x7e, 0xf6, 0xd3, 0x26, 0x0e, 0x6e, 0x86, 0x8a, 0x2e,
- 0x75, 0x18, 0xc2, 0x00, 0x5f, 0xf1, 0x96, 0x26, 0x46, 0xb9, 0x9d, 0x32,
- 0x70, 0xf6, 0xdd, 0xe6, 0x70, 0x2c, 0xbd, 0x48, 0x1b, 0x5a, 0x00, 0x62,
- 0x17, 0xa0, 0xa3, 0x7e, 0xbe, 0xd5, 0x79, 0x79, 0x61, 0xa0, 0x97, 0x80,
- 0x03, 0x7a, 0xf9, 0xe4, 0x39, 0xfc, 0x3b, 0x1a, 0x81, 0x1d, 0x00, 0x5e,
- 0xe1, 0x19, 0x11, 0x2a, 0x60, 0x78, 0x80, 0x58, 0x24, 0x58, 0xfd, 0xe2,
- 0xc6, 0xfe, 0x0d, 0xd5, 0x46, 0x03, 0x81, 0x5c, 0x41, 0xeb, 0x5e, 0x0d,
- 0xf2, 0x21, 0x53, 0x10, 0xcc, 0x43, 0x76, 0xbc, 0x57, 0xff, 0xfe, 0x63,
- 0x42, 0x0e, 0x0e, 0x38, 0xa9, 0x4c, 0x78, 0xc2, 0xf0, 0x4c, 0xf6, 0xd7,
- 0x02, 0x56, 0xee, 0x0e, 0x1a, 0xb7, 0xe2, 0x07, 0xf3, 0x71, 0x63, 0xec,
- 0x60, 0x43, 0x77, 0xcd, 0xfa, 0xd9, 0xe6, 0x80, 0xdb, 0x5c, 0x00, 0xe0,
- 0x3e, 0x63, 0x0f, 0x6a, 0x1e, 0x6d, 0xc2, 0x9d, 0x3f, 0x3c, 0x00, 0x7c,
- 0xf8, 0xa6, 0x43, 0x56, 0x57, 0xfe, 0xb2, 0xeb, 0x92, 0x9f, 0xf7, 0xaf,
- 0xe0, 0x56, 0xdb, 0xf9, 0x4f, 0x7f, 0xff, 0x5b, 0x0b, 0x5c, 0x90, 0xd7,
- 0xbf, 0xfd, 0xf2, 0x73, 0xd0, 0x1f, 0xe8, 0xcf, 0x26, 0x18, 0xbf, 0xff,
- 0xff, 0xff, 0xbf, 0xff, 0xff, 0xe2, 0x38, 0xf8, 0x0c, 0x54, 0x04, 0x0d,
- 0x70, 0xc6, 0x42, 0x07, 0x31, 0x63, 0xff, 0xf0, 0x94, 0x02, 0x3a, 0xbe,
- 0xda, 0x95, 0x37, 0x1b, 0xa4, 0xd5, 0xc1, 0xf4, 0xd0, 0x18, 0x8d, 0xaa,
- 0xd4, 0x31, 0x95, 0x0b, 0x70, 0x91, 0xd7, 0x2b, 0x9f, 0xf2, 0x7b, 0xf5,
- 0xef, 0xc6, 0x7a, 0xf7, 0xef, 0xc6, 0x7a, 0xf6, 0x6f, 0x87, 0xf1, 0xa4,
- 0x10, 0x96, 0x07, 0x20, 0xc4, 0x4c, 0xc4, 0xcd, 0x66, 0xfe, 0xf9, 0xe2,
- 0x6b, 0xc6, 0x7c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x15,
- 0xfb, 0x36, 0x1f, 0xc7, 0xf0, 0x98, 0x80, 0x03, 0x15, 0xc4, 0x6c, 0x80,
- 0x00, 0x40, 0x27, 0x57, 0x80, 0x60, 0xc2, 0x7e, 0xbb, 0x53, 0xff, 0x67,
- 0xb2, 0xa4, 0xc6, 0x1c, 0x83, 0x11, 0x33, 0xc4, 0x44, 0xfc, 0x50, 0x88,
- 0xf0, 0x98, 0x1a, 0x04, 0x07, 0x42, 0x8a, 0x79, 0xdd, 0xf8, 0xcf, 0xfa,
- 0x32, 0x7f, 0xe3, 0xf0, 0x9c, 0x4c, 0xd6, 0x6f, 0xef, 0xff, 0x00, 0x0c,
- 0xbf, 0xba, 0x77, 0x49, 0x14, 0xa9, 0x0e, 0x20, 0x04, 0xa8, 0x26, 0xff,
- 0xee, 0x4e, 0x58, 0xcf, 0x00, 0x33, 0xef, 0xeb, 0x3b, 0x60, 0x06, 0x7d,
- 0xfd, 0x67, 0x60, 0xff, 0xf2, 0x99, 0xef, 0xc0, 0x11, 0xda, 0x4c, 0x0f,
- 0xf1, 0x3f, 0xda, 0xb0, 0x3f, 0xca, 0x00, 0x00, 0x3f, 0xf6, 0xc2, 0x6e,
- 0x5e, 0xed, 0xe1, 0xe2, 0xcc, 0xe4, 0xbf, 0x1e, 0x68, 0x08, 0x3b, 0xff,
- 0xf0, 0x92, 0x80, 0x33, 0x82, 0x12, 0x65, 0x20, 0xaa, 0x9b, 0x7f, 0xee,
- 0x7c, 0x49, 0xdb, 0x94, 0x4e, 0x04, 0x5e, 0x45, 0x04, 0x5e, 0x4f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf0, 0xaf,
- 0xff, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f,
- 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x6f, 0x60, 0x29, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xde, 0x61,
- 0x38, 0x23, 0xdc, 0xcc, 0x01, 0x9d, 0x8a, 0x66, 0x48, 0xf3, 0xfa, 0x19,
- 0x89, 0x8a, 0xff, 0xf7, 0xff, 0xf7, 0xe1, 0x80, 0xe7, 0x00, 0x45, 0x17,
- 0x6a, 0x04, 0x60, 0x48, 0x87, 0xab, 0x4e, 0x00, 0x00, 0x8f, 0x80, 0x47,
- 0x25, 0xee, 0xe6, 0xe8, 0x7f, 0x02, 0x61, 0x4e, 0x9f, 0x30, 0xef, 0x72,
- 0x71, 0xb5, 0x34, 0x35, 0x54, 0xf9, 0xc1, 0x03, 0xb0, 0xc4, 0xa2, 0xc1,
- 0x8d, 0x34, 0xb6, 0x23, 0xe6, 0xbf, 0x78, 0x32, 0xc9, 0x3d, 0x08, 0xd9,
- 0xaf, 0xde, 0x2b, 0xfe, 0xfd, 0xf8, 0x63, 0xf5, 0xb0, 0xc0, 0x3d, 0x93,
- 0x80, 0x8c, 0xa3, 0xd3, 0xf3, 0x88, 0xdc, 0xb3, 0xd9, 0xe0, 0x0c, 0xc7,
- 0x8d, 0x73, 0x4f, 0x4e, 0xed, 0x91, 0x18, 0xbf, 0xee, 0x7f, 0x27, 0x8a,
- 0x67, 0xcf, 0xff, 0xff, 0x7f, 0xfe, 0xfc, 0x31, 0x88, 0x61, 0xf8, 0x70,
- 0x97, 0x00, 0x4d, 0xd3, 0x9d, 0x4f, 0x33, 0x26, 0x5e, 0x00, 0x97, 0x24,
- 0x95, 0x4f, 0x1f, 0x5b, 0xc7, 0x6f, 0x78, 0xed, 0xa8, 0x92, 0x17, 0x81,
- 0x23, 0xf0, 0xef, 0xc9, 0x86, 0x30, 0xfa, 0x53, 0xf0, 0x40, 0xc0, 0x16,
- 0xff, 0xf8, 0xef, 0x0c, 0xf9, 0x8f, 0x8e, 0xff, 0x8e, 0xb1, 0xb0, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x3d, 0x86, 0x3a, 0x7c,
- 0x74, 0xa6, 0x09, 0xc4, 0x40, 0x4c, 0x5e, 0x80, 0x03, 0x8f, 0x50, 0x6e,
- 0x05, 0xb0, 0x14, 0x60, 0xc0, 0x76, 0xe2, 0xb0, 0xf7, 0xfb, 0xc6, 0x7d,
- 0x06, 0x3d, 0x12, 0x9f, 0x4e, 0x14, 0x69, 0x57, 0x77, 0xe0, 0x19, 0xfa,
- 0x3e, 0x7d, 0xa5, 0x5d, 0xdf, 0xca, 0x80, 0x64, 0x6e, 0xeb, 0xdb, 0xc6,
- 0x0d, 0xf8, 0x23, 0x3e, 0x5f, 0xde, 0x3d, 0x72, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf,
- 0xe5, 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9,
- 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x99, 0x84, 0xf0, 0x04,
- 0x0a, 0xa9, 0xf1, 0xbf, 0x51, 0x3c, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xcc, 0x1d, 0xac, 0x08, 0xa2, 0xef, 0x20, 0x8c, 0x09, 0x06, 0x91,
- 0x63, 0x37, 0x01, 0xc8, 0x85, 0x41, 0x76, 0x03, 0x02, 0xfd, 0x19, 0x3b,
- 0xfe, 0x68, 0xd9, 0x34, 0x72, 0xaf, 0x00, 0x06, 0xdb, 0xd0, 0xa3, 0x7e,
- 0xae, 0xd9, 0x84, 0xc7, 0xa8, 0x17, 0x83, 0xc8, 0x46, 0x69, 0x64, 0x42,
- 0x45, 0x70, 0xb2, 0xf0, 0x72, 0x11, 0x89, 0x2d, 0x40, 0xf2, 0x0f, 0x62,
- 0x45, 0xfc, 0x21, 0x09, 0x8a, 0x95, 0x8e, 0xcc, 0x6e, 0xd7, 0xc2, 0x4f,
- 0x02, 0x11, 0xce, 0x80, 0xec, 0xe7, 0xff, 0xc5, 0x7f, 0xff, 0xff, 0xcd,
- 0xf8, 0x8c, 0x99, 0x83, 0xd9, 0x38, 0x00, 0x66, 0xdf, 0xf2, 0xbe, 0x6a,
- 0x31, 0x0e, 0x24, 0xf4, 0xfc, 0x03, 0x05, 0x3c, 0x8a, 0xa7, 0x3e, 0x02,
- 0x22, 0xf8, 0x75, 0x94, 0x75, 0x14, 0x3a, 0x5c, 0x20, 0x31, 0x4f, 0xe7,
- 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x9a, 0x3e, 0x1f, 0xf8, 0x4a,
- 0x1f, 0x4d, 0x03, 0x11, 0xb1, 0x5a, 0xbf, 0xc0, 0x11, 0x4d, 0x03, 0x11,
- 0xac, 0xad, 0x40, 0x08, 0xa7, 0x03, 0x11, 0x6c, 0xad, 0x5e, 0x1c, 0xfe,
- 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3, 0x7c, 0x2d, 0xec, 0x6d, 0x85,
- 0x0b, 0x00, 0x11, 0x86, 0xbe, 0xae, 0xfe, 0xff, 0x43, 0x2b, 0x55, 0x56,
- 0xaf, 0x00, 0x10, 0xdd, 0x27, 0x7a, 0xfc, 0xf0, 0x62, 0x67, 0x9a, 0xbd,
- 0x6f, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x37,
- 0xe8, 0xdf, 0x96, 0xd6, 0xf8, 0x91, 0x1c, 0x00, 0xcc, 0xa9, 0x9a, 0x27,
- 0xab, 0xc0, 0x01, 0x89, 0xae, 0x42, 0xd6, 0x10, 0x02, 0x81, 0xc3, 0xc2,
- 0x4b, 0x7f, 0x74, 0xef, 0x10, 0x8e, 0xee, 0x5c, 0x48, 0xff, 0x9f, 0x44,
- 0x44, 0xd7, 0xbf, 0x19, 0xe8, 0xcc, 0x61, 0xf6, 0xb7, 0xe1, 0x31, 0x00,
- 0x43, 0xf8, 0xfd, 0x48, 0x30, 0x99, 0x6f, 0xb4, 0x9b, 0xe5, 0xef, 0x38,
- 0xec, 0x90, 0x16, 0x81, 0x88, 0x35, 0x1b, 0x8d, 0xff, 0x3c, 0x4f, 0xff,
- 0x7e, 0x37, 0x90, 0xd0, 0x06, 0x21, 0x46, 0x4c, 0x8f, 0xaf, 0x7e, 0x61,
- 0x0f, 0x00, 0xff, 0x87, 0xb0, 0x91, 0x68, 0xaf, 0xe0, 0x5f, 0x81, 0x81,
- 0xea, 0xf8, 0xed, 0xff, 0x60, 0x48, 0x08, 0xed, 0x40, 0x0e, 0xb5, 0x7f,
- 0x05, 0xfa, 0x1f, 0x36, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x4f, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xae, 0xb1, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xeb, 0xff, 0xaf, 0xfa, 0xcc, 0x27, 0x04, 0x34, 0xde, 0x65, 0x41, 0x48,
- 0x58, 0x92, 0xc5, 0x7f, 0xff, 0xff, 0xf5, 0x8a, 0x10, 0x00, 0xda, 0xb5,
- 0x17, 0x33, 0xfb, 0xfd, 0xac, 0xbc, 0x02, 0x11, 0x0e, 0xd1, 0xad, 0x7f,
- 0xfa, 0x00, 0x63, 0x2f, 0x0a, 0xc2, 0xff, 0xec, 0xd2, 0xe3, 0x5a, 0x49,
- 0x1c, 0x4f, 0x73, 0x3e, 0x18, 0x0a, 0x7c, 0x2f, 0xf8, 0x4c, 0xe0, 0x14,
- 0x01, 0x7b, 0x90, 0x72, 0xaf, 0x98, 0x4c, 0x17, 0xbe, 0x16, 0xf6, 0x7c,
- 0x50, 0x0d, 0x67, 0xa9, 0x4a, 0x7d, 0xfd, 0x51, 0x5f, 0xff, 0xd6, 0x33,
- 0xc1, 0x2f, 0xf1, 0xaa, 0xf6, 0x00, 0x44, 0x5e, 0x8e, 0x41, 0x3a, 0xff,
- 0x9a, 0xd7, 0xf8, 0x1e, 0x6c, 0xf0, 0x7c, 0xc2, 0xbb, 0xac, 0xf2, 0x94,
- 0x86, 0xc0, 0xf1, 0x5e, 0xdb, 0xd0, 0x39, 0x20, 0x69, 0xbc, 0x1f, 0xf1,
- 0x87, 0xdd, 0x6c, 0x7f, 0xff, 0xfb, 0xff, 0xfe, 0x4e, 0x06, 0x01, 0x08,
- 0x20, 0x72, 0xff, 0x79, 0xf9, 0xa1, 0x2c, 0x73, 0xc0, 0x0c, 0xbe, 0xeb,
- 0xb1, 0xfe, 0x5c, 0x01, 0xad, 0x21, 0x2d, 0xed, 0x36, 0x03, 0x13, 0xf7,
- 0x90, 0x21, 0x43, 0x10, 0xf1, 0xc6, 0xd2, 0x24, 0x4f, 0xcf, 0x3e, 0xb7,
- 0x8e, 0xde, 0xf1, 0xdb, 0x0c, 0x7c, 0x3f, 0xf8, 0x7c, 0xb0, 0x08, 0x9a,
- 0xec, 0xfa, 0xda, 0xc3, 0xa0, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xba, 0xc5, 0x84, 0xf4, 0x18, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07,
- 0x22, 0x30, 0x15, 0x32, 0x04, 0x5a, 0xaa, 0x9e, 0xbe, 0xb7, 0x8c, 0xd0,
- 0x63, 0xff, 0xda, 0x18, 0x21, 0x80, 0x10, 0xdd, 0x5d, 0xeb, 0xf3, 0xdf,
- 0xc1, 0x57, 0xde, 0x35, 0x7a, 0xc8, 0x80, 0x78, 0xc8, 0xe9, 0x85, 0x80,
- 0x00, 0x80, 0x0f, 0xdf, 0x27, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xe1,
- 0x5f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xfa, 0xd1, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xff,
- 0x98, 0x4f, 0x00, 0x30, 0xb3, 0x5d, 0xdd, 0xef, 0xd6, 0x19, 0x95, 0xe3,
- 0x11, 0xf5, 0xb8, 0x43, 0xfe, 0xdf, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf3, 0x07, 0x27, 0xba, 0x28, 0xba, 0x2a, 0xe3, 0x06, 0x00, 0x37, 0xd9,
- 0x6d, 0x6a, 0x45, 0xb1, 0x02, 0x58, 0x74, 0xd0, 0x2a, 0xb3, 0x7d, 0x47,
- 0xf3, 0xf3, 0x92, 0x65, 0xcf, 0x80, 0x0d, 0xb7, 0xa1, 0x46, 0xfd, 0x5d,
- 0xb3, 0x09, 0x8f, 0x50, 0x2f, 0x09, 0x45, 0x7a, 0xd3, 0xd1, 0xbc, 0xb7,
- 0xa9, 0x78, 0x9f, 0x12, 0x77, 0x34, 0xd9, 0xfd, 0xa7, 0xf8, 0x4c, 0x5d,
- 0x77, 0xce, 0xe0, 0x00, 0x10, 0x03, 0x3b, 0x7c, 0xec, 0x60, 0x8b, 0xf1,
- 0x9f, 0xdf, 0x5f, 0xcb, 0x33, 0x03, 0x2d, 0xf4, 0x97, 0x97, 0xb6, 0x1f,
- 0xcf, 0xc5, 0xe2, 0xbf, 0xff, 0xff, 0xe6, 0xfc, 0x54, 0x89, 0x89, 0xdd,
- 0x56, 0xcd, 0xc2, 0x67, 0xda, 0xf0, 0x71, 0x13, 0xb4, 0xb0, 0x89, 0xac,
- 0x7f, 0x9f, 0xc0, 0x22, 0x95, 0xec, 0x0f, 0x90, 0x8d, 0xfd, 0x7c, 0x03,
- 0x13, 0x0b, 0x2a, 0x7e, 0xa5, 0x9b, 0xa0, 0xd4, 0x84, 0x5f, 0xcf, 0xbb,
- 0xec, 0x8b, 0x9f, 0x85, 0x81, 0x38, 0xec, 0xb2, 0x82, 0xec, 0x1c, 0xb5,
- 0x58, 0x7f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf9, 0x82, 0x2b, 0x81,
- 0x7f, 0xc2, 0x4c, 0x07, 0x76, 0xd4, 0xe3, 0xd0, 0x7c, 0x92, 0x1d, 0x97,
- 0x50, 0xf6, 0x37, 0x2d, 0x62, 0x65, 0x8f, 0x6a, 0x05, 0x8a, 0xc9, 0x9e,
- 0x59, 0xfa, 0x56, 0x94, 0xfa, 0xa4, 0xc5, 0xed, 0xdb, 0xa5, 0x9e, 0x0c,
- 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3, 0x7c, 0x08, 0x64, 0x5f,
- 0x8c, 0x2c, 0x00, 0x46, 0x1a, 0xfa, 0xbb, 0xfb, 0xfc, 0x03, 0xb7, 0x82,
- 0x5e, 0x00, 0x03, 0x80, 0x2d, 0x5f, 0xd0, 0x10, 0xeb, 0x03, 0xb6, 0x04,
- 0x3d, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb,
- 0x44, 0x37, 0xf3, 0x7e, 0x59, 0x11, 0x7c, 0x13, 0x08, 0x80, 0x0b, 0xe9,
- 0x4d, 0xcc, 0x11, 0x87, 0x3f, 0x5d, 0x00, 0x75, 0x7e, 0x09, 0x72, 0x00,
- 0x0e, 0x07, 0x6c, 0x08, 0x40, 0x3a, 0xbf, 0x04, 0xb9, 0x3c, 0x07, 0x81,
- 0xc3, 0xfc, 0x44, 0x4f, 0xef, 0xc6, 0x1a, 0x99, 0x91, 0xb7, 0xcf, 0x8a,
- 0x11, 0x00, 0x0b, 0x46, 0xbb, 0xac, 0xe2, 0xbe, 0xdf, 0x69, 0xf7, 0x01,
- 0xff, 0xff, 0x71, 0x6d, 0xf8, 0x25, 0xc8, 0x60, 0x63, 0xb5, 0x37, 0x77,
- 0xcc, 0xdf, 0x1d, 0x9e, 0xea, 0xf8, 0x4d, 0xe0, 0x7e, 0xf6, 0x7e, 0x6c,
- 0xbe, 0xb1, 0x3d, 0x71, 0x6f, 0xbf, 0xe3, 0x35, 0x81, 0xf8, 0xef, 0xf8,
- 0x02, 0x35, 0xe9, 0x67, 0xb9, 0x77, 0x6e, 0x5e, 0x8f, 0x3f, 0xff, 0x7e,
- 0x34, 0xdf, 0x5f, 0xfe, 0x1f, 0x26, 0x01, 0x7d, 0x28, 0x0d, 0x44, 0x5f,
- 0xc0, 0xe3, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff,
- 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xae, 0xf3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x3f, 0x18, 0x54, 0x4e, 0x00, 0x25,
- 0xad, 0xcb, 0xf5, 0x57, 0xe0, 0x03, 0xb6, 0x44, 0xcc, 0x41, 0xfc, 0xad,
- 0x5e, 0xd0, 0x83, 0x62, 0x31, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x1e, 0x07,
- 0xa8, 0x38, 0xd7, 0x18, 0x29, 0xa8, 0x15, 0xa7, 0x1e, 0x2e, 0xc8, 0x93,
- 0x2d, 0x48, 0x65, 0x6d, 0x55, 0xed, 0x00, 0x0a, 0xbd, 0xc4, 0x3b, 0x8b,
- 0xba, 0x1f, 0xa0, 0xe0, 0xc3, 0x86, 0x7e, 0x2b, 0x79, 0xe9, 0xe1, 0xb4,
- 0x83, 0x0c, 0x15, 0x03, 0xda, 0x5f, 0x84, 0xc5, 0x80, 0x4c, 0x20, 0xe1,
- 0xe4, 0x1e, 0x7c, 0xc2, 0x1e, 0x5e, 0xf3, 0x84, 0x6d, 0xb8, 0xde, 0x47,
- 0xfd, 0xf9, 0xf7, 0xde, 0xc5, 0x7f, 0xff, 0x0c, 0x71, 0xe0, 0x06, 0x8f,
- 0xaa, 0x45, 0x88, 0xc0, 0x0c, 0x0f, 0x57, 0xc7, 0x65, 0xcd, 0x2c, 0xb9,
- 0x93, 0x05, 0x62, 0x94, 0x0b, 0x14, 0xcb, 0xc0, 0x48, 0xdc, 0xea, 0x79,
- 0x5b, 0xc4, 0xa4, 0x70, 0xda, 0xd9, 0x26, 0xfc, 0xf3, 0x5b, 0x70, 0x02,
- 0xb3, 0xff, 0xff, 0xdf, 0xff, 0xf0, 0xc0, 0x2a, 0x0b, 0x03, 0x8f, 0xfc,
- 0x24, 0x53, 0x28, 0x92, 0x3c, 0xab, 0xc0, 0xcc, 0x4d, 0xf2, 0x0f, 0xee,
- 0xf1, 0xee, 0xa9, 0x60, 0x26, 0x45, 0xb2, 0xad, 0x9f, 0xe1, 0x19, 0xb4,
- 0xf4, 0x67, 0x7c, 0xa5, 0xff, 0xc0, 0x0c, 0xfa, 0xde, 0x3b, 0x7b, 0xc7,
- 0x6c, 0x31, 0xf0, 0x21, 0xf6, 0xf1, 0x85, 0x80, 0x89, 0xbb, 0x5e, 0xf6,
- 0x00, 0x8f, 0x7e, 0x83, 0xfb, 0xd0, 0x00, 0x0f, 0x80, 0x2e, 0xde, 0x81,
- 0x1d, 0x26, 0x2a, 0xd7, 0x43, 0xbf, 0x9f, 0xdd, 0xe3, 0x60, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xbb, 0xcd, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41,
- 0x09, 0xa0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33,
- 0x7e, 0x50, 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59,
- 0xd9, 0xe3, 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb,
- 0x06, 0xf7, 0x8c, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c,
- 0x02, 0x47, 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0b,
- 0xf5, 0xdd, 0xab, 0x67, 0xfe, 0x9f, 0x9c, 0xae, 0xab, 0x11, 0x6e, 0xde,
- 0x1f, 0xb9, 0xbb, 0x37, 0x10, 0xdc, 0x4d, 0x7d, 0xe3, 0x43, 0x1f, 0x5f,
- 0xfe, 0x1f, 0x24, 0x03, 0x75, 0x43, 0x44, 0x5f, 0xf2, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc,
- 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x01,
- 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4, 0x14, 0xa2, 0xf0,
- 0x10, 0xbf, 0x40, 0x7d, 0xf6, 0x2f, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf2, 0x7e, 0x24, 0xb9, 0x21, 0x11, 0x80, 0x05, 0x08, 0xd6, 0x9f, 0x24,
- 0x6f, 0x78, 0x2c, 0xca, 0x6c, 0x7c, 0xfd, 0x07, 0x30, 0xad, 0xfe, 0x3c,
- 0xba, 0x4e, 0x2f, 0xd1, 0x86, 0x59, 0x6e, 0x9b, 0x85, 0x5b, 0xad, 0x3f,
- 0x89, 0x13, 0x21, 0xf4, 0x01, 0xdb, 0xd8, 0x04, 0x3c, 0xf6, 0xad, 0x2b,
- 0xfd, 0xcf, 0xeb, 0x38, 0x21, 0x7c, 0x0e, 0x0b, 0x15, 0xff, 0xff, 0xff,
- 0x37, 0xeb, 0x65, 0x32, 0xa4, 0xac, 0x9c, 0x00, 0xe2, 0xe4, 0x22, 0xf6,
- 0x1e, 0x6d, 0xce, 0x46, 0xba, 0x7b, 0xc0, 0x42, 0x25, 0xba, 0x5d, 0x44,
- 0x8d, 0x40, 0x08, 0x99, 0x6e, 0x87, 0xbb, 0x75, 0x20, 0x01, 0xea, 0x81,
- 0xb2, 0x9f, 0x26, 0x2c, 0xcc, 0x5f, 0x26, 0xdd, 0x57, 0xe2, 0x40, 0x19,
- 0xd5, 0x42, 0x6a, 0xa8, 0x67, 0x5c, 0x93, 0x0c, 0x78, 0x62, 0xbf, 0xff,
- 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0x43, 0x6b, 0x55, 0xe8, 0x2e, 0xf3,
- 0x03, 0x83, 0xe6, 0x18, 0x69, 0x56, 0x62, 0xed, 0x6e, 0x1b, 0xf9, 0x3d,
- 0xfa, 0xf7, 0xe3, 0x3d, 0x7b, 0xf7, 0xe3, 0x3d, 0x7c, 0xdf, 0xfd, 0xf7,
- 0x78, 0x54, 0xb8, 0x01, 0x9f, 0x6f, 0xac, 0xec, 0x3a, 0x7d, 0x9a, 0x80,
- 0x74, 0xec, 0xe2, 0xf2, 0x40, 0x31, 0x11, 0x86, 0x2f, 0x2e, 0x6f, 0xfb,
- 0xee, 0x3c, 0x67, 0x80, 0x11, 0x4d, 0xcc, 0xc5, 0x14, 0x7e, 0x00, 0x21,
- 0x1b, 0xf3, 0x05, 0x0a, 0x77, 0x81, 0x97, 0xbf, 0xc5, 0x1f, 0xdf, 0xb4,
- 0x03, 0xf3, 0x26, 0xa9, 0x57, 0x81, 0xfe, 0x6d, 0xdc, 0x81, 0xc3, 0xc3,
- 0xc2, 0x5c, 0x78, 0xc9, 0xce, 0xc0, 0x93, 0xea, 0xff, 0xf9, 0x80, 0x23,
- 0xaf, 0xeb, 0xfe, 0x46, 0x41, 0x4c, 0x9b, 0xaf, 0x01, 0xfd, 0xf8, 0xcf,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x56, 0x42, 0x1a,
- 0x00, 0x7a, 0x47, 0x4d, 0x09, 0x4c, 0xf5, 0xf9, 0xb4, 0xfa, 0x45, 0x3e,
- 0x13, 0x80, 0x00, 0x38, 0x11, 0xb5, 0x1f, 0xab, 0x3c, 0xab, 0x5d, 0x1f,
- 0x3d, 0x9f, 0xe0, 0x4c, 0xd4, 0x07, 0xfd, 0x54, 0x44, 0xf2, 0x7b, 0xf1,
- 0x86, 0x9e, 0x73, 0x3f, 0x9f, 0x14, 0x23, 0x09, 0xec, 0x0f, 0xf1, 0x7f,
- 0xf8, 0xd0, 0x1f, 0xce, 0x1a, 0x41, 0xf8, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf,
- 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf,
- 0x35, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xd7, 0xfc, 0x31, 0xff, 0x9f, 0x8c, 0x2a, 0x27, 0x00, 0x21, 0x77, 0x2f,
- 0xac, 0xff, 0x7e, 0x00, 0x6b, 0x2c, 0xc4, 0x17, 0xc8, 0xeb, 0xdc, 0x07,
- 0x5c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x07, 0x08, 0xb2, 0x28, 0xbf, 0x28,
- 0xc3, 0x0e, 0xb3, 0x69, 0x46, 0xd4, 0xda, 0x43, 0xc0, 0x16, 0xca, 0x60,
- 0xc8, 0x93, 0x00, 0x11, 0x47, 0x42, 0x89, 0xfd, 0x76, 0xdc, 0x37, 0xe8,
- 0x38, 0xf8, 0x6e, 0x46, 0xb2, 0x40, 0x55, 0x3d, 0xda, 0x10, 0x0b, 0x19,
- 0xc0, 0x27, 0x00, 0x62, 0xac, 0x5b, 0x7d, 0xfb, 0x63, 0xfa, 0xd6, 0xbc,
- 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x36, 0x6d, 0x9b, 0x00, 0x8f,
- 0x5f, 0x6c, 0x3d, 0x9d, 0x2d, 0xe1, 0x2f, 0x2f, 0x2c, 0x9b, 0xb5, 0xa0,
- 0xf9, 0x37, 0xfd, 0x20, 0x3c, 0xf5, 0xff, 0x87, 0x5a, 0x90, 0xbf, 0xbf,
- 0xd5, 0x22, 0xa0, 0xe6, 0x1c, 0x68, 0xf9, 0xff, 0xff, 0xef, 0xff, 0xf8,
- 0x62, 0xd4, 0xdb, 0xff, 0x09, 0x1e, 0x01, 0x8e, 0xad, 0x3f, 0xc8, 0x09,
- 0xad, 0x0d, 0x9d, 0x03, 0x6d, 0x42, 0xde, 0x09, 0x89, 0xc7, 0xc0, 0xe7,
- 0xd6, 0xf1, 0xdb, 0xde, 0x39, 0x7a, 0x5d, 0x03, 0x89, 0x9c, 0x01, 0x91,
- 0x7c, 0xf4, 0x3f, 0xfd, 0x00, 0x1e, 0xaa, 0x1d, 0xc8, 0xe1, 0xf8, 0xfa,
- 0x83, 0x86, 0x3e, 0x0e, 0x2f, 0xfe, 0x25, 0x70, 0x04, 0xf9, 0xb1, 0x65,
- 0x46, 0x50, 0x10, 0x96, 0xbd, 0xf9, 0x3f, 0x60, 0x7e, 0x13, 0xc7, 0xbd,
- 0x1c, 0x67, 0x83, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc,
- 0xd5, 0x82, 0x25, 0xe1, 0x8d, 0x3d, 0xd1, 0xc4, 0xde, 0x5b, 0x15, 0x80,
- 0x10, 0x5b, 0xbf, 0x48, 0xfd, 0xc7, 0xe1, 0x0e, 0xda, 0xcd, 0x88, 0xe0,
- 0x31, 0xd1, 0xaf, 0x3e, 0x7d, 0x09, 0x2c, 0x90, 0x60, 0x7a, 0x31, 0x99,
- 0x9e, 0xec, 0x3f, 0xe3, 0x8e, 0xff, 0xd0, 0x38, 0x04, 0x0c, 0xa0, 0x4b,
- 0xe8, 0xff, 0xe6, 0x83, 0x77, 0x7c, 0x92, 0x1f, 0xfe, 0xa3, 0xbf, 0xd8,
- 0x19, 0x37, 0x8c, 0x0c, 0x53, 0x39, 0x9f, 0xcf, 0x8a, 0x5c, 0x40, 0x70,
- 0x1f, 0xb8, 0x44, 0xe0, 0xfc, 0x27, 0x86, 0x90, 0x7e, 0x1f, 0xdf, 0xde,
- 0x3b, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff,
- 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfc, 0x6c, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
- 0xff, 0x98, 0x4f, 0x01, 0xb7, 0xc2, 0xed, 0x89, 0x97, 0x80, 0x39, 0xfc,
- 0xba, 0x7c, 0xe7, 0xe2, 0x31, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc,
- 0x32, 0x08, 0x31, 0x91, 0x46, 0x00, 0x4d, 0xd3, 0x4d, 0x53, 0xcd, 0x81,
- 0x89, 0x11, 0x47, 0xc5, 0xdc, 0x07, 0xbb, 0x80, 0x09, 0xbd, 0x37, 0x0f,
- 0x74, 0x9d, 0xe1, 0xdd, 0x8d, 0x1b, 0xba, 0x7f, 0xc9, 0xe2, 0x43, 0x02,
- 0x03, 0x02, 0x03, 0x25, 0x0c, 0x8e, 0x51, 0xe8, 0x29, 0x0b, 0x2d, 0x77,
- 0xc5, 0x26, 0x0b, 0xdc, 0xc1, 0xca, 0xff, 0x80, 0x2e, 0xa3, 0x7a, 0xd7,
- 0xa8, 0x40, 0xb0, 0xb6, 0x31, 0xb3, 0xad, 0x96, 0x5a, 0x72, 0x9c, 0x6a,
- 0xf7, 0x3f, 0x3f, 0xf3, 0x24, 0x3e, 0xd2, 0xfc, 0x26, 0x70, 0xb3, 0x45,
- 0x1b, 0xcb, 0x76, 0x60, 0x20, 0x7e, 0x4b, 0xdd, 0x3f, 0xe2, 0xbf, 0xff,
- 0xfc, 0xdf, 0x89, 0xda, 0x34, 0x66, 0xb5, 0xc0, 0x47, 0xbe, 0x7e, 0x64,
- 0x4d, 0x7b, 0x86, 0xc7, 0xc6, 0xbc, 0xd1, 0xe6, 0xff, 0xc6, 0xd5, 0x4d,
- 0xff, 0xaa, 0x42, 0x48, 0x7f, 0x62, 0xd2, 0x09, 0x15, 0xe8, 0xb1, 0xa6,
- 0xfd, 0x6c, 0x41, 0x54, 0xed, 0x70, 0x06, 0xaa, 0x46, 0xd3, 0xf3, 0x8b,
- 0x75, 0x33, 0xc8, 0x8f, 0x76, 0x3a, 0xf2, 0x20, 0x0e, 0x71, 0xec, 0xe4,
- 0xc6, 0x2d, 0x30, 0x61, 0xa9, 0xb8, 0x2d, 0xbc, 0x7a, 0xad, 0x31, 0x8b,
- 0x9f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcd, 0x27, 0x28, 0x0f, 0xe1,
- 0xc2, 0x4e, 0x00, 0x96, 0xbf, 0xd0, 0x63, 0x78, 0x01, 0xae, 0x4d, 0xb9,
- 0xdb, 0x10, 0x20, 0x12, 0x32, 0x4b, 0x50, 0x21, 0x66, 0x56, 0x69, 0xc7,
- 0xbc, 0xff, 0x6f, 0x89, 0xad, 0xad, 0x56, 0x59, 0x22, 0x34, 0x9b, 0xab,
- 0x68, 0x82, 0xbf, 0xaf, 0xc3, 0xc1, 0x34, 0xd4, 0x9a, 0xf3, 0xfa, 0xf7,
- 0xe3, 0xb9, 0x8b, 0x00, 0x2a, 0xd6, 0xb0, 0xa0, 0xeb, 0xfd, 0xa7, 0x80,
- 0x01, 0xbc, 0xdf, 0xe2, 0x22, 0x2b, 0xe1, 0x5e, 0xc4, 0x40, 0xf3, 0x13,
- 0x5f, 0x81, 0xe0, 0x11, 0x7a, 0xed, 0xa6, 0xff, 0xe3, 0xa8, 0xc2, 0xbc,
- 0xbc, 0x44, 0x0e, 0x81, 0x56, 0x58, 0x4f, 0xf4, 0xc0, 0xf2, 0x38, 0xd7,
- 0x3e, 0x47, 0x93, 0xc7, 0x1b, 0xe1, 0xfd, 0x21, 0x04, 0x2e, 0x08, 0x5a,
- 0x4f, 0xc8, 0x1d, 0xd5, 0x69, 0xf3, 0x89, 0x9d, 0xe2, 0x3c, 0xc3, 0xc5,
- 0xff, 0xf8, 0x48, 0x40, 0x04, 0x5e, 0xbb, 0x62, 0xf1, 0x1f, 0x81, 0xd0,
- 0x2a, 0xc8, 0x4e, 0xdc, 0x86, 0xeb, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x11, 0x05, 0x24, 0x00, 0x08, 0xad, 0xdd,
- 0xdd, 0x77, 0xc0, 0x1d, 0xb5, 0xa0, 0xcd, 0x4d, 0xff, 0xff, 0xc4, 0x4b,
- 0x27, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x27, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57,
- 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0xd8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf,
- 0x77, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xd7, 0xeb, 0xd6, 0x61, 0x38, 0x45, 0xdc, 0x93, 0x47, 0xa8, 0xd8, 0xaf,
- 0xff, 0xff, 0xf5, 0xf1, 0x42, 0x81, 0xfb, 0xb5, 0xb1, 0x06, 0x80, 0xc4,
- 0xa1, 0x4a, 0x1b, 0x80, 0x0c, 0x2f, 0x20, 0x0c, 0x4e, 0x45, 0xa7, 0x06,
- 0x3f, 0x37, 0x3f, 0x17, 0xe4, 0xda, 0xe9, 0x5d, 0x3c, 0xb9, 0x6f, 0x10,
- 0xc2, 0x43, 0xed, 0xfe, 0x13, 0x16, 0x03, 0x67, 0x65, 0x1a, 0xcc, 0xaa,
- 0x2c, 0x12, 0x1f, 0x75, 0x7a, 0xec, 0xac, 0x09, 0x52, 0xcf, 0x71, 0x5f,
- 0xf5, 0xeb, 0xe2, 0xcd, 0x43, 0x04, 0x8f, 0x29, 0xb9, 0x20, 0x3b, 0x47,
- 0x42, 0xdd, 0x86, 0x7e, 0x4a, 0x19, 0x73, 0xfd, 0xba, 0x95, 0x26, 0x1f,
- 0xff, 0xfe, 0xff, 0xfd, 0x79, 0x04, 0x44, 0x44, 0x14, 0x8e, 0x80, 0x82,
- 0xa5, 0x04, 0x4f, 0x68, 0x23, 0xce, 0xb8, 0x08, 0x7e, 0xbf, 0x9e, 0xff,
- 0x72, 0x0e, 0xfa, 0x7a, 0x42, 0x30, 0x1d, 0x74, 0x93, 0x42, 0x8f, 0x8d,
- 0x54, 0x79, 0x71, 0x6e, 0x5c, 0xbc, 0xfa, 0xde, 0x39, 0x7a, 0xf5, 0xfb,
- 0xc7, 0x06, 0x3e, 0xdf, 0xd2, 0x10, 0xa3, 0xe0, 0x3c, 0x85, 0x25, 0xa8,
- 0xfb, 0xc4, 0xdb, 0x13, 0xf6, 0x18, 0xc7, 0xb8, 0x8f, 0xf8, 0x79, 0xf8,
- 0x12, 0xb7, 0x6f, 0xae, 0x18, 0xf8, 0xc7, 0xfe, 0x1f, 0x80, 0x90, 0x5a,
- 0x9b, 0xf3, 0xff, 0x04, 0xd4, 0x00, 0x10, 0xbd, 0xdd, 0xd9, 0xdf, 0xc0,
- 0x46, 0xa9, 0x88, 0x3a, 0xff, 0xfb, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xbd, 0xdd, 0x83, 0x20, 0x4d, 0x20, 0x00, 0x45, 0x6e, 0xee,
- 0xeb, 0xbe, 0x00, 0xff, 0x70, 0x6d, 0x37, 0xff, 0xe5, 0xde, 0x33, 0xef,
- 0xef, 0x1b, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
- 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xc6,
- 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd, 0xe9, 0x03, 0xbf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
- 0xf5, 0xff, 0xf3, 0x09, 0xe3, 0x03, 0x06, 0xf1, 0x13, 0x73, 0x60, 0x01,
- 0x11, 0xd5, 0x7f, 0x1f, 0xbf, 0x5e, 0x52, 0xf6, 0x5e, 0xc5, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0xf1, 0x42, 0x83, 0xe8, 0x5b, 0x6e, 0x40, 0x39, 0xd3,
- 0x27, 0x28, 0xc0, 0x64, 0xd0, 0x0d, 0x0c, 0x09, 0x8f, 0x98, 0xc1, 0xa6,
- 0x2a, 0x4f, 0x19, 0x54, 0x6c, 0x80, 0x2a, 0xd7, 0xcd, 0xd9, 0xff, 0xc6,
- 0xe9, 0xc9, 0x40, 0x57, 0xc7, 0x80, 0x35, 0x04, 0xb1, 0x36, 0x2e, 0x66,
- 0xd1, 0xdb, 0xdf, 0x5f, 0x99, 0xc2, 0x25, 0xea, 0x60, 0xda, 0xd0, 0xe8,
- 0xfc, 0x58, 0x7f, 0xce, 0xff, 0x80, 0x1d, 0xdf, 0x79, 0x06, 0x7e, 0x1d,
- 0x8d, 0x41, 0x1d, 0x00, 0x5e, 0xe1, 0x19, 0x11, 0x25, 0x30, 0x3c, 0x40,
- 0x2c, 0x12, 0x2f, 0x08, 0x9a, 0xf4, 0x94, 0x1b, 0xaa, 0x8c, 0x0e, 0x0e,
- 0xc7, 0x1e, 0xb5, 0xe1, 0x3c, 0x42, 0xa4, 0x62, 0x33, 0x2e, 0xd7, 0x8a,
- 0xff, 0xff, 0xfe, 0x30, 0x9c, 0x74, 0xdd, 0xad, 0xdf, 0x66, 0xee, 0x04,
- 0x08, 0xd8, 0x93, 0x1b, 0x85, 0xa1, 0x4d, 0xfa, 0xd9, 0xe6, 0x80, 0xdb,
- 0xf0, 0x03, 0x82, 0xe4, 0x10, 0xb6, 0x81, 0xe6, 0xdc, 0x29, 0xd3, 0xf3,
- 0xc0, 0x1c, 0xf8, 0xa6, 0x46, 0x65, 0xaf, 0xff, 0x59, 0x75, 0xc9, 0x4f,
- 0xfb, 0xd7, 0xf0, 0xc9, 0xfa, 0xbf, 0x7d, 0x7e, 0x66, 0xd7, 0x28, 0x76,
- 0x7f, 0xfb, 0xe4, 0xf3, 0xc0, 0xff, 0x4b, 0xfc, 0xff, 0xff, 0xff, 0xff,
- 0x7f, 0xff, 0xff, 0xc9, 0x86, 0x37, 0x06, 0x94, 0x53, 0x14, 0x03, 0xc3,
- 0xfc, 0x25, 0x09, 0x8c, 0xdc, 0x34, 0xe0, 0x59, 0xba, 0x21, 0x7d, 0x03,
- 0x96, 0x86, 0x73, 0x6b, 0x5b, 0x81, 0xea, 0x2f, 0x84, 0x8b, 0xf2, 0xb9,
- 0xff, 0x39, 0xa5, 0x95, 0x40, 0xad, 0xaf, 0x65, 0x80, 0x32, 0x33, 0xd4,
- 0xc7, 0x17, 0x7a, 0x8c, 0x1c, 0xf3, 0x30, 0x87, 0xc0, 0x6f, 0x7f, 0xc0,
- 0xff, 0xff, 0xbf, 0xc8, 0xd4, 0x55, 0x68, 0x70, 0xf6, 0xf0, 0x05, 0x1e,
- 0xa7, 0x9f, 0x24, 0x1e, 0xe7, 0x3e, 0x00, 0x7b, 0xb5, 0x7a, 0x48, 0xfb,
- 0xcb, 0xf3, 0x7f, 0x9c, 0xcf, 0xe0, 0x81, 0xcb, 0x68, 0xfd, 0x79, 0x80,
- 0xc3, 0x77, 0x5f, 0xff, 0x55, 0xe8, 0x3f, 0x09, 0x3c, 0x72, 0x08, 0x81,
- 0x22, 0x10, 0x14, 0xb8, 0x02, 0x29, 0xbd, 0xca, 0x3d, 0x11, 0x44, 0xe6,
- 0xc7, 0x15, 0x7e, 0x26, 0x25, 0xe6, 0x9e, 0xb1, 0x3f, 0xf8, 0x48, 0x47,
- 0x99, 0x30, 0xfd, 0x7f, 0x01, 0xf4, 0xeb, 0x30, 0x23, 0x7f, 0xf8, 0x01,
- 0xe5, 0x77, 0x92, 0x6e, 0x1c, 0xa6, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x00,
- 0x19, 0xfe, 0xea, 0xdf, 0xbc, 0xe8, 0x1f, 0x81, 0x13, 0x78, 0x1f, 0xbd,
- 0x9c, 0xe6, 0xc0, 0xfc, 0x77, 0x7e, 0x3b, 0x98, 0xb0, 0x40, 0xf0, 0xee,
- 0xd5, 0x80, 0x02, 0xcd, 0xe6, 0xdf, 0xfc, 0x3f, 0x11, 0xfe, 0x3f, 0xff,
- 0xb8, 0xea, 0xdb, 0x4a, 0xad, 0xd7, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x35, 0xfe, 0x53, 0x30, 0x1e, 0x37, 0x62,
- 0x22, 0x79, 0x3d, 0xf8, 0xcf, 0xfb, 0xff, 0xbf, 0x1b, 0xff, 0xf9, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff,
- 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60,
- 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
- 0xe6, 0x13, 0x87, 0xb1, 0x50, 0x19, 0x8c, 0x6c, 0x93, 0xdf, 0xa1, 0x98,
- 0x98, 0xaf, 0xff, 0xff, 0xf7, 0xe1, 0x83, 0x06, 0x9c, 0x01, 0xe3, 0x69,
- 0x85, 0x84, 0x80, 0x91, 0xbf, 0x5b, 0xfa, 0xad, 0x5c, 0xf3, 0x3d, 0x6a,
- 0x40, 0x00, 0x47, 0xc1, 0xd5, 0x99, 0x9b, 0xe0, 0x99, 0x5d, 0xfa, 0x84,
- 0xa3, 0x4e, 0x36, 0xa6, 0x33, 0xd6, 0xaf, 0x0e, 0x18, 0x0f, 0xe1, 0xfe,
- 0x08, 0x05, 0x8c, 0xe6, 0xdc, 0xbf, 0xeb, 0x78, 0xc4, 0x7d, 0x6b, 0xfe,
- 0xb7, 0x8a, 0xff, 0xf7, 0xe1, 0x8f, 0xd6, 0xc3, 0x00, 0xf6, 0x4e, 0x02,
- 0x32, 0x9e, 0x9f, 0x9d, 0x5e, 0x5e, 0x5e, 0x00, 0x9b, 0xcd, 0x75, 0x3c,
- 0xfb, 0x48, 0x98, 0x54, 0xf3, 0xfd, 0x65, 0x26, 0x7c, 0xeb, 0xff, 0xff,
- 0x7f, 0xfe, 0xfc, 0x31, 0x88, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x57, 0xa7,
- 0x3a, 0x3c, 0x42, 0x93, 0x2f, 0x01, 0x16, 0x6f, 0x9d, 0xb1, 0xd6, 0x57,
- 0x81, 0x3a, 0x15, 0x2f, 0xe2, 0xa7, 0xda, 0xeb, 0x93, 0x1c, 0x18, 0xfb,
- 0x43, 0xed, 0x08, 0x51, 0xc3, 0xb2, 0x62, 0x62, 0xc4, 0xf3, 0xa3, 0x6b,
- 0x30, 0x70, 0xc5, 0x75, 0x51, 0x5f, 0x87, 0x0f, 0xb0, 0x0f, 0xaf, 0x1e,
- 0xc0, 0x81, 0xe8, 0x38, 0x63, 0x15, 0xff, 0x55, 0x0c, 0x13, 0xac, 0x01,
- 0x7e, 0xed, 0x3f, 0x2a, 0xac, 0x5b, 0x50, 0xc1, 0x64, 0xa8, 0xb0, 0xfc,
- 0x31, 0xf0, 0xf5, 0x5f, 0x82, 0x05, 0xc7, 0xc3, 0xba, 0xc0, 0xd0, 0xbc,
- 0x73, 0xec, 0x31, 0x1d, 0x5f, 0xff, 0x87, 0xca, 0x03, 0xbf, 0x87, 0x76,
- 0x27, 0x56, 0x90, 0xdd, 0x7f, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xbe, 0xe5, 0x83, 0x2e, 0xf9, 0x77, 0x8c, 0xfb, 0xfb, 0xc6, 0xff,
- 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1,
- 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xfe, 0xf1, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd,
- 0xe1, 0x98, 0xb1, 0x38, 0x6e, 0x1b, 0x97, 0xc0, 0x05, 0x9c, 0xd9, 0x2e,
- 0xab, 0xe4, 0xf7, 0xea, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xe6, 0x09, 0x61,
- 0x96, 0x5b, 0xff, 0xff, 0xe2, 0x8b, 0x30, 0xb4, 0x64, 0x11, 0x87, 0x07,
- 0xa2, 0x6d, 0xa5, 0x48, 0x10, 0x0f, 0x0e, 0x63, 0x06, 0xb5, 0x81, 0xe3,
- 0x0c, 0x2c, 0x80, 0x1b, 0xa9, 0x3d, 0x0d, 0x6f, 0x3f, 0xf9, 0x94, 0x47,
- 0x2e, 0x40, 0xed, 0xf3, 0xf8, 0x02, 0x3b, 0xaf, 0x97, 0x92, 0x76, 0xc1,
- 0x23, 0x30, 0xa8, 0x2e, 0xc1, 0x12, 0x99, 0xb7, 0x08, 0xb1, 0xbb, 0xd3,
- 0x4b, 0x21, 0xa3, 0xcd, 0x77, 0x80, 0xf4, 0x76, 0xd9, 0x1a, 0x8a, 0x7e,
- 0xef, 0xf8, 0xf0, 0x88, 0x43, 0x25, 0x85, 0xa0, 0x42, 0x25, 0x21, 0x65,
- 0x83, 0x84, 0x42, 0x19, 0x2d, 0x27, 0x83, 0x0f, 0xe2, 0x45, 0xfc, 0x14,
- 0xd0, 0xdc, 0xdc, 0x75, 0x3d, 0x4a, 0x37, 0x6b, 0xee, 0x18, 0xed, 0x0c,
- 0x51, 0x86, 0x54, 0x1f, 0xef, 0x3c, 0x38, 0xaf, 0xff, 0xfc, 0xc6, 0x87,
- 0xe2, 0xda, 0xd4, 0x80, 0x13, 0xe2, 0xde, 0x08, 0x1f, 0x7f, 0x8f, 0xd5,
- 0xb6, 0x50, 0x58, 0x45, 0xc1, 0x4e, 0x4d, 0xfa, 0xe4, 0xcc, 0x1e, 0xfc,
- 0x00, 0x33, 0x1b, 0x6f, 0x44, 0x9b, 0x4e, 0xab, 0x65, 0x8d, 0x1d, 0x11,
- 0x76, 0xbf, 0x40, 0xe4, 0x12, 0x36, 0xaa, 0x57, 0xab, 0x02, 0x39, 0x36,
- 0x90, 0x4c, 0xc2, 0xd2, 0x16, 0xa3, 0x9d, 0x46, 0x0b, 0x89, 0x33, 0xf9,
- 0x04, 0x46, 0xd9, 0xbf, 0xff, 0x22, 0x82, 0x13, 0x40, 0x05, 0xe9, 0x7f,
- 0x05, 0x0a, 0x56, 0x3f, 0x30, 0x1d, 0xa0, 0x3f, 0x3f, 0xc3, 0xf0, 0x19,
- 0xbf, 0x7b, 0xca, 0x29, 0x4b, 0x27, 0x00, 0x40, 0xc5, 0x60, 0x6a, 0x18,
- 0xf7, 0xe4, 0x00, 0x7d, 0xe0, 0x64, 0x88, 0x40, 0x0e, 0x90, 0x87, 0x74,
- 0x82, 0xa7, 0xc7, 0xba, 0x07, 0x28, 0x4f, 0x4c, 0x0a, 0x30, 0x7e, 0xb8,
- 0x7c, 0x00, 0xff, 0xe1, 0x1e, 0x2d, 0xf4, 0x80, 0x7a, 0x39, 0x2d, 0x97,
- 0x3b, 0xfa, 0x7d, 0x7f, 0xdf, 0xff, 0xfe, 0x42, 0x52, 0x6f, 0xff, 0xc4,
- 0x3c, 0x78, 0x30, 0x11, 0xf0, 0x18, 0xeb, 0x07, 0xae, 0x80, 0x0e, 0x3c,
- 0x5d, 0xcd, 0x1f, 0x0f, 0xfc, 0x25, 0x0e, 0x92, 0x32, 0x00, 0xc2, 0x13,
- 0x41, 0xb6, 0xa0, 0x5f, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08, 0x49, 0x01,
- 0xb6, 0xa0, 0x03, 0xa4, 0x8c, 0x80, 0x30, 0x84, 0x94, 0x1b, 0x6a, 0xf0,
- 0xe7, 0x78, 0x29, 0x07, 0x02, 0x4b, 0x00, 0x28, 0xca, 0x33, 0x11, 0x1e,
- 0xe7, 0xbe, 0x1c, 0x44, 0x39, 0x89, 0xdf, 0xcd, 0xf1, 0x5f, 0x37, 0xd3,
- 0xff, 0x87, 0xcb, 0x08, 0x67, 0x26, 0x46, 0x9a, 0x3d, 0x5e, 0xfc, 0xc1,
- 0x4f, 0xa6, 0x9f, 0x09, 0x9b, 0xe0, 0x0d, 0x07, 0x73, 0x60, 0x7d, 0x6c,
- 0x78, 0x2e, 0x8f, 0xaf, 0x9a, 0x5f, 0xfe, 0xbf, 0xc0, 0x04, 0x95, 0x44,
- 0xdd, 0xc5, 0xf7, 0x9f, 0x8e, 0xe2, 0x9c, 0x34, 0x93, 0xfa, 0xe0, 0x3b,
- 0x87, 0x79, 0x3f, 0xa3, 0xc4, 0xe6, 0xa7, 0xa7, 0xd2, 0x98, 0xa1, 0x92,
- 0x63, 0x6b, 0x03, 0xed, 0xe1, 0xff, 0xc0, 0x08, 0x23, 0x77, 0xe9, 0x1f,
- 0xb8, 0xf4, 0x46, 0xb1, 0xf3, 0xfc, 0x04, 0x65, 0x69, 0xce, 0xd5, 0xef,
- 0x7e, 0x3b, 0x98, 0xf1, 0x80, 0xa7, 0x47, 0x0b, 0xc9, 0x85, 0x2c, 0x00,
- 0x22, 0xb7, 0x77, 0x75, 0xdf, 0xe0, 0x03, 0xe8, 0x3b, 0x5c, 0xee, 0x8c,
- 0x9e, 0xaf, 0x7f, 0xfd, 0xf3, 0x28, 0xd8, 0x78, 0x69, 0x10, 0x7c, 0x46,
- 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x09, 0x5c, 0x84,
- 0x85, 0x61, 0x61, 0xfe, 0xd7, 0x08, 0x58, 0x0c, 0xfe, 0x02, 0xc3, 0xfb,
- 0xe5, 0x5c, 0x32, 0xb9, 0x4f, 0xc6, 0x71, 0xf8, 0xc0, 0xb0, 0x3d, 0x50,
- 0xb8, 0x1e, 0x90, 0x25, 0xf0, 0xff, 0xf7, 0xa6, 0x5d, 0xe7, 0xc0, 0x58,
- 0xc5, 0xb5, 0x20, 0xed, 0xe3, 0x21, 0x43, 0xa5, 0x45, 0xe6, 0xdf, 0x32,
- 0x82, 0x6f, 0x81, 0x9a, 0x5f, 0xdb, 0x08, 0x78, 0xfb, 0x3f, 0x7e, 0xdf,
- 0x8d, 0xff, 0x71, 0xe0, 0x6c, 0x32, 0xc0, 0xd1, 0x9f, 0xe2, 0x14, 0x30,
- 0x87, 0xbe, 0x04, 0xef, 0xeb, 0x37, 0x7d, 0x2c, 0x18, 0x12, 0x00, 0x79,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6,
- 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xfb,
- 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf,
- 0xfa, 0x2c, 0xa2, 0x70, 0x12, 0xbd, 0x30, 0x3d, 0x07, 0x7d, 0x17, 0x15,
- 0xff, 0xef, 0xff, 0xef, 0xd1, 0x21, 0x11, 0x00, 0x03, 0x29, 0xca, 0x2e,
- 0x7b, 0xac, 0x59, 0x78, 0x08, 0x0b, 0x07, 0x6c, 0x09, 0x6f, 0x5f, 0xac,
- 0x65, 0xa3, 0x00, 0x65, 0x2f, 0x0b, 0xc3, 0xb7, 0x6c, 0xf9, 0x07, 0x1a,
- 0xf0, 0x39, 0x23, 0x88, 0xeb, 0xcc, 0x2d, 0xb2, 0x86, 0x02, 0x9f, 0x0b,
- 0xfe, 0x13, 0x38, 0x44, 0x09, 0xf2, 0x5e, 0xab, 0xe6, 0x11, 0x9b, 0xff,
- 0x8b, 0x7b, 0x3e, 0x28, 0x01, 0xa8, 0x5e, 0xd4, 0xa7, 0xdf, 0xbe, 0x45,
- 0x7f, 0xdf, 0xbf, 0x58, 0x47, 0x9b, 0x20, 0x07, 0x66, 0x87, 0x31, 0x1c,
- 0xcb, 0xc1, 0xba, 0xfa, 0xbc, 0x77, 0x9e, 0x06, 0x2c, 0x75, 0xa7, 0xd5,
- 0xe7, 0x8f, 0x8c, 0x3b, 0xac, 0x3e, 0xf1, 0xff, 0x66, 0x3b, 0x85, 0x88,
- 0x83, 0x2e, 0xd0, 0x3f, 0xe3, 0x0f, 0xba, 0xd8, 0xe1, 0x8f, 0xff, 0xc8,
- 0xa0, 0x84, 0xb0, 0x00, 0xbc, 0x93, 0x75, 0xe8, 0x4e, 0x56, 0xef, 0xf0,
- 0xe0, 0x1f, 0x87, 0x59, 0x49, 0xf0, 0x05, 0x5a, 0x68, 0x18, 0xe7, 0xcf,
- 0x1f, 0xff, 0xef, 0xfe, 0xfd, 0xf9, 0x38, 0x1c, 0x04, 0x20, 0x26, 0xde,
- 0x7f, 0xff, 0x79, 0x6e, 0xa8, 0x4b, 0x9c, 0xf0, 0x13, 0x77, 0x75, 0x73,
- 0x0b, 0x80, 0x0d, 0x24, 0x84, 0xb1, 0xd6, 0x9b, 0x00, 0xc6, 0xfd, 0xe4,
- 0x08, 0x50, 0x44, 0x1e, 0x40, 0x33, 0xd2, 0x12, 0x20, 0xe7, 0x9c, 0x31,
- 0x2b, 0x43, 0x22, 0x6f, 0xc2, 0x65, 0x87, 0x20, 0xfc, 0x33, 0x07, 0x07,
- 0xe1, 0x80, 0x1c, 0x6a, 0x79, 0xe9, 0x7f, 0x42, 0xc3, 0x00, 0x93, 0xd3,
- 0x0c, 0xc0, 0x0e, 0x2b, 0xe0, 0x07, 0xf5, 0x56, 0xd9, 0xff, 0xf1, 0xe0,
- 0x1f, 0xd8, 0x50, 0x04, 0x6f, 0xaf, 0x5f, 0xed, 0xff, 0x80, 0x2a, 0xdc,
- 0xdc, 0x7c, 0x95, 0x77, 0x84, 0x03, 0x51, 0x38, 0x61, 0x26, 0x90, 0xe7,
- 0x10, 0x9e, 0x2c, 0x60, 0x08, 0xb7, 0xeb, 0xfc, 0x0f, 0xfc, 0x11, 0xfc,
- 0x77, 0x6f, 0xf0, 0x0d, 0x7d, 0xc7, 0xa1, 0xbc, 0x73, 0xec, 0x91, 0x19,
- 0x04, 0xe0, 0x20, 0xd5, 0x01, 0xfe, 0x2f, 0xb7, 0xc6, 0xc0, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x8a, 0xef, 0x97, 0x78, 0xc7, 0xfb,
- 0xfb, 0xc6, 0xf7, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xff, 0xf9, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x73,
- 0x09, 0xe0, 0x03, 0x6b, 0x8d, 0x89, 0x94, 0xac, 0x7a, 0xbd, 0x37, 0x8f,
- 0xc7, 0x86, 0x08, 0x3b, 0xc9, 0x1e, 0x27, 0xb2, 0x44, 0x4d, 0xc0, 0x07,
- 0xc6, 0xf5, 0x90, 0x8e, 0xa4, 0xae, 0xe0, 0x04, 0x5f, 0xff, 0xff, 0xff,
- 0xfc, 0x50, 0xa8, 0xf1, 0x11, 0x59, 0x32, 0x02, 0x22, 0xf1, 0xc6, 0x62,
- 0xaf, 0xe5, 0x10, 0xa0, 0x2e, 0x2c, 0xd2, 0x67, 0x78, 0xcd, 0xb9, 0xe9,
- 0x56, 0x57, 0x6c, 0xed, 0x80, 0xc4, 0x51, 0x10, 0x34, 0x3f, 0x5e, 0x0b,
- 0xfc, 0xe9, 0x18, 0xf1, 0x31, 0xf1, 0xc3, 0x33, 0xa7, 0x33, 0x11, 0xe9,
- 0xdf, 0x9c, 0x6d, 0x3f, 0x5b, 0x5e, 0x3d, 0x3f, 0x19, 0xe6, 0x71, 0x00,
- 0x58, 0x4f, 0x89, 0x3b, 0x9a, 0x86, 0xba, 0xe8, 0x6f, 0xfa, 0x03, 0x8b,
- 0x24, 0xc6, 0x91, 0xef, 0xf9, 0xbd, 0x8f, 0x59, 0xd1, 0x05, 0x63, 0x18,
- 0x11, 0xeb, 0x4b, 0x0e, 0x2c, 0x50, 0x30, 0xbd, 0x6f, 0xd7, 0x23, 0x34,
- 0xc0, 0xce, 0x2a, 0x31, 0xa1, 0x3b, 0xeb, 0xc9, 0x3a, 0x7b, 0xf5, 0x79,
- 0x5e, 0x0c, 0x69, 0xc0, 0x16, 0xac, 0xb9, 0x8d, 0x33, 0x88, 0x33, 0x3d,
- 0xa8, 0x16, 0x40, 0x27, 0xf6, 0xcc, 0xc5, 0x9c, 0x4e, 0x6c, 0xba, 0xba,
- 0x36, 0x8b, 0x55, 0xdf, 0x39, 0x60, 0x00, 0xc7, 0xf9, 0x99, 0x3b, 0xb6,
- 0x80, 0x2d, 0x7c, 0x0d, 0x53, 0x3c, 0x04, 0xe5, 0x93, 0x93, 0xf9, 0x87,
- 0x79, 0xa4, 0x68, 0xda, 0x99, 0xb5, 0xd5, 0x3f, 0xe7, 0x04, 0x73, 0x07,
- 0xf0, 0x97, 0xe0, 0x80, 0x58, 0x14, 0x5d, 0x2b, 0x3c, 0x93, 0x7d, 0xf5,
- 0x80, 0xa6, 0x62, 0x8b, 0x57, 0x75, 0xe2, 0xbf, 0xff, 0xff, 0xe6, 0xfc,
- 0x54, 0x9d, 0x89, 0xdd, 0x56, 0xcd, 0xd1, 0x60, 0x38, 0x84, 0x52, 0x4b,
- 0x25, 0x97, 0x81, 0x40, 0x1a, 0x16, 0x03, 0xf0, 0x10, 0x0b, 0xde, 0x00,
- 0xc4, 0xc5, 0x3a, 0x7e, 0x82, 0xf7, 0x43, 0xec, 0xdf, 0xcf, 0xb6, 0xa9,
- 0x69, 0xf9, 0xc0, 0xdd, 0x96, 0xa1, 0x76, 0x0e, 0x6d, 0x13, 0xfd, 0xe0,
- 0xe4, 0x30, 0x43, 0xe0, 0x05, 0x5f, 0x7c, 0xa4, 0xbe, 0xaf, 0x98, 0x71,
- 0x77, 0x87, 0xfc, 0x24, 0x80, 0x1f, 0xef, 0xa7, 0xa0, 0x44, 0xdd, 0x3d,
- 0x7f, 0xe0, 0x78, 0x0c, 0x22, 0x0f, 0x30, 0xac, 0x55, 0x58, 0xbd, 0xbd,
- 0xf0, 0x01, 0x82, 0x99, 0x49, 0xac, 0xbf, 0xd7, 0xc3, 0x00, 0x3e, 0x63,
- 0xc9, 0x9d, 0xdf, 0x16, 0xc9, 0xea, 0x16, 0xed, 0x45, 0x40, 0xfe, 0x00,
- 0xc4, 0x4f, 0xa1, 0x29, 0x14, 0x47, 0xfd, 0xfe, 0x4f, 0xff, 0xff, 0xf9,
- 0x82, 0xeb, 0x81, 0x7f, 0xc2, 0x48, 0x07, 0x76, 0xd4, 0x71, 0xe6, 0x39,
- 0x54, 0x35, 0xbf, 0xbe, 0x3b, 0xd6, 0x2a, 0x88, 0xfa, 0x38, 0xe5, 0xd1,
- 0xf6, 0xaf, 0x89, 0xaa, 0xfa, 0xa4, 0xe7, 0xea, 0xd7, 0x3c, 0x19, 0xfe,
- 0x26, 0x37, 0x09, 0xc4, 0x7e, 0x87, 0x43, 0xfa, 0x1d, 0x0e, 0x80, 0x83,
- 0x08, 0x44, 0xe1, 0x25, 0xf7, 0xd4, 0xef, 0x3f, 0x41, 0xbf, 0xe2, 0x49,
- 0x27, 0x53, 0x79, 0xf0, 0x1c, 0x8c, 0x8e, 0x99, 0xaf, 0x1d, 0xee, 0x0c,
- 0x62, 0xb0, 0x05, 0x51, 0x6f, 0xce, 0x2c, 0x7a, 0x19, 0x5a, 0xeb, 0x9d,
- 0xe7, 0xe8, 0xe2, 0x42, 0xfc, 0xe2, 0x20, 0xea, 0x83, 0x1e, 0xc4, 0xb6,
- 0xce, 0x8f, 0xf9, 0x33, 0x5b, 0xe5, 0xfe, 0x1e, 0x62, 0xe6, 0x6a, 0xf9,
- 0xc6, 0x9a, 0x5f, 0x7d, 0xfc, 0x76, 0xbc, 0x77, 0xb1, 0x13, 0xc2, 0x10,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff, 0xe4, 0x44, 0x7b, 0xf1, 0x9e,
- 0x4f, 0xf8, 0x47, 0xc3, 0x3e, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xa8, 0x3d, 0x60, 0x67, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xff,
- 0xfa, 0xff, 0xe9, 0xf8, 0x63, 0xc7, 0xe3, 0xc3, 0x04, 0x05, 0xc1, 0xec,
- 0x8e, 0xfe, 0x6e, 0x00, 0xae, 0xda, 0x59, 0xbd, 0xda, 0x80, 0xa3, 0x15,
- 0xa5, 0x61, 0x12, 0x94, 0xb8, 0x4a, 0xf7, 0xaf, 0xf1, 0xfe, 0x2b, 0xff,
- 0xff, 0x79, 0x05, 0x4a, 0xcc, 0x60, 0x37, 0x62, 0x5d, 0x03, 0x1c, 0xb3,
- 0x90, 0xff, 0x29, 0xc7, 0x23, 0xfa, 0x01, 0xc6, 0x48, 0x97, 0x8b, 0x61,
- 0x0b, 0x82, 0x77, 0x6a, 0xde, 0x1b, 0x63, 0x3a, 0xd5, 0xbc, 0x21, 0x83,
- 0x40, 0xb3, 0xec, 0xce, 0xe8, 0x28, 0x36, 0x40, 0x03, 0x3b, 0xa7, 0x66,
- 0x37, 0x4d, 0xba, 0x42, 0xd9, 0x70, 0x7d, 0xe9, 0x82, 0x30, 0xfa, 0x4e,
- 0x1e, 0x0a, 0x65, 0x76, 0xc0, 0x6b, 0x91, 0x0d, 0xd3, 0xc1, 0xbb, 0x34,
- 0x01, 0x6a, 0x0a, 0x89, 0x87, 0xa0, 0x15, 0x29, 0x9e, 0xdc, 0xf6, 0x97,
- 0xbb, 0x04, 0x7e, 0x20, 0x1d, 0x35, 0xcd, 0xd8, 0xf9, 0x09, 0x25, 0xa1,
- 0x84, 0xfe, 0xd2, 0xfc, 0x26, 0x76, 0x1a, 0x3a, 0x93, 0xe3, 0xcf, 0x47,
- 0x0a, 0xeb, 0x7f, 0x21, 0x1e, 0x9d, 0xff, 0x15, 0xff, 0xfc, 0x31, 0xc7,
- 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x4c, 0x00, 0x33, 0x6d, 0xbe, 0x53, 0x70,
- 0xfb, 0x96, 0x3e, 0xd3, 0x01, 0xdc, 0x77, 0x34, 0x1a, 0x39, 0xea, 0x00,
- 0x46, 0x6d, 0x34, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0xd2, 0x38, 0x76, 0x8f,
- 0x16, 0x77, 0xe7, 0x88, 0xb2, 0x8c, 0xd0, 0x02, 0x5e, 0x93, 0xf3, 0xf0,
- 0xc7, 0xef, 0x7f, 0xf1, 0x27, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7, 0xbf,
- 0x20, 0x0b, 0x54, 0x81, 0xf3, 0x38, 0xe8, 0x7e, 0x10, 0x38, 0x3f, 0x0b,
- 0xfe, 0x18, 0x1e, 0xe3, 0xff, 0xc3, 0xcc, 0x3b, 0x6b, 0xe7, 0x05, 0xf8,
- 0x11, 0x5e, 0xba, 0xe1, 0xfb, 0xfe, 0xbf, 0xef, 0xff, 0xf8, 0x60, 0xd4,
- 0xc4, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x59, 0x9c, 0x44, 0x35, 0x45, 0xda,
- 0x0c, 0x31, 0x7d, 0xc9, 0xa7, 0xfe, 0xc1, 0xe2, 0x68, 0xa5, 0x81, 0x2f,
- 0xfc, 0x29, 0x71, 0x59, 0xbf, 0xda, 0xb6, 0x76, 0xb4, 0xcc, 0xc8, 0x6f,
- 0xbc, 0xa2, 0xff, 0xe0, 0x06, 0x7e, 0xfc, 0x35, 0x17, 0xae, 0xb1, 0xdb,
- 0x0c, 0xfa, 0xeb, 0x1d, 0xc3, 0x1f, 0xc3, 0xfe, 0x14, 0x11, 0x00, 0xa8,
- 0x3d, 0x8e, 0x31, 0x76, 0x7a, 0x2e, 0x00, 0xa3, 0xa6, 0x9a, 0x36, 0xa6,
- 0x86, 0x22, 0x93, 0xb6, 0x10, 0x30, 0x67, 0xb2, 0x19, 0xe9, 0x85, 0xb4,
- 0xbd, 0xb1, 0x71, 0x8e, 0x52, 0xff, 0xe2, 0xec, 0xcc, 0x08, 0x59, 0x00,
- 0x32, 0xc7, 0x13, 0x7f, 0xd9, 0x42, 0x2c, 0xc8, 0x75, 0x83, 0x2b, 0x2d,
- 0x14, 0x0c, 0x47, 0x86, 0x59, 0xff, 0x91, 0xdd, 0xee, 0xca, 0xd7, 0x28,
- 0x85, 0xc4, 0x80, 0x40, 0x3b, 0xae, 0x98, 0x11, 0xdd, 0x86, 0x23, 0xac,
- 0xd0, 0xa7, 0x0b, 0x35, 0xb0, 0x11, 0xe7, 0xcf, 0xcc, 0x5e, 0x66, 0xb6,
- 0x2d, 0x93, 0xd1, 0x19, 0xb4, 0x70, 0x57, 0x6b, 0x6b, 0xfc, 0x91, 0x11,
- 0x56, 0x35, 0x07, 0x49, 0x1a, 0x60, 0xc9, 0x24, 0xc3, 0x51, 0xd2, 0x8d,
- 0xbe, 0x18, 0xd1, 0x04, 0xe7, 0x29, 0x88, 0x08, 0xdc, 0x07, 0x44, 0x56,
- 0x96, 0x11, 0x94, 0xf7, 0xe7, 0x88, 0x0c, 0xb7, 0xf7, 0x27, 0x56, 0xc2,
- 0x8a, 0x73, 0xfa, 0x04, 0xff, 0x28, 0xba, 0xcd, 0xd9, 0xda, 0x0e, 0x64,
- 0xe5, 0x31, 0x83, 0xc9, 0xe9, 0x89, 0x53, 0xd6, 0x29, 0x58, 0xec, 0xdb,
- 0x68, 0x63, 0x0a, 0x7a, 0x49, 0xa7, 0xb7, 0x03, 0xc0, 0x63, 0x20, 0xe0,
- 0xc0, 0xa6, 0x92, 0x0f, 0x79, 0x6b, 0xfc, 0x03, 0x76, 0xd4, 0xa5, 0xe0,
- 0x30, 0x73, 0xf0, 0x61, 0x2f, 0x3b, 0x05, 0x36, 0x81, 0xb2, 0x25, 0xea,
- 0xfe, 0x3a, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0, 0xf5, 0x8b, 0x90,
- 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x95, 0x87, 0xef, 0xe2, 0x26, 0x10, 0x8c,
- 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xe0, 0x6a, 0x71, 0xff, 0xc4, 0x30,
- 0x06, 0xcb, 0x49, 0xa7, 0xe1, 0x84, 0x21, 0x11, 0x2d, 0xfc, 0x8d, 0x63,
- 0xfc, 0x31, 0xb4, 0x5c, 0x3f, 0xf0, 0x91, 0x00, 0xe4, 0x03, 0x08, 0x80,
- 0x25, 0x14, 0xb0, 0x00, 0x10, 0x01, 0x7e, 0x00, 0xcb, 0x28, 0x1a, 0x2c,
- 0x07, 0x08, 0x00, 0x04, 0x75, 0x01, 0x1c, 0x07, 0x57, 0x26, 0xa4, 0x1d,
- 0x5d, 0xc3, 0x18, 0x5f, 0xff, 0xc2, 0x45, 0x80, 0x2b, 0x66, 0x44, 0xd3,
- 0xf3, 0xe0, 0x8b, 0xf7, 0x8c, 0xc9, 0xf6, 0x18, 0xfa, 0xb7, 0xc3, 0x1b,
- 0x14, 0x28, 0x0e, 0x03, 0x90, 0x84, 0x42, 0x66, 0x00, 0x21, 0x0f, 0x54,
- 0x2a, 0xe2, 0xb3, 0xe0, 0x34, 0xde, 0x8f, 0x38, 0x91, 0xb9, 0x81, 0x75,
- 0x61, 0x47, 0xf5, 0x0a, 0xea, 0x7e, 0xa7, 0x50, 0x62, 0xd4, 0x26, 0xd6,
- 0xea, 0x47, 0x80, 0xe0, 0x39, 0x08, 0x44, 0x26, 0x61, 0x8b, 0x0d, 0x1e,
- 0xd6, 0x75, 0x6f, 0x82, 0x16, 0xcb, 0x87, 0x10, 0x85, 0x4c, 0xc3, 0x18,
- 0x6a, 0xdf, 0xe3, 0x19, 0x00, 0x10, 0x87, 0xaa, 0x15, 0x71, 0x59, 0xf0,
- 0x1a, 0x6f, 0x47, 0x9c, 0x48, 0xdc, 0xc0, 0xba, 0xb0, 0xa3, 0xfa, 0x85,
- 0x75, 0x3f, 0x53, 0xa8, 0x31, 0x6a, 0x13, 0x6b, 0x75, 0x20, 0x00, 0xcb,
- 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa6, 0x18, 0xb0, 0xd1, 0xed, 0x67, 0x56,
- 0xf8, 0x21, 0x6c, 0xb8, 0x71, 0x08, 0x54, 0xcc, 0x31, 0x86, 0xad, 0xfe,
- 0x31, 0x90, 0x01, 0x08, 0x7a, 0xa1, 0x57, 0x15, 0x9f, 0x01, 0xa6, 0xf4,
- 0x79, 0xc4, 0x8d, 0xcc, 0x0b, 0xab, 0x0a, 0x3f, 0xa8, 0x57, 0x53, 0xf5,
- 0x3a, 0x83, 0x16, 0xa1, 0x36, 0xb7, 0x52, 0x00, 0x0c, 0xbf, 0xba, 0x77,
- 0x40, 0xc9, 0x6a, 0x61, 0x8b, 0x0d, 0x1e, 0xd6, 0x75, 0x6f, 0x82, 0x16,
- 0xcb, 0x87, 0x10, 0x85, 0x4c, 0xc3, 0x18, 0x6a, 0xc5, 0xf1, 0xa4, 0x64,
- 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68, 0x0e, 0xbd, 0xf7, 0xed,
- 0x0b, 0x7f, 0xf0, 0xb6, 0x2c, 0x1d, 0x26, 0xf4, 0xf7, 0x7b, 0x7f, 0x80,
- 0x3d, 0x2d, 0xe0, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa0, 0x00,
- 0x76, 0xff, 0x95, 0xf0, 0x1d, 0xef, 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10,
- 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40, 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9,
- 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2c, 0x69, 0x19, 0x00, 0x33, 0x29, 0x11,
- 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf, 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d,
- 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde, 0xdf, 0xe0, 0x0f, 0x4b, 0x7b, 0x8b,
- 0x92, 0x2c, 0xf4, 0x00, 0x8d, 0xbd, 0xf2, 0xb6, 0xff, 0xfc, 0x1d, 0xef,
- 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10, 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40,
- 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9, 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2c,
- 0x69, 0x19, 0x00, 0x33, 0x29, 0x11, 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf,
- 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d, 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde,
- 0xdf, 0xe0, 0x0f, 0x4b, 0x7b, 0x8b, 0x92, 0x2c, 0xf4, 0x00, 0x8d, 0xbd,
- 0xf2, 0xb6, 0xff, 0xfc, 0x1d, 0xef, 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10,
- 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40, 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9,
- 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2d, 0x38, 0xc8, 0x01, 0x99, 0x48, 0x8c,
- 0xc0, 0x63, 0x2e, 0xd0, 0x1d, 0x7b, 0xef, 0xda, 0x16, 0xff, 0xe1, 0x6c,
- 0x58, 0x3a, 0x4d, 0xe9, 0xee, 0xc6, 0xaa, 0x00, 0x7a, 0x49, 0xdc, 0x5c,
- 0x91, 0x67, 0xa0, 0x04, 0x6d, 0xef, 0x95, 0xb7, 0xff, 0xe0, 0xef, 0x79,
- 0x84, 0xaa, 0x6d, 0xfa, 0xba, 0xef, 0x3a, 0xba, 0x64, 0x7f, 0x9f, 0x17,
- 0x13, 0x35, 0x4b, 0x6e, 0xd5, 0xbe, 0x5e, 0x86, 0x3e, 0xa6, 0x41, 0x4b,
- 0x27, 0x7f, 0x83, 0xc0, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19, 0x76, 0x80,
- 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0xa4, 0x00, 0x05, 0xc1, 0x07, 0xe4,
- 0x3b, 0x1a, 0xa8, 0x01, 0xe9, 0x26, 0x7c, 0x1b, 0xfe, 0xd2, 0xed, 0xfe,
- 0x78, 0x30, 0xde, 0x44, 0xcd, 0x6a, 0xf0, 0x04, 0xeb, 0xc3, 0x2d, 0x89,
- 0x9d, 0xd9, 0x77, 0x9d, 0x5d, 0x19, 0x1f, 0xe7, 0xdb, 0xe1, 0xaf, 0x55,
- 0xdf, 0xdf, 0xea, 0xa5, 0xb7, 0x6a, 0xdf, 0x2f, 0x43, 0x1f, 0x53, 0x20,
- 0xa5, 0x93, 0x8c, 0x80, 0x19, 0x94, 0x88, 0xcc, 0x06, 0x32, 0xed, 0x01,
- 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xff, 0x48, 0x00, 0x0b, 0x82, 0x0f, 0xc8,
- 0x76, 0x35, 0x50, 0x03, 0xd2, 0x4c, 0xf8, 0x37, 0xfd, 0xa5, 0xd9, 0xfe,
- 0x78, 0x30, 0xde, 0x44, 0xcd, 0x6a, 0xf0, 0x06, 0xe7, 0xc3, 0x2d, 0x48,
- 0x23, 0xb3, 0xaa, 0xf3, 0xab, 0x98, 0x9f, 0xf3, 0xad, 0xf0, 0xd7, 0xaa,
- 0xef, 0xef, 0xf4, 0xd1, 0xdb, 0xb4, 0xc7, 0x0e, 0xea, 0x18, 0xfa, 0x99,
- 0x05, 0x2c, 0x9c, 0x64, 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68,
- 0x0e, 0xbd, 0xf7, 0xed, 0x0b, 0x7f, 0xfa, 0x40, 0x00, 0x5c, 0x10, 0x7e,
- 0x43, 0xb1, 0xaa, 0x80, 0x1e, 0x92, 0x67, 0xc2, 0x3b, 0xb4, 0xbb, 0x3f,
- 0xcf, 0x06, 0x1b, 0xc8, 0x99, 0xad, 0x5e, 0x00, 0xdc, 0xf8, 0x65, 0xa9,
- 0x04, 0x76, 0x75, 0x5e, 0x75, 0x73, 0x13, 0xfe, 0x75, 0xbe, 0x1a, 0xf5,
- 0x5d, 0xfd, 0xfe, 0x9a, 0x3b, 0x76, 0x98, 0xe1, 0xdd, 0x43, 0x1f, 0xaa,
- 0x05, 0x1d, 0xa1, 0xbf, 0xc1, 0xe0, 0x01, 0x4e, 0xe6, 0x55, 0xac, 0x31,
- 0x4a, 0x4e, 0x56, 0xcc, 0xcc, 0x05, 0x77, 0xcf, 0x4e, 0x00, 0x01, 0x50,
- 0x42, 0xf2, 0x17, 0x8a, 0x81, 0xfc, 0x95, 0x7c, 0xdf, 0x08, 0xee, 0xd2,
- 0xed, 0xfe, 0x78, 0x06, 0x8d, 0xcd, 0x8b, 0x5a, 0x56, 0x00, 0x31, 0x1e,
- 0x4d, 0xc8, 0x16, 0x7f, 0xaa, 0x60, 0x19, 0x6f, 0x9c, 0x83, 0x8e, 0xd9,
- 0x30, 0x3b, 0x54, 0x98, 0xe1, 0xdd, 0x66, 0xcd, 0x5f, 0xf6, 0xff, 0xdd,
- 0xd0, 0xc7, 0xea, 0x81, 0x4b, 0x78, 0xc8, 0x00, 0x53, 0xb9, 0x95, 0x6b,
- 0x0c, 0x52, 0x93, 0x95, 0xb3, 0x33, 0x01, 0x5d, 0xf3, 0xd3, 0x80, 0x00,
- 0x54, 0x10, 0xbc, 0x85, 0xe2, 0xa0, 0x7f, 0x25, 0xfe, 0x6f, 0x87, 0xb4,
- 0x76, 0x63, 0xae, 0xe0, 0x06, 0x8d, 0xdb, 0x16, 0xb4, 0xac, 0x00, 0x62,
- 0x3c, 0x9b, 0x90, 0x28, 0xff, 0x54, 0xc0, 0x32, 0xdf, 0x39, 0x07, 0x1d,
- 0xb2, 0x60, 0x76, 0xa9, 0x63, 0x87, 0x75, 0xbb, 0x35, 0x7f, 0xd7, 0xf7,
- 0xa1, 0x8f, 0xd5, 0x02, 0x96, 0xf1, 0x90, 0x00, 0xa7, 0x73, 0x2a, 0xd6,
- 0x18, 0xa5, 0x27, 0x2b, 0x66, 0x66, 0x02, 0xbb, 0xe7, 0xa7, 0x00, 0x00,
- 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0x4b, 0xfc, 0xdf, 0x0f, 0x68,
- 0xec, 0xc7, 0x5d, 0xc0, 0x0d, 0x1b, 0xb6, 0x2d, 0x69, 0x58, 0x00, 0xc4,
- 0x79, 0x37, 0x20, 0x51, 0xfe, 0xa9, 0x80, 0x65, 0xbe, 0x72, 0x0e, 0x3b,
- 0x64, 0xc0, 0xed, 0x52, 0xc7, 0x0e, 0xeb, 0x76, 0x6a, 0xff, 0xaf, 0xef,
- 0x43, 0x1e, 0x02, 0x28, 0x14, 0x8a, 0x30, 0x46, 0x40, 0x02, 0x9d, 0xcc,
- 0xa5, 0x2c, 0x37, 0xc7, 0xd8, 0x8e, 0x89, 0x33, 0xe6, 0xee, 0xfe, 0xe0,
- 0x07, 0xe5, 0x8c, 0x9d, 0xd1, 0xb4, 0xbe, 0xbd, 0xf0, 0xf6, 0x8e, 0xcc,
- 0x75, 0xdc, 0x0f, 0x10, 0x85, 0x52, 0x61, 0x02, 0x00, 0x99, 0x00, 0x48,
- 0xe7, 0x8d, 0x2d, 0x67, 0x77, 0x3c, 0x0c, 0xe3, 0xd7, 0x4c, 0xa7, 0xfe,
- 0xf8, 0x1c, 0x30, 0xa2, 0x54, 0x31, 0x60, 0xe2, 0x8c, 0x17, 0xb8, 0x9e,
- 0xa8, 0x5d, 0xc0, 0x19, 0xcd, 0x66, 0x33, 0x55, 0x86, 0xeb, 0xa9, 0x48,
- 0x06, 0xbf, 0xb8, 0x01, 0xf9, 0x62, 0x25, 0xfd, 0x40, 0x0f, 0x48, 0xd7,
- 0x75, 0xf0, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x30, 0x42, 0x15, 0x09, 0x84,
- 0x08, 0x02, 0x44, 0x01, 0x23, 0x9e, 0x34, 0xb5, 0x9d, 0xdc, 0xf0, 0x33,
- 0x8f, 0x5d, 0x32, 0x4f, 0xfd, 0xf0, 0x38, 0x62, 0x83, 0x50, 0x64, 0x00,
- 0xc5, 0x18, 0x2f, 0x81, 0x55, 0x74, 0xef, 0xc0, 0x14, 0xee, 0xeb, 0x98,
- 0xdb, 0xfd, 0x9a, 0x45, 0x98, 0x0a, 0x2c, 0x54, 0x03, 0x6b, 0xb8, 0x07,
- 0xaa, 0x0b, 0xe7, 0xd1, 0xba, 0x1f, 0x49, 0x5d, 0xd9, 0xee, 0x00, 0x19,
- 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42, 0xa9, 0x30, 0x81, 0x00, 0x48, 0x80,
- 0x1c, 0x73, 0xb1, 0xb5, 0xac, 0xdd, 0xde, 0x06, 0x71, 0xeb, 0xa6, 0x53,
- 0xff, 0x7c, 0x04, 0x28, 0x61, 0xe1, 0x9b, 0x27, 0x88, 0x36, 0xfd, 0x5f,
- 0x80, 0x06, 0x72, 0xb4, 0xb3, 0x8c, 0x19, 0xc1, 0x3d, 0x0d, 0x4e, 0xd9,
- 0x20, 0xfc, 0xfd, 0x65, 0x5f, 0x70, 0x0f, 0x5c, 0x2e, 0xfe, 0xbf, 0xfe,
- 0x23, 0x8b, 0x37, 0xff, 0xc7, 0xc0, 0x03, 0x2f, 0xee, 0x9d, 0xd0, 0xc1,
- 0x08, 0x55, 0x26, 0x10, 0x20, 0x09, 0x10, 0x5f, 0x38, 0xd9, 0xad, 0x78,
- 0x69, 0xc0, 0xce, 0x3d, 0x74, 0xc5, 0x1f, 0xfb, 0xe1, 0x1b, 0x4c, 0x43,
- 0x1f, 0x32, 0x4f, 0xdb, 0x19, 0x00, 0x0c, 0xe5, 0x69, 0x67, 0x18, 0x33,
- 0x82, 0x7a, 0x1a, 0x9d, 0xb2, 0x41, 0xf9, 0xfa, 0xad, 0x61, 0x9e, 0xbc,
- 0x57, 0x56, 0xd7, 0xff, 0xc4, 0x71, 0x66, 0xff, 0xf8, 0xf0, 0x00, 0xcd,
- 0xbf, 0xe5, 0x7c, 0xc9, 0x35, 0x04, 0x75, 0x01, 0x13, 0x8d, 0x9a, 0xd7,
- 0x86, 0x9c, 0x08, 0x51, 0xb4, 0x7b, 0x23, 0x69, 0x88, 0x63, 0xe6, 0x49,
- 0xfb, 0x63, 0x20, 0x01, 0x9c, 0xad, 0x2c, 0xe3, 0x06, 0x70, 0x4f, 0x43,
- 0x53, 0xb6, 0x48, 0x3f, 0x3f, 0x55, 0xac, 0x33, 0xd7, 0x8a, 0xea, 0xda,
- 0xff, 0xf8, 0x8e, 0x2c, 0xdf, 0xff, 0x1e, 0x00, 0x19, 0xb7, 0xfc, 0xaf,
- 0x99, 0x26, 0xa0, 0x8e, 0xa0, 0x22, 0x71, 0xb3, 0x5a, 0xf0, 0xd3, 0x81,
- 0x0a, 0x36, 0x8f, 0x64, 0x6d, 0x31, 0x0c, 0x7d, 0x49, 0x3e, 0x8c, 0x51,
- 0x90, 0x00, 0xce, 0x56, 0x96, 0x71, 0x83, 0x38, 0x27, 0xa8, 0xfd, 0x06,
- 0x26, 0xde, 0x6e, 0x3f, 0xc5, 0x16, 0x91, 0x81, 0xad, 0xe8, 0x77, 0x1d,
- 0x5f, 0x65, 0x1e, 0x2e, 0xe7, 0xeb, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3,
- 0x24, 0xd4, 0x0c, 0x19, 0x81, 0x53, 0x98, 0xed, 0x11, 0xff, 0xee, 0x81,
- 0x09, 0x1b, 0x23, 0xd9, 0x00, 0x04, 0xaa, 0x99, 0x86, 0x2c, 0xc0, 0xc9,
- 0x1e, 0x25, 0x2c, 0x4c, 0x80, 0x01, 0x2a, 0x26, 0x40, 0x85, 0x31, 0x5d,
- 0x6d, 0xf4, 0x01, 0x5b, 0xd3, 0x71, 0x82, 0x08, 0xed, 0x75, 0x4b, 0x91,
- 0x39, 0xb4, 0xf9, 0x78, 0x19, 0xc7, 0x72, 0xed, 0x27, 0xfc, 0xaf, 0x37,
- 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73, 0x7f, 0xfc, 0x18, 0x80, 0x00,
- 0x54, 0xac, 0x01, 0x44, 0xfd, 0x6f, 0xb5, 0xf7, 0xf8, 0x00, 0x3c, 0x7a,
- 0xc2, 0x69, 0x27, 0x13, 0xea, 0xd5, 0xc0, 0x35, 0xe8, 0xfa, 0xbd, 0x0c,
- 0x23, 0x05, 0x92, 0x23, 0x41, 0x2f, 0x70, 0x92, 0xbd, 0x3d, 0x6e, 0xfc,
- 0xf1, 0x85, 0x31, 0x5d, 0x6d, 0xf4, 0x0c, 0x83, 0xfd, 0x57, 0x3f, 0xf7,
- 0x7d, 0x4b, 0x91, 0x39, 0xb9, 0xf2, 0xf0, 0x33, 0x8e, 0xe5, 0xda, 0x4f,
- 0xf9, 0x5e, 0x6e, 0x73, 0xb5, 0x7b, 0x74, 0xd7, 0x7a, 0xe6, 0xff, 0xf8,
- 0x32, 0xc0, 0x00, 0xaa, 0x30, 0x05, 0x13, 0xf5, 0xbe, 0xcb, 0xef, 0xf0,
- 0x01, 0x9c, 0x1a, 0xb8, 0xc4, 0xff, 0x9d, 0x56, 0xae, 0x01, 0xaf, 0x42,
- 0xea, 0xf0, 0x7e, 0xf0, 0xc2, 0x30, 0x59, 0x22, 0x34, 0x12, 0xf7, 0x09,
- 0x2b, 0xd3, 0xd6, 0xef, 0xcf, 0x18, 0x53, 0x15, 0xd6, 0xdf, 0x40, 0xc8,
- 0x3f, 0xd5, 0x73, 0xff, 0x77, 0xd4, 0xb9, 0x13, 0x9b, 0x9f, 0x2f, 0x03,
- 0x38, 0xee, 0x5d, 0xa4, 0xff, 0x95, 0xe6, 0xe7, 0x3b, 0x57, 0xb7, 0x4d,
- 0x77, 0xae, 0x6f, 0xff, 0x83, 0x2c, 0x00, 0x0a, 0xa3, 0x00, 0x51, 0x3f,
- 0x5b, 0xec, 0xbe, 0xff, 0x00, 0x19, 0xc1, 0xab, 0x8c, 0x4f, 0xf9, 0xd5,
- 0x6a, 0xe0, 0x1a, 0xf4, 0x2e, 0xaf, 0x07, 0xef, 0x0c, 0x24, 0x19, 0x82,
- 0xe2, 0x09, 0xc7, 0x13, 0x09, 0x2b, 0xd3, 0xd6, 0xef, 0xcf, 0x12, 0x6a,
- 0x03, 0x20, 0xff, 0x55, 0xcf, 0xfd, 0xdf, 0x7d, 0x19, 0x25, 0xcd, 0x9f,
- 0xe0, 0x0f, 0x26, 0xd4, 0x1d, 0xb9, 0x7a, 0xad, 0xf4, 0xff, 0xfe, 0xba,
- 0xd4, 0x92, 0xb5, 0x78, 0x32, 0xc0, 0x00, 0xaa, 0x30, 0x05, 0xd7, 0x42,
- 0xea, 0xf6, 0xa4, 0xb8, 0x00, 0xce, 0x0d, 0x5c, 0x62, 0x7f, 0xce, 0xab,
- 0x57, 0x46, 0xc2, 0xda, 0xbd, 0x0c, 0x76, 0x60, 0x8a, 0x02, 0x36, 0x3b,
- 0xcd, 0x99, 0x3d, 0xa8, 0x70, 0xea, 0x05, 0x02, 0xa0, 0xff, 0x47, 0x59,
- 0x7d, 0xfe, 0xbe, 0x8c, 0x92, 0xe7, 0x9f, 0xe0, 0x0f, 0x26, 0xd4, 0x1d,
- 0xd9, 0x7a, 0xad, 0xf5, 0xab, 0xad, 0x25, 0x2b, 0x57, 0x83, 0x08, 0x18,
- 0xa0, 0x76, 0x1a, 0xff, 0xdf, 0x6d, 0x5d, 0x0b, 0xab, 0xda, 0x92, 0xe0,
- 0xd0, 0x19, 0x6a, 0xce, 0x61, 0xc7, 0x6c, 0xc2, 0x72, 0x96, 0x0d, 0x6f,
- 0xb1, 0xb7, 0x03, 0x1f, 0xf0, 0xc7, 0x66, 0x08, 0xa0, 0x23, 0x63, 0xbc,
- 0xd9, 0x93, 0xda, 0x87, 0x0e, 0xa0, 0x50, 0x2a, 0x0f, 0xf4, 0x75, 0x97,
- 0xdf, 0xeb, 0xe8, 0xc9, 0x2e, 0x79, 0xfe, 0x00, 0xf2, 0x6d, 0x41, 0xdd,
- 0x97, 0xaa, 0xdf, 0x5a, 0xba, 0xd2, 0x52, 0xb5, 0x78, 0x30, 0x81, 0x8a,
- 0x07, 0x61, 0xaf, 0xfd, 0xf6, 0xd5, 0xd0, 0xba, 0xbd, 0xa9, 0x2e, 0x0d,
- 0x01, 0x96, 0xac, 0xe6, 0x1c, 0x76, 0xcc, 0x27, 0x29, 0x60, 0xd6, 0xfb,
- 0x1b, 0x70, 0x31, 0xff, 0x0c, 0x76, 0x6d, 0xd0, 0x11, 0xbe, 0xf3, 0x66,
- 0x4f, 0x6a, 0x1c, 0x3a, 0x81, 0x40, 0xa8, 0x3f, 0xd1, 0xd6, 0x5f, 0x7f,
- 0xaf, 0xa3, 0x24, 0xb9, 0xe7, 0xf8, 0x03, 0x92, 0x36, 0xa0, 0xe2, 0xea,
- 0x62, 0xba, 0xaa, 0x52, 0x5a, 0xbd, 0xe1, 0x03, 0x14, 0x0e, 0xc3, 0x5f,
- 0xfb, 0xed, 0xab, 0xa1, 0x75, 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59,
- 0xcc, 0x38, 0xed, 0x98, 0x4e, 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x7f,
- 0xe1, 0x8e, 0xdb, 0x2a, 0x32, 0x34, 0xb8, 0x9e, 0x64, 0xfd, 0x7d, 0xcf,
- 0xfd, 0xde, 0x7d, 0xa6, 0x10, 0xb4, 0x98, 0x16, 0x94, 0x4f, 0xf3, 0x2c,
- 0xa6, 0x2e, 0x29, 0x92, 0x34, 0x6f, 0xfd, 0xf8, 0x03, 0x4a, 0x88, 0x3f,
- 0x22, 0x4f, 0xcd, 0x18, 0x10, 0x96, 0x9e, 0x07, 0x1e, 0x90, 0x48, 0xe7,
- 0x8d, 0x2d, 0x67, 0x77, 0x3d, 0x4f, 0x53, 0x83, 0x5f, 0xc9, 0xff, 0x3e,
- 0x86, 0x3b, 0x6c, 0xe8, 0xc8, 0x5f, 0x13, 0xbc, 0x9f, 0xaf, 0xb3, 0xff,
- 0x7f, 0x67, 0xda, 0x60, 0xf5, 0xc9, 0x30, 0x4a, 0x51, 0x3f, 0xd1, 0x42,
- 0x98, 0xca, 0x98, 0x91, 0xa3, 0x7f, 0xef, 0xc0, 0x1a, 0x54, 0x41, 0xf9,
- 0x12, 0x7e, 0x68, 0xc0, 0x84, 0xb4, 0xf0, 0x38, 0xf4, 0x82, 0x47, 0x3c,
- 0x69, 0x6b, 0x3b, 0xb9, 0xea, 0x7d, 0xe7, 0x06, 0xaa, 0x6f, 0xd7, 0xd8,
- 0x63, 0xb6, 0xc8, 0x8c, 0x85, 0x2e, 0x27, 0xb9, 0x3f, 0x5f, 0x75, 0xf7,
- 0x1f, 0x69, 0x97, 0xa9, 0x82, 0x52, 0x89, 0xfe, 0x8a, 0x14, 0xc6, 0x54,
- 0xc4, 0x8d, 0x1b, 0xff, 0x72, 0x7c, 0x6f, 0xfd, 0x80, 0x34, 0xa8, 0x83,
- 0xf2, 0x26, 0xfc, 0xd1, 0x81, 0x09, 0x69, 0xe0, 0x71, 0xe9, 0x04, 0x8e,
- 0x78, 0xd2, 0xd6, 0x77, 0x73, 0xd4, 0xfb, 0xce, 0x0d, 0x54, 0xdf, 0xaf,
- 0xb0, 0xc6, 0x3d, 0x91, 0x19, 0x1a, 0x45, 0x89, 0x82, 0x16, 0xf0, 0x7f,
- 0x9d, 0x7d, 0xf7, 0x10, 0x20, 0x08, 0xc8, 0x0b, 0x49, 0x81, 0x96, 0x0c,
- 0x6b, 0x4c, 0x23, 0xbf, 0xd9, 0xa7, 0xdc, 0x6f, 0xfb, 0xc0, 0x9c, 0x42,
- 0xf4, 0xd0, 0x38, 0xf4, 0x81, 0x7f, 0x65, 0x8e, 0x62, 0xa1, 0xef, 0x03,
- 0xb3, 0x96, 0x1a, 0x7e, 0x4f, 0xf9, 0xf5, 0xda, 0xde, 0x35, 0xb6, 0x31,
- 0xba, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8, 0x9e, 0xac, 0x67, 0x07,
- 0xfa, 0xbd, 0x3f, 0xf6, 0x10, 0x20, 0x08, 0xc8, 0x09, 0x32, 0x60, 0x65,
- 0x82, 0x19, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8, 0xdf, 0xde, 0x01, 0xef,
- 0xb0, 0x4b, 0x4d, 0x83, 0x8f, 0x48, 0x17, 0xf6, 0x58, 0xe6, 0x2a, 0x1e,
- 0xf0, 0x2b, 0x39, 0x61, 0xa7, 0xf1, 0xbf, 0xe5, 0xda, 0xde, 0x35, 0xb6,
- 0x31, 0xba, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8, 0x99, 0x7d, 0x8c,
- 0xe0, 0xff, 0x57, 0xa7, 0xfe, 0xc2, 0x04, 0x01, 0x19, 0x01, 0x26, 0x4c,
- 0x0c, 0xb0, 0x43, 0x34, 0xc1, 0x1d, 0xfe, 0xd0, 0x7f, 0x1b, 0xfb, 0xc0,
- 0x3d, 0xf6, 0x12, 0xd3, 0x60, 0xe3, 0xd2, 0x05, 0xfd, 0x96, 0x39, 0x8a,
- 0x87, 0xbc, 0x0e, 0xce, 0x58, 0x69, 0xf9, 0x3f, 0xe7, 0xd7, 0x6b, 0x78,
- 0xd6, 0xd8, 0xc6, 0xea, 0x86, 0x31, 0xc5, 0x91, 0x19, 0x1b, 0xe2, 0x65,
- 0xf6, 0x00, 0x25, 0x72, 0x27, 0x36, 0x9f, 0x2f, 0x10, 0x20, 0x08, 0xc8,
- 0x36, 0x62, 0xf4, 0xd7, 0x2e, 0xff, 0xff, 0xbc, 0x81, 0x08, 0x54, 0xcf,
- 0x80, 0x8c, 0xdc, 0xe7, 0x6a, 0xf0, 0x07, 0xbe, 0xc2, 0xf4, 0xd8, 0x38,
- 0xf4, 0x81, 0xaf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x07, 0x67, 0x2c, 0x34,
- 0xfc, 0x9f, 0xf3, 0xe9, 0xa0, 0xcb, 0x3d, 0x86, 0x1c, 0x76, 0xc8, 0x63,
- 0x4c, 0x59, 0x01, 0x91, 0x80, 0x38, 0x99, 0x2d, 0x40, 0x95, 0xc8, 0x9c,
- 0xd9, 0x3e, 0x5e, 0x09, 0x2b, 0xd3, 0xcb, 0x77, 0xe7, 0x86, 0x98, 0xbd,
- 0x35, 0xcb, 0xbf, 0xff, 0xef, 0x20, 0x42, 0x15, 0x33, 0xe0, 0x23, 0x37,
- 0x39, 0xad, 0x5e, 0x04, 0xbf, 0x62, 0xca, 0xd6, 0xf6, 0xdf, 0xfb, 0x9f,
- 0xc8, 0x3d, 0x22, 0xef, 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5, 0xf9, 0x1b,
- 0x74, 0xd0, 0x65, 0x9e, 0xc3, 0x0e, 0x3b, 0x64, 0x31, 0xa6, 0x2c, 0x80,
- 0xc8, 0xdf, 0x13, 0x25, 0x54, 0x09, 0x5c, 0x89, 0xcd, 0xa7, 0xcb, 0xc0,
- 0xe4, 0xaf, 0x4f, 0x26, 0xef, 0xcf, 0x0d, 0x31, 0x7a, 0x6b, 0x97, 0x7f,
- 0xff, 0xde, 0x40, 0x84, 0x2a, 0x67, 0xc0, 0x46, 0x6e, 0x73, 0xb5, 0x78,
- 0x0b, 0x7e, 0xc5, 0x15, 0xad, 0xf2, 0xeb, 0x9f, 0xc8, 0x3d, 0x22, 0xef,
- 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5, 0x5c, 0x8d, 0xba, 0x68, 0x32, 0xcf,
- 0x61, 0x87, 0x1d, 0xb2, 0x18, 0xd3, 0x46, 0x00, 0x64, 0x6b, 0xf1, 0x32,
- 0x5a, 0x81, 0x2b, 0x91, 0x39, 0xb2, 0x7c, 0xbc, 0x12, 0x57, 0xa7, 0x96,
- 0xef, 0xcf, 0x03, 0x1d, 0xe9, 0xae, 0x5d, 0xff, 0xff, 0x7e, 0x68, 0xef,
- 0x55, 0xb4, 0xff, 0x9e, 0x05, 0x17, 0xaa, 0xdf, 0x6f, 0xff, 0x81, 0x2f,
- 0xd8, 0xb2, 0xb5, 0xbd, 0xb7, 0xfc, 0x1a, 0xfe, 0x41, 0xe9, 0x17, 0x7e,
- 0x60, 0x37, 0x5a, 0x9e, 0x0d, 0x2f, 0xc8, 0xdb, 0xa6, 0x83, 0x2c, 0xf7,
- 0x18, 0x71, 0xdb, 0x21, 0x84, 0x6e, 0x9c, 0x51, 0x84, 0x38, 0x99, 0xd2,
- 0x48, 0xbf, 0xd0, 0x45, 0x1b, 0xe1, 0x35, 0x29, 0xfe, 0xef, 0x6a, 0xd4,
- 0x8f, 0xda, 0x4f, 0x97, 0xb7, 0x27, 0xeb, 0xfb, 0x2f, 0xbf, 0xcc, 0xf2,
- 0x48, 0x9b, 0xd8, 0x42, 0xed, 0x56, 0x71, 0xff, 0x20, 0xc2, 0x0b, 0xd4,
- 0xfb, 0xff, 0xfe, 0xe0, 0x2a, 0x0f, 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00,
- 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b, 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8,
- 0x89, 0xff, 0x3a, 0x86, 0x11, 0xba, 0x71, 0x46, 0x10, 0xe2, 0x67, 0x49,
- 0x22, 0xff, 0x41, 0x14, 0x6f, 0x84, 0xd4, 0xa7, 0xfb, 0xbd, 0xab, 0x52,
- 0x3f, 0x69, 0x3e, 0x5e, 0xdc, 0x9f, 0xaf, 0xec, 0xbe, 0xff, 0x33, 0xc9,
- 0x22, 0x6f, 0x61, 0x0b, 0xb5, 0x59, 0xc7, 0xfc, 0x83, 0x08, 0x2f, 0x53,
- 0xef, 0xff, 0xfb, 0x80, 0xa8, 0x3f, 0xd3, 0xad, 0x7d, 0xfe, 0x10, 0x00,
- 0x0a, 0xa3, 0x01, 0x4f, 0xf8, 0x6f, 0x23, 0x57, 0x03, 0x10, 0x7b, 0xe2,
- 0x27, 0xfc, 0xea, 0x18, 0x46, 0xe9, 0x08, 0xa3, 0x0f, 0xb9, 0xd2, 0x48,
- 0xbf, 0xd0, 0x45, 0x1b, 0xe2, 0x15, 0x73, 0xfd, 0xde, 0xd5, 0xa9, 0x1f,
- 0xb4, 0x9f, 0x2f, 0x66, 0x4f, 0xd7, 0xda, 0x7f, 0xee, 0xe6, 0x7a, 0x91,
- 0x37, 0xb0, 0xc5, 0xfc, 0xa0, 0xd1, 0xfe, 0xba, 0x0f, 0x90, 0x2a, 0x0f,
- 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00, 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b,
- 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8, 0x84, 0xff, 0x9d, 0x40, 0x71, 0x08,
- 0x54, 0x26, 0x7f, 0xb3, 0xf6, 0xcf, 0x35, 0xa3, 0x49, 0xa5, 0x5c, 0x85,
- 0x48, 0xc4, 0x46, 0x5d, 0xa0, 0xff, 0x65, 0x00, 0xa8, 0xa7, 0x19, 0x68,
- 0x79, 0x17, 0x5d, 0xe4, 0x42, 0xa6, 0x21, 0x98, 0x86, 0xed, 0x07, 0xfb,
- 0x80, 0x54, 0x53, 0x8c, 0xb4, 0x3c, 0x8b, 0xae, 0xf2, 0x21, 0x53, 0x10,
- 0xcc, 0x43, 0x76, 0x83, 0xfd, 0xc0, 0x2a, 0x29, 0xc6, 0x5a, 0x1e, 0x45,
- 0xd7, 0x79, 0x10, 0xa9, 0x88, 0x66, 0x21, 0xbb, 0x41, 0xfe, 0xd0, 0x34,
- 0x99, 0x0e, 0x15, 0x88, 0xec, 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x46,
- 0x63, 0x76, 0xbf, 0xf7, 0x06, 0x93, 0x21, 0xc2, 0xb1, 0x1d, 0x8d, 0xda,
- 0xbb, 0xd1, 0x0a, 0x91, 0x88, 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64,
- 0x38, 0x56, 0x23, 0xb1, 0xbb, 0x57, 0x7a, 0x21, 0x52, 0x31, 0x19, 0x8d,
- 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc4, 0x76, 0x37, 0x6a, 0xef,
- 0x44, 0x2a, 0x46, 0x23, 0x31, 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1,
- 0x58, 0x8e, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc4, 0x66, 0x37, 0x6b,
- 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x11, 0xd8, 0xdd, 0xab, 0xbd, 0x10,
- 0xa9, 0x18, 0x8c, 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x62,
- 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x11, 0x98, 0xdd, 0xaf, 0xfd,
- 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x47, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4,
- 0x62, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x88, 0xec,
- 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x46, 0x63, 0x76, 0xbf, 0xf7, 0x06,
- 0x93, 0x21, 0xc2, 0xb1, 0x1d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x88,
- 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x23, 0xb1, 0xbb,
- 0x57, 0x7a, 0x21, 0x52, 0x31, 0x19, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c,
- 0x87, 0x0a, 0xc4, 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x23, 0x31,
- 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1, 0x58, 0x8e, 0xc6, 0xed, 0x5d,
- 0xe8, 0x85, 0x48, 0xc4, 0x66, 0x37, 0x6b, 0xff, 0x6c, 0x1a, 0x46, 0x43,
- 0x87, 0x21, 0x9c, 0x86, 0xed, 0x7e, 0x0a, 0x51, 0x14, 0x85, 0x91, 0x37,
- 0x87, 0xb8, 0x34, 0x8c, 0x87, 0x0e, 0x43, 0x39, 0x0d, 0xda, 0xfc, 0x14,
- 0xa2, 0x29, 0x0b, 0x22, 0x6f, 0x0f, 0x64, 0x09, 0x34, 0x38, 0x56, 0x23,
- 0xb2, 0xed, 0x76, 0x0d, 0x25, 0x22, 0x49, 0x27, 0x87, 0xff, 0xfc, 0x21,
- 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xe0, 0xfd, 0x02, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xf9, 0x84, 0xe0,
- 0x91, 0xe9, 0x98, 0x04, 0x04, 0xf2, 0x23, 0x32, 0xcf, 0xd5, 0x84, 0x44,
- 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x84, 0x44, 0x61, 0x88,
- 0xa1, 0x40, 0x89, 0xc2, 0x6f, 0x33, 0xf0, 0x79, 0x63, 0xec, 0x37, 0xa4,
- 0x3f, 0xe2, 0x09, 0x3e, 0x00, 0x33, 0x79, 0xff, 0x37, 0xf7, 0x75, 0x59,
- 0x24, 0x0e, 0x16, 0x8e, 0x1e, 0x18, 0x89, 0x16, 0xa0, 0x80, 0x08, 0x18,
- 0x44, 0x61, 0xa6, 0x42, 0x88, 0x89, 0x9f, 0x55, 0x17, 0xef, 0x49, 0xbb,
- 0x5f, 0xb8, 0x1a, 0x2b, 0xff, 0xff, 0xfe, 0x6e, 0x3d, 0x41, 0xc6, 0x6c,
- 0xdb, 0x36, 0x01, 0x1e, 0xbe, 0xd8, 0x7b, 0x3a, 0x5b, 0xc2, 0x5e, 0x5e,
- 0x59, 0x37, 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40, 0x79, 0xeb, 0xff, 0x0e,
- 0xb5, 0x21, 0x7f, 0x7f, 0xaa, 0x45, 0x41, 0xca, 0x3c, 0xd1, 0xe7, 0xff,
- 0xfe, 0x4f, 0xc0, 0x92, 0x11, 0x13, 0x02, 0x4c, 0x87, 0x00, 0x24, 0x37,
- 0x5b, 0x97, 0x22, 0x39, 0xd7, 0xfe, 0x60, 0xaa, 0xfb, 0x33, 0x12, 0x9c,
- 0xe2, 0xf8, 0x01, 0x8a, 0xdf, 0x2d, 0x3f, 0xf4, 0x81, 0x79, 0xd7, 0x46,
- 0x4b, 0x7b, 0xad, 0x88, 0x1d, 0x5a, 0x2b, 0x1e, 0x2a, 0xc4, 0x16, 0x80,
- 0xd6, 0xef, 0x9b, 0xd1, 0x54, 0xa6, 0xf7, 0x93, 0xff, 0xff, 0xfe, 0x6b,
- 0x53, 0x6f, 0xfc, 0x25, 0x80, 0x63, 0xab, 0x4f, 0xf2, 0x01, 0xb5, 0xac,
- 0x6c, 0xa8, 0x26, 0xdc, 0x2d, 0xe1, 0x21, 0x38, 0xc1, 0x07, 0x3f, 0xb3,
- 0x7d, 0xa5, 0xed, 0x6c, 0x29, 0x82, 0x5f, 0xad, 0x86, 0x44, 0x2f, 0xa0,
- 0x3e, 0x92, 0x80, 0x76, 0xec, 0x3b, 0xf7, 0xe9, 0xa2, 0xdf, 0xeb, 0xc7,
- 0x7b, 0x09, 0xff, 0xff, 0xe0, 0x0c, 0xfb, 0xfa, 0x3b, 0x4d, 0x6b, 0x17,
- 0x22, 0x6f, 0xc2, 0x78, 0x06, 0x7e, 0xce, 0xa0, 0x51, 0x25, 0xac, 0x00,
- 0xdf, 0xa8, 0xf4, 0x3c, 0x10, 0x55, 0xe3, 0xbd, 0xf2, 0x16, 0x12, 0x5f,
- 0x7d, 0x4e, 0xf3, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2f, 0x83, 0xf4, 0x23, 0xf2, 0xfb, 0xf1, 0x9f, 0xf7, 0xff, 0x7e, 0x37,
- 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff,
- 0xff, 0xcd, 0xff, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8d, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e,
- 0x60, 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00,
- 0x00, 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8,
- 0x20, 0x22, 0xff, 0x1f, 0x8b, 0x6e, 0x28, 0x00, 0x08, 0x08, 0xc0, 0x70,
- 0x02, 0x08, 0x29, 0x49, 0x60, 0x1c, 0x00, 0x82, 0x0a, 0x51, 0x33, 0xcf,
- 0x00, 0x02, 0xb0, 0x1c, 0x00, 0x82, 0x0a, 0x52, 0x58, 0x00, 0x19, 0xb4,
- 0x49, 0x99, 0xb2, 0x12, 0x2a, 0xa7, 0x93, 0x31, 0x25, 0xd9, 0x55, 0x3f,
- 0x9b, 0x9e, 0x00, 0x05, 0x70, 0x1c, 0x00, 0x82, 0x0a, 0x51, 0x33, 0xa3,
- 0x40, 0x53, 0x94, 0x45, 0xea, 0x35, 0xf5, 0xdd, 0xe0, 0x0c, 0xa4, 0x43,
- 0x27, 0xdf, 0x00, 0xe8, 0x4b, 0xff, 0xff, 0xcc, 0x0d, 0x39, 0xe3, 0x10,
- 0xb8, 0x7b, 0x22, 0x6d, 0xff, 0xf3, 0x9a, 0x22, 0x01, 0x8a, 0x4d, 0xe6,
- 0xfe, 0x9d, 0x7b, 0xbc, 0x75, 0x96, 0xc2, 0xa0, 0x76, 0x8f, 0x00, 0x02,
- 0x70, 0x1c, 0x02, 0x18, 0x42, 0x52, 0xc1, 0x80, 0x08, 0xca, 0x59, 0x9e,
- 0x85, 0x95, 0x79, 0xe0, 0x00, 0x4e, 0x03, 0x80, 0x43, 0x08, 0x4a, 0x5b,
- 0x3c, 0x2b, 0x9c, 0xba, 0x7f, 0xfb, 0xc0, 0xc0, 0x56, 0x2e, 0xcc, 0x71,
- 0xea, 0x6e, 0x0b, 0x69, 0x6b, 0xff, 0xd8, 0x04, 0x45, 0xc7, 0x83, 0x17,
- 0x29, 0xc7, 0xc3, 0x5d, 0x63, 0x09, 0x69, 0x0e, 0x3a, 0xe2, 0xd2, 0xe3,
- 0xff, 0xfe, 0xfc, 0x5a, 0x17, 0xa0, 0xb1, 0xd1, 0x0d, 0x21, 0xb5, 0xfd,
- 0x85, 0x83, 0xb0, 0x86, 0x2a, 0x57, 0x56, 0x79, 0x80, 0x58, 0x00, 0xdc,
- 0xd1, 0xd0, 0x85, 0x97, 0xde, 0x6f, 0x70, 0x81, 0x94, 0xc5, 0x81, 0x67,
- 0x3d, 0x15, 0xb6, 0x77, 0xff, 0xb4, 0x19, 0x4f, 0xee, 0x1f, 0x2e, 0x5c,
- 0xb7, 0x4f, 0xfd, 0xef, 0xf1, 0x11, 0x7c, 0x7b, 0x67, 0x80, 0x01, 0x58,
- 0x0e, 0x00, 0x41, 0x05, 0x29, 0x2d, 0xcf, 0x00, 0x02, 0xb0, 0x1c, 0x00,
- 0x82, 0x0a, 0x52, 0x58, 0x00, 0x56, 0x64, 0x61, 0xe1, 0x14, 0xd4, 0xa0,
- 0xdd, 0xaf, 0x36, 0x43, 0x49, 0x3a, 0xa2, 0x6e, 0xdf, 0xf3, 0x46, 0x44,
- 0x03, 0x26, 0xea, 0xfc, 0x81, 0x09, 0xff, 0x83, 0xd0, 0x88, 0x94, 0xe7,
- 0x3a, 0xc5, 0xa7, 0x92, 0xff, 0xef, 0x02, 0x4b, 0x71, 0xde, 0x84, 0x25,
- 0x2b, 0x62, 0xea, 0xfd, 0xff, 0xb8, 0x41, 0x08, 0x6a, 0xd4, 0x2b, 0x28,
- 0x3a, 0x80, 0xd9, 0x83, 0x30, 0x54, 0x25, 0x2b, 0x59, 0x16, 0x77, 0x7e,
- 0x80, 0x4f, 0x00, 0x4a, 0x09, 0x86, 0x2c, 0x3b, 0x1e, 0x90, 0xf9, 0x01,
- 0x61, 0x85, 0xbd, 0x11, 0x4a, 0xc8, 0x88, 0x8e, 0x4b, 0xff, 0xac, 0x40,
- 0x02, 0x14, 0xd9, 0x7f, 0x1e, 0x43, 0xd2, 0x55, 0x4d, 0x97, 0x5e, 0x3c,
- 0x87, 0xa4, 0xaa, 0x9b, 0x2e, 0xa0, 0x70, 0x04, 0x29, 0xb2, 0xfa, 0x98,
- 0xc8, 0x54, 0xa7, 0x23, 0x6e, 0xd6, 0xfa, 0x40, 0x00, 0x08, 0x01, 0xd3,
- 0xd5, 0xdb, 0x29, 0x66, 0x60, 0x08, 0x5e, 0x8d, 0x24, 0x05, 0x0d, 0x5d,
- 0xfc, 0x00, 0x84, 0xc7, 0xd6, 0xb2, 0xd5, 0xa1, 0x2b, 0x77, 0x21, 0xe5,
- 0xce, 0x27, 0x6b, 0xb8, 0xf0, 0x01, 0xbf, 0x8f, 0x54, 0xdf, 0x40, 0xbd,
- 0xc2, 0xce, 0x43, 0x68, 0xa0, 0xed, 0x56, 0xae, 0x6c, 0x3a, 0xed, 0x5a,
- 0x11, 0xc9, 0x1f, 0xe6, 0x87, 0x1d, 0x55, 0xab, 0xd2, 0xb1, 0x23, 0x3d,
- 0xc5, 0x7d, 0x09, 0x5c, 0x56, 0x36, 0x51, 0x40, 0x00, 0xac, 0x07, 0x00,
- 0x20, 0x82, 0x94, 0x96, 0x00, 0x19, 0x34, 0x69, 0x19, 0x33, 0x12, 0xb2,
- 0xae, 0xad, 0x36, 0x53, 0xc6, 0x8e, 0x89, 0x63, 0xc0, 0x00, 0xbc, 0x07,
- 0x00, 0x20, 0x82, 0x96, 0x96, 0x0c, 0x00, 0x6c, 0x99, 0xb0, 0xd1, 0x32,
- 0xb8, 0xc6, 0xe3, 0xb8, 0x6a, 0xc1, 0xe4, 0x40, 0x09, 0xa4, 0x6c, 0xa0,
- 0x9d, 0x64, 0x19, 0xce, 0x62, 0x72, 0xfc, 0x40, 0x5f, 0xff, 0xf9, 0xc0,
- 0x58, 0x45, 0x66, 0x2e, 0x27, 0xb6, 0x75, 0x0a, 0xff, 0xfd, 0x86, 0x0e,
- 0xa9, 0xfa, 0x9d, 0x50, 0xad, 0x0f, 0xfe, 0x01, 0x33, 0x64, 0xd1, 0x93,
- 0x21, 0xa2, 0x2c, 0xf2, 0x00, 0x76, 0x98, 0x6a, 0xd4, 0x26, 0xae, 0xcd,
- 0x5d, 0xfb, 0x9b, 0x26, 0x8c, 0x99, 0x0f, 0x22, 0xeb, 0x18, 0x4b, 0x4c,
- 0x29, 0x2d, 0xab, 0x59, 0x07, 0xff, 0xfd, 0xf8, 0x86, 0xb3, 0x15, 0xec,
- 0xb7, 0x3c, 0x00, 0x0b, 0xc0, 0x70, 0x02, 0x08, 0x29, 0x69, 0x6f, 0x53,
- 0x46, 0x83, 0x54, 0xea, 0xc1, 0x09, 0xd2, 0x3d, 0x6d, 0x12, 0x66, 0x6c,
- 0x84, 0x8a, 0xb8, 0xf0, 0x00, 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5,
- 0xb6, 0xe6, 0xb8, 0xd2, 0x77, 0x7e, 0xff, 0x0f, 0x03, 0x22, 0x53, 0x89,
- 0x48, 0xe0, 0xa8, 0xc9, 0xb7, 0xeb, 0xf5, 0x3c, 0x9b, 0x08, 0x03, 0x2d,
- 0x88, 0x53, 0xeb, 0xba, 0xe6, 0xcc, 0x33, 0x82, 0xa7, 0x77, 0x7f, 0x63,
- 0x93, 0xf6, 0x88, 0x0c, 0x82, 0x2e, 0x36, 0xb1, 0x0a, 0xa3, 0x2b, 0xff,
- 0xd9, 0x80, 0x00, 0x6c, 0x15, 0x8c, 0x4c, 0x00, 0x1e, 0x35, 0x98, 0x95,
- 0x37, 0x4e, 0xb9, 0x76, 0x83, 0x3b, 0xd7, 0x7f, 0x7a, 0xed, 0xef, 0xfb,
- 0xbc, 0x87, 0xaa, 0xb2, 0xa6, 0xe9, 0xd6, 0x2a, 0x7f, 0xa8, 0x80, 0xc4,
- 0xd9, 0xee, 0x78, 0x00, 0x17, 0x80, 0xe0, 0x04, 0x10, 0x52, 0xd2, 0xdc,
- 0xf0, 0x00, 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x80, 0x05, 0x66,
- 0x46, 0x1e, 0x11, 0x4d, 0x4a, 0x8d, 0xda, 0xdb, 0x9a, 0xe3, 0x4b, 0xeb,
- 0xf7, 0xda, 0x17, 0x07, 0xc5, 0xe3, 0x29, 0x08, 0xf2, 0x69, 0x9f, 0xfa,
- 0xfe, 0x6d, 0x00, 0x4a, 0x82, 0xe5, 0x11, 0x91, 0xa7, 0x67, 0xff, 0xe0,
- 0xc0, 0x94, 0xc6, 0x91, 0x54, 0x29, 0x3a, 0xec, 0xad, 0xbf, 0xfd, 0xe0,
- 0x05, 0xe8, 0x15, 0xe5, 0x5b, 0xe2, 0xe6, 0xe5, 0x33, 0x40, 0x49, 0x21,
- 0xa2, 0xb0, 0xf4, 0xd8, 0x95, 0x95, 0x7f, 0xfd, 0xf0, 0xc1, 0xd5, 0x3a,
- 0xa9, 0xd5, 0x0e, 0xd0, 0xff, 0xee, 0xa3, 0xe0, 0x23, 0x14, 0x06, 0xb4,
- 0x78, 0x00, 0x13, 0x80, 0xe0, 0x10, 0xc2, 0x12, 0x96, 0xf2, 0x8c, 0x5e,
- 0xd8, 0x8b, 0xee, 0x59, 0x9c, 0x21, 0xa9, 0x8a, 0xc5, 0x63, 0x6a, 0x63,
- 0xc0, 0x00, 0x9c, 0x07, 0x00, 0x86, 0x10, 0x94, 0xb7, 0xfe, 0x70, 0x27,
- 0xd2, 0x91, 0x09, 0x30, 0xda, 0xc7, 0x08, 0x00, 0x02, 0x01, 0x00, 0x8c,
- 0x70, 0x70, 0xaa, 0xa3, 0xca, 0x65, 0x3c, 0x97, 0x21, 0x3e, 0x40, 0x00,
- 0x08, 0x06, 0xdc, 0x20, 0x6e, 0xc8, 0x00, 0x3f, 0xc1, 0x40, 0x54, 0x2d,
- 0x3a, 0x5c, 0x62, 0x5e, 0x60, 0x49, 0xab, 0x34, 0x46, 0x62, 0x47, 0x9f,
- 0xd4, 0x0d, 0x0a, 0x40, 0xaa, 0x52, 0x77, 0x48, 0x77, 0x7c, 0xb7, 0x05,
- 0x4a, 0x92, 0x97, 0xdf, 0x04, 0x2c, 0x0b, 0xce, 0x88, 0xcf, 0xc0, 0x9d,
- 0xc7, 0xf4, 0x6b, 0xbf, 0x78, 0x1c, 0x00, 0x82, 0x0a, 0x97, 0x00, 0x26,
- 0x46, 0x25, 0xbf, 0x22, 0xaf, 0x45, 0xd8, 0x1c, 0x00, 0x82, 0x0a, 0x96,
- 0x18, 0x01, 0x09, 0xa3, 0x41, 0xaa, 0x75, 0x61, 0x8d, 0xd0, 0x78, 0x04,
- 0x55, 0xab, 0x73, 0x14, 0xd3, 0x5e, 0xba, 0xb8, 0xd0, 0x13, 0xa4, 0xe4,
- 0x41, 0x5f, 0x4e, 0xd3, 0x83, 0xd0, 0xf1, 0x55, 0x42, 0xda, 0x6d, 0x7c,
- 0xb2, 0x10, 0xf7, 0x04, 0x89, 0xd3, 0xaf, 0xea, 0xb1, 0x76, 0xc1, 0x28,
- 0x86, 0x10, 0x8c, 0xcc, 0x76, 0xde, 0xff, 0xdc, 0x12, 0x27, 0x4e, 0xbf,
- 0xaa, 0xc5, 0xda, 0xc4, 0x12, 0x43, 0x08, 0x4b, 0x2a, 0x96, 0x47, 0xff,
- 0xfd, 0xf8, 0x7d, 0x2d, 0xf8, 0x91, 0x25, 0x80, 0x00, 0x80, 0x2c, 0x07,
- 0x00, 0x02, 0xc0, 0x08, 0x0c, 0x25, 0x2c, 0x1e, 0x78, 0x00, 0x08, 0x01,
- 0xc0, 0x70, 0x00, 0x2c, 0x00, 0x80, 0xc2, 0x52, 0xcf, 0x60, 0x4e, 0x0f,
- 0xb0, 0xbe, 0xcf, 0x28, 0x54, 0xad, 0xae, 0x6f, 0xff, 0xff, 0x22, 0x50,
- 0x91, 0x1b, 0x49, 0x93, 0x6c, 0x18, 0xfc, 0x3c, 0x00, 0x08, 0x85, 0x24,
- 0xb2, 0x4b, 0x2d, 0xe0, 0x6f, 0x5b, 0x10, 0x00, 0x05, 0xc0, 0x14, 0x1b,
- 0x2f, 0xe0, 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80,
- 0x20, 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80,
- 0xe0, 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a,
- 0x0d, 0x97, 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24,
- 0x92, 0x49, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f,
- 0xe0, 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20,
- 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0,
- 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d,
- 0x97, 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92,
- 0x49, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0,
- 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20, 0x00,
- 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0, 0x00,
- 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d, 0x97,
- 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92, 0x49,
- 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0, 0x70,
- 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20, 0x00, 0x08,
- 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0, 0x00, 0x5c,
- 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d, 0x97, 0xff,
- 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92, 0x49, 0x03,
- 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0, 0x70, 0x00,
- 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x02, 0x00, 0x00, 0x80,
- 0x08, 0xcf, 0x7c, 0xbe, 0x62, 0x42, 0x7d, 0x04, 0xd3, 0xfc, 0x40, 0xe0,
- 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d,
- 0x96, 0x00, 0x4c, 0x64, 0x22, 0xb2, 0x98, 0xe1, 0x45, 0x73, 0x39, 0x27,
- 0x87, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6d, 0xce, 0x3b, 0x00, 0x41,
- 0x82, 0xdd, 0x53, 0x4d, 0xbb, 0x2d, 0xf5, 0x56, 0x5b, 0xc8, 0x00, 0x02,
- 0xa0, 0x1c, 0x1b, 0x73, 0x85, 0x2d, 0x9e, 0x35, 0x00, 0x76, 0x7b, 0xa0,
- 0x07, 0x00, 0x02, 0xa0, 0x1c, 0x1b, 0x73, 0x85, 0x07, 0x67, 0xba, 0x00,
- 0xec, 0xf0, 0x07, 0xc9, 0x30, 0xcb, 0x50, 0x22, 0x09, 0x68, 0x7c, 0x3e,
- 0x27, 0x86, 0x2f, 0xd8, 0x2f, 0x78, 0x78, 0xa0, 0x00, 0x53, 0x82, 0xb4,
- 0xe3, 0x6a, 0x60, 0xc6, 0x78, 0xd1, 0x91, 0x0f, 0xbf, 0x00, 0x06, 0x4d,
- 0x18, 0x1e, 0x46, 0xea, 0x11, 0x40, 0x5a, 0xa2, 0x1f, 0xfd, 0x43, 0xe0,
- 0x81, 0xfd, 0x5b, 0x04, 0x42, 0x92, 0x16, 0xf0, 0xf8, 0x64, 0x1f, 0xff,
- 0xfa, 0xc1, 0x0a, 0xc0, 0x01, 0x93, 0x46, 0x07, 0x91, 0xba, 0x84, 0x50,
- 0x16, 0xa8, 0x87, 0x74, 0x42, 0x21, 0x49, 0x1e, 0xf0, 0xb4, 0x55, 0xff,
- 0xc3, 0x81, 0xc2, 0xbc, 0x30, 0x00, 0xf9, 0x26, 0x19, 0x7b, 0x04, 0x41,
- 0x2f, 0x60, 0xc3, 0xc5, 0x00, 0x02, 0x9c, 0x15, 0xa2, 0x0d, 0xa9, 0x83,
- 0x19, 0xe3, 0x46, 0x48, 0x7c, 0x48, 0x90, 0xfe, 0x1f, 0x86, 0x78, 0x54,
- 0x46, 0x00, 0x1f, 0x24, 0xc3, 0x2f, 0x60, 0x88, 0x25, 0xec, 0x01, 0xe2,
- 0x80, 0x01, 0x4e, 0x0a, 0xd3, 0x8d, 0xa9, 0xb0, 0xdf, 0xc6, 0x8c, 0x88,
- 0x1c, 0x0a, 0xc1, 0x2e, 0x0a, 0xb2, 0x0c, 0x24, 0xd2, 0x0f, 0x57, 0xbe,
- 0x1f, 0x00, 0xf8, 0x20, 0xe5, 0x98, 0x82, 0x11, 0xef, 0x58, 0x42, 0xc0,
- 0x01, 0x01, 0x0a, 0xd6, 0x31, 0x8d, 0x6b, 0x5a, 0xc6, 0x31, 0xad, 0x67,
- 0xf0, 0xff, 0xfe, 0x00, 0x14, 0x99, 0x18, 0x1e, 0x66, 0xea, 0x08, 0xc0,
- 0x3d, 0x7f, 0xfe, 0xbc, 0x02, 0x15, 0x5e, 0xf4, 0x42, 0x21, 0x49, 0x1f,
- 0x8f, 0x45, 0x5f, 0xf7, 0xe0, 0x00, 0xfa, 0x2f, 0x98, 0x6a, 0x80, 0xca,
- 0x34, 0xd2, 0xbf, 0xea, 0x3a, 0x00, 0x56, 0x51, 0xd7, 0x0e, 0xbe, 0xbf,
- 0xf9, 0xfe, 0x08, 0x0b, 0x85, 0x6e, 0x43, 0xce, 0xcc, 0x1f, 0x52, 0xd7,
- 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09,
- 0x20, 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04,
- 0x06, 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xff, 0xb4,
- 0x3e, 0x93, 0xb2, 0x0a, 0x00, 0x06, 0xf0, 0x1c, 0x00, 0x08, 0x00, 0x81,
- 0x4d, 0x26, 0x70, 0x49, 0x78, 0x24, 0x0e, 0x99, 0x66, 0x2f, 0xcc, 0x30,
- 0x62, 0x7b, 0xe8, 0x78, 0x00, 0x1b, 0xc0, 0x70, 0x00, 0x20, 0x02, 0x05,
- 0x34, 0x99, 0xc0, 0xec, 0xd9, 0x53, 0x1a, 0x7e, 0x23, 0xff, 0xd7, 0x6d,
- 0x3d, 0x74, 0x10, 0x64, 0xec, 0x24, 0x88, 0x4b, 0x66, 0x92, 0x48, 0x49,
- 0xf7, 0x50, 0x75, 0xc9, 0x90, 0xa8, 0x73, 0x1d, 0x39, 0x83, 0xcb, 0x1d,
- 0xef, 0xf0, 0x45, 0xb5, 0xda, 0x5b, 0x5c, 0xdc, 0x39, 0xa6, 0x00, 0x0c,
- 0x93, 0xf5, 0x1f, 0xae, 0xa1, 0xb2, 0x58, 0x0f, 0x0a, 0xde, 0x86, 0x01,
- 0x6c, 0xda, 0x98, 0x13, 0xc9, 0x6f, 0x33, 0xe0, 0x9f, 0xf7, 0xe1, 0xb8,
- 0x6d, 0x30, 0x88, 0x36, 0xa6, 0x01, 0xb6, 0x9b, 0x83, 0xc0, 0xb5, 0xc3,
- 0xb9, 0xa3, 0xd4, 0x7a, 0x5e, 0x33, 0x3f, 0xa5, 0x1f, 0x7a, 0x89, 0x80,
- 0x21, 0x33, 0x3d, 0x95, 0x0e, 0xfa, 0x7b, 0x8e, 0xd9, 0x0d, 0x1c, 0xa2,
- 0xfe, 0xc3, 0x38, 0xd7, 0x6d, 0x8f, 0x1b, 0x53, 0x25, 0x83, 0xe2, 0x03,
- 0xea, 0x63, 0xec, 0x48, 0xa5, 0x63, 0x80, 0x8c, 0xf2, 0x2c, 0x51, 0xc5,
- 0xf8, 0x64, 0xc1, 0x94, 0xf3, 0x93, 0x46, 0x5c, 0x48, 0xc7, 0x5e, 0x1c,
- 0xcc, 0x7f, 0xbf, 0xf5, 0x20, 0xf6, 0x24, 0x58, 0x52, 0x0f, 0x86, 0xf3,
- 0x46, 0xaa, 0x3d, 0x55, 0x2f, 0x44, 0x48, 0x43, 0xe0, 0xed, 0x2e, 0x1b,
- 0x98, 0x95, 0xc7, 0x53, 0x98, 0xb4, 0x6d, 0x92, 0x03, 0x0b, 0x08, 0x21,
- 0x7f, 0xb2, 0xe7, 0x4a, 0x22, 0x79, 0xe2, 0x55, 0x4f, 0xf6, 0xda, 0x27,
- 0x48, 0x23, 0x2b, 0xdb, 0x0c, 0x01, 0x59, 0xb2, 0xe6, 0x72, 0xdb, 0xfa,
- 0x2b, 0x94, 0xe1, 0xcd, 0x30, 0x00, 0x19, 0x27, 0xea, 0x69, 0xee, 0x3b,
- 0x62, 0x74, 0x73, 0x8f, 0xfb, 0x36, 0x12, 0xf6, 0xb5, 0x8d, 0xa0, 0x57,
- 0x8f, 0x7e, 0xbc, 0x04, 0xbe, 0x6a, 0x3d, 0xff, 0x42, 0xe1, 0xdc, 0xd0,
- 0xb5, 0x1e, 0x95, 0x8f, 0xf8, 0x2d, 0x85, 0x8b, 0x41, 0xeb, 0xde, 0x33,
- 0x3f, 0xa5, 0x1f, 0x7a, 0xaa, 0x5e, 0x44, 0x2c, 0x41, 0xf5, 0x1b, 0x74,
- 0x10, 0x64, 0x25, 0xb0, 0x95, 0xa1, 0x9c, 0x6b, 0xb6, 0xc7, 0xab, 0x00,
- 0x70, 0xbf, 0x28, 0xad, 0xf8, 0x13, 0xa8, 0x37, 0x1a, 0xf7, 0x4a, 0x21,
- 0x68, 0xc8, 0xb9, 0x5c, 0x0b, 0x5c, 0xc8, 0x54, 0x39, 0x8e, 0x9c, 0xc1,
- 0xe1, 0x8f, 0xbb, 0xe0, 0xc4, 0x14, 0xd8, 0x8c, 0xa6, 0xfa, 0xe7, 0xd3,
- 0x32, 0xfc, 0x23, 0xfe, 0x40, 0xfb, 0x9c, 0x0f, 0x0a, 0xde, 0x86, 0x01,
- 0x74, 0xda, 0x9b, 0x2e, 0x4b, 0x79, 0x9f, 0x04, 0xff, 0xbf, 0x0d, 0xc0,
- 0xda, 0x21, 0x0e, 0x36, 0xa6, 0x07, 0xf3, 0x3b, 0x7a, 0xa4, 0xf6, 0x7f,
- 0x00, 0x0a, 0x64, 0xc6, 0xd0, 0xdc, 0xa1, 0x28, 0x35, 0x32, 0xd7, 0xed,
- 0x33, 0x84, 0x5c, 0x7a, 0x3c, 0xb9, 0xdf, 0xfd, 0xa9, 0x75, 0x1a, 0x2f,
- 0x97, 0xfd, 0xef, 0xda, 0xa9, 0x22, 0x28, 0x84, 0x8e, 0x7f, 0x81, 0x92,
- 0xcc, 0xe6, 0x31, 0x42, 0xa0, 0x91, 0xad, 0x8e, 0x48, 0x0b, 0xd1, 0xe4,
- 0xc7, 0x17, 0x90, 0x4b, 0x43, 0x97, 0x8e, 0x47, 0xe8, 0x6e, 0xbc, 0xc4,
- 0x07, 0x38, 0xd5, 0x57, 0xf5, 0xff, 0xb3, 0x85, 0x34, 0x41, 0x31, 0x63,
- 0x75, 0xb3, 0x04, 0x04, 0x58, 0x5d, 0x94, 0x56, 0xff, 0x28, 0x85, 0xa3,
- 0x27, 0xca, 0xe0, 0x5a, 0xe3, 0x76, 0x5e, 0xe8, 0x1b, 0x21, 0x48, 0x73,
- 0x1d, 0x39, 0x87, 0x0d, 0xf7, 0x7c, 0x02, 0xaa, 0x9c, 0xeb, 0x57, 0xff,
- 0x7c, 0x01, 0xaf, 0xa9, 0x99, 0x78, 0x47, 0xfd, 0xb8, 0x3c, 0x2b, 0x7a,
- 0x18, 0x05, 0xd3, 0x6a, 0x6b, 0x4f, 0x0d, 0xc3, 0x69, 0x86, 0x51, 0xb5,
- 0x36, 0x5c, 0x96, 0xf3, 0x3d, 0x04, 0xff, 0xbf, 0x42, 0x4c, 0x90, 0x04,
- 0x14, 0x97, 0x06, 0xda, 0x97, 0xef, 0xe1, 0x7b, 0xbd, 0xbf, 0x07, 0x3d,
- 0x2a, 0xc2, 0xed, 0x9d, 0xb0, 0x00, 0x35, 0x99, 0x09, 0x84, 0x64, 0x0d,
- 0xe1, 0x33, 0xed, 0xd8, 0x12, 0xfd, 0x39, 0x50, 0x86, 0x14, 0x7c, 0x14,
- 0x4a, 0x7e, 0x71, 0xec, 0x87, 0x3f, 0xa4, 0x2b, 0x2b, 0x8f, 0xfb, 0xf3,
- 0xf1, 0x21, 0x4a, 0x95, 0x8f, 0xef, 0x72, 0xcc, 0x4c, 0x75, 0x67, 0xe5,
- 0x07, 0x2d, 0x84, 0x67, 0x16, 0x10, 0xef, 0xb6, 0x0f, 0x03, 0x6d, 0x30,
- 0x92, 0xa0, 0xe3, 0xaa, 0x44, 0x2d, 0x9f, 0x8e, 0xa8, 0x89, 0x0b, 0x47,
- 0x81, 0x45, 0xa1, 0xb8, 0x8a, 0x9f, 0x25, 0x8e, 0x07, 0x37, 0xdb, 0x5f,
- 0x64, 0xd6, 0x34, 0x40, 0x58, 0xc6, 0x00, 0xac, 0xcc, 0xb9, 0x9c, 0xb6,
- 0xc9, 0x4e, 0x0e, 0xcd, 0x30, 0x00, 0x08, 0x04, 0x2d, 0xf9, 0xdb, 0x2e,
- 0xfc, 0x0a, 0xdb, 0x5a, 0xc0, 0x39, 0xa0, 0xd5, 0x48, 0x83, 0x9b, 0x0c,
- 0x31, 0x7f, 0xbe, 0xed, 0x10, 0x5e, 0x89, 0x94, 0x8a, 0xbe, 0xf0, 0x12,
- 0x97, 0x3a, 0x3d, 0x42, 0xe0, 0xea, 0x13, 0x1f, 0xe7, 0xa5, 0xe1, 0xbf,
- 0x7e, 0x92, 0x3e, 0xf5, 0x13, 0x47, 0x16, 0x66, 0x72, 0x41, 0x5d, 0x93,
- 0x4f, 0x71, 0xdb, 0x21, 0xa3, 0x94, 0x5f, 0xd8, 0x2a, 0xee, 0xbb, 0x6c,
- 0x78, 0xda, 0x99, 0x2c, 0x6a, 0xc7, 0x68, 0xb4, 0x6c, 0x87, 0x5b, 0x27,
- 0xf4, 0x22, 0x1d, 0x6a, 0x82, 0xf5, 0xaf, 0x06, 0x04, 0xa9, 0xb9, 0x81,
- 0xfe, 0xf4, 0x02, 0x55, 0xbf, 0x40, 0x36, 0x24, 0xf0, 0xa4, 0x0e, 0x0d,
- 0xe6, 0x8d, 0x2a, 0x3d, 0x2a, 0xbc, 0x88, 0x59, 0x01, 0xc1, 0x81, 0xae,
- 0x89, 0x8a, 0x94, 0xd0, 0x1d, 0x22, 0x2d, 0x65, 0xe3, 0x96, 0x46, 0xd5,
- 0x6f, 0x8c, 0x0f, 0x5c, 0x77, 0x89, 0x12, 0x54, 0xe8, 0x53, 0xe1, 0x7f,
- 0xc2, 0x62, 0x7a, 0xd3, 0x57, 0x80, 0x18, 0xf1, 0x70, 0xa2, 0x3e, 0x0f,
- 0x04, 0x83, 0xb0, 0x71, 0x10, 0xcd, 0xf3, 0x27, 0x4f, 0xef, 0xd5, 0xa5,
- 0x2c, 0x00, 0x1a, 0x84, 0x3f, 0xdd, 0x77, 0xff, 0x7c, 0x63, 0xd4, 0x61,
- 0xde, 0x7f, 0x1e, 0xa2, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xb8, 0xe8, 0x80,
- 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49, 0x04, 0x90, 0x07, 0x9b, 0xcf,
- 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0x81, 0xc0, 0x00, 0xb8,
- 0x02, 0x03, 0x6e, 0x7f, 0xff, 0xca, 0x16, 0x8f, 0x00, 0x03, 0xf8, 0x0e,
- 0x00, 0x04, 0x80, 0x60, 0x43, 0xc9, 0x9e, 0xe0, 0x01, 0x9b, 0x7f, 0xca,
- 0xf8, 0x78, 0x00, 0x1f, 0xc0, 0x70, 0x00, 0x24, 0x03, 0x02, 0x1e, 0x4c,
- 0xf8, 0x68, 0xf1, 0x03, 0x57, 0xdd, 0xd8, 0x69, 0x27, 0xc9, 0x8e, 0x00,
- 0x76, 0x02, 0x6f, 0xd6, 0xf3, 0xf2, 0x3d, 0x87, 0xb2, 0x7d, 0xe4, 0x07,
- 0x51, 0x8b, 0x71, 0xb5, 0x37, 0xfe, 0x00, 0x82, 0x32, 0x98, 0xc3, 0xa5,
- 0x4f, 0xca, 0x07, 0xd0, 0xd5, 0x14, 0x47, 0x1f, 0x74, 0x02, 0x64, 0xbf,
- 0x42, 0xf4, 0xb3, 0x02, 0x7e, 0xff, 0x0e, 0x00, 0x00, 0x13, 0x83, 0xde,
- 0xfa, 0x07, 0xcd, 0x91, 0x33, 0x51, 0xec, 0x1d, 0x18, 0x19, 0xff, 0x05,
- 0x82, 0x0e, 0x29, 0xd8, 0xc4, 0x86, 0x89, 0x8f, 0xf0, 0x00, 0x20, 0x68,
- 0xa2, 0xad, 0x67, 0x50, 0xe0, 0xa9, 0x93, 0xca, 0xff, 0x07, 0x73, 0x2b,
- 0x31, 0x15, 0x18, 0x7d, 0xff, 0x80, 0x18, 0x1e, 0xaf, 0x8e, 0xc3, 0x50,
- 0x07, 0x51, 0x8d, 0x71, 0xb5, 0x36, 0x0a, 0xd2, 0x1e, 0xa2, 0x72, 0xdb,
- 0x0f, 0x2d, 0x07, 0xdf, 0x20, 0x00, 0x9a, 0x21, 0x56, 0xb0, 0x79, 0x24,
- 0x93, 0x01, 0xd9, 0xe0, 0xb2, 0xd1, 0x16, 0x97, 0xf1, 0xd4, 0x0d, 0x66,
- 0x46, 0xe6, 0x0d, 0xe3, 0x6b, 0x9b, 0x40, 0x00, 0x46, 0x89, 0xbb, 0xe8,
- 0x1f, 0x38, 0x6b, 0x60, 0x10, 0x00, 0xc6, 0x7f, 0xc0, 0x10, 0x46, 0xe4,
- 0x30, 0xfe, 0xa7, 0xe0, 0x07, 0xcd, 0x7a, 0x34, 0x9d, 0xa8, 0x0d, 0x92,
- 0x7a, 0x17, 0xa5, 0x98, 0x11, 0xfa, 0xff, 0x02, 0x19, 0xe9, 0xc1, 0x74,
- 0x1e, 0x55, 0xb5, 0x9a, 0x20, 0x38, 0x3e, 0xef, 0x81, 0xe5, 0x26, 0x61,
- 0x14, 0xa1, 0x1d, 0xcf, 0x33, 0xf7, 0xc6, 0xb4, 0x99, 0xb3, 0x1f, 0x0e,
- 0x07, 0x28, 0x51, 0x9a, 0xde, 0x18, 0x00, 0xda, 0x63, 0xf0, 0x8c, 0x57,
- 0x6b, 0xef, 0x84, 0xee, 0xb6, 0x47, 0x10, 0xfb, 0xf0, 0x27, 0x28, 0x05,
- 0x33, 0xfe, 0x1e, 0x7c, 0x14, 0x55, 0xff, 0xf7, 0xf9, 0xf0, 0xd0, 0xc4,
- 0x95, 0xab, 0x29, 0x57, 0xa9, 0xa1, 0x25, 0xc5, 0xf0, 0x23, 0x3f, 0xec,
- 0xb1, 0x79, 0xe8, 0x5e, 0x42, 0xa1, 0xfa, 0xde, 0x91, 0xcd, 0xe5, 0x95,
- 0x5e, 0xac, 0x3d, 0x41, 0x95, 0x4a, 0x96, 0xb5, 0x0e, 0x00, 0x30, 0x84,
- 0x37, 0xd4, 0x81, 0x0d, 0xf7, 0x5f, 0xbe, 0x09, 0x7c, 0x73, 0x7e, 0x61,
- 0xe9, 0x57, 0xef, 0x07, 0x2d, 0x30, 0xc4, 0x8b, 0x6f, 0x2f, 0x7e, 0xd5,
- 0x5b, 0x80, 0x79, 0x2e, 0x00, 0x0c, 0x55, 0x7b, 0x59, 0xc4, 0x3f, 0x62,
- 0x27, 0xb1, 0xc6, 0x40, 0x00, 0x6b, 0x94, 0x76, 0x03, 0x05, 0xd5, 0x6e,
- 0x85, 0x16, 0x93, 0x0d, 0xaf, 0x3d, 0x5f, 0xc1, 0x9d, 0xd9, 0x09, 0x3a,
- 0x68, 0xf6, 0x99, 0x80, 0x01, 0xbc, 0x51, 0xda, 0x14, 0x2e, 0xaa, 0x2c,
- 0x85, 0xe4, 0x54, 0xf1, 0x7b, 0xfc, 0x91, 0xe5, 0xb7, 0xfb, 0xfd, 0xfe,
- 0xff, 0x5f, 0xff, 0xf9, 0x14, 0x10, 0x9a, 0x00, 0x16, 0xc8, 0xb7, 0xfa,
- 0x02, 0xc2, 0xb5, 0x9f, 0xb0, 0x01, 0xe2, 0x97, 0xfa, 0xc3, 0xff, 0xc3,
- 0x65, 0x7d, 0xff, 0xf9, 0xff, 0xff, 0xe3, 0xfb, 0xde, 0x5f, 0xb5, 0xc0,
- 0x10, 0x03, 0x89, 0xb8, 0x15, 0x23, 0x8f, 0x7e, 0x40, 0x0c, 0x60, 0x0b,
- 0x4c, 0xc0, 0x5f, 0x39, 0xdd, 0x20, 0xce, 0xfb, 0xff, 0x7f, 0xef, 0xfd,
- 0x07, 0x05, 0xc8, 0xaa, 0xf7, 0x1b, 0xff, 0xab, 0x43, 0x0f, 0xdf, 0xb8,
- 0xfc, 0x3f, 0xe1, 0x24, 0x33, 0x01, 0x8d, 0x21, 0x5c, 0x47, 0x7d, 0x20,
- 0x0a, 0xab, 0x9a, 0xd1, 0xc9, 0xde, 0x18, 0x28, 0x1c, 0x02, 0x01, 0xc2,
- 0x90, 0x6f, 0x50, 0xaa, 0xff, 0xf0, 0x93, 0xc0, 0x01, 0xe1, 0x33, 0x63,
- 0x1c, 0x27, 0x42, 0x1a, 0x8f, 0x23, 0xff, 0xa1, 0xe8, 0xa2, 0x40, 0x03,
- 0x97, 0xb8, 0xc7, 0xdc, 0x8a, 0xef, 0xc0, 0x2b, 0xd1, 0x40, 0x12, 0x07,
- 0x8f, 0x9c, 0x83, 0xc4, 0x7f, 0xfe, 0xf0, 0xe1, 0x55, 0xf0, 0xea, 0xa0,
- 0x90, 0x4e, 0x83, 0x80, 0x03, 0xc3, 0x44, 0x2c, 0x8f, 0x97, 0xa1, 0x94,
- 0x9f, 0xda, 0x00, 0xcb, 0x35, 0x8e, 0x8d, 0xbf, 0x8c, 0xff, 0x80, 0x01,
- 0xcd, 0x9f, 0xa3, 0xb7, 0xea, 0xc9, 0xc8, 0xbf, 0xf7, 0x02, 0x63, 0xe5,
- 0xd3, 0xd4, 0x2a, 0xe2, 0x5f, 0x83, 0xd0, 0x8b, 0x09, 0xd3, 0x9b, 0x8e,
- 0x92, 0xae, 0xbf, 0xe7, 0xff, 0x3f, 0xc1, 0x01, 0xc3, 0x81, 0xaa, 0xd4,
- 0x47, 0xd0, 0x9c, 0x57, 0xe7, 0xde, 0xa5, 0x8e, 0x88, 0x00, 0x40, 0x00,
- 0x11, 0x08, 0x49, 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00,
- 0x0b, 0x80, 0x20, 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36,
- 0xe7, 0xfd, 0x27, 0xff, 0x12, 0x8f, 0x00, 0x03, 0xf8, 0x0e, 0x00, 0x04,
- 0x80, 0x60, 0x43, 0xc9, 0x9c, 0x06, 0xc0, 0x02, 0x9a, 0xad, 0x80, 0x77,
- 0x26, 0x8a, 0xff, 0xf6, 0xb4, 0x34, 0xeb, 0x87, 0xc7, 0x80, 0x01, 0xfc,
- 0x07, 0x00, 0x02, 0x40, 0x30, 0x21, 0xe4, 0xce, 0x8c, 0x24, 0x88, 0x47,
- 0xff, 0x09, 0x2c, 0x38, 0x4b, 0x56, 0xe4, 0x23, 0xba, 0x5b, 0xb6, 0x01,
- 0x4e, 0x96, 0x83, 0xb6, 0x7e, 0xdd, 0xf9, 0xca, 0x00, 0x3b, 0xc2, 0xa8,
- 0x83, 0x6a, 0x6a, 0xc6, 0xaa, 0x84, 0x3e, 0xcd, 0xaa, 0x30, 0x5e, 0xe1,
- 0x54, 0x7b, 0x29, 0x23, 0xe0, 0x4e, 0x97, 0x3b, 0xff, 0x00, 0xe0, 0x57,
- 0x04, 0x4a, 0xa9, 0xce, 0x41, 0x33, 0x7d, 0xeb, 0x33, 0xd0, 0x10, 0x3f,
- 0xe1, 0x2e, 0xa9, 0xb0, 0xe7, 0xbc, 0x33, 0xb1, 0x2f, 0xfe, 0xff, 0xb1,
- 0xe9, 0x84, 0x68, 0xaa, 0x20, 0xa8, 0xf5, 0xd8, 0x46, 0xea, 0xb1, 0x65,
- 0x36, 0x12, 0x0f, 0x7c, 0x00, 0xa4, 0xf6, 0x01, 0x58, 0x9a, 0x23, 0xf7,
- 0xc1, 0xe2, 0x27, 0x2b, 0x18, 0x54, 0x1b, 0x53, 0x0c, 0x43, 0x4e, 0xb3,
- 0xef, 0xb9, 0x40, 0x07, 0x78, 0x55, 0x10, 0x6d, 0x4d, 0x69, 0x70, 0x0f,
- 0xf8, 0x49, 0x76, 0xc0, 0x29, 0x75, 0xa0, 0xad, 0x9f, 0xb7, 0x7e, 0x0e,
- 0x71, 0x95, 0x50, 0x38, 0x14, 0xcd, 0x30, 0x9c, 0xc2, 0xa1, 0xa8, 0x3d,
- 0x5e, 0xd9, 0x0a, 0x32, 0xf2, 0x72, 0x90, 0xbf, 0xfc, 0x24, 0xe0, 0x02,
- 0xef, 0x3c, 0x11, 0x15, 0x57, 0xb1, 0xfb, 0xaf, 0x00, 0x04, 0xea, 0xc7,
- 0x48, 0x84, 0x87, 0x16, 0x17, 0x98, 0x00, 0x02, 0x36, 0xd0, 0x00, 0x49,
- 0x74, 0x9a, 0x03, 0x0e, 0x44, 0x89, 0x03, 0x79, 0x7f, 0x94, 0x65, 0x99,
- 0x85, 0x16, 0x9c, 0x82, 0xa3, 0x81, 0x77, 0x20, 0x0c, 0x53, 0xd2, 0xd3,
- 0x1c, 0x4a, 0xff, 0x7a, 0x13, 0x54, 0x01, 0x2f, 0xf8, 0x4b, 0x9b, 0x54,
- 0x61, 0x7b, 0x05, 0x51, 0xee, 0xa6, 0x83, 0xb0, 0xcc, 0x04, 0x94, 0x2e,
- 0xcf, 0xf8, 0x6b, 0x6c, 0xbd, 0x04, 0x54, 0xb0, 0x24, 0x33, 0xff, 0xed,
- 0xaa, 0x31, 0xda, 0x25, 0xe2, 0xb8, 0xf4, 0xa2, 0xec, 0xef, 0x84, 0x69,
- 0x61, 0x84, 0x3d, 0xdc, 0x83, 0x33, 0xd9, 0xd0, 0x8a, 0x43, 0xe0, 0x75,
- 0x1b, 0xeb, 0xae, 0xba, 0xeb, 0xe5, 0x69, 0x14, 0x89, 0xbf, 0x12, 0x22,
- 0x00, 0x85, 0x2f, 0xf8, 0x0f, 0xfe, 0xd9, 0x81, 0xb1, 0x2a, 0xfa, 0x3c,
- 0xe7, 0xeb, 0xf9, 0xfe, 0xff, 0x81, 0xff, 0xff, 0x70, 0xc3, 0x80, 0x16,
- 0x43, 0xb7, 0x4c, 0x8e, 0xef, 0x55, 0x06, 0x0c, 0xef, 0xbf, 0xff, 0x7e,
- 0xf7, 0xfd, 0x44, 0xd4, 0x44, 0x74, 0xa0, 0x01, 0x11, 0xfa, 0xaf, 0xe9,
- 0xff, 0xff, 0x00, 0x0a, 0xc9, 0x9b, 0x42, 0x6c, 0xa5, 0x56, 0x6f, 0x93,
- 0xb1, 0x11, 0x11, 0x17, 0xb2, 0x70, 0x00, 0x6c, 0x99, 0xb4, 0x44, 0x8c,
- 0x6a, 0x88, 0xa0, 0x01, 0xe9, 0xba, 0xba, 0xf7, 0xbf, 0xff, 0xff, 0xfa,
- 0xaa, 0x22, 0x45, 0x26, 0x0e, 0x9f, 0xf7, 0xad, 0xf0, 0xbf, 0x6d, 0x22,
- 0xa9, 0xfe, 0xee, 0x06, 0x00, 0x32, 0x2f, 0xaa, 0xf9, 0xff, 0xff, 0xf8,
- 0xc1, 0xb7, 0xfd, 0x72, 0x9b, 0xfd, 0xfc, 0xd1, 0xb7, 0xff, 0x5a, 0xaf,
- 0xff, 0x41, 0x83, 0xfc, 0xe9, 0xfe, 0x74, 0xc1, 0x3e, 0x75, 0xee, 0xe1,
- 0xff, 0xff, 0xc2, 0xe9, 0xd5, 0xf8, 0x7f, 0xf8, 0x6c, 0xec, 0x09, 0xc9,
- 0xdd, 0xf1, 0x6f, 0xbb, 0x00, 0x16, 0x42, 0xb7, 0x5e, 0x8c, 0xaf, 0x55,
- 0x78, 0x42, 0x6d, 0x7d, 0xe7, 0xef, 0xfb, 0xfa, 0x89, 0x8e, 0x88, 0x00,
- 0x40, 0x00, 0x11, 0x08, 0x49, 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8,
- 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80,
- 0x20, 0x36, 0xe7, 0x1d, 0x87, 0x80, 0x01, 0x10, 0xa4, 0x92, 0x49, 0x2f,
- 0x2c, 0x0f, 0x37, 0x84, 0x00, 0x01, 0x50, 0x05, 0x07, 0xdc, 0xff, 0x81,
- 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee, 0x7f, 0xdc, 0x4d, 0xf7, 0xdf, 0x7d,
- 0x75, 0xd7, 0x5d, 0x7f, 0xda, 0xdf, 0x09, 0x42, 0x82, 0x20, 0x02, 0x98,
- 0xe5, 0xd5, 0x24, 0x5c, 0x7b, 0xff, 0xf2, 0x1b, 0x86, 0x46, 0x90, 0xa7,
- 0x1c, 0x5d, 0xc4, 0x06, 0xca, 0xf4, 0xe3, 0x4d, 0x2f, 0xfd, 0x0c, 0x91,
- 0x21, 0xbe, 0xa2, 0x3f, 0x22, 0x62, 0x91, 0x7e, 0x09, 0xa0, 0x00, 0x72,
- 0xdf, 0x55, 0xf3, 0xff, 0xff, 0xf1, 0x63, 0x6f, 0xfa, 0xe5, 0x1f, 0xef,
- 0xff, 0xc0, 0x91, 0x68, 0xf6, 0x3d, 0x95, 0x8c, 0xbf, 0xbf, 0xc0, 0xf0,
- 0x02, 0xc0, 0xc8, 0xb6, 0xe9, 0x28, 0xf8, 0x7a, 0x00, 0x2c, 0x0c, 0x8b,
- 0xfe, 0x92, 0x8f, 0x87, 0xa0, 0xc9, 0x12, 0x1f, 0xe9, 0x4f, 0x84, 0x21,
- 0x41, 0x1e, 0x00, 0x07, 0x8a, 0x4d, 0x35, 0x91, 0x33, 0xdf, 0xc8, 0x42,
- 0x01, 0xb6, 0x35, 0xe4, 0x29, 0xff, 0xfb, 0x88, 0x04, 0xea, 0xdb, 0x68,
- 0x93, 0x3a, 0x1a, 0x89, 0xf1, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09,
- 0x20, 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04,
- 0x06, 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xe3, 0xb0,
- 0x04, 0x00, 0x01, 0x10, 0xa4, 0x92, 0x49, 0x24, 0x92, 0x07, 0x9b, 0xc0,
- 0x38, 0x00, 0x15, 0x00, 0x50, 0x7d, 0xcf, 0xf8, 0x1c, 0x00, 0x0a, 0x80,
- 0x28, 0x3e, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
- 0xfc, 0x3f, 0xa5, 0x20, 0x84, 0xd0, 0x00, 0xa4, 0x8a, 0x52, 0x12, 0xae,
- 0xf8, 0x9f, 0xfd, 0xa8, 0x0e, 0x7b, 0x4a, 0xd4, 0xcf, 0xbb, 0xe8, 0xa7,
- 0xae, 0x3e, 0x40, 0x00, 0x8a, 0xdd, 0xdd, 0xd7, 0x7c, 0x00, 0x1e, 0x62,
- 0x22, 0xdd, 0xdd, 0x97, 0xa3, 0x78, 0x7f, 0xe3, 0xe5, 0x3f, 0xb2, 0xc0,
- 0x9a, 0x7a, 0x69, 0xff, 0xeb, 0xff, 0xff, 0xb4, 0x10, 0x9a, 0x00, 0x11,
- 0x45, 0x38, 0xc8, 0x42, 0xed, 0x63, 0x9b, 0x9a, 0x00, 0xcf, 0x0a, 0xb0,
- 0xc3, 0x8e, 0xd8, 0xa7, 0x8e, 0x88, 0x00, 0x40, 0x00, 0x11, 0x08, 0x49,
- 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20,
- 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0x1d, 0x80,
- 0x20, 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x3c, 0xde, 0x01,
- 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee, 0x7f, 0xc0, 0xe0, 0x00, 0x54, 0x01,
- 0x41, 0xf7, 0x3f, 0xea, 0x26, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xaf, 0x00,
- 0x00, 0x01, 0x25, 0x01, 0x2e, 0xe0, 0x80, 0x83, 0xff, 0xff, 0xf0, 0xf4,
- 0x50, 0x00, 0x10, 0x5f, 0xf1, 0xf2, 0x00, 0x02, 0x1b, 0x3b, 0xb3, 0xb3,
- 0xb3, 0xb3, 0xb3, 0x3b, 0x7c, 0x00, 0xb6, 0x05, 0x2b, 0x91, 0x58, 0x05,
- 0x7a, 0xe6, 0xff, 0xff, 0x4f, 0xa4, 0x53, 0xe2, 0xd0, 0x70, 0x00, 0xe4,
- 0xce, 0x9c, 0xbf, 0x25, 0xde, 0xf0, 0x78, 0x87, 0x36, 0xf6, 0x5c, 0xf5,
- 0xf4, 0xff, 0x00, 0x07, 0xda, 0x77, 0xe9, 0x26, 0x5f, 0xfb, 0x07, 0xb9,
- 0xc5, 0x6f, 0xbe, 0xff, 0xf6, 0x2f, 0x62, 0x2c, 0x60, 0x88, 0x01, 0x20,
- 0xed, 0x76, 0xcc, 0x04, 0x0f, 0x7d, 0x73, 0x00, 0x13, 0x5b, 0xd5, 0xf3,
- 0xff, 0xec, 0x8f, 0xfe, 0xe0, 0x01, 0x73, 0x72, 0xa9, 0x83, 0xe6, 0x31,
- 0xff, 0x60, 0x5e, 0x14, 0xd7, 0xdb, 0x24, 0xf5, 0xb0, 0x60, 0xca, 0x48,
- 0x90, 0x18, 0xf8, 0x80, 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49, 0x04,
- 0x90, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f,
- 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0xff, 0xfc, 0x27, 0x14,
- 0x00, 0x04, 0x0c, 0x70, 0x1c, 0x00, 0x0b, 0x00, 0x20, 0x30, 0xa2, 0x66,
- 0x78, 0x00, 0x08, 0x01, 0xdc, 0x07, 0x00, 0x02, 0xc0, 0x08, 0x0c, 0x24,
- 0x99, 0x92, 0x26, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xba, 0xfa, 0x67,
- 0x33, 0xf9, 0xf1, 0x42, 0x38, 0x46, 0xbb, 0xad, 0xca, 0x7e, 0xbf, 0xfe,
- 0x10, 0x7d, 0x77, 0xe7, 0xff, 0xff, 0xef, 0x04, 0x4d, 0x5d, 0xd3, 0xb3,
- 0xff, 0xdd, 0x86, 0x1f, 0x74, 0x1f, 0xff, 0xfb, 0x9e, 0x0b, 0x9a, 0xaf,
- 0xaf, 0x7f, 0xdf, 0xf1, 0xff, 0xfa, 0xe7, 0xae, 0x15, 0x60, 0x4b, 0x65,
- 0xaf, 0x99, 0x5b, 0xbe, 0xef, 0xf0, 0x02, 0xc0, 0xa5, 0xa9, 0xf9, 0x11,
- 0x5e, 0xb9, 0x60, 0x31, 0x3d, 0xad, 0xdd, 0xff, 0x83, 0x53, 0xd7, 0xff,
- 0xf7, 0x22, 0x2c, 0x60, 0x8e, 0x00, 0x11, 0x17, 0xc9, 0x4c, 0xda, 0x4f,
- 0x00, 0x08, 0x8b, 0xe4, 0xa6, 0x6d, 0x27, 0x20, 0x1f, 0x3f, 0xd6, 0xa4,
- 0x79, 0xde, 0x00, 0x2e, 0x6e, 0x56, 0x3a, 0xcc, 0xe7, 0xff, 0x1a, 0x6d,
- 0xff, 0x52, 0xa8, 0x7f, 0xb0, 0x00, 0x00, 0x5e, 0x1d, 0x98, 0x88, 0xb9,
- 0x7f, 0x84, 0xd8, 0x00, 0x44, 0x5f, 0x25, 0x66, 0xd2, 0xf0, 0x66, 0xdf,
- 0x5e, 0x48, 0x9b, 0xf5, 0xfd, 0x83, 0x6f, 0xfa, 0xe5, 0x6f, 0xf7, 0xf0,
- 0x30, 0x7e, 0xa7, 0x8e, 0x88, 0x00, 0x40, 0x00, 0x11, 0x08, 0x49, 0x04,
- 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36,
- 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0x1d, 0x87, 0x80,
- 0x01, 0x10, 0xa4, 0x92, 0x49, 0x24, 0x96, 0x07, 0x9b, 0xc2, 0x00, 0x00,
- 0xb8, 0x02, 0x83, 0x6e, 0x7f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x41, 0xb7,
- 0x3f, 0xea, 0x26, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xfe,
- 0xbf, 0xfc, 0x3e, 0x40, 0xc0, 0x02, 0xf7, 0x41, 0x54, 0x9a, 0x44, 0x9a,
- 0xff, 0x7e, 0xa3, 0x84, 0x03, 0xfe, 0x1e, 0x41, 0x8c, 0x01, 0xa4, 0x96,
- 0x98, 0xae, 0xef, 0x9c, 0x01, 0x32, 0x93, 0x33, 0xd1, 0x23, 0x35, 0xe1,
- 0xf0, 0x07, 0x7f, 0xfe, 0x12, 0x50, 0x00, 0x8c, 0xac, 0x5b, 0xcc, 0xa7,
- 0x12, 0x97, 0x0e, 0xb8, 0x01, 0xb3, 0xa9, 0x73, 0x3a, 0xed, 0xc3, 0x08,
- 0x0d, 0x7b, 0x48, 0x61, 0x1d, 0xf4, 0xbf, 0xee, 0x5f, 0xff, 0xc3, 0xc2,
- 0x66, 0xdf, 0x36, 0x3e, 0xa0, 0xe0, 0xfe, 0xfa, 0xe3, 0xa2, 0x00, 0x10,
- 0x00, 0x04, 0x42, 0x12, 0x41, 0x24, 0x12, 0x40, 0x1e, 0x6f, 0x3e, 0x07,
- 0x00, 0x02, 0xe0, 0x08, 0x0d, 0xb9, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x08,
- 0x0d, 0xb9, 0xf1, 0x0f, 0xff, 0xc2, 0x66, 0x00, 0x14, 0x87, 0x8e, 0x77,
- 0x38, 0xe1, 0x5f, 0xd1, 0xea, 0xf7, 0x41, 0x98, 0x00, 0x10, 0x20, 0xe6,
- 0x13, 0x33, 0xc0, 0x00, 0xce, 0x03, 0x80, 0x04, 0x08, 0x39, 0x84, 0xcd,
- 0xda, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb,
- 0xef, 0xbe, 0x3f, 0x00, 0x04, 0x19, 0x36, 0xe5, 0x36, 0xe5, 0x26, 0xb4,
- 0xa6, 0xf8, 0x00, 0xec, 0x25, 0xc2, 0xfb, 0x1c, 0xb2, 0x7d, 0x5e, 0xff,
- 0xc0, 0xe0, 0x00, 0x44, 0x04, 0x0b, 0xb9, 0xc7, 0x4a, 0x1e, 0x00, 0x04,
- 0x42, 0x92, 0x49, 0x65, 0x96, 0xf0, 0x3c, 0xde, 0x10, 0x00, 0x05, 0x40,
- 0x14, 0x1b, 0x73, 0x9f, 0x81, 0xc0, 0x00, 0xa8, 0x02, 0x83, 0x6e, 0x73,
- 0xf5, 0x13, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
- 0x75, 0xd7, 0x5c, 0x74, 0x40, 0x02, 0x00, 0x00, 0x88, 0x42, 0x48, 0x24,
- 0x82, 0x48, 0x03, 0xcd, 0xe7, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb7,
- 0x3f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb7, 0x3f, 0xf0, 0xff, 0xc4,
- 0x8a, 0x14, 0x00, 0x09, 0xe0, 0x38, 0x04, 0x30, 0x84, 0x93, 0x30, 0x1c,
- 0x00, 0x0c, 0x07, 0x59, 0x49, 0x81, 0xc0, 0x00, 0x40, 0x10, 0xc0, 0x04,
- 0x41, 0xe7, 0x80, 0x01, 0x3c, 0x07, 0x00, 0x86, 0x10, 0x92, 0x67, 0xf8,
- 0xc3, 0xe1, 0x08, 0xa4, 0x1c, 0x00, 0x04, 0x00, 0x8c, 0x01, 0x90, 0x07,
- 0x00, 0x01, 0x00, 0x23, 0x00, 0x22, 0x0f, 0x00, 0xb3, 0x00, 0xc2, 0x10,
- 0x46, 0xe6, 0x06, 0x09, 0xb7, 0x78, 0x59, 0x80, 0x61, 0x33, 0x70, 0x92,
- 0x03, 0x6d, 0x5c, 0x85, 0x98, 0x06, 0x13, 0x37, 0x09, 0x28, 0x36, 0xd5,
- 0xe1, 0x66, 0x01, 0x84, 0xcd, 0xc2, 0x48, 0x0d, 0xb5, 0x73, 0xf8, 0xc3,
- 0xfe, 0x14, 0x80, 0x1e, 0x38, 0x08, 0x7c, 0xcd, 0x24, 0xa0, 0xdb, 0x51,
- 0x60, 0x10, 0x0e, 0xa4, 0x2c, 0x70, 0x10, 0xf9, 0x9a, 0x49, 0x01, 0xb6,
- 0xaf, 0x0b, 0x1c, 0x04, 0x3e, 0x66, 0x92, 0x50, 0x6d, 0xab, 0xc2, 0xc7,
- 0x01, 0x0f, 0x99, 0xa4, 0x90, 0x1b, 0x6a, 0xff, 0xc6, 0x1e, 0x58, 0x45,
- 0x41, 0xc0, 0x20, 0x1d, 0x48, 0x38, 0x04, 0x03, 0xa9, 0xc0, 0x0e, 0x92,
- 0x32, 0x01, 0x84, 0x24, 0xb0, 0xdb, 0x57, 0x87, 0x49, 0x19, 0x00, 0xc2,
- 0x3c, 0xa0, 0xdb, 0x57, 0x87, 0x49, 0x19, 0x00, 0xc2, 0x12, 0x40, 0x6d,
- 0xab, 0xc3, 0xa4, 0x8c, 0x80, 0x61, 0x1e, 0x40, 0x6d, 0xab, 0xfe, 0x31,
- 0xf8, 0xc7, 0x0a, 0x40, 0x14, 0x13, 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37,
- 0x3f, 0x1c, 0x13, 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37, 0x3f, 0x1c, 0x13,
- 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37, 0x3f, 0x1c, 0x13, 0x33, 0x01, 0x04,
- 0x20, 0x0a, 0x37, 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
- 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09, 0x20,
- 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06,
- 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xff, 0x10, 0x0f,
- 0xfc, 0x49, 0x0f, 0x00, 0x03, 0x78, 0x0e, 0x00, 0x04, 0x00, 0x40, 0xa6,
- 0x93, 0x30, 0x38, 0x01, 0x00, 0x38, 0xe4, 0x1f, 0x3c, 0x00, 0x0d, 0xe0,
- 0x38, 0x00, 0x10, 0x01, 0x02, 0x9a, 0x4c, 0xe0, 0x18, 0x7f, 0xf8, 0x2c,
- 0x12, 0xc9, 0x34, 0x17, 0xc4, 0x00, 0x01, 0x01, 0x20, 0x00, 0xf1, 0x01,
- 0x6c, 0x0e, 0x04, 0x21, 0x97, 0x21, 0xc0, 0x84, 0x32, 0xe4, 0x2e, 0xdc,
- 0x93, 0xb7, 0x3f, 0x0f, 0xfe, 0x0b, 0x13, 0x20, 0x4a, 0x83, 0xe1, 0x80,
- 0x01, 0xd0, 0x1e, 0x61, 0x90, 0x00, 0x10, 0x12, 0x00, 0x17, 0x81, 0xc0,
- 0x10, 0xe2, 0x6e, 0x61, 0xc0, 0x10, 0xe2, 0x6e, 0x60, 0x70, 0x21, 0x0c,
- 0xb9, 0x87, 0x02, 0x10, 0xcb, 0x90, 0x0c, 0x3f, 0xfa, 0x05, 0x8d, 0x92,
- 0x68, 0x3e, 0x20, 0x00, 0x08, 0x09, 0x00, 0x02, 0xc4, 0x05, 0x38, 0x1c,
- 0x08, 0x43, 0x2e, 0x61, 0xc0, 0x84, 0x32, 0xe6, 0x17, 0x6e, 0x64, 0xed,
- 0xcf, 0xff, 0xfc, 0x16, 0x26, 0x40, 0x9d, 0x04, 0xd1, 0x43, 0x00, 0x02,
- 0x60, 0x05, 0x22, 0x18, 0x00, 0x19, 0x00, 0x0e, 0x77, 0x03, 0x80, 0x21,
- 0xc4, 0xdc, 0xc3, 0x80, 0x21, 0xc4, 0xdc, 0xc0, 0xe0, 0x00, 0x81, 0x47,
- 0xdc, 0xc3, 0x80, 0x02, 0x05, 0x1f, 0x73, 0xff, 0xfe, 0x81, 0x63, 0x06,
- 0x84, 0xa8, 0x3e, 0x20, 0x00, 0x08, 0x09, 0x00, 0x07, 0x88, 0x09, 0xb8,
- 0x1c, 0x08, 0x43, 0x2e, 0x61, 0xc0, 0x84, 0x32, 0xe6, 0x17, 0x6e, 0x64,
- 0xed, 0xcf, 0xff, 0xfc, 0x16, 0x20, 0x3a, 0x08, 0xe8, 0x3e, 0x18, 0x08,
- 0x00, 0x28, 0x74, 0x30, 0x00, 0x3c, 0x09, 0x9c, 0x0e, 0x00, 0x87, 0x13,
- 0x73, 0x0e, 0x00, 0x87, 0x13, 0x73, 0x03, 0x81, 0x08, 0x65, 0xcc, 0x38,
- 0x10, 0x86, 0x5c, 0xf8, 0xff, 0xf8, 0x2c, 0x83, 0xa1, 0x29, 0xe1, 0x80,
- 0x01, 0xe1, 0x99, 0x0d, 0x6f, 0x81, 0xc0, 0x8c, 0x55, 0xcc, 0x38, 0x11,
- 0x8a, 0xb9, 0x8f, 0xdc, 0xd7, 0xdc, 0x4c, 0xf5, 0xd7, 0x5d, 0x7f, 0xff,
- 0xf3, 0x82, 0x11, 0x10, 0x00, 0xf0, 0x66, 0x00, 0xc3, 0x6d, 0xad, 0x2c,
- 0x4f, 0x8b, 0x6c, 0x30, 0xff, 0x7a, 0x80, 0xa9, 0x84, 0x32, 0x66, 0xa5,
- 0xea, 0x6d, 0x54, 0x57, 0xff, 0xff, 0xea, 0xec, 0x51, 0x2c, 0xac, 0x56,
- 0x00, 0x08, 0x50, 0xa9, 0xc5, 0x42, 0xb2, 0x6e, 0x2d, 0x7a, 0xe5, 0x00,
- 0x00, 0x80, 0x7c, 0xc2, 0x50, 0x6e, 0x05, 0x80, 0x2c, 0xdb, 0xd2, 0x10,
- 0xa9, 0x3c, 0x2c, 0x6f, 0xfc, 0x01, 0x59, 0xc2, 0xd5, 0x21, 0x78, 0xb4,
- 0xd5, 0x2b, 0xf7, 0x03, 0x64, 0x75, 0xa4, 0x13, 0xa1, 0x3d, 0xd5, 0x3f,
- 0xff, 0xf9, 0x06, 0x71, 0xb6, 0xf5, 0x6b, 0xdf, 0xd5, 0x4c, 0xff, 0xff,
- 0xeb, 0xdb, 0x62, 0xef, 0x5e, 0x98, 0x44, 0x7f, 0xfe, 0x0e, 0xc0, 0x8c,
- 0x36, 0xa6, 0x9f, 0xa8, 0x4c, 0xc1, 0xff, 0xef, 0xf4, 0x80, 0x00, 0x32,
- 0x1d, 0x49, 0x90, 0x09, 0x16, 0xb2, 0x39, 0x8b, 0xaa, 0x7e, 0x99, 0x34,
- 0x2c, 0xf1, 0xe1, 0x84, 0x47, 0xff, 0xee, 0x23, 0xac, 0x19, 0x44, 0xc1,
- 0xde, 0xdf, 0xe1, 0x62, 0xa2, 0x8e, 0x86, 0x65, 0xec, 0x5b, 0x75, 0x90,
- 0x13, 0x80, 0x1a, 0x02, 0x69, 0xaa, 0x0e, 0xc7, 0xa5, 0x81, 0x21, 0x61,
- 0xd5, 0x39, 0xf7, 0xf9, 0x93, 0x35, 0xfb, 0xe0, 0x72, 0x34, 0x83, 0x43,
- 0x0a, 0x96, 0x3e, 0xbb, 0xb0, 0x62, 0x00, 0x4d, 0x4e, 0xb4, 0x44, 0xab,
- 0x51, 0x05, 0xea, 0x10, 0xae, 0x52, 0xda, 0x3d, 0x63, 0x66, 0x5d, 0x5a,
- 0x91, 0x8c, 0xb8, 0x54, 0xad, 0x3e, 0x6e, 0xd7, 0x86, 0x3e, 0x2e, 0x57,
- 0xf1, 0xaf, 0x96, 0x4a, 0x54, 0xd0, 0x42, 0xca, 0xda, 0x30, 0x69, 0xf0,
- 0xab, 0x87, 0xff, 0xbc, 0x02, 0x3b, 0xd2, 0x2d, 0xe2, 0x42, 0x22, 0x4a,
- 0x11, 0xae, 0xb8, 0xe8, 0x80, 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49,
- 0x04, 0x90, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e,
- 0x7f, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0x80, 0x7c, 0x3e,
- 0x2e, 0x78, 0x00, 0x08, 0x01, 0xdc, 0x07, 0x00, 0x02, 0xc0, 0x08, 0x0c,
- 0x24, 0x99, 0x9e, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x24, 0x46, 0x22, 0xb0,
- 0x55, 0xa8, 0x81, 0x5c, 0x68, 0x99, 0x20, 0x80, 0x78, 0x0e, 0x00, 0x05,
- 0xc0, 0x10, 0x1a, 0x4a, 0x5b, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09,
- 0x24, 0x82, 0x89, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0,
- 0x10, 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea,
- 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6,
- 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05,
- 0xc0, 0x10, 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24,
- 0x82, 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
- 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea, 0x00,
- 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xff,
- 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05, 0xc0,
- 0x10, 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82,
- 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b,
- 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea, 0x00, 0x80,
- 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xff, 0xc0,
- 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
- 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82, 0x09,
- 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f,
- 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02, 0x00, 0x00,
- 0x88, 0x42, 0x49, 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80,
- 0x01, 0x70, 0x04, 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c,
- 0xbc, 0x76, 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00,
- 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e,
- 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0x1d, 0x80, 0x20, 0x00, 0x08, 0x84,
- 0x24, 0x92, 0x08, 0x24, 0x80, 0x37, 0xad, 0xbf, 0xf0, 0x38, 0x00, 0x17,
- 0x00, 0x40, 0x6c, 0xbf, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xcb, 0xc7,
- 0x60, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82, 0x09, 0x20, 0x0d, 0xeb,
- 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0xc0, 0xe0, 0x00,
- 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02, 0x00, 0x00, 0x88, 0x42, 0x49,
- 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04,
- 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c, 0xbc, 0x7e, 0x00,
- 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xf8,
- 0x7e, 0x07, 0x00, 0x02, 0xe0, 0x08, 0x0d, 0x97, 0xe0, 0x70, 0x00, 0x2e,
- 0x00, 0x80, 0xd9, 0x78, 0xfd, 0xc0, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20,
- 0x92, 0x00, 0xde, 0xb6, 0x0f, 0x86, 0x1f, 0x81, 0xc0, 0x00, 0xb8, 0x02,
- 0x03, 0x65, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0x5e, 0x3f, 0x70,
- 0x00, 0x08, 0x84, 0x24, 0x92, 0x08, 0x24, 0x80, 0x37, 0xad, 0x83, 0xff,
- 0xc3, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c, 0xbf, 0x03, 0x80, 0x01,
- 0x70, 0x04, 0x06, 0xcb, 0xc7, 0x60, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24,
- 0x82, 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
- 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02,
- 0x00, 0x00, 0x88, 0x42, 0x49, 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff,
- 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00,
- 0x40, 0x6c, 0xbc, 0x76, 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20,
- 0x92, 0x00, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2,
- 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0x1d, 0x40, 0x05, 0x80,
- 0x01, 0xf1, 0x9c, 0xf7, 0xb9, 0xcf, 0x78, 0xe1, 0xfc, 0x17, 0xc0, 0xe0,
- 0x00, 0x4c, 0x06, 0x04, 0xdc, 0xf8, 0x1c, 0x00, 0x09, 0x80, 0xc0, 0x99,
- 0x7c, 0x0e, 0x00, 0x04, 0xc0, 0x60, 0x4d, 0xc0, 0x38, 0x00, 0x13, 0x01,
- 0x81, 0x32, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe1, 0x09, 0x02, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0x95, 0x70, 0x81, 0x86, 0xe9, 0x7f, 0xca, 0x2f,
- 0x02, 0x0f, 0x66, 0x7b, 0x9f, 0x0a, 0x73, 0x2c, 0x00, 0x5b, 0x62, 0x53,
- 0x20, 0x9a, 0xdd, 0x24, 0xaf, 0xdf, 0x6b, 0x30, 0xb4, 0x71, 0x05, 0x2e,
- 0x00, 0xfd, 0x44, 0x42, 0x55, 0xb7, 0xc3, 0x7f, 0xbe, 0xf1, 0x3f, 0xff,
- 0xff, 0xff, 0xf2, 0x9b, 0x81, 0x2f, 0xb7, 0xe3, 0xca, 0x6e, 0x03, 0xef,
- 0x96, 0xff, 0x90, 0xbc, 0x38, 0xb6, 0x92, 0x7e, 0x40, 0x86, 0x22, 0x28,
- 0x80, 0xba, 0xcd, 0x80, 0x1b, 0x45, 0x70, 0x0c, 0x65, 0x46, 0x98, 0xf4,
- 0x73, 0x5e, 0xf8, 0x05, 0x71, 0x59, 0xef, 0x11, 0x2b, 0x3c, 0x1f, 0x84,
- 0x5c, 0x51, 0x31, 0x20, 0x86, 0xe5, 0x51, 0x02, 0x48, 0x24, 0x5e, 0x29,
- 0x24, 0x96, 0x00, 0xe8, 0x29, 0xe7, 0xfe, 0x78, 0x75, 0x1a, 0x5c, 0x8b,
- 0x8c, 0xfd, 0xf0, 0xdf, 0xdc, 0xa8, 0x7f, 0xf0, 0xe7, 0xfe, 0x2b, 0xff,
- 0xff, 0x31, 0xa0, 0x39, 0x5b, 0x4c, 0x83, 0x95, 0xb4, 0xc9, 0x3c, 0x4f,
- 0x12, 0x20, 0x44, 0x5b, 0xc0, 0x9b, 0xda, 0x3f, 0xf7, 0xfb, 0x82, 0x82,
- 0x4c, 0x68, 0x00, 0x5f, 0x40, 0x0a, 0x3f, 0x57, 0x05, 0x23, 0x0d, 0xf3,
- 0xf6, 0xf2, 0x51, 0x26, 0x03, 0x20, 0x2e, 0x2b, 0xde, 0x9b, 0xf5, 0xb1,
- 0x05, 0x53, 0xb5, 0xf8, 0x02, 0x26, 0x62, 0x63, 0xab, 0x3f, 0x31, 0xd5,
- 0x32, 0x1e, 0x47, 0xe7, 0x80, 0xe3, 0xa5, 0xba, 0x3d, 0x47, 0x63, 0x5b,
- 0x11, 0x8d, 0xde, 0x9e, 0x31, 0x46, 0x49, 0x86, 0x05, 0xbb, 0xa6, 0x51,
- 0x4a, 0x34, 0x24, 0x72, 0xc7, 0xa7, 0x6f, 0xcc, 0x05, 0x37, 0x4c, 0x07,
- 0x92, 0x93, 0x04, 0x7f, 0xfc, 0x87, 0x82, 0x47, 0x80, 0xd7, 0xd7, 0xfc,
- 0xcb, 0x80, 0x0b, 0xd2, 0x7e, 0x82, 0x85, 0x29, 0x0f, 0xcd, 0x58, 0x64,
- 0x33, 0x5e, 0xbf, 0xc8, 0xa1, 0xd8, 0x6e, 0x5f, 0xc8, 0xa0, 0xe5, 0x6d,
- 0x33, 0xd8, 0x98, 0x88, 0x87, 0x80, 0x01, 0x35, 0x1e, 0x43, 0x2b, 0x43,
- 0x2b, 0x5e, 0x00, 0x1b, 0x8a, 0x44, 0x23, 0x2b, 0xa9, 0x4f, 0x57, 0xad,
- 0xbd, 0x30, 0xb6, 0x44, 0x57, 0x3f, 0xf5, 0xb5, 0xc5, 0x7e, 0x03, 0xe2,
- 0xad, 0x67, 0xea, 0x66, 0x75, 0x40, 0x00, 0x20, 0x07, 0x62, 0x00, 0x11,
- 0xff, 0xfd, 0x83, 0x05, 0xe3, 0xd9, 0x15, 0x56, 0x26, 0x5d, 0xff, 0x63,
- 0x72, 0x08, 0xc0, 0xf6, 0x9a, 0x75, 0x7e, 0x82, 0xb9, 0x4f, 0xdb, 0x11,
- 0xe8, 0x0f, 0xa4, 0x1f, 0x74, 0xda, 0x67, 0xf5, 0x71, 0xce, 0xd4, 0x63,
- 0x8f, 0x04, 0x2e, 0xd9, 0xc3, 0xd0, 0xff, 0xfe, 0x60, 0xcf, 0xed, 0x70,
- 0x73, 0x88, 0x8d, 0xcc, 0x67, 0x4c, 0x3e, 0x74, 0xc1, 0x38, 0xa0, 0x06,
- 0x2b, 0xbb, 0x87, 0xff, 0xff, 0x05, 0xa2, 0x3b, 0xab, 0xdb, 0xff, 0xff,
- 0xef, 0x03, 0x58, 0xbe, 0xb3, 0xc6, 0xeb, 0x63, 0xf5, 0x00, 0x16, 0x13,
- 0x7e, 0x95, 0x58, 0xce, 0xf5, 0x57, 0x81, 0x8e, 0x9a, 0xd7, 0xa7, 0xdf,
- 0xf7, 0xfc, 0x77, 0x90, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x13, 0x68,
- 0xb1, 0xab, 0x23, 0xae, 0xd6, 0x07, 0x5f, 0x93, 0x4d, 0x96, 0x9f, 0xff,
- 0x01, 0x84, 0xa9, 0xcd, 0x5e, 0x7f, 0xd3, 0x7f, 0xdd, 0xee, 0xfc, 0x67,
- 0x80, 0x06, 0x53, 0x92, 0x72, 0x30, 0xc4, 0xa4, 0x80, 0x09, 0xb4, 0x58,
- 0xd5, 0x91, 0xd7, 0x68, 0x0e, 0xbf, 0x26, 0x9b, 0x2d, 0x3f, 0xfe, 0x07,
- 0xe0, 0xc2, 0x54, 0xe6, 0xaf, 0x3f, 0xe0, 0xff, 0x36, 0xee, 0x88, 0x21,
- 0xfc, 0x22, 0xbc, 0xbe, 0x9b, 0x65, 0xb1, 0xf1, 0xe8, 0x0c, 0xd5, 0xa5,
- 0x44, 0xbb, 0x40, 0x35, 0x39, 0x27, 0x4c, 0x31, 0x29, 0x2c, 0x33, 0x14,
- 0xb1, 0xa4, 0x11, 0xd7, 0xef, 0x6f, 0x81, 0xc2, 0x57, 0x25, 0xcd, 0xa7,
- 0xcb, 0xd0, 0x66, 0xdf, 0xab, 0x6b, 0xfc, 0xf8, 0xef, 0x66, 0xff, 0xff,
- 0x87, 0xcb, 0x00, 0x56, 0x8c, 0x80, 0x61, 0x09, 0x02, 0x8d, 0xcf, 0xfc,
- 0x22, 0xe1, 0xe8, 0xd0, 0xe5, 0x21, 0x98, 0xda, 0x98, 0x3f, 0x93, 0xc5,
- 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x84, 0x24, 0x09, 0x0b, 0xff,
- 0xdf, 0xbf, 0x1f, 0xff, 0x2f, 0x8c, 0xf2, 0x7b, 0xf0, 0xa7, 0xff, 0xff,
- 0xff, 0xc2, 0x1f, 0xf1, 0x9c, 0xc2, 0x38, 0x22, 0xd0, 0x1f, 0xc9, 0x78,
- 0xb1, 0x5e, 0x10, 0x3c, 0xed, 0x98, 0x3c, 0xfa, 0x87, 0xf1, 0xdf, 0xff,
- 0x9b, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81, 0x60, 0xdf,
- 0xe5, 0xe1, 0xb4, 0x1e, 0x81, 0xfe, 0x6e, 0x1d, 0x9f, 0xed, 0xa0, 0xff,
- 0xef, 0xfe, 0x14, 0x59, 0x84, 0xe0, 0x03, 0x5e, 0x16, 0xe1, 0x7d, 0xce,
- 0x79, 0xf3, 0x80, 0xf8, 0x6f, 0x9b, 0x94, 0xd0, 0x82, 0xae, 0xa1, 0x98,
- 0x98, 0x9f, 0xff, 0xfd, 0xfb, 0xfe, 0xfc, 0x30, 0x68, 0x16, 0xb0, 0x35,
- 0xc4, 0x46, 0x36, 0x12, 0x00, 0x13, 0xf3, 0xf4, 0x68, 0xc6, 0x57, 0xfd,
- 0x8c, 0xfb, 0xb6, 0x83, 0x99, 0xe9, 0x8d, 0x17, 0x63, 0xb9, 0x78, 0xff,
- 0x53, 0x71, 0x70, 0x24, 0x23, 0x0e, 0x82, 0xec, 0x11, 0x24, 0x66, 0xdc,
- 0x22, 0xc6, 0xef, 0x4d, 0x2c, 0x45, 0x62, 0xe9, 0x77, 0x80, 0x2d, 0x89,
- 0x38, 0x68, 0x06, 0x6f, 0x0e, 0x4c, 0x34, 0xc2, 0xa6, 0x3c, 0x34, 0xa4,
- 0x52, 0x7e, 0x06, 0x60, 0x11, 0x8a, 0x6c, 0xb0, 0x94, 0x0b, 0x0c, 0xde,
- 0x17, 0x2c, 0x1c, 0x08, 0xc5, 0x32, 0x5a, 0x18, 0x0f, 0xfb, 0xfe, 0x13,
- 0x17, 0xf0, 0x53, 0x21, 0xb8, 0x96, 0xf6, 0x12, 0xc6, 0x1b, 0xb5, 0xea,
- 0x02, 0x04, 0xe1, 0x4c, 0xb6, 0x2e, 0x58, 0x37, 0xd2, 0x2c, 0x4c, 0x46,
- 0x63, 0x76, 0xbc, 0x57, 0xfd, 0xfa, 0xf8, 0xb3, 0x00, 0x85, 0xeb, 0x5e,
- 0xff, 0xa1, 0x6b, 0x1f, 0x55, 0x0e, 0x2c, 0x88, 0x6a, 0x8b, 0xce, 0xfb,
- 0x34, 0xb0, 0x03, 0x25, 0x21, 0x03, 0xc4, 0x6f, 0xd2, 0x7c, 0xa6, 0xd2,
- 0x0a, 0xdc, 0x99, 0x9f, 0x2f, 0x00, 0x4c, 0xe4, 0x0f, 0x31, 0xfe, 0x3d,
- 0xa4, 0x15, 0x4c, 0x83, 0xa8, 0x47, 0xef, 0xe6, 0x2f, 0x02, 0x3f, 0x60,
- 0x7b, 0xff, 0x25, 0xef, 0xdf, 0xaf, 0x42, 0x22, 0x23, 0xac, 0x1e, 0xa0,
- 0x02, 0x01, 0x20, 0x45, 0x39, 0xff, 0x88, 0x1e, 0x77, 0xe9, 0x07, 0x0b,
- 0x97, 0x01, 0x31, 0xdb, 0x09, 0xda, 0x5c, 0xbe, 0x7f, 0xf5, 0x1f, 0x01,
- 0xaf, 0x2a, 0x07, 0x0f, 0xd5, 0xd1, 0xa3, 0x14, 0x41, 0x99, 0x75, 0x58,
- 0x75, 0x5f, 0xf7, 0x3d, 0x4f, 0x8a, 0x42, 0x89, 0xa6, 0xd3, 0x6e, 0x0b,
- 0x11, 0xaa, 0x41, 0x65, 0xb7, 0xfe, 0x0c, 0xfb, 0x7e, 0x80, 0xb2, 0x11,
- 0x31, 0x70, 0x00, 0x88, 0xbe, 0x22, 0x99, 0xb2, 0x27, 0xef, 0xa4, 0x3f,
- 0xa5, 0xfb, 0x45, 0xf0, 0xc1, 0x9d, 0x30, 0x93, 0x88, 0xa5, 0x31, 0x64,
- 0x00, 0x28, 0xa9, 0xdd, 0xc3, 0xff, 0xff, 0x81, 0x24, 0x8b, 0x2c, 0x92,
- 0xd9, 0xe5, 0xff, 0xf9, 0xe0, 0x81, 0x93, 0xf8, 0xb1, 0xa6, 0x7e, 0x7f,
- 0xff, 0xdc, 0x00, 0x3f, 0xd2, 0x2d, 0x99, 0x30, 0x24, 0x15, 0xfb, 0xda,
- 0x6d, 0x51, 0x73, 0x62, 0x3b, 0xe9, 0x0d, 0x11, 0xf0, 0xe1, 0xf4, 0xd4,
- 0x4e, 0xfe, 0x9f, 0x19, 0xac, 0xdf, 0xdf, 0xe3, 0xb2, 0x06, 0x3f, 0xfb,
- 0x91, 0x16, 0x31, 0xf0, 0x02, 0x6d, 0x0a, 0x95, 0xc8, 0xce, 0xbb, 0x58,
- 0x01, 0x36, 0x85, 0x4a, 0xe4, 0x67, 0x5d, 0xa0, 0x59, 0xe5, 0xb1, 0x32,
- 0x22, 0x9f, 0x7f, 0xce, 0x00, 0x2c, 0x4a, 0x90, 0x1d, 0x62, 0x05, 0x1c,
- 0x5f, 0xaa, 0x31, 0xaa, 0xc3, 0xff, 0xff, 0x70, 0x1f, 0xe4, 0x07, 0x01,
- 0x98, 0x10, 0x04, 0x40, 0x46, 0x67, 0xa7, 0xe0, 0x20, 0xd7, 0x13, 0x5d,
- 0x05, 0x99, 0x61, 0xfb, 0xf7, 0xa5, 0xcd, 0xb2, 0x40, 0xb3, 0x3b, 0xc0,
- 0xe6, 0x31, 0x15, 0xdb, 0x6d, 0x83, 0xfd, 0x02, 0x00, 0x51, 0x58, 0xcd,
- 0xa8, 0x9d, 0x09, 0xc9, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xa2, 0x05, 0x81, 0x61, 0x7f, 0xbd, 0xe3, 0xfe, 0x5c, 0x27, 0x85, 0x3f,
- 0xff, 0xe1, 0x1d, 0x62, 0x9f, 0xbf, 0xc7, 0x7f, 0x9b, 0xea, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xe2, 0x11, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf1, 0x5e, 0x7f, 0x7f, 0x58, 0x99, 0x45, 0xe1, 0x13, 0x02, 0xa2, 0xc4,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x80, 0x98, 0x14, 0x28, 0x01,
- 0x09, 0xa1, 0xaa, 0x32, 0x1b, 0x53, 0x56, 0x7d, 0xaf, 0xc0, 0x7a, 0x89,
- 0x18, 0x06, 0x11, 0x26, 0x8f, 0x80, 0xce, 0x02, 0x35, 0x90, 0x1c, 0x91,
- 0x10, 0x91, 0x1f, 0x98, 0x40, 0x16, 0x31, 0x22, 0x94, 0x0f, 0x14, 0xa7,
- 0xa6, 0x7c, 0xf7, 0x14, 0x9b, 0x6a, 0x17, 0x89, 0xff, 0xff, 0xff, 0xfc,
- 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb2, 0x70, 0x03, 0x80, 0xf9, 0x8c, 0x3d,
- 0xa8, 0x79, 0xb7, 0x0a, 0x74, 0xfc, 0xf0, 0x01, 0xf3, 0xe2, 0x99, 0x0d,
- 0x59, 0x5f, 0xfa, 0xcb, 0xae, 0x4a, 0x7f, 0xde, 0xbf, 0x81, 0x5b, 0x6f,
- 0xe5, 0x3d, 0xff, 0xfd, 0x6c, 0x2d, 0x72, 0x43, 0x5e, 0xff, 0xf7, 0xc9,
- 0xcf, 0x40, 0x7f, 0xa3, 0x3c, 0x47, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff,
- 0x98, 0xa0, 0x1e, 0x1f, 0xe1, 0x28, 0x04, 0x75, 0x7d, 0xb5, 0x2a, 0x6e,
- 0x36, 0xa4, 0xd5, 0xc1, 0xf4, 0xd0, 0x62, 0xb2, 0xab, 0x76, 0x29, 0xca,
- 0x85, 0xb8, 0x48, 0xeb, 0x95, 0xcf, 0xf9, 0xfc, 0xbe, 0xbc, 0x67, 0x90,
- 0xf1, 0xb9, 0xfc, 0xdf, 0x4a, 0x7c, 0x21, 0x0a, 0x08, 0x80, 0x0b, 0xd8,
- 0x52, 0x68, 0x96, 0x26, 0x3d, 0xff, 0xf9, 0x0d, 0x40, 0x6e, 0x25, 0xe2,
- 0x3c, 0x71, 0x77, 0x10, 0x19, 0x94, 0xb3, 0x3c, 0x59, 0x55, 0x3f, 0xf4,
- 0x31, 0xde, 0xf1, 0x39, 0x84, 0x21, 0xa8, 0x7f, 0xc3, 0xfc, 0x01, 0x46,
- 0x3b, 0x31, 0xd7, 0xd2, 0x2f, 0xd2, 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8,
- 0x1c, 0x40, 0x09, 0x59, 0x00, 0x06, 0x2e, 0xbe, 0xbf, 0xbb, 0x24, 0xcd,
- 0x04, 0x5f, 0x8f, 0xf3, 0xe6, 0xff, 0x00, 0xd5, 0xed, 0x0a, 0xc0, 0x03,
- 0x1f, 0xbb, 0x9d, 0x70, 0x8a, 0x5e, 0x0f, 0x02, 0xe1, 0x9d, 0x1c, 0x0d,
- 0x5d, 0x01, 0x55, 0x91, 0xb3, 0x41, 0xa8, 0x9c, 0x7e, 0xfe, 0xdf, 0x8b,
- 0x39, 0xb4, 0x55, 0xe0, 0xd8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88,
- 0x44, 0x14, 0x57, 0x8d, 0xff, 0xbf, 0x7e, 0x3f, 0xfe, 0x4f, 0xf8, 0xcf,
- 0x27, 0xbf, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff,
- 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8,
- 0xc3, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xec, 0x31, 0xff, 0xa8,
- 0x7c, 0x2a, 0x27, 0x00, 0x2b, 0x4d, 0x3c, 0x71, 0x8f, 0xaf, 0xe0, 0x07,
- 0x82, 0x92, 0xe6, 0x03, 0xf8, 0xa1, 0x6a, 0x13, 0x89, 0xff, 0xff, 0xff,
- 0xfe, 0x28, 0x50, 0x00, 0xc6, 0xa0, 0x51, 0xbf, 0xe5, 0x9c, 0x71, 0x38,
- 0x80, 0x91, 0x13, 0xa0, 0x62, 0x0e, 0x0f, 0xf5, 0x04, 0x8f, 0xe7, 0xec,
- 0x80, 0x9b, 0x1d, 0x80, 0x15, 0x8e, 0x74, 0xec, 0x73, 0x01, 0x3a, 0x45,
- 0x32, 0xc5, 0x5f, 0x16, 0xdf, 0x89, 0xda, 0x73, 0x8a, 0x95, 0x8b, 0x0c,
- 0x63, 0x79, 0xec, 0xd3, 0xbc, 0xfc, 0xba, 0x46, 0x27, 0xff, 0xff, 0x0c,
- 0x7e, 0xb6, 0x18, 0x07, 0xb2, 0x70, 0x05, 0x16, 0x44, 0x3e, 0x8f, 0xcc,
- 0x22, 0xee, 0xbe, 0xbf, 0xbe, 0xf0, 0x03, 0x32, 0x5a, 0x1a, 0x79, 0xab,
- 0xd3, 0xb2, 0xcc, 0x26, 0x71, 0x3f, 0xee, 0x7f, 0x92, 0xc9, 0x9f, 0x88,
- 0xff, 0xef, 0xff, 0xff, 0x0c, 0x70, 0xc1, 0xff, 0xe1, 0x2e, 0x00, 0x3b,
- 0xd9, 0x32, 0x1a, 0x3a, 0x6a, 0xf3, 0xab, 0x2f, 0x00, 0x51, 0x51, 0x19,
- 0xb9, 0xdb, 0x1f, 0x2e, 0xb1, 0x99, 0x03, 0x31, 0xbb, 0xf0, 0xc7, 0xd2,
- 0x9c, 0x61, 0x08, 0xc1, 0x90, 0x02, 0x75, 0x52, 0xe5, 0x3e, 0xef, 0xf2,
- 0x1c, 0x1e, 0x15, 0xa4, 0x28, 0x6d, 0xdc, 0x60, 0x3c, 0x64, 0x79, 0x6e,
- 0x05, 0x63, 0x6d, 0xc4, 0x9b, 0x9f, 0xe0, 0x09, 0x1e, 0xad, 0x3c, 0x88,
- 0x56, 0xc8, 0x76, 0xd7, 0x86, 0x07, 0xb8, 0xff, 0xf0, 0xf9, 0x40, 0x08,
- 0xef, 0x3b, 0x92, 0x3f, 0x7e, 0xf6, 0x0f, 0x7f, 0x5b, 0x28, 0x38, 0x4c,
- 0x32, 0xa5, 0xbf, 0x5d, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xa3, 0x0d, 0x86, 0x2b, 0x1b, 0xf7, 0xbc, 0x7f, 0xc9, 0xf1, 0x99, 0x37,
- 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xf8, 0xbf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xe3, 0x19, 0x02, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xa3, 0xc2, 0x33, 0x09, 0xc0, 0x03, 0xa8, 0x3e, 0x8a,
- 0xac, 0x8b, 0x11, 0x65, 0xff, 0xe6, 0xc7, 0xe8, 0xdf, 0xdc, 0xe3, 0x04,
- 0x94, 0xb9, 0x8f, 0x77, 0x23, 0xfe, 0x4f, 0x13, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x98, 0xd0, 0x2c, 0xe8, 0xac, 0xce, 0x44, 0xe6, 0xf6, 0x38,
- 0x00, 0x67, 0xbf, 0x46, 0x8c, 0x65, 0x7f, 0xd9, 0xbb, 0xdb, 0x8e, 0xca,
- 0x98, 0xe0, 0xde, 0x42, 0x3c, 0xa3, 0x13, 0xb6, 0x8c, 0xe6, 0xd8, 0xd2,
- 0xd8, 0x57, 0xf6, 0xa4, 0x74, 0xd2, 0xd2, 0x2a, 0x79, 0xb5, 0xdb, 0xe0,
- 0x2d, 0x89, 0x38, 0x68, 0x06, 0x6f, 0x58, 0xe0, 0xd0, 0x52, 0x93, 0xf3,
- 0xc2, 0x10, 0x2e, 0xc8, 0x45, 0xe8, 0x3f, 0x45, 0x3a, 0x97, 0xb8, 0xe3,
- 0x83, 0x39, 0x6d, 0x8b, 0x48, 0xbb, 0xa9, 0xe3, 0xc8, 0xa8, 0xba, 0x64,
- 0x20, 0xfb, 0x4b, 0xf0, 0x98, 0xba, 0x4e, 0x16, 0xa2, 0xcc, 0x55, 0xed,
- 0xfd, 0xf4, 0x69, 0x9e, 0x20, 0x9b, 0x02, 0x38, 0xbd, 0xef, 0xa1, 0x5b,
- 0x3b, 0x0a, 0xb7, 0x7d, 0xbb, 0xbc, 0x1e, 0x2b, 0xff, 0xff, 0xfe, 0x6f,
- 0xd7, 0x26, 0x60, 0xf6, 0x4e, 0x00, 0x19, 0x8d, 0xb7, 0xa2, 0x4d, 0xa7,
- 0x55, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5f, 0xa0, 0x72, 0x09, 0x1b, 0x55,
- 0x2b, 0xf5, 0x80, 0x23, 0x91, 0xb4, 0x82, 0x66, 0x16, 0x90, 0xb5, 0x1c,
- 0xea, 0x30, 0x5c, 0x93, 0x3f, 0x88, 0xff, 0xff, 0xcc, 0xf8, 0x4c, 0xc3,
- 0x7f, 0xef, 0xd7, 0xff, 0xff, 0x9a, 0x30, 0xc3, 0xff, 0x09, 0x20, 0xe9,
- 0x23, 0x20, 0x0c, 0x21, 0x30, 0x1b, 0x6a, 0x05, 0xf0, 0x03, 0xa4, 0x8c,
- 0x80, 0x30, 0x84, 0x90, 0x1b, 0x6a, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08,
- 0x49, 0x81, 0xb6, 0xaf, 0x0e, 0x7f, 0x2f, 0x8e, 0xf3, 0x72, 0x16, 0x04,
- 0xfa, 0x80, 0xfe, 0x63, 0xd8, 0x83, 0x26, 0xbc, 0x67, 0xbe, 0x47, 0x00,
- 0x08, 0x65, 0x5b, 0x7a, 0x24, 0xda, 0x87, 0x36, 0x61, 0xf5, 0xce, 0xa7,
- 0x16, 0x83, 0x80, 0x16, 0x1d, 0x6e, 0xbd, 0xb7, 0x7a, 0xe5, 0xfe, 0x00,
- 0x58, 0xb3, 0x4b, 0x65, 0xa6, 0xfb, 0xcf, 0xb4, 0xfb, 0x80, 0xff, 0xff,
- 0xbf, 0xce, 0xf0, 0xff, 0x3c, 0x02, 0x1a, 0x5f, 0xcd, 0x5e, 0xf7, 0x4f,
- 0x13, 0x9b, 0xff, 0xfb, 0x41, 0x08, 0x88, 0x00, 0x36, 0x6c, 0x9a, 0x1b,
- 0x18, 0x2a, 0x73, 0x8e, 0x2f, 0x46, 0x80, 0x51, 0x65, 0x1d, 0x78, 0xe7,
- 0xdd, 0xf4, 0x5e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64,
- 0x09, 0x39, 0xba, 0xe7, 0xf5, 0x38, 0xc5, 0x08, 0x00, 0x40, 0x73, 0x7e,
- 0x09, 0xe2, 0x8f, 0x7e, 0x00, 0x00, 0x04, 0x3e, 0x00, 0x58, 0xb3, 0x4b,
- 0x65, 0x93, 0x7d, 0xe6, 0xd3, 0xee, 0x03, 0xff, 0xfe, 0xff, 0x3b, 0xc3,
- 0xfc, 0xf0, 0x08, 0x69, 0x7f, 0x35, 0x7b, 0xdd, 0xfc, 0xdf, 0xb1, 0x66,
- 0xec, 0x47, 0x8c, 0x50, 0x01, 0xf4, 0x07, 0x69, 0x48, 0x84, 0x00, 0xc0,
- 0x7b, 0xeb, 0x98, 0x00, 0x6d, 0x67, 0xc5, 0x36, 0x8f, 0xff, 0xf9, 0x27,
- 0xdf, 0x6b, 0xf8, 0x01, 0xe1, 0xd7, 0x5e, 0x99, 0x5c, 0x39, 0x02, 0x10,
- 0xd5, 0x23, 0x65, 0x0b, 0xa8, 0x51, 0xfb, 0xae, 0x05, 0xb0, 0x29, 0xba,
- 0xdb, 0x22, 0x7a, 0xd8, 0x33, 0xfb, 0xd8, 0xff, 0xf9, 0x3b, 0x2f, 0x80,
- 0xfe, 0x6e, 0x99, 0xb4, 0x94, 0xbe, 0x86, 0xbc, 0x7f, 0xfc, 0xbe, 0x33,
- 0xc9, 0xef, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xc6, 0x7f, 0xfe,
- 0x3b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05,
- 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xed, 0xe6, 0x13, 0x84, 0x4d,
- 0xe6, 0xec, 0xb2, 0xbc, 0x11, 0x3c, 0xbc, 0x96, 0x27, 0xff, 0xff, 0xff,
- 0xaf, 0x8a, 0x18, 0x03, 0xcb, 0x76, 0xc2, 0xdb, 0x58, 0xb5, 0x05, 0x40,
- 0xde, 0xaa, 0x4d, 0x31, 0x20, 0xb0, 0x00, 0x49, 0x8e, 0xb0, 0x0c, 0x51,
- 0x97, 0x78, 0xe1, 0x96, 0xea, 0xdb, 0x8b, 0x22, 0xc7, 0xae, 0xa0, 0xee,
- 0x55, 0xe9, 0x68, 0x9a, 0x7e, 0x43, 0x00, 0x5f, 0xef, 0xf8, 0x4c, 0x48,
- 0x80, 0xb2, 0x05, 0x87, 0xc6, 0xea, 0xf0, 0x77, 0xa6, 0x0a, 0xa2, 0x2a,
- 0x9f, 0xf5, 0xf5, 0xc8, 0x3a, 0x87, 0xfa, 0xaf, 0x9f, 0x78, 0x71, 0x3f,
- 0xff, 0xfa, 0xc6, 0x78, 0x08, 0x4f, 0x7b, 0xf3, 0xb3, 0xc6, 0xc0, 0x07,
- 0xe8, 0xf2, 0x0e, 0x6a, 0x42, 0xa8, 0x9b, 0x5f, 0x56, 0xc7, 0x79, 0xe0,
- 0x41, 0x63, 0xb0, 0xd2, 0xee, 0xf1, 0x72, 0x43, 0x30, 0x3c, 0x57, 0xd7,
- 0x8e, 0xe1, 0xe2, 0x20, 0x44, 0x67, 0x5b, 0x21, 0x97, 0xdd, 0xdf, 0xd7,
- 0xc4, 0x7f, 0xdf, 0x7f, 0xff, 0xf9, 0x38, 0x38, 0x10, 0x80, 0x4d, 0xbf,
- 0x3f, 0xff, 0xff, 0x91, 0x79, 0x48, 0x27, 0xc5, 0x3c, 0x03, 0x3c, 0xee,
- 0xea, 0xd3, 0x1c, 0xf7, 0x02, 0xa6, 0x7e, 0x5c, 0xb6, 0x9a, 0x73, 0x00,
- 0x61, 0x1e, 0x3d, 0x04, 0xd2, 0x0c, 0xa1, 0xf4, 0x83, 0x3f, 0x48, 0x48,
- 0x80, 0xe0, 0xcf, 0x97, 0x58, 0xcc, 0xcf, 0xac, 0x66, 0xd7, 0x86, 0x02,
- 0xab, 0xaf, 0xc5, 0x78, 0xa2, 0xe1, 0xb9, 0x6d, 0x80, 0x3c, 0xd7, 0xf4,
- 0xdd, 0x6e, 0xe9, 0xf2, 0xf7, 0x1e, 0x01, 0x7a, 0x94, 0x06, 0xa2, 0x2f,
- 0xc3, 0x1f, 0xeb, 0xae, 0xb8, 0x57, 0x01, 0x77, 0xff, 0xd7, 0xf8, 0x02,
- 0xdd, 0xff, 0x9d, 0xed, 0x18, 0xe0, 0xe5, 0x64, 0x60, 0x3f, 0xa5, 0xf0,
- 0xc7, 0xff, 0xf6, 0x82, 0x1c, 0x00, 0x22, 0x8a, 0x71, 0x90, 0x85, 0xda,
- 0xc2, 0x1b, 0x9a, 0x00, 0xcf, 0x0a, 0xf0, 0xc3, 0x8e, 0xd8, 0x36, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x86, 0x76, 0x0a, 0x41, 0xc6,
- 0xb1, 0x02, 0x80, 0x10, 0x62, 0xf0, 0x25, 0x08, 0x7b, 0xf2, 0x38, 0x29,
- 0x93, 0x00, 0x01, 0x00, 0x0a, 0xf3, 0xfc, 0x00, 0x00, 0x10, 0x02, 0x80,
- 0x24, 0x5a, 0x90, 0x11, 0x83, 0xf2, 0x60, 0x05, 0x4a, 0xd0, 0x17, 0x10,
- 0x07, 0x01, 0x8f, 0xf9, 0x17, 0x58, 0xff, 0x93, 0xe3, 0x32, 0x6f, 0x0a,
- 0x7f, 0xff, 0xc7, 0xff, 0xf1, 0x7f, 0xe4, 0xc5, 0x7f, 0x9b, 0xea, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf1, 0x5e, 0x7f, 0x5c, 0xc2, 0x70, 0x00, 0xcd, 0xb6, 0xf9, 0x4d,
- 0xcd, 0xf3, 0x77, 0x1d, 0xab, 0xee, 0xb0, 0x84, 0x44, 0x5f, 0x07, 0x3c,
- 0x93, 0x69, 0x3b, 0x7f, 0xff, 0x3f, 0x80, 0x1b, 0x13, 0x7a, 0x49, 0x88,
- 0x7e, 0x03, 0x18, 0x22, 0x6c, 0xab, 0x53, 0x29, 0xe9, 0xe2, 0x62, 0x7f,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x63, 0x14, 0x3b, 0xb7, 0xe6, 0xb9,
- 0xc9, 0xc9, 0x55, 0x68, 0x42, 0x4a, 0x81, 0xf0, 0x7e, 0x00, 0x19, 0xb6,
- 0xdf, 0x2b, 0xe5, 0xc7, 0x9a, 0xd0, 0x87, 0xd2, 0x3d, 0xdb, 0xb7, 0xe6,
- 0xb9, 0xc9, 0xc3, 0x02, 0x61, 0x95, 0x2d, 0x30, 0x73, 0xe8, 0xa2, 0xed,
- 0x40, 0x8c, 0x21, 0x94, 0x5c, 0xa5, 0xdb, 0xeb, 0x00, 0x00, 0x46, 0x49,
- 0xba, 0xfe, 0x41, 0xb6, 0xf4, 0x28, 0xdf, 0xf7, 0x6b, 0xc9, 0x3b, 0x0d,
- 0x04, 0xbc, 0x00, 0x2a, 0xe9, 0x93, 0xa2, 0xb4, 0x3b, 0xcd, 0x23, 0x46,
- 0xd4, 0xc2, 0xbf, 0xe5, 0x45, 0xff, 0x38, 0x3e, 0x08, 0x25, 0x16, 0x03,
- 0x11, 0x63, 0x4d, 0x3b, 0x98, 0x7c, 0x50, 0x3e, 0xe0, 0xa1, 0x27, 0x9d,
- 0x8c, 0x36, 0x28, 0x18, 0x9f, 0xff, 0xff, 0xff, 0xcd, 0xf8, 0xa9, 0x13,
- 0x13, 0xba, 0xad, 0x9b, 0x84, 0xcf, 0xb5, 0xe0, 0xe2, 0x27, 0x69, 0x62,
- 0x13, 0x43, 0xfc, 0xf8, 0x04, 0x52, 0xbd, 0x81, 0xf2, 0x11, 0xbf, 0xaf,
- 0x80, 0x62, 0x61, 0x65, 0x4f, 0xd4, 0xb3, 0x74, 0x1a, 0x90, 0x8b, 0xf9,
- 0xf7, 0x7d, 0x91, 0x73, 0xf3, 0x00, 0x9c, 0x76, 0x59, 0x41, 0x76, 0x0e,
- 0x5a, 0xac, 0x11, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xe6, 0x0a, 0xae,
- 0x05, 0xff, 0x09, 0x30, 0x1d, 0xdb, 0x53, 0x8f, 0x41, 0xf2, 0x48, 0x76,
- 0x5d, 0x4f, 0x1b, 0x96, 0xb1, 0x32, 0xc7, 0xb5, 0x02, 0xc5, 0x64, 0xcf,
- 0x2c, 0xfd, 0x2b, 0x4a, 0x7d, 0x52, 0x64, 0xfd, 0x26, 0x5c, 0xf0, 0x67,
- 0xf2, 0xfa, 0xf1, 0x9e, 0x6f, 0x5e, 0x33, 0xde, 0x19, 0x21, 0x78, 0x00,
- 0xbb, 0xbf, 0xba, 0xf3, 0xff, 0xed, 0xa6, 0xc3, 0xe9, 0x4f, 0xc1, 0x03,
- 0x00, 0x59, 0x55, 0x50, 0xef, 0x0c, 0xf0, 0xfc, 0xfa, 0xb5, 0xff, 0xdf,
- 0x93, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x90, 0x84, 0x33,
- 0x3c, 0x14, 0x01, 0xc4, 0x26, 0x22, 0x00, 0x65, 0x56, 0xc9, 0x18, 0x00,
- 0x08, 0x02, 0x6a, 0xf4, 0x36, 0x3b, 0x5a, 0x01, 0x8c, 0x38, 0x73, 0x00,
- 0x25, 0xec, 0x91, 0xba, 0x7b, 0xc1, 0x2d, 0x31, 0xd9, 0x69, 0x5e, 0xbd,
- 0x77, 0xc4, 0xc4, 0xe4, 0xff, 0x08, 0x06, 0x7a, 0xf1, 0xbf, 0xf4, 0x6f,
- 0x44, 0xa7, 0xd3, 0x85, 0x0d, 0x07, 0xd1, 0xbf, 0xee, 0xab, 0x3f, 0x91,
- 0xe0, 0xd1, 0xaf, 0x3e, 0x7d, 0x84, 0x3e, 0xe3, 0x7f, 0xdf, 0xf9, 0xbf,
- 0xd2, 0x8e, 0x44, 0x58, 0xc2, 0x70, 0x00, 0xc2, 0x3c, 0x94, 0xcd, 0xa4,
- 0xdd, 0x0a, 0x00, 0x2f, 0x37, 0xc4, 0x88, 0xfe, 0x2f, 0xfe, 0x0f, 0x03,
- 0xe7, 0xba, 0xe9, 0x5e, 0x74, 0x00, 0x5d, 0xb9, 0x43, 0x66, 0x51, 0xff,
- 0xea, 0x05, 0xba, 0x54, 0x30, 0xfe, 0xf4, 0x00, 0x00, 0x19, 0xfe, 0x20,
- 0x4b, 0x60, 0x0a, 0x25, 0x36, 0x40, 0x00, 0x20, 0x08, 0x83, 0xa8, 0x05,
- 0xf6, 0x6e, 0x9b, 0x69, 0x12, 0x5f, 0x57, 0xda, 0x14, 0x66, 0x67, 0xf1,
- 0x06, 0xbc, 0x29, 0xff, 0x19, 0xe4, 0xf7, 0xe1, 0x4f, 0xff, 0xff, 0xff,
- 0x8f, 0xff, 0xff, 0xe2, 0xff, 0xff, 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47, 0x60, 0x77, 0xff, 0xff, 0xff,
- 0xe2, 0xb3, 0xe9, 0xf9, 0x32, 0xc5, 0x9f, 0x00, 0x51, 0x34, 0x58, 0x9c,
- 0x0a, 0xb6, 0xfc, 0x01, 0x98, 0xf7, 0x5b, 0xfa, 0x6f, 0xae, 0x27, 0xff,
- 0xff, 0xff, 0x86, 0x3d, 0x16, 0x0b, 0x29, 0x3a, 0x0c, 0x61, 0x80, 0x8f,
- 0xd7, 0xdb, 0x85, 0x74, 0xc2, 0xc9, 0xf9, 0xef, 0xff, 0x65, 0xc0, 0x09,
- 0xbf, 0x51, 0x86, 0x84, 0x3f, 0xd7, 0x8d, 0x3e, 0x9b, 0x7f, 0xcb, 0xd0,
- 0x18, 0x06, 0x11, 0xdc, 0xc5, 0x48, 0xbf, 0xfe, 0xf4, 0x37, 0x7f, 0x33,
- 0x31, 0x52, 0xd0, 0xc0, 0x76, 0x7d, 0x16, 0xe8, 0x28, 0x36, 0x81, 0xfc,
- 0x4e, 0x3d, 0x1f, 0xe8, 0x08, 0x0d, 0xd8, 0x0d, 0x34, 0xe0, 0xea, 0xe9,
- 0xc1, 0x83, 0x6d, 0xe8, 0x51, 0xbf, 0xee, 0xd9, 0x84, 0xc0, 0x68, 0x25,
- 0xe0, 0x35, 0xc1, 0xcb, 0x00, 0x7f, 0xe2, 0x03, 0xa6, 0xb9, 0xbb, 0x1f,
- 0x22, 0x52, 0xd5, 0x12, 0x24, 0x48, 0x75, 0x72, 0xce, 0x83, 0xb1, 0x72,
- 0xf0, 0x80, 0x53, 0x1a, 0x4c, 0x55, 0x73, 0xc6, 0xb3, 0xc4, 0xff, 0xff,
- 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48, 0xb3, 0x60, 0x01, 0x9b, 0x7f,
- 0xca, 0xf8, 0x49, 0xbc, 0x49, 0xa8, 0x01, 0x39, 0xdc, 0x90, 0x48, 0xc5,
- 0xa8, 0x01, 0x19, 0xb9, 0xcd, 0x6a, 0xf2, 0x8b, 0xe1, 0x24, 0x8e, 0x1b,
- 0x5b, 0x24, 0x6f, 0xcf, 0x38, 0x93, 0x70, 0x02, 0x93, 0x49, 0xf8, 0x8f,
- 0xfe, 0xff, 0xff, 0xf0, 0xc5, 0x50, 0x58, 0x1c, 0x5f, 0xfc, 0x24, 0xc2,
- 0x59, 0x9c, 0x44, 0x66, 0x97, 0x68, 0x1a, 0x18, 0x9b, 0xd5, 0x0f, 0xa7,
- 0xe3, 0xc5, 0x95, 0x2c, 0x67, 0x10, 0x93, 0x2a, 0xdc, 0xfc, 0x31, 0x9f,
- 0x5a, 0x66, 0x61, 0x9d, 0xf2, 0x8b, 0xff, 0x80, 0x73, 0xe5, 0xd6, 0x33,
- 0x36, 0xb1, 0x9b, 0x51, 0x38, 0x63, 0x3f, 0xa1, 0xcf, 0x0c, 0x26, 0x5c,
- 0x3d, 0x07, 0xe1, 0xc4, 0x4f, 0x40, 0x7f, 0x8f, 0x98, 0x77, 0xf8, 0x09,
- 0xb5, 0xb7, 0x07, 0xe7, 0x31, 0x31, 0x70, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xa5, 0x1d, 0x89, 0x83, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02,
- 0xa3, 0x46, 0x40, 0x61, 0x0f, 0x9e, 0x03, 0xf0, 0x7c, 0x04, 0x84, 0x6c,
- 0xfe, 0x7f, 0x86, 0x3f, 0xce, 0x87, 0xf0, 0x9b, 0xd6, 0x26, 0x6a, 0x03,
- 0xf7, 0xb3, 0xc3, 0xad, 0xaf, 0x9a, 0x2e, 0xe3, 0x18, 0x7e, 0xbe, 0x3f,
- 0xe9, 0x78, 0x62, 0x78, 0x4c, 0x3b, 0x89, 0x08, 0xda, 0xf0, 0x1f, 0xbe,
- 0xb1, 0xff, 0xf8, 0x7f, 0xf0, 0x03, 0x77, 0xab, 0x70, 0x80, 0x05, 0x11,
- 0xd2, 0x99, 0xf2, 0x6f, 0xb0, 0x09, 0x1f, 0xaf, 0x61, 0x3f, 0xac, 0xf7,
- 0x10, 0xc7, 0xcf, 0x49, 0x8f, 0x81, 0x3f, 0xcb, 0x90, 0x31, 0x1d, 0xf5,
- 0x00, 0x00, 0x7f, 0xc2, 0x39, 0x7e, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xfe,
- 0x14, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x57, 0xf9, 0x31, 0x5f, 0xe6, 0xfa,
- 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x03, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0x5f, 0x78, 0x99, 0x8f, 0x82, 0x2f,
- 0x99, 0xf6, 0x03, 0xca, 0x7e, 0xa7, 0xe6, 0xc2, 0x25, 0x29, 0x76, 0xd7,
- 0xbd, 0x7f, 0x8f, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xca,
- 0x40, 0x88, 0xc0, 0x05, 0x2e, 0x7d, 0xb4, 0xb4, 0x68, 0x39, 0xd6, 0x3b,
- 0xfb, 0xaf, 0x18, 0xc6, 0x0d, 0x44, 0x95, 0x32, 0xf2, 0x01, 0x20, 0x30,
- 0x3e, 0xda, 0x30, 0x05, 0x64, 0x68, 0x1f, 0x31, 0x73, 0x2b, 0xf3, 0x5f,
- 0xbb, 0x9f, 0xbe, 0x6d, 0x3e, 0x17, 0xfc, 0x26, 0x26, 0x74, 0x8e, 0x58,
- 0x01, 0x2a, 0xf3, 0xbe, 0x8a, 0x63, 0x12, 0x36, 0xee, 0x09, 0x5e, 0xdf,
- 0x3c, 0x80, 0xe9, 0x0f, 0xc9, 0x7d, 0x7b, 0xef, 0x21, 0x80, 0xc4, 0xff,
- 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x19, 0x50, 0x95, 0x25, 0x66, 0xe0, 0x07,
- 0x17, 0x21, 0x17, 0xb0, 0xf3, 0x2b, 0x6e, 0x4d, 0xc7, 0x80, 0x84, 0x4b,
- 0x35, 0x2e, 0xa6, 0x46, 0xb8, 0x00, 0x44, 0xca, 0x05, 0x4f, 0x57, 0x99,
- 0xbe, 0xa0, 0x01, 0xbd, 0xd0, 0x1b, 0x55, 0x0a, 0xf5, 0x0a, 0xba, 0xdf,
- 0xce, 0xd5, 0xda, 0xf5, 0x00, 0x06, 0x77, 0x51, 0xb5, 0x44, 0x9a, 0xa1,
- 0xc6, 0xe4, 0x98, 0x62, 0x4f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xe2,
- 0x1b, 0x5e, 0xdc, 0x3e, 0xcc, 0x0e, 0x0f, 0x98, 0x50, 0xd2, 0xac, 0xc5,
- 0xda, 0xdc, 0x37, 0xf3, 0xf9, 0x7d, 0x78, 0xcf, 0x37, 0xaf, 0x19, 0xee,
- 0x20, 0x0d, 0x24, 0x2c, 0x00, 0x30, 0x9f, 0xa0, 0x9a, 0xcb, 0xdf, 0xe8,
- 0x73, 0xc4, 0x86, 0xbd, 0x78, 0xb8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0x94, 0xa4, 0x32, 0x9b, 0xfb, 0x7c, 0x38, 0x7c, 0xd0, 0x1c, 0x41, 0x8a,
- 0x10, 0x99, 0x01, 0x8b, 0xfb, 0xdb, 0x5d, 0xde, 0x07, 0xcd, 0x7a, 0xf1,
- 0xbe, 0x8d, 0xff, 0xed, 0x00, 0x82, 0x18, 0x00, 0xda, 0xa6, 0xd7, 0x47,
- 0xf9, 0xef, 0xfc, 0xf3, 0xec, 0x30, 0x11, 0xc5, 0x88, 0xc0, 0x02, 0x4d,
- 0xf1, 0x12, 0x66, 0xc8, 0x98, 0x33, 0xb8, 0x27, 0xc5, 0xfb, 0xbf, 0xd7,
- 0x8f, 0x32, 0x88, 0xf0, 0x0f, 0xf8, 0x7a, 0x03, 0xa9, 0x33, 0xd4, 0x23,
- 0x6b, 0xef, 0xb7, 0xf9, 0x3f, 0xfc, 0x44, 0x50, 0x00, 0x10, 0x08, 0x80,
- 0x0c, 0xa1, 0x4e, 0x98, 0xc9, 0x00, 0x30, 0xf8, 0x6c, 0x4f, 0x66, 0x02,
- 0x40, 0x30, 0x87, 0x20, 0xd0, 0x5f, 0x10, 0x0b, 0x0c, 0x21, 0xcb, 0xfc,
- 0x9f, 0xf1, 0x9e, 0x7f, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff,
- 0x17, 0xff, 0xf9, 0x3c, 0x57, 0xff, 0xe6, 0xff, 0xa8, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xa9, 0x89, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa,
- 0xef, 0x30, 0x9c, 0x02, 0x6f, 0x3c, 0xbe, 0xb7, 0x4a, 0xe5, 0x89, 0xff,
- 0xff, 0xff, 0xfc, 0x30, 0x1c, 0xc6, 0x48, 0xa2, 0xe5, 0x1c, 0x60, 0xa2,
- 0x82, 0x72, 0x91, 0x2d, 0x19, 0xdf, 0x36, 0xf2, 0xa4, 0x9b, 0x62, 0x00,
- 0xe8, 0x00, 0xca, 0xa2, 0x89, 0xfa, 0xf8, 0xff, 0x41, 0x82, 0x17, 0x4f,
- 0xfa, 0x16, 0xc2, 0x79, 0x4e, 0x1f, 0x21, 0x34, 0xb7, 0x0e, 0x18, 0x1b,
- 0x7d, 0x65, 0xf8, 0x4c, 0x59, 0x20, 0xd8, 0x00, 0x44, 0x1c, 0xab, 0xdb,
- 0xb5, 0xe0, 0x7c, 0xd7, 0x82, 0xb4, 0xb9, 0xe3, 0x2b, 0x10, 0xaf, 0xef,
- 0x08, 0xd5, 0xfc, 0x94, 0xdf, 0xf7, 0x89, 0xff, 0xff, 0xc3, 0x1c, 0x7a,
- 0x83, 0x8c, 0xc1, 0x8a, 0xcd, 0x80, 0x47, 0xaf, 0xb6, 0x1e, 0x28, 0xe9,
- 0x6f, 0x0e, 0xcb, 0xc0, 0x4d, 0xcd, 0x68, 0x3e, 0x41, 0x1d, 0xee, 0xd2,
- 0x8f, 0xdf, 0xbd, 0xfe, 0x0d, 0x79, 0x52, 0x0a, 0xf7, 0x7e, 0xc8, 0xba,
- 0x44, 0xee, 0x61, 0xc6, 0x8f, 0x88, 0xff, 0xef, 0xff, 0xff, 0x0c, 0x5a,
- 0x9b, 0x7f, 0xe1, 0x23, 0xc0, 0x28, 0xea, 0xc7, 0xbf, 0xc8, 0x4d, 0x35,
- 0x8e, 0xb2, 0xb3, 0x74, 0x16, 0xb4, 0x13, 0x13, 0x8c, 0x39, 0xf2, 0xeb,
- 0x19, 0x9b, 0x58, 0xcd, 0x86, 0x3e, 0x1f, 0xc6, 0x90, 0x43, 0x81, 0xd1,
- 0x15, 0x33, 0xa1, 0x43, 0x31, 0x32, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xa6, 0x25, 0x84, 0x55, 0xe8, 0x14, 0x02, 0x11, 0x22, 0x00,
- 0x14, 0xed, 0x26, 0xe3, 0xc1, 0x85, 0x1b, 0xcf, 0x83, 0x7b, 0xce, 0xf0,
- 0xee, 0x2b, 0xf6, 0x1a, 0x7b, 0xda, 0xeb, 0x74, 0x7b, 0xd6, 0xb1, 0xbf,
- 0xaf, 0x0c, 0x21, 0x43, 0xf8, 0xfc, 0x27, 0xc4, 0x3a, 0x3e, 0x01, 0x33,
- 0x77, 0xed, 0x1e, 0xef, 0x4c, 0x87, 0x80, 0xf2, 0x0b, 0xfd, 0x63, 0xd7,
- 0x86, 0x28, 0x37, 0x7f, 0xfe, 0x12, 0xc0, 0x22, 0xf5, 0x76, 0xcb, 0x57,
- 0xbd, 0xf1, 0x50, 0x6d, 0x57, 0x44, 0x0e, 0x34, 0xe1, 0x84, 0x06, 0xad,
- 0xac, 0x41, 0x1d, 0xf4, 0xbf, 0xc9, 0xf7, 0xff, 0xff, 0xff, 0xf2, 0xff,
- 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0x15, 0xfe, 0x4c, 0x57, 0xf9, 0xbe,
- 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31, 0x01, 0x4f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xf9, 0x8f, 0x80, 0x0e, 0xcc,
- 0xa2, 0xcd, 0x8c, 0x9a, 0xfb, 0x74, 0xf1, 0x32, 0xbc, 0x04, 0xd5, 0xf0,
- 0x1e, 0xf9, 0x5f, 0x13, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xf8,
- 0xcc, 0x44, 0x83, 0x09, 0x40, 0x65, 0xa2, 0x24, 0xcd, 0x3d, 0xab, 0xaa,
- 0x8a, 0xa4, 0xba, 0x98, 0x60, 0x52, 0x84, 0x04, 0x04, 0x91, 0x8b, 0x8c,
- 0x61, 0xb9, 0x4b, 0x7e, 0xaf, 0x3a, 0xd5, 0xb3, 0xdf, 0x89, 0xff, 0xff,
- 0xff, 0x9b, 0xf8, 0x5a, 0xc1, 0xe3, 0x16, 0x00, 0x4d, 0xf6, 0x88, 0x75,
- 0x07, 0xdf, 0x1d, 0x37, 0x40, 0x7d, 0x18, 0xe3, 0x55, 0xd8, 0x15, 0xde,
- 0xd0, 0xa5, 0x91, 0x1c, 0xf2, 0x62, 0x74, 0xe6, 0xfd, 0x6c, 0x5a, 0xa7,
- 0x64, 0xe0, 0x23, 0x29, 0xe9, 0xf9, 0xc5, 0xf5, 0x33, 0xc3, 0x8e, 0xb6,
- 0x7e, 0x40, 0x1c, 0xe9, 0x69, 0x8c, 0x5a, 0x61, 0xa4, 0xdb, 0x80, 0x33,
- 0xdf, 0xae, 0x45, 0xc4, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0xd1, 0xb7, 0xe2,
- 0xff, 0xf0, 0x93, 0x90, 0x20, 0x13, 0x32, 0x01, 0x16, 0x6f, 0x9d, 0xb7,
- 0x84, 0xe8, 0x99, 0x9a, 0xb5, 0x37, 0xa2, 0x66, 0x6a, 0xd4, 0x40, 0x80,
- 0x44, 0x64, 0x4e, 0xf3, 0x48, 0x6e, 0xb6, 0x5c, 0x82, 0x32, 0x7d, 0xda,
- 0xda, 0x20, 0xaf, 0xcd, 0x78, 0x4e, 0xea, 0x3a, 0x49, 0xd3, 0xfd, 0xf9,
- 0xfc, 0xbe, 0xbc, 0x67, 0x9b, 0xd7, 0x8c, 0xf6, 0x6f, 0x81, 0x0f, 0xb7,
- 0x8c, 0x2c, 0x24, 0x70, 0xf7, 0xa0, 0x48, 0xf8, 0x1f, 0xbe, 0x1e, 0x07,
- 0xc0, 0x16, 0xd5, 0x86, 0x44, 0x98, 0xc5, 0xc3, 0xb0, 0xfc, 0xdf, 0xaf,
- 0x17, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x18, 0x86, 0xff,
- 0xfe, 0xd0, 0x42, 0x68, 0x03, 0x23, 0x14, 0x66, 0x87, 0xc0, 0xd1, 0x70,
- 0xef, 0xc6, 0x80, 0xa1, 0x07, 0x80, 0xf5, 0xc0, 0x18, 0xee, 0xb2, 0x64,
- 0x6f, 0xbf, 0xdb, 0xe1, 0x6a, 0xad, 0xfa, 0x0d, 0x9e, 0x83, 0x88, 0x9e,
- 0xbd, 0x78, 0xe3, 0x7b, 0x11, 0x55, 0x84, 0xf5, 0xd8, 0xae, 0x13, 0x3e,
- 0xd6, 0x1d, 0x93, 0x1c, 0xfe, 0x9a, 0x0c, 0xa4, 0x03, 0xcc, 0xbe, 0x28,
- 0x9d, 0x6b, 0xd3, 0xe5, 0xee, 0x37, 0xff, 0x5e, 0x3b, 0x90, 0xb8, 0x02,
- 0xeb, 0x81, 0x52, 0x38, 0xfc, 0xca, 0x38, 0x40, 0x3f, 0xe1, 0xe4, 0x50,
- 0x72, 0x84, 0xa0, 0x3f, 0x88, 0x23, 0x6f, 0xe5, 0xdf, 0xfb, 0xcf, 0xff,
- 0x93, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xfc, 0x29,
- 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xef, 0xcf, 0xff, 0xf9, 0x3c,
- 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xa9, 0xcb, 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xeb,
- 0x31, 0xf0, 0x0b, 0x0b, 0x22, 0x6e, 0x06, 0x55, 0x35, 0x36, 0xd7, 0x34,
- 0x33, 0x13, 0x13, 0xff, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x10, 0xc5,
- 0xc8, 0x78, 0xc0, 0x96, 0x20, 0x71, 0x17, 0x92, 0x33, 0xd8, 0x42, 0xf3,
- 0x8f, 0x9e, 0x63, 0x32, 0xe7, 0x43, 0x80, 0x26, 0x0a, 0xff, 0x9b, 0x1c,
- 0xcf, 0xe3, 0xe4, 0x2f, 0x2c, 0x74, 0xc4, 0x70, 0xb9, 0x60, 0xf2, 0x12,
- 0xcb, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0xf8, 0x65, 0x56, 0x64, 0x68,
- 0x97, 0x6b, 0xd5, 0x81, 0x84, 0x52, 0x8b, 0x96, 0x64, 0xa9, 0x55, 0x79,
- 0xe2, 0x7f, 0xfd, 0x7a, 0xf8, 0xb3, 0x48, 0xd0, 0x51, 0xae, 0xe0, 0x28,
- 0x0e, 0xd9, 0xd0, 0xb7, 0x9f, 0x92, 0x86, 0x5c, 0xff, 0x6e, 0xbb, 0x56,
- 0x08, 0xff, 0xef, 0xff, 0xd7, 0xaf, 0x62, 0x22, 0x0a, 0x0b, 0x38, 0x08,
- 0x74, 0xe0, 0x39, 0x3f, 0x34, 0x08, 0x52, 0xbd, 0xc0, 0x62, 0x6b, 0xb8,
- 0x77, 0xcc, 0xa3, 0xfd, 0x4f, 0x2c, 0xfe, 0x28, 0x95, 0x53, 0x5e, 0x6c,
- 0x6a, 0x0f, 0x16, 0xc8, 0x5e, 0x7c, 0xba, 0xc6, 0x66, 0xd6, 0x33, 0x61,
- 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x12, 0x3e, 0x3d, 0xfb, 0xa1, 0x82,
- 0x3d, 0xa7, 0xe7, 0x21, 0xe0, 0xd1, 0x06, 0xf5, 0x8b, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x83, 0x11, 0x7a, 0x06, 0x01, 0x91,
- 0xc2, 0x20, 0x62, 0x4d, 0x32, 0x11, 0x36, 0xb8, 0xf0, 0xc2, 0xbe, 0xcd,
- 0x90, 0x30, 0xff, 0x80, 0x80, 0x17, 0xc9, 0x6b, 0x1e, 0xb1, 0xbd, 0x7a,
- 0x0c, 0x03, 0x01, 0x30, 0x09, 0x86, 0xb2, 0x60, 0x87, 0xf0, 0x05, 0xe7,
- 0xfc, 0x97, 0x5e, 0x4e, 0xf8, 0x44, 0xba, 0xf5, 0xf5, 0x8e, 0x91, 0xc0,
- 0x1b, 0xf5, 0xfc, 0xbd, 0xfe, 0x18, 0x51, 0x18, 0x08, 0x7f, 0xe1, 0xe4,
- 0xc9, 0xc5, 0x09, 0x40, 0x7f, 0x10, 0x33, 0x6f, 0xe5, 0xf7, 0xdf, 0x7f,
- 0xf2, 0x7d, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xfc, 0x29, 0xff, 0xff, 0x1f,
- 0xff, 0xfb, 0xcf, 0xfe, 0x4c, 0x4f, 0xff, 0xff, 0xff, 0xfa, 0x80, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xff, 0x13, 0x89, 0xff, 0xff, 0xff, 0xf3,
- 0x2c, 0x65, 0xa3, 0xff, 0xff, 0xfb, 0xc2, 0xa0, 0xa0, 0x53, 0x00, 0x55,
- 0x8d, 0xa2, 0x46, 0xd4, 0xda, 0xd5, 0x62, 0xdc, 0x80, 0x04, 0x76, 0x52,
- 0xc5, 0x85, 0xd2, 0xf6, 0x3e, 0x0d, 0xc1, 0x1a, 0xc8, 0x0d, 0x24, 0x44,
- 0x89, 0xf9, 0x84, 0x01, 0x63, 0x38, 0x03, 0x70, 0x18, 0xaa, 0xf7, 0x7c,
- 0xf6, 0xe1, 0xfe, 0xff, 0xe2, 0x7f, 0xff, 0xff, 0x98, 0xd0, 0xca, 0x99,
- 0x42, 0xa6, 0x7e, 0x6f, 0xd6, 0xcf, 0x34, 0x06, 0xdb, 0xe0, 0x0a, 0x3a,
- 0x11, 0x6b, 0x3f, 0x38, 0xbe, 0xa6, 0x78, 0x01, 0xc5, 0x69, 0xb5, 0x99,
- 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc, 0xcf, 0xba,
- 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcc, 0x47, 0xff, 0xff, 0x7f, 0xff,
- 0xff, 0xc9, 0xa1, 0x53, 0x3f, 0x88, 0xf1, 0x93, 0x86, 0x65, 0x0b, 0xcc,
- 0x50, 0x0f, 0x1f, 0xf0, 0x94, 0x13, 0x3d, 0xb5, 0x38, 0x77, 0xd2, 0x17,
- 0xd0, 0x21, 0xb0, 0xc9, 0xab, 0x76, 0x36, 0x41, 0x88, 0xe9, 0x36, 0x8d,
- 0xc7, 0xfc, 0xfe, 0x5f, 0x5e, 0x33, 0xcd, 0xeb, 0xc6, 0x7a, 0x37, 0xff,
- 0xe4, 0xf0, 0x42, 0x78, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0x00, 0x17, 0x7f,
- 0xe2, 0x94, 0xbc, 0x43, 0xdf, 0xfa, 0x3f, 0xa5, 0xe0, 0x9b, 0xe0, 0xe2,
- 0xf2, 0xfc, 0x4a, 0xe0, 0x07, 0xe7, 0xa4, 0x3e, 0xc8, 0xca, 0x00, 0x9f,
- 0xb4, 0xd2, 0x1d, 0x48, 0x78, 0x0f, 0xc2, 0x02, 0x95, 0xd6, 0xc8, 0x07,
- 0x4c, 0x00, 0x1f, 0xdf, 0xaf, 0x17, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0x9c, 0xe4, 0x26, 0x6d, 0x3d, 0xd0, 0x85, 0x1c, 0x8b, 0x62, 0x30, 0xf5,
- 0xd9, 0xe0, 0x11, 0xeb, 0xed, 0x8a, 0xeb, 0x62, 0x01, 0xd3, 0x1e, 0x83,
- 0xc0, 0x0c, 0x6f, 0x8a, 0x17, 0x99, 0xf7, 0xfe, 0x20, 0x6e, 0xd5, 0xd4,
- 0xb5, 0x27, 0xe0, 0x18, 0x7f, 0xf9, 0xaf, 0xff, 0xfc, 0x24, 0xc0, 0x0b,
- 0xcf, 0xd2, 0x0d, 0x59, 0xbc, 0x9f, 0x1f, 0xe0, 0x3f, 0xca, 0x00, 0x07,
- 0xe0, 0xbf, 0x02, 0x87, 0xf8, 0x89, 0xff, 0x5e, 0x34, 0xd4, 0xce, 0x67,
- 0xf3, 0xe2, 0x84, 0x41, 0x13, 0x5d, 0xdb, 0x94, 0x7e, 0xe7, 0xff, 0x69,
- 0xf7, 0x01, 0xff, 0xff, 0x7f, 0x11, 0xee, 0x78, 0x1f, 0xbd, 0x90, 0x9b,
- 0x8f, 0xff, 0xef, 0xe3, 0xfd, 0x83, 0xf0, 0xf9, 0xbf, 0xd7, 0x3d, 0x70,
- 0xac, 0x01, 0x7b, 0x5d, 0xf6, 0xad, 0xbf, 0xf6, 0xff, 0xf8, 0x01, 0x61,
- 0xd6, 0xeb, 0xdb, 0x77, 0xae, 0x58, 0x62, 0x7b, 0xef, 0xfe, 0xf9, 0xe8,
- 0xf1, 0x3f, 0xfd, 0x78, 0xef, 0xf6, 0x20, 0x64, 0x29, 0xbd, 0x2f, 0xf9,
- 0x3f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xfe, 0x14,
- 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf1, 0x5f, 0xff, 0x93, 0xc5,
- 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x0d,
- 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xf3, 0x1f, 0x00, 0x36,
- 0x5c, 0x98, 0x2c, 0x2f, 0x5e, 0x0f, 0x5d, 0x29, 0xb7, 0xe5, 0xf1, 0x3f,
- 0xff, 0xdf, 0xff, 0xf8, 0x60, 0x3b, 0x3c, 0x11, 0x45, 0xd1, 0x57, 0x18,
- 0x28, 0x7f, 0xed, 0x64, 0x60, 0xf3, 0xe0, 0xa8, 0xdc, 0xba, 0x61, 0x68,
- 0x01, 0x31, 0x5f, 0xf3, 0x7f, 0xc6, 0xb5, 0xac, 0xb6, 0x8f, 0x19, 0xb9,
- 0x55, 0x2b, 0x16, 0xd6, 0xfb, 0x68, 0xf8, 0xff, 0x89, 0xff, 0xf7, 0xfc,
- 0x31, 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x47, 0x4f, 0x4f, 0xcf, 0x38,
- 0x99, 0xc1, 0x20, 0xad, 0x3a, 0xda, 0xd4, 0x98, 0xa9, 0xe7, 0xd6, 0xa6,
- 0x93, 0x3e, 0x7f, 0xff, 0xdf, 0xff, 0xbf, 0x7e, 0x18, 0xe1, 0x83, 0xff,
- 0xc2, 0x5c, 0x04, 0xb7, 0x35, 0x1e, 0x21, 0x49, 0x97, 0x80, 0x8b, 0x7f,
- 0x3b, 0x63, 0xe5, 0xd6, 0x33, 0x36, 0xb1, 0x9a, 0x5e, 0x18, 0xf8, 0x10,
- 0xc8, 0xbf, 0x04, 0xc5, 0x84, 0x8e, 0x1e, 0xf4, 0x11, 0x60, 0x4b, 0xc3,
- 0xc3, 0x94, 0x08, 0x50, 0x24, 0xbd, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xa8, 0x35, 0x81, 0x0d, 0x78, 0x63, 0xf2, 0xc8, 0xb9, 0x63,
- 0x04, 0x40, 0x45, 0x8c, 0xc4, 0x04, 0x7a, 0x28, 0x10, 0xf3, 0x94, 0x08,
- 0x34, 0x04, 0x25, 0xf3, 0xef, 0xbd, 0x63, 0x63, 0xf0, 0xd3, 0xdc, 0xb0,
- 0x18, 0x08, 0xb1, 0x9e, 0x04, 0x7a, 0x0d, 0x27, 0xfb, 0x3c, 0x0f, 0x0e,
- 0xfb, 0xc3, 0x1f, 0xe7, 0x15, 0xd4, 0x22, 0xe7, 0x9f, 0x09, 0xa9, 0x3c,
- 0x0f, 0xf1, 0x7f, 0x80, 0x1e, 0x65, 0xe9, 0xc4, 0xeb, 0x77, 0x51, 0x83,
- 0xdd, 0xef, 0xeb, 0x1d, 0xdf, 0xae, 0x4f, 0xbf, 0xff, 0xff, 0xff, 0x93,
- 0xff, 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0x79, 0xff, 0xc9, 0x89, 0xff,
- 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x03,
- 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0x5f, 0x78, 0x99,
- 0x8f, 0x80, 0x02, 0x72, 0xb4, 0xff, 0xb5, 0x4c, 0x13, 0xc6, 0x09, 0x29,
- 0x70, 0xc4, 0x33, 0x87, 0x13, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x98,
- 0x3b, 0x3a, 0x2a, 0x28, 0xb9, 0x39, 0xbc, 0x60, 0xe5, 0x70, 0xd2, 0x2e,
- 0xe2, 0x8a, 0x37, 0x10, 0x8a, 0xd0, 0xb5, 0x85, 0x7a, 0xdb, 0xd3, 0x7a,
- 0x00, 0x22, 0x8e, 0x85, 0x13, 0xfe, 0xed, 0xb8, 0x6f, 0xd0, 0x63, 0x8e,
- 0x88, 0xf9, 0xf8, 0xbf, 0xd9, 0xbf, 0x21, 0xb9, 0xf2, 0x5f, 0xfd, 0x68,
- 0x55, 0xd7, 0x32, 0x43, 0xec, 0x27, 0xf8, 0x4c, 0x58, 0xe2, 0x96, 0x1c,
- 0x87, 0x3f, 0xef, 0xcf, 0x45, 0x01, 0x78, 0x13, 0x2f, 0x5b, 0xdf, 0x69,
- 0x65, 0x81, 0x72, 0x77, 0xfc, 0x4f, 0xff, 0xff, 0xff, 0x8b, 0x52, 0x87,
- 0x23, 0xc0, 0x86, 0x09, 0x31, 0x2d, 0x7f, 0x9b, 0xf1, 0x09, 0x33, 0x07,
- 0xb5, 0xc0, 0x0c, 0x0f, 0x2b, 0xe3, 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8,
- 0x58, 0xc2, 0x9e, 0x45, 0xe7, 0x3e, 0x01, 0x9f, 0x82, 0x14, 0x6a, 0xb1,
- 0xce, 0xa2, 0xc1, 0x8a, 0x7f, 0x11, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
- 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x80, 0xba, 0x68, 0x19, 0x8f, 0xab, 0x50,
- 0x7e, 0x00, 0x8a, 0x68, 0x19, 0x8e, 0x6a, 0xd4, 0x00, 0x8a, 0x68, 0x19,
- 0x8a, 0x6a, 0xd5, 0xe1, 0xcf, 0xe5, 0xf5, 0xe3, 0x3c, 0xde, 0xbc, 0x61,
- 0xbe, 0x1f, 0xd2, 0x90, 0xa1, 0x78, 0x0e, 0x23, 0x38, 0x12, 0x5a, 0x00,
- 0x5a, 0x95, 0x42, 0x55, 0xdf, 0x37, 0xef, 0x45, 0x00, 0x33, 0xd2, 0xa1,
- 0x03, 0xf6, 0x37, 0x93, 0x60, 0x1b, 0x80, 0x07, 0xf0, 0xf3, 0xf0, 0x01,
- 0x0f, 0xdd, 0xce, 0xd3, 0xff, 0xa6, 0xc0, 0x20, 0x1f, 0xf8, 0x7e, 0x00,
- 0x62, 0x5c, 0x48, 0xda, 0x5d, 0xac, 0x8d, 0x1f, 0xcd, 0xf0, 0x8f, 0xfc,
- 0x3e, 0xa0, 0x11, 0x96, 0x8d, 0x2a, 0xf3, 0xef, 0xd7, 0x8b, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x57, 0x21, 0xa0, 0x06, 0xc7,
- 0x6b, 0x20, 0x18, 0x83, 0x87, 0x37, 0xe8, 0x08, 0x00, 0x60, 0x04, 0x00,
- 0xc0, 0xab, 0x80, 0x07, 0x8d, 0xd2, 0x95, 0xa7, 0x4b, 0xf1, 0x9f, 0xcc,
- 0x0a, 0x00, 0xf7, 0xf8, 0x88, 0x9a, 0xf5, 0xe3, 0x60, 0x84, 0x12, 0x8a,
- 0x11, 0x84, 0x8c, 0x3f, 0xff, 0xe1, 0xc8, 0x7f, 0xdf, 0x01, 0x22, 0x09,
- 0x73, 0xc4, 0xd7, 0xfd, 0x78, 0xee, 0x43, 0x42, 0x6e, 0x0c, 0x57, 0xff,
- 0xe4, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xf8,
- 0x53, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f,
- 0x15, 0xff, 0xf9, 0xbf, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x4f,
- 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xef, 0xd9, 0x71, 0x3f,
- 0xff, 0xff, 0xff, 0x86, 0x03, 0xb0, 0xc5, 0x0c, 0x5e, 0x0b, 0x8c, 0x20,
- 0x0a, 0x8d, 0x36, 0x5a, 0x42, 0x00, 0x2d, 0x40, 0x19, 0x5f, 0xf6, 0xce,
- 0x40, 0x85, 0x90, 0x13, 0x05, 0x7f, 0xcd, 0x8e, 0x67, 0xf2, 0x15, 0x9b,
- 0x05, 0x66, 0x16, 0x8c, 0x53, 0x4b, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62,
- 0xc0, 0x7c, 0xa0, 0x1c, 0x2a, 0x6e, 0xaf, 0x32, 0x22, 0x4d, 0xd7, 0xff,
- 0xab, 0xce, 0x83, 0x9e, 0xc1, 0x56, 0xfc, 0xc4, 0xff, 0xff, 0x7e, 0xb0,
- 0x8a, 0xcd, 0x90, 0x05, 0xdc, 0x71, 0x1e, 0xea, 0x3a, 0xff, 0x99, 0xb3,
- 0xc0, 0x51, 0x2b, 0xb3, 0xcc, 0xfd, 0x97, 0xb0, 0x21, 0xfc, 0x31, 0x83,
- 0x83, 0x4d, 0xe5, 0xdb, 0x53, 0x6d, 0xac, 0x47, 0xff, 0x7f, 0xff, 0xf9,
- 0x30, 0xc8, 0x40, 0x42, 0x01, 0x23, 0xde, 0x76, 0x1c, 0x4f, 0xf4, 0x4e,
- 0x33, 0xc3, 0x33, 0x5d, 0xd7, 0xe2, 0xe0, 0x0d, 0x49, 0x08, 0x97, 0xd6,
- 0x72, 0x3f, 0x52, 0x50, 0x1d, 0x89, 0xf6, 0xc3, 0xd1, 0x24, 0xe3, 0xcf,
- 0x97, 0x58, 0xcc, 0xda, 0xc6, 0x2f, 0x0c, 0x7f, 0xf1, 0xdd, 0xe1, 0x52,
- 0xe1, 0x33, 0xed, 0x60, 0x76, 0x9e, 0x52, 0x2c, 0x65, 0xe7, 0xaa, 0xa8,
- 0x63, 0xfe, 0xfb, 0xf8, 0xcf, 0x01, 0x35, 0x1e, 0x83, 0x80, 0x23, 0xa1,
- 0xd6, 0x33, 0xc4, 0x6d, 0x19, 0xbf, 0x97, 0x9f, 0x9e, 0xfe, 0x39, 0xf0,
- 0xc6, 0xee, 0x40, 0xe3, 0xff, 0x15, 0xc7, 0xf7, 0x4e, 0xd2, 0x30, 0x50,
- 0x45, 0xe0, 0x20, 0x98, 0x67, 0x4f, 0xcf, 0xe5, 0x7b, 0xd6, 0x2e, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x83, 0x29, 0x0d, 0x00, 0x62,
- 0x6b, 0xf8, 0x1d, 0xfb, 0xe5, 0xd6, 0x35, 0xfe, 0xfe, 0xb1, 0xdd, 0x7e,
- 0x4f, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0x85, 0x3f, 0xff, 0xe3, 0xff,
- 0xff, 0x79, 0xff, 0xc9, 0x89, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xe9, 0x49, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf1, 0x5e, 0x7f, 0x5c, 0xc7, 0xe0, 0x0d, 0x8c, 0xdc, 0x46, 0xc9, 0x62,
- 0x64, 0x8b, 0xe0, 0x4c, 0x87, 0xed, 0xc9, 0xe6, 0x5f, 0x9e, 0xfc, 0x00,
- 0xe4, 0xfd, 0x91, 0x75, 0xf3, 0x01, 0xdf, 0xe8, 0x59, 0xca, 0x88, 0xe7,
- 0xfe, 0x9e, 0x26, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x4f,
- 0x19, 0x14, 0x38, 0x00, 0x6b, 0xd9, 0x32, 0x1a, 0x3b, 0x1e, 0xaf, 0x67,
- 0xd7, 0x51, 0x1b, 0x2d, 0xf6, 0xf0, 0x88, 0xfc, 0x2c, 0x57, 0x63, 0xf3,
- 0x00, 0x13, 0x69, 0x35, 0x19, 0xa7, 0x3d, 0xd8, 0xd6, 0x78, 0x07, 0x7b,
- 0x44, 0x0d, 0x4f, 0x5f, 0x50, 0xe5, 0xe4, 0x9f, 0x27, 0xd3, 0x31, 0x83,
- 0x4e, 0x00, 0xf1, 0xb4, 0xc2, 0xd4, 0xdb, 0x2f, 0x46, 0x77, 0x9f, 0xfd,
- 0xed, 0x1e, 0xb9, 0x00, 0xaf, 0x9f, 0xc3, 0x39, 0xd9, 0xc5, 0x2b, 0xef,
- 0xc6, 0x00, 0x00, 0xcc, 0x92, 0x4d, 0xbf, 0xe1, 0x83, 0x6d, 0x8d, 0xcf,
- 0xff, 0xbb, 0xf5, 0xb8, 0x01, 0x0e, 0xd9, 0x18, 0x96, 0x4f, 0x7a, 0x0f,
- 0x49, 0x8f, 0x23, 0xe3, 0x6a, 0x60, 0xce, 0x76, 0xe2, 0x92, 0xee, 0xf8,
- 0x73, 0x07, 0xf0, 0x97, 0xe0, 0x80, 0x48, 0x14, 0x45, 0xc4, 0xa6, 0x3e,
- 0x88, 0xff, 0xff, 0xc0, 0xa8, 0xa2, 0x23, 0x1d, 0x26, 0x5a, 0xff, 0x78,
- 0x9f, 0xff, 0xff, 0xe6, 0x35, 0xef, 0xe5, 0x2c, 0x26, 0xff, 0xf6, 0xa8,
- 0x7e, 0x4d, 0xf8, 0xa9, 0x13, 0x13, 0xba, 0xad, 0xae, 0x13, 0x3e, 0xd7,
- 0x82, 0x03, 0x0c, 0x73, 0x53, 0x84, 0xbe, 0x8f, 0xfe, 0x7a, 0x03, 0x00,
- 0x8a, 0x2b, 0xd8, 0x07, 0xc6, 0x63, 0x7f, 0x5f, 0x01, 0x28, 0x23, 0x36,
- 0x53, 0x9f, 0xea, 0x59, 0x5c, 0x81, 0xa9, 0x8c, 0xbf, 0x9f, 0x77, 0x6c,
- 0x85, 0xe3, 0xf1, 0x71, 0xa1, 0xfe, 0x7d, 0x56, 0x25, 0xa9, 0x04, 0xde,
- 0xe7, 0x37, 0x1e, 0x83, 0xc4, 0x11, 0x1b, 0x27, 0xff, 0xff, 0x7f, 0xff,
- 0xff, 0xff, 0x99, 0x02, 0xbb, 0x8f, 0x8f, 0x84, 0x86, 0x19, 0x04, 0x56,
- 0xbe, 0xdf, 0x98, 0xf8, 0xb6, 0x75, 0x8b, 0x7d, 0x86, 0x70, 0xb2, 0xf0,
- 0xa9, 0x1d, 0xdf, 0xc3, 0x8b, 0x17, 0x99, 0xe5, 0xab, 0x93, 0x46, 0x29,
- 0xba, 0x60, 0x4c, 0xf7, 0x84, 0x65, 0xff, 0xd4, 0x00, 0x03, 0x3f, 0x29,
- 0x70, 0x00, 0xa7, 0xf2, 0x9d, 0xf0, 0x03, 0xc1, 0xbf, 0xee, 0xef, 0xee,
- 0x9d, 0xa8, 0x5f, 0x5e, 0x30, 0xdf, 0x6b, 0x7c, 0x25, 0x0a, 0x60, 0x02,
- 0xe6, 0x1c, 0xba, 0xa4, 0x8b, 0x8f, 0x7f, 0xfe, 0x43, 0x70, 0x33, 0x12,
- 0x41, 0x5a, 0x38, 0xbb, 0x88, 0x0d, 0x85, 0x3c, 0x8e, 0x1e, 0x5d, 0xbf,
- 0xf4, 0x16, 0x6a, 0x80, 0x2a, 0xd7, 0xe1, 0xc2, 0x4c, 0x15, 0x32, 0xe1,
- 0xfe, 0x0f, 0xc0, 0x58, 0x3e, 0xc9, 0x2e, 0x3d, 0xfd, 0x1a, 0xbd, 0x6b,
- 0xcf, 0xff, 0xd1, 0x70, 0xff, 0x04, 0xc1, 0x55, 0xff, 0x55, 0x0c, 0x13,
- 0xaf, 0x81, 0x40, 0x6e, 0x56, 0x03, 0x57, 0x40, 0xd9, 0xd7, 0xd3, 0xbb,
- 0xe7, 0x00, 0x50, 0x5e, 0xd8, 0x1a, 0x88, 0x86, 0xce, 0xbb, 0x58, 0xf8,
- 0xbf, 0xe6, 0xff, 0xd5, 0x7e, 0x08, 0x17, 0xc0, 0x1f, 0x95, 0x47, 0x77,
- 0x00, 0x1f, 0xdd, 0x5d, 0x23, 0xde, 0x3f, 0x5e, 0x30, 0xdf, 0x0f, 0xe9,
- 0x08, 0x21, 0x70, 0x00, 0xe4, 0x8a, 0x48, 0x4a, 0xfb, 0xe2, 0x7e, 0xf4,
- 0x11, 0x40, 0xed, 0x72, 0x32, 0x32, 0xb9, 0xea, 0xf4, 0xf1, 0x2f, 0x11,
- 0xe6, 0x1e, 0xaf, 0xff, 0xc3, 0xe6, 0x00, 0x59, 0x4a, 0xa8, 0xef, 0x68,
- 0x0f, 0xc4, 0x8d, 0x37, 0x5a, 0xdf, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x15, 0x7f, 0xcb, 0xeb, 0xc6, 0xf2,
- 0x08, 0x67, 0x23, 0x86, 0xc0, 0x8f, 0xc5, 0xc9, 0x0c, 0xbf, 0x0c, 0x40,
- 0xea, 0xdf, 0xfd, 0x78, 0xef, 0xf7, 0x09, 0xf8, 0x7e, 0xe2, 0x20, 0x6e,
- 0x03, 0xc0, 0xd7, 0xfe, 0xf0, 0x45, 0xb1, 0xbe, 0x6e, 0x4f, 0xf8, 0xcf,
- 0x27, 0xbf, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff,
- 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
- 0x91, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0x7e, 0x41, 0x32,
- 0xc5, 0x9f, 0x04, 0x2d, 0x1f, 0xfb, 0x7f, 0x1e, 0x95, 0x5c, 0x4f, 0xff,
- 0xff, 0xff, 0x7e, 0x18, 0x30, 0x6b, 0x3e, 0xf1, 0xa0, 0xaa, 0xd8, 0x80,
- 0x15, 0x6b, 0xe6, 0xec, 0xff, 0xe4, 0xec, 0x94, 0x9f, 0x1e, 0x00, 0xfc,
- 0x7a, 0x7f, 0xa3, 0x06, 0xec, 0x06, 0x9a, 0x70, 0x75, 0x3a, 0x78, 0xe8,
- 0xfc, 0x58, 0xff, 0x9d, 0xff, 0x35, 0xa0, 0xe5, 0x84, 0x3a, 0x03, 0x36,
- 0x57, 0x03, 0xf9, 0x27, 0x73, 0x54, 0x48, 0x91, 0x2d, 0xdd, 0xd2, 0xc5,
- 0xcb, 0xc1, 0xf4, 0xb1, 0xa4, 0x8e, 0xa4, 0xf2, 0xe6, 0x3f, 0x89, 0xff,
- 0xfe, 0xfc, 0x31, 0xc7, 0x80, 0x1a, 0x3e, 0x69, 0x16, 0x6c, 0x00, 0xc0,
- 0xf2, 0xbe, 0x3b, 0x0f, 0x56, 0xa5, 0x87, 0xab, 0x49, 0x82, 0xb1, 0x45,
- 0x01, 0x20, 0xa6, 0x5e, 0x02, 0x46, 0x73, 0xa9, 0xe5, 0x17, 0xc4, 0x52,
- 0x38, 0x6d, 0x6d, 0x26, 0xfc, 0xf1, 0xcb, 0xab, 0x60, 0x1a, 0xc8, 0x7e,
- 0x23, 0xff, 0xbf, 0xff, 0xfc, 0x31, 0x54, 0x10, 0xb8, 0xff, 0xc2, 0x4c,
- 0xca, 0x24, 0x8d, 0xaa, 0xf0, 0x33, 0x13, 0x7d, 0x07, 0xf7, 0x78, 0xf7,
- 0x25, 0x2c, 0x63, 0x93, 0x87, 0x83, 0xb7, 0xcc, 0xd4, 0xab, 0x72, 0xb1,
- 0x9d, 0xf2, 0x97, 0xff, 0x00, 0x33, 0xae, 0x5d, 0x63, 0x16, 0x62, 0xc0,
- 0x04, 0xcb, 0xef, 0x38, 0x1d, 0x08, 0xef, 0xf4, 0xf0, 0x00, 0x10, 0x00,
- 0xc3, 0x1f, 0xe2, 0x3a, 0xf8, 0x56, 0x7a, 0x60, 0x74, 0x45, 0x6b, 0xe8,
- 0x78, 0x04, 0xad, 0xf7, 0xb4, 0x31, 0xff, 0xc7, 0x51, 0x85, 0x78, 0xf7,
- 0x7c, 0xb0, 0x78, 0x0f, 0x32, 0xc2, 0x06, 0x9c, 0x07, 0x91, 0xc7, 0x6f,
- 0x4a, 0x47, 0xd7, 0x7a, 0xc6, 0x06, 0x3e, 0x1f, 0xd2, 0x10, 0x43, 0x80,
- 0x09, 0x2a, 0x89, 0xb5, 0xa2, 0xfb, 0xd0, 0x90, 0xea, 0xa4, 0xc9, 0xfb,
- 0xe5, 0xe8, 0x6e, 0x25, 0x61, 0xaf, 0xa8, 0xc1, 0x02, 0x00, 0x25, 0x68,
- 0x28, 0xdb, 0x0f, 0x7a, 0x96, 0xfc, 0x1e, 0xb7, 0x2c, 0x61, 0xe7, 0xa3,
- 0xde, 0xb1, 0x70, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x84,
- 0xbe, 0x5d, 0x63, 0x5f, 0xbe, 0xfe, 0xb1, 0xdd, 0xfb, 0xe4, 0xfb, 0xff,
- 0xff, 0xff, 0xf9, 0x3f, 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xff, 0xf1, 0x5f,
- 0xe4, 0xc5, 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51,
- 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xde,
- 0x26, 0x63, 0xe0, 0x85, 0xb3, 0xf7, 0xe2, 0x03, 0xf7, 0xf4, 0xfc, 0xd8,
- 0x44, 0xa5, 0x2f, 0x15, 0xbc, 0x7e, 0xc7, 0xf8, 0x9f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0xe5, 0x20, 0x44, 0x60, 0x03, 0x0f, 0xef, 0x97, 0x1a,
- 0xb6, 0x0d, 0x79, 0xec, 0x7e, 0xf1, 0xaa, 0x3e, 0x4a, 0xc5, 0xcd, 0x8c,
- 0xb4, 0x60, 0x0d, 0xad, 0x07, 0xc8, 0x5c, 0xcb, 0xdf, 0x7e, 0xea, 0x32,
- 0xfc, 0xda, 0x7c, 0x2f, 0xf8, 0x4c, 0x4b, 0xe8, 0x1b, 0x00, 0x0b, 0x2f,
- 0x55, 0xf5, 0x19, 0x85, 0x17, 0xf8, 0x2a, 0xf6, 0xf6, 0xa0, 0x07, 0x17,
- 0xa0, 0xca, 0xdf, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x2a,
- 0x12, 0xa5, 0xac, 0xdc, 0x01, 0x47, 0x44, 0x3a, 0x8f, 0xcd, 0xb0, 0x75,
- 0x6f, 0xcf, 0x01, 0x54, 0x9c, 0x9f, 0x85, 0x1a, 0x00, 0x9a, 0x12, 0x8c,
- 0xbb, 0xab, 0x16, 0x07, 0xae, 0x0d, 0x94, 0xf9, 0x31, 0x66, 0x62, 0xfa,
- 0x9e, 0x4e, 0x8b, 0x01, 0xeb, 0xc4, 0xca, 0x92, 0xdb, 0x3b, 0x9c, 0xdf,
- 0xff, 0x91, 0x41, 0x09, 0xe0, 0x04, 0x46, 0xd8, 0x48, 0x57, 0x63, 0xfd,
- 0xe0, 0x03, 0xd4, 0xbe, 0x03, 0xf7, 0x98, 0xfb, 0xff, 0x07, 0xff, 0xfe,
- 0xe7, 0x97, 0xf1, 0xcf, 0xa6, 0x08, 0x63, 0xe7, 0x8f, 0x5f, 0xf7, 0xff,
- 0xff, 0xff, 0xff, 0x10, 0x42, 0x35, 0xdf, 0x9b, 0x85, 0xb0, 0x41, 0xa3,
- 0x4b, 0x80, 0x3c, 0x29, 0xff, 0x9c, 0xd2, 0xb4, 0x8a, 0x44, 0xdf, 0x89,
- 0x2c, 0x01, 0xea, 0x5f, 0x01, 0xfb, 0xcc, 0x01, 0x72, 0x55, 0xd3, 0xdd,
- 0x3f, 0x53, 0x7b, 0xfc, 0x7f, 0xff, 0x70, 0x30, 0xe0, 0x05, 0xc7, 0x6e,
- 0x99, 0x15, 0x5e, 0xaa, 0x0c, 0x67, 0x7f, 0xfd, 0xef, 0xf7, 0xf9, 0x85,
- 0x27, 0xa7, 0xcc, 0x27, 0x04, 0xff, 0x00, 0x6c, 0xfd, 0x4b, 0xfc, 0x0f,
- 0x40, 0xc0, 0x91, 0xe8, 0x77, 0xb7, 0xfe, 0x00, 0xe6, 0xe5, 0x9e, 0x91,
- 0x3d, 0x78, 0xce, 0x6c, 0x27, 0xc4, 0xb3, 0xf0, 0x3c, 0x62, 0x22, 0x73,
- 0x24, 0xd2, 0x1c, 0xf0, 0x9e, 0x2c, 0x60, 0x09, 0x5e, 0xa5, 0xfe, 0x07,
- 0xfe, 0x1c, 0x45, 0xbb, 0xfc, 0x01, 0xcd, 0xd6, 0x7a, 0x5e, 0xfd, 0x78,
- 0xcf, 0x66, 0xf1, 0x6f, 0xfe, 0x1f, 0x13, 0xe0, 0x03, 0x3f, 0xe2, 0x2f,
- 0xe7, 0xfd, 0xff, 0xf7, 0xeb, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xa9, 0x44, 0x25, 0xff, 0x2f, 0xaf, 0x1b, 0xff, 0x7f, 0xf5, 0xe3,
- 0xbf, 0xff, 0x27, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff,
- 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0x2b, 0xff,
- 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xaa, 0xd3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xed, 0x45,
- 0x9f, 0x0c, 0xce, 0x97, 0x84, 0x82, 0xa0, 0xcb, 0xb5, 0x89, 0xff, 0xff,
- 0xff, 0xfd, 0xb8, 0xa1, 0x01, 0x18, 0xed, 0x11, 0xc6, 0xf5, 0xbc, 0x3c,
- 0x01, 0xbc, 0x52, 0x8b, 0x40, 0x75, 0xf2, 0x00, 0x90, 0x61, 0xca, 0x40,
- 0xcf, 0xca, 0x3d, 0x51, 0x14, 0xf6, 0x13, 0x91, 0x4a, 0x80, 0xe1, 0x88,
- 0x17, 0xd6, 0xff, 0x84, 0xc4, 0x81, 0x82, 0x00, 0x24, 0x11, 0x1d, 0x0c,
- 0x96, 0x0f, 0xcb, 0x98, 0xca, 0xdb, 0xbd, 0x78, 0x66, 0xad, 0x25, 0x4b,
- 0xb5, 0xe2, 0x7f, 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x30, 0x62, 0xb3,
- 0x60, 0x11, 0xeb, 0xed, 0x87, 0xb3, 0xa5, 0xbc, 0x3b, 0x2f, 0x01, 0x37,
- 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40, 0x79, 0xeb, 0xff, 0x0e, 0xb5, 0x21,
- 0x7f, 0x7f, 0xa8, 0xd1, 0x56, 0x9d, 0x4f, 0x22, 0x5d, 0x9d, 0x7a, 0xff,
- 0xf7, 0xff, 0xff, 0x86, 0x2d, 0x4d, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea,
- 0xd3, 0xfc, 0x80, 0x9a, 0xd0, 0xd9, 0x50, 0x36, 0xd4, 0x2d, 0xe1, 0x21,
- 0x38, 0xf8, 0x1c, 0xe1, 0x89, 0x58, 0xaa, 0x04, 0x4d, 0xaf, 0x6a, 0x01,
- 0x23, 0xd5, 0x87, 0xff, 0xdd, 0xc2, 0xea, 0x8f, 0x33, 0x00, 0x83, 0xfe,
- 0x9f, 0x35, 0x7b, 0x03, 0xa4, 0x60, 0x07, 0xcf, 0xe4, 0x8d, 0xb8, 0xa4,
- 0x1b, 0x7b, 0xfe, 0x6f, 0xfb, 0xfe, 0x40, 0x40, 0xf7, 0x9d, 0xe2, 0x2f,
- 0xc3, 0x1f, 0xe7, 0x33, 0xf8, 0x20, 0x2f, 0x00, 0xe0, 0x4a, 0x7f, 0x43,
- 0xe5, 0xb2, 0x83, 0xf0, 0x93, 0x58, 0xc7, 0xd0, 0x62, 0x7a, 0xc4, 0xff,
- 0xe1, 0xf4, 0x00, 0xf7, 0xed, 0x01, 0x2e, 0xdf, 0x00, 0x7b, 0xef, 0x8f,
- 0x62, 0x18, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x01, 0x0e, 0xa0, 0x35, 0xde,
- 0x7f, 0x81, 0x2f, 0xa0, 0x3f, 0x7b, 0x3b, 0x70, 0x60, 0xbb, 0xd6, 0x33,
- 0x6e, 0x24, 0x85, 0xc0, 0x4d, 0xba, 0x03, 0xfb, 0x91, 0xf7, 0xac, 0x5c,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x82, 0x2f, 0x97, 0x58,
- 0xdf, 0xbf, 0xac, 0x77, 0xf9, 0x3e, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xfe,
- 0x14, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x57, 0xf9, 0x31, 0x3f, 0xff, 0xff,
- 0xff, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59, 0x01, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9d, 0xe2, 0x4b, 0xc4, 0xca, 0x5c,
- 0x01, 0x6e, 0xa1, 0x72, 0xcc, 0xfc, 0x4f, 0x97, 0xf8, 0x9f, 0xff, 0xff,
- 0xff, 0xff, 0xc5, 0x1a, 0x03, 0x19, 0x33, 0xc9, 0x11, 0x68, 0x3a, 0x22,
- 0x04, 0xac, 0x3d, 0xf9, 0x3e, 0x24, 0x44, 0xb2, 0x44, 0xb3, 0x77, 0xf0,
- 0x14, 0x40, 0xb0, 0xb8, 0xee, 0x26, 0xaa, 0xed, 0x29, 0xe6, 0xd0, 0xd6,
- 0xb9, 0x29, 0x4e, 0x01, 0xd7, 0x75, 0xe4, 0xff, 0x11, 0x88, 0x15, 0x02,
- 0x6e, 0xe0, 0xf5, 0x72, 0xba, 0x54, 0x99, 0x26, 0x0b, 0xac, 0x58, 0xf0,
- 0x59, 0x44, 0xdc, 0x27, 0xa4, 0x8e, 0x72, 0x62, 0x7a, 0xe7, 0x12, 0x79,
- 0x46, 0x87, 0x61, 0x0e, 0x31, 0x06, 0xbb, 0xf1, 0x71, 0xcd, 0x77, 0xd4,
- 0x47, 0xa0, 0xf0, 0x0c, 0x76, 0x17, 0xa2, 0x83, 0xb2, 0xc0, 0x48, 0xc7,
- 0x48, 0x12, 0x4a, 0xc7, 0x2f, 0xab, 0x23, 0x9c, 0xbb, 0x40, 0x7e, 0x64,
- 0x87, 0xda, 0x5f, 0x84, 0xca, 0xf0, 0xcc, 0xec, 0x59, 0xf8, 0x9f, 0xff,
- 0xff, 0xf9, 0xbf, 0x15, 0x84, 0xc0, 0xa9, 0x6b, 0x80, 0x9a, 0x9e, 0x83,
- 0x9f, 0x50, 0xee, 0xe9, 0x46, 0x9d, 0x73, 0x21, 0x8d, 0x17, 0x48, 0xb9,
- 0xa8, 0x89, 0x63, 0x91, 0x11, 0x75, 0x93, 0x7e, 0x20, 0x44, 0x15, 0x4e,
- 0xfe, 0x04, 0xdf, 0xa6, 0x76, 0x9a, 0x8e, 0x87, 0x58, 0xad, 0x9d, 0x6a,
- 0x61, 0xc2, 0x98, 0x93, 0xb9, 0x6d, 0xbd, 0x97, 0x62, 0xe7, 0xf9, 0x3f,
- 0xc0, 0xc2, 0x06, 0x00, 0x2c, 0x81, 0xf0, 0x43, 0xe0, 0x58, 0x72, 0x14,
- 0x21, 0x20, 0x2a, 0x03, 0x16, 0x00, 0x65, 0x80, 0x1c, 0xce, 0x3b, 0x8f,
- 0xff, 0x0f, 0x30, 0xf4, 0x65, 0x90, 0x87, 0x7f, 0x7d, 0xbf, 0x97, 0xff,
- 0xff, 0xfe, 0x6d, 0xce, 0x12, 0xff, 0x84, 0x94, 0x4a, 0x5d, 0x4c, 0x04,
- 0x8f, 0xda, 0x6a, 0x41, 0xa5, 0xd9, 0x63, 0x48, 0x5a, 0x36, 0xe9, 0x77,
- 0x65, 0x92, 0xeb, 0xb1, 0x4b, 0x9f, 0xe2, 0x62, 0x71, 0x1d, 0xfa, 0xf1,
- 0x9e, 0xc2, 0x72, 0x00, 0x04, 0x66, 0xaf, 0xab, 0xbf, 0xff, 0x83, 0x67,
- 0x73, 0xef, 0xd7, 0x8c, 0xf9, 0xbf, 0x87, 0xfc, 0x28, 0x48, 0x42, 0x4f,
- 0xe7, 0xe1, 0x1f, 0x70, 0xd3, 0x45, 0x27, 0x6c, 0x20, 0x60, 0xdb, 0x43,
- 0x1f, 0xe6, 0x90, 0x5e, 0xe8, 0xb1, 0x83, 0xbc, 0x2f, 0xf3, 0xc8, 0xed,
- 0x6c, 0x23, 0xc6, 0x71, 0xcc, 0xc2, 0x6e, 0x1c, 0x03, 0xc1, 0x62, 0xd8,
- 0x69, 0x57, 0xe0, 0x3a, 0x60, 0xe5, 0xb1, 0x81, 0x8a, 0x72, 0xc6, 0xbd,
- 0xc3, 0x70, 0x1e, 0x6d, 0x10, 0x0e, 0x72, 0x9c, 0x23, 0x68, 0x15, 0xf2,
- 0xd1, 0x51, 0x02, 0x8f, 0x72, 0x1b, 0x68, 0xfa, 0x9d, 0x39, 0xe9, 0xc2,
- 0x07, 0xf4, 0x9b, 0x0a, 0x7a, 0x49, 0xa7, 0xb7, 0x06, 0x93, 0x41, 0xde,
- 0xcd, 0x3d, 0xf0, 0x65, 0xd3, 0x7e, 0xdf, 0x8b, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xad, 0x64, 0x04, 0x17, 0xf9, 0x04, 0x43, 0xec, 0xb7,
- 0xf6, 0xd5, 0x5b, 0x96, 0x55, 0x6e, 0x5b, 0xfc, 0x44, 0x0d, 0x5b, 0x96,
- 0x55, 0x6e, 0x5b, 0xd5, 0x5b, 0x96, 0xff, 0xe2, 0x10, 0x34, 0x9a, 0x0a,
- 0x83, 0x3c, 0x35, 0x1c, 0x9d, 0x01, 0x77, 0x96, 0xf6, 0x99, 0xfb, 0x2c,
- 0x10, 0xb7, 0x8f, 0xf5, 0xe3, 0x7c, 0x9f, 0xf5, 0xf3, 0x4e, 0x02, 0xf6,
- 0x6c, 0x7e, 0xc5, 0x07, 0x05, 0x3d, 0x4d, 0x44, 0x58, 0x73, 0x11, 0x81,
- 0x47, 0x70, 0x8d, 0xb4, 0x07, 0x3a, 0xad, 0x16, 0xbf, 0x4c, 0x5e, 0x20,
- 0x38, 0x39, 0x5c, 0x98, 0x40, 0x05, 0x4b, 0xf7, 0xe1, 0xd2, 0x99, 0x9e,
- 0x9f, 0xcd, 0x50, 0xc6, 0xcd, 0x8f, 0xdc, 0xd7, 0xfe, 0xe0, 0xde, 0x8d,
- 0xfa, 0x31, 0xe0, 0x34, 0x7d, 0xc2, 0x34, 0x44, 0xe6, 0xa7, 0x33, 0x8a,
- 0x45, 0xf2, 0x98, 0x1b, 0x2a, 0x25, 0x9b, 0x59, 0x02, 0x00, 0x55, 0xaf,
- 0x58, 0x96, 0x99, 0xbb, 0x3f, 0x98, 0x54, 0x22, 0xf6, 0x6c, 0x7e, 0xe9,
- 0x7f, 0xb9, 0x9b, 0xd1, 0xbf, 0x83, 0xc0, 0xa3, 0xb8, 0x46, 0xda, 0x03,
- 0x9a, 0xab, 0x02, 0x46, 0x74, 0xc8, 0x6c, 0xa8, 0x96, 0x70, 0x60, 0x40,
- 0x0a, 0xb5, 0xeb, 0x12, 0xd3, 0x37, 0x67, 0xf3, 0x54, 0x31, 0xdb, 0x1d,
- 0x37, 0x35, 0xff, 0xb8, 0x37, 0xa3, 0x7e, 0x8c, 0x78, 0x4a, 0xed, 0x04,
- 0x12, 0x62, 0x64, 0x2c, 0xba, 0x32, 0xd9, 0x80, 0xd9, 0x51, 0x2c, 0xda,
- 0xc8, 0x78, 0x53, 0xd0, 0x51, 0x96, 0x64, 0x69, 0x3f, 0x98, 0x14, 0x41,
- 0xdf, 0xe2, 0x54, 0xdc, 0xd0, 0x63, 0xc2, 0x58, 0x85, 0x7c, 0x21, 0x9c,
- 0x26, 0x7d, 0x08, 0x36, 0x8d, 0xda, 0x19, 0x93, 0x3a, 0x87, 0xa3, 0x0d,
- 0xd3, 0x3c, 0x0d, 0x68, 0x96, 0x48, 0xec, 0x5d, 0xde, 0x5e, 0x5f, 0x34,
- 0xd0, 0x23, 0xf3, 0x2a, 0x6f, 0x50, 0x73, 0xc5, 0x42, 0x14, 0x36, 0x9c,
- 0x46, 0x78, 0x4a, 0xed, 0x04, 0x12, 0x60, 0x99, 0x0b, 0x2e, 0x8c, 0xf4,
- 0x63, 0xe5, 0x18, 0x26, 0x15, 0x29, 0xfc, 0x09, 0xd8, 0xbb, 0xbf, 0x02,
- 0x7f, 0x30, 0x28, 0x83, 0xbf, 0xd1, 0x3d, 0xcd, 0x06, 0x3c, 0x25, 0x88,
- 0x53, 0xc2, 0x19, 0xc2, 0x67, 0xd0, 0x83, 0x63, 0x07, 0xf6, 0xaa, 0xa6,
- 0x75, 0x36, 0xe1, 0xba, 0x67, 0x82, 0x8a, 0x12, 0xf2, 0xb4, 0xb8, 0xfd,
- 0x49, 0xe3, 0xa1, 0x34, 0xd8, 0x07, 0xcf, 0xc7, 0x7a, 0x83, 0x9e, 0x26,
- 0x8b, 0x22, 0xae, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47, 0x6c,
- 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x54, 0xd3, 0x3a, 0x2e, 0x03,
- 0x77, 0x92, 0xca, 0x53, 0x09, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c,
- 0x4d, 0x16, 0x44, 0x6e, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47,
- 0x6c, 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x55, 0xa6, 0x6f, 0x51,
- 0xc0, 0xdd, 0x92, 0xcd, 0x29, 0x84, 0xd8, 0x07, 0xcf, 0xc7, 0x7a, 0x83,
- 0x9e, 0x26, 0x8b, 0x22, 0x37, 0x7b, 0xcf, 0x18, 0x4a, 0xed, 0x04, 0x11,
- 0xa3, 0xb6, 0x55, 0x71, 0xd1, 0xf5, 0xa8, 0x4c, 0x03, 0xaa, 0xd3, 0x37,
- 0xa8, 0xe0, 0x6e, 0xc9, 0x66, 0x94, 0xc2, 0x74, 0x55, 0x0f, 0xf2, 0xbc,
- 0xae, 0xc7, 0x2b, 0x43, 0x4e, 0xe2, 0x48, 0x65, 0x8f, 0x20, 0x33, 0xff,
- 0x68, 0x5c, 0xd1, 0xd6, 0xc5, 0x1b, 0xf7, 0x64, 0xa5, 0x26, 0x16, 0xa6,
- 0x7f, 0x92, 0x00, 0x18, 0xaa, 0xd2, 0x93, 0x4e, 0x82, 0xe1, 0x60, 0x0f,
- 0x6b, 0xc2, 0xef, 0x1d, 0x6c, 0x29, 0xdb, 0x71, 0xad, 0x6f, 0x21, 0x3f,
- 0x68, 0x55, 0x70, 0xdf, 0xdb, 0x10, 0x4e, 0x3e, 0x8c, 0x0b, 0xcb, 0xdf,
- 0x8d, 0xd4, 0xf0, 0x5f, 0x24, 0x00, 0x31, 0x52, 0xd2, 0x93, 0x4e, 0x82,
- 0xe1, 0x60, 0x0f, 0x2b, 0xc2, 0xef, 0x1d, 0x6c, 0x29, 0xdd, 0x63, 0x5a,
- 0xde, 0x42, 0x7e, 0xd0, 0xaa, 0xe1, 0xbf, 0xb6, 0x20, 0x9c, 0x7d, 0x18,
- 0x2e, 0x55, 0xff, 0x75, 0x3d, 0xfc, 0x90, 0x00, 0xc5, 0x53, 0x4a, 0x4d,
- 0x38, 0xd0, 0x24, 0x01, 0xb7, 0x78, 0x5d, 0xe3, 0xad, 0x85, 0x3b, 0xac,
- 0x1c, 0x55, 0x26, 0x10, 0xd6, 0x43, 0x34, 0xf3, 0xd1, 0xc0, 0xda, 0x6d,
- 0xe7, 0xf8, 0x2f, 0x01, 0x8a, 0xb2, 0x59, 0x37, 0xf1, 0xc7, 0x6e, 0xe0,
- 0x3d, 0x37, 0xc4, 0x26, 0xdb, 0x9a, 0x0b, 0x08, 0x88, 0xe3, 0x12, 0x69,
- 0x83, 0x53, 0x93, 0x23, 0x5a, 0x4c, 0x19, 0xb2, 0x59, 0xff, 0xe0, 0x31,
- 0xac, 0x96, 0x4d, 0xee, 0xa1, 0x0b, 0x6d, 0xde, 0x11, 0x9e, 0x9c, 0x50,
- 0x17, 0x40, 0xc0, 0x68, 0x88, 0x21, 0x0e, 0xa7, 0x29, 0x51, 0xd6, 0x24,
- 0xcb, 0x94, 0x69, 0xa9, 0x80, 0xb4, 0xa8, 0x7a, 0xff, 0xff, 0x03, 0x1a,
- 0x25, 0x99, 0x88, 0xe2, 0xae, 0x1d, 0xb2, 0xee, 0x17, 0x11, 0xc2, 0x0a,
- 0x94, 0xef, 0x38, 0x21, 0x91, 0x1b, 0xa2, 0x19, 0x90, 0xd1, 0xb7, 0x91,
- 0xa0, 0xb6, 0x63, 0x75, 0xa1, 0xea, 0x60, 0x2d, 0x2a, 0x1e, 0xb8, 0xfc,
- 0x5f, 0x9a, 0x78, 0xfa, 0x08, 0x4b, 0xbc, 0x07, 0x3a, 0xaa, 0xe6, 0x15,
- 0xde, 0xdf, 0xac, 0x4e, 0x31, 0x55, 0x0d, 0x1b, 0x78, 0x8d, 0x04, 0x5a,
- 0x4c, 0x6e, 0xb6, 0x03, 0x15, 0xc4, 0xb0, 0x09, 0x41, 0x76, 0xbd, 0x67,
- 0x07, 0xe2, 0xfc, 0xd5, 0xc6, 0x2d, 0x41, 0x00, 0x2e, 0xf1, 0x3a, 0x39,
- 0xcf, 0x57, 0x7a, 0x5d, 0x61, 0xff, 0x42, 0x38, 0xc5, 0xa7, 0x80, 0xd1,
- 0xb7, 0x88, 0xd0, 0xc2, 0x49, 0x9b, 0x63, 0x6c, 0xc6, 0x29, 0x92, 0xc8,
- 0x12, 0x82, 0xed, 0x7a, 0xce, 0x0f, 0xe7, 0x9a, 0x61, 0x77, 0x8d, 0x04,
- 0x3e, 0xd4, 0x4f, 0x1c, 0xe7, 0xde, 0xde, 0xfd, 0xac, 0xa7, 0x0d, 0xa4,
- 0x21, 0x7d, 0x8b, 0x38, 0x3d, 0xc9, 0x82, 0xc5, 0x31, 0x05, 0x79, 0x2c,
- 0x80, 0xc1, 0xed, 0xac, 0xe0, 0xfc, 0x1c, 0x93, 0x10, 0x69, 0x74, 0x9a,
- 0x1f, 0x4e, 0x82, 0x01, 0xbb, 0x2b, 0x4c, 0xf9, 0x7c, 0x07, 0xaf, 0x4c,
- 0xf0, 0x35, 0x2f, 0x40, 0x1a, 0xbd, 0x33, 0x61, 0x49, 0x92, 0x64, 0x48,
- 0x83, 0x85, 0x58, 0xbb, 0xcc, 0x20, 0x1e, 0xdd, 0x04, 0x03, 0x6c, 0x20,
- 0xe4, 0xfd, 0xff, 0x80, 0xe4, 0xbd, 0x31, 0xf0, 0xc1, 0x1a, 0x9a, 0x74,
- 0x65, 0x03, 0x19, 0xa6, 0x1b, 0x2c, 0x3d, 0x64, 0x1c, 0x2e, 0xc7, 0xf0,
- 0xb3, 0x08, 0x07, 0xb7, 0x41, 0x00, 0xdc, 0xc3, 0x93, 0xf7, 0xfe, 0x03,
- 0x92, 0xf4, 0xc7, 0xc3, 0x04, 0x6a, 0x69, 0xd1, 0x94, 0x0c, 0x66, 0x98,
- 0x6c, 0xb0, 0xf5, 0x90, 0x70, 0xbb, 0x1f, 0xc2, 0xcc, 0x20, 0x1b, 0x7f,
- 0xf7, 0x30, 0xe4, 0xfd, 0xe8, 0xff, 0x8f, 0x9e, 0x64, 0x3a, 0xfd, 0x32,
- 0x81, 0x8c, 0xd3, 0x28, 0x12, 0x02, 0xf0, 0x3b, 0x1a, 0x47, 0x34, 0x58,
- 0x01, 0xb6, 0xff, 0x7c, 0x6a, 0x7a, 0x61, 0x21, 0x38, 0x7e, 0x3e, 0x79,
- 0x90, 0xeb, 0xf4, 0x51, 0x93, 0x3b, 0x99, 0x38, 0x60, 0x25, 0x0c, 0x07,
- 0xc1, 0xdb, 0x34, 0x8e, 0x6d, 0x36, 0xff, 0xef, 0x8d, 0x5b, 0x4c, 0x25,
- 0xa0, 0xfe, 0x08, 0x7c, 0xf3, 0x21, 0xd7, 0xe8, 0xa9, 0xe9, 0xec, 0x09,
- 0x01, 0x78, 0x0e, 0xd8, 0xd2, 0x39, 0xb6, 0xfb, 0x7f, 0xbe, 0x1d, 0x3e,
- 0x87, 0x16, 0x3f, 0x06, 0x85, 0x13, 0x3c, 0x18, 0xa4, 0xce, 0xd5, 0xce,
- 0x18, 0x0c, 0x1b, 0x74, 0x01, 0x41, 0xa3, 0x1e, 0x9b, 0x28, 0x90, 0x9a,
- 0xc8, 0x00, 0x3f, 0xc7, 0xbe, 0x0b, 0xb3, 0xa2, 0x0d, 0xd3, 0xcf, 0xe0,
- 0xc0, 0x71, 0x56, 0x99, 0xfa, 0x3f, 0x1b, 0xc1, 0x50, 0xaa, 0x02, 0x82,
- 0x62, 0x41, 0xe1, 0x80, 0xcd, 0x64, 0x00, 0x1c, 0x3c, 0x7b, 0xe0, 0xbb,
- 0x3a, 0x21, 0xa4, 0xc7, 0xea, 0xc0, 0x38, 0xab, 0x4c, 0xef, 0x63, 0xcb,
- 0x10, 0x68, 0x55, 0x00, 0x30, 0x46, 0x24, 0x1e, 0x18, 0x0c, 0xd6, 0x40,
- 0x01, 0xc3, 0xfd, 0xf0, 0x5d, 0x9d, 0x10, 0xd2, 0x63, 0xf5, 0x60, 0x1c,
- 0x55, 0xa6, 0x77, 0xb1, 0xe5, 0x89, 0xa2, 0x0c, 0x11, 0x89, 0x00, 0xdf,
- 0x32, 0x59, 0x33, 0x68, 0x00, 0x1f, 0x1f, 0x71, 0x9a, 0xde, 0x75, 0xb4,
- 0x45, 0xde, 0x00, 0xe5, 0x69, 0x9f, 0xff, 0x47, 0xc1, 0x80, 0xf4, 0x0e,
- 0x8b, 0x43, 0x01, 0x2a, 0x46, 0x24, 0x26, 0x6d, 0x04, 0x03, 0xe3, 0xe2,
- 0xa1, 0x03, 0x7f, 0xdd, 0xec, 0x05, 0x67, 0x80, 0x39, 0x5a, 0x67, 0xf8,
- 0x30, 0x15, 0x40, 0xf8, 0x34, 0x30, 0x12, 0xa4, 0xc4, 0x84, 0xcd, 0xa0,
- 0x80, 0x7c, 0x7c, 0x54, 0x06, 0x6e, 0xff, 0xbb, 0xd8, 0x0a, 0xcf, 0x00,
- 0x72, 0xb4, 0xcf, 0xf0, 0x60, 0x2a, 0x81, 0xd1, 0x68, 0x60, 0x25, 0x48,
- 0xc4, 0x84, 0xcd, 0x92, 0x43, 0x4f, 0xee, 0x03, 0x37, 0x7f, 0xdd, 0xec,
- 0x07, 0xa2, 0xe2, 0x87, 0x1d, 0xc7, 0x72, 0x3b, 0xf5, 0xfa, 0xf4, 0xde,
- 0x8f, 0xac, 0x70, 0x4b, 0x83, 0xf8, 0x69, 0x13, 0x0e, 0x49, 0x0d, 0x3f,
- 0xb8, 0xc4, 0xb4, 0xcf, 0x09, 0xb0, 0x78, 0x81, 0xc7, 0x71, 0xc1, 0xc8,
- 0xef, 0xd7, 0xeb, 0xd3, 0x5a, 0x18, 0x0d, 0x1f, 0x8e, 0x89, 0x08, 0x3f,
- 0x8d, 0x22, 0x61, 0xc9, 0x21, 0xa7, 0xf7, 0x51, 0x26, 0x99, 0xe1, 0xe8,
- 0xb8, 0xa1, 0xc7, 0x71, 0xab, 0x12, 0x2d, 0xfa, 0xfd, 0x7a, 0x6b, 0x43,
- 0x01, 0xa3, 0xf6, 0x05, 0x01, 0xfc, 0x34, 0x89, 0x87, 0x2d, 0xb4, 0xc0,
- 0x7b, 0xa8, 0x93, 0x4c, 0xf0, 0xf4, 0x5c, 0x58, 0x0e, 0x2a, 0x69, 0x84,
- 0x53, 0x3a, 0xef, 0xeb, 0xd3, 0x5a, 0x18, 0x0d, 0x1f, 0x60, 0xe1, 0x56,
- 0x27, 0x84, 0xdf, 0xb7, 0xe3, 0xdf, 0xc2, 0x47, 0x27, 0xee, 0xb5, 0xb7,
- 0x41, 0xc5, 0x4d, 0x30, 0x35, 0x8d, 0xfa, 0x7c, 0xb1, 0x01, 0x8d, 0x64,
- 0xb1, 0x57, 0xd3, 0x38, 0x20, 0x70, 0xab, 0x19, 0xe1, 0x37, 0x2d, 0xbf,
- 0x1e, 0xfe, 0x1c, 0x49, 0xeb, 0x2e, 0x78, 0x0e, 0x2a, 0x69, 0x81, 0xac,
- 0x6f, 0xd3, 0xe5, 0x80, 0x0c, 0x69, 0x92, 0xc5, 0x5f, 0x4c, 0xf0, 0x70,
- 0xbb, 0x1b, 0x29, 0xbf, 0x61, 0xdb, 0x1e, 0xfa, 0x29, 0x35, 0x62, 0x72,
- 0xd6, 0xd8, 0x87, 0x12, 0x69, 0x90, 0xd6, 0x37, 0xe8, 0xc8, 0x7a, 0x08,
- 0xed, 0xd0, 0x8c, 0x39, 0x18, 0xed, 0xa7, 0x04, 0x38, 0x7b, 0x18, 0x2a,
- 0x5a, 0x67, 0x88, 0x38, 0x4c, 0x3c, 0xa3, 0x6a, 0x66, 0xd1, 0x97, 0x3f,
- 0x03, 0xfa, 0xbf, 0x6b, 0x08, 0x0c, 0xa9, 0xf9, 0xff, 0x88, 0x63, 0xac,
- 0xda, 0x48, 0xda, 0x99, 0xb4, 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6,
- 0x68, 0x29, 0x49, 0xf9, 0xff, 0xe2, 0x23, 0xac, 0xda, 0x48, 0xda, 0x99,
- 0xb4, 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x68, 0x29, 0x49, 0xf9,
- 0xff, 0xe2, 0x23, 0xac, 0xda, 0x48, 0xda, 0x99, 0xb4, 0x52, 0xd3, 0xf3,
- 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44, 0x64, 0x79,
- 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb, 0x63, 0x06,
- 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4, 0x52, 0xd3,
- 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44, 0x64,
- 0x79, 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb, 0x63,
- 0x06, 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4, 0x52,
- 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44,
- 0x64, 0x79, 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb,
- 0x63, 0x06, 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4,
- 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc,
- 0x45, 0xa0, 0xa5, 0x27, 0xe0, 0xca, 0xfa, 0x2d, 0x17, 0x7f, 0x98, 0xbd,
- 0x76, 0xc6, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x19,
- 0x5f, 0x45, 0xa2, 0xef, 0xf3, 0x17, 0xae, 0xd8, 0xc1, 0xaa, 0xb6, 0xff,
- 0xf1, 0x16, 0x82, 0x94, 0x9f, 0x83, 0x2b, 0xe8, 0xb4, 0x5d, 0xfe, 0x62,
- 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0xd0, 0x52, 0x93, 0xf0,
- 0x65, 0x7d, 0x16, 0x8b, 0xbf, 0xcc, 0x5e, 0xbb, 0x63, 0x06, 0xaa, 0xdb,
- 0xff, 0xc4, 0x5a, 0x0a, 0x52, 0x7e, 0x0c, 0xaf, 0xa2, 0xd1, 0x77, 0xf9,
- 0x8b, 0xd7, 0x6c, 0x60, 0xd5, 0x5b, 0x7f, 0xf8, 0x8b, 0x41, 0x4a, 0x4f,
- 0xc1, 0x95, 0xf4, 0x5a, 0x2e, 0xff, 0x31, 0x7a, 0xed, 0x8c, 0x1a, 0xab,
- 0x6f, 0xff, 0x11, 0x68, 0x29, 0x49, 0xf8, 0x32, 0xbe, 0x8b, 0x45, 0xdf,
- 0xed, 0xa2, 0x96, 0x9f, 0x86, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14,
- 0xa4, 0xfc, 0x1d, 0x66, 0xd2, 0x46, 0xd4, 0xdf, 0xed, 0xa2, 0x96, 0x9f,
- 0x86, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x1d, 0x66,
- 0xd2, 0x46, 0xd4, 0xdf, 0xed, 0xa2, 0x96, 0x9f, 0x86, 0x0d, 0x55, 0xb7,
- 0xff, 0x88, 0x4d, 0x06, 0x54, 0xfc, 0x6e, 0x1e, 0x51, 0xb5, 0x37, 0xfb,
- 0x68, 0xcb, 0x9f, 0x92, 0x35, 0xb5, 0xf8, 0x57, 0xff, 0xff, 0xbf, 0x3f,
- 0xff, 0xe4, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x39, 0xff, 0xff, 0xff, 0xf8,
- 0xac, 0xeb, 0xd7, 0xaf, 0x98, 0xf8, 0x23, 0xde, 0x08, 0x5f, 0xed, 0x0c,
- 0xc4, 0xc4, 0xff, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30, 0x2b, 0x58, 0x1e,
- 0x31, 0x80, 0x58, 0x40, 0x7c, 0x61, 0xe9, 0x8e, 0x4d, 0x68, 0xc8, 0x2f,
- 0x53, 0x3d, 0x88, 0xdb, 0x86, 0x79, 0xa1, 0xb7, 0x57, 0xc4, 0xc9, 0x13,
- 0xea, 0x4b, 0x96, 0x1f, 0x5f, 0x4b, 0x19, 0x25, 0x2d, 0x04, 0xb1, 0x20,
- 0x19, 0xdd, 0x2f, 0xd2, 0x73, 0xb5, 0x96, 0x9a, 0xef, 0x3f, 0xd1, 0x39,
- 0x11, 0x39, 0x70, 0x0a, 0x54, 0xf3, 0xfc, 0x4f, 0xff, 0xaf, 0x5f, 0x16,
- 0x6c, 0xd2, 0x00, 0xed, 0x4f, 0x6f, 0x82, 0x6e, 0x7b, 0x74, 0x14, 0xc3,
- 0xf0, 0xc7, 0xef, 0x7e, 0x29, 0x4b, 0x2f, 0x00, 0x43, 0x2b, 0x0f, 0x98,
- 0xf7, 0xe4, 0x1a, 0xa2, 0x15, 0x72, 0xc8, 0x9e, 0x02, 0x07, 0xb4, 0x07,
- 0xec, 0x83, 0xff, 0x94, 0x20, 0x0d, 0x75, 0xbf, 0xff, 0xeb, 0xd0, 0x88,
- 0x88, 0x34, 0x02, 0x74, 0x07, 0x1e, 0x23, 0xba, 0xe9, 0x61, 0x9f, 0xee,
- 0x3c, 0xdd, 0x54, 0x40, 0x5c, 0x79, 0xd8, 0xeb, 0x68, 0x3c, 0x19, 0x79,
- 0xfa, 0x04, 0x20, 0x4c, 0xc3, 0x01, 0x4f, 0xa6, 0x9f, 0x09, 0xf4, 0x05,
- 0x40, 0x7d, 0xeb, 0x19, 0xb0, 0xc5, 0x3d, 0x3e, 0x94, 0xc5, 0x66, 0x0c,
- 0x0f, 0x9f, 0xd0, 0x0e, 0xc3, 0xbd, 0x63, 0x3a, 0xf5, 0xeb, 0x21, 0xe1,
- 0x8e, 0xb7, 0xd7, 0xaf, 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xac, 0x55, 0x81, 0xcb, 0xae, 0x5d, 0x63, 0x7e, 0xfe, 0xba, 0xf5, 0xeb,
- 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a,
- 0xf5, 0xeb, 0xd7, 0xef, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xe1, 0x4f, 0xff,
- 0xf8, 0xff, 0xff, 0xde, 0x7f, 0xf2, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xd4,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xec, 0x61, 0x01, 0x6f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xfb, 0xc4, 0x79, 0x31, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0x91, 0x70, 0xd3, 0x7a, 0xff, 0xfc, 0x52, 0x01, 0x82,
- 0x49, 0x89, 0x18, 0xe0, 0x4a, 0xc0, 0x03, 0xe9, 0xb6, 0x16, 0xd0, 0x10,
- 0x96, 0xef, 0xe5, 0x0c, 0xf9, 0x4a, 0x87, 0x58, 0xa4, 0x94, 0xb7, 0xe2,
- 0x01, 0x60, 0x91, 0x61, 0x99, 0x33, 0xf4, 0x94, 0xd4, 0x17, 0x66, 0x49,
- 0x60, 0x48, 0x49, 0x12, 0x55, 0xe7, 0x89, 0xff, 0xff, 0xfe, 0x63, 0x46,
- 0x53, 0x15, 0x29, 0x8f, 0x17, 0xc7, 0x81, 0x27, 0x49, 0x2e, 0x1e, 0x60,
- 0xc1, 0xa0, 0x25, 0xc2, 0x26, 0x6f, 0xd6, 0xcf, 0xa0, 0x36, 0xdf, 0x00,
- 0x5b, 0xc4, 0x3a, 0x93, 0x3c, 0xbb, 0xc0, 0x1a, 0xf9, 0xe9, 0x07, 0x7a,
- 0xeb, 0x57, 0x5f, 0xcd, 0x9f, 0x6b, 0x95, 0x9e, 0xf7, 0xd6, 0xb3, 0x8c,
- 0xcf, 0xcc, 0x58, 0x10, 0xb7, 0x1f, 0xbb, 0x3f, 0xe2, 0x17, 0x0c, 0xc4,
- 0xb1, 0x1a, 0xc2, 0xf9, 0x9e, 0x67, 0x1d, 0xf0, 0xff, 0x84, 0xa0, 0x7a,
- 0xa3, 0x39, 0x52, 0x01, 0x17, 0xd3, 0xb8, 0xfd, 0xbf, 0xe4, 0x1a, 0x05,
- 0x90, 0x79, 0x85, 0x60, 0x3f, 0xfe, 0x12, 0x78, 0xd4, 0x47, 0x4d, 0x3c,
- 0x93, 0x3d, 0x3d, 0x3f, 0xe2, 0x57, 0x0b, 0x00, 0x01, 0x3c, 0x80, 0x81,
- 0xa8, 0xd8, 0x7a, 0x0d, 0x90, 0x07, 0xb5, 0x5f, 0x72, 0xc0, 0xbf, 0x66,
- 0x30, 0x32, 0xcf, 0x7f, 0xff, 0xff, 0xff, 0x98, 0x88, 0x03, 0xdf, 0xfc,
- 0x24, 0x86, 0xf3, 0x30, 0xbf, 0x50, 0x63, 0x04, 0x33, 0x29, 0x0d, 0xcc,
- 0x12, 0x69, 0x29, 0xf7, 0xc7, 0xfc, 0xfe, 0xb8, 0xa2, 0xc1, 0xa0, 0x4e,
- 0x82, 0x54, 0x09, 0xd0, 0x4a, 0x81, 0x3a, 0x09, 0x50, 0x27, 0x41, 0x37,
- 0xda, 0xde, 0xc6, 0xd8, 0x53, 0x61, 0xc2, 0x66, 0x07, 0xc2, 0x14, 0x2d,
- 0xe1, 0x94, 0x59, 0x7a, 0xf5, 0xe3, 0x3d, 0x84, 0xff, 0xe8, 0xec, 0x7f,
- 0x63, 0x80, 0x8d, 0xab, 0x6f, 0xf3, 0x5a, 0xcf, 0xc8, 0x9b, 0xf1, 0x38,
- 0x74, 0x93, 0x15, 0xc2, 0x73, 0x9f, 0x02, 0x2d, 0xe7, 0xa5, 0xe1, 0xc9,
- 0xe3, 0x3e, 0x78, 0x9c, 0x47, 0x85, 0x24, 0xfc, 0x67, 0xdd, 0x7b, 0x79,
- 0xff, 0xff, 0xe2, 0x65, 0xf8, 0x8f, 0xf5, 0xe2, 0xe0, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xb1, 0x84, 0x08, 0x5f, 0x7c, 0x46, 0x27, 0xf0, 0x79,
- 0x89, 0xf1, 0x1f, 0xeb, 0xcd, 0xe7, 0xff, 0xaf, 0xff, 0xd7, 0xd4, 0x04,
- 0x0f, 0x89, 0xf3, 0xf8, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e,
- 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe6, 0xf1, 0x5f, 0xfe, 0x1f, 0x34, 0x02,
- 0xfa, 0x50, 0x1a, 0x88, 0xbf, 0x30, 0xf0, 0x80, 0x7f, 0xc3, 0xc8, 0x38,
- 0x32, 0x9b, 0x68, 0x2f, 0xc0, 0xc0, 0xf2, 0x9f, 0x1d, 0xbf, 0xe6, 0xc0,
- 0x1c, 0x7f, 0xf8, 0x4b, 0x00, 0x22, 0x9b, 0x98, 0xda, 0x28, 0xfd, 0xf2,
- 0xa7, 0x67, 0x40, 0x34, 0xe1, 0xc1, 0x4e, 0x25, 0x80, 0xfc, 0xdf, 0xf8,
- 0x0f, 0xc0, 0x13, 0x38, 0x88, 0x9c, 0x47, 0xe0, 0x30, 0x73, 0x47, 0xff,
- 0xf8, 0x4c, 0x70, 0x04, 0xeb, 0x61, 0x79, 0x2f, 0x6c, 0x41, 0x32, 0x42,
- 0x64, 0xcc, 0xf1, 0xc0, 0x79, 0x09, 0x13, 0x38, 0x8b, 0x78, 0x8f, 0x11,
- 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2,
- 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x0a, 0x60, 0x25,
- 0xf7, 0x01, 0xe6, 0xf3, 0xe0, 0x0d, 0x5d, 0x26, 0xf9, 0xef, 0xfc, 0x0e,
- 0x88, 0xb7, 0x3c, 0x27, 0x28, 0x7a, 0xdb, 0x6d, 0x98, 0x1e, 0x6f, 0x08,
- 0x11, 0x96, 0xe6, 0xc8, 0x7c, 0x38, 0x8c, 0xb7, 0x36, 0x43, 0xf1, 0x11,
- 0x38, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
- 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f,
- 0xc0, 0x40, 0x7f, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0xff,
- 0xf2, 0x78, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xab, 0x57, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xf8, 0xac,
- 0xff, 0xf7, 0x98, 0xfc, 0x04, 0x8f, 0x5c, 0xad, 0x0c, 0xc4, 0xc4, 0xff,
- 0xff, 0xfd, 0xff, 0xe1, 0x83, 0x40, 0x9f, 0x66, 0x7b, 0x50, 0x22, 0x82,
- 0x47, 0xfa, 0x18, 0xf1, 0xd1, 0xe2, 0x3b, 0x8e, 0xda, 0x64, 0xce, 0x1a,
- 0x1c, 0x07, 0x0c, 0x07, 0xf0, 0xff, 0x04, 0x02, 0xc8, 0x8d, 0xdf, 0x4e,
- 0x95, 0xed, 0x31, 0x3f, 0xfe, 0xfd, 0xf8, 0x63, 0xf5, 0x8c, 0x40, 0x3c,
- 0x59, 0x38, 0x24, 0x7b, 0x01, 0x0b, 0x7a, 0x4e, 0xeb, 0xf3, 0x77, 0x29,
- 0x93, 0x3f, 0x3b, 0xf7, 0xef, 0xc3, 0x02, 0xbb, 0x88, 0x7c, 0x84, 0xb0,
- 0x4c, 0xc0, 0xdb, 0x8d, 0x21, 0x1b, 0x5b, 0xf3, 0x34, 0x33, 0xfc, 0x6a,
- 0x95, 0xdf, 0xff, 0xfe, 0xc4, 0xc4, 0x28, 0x04, 0xe1, 0x55, 0xb0, 0x7e,
- 0x72, 0xfd, 0x07, 0xff, 0x3e, 0x83, 0x32, 0xe1, 0x8b, 0x43, 0xe4, 0xdf,
- 0x84, 0xfe, 0xc7, 0x8e, 0x26, 0xeb, 0x58, 0xcd, 0x82, 0x5c, 0x08, 0xf7,
- 0xa5, 0xdf, 0xff, 0xcc, 0xe8, 0x78, 0x5a, 0xca, 0xdb, 0x28, 0x0b, 0xa0,
- 0xc5, 0xdd, 0x33, 0x5a, 0xc6, 0x77, 0xe1, 0x99, 0xf0, 0xd7, 0xbf, 0x0d,
- 0x77, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x80,
- 0x82, 0xef, 0x97, 0x59, 0xb3, 0xfd, 0xfd, 0x77, 0xef, 0xdf, 0xbf, 0x0d,
- 0x78, 0x6b, 0xdf, 0xbf, 0x7e, 0xfc, 0x35, 0xe1, 0xaf, 0x0d, 0x7b, 0xf7,
- 0xef, 0xc3, 0x1f, 0xff, 0xf0, 0xf4, 0x50, 0x00, 0x27, 0xf0, 0xcf, 0x86,
- 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xa3, 0xff,
- 0xbc, 0xff, 0xe4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xed, 0x69, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1,
- 0x5e, 0x77, 0x93, 0xf2, 0x9f, 0x04, 0x9e, 0x03, 0xfb, 0xe5, 0x05, 0xe6,
- 0x7c, 0x38, 0x89, 0x36, 0xf0, 0xac, 0xcb, 0x80, 0x49, 0x6b, 0x6d, 0x17,
- 0xff, 0x4f, 0x13, 0x13, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xa0, 0x84, 0xe8,
- 0xa3, 0xa3, 0xf2, 0xd1, 0xf8, 0xd6, 0x7e, 0x3b, 0x0f, 0xf9, 0xd2, 0xf7,
- 0xe4, 0x3c, 0x3b, 0x6c, 0x80, 0x1c, 0xff, 0x89, 0xa1, 0x70, 0x20, 0x35,
- 0x7e, 0x29, 0xc2, 0x2d, 0xf2, 0xc6, 0xac, 0xea, 0x6c, 0x6e, 0x61, 0xa7,
- 0x25, 0x0c, 0x0b, 0xe0, 0xd5, 0x37, 0xcc, 0x68, 0x16, 0xb0, 0x35, 0xc4,
- 0x70, 0xb2, 0x19, 0xee, 0xd9, 0x98, 0xb7, 0x49, 0x95, 0x32, 0x0f, 0xbd,
- 0x30, 0x23, 0xe1, 0xfc, 0xc4, 0xe5, 0x24, 0x31, 0xcb, 0x61, 0x01, 0x7f,
- 0x23, 0x97, 0x7a, 0x36, 0x76, 0x8e, 0xaf, 0x78, 0xee, 0xda, 0x00, 0xb4,
- 0x34, 0x4d, 0x43, 0x58, 0xf4, 0x8c, 0xae, 0x77, 0x98, 0x44, 0x67, 0x96,
- 0x44, 0x2c, 0xaa, 0x16, 0x58, 0x39, 0x11, 0x9a, 0x5a, 0x4f, 0x03, 0x64,
- 0x0c, 0x10, 0x30, 0xf1, 0x22, 0xfe, 0x13, 0x6c, 0x54, 0xac, 0x54, 0x45,
- 0xda, 0xf6, 0x1c, 0x08, 0xc2, 0x2a, 0x07, 0xc3, 0xff, 0xe2, 0x7f, 0xff,
- 0xff, 0xfc, 0x20, 0x6e, 0x08, 0x7e, 0x77, 0xed, 0xbc, 0xe4, 0xe9, 0xc8,
- 0x4c, 0xa4, 0xda, 0x8e, 0x6f, 0xc4, 0x64, 0xcc, 0x1e, 0xdf, 0x00, 0x30,
- 0x3c, 0xaf, 0x8e, 0xd8, 0xb4, 0x8e, 0x28, 0x13, 0xe1, 0x63, 0x0a, 0x79,
- 0x17, 0x9c, 0xf8, 0x06, 0x7e, 0x08, 0x51, 0xaa, 0xc7, 0x3a, 0x8b, 0x06,
- 0x29, 0xfc, 0x82, 0x63, 0x78, 0x8e, 0xb9, 0x84, 0x41, 0x23, 0x60, 0x2f,
- 0x7e, 0x7c, 0x8a, 0x50, 0x30, 0x13, 0xbf, 0xaf, 0x4f, 0xfe, 0xe0, 0x9b,
- 0x60, 0x6f, 0x78, 0xab, 0x0f, 0x3f, 0xe2, 0x1c, 0x33, 0x15, 0xf3, 0xc2,
- 0x3c, 0x17, 0x98, 0x2a, 0xbf, 0xea, 0x73, 0x82, 0x7e, 0x1e, 0xb8, 0x40,
- 0x8f, 0xd0, 0xf6, 0x00, 0x25, 0x68, 0x0f, 0xea, 0x42, 0x17, 0xe8, 0x0f,
- 0xf1, 0x7f, 0x37, 0xfe, 0x7f, 0x82, 0x02, 0xfc, 0x32, 0x83, 0xf0, 0xef,
- 0xff, 0xff, 0xf8, 0x81, 0x13, 0x60, 0xc8, 0x92, 0x20, 0xe8, 0x09, 0x82,
- 0xaa, 0x2b, 0x08, 0x9b, 0x1c, 0xf3, 0x39, 0x70, 0xe0, 0x1d, 0xf3, 0x47,
- 0xc3, 0xff, 0x09, 0x43, 0xe9, 0xa0, 0x66, 0x3c, 0xad, 0x41, 0xf8, 0x02,
- 0x29, 0xa0, 0x66, 0x38, 0x95, 0xa8, 0x01, 0x14, 0xd0, 0x33, 0x14, 0xd5,
- 0xab, 0xc3, 0x9f, 0x94, 0xa1, 0xb8, 0x7f, 0x3f, 0x41, 0x3f, 0xf6, 0x3b,
- 0x1f, 0xd8, 0xec, 0x71, 0x11, 0x2f, 0x37, 0xff, 0xf7, 0x82, 0x13, 0x60,
- 0x01, 0x9b, 0x7f, 0xca, 0xf9, 0x7d, 0xaa, 0x8f, 0x61, 0x1f, 0xbe, 0x74,
- 0xc6, 0x73, 0xf2, 0x71, 0x13, 0xa6, 0x2d, 0x61, 0x94, 0x1f, 0x86, 0x03,
- 0xd5, 0xf9, 0x18, 0xe3, 0xf4, 0x00, 0x43, 0x1a, 0x5c, 0x3e, 0xc6, 0xbd,
- 0x9f, 0x2b, 0xb4, 0xb1, 0xf4, 0x02, 0x3f, 0x07, 0x91, 0x5b, 0xaf, 0xc4,
- 0xef, 0x55, 0x78, 0x65, 0xeb, 0xbf, 0xf7, 0xfb, 0xbc, 0x77, 0xb3, 0xf9,
- 0xbf, 0xfb, 0x93, 0x96, 0x33, 0xc0, 0x25, 0x14, 0x8d, 0xaa, 0xf3, 0x00,
- 0x94, 0x52, 0x36, 0xab, 0xc0, 0xbf, 0x7b, 0xe1, 0x23, 0x73, 0x80, 0x0f,
- 0xff, 0x96, 0x62, 0x0f, 0xc3, 0xd2, 0x2f, 0x8b, 0xc0, 0x5e, 0x69, 0x3b,
- 0xbf, 0x2f, 0xf0, 0x96, 0x00, 0x43, 0x1a, 0x5c, 0x3e, 0xc6, 0xbd, 0x83,
- 0x2e, 0xe9, 0xe4, 0xfd, 0xff, 0x40, 0xdf, 0xef, 0xa2, 0x37, 0xb9, 0x07,
- 0xf7, 0xe3, 0x39, 0xb3, 0x28, 0x87, 0xe4, 0xf4, 0xf1, 0x24, 0x2c, 0x01,
- 0x98, 0x75, 0xf3, 0x5b, 0x7f, 0xdf, 0xbe, 0xff, 0xfb, 0xff, 0x06, 0x1c,
- 0x9e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4, 0x57, 0xff,
- 0x80, 0x99, 0xc4, 0x77, 0xeb, 0xc6, 0xff, 0xdf, 0xfd, 0x78, 0xee, 0x43,
- 0x41, 0x0e, 0x9f, 0xfb, 0xfe, 0xd2, 0xc0, 0x65, 0x23, 0xbe, 0x7b, 0xf3,
- 0xfe, 0x23, 0x01, 0x23, 0x56, 0x7b, 0xf3, 0xf8, 0x81, 0x62, 0x8e, 0x2e,
- 0xaf, 0x27, 0xfb, 0x30, 0xd8, 0x5e, 0xd8, 0xcf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x39, 0xbf, 0xe2, 0x4a,
- 0x7f, 0xe7, 0xfe, 0x13, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf1,
- 0x5f, 0xff, 0x93, 0xc5, 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xab, 0x99, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfd,
- 0xff, 0x5e, 0x8b, 0x89, 0xff, 0xff, 0xfb, 0xf7, 0xef, 0xe2, 0x90, 0x03,
- 0x13, 0x4e, 0x9f, 0x7b, 0xa9, 0x26, 0xdb, 0x58, 0x01, 0xad, 0x0d, 0x5f,
- 0xc1, 0x72, 0xbb, 0x09, 0x4e, 0x1d, 0x25, 0xe3, 0x91, 0x18, 0x55, 0x67,
- 0x8d, 0xf9, 0x24, 0x08, 0x88, 0x12, 0x27, 0x87, 0x44, 0xa6, 0x7b, 0xb7,
- 0xff, 0x99, 0x00, 0x61, 0x5e, 0xb1, 0xe7, 0xff, 0xf1, 0x3f, 0xff, 0xdf,
- 0xac, 0x62, 0xe1, 0x84, 0xd2, 0xdd, 0x90, 0x04, 0xcc, 0xe8, 0x8c, 0xcb,
- 0xc2, 0x5f, 0xbe, 0x68, 0xf0, 0x0a, 0x65, 0x76, 0xee, 0x51, 0x94, 0x74,
- 0xe1, 0xd6, 0x0c, 0x49, 0x99, 0xab, 0xb3, 0xa4, 0x77, 0xef, 0xdf, 0xbf,
- 0x0c, 0x05, 0x57, 0xfd, 0x4e, 0x30, 0x4e, 0xf5, 0x60, 0x2e, 0x04, 0x61,
- 0x3e, 0x1c, 0xd5, 0x75, 0xff, 0xfd, 0xf9, 0x38, 0x1f, 0x04, 0x10, 0x6c,
- 0x77, 0x99, 0xf2, 0x73, 0xff, 0x02, 0x66, 0xee, 0xbf, 0xc1, 0x22, 0x44,
- 0x28, 0x1e, 0xef, 0x06, 0x4f, 0x78, 0x7c, 0x84, 0x89, 0x91, 0xaa, 0x4e,
- 0x3c, 0xfa, 0xef, 0x30, 0x9e, 0x01, 0x1e, 0xbe, 0xda, 0x18, 0xf2, 0x72,
- 0x22, 0x22, 0x22, 0xf1, 0x24, 0xe1, 0x33, 0xed, 0x6c, 0x03, 0x5e, 0x4e,
- 0xe4, 0xbc, 0xef, 0xd0, 0x1a, 0x08, 0x3f, 0x00, 0xdb, 0x40, 0x73, 0xf5,
- 0xd6, 0x33, 0x6f, 0xc3, 0x1e, 0x44, 0x45, 0x22, 0x97, 0x82, 0x6f, 0x80,
- 0x10, 0x24, 0xfe, 0x04, 0x38, 0xf8, 0xe8, 0x10, 0x98, 0x09, 0x93, 0x18,
- 0xfb, 0x71, 0x17, 0xac, 0x5c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xae,
- 0x65, 0x81, 0x0b, 0xe5, 0xd6, 0x37, 0xef, 0xeb, 0x1c, 0xfd, 0xfb, 0xe4,
- 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x4f, 0xff, 0xfe,
- 0x3f, 0xff, 0xf7, 0x9f, 0xfc, 0x98, 0x9f, 0xff, 0xff, 0xff, 0xf5, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xee, 0x71, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xc2, 0x3c, 0xc7, 0xc3, 0x75, 0xbf, 0xc5, 0xf0, 0x4e, 0xd3, 0x1e,
- 0xab, 0x5f, 0x1d, 0x5e, 0x3f, 0x33, 0xe1, 0x94, 0xac, 0xbc, 0xcb, 0x80,
- 0x08, 0x8b, 0x68, 0xe2, 0xd7, 0x7b, 0xfe, 0xac, 0x33, 0x2b, 0xc1, 0x77,
- 0x2f, 0xb3, 0x53, 0x9e, 0xef, 0x13, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x85,
- 0x5e, 0x3e, 0x68, 0xf1, 0x97, 0x05, 0x5a, 0x88, 0x24, 0x72, 0xd1, 0xe5,
- 0x04, 0x3f, 0x37, 0x72, 0x77, 0x66, 0xb8, 0x6f, 0x56, 0xc6, 0xf7, 0x1e,
- 0x5c, 0x73, 0x39, 0xa6, 0x55, 0xff, 0xc5, 0x30, 0xcc, 0x89, 0xd3, 0xc2,
- 0x2e, 0x32, 0xec, 0xa2, 0x56, 0x90, 0x70, 0x6c, 0x07, 0x31, 0xa0, 0x49,
- 0xee, 0xcc, 0xe4, 0x8a, 0xbb, 0x20, 0x00, 0xcf, 0x7e, 0x8d, 0x31, 0x95,
- 0xff, 0x66, 0xef, 0x7c, 0x70, 0xd2, 0xfc, 0x18, 0xce, 0x1b, 0xc5, 0xd6,
- 0xf3, 0xaa, 0xf3, 0xa1, 0x04, 0x4d, 0x3f, 0xd6, 0x06, 0x39, 0x36, 0x7a,
- 0x4b, 0xdf, 0xd2, 0x3a, 0xab, 0x16, 0x55, 0xdb, 0xe0, 0x2d, 0x89, 0x38,
- 0x68, 0x06, 0x6f, 0x0e, 0xed, 0x90, 0xbb, 0x79, 0xa0, 0xa5, 0x13, 0xf0,
- 0x1e, 0x7c, 0x8d, 0x2d, 0x9a, 0xf2, 0x93, 0xfd, 0x0b, 0xaf, 0x5c, 0xbc,
- 0x49, 0xe1, 0x22, 0xdc, 0xd3, 0x67, 0xf6, 0x9f, 0xe1, 0x31, 0x7d, 0xdf,
- 0xa7, 0x47, 0x34, 0x00, 0x02, 0x01, 0xa0, 0xe7, 0x62, 0x01, 0x0f, 0x74,
- 0x44, 0x3f, 0xa6, 0xfa, 0x31, 0x68, 0xa1, 0xdb, 0x7f, 0x6c, 0x5e, 0xde,
- 0xf8, 0xfe, 0xc0, 0xff, 0x17, 0x8a, 0xff, 0xff, 0xc8, 0x6e, 0x1b, 0x8b,
- 0xbf, 0xc2, 0x3c, 0x07, 0x7f, 0x96, 0x09, 0x5b, 0xd2, 0xc7, 0xd3, 0x0d,
- 0x3a, 0x57, 0x31, 0x84, 0xca, 0xa3, 0x81, 0xef, 0x34, 0xee, 0xf1, 0xe0,
- 0x1c, 0xdf, 0x8a, 0x91, 0x00, 0xbb, 0xaa, 0xdb, 0xfc, 0x00, 0xc0, 0xf5,
- 0x7c, 0x76, 0xc5, 0x83, 0x0c, 0x3a, 0xa9, 0xc0, 0x23, 0x2a, 0x75, 0x4f,
- 0xfd, 0xfe, 0x60, 0x85, 0x15, 0xb3, 0x00, 0x35, 0x08, 0x44, 0x97, 0x60,
- 0x07, 0x40, 0x44, 0x89, 0x7a, 0x83, 0xd7, 0x45, 0xbe, 0x98, 0x7f, 0x63,
- 0x37, 0x7f, 0x76, 0x59, 0x84, 0x4f, 0x9f, 0x8d, 0x8d, 0x43, 0xfc, 0xf1,
- 0x55, 0x84, 0xf5, 0xb0, 0xde, 0xae, 0x73, 0x71, 0xe8, 0x3c, 0x4c, 0x31,
- 0x7c, 0xc5, 0xb4, 0x00, 0xcf, 0xaa, 0xff, 0xf7, 0xf9, 0xdd, 0x7e, 0x45,
- 0x42, 0x0f, 0xa1, 0xf2, 0xfe, 0xe3, 0x81, 0x8d, 0x32, 0x03, 0xdf, 0xae,
- 0x06, 0x01, 0x0d, 0x46, 0x03, 0x80, 0x57, 0x43, 0x06, 0x21, 0xc0, 0x3f,
- 0xe1, 0x3e, 0x12, 0x30, 0xfe, 0x65, 0x26, 0xf0, 0x87, 0xbc, 0xe3, 0xd8,
- 0x1f, 0xd7, 0xaf, 0xff, 0x90, 0x91, 0x94, 0xc7, 0xf1, 0x1c, 0x3b, 0x3b,
- 0x40, 0x4f, 0xac, 0x07, 0x7f, 0x6c, 0x18, 0x1d, 0x04, 0x88, 0x2f, 0xa9,
- 0xba, 0x38, 0x51, 0x38, 0x03, 0xec, 0xc8, 0x15, 0xdc, 0xbf, 0xe1, 0x28,
- 0xc8, 0x08, 0xad, 0x87, 0x62, 0x52, 0x4f, 0x09, 0x25, 0xc7, 0xbb, 0x9f,
- 0xfc, 0x33, 0x81, 0x56, 0xb4, 0xd4, 0xce, 0xef, 0xe2, 0x60, 0x5e, 0x17,
- 0x98, 0xa3, 0x8e, 0xbb, 0x6d, 0x95, 0xa5, 0x9d, 0xe8, 0xa3, 0x31, 0xdf,
- 0x68, 0x8e, 0xbe, 0xf0, 0x67, 0xe3, 0x8b, 0x00, 0x67, 0xd5, 0x7f, 0xfb,
- 0xfe, 0x30, 0x92, 0xbf, 0x7c, 0x09, 0x8f, 0x7f, 0xc3, 0xac, 0x18, 0xe4,
- 0x8e, 0xf8, 0x17, 0x62, 0x79, 0x5e, 0x84, 0x44, 0xe6, 0x33, 0xa6, 0x1f,
- 0x3a, 0x60, 0x9c, 0x40, 0x25, 0xf1, 0xfa, 0xf0, 0x83, 0xf0, 0x3f, 0x79,
- 0xc0, 0x57, 0xdc, 0xb6, 0x1f, 0xf6, 0xb8, 0x01, 0xf2, 0xfb, 0x44, 0xdc,
- 0x52, 0xf6, 0xe6, 0xec, 0xdf, 0xf7, 0xf8, 0xee, 0x2b, 0x0e, 0xfa, 0x03,
- 0xde, 0xab, 0x03, 0xed, 0xf0, 0xcc, 0x68, 0x0d, 0xa1, 0x77, 0xf3, 0xc4,
- 0xe7, 0xf3, 0x7d, 0x21, 0xc7, 0x84, 0x60, 0xaf, 0x00, 0xbe, 0xa8, 0x0f,
- 0xa8, 0x10, 0xe0, 0xa5, 0xcf, 0x41, 0xa7, 0xb0, 0x1c, 0x13, 0x0e, 0xa9,
- 0x6e, 0x18, 0x1f, 0x57, 0xc7, 0x70, 0x00, 0x56, 0xb6, 0x97, 0xd7, 0xb5,
- 0xc5, 0xb6, 0xa3, 0xb9, 0x9c, 0x20, 0xc0, 0xff, 0x03, 0x08, 0x5e, 0xa0,
- 0x3e, 0xaa, 0x30, 0xa4, 0xa0, 0x00, 0x93, 0x49, 0xa6, 0x9a, 0x69, 0xb4,
- 0xfe, 0x00, 0xa0, 0x99, 0x18, 0x08, 0x29, 0x06, 0xda, 0xbf, 0xff, 0x30,
- 0xf7, 0x1f, 0xfe, 0x1f, 0x20, 0x00, 0x60, 0xac, 0xbf, 0x4c, 0x71, 0x78,
- 0x1c, 0x3c, 0xd7, 0xdc, 0x7f, 0xf8, 0x48, 0xb0, 0x06, 0x95, 0x25, 0x3f,
- 0x3f, 0xcf, 0x7e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4,
- 0x09, 0x5c, 0x86, 0x8e, 0x1c, 0x3d, 0xf0, 0xe8, 0x95, 0xc3, 0x6c, 0x3d,
- 0xb5, 0x9b, 0x81, 0x3b, 0xd0, 0x17, 0xec, 0x0f, 0xff, 0xff, 0xe1, 0xc8,
- 0xfe, 0x3f, 0xb4, 0xe6, 0x75, 0x6e, 0xfb, 0x8a, 0x8d, 0xb7, 0x44, 0xfa,
- 0xfb, 0xf3, 0xff, 0x0e, 0x7e, 0xb0, 0xe1, 0xa7, 0x04, 0x01, 0x1f, 0x74,
- 0x7f, 0x73, 0x89, 0x0e, 0x86, 0x40, 0xfc, 0x3f, 0xcf, 0x5e, 0x3b, 0x91,
- 0xc2, 0x4c, 0x1e, 0xa7, 0xf0, 0xe3, 0x49, 0x12, 0x8d, 0x50, 0x00, 0x23,
- 0xfc, 0x91, 0x81, 0xfa, 0x89, 0x93, 0xcb, 0xc5, 0x99, 0xdc, 0x61, 0x33,
- 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x91, 0xc1, 0x27, 0xc0, 0xed, 0x5e, 0x14, 0xf5, 0xff, 0xff, 0xc2,
- 0x1f, 0xf1, 0x9f, 0xff, 0x8e, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xab, 0xdb, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xbf,
- 0x7e, 0xfc, 0x31, 0xff, 0xa8, 0x70, 0x85, 0x4f, 0x80, 0x1f, 0x4d, 0x3c,
- 0xe1, 0x0f, 0x5f, 0x80, 0x0e, 0xd9, 0x13, 0x19, 0x01, 0x52, 0x66, 0xaf,
- 0x17, 0x88, 0x36, 0x23, 0x13, 0xff, 0xff, 0xf7, 0xff, 0x86, 0x0d, 0x03,
- 0x05, 0xb3, 0x39, 0x6b, 0xb1, 0x46, 0x7b, 0xb6, 0x66, 0x2d, 0xd2, 0x65,
- 0x4c, 0x87, 0xda, 0x60, 0x71, 0x8d, 0x32, 0x71, 0xe2, 0xf9, 0x10, 0xab,
- 0x37, 0x54, 0x97, 0x28, 0xcf, 0xf3, 0xde, 0x0d, 0xdb, 0x40, 0x16, 0xbc,
- 0x41, 0x55, 0x33, 0xe0, 0xc0, 0xe0, 0xcf, 0xc5, 0xe4, 0xff, 0x3e, 0xa5,
- 0xa2, 0x18, 0x2a, 0x7d, 0x80, 0xbf, 0x09, 0x8b, 0x00, 0x67, 0x98, 0x1c,
- 0x3c, 0x9d, 0xcf, 0x8f, 0x9a, 0x07, 0xa1, 0xeb, 0xf5, 0xe1, 0x1b, 0x67,
- 0x0d, 0x7a, 0x1f, 0xf7, 0xe7, 0x83, 0x28, 0x9f, 0xff, 0x7e, 0xfc, 0x31,
- 0xc7, 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x6c, 0x00, 0x33, 0x6f, 0xf9, 0x5f,
- 0x09, 0x2b, 0xc4, 0x95, 0x40, 0x09, 0xce, 0xe4, 0x82, 0x46, 0x35, 0x40,
- 0x08, 0xcd, 0xce, 0x76, 0xaf, 0x28, 0xbe, 0x12, 0x48, 0xe1, 0xb5, 0xb2,
- 0x46, 0xfc, 0xf3, 0x89, 0x37, 0x00, 0x29, 0x61, 0xf9, 0xdf, 0xbf, 0x7e,
- 0xfd, 0xfe, 0xbf, 0xfd, 0xff, 0x0c, 0x55, 0x05, 0x81, 0xc7, 0xfe, 0x12,
- 0x61, 0x2c, 0xce, 0x22, 0x33, 0x4b, 0xb4, 0x0d, 0x0c, 0x4d, 0xe9, 0x43,
- 0xe9, 0xf8, 0xf1, 0x69, 0x4b, 0x06, 0x36, 0xc2, 0x4c, 0xaa, 0xdf, 0x3f,
- 0x8c, 0x67, 0x5a, 0xdf, 0xb4, 0x7d, 0xf2, 0x8b, 0xff, 0x80, 0x19, 0xdf,
- 0x5a, 0x7e, 0xf8, 0xe7, 0xdf, 0x0c, 0x7f, 0xfe, 0xef, 0x0a, 0x97, 0x80,
- 0x4a, 0x29, 0x1b, 0x55, 0xe6, 0x2b, 0x6e, 0x9e, 0x1f, 0x33, 0xcd, 0x6d,
- 0x7f, 0xff, 0x58, 0x63, 0xfe, 0xe2, 0x2e, 0x3c, 0x67, 0x80, 0x10, 0x87,
- 0xb4, 0x43, 0xa8, 0x3f, 0x00, 0x4a, 0x29, 0x1b, 0x55, 0xe0, 0xad, 0xba,
- 0x78, 0x7c, 0xcf, 0x07, 0xed, 0x6d, 0x7f, 0xff, 0x50, 0xff, 0x58, 0x84,
- 0x28, 0x00, 0x1f, 0x8a, 0x00, 0x02, 0x00, 0x31, 0x9b, 0x58, 0x1d, 0x15,
- 0x7f, 0xa1, 0xba, 0xdb, 0x6d, 0xf8, 0x00, 0x4b, 0xf7, 0x10, 0xe8, 0x14,
- 0xdc, 0x32, 0x3b, 0x7b, 0x7d, 0x78, 0x3f, 0x1c, 0xf9, 0x10, 0x9b, 0x38,
- 0x01, 0x6f, 0x6b, 0x4d, 0xbb, 0xeb, 0x60, 0xfe, 0x4c, 0x5c, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xaf, 0x6d, 0x8a, 0xef, 0x97, 0x58, 0xd7, 0xfb,
- 0xfa, 0xc7, 0x77, 0xf9, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xdf, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3,
- 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xef, 0x79, 0x03, 0xbf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xef, 0x0a, 0x78, 0x82,
- 0x94, 0x4e, 0x00, 0x73, 0xbf, 0xac, 0x3f, 0x63, 0xa7, 0xc4, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x49, 0x7c, 0x50, 0xc0, 0x04, 0x11,
- 0xa9, 0xf2, 0x66, 0xda, 0x0b, 0x34, 0x9b, 0x1f, 0x3f, 0x42, 0xb8, 0x5f,
- 0xa8, 0xac, 0x39, 0x14, 0x16, 0x83, 0x8d, 0xd0, 0x8d, 0xef, 0x39, 0xf1,
- 0x22, 0xe4, 0x0d, 0xf8, 0x3c, 0xcc, 0xa0, 0x71, 0xe7, 0x93, 0x64, 0xaf,
- 0xf7, 0x3f, 0xb5, 0xc1, 0x08, 0xf8, 0x1c, 0x16, 0x27, 0xff, 0xff, 0xff,
- 0xf3, 0x7e, 0xa0, 0xca, 0x85, 0x49, 0x59, 0xb8, 0x01, 0xc5, 0xc8, 0x45,
- 0xec, 0x3c, 0xdb, 0x9c, 0x8d, 0x74, 0xf7, 0x80, 0x84, 0x4b, 0x6a, 0x5d,
- 0x44, 0x8d, 0x40, 0x04, 0xd1, 0x6e, 0x97, 0xb6, 0x7a, 0xa0, 0x01, 0xea,
- 0x80, 0x99, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0x93, 0x6e, 0xab, 0xf1, 0x20,
- 0x0c, 0xea, 0xa3, 0x6a, 0xa8, 0x67, 0x5c, 0x9f, 0xff, 0xff, 0xff, 0xeb,
- 0xff, 0xff, 0xff, 0xfe, 0x21, 0x81, 0x7d, 0xb8, 0x3d, 0x7a, 0x2c, 0x3f,
- 0x20, 0x68, 0xd2, 0xb3, 0x17, 0xe2, 0x3f, 0x7a, 0x7d, 0xf9, 0xfd, 0x7b,
- 0xf5, 0xe3, 0x3d, 0xfb, 0x58, 0x0b, 0x10, 0x30, 0x98, 0xb0, 0x06, 0x3b,
- 0xac, 0x99, 0x3e, 0xbc, 0x67, 0xbc, 0x4e, 0x60, 0xaa, 0xeb, 0xf1, 0x5e,
- 0x2b, 0x9c, 0x34, 0x00, 0xb1, 0xfa, 0xe3, 0xdf, 0x97, 0x31, 0xb5, 0xef,
- 0x7e, 0x01, 0x47, 0xfc, 0x0d, 0x44, 0x5f, 0x9b, 0xfd, 0x75, 0xc3, 0x0a,
- 0xe3, 0xee, 0xff, 0xeb, 0xfc, 0x03, 0xea, 0x87, 0x77, 0x60, 0x2b, 0x6f,
- 0x92, 0x61, 0x7e, 0x7c, 0xdf, 0xff, 0xda, 0x08, 0x5c, 0x01, 0x88, 0x9f,
- 0x44, 0x64, 0x8b, 0xef, 0x45, 0x5e, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xbd, 0xe4, 0x5f, 0x93, 0x90, 0x90, 0x03, 0x32, 0xb2, 0x33,
- 0x46, 0xbb, 0x5f, 0xf1, 0x06, 0x71, 0xdd, 0x03, 0xc3, 0x9e, 0xfc, 0x7b,
- 0xb4, 0xd0, 0x00, 0x37, 0xe7, 0xf8, 0x00, 0x00, 0x7e, 0x00, 0xbd, 0xf8,
- 0x33, 0xa4, 0xc0, 0x0a, 0x2e, 0x60, 0xf1, 0xd1, 0x80, 0xc7, 0xff, 0xdf,
- 0xbf, 0x1d, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff,
- 0xff, 0xfe, 0x2b, 0xff, 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2,
- 0xb3, 0xff, 0xc3, 0x1f, 0xfa, 0x87, 0x08, 0x54, 0xf8, 0x01, 0xf4, 0xd3,
- 0xce, 0x10, 0xf5, 0xf8, 0x01, 0x76, 0x44, 0xcc, 0x20, 0x54, 0x99, 0xd7,
- 0xbe, 0xb2, 0xbc, 0x37, 0xd2, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x18, 0x34,
- 0x08, 0x45, 0x99, 0x9c, 0xb9, 0x58, 0x80, 0xce, 0xe9, 0xcc, 0xcd, 0xd3,
- 0x4e, 0xfa, 0x78, 0x5b, 0xa8, 0xd5, 0x87, 0x6c, 0x6d, 0x22, 0x36, 0xa6,
- 0xbc, 0xdd, 0xbe, 0x03, 0xd8, 0x96, 0x0d, 0x92, 0x60, 0x0d, 0xd9, 0xa0,
- 0x0b, 0x5c, 0x0c, 0x40, 0x54, 0xa6, 0x7c, 0x7c, 0x0c, 0xa3, 0x35, 0x90,
- 0x29, 0xf5, 0x3f, 0xeb, 0x42, 0x01, 0x63, 0x38, 0x6e, 0xb0, 0x71, 0xde,
- 0x38, 0x9d, 0xf7, 0xf1, 0x8d, 0x6f, 0x3e, 0xba, 0xf1, 0x3f, 0xff, 0xf8,
- 0x63, 0x8f, 0x50, 0x71, 0x9b, 0x36, 0xcd, 0x80, 0x18, 0x1e, 0xaf, 0x8e,
- 0xc3, 0xd4, 0x6a, 0x5b, 0xc0, 0x89, 0xac, 0x7f, 0x9f, 0xc6, 0x51, 0xa3,
- 0xb6, 0x1c, 0x19, 0xde, 0x76, 0x84, 0xfe, 0xfd, 0xff, 0xe1, 0x2f, 0x25,
- 0x20, 0x95, 0xd7, 0xff, 0x53, 0x46, 0x92, 0x0f, 0x48, 0x07, 0x99, 0xe3,
- 0xcf, 0xff, 0xff, 0x5f, 0xff, 0xf8, 0x62, 0xd4, 0x93, 0x7f, 0xe1, 0x23,
- 0xc0, 0x28, 0xea, 0xc7, 0xbf, 0xc8, 0x2b, 0x23, 0x8b, 0x1d, 0x23, 0xb1,
- 0x5c, 0x51, 0xb8, 0x4c, 0x3f, 0xc8, 0xe4, 0x10, 0x73, 0xeb, 0x7a, 0xc6,
- 0x6f, 0x61, 0x8f, 0xa4, 0x3f, 0x8c, 0x29, 0x87, 0x21, 0xce, 0xc0, 0x5b,
- 0x5d, 0xf4, 0x7a, 0xd7, 0xbd, 0x6c, 0xf8, 0xed, 0xbf, 0x0c, 0x08, 0x5f,
- 0x50, 0xff, 0x87, 0xf8, 0x02, 0xbc, 0xb9, 0x15, 0x7d, 0x2d, 0xa9, 0x0c,
- 0x62, 0x18, 0x2f, 0xfc, 0x25, 0xc0, 0xe4, 0x03, 0xcc, 0x80, 0x31, 0x1f,
- 0xfa, 0xb3, 0xbc, 0xf0, 0xf9, 0x2c, 0xbc, 0x10, 0xc7, 0xf8, 0x06, 0xab,
- 0x68, 0x56, 0x00, 0x62, 0xfa, 0xfb, 0x3b, 0x67, 0x68, 0xfc, 0x18, 0x3a,
- 0x64, 0x03, 0x74, 0x00, 0xb6, 0x2c, 0x88, 0x3f, 0x5b, 0xef, 0xbc, 0x36,
- 0x03, 0x3c, 0x75, 0x86, 0x1c, 0x76, 0xc1, 0xb0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xb0, 0x75, 0x8b, 0xc8, 0xbf, 0x58, 0xdf, 0xbf, 0xac, 0x77,
- 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff,
- 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xf0, 0x81, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0x57, 0x9f, 0xff, 0xe6, 0x3e, 0x00, 0x44, 0x7e, 0x57, 0xcb, 0x18,
- 0x59, 0xda, 0x35, 0x3f, 0x62, 0x04, 0x89, 0x97, 0x81, 0x67, 0xa4, 0xda,
- 0x2d, 0xab, 0x7f, 0xef, 0xc4, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0xf0, 0x53, 0x14, 0x60, 0xca, 0xd3, 0xae, 0x3b, 0x39, 0x59, 0x20, 0xb9,
- 0x83, 0x6f, 0xf0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x75, 0x84, 0x72, 0x31,
- 0x98, 0x32, 0xb4, 0xeb, 0x8e, 0xc6, 0x10, 0x8c, 0x49, 0x6a, 0x81, 0xc4,
- 0x38, 0x20, 0x62, 0x30, 0x88, 0xcc, 0x99, 0x83, 0x91, 0x19, 0x93, 0x30,
- 0x0e, 0x47, 0xca, 0x1b, 0xd0, 0x20, 0xc9, 0x23, 0x6a, 0x61, 0xc0, 0x00,
- 0x88, 0x46, 0x3c, 0x0a, 0x0a, 0xc7, 0x76, 0x4c, 0x12, 0x77, 0xfe, 0x0c,
- 0x8c, 0xf1, 0xaf, 0xfe, 0xeb, 0x31, 0xda, 0x4e, 0x99, 0x38, 0xd5, 0x57,
- 0xf5, 0xfb, 0xe8, 0x7f, 0x4b, 0x4b, 0x1f, 0x85, 0x42, 0x41, 0x01, 0x04,
- 0x09, 0x12, 0x0c, 0xe7, 0x5e, 0x39, 0xac, 0x6d, 0xfb, 0xca, 0x01, 0x29,
- 0x31, 0x68, 0xa7, 0x7c, 0x8e, 0x85, 0xaf, 0xfc, 0x4f, 0xff, 0xff, 0xfc,
- 0x9f, 0x0e, 0x89, 0xc3, 0x30, 0x80, 0x44, 0xd8, 0x03, 0x45, 0x35, 0xb7,
- 0xe7, 0xc0, 0x0b, 0x79, 0xdc, 0x44, 0xff, 0xff, 0xdc, 0x35, 0xa4, 0x6e,
- 0x75, 0x33, 0xa2, 0x7d, 0xac, 0xbf, 0x01, 0xac, 0x57, 0x6c, 0x9e, 0x3f,
- 0xf1, 0x6c, 0xb4, 0x18, 0x43, 0x27, 0x96, 0x4c, 0x4c, 0x48, 0xbf, 0x60,
- 0x06, 0x5f, 0xfc, 0x44, 0xf5, 0xfd, 0x01, 0xc5, 0x92, 0x63, 0x48, 0xf5,
- 0xfc, 0xb4, 0x13, 0xe2, 0x30, 0xfb, 0x06, 0x0a, 0xec, 0x5c, 0x77, 0xff,
- 0xce, 0xec, 0xdf, 0x45, 0x98, 0x4d, 0x88, 0xe2, 0xec, 0x1d, 0x51, 0x36,
- 0x24, 0x8f, 0x1f, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xa3, 0x41, 0xcc,
- 0xc0, 0x4b, 0xfe, 0x12, 0x72, 0x50, 0x51, 0x2a, 0xef, 0xe0, 0x01, 0xae,
- 0x4d, 0xb9, 0xdb, 0x0c, 0x5d, 0x45, 0xf9, 0x12, 0x09, 0xfb, 0xde, 0x87,
- 0x8b, 0x21, 0x4b, 0x5e, 0x83, 0x39, 0x71, 0x04, 0x88, 0xb6, 0x59, 0x61,
- 0xe6, 0x37, 0xfc, 0x38, 0xdc, 0x7d, 0x77, 0x1a, 0x46, 0xf7, 0xb1, 0xfc,
- 0xc9, 0x1a, 0x26, 0xbf, 0xcf, 0xeb, 0xdf, 0xaf, 0x19, 0xef, 0xdf, 0xaf,
- 0x19, 0xec, 0xdf, 0x09, 0xff, 0xc3, 0xe7, 0xec, 0x0e, 0x6c, 0xfe, 0x87,
- 0x3f, 0x84, 0xd6, 0x19, 0x41, 0xf8, 0x72, 0x2e, 0xc0, 0xff, 0x1b, 0xc0,
- 0x23, 0x7a, 0x58, 0x7e, 0x73, 0x4f, 0x13, 0xfa, 0xf1, 0x70, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x27, 0xec, 0xdf, 0x89, 0xfd, 0x38,
- 0x50, 0x40, 0x02, 0x9f, 0x4c, 0x10, 0xe7, 0xcf, 0x00, 0xfe, 0x07, 0x7c,
- 0x08, 0x6e, 0x15, 0xe6, 0xc3, 0xe7, 0x43, 0xf8, 0x20, 0x60, 0x43, 0xfc,
- 0x0f, 0xde, 0xcf, 0x1c, 0xf7, 0x71, 0xc3, 0x93, 0x51, 0x01, 0x9b, 0xf6,
- 0x2f, 0x69, 0x63, 0x14, 0x01, 0x6f, 0x50, 0x43, 0xa4, 0xc6, 0x15, 0xfe,
- 0x04, 0x62, 0x93, 0x03, 0xf0, 0x80, 0xdf, 0x07, 0xa9, 0xfc, 0x7f, 0xfd,
- 0xf1, 0xeb, 0xc0, 0x0e, 0xed, 0xa6, 0x25, 0x37, 0x9b, 0xe7, 0x80, 0x01,
- 0xb8, 0xa0, 0x00, 0x6e, 0x00, 0xc0, 0x1b, 0xd8, 0x47, 0x11, 0x1d, 0x42,
- 0x00, 0x0d, 0xac, 0xf0, 0x9c, 0x5b, 0xdb, 0xf3, 0xf3, 0x11, 0x11, 0x7f,
- 0xfc, 0x3c, 0x50, 0x48, 0xf3, 0x38, 0xae, 0xc0, 0xff, 0x1c, 0xe0, 0x7f,
- 0xe1, 0x0f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff,
- 0xfe, 0x2b, 0xff, 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xac, 0x5f, 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac,
- 0xff, 0xaf, 0x59, 0x8f, 0x84, 0x5c, 0x2a, 0x54, 0x05, 0x44, 0x71, 0x3f,
- 0xff, 0xff, 0xfd, 0x7c, 0x50, 0xa1, 0xed, 0x0b, 0x11, 0x03, 0x82, 0x88,
- 0x86, 0xe0, 0x03, 0x0b, 0xc8, 0x02, 0x30, 0xa4, 0xe1, 0x8f, 0x42, 0x55,
- 0x6e, 0x2b, 0x26, 0xd5, 0x2d, 0x74, 0x90, 0xf7, 0x8a, 0x18, 0x48, 0x7d,
- 0xbf, 0xc2, 0x62, 0xc0, 0x37, 0x1d, 0xa9, 0xcb, 0x32, 0xa8, 0xb0, 0x98,
- 0xfb, 0xab, 0xdf, 0x74, 0xb6, 0x04, 0x7a, 0xf3, 0xdc, 0x4f, 0xff, 0xf5,
- 0xf1, 0x66, 0xc1, 0x23, 0xcc, 0xee, 0x05, 0x01, 0xda, 0x3a, 0x16, 0xe5,
- 0x0d, 0xb6, 0x65, 0x03, 0xae, 0x7b, 0x7d, 0xbe, 0x62, 0xad, 0x51, 0xff,
- 0xff, 0xeb, 0xff, 0xd7, 0xaf, 0x62, 0x22, 0x0a, 0x12, 0xb6, 0x02, 0x1e,
- 0x3d, 0x0a, 0x7b, 0x90, 0x47, 0xeb, 0xf0, 0x66, 0x6b, 0xbe, 0xe8, 0xa3,
- 0xbb, 0xa7, 0xab, 0x3e, 0x92, 0x24, 0xa1, 0x0f, 0xfb, 0x1f, 0x1a, 0xa8,
- 0xf2, 0x61, 0xdf, 0xd5, 0xe7, 0xd6, 0xf5, 0x8c, 0xde, 0xf5, 0x8c, 0xdb,
- 0x88, 0xc3, 0x19, 0x87, 0xd7, 0x3a, 0x9c, 0x5b, 0xc0, 0x16, 0xfc, 0xf8,
- 0xf6, 0x5f, 0xe0, 0x20, 0x7b, 0xce, 0xf1, 0x17, 0xff, 0x0d, 0xc3, 0xb8,
- 0xdf, 0xeb, 0x17, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x83,
- 0x2f, 0xb5, 0xe1, 0x8e, 0xb9, 0xfd, 0x4e, 0x30, 0x4e, 0x20, 0x01, 0x0e,
- 0xe8, 0x3c, 0x73, 0xdf, 0x80, 0x03, 0xf0, 0x10, 0x3d, 0xe7, 0x78, 0x8a,
- 0x1b, 0x87, 0x71, 0xf0, 0xc7, 0xed, 0xcc, 0x1a, 0x58, 0xcc, 0x13, 0x44,
- 0x74, 0xe2, 0x58, 0x3e, 0x00, 0xb7, 0xef, 0x8f, 0x64, 0x3d, 0x49, 0xf0,
- 0xd0, 0x2a, 0xff, 0x1f, 0xf6, 0xbd, 0x6f, 0xe2, 0x0d, 0xeb, 0x7f, 0x7e,
- 0xb1, 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29,
- 0xff, 0xff, 0x1f, 0xff, 0xfb, 0xcf, 0xfe, 0x4c, 0x4f, 0xff, 0xff, 0xff,
- 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x02, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf0, 0x8f, 0xff, 0xcc, 0x7c, 0x7c, 0x2f, 0x1b,
- 0x61, 0xd0, 0x0b, 0xc4, 0x4d, 0xc6, 0xa5, 0x00, 0x2b, 0x4d, 0xab, 0x4f,
- 0xd3, 0xf7, 0xaf, 0x29, 0x7a, 0x8f, 0x8b, 0x13, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x28, 0x52, 0x24, 0x3e, 0x59, 0x5e, 0x1d, 0xee, 0xfc, 0x23,
- 0x70, 0x7f, 0x29, 0x07, 0xc7, 0xd6, 0x1a, 0xf0, 0x7f, 0x2f, 0xcc, 0x1c,
- 0xc5, 0x89, 0x14, 0x5c, 0xea, 0x31, 0x84, 0x00, 0x7d, 0xfe, 0x1d, 0x3c,
- 0x4c, 0x99, 0xfd, 0x09, 0xe4, 0xcc, 0xfe, 0xdb, 0xc3, 0x3a, 0x22, 0x57,
- 0x57, 0x19, 0xf5, 0x58, 0x01, 0x88, 0x5e, 0x41, 0x42, 0x75, 0x5f, 0x63,
- 0x13, 0x5f, 0x1f, 0x5d, 0xfc, 0x8d, 0x0f, 0xf3, 0xc3, 0x72, 0xb7, 0x3c,
- 0x43, 0x9f, 0xc3, 0xb0, 0x64, 0x82, 0x3f, 0x00, 0x5e, 0xe7, 0x58, 0x84,
- 0xdb, 0x3f, 0x06, 0x49, 0x62, 0x01, 0x60, 0x91, 0x62, 0xf7, 0x61, 0xd7,
- 0x58, 0xd3, 0x10, 0x4e, 0xa9, 0x46, 0x01, 0xc0, 0xe4, 0x14, 0xf7, 0xaf,
- 0xbb, 0xc8, 0x82, 0xa6, 0x20, 0x88, 0x41, 0xbb, 0x5e, 0x2b, 0xff, 0xff,
- 0xf8, 0x44, 0xd8, 0xda, 0xf0, 0x43, 0xf0, 0x37, 0x92, 0xe1, 0x49, 0x6f,
- 0x01, 0xbe, 0x1a, 0x26, 0xf9, 0xbc, 0xb8, 0x2d, 0x4c, 0xd3, 0x7e, 0xb6,
- 0x79, 0xa0, 0x36, 0xdf, 0x00, 0x26, 0x3f, 0x2a, 0x08, 0x4d, 0xb0, 0x7d,
- 0x8d, 0xed, 0x1a, 0x27, 0xe7, 0x80, 0x3e, 0x3e, 0x14, 0xe8, 0xee, 0xd5,
- 0x7f, 0xfc, 0xcb, 0xad, 0x44, 0x4b, 0x7f, 0xb0, 0x30, 0x2b, 0x6d, 0xbd,
- 0x24, 0xdb, 0xff, 0xfa, 0xd9, 0x6b, 0x94, 0x35, 0xef, 0xff, 0x8c, 0x87,
- 0x8f, 0x41, 0xff, 0x3b, 0x3c, 0x98, 0x62, 0xff, 0xff, 0xff, 0xfe, 0xbd,
- 0x7f, 0xfc, 0x98, 0x0e, 0x56, 0xd3, 0x3f, 0x88, 0xe3, 0xa2, 0x18, 0x3e,
- 0x81, 0xf3, 0x2d, 0xf7, 0x84, 0x4d, 0x7c, 0xea, 0x96, 0x74, 0xcf, 0x41,
- 0xac, 0x08, 0x1c, 0xc5, 0x8f, 0xff, 0xc2, 0x50, 0x98, 0xcd, 0xc3, 0x51,
- 0x29, 0xb8, 0xda, 0x49, 0xab, 0x83, 0xe9, 0xa0, 0x18, 0xcf, 0xca, 0xd4,
- 0x34, 0x41, 0xa5, 0x16, 0xe0, 0x99, 0xd5, 0x15, 0xcf, 0xf9, 0x3d, 0xfa,
- 0xf5, 0x87, 0x3f, 0x19, 0xeb, 0xdf, 0xbe, 0x62, 0xc2, 0x07, 0x2d, 0x31,
- 0xd7, 0x8a, 0xf5, 0xec, 0xdf, 0x0f, 0xe3, 0x48, 0x21, 0xc0, 0xe1, 0x38,
- 0xc9, 0x98, 0x4c, 0xdd, 0x9b, 0xfe, 0xf9, 0xe2, 0x4f, 0xd7, 0x31, 0xa1,
- 0x1e, 0x1d, 0xb8, 0xdc, 0x07, 0x5e, 0x2b, 0xe0, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xc6, 0x24, 0x1d, 0xfb, 0x36, 0x1f, 0xc7, 0xf0, 0x98, 0x80,
- 0x01, 0xce, 0x8d, 0x10, 0xd5, 0x80, 0x05, 0xd5, 0xe0, 0xc0, 0xb3, 0x5f,
- 0x27, 0xf3, 0xbe, 0xff, 0x7d, 0xea, 0x66, 0x1c, 0x27, 0x19, 0x33, 0xf0,
- 0x10, 0x3e, 0x02, 0x00, 0x23, 0x94, 0x16, 0x36, 0x08, 0x2d, 0x5c, 0x21,
- 0x77, 0x5f, 0xb4, 0xbf, 0xbe, 0xc7, 0xff, 0xd1, 0x93, 0xff, 0x1f, 0x84,
- 0xe1, 0x33, 0x76, 0x6f, 0xfb, 0xff, 0xc0, 0x03, 0x2f, 0xd3, 0xa7, 0x34,
- 0x91, 0x86, 0x60, 0x70, 0x41, 0xb5, 0x04, 0xdf, 0xfd, 0xc9, 0xcb, 0x19,
- 0xe0, 0x06, 0x7d, 0xbe, 0xb3, 0xb6, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x07,
- 0x9d, 0xf2, 0x99, 0xef, 0xc0, 0x11, 0xda, 0x46, 0x07, 0xf8, 0xa3, 0xec,
- 0xbb, 0x0f, 0xfa, 0xc0, 0x00, 0x03, 0xff, 0x6c, 0x32, 0x87, 0xfd, 0x5b,
- 0x16, 0x4c, 0xf0, 0xdd, 0x9e, 0xbc, 0x20, 0x68, 0x08, 0x3b, 0xff, 0xf0,
- 0x92, 0x80, 0x33, 0x82, 0x09, 0x32, 0x98, 0x75, 0x4d, 0xbf, 0xf7, 0x3e,
- 0x54, 0xec, 0xd4, 0x03, 0x4e, 0x38, 0xbd, 0x08, 0x06, 0x22, 0xfc, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0x29, 0xeb, 0xff, 0xff, 0x84, 0x3f, 0xe3, 0x3f, 0xff, 0x1d, 0xff, 0xf9,
- 0xbf, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x21, 0xff,
- 0xff, 0xff, 0xf8, 0xac, 0xff, 0xbf, 0x79, 0x8f, 0x81, 0x1f, 0xa7, 0xfb,
- 0x42, 0x3a, 0x8a, 0x36, 0x48, 0x79, 0xfd, 0x0c, 0xc4, 0xc4, 0xff, 0xff,
- 0xff, 0xf7, 0xe1, 0x80, 0xe7, 0x10, 0x45, 0x17, 0x6a, 0x04, 0x60, 0x48,
- 0xa2, 0xe5, 0x52, 0x7c, 0x40, 0x01, 0x8f, 0xf3, 0x32, 0x00, 0xc7, 0x28,
- 0xb7, 0xfc, 0x74, 0x3f, 0x80, 0x9c, 0xb4, 0xe4, 0xfe, 0x61, 0xde, 0xd2,
- 0x68, 0xda, 0x9a, 0x1a, 0xaa, 0x7c, 0xe0, 0x81, 0xc3, 0x01, 0xfc, 0x25,
- 0xf8, 0x20, 0x16, 0x0c, 0x2e, 0x95, 0x9b, 0x4f, 0xef, 0xde, 0x10, 0x0a,
- 0x67, 0x8a, 0x2d, 0x6f, 0x78, 0x9f, 0xff, 0xef, 0xc3, 0x1f, 0xad, 0x86,
- 0x01, 0xec, 0x9c, 0x01, 0xaa, 0x91, 0xb2, 0x7e, 0x6d, 0x5e, 0xb5, 0xe7,
- 0xff, 0xc0, 0x19, 0x8f, 0x1a, 0x73, 0x4f, 0x56, 0xed, 0x89, 0x22, 0x98,
- 0xf7, 0xbf, 0xac, 0xb1, 0x4f, 0x9f, 0xff, 0xfe, 0xbf, 0xfd, 0xff, 0x0c,
- 0x70, 0xc1, 0xff, 0xe1, 0x2e, 0x00, 0x9b, 0xa3, 0x46, 0xa9, 0xe2, 0x14,
- 0x4c, 0xbc, 0x01, 0xae, 0x4d, 0xb9, 0xdb, 0x1f, 0x5b, 0xd6, 0x33, 0x7b,
- 0x7d, 0x63, 0x36, 0xa3, 0x48, 0x5e, 0x12, 0xf0, 0xdf, 0x78, 0x63, 0x0f,
- 0xa5, 0x3f, 0x04, 0x0c, 0x01, 0x6f, 0xff, 0x8e, 0xf0, 0xcf, 0x10, 0xab,
- 0xec, 0x77, 0xf3, 0xc9, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xb2, 0x85, 0x84, 0xf6, 0x18, 0xe9, 0xf1, 0xd2, 0x98, 0xa1, 0x10, 0x05,
- 0x59, 0x36, 0x80, 0x01, 0xc7, 0xa8, 0x37, 0x02, 0xd8, 0x41, 0xfd, 0x02,
- 0x80, 0x63, 0x5c, 0x05, 0xa2, 0x3d, 0xfe, 0xb1, 0xbf, 0x41, 0x8f, 0x44,
- 0xa7, 0xd3, 0x85, 0x19, 0xa7, 0x7f, 0x3d, 0xa6, 0x38, 0x06, 0x7e, 0x8f,
- 0x9f, 0x64, 0x46, 0xde, 0x37, 0xfc, 0xa8, 0x06, 0x46, 0xee, 0xbd, 0xbc,
- 0x30, 0x6e, 0xf0, 0x21, 0x3f, 0x9d, 0xfd, 0x63, 0xb4, 0xb9, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe,
- 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xf2, 0x91, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f,
- 0xff, 0xef, 0x0c, 0xcc, 0x27, 0x80, 0x16, 0x2a, 0x5a, 0x7d, 0x2f, 0xfe,
- 0x53, 0xc4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x0e, 0xd6,
- 0x04, 0x51, 0x77, 0x90, 0x46, 0x04, 0x81, 0x1f, 0xc7, 0xf2, 0xdf, 0xc0,
- 0x72, 0x21, 0x50, 0x5d, 0x80, 0x60, 0x5f, 0xc8, 0xe2, 0xef, 0x46, 0xc9,
- 0xa3, 0x95, 0x78, 0x00, 0x36, 0xde, 0x85, 0x1b, 0xfe, 0xed, 0x98, 0x4c,
- 0x7b, 0x03, 0x66, 0x10, 0x8c, 0xd2, 0xc8, 0x84, 0x8a, 0xa1, 0x65, 0x83,
- 0x90, 0x8c, 0x49, 0x6a, 0x06, 0x10, 0x63, 0x12, 0x2f, 0xe1, 0x08, 0x4c,
- 0x54, 0xac, 0x76, 0x63, 0x76, 0xbe, 0x12, 0xf0, 0x21, 0x1c, 0xe8, 0x7c,
- 0xe7, 0xff, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x64, 0xcc, 0x1e,
- 0xc9, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3, 0x51, 0x88, 0x71, 0x27, 0xa7,
- 0xe0, 0x18, 0x29, 0xe4, 0x55, 0x39, 0xf0, 0x11, 0x17, 0xc3, 0xac, 0xa3,
- 0xa8, 0xa1, 0xd2, 0xe1, 0x01, 0x8a, 0x7f, 0x3f, 0xff, 0xff, 0xff, 0xd7,
- 0xff, 0xff, 0xff, 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x87, 0xd3, 0x40, 0xc4,
- 0x6c, 0x56, 0xaf, 0xf0, 0x04, 0x53, 0x40, 0xc4, 0x6b, 0x2b, 0x50, 0x02,
- 0x29, 0xc0, 0xc4, 0x5b, 0x2b, 0x57, 0x87, 0x3f, 0xaf, 0x7e, 0xbc, 0x67,
- 0xbf, 0x7e, 0xbc, 0x67, 0xb3, 0x7c, 0x2d, 0xec, 0x7c, 0x28, 0x58, 0x00,
- 0x8c, 0x35, 0xf5, 0x77, 0xf7, 0xfa, 0x32, 0xb5, 0x54, 0xd7, 0x76, 0x00,
- 0x43, 0x74, 0x9d, 0xeb, 0xf3, 0xc1, 0x90, 0x20, 0x08, 0x54, 0x1b, 0xf5,
- 0xe2, 0xe0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44, 0x37, 0xe8,
- 0x9f, 0x81, 0x60, 0x1e, 0x81, 0x60, 0x18, 0xe3, 0x84, 0x70, 0x03, 0x32,
- 0xa6, 0x68, 0x9e, 0xaf, 0x00, 0x06, 0x26, 0xb9, 0x0b, 0x58, 0x46, 0x06,
- 0x1e, 0x0e, 0x5d, 0xdf, 0x52, 0xf9, 0xfa, 0x3a, 0xc6, 0x05, 0x90, 0x53,
- 0x6a, 0x68, 0x98, 0x9a, 0xf5, 0xe3, 0x7d, 0x19, 0x89, 0xbe, 0x16, 0xfc,
- 0x26, 0x20, 0x08, 0x7f, 0x1f, 0xa9, 0x06, 0x2a, 0x3e, 0x6e, 0x20, 0xfc,
- 0x6a, 0x78, 0x48, 0xf6, 0x8a, 0x5e, 0xf9, 0x7b, 0xe8, 0x61, 0xbf, 0x3e,
- 0x78, 0x9f, 0xfe, 0xbc, 0x77, 0x21, 0xa0, 0x03, 0xb7, 0x34, 0xc9, 0x93,
- 0x6e, 0xbd, 0xf9, 0x84, 0x3d, 0xc3, 0xfe, 0x1e, 0xba, 0x49, 0x4c, 0xd8,
- 0x0f, 0xcf, 0x0c, 0x0f, 0x53, 0xe3, 0xb7, 0xfc, 0x9e, 0x04, 0x40, 0x8f,
- 0xed, 0x41, 0x27, 0xc0, 0xd1, 0x50, 0x06, 0x77, 0x6f, 0xf2, 0xe0, 0xc9,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x14, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xfe, 0x2f, 0xff, 0xf2,
- 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac,
- 0xe3, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e,
- 0x00, 0xc9, 0xf9, 0x4d, 0xee, 0xe3, 0x21, 0x69, 0x21, 0x62, 0x4b, 0x13,
- 0xff, 0xff, 0xff, 0xfa, 0xc2, 0x22, 0x01, 0xda, 0x48, 0xb9, 0xe7, 0x95,
- 0x23, 0xba, 0xfb, 0xc0, 0x3f, 0x6c, 0x1d, 0x81, 0x2d, 0x7f, 0xf2, 0xc6,
- 0x5a, 0x30, 0x02, 0x8e, 0xbc, 0x2b, 0x0f, 0xff, 0xb3, 0x48, 0xb1, 0xad,
- 0x24, 0x6f, 0x4c, 0x75, 0x5f, 0x83, 0x79, 0x0c, 0x07, 0xfd, 0xff, 0x09,
- 0x9c, 0x22, 0x00, 0x4b, 0x73, 0x2f, 0x55, 0xee, 0x26, 0x0a, 0x3f, 0x29,
- 0x77, 0xbf, 0xbd, 0x00, 0x2c, 0x5f, 0xaa, 0x73, 0xbf, 0x7c, 0x89, 0xff,
- 0xff, 0xd6, 0x10, 0xf0, 0x22, 0x6f, 0x70, 0x00, 0x76, 0x68, 0x73, 0x11,
- 0xcc, 0xbc, 0xd6, 0xb6, 0xf0, 0x3c, 0xd9, 0xe0, 0xb8, 0x64, 0x96, 0x77,
- 0x9f, 0x28, 0x68, 0xf5, 0x81, 0xe4, 0x7f, 0xd1, 0x8e, 0xe1, 0x60, 0xc9,
- 0xbb, 0xe3, 0xe8, 0xc3, 0xee, 0xb6, 0x3f, 0xff, 0xfd, 0x7f, 0xff, 0xe4,
- 0xe0, 0x60, 0x10, 0x80, 0x9b, 0x79, 0xff, 0xfd, 0xe7, 0xe6, 0x84, 0xf1,
- 0xcf, 0x01, 0x97, 0xdd, 0x5d, 0x86, 0xcc, 0x2a, 0x47, 0x12, 0xc7, 0x5a,
- 0x6c, 0x03, 0x1b, 0xf7, 0x95, 0x90, 0xa0, 0x88, 0xd6, 0x40, 0xcf, 0x48,
- 0x48, 0x83, 0x81, 0x9f, 0x5b, 0xd6, 0x33, 0x7b, 0xd6, 0x33, 0x61, 0x8f,
- 0x87, 0xff, 0x0f, 0x96, 0x00, 0x4d, 0xdd, 0x5d, 0xbb, 0xcf, 0xdc, 0x74,
- 0x7a, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d, 0x8b,
- 0xd0, 0x63, 0xfb, 0x7c, 0x38, 0x7c, 0xd0, 0x1c, 0x84, 0x60, 0x1d, 0x32,
- 0x03, 0x2e, 0x94, 0xa6, 0x9e, 0xbe, 0xb5, 0x8d, 0xd0, 0x63, 0xff, 0xda,
- 0x03, 0x04, 0x30, 0x02, 0x1b, 0xa4, 0xef, 0x5f, 0x9e, 0xfe, 0x0a, 0xbe,
- 0xb1, 0xcb, 0xd6, 0x44, 0x03, 0x91, 0x99, 0xd3, 0x0b, 0x00, 0x01, 0x00,
- 0x3f, 0xbe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
- 0xff, 0xf1, 0xff, 0xff, 0x8a, 0xff, 0x26, 0x2b, 0xfc, 0xdf, 0x50, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xfc, 0xc2, 0x78, 0x01, 0xab, 0x34, 0xee,
- 0x57, 0x7e, 0xb0, 0xcc, 0xaf, 0x6a, 0x1b, 0x70, 0x1a, 0x56, 0xf8, 0x9f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xc1, 0xc9, 0xee, 0x8a, 0x2e, 0x8a,
- 0xb8, 0xc1, 0x80, 0x0d, 0xf6, 0x5b, 0x5a, 0x91, 0x6c, 0x81, 0x2c, 0x3a,
- 0x68, 0x15, 0x59, 0xbe, 0x51, 0xfc, 0xfc, 0xe4, 0x99, 0x73, 0xe0, 0x03,
- 0x6d, 0xe8, 0x51, 0xbf, 0xee, 0xd9, 0x84, 0xc7, 0xb0, 0x36, 0x4a, 0xaf,
- 0xb4, 0xf4, 0xed, 0xa5, 0xb6, 0xb9, 0x79, 0x5f, 0x12, 0x6f, 0xcd, 0x34,
- 0x0f, 0xed, 0x3f, 0xc2, 0x62, 0xeb, 0xbe, 0x77, 0x00, 0x00, 0x80, 0x09,
- 0xdb, 0xe7, 0x6c, 0x11, 0x6e, 0x33, 0xfb, 0xeb, 0xf8, 0x79, 0x81, 0x96,
- 0xf2, 0x1f, 0x4f, 0x7a, 0xe1, 0xf3, 0xf1, 0x78, 0x9f, 0xff, 0xff, 0xff,
- 0xcd, 0xf8, 0xa9, 0x13, 0x13, 0xba, 0xad, 0x9b, 0x82, 0x67, 0xb6, 0xb0,
- 0x71, 0x13, 0xb4, 0xb0, 0x89, 0xac, 0x7f, 0x9f, 0xc0, 0x22, 0x95, 0xec,
- 0x0f, 0x90, 0x8d, 0xfd, 0x7c, 0x03, 0x13, 0x0b, 0x2a, 0x7e, 0xa5, 0x9b,
- 0xa0, 0xd4, 0x84, 0x5f, 0xcf, 0xbb, 0xec, 0x8b, 0x9f, 0x83, 0x01, 0xb7,
- 0x65, 0x94, 0x17, 0x40, 0xe5, 0xaa, 0xc3, 0xff, 0xff, 0xff, 0xfd, 0x7f,
- 0xff, 0xff, 0xfe, 0x60, 0xba, 0xe0, 0x5f, 0xf0, 0x93, 0x01, 0xdd, 0xb5,
- 0x1c, 0x79, 0xcf, 0x92, 0x43, 0xb7, 0x5b, 0xf8, 0xdc, 0xb5, 0x89, 0x96,
- 0x3d, 0xa8, 0x16, 0x2b, 0x26, 0x79, 0x67, 0xe9, 0x5a, 0x53, 0xea, 0x93,
- 0x27, 0xe9, 0x32, 0xe7, 0x83, 0x3f, 0xaf, 0x7e, 0xbc, 0x67, 0xbf, 0x7e,
- 0xbc, 0x67, 0xb3, 0x7c, 0x08, 0x64, 0x45, 0xf1, 0x85, 0x80, 0x08, 0xc3,
- 0x5f, 0x57, 0x7f, 0x7f, 0x80, 0x3b, 0x7e, 0x09, 0x78, 0x00, 0x03, 0x80,
- 0x75, 0x7e, 0x09, 0x72, 0x07, 0x6c, 0x08, 0x4f, 0x00, 0x7d, 0xf7, 0xeb,
- 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64, 0x37, 0xf3,
- 0x7e, 0x59, 0x11, 0x7c, 0x60, 0x88, 0x00, 0xbe, 0x94, 0xdc, 0xc1, 0x18,
- 0x73, 0xf5, 0xd0, 0x07, 0x57, 0xe0, 0x97, 0x20, 0x00, 0xe0, 0x76, 0xc0,
- 0x84, 0x03, 0xab, 0xf0, 0x4b, 0x93, 0xc0, 0x7d, 0xfc, 0x0d, 0x9f, 0xd7,
- 0xaf, 0x1a, 0x6a, 0x66, 0x46, 0xdf, 0x38, 0xc5, 0x60, 0x02, 0xd1, 0xae,
- 0xe6, 0x71, 0x47, 0xee, 0x7f, 0xf6, 0x9b, 0xb8, 0x0f, 0xff, 0xfb, 0x8b,
- 0x6f, 0xc1, 0x2e, 0x46, 0x06, 0x39, 0x4c, 0x47, 0x7c, 0x9b, 0xe3, 0xb3,
- 0xdd, 0x5f, 0x09, 0xb6, 0x07, 0xef, 0x67, 0xe6, 0xff, 0x5c, 0xf5, 0xc5,
- 0xbe, 0xff, 0x8c, 0xd6, 0x07, 0xe3, 0xbf, 0xe0, 0x08, 0xd7, 0xab, 0x3d,
- 0xcb, 0xa4, 0xe5, 0xe4, 0x34, 0x79, 0xff, 0xfa, 0xf1, 0xc6, 0xfa, 0xff,
- 0xf0, 0xf9, 0x30, 0x0b, 0xd4, 0xa0, 0x35, 0x11, 0x7f, 0x03, 0x6f, 0xf2,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x85, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x8b, 0xff, 0xfc,
- 0x9e, 0x2b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad,
- 0x25, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf0, 0xc7, 0xfe,
- 0x7e, 0x30, 0xa9, 0xf0, 0x01, 0x2d, 0x6e, 0x5f, 0xaa, 0xbf, 0x00, 0x1d,
- 0xb2, 0x26, 0x62, 0x0f, 0xe6, 0x6a, 0xf7, 0x01, 0xc8, 0x11, 0x88, 0xc4,
- 0xff, 0xff, 0xff, 0xfe, 0x18, 0x0f, 0x03, 0xa2, 0x8b, 0x8d, 0x71, 0x82,
- 0x9a, 0x81, 0x5a, 0x71, 0xe2, 0xec, 0x89, 0x32, 0xd4, 0x86, 0x56, 0xd5,
- 0x5e, 0xd0, 0x01, 0x8e, 0x51, 0x6f, 0xf8, 0xce, 0x6c, 0xfe, 0x0c, 0x1c,
- 0x33, 0xf1, 0x5b, 0xcf, 0x4f, 0xa9, 0x68, 0x86, 0x0a, 0x9f, 0x69, 0x7e,
- 0x13, 0x16, 0x02, 0x70, 0x41, 0x9e, 0x4a, 0xe5, 0xe3, 0x6d, 0x03, 0xd2,
- 0xdf, 0xeb, 0xc3, 0x36, 0xd9, 0xb6, 0x4f, 0xfd, 0xf6, 0x7f, 0xc4, 0xff,
- 0xff, 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48, 0xb3, 0x60, 0x06, 0x07,
- 0x95, 0xf1, 0xd9, 0x5e, 0xa5, 0x95, 0xe9, 0x30, 0x56, 0x28, 0xa0, 0x24,
- 0x39, 0x97, 0x80, 0x91, 0xb9, 0xd4, 0xf2, 0x8b, 0xe1, 0x24, 0x8e, 0x1b,
- 0x5b, 0x24, 0xdf, 0x9e, 0x71, 0x4d, 0xc0, 0x0a, 0x83, 0x3f, 0xff, 0xfd,
- 0x7f, 0xff, 0xe1, 0x80, 0x54, 0x16, 0x07, 0x1f, 0xf8, 0x49, 0x99, 0x44,
- 0x91, 0xea, 0xbc, 0x0c, 0xc4, 0xdf, 0x41, 0xfd, 0xde, 0x3d, 0xc9, 0x4b,
- 0x04, 0xe0, 0x76, 0x5f, 0x67, 0xf0, 0x8d, 0xb4, 0xf4, 0x67, 0x7c, 0xa5,
- 0xff, 0xc0, 0x0c, 0xfa, 0xde, 0xb1, 0x9b, 0xde, 0xb1, 0x9b, 0x0c, 0x7c,
- 0x08, 0x7d, 0xbc, 0x61, 0x60, 0x22, 0x6e, 0xd7, 0xbd, 0x80, 0x23, 0xdf,
- 0xa0, 0xfe, 0xf4, 0x00, 0x03, 0xe0, 0x0b, 0xb7, 0xa0, 0x47, 0x49, 0x8e,
- 0xb5, 0xc3, 0xbf, 0xe7, 0xfb, 0xbd, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xb4, 0x95, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41, 0x09, 0xa0,
- 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33, 0x7e, 0x50,
- 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59, 0xd9, 0xe3,
- 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb, 0x06, 0xf5,
- 0x8d, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c, 0x02, 0x47,
- 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0b, 0xf5, 0xdd,
- 0xab, 0x67, 0xfe, 0x9f, 0x9c, 0xae, 0xab, 0x11, 0x6e, 0xde, 0x1f, 0xb9,
- 0xbb, 0x37, 0x10, 0xcc, 0x4a, 0x6b, 0xeb, 0x1c, 0x18, 0xfa, 0xff, 0xf0,
- 0xf9, 0x20, 0x1b, 0xaa, 0x1a, 0x22, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xfc, 0x7f, 0xff, 0xe2, 0xbf, 0xc9,
- 0x8a, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf4, 0xa1, 0x01,
- 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xfb, 0xc2,
- 0x9e, 0x20, 0x49, 0x45, 0xe0, 0x05, 0xf5, 0x77, 0xc9, 0x7f, 0xcb, 0xc4,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x28, 0x81, 0x43, 0x00, 0x10,
- 0xbc, 0xd5, 0x43, 0xf8, 0x1f, 0xbe, 0xce, 0xc6, 0x5c, 0x3b, 0x94, 0x60,
- 0xd7, 0x3c, 0xc9, 0xce, 0x88, 0xb8, 0xb6, 0x89, 0x5f, 0x0f, 0xe5, 0x28,
- 0x91, 0x34, 0x97, 0xa0, 0x1d, 0xb5, 0x80, 0x87, 0xcf, 0x6e, 0x65, 0x7f,
- 0xb9, 0xfd, 0x67, 0x04, 0x2f, 0x81, 0xc1, 0x62, 0x7f, 0xff, 0xff, 0xff,
- 0x37, 0xe2, 0x0c, 0xa6, 0x4a, 0x96, 0xb2, 0x70, 0x05, 0x1d, 0x10, 0xea,
- 0x3f, 0x36, 0xc1, 0xd5, 0xbf, 0x3c, 0x05, 0x52, 0x69, 0x3f, 0x07, 0x1b,
- 0x80, 0x26, 0x84, 0x8c, 0xbb, 0xae, 0x45, 0x81, 0xeb, 0x82, 0x65, 0x36,
- 0x49, 0x66, 0x63, 0x9e, 0x83, 0x1f, 0x8b, 0x01, 0xeb, 0xc4, 0xca, 0xa3,
- 0xdd, 0x59, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xff, 0xff, 0xff, 0xed, 0x89,
- 0xbf, 0x07, 0xb3, 0x03, 0x83, 0xe6, 0x18, 0x69, 0x47, 0xf5, 0xef, 0xd7,
- 0x8c, 0xf7, 0xef, 0xd7, 0x8c, 0xf9, 0xbf, 0xfb, 0xe2, 0xf0, 0xa9, 0x70,
- 0x09, 0x1f, 0xaf, 0x61, 0x3f, 0xda, 0x95, 0x78, 0x0f, 0x53, 0xa4, 0x6f,
- 0xcd, 0xa0, 0x6e, 0x6f, 0xfb, 0xef, 0xe3, 0x3c, 0x00, 0xa6, 0xec, 0xc5,
- 0x14, 0xb8, 0x01, 0x93, 0xe6, 0x0a, 0x15, 0x7f, 0xa3, 0x23, 0xf9, 0x20,
- 0xfb, 0xfb, 0x5f, 0xed, 0x9a, 0xa9, 0xe0, 0x0f, 0xf3, 0x6e, 0xe4, 0x02,
- 0x3f, 0xf0, 0x97, 0x16, 0xc5, 0xf7, 0x02, 0x4f, 0xdf, 0xfd, 0x00, 0x5b,
- 0xfc, 0xfe, 0x43, 0x45, 0x35, 0xb7, 0xe7, 0xfb, 0xf5, 0xe2, 0xe0, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x25, 0x90, 0x86, 0x80, 0x21,
- 0x47, 0x34, 0x46, 0x83, 0xab, 0xf3, 0x69, 0xf4, 0x8a, 0x7c, 0x27, 0x00,
- 0x07, 0x0f, 0xc5, 0xa9, 0xc6, 0xb4, 0x1e, 0x13, 0xc1, 0x3e, 0x80, 0xf9,
- 0x54, 0x44, 0xee, 0x4f, 0x5e, 0x34, 0xd3, 0xce, 0x67, 0xf3, 0xe2, 0x84,
- 0x48, 0x4d, 0x81, 0xf8, 0x5f, 0xe3, 0x40, 0x7f, 0x38, 0x69, 0x07, 0xe1,
- 0xff, 0x7f, 0xf5, 0xe3, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xff,
- 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f, 0x15, 0xff, 0xf9, 0xbf,
- 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60, 0x29, 0xff, 0xff,
- 0xff, 0xf8, 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x00, 0x1f, 0xea, 0xca, 0x59,
- 0xe6, 0x2f, 0xfd, 0xbe, 0xb2, 0xbc, 0x60, 0xf1, 0x89, 0xff, 0xff, 0xff,
- 0xfc, 0x30, 0x1c, 0x20, 0xc8, 0xa2, 0xf1, 0x02, 0x8c, 0x10, 0x3a, 0xcd,
- 0xa4, 0x8d, 0xa9, 0xb8, 0x5e, 0x00, 0xb6, 0x53, 0x06, 0x64, 0x98, 0x00,
- 0x8a, 0x3a, 0x14, 0x4f, 0xfb, 0xb6, 0xe1, 0xbf, 0x41, 0xc7, 0xc3, 0x73,
- 0x35, 0x91, 0x02, 0xad, 0xfa, 0xd4, 0x20, 0x16, 0x33, 0x80, 0xdc, 0x06,
- 0x2a, 0xc5, 0xdf, 0x7e, 0x98, 0x72, 0x5f, 0x62, 0x7f, 0xff, 0xf0, 0xc7,
- 0x1e, 0xa0, 0xe3, 0x30, 0x62, 0xb3, 0x60, 0x11, 0xeb, 0xed, 0x87, 0xb3,
- 0xa5, 0xbc, 0x3b, 0x2f, 0x01, 0x37, 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40,
- 0x79, 0xeb, 0xff, 0x0e, 0xb5, 0x21, 0x7f, 0x7f, 0xa8, 0xd1, 0x56, 0x9d,
- 0x4f, 0x22, 0x5d, 0x9f, 0xff, 0xfe, 0xbf, 0xff, 0xf0, 0xc5, 0xa9, 0xb7,
- 0xfe, 0x12, 0x3c, 0x03, 0x1d, 0x5a, 0x7f, 0x90, 0x13, 0x5a, 0x1b, 0x2a,
- 0x06, 0xda, 0x85, 0xbc, 0x26, 0x27, 0x1f, 0x03, 0x9f, 0x5b, 0xd6, 0x33,
- 0x7b, 0xd6, 0x31, 0x7a, 0xf4, 0x0e, 0x26, 0x70, 0x06, 0x45, 0xf7, 0xa1,
- 0xff, 0xe8, 0x00, 0xf5, 0x51, 0xe8, 0x86, 0x1f, 0x8f, 0xa8, 0x38, 0x63,
- 0xe0, 0xe2, 0xff, 0xe2, 0x57, 0x00, 0x4f, 0x9b, 0x16, 0x54, 0x65, 0x01,
- 0x09, 0x6b, 0xdf, 0x93, 0xf6, 0x07, 0xe1, 0x3c, 0x7b, 0xd1, 0xc6, 0x78,
- 0x3e, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d,
- 0x82, 0x25, 0xe1, 0x8d, 0x3d, 0xd1, 0xc4, 0xde, 0x1b, 0x15, 0x80, 0x18,
- 0x5b, 0xbd, 0x27, 0xf7, 0x2f, 0xc2, 0x1d, 0xb5, 0x9b, 0x11, 0xc0, 0x62,
- 0xa3, 0x5d, 0x1f, 0x3d, 0x8d, 0x96, 0x2c, 0x50, 0x3d, 0x18, 0xf3, 0x33,
- 0xdd, 0x87, 0xfc, 0x71, 0xdf, 0xfb, 0x02, 0x28, 0x21, 0x65, 0x00, 0x17,
- 0xf2, 0xa8, 0xcf, 0x82, 0xde, 0xa3, 0xef, 0x25, 0x07, 0xfd, 0xd0, 0x7e,
- 0x4d, 0x63, 0x43, 0x14, 0xce, 0x67, 0xf3, 0xe2, 0x97, 0x10, 0x1c, 0x07,
- 0xf0, 0x89, 0xc1, 0xf8, 0x4f, 0x0d, 0x20, 0xfc, 0x3f, 0xbf, 0xac, 0x7f,
- 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xfe,
- 0x3f, 0xff, 0xf1, 0x5f, 0xe4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xe6, 0x13, 0xc0, 0x7f, 0xa9, 0x6c, 0x4c,
- 0xbc, 0x01, 0xa7, 0xcb, 0xa7, 0xdf, 0xcf, 0xc4, 0x62, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x4f, 0xc3, 0x20, 0x83, 0x19, 0x14, 0x60, 0x04, 0xdd,
- 0x34, 0x6a, 0x9e, 0x6c, 0x31, 0x11, 0x14, 0x7b, 0x5e, 0xf8, 0xdf, 0x20,
- 0x06, 0x2f, 0x4d, 0xd3, 0xdd, 0x05, 0xe1, 0xdd, 0x84, 0x84, 0xdd, 0x3f,
- 0xa0, 0xa4, 0xf1, 0x31, 0x11, 0x12, 0xc7, 0x27, 0xff, 0x08, 0xf1, 0x79,
- 0xe3, 0xd4, 0x4c, 0x17, 0xc9, 0xba, 0xf0, 0x11, 0x1a, 0xf4, 0x1f, 0xff,
- 0x60, 0x85, 0xe4, 0x2c, 0x41, 0xe8, 0xde, 0xb6, 0x00, 0x11, 0xc6, 0x13,
- 0xf0, 0xfb, 0x9f, 0x9f, 0xa1, 0x2c, 0xc9, 0x0f, 0xb4, 0xbf, 0x09, 0x9c,
- 0x1d, 0x9c, 0x50, 0x9d, 0xf5, 0x78, 0x10, 0x3f, 0x0f, 0xf2, 0xcf, 0xf8,
- 0x9f, 0xff, 0xff, 0xf9, 0xbf, 0x1d, 0x7b, 0x36, 0xc9, 0xc0, 0x09, 0xbe,
- 0xd1, 0x0e, 0xa0, 0xfb, 0xd2, 0x80, 0x06, 0x7d, 0x6f, 0xb3, 0xf7, 0x44,
- 0xf3, 0x1b, 0x10, 0xba, 0x5c, 0x8d, 0x78, 0x39, 0x4b, 0xc7, 0xe1, 0xf7,
- 0xff, 0x99, 0xe0, 0xaf, 0xd8, 0xd4, 0x9b, 0x0e, 0xb6, 0x20, 0xaa, 0x77,
- 0xfc, 0x01, 0xaa, 0x91, 0xb4, 0xfc, 0xe2, 0xdd, 0x4c, 0xf9, 0x8f, 0x76,
- 0x3a, 0xf2, 0x20, 0x0e, 0x71, 0xec, 0xe4, 0xc6, 0x2d, 0x30, 0x61, 0xa9,
- 0xb8, 0x2d, 0xbc, 0x7a, 0xad, 0x31, 0x8b, 0x9f, 0xff, 0xff, 0xff, 0xeb,
- 0xff, 0xff, 0xfe, 0x6d, 0xed, 0x28, 0xff, 0x84, 0x8f, 0x80, 0x28, 0xa9,
- 0x33, 0x73, 0xb6, 0xf0, 0x38, 0x62, 0xd7, 0xdf, 0x9e, 0x06, 0x2d, 0xb4,
- 0x86, 0xf4, 0xbe, 0xf2, 0x44, 0x10, 0x42, 0xd6, 0x1e, 0x11, 0xbf, 0xe1,
- 0xc6, 0xd7, 0xcf, 0x7c, 0xd2, 0xca, 0x08, 0x40, 0xcd, 0x5d, 0x7e, 0x7f,
- 0x5e, 0xfd, 0x78, 0xce, 0x62, 0xc0, 0x0a, 0xb5, 0xa8, 0x28, 0x3a, 0xff,
- 0x53, 0xc0, 0x00, 0xde, 0x6f, 0xf1, 0x1d, 0x7c, 0x2b, 0xd8, 0x88, 0x1e,
- 0x62, 0x6b, 0xf0, 0x3c, 0x04, 0x5e, 0xbd, 0xbf, 0x37, 0xff, 0x1d, 0x46,
- 0x15, 0xe4, 0x69, 0x90, 0x74, 0x0b, 0xb2, 0xc2, 0x7f, 0xac, 0x0f, 0x23,
- 0x8d, 0x73, 0xe4, 0x79, 0x3d, 0x78, 0xc8, 0x76, 0x29, 0xc0, 0x72, 0x36,
- 0x08, 0x99, 0x07, 0x23, 0x60, 0x89, 0x90, 0x18, 0x2b, 0x34, 0xc0, 0x21,
- 0x1d, 0x59, 0x12, 0xfc, 0x18, 0xc9, 0xc4, 0x4c, 0xfc, 0x47, 0xcc, 0x3c,
- 0x5f, 0xff, 0x84, 0x84, 0x00, 0x45, 0xeb, 0xb6, 0x2f, 0x11, 0xf8, 0x1d,
- 0x02, 0xac, 0x84, 0xed, 0xc8, 0x6e, 0xbf, 0xbf, 0x5e, 0x2e, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4, 0x11, 0x21, 0x01, 0x0f, 0xe5, 0x30,
- 0x11, 0xb5, 0x81, 0xff, 0xb7, 0xff, 0x38, 0xaf, 0xe2, 0x67, 0xbf, 0x5e,
- 0x35, 0x44, 0xfc, 0x48, 0x9b, 0xff, 0xaf, 0x1d, 0xff, 0xf9, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
- 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0x2b, 0xff, 0xf2, 0x78,
- 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xad, 0xa9, 0x60, 0x31, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xaf,
- 0x59, 0x84, 0xe3, 0x87, 0x2e, 0x06, 0x71, 0x3f, 0xff, 0xff, 0xfd, 0x7a,
- 0xc5, 0x0a, 0x54, 0x6d, 0x62, 0x20, 0xc0, 0x66, 0xbb, 0x55, 0x90, 0x00,
- 0x27, 0x02, 0x80, 0xce, 0x56, 0x9c, 0x38, 0xe9, 0x83, 0xc5, 0x65, 0x15,
- 0x4a, 0xea, 0x69, 0x2d, 0xe2, 0x18, 0x4b, 0xfd, 0xbf, 0xc2, 0x62, 0xc1,
- 0x20, 0x33, 0x53, 0x8c, 0xd8, 0x01, 0x84, 0xa2, 0x73, 0x96, 0x66, 0x04,
- 0xa9, 0x7d, 0xc4, 0xff, 0xff, 0x5f, 0x16, 0x6a, 0x18, 0x48, 0xc5, 0x37,
- 0x01, 0x40, 0x74, 0x8a, 0x85, 0xb9, 0x4f, 0xb9, 0xc3, 0x68, 0x6c, 0xee,
- 0xa6, 0x93, 0x0f, 0xff, 0xff, 0x5f, 0xfe, 0xbd, 0x7b, 0x11, 0x10, 0x51,
- 0x2f, 0x02, 0x1d, 0x26, 0x0e, 0x4f, 0xe4, 0x11, 0xfa, 0xfc, 0x66, 0x6a,
- 0xf9, 0x7f, 0xf4, 0x51, 0xdd, 0xd3, 0xd5, 0x8a, 0x28, 0x95, 0x41, 0x5b,
- 0xd2, 0x35, 0xd9, 0x30, 0xf3, 0xeb, 0xce, 0xba, 0xde, 0xb1, 0x8b, 0xc3,
- 0x71, 0x7a, 0xfd, 0xeb, 0x18, 0x18, 0xf8, 0x47, 0xe9, 0x08, 0x50, 0x47,
- 0x03, 0x09, 0x52, 0xd6, 0x25, 0x8f, 0x09, 0xa8, 0x63, 0x00, 0xdc, 0x07,
- 0xfc, 0x3c, 0xf8, 0x0c, 0x22, 0x6d, 0xb6, 0x18, 0xc0, 0x20, 0x1f, 0xf8,
- 0x7e, 0x02, 0x41, 0xd5, 0xbf, 0x37, 0xa7, 0xe0, 0x9a, 0x80, 0x02, 0x17,
- 0xbb, 0xbb, 0xef, 0xe0, 0x23, 0x54, 0xc4, 0x1d, 0x7f, 0xfd, 0xeb, 0x17,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x81, 0x08, 0x13, 0x48,
- 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x80, 0x3f, 0xdc, 0x36, 0x9b, 0xff,
- 0xf2, 0xeb, 0x1b, 0xf7, 0xf5, 0x8e, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xf8, 0xff, 0xff, 0xde, 0x7f, 0xf2,
- 0x62, 0x7f, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6,
- 0xb1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff,
- 0xfb, 0xc4, 0x45, 0x89, 0xc3, 0xb2, 0xd8, 0x7d, 0x40, 0x04, 0x47, 0x57,
- 0xdf, 0xae, 0xfe, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xc6,
- 0x0d, 0x31, 0x06, 0x78, 0xca, 0xa3, 0x62, 0x80, 0x55, 0xaf, 0x9b, 0xb3,
- 0xff, 0xa2, 0xd2, 0xdc, 0xf0, 0x06, 0xa0, 0xbc, 0xd1, 0x0b, 0x99, 0xf5,
- 0xf7, 0xed, 0xbc, 0x6e, 0x48, 0xdb, 0x04, 0x05, 0x7a, 0x01, 0xd7, 0xe4,
- 0xcf, 0xf9, 0xdf, 0xad, 0x20, 0x08, 0xdf, 0x79, 0x7f, 0x87, 0x63, 0x50,
- 0x45, 0xc0, 0x2f, 0x71, 0x25, 0x12, 0x53, 0x01, 0xac, 0x40, 0x28, 0x12,
- 0x2f, 0x1d, 0x5c, 0x0d, 0xe3, 0xfd, 0xc7, 0xd3, 0xaa, 0x30, 0x70, 0x55,
- 0x29, 0xbb, 0x5e, 0x13, 0xc8, 0xb0, 0x98, 0x88, 0xcb, 0xb5, 0xe2, 0x7f,
- 0xff, 0xff, 0xff, 0x36, 0x1d, 0x6c, 0xf3, 0x40, 0x6d, 0x93, 0x80, 0x28,
- 0x3a, 0x08, 0xf4, 0x8f, 0xcd, 0xb9, 0x9c, 0x9f, 0x9e, 0x00, 0x71, 0x89,
- 0xa3, 0x64, 0x6b, 0xbe, 0x30, 0xc9, 0x58, 0x7b, 0xd7, 0x8c, 0x0f, 0x57,
- 0xff, 0x5f, 0x99, 0xeb, 0xa8, 0xec, 0xff, 0xf5, 0x8b, 0xe0, 0x3d, 0x33,
- 0x3f, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xf2, 0x28, 0x65, 0x4c, 0xfe,
- 0x43, 0x8c, 0x82, 0xcb, 0xe2, 0x23, 0x7a, 0x00, 0xd6, 0xf9, 0x8b, 0x1f,
- 0xff, 0x84, 0x88, 0x02, 0x63, 0x37, 0x0d, 0x38, 0x16, 0x7d, 0x10, 0xbe,
- 0x83, 0x97, 0x06, 0x63, 0xea, 0xd4, 0x1c, 0xc7, 0xc8, 0x8d, 0xaa, 0xfc,
- 0xff, 0x9c, 0xd2, 0xca, 0xa0, 0xd6, 0xd6, 0x36, 0x58, 0x04, 0x8c, 0xe9,
- 0x87, 0xe1, 0xd2, 0x8c, 0x1c, 0xf6, 0xc2, 0x1f, 0x01, 0xbd, 0xff, 0x03,
- 0xff, 0xfe, 0xfe, 0xc3, 0x45, 0x68, 0x0f, 0xa3, 0x3c, 0x01, 0xed, 0xfa,
- 0x15, 0x40, 0xe8, 0x5f, 0x00, 0x3d, 0xdd, 0x7a, 0x91, 0xf7, 0x97, 0xe6,
- 0xff, 0x39, 0x9f, 0xc1, 0x03, 0x96, 0xd1, 0xfa, 0xf3, 0x01, 0x86, 0xee,
- 0xbf, 0xfe, 0xab, 0xd0, 0x7e, 0x12, 0x7a, 0xf1, 0x88, 0x22, 0x04, 0x88,
- 0xc1, 0x4b, 0x80, 0x23, 0x3f, 0xea, 0x3d, 0x19, 0x3a, 0xe9, 0xbf, 0xdb,
- 0x9f, 0x89, 0x89, 0x79, 0xa7, 0xac, 0x4f, 0xfe, 0x12, 0x11, 0xf0, 0x0f,
- 0x00, 0x5d, 0x5d, 0xb0, 0x21, 0xd7, 0xfe, 0x00, 0x8d, 0x7a, 0x59, 0xee,
- 0x53, 0x7f, 0x99, 0xcf, 0x5c, 0x2a, 0x80, 0x19, 0x9f, 0xab, 0x10, 0xf3,
- 0xa0, 0x7e, 0x04, 0x4d, 0xe0, 0x7e, 0xf6, 0x75, 0xb8, 0x3f, 0x0b, 0xbf,
- 0x5e, 0x33, 0xd9, 0xbc, 0xdb, 0xff, 0x87, 0xca, 0x64, 0xc3, 0xf5, 0xe0,
- 0x5d, 0x6d, 0x24, 0x37, 0xf7, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xda, 0xc4, 0x57, 0x21, 0x2c, 0x0a, 0x1d, 0xba, 0x9f,
- 0x2a, 0x18, 0x1d, 0x1f, 0x1c, 0x02, 0xb2, 0xfa, 0xf1, 0xbf, 0xf7, 0xff,
- 0x5e, 0x3b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff,
- 0xff, 0xfc, 0x57, 0xff, 0xe4, 0xf1, 0x5f, 0xff, 0x9b, 0xfe, 0xa0, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8,
- 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x1e, 0xc5, 0x40, 0x4d, 0x9b, 0x48, 0xe3,
- 0xe8, 0x66, 0x26, 0x27, 0xff, 0xff, 0xff, 0xf0, 0xc1, 0x83, 0x4e, 0x00,
- 0xf1, 0xb4, 0xc2, 0xc2, 0x40, 0x48, 0xdf, 0xad, 0xfd, 0x56, 0xae, 0x79,
- 0x9e, 0xb5, 0x27, 0x80, 0x23, 0xe0, 0xea, 0xd9, 0x9b, 0xe0, 0x99, 0x5d,
- 0xfa, 0x84, 0xa3, 0x4e, 0x36, 0xa6, 0x33, 0x35, 0xab, 0xf0, 0xc7, 0xf8,
- 0x7f, 0x82, 0x01, 0x66, 0x73, 0x6e, 0x57, 0xdd, 0x7e, 0x31, 0x1f, 0x5a,
- 0xff, 0xad, 0xe2, 0x7f, 0xff, 0xf0, 0xc7, 0xeb, 0x51, 0x80, 0x7b, 0x27,
- 0x01, 0x19, 0x4f, 0x4f, 0xce, 0x63, 0x6b, 0xde, 0xf0, 0x13, 0x29, 0xcc,
- 0xe5, 0xdc, 0xed, 0x22, 0xa6, 0x2e, 0x3f, 0xcf, 0x14, 0xcf, 0x9d, 0x7f,
- 0xff, 0xeb, 0xff, 0xdf, 0xbf, 0x0c, 0x70, 0xc3, 0xf0, 0xe1, 0x2e, 0x00,
- 0xaf, 0x4d, 0x35, 0x1e, 0x20, 0x64, 0xcb, 0xc0, 0x14, 0xc9, 0x25, 0x47,
- 0x8e, 0xb2, 0xbc, 0x09, 0xf8, 0x4f, 0xfa, 0x6a, 0x9f, 0x6b, 0xae, 0x4d,
- 0x63, 0x03, 0x1f, 0x68, 0x7d, 0xa1, 0x0a, 0x3b, 0x02, 0x84, 0x2e, 0x4f,
- 0xda, 0x36, 0xb3, 0x07, 0x0c, 0x57, 0x55, 0x05, 0xff, 0x87, 0xd8, 0x07,
- 0xd7, 0x8f, 0x60, 0x40, 0xfc, 0x31, 0xaa, 0xf8, 0x75, 0x50, 0xc1, 0x3a,
- 0xc0, 0x3f, 0xa7, 0x2e, 0x54, 0x58, 0x46, 0x0b, 0x26, 0x8f, 0x78, 0x63,
- 0xe1, 0xea, 0xbf, 0x04, 0x0b, 0x1f, 0x0e, 0xeb, 0x03, 0x42, 0xf5, 0x8c,
- 0xd8, 0x62, 0x3a, 0xbf, 0xff, 0x0f, 0x94, 0x07, 0x7f, 0x0e, 0xec, 0x4e,
- 0xad, 0x21, 0xba, 0xfe, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xb7, 0xad, 0x83, 0x27, 0xf9, 0x75, 0x8d, 0xfb, 0xfa, 0xc7, 0x7f,
- 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xfc,
- 0x7f, 0xff, 0xef, 0x3f, 0xf9, 0x31, 0x3f, 0xff, 0xff, 0xff, 0xea, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xcc, 0x27, 0x64, 0x12, 0x30, 0xdc, 0x9b, 0xc3,
- 0x31, 0x7c, 0x89, 0xbb, 0x77, 0xf0, 0x01, 0x66, 0x99, 0x2e, 0x5b, 0xec,
- 0x97, 0xd3, 0xc4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x1c,
- 0x11, 0xb8, 0x3b, 0xb3, 0x73, 0x54, 0x06, 0xff, 0x0e, 0xe2, 0x3d, 0x81,
- 0x67, 0xf0, 0x4d, 0x81, 0x37, 0xb1, 0xde, 0x80, 0xb3, 0xf8, 0x41, 0xac,
- 0xef, 0x3d, 0xc0, 0xdf, 0x31, 0xb3, 0x5b, 0x07, 0x01, 0x8e, 0x16, 0x40,
- 0xdc, 0x52, 0x7a, 0x1a, 0xde, 0x7f, 0xf8, 0xe8, 0x8e, 0x5d, 0x83, 0xb7,
- 0xcf, 0xe0, 0x08, 0xee, 0xbe, 0x5e, 0x49, 0xdb, 0x04, 0x8c, 0xc2, 0xa0,
- 0xbb, 0x04, 0x4a, 0x66, 0xdc, 0x22, 0xc6, 0xef, 0x4d, 0x2c, 0x86, 0x8f,
- 0x35, 0xde, 0x4b, 0x06, 0xdb, 0x23, 0x71, 0x4f, 0xdd, 0xfd, 0xc7, 0x84,
- 0x42, 0x1b, 0x2c, 0x2d, 0x02, 0x11, 0x29, 0x0b, 0x2c, 0x1c, 0x22, 0x10,
- 0xc9, 0x6a, 0x07, 0x10, 0x73, 0x12, 0x2f, 0xe0, 0xa6, 0x86, 0xe6, 0xe3,
- 0xa9, 0xea, 0x51, 0xbb, 0x5f, 0x69, 0x9f, 0x80, 0x28, 0x10, 0xc3, 0x2a,
- 0x8d, 0xda, 0xf3, 0xe4, 0x0b, 0x9c, 0x57, 0xff, 0xff, 0xf1, 0x86, 0xe1,
- 0x94, 0x3a, 0x1e, 0xa0, 0x93, 0x03, 0xf2, 0xa1, 0x33, 0xfe, 0xbf, 0x1f,
- 0x7f, 0xd0, 0xa0, 0x51, 0x02, 0x5d, 0xe6, 0x4a, 0x8e, 0xf4, 0x3f, 0xdf,
- 0x13, 0x61, 0xd7, 0x26, 0x60, 0xf6, 0xfc, 0x00, 0x33, 0x1b, 0x6f, 0x44,
- 0x9b, 0x4e, 0xab, 0x65, 0x8d, 0x1d, 0x11, 0x76, 0xbf, 0xa0, 0x72, 0x09,
- 0x1b, 0x55, 0x2b, 0xd5, 0x8d, 0x72, 0x6d, 0x20, 0x99, 0x85, 0xa4, 0x2d,
- 0x47, 0x3a, 0x8c, 0x17, 0x12, 0x67, 0xf2, 0x09, 0x8d, 0xb3, 0x7f, 0xfe,
- 0x45, 0x04, 0x26, 0x80, 0x0b, 0xd2, 0xfe, 0x0a, 0x14, 0xac, 0x7e, 0x60,
- 0x3b, 0x40, 0x7e, 0x7f, 0x87, 0xe0, 0x33, 0x7e, 0xf7, 0x94, 0x52, 0x96,
- 0x4e, 0x00, 0x81, 0x8a, 0xc0, 0xd4, 0x31, 0xef, 0xc8, 0x00, 0xfb, 0xc0,
- 0xc9, 0x10, 0x80, 0x1d, 0x21, 0x0e, 0xe9, 0x05, 0x4f, 0x8f, 0x74, 0x0e,
- 0x50, 0x9e, 0x98, 0x14, 0x60, 0xfd, 0x70, 0xf8, 0x01, 0xff, 0xc2, 0x3c,
- 0x5b, 0xe9, 0x00, 0xf4, 0x72, 0x5b, 0x2e, 0x77, 0xf4, 0xff, 0xff, 0xf5,
- 0xeb, 0xff, 0xff, 0x10, 0xf0, 0x06, 0x47, 0xab, 0x84, 0xfd, 0xfc, 0xff,
- 0x00, 0xb7, 0x69, 0x89, 0xf3, 0x47, 0xc3, 0xff, 0x09, 0x10, 0x3a, 0x48,
- 0xc8, 0x03, 0x08, 0x4d, 0x06, 0xda, 0x83, 0xf0, 0x03, 0xa4, 0x8c, 0x80,
- 0x30, 0x84, 0x94, 0x1b, 0x6a, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08, 0x49,
- 0x41, 0xb6, 0xaf, 0x0e, 0x77, 0xc0, 0xf0, 0x38, 0xb0, 0x01, 0xfd, 0x29,
- 0x8e, 0xb1, 0x14, 0xe7, 0x7d, 0x01, 0xbb, 0xff, 0xef, 0xfc, 0x18, 0x70,
- 0xcc, 0x3a, 0xfc, 0xdd, 0x86, 0xfb, 0x39, 0xbe, 0x9f, 0xfc, 0x3e, 0x58,
- 0x43, 0x39, 0x32, 0x34, 0xe3, 0xd5, 0xef, 0xcc, 0x14, 0xfa, 0x69, 0xf1,
- 0x26, 0xf8, 0x05, 0x07, 0x6d, 0x81, 0xf5, 0x03, 0xec, 0x58, 0x2e, 0x8f,
- 0x57, 0xcd, 0x2f, 0xff, 0x5f, 0xe0, 0x02, 0x4a, 0xa2, 0x6e, 0xe2, 0xfb,
- 0xcf, 0xb7, 0x19, 0x03, 0x80, 0x3c, 0x77, 0x27, 0x84, 0xce, 0x0e, 0x65,
- 0x09, 0x89, 0xcd, 0x4f, 0x4f, 0xa5, 0x31, 0x43, 0x24, 0xc6, 0xd6, 0x07,
- 0xdb, 0xc3, 0xff, 0x80, 0x10, 0x46, 0xef, 0xd2, 0x3f, 0x71, 0xe8, 0x8d,
- 0x63, 0xe7, 0xf8, 0x08, 0xca, 0xd3, 0x9d, 0xab, 0xde, 0xfd, 0x78, 0xce,
- 0x63, 0xc2, 0x1c, 0x1e, 0xd9, 0x33, 0xa0, 0x55, 0x4c, 0x29, 0x60, 0x01,
- 0x15, 0xbb, 0xbb, 0xae, 0xff, 0x00, 0x1f, 0x41, 0xda, 0xe7, 0x74, 0x64,
- 0xf5, 0x7b, 0xff, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xde, 0xe4, 0x09, 0x5f, 0xe5, 0x33, 0x6c, 0x14, 0x09, 0xf5, 0x19,
- 0xbc, 0x2f, 0x8f, 0xe3, 0xd6, 0xec, 0x31, 0x1d, 0xc2, 0x03, 0x1d, 0x0c,
- 0x54, 0x2c, 0x3c, 0xbb, 0xcf, 0xe2, 0xda, 0xb1, 0xe3, 0xe1, 0x84, 0x3d,
- 0x8e, 0x43, 0x6c, 0xf7, 0x4e, 0xf9, 0x17, 0x0c, 0x43, 0xe5, 0xfa, 0xf1,
- 0xdf, 0xed, 0x8f, 0x03, 0x61, 0x93, 0x03, 0x4c, 0x7f, 0xda, 0x87, 0xa5,
- 0xb5, 0x1f, 0x21, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xd7, 0xff, 0xff, 0x08, 0x7f, 0xc6,
- 0x7f, 0xfe, 0x3b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xae, 0x2d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xbf, 0x45,
- 0x94, 0x4e, 0x08, 0xf3, 0x37, 0x75, 0xd7, 0x13, 0xff, 0xff, 0xff, 0xdf,
- 0xac, 0x50, 0x80, 0x01, 0x91, 0x59, 0x45, 0xcc, 0xfb, 0xfe, 0xc3, 0x7b,
- 0xc0, 0x84, 0x43, 0xb4, 0x25, 0x87, 0xbf, 0xf4, 0x00, 0x4d, 0xe4, 0xf0,
- 0xac, 0x3e, 0xff, 0x68, 0xc2, 0x6c, 0x6b, 0x43, 0xdc, 0x47, 0x11, 0xd5,
- 0x98, 0x32, 0x41, 0x86, 0x34, 0xf8, 0x5f, 0xf0, 0x99, 0xc2, 0x20, 0x6c,
- 0x00, 0x24, 0x5e, 0xab, 0xe4, 0xcc, 0x62, 0x5d, 0xdd, 0x2e, 0xf6, 0x7c,
- 0x50, 0x03, 0xd8, 0xbd, 0xa9, 0x4f, 0xbc, 0xb7, 0xd8, 0x9f, 0xff, 0xef,
- 0xd6, 0x33, 0xc0, 0x91, 0xbe, 0xcf, 0x5b, 0x80, 0x1d, 0x99, 0x0e, 0x62,
- 0x14, 0xcb, 0xd1, 0x63, 0xf5, 0xe1, 0xf3, 0x37, 0x81, 0xb6, 0x3a, 0x49,
- 0xf5, 0x79, 0xf1, 0xe6, 0x9e, 0xac, 0x0f, 0x7b, 0xff, 0x2f, 0x1d, 0xc2,
- 0xc4, 0x19, 0x36, 0x8f, 0xee, 0x69, 0xf7, 0x6d, 0xf3, 0x86, 0x3f, 0xff,
- 0x22, 0x82, 0x12, 0xc0, 0x02, 0xf2, 0x4d, 0xd7, 0xa1, 0x39, 0x5b, 0xbf,
- 0xc3, 0x80, 0x7e, 0x1d, 0x65, 0x27, 0xc0, 0x15, 0x69, 0xa0, 0x63, 0x9f,
- 0x3c, 0x7f, 0xff, 0xaf, 0xff, 0xef, 0xc9, 0x86, 0x42, 0x02, 0x10, 0x13,
- 0x6f, 0x3f, 0xff, 0xbc, 0xb7, 0x54, 0x25, 0xce, 0x78, 0x0d, 0xbb, 0xba,
- 0xec, 0x7f, 0x97, 0x00, 0x1a, 0x49, 0x09, 0x97, 0xf4, 0xc3, 0x8d, 0xfd,
- 0x47, 0x4c, 0x14, 0x44, 0xa4, 0xf4, 0x0c, 0xf4, 0x84, 0x88, 0x38, 0x19,
- 0xc3, 0x12, 0xb4, 0x32, 0x26, 0xfc, 0x26, 0x58, 0x72, 0x0f, 0xc3, 0x30,
- 0x70, 0x7e, 0x18, 0x01, 0xc6, 0xa7, 0x9e, 0x97, 0xf4, 0x2c, 0x30, 0x09,
- 0x36, 0xa6, 0x19, 0x80, 0x1c, 0x57, 0xc0, 0x0f, 0xea, 0xad, 0xe7, 0xff,
- 0xc7, 0x51, 0x01, 0xfb, 0x0a, 0x00, 0x8d, 0xf5, 0xeb, 0xfd, 0xbf, 0xf0,
- 0x05, 0x5b, 0xb7, 0x1f, 0x25, 0x5d, 0xeb, 0x18, 0xfa, 0x0d, 0x44, 0xe1,
- 0x84, 0x9a, 0x43, 0x9e, 0x13, 0xc5, 0x8c, 0x02, 0x2d, 0xe3, 0xff, 0xe3,
- 0xfc, 0x03, 0xc2, 0x3e, 0x1d, 0xd9, 0xfc, 0x01, 0xd7, 0xb7, 0x1e, 0x97,
- 0xbd, 0x63, 0x1f, 0x64, 0x88, 0xc8, 0x27, 0xc0, 0x41, 0xaa, 0x03, 0xfc,
- 0x5f, 0x7a, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5,
- 0x8a, 0xef, 0x97, 0x58, 0xd7, 0xfb, 0xfa, 0xc7, 0x77, 0xf9, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe,
- 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xf8, 0xc1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f,
- 0x98, 0x4f, 0x00, 0x3f, 0x9b, 0x21, 0x29, 0x52, 0x9e, 0xb1, 0x1c, 0xbc,
- 0x2d, 0x50, 0x45, 0x53, 0x90, 0x44, 0xf8, 0xe7, 0x13, 0xd9, 0x22, 0x26,
- 0xe0, 0x03, 0xe6, 0xf5, 0x90, 0x8e, 0xa4, 0xae, 0xc4, 0x06, 0x22, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0x14, 0x22, 0x18, 0xfd, 0x91, 0xc5, 0xff, 0xfd,
- 0xe3, 0xc8, 0xc8, 0x54, 0xc8, 0x44, 0x36, 0x9c, 0x7b, 0xf3, 0x3e, 0xcd,
- 0xda, 0x6d, 0xce, 0xcb, 0x18, 0xd5, 0x67, 0xdf, 0xf8, 0x3a, 0xc2, 0x9c,
- 0x2d, 0xad, 0xf9, 0xd8, 0xd1, 0x0d, 0x61, 0x1e, 0xd3, 0x69, 0x1f, 0xd2,
- 0xec, 0x27, 0xd9, 0xe5, 0x43, 0xdc, 0x00, 0x30, 0xdf, 0x7a, 0x5c, 0x60,
- 0x7c, 0x01, 0x22, 0xc4, 0x9c, 0xad, 0x1f, 0x7e, 0x6f, 0x63, 0x0a, 0x81,
- 0xd1, 0x01, 0x63, 0x10, 0x11, 0xeb, 0x4b, 0x0e, 0x2c, 0x50, 0x30, 0xbd,
- 0x6f, 0xd7, 0x23, 0x34, 0xc0, 0x4d, 0xfa, 0x8c, 0x68, 0x43, 0xfd, 0x78,
- 0xd3, 0xe9, 0xef, 0xf9, 0x78, 0xdd, 0xd0, 0x31, 0x93, 0xe0, 0x0b, 0x76,
- 0xb3, 0x59, 0x8d, 0x33, 0xec, 0xcf, 0x6a, 0x05, 0x90, 0x09, 0xfd, 0xb3,
- 0x31, 0x5f, 0x49, 0x8d, 0x97, 0x6b, 0x0f, 0xd1, 0x6a, 0xbb, 0xe7, 0x20,
- 0x00, 0x19, 0x2e, 0x7b, 0x99, 0x3b, 0xb6, 0x80, 0x2d, 0x7c, 0x83, 0x54,
- 0x60, 0x27, 0x2c, 0x9c, 0x9f, 0xcc, 0x3b, 0xcd, 0x23, 0x8d, 0xa9, 0x9b,
- 0x5d, 0x53, 0xfe, 0x71, 0x9a, 0x4c, 0x1f, 0xc2, 0x5f, 0x82, 0x01, 0x60,
- 0x51, 0x74, 0xac, 0xf2, 0x5b, 0xef, 0xac, 0x04, 0x99, 0x8a, 0x2d, 0x5d,
- 0xd7, 0x89, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91, 0x31, 0x3b, 0xaa,
- 0xd9, 0xba, 0x2c, 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2, 0xf0, 0x40, 0x0e,
- 0x7d, 0x83, 0xe4, 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29, 0x53, 0xf5, 0x06,
- 0xe8, 0x7d, 0x9b, 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38, 0x1b, 0xb2, 0xd4,
- 0x17, 0x60, 0xe7, 0x19, 0xfe, 0xf0, 0x72, 0x18, 0x21, 0xf0, 0x02, 0xaf,
- 0xbe, 0x52, 0x5f, 0x57, 0xcc, 0x38, 0xbb, 0xc3, 0xfe, 0x12, 0x40, 0x0f,
- 0xf7, 0xd3, 0xd0, 0x22, 0x6e, 0x9e, 0xbf, 0xf0, 0x3c, 0x06, 0x11, 0x07,
- 0x98, 0x56, 0x2a, 0xac, 0x5e, 0xde, 0xf8, 0x00, 0xc1, 0x4c, 0xa4, 0xd6,
- 0x5f, 0xeb, 0xe1, 0x80, 0x1f, 0x31, 0xe4, 0xce, 0xef, 0x8b, 0x73, 0xd4,
- 0x2d, 0xda, 0x8a, 0x81, 0xcf, 0x00, 0x62, 0x27, 0xd0, 0x94, 0x88, 0x2e,
- 0xbf, 0xe8, 0xff, 0x7f, 0xff, 0xff, 0xe8, 0xc8, 0x02, 0xb8, 0x17, 0xfc,
- 0x24, 0x81, 0x89, 0x67, 0x6b, 0x18, 0xe5, 0x50, 0xd6, 0xfe, 0xe5, 0x7a,
- 0xc4, 0xc3, 0x7d, 0xa7, 0x1c, 0xba, 0x3e, 0xd5, 0xf1, 0x35, 0x5f, 0x54,
- 0x9c, 0xfd, 0x4d, 0x73, 0xc0, 0xe7, 0xf8, 0x88, 0xdc, 0x27, 0x11, 0xfa,
- 0x1d, 0x0f, 0xe8, 0x74, 0x39, 0x81, 0xac, 0x23, 0xc9, 0xbf, 0x09, 0xe2,
- 0x8f, 0xf7, 0x07, 0x77, 0xf0, 0xce, 0xee, 0xe2, 0x9f, 0xfa, 0x77, 0xc0,
- 0x3d, 0xce, 0x3d, 0x6b, 0xd7, 0x8c, 0xf6, 0x6f, 0x87, 0xff, 0x04, 0x38,
- 0x01, 0x9f, 0x6f, 0xac, 0xed, 0x0d, 0x77, 0xf4, 0xc4, 0x7a, 0x26, 0xdb,
- 0xf9, 0x7e, 0x13, 0x60, 0xe0, 0x39, 0x1d, 0x33, 0x01, 0xab, 0x57, 0xdb,
- 0xfe, 0xf8, 0x0f, 0xf5, 0xeb, 0xc6, 0x7b, 0x11, 0x3c, 0xbe, 0x2e, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x5f, 0x97, 0xd7, 0x8d, 0xf2,
- 0x7f, 0xd7, 0x84, 0x3c, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2d, 0xff, 0xf8, 0x47, 0xff, 0xff, 0x8a,
- 0xff, 0xfc, 0x9e, 0x2b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xae, 0x6f, 0x60, 0x67, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xbf, 0x7e,
- 0xfe, 0x62, 0xe0, 0x24, 0x5a, 0x59, 0xbd, 0xda, 0x80, 0x91, 0x95, 0xa5,
- 0x21, 0xca, 0x15, 0x12, 0x52, 0xe9, 0xbd, 0x89, 0xff, 0xff, 0xfb, 0xfe,
- 0xf1, 0x66, 0x1f, 0x87, 0xe0, 0x3d, 0x1c, 0x3f, 0x3b, 0x50, 0xc1, 0xa0,
- 0x59, 0xf6, 0x67, 0x24, 0x13, 0x1b, 0x20, 0x03, 0x3a, 0x9d, 0x98, 0xc4,
- 0x45, 0x94, 0xc8, 0xb6, 0x5c, 0x3e, 0xd3, 0x23, 0x98, 0x7d, 0x27, 0x8f,
- 0x05, 0x32, 0xbb, 0xc0, 0x6b, 0x93, 0x0c, 0x99, 0xf0, 0x6e, 0x66, 0x40,
- 0x16, 0xa0, 0xa8, 0x98, 0x79, 0xa3, 0x2a, 0x7e, 0x07, 0x37, 0xa1, 0xcb,
- 0x00, 0x7f, 0xe2, 0x01, 0xd3, 0x5c, 0xd6, 0x3e, 0x42, 0xd2, 0xd0, 0xc2,
- 0x7f, 0x69, 0x7e, 0x13, 0x38, 0xb6, 0x9a, 0x29, 0xc7, 0x1d, 0xd8, 0x8c,
- 0x9d, 0xfc, 0x42, 0x3d, 0x3b, 0xfa, 0x51, 0x3f, 0xff, 0xf8, 0x63, 0x1f,
- 0x00, 0x34, 0x7d, 0x52, 0x2c, 0x98, 0x01, 0x1b, 0x37, 0xcb, 0x7f, 0xfb,
- 0xdd, 0xdc, 0xb5, 0xda, 0x60, 0x3b, 0x8e, 0xe6, 0x83, 0x47, 0x3d, 0x40,
- 0x08, 0xcd, 0xa6, 0x9a, 0xd5, 0xe5, 0x13, 0xe0, 0x9a, 0x47, 0x0e, 0xd1,
- 0xe2, 0xce, 0xfc, 0xf1, 0x16, 0x53, 0x34, 0x00, 0x99, 0x0f, 0xcf, 0xc3,
- 0x1f, 0xbd, 0xff, 0xc4, 0x9f, 0x80, 0x21, 0x95, 0x83, 0xe3, 0x1e, 0xfc,
- 0x80, 0x2d, 0x52, 0x07, 0xcc, 0xe3, 0xa1, 0xf8, 0x40, 0xe0, 0xfc, 0x2f,
- 0xf8, 0x60, 0x7b, 0x8f, 0xff, 0x0f, 0x30, 0xed, 0xaf, 0x9c, 0x17, 0xe0,
- 0x45, 0x7a, 0xeb, 0x87, 0xef, 0xfa, 0xff, 0xaf, 0xff, 0xd0, 0x60, 0xd4,
- 0xc4, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x59, 0x9c, 0x44, 0x35, 0x45, 0xda,
- 0x0c, 0x21, 0x7e, 0x72, 0x68, 0xff, 0xa8, 0x78, 0x99, 0x14, 0xb0, 0x25,
- 0xff, 0x85, 0x2e, 0x29, 0x1b, 0xfd, 0xa7, 0x65, 0xad, 0x33, 0xf6, 0x86,
- 0xfb, 0xca, 0x17, 0xff, 0x00, 0x33, 0xf0, 0xdc, 0x5e, 0x1a, 0xf0, 0xd7,
- 0x5a, 0xc6, 0x6c, 0x33, 0xeb, 0xad, 0x63, 0x38, 0x63, 0xf8, 0x7f, 0xc2,
- 0x82, 0x20, 0x15, 0x07, 0xb1, 0xc6, 0x2e, 0xcf, 0x45, 0xc0, 0x14, 0x74,
- 0xd3, 0x46, 0xd4, 0xd0, 0xc4, 0x52, 0x76, 0xc2, 0x06, 0x0c, 0xf6, 0x43,
- 0x3d, 0x30, 0xb6, 0x97, 0xb6, 0x2e, 0x31, 0xca, 0x5f, 0xfc, 0x5d, 0x99,
- 0x81, 0x0b, 0x20, 0x06, 0x58, 0xe2, 0x6f, 0xfb, 0x28, 0x45, 0x99, 0x0e,
- 0xb0, 0x65, 0x65, 0xa2, 0x81, 0x88, 0xf0, 0xcb, 0x3f, 0xf2, 0x3b, 0xbd,
- 0xd9, 0x5a, 0xe5, 0x10, 0xb8, 0x90, 0x08, 0x07, 0x75, 0xd3, 0x02, 0x3b,
- 0xb0, 0xc4, 0x75, 0x9a, 0x14, 0xe1, 0x66, 0xb6, 0x02, 0x3c, 0xf9, 0xf9,
- 0x8b, 0xcc, 0xd6, 0xc5, 0xb2, 0x7a, 0x23, 0x36, 0x8e, 0x0a, 0xed, 0x6d,
- 0x7f, 0x92, 0x22, 0x2a, 0xc6, 0xa0, 0xe9, 0x23, 0x4c, 0x19, 0x24, 0x98,
- 0x6a, 0x3a, 0x51, 0xb7, 0xc3, 0x1a, 0x20, 0x9c, 0xe5, 0x31, 0x01, 0x1b,
- 0x80, 0xe8, 0x8a, 0xd2, 0xc2, 0x32, 0x9e, 0xfc, 0xf1, 0x01, 0x96, 0xfe,
- 0xe4, 0xea, 0xd8, 0x51, 0x4e, 0x7f, 0x40, 0x9f, 0xe5, 0x17, 0x59, 0x9e,
- 0x9b, 0x43, 0x08, 0x9c, 0xa6, 0x30, 0x79, 0x3d, 0x31, 0x2a, 0x7a, 0xc5,
- 0x2b, 0x1d, 0x9b, 0x6d, 0x0c, 0x61, 0x4f, 0x49, 0x34, 0xf6, 0xe0, 0x78,
- 0x0c, 0x64, 0x1c, 0x18, 0x14, 0xd2, 0x41, 0xef, 0x2d, 0x7f, 0x80, 0x6e,
- 0xda, 0x94, 0xbc, 0x06, 0x0e, 0x7e, 0x0c, 0x25, 0xe7, 0x60, 0xa6, 0xd0,
- 0x36, 0x44, 0xbd, 0x5f, 0xde, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xb9, 0xbd, 0x8b, 0x90, 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x95, 0x07, 0xef,
- 0xe2, 0x26, 0x10, 0x8c, 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xda, 0x35,
- 0x4f, 0xc0, 0xff, 0x88, 0x60, 0x0d, 0x96, 0x93, 0x4f, 0xc3, 0x08, 0x42,
- 0x22, 0x5b, 0xf9, 0x1a, 0xc7, 0xf8, 0x63, 0x68, 0xb8, 0x7f, 0xe1, 0x22,
- 0x01, 0xc8, 0x06, 0x11, 0x00, 0x4a, 0x29, 0x60, 0x00, 0x20, 0x02, 0xfc,
- 0x01, 0x96, 0x50, 0x34, 0x58, 0x0e, 0x10, 0x00, 0x08, 0xea, 0x02, 0x38,
- 0x0e, 0xae, 0x4d, 0x48, 0x3a, 0xbb, 0x86, 0x30, 0xbf, 0xff, 0x84, 0x8b,
- 0x00, 0x56, 0xcc, 0x89, 0xa7, 0xe7, 0xc1, 0x17, 0xeb, 0x1b, 0x93, 0xeb,
- 0x86, 0x3e, 0xad, 0xf0, 0xc6, 0xc5, 0x0a, 0x00, 0xe0, 0x39, 0x08, 0x44,
- 0x26, 0x60, 0x02, 0x10, 0xf5, 0x42, 0xae, 0x2b, 0x3e, 0x03, 0x4d, 0xe8,
- 0xf3, 0x89, 0x1b, 0x98, 0x17, 0x56, 0x14, 0x7f, 0x50, 0xae, 0xa7, 0xea,
- 0x75, 0x06, 0x2d, 0x42, 0x6d, 0x6e, 0xa4, 0x78, 0x0e, 0x03, 0x90, 0x84,
- 0x42, 0x66, 0x18, 0xb0, 0xd1, 0xed, 0x67, 0x56, 0xf8, 0x21, 0x6c, 0xb8,
- 0x71, 0x08, 0x54, 0xcc, 0x31, 0x86, 0xad, 0xfe, 0x31, 0x90, 0x01, 0x08,
- 0x7a, 0xa1, 0x57, 0x15, 0x9f, 0x01, 0xa6, 0xf4, 0x79, 0xc4, 0x8d, 0xcc,
- 0x0b, 0xab, 0x0a, 0x3f, 0xa8, 0x57, 0x53, 0xf5, 0x3a, 0x83, 0x16, 0xa1,
- 0x36, 0xb7, 0x52, 0x00, 0x0c, 0xbf, 0xba, 0x77, 0x40, 0xc9, 0x6a, 0x61,
- 0x8b, 0x0d, 0x1e, 0xd6, 0x75, 0x6f, 0x82, 0x16, 0xcb, 0x87, 0x10, 0x85,
- 0x4c, 0xc3, 0x18, 0x6a, 0xdf, 0xe3, 0x19, 0x00, 0x10, 0x87, 0xaa, 0x15,
- 0x71, 0x59, 0xf0, 0x1a, 0x6f, 0x47, 0x9c, 0x48, 0xdc, 0xc0, 0xba, 0xb0,
- 0xa3, 0xfa, 0x85, 0x75, 0x3f, 0x53, 0xa8, 0x31, 0x6a, 0x13, 0x6b, 0x75,
- 0x20, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa6, 0x18, 0xb0, 0xd1,
- 0xed, 0x67, 0x56, 0xf8, 0x21, 0x6c, 0xb8, 0x71, 0x08, 0x54, 0xcc, 0x31,
- 0x86, 0xac, 0x5f, 0x1a, 0x46, 0x40, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19,
- 0x76, 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0x0b, 0x62, 0xc1, 0xd2,
- 0x6f, 0x4f, 0x77, 0xb7, 0xf8, 0x03, 0xd2, 0xde, 0x00, 0x0c, 0xbf, 0xba,
- 0x77, 0x40, 0xc9, 0x6a, 0x00, 0x07, 0x6f, 0xf9, 0x5f, 0x01, 0xde, 0xf3,
- 0x09, 0x54, 0xdb, 0xf5, 0x71, 0x04, 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03,
- 0x11, 0xde, 0xa8, 0xc8, 0xff, 0x9f, 0x43, 0x18, 0x6a, 0xc5, 0xa2, 0xc6,
- 0x91, 0x90, 0x03, 0x32, 0x91, 0x19, 0x80, 0xc6, 0x5d, 0xa0, 0x3a, 0xf7,
- 0xdf, 0xb4, 0x2d, 0xff, 0xc2, 0xd8, 0xb0, 0x74, 0x9b, 0xd3, 0xdd, 0xed,
- 0xfe, 0x00, 0xf4, 0xb7, 0xb8, 0xb9, 0x22, 0xcf, 0x40, 0x08, 0xdb, 0xdf,
- 0x2b, 0x6f, 0xff, 0xc1, 0xde, 0xf3, 0x09, 0x54, 0xdb, 0xf5, 0x71, 0x04,
- 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03, 0x11, 0xde, 0xa8, 0xc8, 0xff, 0x9f,
- 0x43, 0x18, 0x6a, 0xc5, 0xa6, 0x34, 0x8c, 0x80, 0x19, 0x94, 0x88, 0xcc,
- 0x06, 0x32, 0xed, 0x01, 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xfe, 0x16, 0xc5,
- 0x83, 0xa4, 0xde, 0x9e, 0xef, 0x6f, 0xf0, 0x07, 0xa5, 0xbd, 0xc5, 0x92,
- 0x44, 0xcf, 0x40, 0x01, 0xdb, 0xfe, 0x57, 0xc0, 0x77, 0xbc, 0xc2, 0x55,
- 0x36, 0xfd, 0x5c, 0x41, 0x00, 0x68, 0x80, 0xb8, 0x99, 0x00, 0xc4, 0x77,
- 0xaa, 0x32, 0x3f, 0xe7, 0xd0, 0xc6, 0x1a, 0xb1, 0x68, 0xb4, 0xe3, 0x20,
- 0x06, 0x65, 0x22, 0x33, 0x01, 0x8c, 0xbb, 0x40, 0x75, 0xef, 0xbf, 0x68,
- 0x5b, 0xff, 0x85, 0xb1, 0x60, 0xe9, 0x37, 0xa7, 0xbb, 0x1a, 0xa8, 0x01,
- 0xe9, 0x27, 0x71, 0x72, 0x45, 0x9e, 0x80, 0x11, 0xb7, 0xbe, 0x56, 0xdf,
- 0xff, 0x83, 0xbd, 0xe6, 0x12, 0xa9, 0xb7, 0xea, 0xeb, 0xbc, 0xea, 0xe9,
- 0x91, 0xfe, 0x7c, 0x5c, 0x4c, 0xd5, 0x2d, 0xbb, 0x56, 0xf9, 0x7a, 0x18,
- 0xfa, 0x99, 0x05, 0x2c, 0x9d, 0xfe, 0x0f, 0x00, 0x33, 0x29, 0x11, 0x98,
- 0x0c, 0x65, 0xda, 0x03, 0xaf, 0x7d, 0xfb, 0x42, 0xdf, 0xfe, 0x90, 0x00,
- 0x17, 0x04, 0x1f, 0x90, 0xec, 0x6a, 0xa0, 0x07, 0xa4, 0x99, 0xf0, 0x6f,
- 0xfb, 0x4b, 0xb7, 0xf9, 0xe0, 0xc3, 0x79, 0x13, 0x35, 0xab, 0xc0, 0x13,
- 0xaf, 0x0c, 0xb6, 0x26, 0x77, 0x65, 0xde, 0x75, 0x74, 0x64, 0x7f, 0x9f,
- 0x6f, 0x86, 0xbd, 0x57, 0x7f, 0x7f, 0xaa, 0x96, 0xdd, 0xab, 0x7c, 0xbd,
- 0x0c, 0x7d, 0x4c, 0x82, 0x96, 0x4e, 0x32, 0x00, 0x66, 0x52, 0x23, 0x30,
- 0x18, 0xcb, 0xb4, 0x07, 0x5e, 0xfb, 0xf6, 0x85, 0xbf, 0xfd, 0x20, 0x00,
- 0x2e, 0x08, 0x3f, 0x21, 0xd8, 0xd5, 0x40, 0x0f, 0x49, 0x33, 0xe0, 0xdf,
- 0xf6, 0x97, 0x67, 0xf9, 0xe0, 0xc3, 0x79, 0x13, 0x35, 0xab, 0xc0, 0x1b,
- 0x9f, 0x0c, 0xb5, 0x20, 0x8e, 0xce, 0xab, 0xce, 0xae, 0x62, 0x7f, 0xce,
- 0xb7, 0xc3, 0x5e, 0xab, 0xbf, 0xbf, 0xd3, 0x47, 0x6e, 0xd3, 0x1c, 0x3b,
- 0xa8, 0x63, 0xea, 0x64, 0x14, 0xb2, 0x71, 0x90, 0x03, 0x32, 0x91, 0x19,
- 0x80, 0xc6, 0x5d, 0xa0, 0x3a, 0xf7, 0xdf, 0xb4, 0x2d, 0xff, 0xe9, 0x00,
- 0x01, 0x70, 0x41, 0xf9, 0x0e, 0xc6, 0xaa, 0x00, 0x7a, 0x49, 0x9f, 0x08,
- 0xee, 0xd2, 0xec, 0xff, 0x3c, 0x18, 0x6f, 0x22, 0x66, 0xb5, 0x78, 0x03,
- 0x73, 0xe1, 0x96, 0xa4, 0x11, 0xd9, 0xd5, 0x79, 0xd5, 0xcc, 0x4f, 0xf9,
- 0xd6, 0xf8, 0x6b, 0xd5, 0x77, 0xf7, 0xfa, 0x68, 0xed, 0xda, 0x63, 0x87,
- 0x75, 0x0c, 0x7c, 0xd5, 0x02, 0x8e, 0xd0, 0xdf, 0xe0, 0xf0, 0x00, 0xa7,
- 0x73, 0x2a, 0xd6, 0x18, 0xa5, 0x2b, 0x0e, 0x67, 0x8d, 0x91, 0x7f, 0xf5,
- 0x27, 0x00, 0x00, 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0xd5, 0x7c,
- 0xdf, 0x08, 0xee, 0xd2, 0xed, 0xfe, 0x78, 0x06, 0x8d, 0xcd, 0x8b, 0x5a,
- 0x56, 0x00, 0x31, 0x1e, 0x46, 0x72, 0x05, 0x1f, 0xea, 0x98, 0x06, 0x5b,
- 0xe5, 0x61, 0xc7, 0x6c, 0x98, 0x1d, 0xa5, 0x26, 0x38, 0x77, 0x59, 0xb3,
- 0x57, 0xfd, 0xbf, 0xf7, 0x74, 0x31, 0xfa, 0xa0, 0x52, 0xde, 0x32, 0x00,
- 0x14, 0xee, 0x65, 0x5a, 0xc3, 0x14, 0xa4, 0xe5, 0x6c, 0xcc, 0xc0, 0x57,
- 0x7c, 0xf4, 0xe0, 0x00, 0x15, 0x04, 0x2f, 0x21, 0x78, 0xa8, 0x1f, 0xc9,
- 0x7f, 0x9b, 0xe1, 0xed, 0x1d, 0x98, 0xeb, 0xb8, 0x01, 0xa3, 0x76, 0xc5,
- 0xad, 0x2b, 0x00, 0x18, 0x8f, 0x26, 0xe4, 0x0a, 0x3f, 0xd5, 0x30, 0x0c,
- 0xb7, 0xce, 0x41, 0xc7, 0x6c, 0x98, 0x1d, 0xaa, 0x58, 0xe1, 0xdd, 0x6e,
- 0xcd, 0x5f, 0xf5, 0xfd, 0xe8, 0x63, 0xf5, 0x40, 0xa5, 0xbc, 0x64, 0x00,
- 0x29, 0xdc, 0xca, 0xb5, 0x86, 0x29, 0x49, 0xca, 0xd9, 0x99, 0x80, 0xae,
- 0xf9, 0xe9, 0xc0, 0x00, 0x2a, 0x08, 0x5e, 0x42, 0xf1, 0x50, 0x3f, 0x92,
- 0xff, 0x37, 0xc3, 0xda, 0x3b, 0x31, 0xd7, 0x70, 0x03, 0x46, 0xed, 0x8b,
- 0x5a, 0x56, 0x00, 0x31, 0x1e, 0x4d, 0xc8, 0x14, 0x7f, 0xaa, 0x60, 0x19,
- 0x6f, 0x9c, 0x83, 0x8e, 0xd9, 0x30, 0x3b, 0x54, 0xb1, 0xc3, 0xba, 0xdd,
- 0x9a, 0xbf, 0xeb, 0xfb, 0xd0, 0xc7, 0x80, 0x8a, 0x05, 0x22, 0x8c, 0x11,
- 0x90, 0x00, 0xa7, 0x73, 0x29, 0x4b, 0x0d, 0xf1, 0xf6, 0x23, 0xa2, 0x4c,
- 0xf9, 0xbb, 0xbf, 0xb8, 0x01, 0xf9, 0x63, 0x27, 0x74, 0x6d, 0x2f, 0xaf,
- 0x7c, 0x3d, 0xa3, 0xb3, 0x1d, 0x77, 0x03, 0xc4, 0x21, 0x50, 0x98, 0x40,
- 0x80, 0x26, 0x40, 0x12, 0x39, 0xe3, 0x4b, 0x51, 0xdd, 0xcf, 0x03, 0x38,
- 0xf5, 0xd6, 0x49, 0xff, 0xbe, 0x02, 0xc3, 0x0a, 0x25, 0x43, 0x16, 0x0e,
- 0x28, 0xc1, 0x7b, 0x89, 0xea, 0x85, 0xdc, 0x01, 0x9c, 0xd6, 0x63, 0x35,
- 0x59, 0x3c, 0x6a, 0x52, 0x01, 0xaf, 0xee, 0x00, 0x7e, 0x58, 0x89, 0x7f,
- 0x50, 0x03, 0xd2, 0x35, 0xdd, 0x7c, 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x0c,
- 0x10, 0x85, 0x42, 0x61, 0x02, 0x00, 0x91, 0x00, 0x48, 0xe7, 0x8d, 0x2d,
- 0x67, 0x77, 0x3c, 0x0c, 0xe3, 0xd7, 0x4c, 0x93, 0xff, 0x7c, 0x0e, 0x18,
- 0xc4, 0x54, 0x19, 0x03, 0x8a, 0x30, 0x5f, 0x02, 0xaa, 0x74, 0xef, 0xb0,
- 0x05, 0x3b, 0xba, 0xe6, 0x32, 0x7f, 0xb3, 0x48, 0xb3, 0x01, 0x45, 0x8a,
- 0x80, 0x6d, 0x77, 0x00, 0xf5, 0x41, 0x7c, 0xfa, 0x37, 0x43, 0xe9, 0xab,
- 0xbb, 0xee, 0x00, 0x19, 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42, 0xa1, 0x30,
- 0x81, 0x00, 0x59, 0x00, 0x38, 0xe7, 0x63, 0x4b, 0x51, 0xbb, 0xbc, 0x0c,
- 0xe3, 0xd7, 0x4c, 0x93, 0xff, 0x7c, 0x2d, 0x20, 0x86, 0x1e, 0x19, 0xb2,
- 0x78, 0x83, 0x6f, 0xd5, 0xf8, 0x00, 0x67, 0x2b, 0x4b, 0x38, 0xc1, 0x9c,
- 0x13, 0xd0, 0xd4, 0xed, 0x92, 0x0f, 0xcf, 0xd6, 0x55, 0xf7, 0x00, 0xf5,
- 0xc2, 0xef, 0xeb, 0xff, 0xe2, 0x38, 0xb3, 0x7f, 0xfc, 0x7c, 0x00, 0x37,
- 0xf7, 0x4e, 0xe8, 0x60, 0x84, 0x2a, 0x93, 0x08, 0x10, 0x04, 0x88, 0x2f,
- 0x9c, 0x6c, 0xd6, 0xbc, 0x34, 0xe0, 0x67, 0x1e, 0xba, 0x62, 0x8f, 0xfd,
- 0xf0, 0x8d, 0xa6, 0x21, 0x8f, 0x99, 0x27, 0xed, 0x8c, 0x80, 0x06, 0x72,
- 0xb4, 0xb3, 0x8c, 0x19, 0xc1, 0x3d, 0x0d, 0x4e, 0xd9, 0x20, 0xfc, 0xfd,
- 0x56, 0xb0, 0xcf, 0x5e, 0x2b, 0xab, 0x6b, 0xff, 0xe2, 0x38, 0xb3, 0x7f,
- 0xfc, 0x78, 0x00, 0x66, 0xdf, 0xf2, 0xbe, 0x64, 0x9a, 0x82, 0x3a, 0x80,
- 0x89, 0xc6, 0xcd, 0x6b, 0xc3, 0x4e, 0x04, 0x28, 0xda, 0x3d, 0x91, 0xb4,
- 0xc4, 0x31, 0xf3, 0x24, 0xfd, 0xb1, 0x90, 0x00, 0xce, 0x56, 0x96, 0x71,
- 0x83, 0x38, 0x27, 0xa1, 0xa9, 0xdb, 0x24, 0x1f, 0x9f, 0xaa, 0xd6, 0x19,
- 0xeb, 0xc5, 0x75, 0x6d, 0x7f, 0xfc, 0x47, 0x16, 0x6f, 0xff, 0x8f, 0x00,
- 0x0c, 0xdb, 0xfe, 0x57, 0xcc, 0x93, 0x50, 0x47, 0x50, 0x11, 0x38, 0xd9,
- 0xad, 0x78, 0x69, 0xc0, 0x85, 0x1b, 0x47, 0xb2, 0x36, 0x98, 0x86, 0x3e,
- 0xa4, 0x9f, 0x46, 0x28, 0xc8, 0x00, 0x67, 0x2b, 0x4b, 0x38, 0xc1, 0x9c,
- 0x13, 0xd4, 0x7e, 0x83, 0x13, 0x6f, 0x37, 0x1f, 0xe2, 0x8b, 0x48, 0xc0,
- 0xd6, 0xf4, 0x3b, 0x8e, 0xaf, 0xb2, 0x8f, 0x17, 0x73, 0xf5, 0xe0, 0x01,
- 0x9b, 0x7f, 0xca, 0xf9, 0x92, 0x6a, 0x06, 0x0c, 0xc0, 0xa9, 0xcc, 0x76,
- 0x88, 0xff, 0xf7, 0x40, 0x84, 0x8d, 0x91, 0xec, 0x80, 0x02, 0x55, 0x4c,
- 0xc3, 0x16, 0x6b, 0x20, 0x0c, 0x08, 0x4a, 0x58, 0x99, 0x00, 0x02, 0x54,
- 0x4c, 0x81, 0x0a, 0x62, 0xba, 0xdb, 0xe8, 0x02, 0xb7, 0xa6, 0xe3, 0x04,
- 0x11, 0xda, 0xe7, 0x91, 0x89, 0x61, 0x81, 0xf5, 0x50, 0x19, 0xc7, 0x72,
- 0xed, 0x27, 0xfc, 0xaf, 0x37, 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73,
- 0x7f, 0xfc, 0x18, 0x80, 0x00, 0x55, 0xd8, 0x06, 0x13, 0xf4, 0xfb, 0x9f,
- 0xfb, 0x78, 0x01, 0x3f, 0x53, 0x09, 0x15, 0x29, 0x9b, 0xde, 0xad, 0x5c,
- 0x03, 0x5e, 0x85, 0xd5, 0xe8, 0x61, 0x18, 0x2c, 0x91, 0x1a, 0x09, 0x7b,
- 0x84, 0x95, 0xe9, 0xeb, 0x77, 0xe7, 0x8c, 0x29, 0x8a, 0xeb, 0x6f, 0xa0,
- 0x64, 0x1f, 0xea, 0xb9, 0xff, 0xbb, 0xea, 0x5c, 0x89, 0xcd, 0xcf, 0x97,
- 0x81, 0x9c, 0x77, 0x2e, 0xd2, 0x7f, 0xca, 0xf3, 0x73, 0x9d, 0xab, 0xdb,
- 0xa6, 0xbb, 0xd7, 0x37, 0xff, 0xc1, 0x96, 0x00, 0x05, 0x51, 0x80, 0x28,
- 0x9f, 0xad, 0xf6, 0x5f, 0x7f, 0x80, 0x0c, 0xe0, 0xd5, 0xc6, 0x27, 0xfc,
- 0xea, 0xb5, 0x70, 0x0d, 0x7a, 0x17, 0x57, 0x83, 0xf7, 0x86, 0x11, 0x82,
- 0xc9, 0x11, 0xa0, 0x97, 0xb8, 0x49, 0x5e, 0x9e, 0xb7, 0x7e, 0x78, 0xc2,
- 0x98, 0xae, 0xb6, 0xfa, 0x06, 0x41, 0xfe, 0xab, 0x9f, 0xfb, 0xbe, 0xa5,
- 0xc8, 0x9c, 0xdc, 0xf9, 0x78, 0x19, 0xc7, 0x72, 0xed, 0x27, 0xfc, 0xaf,
- 0x37, 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73, 0x7f, 0xfc, 0x19, 0x60,
- 0x00, 0x55, 0x18, 0x02, 0x89, 0xfa, 0xdf, 0x65, 0xf7, 0xf8, 0x00, 0xce,
- 0x0d, 0x5c, 0x62, 0x7f, 0xce, 0xab, 0x57, 0x00, 0xd7, 0xa1, 0x75, 0x78,
- 0x3f, 0x78, 0x61, 0x20, 0xcc, 0x17, 0x10, 0x4e, 0x38, 0x98, 0x49, 0x5e,
- 0x9e, 0xb7, 0x7e, 0x78, 0x93, 0x50, 0x19, 0x07, 0xfa, 0xae, 0x7f, 0xee,
- 0xfb, 0xe8, 0xc9, 0x2e, 0x6c, 0xff, 0x00, 0x79, 0x36, 0xa0, 0xed, 0xcb,
- 0xd5, 0x6f, 0xa7, 0xff, 0xf5, 0xd6, 0xa4, 0x95, 0xab, 0xc1, 0x96, 0x00,
- 0x05, 0x51, 0x80, 0x2e, 0xba, 0x17, 0x57, 0xb5, 0x25, 0xc0, 0x06, 0x70,
- 0x6a, 0xe3, 0x13, 0xfe, 0x75, 0x5a, 0xba, 0x36, 0x16, 0xd5, 0xe8, 0x63,
- 0xb3, 0x04, 0x50, 0x11, 0xb1, 0xde, 0x6c, 0xc9, 0xed, 0x43, 0x87, 0x50,
- 0x28, 0x15, 0x07, 0xfa, 0x3a, 0xcb, 0xef, 0xf5, 0xf4, 0x64, 0x97, 0x3c,
- 0xff, 0x00, 0x79, 0x36, 0xa0, 0xee, 0xcb, 0xd5, 0x6f, 0xad, 0x5d, 0x69,
- 0x29, 0x5a, 0xbc, 0x18, 0x40, 0xc5, 0x03, 0xb0, 0xd7, 0xfe, 0xfb, 0x6a,
- 0xe8, 0x5d, 0x5e, 0xd4, 0x97, 0x06, 0x80, 0xcb, 0x56, 0x73, 0x0e, 0x3b,
- 0x66, 0x13, 0x94, 0xb0, 0x6b, 0x7d, 0x8d, 0xb8, 0x18, 0xff, 0x86, 0x3b,
- 0x30, 0x45, 0x01, 0x1b, 0x1d, 0xe6, 0xcc, 0x8f, 0x69, 0x0e, 0x1d, 0x44,
- 0x9a, 0x80, 0x54, 0x1f, 0xe8, 0xeb, 0x2f, 0xbf, 0xd7, 0xd1, 0x92, 0x5c,
- 0xd9, 0xfe, 0x00, 0xf2, 0x6d, 0x41, 0xdd, 0x97, 0xaa, 0xdf, 0x5a, 0xba,
- 0xd2, 0x52, 0xb5, 0x78, 0x30, 0x81, 0x8a, 0x07, 0x61, 0xaf, 0xfd, 0xf6,
- 0xd5, 0xd0, 0xba, 0xbd, 0xa9, 0x2e, 0x0d, 0x01, 0x96, 0xac, 0xe6, 0x1c,
- 0x76, 0xcc, 0x27, 0x29, 0x60, 0xd6, 0xfb, 0x1b, 0x70, 0x31, 0xff, 0x0c,
- 0x76, 0x6d, 0xd0, 0x11, 0xbe, 0xf3, 0x66, 0x4f, 0x6a, 0x1c, 0x3a, 0x81,
- 0x40, 0xa8, 0x3f, 0xd1, 0xd6, 0x5f, 0x7f, 0xaf, 0xa3, 0x24, 0xb9, 0xe7,
- 0xf8, 0x03, 0x92, 0x36, 0xa0, 0xe2, 0xea, 0x62, 0xba, 0xaa, 0x52, 0x5a,
- 0xbd, 0xe1, 0x03, 0x14, 0x0e, 0xc3, 0x5f, 0xfb, 0xed, 0xab, 0xa1, 0x75,
- 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59, 0xcc, 0x38, 0xed, 0x98, 0x4e,
- 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x7f, 0xe1, 0x8e, 0xdb, 0x2a, 0x32,
- 0x34, 0xb8, 0x9e, 0x64, 0xfd, 0x7d, 0xcf, 0xfd, 0xde, 0x7d, 0xa6, 0x10,
- 0xb4, 0x98, 0x16, 0x94, 0x4f, 0xf3, 0x2c, 0xa6, 0x2e, 0x29, 0x92, 0x34,
- 0x6f, 0xfd, 0xf8, 0x03, 0x4a, 0x88, 0x3f, 0x22, 0x4f, 0xcd, 0x18, 0x10,
- 0x96, 0x9e, 0x07, 0x1e, 0x90, 0x48, 0xe7, 0x8d, 0x2d, 0x67, 0x77, 0x3d,
- 0x4f, 0x53, 0x83, 0x5f, 0xc9, 0xff, 0x3e, 0x86, 0x3b, 0x6c, 0xe8, 0xc8,
- 0x5f, 0x13, 0xbc, 0x9f, 0xaf, 0xb3, 0xff, 0x7f, 0x67, 0xda, 0x60, 0xf5,
- 0xc9, 0x30, 0x4a, 0x51, 0x3f, 0xd1, 0x42, 0x98, 0xca, 0x98, 0x91, 0xa3,
- 0x7f, 0xef, 0xc0, 0x1a, 0x54, 0x41, 0xf9, 0x12, 0x7e, 0x68, 0xc0, 0x84,
- 0xb4, 0xf0, 0x38, 0xf4, 0x82, 0x47, 0x3c, 0x69, 0x6b, 0x3b, 0xb9, 0xea,
- 0x7d, 0xe7, 0x06, 0xaa, 0x6f, 0xd7, 0xd8, 0x63, 0xb6, 0xc8, 0x8c, 0x85,
- 0x2e, 0x27, 0xb9, 0x3f, 0x5f, 0x75, 0xf7, 0x1f, 0x69, 0x97, 0xa9, 0x82,
- 0x52, 0x89, 0xfe, 0x8a, 0x14, 0xc6, 0x54, 0xc4, 0x8d, 0x1b, 0xff, 0x72,
- 0x7c, 0x6f, 0xfd, 0x80, 0x34, 0xa8, 0x83, 0xf2, 0x26, 0xfc, 0xd1, 0x81,
- 0x09, 0x69, 0xe0, 0x71, 0xe9, 0x04, 0x8e, 0x78, 0xd2, 0xd6, 0x77, 0x73,
- 0xd4, 0xfb, 0xce, 0x0d, 0x54, 0xdf, 0xaf, 0xb0, 0xc6, 0x3d, 0x91, 0x19,
- 0x1a, 0x5c, 0x4c, 0x10, 0xb7, 0x83, 0xfc, 0xeb, 0xef, 0xb8, 0x81, 0x00,
- 0x46, 0x40, 0x5a, 0x4c, 0x16, 0xe8, 0x43, 0x69, 0x82, 0x3b, 0xfd, 0xa0,
- 0xfe, 0x37, 0xf7, 0x81, 0x38, 0x85, 0xe9, 0xa0, 0x71, 0xe9, 0x02, 0xfe,
- 0xcb, 0x1c, 0xc5, 0x43, 0xde, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f, 0xf3,
- 0xea, 0xb5, 0xbc, 0x6b, 0x6b, 0x3b, 0xb9, 0xe8, 0x63, 0x1e, 0xc8, 0x8c,
- 0x8d, 0x2e, 0x27, 0xab, 0x19, 0xc1, 0xfe, 0xaf, 0x4f, 0xfd, 0x84, 0x08,
- 0x02, 0x32, 0x02, 0x4c, 0x98, 0x19, 0x60, 0x86, 0x69, 0x82, 0x3b, 0xfd,
- 0xa0, 0xfe, 0x37, 0xf7, 0x80, 0x7b, 0xec, 0x2f, 0x4d, 0x83, 0x8f, 0x48,
- 0x17, 0xf6, 0x58, 0xe6, 0x2a, 0x1e, 0xf0, 0x3b, 0x39, 0x61, 0xa7, 0xe4,
- 0xff, 0x9f, 0x5d, 0xad, 0xe3, 0x5b, 0x63, 0x1b, 0xaa, 0x18, 0xc7, 0xb2,
- 0x23, 0x23, 0x4b, 0x89, 0x97, 0xd8, 0xce, 0x0f, 0xf5, 0x7a, 0x7f, 0xec,
- 0x20, 0x40, 0x11, 0x90, 0x12, 0x64, 0xc0, 0xcb, 0x04, 0x33, 0x4c, 0x11,
- 0xdf, 0xed, 0x07, 0xf1, 0xbf, 0xbc, 0x03, 0xdf, 0x61, 0x7a, 0x6c, 0x1c,
- 0x7a, 0x40, 0xbf, 0xb2, 0xc7, 0x31, 0x50, 0xf7, 0x81, 0xd9, 0xcb, 0x0d,
- 0x3f, 0x27, 0xfc, 0xfa, 0xed, 0x6f, 0x1a, 0xdb, 0x18, 0xdd, 0x50, 0xc6,
- 0x38, 0xb2, 0x23, 0x23, 0x7c, 0x4c, 0xbe, 0xc0, 0x04, 0xae, 0x44, 0xe6,
- 0xc9, 0xf2, 0xf1, 0x02, 0x00, 0x8c, 0x83, 0x66, 0x2b, 0x4d, 0x72, 0xef,
- 0xff, 0xee, 0x40, 0x84, 0x2a, 0x67, 0xc0, 0x46, 0x6e, 0x73, 0xb5, 0x78,
- 0x03, 0xdf, 0x61, 0x7a, 0x6c, 0x1c, 0x7a, 0x40, 0xd7, 0xf2, 0x0f, 0x48,
- 0xbb, 0xf3, 0x03, 0xb3, 0x96, 0x1a, 0x7e, 0x4f, 0xf9, 0xf4, 0xd0, 0x65,
- 0x9e, 0xc3, 0x0e, 0x3b, 0x64, 0x31, 0xa6, 0x2c, 0x80, 0xc8, 0xc0, 0x1c,
- 0x4c, 0x96, 0xa0, 0x4a, 0xe4, 0x4e, 0x6c, 0x9f, 0x2f, 0x04, 0x95, 0xe9,
- 0xe5, 0xbb, 0xf3, 0xc3, 0x4c, 0x5e, 0x9a, 0xe5, 0xdf, 0xff, 0xf7, 0x90,
- 0x21, 0x0a, 0x99, 0xf0, 0x11, 0x9b, 0x9c, 0xd6, 0xaf, 0x02, 0x5f, 0xb1,
- 0x65, 0x6b, 0x7b, 0x6f, 0xfd, 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03,
- 0x75, 0xa9, 0xe0, 0xd2, 0xfc, 0x8d, 0xba, 0x68, 0x32, 0xcf, 0x61, 0x87,
- 0x1d, 0xb2, 0x18, 0xd3, 0x16, 0x40, 0x64, 0x6f, 0x89, 0x92, 0xd4, 0x09,
- 0x5c, 0x89, 0xcd, 0x93, 0xe5, 0xe0, 0x72, 0x57, 0xa7, 0xad, 0xdf, 0x9e,
- 0x1a, 0x62, 0xf4, 0xd7, 0x2e, 0xff, 0xff, 0xbc, 0x81, 0x08, 0x54, 0xcf,
- 0x80, 0x8c, 0xdc, 0xe7, 0x6a, 0xf0, 0x25, 0xfb, 0x14, 0x56, 0xb6, 0xb6,
- 0xff, 0xdc, 0xfe, 0x41, 0xe9, 0x17, 0x7e, 0x60, 0x37, 0x5a, 0x9e, 0x0d,
- 0x2f, 0xc8, 0xdb, 0xa6, 0x83, 0x2c, 0xf6, 0x18, 0x71, 0xdb, 0x21, 0x8d,
- 0x34, 0x60, 0x06, 0x46, 0xbf, 0x13, 0x25, 0xa8, 0x12, 0xb9, 0x13, 0x9b,
- 0x4f, 0x97, 0x82, 0x4a, 0xf4, 0xf4, 0xdd, 0xf9, 0xe1, 0xa6, 0x2f, 0x4d,
- 0x72, 0xef, 0xff, 0xfb, 0xf3, 0x47, 0x7a, 0xad, 0xa7, 0xfc, 0xf0, 0x28,
- 0xbd, 0x56, 0xfb, 0x7f, 0xfc, 0x05, 0xbf, 0x62, 0xca, 0xd6, 0xd9, 0x75,
- 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03, 0x75, 0xa9, 0xe0, 0xd2, 0xfd,
- 0x9b, 0x74, 0xd0, 0x65, 0x9e, 0xe3, 0x0e, 0x3b, 0x64, 0x30, 0x8d, 0xd3,
- 0x8a, 0x30, 0x87, 0x13, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x26,
- 0xa5, 0x3f, 0xdd, 0xed, 0x5a, 0x91, 0xfb, 0x49, 0xf2, 0xf6, 0xe4, 0xfd,
- 0x7f, 0x65, 0xf7, 0xf9, 0x9e, 0x49, 0x13, 0x7b, 0x08, 0x5d, 0xaa, 0xce,
- 0x3f, 0xe4, 0x18, 0x41, 0x7a, 0x9f, 0x7f, 0xff, 0xdc, 0x05, 0x41, 0xfe,
- 0x9d, 0x6b, 0xef, 0xf0, 0x80, 0x00, 0x55, 0x18, 0x0a, 0x7f, 0xc3, 0x79,
- 0x1a, 0xb8, 0x18, 0x83, 0xdf, 0x11, 0x3f, 0xe7, 0x50, 0xc2, 0x37, 0x4e,
- 0x28, 0xc2, 0x1c, 0x4c, 0xe9, 0x24, 0x5f, 0xe8, 0x22, 0x8d, 0xf0, 0x9a,
- 0x94, 0xff, 0x77, 0xb5, 0x6a, 0x47, 0xed, 0x27, 0xcb, 0xdb, 0x93, 0xf5,
- 0xfd, 0x97, 0xdf, 0xe6, 0x79, 0x24, 0x4d, 0xec, 0x21, 0x76, 0xab, 0x38,
- 0xff, 0x90, 0x61, 0x05, 0xea, 0x7d, 0xff, 0xff, 0x70, 0x15, 0x07, 0xfa,
- 0x75, 0xaf, 0xbf, 0xc2, 0x00, 0x01, 0x54, 0x60, 0x29, 0xff, 0x0d, 0xe4,
- 0x6a, 0xe0, 0x62, 0x0f, 0x7c, 0x44, 0xff, 0x9d, 0x43, 0x08, 0xdd, 0x21,
- 0x14, 0x61, 0xf7, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x42, 0xae,
- 0x7f, 0xbb, 0xda, 0xb5, 0x23, 0xf6, 0x93, 0xe5, 0xec, 0xc9, 0xfa, 0xfb,
- 0x4f, 0xfd, 0xdc, 0xcf, 0x52, 0x26, 0xf6, 0x18, 0xbf, 0x94, 0x1a, 0x3f,
- 0xd7, 0x41, 0xf2, 0x05, 0x41, 0xfe, 0x9d, 0x6b, 0xef, 0xf0, 0x80, 0x00,
- 0x55, 0x18, 0x0a, 0x7f, 0xc3, 0x79, 0x1a, 0xb8, 0x18, 0x83, 0xdf, 0x10,
- 0x9f, 0xf3, 0xa8, 0x0e, 0x21, 0x0a, 0x84, 0xcf, 0xf6, 0x7e, 0xd9, 0xe6,
- 0xb4, 0x69, 0x34, 0xab, 0x90, 0xa9, 0x18, 0x88, 0x8b, 0xb4, 0x1f, 0xec,
- 0xa0, 0x15, 0x14, 0xe3, 0x2d, 0x0f, 0x22, 0xeb, 0xbc, 0x88, 0x54, 0xc4,
- 0x33, 0x10, 0xdd, 0xa0, 0xff, 0x70, 0x0a, 0x8a, 0x71, 0x96, 0x87, 0x91,
- 0x75, 0xde, 0x44, 0x2a, 0x62, 0x19, 0x88, 0x6e, 0xd0, 0x7f, 0xb8, 0x05,
- 0x45, 0x38, 0xcb, 0x43, 0xc8, 0xba, 0xef, 0x22, 0x15, 0x31, 0x0c, 0xc4,
- 0x37, 0x68, 0x3f, 0xda, 0x06, 0x93, 0x21, 0xc2, 0xb1, 0x9d, 0x8d, 0xda,
- 0xbb, 0xd1, 0x0a, 0x91, 0x8c, 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64,
- 0x38, 0x56, 0x33, 0xb1, 0xbb, 0x57, 0x7a, 0x21, 0x52, 0x31, 0x99, 0x8d,
- 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc6, 0x76, 0x37, 0x6a, 0xef,
- 0x44, 0x2a, 0x46, 0x33, 0x31, 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1,
- 0x58, 0xce, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b,
- 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10,
- 0xa9, 0x18, 0xcc, 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x63,
- 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x19, 0x98, 0xdd, 0xaf, 0xfd,
- 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x67, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4,
- 0x63, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x8c, 0xec,
- 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x66, 0x63, 0x76, 0xbf, 0xf7, 0x06,
- 0x93, 0x21, 0xc2, 0xb1, 0x9d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x8c,
- 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x33, 0xb1, 0xbb,
- 0x57, 0x7a, 0x21, 0x52, 0x31, 0x99, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c,
- 0x87, 0x0a, 0xc6, 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x33, 0x31,
- 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6, 0xed, 0x5d,
- 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69, 0x32, 0x1c,
- 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc, 0xc6, 0xed,
- 0x7f, 0xed, 0x83, 0x48, 0xc8, 0x70, 0xe4, 0x33, 0x90, 0xdd, 0xaf, 0xc1,
- 0x4a, 0x22, 0x90, 0xb2, 0x26, 0xf0, 0xf7, 0x06, 0x91, 0x90, 0xe1, 0xc8,
- 0x67, 0x21, 0xbb, 0x5f, 0x82, 0x94, 0x45, 0x21, 0x64, 0x4d, 0xe1, 0xec,
- 0x81, 0x26, 0x87, 0x0a, 0xc4, 0x76, 0x5d, 0xae, 0xc1, 0xa4, 0xa4, 0x49,
- 0x24, 0xf0, 0xd7, 0xc2, 0x5f, 0xfc, 0x57, 0xf9, 0x31, 0x5f, 0xe6, 0xfa,
- 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x03, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xb2, 0x73, 0x09, 0xc7, 0x31, 0xf9,
- 0x9f, 0x0d, 0x20, 0xca, 0xde, 0x26, 0x2d, 0x68, 0x90, 0xd0, 0xbc, 0x04,
- 0x5b, 0x71, 0x99, 0x83, 0xca, 0x6d, 0xe9, 0x3f, 0x2b, 0x12, 0x52, 0x97,
- 0x07, 0x6f, 0xd3, 0xee, 0x5f, 0xf6, 0xde, 0x27, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x94, 0x40, 0xe8, 0x65, 0x70, 0x81, 0x56, 0x2c, 0xbf, 0x16, 0x87,
- 0xe1, 0xf8, 0x0f, 0x47, 0x0f, 0xce, 0xd4, 0x9f, 0x8d, 0x11, 0x8d, 0x8f,
- 0x22, 0xf0, 0x00, 0x16, 0x2f, 0xa1, 0x04, 0x01, 0x9c, 0x64, 0x4d, 0x1b,
- 0xb4, 0x85, 0xd2, 0x77, 0xdf, 0x80, 0xc6, 0x0c, 0x35, 0x12, 0xd4, 0xcb,
- 0xc0, 0x05, 0x65, 0x8e, 0x52, 0xd2, 0x24, 0xed, 0x32, 0x86, 0x62, 0x8d,
- 0xff, 0x36, 0x9f, 0x0b, 0xfe, 0x13, 0x13, 0x3a, 0x47, 0x2c, 0x00, 0x95,
- 0x79, 0xdf, 0x26, 0x31, 0x89, 0xb7, 0x70, 0xfb, 0xd9, 0xf5, 0xc8, 0x0f,
- 0x90, 0xfc, 0x95, 0x7c, 0xfb, 0xef, 0xbf, 0x62, 0x7f, 0xff, 0xff, 0xff,
- 0x37, 0xe2, 0x0c, 0xa6, 0x4a, 0x92, 0xb2, 0x70, 0x02, 0x66, 0xec, 0x82,
- 0x3f, 0x61, 0xf6, 0x2a, 0xc7, 0x92, 0xc7, 0x9e, 0x02, 0x11, 0x15, 0x7d,
- 0x2e, 0xa7, 0x60, 0x32, 0x40, 0x32, 0xa1, 0xa7, 0x0d, 0x9e, 0x9c, 0x83,
- 0xa9, 0x90, 0x01, 0xbd, 0xd8, 0x0c, 0x2e, 0xa9, 0x57, 0xa8, 0x5d, 0xe2,
- 0x81, 0xbd, 0x5d, 0x14, 0xfd, 0x40, 0x01, 0x9d, 0xdc, 0x36, 0xa8, 0x93,
- 0x52, 0x1c, 0x6e, 0x4f, 0xfe, 0x43, 0xe3, 0x19, 0x7f, 0x93, 0xf0, 0x24,
- 0x84, 0x44, 0xc0, 0x93, 0x19, 0x70, 0xca, 0x0c, 0x0a, 0xf8, 0x03, 0xeb,
- 0x06, 0x77, 0xa8, 0x54, 0x66, 0x37, 0x6b, 0x60, 0x37, 0x7b, 0xbb, 0xbd,
- 0xef, 0xe1, 0x05, 0x80, 0x04, 0x2f, 0x77, 0x77, 0xc0, 0x00, 0x20, 0x10,
- 0xe0, 0xe7, 0x40, 0x34, 0x04, 0x3d, 0xf8, 0x00, 0x00, 0x08, 0x05, 0x4f,
- 0x00, 0x01, 0x00, 0x88, 0xa0, 0x00, 0x20, 0x15, 0x14, 0x00, 0x04, 0x02,
- 0x20, 0x04, 0x56, 0xf1, 0x57, 0x60, 0x08, 0x7f, 0xc8, 0x20, 0xfa, 0x1c,
- 0x76, 0x63, 0xff, 0x83, 0xc0, 0x00, 0x40, 0x22, 0x04, 0xc6, 0x96, 0x5c,
- 0x6c, 0xd0, 0x40, 0x36, 0x9f, 0xff, 0xff, 0xfa, 0xe2, 0x10, 0xdc, 0xaf,
- 0x76, 0x17, 0xfa, 0x1f, 0xea, 0xf8, 0x41, 0xea, 0x3f, 0x7a, 0x56, 0x62,
- 0xfc, 0x66, 0x79, 0x87, 0xbe, 0x1f, 0x9f, 0xd7, 0xc2, 0xd1, 0x2f, 0xff,
- 0xfc, 0x00, 0x32, 0x2f, 0x92, 0x99, 0xb4, 0xbc, 0x71, 0x05, 0x00, 0x01,
- 0x00, 0xc8, 0xa0, 0x00, 0x20, 0x19, 0x14, 0x00, 0x04, 0x03, 0x20, 0x01,
- 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06, 0x00, 0x08, 0x7a, 0xc7, 0x59,
- 0x80, 0x10, 0xfc, 0xdd, 0x8d, 0x2a, 0x95, 0x52, 0xba, 0xa8, 0x89, 0x11,
- 0x6a, 0xf0, 0x60, 0x01, 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06, 0x2f,
- 0xed, 0x42, 0x8c, 0xcc, 0x7e, 0x6b, 0xfb, 0x50, 0xa3, 0x33, 0x1f, 0x98,
- 0x3f, 0xaf, 0x19, 0xec, 0xfb, 0xcd, 0xe4, 0x44, 0x52, 0x22, 0xf8, 0x26,
- 0x8c, 0x87, 0xe6, 0xfe, 0xb0, 0x3f, 0x7b, 0x00, 0x21, 0x56, 0xdf, 0xd1,
- 0x3f, 0x9a, 0x0e, 0x01, 0xff, 0xc0, 0x97, 0x20, 0x0f, 0xba, 0xb0, 0x21,
- 0x76, 0xbd, 0x78, 0xcf, 0x7c, 0x85, 0x80, 0x04, 0xb1, 0x3b, 0x69, 0xe9,
- 0x6b, 0xe8, 0x6f, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xe7, 0x24, 0x15, 0x7f, 0xcb, 0xeb, 0xc6, 0xff, 0xdf, 0xfd, 0x78, 0xef,
- 0x5e, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xfe, 0x33, 0xff,
- 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xae, 0xb1, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfd, 0xfb, 0xf7,
- 0x98, 0x4e, 0x04, 0xdd, 0xaf, 0xb9, 0x74, 0x2b, 0x96, 0x27, 0xff, 0xff,
- 0xfd, 0xff, 0x8a, 0x14, 0x31, 0x83, 0xb9, 0x49, 0x97, 0xb6, 0x97, 0x80,
- 0x37, 0x85, 0x28, 0xb4, 0x07, 0x5f, 0x20, 0x05, 0x15, 0x0e, 0x52, 0x76,
- 0xd1, 0xfa, 0x44, 0x50, 0x7b, 0x80, 0xfd, 0xc4, 0x52, 0x0e, 0x07, 0x20,
- 0x82, 0x4a, 0x24, 0x58, 0x1d, 0x04, 0x22, 0x0c, 0x64, 0x62, 0x14, 0x37,
- 0x6f, 0x9e, 0xf7, 0xe0, 0x58, 0xb9, 0x40, 0xa1, 0xfa, 0xf6, 0xcc, 0xaa,
- 0xbc, 0xef, 0x13, 0xff, 0xff, 0x86, 0x31, 0xf5, 0x07, 0x19, 0xb3, 0x6c,
- 0xd8, 0x23, 0xdb, 0x3d, 0xa0, 0xe2, 0x8d, 0x4b, 0x78, 0x4b, 0xcb, 0xcb,
- 0x05, 0xb9, 0xa5, 0x8f, 0x41, 0x1d, 0xee, 0xd2, 0x8f, 0xdf, 0xbd, 0xf8,
- 0x35, 0xe5, 0x48, 0x2b, 0xdd, 0xfb, 0x36, 0x31, 0x41, 0xe5, 0x8e, 0xe4,
- 0x7a, 0xcf, 0xff, 0x0c, 0x0a, 0xe2, 0xa2, 0x3e, 0x1e, 0x12, 0x3c, 0x00,
- 0x60, 0xa6, 0x52, 0x6b, 0x2f, 0xf5, 0xf0, 0x90, 0xd1, 0x6e, 0x9d, 0x15,
- 0xce, 0x86, 0x40, 0xc7, 0xc3, 0x61, 0x1d, 0xf4, 0xbf, 0xe1, 0x80, 0xaa,
- 0xfb, 0x33, 0x12, 0x98, 0x9c, 0x5f, 0xe0, 0x04, 0x2b, 0x7f, 0x16, 0x47,
- 0xfc, 0x81, 0x79, 0xdc, 0xb3, 0x24, 0x6f, 0x34, 0xa7, 0x87, 0x52, 0x8c,
- 0x55, 0x8d, 0x1b, 0x01, 0x0a, 0xea, 0x83, 0xb0, 0xfe, 0x87, 0x90, 0x10,
- 0xa6, 0x78, 0x00, 0x5e, 0xff, 0xff, 0x41, 0x8b, 0x52, 0x4d, 0xff, 0x84,
- 0xb0, 0x0c, 0x75, 0x69, 0xfe, 0x40, 0x2b, 0x26, 0xb1, 0xd6, 0x74, 0x6e,
- 0x82, 0xdd, 0x09, 0x89, 0xc6, 0x1c, 0xfb, 0x0c, 0x7d, 0xa5, 0xed, 0x6c,
- 0x29, 0x87, 0x65, 0xbe, 0x88, 0x5f, 0x40, 0x7d, 0x25, 0x00, 0x7b, 0x77,
- 0x8e, 0xfe, 0x7d, 0x86, 0xb5, 0x07, 0x7e, 0xfa, 0xfd, 0x63, 0x36, 0xe2,
- 0x30, 0xc5, 0xac, 0x5c, 0x89, 0xbf, 0x13, 0x80, 0x67, 0xec, 0xea, 0x05,
- 0x10, 0x96, 0xb3, 0xbf, 0x00, 0xdf, 0xa8, 0xf4, 0x3d, 0x05, 0xdd, 0xeb,
- 0x58, 0xcd, 0xbe, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xba, 0xc5, 0x84, 0xbe, 0x5d, 0x63, 0x7e, 0xfe, 0xb1, 0xdf, 0xe4, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff, 0x1f, 0xff,
- 0xf8, 0xaf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xfa, 0xd1, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f,
- 0xff, 0xff, 0x31, 0xf0, 0x01, 0xd9, 0x8b, 0x27, 0x7e, 0x53, 0x6b, 0xed,
- 0xc0, 0x7c, 0x41, 0x4b, 0x80, 0x15, 0xc9, 0x26, 0xfc, 0x47, 0xfb, 0xfb,
- 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x81, 0x0c, 0x91,
- 0x43, 0x07, 0x1c, 0x1e, 0xbc, 0x24, 0x79, 0xb4, 0x68, 0xc9, 0xff, 0xbc,
- 0x55, 0x12, 0xea, 0x60, 0xe6, 0xb5, 0xdb, 0x8b, 0x51, 0x05, 0x20, 0x91,
- 0x71, 0x86, 0x06, 0x51, 0x5b, 0x5d, 0x5e, 0x4e, 0xd2, 0xc7, 0x1e, 0xff,
- 0xad, 0x81, 0xfe, 0x5f, 0x13, 0xff, 0xff, 0xff, 0x37, 0xe2, 0xb2, 0xa5,
- 0x05, 0xac, 0xdc, 0x09, 0xbf, 0x59, 0x8f, 0x14, 0x6a, 0x5b, 0x9d, 0x87,
- 0x5a, 0xee, 0xa8, 0x1d, 0x49, 0xe9, 0xb0, 0xdf, 0x10, 0x33, 0x73, 0x80,
- 0x92, 0x1e, 0xc9, 0x6f, 0xa8, 0x7d, 0x00, 0xf3, 0x50, 0x76, 0xb4, 0x9b,
- 0x26, 0xfd, 0x6c, 0x41, 0x54, 0xef, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xce,
- 0x2d, 0xd4, 0xcf, 0x98, 0xf7, 0x61, 0xbb, 0xf2, 0x20, 0x1d, 0xee, 0x3d,
- 0x9c, 0x98, 0x41, 0x2d, 0x31, 0x38, 0x65, 0x33, 0x85, 0x3b, 0xc8, 0x56,
- 0x98, 0x62, 0xe7, 0xff, 0xff, 0xfe, 0x62, 0xf0, 0x08, 0x65, 0x36, 0x4e,
- 0x05, 0x61, 0x10, 0x8d, 0x7f, 0xff, 0xff, 0xcd, 0x07, 0x3c, 0x0b, 0xfe,
- 0x12, 0x50, 0x17, 0x6c, 0x3d, 0x2b, 0x6d, 0xf0, 0x06, 0xb9, 0x36, 0xe7,
- 0x6c, 0x5c, 0xd9, 0xa8, 0xd9, 0xb7, 0x30, 0x5d, 0x60, 0x7e, 0x57, 0x9b,
- 0x10, 0x3c, 0xd1, 0xf6, 0x59, 0x22, 0x26, 0xcc, 0xe4, 0xd5, 0x07, 0x0f,
- 0xe4, 0xfb, 0xc8, 0xb8, 0x80, 0xa6, 0xa4, 0xd7, 0x9f, 0xd7, 0xd7, 0x07,
- 0xb8, 0x88, 0xd5, 0x98, 0xce, 0x98, 0x7c, 0xe9, 0x82, 0x71, 0x40, 0x22,
- 0xf5, 0x81, 0xff, 0xff, 0x71, 0x7b, 0xf0, 0x7e, 0x13, 0xc0, 0x23, 0x5d,
- 0xda, 0xdc, 0xfe, 0xe9, 0xc0, 0x07, 0xc5, 0x6e, 0xb9, 0x2b, 0x8a, 0x5e,
- 0x19, 0x9b, 0xbe, 0xef, 0x9e, 0x3b, 0xdf, 0xcd, 0xff, 0xfb, 0xbc, 0x2a,
- 0xf8, 0x03, 0x6b, 0x69, 0x37, 0xe6, 0x1a, 0x7b, 0xee, 0x1d, 0xe3, 0x63,
- 0xd7, 0xfd, 0x34, 0xdf, 0xf7, 0x7b, 0xbf, 0x19, 0xe0, 0x05, 0x37, 0x66,
- 0x28, 0xa5, 0xc0, 0x0d, 0xad, 0xa4, 0xdf, 0x81, 0xa7, 0xbe, 0xe1, 0xde,
- 0x07, 0xed, 0x8f, 0x5f, 0xf4, 0xc1, 0xfe, 0x6d, 0xdc, 0x11, 0xc3, 0xf8,
- 0x45, 0x78, 0x2e, 0x99, 0xbe, 0xd4, 0xcc, 0x96, 0x0a, 0x05, 0x37, 0x66,
- 0x28, 0xa5, 0xe0, 0x9e, 0xa5, 0x09, 0xaf, 0x7d, 0xb6, 0x07, 0x10, 0xcb,
- 0xbd, 0x2e, 0xf1, 0xff, 0x5d, 0x7c, 0x77, 0xb0, 0xa4, 0xa0, 0x01, 0x15,
- 0xbb, 0xbb, 0xae, 0xf8, 0x05, 0x14, 0x19, 0x0b, 0xda, 0xbf, 0xff, 0x89,
- 0x12, 0xe3, 0xac, 0x6d, 0x12, 0x36, 0xa6, 0x0f, 0xe4, 0xf1, 0x70, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44, 0x25, 0xff, 0x2f, 0xaf, 0x1b,
- 0xff, 0x7f, 0xf5, 0xe3, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xff,
- 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f, 0x15, 0xff, 0xf9, 0xbf,
- 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xf3, 0x60, 0x29, 0xff, 0xff,
- 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e, 0x00, 0xa7, 0x1f, 0x44, 0x50,
- 0xc1, 0x8f, 0xb2, 0x46, 0x7d, 0x7a, 0x19, 0x89, 0x89, 0xff, 0xff, 0xff,
- 0xfc, 0x30, 0x68, 0x16, 0xb0, 0x35, 0xc8, 0x31, 0xb0, 0x90, 0x04, 0xfe,
- 0xdb, 0x31, 0x77, 0xab, 0x08, 0x54, 0xca, 0x4e, 0x1c, 0x5b, 0x59, 0x92,
- 0x31, 0xcb, 0x66, 0x07, 0xd3, 0x9c, 0xfe, 0x66, 0xf0, 0xa7, 0x3f, 0x38,
- 0x12, 0x2d, 0x00, 0x5a, 0x87, 0x8d, 0x87, 0x90, 0x7e, 0xf3, 0x24, 0x2d,
- 0x2c, 0x89, 0x26, 0x61, 0x65, 0x83, 0xc8, 0x4b, 0x2d, 0x0c, 0x07, 0xfd,
- 0xff, 0x09, 0x8b, 0xf8, 0x4d, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5e, 0xac,
- 0x03, 0x0c, 0x73, 0x8b, 0x96, 0xd8, 0x52, 0x55, 0x79, 0xfe, 0x27, 0xff,
- 0xfa, 0xf8, 0xb3, 0x22, 0x20, 0x42, 0x04, 0xd7, 0xcb, 0x3b, 0x92, 0x00,
- 0xed, 0x9d, 0x0b, 0x76, 0x19, 0xfb, 0x68, 0x1d, 0xf1, 0x50, 0xed, 0xd3,
- 0x6b, 0x58, 0x7f, 0xff, 0x7e, 0x18, 0xff, 0xcf, 0xf0, 0x40, 0x27, 0x00,
- 0x7e, 0xef, 0x03, 0xf7, 0x9d, 0x7f, 0xff, 0x5e, 0x84, 0x44, 0x10, 0x7b,
- 0x80, 0x20, 0xe8, 0x04, 0xc7, 0x6d, 0x98, 0xc2, 0xc0, 0x80, 0x63, 0x3d,
- 0x7c, 0x39, 0xfd, 0x48, 0x3f, 0xd3, 0xd3, 0x5e, 0x8b, 0x59, 0x89, 0x1b,
- 0xee, 0x46, 0x32, 0x95, 0xbe, 0xaf, 0x99, 0x5c, 0x66, 0xee, 0xff, 0xd0,
- 0x67, 0xd7, 0x0d, 0xc5, 0xbd, 0x03, 0x90, 0x62, 0x63, 0x60, 0x48, 0xf5,
- 0xbe, 0xba, 0xdc, 0x62, 0x90, 0xc1, 0x9d, 0x30, 0x93, 0xe9, 0x4c, 0x59,
- 0x16, 0x87, 0xe2, 0x0f, 0xc0, 0xfd, 0xe7, 0x01, 0x6a, 0xfe, 0x78, 0x1f,
- 0xfd, 0x94, 0x00, 0xc9, 0xfb, 0x28, 0xdd, 0x75, 0x8f, 0x29, 0xea, 0x07,
- 0xcc, 0x70, 0x55, 0x9f, 0x1d, 0x90, 0x31, 0xff, 0xdc, 0x9c, 0xb1, 0x8f,
- 0x80, 0x90, 0x5a, 0x9b, 0xf3, 0x01, 0x20, 0xb5, 0x37, 0xe0, 0x5b, 0x75,
- 0x59, 0xa3, 0x73, 0x80, 0x90, 0x19, 0x18, 0x1d, 0xe9, 0x02, 0x0c, 0x1f,
- 0x20, 0x28, 0x12, 0x0e, 0x01, 0x40, 0x8c, 0x13, 0x4d, 0x01, 0xed, 0x61,
- 0x57, 0xe5, 0x19, 0xaa, 0xf6, 0x8d, 0x79, 0xbd, 0xab, 0xff, 0x5d, 0x63,
- 0x36, 0xa2, 0x74, 0x27, 0x26, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xbb, 0xcd, 0x82, 0x2f, 0x97, 0x58, 0xdf, 0xbf, 0xac, 0x77, 0xf9, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff,
- 0xfe, 0x2b, 0xfc, 0x98, 0x9f, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xfb, 0xd9, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
- 0x8f, 0x30, 0x9e, 0x10, 0xb0, 0xbf, 0x3f, 0xff, 0x99, 0x67, 0x08, 0x04,
- 0x08, 0xff, 0x1a, 0xe6, 0xac, 0x4c, 0xa5, 0xe5, 0x5a, 0x02, 0xd2, 0x58,
- 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x13, 0x32, 0x01, 0x04, 0x7c, 0x6f,
- 0xc6, 0xc3, 0x30, 0xfa, 0xe2, 0xde, 0x73, 0xf3, 0x1a, 0x05, 0xc6, 0xcc,
- 0xcf, 0x1c, 0xac, 0x80, 0x06, 0x61, 0x69, 0xa6, 0x32, 0xbb, 0xc9, 0xbb,
- 0xdf, 0x1c, 0xcf, 0x4c, 0x70, 0x61, 0xe9, 0xa1, 0xaa, 0x22, 0x1b, 0x53,
- 0x3e, 0xf7, 0xdb, 0x6f, 0x0f, 0x1e, 0x16, 0xe2, 0xa2, 0xd3, 0x00, 0xb6,
- 0x24, 0xe1, 0xa0, 0x19, 0xbd, 0x43, 0x7a, 0x34, 0x52, 0x93, 0xf3, 0xf1,
- 0x66, 0x00, 0xce, 0x11, 0xcb, 0x20, 0x1f, 0x4b, 0xf2, 0xb1, 0xfb, 0xe2,
- 0x01, 0x63, 0x12, 0x17, 0xd8, 0x0d, 0x1c, 0xe7, 0xa6, 0x7c, 0xf6, 0x4c,
- 0x9b, 0x65, 0x5f, 0xe2, 0xbf, 0xff, 0xff, 0x8c, 0x37, 0x0c, 0xdf, 0xf3,
- 0x65, 0x32, 0x07, 0xc0, 0xdd, 0xc6, 0xf0, 0xc0, 0xe8, 0x8c, 0x04, 0xed,
- 0x70, 0x1a, 0xff, 0x09, 0xb4, 0x97, 0x1c, 0xdf, 0xad, 0x9e, 0x68, 0x0d,
- 0xb7, 0xc0, 0x09, 0x8f, 0xca, 0x82, 0x13, 0x6c, 0x1f, 0x63, 0x7b, 0x46,
- 0x89, 0xf9, 0xe0, 0x88, 0xf8, 0x53, 0xa3, 0xbb, 0x55, 0xff, 0xf3, 0x2e,
- 0xb5, 0x11, 0x2d, 0xfe, 0xc0, 0xc0, 0xad, 0xb6, 0xf4, 0x93, 0x6f, 0xff,
- 0xeb, 0x65, 0xae, 0x50, 0xd7, 0xbf, 0xfe, 0x32, 0x1e, 0x3e, 0x0f, 0xf9,
- 0xd9, 0xe8, 0x4c, 0x6d, 0x61, 0x8b, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff,
- 0xff, 0xf1, 0x03, 0x2c, 0x61, 0x3b, 0x81, 0xf5, 0x21, 0x36, 0x07, 0xec,
- 0x03, 0x82, 0xde, 0x97, 0x72, 0x42, 0x7f, 0x40, 0x6f, 0x27, 0x31, 0x63,
- 0xff, 0xf0, 0x94, 0x04, 0xc6, 0x6e, 0x1a, 0x89, 0x4d, 0xc6, 0xe9, 0x35,
- 0x73, 0x94, 0xd0, 0x0c, 0x67, 0xe5, 0x6a, 0x1a, 0x20, 0xd2, 0x8b, 0x70,
- 0x4c, 0xea, 0x8a, 0xe7, 0xfc, 0x9e, 0xfc, 0xbc, 0x26, 0xc2, 0xb4, 0xc0,
- 0x44, 0xd7, 0x9f, 0xff, 0xd9, 0xef, 0x44, 0xac, 0x26, 0xe6, 0xb5, 0x20,
- 0x61, 0xc6, 0x7a, 0xf2, 0x1e, 0x2f, 0x3f, 0x9b, 0xe9, 0x4f, 0x84, 0x21,
- 0x41, 0x18, 0x00, 0x5e, 0xc2, 0x93, 0x44, 0xb2, 0x46, 0x4d, 0xff, 0x41,
- 0x76, 0x0e, 0xe3, 0x5b, 0x46, 0x7b, 0xeb, 0xb9, 0x00, 0x99, 0x25, 0x99,
- 0xe8, 0x48, 0xbd, 0x21, 0x8c, 0xf5, 0xef, 0x13, 0x98, 0x40, 0x43, 0x50,
- 0xff, 0x84, 0xab, 0x5e, 0x00, 0x71, 0x87, 0x2c, 0x52, 0xd7, 0xce, 0xee,
- 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8, 0x1c, 0x10, 0x6d, 0x64, 0x00, 0x5e,
- 0xb6, 0x97, 0xd6, 0xee, 0xff, 0xbb, 0x79, 0x61, 0x2b, 0x78, 0xff, 0x7f,
- 0x9b, 0xfc, 0x03, 0x50, 0xb4, 0x2b, 0x00, 0x0c, 0x7e, 0x6b, 0x9c, 0x9c,
- 0x3c, 0x65, 0x83, 0xc0, 0x6e, 0x18, 0xad, 0x0a, 0x06, 0xa9, 0xc0, 0x7d,
- 0x91, 0xa3, 0x20, 0xe4, 0x31, 0xdf, 0xbb, 0x78, 0xe9, 0xf3, 0x69, 0x01,
- 0x4d, 0x41, 0x9f, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x1d,
- 0x7f, 0xcb, 0xe3, 0xff, 0xef, 0xfe, 0xbc, 0x77, 0xaf, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f,
- 0xff, 0xff, 0xfc, 0x21, 0xff, 0x19, 0xff, 0xf8, 0xef, 0xff, 0xcd, 0xff,
- 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x25, 0xff, 0xff,
- 0xff, 0xf8, 0xac, 0xef, 0xff, 0x98, 0x4e, 0x00, 0x6c, 0x26, 0x88, 0x61,
- 0x38, 0xbe, 0xbc, 0x1e, 0x23, 0xd9, 0x32, 0xab, 0xf2, 0xf2, 0xbe, 0xd2,
- 0xad, 0x89, 0xff, 0xff, 0xff, 0x7f, 0xe2, 0x86, 0x04, 0x38, 0x51, 0x2d,
- 0xef, 0x3e, 0x30, 0xb4, 0x12, 0x6d, 0xc0, 0x47, 0x0f, 0xd5, 0x08, 0x1f,
- 0x36, 0xd0, 0x24, 0x87, 0x60, 0x07, 0x06, 0x6b, 0x11, 0x58, 0x17, 0xd8,
- 0x68, 0xd9, 0xad, 0xee, 0xaa, 0xfe, 0x05, 0x6a, 0x56, 0x2c, 0xc2, 0xef,
- 0x6c, 0xdf, 0x8f, 0x5f, 0xfd, 0x9b, 0x8c, 0x4f, 0xff, 0xf7, 0xe1, 0x8f,
- 0xd7, 0x18, 0x07, 0xb2, 0x70, 0x06, 0xaa, 0x46, 0xd3, 0xf3, 0x31, 0x7a,
- 0xe3, 0xef, 0xfd, 0xf0, 0x03, 0x32, 0xb4, 0xd3, 0x5a, 0xbd, 0x5b, 0xb6,
- 0x24, 0x8a, 0x63, 0xdf, 0x7e, 0xfc, 0x55, 0x8f, 0x3f, 0xff, 0xfd, 0x7f,
- 0xff, 0x7e, 0x18, 0xe1, 0x83, 0xff, 0xc2, 0x5c, 0x01, 0x37, 0x46, 0x8d,
- 0x53, 0xc4, 0x28, 0x99, 0x78, 0x03, 0x5c, 0x9b, 0x73, 0xb6, 0x3e, 0xb6,
- 0xfa, 0xc6, 0x64, 0x7e, 0x19, 0x8d, 0xc3, 0x1f, 0x48, 0x71, 0xa7, 0x18,
- 0x32, 0x01, 0x7c, 0x94, 0x07, 0xd4, 0x08, 0x4a, 0xe4, 0xb9, 0xe9, 0xf2,
- 0xf6, 0x03, 0xcc, 0x4b, 0x2d, 0xc2, 0x37, 0x7a, 0x38, 0x9f, 0xbf, 0x40,
- 0x95, 0xb3, 0x3e, 0x12, 0xfe, 0x1d, 0xb5, 0xe1, 0x81, 0xee, 0x3f, 0xfc,
- 0x24, 0x55, 0xe0, 0x27, 0x79, 0x20, 0x3c, 0x8e, 0xc0, 0xd1, 0xfd, 0x6c,
- 0xa0, 0xe4, 0x23, 0x12, 0x5b, 0xf5, 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xbc, 0xd5, 0x84, 0xbe, 0x5d, 0x63, 0x7e, 0xfe, 0xb1, 0xdf,
- 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff,
- 0x1f, 0xff, 0xf8, 0xaf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xfc, 0xe1, 0x06, 0xff, 0xfc, 0xbc, 0x36, 0x83, 0xd0, 0x3f,
- 0xfc, 0xdc, 0x3b, 0x3f, 0xdb, 0x41, 0xff, 0xff, 0xff, 0xf0, 0x8f, 0x30,
- 0x9d, 0x4d, 0x9f, 0xf3, 0x3e, 0x19, 0x4d, 0x49, 0x3f, 0xf1, 0x33, 0x2c,
- 0x00, 0x11, 0xa2, 0x59, 0x06, 0xbd, 0x77, 0x64, 0x42, 0xa3, 0x5f, 0x8b,
- 0xc8, 0xc6, 0x09, 0x29, 0x70, 0x17, 0xf5, 0x39, 0x9d, 0xfe, 0x1f, 0x89,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xc8, 0xf8, 0x06, 0x44, 0xbe, 0x8e,
- 0xb4, 0xf7, 0xb0, 0x37, 0xf8, 0xe2, 0xc0, 0x0b, 0x2f, 0x1d, 0x07, 0xe0,
- 0xc7, 0x7b, 0xfd, 0xe1, 0xca, 0x04, 0x08, 0x9a, 0x33, 0xc3, 0xe8, 0x7e,
- 0x11, 0x47, 0x48, 0x63, 0x81, 0xb8, 0xb6, 0x06, 0x46, 0xc0, 0xa1, 0xd6,
- 0xa2, 0x68, 0x33, 0x26, 0x07, 0x82, 0xd0, 0xa6, 0x34, 0x0b, 0x3a, 0x2b,
- 0x33, 0x91, 0x39, 0xbd, 0x90, 0x01, 0x3f, 0x3d, 0xa3, 0x4c, 0x32, 0xbf,
- 0xec, 0x67, 0xdd, 0xb4, 0x1c, 0x34, 0xbe, 0x14, 0xcc, 0x48, 0x60, 0xf2,
- 0x8c, 0x5e, 0xf8, 0xc2, 0x63, 0xd8, 0x69, 0x6c, 0x2b, 0xfe, 0xc9, 0x1d,
- 0x76, 0xa3, 0x64, 0x54, 0xf3, 0x3e, 0xb8, 0x3d, 0x89, 0x38, 0x68, 0x06,
- 0x6f, 0x48, 0xd7, 0x66, 0x82, 0x8a, 0x4f, 0xcf, 0xde, 0xcd, 0xde, 0x41,
- 0x1f, 0xa1, 0x23, 0x36, 0xa9, 0x6d, 0xee, 0xdc, 0x19, 0xd2, 0x6c, 0xc4,
- 0x9b, 0xf7, 0xf3, 0xd7, 0x3f, 0x22, 0x84, 0x3e, 0x99, 0x21, 0xf6, 0x97,
- 0xe1, 0x31, 0x72, 0x81, 0x8d, 0xa8, 0x5a, 0xcb, 0x6d, 0xed, 0xf4, 0x34,
- 0x63, 0xac, 0x1b, 0xe0, 0x67, 0x97, 0xbd, 0xf8, 0x2b, 0x33, 0xb8, 0x15,
- 0x25, 0x57, 0xa7, 0x83, 0xc5, 0x7f, 0xff, 0xff, 0x29, 0xa5, 0x18, 0x33,
- 0x4e, 0x6f, 0xd7, 0x26, 0x60, 0xf6, 0xf8, 0x00, 0x43, 0xab, 0x6f, 0x44,
- 0x9b, 0x5d, 0x56, 0xcb, 0x1b, 0x15, 0x11, 0x76, 0xbf, 0x20, 0x0c, 0x83,
- 0x47, 0xd5, 0x2f, 0x6c, 0xfc, 0x02, 0x39, 0x19, 0xa4, 0x13, 0x30, 0x2c,
- 0x88, 0x2d, 0x47, 0x3a, 0x8c, 0x06, 0xb2, 0x26, 0x7f, 0x20, 0x98, 0xdf,
- 0x7f, 0xff, 0x62, 0x83, 0xc8, 0x31, 0x62, 0x3f, 0xc7, 0xff, 0xe7, 0xff,
- 0x88, 0x70, 0xd4, 0xaf, 0xdc, 0xcf, 0x05, 0xc7, 0x0b, 0xf8, 0x4d, 0x61,
- 0xad, 0xd8, 0x99, 0x0f, 0x49, 0x80, 0xc3, 0x48, 0x7b, 0xea, 0x6e, 0xe0,
- 0x39, 0xf9, 0x4b, 0xd0, 0xb3, 0xce, 0xbd, 0x7f, 0xfc, 0x82, 0x23, 0x29,
- 0x8f, 0xf9, 0xa3, 0x8f, 0xff, 0x84, 0x98, 0x74, 0x91, 0x90, 0x03, 0x0c,
- 0x5d, 0x06, 0xda, 0x8b, 0x8c, 0xbc, 0x05, 0x49, 0x19, 0x00, 0x30, 0xc5,
- 0x98, 0x1b, 0x6a, 0x01, 0x52, 0x46, 0x60, 0x0c, 0x31, 0x86, 0x06, 0xda,
- 0xbc, 0x18, 0x39, 0xfc, 0xbc, 0x26, 0xd0, 0xc5, 0xda, 0x45, 0x87, 0xba,
- 0xf0, 0x0b, 0xf5, 0xc6, 0xfe, 0x8f, 0x1d, 0xcc, 0xe1, 0xd4, 0xf1, 0x3c,
- 0xdc, 0xd8, 0x27, 0x78, 0xbf, 0x1d, 0x78, 0xcf, 0x7c, 0x8e, 0x00, 0x09,
- 0x6d, 0x29, 0xb3, 0x68, 0x91, 0x98, 0xa1, 0xcd, 0x98, 0x7d, 0x73, 0xa9,
- 0xc5, 0xa0, 0xe0, 0x05, 0x85, 0x2d, 0xd7, 0xb2, 0x77, 0xae, 0x5f, 0xe0,
- 0x05, 0x8b, 0x34, 0xb6, 0x59, 0x37, 0xde, 0x7d, 0xa6, 0xee, 0x03, 0xff,
- 0xfe, 0xff, 0x3b, 0xc3, 0xfc, 0xf0, 0x07, 0x5a, 0x5e, 0xe6, 0xac, 0xf7,
- 0xba, 0x78, 0x9c, 0xdf, 0xff, 0xda, 0x08, 0x44, 0x40, 0x01, 0xb3, 0x32,
- 0x34, 0x36, 0x10, 0xd4, 0xe7, 0x08, 0x57, 0x46, 0x80, 0x28, 0xb2, 0x85,
- 0x5d, 0x14, 0xfb, 0xbe, 0x8b, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xf3, 0x84, 0x0b, 0x5c, 0x84, 0x87, 0x11, 0x4f, 0xaa, 0xc1, 0x11,
- 0xed, 0x7d, 0x9f, 0xc1, 0xaf, 0xe8, 0xdd, 0x73, 0xfa, 0x9c, 0x62, 0x90,
- 0x02, 0x00, 0xe2, 0x7e, 0x04, 0x48, 0x41, 0xef, 0xc0, 0x00, 0x00, 0x87,
- 0xc0, 0x0b, 0x16, 0x64, 0xb6, 0x59, 0x37, 0xde, 0x6d, 0x3e, 0xe0, 0x3f,
- 0xff, 0xef, 0xf3, 0xbc, 0x3f, 0xcf, 0x00, 0x75, 0xa5, 0xee, 0x6a, 0xcf,
- 0x7b, 0xbf, 0x9b, 0xf6, 0x2c, 0xdd, 0x88, 0xf1, 0x8a, 0x00, 0x3e, 0x40,
- 0x3b, 0xce, 0x66, 0x30, 0x03, 0x00, 0xf7, 0xd7, 0x30, 0x00, 0xac, 0x58,
- 0xec, 0x49, 0xfe, 0x3f, 0xff, 0xe4, 0xbf, 0x77, 0xb5, 0xf0, 0x02, 0xc3,
- 0xad, 0xd7, 0xb2, 0x2b, 0xd7, 0x20, 0x41, 0x3b, 0xb4, 0x64, 0x50, 0x5f,
- 0x52, 0x8f, 0xdd, 0x70, 0x20, 0xc6, 0x89, 0xcb, 0xd9, 0x98, 0xac, 0xf7,
- 0xb0, 0x69, 0xf7, 0xda, 0xf1, 0xff, 0x50, 0x7b, 0xdf, 0x2b, 0xc3, 0x10,
- 0xf9, 0x69, 0x7b, 0x7a, 0x92, 0x01, 0x76, 0x66, 0xe4, 0xc7, 0x62, 0x68,
- 0x9f, 0xa1, 0xaf, 0x1d, 0xc8, 0xe1, 0x06, 0x7d, 0x4e, 0xb9, 0x08, 0x34,
- 0x58, 0x5c, 0x47, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x85, 0x3d, 0x7f, 0xff, 0xf0, 0x8f, 0xaf, 0x15,
- 0xff, 0xf2, 0x88, 0xc7, 0x4b, 0xfc, 0x77, 0xff, 0xe6, 0xff, 0xa8, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xaf, 0x77, 0x60, 0x67, 0xf7, 0xff, 0xff, 0xfe,
- 0x2b, 0x3f, 0xfd, 0xe6, 0x13, 0x82, 0x27, 0x8d, 0x92, 0xec, 0xb2, 0xbc,
- 0x08, 0x9b, 0x8d, 0x73, 0x78, 0x9f, 0xff, 0xff, 0xbf, 0x7e, 0xfe, 0x11,
- 0x18, 0x03, 0x64, 0xca, 0xeb, 0x7b, 0x28, 0xcd, 0xc9, 0x2a, 0x00, 0x1b,
- 0xe1, 0xe5, 0xbc, 0x3e, 0x3e, 0x00, 0x81, 0x79, 0x63, 0x0f, 0xbc, 0x18,
- 0x95, 0x06, 0x5c, 0x56, 0x70, 0x87, 0xf4, 0x06, 0x66, 0xe1, 0x65, 0x5f,
- 0xf2, 0x14, 0x29, 0x4c, 0x7d, 0x34, 0xf3, 0xbe, 0xd1, 0x34, 0xfc, 0x86,
- 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x8e, 0x04, 0x98, 0x16, 0x89, 0xab, 0x75,
- 0x78, 0x55, 0xa6, 0x04, 0x44, 0x52, 0xff, 0xfd, 0x5f, 0x47, 0x50, 0x1d,
- 0x63, 0xf9, 0x57, 0xcf, 0xbd, 0x30, 0xce, 0xe5, 0x89, 0xff, 0xfe, 0xfd,
- 0x63, 0x3c, 0x08, 0x95, 0xee, 0x3a, 0xdd, 0xe0, 0xb8, 0x01, 0xe9, 0x0d,
- 0x0b, 0x10, 0x44, 0x99, 0x7a, 0x7c, 0x2f, 0x73, 0xc7, 0x3e, 0xd7, 0x81,
- 0x05, 0x87, 0x60, 0x95, 0x35, 0x69, 0xad, 0xa3, 0xe3, 0xa9, 0x81, 0xe4,
- 0x7f, 0xe1, 0x83, 0xb8, 0x2c, 0x44, 0x0a, 0x8c, 0xeb, 0xa0, 0x19, 0x7c,
- 0xee, 0x8e, 0xc7, 0xfd, 0xff, 0xdf, 0xff, 0xbf, 0xe4, 0xe0, 0x50, 0x10,
- 0x80, 0x08, 0x7a, 0xff, 0xa3, 0xff, 0xff, 0xfd, 0x3d, 0xb2, 0x90, 0x4f,
- 0x8a, 0xd7, 0x00, 0x77, 0x9d, 0xae, 0xae, 0x66, 0x37, 0x01, 0x53, 0x38,
- 0xb9, 0x6d, 0x32, 0x38, 0xc0, 0x0c, 0x33, 0xc7, 0xa0, 0x89, 0x10, 0x42,
- 0x87, 0xd2, 0x0c, 0xfd, 0x10, 0x48, 0xc0, 0xe0, 0xcf, 0xad, 0xbe, 0xb1,
- 0x8f, 0xbd, 0xeb, 0x19, 0xb5, 0xe1, 0x80, 0xaa, 0xeb, 0xf1, 0x5e, 0x28,
- 0xb8, 0xd0, 0xb4, 0x00, 0xf2, 0xaf, 0xeb, 0x75, 0xbb, 0x6d, 0x6f, 0x97,
- 0x9f, 0xff, 0xf0, 0x0b, 0xe9, 0x40, 0x6a, 0x22, 0xfc, 0x31, 0xfe, 0xba,
- 0xeb, 0x85, 0x6d, 0x07, 0x69, 0xdf, 0xfd, 0x7f, 0x80, 0x2c, 0x77, 0xfe,
- 0x77, 0xb4, 0x62, 0x91, 0xca, 0xc4, 0xe1, 0xb7, 0xd2, 0xf8, 0x63, 0xff,
- 0xfb, 0x41, 0x0e, 0x00, 0x11, 0x45, 0x38, 0xc8, 0x42, 0xfd, 0x61, 0x0d,
- 0xd5, 0x05, 0x3c, 0xa7, 0x7c, 0x67, 0xdd, 0xf4, 0x1b, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x2e, 0xbd, 0xdd, 0x82, 0xaf, 0x91, 0x82, 0x90, 0x71, 0xac,
- 0x40, 0xa0, 0x04, 0x18, 0xbc, 0x04, 0xa1, 0x8f, 0x7e, 0x4e, 0xac, 0x99,
- 0x30, 0x00, 0x10, 0x04, 0xbb, 0xcf, 0xf0, 0x00, 0x00, 0x40, 0x22, 0x00,
- 0x70, 0x73, 0x28, 0x80, 0x42, 0x06, 0xcb, 0x00, 0x2b, 0x5a, 0x01, 0x28,
- 0xc0, 0x38, 0x0c, 0x7f, 0x7d, 0xbf, 0x5d, 0x61, 0x07, 0xc9, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xfc, 0x67,
- 0xf9, 0x31, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd,
- 0xe9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff,
- 0x98, 0x4e, 0x00, 0x23, 0x76, 0xf8, 0xa6, 0xe6, 0x06, 0x6f, 0x38, 0xd6,
- 0xa7, 0xe7, 0x62, 0x0a, 0x2f, 0x85, 0x8a, 0x46, 0x64, 0x43, 0x95, 0xff,
- 0xdf, 0xc0, 0x4c, 0x37, 0x40, 0x4f, 0x9a, 0x11, 0x80, 0xa6, 0x5e, 0x79,
- 0x26, 0xa9, 0xe2, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0x45,
- 0x80, 0x81, 0x49, 0xd0, 0x63, 0x07, 0x03, 0x1f, 0xbb, 0xae, 0xff, 0x25,
- 0xe4, 0x60, 0x91, 0xba, 0x9e, 0xff, 0xf5, 0x64, 0x00, 0x3f, 0x9b, 0x32,
- 0x43, 0xf5, 0x04, 0xb1, 0xe1, 0xf4, 0x5b, 0x23, 0x6f, 0xf9, 0x78, 0xf0,
- 0x7e, 0x00, 0x41, 0x1c, 0xe3, 0x0a, 0x9a, 0x2d, 0x7e, 0x02, 0x26, 0xee,
- 0x71, 0xfe, 0xf3, 0x5a, 0x96, 0x98, 0x39, 0xc0, 0x11, 0x6e, 0xd4, 0x0b,
- 0x20, 0x3f, 0x87, 0x7b, 0x72, 0x97, 0x6f, 0xb4, 0x00, 0x01, 0x39, 0x24,
- 0xb6, 0xff, 0x06, 0x21, 0x7a, 0x0a, 0x37, 0xff, 0xda, 0xaf, 0x2f, 0x2c,
- 0x34, 0x12, 0xf0, 0x00, 0x6e, 0xe8, 0xc8, 0xea, 0xad, 0x0e, 0x9c, 0xd1,
- 0x19, 0x1b, 0x53, 0x06, 0xfd, 0xb2, 0x57, 0x3d, 0x07, 0x30, 0x7f, 0x09,
- 0x7e, 0x08, 0x05, 0x83, 0x08, 0xb2, 0x53, 0x1f, 0x89, 0xf7, 0xff, 0x83,
- 0x21, 0x22, 0x31, 0xd2, 0x67, 0xbd, 0xef, 0x13, 0xff, 0xff, 0xff, 0xf9,
- 0xbf, 0x15, 0x22, 0x62, 0x77, 0x55, 0xb3, 0x70, 0x4c, 0xf6, 0xd6, 0x0e,
- 0x09, 0x0a, 0xd2, 0xc2, 0x26, 0xb1, 0xfe, 0x7f, 0x00, 0x8a, 0x57, 0xb0,
- 0x1f, 0x31, 0x9b, 0xfa, 0xf8, 0x06, 0x26, 0x16, 0x74, 0xfd, 0x4b, 0x2b,
- 0x90, 0x6a, 0x42, 0x2f, 0xe7, 0xdd, 0xf6, 0x44, 0xd3, 0xf0, 0xf1, 0x2f,
- 0x03, 0x89, 0x19, 0x40, 0x95, 0x83, 0x95, 0x77, 0xa1, 0xff, 0xff, 0xff,
- 0xdf, 0xff, 0xff, 0xff, 0xe6, 0x08, 0xae, 0x05, 0xff, 0x09, 0x30, 0x6c,
- 0xd4, 0x34, 0xd3, 0x1f, 0x16, 0xce, 0xb1, 0x6e, 0xc6, 0x70, 0xb5, 0x85,
- 0x58, 0x47, 0x7a, 0x38, 0xb1, 0x59, 0x9e, 0x5a, 0xbe, 0x55, 0x4a, 0x7d,
- 0x52, 0x69, 0xfa, 0x4c, 0x9c, 0xf0, 0x0c, 0xfe, 0xbd, 0xfa, 0xf1, 0x9e,
- 0xfd, 0xfa, 0xf1, 0x9e, 0xf0, 0x89, 0x0b, 0xc0, 0x03, 0x22, 0xd2, 0xfa,
- 0x7b, 0x5d, 0x36, 0x1f, 0x4a, 0x7e, 0x08, 0x18, 0x02, 0x0a, 0x55, 0x52,
- 0x1f, 0x27, 0x85, 0xe3, 0xeb, 0xb3, 0xff, 0xa7, 0xe4, 0xf1, 0x70, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x15, 0x7f, 0xdb, 0xc0, 0x90,
- 0x05, 0x90, 0x98, 0x88, 0x01, 0x95, 0x59, 0x92, 0x30, 0x00, 0x10, 0x08,
- 0xd5, 0xe8, 0x6c, 0x76, 0x5a, 0x00, 0xc2, 0x0e, 0x1c, 0xc0, 0x06, 0x55,
- 0x66, 0x48, 0xcf, 0x57, 0xbc, 0x15, 0xa6, 0x3b, 0x2d, 0x2b, 0xfd, 0x77,
- 0xf0, 0x63, 0xc0, 0x92, 0x02, 0x20, 0xab, 0x00, 0x40, 0xe7, 0x40, 0x34,
- 0x0c, 0x7b, 0xf3, 0xd7, 0x8d, 0xff, 0xa3, 0x7a, 0x25, 0x3e, 0x9c, 0x28,
- 0x53, 0x13, 0x77, 0x38, 0xff, 0x7c, 0x5f, 0x2f, 0x8d, 0xe1, 0xe8, 0xe4,
- 0xf2, 0xc3, 0xe7, 0xa5, 0xa7, 0xdc, 0x6f, 0xfb, 0xff, 0x37, 0xfa, 0x51,
- 0xc8, 0x8b, 0x18, 0x4e, 0x00, 0x11, 0x05, 0xb8, 0x8a, 0x66, 0xc8, 0x9e,
- 0xe2, 0xb0, 0x00, 0xfc, 0x6b, 0x72, 0x22, 0x3f, 0xb2, 0x2f, 0xff, 0x07,
- 0x81, 0x59, 0xfe, 0xb7, 0x47, 0x9d, 0xe0, 0x05, 0xcc, 0xe2, 0x86, 0xcc,
- 0xe3, 0xff, 0xd5, 0x1b, 0x7f, 0x4a, 0x8d, 0xff, 0x5a, 0x00, 0x00, 0x0e,
- 0xfe, 0xc3, 0x01, 0xdd, 0xb0, 0x5c, 0xe4, 0xd3, 0x87, 0x1a, 0x78, 0x0d,
- 0x66, 0x37, 0x75, 0xf5, 0x23, 0x22, 0x3f, 0xe6, 0x87, 0xd6, 0xd4, 0xd7,
- 0x12, 0x23, 0x6f, 0x03, 0x5e, 0x14, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xff, 0xfc,
- 0x7f, 0xff, 0xe3, 0x3f, 0xff, 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2,
- 0xb3, 0xfe, 0xfd, 0x96, 0x2c, 0x4e, 0x00, 0x70, 0x72, 0x92, 0xd8, 0x69,
- 0xef, 0xc0, 0x18, 0x2e, 0xdd, 0xfd, 0xbc, 0x0f, 0xad, 0xba, 0xda, 0xdf,
- 0xea, 0xe2, 0x7f, 0xff, 0xff, 0xfb, 0xcc, 0x6e, 0x07, 0xad, 0xa2, 0x18,
- 0x0e, 0xcf, 0xa2, 0x8b, 0xa0, 0xa0, 0xda, 0xef, 0x89, 0xc3, 0xb9, 0x7f,
- 0x50, 0xb2, 0xbb, 0x00, 0xd3, 0x4e, 0x0e, 0xa7, 0x4f, 0x00, 0x18, 0x85,
- 0xe8, 0x28, 0xdf, 0xff, 0x6b, 0xb2, 0xf0, 0x06, 0x82, 0x5e, 0x08, 0xcf,
- 0x21, 0xfe, 0x58, 0x23, 0xf1, 0x00, 0xe9, 0xae, 0x63, 0xd8, 0xf9, 0x09,
- 0x25, 0xa1, 0x84, 0xfe, 0xd2, 0xfc, 0x26, 0x71, 0x2d, 0x39, 0x29, 0xcf,
- 0x1c, 0x76, 0x21, 0x5d, 0x6f, 0xe2, 0x11, 0xe9, 0xdf, 0xdc, 0x4f, 0xff,
- 0xfe, 0x18, 0xe3, 0xc0, 0x0d, 0x1f, 0x54, 0x8b, 0x36, 0x00, 0x19, 0xb7,
- 0xfc, 0xaf, 0x84, 0x95, 0xe2, 0x4a, 0xa0, 0x04, 0xe7, 0x72, 0x41, 0x23,
- 0x1a, 0xa0, 0x04, 0x66, 0xe7, 0x3b, 0x57, 0x94, 0x5f, 0x09, 0x24, 0x70,
- 0xda, 0xd9, 0x23, 0x7e, 0x79, 0xc4, 0x9b, 0x80, 0x14, 0xb0, 0xfc, 0xff,
- 0xff, 0xf5, 0xff, 0xff, 0x86, 0x0d, 0x50, 0x58, 0x1c, 0x7f, 0xe1, 0x22,
- 0x84, 0xb3, 0x38, 0x88, 0x6b, 0x97, 0x68, 0x1a, 0x18, 0xae, 0xda, 0x43,
- 0xef, 0xbc, 0x78, 0x2b, 0xa4, 0xb0, 0x4b, 0xf3, 0x04, 0x99, 0x55, 0xbe,
- 0x7f, 0x18, 0xce, 0xb5, 0x9f, 0xb4, 0x37, 0xde, 0x51, 0x7f, 0xf0, 0x03,
- 0x3e, 0xb7, 0xac, 0x66, 0xf7, 0xac, 0x66, 0xd4, 0x4e, 0x18, 0xcf, 0xe8,
- 0x73, 0xc3, 0x09, 0x97, 0x02, 0x66, 0xa0, 0x3f, 0x7b, 0x3c, 0x71, 0xbf,
- 0xa0, 0x3f, 0xcb, 0xe6, 0x1d, 0xfe, 0x03, 0xb5, 0x5b, 0x60, 0x7d, 0x2a,
- 0x93, 0x17, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbe, 0xe5, 0x86, 0xbe,
- 0xc3, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02, 0xa3, 0x46, 0x40, 0x30,
- 0xc7, 0xcf, 0x00, 0xbe, 0x01, 0xf5, 0xc0, 0x97, 0x31, 0x0f, 0xe3, 0x7f,
- 0x7f, 0xe1, 0x8c, 0x3e, 0x74, 0x3f, 0x82, 0x07, 0x19, 0xa8, 0x0f, 0xde,
- 0xcf, 0x0e, 0xb6, 0xbe, 0xd1, 0x77, 0x18, 0xc3, 0xf5, 0xf1, 0xff, 0x41,
- 0x99, 0xf0, 0xc4, 0xfc, 0xc3, 0xba, 0x11, 0x6c, 0x47, 0x80, 0xbc, 0xfa,
- 0xda, 0xff, 0x73, 0xff, 0x80, 0x0c, 0xdd, 0xf5, 0x6e, 0x6a, 0x00, 0xa0,
- 0xb7, 0x11, 0x4c, 0xda, 0x27, 0x80, 0x48, 0xfd, 0x7b, 0x07, 0xff, 0x94,
- 0xcf, 0x7e, 0x06, 0x3c, 0xfd, 0x09, 0x5f, 0xe8, 0x9f, 0xe5, 0xc8, 0x62,
- 0x3b, 0xea, 0x00, 0x00, 0xff, 0x84, 0xb2, 0x7f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0x8f, 0xff, 0xe2, 0xff, 0xc9, 0x8a,
- 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfe, 0xf1, 0x03, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xef, 0x13, 0x30,
- 0x9c, 0x01, 0x95, 0xab, 0xe1, 0xcf, 0xe4, 0x1e, 0x49, 0xef, 0x49, 0xf9,
- 0x84, 0x4a, 0x52, 0xe3, 0xbf, 0xd7, 0xaf, 0xf1, 0xfe, 0x27, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0xc2, 0xb6, 0x10, 0x1e, 0x9b, 0x45, 0xe5, 0x20,
- 0x45, 0x02, 0x94, 0xf5, 0xb4, 0x4d, 0x32, 0x4f, 0x8e, 0x4a, 0xf7, 0x9f,
- 0xaf, 0x09, 0x78, 0xe0, 0xd4, 0x69, 0x66, 0x7e, 0x40, 0x88, 0x11, 0x0f,
- 0x5b, 0x42, 0x80, 0x4c, 0x00, 0xac, 0x8d, 0x01, 0xf1, 0x0b, 0x99, 0xed,
- 0x4e, 0x69, 0x05, 0xdc, 0x3a, 0xe4, 0x02, 0x67, 0xd1, 0x36, 0x9f, 0x0b,
- 0xfe, 0x13, 0x3c, 0xe9, 0x1c, 0xb0, 0x02, 0x55, 0xe7, 0x7d, 0x14, 0x63,
- 0x12, 0x36, 0xee, 0x1e, 0xbd, 0xbe, 0xb9, 0x01, 0xf2, 0x1f, 0x92, 0xaf,
- 0x9f, 0x78, 0xc8, 0x60, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x19,
- 0x4c, 0x95, 0x2d, 0x64, 0xe0, 0x04, 0xcd, 0xd9, 0x04, 0x7e, 0x41, 0xf6,
- 0x2a, 0xc7, 0x92, 0xc7, 0x9e, 0x02, 0x11, 0x15, 0x5d, 0x2e, 0xa2, 0x41,
- 0x92, 0x01, 0x15, 0x4b, 0x70, 0xd9, 0xe9, 0xc8, 0x3a, 0x99, 0x00, 0x1b,
- 0xdd, 0x80, 0x82, 0xea, 0x85, 0x7a, 0x42, 0xee, 0xb7, 0xf2, 0xb5, 0x75,
- 0x5f, 0xa8, 0x00, 0x33, 0xbb, 0x86, 0xd5, 0x12, 0x7e, 0xc7, 0x1d, 0xd8,
- 0x98, 0xfc, 0x47, 0xbf, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x10,
- 0x31, 0xae, 0xbd, 0x0f, 0x8f, 0xd1, 0x6a, 0xbc, 0x08, 0x1a, 0x52, 0x0f,
- 0xb6, 0x58, 0x81, 0x4a, 0x47, 0xc0, 0xe3, 0xf7, 0xe7, 0xf5, 0xef, 0xd7,
- 0x8c, 0xf7, 0xef, 0xd7, 0x8c, 0xf7, 0x10, 0x06, 0x52, 0x16, 0x00, 0x18,
- 0x4f, 0xd0, 0x4d, 0x65, 0xef, 0xf4, 0x38, 0x98, 0x90, 0xd7, 0xaf, 0x17,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x15, 0x7f, 0xd1, 0xbf,
- 0xb7, 0xca, 0x10, 0xa1, 0xa0, 0x38, 0x27, 0x1c, 0x31, 0x32, 0x02, 0x15,
- 0xed, 0xef, 0xd5, 0xef, 0x3c, 0x4c, 0xfe, 0xbd, 0x78, 0xdf, 0x46, 0xff,
- 0xf6, 0x86, 0x08, 0x4c, 0x00, 0x26, 0xba, 0x36, 0xb9, 0x1f, 0xde, 0xfd,
- 0x58, 0xcf, 0x3e, 0xc3, 0x01, 0x1c, 0xa2, 0xb0, 0x00, 0x88, 0x2f, 0x91,
- 0x4c, 0xd9, 0x26, 0x1f, 0xd7, 0x8f, 0x30, 0xfd, 0xc3, 0xfe, 0x1e, 0x60,
- 0x07, 0x14, 0xa7, 0xb8, 0x2f, 0xc0, 0xc0, 0xf5, 0x7c, 0x76, 0xff, 0x9b,
- 0x00, 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x23, 0x0a, 0x62, 0x45, 0x99, 0xc5,
- 0x23, 0x1b, 0x0e, 0xb8, 0x00, 0x6c, 0xee, 0x7c, 0x67, 0x5d, 0xb8, 0x17,
- 0x58, 0x74, 0xbe, 0xc1, 0x18, 0xee, 0xf9, 0xdf, 0xe4, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f,
- 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff, 0x27, 0x8a, 0xff, 0xfc,
- 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xfb, 0x60, 0x21, 0xff,
- 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x00, 0xc2, 0xcb, 0x3c,
- 0x87, 0x3d, 0xc6, 0xc6, 0x68, 0x22, 0x26, 0x27, 0xff, 0xff, 0xff, 0xbf,
- 0x0c, 0x07, 0x31, 0x46, 0x45, 0x17, 0x3a, 0x8c, 0x60, 0xa1, 0xa8, 0x8e,
- 0x6d, 0x8b, 0x9a, 0x17, 0x6f, 0x7d, 0x7e, 0x37, 0x24, 0x6d, 0x81, 0x01,
- 0x5e, 0x80, 0x08, 0xa3, 0xa1, 0x44, 0xf7, 0xbb, 0x6e, 0x1b, 0xf4, 0x18,
- 0x02, 0x37, 0xde, 0x5f, 0xe1, 0xd8, 0xd4, 0x11, 0x70, 0x0b, 0xdc, 0x49,
- 0x24, 0x94, 0xc0, 0xe1, 0x81, 0xb7, 0xd6, 0xff, 0x84, 0xc5, 0x92, 0x03,
- 0x28, 0x08, 0xa1, 0xca, 0xbe, 0x7d, 0xaa, 0xf1, 0xc2, 0x9f, 0x4e, 0x94,
- 0xf0, 0xca, 0x46, 0x6e, 0xbd, 0xe3, 0x35, 0x69, 0x0b, 0x5d, 0xf3, 0xfc,
- 0x4f, 0xff, 0xfe, 0x18, 0xe3, 0xd4, 0x1c, 0x66, 0xcd, 0xb3, 0x60, 0x06,
- 0x07, 0xab, 0xe3, 0xb0, 0xf5, 0x1a, 0x96, 0xf0, 0x22, 0x6b, 0x1f, 0xe7,
- 0xf1, 0x94, 0x68, 0xed, 0x87, 0x06, 0x77, 0x9d, 0xa1, 0x3f, 0xbf, 0x7f,
- 0x7e, 0x12, 0xf2, 0x52, 0x09, 0x5d, 0x7f, 0xf5, 0x34, 0x69, 0x20, 0xf4,
- 0x80, 0x79, 0x9e, 0x3c, 0xff, 0xff, 0xf5, 0xff, 0xff, 0x86, 0x2d, 0x49,
- 0x37, 0xfe, 0x12, 0x3c, 0x02, 0x8e, 0xac, 0x7b, 0xfc, 0x82, 0xb1, 0x1c,
- 0x58, 0xe9, 0x1d, 0x8a, 0xe2, 0x8d, 0xc2, 0x61, 0xfe, 0x47, 0x20, 0x83,
- 0x9f, 0x5b, 0xd6, 0x33, 0x7b, 0xd6, 0x33, 0x61, 0x8f, 0x87, 0xf1, 0xa4,
- 0x10, 0xe0, 0x71, 0x11, 0xd3, 0x34, 0x77, 0xf3, 0x86, 0x62, 0x6b, 0x58,
- 0xb8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x8a, 0xfa, 0x5e,
- 0x81, 0x40, 0x21, 0x12, 0x20, 0x01, 0x2f, 0x69, 0x1b, 0xa7, 0x83, 0x07,
- 0x3a, 0xf3, 0xe0, 0x65, 0x5f, 0x3b, 0xc3, 0xb8, 0x97, 0xec, 0x34, 0xf7,
- 0xb5, 0x95, 0xb5, 0x1e, 0xf5, 0xac, 0x6f, 0xeb, 0xc3, 0x08, 0xd0, 0xfe,
- 0x3f, 0x09, 0xed, 0xdf, 0xcf, 0xc0, 0x0c, 0x4d, 0xae, 0xf3, 0xb7, 0x3a,
- 0x62, 0x1c, 0x80, 0x79, 0x05, 0xfe, 0xb1, 0xeb, 0xc3, 0x14, 0x71, 0x77,
- 0xff, 0xe1, 0x2c, 0x02, 0x2d, 0x92, 0xe6, 0x62, 0xaa, 0xf7, 0xbe, 0x64,
- 0x00, 0xce, 0xa5, 0x20, 0x70, 0xdf, 0x40, 0xc2, 0x03, 0x5e, 0xd8, 0x43,
- 0x3b, 0xbe, 0x77, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d,
- 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xff, 0xf9, 0x01, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xff, 0x31, 0xf0, 0x01, 0x59,
- 0x8b, 0x35, 0x7e, 0x5a, 0x6c, 0xfd, 0xa8, 0x20, 0x78, 0x82, 0xbc, 0x02,
- 0x42, 0x9f, 0xe1, 0xc3, 0xdf, 0xde, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x27, 0xe4, 0x08, 0x62, 0x24, 0x18, 0xd6, 0x00, 0xeb, 0x42, 0x47,
- 0x9b, 0x73, 0x2d, 0xf4, 0x8a, 0xa4, 0xba, 0x98, 0x3a, 0x88, 0x12, 0x46,
- 0x2d, 0xf1, 0x0d, 0xce, 0x7a, 0xd5, 0xe5, 0x5a, 0x5d, 0xbe, 0xdf, 0x13,
- 0xff, 0xff, 0xff, 0x27, 0xe4, 0xc4, 0xc4, 0x8b, 0x34, 0x05, 0xd9, 0x59,
- 0xe8, 0x88, 0x7e, 0xfd, 0x38, 0x1d, 0x28, 0x55, 0xcb, 0x8c, 0x41, 0xd6,
- 0xfb, 0x13, 0x3c, 0x51, 0xcb, 0x8c, 0x32, 0x52, 0x1a, 0xf4, 0xff, 0xb2,
- 0xbc, 0x23, 0xcf, 0x4e, 0x01, 0x2f, 0xf2, 0x41, 0xf3, 0xfd, 0x47, 0x1c,
- 0x93, 0x35, 0x1e, 0xbf, 0xf2, 0x12, 0xc6, 0x41, 0x76, 0x18, 0x37, 0x13,
- 0x0f, 0x9f, 0xeb, 0xbf, 0xbe, 0xb9, 0x89, 0x23, 0x28, 0xbb, 0x06, 0xf2,
- 0x6c, 0x94, 0x78, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x3c, 0x40,
- 0xc1, 0x05, 0x8d, 0x88, 0x04, 0xbb, 0x01, 0x76, 0xd0, 0x45, 0xd1, 0xcf,
- 0x36, 0x45, 0xbf, 0xb0, 0x7b, 0x17, 0x08, 0xcd, 0xf9, 0xe8, 0xd8, 0xcf,
- 0x9d, 0xbe, 0xcc, 0x5b, 0x8f, 0x27, 0xec, 0x69, 0x49, 0x10, 0x97, 0x3e,
- 0xec, 0x99, 0x70, 0xf1, 0x5e, 0x5f, 0x04, 0x0a, 0x86, 0x26, 0xbf, 0x3f,
- 0xaf, 0x7e, 0xbc, 0x67, 0xbf, 0x7e, 0xbc, 0x67, 0xb3, 0x7c, 0x08, 0x7d,
- 0xbc, 0x61, 0x60, 0x12, 0xfe, 0xe3, 0xeb, 0x60, 0x12, 0x3d, 0x30, 0x3f,
- 0x78, 0x00, 0x0f, 0x80, 0x2d, 0x95, 0x83, 0x22, 0x4d, 0x05, 0xfc, 0x77,
- 0xa7, 0xff, 0x7e, 0xbc, 0x5c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff,
- 0xe4, 0x11, 0x7f, 0xe6, 0xff, 0xfe, 0xd0, 0x42, 0x68, 0x03, 0x23, 0x14,
- 0x66, 0x43, 0xe0, 0x4e, 0x7f, 0xc7, 0x7e, 0x74, 0x05, 0x80, 0x12, 0x21,
- 0x8b, 0x80, 0x19, 0x1e, 0x3a, 0x12, 0xaf, 0x7e, 0x8f, 0xbf, 0xfe, 0xc2,
- 0xab, 0x7b, 0x90, 0x69, 0xe0, 0xff, 0x11, 0x3f, 0xeb, 0xc6, 0xfc, 0xde,
- 0xc4, 0x55, 0x61, 0x3d, 0x76, 0x2b, 0x84, 0xcf, 0xb5, 0x87, 0x64, 0xc7,
- 0x3f, 0x20, 0x41, 0x5f, 0x81, 0x94, 0x80, 0x79, 0x8b, 0xe1, 0x44, 0x75,
- 0xaf, 0x37, 0xe3, 0xfc, 0xfe, 0x78, 0xba, 0xff, 0xaf, 0x1d, 0xc8, 0x6c,
- 0x01, 0x5d, 0xa0, 0x54, 0xc0, 0x38, 0xfc, 0xca, 0x2f, 0x08, 0x07, 0xfc,
- 0x3c, 0x86, 0xa3, 0x94, 0x25, 0x02, 0x8f, 0x88, 0x19, 0xb3, 0x7c, 0xb7,
- 0x7d, 0xf7, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
- 0xff, 0xf1, 0x5f, 0xff, 0x93, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x3d, 0x60, 0x29, 0xff,
- 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e, 0x00, 0xa6, 0x1f, 0x44,
- 0x50, 0xe1, 0x8c, 0xb4, 0x8c, 0xeb, 0x9a, 0x19, 0x89, 0x89, 0xff, 0xff,
- 0xff, 0xfc, 0x30, 0x1d, 0xac, 0x08, 0xa2, 0xe5, 0x84, 0x60, 0x4b, 0x10,
- 0x38, 0x93, 0x99, 0x23, 0x1c, 0xb6, 0x03, 0x03, 0xfa, 0x69, 0xdf, 0xf3,
- 0x37, 0x85, 0x39, 0xf9, 0xc0, 0x11, 0xc9, 0x7b, 0xb9, 0xba, 0x1f, 0xc7,
- 0xc8, 0x4b, 0x2c, 0x89, 0x26, 0xc2, 0xcb, 0x07, 0x90, 0x92, 0x5a, 0x09,
- 0x62, 0xc2, 0x3b, 0x91, 0x7e, 0x44, 0xe7, 0xc3, 0x65, 0x96, 0x34, 0x74,
- 0xfb, 0x5f, 0xe8, 0x20, 0xb9, 0x8c, 0x4e, 0x58, 0x6f, 0x45, 0x89, 0x19,
- 0x3e, 0xd7, 0xf8, 0x9f, 0xff, 0xeb, 0xe2, 0xcd, 0x24, 0x80, 0x9a, 0xf9,
- 0x67, 0x72, 0x40, 0x76, 0xce, 0x85, 0xba, 0x02, 0x3b, 0x26, 0x50, 0x32,
- 0xe2, 0xdb, 0xed, 0xe9, 0xaa, 0xd6, 0x1f, 0xff, 0xfe, 0xbf, 0xff, 0xaf,
- 0x0c, 0x56, 0x36, 0x22, 0xff, 0x84, 0x8b, 0xe3, 0xdd, 0x77, 0x48, 0x01,
- 0x99, 0x5a, 0x69, 0xad, 0x5e, 0x10, 0x96, 0x19, 0x00, 0x0b, 0x5f, 0xb8,
- 0x65, 0xf6, 0xe9, 0x1c, 0x31, 0x19, 0xf5, 0xbd, 0x63, 0x37, 0xbd, 0x63,
- 0x36, 0x18, 0xf8, 0x5b, 0xdb, 0xc2, 0x8e, 0x02, 0x5f, 0xda, 0xf7, 0xf7,
- 0x9c, 0x4e, 0x00, 0x48, 0x3d, 0xcd, 0xf5, 0xaf, 0x22, 0x06, 0x44, 0x1b,
- 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0, 0xf5, 0x82, 0x2f,
- 0xd7, 0xa0, 0x60, 0x19, 0x1c, 0x22, 0x06, 0x24, 0xd3, 0x22, 0x33, 0xda,
- 0x4c, 0x30, 0xaf, 0xb3, 0x64, 0x0c, 0x3f, 0xe0, 0x0c, 0x13, 0x7e, 0x95,
- 0xe7, 0x3d, 0x63, 0x7a, 0xf0, 0xc3, 0x13, 0x7d, 0xad, 0xf8, 0x4e, 0x51,
- 0x5f, 0x00, 0xec, 0xa6, 0x55, 0xe6, 0x0f, 0x9b, 0x26, 0x35, 0xf3, 0x3a,
- 0xfa, 0xc7, 0x48, 0xe0, 0x09, 0xfa, 0x7e, 0xe5, 0xff, 0xf7, 0xb5, 0x94,
- 0xb3, 0x50, 0x04, 0x3f, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xff, 0xf1, 0x5f, 0xe4, 0xc4, 0xff, 0xff,
- 0xff, 0xff, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xe0, 0xfd, 0x02, 0xdf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xaf, 0x3f, 0xff, 0xf7, 0x87, 0x66,
- 0x3f, 0x00, 0x6e, 0xdd, 0x75, 0xfd, 0x18, 0x9c, 0x4f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x4f, 0xe2, 0x71, 0xb1, 0x42, 0x80, 0x5b, 0xf0, 0xbf,
- 0x38, 0xff, 0x8d, 0x07, 0x91, 0x41, 0xc4, 0x9f, 0xaf, 0x03, 0x8f, 0x96,
- 0xba, 0xfe, 0x20, 0xac, 0x5b, 0x5b, 0xfb, 0x47, 0xc7, 0xfc, 0x4f, 0xff,
- 0xff, 0xff, 0xe6, 0xfd, 0x6c, 0x30, 0x0f, 0x64, 0xe0, 0x23, 0xa7, 0xa7,
- 0xe7, 0x9c, 0x4c, 0xe0, 0x90, 0x56, 0x9d, 0x6d, 0x6a, 0x4c, 0x54, 0xf3,
- 0xeb, 0x53, 0x49, 0x9f, 0x3f, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xff,
- 0xe6, 0xe1, 0x83, 0xff, 0xc2, 0x5c, 0x04, 0xb7, 0x3a, 0x3c, 0x42, 0x93,
- 0x2f, 0x01, 0x16, 0xfe, 0x76, 0xc7, 0xf5, 0xef, 0xd7, 0x8c, 0xf7, 0xef,
- 0xd7, 0x8c, 0xf6, 0x6f, 0x81, 0x0c, 0x8a, 0x5e, 0x30, 0xb0, 0x91, 0xc3,
- 0xde, 0x83, 0x10, 0x1e, 0x1e, 0x1c, 0xa0, 0x42, 0x81, 0x32, 0xcf, 0xbf,
- 0x5e, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0x83, 0xf4, 0x10, 0xbf,
- 0xf3, 0x7e, 0x59, 0x17, 0x2c, 0x60, 0x88, 0x08, 0xb1, 0x98, 0x80, 0x8f,
- 0x45, 0x02, 0x1e, 0x72, 0x81, 0x06, 0x80, 0x84, 0xbe, 0x7e, 0x0f, 0x3f,
- 0xaf, 0x5e, 0x34, 0xd4, 0xcc, 0x8f, 0xe2, 0x7c, 0x29, 0x94, 0x08, 0x00,
- 0xc4, 0xdd, 0x3c, 0x7c, 0x7d, 0x68, 0x41, 0xdd, 0xae, 0xf7, 0xdf, 0xf8,
- 0x4d, 0xe0, 0x7e, 0xf6, 0x7e, 0x6f, 0xf5, 0xcf, 0x50, 0x85, 0x71, 0xba,
- 0xc0, 0xff, 0x2d, 0xff, 0x00, 0x41, 0xaf, 0x49, 0x9e, 0xe5, 0xcb, 0xf2,
- 0xf7, 0xbd, 0x1e, 0x27, 0xff, 0xaf, 0x1d, 0xff, 0xf9, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
- 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0xfc, 0xff, 0xff, 0x93, 0xc4,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00,
- 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e, 0x60, 0x0d, 0x41,
- 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00, 0x00, 0x00, 0x01,
- 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8, 0x20, 0x20, 0xaf,
- 0xf1, 0xf8, 0xb0, 0xdc, 0x50, 0x00, 0x3f, 0x01, 0xc2, 0x21, 0x0c, 0x96,
- 0x01, 0xc2, 0x21, 0x0c, 0x4c, 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19,
- 0x2c, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd7, 0x4e, 0x4b, 0x9b, 0x5b,
- 0xa7, 0xf8, 0xf0, 0x01, 0xc0, 0x70, 0x88, 0x43, 0x13, 0x3a, 0xa2, 0x95,
- 0x59, 0xfa, 0x77, 0xd7, 0x77, 0x81, 0xaa, 0x66, 0xd6, 0x58, 0x1f, 0x35,
- 0xff, 0xff, 0xe6, 0x0b, 0xf9, 0x11, 0xc1, 0xd3, 0x57, 0x7f, 0x9e, 0xd7,
- 0x24, 0x19, 0xee, 0xeb, 0x4f, 0x5f, 0x77, 0x8e, 0xb2, 0x8b, 0x0a, 0x81,
- 0xda, 0x3c, 0x01, 0x80, 0xe1, 0x30, 0xca, 0x96, 0x04, 0x80, 0x03, 0xb6,
- 0xdf, 0x29, 0xbc, 0x78, 0x03, 0x01, 0xc2, 0x61, 0x95, 0x2d, 0x3d, 0xce,
- 0xb9, 0xfd, 0xff, 0xbe, 0x02, 0xe5, 0xa4, 0x32, 0xcb, 0x61, 0xdc, 0xef,
- 0xff, 0xac, 0x24, 0xf1, 0xe1, 0x0e, 0xb8, 0xb0, 0xdd, 0xb5, 0x19, 0x32,
- 0x19, 0x5e, 0x55, 0x23, 0xfb, 0xfd, 0xf7, 0x47, 0xc0, 0xe2, 0x47, 0x33,
- 0xcf, 0xed, 0x32, 0x0a, 0x32, 0xef, 0xf0, 0xe0, 0xf0, 0x1c, 0x0d, 0x5a,
- 0x2e, 0x45, 0xb6, 0xb3, 0xfd, 0xed, 0xa4, 0x35, 0x65, 0x3d, 0xca, 0x93,
- 0xd1, 0x3e, 0xfd, 0xa3, 0x31, 0xdb, 0x0b, 0xad, 0x23, 0x92, 0xff, 0xde,
- 0xff, 0x11, 0x07, 0x88, 0xc6, 0xd9, 0xe0, 0x03, 0x01, 0xc2, 0x21, 0x0c,
- 0x96, 0xe7, 0x80, 0x0c, 0x07, 0x08, 0x84, 0x32, 0x58, 0x00, 0x8a, 0x59,
- 0xc2, 0x67, 0x56, 0x37, 0x6b, 0xae, 0x35, 0x6d, 0x29, 0xdb, 0xfc, 0x04,
- 0x66, 0x90, 0x6d, 0x2f, 0x5e, 0x86, 0x7f, 0xf8, 0x3b, 0x11, 0x2c, 0x6a,
- 0xbe, 0x75, 0x86, 0xff, 0xff, 0x8f, 0x02, 0x55, 0x86, 0x54, 0x45, 0x57,
- 0x67, 0x97, 0xdf, 0xfb, 0x91, 0x30, 0xbf, 0xc4, 0x6a, 0x0e, 0xa0, 0x4a,
- 0xc8, 0x1a, 0x2b, 0xab, 0x9a, 0x89, 0xdf, 0xa0, 0x5e, 0x0b, 0x89, 0x4c,
- 0xd0, 0xec, 0x7a, 0x43, 0xe4, 0x05, 0x99, 0x6f, 0x1a, 0xae, 0x0d, 0x17,
- 0xa5, 0xff, 0xd6, 0x20, 0x43, 0x16, 0x5f, 0xb7, 0x3a, 0xda, 0xae, 0xdf,
- 0x01, 0x7c, 0xeb, 0x6a, 0xbb, 0x7c, 0x07, 0x10, 0xc5, 0x97, 0xcd, 0x28,
- 0xb3, 0x32, 0x2f, 0xb5, 0xc0, 0x88, 0x00, 0x02, 0xb5, 0x6a, 0xcf, 0x6d,
- 0xb0, 0x4f, 0xb9, 0x4f, 0xfe, 0x02, 0x4f, 0xaf, 0xa1, 0x93, 0x1b, 0x17,
- 0xd3, 0x8f, 0xb4, 0x4c, 0xb3, 0x23, 0xb8, 0xc5, 0xbb, 0xb2, 0xc1, 0xfa,
- 0xb7, 0xa5, 0x85, 0x4f, 0xbf, 0x01, 0x36, 0xe6, 0x53, 0x03, 0x76, 0xeb,
- 0x5d, 0x43, 0xcd, 0x65, 0x11, 0x91, 0xfc, 0xfe, 0xc3, 0x8d, 0xb5, 0x9e,
- 0x68, 0x8b, 0xdf, 0xee, 0x2b, 0xe8, 0x4a, 0xee, 0xa2, 0xb6, 0x51, 0x40,
- 0x06, 0x03, 0x84, 0x42, 0x19, 0x2c, 0x00, 0x10, 0x6e, 0x9a, 0xd9, 0x69,
- 0xbb, 0xd3, 0xad, 0xa3, 0x44, 0x6e, 0xd1, 0xe0, 0x03, 0x01, 0xc2, 0x21,
- 0x0c, 0x96, 0xf0, 0x01, 0x22, 0xf3, 0x4a, 0x66, 0x10, 0xb4, 0x8d, 0x3a,
- 0xce, 0x48, 0x00, 0x94, 0xdd, 0x0f, 0xbf, 0xf5, 0xa6, 0x63, 0x44, 0xab,
- 0x62, 0x0b, 0xff, 0xff, 0x2c, 0x28, 0xcd, 0xb3, 0xa7, 0xe8, 0xc7, 0xff,
- 0xdb, 0x6b, 0x3b, 0xdf, 0xf7, 0xf9, 0x62, 0x40, 0x02, 0xaa, 0xe6, 0xb4,
- 0x69, 0x3b, 0xd0, 0x76, 0xb1, 0x27, 0x45, 0x96, 0x8f, 0xb3, 0xfd, 0x57,
- 0x35, 0xa3, 0x93, 0x54, 0x64, 0xf4, 0x61, 0x9e, 0x15, 0x9f, 0xff, 0xfb,
- 0xbf, 0xac, 0xeb, 0xd9, 0x6e, 0x78, 0x00, 0xc0, 0x70, 0x88, 0x43, 0x25,
- 0xbf, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb4, 0x7e, 0xea, 0xdb, 0xd1, 0x26,
- 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2d, 0x7e, 0x69, 0xd7, 0xc7,
- 0xfd, 0xf6, 0x1e, 0x0c, 0x96, 0x36, 0x88, 0x80, 0x93, 0x0d, 0x7e, 0xbf,
- 0x55, 0xde, 0x40, 0x04, 0xec, 0x88, 0xfa, 0xee, 0xb5, 0xec, 0xc6, 0x2e,
- 0xcd, 0xde, 0xdd, 0x7f, 0xdf, 0xda, 0x43, 0x46, 0x79, 0xe6, 0x46, 0x82,
- 0x47, 0xff, 0xb3, 0x00, 0x00, 0x88, 0xbd, 0xc9, 0x80, 0x03, 0x3b, 0x64,
- 0xd5, 0xad, 0xce, 0xc1, 0x9b, 0xcd, 0xff, 0xd6, 0xff, 0xff, 0x6f, 0xd7,
- 0x6c, 0x9a, 0xb4, 0xf9, 0xdf, 0xea, 0x21, 0x89, 0xb3, 0xdc, 0xf0, 0x01,
- 0x80, 0xe1, 0x10, 0x86, 0x4b, 0x73, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19,
- 0x2c, 0x00, 0x45, 0x2c, 0xe1, 0x33, 0xab, 0x1b, 0xb5, 0x7e, 0x69, 0xd7,
- 0xc7, 0xfd, 0xf7, 0xa2, 0xc0, 0x79, 0xf1, 0x22, 0x22, 0x96, 0x37, 0xfe,
- 0xbf, 0x9f, 0x02, 0xf9, 0xb4, 0x36, 0x84, 0x44, 0xff, 0xfc, 0x18, 0x13,
- 0x66, 0xa6, 0xc1, 0x9f, 0x93, 0x4b, 0x7f, 0xfb, 0x00, 0xb8, 0xe9, 0x54,
- 0xa6, 0x26, 0x76, 0x61, 0xef, 0xd0, 0x1b, 0x21, 0x7c, 0x5c, 0x58, 0xe6,
- 0xb5, 0xfb, 0xe6, 0xb3, 0xbd, 0xef, 0x7f, 0x96, 0xe8, 0x78, 0xe3, 0x01,
- 0x1d, 0x01, 0xad, 0x1e, 0x00, 0xc0, 0x70, 0x98, 0x65, 0x4b, 0x00, 0xe6,
- 0xbe, 0x4f, 0xe7, 0x2f, 0x9c, 0x9e, 0x25, 0x47, 0xc6, 0xd4, 0xc7, 0x80,
- 0x30, 0x1c, 0x26, 0x19, 0x52, 0xdf, 0xed, 0x17, 0x95, 0x32, 0x42, 0x76,
- 0x27, 0xde, 0x10, 0x00, 0x0c, 0x08, 0xc7, 0x1c, 0x6d, 0x87, 0x56, 0xae,
- 0x52, 0x22, 0xf9, 0x00, 0x09, 0xbe, 0x30, 0xdd, 0x90, 0x00, 0xdc, 0x85,
- 0xcf, 0xdb, 0x5c, 0x56, 0x9e, 0x41, 0x8a, 0xe4, 0xda, 0x5a, 0xbd, 0x43,
- 0x46, 0x40, 0xd9, 0x97, 0xf3, 0x3b, 0xbe, 0x53, 0x8d, 0x55, 0x3d, 0xf9,
- 0xe1, 0x0b, 0x02, 0xf7, 0x89, 0x97, 0x02, 0xfc, 0xa6, 0x9d, 0xdf, 0xbc,
- 0x0e, 0x11, 0x08, 0x97, 0x00, 0x28, 0xc9, 0xfc, 0x9b, 0xd3, 0xb0, 0x38,
- 0x44, 0x22, 0x58, 0x60, 0x01, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb0, 0x79,
- 0x1a, 0xa7, 0xd9, 0x1c, 0x57, 0xae, 0xae, 0xa2, 0x5d, 0x2a, 0x67, 0x2c,
- 0x27, 0x18, 0x3d, 0x1c, 0x6d, 0x83, 0xab, 0x5d, 0x1c, 0xc8, 0xf7, 0x09,
- 0x2d, 0x6f, 0xdb, 0x9d, 0x61, 0x52, 0x30, 0x46, 0xdb, 0x13, 0xdd, 0xff,
- 0xb8, 0x49, 0x6b, 0x7e, 0xdc, 0xea, 0xc8, 0x94, 0x26, 0x3b, 0x48, 0xe6,
- 0xff, 0xff, 0xbf, 0x0f, 0xa5, 0xbf, 0x12, 0x24, 0xb0, 0x00, 0x2f, 0x01,
- 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x83, 0xcf, 0x00, 0x02, 0xf0, 0x1c, 0x00,
- 0x82, 0x0a, 0x5a, 0x5b, 0x81, 0x17, 0x90, 0xd5, 0xb9, 0x82, 0x46, 0x67,
- 0x46, 0x0f, 0x15, 0x49, 0x22, 0xa4, 0xa7, 0xff, 0xfe, 0xfe, 0x3f, 0x0f,
- 0x00, 0x4e, 0x72, 0x9c, 0xa5, 0x14, 0x0d, 0xeb, 0x62, 0x00, 0x04, 0x14,
- 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f, 0xc0, 0x10,
- 0x00, 0x9c, 0xe7, 0x39, 0xce, 0x70, 0x37, 0xad, 0x80, 0xe0, 0x02, 0x0a,
- 0x2e, 0x5f, 0xc0, 0xe0, 0x02, 0x0a, 0x2e, 0x5f, 0xff, 0xc7, 0xe0, 0x08,
- 0x00, 0x4e, 0x73, 0x9c, 0xe7, 0x38, 0x1b, 0xd6, 0xc0, 0x70, 0x01, 0x05,
- 0x17, 0x2f, 0xe0, 0x70, 0x01, 0x05, 0x17, 0x2f, 0xff, 0xe3, 0xf0, 0x04,
- 0x00, 0x27, 0x39, 0xce, 0x73, 0x9c, 0x0d, 0xeb, 0x60, 0x38, 0x00, 0x82,
- 0x8b, 0x97, 0xf0, 0x38, 0x00, 0x82, 0x8b, 0x97, 0xff, 0xf1, 0xf8, 0x02,
- 0x00, 0x13, 0x9c, 0xe7, 0x39, 0xce, 0x06, 0xf5, 0xb0, 0x1c, 0x00, 0x41,
- 0x45, 0xcb, 0xf8, 0x1c, 0x00, 0x41, 0x45, 0xcb, 0xff, 0xf8, 0xfc, 0x01,
- 0x00, 0x09, 0xce, 0x73, 0x9c, 0xe7, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x20,
- 0xa2, 0xe5, 0xfc, 0x0e, 0x00, 0x20, 0xa2, 0xe5, 0xff, 0xfc, 0x7e, 0x00,
- 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xbd, 0x6c, 0x07, 0x00, 0x10,
- 0x51, 0x72, 0xfe, 0x07, 0x00, 0x10, 0x51, 0x72, 0xff, 0xfe, 0x3f, 0x00,
- 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xde, 0xb6, 0x03, 0x80, 0x08,
- 0x28, 0xb9, 0x7f, 0x03, 0x80, 0x08, 0x28, 0xb9, 0x7f, 0xff, 0x1f, 0x80,
- 0x20, 0x01, 0x39, 0xce, 0x73, 0x9c, 0xe0, 0x6f, 0x5b, 0x01, 0xc0, 0x04,
- 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f, 0xc0,
- 0x01, 0x00, 0x19, 0x0a, 0x5a, 0x5b, 0x28, 0x2a, 0x21, 0xad, 0x4c, 0x81,
- 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xb0, 0x02,
- 0x1a, 0x46, 0xb2, 0x30, 0xc6, 0xeb, 0xd3, 0x70, 0xfe, 0x07, 0x00, 0x10,
- 0x41, 0x77, 0x38, 0xec, 0x01, 0x31, 0x66, 0x23, 0xdb, 0x32, 0x94, 0xc4,
- 0x4f, 0xac, 0x80, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0xeb, 0x00, 0xcb, 0x08,
- 0x70, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0x96, 0x12, 0xc0, 0x00, 0x80, 0x99,
- 0xe8, 0x12, 0x14, 0xa1, 0xf0, 0xf8, 0x9e, 0x38, 0x57, 0x8d, 0x80, 0x03,
- 0x29, 0xdc, 0x63, 0x6a, 0x63, 0x2d, 0xcd, 0x42, 0xdf, 0x80, 0x04, 0x1b,
- 0x1c, 0xda, 0xf3, 0x30, 0x0e, 0xd1, 0x9f, 0x0f, 0xaf, 0xe0, 0x81, 0xf9,
- 0xb0, 0x28, 0xa9, 0x16, 0x9f, 0x08, 0x7f, 0xdf, 0xff, 0xfe, 0xb0, 0x42,
- 0xb0, 0x00, 0x83, 0x63, 0x9b, 0x5e, 0x66, 0x01, 0xda, 0x3a, 0xf6, 0x12,
- 0x32, 0x3c, 0x38, 0x67, 0xf5, 0xff, 0xfc, 0x0e, 0x15, 0xfe, 0x00, 0x30,
- 0x26, 0x7a, 0x04, 0x85, 0x29, 0x06, 0x36, 0x00, 0x0c, 0xa7, 0x71, 0x8d,
- 0xa9, 0x8c, 0xb7, 0x3a, 0x16, 0x24, 0x4f, 0x7f, 0x11, 0xf8, 0x67, 0x85,
- 0x44, 0x60, 0x03, 0x02, 0x67, 0xa0, 0x48, 0x52, 0xb0, 0x1b, 0x00, 0x06,
- 0x53, 0xb8, 0xc6, 0xd4, 0xd8, 0xcc, 0xce, 0x6a, 0x07, 0x02, 0x8b, 0xb0,
- 0xd4, 0x86, 0x29, 0xc9, 0x9f, 0xdf, 0x0f, 0x80, 0x67, 0x85, 0x78, 0xf0,
- 0xde, 0x92, 0xde, 0x00, 0x14, 0x9e, 0x44, 0xcc, 0x89, 0xbc, 0x96, 0x0f,
- 0xff, 0xfd, 0xe0, 0x87, 0x80, 0x04, 0x3a, 0xb6, 0xf4, 0x49, 0xb4, 0xf4,
- 0x03, 0x10, 0x47, 0xc0, 0x14, 0x47, 0x7f, 0xf3, 0xe4, 0x10, 0xaf, 0x02,
- 0x13, 0xc9, 0x33, 0x21, 0x2f, 0xe9, 0xb0, 0x78, 0x00, 0x6e, 0xb3, 0x11,
- 0x14, 0xa2, 0x40, 0xde, 0xbc, 0xfd, 0xb6, 0x7f, 0xf0, 0xfc, 0x10, 0x3c,
- 0x00, 0x0b, 0x1e, 0xa6, 0x63, 0x8f, 0x2a, 0x73, 0x5e, 0x6f, 0x53, 0xd7,
- 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c,
- 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0,
- 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xfd, 0xa1, 0xf4, 0x9d, 0x90, 0xb0, 0x00,
- 0x23, 0x80, 0xe0, 0x10, 0x87, 0x10, 0x99, 0xc5, 0x01, 0xc2, 0xea, 0x2b,
- 0x50, 0x7a, 0x8b, 0x5f, 0xa1, 0xe0, 0x00, 0x47, 0x01, 0xc0, 0x21, 0x0e,
- 0x21, 0x33, 0x80, 0x4b, 0xeb, 0x35, 0xe2, 0x7f, 0xe9, 0xdb, 0x4f, 0x5d,
- 0x36, 0x3c, 0x58, 0x5d, 0x10, 0x96, 0xcd, 0x2b, 0x24, 0xed, 0x81, 0xae,
- 0x4a, 0x34, 0xe9, 0x4e, 0x60, 0xc6, 0xfa, 0xb9, 0x0f, 0x69, 0xfa, 0xac,
- 0xd9, 0x82, 0xb0, 0x1a, 0x1d, 0xb8, 0xfd, 0x72, 0xf2, 0xe1, 0xf7, 0xe8,
- 0x41, 0xe4, 0xda, 0x98, 0x64, 0xef, 0xe4, 0x23, 0xd3, 0x8a, 0x9f, 0x11,
- 0x1b, 0xa9, 0x81, 0xab, 0x75, 0x80, 0x2e, 0xe5, 0x1e, 0x80, 0x27, 0x2d,
- 0xab, 0xf5, 0xd3, 0x50, 0x42, 0x66, 0x72, 0xaa, 0x0d, 0xf3, 0xf7, 0xe9,
- 0xa6, 0x37, 0x7f, 0xd8, 0xcf, 0xbb, 0xd0, 0x71, 0xf1, 0x4c, 0xeb, 0x0d,
- 0x07, 0x45, 0x33, 0x5e, 0x03, 0x2a, 0x92, 0x98, 0xec, 0x23, 0x7b, 0xfb,
- 0x6f, 0x9d, 0x1e, 0x9c, 0x0b, 0xcc, 0xc5, 0x84, 0x77, 0xf2, 0x0f, 0x62,
- 0x4e, 0x32, 0x03, 0x37, 0xa8, 0x6f, 0x59, 0x81, 0x48, 0xa4, 0x3c, 0xf0,
- 0xd0, 0x58, 0x92, 0xf2, 0xb6, 0x62, 0xe7, 0xb5, 0x0e, 0x95, 0x08, 0xbf,
- 0xf7, 0x41, 0x07, 0x72, 0xf2, 0x4b, 0xff, 0xb7, 0x6d, 0x13, 0xa4, 0x11,
- 0x95, 0xed, 0xf8, 0x03, 0x8e, 0xbb, 0x4b, 0x6f, 0xe8, 0x9d, 0x73, 0xa0,
- 0x00, 0x10, 0x06, 0x70, 0x36, 0x25, 0x97, 0xcf, 0xd1, 0xa3, 0x19, 0x5f,
- 0xf6, 0x22, 0xb4, 0xc0, 0x9d, 0x8f, 0x02, 0x26, 0xe0, 0xf7, 0xf8, 0x5e,
- 0x38, 0xa3, 0xd0, 0x5c, 0x05, 0xbe, 0x54, 0x1d, 0x60, 0xda, 0xf9, 0xcb,
- 0xd5, 0xa6, 0x7c, 0x14, 0x52, 0x7e, 0x51, 0xb7, 0x41, 0x06, 0x42, 0x3b,
- 0x0b, 0xda, 0x33, 0xee, 0xf4, 0x1c, 0xe8, 0xc1, 0xf4, 0x9e, 0x3d, 0xeb,
- 0x6d, 0x32, 0x56, 0x4b, 0xb6, 0x01, 0xae, 0x4a, 0x34, 0xe4, 0xa7, 0x3f,
- 0x2a, 0xe9, 0x91, 0xdd, 0xb2, 0x17, 0x6f, 0x0c, 0xfd, 0xde, 0x4f, 0xe9,
- 0xc0, 0xf9, 0x54, 0x3e, 0xfd, 0x08, 0x3d, 0x9b, 0x53, 0x0c, 0x9d, 0xfc,
- 0x84, 0x7a, 0x71, 0x5f, 0x88, 0x8d, 0xd4, 0xc0, 0xd7, 0x99, 0xdb, 0x6a,
- 0xac, 0xf6, 0x7c, 0x00, 0x25, 0xb3, 0x28, 0xb3, 0x05, 0x01, 0xda, 0x22,
- 0xe5, 0xac, 0x8e, 0x19, 0x4c, 0x41, 0x1d, 0xfc, 0xa3, 0x57, 0x5c, 0x7e,
- 0xbf, 0x7e, 0x71, 0xa5, 0x25, 0xef, 0xbf, 0xc0, 0xca, 0x88, 0xc4, 0xca,
- 0x54, 0x38, 0x52, 0x43, 0xa4, 0x15, 0xf5, 0x9b, 0xc8, 0x55, 0x2f, 0xa9,
- 0xe7, 0xa2, 0xde, 0x24, 0x51, 0xe5, 0x89, 0x9e, 0xce, 0x14, 0x48, 0xa0,
- 0x98, 0xb4, 0xb6, 0x41, 0xc3, 0x07, 0xda, 0x78, 0xf4, 0xac, 0x49, 0xdb,
- 0x00, 0x35, 0xc9, 0x45, 0x69, 0x9e, 0xa3, 0x47, 0x25, 0x39, 0xdf, 0x7c,
- 0xee, 0xa3, 0xf7, 0xfb, 0x87, 0x76, 0x7c, 0x04, 0x36, 0xdd, 0xe4, 0xff,
- 0xd3, 0x83, 0xcb, 0xf4, 0x20, 0x59, 0x36, 0xa6, 0xe1, 0x15, 0x3e, 0x22,
- 0x27, 0x53, 0x0c, 0x9d, 0xfc, 0x84, 0x7a, 0x77, 0x83, 0x2d, 0xc6, 0xcd,
- 0x2b, 0x50, 0xf9, 0xd9, 0x6f, 0x1a, 0x55, 0x51, 0xff, 0x7c, 0x07, 0x33,
- 0xf4, 0x14, 0x50, 0x3d, 0xff, 0xef, 0x3c, 0x1d, 0x97, 0x18, 0x1b, 0xc1,
- 0x96, 0xbf, 0xac, 0x98, 0xdd, 0x61, 0xc0, 0x0e, 0xef, 0xca, 0xdc, 0xdf,
- 0xe4, 0x37, 0xda, 0xc5, 0x8f, 0xbe, 0x80, 0x59, 0x34, 0x3a, 0x8b, 0xdb,
- 0x6b, 0x60, 0x5f, 0x00, 0x14, 0xb8, 0x6a, 0x66, 0xae, 0x2a, 0x9c, 0xe5,
- 0x99, 0xfa, 0x28, 0x02, 0xce, 0x4e, 0x83, 0x18, 0xbb, 0xad, 0xce, 0x9d,
- 0x77, 0xfd, 0x72, 0x92, 0x18, 0x98, 0x8f, 0xdb, 0x5e, 0x0f, 0x3a, 0x00,
- 0x3b, 0x8d, 0xb2, 0x41, 0x8b, 0x1c, 0xc5, 0xfe, 0xf9, 0x28, 0xbd, 0xe4,
- 0x6c, 0x1f, 0xde, 0x01, 0x1e, 0xbf, 0x0f, 0xff, 0xfd, 0xc0, 0x1a, 0x26,
- 0xcd, 0x18, 0x2e, 0x26, 0x6d, 0xff, 0x04, 0x56, 0xe7, 0x54, 0x7f, 0xff,
- 0xcc, 0x78, 0xcb, 0x43, 0x86, 0xc8, 0xb7, 0x8c, 0xa3, 0x21, 0xe8, 0xf1,
- 0x5d, 0x88, 0x86, 0xd4, 0xc1, 0x81, 0xea, 0xf8, 0xed, 0xe1, 0xe0, 0xdc,
- 0xc9, 0xc7, 0x45, 0xa6, 0xec, 0x93, 0x8d, 0x90, 0x16, 0x32, 0xbb, 0xff,
- 0xaf, 0xcd, 0x3a, 0xec, 0xff, 0xbe, 0x06, 0x18, 0x35, 0x55, 0x3f, 0xf7,
- 0xfe, 0xf8, 0xe1, 0xe0, 0x06, 0x2c, 0x94, 0x04, 0xdd, 0x3c, 0x2b, 0x45,
- 0xec, 0xaf, 0xbe, 0xf6, 0xfe, 0x5f, 0xe1, 0xe3, 0xcc, 0x82, 0xe7, 0x16,
- 0x53, 0x71, 0x0f, 0xbe, 0xa9, 0x15, 0xca, 0x73, 0xd4, 0x4d, 0x75, 0xd7,
- 0x5d, 0x75, 0xd7, 0x1d, 0x10, 0x00, 0x80, 0x04, 0xc7, 0x31, 0xcc, 0x73,
- 0x01, 0xe6, 0xf3, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x73, 0xfc, 0x0e, 0x00,
- 0x20, 0x82, 0xee, 0x7f, 0xff, 0xca, 0x16, 0x8f, 0x00, 0x02, 0xb8, 0x0e,
- 0x01, 0x0c, 0x21, 0x24, 0xcf, 0xc0, 0x47, 0xaf, 0xdb, 0xe7, 0x80, 0x01,
- 0x3c, 0x07, 0x00, 0x86, 0x10, 0x92, 0x67, 0x06, 0xda, 0x02, 0x8b, 0x6d,
- 0x07, 0x38, 0xf8, 0x9b, 0x00, 0x0d, 0x1a, 0x77, 0x4f, 0x3f, 0x23, 0x10,
- 0x61, 0xec, 0x9f, 0x2a, 0x0c, 0xac, 0x72, 0x75, 0x37, 0xf8, 0x02, 0x2c,
- 0xc4, 0xc5, 0x56, 0x7e, 0x48, 0x3a, 0x2d, 0x31, 0x10, 0x55, 0xbf, 0xc3,
- 0x03, 0xc5, 0x9c, 0x04, 0xfe, 0xef, 0x98, 0x38, 0xf0, 0x18, 0x7a, 0xb0,
- 0x71, 0xd2, 0xdd, 0x1e, 0xa3, 0x98, 0x6f, 0x68, 0xaa, 0x72, 0x9a, 0xbe,
- 0x1e, 0xcd, 0x26, 0x18, 0x1d, 0xd5, 0x33, 0xa8, 0xfa, 0xa6, 0x4f, 0x1b,
- 0xfc, 0x3a, 0xd3, 0x46, 0x90, 0xf3, 0xfe, 0x13, 0x3e, 0xd6, 0x06, 0x83,
- 0x29, 0x8e, 0x6e, 0xa6, 0xb2, 0xa8, 0xec, 0x59, 0xde, 0x1c, 0xbc, 0xc1,
- 0x14, 0xe9, 0x80, 0xf5, 0x49, 0x80, 0x4a, 0x06, 0x76, 0x75, 0x0f, 0xeb,
- 0x24, 0x17, 0x25, 0x88, 0x4b, 0x2d, 0x6c, 0x3c, 0x06, 0x91, 0x56, 0x1e,
- 0xf9, 0xe3, 0x5b, 0x00, 0x80, 0x06, 0x33, 0xf8, 0x02, 0x2c, 0xc8, 0x45,
- 0x56, 0x7e, 0x03, 0x30, 0xd3, 0xa7, 0x73, 0xfe, 0xff, 0x18, 0x18, 0xb3,
- 0x80, 0x87, 0xc3, 0xf9, 0x81, 0x6f, 0x71, 0x68, 0x3a, 0xde, 0x68, 0x78,
- 0x0c, 0x7a, 0xb0, 0x3a, 0x2d, 0xa3, 0x30, 0x88, 0x85, 0x10, 0xf7, 0xc0,
- 0x87, 0xff, 0xf3, 0x95, 0x1e, 0xa1, 0x7f, 0xe0, 0x01, 0x9b, 0x7f, 0xca,
- 0xf9, 0xf4, 0xa2, 0x34, 0xb1, 0xbd, 0x64, 0x00, 0xc3, 0xfa, 0x6f, 0xd7,
- 0x90, 0xa2, 0x98, 0x19, 0x3f, 0xcd, 0x79, 0x59, 0xf4, 0xa8, 0xc9, 0x07,
- 0x6f, 0x82, 0x03, 0xc2, 0xbe, 0xe3, 0x1f, 0xbb, 0xdd, 0x17, 0xbb, 0x48,
- 0x5d, 0xef, 0xbf, 0x7f, 0x4c, 0xa1, 0xd5, 0x62, 0x39, 0x87, 0xa8, 0x33,
- 0x89, 0xa5, 0xb6, 0xff, 0x00, 0x26, 0x3f, 0x2a, 0x08, 0x4d, 0xb0, 0x7d,
- 0xc6, 0xf6, 0x8d, 0x13, 0xf3, 0xc0, 0xdb, 0x3e, 0x14, 0x54, 0x77, 0x6a,
- 0x7f, 0xff, 0x32, 0xeb, 0x51, 0x12, 0xdf, 0xec, 0x0c, 0x06, 0xdb, 0x6f,
- 0x49, 0x37, 0x3a, 0x2f, 0x89, 0x97, 0x28, 0x77, 0xf0, 0x71, 0x90, 0xf0,
- 0xee, 0x0f, 0xf9, 0xd9, 0xee, 0x35, 0x5f, 0xef, 0xf7, 0xd7, 0x5f, 0xff,
- 0xf9, 0x14, 0x10, 0x9a, 0x00, 0x2f, 0x4b, 0xf8, 0x51, 0xdd, 0x8f, 0xcc,
- 0x03, 0xb5, 0x03, 0xf0, 0xc7, 0xdf, 0xf4, 0x1f, 0xff, 0xfb, 0x9f, 0xde,
- 0xf2, 0xfd, 0xae, 0x00, 0x81, 0x8a, 0xc0, 0x6a, 0x18, 0xf7, 0xe4, 0x00,
- 0xd4, 0x55, 0x20, 0x1f, 0x10, 0x43, 0x94, 0x77, 0xf1, 0xfe, 0xfe, 0x18,
- 0x49, 0x55, 0xb9, 0xcf, 0xfe, 0x38, 0x30, 0xfd, 0xfb, 0x8f, 0xc3, 0xfe,
- 0x12, 0x42, 0xac, 0xa8, 0xd8, 0x6d, 0xf4, 0x81, 0x8f, 0xf7, 0x35, 0xdf,
- 0x7d, 0xff, 0xb1, 0x20, 0x39, 0x00, 0x30, 0x64, 0x18, 0x2d, 0x42, 0xab,
- 0xff, 0xc2, 0x4f, 0x00, 0x0a, 0x44, 0xa1, 0x39, 0x34, 0x47, 0x45, 0x27,
- 0xff, 0x43, 0xb2, 0x50, 0x1d, 0xaa, 0x41, 0x66, 0x48, 0x35, 0x70, 0x13,
- 0xf2, 0x81, 0x63, 0xfb, 0x20, 0xac, 0xff, 0x7d, 0xff, 0x0a, 0xaf, 0x87,
- 0x55, 0x03, 0x82, 0x75, 0xf0, 0x00, 0xe6, 0x91, 0xc7, 0x3d, 0x0a, 0xa7,
- 0xd0, 0x20, 0x35, 0x91, 0x76, 0xde, 0xc4, 0xfe, 0xe0, 0x00, 0x7d, 0x1e,
- 0x9a, 0xf6, 0x96, 0x4f, 0xfe, 0xd1, 0x23, 0x9d, 0x68, 0x76, 0x25, 0xfb,
- 0x83, 0x08, 0x57, 0x77, 0x79, 0xff, 0xff, 0xfb, 0xff, 0x9f, 0xe0, 0x80,
- 0xbf, 0x01, 0x49, 0x16, 0x59, 0x25, 0xb3, 0xcb, 0x3f, 0xff, 0x86, 0xa7,
- 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39, 0x80, 0xf3, 0x79,
- 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00, 0x10, 0x41, 0x77,
- 0x3f, 0xe9, 0x3f, 0xf8, 0x94, 0x78, 0x00, 0x13, 0xc0, 0x70, 0x08, 0x61,
- 0x09, 0x26, 0x70, 0x0e, 0x03, 0xa7, 0x0a, 0x8d, 0xa5, 0x5f, 0xcd, 0x6b,
- 0x6b, 0xbe, 0x0f, 0x00, 0x02, 0x78, 0x0e, 0x01, 0x0c, 0x21, 0x24, 0xce,
- 0x0c, 0x04, 0x88, 0x47, 0xff, 0x09, 0x20, 0xf4, 0x99, 0x90, 0x8a, 0x86,
- 0xd4, 0xc0, 0x53, 0x0a, 0xd7, 0x81, 0xba, 0xd2, 0x7e, 0xf9, 0xe0, 0x00,
- 0x6d, 0x3b, 0x18, 0xda, 0x99, 0x31, 0xb1, 0xf5, 0xeb, 0x15, 0xb0, 0xa8,
- 0x66, 0x55, 0x3e, 0x12, 0xeb, 0x95, 0xff, 0x90, 0x38, 0x27, 0xc9, 0xb5,
- 0x8d, 0x19, 0x3f, 0x7a, 0xd7, 0x24, 0x03, 0x0f, 0xf8, 0x4b, 0x7b, 0x07,
- 0xc1, 0x13, 0x29, 0x6f, 0xf8, 0xa2, 0xf2, 0x31, 0xb5, 0x47, 0x73, 0x2a,
- 0x76, 0xdb, 0xc5, 0x18, 0xfd, 0x07, 0x00, 0xa9, 0x80, 0xd9, 0x61, 0x2f,
- 0x98, 0x3d, 0x26, 0x64, 0x22, 0xb1, 0xb5, 0x34, 0xbd, 0x32, 0x70, 0xd0,
- 0x01, 0xb4, 0xec, 0x21, 0xb5, 0x35, 0xa5, 0xc0, 0x3f, 0xe1, 0x24, 0x0a,
- 0xa5, 0xde, 0x0d, 0xfd, 0x67, 0xbe, 0xf5, 0xc6, 0xb0, 0x00, 0xd7, 0xb2,
- 0x64, 0x34, 0x76, 0x3d, 0x5e, 0xd9, 0x24, 0xcb, 0xcd, 0xc1, 0x59, 0xce,
- 0x1f, 0xc2, 0x4f, 0x29, 0xb3, 0xc2, 0x00, 0x15, 0xb3, 0xc9, 0x10, 0xde,
- 0x29, 0x5f, 0xb5, 0x4e, 0x41, 0xad, 0xe7, 0xa0, 0x8b, 0x3b, 0x7a, 0x5e,
- 0x8c, 0x98, 0x10, 0x21, 0x63, 0xfe, 0x35, 0xe5, 0xd3, 0x3c, 0xcd, 0xfc,
- 0xfc, 0x4c, 0x0b, 0x3f, 0xc1, 0x19, 0x7f, 0xf5, 0x03, 0xca, 0x43, 0xff,
- 0xf0, 0x94, 0xc7, 0x53, 0x76, 0xd4, 0x4a, 0x6e, 0x37, 0x49, 0xab, 0x83,
- 0xb4, 0x68, 0x06, 0x33, 0xf0, 0x36, 0xd4, 0x5c, 0x65, 0x6a, 0x2d, 0xd0,
- 0x4c, 0xea, 0x8b, 0xde, 0x1d, 0x46, 0xd7, 0x5d, 0x75, 0xd7, 0xca, 0x59,
- 0x48, 0x9b, 0xf1, 0x22, 0x20, 0x91, 0xe0, 0x3f, 0x79, 0x80, 0xc1, 0xa6,
- 0xdb, 0x1f, 0xfe, 0x9b, 0xdf, 0xe3, 0xff, 0xfb, 0x81, 0x83, 0xc0, 0x0f,
- 0x9f, 0xd2, 0x66, 0xe2, 0x90, 0x66, 0x77, 0xff, 0x4f, 0xfd, 0xfe, 0xa2,
- 0x6a, 0x21, 0xdc, 0x4d, 0xf9, 0x9d, 0x3f, 0xce, 0x98, 0x27, 0x15, 0x9a,
- 0xbb, 0xbb, 0xe7, 0xff, 0xff, 0xe0, 0x09, 0x49, 0xdd, 0x5f, 0x3b, 0xff,
- 0xf9, 0xe0, 0x6b, 0x26, 0xbb, 0x85, 0xd6, 0xc7, 0xea, 0x00, 0x2c, 0x82,
- 0xfd, 0x2a, 0xb1, 0x1d, 0xea, 0xaf, 0x02, 0x95, 0xad, 0x7a, 0x7d, 0xff,
- 0x7f, 0xd4, 0x5c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc,
- 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00,
- 0x82, 0x0b, 0xb9, 0xc7, 0x61, 0xe0, 0x09, 0xce, 0x72, 0x9c, 0xae, 0x07,
- 0x9b, 0xc2, 0x00, 0x04, 0x14, 0x6d, 0xcf, 0xf8, 0x1c, 0x00, 0x41, 0x46,
- 0xdc, 0xff, 0xa8, 0x95, 0x7d, 0xf7, 0xdf, 0x5d, 0x75, 0xd7, 0x5f, 0xf6,
- 0xb7, 0xc2, 0x50, 0xa0, 0x88, 0x03, 0x56, 0xa7, 0x01, 0xf5, 0xa2, 0x1d,
- 0xd2, 0xa3, 0x18, 0x6d, 0xdc, 0x41, 0x97, 0xf6, 0xed, 0x5f, 0xe7, 0x92,
- 0x44, 0x82, 0xbe, 0xa2, 0x2a, 0x26, 0xbf, 0xe9, 0x4f, 0x84, 0x21, 0x41,
- 0x1e, 0x00, 0x17, 0x98, 0x52, 0x24, 0x4b, 0x24, 0x64, 0xdf, 0xf4, 0x09,
- 0xb8, 0x1d, 0xf8, 0xde, 0xf8, 0x23, 0x7f, 0xbe, 0x80, 0x8d, 0xa2, 0x4c,
- 0xcd, 0x90, 0x91, 0x5f, 0x43, 0x51, 0x3e, 0x3a, 0x20, 0x01, 0x00, 0x09,
- 0x8e, 0x63, 0x98, 0xe6, 0x03, 0xcd, 0xe7, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
- 0xe7, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xe3, 0xb0, 0x04, 0x00, 0x27,
- 0x39, 0xc5, 0x5a, 0xd6, 0x07, 0x9b, 0xc0, 0x38, 0x00, 0x82, 0x8d, 0xb9,
- 0xff, 0x03, 0x80, 0x08, 0x28, 0xdb, 0x9f, 0xf5, 0x13, 0x5d, 0x75, 0xd7,
- 0x5d, 0x75, 0xd7, 0x5f, 0xf0, 0xfe, 0x90, 0x82, 0x13, 0x40, 0x04, 0x95,
- 0x49, 0xbb, 0x8b, 0xef, 0x42, 0x47, 0x99, 0x48, 0xb6, 0xf9, 0x79, 0x4f,
- 0xff, 0xfe, 0x4f, 0x04, 0x26, 0x80, 0x04, 0x3a, 0xb6, 0xf4, 0x49, 0xb4,
- 0x00, 0x2d, 0x36, 0xdb, 0x02, 0xdc, 0x7d, 0x28, 0xf7, 0xfe, 0xab, 0xef,
- 0xbf, 0xf7, 0xfe, 0xff, 0xdf, 0xc1, 0xc5, 0xe5, 0xf8, 0x95, 0xc0, 0x05,
- 0xa4, 0x7f, 0x31, 0x20, 0xbe, 0xad, 0xda, 0x00, 0x4d, 0xb2, 0xc6, 0x8e,
- 0x88, 0xbb, 0x40, 0x6d, 0x2a, 0xbd, 0xd3, 0x9f, 0xf9, 0x07, 0x7e, 0x4a,
- 0xed, 0xe8, 0xdf, 0xdb, 0x80, 0x00, 0x30, 0xea, 0x27, 0xd7, 0xff, 0xff,
- 0x68, 0x21, 0x11, 0x00, 0x06, 0xcd, 0x93, 0x46, 0x41, 0x0f, 0xf9, 0x86,
- 0x13, 0xa3, 0x40, 0x53, 0xca, 0x2a, 0x69, 0x8f, 0xbb, 0xe8, 0xa2, 0x63,
- 0xa2, 0x00, 0x10, 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde, 0x7c,
- 0x0e, 0x00, 0x20, 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xce,
- 0x3b, 0x00, 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xf3, 0x78, 0x07,
- 0x00, 0x10, 0x51, 0xb7, 0x3f, 0xe0, 0x70, 0x01, 0x05, 0x1b, 0x73, 0xfe,
- 0xa2, 0x6b, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xf0, 0x00, 0x00, 0x01, 0x25,
- 0x01, 0x2e, 0xe0, 0x80, 0x87, 0xff, 0xff, 0xc3, 0xd1, 0x40, 0x00, 0x40,
- 0xc7, 0xc7, 0xc8, 0x00, 0x09, 0xa6, 0xd3, 0x4d, 0x34, 0xd2, 0x65, 0xf0,
- 0x04, 0xc1, 0xaa, 0x9d, 0x03, 0xb8, 0x73, 0x7f, 0xff, 0xa7, 0xba, 0x10,
- 0xa3, 0x91, 0x6c, 0x80, 0xb0, 0x02, 0x0b, 0x77, 0xe9, 0x1f, 0xb8, 0xfc,
- 0x00, 0x33, 0x6d, 0xbe, 0x53, 0x72, 0xbc, 0x95, 0x6d, 0x89, 0xdf, 0xd3,
- 0x8e, 0x8d, 0x79, 0xf3, 0xe8, 0x03, 0xd3, 0x6d, 0xe0, 0xb5, 0x17, 0x4a,
- 0x3d, 0xff, 0xac, 0x01, 0x66, 0x5a, 0xf7, 0x28, 0x5d, 0x32, 0x4f, 0xdf,
- 0xff, 0x7f, 0x5d, 0x86, 0x1f, 0x7f, 0xff, 0xe1, 0xe6, 0x00, 0x06, 0x90,
- 0xed, 0x9d, 0x98, 0x74, 0xb1, 0xee, 0xd8, 0x49, 0x55, 0xf9, 0xce, 0x7f,
- 0xed, 0xc0, 0x00, 0x1f, 0x92, 0x7b, 0xef, 0xff, 0x62, 0xf6, 0x22, 0xc6,
- 0x0a, 0x80, 0x0f, 0xa0, 0x76, 0x94, 0x88, 0x40, 0x18, 0x0b, 0x7d, 0x73,
- 0x00, 0x09, 0xac, 0xf8, 0xa9, 0xb4, 0xff, 0xff, 0xc9, 0x7e, 0xfb, 0x3a,
- 0xf8, 0x00, 0x5a, 0x33, 0x95, 0x4c, 0x07, 0xc6, 0x73, 0xff, 0x60, 0x43,
- 0x05, 0x2e, 0xeb, 0x7c, 0xc9, 0xef, 0x60, 0xdb, 0xef, 0xfb, 0xec, 0xf2,
- 0x45, 0x86, 0x3e, 0x20, 0x01, 0x00, 0x09, 0x8e, 0x63, 0x98, 0xe6, 0x03,
- 0xcd, 0xe7, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x1c, 0x00, 0x41,
- 0x05, 0xdc, 0xff, 0xff, 0xf8, 0x4e, 0x28, 0x00, 0x08, 0x08, 0xe0, 0x38,
- 0x01, 0x04, 0x14, 0xa2, 0x66, 0x78, 0x00, 0x15, 0xc0, 0x70, 0x02, 0x08,
- 0x29, 0x44, 0xcd, 0xc4, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x5f,
- 0x4c, 0xe6, 0x7f, 0x3e, 0x28, 0x47, 0x42, 0x74, 0xfa, 0xcd, 0xdf, 0x24,
- 0xbd, 0xbe, 0x0a, 0x4e, 0x75, 0xdf, 0x9f, 0xff, 0xff, 0xbc, 0x05, 0x46,
- 0x57, 0x7d, 0x4e, 0xbf, 0xff, 0xf8, 0xa7, 0x3a, 0xef, 0xe7, 0xff, 0xff,
- 0xe0, 0x30, 0x25, 0x19, 0x5d, 0xf5, 0x3b, 0xff, 0xf9, 0xff, 0xfa, 0xe7,
- 0xae, 0x15, 0x81, 0xa6, 0xad, 0x77, 0x9d, 0xa5, 0x78, 0xff, 0xcb, 0xfc,
- 0x00, 0x58, 0x26, 0xf5, 0x3c, 0x78, 0x66, 0x2f, 0x9b, 0x02, 0xcd, 0x39,
- 0x93, 0x75, 0xff, 0xbe, 0xf5, 0x13, 0x5f, 0xff, 0xdc, 0x88, 0xb1, 0x82,
- 0xb8, 0x00, 0x44, 0x16, 0xe2, 0x29, 0x8f, 0xa2, 0x7c, 0x00, 0x22, 0x0b,
- 0x71, 0x14, 0xc7, 0xd1, 0x3d, 0x01, 0x2d, 0x8b, 0xf5, 0xa9, 0x3f, 0xbb,
- 0xc0, 0x02, 0xd1, 0x9a, 0x25, 0xf8, 0xe9, 0x08, 0x5f, 0xe7, 0x8d, 0xbf,
- 0xfa, 0xe5, 0x50, 0x60, 0x00, 0x01, 0xf8, 0x76, 0x62, 0x22, 0xe5, 0xfe,
- 0x25, 0x80, 0x04, 0x41, 0x6e, 0x25, 0x33, 0x69, 0x3c, 0x0d, 0xd7, 0xf9,
- 0x3d, 0x6c, 0x95, 0xfa, 0xff, 0xd1, 0x99, 0xff, 0xd7, 0x29, 0xff, 0xfc,
- 0x07, 0x05, 0xe0, 0xfd, 0x44, 0xc7, 0x44, 0x00, 0x20, 0x01, 0x31, 0xcc,
- 0x73, 0x1c, 0xc0, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xff,
- 0x03, 0x80, 0x08, 0x20, 0xbb, 0x9c, 0x76, 0x1e, 0x00, 0x9c, 0xe7, 0x29,
- 0x4a, 0x50, 0x3c, 0xde, 0x10, 0x00, 0x20, 0xa2, 0xee, 0x7f, 0xc0, 0xe0,
- 0x02, 0x0a, 0x2e, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
- 0xd7, 0x5d, 0x7f, 0xd7, 0xff, 0x87, 0xcd, 0xe0, 0x01, 0x79, 0xd0, 0x2a,
- 0xd1, 0x24, 0x68, 0x97, 0xfb, 0xf5, 0x1c, 0x20, 0x1f, 0xf0, 0xf2, 0x03,
- 0x6b, 0xc1, 0xf3, 0x69, 0xe8, 0xcf, 0x7f, 0xb7, 0xc0, 0x23, 0x68, 0x96,
- 0x66, 0xc8, 0x59, 0xd5, 0x3c, 0x3e, 0x00, 0xef, 0xff, 0xc2, 0x58, 0x00,
- 0x37, 0x4c, 0x98, 0x48, 0xb9, 0x1c, 0x73, 0x31, 0xf0, 0xe8, 0xd4, 0x05,
- 0x67, 0x28, 0xb4, 0xa7, 0x5d, 0xb8, 0x0d, 0xa9, 0xc0, 0xf9, 0xfd, 0x82,
- 0x10, 0xff, 0xff, 0x3b, 0xfe, 0xe5, 0xff, 0xfc, 0x24, 0x26, 0xef, 0x63,
- 0xb5, 0xd5, 0x54, 0xb7, 0xc1, 0xfe, 0xf9, 0x3a, 0xe3, 0xa2, 0x00, 0x10,
- 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde, 0x7c, 0x0e, 0x00, 0x20,
- 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0x88, 0x7f, 0xfe,
- 0x13, 0x30, 0x00, 0xd3, 0x86, 0xfd, 0xca, 0x08, 0x9c, 0x3d, 0x5e, 0xd3,
- 0x0c, 0x02, 0x21, 0x4c, 0x4c, 0xcf, 0x00, 0x1c, 0x07, 0x02, 0x31, 0x4c,
- 0x4c, 0xdd, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf,
- 0x7d, 0xf7, 0xdf, 0x1f, 0x80, 0x02, 0x32, 0xac, 0xca, 0xcc, 0xaf, 0x32,
- 0xf8, 0x01, 0x32, 0x70, 0xd4, 0x84, 0x73, 0xfa, 0xbd, 0xff, 0x81, 0xc0,
- 0x10, 0x87, 0xdc, 0xe3, 0xa5, 0x0f, 0x00, 0x4e, 0x73, 0x94, 0xa5, 0x28,
- 0x1e, 0x6f, 0x08, 0x00, 0x10, 0x51, 0x77, 0x3f, 0xe0, 0x70, 0x01, 0x05,
- 0x17, 0x73, 0xfe, 0xa2, 0x6b, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae,
- 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98,
- 0xe6, 0x39, 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe,
- 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xf0, 0xff, 0xc4, 0x8a, 0x14, 0x00,
- 0x70, 0x1c, 0x26, 0x19, 0x49, 0x98, 0x0e, 0x00, 0x13, 0xb9, 0x93, 0x03,
- 0x80, 0x01, 0x66, 0x02, 0x20, 0xf3, 0xc0, 0x1c, 0x07, 0x09, 0x86, 0x52,
- 0x67, 0xf8, 0xc3, 0xe1, 0x08, 0xa2, 0x07, 0x00, 0x02, 0x08, 0x19, 0x00,
- 0x70, 0x00, 0x20, 0x81, 0x90, 0x78, 0x0a, 0x02, 0x42, 0x12, 0xc8, 0x18,
- 0x2f, 0x77, 0x11, 0x40, 0x49, 0x62, 0xb0, 0x0f, 0x2e, 0x21, 0xc0, 0x49,
- 0x2c, 0x72, 0x00, 0xf5, 0x71, 0x0e, 0x02, 0x49, 0x62, 0xb0, 0x0f, 0x56,
- 0x99, 0xf8, 0xc3, 0xfe, 0x14, 0x80, 0x2a, 0x17, 0x92, 0x94, 0x80, 0x3d,
- 0x45, 0x90, 0x0d, 0x48, 0xe8, 0x5e, 0x4a, 0x53, 0x00, 0xf5, 0x78, 0xe8,
- 0x5e, 0x4a, 0x52, 0x00, 0xf5, 0x78, 0xe8, 0x5e, 0x4e, 0x53, 0x00, 0xf5,
- 0x7f, 0xe2, 0x3f, 0x1c, 0x22, 0xa0, 0xe4, 0x03, 0x52, 0x0e, 0x40, 0x35,
- 0x38, 0x08, 0x63, 0x21, 0x4b, 0x5a, 0xba, 0x0d, 0xa6, 0x32, 0x15, 0xeb,
- 0x56, 0xe4, 0x16, 0x98, 0xc8, 0x57, 0xad, 0x5b, 0x90, 0x5a, 0x48, 0xc8,
- 0xe4, 0xad, 0x5d, 0x07, 0xf1, 0x8f, 0xc6, 0x38, 0x51, 0x80, 0x2d, 0x6d,
- 0x84, 0x42, 0x21, 0xb9, 0xf8, 0x85, 0xb6, 0x11, 0x08, 0x86, 0xe7, 0xd8,
- 0x7a, 0xdb, 0x08, 0x84, 0xb5, 0xab, 0xc4, 0x2d, 0xb0, 0x88, 0x44, 0x37,
- 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
- 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f,
- 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
- 0xe7, 0xf8, 0x80, 0x7f, 0xe2, 0x48, 0x78, 0x00, 0x38, 0x0e, 0x01, 0x08,
- 0x71, 0x09, 0x98, 0x1c, 0x08, 0x1c, 0xa4, 0x13, 0xcf, 0x00, 0x02, 0x38,
- 0x0e, 0x01, 0x08, 0x71, 0x09, 0x9c, 0x03, 0x0f, 0xff, 0x05, 0x82, 0x59,
- 0xb4, 0x17, 0xc4, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x10, 0x4b, 0x03, 0x90,
- 0x84, 0xb9, 0x0e, 0x42, 0x12, 0xe4, 0xf0, 0x9e, 0x1f, 0x10, 0xff, 0xe0,
- 0xb1, 0x32, 0x52, 0x0f, 0x88, 0x00, 0x04, 0xc3, 0xb0, 0x60, 0x00, 0x3c,
- 0x07, 0xe0, 0x70, 0x4e, 0x3d, 0xcc, 0x38, 0x27, 0x1e, 0xe4, 0x0e, 0x13,
- 0x09, 0x72, 0x1c, 0x26, 0x12, 0xe4, 0x03, 0x0f, 0xfe, 0x81, 0x63, 0x66,
- 0xd0, 0x5f, 0x10, 0x00, 0x04, 0x00, 0x00, 0x2c, 0x41, 0x5c, 0x0e, 0x42,
- 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf, 0x0f, 0xff, 0xfc, 0x16,
- 0x26, 0x49, 0xa0, 0xbe, 0x18, 0x00, 0x81, 0x59, 0x0c, 0x00, 0x10, 0x1d,
- 0xdc, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3, 0xdc, 0x81, 0xc0, 0x47,
- 0x2e, 0xe4, 0x38, 0x08, 0xe5, 0xdc, 0xff, 0xff, 0xa0, 0x58, 0xc1, 0xb6,
- 0x82, 0xf8, 0x80, 0x00, 0x20, 0x00, 0x01, 0x62, 0x08, 0x5c, 0x0e, 0x42,
- 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf, 0x0f, 0x88, 0xff, 0xf0,
- 0x58, 0x81, 0xa1, 0x44, 0x1f, 0x0c, 0x40, 0x00, 0x40, 0x04, 0x09, 0x0c,
- 0x00, 0x08, 0x09, 0x9c, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3, 0xdc,
- 0x81, 0xc2, 0x61, 0x2e, 0x43, 0x84, 0xc2, 0x5c, 0xf8, 0xff, 0xf8, 0x2c,
- 0x89, 0x2a, 0x78, 0x60, 0x00, 0x40, 0x84, 0x82, 0xde, 0x07, 0x21, 0x1a,
- 0xe6, 0x1c, 0x84, 0x6b, 0x99, 0xe1, 0x9e, 0x09, 0x9e, 0xba, 0xeb, 0xaf,
- 0xff, 0xfe, 0x70, 0x42, 0x22, 0x00, 0x1e, 0x68, 0x08, 0x4d, 0x66, 0x30,
- 0xde, 0x66, 0x83, 0x1f, 0xef, 0x50, 0x26, 0xc8, 0x25, 0xb2, 0x95, 0x9e,
- 0x49, 0xff, 0xf7, 0xfa, 0xd8, 0xa2, 0x59, 0x58, 0xac, 0x00, 0x1e, 0x8d,
- 0x63, 0x46, 0xd6, 0xd7, 0xe4, 0xff, 0xe5, 0x00, 0x27, 0xd8, 0xe8, 0x6e,
- 0x05, 0x80, 0x2f, 0x27, 0x91, 0x1a, 0xb8, 0xe6, 0xff, 0xc0, 0x27, 0x72,
- 0x94, 0x78, 0xe1, 0x59, 0xbe, 0x68, 0xc9, 0x37, 0x90, 0x91, 0x72, 0x4b,
- 0xff, 0x7f, 0x11, 0xb9, 0x3d, 0xee, 0xff, 0xf6, 0x7f, 0xff, 0xff, 0xf7,
- 0xef, 0x96, 0xf6, 0x26, 0xdf, 0xfd, 0x83, 0xa0, 0x98, 0x9d, 0x61, 0x7a,
- 0x2c, 0x7f, 0xfd, 0xf9, 0x20, 0x00, 0x13, 0xb2, 0x64, 0x06, 0x8d, 0xa7,
- 0x6b, 0x69, 0xbb, 0x5e, 0x28, 0xe7, 0x09, 0x93, 0xff, 0xf7, 0x11, 0xd6,
- 0x0c, 0xa4, 0x60, 0xef, 0x6f, 0x01, 0x54, 0x69, 0x86, 0xcd, 0xaf, 0x8f,
- 0xc9, 0xff, 0xe8, 0x2e, 0x07, 0x84, 0xb6, 0xf0, 0x76, 0x3d, 0x2c, 0x0d,
- 0x28, 0x56, 0xbb, 0xdf, 0xb5, 0x8f, 0xff, 0x78, 0x12, 0x74, 0x68, 0x4e,
- 0xac, 0xfa, 0xee, 0xc1, 0x88, 0x05, 0x6c, 0x7d, 0x95, 0xba, 0x43, 0xf4,
- 0x46, 0xf5, 0xe1, 0x9c, 0xd1, 0x34, 0x6e, 0xd5, 0xe0, 0x51, 0xc3, 0x66,
- 0x57, 0x37, 0x6b, 0x86, 0x1e, 0x7a, 0xeb, 0xcb, 0x5a, 0xab, 0x3f, 0xf0,
- 0xc2, 0x9c, 0xeb, 0x31, 0xeb, 0x1e, 0x2b, 0xff, 0xde, 0xef, 0xf9, 0x69,
- 0x12, 0x23, 0x76, 0x94, 0x23, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c,
- 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77,
- 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x07, 0xc3, 0xe2, 0xe7,
- 0x80, 0x01, 0x7c, 0x07, 0x00, 0x20, 0x82, 0x94, 0x4c, 0xcf, 0x00, 0x02,
- 0xb8, 0x00, 0x32, 0x68, 0xd0, 0x6a, 0x84, 0x1b, 0x9c, 0x69, 0x81, 0xc1,
- 0xe0, 0x38, 0x00, 0x82, 0x0b, 0x52, 0x5b, 0x1e, 0xa0, 0x08, 0x00, 0x4c,
- 0x73, 0x98, 0x85, 0x30, 0x1b, 0xd6, 0xdf, 0xf8, 0x1c, 0x00, 0x41, 0x05,
- 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8f, 0x50, 0x04, 0x00, 0x26,
- 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x20, 0x82,
- 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7, 0xa8, 0x02, 0x00, 0x13,
- 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe, 0x07, 0x00, 0x10, 0x41,
- 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xd4, 0x01, 0x00, 0x09,
- 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x08, 0x20,
- 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xea, 0x00, 0x80, 0x04,
- 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xc0, 0x04, 0x10,
- 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78, 0xf5, 0x00, 0x40, 0x02,
- 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02, 0x08,
- 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x7a, 0x80, 0x20, 0x01,
- 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f, 0xe0, 0x70, 0x01, 0x04,
- 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e, 0x3b, 0x00, 0x40, 0x02,
- 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02, 0x08,
- 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x76, 0x00, 0x80, 0x04,
- 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xc0, 0x04, 0x10,
- 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78, 0xec, 0x01, 0x00, 0x09,
- 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x08, 0x20,
- 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xd8, 0x02, 0x00, 0x13,
- 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe, 0x07, 0x00, 0x10, 0x41,
- 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xb0, 0x04, 0x00, 0x26,
- 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x20, 0x82,
- 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7, 0xe0, 0x08, 0x00, 0x4c,
- 0x73, 0x98, 0xc7, 0x30, 0x1b, 0xd6, 0xdf, 0xff, 0x03, 0x80, 0x08, 0x20,
- 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xf8, 0x78, 0x02, 0x63,
- 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xfe, 0x18, 0x7e, 0x07, 0x00, 0x10,
- 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xf0, 0xf0, 0x04,
- 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0xff, 0xf8, 0x1c, 0x00,
- 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8e, 0xc0, 0x10,
- 0x00, 0x98, 0xe7, 0x31, 0x8e, 0x60, 0x37, 0xad, 0xbf, 0xf0, 0x38, 0x00,
- 0x82, 0x0b, 0x97, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0x1d, 0x80, 0x20,
- 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f, 0xe0, 0x70, 0x01,
- 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e, 0x3b, 0x00, 0x40,
- 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02,
- 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x75, 0x00, 0x16,
- 0x00, 0x04, 0xc8, 0x42, 0x94, 0x84, 0x29, 0x43, 0x0f, 0xe0, 0xbe, 0x07,
- 0x00, 0x43, 0x09, 0xb9, 0xf0, 0x38, 0x02, 0x18, 0x4c, 0xbe, 0x07, 0x00,
- 0x43, 0x09, 0xb8, 0x07, 0x00, 0x43, 0x09, 0x97, 0xc0, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xe1, 0x09, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfc, 0x9f,
- 0xf8, 0x99, 0x8f, 0x80, 0x08, 0x85, 0xfb, 0xb5, 0x27, 0x6f, 0xc6, 0x09,
- 0x29, 0x70, 0xc4, 0x30, 0x38, 0xaf, 0xf2, 0x0c, 0xe3, 0x29, 0x8f, 0xff,
- 0xff, 0xff, 0xfc, 0xcf, 0x81, 0xf6, 0xd1, 0x30, 0x76, 0x74, 0x54, 0x51,
- 0x72, 0x73, 0x78, 0xc2, 0x15, 0x87, 0x53, 0x3d, 0xb4, 0x97, 0x6d, 0xab,
- 0x7a, 0xe8, 0xaf, 0x7b, 0xe4, 0xd8, 0x00, 0x45, 0x1d, 0x0a, 0x27, 0xfd,
- 0xdb, 0x70, 0xd8, 0x68, 0x30, 0x1c, 0x74, 0x47, 0xcf, 0xc5, 0xfe, 0xcd,
- 0xf9, 0x0d, 0xcf, 0x92, 0xff, 0xeb, 0x42, 0xae, 0xb9, 0x90, 0x03, 0xed,
- 0x2f, 0xc2, 0x62, 0xc3, 0x8a, 0x87, 0x64, 0xa8, 0x57, 0xbe, 0x7a, 0x28,
- 0x2f, 0x02, 0x75, 0xeb, 0x7c, 0x1f, 0xe2, 0xcb, 0x0d, 0xde, 0xef, 0xee,
- 0x2b, 0xff, 0xff, 0x31, 0xa1, 0x95, 0x32, 0x0f, 0xbd, 0x33, 0xf3, 0x7e,
- 0x21, 0x26, 0x60, 0xf6, 0xf8, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0xc5, 0xa4,
- 0x71, 0x40, 0x9f, 0x0b, 0x18, 0x53, 0xc8, 0xbc, 0xe7, 0xc0, 0x33, 0xf0,
- 0x42, 0x8d, 0x56, 0x39, 0xd4, 0x58, 0x31, 0x4f, 0xe7, 0xff, 0xff, 0xfe,
- 0x62, 0xc6, 0x40, 0xff, 0xfd, 0xff, 0xff, 0xe4, 0x24, 0x1f, 0x7a, 0x67,
- 0xfc, 0xd1, 0x86, 0x18, 0x7f, 0x09, 0x40, 0x5d, 0x34, 0x0c, 0xc7, 0x95,
- 0xa8, 0x17, 0xc0, 0x11, 0x4d, 0x03, 0x31, 0xcd, 0x5a, 0x80, 0x11, 0x4d,
- 0x03, 0x31, 0x4d, 0x5a, 0xbc, 0x39, 0xfc, 0xbe, 0x3b, 0xcd, 0xe3, 0x8d,
- 0xf0, 0xfe, 0x94, 0x85, 0x0b, 0xc0, 0x71, 0x19, 0xc0, 0x92, 0xd0, 0x05,
- 0xd2, 0xa8, 0x4a, 0xbb, 0xe6, 0xfb, 0xd1, 0x40, 0x0c, 0xf4, 0xa8, 0x40,
- 0xfd, 0x8d, 0xe4, 0xd8, 0x06, 0xe0, 0x01, 0xfc, 0x3c, 0xfc, 0x00, 0x43,
- 0xf7, 0x73, 0xb4, 0xff, 0xe9, 0xb0, 0x08, 0x07, 0xfe, 0x1f, 0x80, 0x18,
- 0x97, 0x12, 0x36, 0x97, 0x6b, 0x23, 0x47, 0xf3, 0x7c, 0x23, 0xff, 0x0f,
- 0xa8, 0x03, 0x19, 0xda, 0x34, 0xbb, 0x5f, 0x7e, 0x36, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0x84, 0x24, 0x57, 0x21, 0xa0, 0x07, 0x4e, 0xd6, 0x80,
- 0x63, 0x06, 0xb9, 0xbf, 0x36, 0x9f, 0x48, 0xa7, 0xc2, 0x68, 0x16, 0x00,
- 0x24, 0xdd, 0x3b, 0xf2, 0x27, 0xee, 0x78, 0x5a, 0x1c, 0xd3, 0xcb, 0x1c,
- 0x5e, 0x9f, 0xe0, 0x00, 0xfb, 0x4e, 0xfd, 0x4b, 0x5f, 0xfa, 0xc0, 0xf9,
- 0xff, 0xfa, 0xf7, 0xe3, 0x3f, 0x03, 0xef, 0x3c, 0x4d, 0x7f, 0xdf, 0x8d,
- 0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff,
- 0xff, 0xf3, 0x7f, 0x94, 0x21, 0xc6, 0x5a, 0x3e, 0x5f, 0x0a, 0x40, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81, 0x60, 0x67, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0xef, 0x31, 0xf0, 0x87, 0x8e, 0xf0,
- 0x76, 0x59, 0x5e, 0x02, 0x3f, 0xba, 0xdf, 0xeb, 0xc5, 0x77, 0xfe, 0x61,
- 0x58, 0x76, 0x7f, 0xbf, 0xff, 0xef, 0xc3, 0x01, 0xe1, 0x04, 0x51, 0x7a,
- 0xa8, 0xc6, 0x20, 0x1f, 0x6c, 0x38, 0x4d, 0xba, 0x87, 0xd1, 0x80, 0x6d,
- 0x43, 0x60, 0x1d, 0xea, 0xf7, 0xd4, 0x4a, 0x34, 0x43, 0x34, 0x26, 0x00,
- 0x1b, 0x6f, 0x42, 0x8d, 0xff, 0x76, 0xcc, 0x26, 0x3d, 0x40, 0xbc, 0x38,
- 0x0e, 0x4b, 0xc5, 0x5b, 0x0a, 0x8d, 0x96, 0x7f, 0x73, 0x83, 0xe9, 0x14,
- 0xb4, 0x30, 0x03, 0xfe, 0xff, 0x84, 0xc5, 0x8e, 0x04, 0x8c, 0x1e, 0x9f,
- 0x16, 0xea, 0xf9, 0x6d, 0x30, 0x22, 0x22, 0x97, 0xff, 0xea, 0xf9, 0x1a,
- 0x80, 0xd0, 0xff, 0x5b, 0xe9, 0xdf, 0xc0, 0xe2, 0xbf, 0xef, 0xfa, 0xc6,
- 0x2e, 0x04, 0x4d, 0xee, 0x3c, 0x26, 0xb8, 0x01, 0xb1, 0x32, 0x1c, 0x43,
- 0x3d, 0xeb, 0xcf, 0xe1, 0x6d, 0xe0, 0x7b, 0xec, 0xf0, 0x25, 0x63, 0xb0,
- 0xda, 0xce, 0x5d, 0xe1, 0x70, 0x7f, 0xec, 0xc3, 0xb8, 0x78, 0x81, 0x11,
- 0x9d, 0x70, 0x3f, 0x83, 0x2f, 0xbb, 0xa3, 0xb1, 0xff, 0xfd, 0xfe, 0xff,
- 0xef, 0xf9, 0x38, 0x1f, 0x04, 0x20, 0x09, 0xb7, 0xf3, 0xfe, 0x3e, 0x91,
- 0x6c, 0xa4, 0x13, 0xe2, 0x9e, 0x02, 0x6d, 0x77, 0x57, 0x30, 0xd9, 0x82,
- 0xa6, 0x71, 0x52, 0xda, 0x68, 0xd8, 0x03, 0x08, 0xbf, 0x79, 0xe8, 0x26,
- 0x90, 0x65, 0x0f, 0xa4, 0x19, 0xfa, 0x42, 0x44, 0x07, 0x06, 0x7c, 0xb8,
- 0xec, 0xd8, 0xe5, 0xe1, 0x8f, 0xfe, 0xfb, 0xbc, 0x2a, 0x5c, 0x00, 0x33,
- 0x6f, 0xf9, 0x5f, 0x22, 0x46, 0x91, 0x3c, 0x38, 0xd3, 0xb3, 0xb5, 0x19,
- 0x80, 0xc4, 0x40, 0x33, 0xbf, 0xfd, 0x7b, 0xe4, 0x31, 0xff, 0x1d, 0xc7,
- 0x8c, 0xf0, 0x00, 0xc4, 0xcf, 0xbd, 0x08, 0xb5, 0x80, 0x01, 0x91, 0x7d,
- 0xf4, 0x21, 0x65, 0x5d, 0xba, 0x57, 0x5d, 0xbc, 0xbb, 0xfe, 0x05, 0x0c,
- 0x61, 0x7b, 0xfe, 0xef, 0x9e, 0x09, 0x7e, 0x18, 0xdd, 0xc8, 0x1c, 0x07,
- 0xfc, 0x25, 0xd8, 0x2e, 0x99, 0x73, 0x09, 0x5e, 0x9f, 0xff, 0x40, 0x0c,
- 0x8b, 0xba, 0xff, 0xfa, 0x83, 0x2a, 0xb3, 0x46, 0x92, 0xed, 0x07, 0xef,
- 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2, 0x05, 0x86, 0x9e, 0x43,
- 0x40, 0x11, 0xd1, 0x19, 0xa6, 0xfc, 0xff, 0x2e, 0xf1, 0x8b, 0x92, 0x65,
- 0x0f, 0x43, 0xe5, 0xfd, 0xe3, 0x7a, 0xfb, 0xc3, 0xa8, 0x15, 0x7c, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f,
- 0xff, 0xff, 0x37, 0x7f, 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xe2, 0x11, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x95, 0x70, 0xc2, 0x1b,
- 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xaf,
- 0xff, 0x98, 0x4f, 0x00, 0xb1, 0xcf, 0x23, 0x34, 0xd6, 0x26, 0x22, 0x2f,
- 0x81, 0x61, 0xad, 0xb1, 0xbe, 0xcb, 0xf3, 0xdf, 0x80, 0x13, 0x21, 0xad,
- 0xa8, 0x99, 0xdc, 0xf0, 0x0b, 0xbd, 0x89, 0x22, 0xad, 0x6c, 0xf7, 0xa7,
- 0x89, 0x8a, 0xff, 0xff, 0xcc, 0x10, 0xc3, 0xb3, 0xfd, 0xff, 0xf2, 0x97,
- 0x87, 0xa1, 0xb9, 0x7f, 0xf2, 0x7e, 0x19, 0x04, 0x18, 0xc8, 0xa4, 0x00,
- 0x3b, 0xd9, 0x32, 0x1a, 0x3a, 0x6a, 0xf5, 0xff, 0x50, 0xb1, 0x19, 0x8e,
- 0x9e, 0x11, 0x17, 0x5d, 0xf1, 0xef, 0xfe, 0x40, 0x05, 0x14, 0x4c, 0xa3,
- 0x74, 0xf7, 0x63, 0x59, 0xb0, 0x1d, 0xed, 0x10, 0x34, 0x3d, 0x7d, 0x65,
- 0xd2, 0x06, 0xa6, 0x30, 0x69, 0xc0, 0x1e, 0x36, 0x98, 0x5a, 0x9b, 0x65,
- 0xe8, 0xce, 0xf3, 0xff, 0xc5, 0xa3, 0x97, 0x24, 0x0d, 0x55, 0xe1, 0x9c,
- 0xe6, 0x71, 0x49, 0x5e, 0xfc, 0x60, 0x00, 0x0c, 0xc9, 0x24, 0xdb, 0xfe,
- 0x18, 0x36, 0xd8, 0xdc, 0xff, 0xfb, 0xbf, 0xe0, 0x04, 0x3b, 0x64, 0x62,
- 0x59, 0x3d, 0xe8, 0x3d, 0x26, 0x3c, 0x8f, 0x8d, 0xa9, 0x83, 0x39, 0xdb,
- 0x89, 0x25, 0xdd, 0xf0, 0xe6, 0xff, 0x09, 0x7e, 0x08, 0x04, 0x81, 0x44,
- 0x5c, 0x4a, 0x63, 0xe8, 0x8f, 0xff, 0xfc, 0x0a, 0x8a, 0x22, 0x31, 0xd2,
- 0x65, 0xaf, 0xf7, 0x8a, 0xff, 0xff, 0xff, 0x9b, 0xf1, 0x52, 0x26, 0x27,
- 0x75, 0x5b, 0x27, 0x84, 0xcf, 0xb5, 0xe0, 0x80, 0xc3, 0x1c, 0xd4, 0xe1,
- 0x2f, 0xa3, 0xff, 0x9f, 0x00, 0x8a, 0x2b, 0xd8, 0x07, 0xc6, 0x63, 0x7f,
- 0x5f, 0x00, 0xb0, 0x8c, 0x99, 0x4e, 0x7e, 0xa5, 0x95, 0xc8, 0x1a, 0x98,
- 0xcb, 0xf9, 0xf7, 0x76, 0xc8, 0x5e, 0x3f, 0x17, 0x1a, 0x1f, 0xe7, 0xd5,
- 0x62, 0x5a, 0x90, 0x4d, 0xee, 0x73, 0x71, 0xe8, 0x3c, 0x7f, 0xff, 0xff,
- 0xff, 0xbf, 0xff, 0xff, 0xf9, 0x82, 0x0b, 0x81, 0x7f, 0xc2, 0x51, 0xdd,
- 0x9a, 0x87, 0x1e, 0x63, 0xe2, 0xd9, 0xd6, 0x2d, 0xf8, 0xce, 0x16, 0xb0,
- 0xab, 0x08, 0xef, 0x47, 0x16, 0x2f, 0x33, 0xcb, 0x57, 0x26, 0x8c, 0x53,
- 0x75, 0x26, 0x4f, 0xd2, 0x64, 0xe7, 0x80, 0x19, 0xf9, 0x4b, 0x80, 0x07,
- 0xfc, 0xa7, 0x7c, 0x00, 0xf0, 0x6d, 0xf0, 0x0d, 0x7f, 0x74, 0xed, 0x42,
- 0xf7, 0x84, 0x2c, 0x0f, 0xe5, 0xe3, 0x8d, 0xf6, 0xb7, 0xc2, 0x50, 0xa6,
- 0x00, 0x2e, 0x61, 0xcb, 0xaa, 0x48, 0xb8, 0xf7, 0xff, 0xe4, 0x37, 0x03,
- 0x31, 0x24, 0x15, 0xa3, 0x8b, 0xb8, 0x80, 0xd8, 0x53, 0xc8, 0xe1, 0xe5,
- 0xc9, 0xff, 0xa0, 0xb3, 0x57, 0x55, 0xaf, 0xc3, 0x84, 0x98, 0x2a, 0x65,
- 0xc3, 0xfc, 0x1f, 0x80, 0xb0, 0x7d, 0x92, 0x5c, 0x7b, 0xfa, 0x35, 0x7a,
- 0xd7, 0x9f, 0xff, 0xa2, 0xe1, 0xfe, 0x09, 0xb1, 0x3f, 0xf5, 0x50, 0xc1,
- 0x3a, 0xf8, 0x04, 0x8d, 0x3e, 0x5a, 0x6e, 0x74, 0x31, 0x9b, 0xf5, 0xf7,
- 0xf8, 0x05, 0x1f, 0x78, 0x1a, 0x88, 0x86, 0xce, 0xbb, 0x58, 0xf8, 0xbf,
- 0xe6, 0xf8, 0x7a, 0xaf, 0xc1, 0x02, 0xf8, 0x03, 0xf2, 0xa8, 0xee, 0xe0,
- 0x03, 0xfb, 0xab, 0xe4, 0x7b, 0xe6, 0xfc, 0x71, 0xbe, 0x1f, 0xd2, 0x90,
- 0x42, 0xe0, 0x01, 0xc9, 0x14, 0x90, 0x95, 0xf7, 0xc4, 0xfd, 0xe8, 0x2e,
- 0x81, 0xcf, 0x69, 0xc9, 0x46, 0x7d, 0xdf, 0x48, 0x98, 0x9c, 0x47, 0x9a,
- 0x3a, 0xbf, 0xff, 0x0f, 0x98, 0x00, 0xf2, 0x95, 0x5d, 0x23, 0x73, 0x83,
- 0xf1, 0x23, 0x47, 0xd6, 0xb7, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0x88, 0x44, 0x15, 0x7f, 0xcb, 0xef, 0xc6, 0x72, 0x08, 0x04,
- 0x8d, 0x3f, 0xe7, 0xfe, 0xf9, 0xb0, 0x9f, 0x03, 0xf9, 0x7f, 0xdf, 0x8d,
- 0xff, 0x70, 0xf5, 0xff, 0xff, 0xef, 0x09, 0x58, 0x08, 0xaf, 0x2f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xe6,
- 0x11, 0x87, 0x90, 0xdc, 0x1f, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xa8, 0xc3, 0x60, 0x21, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0xbf, 0xfa, 0xfd, 0xf9, 0x04, 0xcb, 0x16, 0x7c, 0x11, 0xb4, 0x77,
- 0xd5, 0xf9, 0x90, 0x18, 0xc6, 0x84, 0x62, 0xbf, 0xef, 0xff, 0xfd, 0xf8,
- 0x60, 0xc1, 0xac, 0xfb, 0xc6, 0x82, 0xab, 0x62, 0x00, 0x55, 0xaf, 0x9b,
- 0xb3, 0xff, 0x9d, 0x19, 0x2b, 0x71, 0x80, 0x3f, 0x1e, 0x9f, 0xe9, 0xa3,
- 0xd8, 0x19, 0xa9, 0xc1, 0xd5, 0xd3, 0xb0, 0x1d, 0x7e, 0x2c, 0x7f, 0xce,
- 0xff, 0x9a, 0xe0, 0xe5, 0x82, 0x3a, 0x03, 0xa6, 0xb9, 0xb1, 0x3e, 0x49,
- 0xdc, 0xd5, 0x12, 0xc4, 0xc6, 0x5d, 0x0f, 0x9c, 0xbc, 0x29, 0x98, 0xd2,
- 0x42, 0xb9, 0x3c, 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0x00, 0x68, 0xf9, 0xa4,
- 0x59, 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3d, 0x5a, 0x96, 0x1e, 0xad,
- 0x26, 0x0a, 0xc5, 0x14, 0x04, 0x82, 0x99, 0x78, 0x09, 0x19, 0xce, 0xa7,
- 0x94, 0x5f, 0x11, 0x48, 0xe1, 0xb5, 0xb4, 0x9b, 0xf3, 0xc7, 0x2e, 0xad,
- 0x80, 0x6b, 0x21, 0xf9, 0xff, 0xff, 0xef, 0xff, 0xf8, 0x62, 0xa8, 0x21,
- 0x71, 0xff, 0x84, 0x99, 0x94, 0x49, 0x1b, 0x55, 0xe0, 0x66, 0x26, 0xf9,
- 0x07, 0xf7, 0x78, 0xf7, 0x4a, 0x58, 0xc7, 0x27, 0x0f, 0x07, 0x6f, 0x99,
- 0xa9, 0x57, 0xca, 0xc6, 0x77, 0xca, 0x5f, 0xfc, 0x00, 0xce, 0xb9, 0x5f,
- 0x1c, 0xb3, 0x16, 0x00, 0x1b, 0x2f, 0xbc, 0xec, 0x1d, 0x09, 0x93, 0xc0,
- 0x00, 0xf6, 0x18, 0xff, 0x11, 0x0a, 0xc3, 0x0a, 0xf1, 0x34, 0x07, 0x44,
- 0x56, 0xbc, 0xd0, 0xf0, 0x09, 0x5b, 0xef, 0x68, 0x63, 0xff, 0x8e, 0xa3,
- 0x0a, 0xf1, 0xee, 0xf9, 0x60, 0xf0, 0x1e, 0x65, 0x84, 0x0d, 0x38, 0x0f,
- 0x23, 0x8e, 0xde, 0x94, 0x8f, 0xae, 0xf1, 0xc1, 0x8f, 0x87, 0xf4, 0x84,
- 0x29, 0xaf, 0x00, 0x12, 0x55, 0x13, 0x6b, 0x45, 0xf7, 0xa1, 0x21, 0xd5,
- 0x49, 0x93, 0xf7, 0xcb, 0xd0, 0xdc, 0x4a, 0xc3, 0x5f, 0x51, 0x82, 0x04,
- 0x00, 0x4a, 0xd0, 0x51, 0xb6, 0x1e, 0xf5, 0x2d, 0xf8, 0x3d, 0x6e, 0x58,
- 0x41, 0xfd, 0xf8, 0xfd, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xa3, 0x0d, 0x84, 0xbe, 0x5d, 0xe3, 0x1f, 0xed, 0xfe, 0xf1, 0xbd, 0xfb,
- 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8,
- 0x43, 0xff, 0xff, 0xf9, 0xbb, 0xfc, 0xb8, 0x52, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x21, 0xe3, 0x19, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99,
- 0x8f, 0x81, 0x2e, 0xf0, 0x3c, 0xf4, 0x87, 0xe7, 0xfa, 0x9f, 0x98, 0x44,
- 0xa5, 0x2f, 0x49, 0xcb, 0x5f, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0xe5, 0x20, 0xa1, 0x81, 0x87, 0xce, 0x5c, 0xbb, 0x53, 0x23, 0x5e, 0x7b,
- 0x2f, 0x78, 0xd5, 0x1f, 0x35, 0x21, 0x73, 0x00, 0x36, 0x9a, 0x0f, 0x90,
- 0xb9, 0x97, 0xbe, 0xfd, 0xce, 0xf6, 0x3e, 0x6d, 0x3e, 0x17, 0xfc, 0x26,
- 0x25, 0xf4, 0x0d, 0x80, 0x05, 0x97, 0xaa, 0xf9, 0x84, 0xc2, 0xff, 0xc1,
- 0x6f, 0x67, 0xbd, 0x00, 0x28, 0x5e, 0xd5, 0x39, 0xdf, 0xd5, 0x15, 0xff,
- 0xff, 0xff, 0x37, 0xe2, 0x0c, 0xa8, 0x4a, 0x96, 0xb3, 0x70, 0x05, 0x1d,
- 0x10, 0xea, 0x3f, 0x36, 0xc1, 0xd5, 0xbf, 0x3c, 0x05, 0x52, 0x72, 0x7e,
- 0x14, 0x68, 0x02, 0x68, 0x4a, 0x32, 0xee, 0xac, 0x58, 0x1e, 0xb8, 0x36,
- 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07, 0xaf, 0x13,
- 0x2a, 0x0b, 0x76, 0xf7, 0x1c, 0xdf, 0xff, 0x91, 0x41, 0x09, 0xe0, 0x04,
- 0x46, 0xd8, 0x48, 0x57, 0x63, 0xfd, 0xe0, 0x03, 0xd4, 0xbe, 0x03, 0xf7,
- 0x98, 0xfb, 0xff, 0x07, 0xff, 0xfe, 0xe7, 0x97, 0xf1, 0xcf, 0xa6, 0x08,
- 0x63, 0xe7, 0x8f, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xe2, 0x08, 0x46, 0xf7,
- 0xe6, 0xe1, 0x6c, 0x10, 0x68, 0xd2, 0xe0, 0x0e, 0xc2, 0x11, 0xff, 0xce,
- 0x69, 0x5a, 0x45, 0x22, 0x6f, 0xc4, 0x96, 0x00, 0xf5, 0x2f, 0x80, 0xfd,
- 0xe6, 0x00, 0xb9, 0x2a, 0xe9, 0xee, 0x9f, 0xa9, 0xbd, 0xfe, 0x3f, 0xff,
- 0xb8, 0x18, 0x70, 0x02, 0xe3, 0xb7, 0x4c, 0x8a, 0xaf, 0x55, 0x06, 0x33,
- 0xbf, 0xfe, 0xf7, 0xfb, 0xfc, 0xc2, 0x93, 0xd3, 0xe6, 0x13, 0x82, 0x7f,
- 0x80, 0x36, 0x7e, 0xa5, 0xfe, 0x07, 0xa0, 0x60, 0x48, 0xf4, 0x3b, 0xdb,
- 0xff, 0x00, 0x73, 0x72, 0xcf, 0x48, 0x9e, 0x3b, 0x9b, 0x09, 0xf1, 0x2c,
- 0xfc, 0x0f, 0x98, 0x88, 0x9c, 0xc9, 0x34, 0x87, 0x3c, 0x27, 0x8b, 0x18,
- 0x02, 0x57, 0xa9, 0x7f, 0x81, 0xff, 0x87, 0x11, 0x6e, 0xff, 0x00, 0x73,
- 0x75, 0x9e, 0x97, 0xbf, 0x1d, 0xec, 0x29, 0x12, 0x00, 0x10, 0xbd, 0xdd,
- 0xdf, 0x7f, 0xe0, 0x00, 0x7e, 0xb7, 0x28, 0x75, 0xd7, 0xe7, 0xff, 0xdf,
- 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64, 0x25, 0xff,
- 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53,
- 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
- 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60, 0x25, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfe, 0x63, 0xe0,
- 0x91, 0xe9, 0xe0, 0x4d, 0xf5, 0x6d, 0x72, 0xc5, 0x7f, 0xff, 0xff, 0xf7,
- 0x8a, 0x10, 0x04, 0x60, 0xe7, 0x22, 0x43, 0xba, 0x01, 0x2f, 0x00, 0x6f,
- 0x14, 0xa3, 0xc0, 0x1d, 0x7c, 0x80, 0x24, 0x1a, 0x1d, 0x20, 0x67, 0xec,
- 0x8f, 0x54, 0x8a, 0x7b, 0x07, 0xee, 0x45, 0x20, 0xe0, 0x70, 0xc4, 0x8b,
- 0xeb, 0x7f, 0xc2, 0x62, 0x40, 0xc1, 0x00, 0x12, 0x08, 0x8e, 0x86, 0x4b,
- 0x07, 0xe5, 0xcc, 0x65, 0x64, 0xef, 0x5e, 0x19, 0xb6, 0x92, 0xa5, 0xda,
- 0xf1, 0x5f, 0xff, 0xc3, 0x1c, 0x7a, 0x83, 0x8c, 0xd9, 0xb6, 0x6c, 0x02,
- 0x3d, 0x7d, 0xb0, 0xf6, 0x74, 0xb7, 0x84, 0xbc, 0xbc, 0xb2, 0x6e, 0xd6,
- 0x83, 0xe4, 0xdf, 0xf4, 0x80, 0xf3, 0xd7, 0xfe, 0x1d, 0x6a, 0x42, 0xfe,
- 0xff, 0x54, 0x8a, 0x83, 0x98, 0x71, 0xa3, 0xe7, 0x5e, 0xbf, 0xff, 0xbf,
- 0xff, 0xe1, 0x8b, 0x53, 0x6f, 0xfc, 0x24, 0x78, 0x06, 0x3a, 0xb4, 0xff,
- 0x20, 0x26, 0xb4, 0x36, 0x54, 0x0d, 0xb5, 0x0b, 0x78, 0x26, 0x27, 0x1f,
- 0x03, 0x9c, 0x31, 0x2b, 0x15, 0x40, 0x89, 0xb3, 0xed, 0x40, 0x19, 0x1f,
- 0xab, 0x1f, 0xf3, 0x5c, 0x2e, 0xa8, 0xf3, 0x30, 0x08, 0x3f, 0xe9, 0xf4,
- 0xaf, 0x83, 0xa6, 0x60, 0x07, 0xcf, 0xe4, 0x8d, 0xb8, 0xa4, 0x1b, 0x7b,
- 0xfe, 0x6f, 0xfb, 0xff, 0x02, 0x0f, 0xa3, 0xbd, 0x2f, 0xc3, 0x1f, 0xe7,
- 0x53, 0xf8, 0x20, 0x2d, 0x95, 0xde, 0x64, 0x5f, 0xa9, 0x5a, 0x14, 0x1f,
- 0x80, 0x49, 0x8e, 0x7d, 0x06, 0x27, 0xac, 0x4f, 0xfe, 0x1f, 0x40, 0x0b,
- 0x7e, 0xd6, 0x04, 0x3a, 0x7f, 0x80, 0x77, 0xde, 0x3d, 0xdc, 0x31, 0xfe,
- 0x67, 0x3d, 0x70, 0xaa, 0x02, 0x1d, 0x40, 0x6b, 0xbc, 0xff, 0x02, 0x5f,
- 0x40, 0x7e, 0xf6, 0x74, 0x58, 0x1f, 0x85, 0xde, 0x3b, 0x6e, 0x24, 0x85,
- 0xc0, 0x0c, 0xda, 0xbf, 0x9f, 0xff, 0xf1, 0x7d, 0xe3, 0x60, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x82, 0x2f, 0x97, 0x78, 0xcf, 0xbf,
- 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
- 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x1b,
- 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
- 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
- 0x80, 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x01, 0xaf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xae, 0x62, 0xf0, 0x47, 0xbe, 0xd8, 0x89, 0x56, 0x46, 0xfc, 0xf2, 0x21,
- 0xee, 0x79, 0x62, 0x7f, 0xfc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x51, 0x22,
- 0x5e, 0xed, 0xd5, 0x98, 0xf7, 0x68, 0x89, 0x9a, 0x0f, 0x7e, 0x67, 0x82,
- 0xa5, 0xa8, 0xea, 0xe0, 0xe2, 0x97, 0x5c, 0xa6, 0x3a, 0xe1, 0xd8, 0x92,
- 0xaa, 0x85, 0x49, 0xb9, 0x74, 0x61, 0xcf, 0x5e, 0x73, 0x77, 0x53, 0xee,
- 0xb7, 0x13, 0xa9, 0xd9, 0x7a, 0x2c, 0x13, 0x7f, 0xfb, 0x7c, 0xde, 0xc6,
- 0x11, 0x12, 0xa2, 0x56, 0x31, 0x9d, 0x20, 0x2f, 0x0a, 0xed, 0x32, 0xed,
- 0x50, 0x03, 0x3e, 0xfc, 0xae, 0x7e, 0xfa, 0x3e, 0xee, 0x78, 0xec, 0x77,
- 0x98, 0xd3, 0x67, 0xd9, 0x9c, 0x91, 0x4c, 0x6d, 0x23, 0x56, 0x6f, 0x52,
- 0xe1, 0xa7, 0x48, 0x90, 0x01, 0x1c, 0x81, 0xdb, 0xa6, 0x8f, 0x52, 0x45,
- 0xcb, 0x65, 0xfb, 0x3c, 0x21, 0x71, 0x02, 0xe2, 0x9a, 0x5a, 0x64, 0xfe,
- 0xd2, 0xfc, 0x26, 0x57, 0x86, 0x66, 0x67, 0xcf, 0x8a, 0xff, 0xfe, 0x4f,
- 0xfc, 0x22, 0x41, 0x6a, 0x1d, 0x5d, 0x4f, 0x30, 0x0d, 0xe8, 0x0d, 0x49,
- 0x39, 0x3a, 0x61, 0x52, 0x73, 0x96, 0xc9, 0xff, 0x13, 0x28, 0xb7, 0x8f,
- 0x47, 0x60, 0xfd, 0xda, 0xd7, 0x82, 0x00, 0xc2, 0xaa, 0x75, 0x30, 0x2b,
- 0xbf, 0xb4, 0xdf, 0x88, 0x91, 0x05, 0x53, 0xb5, 0xc0, 0x9b, 0xf4, 0xce,
- 0xd3, 0x51, 0xb0, 0xeb, 0x15, 0xb3, 0xe5, 0x4c, 0x38, 0x53, 0x12, 0x77,
- 0x2d, 0xb7, 0xb2, 0xec, 0x5c, 0xff, 0x27, 0xf8, 0x18, 0x40, 0xc0, 0x06,
- 0x10, 0x3e, 0x08, 0x7c, 0x0b, 0x0e, 0x42, 0x84, 0x12, 0x03, 0x94, 0x81,
- 0xe0, 0x18, 0x1e, 0x00, 0x73, 0x38, 0xee, 0x3f, 0xfc, 0x24, 0xc1, 0xe8,
- 0xd9, 0xea, 0x10, 0xef, 0xef, 0xb7, 0xff, 0x7d, 0x7f, 0xdf, 0xff, 0xf7,
- 0x88, 0x10, 0x20, 0x90, 0xdf, 0xa1, 0x13, 0xdd, 0x1e, 0x11, 0x80, 0xd2,
- 0x4c, 0xf2, 0x9a, 0x35, 0x03, 0xee, 0x18, 0x13, 0x10, 0xf0, 0x3a, 0x68,
- 0x2f, 0x3b, 0xa4, 0x6f, 0x60, 0x71, 0xa6, 0x73, 0xed, 0x22, 0xfa, 0x73,
- 0xcf, 0x01, 0x76, 0x49, 0x33, 0xfc, 0x4c, 0x4e, 0x23, 0xbf, 0x1d, 0xec,
- 0x29, 0x20, 0x00, 0x46, 0x6a, 0xfa, 0xbb, 0xff, 0xf8, 0x36, 0x77, 0x3e,
- 0xfd, 0x78, 0xcf, 0x9b, 0xf8, 0x7f, 0xc2, 0x84, 0x84, 0x24, 0xfe, 0x7e,
- 0x11, 0xf7, 0x0d, 0x34, 0x52, 0x76, 0xc2, 0x06, 0x0d, 0xb4, 0x31, 0xfe,
- 0x69, 0x05, 0xee, 0x8b, 0x18, 0x3b, 0xc2, 0xff, 0x3c, 0x8e, 0xd6, 0xc2,
- 0x3c, 0x67, 0x1c, 0xcc, 0x26, 0xe1, 0xc0, 0x3c, 0x16, 0x2d, 0x86, 0x95,
- 0x7e, 0x03, 0xa6, 0x0e, 0x5b, 0x18, 0x18, 0xa7, 0x2c, 0x6b, 0xdc, 0x37,
- 0x01, 0xe6, 0xd1, 0x00, 0xe7, 0x29, 0xc2, 0x36, 0x81, 0x5f, 0x2d, 0x15,
- 0x10, 0x28, 0xf7, 0x21, 0xb6, 0x8f, 0xa9, 0xd3, 0x9e, 0x9c, 0x20, 0x7f,
- 0x49, 0xb0, 0xa7, 0xa4, 0x9a, 0x7b, 0x70, 0x69, 0x34, 0x1d, 0xec, 0xd3,
- 0xdf, 0x06, 0x5d, 0x37, 0xec, 0x74, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0x90, 0x84, 0x04, 0x17, 0xf9, 0x04, 0x43, 0xec, 0xb7, 0xf6, 0xd5, 0x5b,
- 0x96, 0x55, 0x6e, 0x5b, 0xfc, 0x44, 0x0d, 0x5b, 0x96, 0x55, 0x6e, 0x5b,
- 0xd5, 0x5b, 0x96, 0xff, 0xe2, 0x10, 0x34, 0x9a, 0x0a, 0x83, 0x3c, 0x35,
- 0x1c, 0x9d, 0x01, 0x77, 0x96, 0xf6, 0x99, 0xfb, 0x2c, 0x10, 0xb7, 0x8f,
- 0xf7, 0xe3, 0x3c, 0x9f, 0xf6, 0x6a, 0xc1, 0xc6, 0xcd, 0x8f, 0xd8, 0xa0,
- 0xe0, 0xa7, 0xa6, 0xea, 0xd5, 0x4b, 0x0e, 0x63, 0x5e, 0x03, 0x47, 0xf8,
- 0x8d, 0x0d, 0x9f, 0x38, 0x35, 0x81, 0x22, 0xfd, 0x31, 0x78, 0x80, 0xe0,
- 0xe5, 0x72, 0x61, 0x00, 0x15, 0x2f, 0xdf, 0xa5, 0x29, 0x9b, 0xb3, 0xf9,
- 0x85, 0x42, 0x2f, 0x66, 0xc7, 0xee, 0x97, 0xfb, 0x99, 0xbd, 0x1b, 0xf8,
- 0x3c, 0x0a, 0x3b, 0x84, 0x6d, 0xa0, 0x39, 0xaa, 0xb0, 0x24, 0x67, 0x4c,
- 0x86, 0xca, 0x89, 0x67, 0x06, 0x04, 0x00, 0xab, 0x5e, 0xb1, 0x2d, 0x33,
- 0x76, 0x7f, 0x35, 0x43, 0x1b, 0x36, 0x3f, 0x73, 0x5f, 0xfb, 0x83, 0x7a,
- 0x37, 0xe8, 0xc7, 0x80, 0xd1, 0xf7, 0x08, 0xd1, 0x13, 0x9a, 0x9c, 0xce,
- 0x29, 0x17, 0xca, 0x60, 0x6c, 0xa8, 0x96, 0x6d, 0x64, 0x08, 0x01, 0x56,
- 0xbd, 0x62, 0x5a, 0x66, 0xec, 0xfe, 0x61, 0x50, 0xa8, 0xed, 0x8e, 0x9b,
- 0xa5, 0xfe, 0xe6, 0x6f, 0x46, 0xfe, 0x0f, 0x09, 0x5d, 0xa0, 0x82, 0x4c,
- 0x4d, 0x0b, 0x2e, 0x8c, 0xb6, 0x60, 0x36, 0x54, 0x4b, 0x38, 0x30, 0xf0,
- 0xa7, 0xa0, 0xa3, 0x2c, 0xc8, 0xd2, 0x7f, 0x30, 0x28, 0x83, 0xbf, 0xd0,
- 0xa9, 0xb9, 0xa0, 0xc7, 0x84, 0xb1, 0x0a, 0xf8, 0x43, 0x38, 0x4c, 0xfa,
- 0x10, 0x6d, 0x1b, 0xb4, 0x33, 0x26, 0x75, 0x0f, 0x46, 0x1b, 0xa6, 0x78,
- 0x28, 0xa1, 0x2f, 0x23, 0xb1, 0x77, 0x79, 0x74, 0xbe, 0x69, 0xa0, 0x47,
- 0xe6, 0x54, 0xde, 0xa0, 0xe7, 0x8a, 0x84, 0x28, 0x6d, 0x38, 0x8c, 0xf0,
- 0x95, 0xda, 0x08, 0x24, 0xc1, 0x32, 0x16, 0x5d, 0x19, 0xe8, 0xc7, 0xca,
- 0x30, 0x4c, 0x2a, 0x53, 0xf8, 0x13, 0xb1, 0x77, 0x7e, 0x04, 0xfe, 0x60,
- 0x51, 0x07, 0x7f, 0xa2, 0x7b, 0x9a, 0x0c, 0x78, 0x4b, 0x10, 0xa7, 0x84,
- 0x33, 0x84, 0xcf, 0xa1, 0x06, 0xc6, 0x0f, 0xed, 0x55, 0x4c, 0xea, 0x6d,
- 0xc3, 0x74, 0xcf, 0x05, 0x14, 0x25, 0xe5, 0x69, 0x71, 0xfa, 0x93, 0xc7,
- 0x42, 0x69, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c, 0x4d, 0x16, 0x45,
- 0x5d, 0xef, 0x3c, 0x61, 0x2b, 0xb4, 0x10, 0x46, 0x8e, 0xd9, 0x55, 0xc7,
- 0x47, 0xd6, 0xa1, 0x30, 0x0e, 0xa9, 0xa6, 0x74, 0x5c, 0x06, 0xef, 0x25,
- 0x94, 0xa6, 0x13, 0x60, 0x1f, 0x3f, 0x1d, 0xea, 0x0e, 0x78, 0x9a, 0x2c,
- 0x88, 0xdd, 0xef, 0x3c, 0x61, 0x2b, 0xb4, 0x10, 0x46, 0x8e, 0xd9, 0x55,
- 0xc7, 0x47, 0xd6, 0xa1, 0x30, 0x0e, 0xab, 0x4c, 0xde, 0xa3, 0x81, 0xbb,
- 0x25, 0x9a, 0x53, 0x09, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c, 0x4d,
- 0x16, 0x44, 0x6e, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47, 0x6c,
- 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x55, 0xa6, 0x6f, 0x51, 0xc0,
- 0xdd, 0x92, 0xcd, 0x29, 0x84, 0xe8, 0xaa, 0x1f, 0xe5, 0x79, 0x5d, 0x8e,
- 0x56, 0x86, 0x9d, 0xc4, 0x90, 0xcb, 0x1e, 0x40, 0x67, 0xfe, 0xd0, 0xb9,
- 0xa3, 0xad, 0x8a, 0x37, 0xee, 0xc9, 0x4a, 0x4c, 0x2d, 0x4c, 0xff, 0x24,
- 0x00, 0x31, 0x55, 0xa5, 0x26, 0x9d, 0x05, 0xc2, 0xc0, 0x1e, 0xd7, 0x85,
- 0xde, 0x3a, 0xd8, 0x53, 0xb6, 0xe3, 0x5a, 0xde, 0x42, 0x7e, 0xd0, 0xaa,
- 0xe1, 0xbf, 0xb6, 0x20, 0x9c, 0x7d, 0x18, 0x17, 0x97, 0xbf, 0x1b, 0xa9,
- 0xe0, 0xbe, 0x48, 0x00, 0x62, 0xa5, 0xa5, 0x26, 0x9d, 0x05, 0xc2, 0xc0,
- 0x1e, 0x57, 0x85, 0xde, 0x3a, 0xd8, 0x53, 0xba, 0xc6, 0xb5, 0xbc, 0x84,
- 0xfd, 0xa1, 0x55, 0xc3, 0x7f, 0x6c, 0x41, 0x38, 0xfa, 0x30, 0x5c, 0xab,
- 0xfe, 0xea, 0x7b, 0xf9, 0x20, 0x01, 0x8a, 0xa6, 0x94, 0x9a, 0x71, 0xa0,
- 0x48, 0x03, 0x6e, 0xf0, 0xbb, 0xc7, 0x5b, 0x0a, 0x77, 0x58, 0x38, 0xaa,
- 0x4c, 0x21, 0xac, 0x86, 0x69, 0xe7, 0xa3, 0x81, 0xb4, 0xdb, 0xcf, 0xf0,
- 0x5e, 0x03, 0x15, 0x64, 0xb2, 0x6f, 0xe3, 0x8e, 0xdd, 0xc0, 0x7a, 0x6f,
- 0x88, 0x4d, 0xb7, 0x34, 0x16, 0x11, 0x11, 0xc6, 0x24, 0xd3, 0x06, 0xa7,
- 0x26, 0x46, 0xb4, 0x98, 0x33, 0x64, 0xb3, 0xff, 0xc0, 0x63, 0x59, 0x2c,
- 0x9b, 0xdd, 0x42, 0x16, 0xdb, 0xbc, 0x23, 0x3d, 0x38, 0xa0, 0x2e, 0x81,
- 0x80, 0xd1, 0x10, 0x42, 0x1d, 0x4e, 0x52, 0xa3, 0xac, 0x49, 0x97, 0x28,
- 0xd3, 0x53, 0x01, 0x69, 0x50, 0xf5, 0xff, 0xfe, 0x06, 0x34, 0x4b, 0x33,
- 0x11, 0xc6, 0xe1, 0xdb, 0x2e, 0xe2, 0xe2, 0x32, 0x0e, 0x86, 0x9c, 0xc9,
- 0xc1, 0x0c, 0x88, 0xd6, 0x42, 0x19, 0x90, 0xd1, 0xbf, 0x23, 0x41, 0xe8,
- 0xdd, 0xd2, 0x21, 0xea, 0x60, 0x2d, 0x54, 0x3d, 0x71, 0xfc, 0xf3, 0x09,
- 0xee, 0x3d, 0x04, 0x25, 0xde, 0x27, 0x8e, 0x73, 0xeb, 0x98, 0x57, 0x7d,
- 0x75, 0x9b, 0xa2, 0xd5, 0x40, 0xa3, 0x3c, 0x8d, 0xb0, 0x3d, 0xf2, 0x66,
- 0x64, 0x88, 0x18, 0xa6, 0x4b, 0x20, 0x4a, 0x0b, 0xb5, 0xeb, 0x38, 0x3f,
- 0x9e, 0x69, 0xee, 0xa2, 0xd4, 0x10, 0x0f, 0x78, 0x9d, 0x1c, 0xe7, 0xd7,
- 0x30, 0xae, 0xfa, 0xeb, 0x23, 0xb0, 0xb4, 0xf0, 0x1a, 0x36, 0xf2, 0x34,
- 0x30, 0x92, 0x67, 0x1c, 0x26, 0x03, 0x14, 0xe2, 0x58, 0x04, 0xa0, 0xbb,
- 0x5e, 0xb3, 0x83, 0xf6, 0x31, 0xcd, 0x30, 0xbb, 0xc7, 0x6c, 0x7b, 0x50,
- 0x1c, 0xea, 0xaf, 0x6f, 0x7c, 0xc1, 0xa7, 0x0d, 0xa4, 0x21, 0x7d, 0x8b,
- 0x38, 0x3d, 0xc9, 0x82, 0xc6, 0x63, 0x03, 0xbc, 0x98, 0x02, 0xcd, 0x17,
- 0x53, 0xce, 0x28, 0x07, 0x06, 0x97, 0x49, 0xa1, 0xf4, 0xe9, 0xf7, 0x65,
- 0x69, 0x9f, 0x2f, 0x80, 0xf5, 0xe9, 0x9e, 0x06, 0xa5, 0xe8, 0x03, 0x57,
- 0xa6, 0x6c, 0x29, 0x32, 0xb4, 0x48, 0x80, 0xea, 0x9a, 0x66, 0xea, 0x3b,
- 0xe6, 0x10, 0x0f, 0x6e, 0x82, 0x01, 0xb6, 0x10, 0x72, 0x7e, 0xff, 0xc0,
- 0x72, 0x5e, 0x98, 0xf8, 0x60, 0x8d, 0x4d, 0x3a, 0x32, 0x81, 0x8c, 0xd3,
- 0x0d, 0x96, 0x1e, 0xb2, 0x0e, 0x17, 0x63, 0xf8, 0x59, 0x84, 0x03, 0xdb,
- 0xa0, 0x80, 0x6e, 0x61, 0xc9, 0xfb, 0xff, 0x01, 0xc9, 0x7a, 0x63, 0xe1,
- 0x82, 0x35, 0x34, 0xe8, 0xca, 0x06, 0x33, 0x4c, 0x36, 0x58, 0x7a, 0xc8,
- 0x38, 0x5d, 0x8f, 0xe1, 0x66, 0x10, 0x0d, 0xbf, 0xfb, 0x98, 0x72, 0x7e,
- 0xf4, 0x7f, 0xc7, 0xcf, 0x32, 0x1d, 0x7e, 0x99, 0x40, 0xc6, 0x69, 0x94,
- 0x09, 0x01, 0x70, 0x60, 0x76, 0x1a, 0x47, 0x36, 0xdb, 0x6d, 0xfe, 0xf8,
- 0x74, 0xdd, 0x09, 0x09, 0xc3, 0xa3, 0x1f, 0x3c, 0xc8, 0x75, 0xfa, 0x28,
- 0xc9, 0x9d, 0xcc, 0xb0, 0x24, 0x05, 0xe0, 0x3b, 0x63, 0x48, 0xe6, 0xd3,
- 0x6f, 0xfe, 0xf8, 0xd5, 0xb4, 0xc2, 0x5a, 0x0f, 0xe0, 0x87, 0xcf, 0x32,
- 0x1d, 0x7e, 0x8a, 0x9e, 0x9e, 0xc0, 0x90, 0x17, 0x80, 0xed, 0x8d, 0x23,
- 0x9b, 0x6f, 0xb7, 0xfb, 0xe1, 0xd3, 0xe8, 0x71, 0x63, 0xf0, 0x68, 0x51,
- 0x33, 0xc1, 0x8a, 0x4c, 0xed, 0x5c, 0xe1, 0x80, 0xc1, 0xb7, 0x40, 0x14,
- 0x1a, 0x31, 0xe9, 0xb2, 0x89, 0x09, 0xac, 0x80, 0x03, 0xfc, 0x7b, 0xe0,
- 0xbb, 0x3a, 0x20, 0xdd, 0x3c, 0xfe, 0x0c, 0x07, 0x15, 0x69, 0x9f, 0xa3,
- 0xf1, 0xbc, 0x15, 0x0a, 0xa0, 0x28, 0x26, 0x24, 0x1e, 0x18, 0x0c, 0xd6,
- 0x40, 0x01, 0xc3, 0xc7, 0xbe, 0x0b, 0xb3, 0xa2, 0x1a, 0x4c, 0x7e, 0xac,
- 0x03, 0x8a, 0xb4, 0xce, 0xf6, 0x3c, 0xb1, 0x06, 0x85, 0x50, 0x03, 0x04,
- 0x62, 0x41, 0xe1, 0x80, 0xcd, 0x64, 0x00, 0x1c, 0x3f, 0xdf, 0x05, 0xd9,
- 0xd1, 0x0d, 0x26, 0x3f, 0x56, 0x01, 0xc5, 0x5a, 0x67, 0x7b, 0x1e, 0x58,
- 0x9a, 0x20, 0xc1, 0x18, 0x90, 0x0d, 0xf3, 0x25, 0x93, 0x36, 0x80, 0x01,
- 0xf1, 0xf7, 0x19, 0xad, 0xe7, 0x5b, 0x44, 0x5d, 0xe0, 0x0e, 0x56, 0x99,
- 0xff, 0xf4, 0x7c, 0x18, 0x0f, 0x40, 0xe8, 0xb4, 0x30, 0x12, 0xa4, 0x62,
- 0x42, 0x66, 0xd0, 0x40, 0x3e, 0x3e, 0x2a, 0x10, 0x37, 0xfd, 0xde, 0xc0,
- 0x56, 0x78, 0x03, 0x95, 0xa6, 0x7f, 0x83, 0x01, 0x54, 0x0f, 0x83, 0x43,
- 0x01, 0x2a, 0x4c, 0x48, 0x4c, 0xda, 0x08, 0x07, 0xc7, 0xc5, 0x40, 0x66,
- 0xef, 0xfb, 0xbd, 0x80, 0xac, 0xf0, 0x07, 0x2b, 0x4c, 0xff, 0x06, 0x02,
- 0xa8, 0x1d, 0x16, 0x86, 0x02, 0x54, 0x8c, 0x48, 0x4c, 0xd9, 0x24, 0x34,
- 0xfe, 0xe0, 0x33, 0x77, 0xfd, 0xde, 0xc0, 0x7a, 0x2e, 0x28, 0x71, 0xdc,
- 0x77, 0x23, 0xbf, 0x5f, 0xaf, 0x4d, 0xe8, 0xfa, 0xc7, 0x04, 0xb8, 0x3f,
- 0x86, 0x91, 0x30, 0xe4, 0x90, 0xd3, 0xfb, 0x8c, 0x4b, 0x4c, 0xf0, 0x9b,
- 0x07, 0x88, 0x1c, 0x77, 0x1c, 0x1c, 0x8e, 0xfd, 0x7e, 0xbd, 0x35, 0xa1,
- 0x80, 0xd1, 0xf8, 0xe8, 0x90, 0x83, 0xf8, 0xd2, 0x26, 0x1c, 0x92, 0x1a,
- 0x7f, 0x75, 0x12, 0x69, 0x9e, 0x1e, 0x8b, 0x8a, 0x1c, 0x77, 0x1a, 0xb1,
- 0x22, 0xdf, 0xaf, 0xd7, 0xa6, 0xb4, 0x30, 0x1a, 0x3f, 0x60, 0x50, 0x1f,
- 0xc3, 0x48, 0x9b, 0x96, 0x9a, 0x60, 0x3d, 0xd4, 0x12, 0x69, 0x9e, 0x1e,
- 0x8b, 0x8b, 0x01, 0xc5, 0x5a, 0x60, 0x2d, 0x9b, 0xaa, 0xfa, 0xf4, 0xd8,
- 0x05, 0x47, 0xd8, 0x38, 0x5d, 0x8b, 0x29, 0xb9, 0x6d, 0xf8, 0xf7, 0xf0,
- 0xe2, 0x4f, 0x5d, 0x6d, 0xd0, 0x71, 0x53, 0x4c, 0x0d, 0x63, 0x7e, 0x9f,
- 0x44, 0x03, 0x1a, 0xc9, 0x60, 0xd7, 0xd3, 0x20, 0x81, 0xc2, 0xac, 0x67,
- 0x84, 0xdf, 0xb7, 0xe3, 0xdf, 0xc2, 0x47, 0x27, 0xef, 0x73, 0xc0, 0x71,
- 0x56, 0x98, 0x03, 0x58, 0xff, 0x4f, 0x96, 0x20, 0x31, 0xac, 0x96, 0x2a,
- 0xed, 0x33, 0xb0, 0x70, 0xbb, 0x1b, 0x29, 0xb9, 0x6c, 0x3b, 0xe3, 0xdf,
- 0x8c, 0x25, 0x62, 0x72, 0xed, 0x88, 0x71, 0x26, 0x99, 0x01, 0x76, 0x37,
- 0x6a, 0x32, 0x1e, 0x82, 0x88, 0x18, 0x58, 0x80, 0x8d, 0x76, 0x99, 0xaa,
- 0x81, 0xc3, 0xd8, 0xc1, 0x52, 0xd3, 0x3c, 0x41, 0xc2, 0x61, 0xe5, 0x1b,
- 0x53, 0x36, 0x8c, 0xb9, 0xf8, 0x1f, 0xd5, 0xfb, 0x58, 0x40, 0x65, 0x4f,
- 0xcf, 0xfc, 0x43, 0x1d, 0x66, 0xd2, 0x46, 0xd4, 0xcd, 0xa2, 0x96, 0x9f,
- 0x9f, 0xe6, 0x2f, 0x5d, 0xb3, 0x41, 0x4a, 0x4f, 0xcf, 0xff, 0x11, 0x1d,
- 0x66, 0xd2, 0x46, 0xd4, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d,
- 0xb3, 0x41, 0x4a, 0x4f, 0xcf, 0xff, 0x11, 0x1d, 0x66, 0xd2, 0x46, 0xd4,
- 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83, 0x55, 0x6d,
- 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69, 0xf9, 0xfe,
- 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32, 0x3c, 0x8a,
- 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83, 0x55,
- 0x6d, 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69, 0xf9,
- 0xfe, 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32, 0x3c,
- 0x8a, 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83,
- 0x55, 0x6d, 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69,
- 0xf9, 0xfe, 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32,
- 0x3c, 0x8a, 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1,
- 0x83, 0x55, 0x6d, 0xff, 0xe2, 0x2d, 0x05, 0x29, 0x3f, 0x06, 0x57, 0xd1,
- 0x68, 0xbb, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x45,
- 0xa0, 0xa5, 0x27, 0xe0, 0xca, 0xfa, 0x2d, 0x17, 0x7f, 0x98, 0xbd, 0x76,
- 0xc6, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x19, 0x5f,
- 0x45, 0xa2, 0xef, 0xf3, 0x17, 0xae, 0xd8, 0xc1, 0xaa, 0xb6, 0xff, 0xf1,
- 0x16, 0x82, 0x94, 0x9f, 0x83, 0x2b, 0xe8, 0xb4, 0x5d, 0xfe, 0x62, 0xf5,
- 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0xd0, 0x52, 0x93, 0xf0, 0x65,
- 0x7d, 0x16, 0x8b, 0xbf, 0xcc, 0x5e, 0xbb, 0x63, 0x06, 0xaa, 0xdb, 0xff,
- 0xc4, 0x5a, 0x0a, 0x52, 0x7e, 0x0c, 0xaf, 0xa2, 0xd1, 0x77, 0xf9, 0x8b,
- 0xd7, 0x6c, 0x60, 0xd5, 0x5b, 0x7f, 0xf8, 0x8b, 0x41, 0x4a, 0x4f, 0xc1,
- 0x95, 0xf4, 0x5a, 0x2e, 0xff, 0x6d, 0x14, 0xb4, 0xfc, 0x30, 0x6a, 0xad,
- 0xbf, 0xfc, 0x45, 0xa0, 0xa5, 0x27, 0xe0, 0xeb, 0x36, 0x92, 0x36, 0xa6,
- 0xff, 0x6d, 0x14, 0xb4, 0xfc, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x45, 0xa0,
- 0xa5, 0x27, 0xe0, 0xeb, 0x36, 0x92, 0x36, 0xa6, 0xff, 0x6d, 0x14, 0xb4,
- 0xfc, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x42, 0x68, 0x32, 0xa7, 0xe3, 0x70,
- 0xf2, 0x8d, 0xa9, 0xbf, 0xdb, 0x46, 0x5c, 0xfc, 0x91, 0xad, 0xd7, 0xff,
- 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
- 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xa9, 0x47, 0x60, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xd2, 0xf5, 0xeb, 0xe6, 0x3e, 0x01, 0x8e, 0x97, 0x82,
- 0x15, 0xfd, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30,
- 0x2b, 0x48, 0x1e, 0x31, 0xc2, 0xc2, 0x03, 0xe3, 0x0f, 0x4c, 0x72, 0x78,
- 0x26, 0xa6, 0x7b, 0x00, 0xc7, 0xb9, 0xdf, 0x96, 0xde, 0xbc, 0x99, 0x22,
- 0x7c, 0x64, 0xb9, 0x62, 0x2b, 0x89, 0xc6, 0x4a, 0x96, 0x82, 0x58, 0x90,
- 0x0c, 0xee, 0x97, 0xe9, 0x39, 0xc2, 0x32, 0xd3, 0x5d, 0xe7, 0xfa, 0x27,
- 0x22, 0x27, 0x2e, 0x01, 0x4a, 0x9e, 0x7f, 0x8a, 0xff, 0xaf, 0x5e, 0x48,
- 0x9a, 0x08, 0x1b, 0x8d, 0x7a, 0xa3, 0xf4, 0x49, 0xed, 0x74, 0x89, 0xe5,
- 0x83, 0x3f, 0x0c, 0x7e, 0xf7, 0xe2, 0x94, 0xb2, 0xf0, 0x04, 0x32, 0xb0,
- 0xf9, 0x8f, 0x7e, 0x41, 0xaa, 0x21, 0x57, 0x2c, 0x89, 0xe0, 0x20, 0x7b,
- 0x40, 0x7e, 0xc8, 0x3f, 0xf9, 0x42, 0x00, 0xd7, 0x5f, 0x7f, 0xf5, 0xeb,
- 0xc8, 0x22, 0x32, 0x22, 0x0d, 0x00, 0x9d, 0x01, 0xc7, 0x88, 0xee, 0xba,
- 0x58, 0x67, 0xfb, 0x8f, 0x15, 0xa5, 0x50, 0x07, 0x9a, 0xc7, 0x5b, 0xbe,
- 0x67, 0xe8, 0x10, 0x81, 0x33, 0x0c, 0x05, 0x3e, 0x9a, 0x7c, 0x27, 0xd0,
- 0x15, 0x01, 0xf7, 0x8e, 0xd8, 0x62, 0x9e, 0x9f, 0x4a, 0x62, 0xb3, 0x06,
- 0x07, 0xcf, 0xe8, 0x07, 0x61, 0xde, 0xb1, 0x9d, 0x7a, 0xf5, 0x90, 0xf1,
- 0x88, 0x7f, 0x5e, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5,
- 0x1d, 0x81, 0xcb, 0xae, 0x5d, 0xe3, 0x3e, 0xfe, 0xd7, 0xaf, 0x5e, 0xbd,
- 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf,
- 0x5e, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff,
- 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f,
- 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x01, 0x6f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xaf, 0xff, 0xef, 0x27, 0xcb, 0x15, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0x41, 0x10, 0xc9, 0x59, 0x6e, 0x10, 0xd8, 0x81, 0x2b, 0xbb, 0xec, 0x44,
- 0xdf, 0xe6, 0x74, 0x01, 0x8c, 0x35, 0x98, 0xd0, 0x31, 0x02, 0x66, 0x79,
- 0x48, 0x6c, 0x81, 0x10, 0xe9, 0xba, 0x21, 0xb4, 0x00, 0x62, 0xc8, 0x26,
- 0x54, 0xd9, 0xf0, 0x3d, 0x7e, 0x2d, 0xa0, 0x91, 0x80, 0x5a, 0xfd, 0x29,
- 0x0c, 0x97, 0xf0, 0xaa, 0x4e, 0x96, 0x19, 0x2e, 0x5b, 0x87, 0x42, 0x01,
- 0x66, 0x24, 0x5b, 0x03, 0x7c, 0x39, 0x66, 0xa0, 0xbb, 0x32, 0x4b, 0x32,
- 0x12, 0x44, 0x95, 0x79, 0xe2, 0xbf, 0xff, 0xf1, 0x46, 0xc3, 0xb9, 0x6d,
- 0x64, 0x09, 0xf5, 0x64, 0x3f, 0x16, 0xf9, 0x34, 0x64, 0xd5, 0x86, 0x30,
- 0x36, 0x86, 0xa6, 0xfd, 0x6c, 0xfa, 0x03, 0x6f, 0xc0, 0x16, 0xf1, 0x0e,
- 0xa4, 0xcf, 0x2e, 0xf0, 0x11, 0x33, 0xd2, 0x0e, 0xf5, 0xd5, 0x57, 0x5f,
- 0xcd, 0x9f, 0x6b, 0x95, 0x9e, 0xf7, 0xd8, 0x61, 0x93, 0x3f, 0x31, 0x60,
- 0x42, 0xdc, 0x7e, 0xec, 0xff, 0x91, 0x61, 0xfd, 0xc7, 0x33, 0x8e, 0xf8,
- 0x7f, 0xc2, 0x50, 0x0f, 0x51, 0x9c, 0x11, 0x00, 0xcb, 0xe9, 0xf7, 0xff,
- 0xd3, 0xfe, 0x41, 0xa0, 0x59, 0x07, 0x98, 0x56, 0x03, 0xff, 0xe1, 0x27,
- 0x8d, 0x44, 0x74, 0xd3, 0xc9, 0x33, 0xd3, 0xd3, 0xfe, 0x25, 0x70, 0x89,
- 0x00, 0x7d, 0x01, 0x03, 0x51, 0xb0, 0xf4, 0x1b, 0x20, 0x0f, 0x69, 0x9c,
- 0xda, 0x05, 0xfb, 0x31, 0x81, 0x96, 0x79, 0x3f, 0xff, 0xf1, 0x04, 0x87,
- 0xb7, 0xae, 0xc1, 0x02, 0x30, 0x35, 0x7f, 0x10, 0x5d, 0xb8, 0xc9, 0xd8,
- 0x23, 0x7b, 0x6f, 0x9e, 0xd8, 0x13, 0xf6, 0x75, 0xfc, 0xc4, 0x40, 0x1e,
- 0x1f, 0xe1, 0x24, 0xaf, 0x33, 0x0b, 0xf5, 0x06, 0x30, 0x43, 0x32, 0x90,
- 0xdc, 0xc1, 0x26, 0x93, 0x3e, 0xf8, 0xff, 0x9f, 0xd7, 0x14, 0x58, 0x34,
- 0x09, 0xd0, 0x4a, 0x81, 0x2a, 0x09, 0x50, 0x25, 0x41, 0x2a, 0x04, 0xa8,
- 0x26, 0xfb, 0x5b, 0xd8, 0xdb, 0x0a, 0x6c, 0x38, 0x4c, 0xc0, 0xf8, 0x42,
- 0x85, 0xbc, 0x32, 0x8b, 0x2f, 0x5e, 0x3b, 0xd8, 0x4f, 0x1a, 0x4c, 0xfe,
- 0x8e, 0xc7, 0xf6, 0x38, 0x08, 0xda, 0xb6, 0xff, 0x35, 0xac, 0x5c, 0xad,
- 0xf8, 0x9c, 0x3a, 0x49, 0x8a, 0xe1, 0x39, 0xcf, 0x81, 0x16, 0xf3, 0xd2,
- 0xf0, 0xe4, 0xf1, 0x9f, 0x13, 0x13, 0x88, 0xf0, 0xa4, 0x9f, 0x8c, 0xfb,
- 0xaf, 0x6f, 0x3f, 0xff, 0xfc, 0x4c, 0xbf, 0x11, 0xfe, 0x36, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0x94, 0xa4, 0x08, 0x5f, 0x27, 0xf0, 0x79, 0xff,
- 0xfe, 0x27, 0xc4, 0x7f, 0xbf, 0x2f, 0x9f, 0xf8, 0x3d, 0xbf, 0xfa, 0xfa,
- 0x80, 0x81, 0xf3, 0xf8, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e,
- 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0xde, 0x2b, 0xff, 0xc3, 0xe6,
- 0x80, 0x5f, 0x4a, 0x03, 0x51, 0x17, 0xe6, 0x1e, 0x10, 0x0f, 0xf8, 0x79,
- 0x07, 0x06, 0x53, 0xda, 0x0b, 0xf0, 0x30, 0x3c, 0xa7, 0xc7, 0x6f, 0xf9,
- 0xb0, 0x07, 0x7f, 0xfe, 0x12, 0xc0, 0x06, 0x53, 0x74, 0xc6, 0xd1, 0x47,
- 0xca, 0x9d, 0x9c, 0x80, 0x69, 0xc7, 0x17, 0x91, 0x00, 0xc4, 0x5f, 0xe0,
- 0x3d, 0x00, 0x48, 0xe2, 0x22, 0x71, 0x1f, 0x80, 0xc1, 0xcd, 0x1f, 0xff,
- 0xe1, 0x31, 0xc0, 0x13, 0xad, 0x85, 0xe4, 0xbd, 0xb1, 0x04, 0xc9, 0x09,
- 0x93, 0x33, 0xc7, 0x01, 0xe4, 0x24, 0x4c, 0xe2, 0x2f, 0x11, 0xe2, 0x3c,
- 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47,
- 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe1, 0x4c, 0x04, 0xbe,
- 0xe0, 0x3c, 0xde, 0x7c, 0x01, 0xab, 0xa4, 0xdf, 0x3d, 0xff, 0x81, 0xd1,
- 0x16, 0xe7, 0x84, 0xe5, 0x0f, 0x5b, 0x6d, 0xb6, 0x07, 0x9b, 0xc2, 0x04,
- 0x65, 0xb9, 0xb2, 0x1f, 0x0e, 0x23, 0x2d, 0xcd, 0x90, 0xfc, 0xf1, 0x39,
- 0xfc, 0xfe, 0x7f, 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f,
- 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xff, 0x01, 0x01, 0xff, 0xff, 0xff,
- 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x5f, 0xff, 0x9b, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xa9, 0x89, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xd7, 0xfd, 0xe6, 0x3f, 0x00, 0x57, 0x7d, 0x71, 0xe8, 0x66, 0x26,
- 0x2b, 0xff, 0xff, 0xef, 0xdf, 0xc5, 0x04, 0x8c, 0x08, 0x12, 0x01, 0x89,
- 0x48, 0x2e, 0x35, 0x6e, 0xb0, 0xe0, 0x2c, 0xc3, 0x51, 0xf9, 0xb9, 0x5f,
- 0xc1, 0x2c, 0x58, 0x4d, 0xfa, 0x8f, 0x7f, 0xe0, 0x33, 0xef, 0x47, 0x03,
- 0xde, 0x32, 0x7e, 0x45, 0x03, 0xdf, 0xe2, 0xbf, 0xef, 0xdf, 0x86, 0x3f,
- 0x5c, 0x60, 0x1e, 0x2c, 0x9c, 0x12, 0x3d, 0x80, 0x87, 0xfa, 0xe7, 0x72,
- 0xfc, 0xeb, 0x29, 0x93, 0x3f, 0x3b, 0xfe, 0xfc, 0x30, 0x2b, 0xb8, 0x87,
- 0xc8, 0x43, 0x12, 0xeb, 0x83, 0x6c, 0x94, 0x23, 0x6b, 0x7e, 0x65, 0x42,
- 0x23, 0xf8, 0xd5, 0x2b, 0x93, 0xfe, 0xff, 0x86, 0x38, 0x61, 0xfe, 0x10,
- 0x92, 0xc1, 0x0f, 0xbb, 0x13, 0x59, 0x78, 0x20, 0xd7, 0x63, 0xe8, 0x33,
- 0x2e, 0x18, 0xb4, 0x07, 0xc9, 0xbf, 0x09, 0xfd, 0x8f, 0x1c, 0x4d, 0xd6,
- 0x3b, 0x60, 0x97, 0x02, 0x3d, 0xe9, 0x77, 0xff, 0xf3, 0x3a, 0x1e, 0x16,
- 0xb2, 0xc1, 0x05, 0xb2, 0x17, 0x93, 0xcf, 0xad, 0x63, 0x3b, 0xf0, 0xcc,
- 0xf8, 0x6b, 0xc3, 0x5e, 0x1a, 0xe3, 0xa0, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xa6, 0x25, 0x80, 0x82, 0xef, 0x97, 0x79, 0x73, 0xfd, 0xfd, 0x77,
- 0xef, 0xdf, 0x86, 0xbd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x0d, 0x78, 0x6b,
- 0xc3, 0x5e, 0xfd, 0xfb, 0xf0, 0xc3, 0xff, 0xff, 0x87, 0xa3, 0xf9, 0x7e,
- 0x1b, 0xf0, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd,
- 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31, 0x03, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x7f, 0xff, 0xf5, 0xcc, 0x7e, 0x01, 0x33, 0x5d, 0x22, 0xee, 0x7e, 0x5f,
- 0x57, 0x0d, 0x5c, 0x6a, 0xc3, 0x73, 0xbc, 0xcf, 0x82, 0x5f, 0x8a, 0xb6,
- 0xf0, 0xac, 0x5a, 0xc4, 0x5f, 0x9c, 0x7f, 0x00, 0x93, 0x69, 0xe8, 0xff,
- 0xea, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xff, 0xf8, 0xa0, 0x86, 0x97, 0x0a,
- 0xba, 0xd0, 0xd4, 0x78, 0x5d, 0x7f, 0x19, 0xca, 0x08, 0xba, 0x84, 0x48,
- 0x8f, 0x2e, 0xb3, 0x08, 0xa5, 0x32, 0x0a, 0x54, 0x8f, 0x76, 0x22, 0xac,
- 0xec, 0x1c, 0x61, 0x25, 0x4f, 0x33, 0x36, 0x2f, 0x52, 0xd9, 0x7f, 0xc2,
- 0x2c, 0x68, 0x4b, 0xd0, 0x20, 0x17, 0xa8, 0x62, 0xe3, 0xee, 0x5a, 0xb2,
- 0xb3, 0x8d, 0x55, 0xa1, 0x4c, 0x68, 0x16, 0xb0, 0x35, 0xe3, 0x11, 0xb2,
- 0x19, 0xfd, 0xb6, 0x62, 0xef, 0x65, 0xca, 0x74, 0xc0, 0xd8, 0x38, 0x24,
- 0xe5, 0x24, 0x31, 0xcb, 0x60, 0x20, 0x2d, 0xe8, 0xe5, 0xde, 0xa3, 0x67,
- 0x68, 0xea, 0xf7, 0x81, 0xbb, 0x68, 0x02, 0xd3, 0x48, 0x2a, 0x1a, 0xc7,
- 0xa4, 0x1a, 0xa3, 0xcc, 0x22, 0x33, 0xcb, 0x22, 0x16, 0x57, 0x0b, 0x2c,
- 0x1c, 0x88, 0xcf, 0x2d, 0x40, 0x50, 0x81, 0x46, 0x24, 0x5f, 0xc2, 0x6d,
- 0x8a, 0x95, 0x8a, 0x88, 0xbb, 0x5e, 0xc3, 0x81, 0x18, 0x45, 0x40, 0xf8,
- 0x7f, 0xe8, 0x3f, 0x15, 0xff, 0xff, 0x8b, 0x34, 0x02, 0x16, 0xea, 0x71,
- 0xef, 0xcf, 0xf0, 0x88, 0x78, 0x08, 0xf7, 0xef, 0x9e, 0x43, 0xcb, 0xac,
- 0xf1, 0x6e, 0x10, 0x33, 0x6b, 0x4a, 0xba, 0x43, 0x0a, 0x06, 0x20, 0x82,
- 0xc4, 0xb6, 0xb9, 0xbf, 0x10, 0x93, 0x30, 0x7b, 0xf0, 0x03, 0x03, 0xca,
- 0xf8, 0xed, 0x8b, 0x48, 0xe2, 0x81, 0x3f, 0x0b, 0x18, 0x53, 0xc8, 0xbc,
- 0xe7, 0xc1, 0x9f, 0x82, 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f,
- 0x20, 0x98, 0xdd, 0xf3, 0x08, 0x82, 0x46, 0xc0, 0x5e, 0xfc, 0xf8, 0x85,
- 0xc3, 0x31, 0x2c, 0x48, 0x00, 0x13, 0x77, 0x18, 0xef, 0xfb, 0x82, 0x6d,
- 0x81, 0xbd, 0x62, 0xb0, 0xf3, 0xfe, 0x31, 0xa8, 0x66, 0x2b, 0xe2, 0xf0,
- 0x8f, 0x05, 0x95, 0x55, 0x55, 0xae, 0x62, 0xaa, 0xe1, 0xf5, 0x31, 0x38,
- 0x27, 0xe1, 0xeb, 0x84, 0x07, 0x7e, 0xa3, 0xdd, 0x00, 0x9f, 0x60, 0x6b,
- 0xc4, 0x42, 0xf4, 0x07, 0xe1, 0x7c, 0xcd, 0xff, 0x9f, 0xe0, 0x80, 0xbf,
- 0x02, 0x1f, 0xe0, 0x7e, 0xf6, 0x7b, 0xff, 0xff, 0xc8, 0x2a, 0x0b, 0xf0,
- 0x0e, 0xf7, 0x61, 0x11, 0xaf, 0xfc, 0x41, 0x74, 0xd2, 0x81, 0xe2, 0xb3,
- 0x77, 0x1e, 0xd4, 0x25, 0x6b, 0xa9, 0x43, 0x7a, 0xe6, 0x8f, 0x87, 0xfe,
- 0x12, 0x41, 0xf4, 0xd0, 0x33, 0x1e, 0x56, 0xa0, 0xfc, 0x01, 0x14, 0xd0,
- 0x33, 0x1c, 0xd5, 0xa8, 0x01, 0x14, 0xd0, 0x33, 0x14, 0xd5, 0xab, 0xc3,
- 0x9f, 0x94, 0xa1, 0xb8, 0x7f, 0x3f, 0x41, 0x3f, 0xf6, 0x3b, 0x1f, 0xd8,
- 0xec, 0x71, 0x11, 0x39, 0xbf, 0xff, 0xbc, 0x10, 0x9b, 0x00, 0x0c, 0xdb,
- 0xfe, 0x57, 0xcb, 0xed, 0x54, 0x7b, 0x08, 0xfd, 0xf3, 0xa6, 0x33, 0x9f,
- 0x93, 0x88, 0x9d, 0x31, 0x6b, 0xc3, 0x28, 0x3f, 0x0c, 0x03, 0xd5, 0xfc,
- 0x51, 0x99, 0xfc, 0x00, 0x86, 0x34, 0xb4, 0x3e, 0xc6, 0xbd, 0x97, 0x23,
- 0x43, 0xf6, 0x08, 0x11, 0xf8, 0x05, 0x91, 0x5a, 0x97, 0xa3, 0x77, 0xaa,
- 0xbc, 0x31, 0x36, 0xbb, 0xdf, 0xdf, 0xef, 0xe3, 0xbd, 0x9f, 0xcd, 0xff,
- 0xdc, 0x9c, 0xb1, 0x9e, 0x01, 0x28, 0xa4, 0x6d, 0x57, 0x98, 0x04, 0xa2,
- 0x91, 0xb5, 0x5e, 0x05, 0xfb, 0xdf, 0x09, 0x1b, 0x9c, 0x00, 0x7f, 0xfc,
- 0xb3, 0x10, 0x7e, 0x1e, 0x91, 0x7c, 0x5e, 0x02, 0xf3, 0x49, 0xdd, 0xf9,
- 0x7f, 0x84, 0xb0, 0x02, 0x18, 0xd2, 0xe1, 0xf6, 0x35, 0xec, 0x19, 0x77,
- 0x4f, 0x27, 0xef, 0xfa, 0x06, 0xff, 0x7d, 0x11, 0xbd, 0xc8, 0x3f, 0x8f,
- 0xe6, 0xcc, 0xa2, 0x3c, 0x22, 0x1e, 0x24, 0x85, 0x80, 0x33, 0x0e, 0xbe,
- 0x6b, 0x6f, 0xfb, 0xf7, 0xdf, 0xff, 0x7f, 0xe0, 0xc3, 0xf0, 0x12, 0x31,
- 0xd0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x57, 0xfc, 0xbe,
- 0xfc, 0x67, 0xfd, 0xff, 0xdf, 0x8d, 0xe4, 0x34, 0x10, 0xe9, 0xff, 0xbf,
- 0xed, 0x24, 0x45, 0x2a, 0x08, 0xdf, 0xf0, 0x3f, 0x7e, 0x7f, 0xf8, 0x8c,
- 0x12, 0xec, 0xf4, 0x3b, 0x42, 0x61, 0x3e, 0x2d, 0xcb, 0x97, 0xb3, 0x0d,
- 0x85, 0xed, 0x8c, 0xe2, 0x2c, 0xb4, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
- 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1f, 0xff, 0xff, 0xff, 0xff,
- 0xf9, 0xb3, 0x7f, 0xc4, 0x94, 0xff, 0xcf, 0xfc, 0x29, 0xff, 0xff, 0xfe,
- 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xa9, 0xcb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xf7, 0xef, 0xd1, 0x7a, 0x2e, 0x2b,
- 0xff, 0xff, 0x7f, 0xdf, 0xa2, 0x45, 0x20, 0x06, 0x52, 0xbb, 0xda, 0x76,
- 0xa2, 0xbe, 0x01, 0x71, 0xc1, 0x5b, 0x3e, 0x00, 0x26, 0x72, 0xb1, 0xff,
- 0xbc, 0x96, 0xbd, 0x6b, 0x8b, 0xc7, 0x70, 0x1c, 0x30, 0x1f, 0xf7, 0xfc,
- 0x26, 0x24, 0x07, 0x13, 0x92, 0x66, 0x3a, 0x89, 0x3d, 0x55, 0xde, 0xfe,
- 0x24, 0x1c, 0xb6, 0x5e, 0xec, 0xf7, 0x15, 0xff, 0x7e, 0xfd, 0x63, 0x17,
- 0x0c, 0x26, 0x96, 0xec, 0x80, 0x4b, 0x74, 0x46, 0x65, 0xe1, 0x6f, 0xfc,
- 0xd9, 0xe0, 0x14, 0xca, 0xed, 0xdc, 0xa2, 0x97, 0x04, 0xb7, 0xc3, 0x60,
- 0xc4, 0x99, 0x9a, 0xbb, 0x3a, 0x47, 0x7e, 0xfd, 0xfb, 0xf0, 0xc1, 0x55,
- 0x70, 0xfa, 0x9c, 0x62, 0xde, 0x93, 0x01, 0x57, 0xe0, 0x46, 0x13, 0xd0,
- 0xe6, 0xab, 0xbf, 0xfb, 0xf7, 0xe4, 0xe0, 0x7c, 0x10, 0x41, 0xb1, 0xde,
- 0x67, 0xc9, 0xc7, 0xfe, 0x04, 0xcd, 0xdd, 0x7f, 0x82, 0x44, 0x88, 0x50,
- 0x3d, 0xde, 0x0c, 0x9e, 0xf0, 0xf9, 0x09, 0x13, 0x23, 0x54, 0x9c, 0x79,
- 0xf4, 0x19, 0x97, 0x98, 0xbc, 0x02, 0x3d, 0x7d, 0xb4, 0x31, 0xe4, 0xec,
- 0x24, 0x44, 0x45, 0xe2, 0x49, 0xc1, 0x33, 0xdb, 0x46, 0x00, 0x0d, 0x73,
- 0x3b, 0x96, 0x61, 0x39, 0xe8, 0x0f, 0x10, 0x00, 0x4c, 0x00, 0x7f, 0xd7,
- 0x1d, 0xb7, 0xe1, 0x8f, 0x22, 0x2c, 0x88, 0xbe, 0x09, 0xbe, 0x00, 0x40,
- 0x93, 0xf8, 0x10, 0xe3, 0xe6, 0x02, 0x07, 0x60, 0x84, 0xc9, 0x8c, 0x7d,
- 0xae, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x81,
- 0x0b, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1a, 0xfd, 0xfb, 0xe5, 0x7e, 0xfd,
- 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xff, 0xff, 0xff, 0xfc,
- 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd,
- 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x06, 0xf3,
- 0x61, 0x2f, 0x1e, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x5c, 0x30, 0x81,
- 0xe1, 0xff, 0x94, 0x4e, 0x02, 0x0f, 0xd9, 0xbc, 0xe7, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xae, 0x6f, 0x0d, 0x29, 0xc7, 0x8b,
- 0xe9, 0xd0, 0x3e, 0x2d, 0x1b, 0xc0, 0x21, 0xdf, 0x5b, 0xef, 0xff, 0x9b,
- 0xc0, 0x0c, 0x22, 0xd1, 0x96, 0xbf, 0xdf, 0xde, 0xb0, 0xcc, 0xaf, 0x0a,
- 0x32, 0xf5, 0x9c, 0x21, 0xff, 0x6f, 0x8a, 0xff, 0xf9, 0x85, 0x35, 0x61,
- 0x8f, 0x01, 0xd7, 0xff, 0xff, 0x15, 0xa1, 0x81, 0xf7, 0x54, 0x3b, 0x2a,
- 0xe2, 0x7f, 0x8c, 0xe3, 0x48, 0x5c, 0x3a, 0xdc, 0x08, 0x0a, 0xe0, 0xc9,
- 0xb5, 0xd8, 0x7a, 0xe0, 0x6b, 0xc1, 0x67, 0x40, 0x63, 0xa0, 0x7b, 0x06,
- 0x08, 0xbc, 0xbd, 0x67, 0xf8, 0x45, 0x93, 0x48, 0x10, 0x17, 0x68, 0x60,
- 0x28, 0x60, 0x88, 0x6c, 0xb8, 0x44, 0xff, 0xf7, 0x64, 0x78, 0x7d, 0x3b,
- 0x73, 0x1a, 0x04, 0x9e, 0xec, 0xce, 0x48, 0xab, 0xb2, 0x00, 0x0c, 0xf7,
- 0xe9, 0xa6, 0x37, 0x7f, 0xd9, 0xbb, 0xdf, 0x1c, 0x6f, 0x69, 0x9c, 0x18,
- 0x63, 0x4a, 0xf1, 0x55, 0xfe, 0x75, 0x5e, 0x74, 0x20, 0x89, 0xa6, 0xfa,
- 0xc0, 0xc7, 0x27, 0x9e, 0xa5, 0xef, 0xe9, 0x1d, 0x55, 0x8b, 0x2a, 0xed,
- 0xf0, 0x16, 0xc4, 0x9c, 0x34, 0x03, 0x37, 0x84, 0x6f, 0x21, 0x70, 0xf3,
- 0x45, 0x28, 0x9f, 0x80, 0xf1, 0xe1, 0x1a, 0x5b, 0x8f, 0xa7, 0xa4, 0xff,
- 0x42, 0xeb, 0xd7, 0x2e, 0x84, 0x54, 0xf0, 0x91, 0x5f, 0x9a, 0x6c, 0xfe,
- 0xd3, 0xfc, 0x26, 0x2f, 0xbb, 0xf4, 0xe8, 0xe6, 0x80, 0x00, 0x40, 0x3c,
- 0x1c, 0xec, 0x40, 0x21, 0xee, 0x88, 0x87, 0xf4, 0xdf, 0x46, 0x2d, 0x14,
- 0x3b, 0x6f, 0x6d, 0x8b, 0xdb, 0xdf, 0x1f, 0xf0, 0x3f, 0xc5, 0xe2, 0xbf,
- 0xff, 0xf0, 0x89, 0xb0, 0x91, 0x9d, 0xe2, 0x02, 0x03, 0xaf, 0xb9, 0xf7,
- 0x5b, 0x43, 0xe8, 0x1d, 0x5e, 0x8e, 0x00, 0x28, 0x10, 0x0c, 0x8d, 0xf3,
- 0xfe, 0xf7, 0x50, 0x0c, 0x9e, 0x5f, 0xe6, 0x63, 0xe1, 0x42, 0x8a, 0x1c,
- 0x35, 0xc0, 0xe6, 0xfc, 0x54, 0x88, 0x05, 0xdd, 0x56, 0xfc, 0x00, 0xc0,
- 0xf5, 0x7c, 0x76, 0xc5, 0x83, 0x0c, 0x3a, 0xa9, 0xc0, 0x33, 0x34, 0xea,
- 0x1f, 0xf3, 0xf8, 0xc1, 0x0a, 0x2b, 0x66, 0x00, 0x6a, 0x10, 0x89, 0x2e,
- 0xc0, 0x0e, 0x80, 0x89, 0x12, 0xf4, 0x07, 0xae, 0x8b, 0x7d, 0x30, 0xfe,
- 0xc6, 0x6e, 0xfe, 0xec, 0xb3, 0x08, 0x9f, 0x3f, 0x1b, 0x1a, 0x87, 0xf9,
- 0xe2, 0xab, 0x09, 0xeb, 0x61, 0xbd, 0x5c, 0xe6, 0xe3, 0xd0, 0x79, 0x09,
- 0x8d, 0xc4, 0x72, 0x73, 0x08, 0xb4, 0x00, 0xcf, 0xaa, 0xff, 0xf7, 0xfb,
- 0x95, 0xf2, 0x29, 0xc3, 0x01, 0x09, 0xdc, 0x1b, 0xfd, 0xfe, 0xe1, 0xc4,
- 0x33, 0x34, 0xc8, 0x0f, 0x6e, 0xfc, 0x43, 0x8c, 0x07, 0x00, 0xf4, 0x30,
- 0x62, 0x1c, 0x03, 0xfe, 0x13, 0xe0, 0x24, 0x7a, 0xcf, 0xe7, 0xf5, 0x46,
- 0x04, 0x2d, 0x66, 0x97, 0xf4, 0x0f, 0xd8, 0x1f, 0xdf, 0xf8, 0x82, 0x04,
- 0x7d, 0xe7, 0x1f, 0xe4, 0xbf, 0x26, 0x11, 0xe7, 0x9d, 0xfe, 0x21, 0x60,
- 0x81, 0xe5, 0xff, 0xb4, 0x24, 0xba, 0x80, 0xfb, 0x64, 0xbc, 0x10, 0xb6,
- 0xb7, 0xf7, 0xe2, 0xf1, 0x05, 0xc7, 0x8a, 0x99, 0xa3, 0x97, 0xd4, 0xb8,
- 0x72, 0xf0, 0x01, 0x80, 0xcc, 0xc8, 0x0e, 0xbb, 0x97, 0xc7, 0x84, 0x90,
- 0xc8, 0x08, 0xad, 0x87, 0x21, 0x29, 0x27, 0x84, 0x92, 0xe3, 0xdd, 0xcf,
- 0xfe, 0x19, 0xc0, 0xab, 0x5a, 0x6a, 0x67, 0x77, 0xf1, 0x50, 0xde, 0x17,
- 0x98, 0xb1, 0xf7, 0x57, 0x36, 0xca, 0xd2, 0xce, 0xf4, 0x51, 0x98, 0xef,
- 0xb4, 0x47, 0x5f, 0x78, 0x33, 0xf1, 0xc5, 0x80, 0x33, 0xea, 0xbf, 0xfd,
- 0xff, 0x18, 0x49, 0x5f, 0xbe, 0x04, 0xc7, 0xbf, 0xe1, 0xd6, 0x0c, 0x72,
- 0x47, 0x7c, 0x0b, 0xb1, 0x3c, 0xaf, 0x42, 0x22, 0x73, 0x19, 0xd3, 0x0c,
- 0x73, 0xa6, 0x09, 0xc4, 0x0e, 0x87, 0xe2, 0x0f, 0xc0, 0xfd, 0xe7, 0x01,
- 0x5f, 0x72, 0xf0, 0xff, 0xb5, 0xc0, 0x11, 0x2e, 0xd1, 0x67, 0xc9, 0x7b,
- 0x73, 0x76, 0x6f, 0xfb, 0xfc, 0x77, 0x15, 0x87, 0x7d, 0x01, 0xef, 0x55,
- 0x81, 0xf6, 0xf8, 0x67, 0x7c, 0x0f, 0xf4, 0xfb, 0xf9, 0xe2, 0x73, 0xf9,
- 0xbe, 0x90, 0xfe, 0x11, 0x82, 0xbc, 0x02, 0xfa, 0xa0, 0x3e, 0xa0, 0x43,
- 0x82, 0x97, 0x3d, 0x06, 0x9e, 0xc0, 0x70, 0x4c, 0x3a, 0xa5, 0xb8, 0x60,
- 0x7d, 0x5f, 0x1d, 0xc0, 0x01, 0x5a, 0xda, 0x5f, 0x5e, 0xd7, 0x1e, 0xf2,
- 0xc3, 0xb9, 0x9c, 0x31, 0x07, 0xa0, 0xe8, 0x6c, 0x29, 0x28, 0x00, 0x24,
- 0xd2, 0x69, 0xa6, 0x9a, 0x6d, 0x3f, 0x80, 0x28, 0x26, 0x46, 0x02, 0x0a,
- 0x41, 0xb6, 0xaf, 0xff, 0xcc, 0x3d, 0xc7, 0xff, 0x87, 0xc8, 0x00, 0x18,
- 0x2b, 0x2f, 0xd3, 0x1c, 0x5e, 0x07, 0x0f, 0x35, 0xf7, 0x1f, 0xfe, 0x12,
- 0x2c, 0x01, 0xa5, 0x49, 0x4f, 0xcf, 0xf3, 0xc7, 0x40, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0x9c, 0xe4, 0x09, 0x5c, 0x86, 0x82, 0x07, 0x8c, 0x53,
- 0xf9, 0x50, 0x6a, 0x6d, 0x78, 0xcd, 0x45, 0xf7, 0xe3, 0x3f, 0xcb, 0xe0,
- 0x41, 0xfc, 0xcf, 0xb0, 0xb0, 0xcf, 0xff, 0x7e, 0x37, 0x91, 0xc1, 0x26,
- 0x87, 0xa8, 0xfe, 0xd2, 0x44, 0xa3, 0x7f, 0xe4, 0x8c, 0x0f, 0xd4, 0x71,
- 0x37, 0xf9, 0x79, 0x4d, 0x8c, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe0, 0x93, 0xe0, 0x76, 0xaf,
- 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xfc,
- 0xa4, 0x78, 0x46, 0xe3, 0x36, 0x20, 0x3f, 0x36, 0x10, 0x72, 0x7e, 0x86,
- 0xaf, 0xf5, 0xb0, 0xb1, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
- 0x0d, 0x60, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff,
- 0xeb, 0xfe, 0x18, 0xff, 0xd4, 0x38, 0x42, 0xa7, 0xc0, 0x11, 0x4d, 0x33,
- 0x84, 0xff, 0x8f, 0xc0, 0x07, 0x6c, 0x89, 0x8c, 0x80, 0xa9, 0x33, 0x57,
- 0x8b, 0xc4, 0x1b, 0x11, 0x8a, 0xff, 0xff, 0xff, 0xe1, 0x83, 0x40, 0xc1,
- 0x6c, 0xce, 0x4d, 0x5d, 0x8a, 0x33, 0xfb, 0x66, 0x62, 0xbc, 0x93, 0x86,
- 0xcb, 0xdb, 0xa6, 0x34, 0xc9, 0xc7, 0x8b, 0xe4, 0x43, 0xac, 0xdd, 0x52,
- 0x69, 0xe8, 0xcf, 0xf3, 0xd8, 0x03, 0x76, 0xd0, 0x05, 0xaf, 0x20, 0x6a,
- 0xe7, 0x72, 0x60, 0x62, 0x4f, 0x35, 0x6f, 0x3d, 0x2c, 0xbd, 0x48, 0xc3,
- 0x05, 0x4f, 0xb4, 0xbf, 0x09, 0x8b, 0x00, 0x67, 0x98, 0x1c, 0x3c, 0x9d,
- 0xcf, 0x9f, 0x2a, 0x81, 0xe9, 0x7f, 0x7e, 0xbe, 0xbd, 0xb3, 0x1a, 0xf4,
- 0x7f, 0xef, 0xb3, 0xfa, 0x51, 0x5f, 0xff, 0xc3, 0x1c, 0x78, 0x01, 0xa3,
- 0xea, 0x91, 0x66, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf0, 0x93, 0x78, 0x93,
- 0x50, 0x02, 0x73, 0xb9, 0x20, 0x91, 0x8b, 0x50, 0x02, 0x33, 0x73, 0x9a,
- 0xd5, 0xe5, 0x17, 0xc2, 0x49, 0x1c, 0x36, 0xb6, 0x48, 0xdf, 0x9e, 0x71,
- 0x26, 0xe0, 0x05, 0x26, 0x93, 0xf3, 0xff, 0xff, 0xdf, 0xff, 0xf0, 0xc5,
- 0x50, 0x58, 0x1c, 0x47, 0xfc, 0x24, 0xc2, 0x59, 0x9c, 0x44, 0x66, 0x97,
- 0x68, 0x1a, 0x18, 0x9b, 0xd5, 0x0f, 0xa7, 0xe3, 0xc5, 0x95, 0x2c, 0x67,
- 0x10, 0x93, 0x2a, 0xdc, 0xfc, 0x31, 0x9f, 0x5a, 0x66, 0x61, 0x9d, 0xf2,
- 0x8b, 0xff, 0x80, 0x73, 0xeb, 0x78, 0xed, 0xf0, 0xc7, 0xff, 0xee, 0xf0,
- 0xa9, 0x78, 0x04, 0xa2, 0x91, 0xb5, 0x5e, 0x62, 0xb6, 0xe9, 0xe1, 0xf3,
- 0x3c, 0xd6, 0xd7, 0xff, 0xf5, 0x86, 0x3f, 0xee, 0x22, 0xe3, 0xc6, 0x78,
- 0x01, 0x08, 0x7b, 0x44, 0x3a, 0x83, 0xf0, 0x04, 0xa2, 0x91, 0xb5, 0x5e,
- 0x0a, 0xdb, 0xa7, 0x87, 0xcc, 0xf0, 0x7e, 0xd6, 0xd7, 0xff, 0xf5, 0x0f,
- 0xf5, 0x88, 0x42, 0x80, 0x01, 0xf8, 0xa0, 0x00, 0x20, 0x03, 0x19, 0xb5,
- 0x81, 0xd1, 0x57, 0xfa, 0x1b, 0xad, 0xb6, 0xdf, 0x80, 0x04, 0x21, 0xee,
- 0x21, 0xd0, 0x28, 0xfc, 0x31, 0x3b, 0x6d, 0xb6, 0x9e, 0x0f, 0xc7, 0x64,
- 0x0c, 0x38, 0xc0, 0x7f, 0xfc, 0x3c, 0x70, 0x09, 0x5d, 0x27, 0x5f, 0xfd,
- 0x23, 0x37, 0xf1, 0xf0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35,
- 0x8a, 0xef, 0x97, 0x78, 0xce, 0xfb, 0xfb, 0xc6, 0xf7, 0xf9, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff,
- 0xff, 0xfe, 0x6e, 0xfd, 0xf2, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xe8, 0x41, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4,
- 0x14, 0xa2, 0x70, 0x10, 0xbf, 0x40, 0x7d, 0xf6, 0x2f, 0x15, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x28, 0x60, 0x02, 0x26, 0x63, 0x9a, 0x6d, 0xa1,
- 0x1a, 0x66, 0xc3, 0xe3, 0xa0, 0x05, 0xb6, 0x96, 0x09, 0x9e, 0x38, 0xc5,
- 0xc6, 0x38, 0xdd, 0x08, 0xdf, 0x4b, 0xca, 0x24, 0x5c, 0x81, 0xbf, 0x05,
- 0x99, 0x9e, 0x18, 0x79, 0xed, 0xcc, 0xaf, 0xf7, 0x3f, 0xd3, 0x82, 0x17,
- 0xc0, 0xe0, 0xb1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x64, 0xa9,
- 0x6b, 0x37, 0x00, 0x51, 0xd1, 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3,
- 0xc0, 0x55, 0x27, 0x27, 0xe1, 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xeb,
- 0x91, 0x60, 0x7a, 0xe0, 0xd9, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0xa9, 0xe4,
- 0xe8, 0xb0, 0x1e, 0xbc, 0x4c, 0xa8, 0x0f, 0x63, 0x8e, 0xe7, 0xff, 0xff,
- 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0x0c, 0x4d, 0xf8, 0x3d, 0x7a, 0x2c,
- 0x3f, 0x20, 0x68, 0xd2, 0xc4, 0x0e, 0x11, 0xfb, 0xd3, 0xef, 0xcf, 0xeb,
- 0xdf, 0x8e, 0xf7, 0xed, 0x61, 0x90, 0x2c, 0xc7, 0x7b, 0xc4, 0xe6, 0x0a,
- 0xae, 0xbf, 0x15, 0xe2, 0x8b, 0xb0, 0x20, 0x05, 0xbf, 0x5c, 0x7b, 0xf2,
- 0xf2, 0x9d, 0xf8, 0x05, 0x1f, 0xf0, 0x35, 0x11, 0x7e, 0x6f, 0xf5, 0xd7,
- 0x5c, 0x2b, 0x8f, 0xbb, 0xff, 0xaf, 0xf0, 0x07, 0xea, 0xa3, 0xbb, 0x8c,
- 0x1e, 0xda, 0x3d, 0x5c, 0xdf, 0xff, 0xda, 0x08, 0x5c, 0x01, 0x8a, 0xfa,
- 0x26, 0x48, 0xfb, 0xd1, 0x1d, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xa1, 0x04, 0x27, 0xe4, 0xe4, 0x24, 0x00, 0xcc, 0xac, 0x99, 0xa6, 0xbb,
- 0x5f, 0xf1, 0x06, 0x71, 0xdd, 0x03, 0xc2, 0x9e, 0xfc, 0x7f, 0x0a, 0x70,
- 0x00, 0x6f, 0xcf, 0xf0, 0x00, 0x00, 0xdc, 0x01, 0x75, 0xec, 0x19, 0x52,
- 0x60, 0x05, 0x17, 0x60, 0xe1, 0x51, 0x80, 0xdf, 0x8c, 0xff, 0x93, 0xdf,
- 0x8e, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff,
- 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
- 0x4f, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff,
- 0xaf, 0xf8, 0x63, 0xff, 0x50, 0xe1, 0x0a, 0x9f, 0x00, 0x45, 0x76, 0x71,
- 0x3f, 0xe3, 0xf0, 0x03, 0x52, 0x59, 0x88, 0x3a, 0x4a, 0xeb, 0xdd, 0x55,
- 0x95, 0xe3, 0x49, 0x8c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x04, 0x3b,
- 0x33, 0xec, 0x05, 0x62, 0x0c, 0xf7, 0x66, 0x66, 0x4a, 0xce, 0x4c, 0x3f,
- 0x5f, 0x0a, 0x61, 0xdb, 0x1b, 0x49, 0x1b, 0x53, 0x70, 0xbc, 0x01, 0x6a,
- 0x53, 0x06, 0x64, 0x98, 0x03, 0x76, 0xd0, 0x05, 0xaf, 0x10, 0x6a, 0x7e,
- 0x77, 0xda, 0x00, 0x7e, 0x45, 0xcf, 0x4d, 0x3a, 0xe7, 0xb8, 0x86, 0x1a,
- 0xdf, 0x3f, 0xf0, 0xf1, 0xc0, 0x6a, 0x26, 0x32, 0xac, 0x4b, 0xd7, 0xae,
- 0x34, 0x9f, 0x98, 0xaf, 0xff, 0xe1, 0x8e, 0x3d, 0x41, 0xc6, 0x60, 0xc5,
- 0x66, 0xc0, 0x23, 0xd7, 0xdb, 0x0f, 0x14, 0x74, 0xb7, 0x87, 0x65, 0xe0,
- 0x26, 0xe6, 0xb4, 0x1f, 0x20, 0x8e, 0xf7, 0x69, 0x47, 0xef, 0xde, 0xff,
- 0x06, 0xbc, 0xa9, 0x05, 0x7b, 0xbf, 0x64, 0x5d, 0x22, 0x77, 0x30, 0xe3,
- 0x47, 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc3, 0x16, 0xa6, 0xdf, 0xf8, 0x48,
- 0xf0, 0x0a, 0x3a, 0xb1, 0xef, 0xf2, 0x13, 0x4d, 0x63, 0xac, 0xa8, 0xdd,
- 0x05, 0xad, 0x04, 0x84, 0xe3, 0x0e, 0x7d, 0x6f, 0x1d, 0xbd, 0x86, 0x3e,
- 0x90, 0xfe, 0x10, 0xa6, 0x30, 0x27, 0x60, 0x3d, 0xab, 0xe4, 0xab, 0x59,
- 0xb6, 0xae, 0x3b, 0x6f, 0xc3, 0x02, 0x10, 0xd4, 0x3f, 0xe1, 0xfe, 0x01,
- 0x9e, 0x45, 0x2a, 0x4f, 0x25, 0x0c, 0x62, 0x18, 0x2f, 0xfc, 0x25, 0xc0,
- 0xf0, 0x1e, 0x64, 0x24, 0x7a, 0x37, 0x0e, 0x71, 0xec, 0xb9, 0x6a, 0x1c,
- 0x31, 0xfe, 0x01, 0xaa, 0xda, 0x15, 0x80, 0x4a, 0xdf, 0x7b, 0x0f, 0x77,
- 0xcb, 0x7e, 0x08, 0xe9, 0x94, 0x74, 0x00, 0xd8, 0xe4, 0x87, 0xea, 0x7d,
- 0xf7, 0x86, 0xc1, 0x96, 0xba, 0xc2, 0x0e, 0x3a, 0xa0, 0xd8, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x84, 0xf2, 0x2f, 0xde, 0x33, 0xef,
- 0xef, 0x1d, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf,
- 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2e, 0x14, 0x80, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xe9, 0x49, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0x98, 0xf8, 0x01, 0x81, 0xea, 0xf8, 0xec, 0xd3, 0x76, 0x90, 0x4f, 0xd8,
- 0x82, 0x89, 0x97, 0x87, 0x69, 0xb9, 0x3a, 0xbf, 0xf9, 0xfc, 0x46, 0x2b,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0xde, 0x87, 0x05, 0x94, 0x9d, 0x06, 0x30,
- 0xd6, 0xee, 0xbd, 0xa0, 0x45, 0x11, 0x5f, 0xdc, 0xfc, 0x00, 0xca, 0xf4,
- 0x63, 0xcc, 0x7f, 0xaf, 0x24, 0xeb, 0xdf, 0xab, 0xe0, 0x09, 0xd9, 0x96,
- 0x2f, 0xfd, 0xe8, 0xd0, 0xeb, 0x23, 0x13, 0x59, 0x83, 0xb3, 0xc1, 0x16,
- 0xe8, 0xab, 0xb4, 0x08, 0x5c, 0x02, 0x8e, 0xac, 0x3c, 0xd1, 0xec, 0x19,
- 0xa9, 0xc4, 0x0d, 0xd3, 0xc6, 0x32, 0x51, 0x3d, 0xfc, 0x7f, 0xd6, 0x5c,
- 0x08, 0xeb, 0x6c, 0xd4, 0xb1, 0x79, 0x2e, 0x9a, 0x84, 0x87, 0x21, 0x51,
- 0x22, 0x41, 0xba, 0xec, 0x7b, 0xcf, 0x1d, 0xbc, 0xce, 0x13, 0x28, 0xfe,
- 0xdb, 0xd7, 0x1d, 0x0b, 0x5f, 0xf8, 0xaf, 0xff, 0xff, 0x37, 0xf8, 0x14,
- 0x03, 0xc6, 0x2c, 0x00, 0x86, 0x32, 0xf2, 0x1c, 0x4d, 0x77, 0xc0, 0x0e,
- 0x2c, 0x76, 0xc0, 0xd2, 0xad, 0xef, 0xb4, 0x46, 0x9a, 0x27, 0xd5, 0xff,
- 0x9b, 0xf5, 0xb1, 0x6a, 0x9d, 0x93, 0x80, 0x35, 0x52, 0x36, 0x9f, 0x9c,
- 0x5b, 0xa9, 0x9e, 0x09, 0x1e, 0xec, 0x55, 0xe4, 0x58, 0x07, 0x03, 0xb6,
- 0x99, 0x63, 0xa6, 0x0c, 0x35, 0x37, 0x05, 0xb7, 0x8f, 0x55, 0xa6, 0x31,
- 0x73, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf9, 0xbf, 0x00, 0x87, 0xf0,
- 0x91, 0x78, 0x01, 0xb2, 0xf6, 0x60, 0x4a, 0x37, 0x5e, 0xf8, 0x80, 0x12,
- 0xb3, 0x26, 0x4e, 0x9e, 0xbc, 0x91, 0x08, 0x42, 0xd6, 0x1e, 0x11, 0xbf,
- 0xe1, 0xc6, 0xe0, 0x3a, 0xee, 0x34, 0x93, 0xbe, 0x3f, 0x98, 0xb3, 0x13,
- 0x77, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x3f,
- 0xf8, 0x7c, 0xfd, 0x81, 0xcd, 0x9f, 0xd0, 0xe7, 0xf0, 0x9a, 0xc3, 0x28,
- 0x3f, 0x0e, 0x6b, 0xc1, 0xf8, 0x6f, 0x01, 0x1b, 0xd4, 0x07, 0xd2, 0xac,
- 0xf1, 0x3f, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24,
- 0x11, 0xfb, 0x37, 0xe2, 0x7f, 0x4e, 0x14, 0x10, 0x00, 0xa7, 0xd3, 0x04,
- 0x29, 0xf3, 0xc0, 0x7e, 0x70, 0x25, 0x05, 0xcd, 0xfe, 0x74, 0x3f, 0x84,
- 0xde, 0xf0, 0x21, 0xed, 0x81, 0xfb, 0xd9, 0xf4, 0xd8, 0xb5, 0x0a, 0x47,
- 0x7c, 0xdf, 0xb1, 0x7b, 0x4b, 0x18, 0xa0, 0x4d, 0x84, 0x2a, 0x4c, 0x61,
- 0x5e, 0xf8, 0x11, 0x8a, 0x4c, 0x0f, 0xc2, 0x0e, 0xc3, 0xd4, 0xfe, 0xfc,
- 0x67, 0xfd, 0xf1, 0xeb, 0x02, 0x47, 0x4c, 0x8c, 0xde, 0x6f, 0x9e, 0x00,
- 0x06, 0x62, 0x80, 0x01, 0x98, 0x02, 0x4d, 0xec, 0x45, 0x0e, 0xba, 0x73,
- 0x80, 0x0f, 0x6b, 0xc0, 0xbb, 0xbd, 0xcc, 0xfc, 0xcc, 0x45, 0xff, 0xf8,
- 0x78, 0xa3, 0xb8, 0x8e, 0xd4, 0x07, 0xf8, 0xbb, 0xf0, 0x7e, 0x1f, 0x7e,
- 0x3b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xaa, 0x91, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb, 0xd7, 0xa2, 0x38, 0xaf, 0xff, 0xff,
- 0xf5, 0xf1, 0x44, 0x0d, 0xf5, 0xac, 0x22, 0x16, 0x06, 0x60, 0xbd, 0xca,
- 0xe0, 0x0c, 0x2f, 0x20, 0x23, 0x0a, 0x4e, 0x18, 0xf4, 0x77, 0x7c, 0x56,
- 0x4a, 0x55, 0x2d, 0x25, 0xbc, 0x43, 0x09, 0xfd, 0xbf, 0xc2, 0x62, 0xc2,
- 0x40, 0x62, 0x9c, 0xed, 0xf0, 0x75, 0xb2, 0x0e, 0xae, 0xe5, 0x9b, 0x02,
- 0x54, 0xbc, 0xf7, 0x15, 0xff, 0xeb, 0xe2, 0xcd, 0x43, 0x09, 0x18, 0xa6,
- 0xe0, 0x28, 0x0e, 0x91, 0x50, 0xb7, 0x29, 0xf7, 0x38, 0x6d, 0x0d, 0x9d,
- 0xd4, 0xd2, 0x61, 0xff, 0xff, 0xef, 0xff, 0xd7, 0x90, 0x44, 0x44, 0x41,
- 0x44, 0xae, 0x04, 0x3a, 0x58, 0x38, 0x3f, 0x21, 0x14, 0x37, 0xed, 0xcd,
- 0x79, 0xbf, 0xb9, 0x4f, 0xb4, 0xf4, 0x86, 0x60, 0xa5, 0x52, 0x9b, 0x73,
- 0xe3, 0x55, 0x1e, 0x5c, 0x7d, 0xe3, 0x2f, 0x3e, 0xb7, 0x8e, 0xde, 0xf5,
- 0x8c, 0xdb, 0x88, 0xc3, 0x19, 0x87, 0xd7, 0x4a, 0x9c, 0x5b, 0xc1, 0x3b,
- 0xc7, 0xb1, 0xe1, 0x94, 0x37, 0x8f, 0xf0, 0x8f, 0x8e, 0xe3, 0xbf, 0xc6,
- 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x81, 0x0f, 0x6b,
- 0xc3, 0x1d, 0x74, 0xfa, 0x9c, 0x60, 0x9c, 0x40, 0x09, 0xf0, 0xe1, 0xcf,
- 0x7e, 0x00, 0x0f, 0xc3, 0x28, 0x6f, 0x18, 0x47, 0xc7, 0x71, 0xf8, 0x63,
- 0xf6, 0x2c, 0xc1, 0xa5, 0x8c, 0xc1, 0x34, 0x83, 0x4e, 0x3f, 0x02, 0x7f,
- 0xc7, 0xb2, 0xb8, 0xf1, 0x42, 0x5e, 0xf1, 0x9f, 0x6b, 0xd6, 0xfe, 0x61,
- 0xc3, 0xde, 0x3b, 0xc6, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff,
- 0xff, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51,
- 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09, 0xc3, 0x68, 0x3f, 0x8e,
- 0x00, 0x00, 0xde, 0x22, 0x6e, 0x3d, 0x50, 0x00, 0x63, 0xab, 0xeb, 0xf5,
- 0xde, 0x52, 0xe5, 0x9c, 0xf1, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x22,
- 0x28, 0x8f, 0xb1, 0xfa, 0x9e, 0xad, 0xce, 0xa4, 0x68, 0x07, 0x77, 0xf8,
- 0xf0, 0x7e, 0x10, 0xb5, 0x9f, 0xfd, 0x24, 0x46, 0xd6, 0x7f, 0xdf, 0x1e,
- 0x03, 0x98, 0x39, 0x8a, 0x12, 0x28, 0xb9, 0xd4, 0x6c, 0x85, 0x51, 0xe0,
- 0x17, 0xfc, 0x65, 0x89, 0x91, 0xae, 0x68, 0x4f, 0x2c, 0xdf, 0xdb, 0x78,
- 0xce, 0x05, 0xaa, 0xaa, 0x98, 0x4d, 0x58, 0x18, 0x85, 0xe8, 0x51, 0xbf,
- 0xfe, 0xd3, 0x7e, 0xbc, 0xbb, 0xd0, 0x4b, 0xc0, 0x02, 0xb5, 0xbb, 0xc8,
- 0x33, 0xf0, 0xec, 0x6a, 0x04, 0x2e, 0x00, 0xbd, 0xc2, 0x32, 0x22, 0x4a,
- 0x60, 0x3e, 0x20, 0x16, 0x09, 0x16, 0x23, 0x2a, 0xf1, 0xfe, 0x6f, 0xc1,
- 0x8a, 0x0a, 0xaa, 0x8f, 0x01, 0xc1, 0xdc, 0x41, 0x5d, 0xe1, 0x1c, 0x24,
- 0x2a, 0x62, 0x19, 0x88, 0x6e, 0xd7, 0x8a, 0xff, 0xff, 0xfe, 0x39, 0x70,
- 0x99, 0xf6, 0xbc, 0x25, 0x6e, 0xc0, 0xdb, 0x7d, 0xf9, 0x01, 0xf3, 0x7e,
- 0x1f, 0x9b, 0xf5, 0xb3, 0xcd, 0x01, 0xb6, 0xb8, 0x01, 0xc0, 0x7c, 0xc6,
- 0x1e, 0xd4, 0x3c, 0xdb, 0x85, 0x3a, 0x7e, 0x78, 0x00, 0xf9, 0xf1, 0x4c,
- 0x86, 0xac, 0xaf, 0xfd, 0x65, 0xd7, 0x25, 0x3f, 0xef, 0x5f, 0xc0, 0xad,
- 0xb7, 0xf2, 0x9e, 0xff, 0xfe, 0xb6, 0x16, 0xb9, 0x21, 0xaf, 0x7f, 0xfb,
- 0xe4, 0xe7, 0xc0, 0x7f, 0xa3, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
- 0xff, 0xc4, 0x78, 0x69, 0x0b, 0x3e, 0x43, 0x30, 0x82, 0xe6, 0x2c, 0x7f,
- 0xfe, 0x12, 0x80, 0x47, 0x57, 0xdb, 0x52, 0xa6, 0xe3, 0x74, 0x9a, 0xb8,
- 0x3e, 0x9a, 0x03, 0x11, 0xb5, 0x5a, 0x86, 0x32, 0xa1, 0x6e, 0x12, 0x2a,
- 0xe5, 0x73, 0xfe, 0x7f, 0x5e, 0xfc, 0x77, 0xbf, 0x7e, 0x3b, 0xd9, 0xbe,
- 0x1f, 0xc6, 0x90, 0x42, 0x58, 0x1c, 0x83, 0x11, 0x33, 0x13, 0x35, 0x9b,
- 0xfb, 0xe7, 0x89, 0xae, 0x63, 0x43, 0x68, 0x76, 0x06, 0xbc, 0x05, 0x86,
- 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44, 0x15, 0xfb, 0x36,
- 0x1f, 0xc7, 0xf0, 0x98, 0x80, 0x03, 0x15, 0xc4, 0x6c, 0x80, 0x00, 0x40,
- 0x27, 0x57, 0x80, 0x60, 0xc2, 0x7e, 0xbb, 0x53, 0xff, 0x67, 0xb2, 0xa4,
- 0xc6, 0x1c, 0x83, 0x11, 0x33, 0xc4, 0x44, 0xfc, 0x50, 0x89, 0xc3, 0x63,
- 0x40, 0x80, 0xe8, 0x51, 0x4f, 0x3b, 0xbf, 0x19, 0xff, 0x46, 0x4f, 0xfc,
- 0x7e, 0x13, 0x89, 0x9a, 0xcd, 0xfd, 0xff, 0xe0, 0x01, 0x97, 0xf7, 0x4e,
- 0xe9, 0x22, 0x95, 0x21, 0xc4, 0x00, 0x95, 0x04, 0xdf, 0xfd, 0xc9, 0xcb,
- 0x19, 0xe0, 0x06, 0x7d, 0xfd, 0x67, 0x6c, 0x00, 0xcf, 0xbf, 0xac, 0xec,
- 0x1f, 0xfe, 0x53, 0x3d, 0xf8, 0x02, 0x3b, 0x49, 0x81, 0xfe, 0x27, 0xfb,
- 0x56, 0x07, 0xf9, 0x40, 0x00, 0x07, 0xf5, 0xc0, 0xc0, 0xd8, 0x71, 0x77,
- 0x6f, 0x0f, 0x16, 0x67, 0x25, 0xf8, 0xf3, 0x40, 0x41, 0xdf, 0xff, 0x84,
- 0x94, 0x01, 0x9c, 0x10, 0x93, 0x29, 0x05, 0x54, 0xdb, 0xff, 0x73, 0xe2,
- 0x4e, 0xdc, 0xa2, 0x70, 0x22, 0xf2, 0x28, 0x22, 0xf9, 0x3f, 0xfe, 0x4f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff,
- 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0xd3, 0x60, 0x29,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6,
- 0x13, 0x84, 0x7a, 0x6a, 0x80, 0x8f, 0x24, 0x66, 0x48, 0xcb, 0xfa, 0x19,
- 0x89, 0x8a, 0xff, 0xff, 0xff, 0x7e, 0x18, 0x0e, 0x71, 0x0a, 0x83, 0xb5,
- 0x02, 0x30, 0x24, 0x67, 0xad, 0x48, 0x00, 0x02, 0x3e, 0x01, 0x3f, 0x91,
- 0xae, 0xde, 0xff, 0x81, 0x30, 0xa7, 0x4f, 0x98, 0x77, 0xb9, 0x38, 0xda,
- 0x9a, 0x1a, 0xaa, 0x7c, 0xe0, 0x81, 0xc3, 0x01, 0xfc, 0x25, 0xf8, 0x20,
- 0x16, 0x18, 0xd4, 0xb6, 0xe5, 0xbe, 0xbf, 0xe1, 0x00, 0xad, 0xe5, 0x1e,
- 0xde, 0xf1, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0x83, 0x0c, 0x03, 0xd9, 0x38,
- 0x08, 0xca, 0x3d, 0x3f, 0x38, 0x8d, 0xcb, 0x3d, 0x9e, 0x01, 0x31, 0xe3,
- 0x5a, 0x27, 0xb9, 0xdd, 0xb2, 0x23, 0x0b, 0xfe, 0xe7, 0xf2, 0x78, 0xa6,
- 0x7c, 0xff, 0xff, 0xf7, 0xff, 0xef, 0xc3, 0x1c, 0x30, 0x7f, 0xf8, 0x4b,
- 0x80, 0x26, 0xe9, 0xa7, 0x53, 0xc4, 0x28, 0x99, 0x78, 0x03, 0x5c, 0x9b,
- 0x73, 0xb6, 0x3e, 0xb7, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0xa4, 0x2f, 0x09,
- 0x78, 0x6f, 0xbc, 0x31, 0x87, 0xd2, 0x9f, 0x82, 0x06, 0x00, 0xf7, 0xff,
- 0x1d, 0xfb, 0x30, 0x37, 0x7d, 0x8e, 0xfe, 0x7a, 0x7c, 0x6c, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x82, 0x3d, 0x86, 0x3a, 0x7c, 0x74,
- 0xa6, 0x09, 0xc4, 0x40, 0x4c, 0x5e, 0x80, 0x03, 0x8f, 0x50, 0x6e, 0x05,
- 0xb0, 0x14, 0x60, 0xc0, 0x76, 0xe2, 0xb0, 0xf7, 0xfb, 0xc6, 0x7d, 0x06,
- 0x3d, 0x12, 0x9f, 0x4e, 0x14, 0x69, 0x57, 0x77, 0xe0, 0x19, 0xfa, 0x3e,
- 0x7d, 0xa5, 0x5d, 0xdf, 0xca, 0x80, 0x64, 0x6e, 0xeb, 0xdb, 0xc6, 0x0d,
- 0xf8, 0x23, 0x3e, 0x5f, 0xde, 0x3d, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f,
- 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59, 0x03,
- 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x99, 0x84, 0xf0, 0x03, 0xc5,
- 0x25, 0xcd, 0xc9, 0xff, 0xa2, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x98, 0x3b, 0x58, 0x11, 0x45, 0xc7, 0x1b, 0x09, 0x27, 0xc0, 0x8f,
- 0xf0, 0xfe, 0x4f, 0xe0, 0x39, 0x10, 0xa8, 0x2e, 0xc2, 0x02, 0xfe, 0x47,
- 0x2e, 0xf4, 0x6c, 0x9a, 0x39, 0x57, 0x80, 0x03, 0x10, 0xbd, 0x0a, 0x37,
- 0xeb, 0xed, 0x76, 0x5e, 0x0f, 0x60, 0x6c, 0xc2, 0x23, 0x34, 0xb2, 0x21,
- 0x22, 0xb8, 0x59, 0x60, 0xe4, 0x23, 0x16, 0x5a, 0x4f, 0x06, 0x1f, 0xc4,
- 0x8b, 0xf8, 0x35, 0x99, 0x8a, 0x95, 0x8e, 0xcc, 0x6e, 0xd7, 0xca, 0x58,
- 0x14, 0x11, 0xcc, 0x88, 0x11, 0xa3, 0xfe, 0x2b, 0xff, 0xff, 0xfe, 0x6f,
- 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3, 0x51,
- 0x88, 0x71, 0x27, 0xa7, 0xe0, 0x18, 0x29, 0xe4, 0x55, 0x39, 0xf0, 0x11,
- 0x17, 0xc3, 0xac, 0xa3, 0xa8, 0xa1, 0xd2, 0xe1, 0x01, 0x8a, 0x7f, 0x3f,
- 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xfc, 0xd1, 0xf0, 0xff, 0xc2, 0x50,
- 0xfa, 0x68, 0x18, 0x8d, 0x8a, 0xd5, 0xfe, 0x00, 0x8a, 0x68, 0x18, 0x8d,
- 0x55, 0x6a, 0x00, 0x45, 0x38, 0x18, 0x8b, 0x65, 0x6a, 0xf0, 0xe7, 0xf5,
- 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x6f, 0x63, 0xe1, 0x42,
- 0xc0, 0x04, 0x61, 0xaf, 0xab, 0xbf, 0xbf, 0xd1, 0x95, 0xaa, 0xa6, 0xbb,
- 0xb0, 0x02, 0x1b, 0xa4, 0xef, 0x5f, 0x9e, 0x0c, 0x81, 0x00, 0x42, 0xa0,
- 0xe2, 0x62, 0x7d, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xad,
- 0x64, 0x37, 0xe8, 0xdf, 0x96, 0xd6, 0xf8, 0x91, 0x1c, 0x00, 0xcc, 0xa9,
- 0x9a, 0x27, 0xab, 0xc0, 0x01, 0x89, 0xae, 0x42, 0xd6, 0x10, 0x02, 0x81,
- 0xc3, 0xc2, 0x4b, 0x7f, 0x74, 0xef, 0x10, 0x8e, 0xee, 0x5c, 0x48, 0xff,
- 0x9f, 0x44, 0x44, 0xd7, 0xbf, 0x19, 0xe8, 0xcc, 0x61, 0xf6, 0xb7, 0xe1,
- 0x31, 0x00, 0x21, 0xdf, 0x1f, 0x8e, 0x41, 0x84, 0xcb, 0x7a, 0xd2, 0x6f,
- 0x97, 0xbc, 0xe3, 0xb2, 0x40, 0x5a, 0x06, 0x20, 0xd4, 0x6e, 0x37, 0xfc,
- 0xf1, 0x3f, 0xfd, 0xf8, 0xde, 0x43, 0x40, 0x0c, 0xb3, 0x8c, 0x99, 0x1b,
- 0x75, 0xef, 0xcc, 0x21, 0xe0, 0x1f, 0xf0, 0xf6, 0x12, 0x4a, 0x6d, 0xc1,
- 0x7e, 0x0c, 0x0f, 0x53, 0xff, 0xaf, 0xff, 0xc9, 0xe0, 0x44, 0x08, 0xfe,
- 0xd4, 0x24, 0x70, 0x68, 0x90, 0x13, 0x8f, 0xbc, 0x39, 0xe5, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
- 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f,
- 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x25, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa, 0xcc, 0x27,
- 0x02, 0x46, 0x4c, 0xdc, 0xcb, 0xa0, 0xab, 0x29, 0x70, 0x9f, 0x04, 0x2c,
- 0x57, 0xff, 0xff, 0xff, 0x58, 0x44, 0x60, 0x36, 0xad, 0x4b, 0x9b, 0xfb,
- 0xfd, 0xac, 0xbc, 0x04, 0x22, 0x1d, 0x09, 0x66, 0x7f, 0x96, 0x32, 0xd1,
- 0x80, 0x19, 0x55, 0xe1, 0x58, 0x5d, 0xfe, 0xcd, 0x23, 0x99, 0xe4, 0x91,
- 0xc4, 0x75, 0x66, 0x7c, 0x30, 0x14, 0xf8, 0x5f, 0xf0, 0x99, 0xc9, 0x00,
- 0x5e, 0xe4, 0x1c, 0xab, 0xe6, 0x13, 0x05, 0xef, 0xc5, 0xbd, 0x9f, 0x14,
- 0x03, 0x51, 0xee, 0xa5, 0x3e, 0xfe, 0xa8, 0xaf, 0xff, 0xeb, 0x19, 0xe0,
- 0x97, 0xf8, 0xd5, 0x7b, 0x00, 0x22, 0x2f, 0x47, 0x20, 0x9d, 0x7f, 0xcd,
- 0x6b, 0xfc, 0x0f, 0x36, 0x78, 0x3e, 0x61, 0x5d, 0xd6, 0x79, 0x4a, 0x43,
- 0x60, 0x78, 0xaf, 0x6d, 0xe8, 0x1c, 0x90, 0x34, 0xdf, 0x0f, 0xf9, 0xa7,
- 0xdd, 0xb7, 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc9, 0xc0, 0xf0, 0x21, 0x04,
- 0x0e, 0x5f, 0xef, 0x3f, 0x34, 0x25, 0x8e, 0x78, 0x01, 0x97, 0xdd, 0x76,
- 0x3f, 0xcb, 0x80, 0x0d, 0x69, 0x09, 0x6f, 0x69, 0xb0, 0x18, 0x9f, 0xbc,
- 0x81, 0x0a, 0x18, 0x87, 0x8e, 0x36, 0x91, 0x22, 0x7e, 0x79, 0xf5, 0xbc,
- 0x76, 0xf7, 0x8e, 0xd8, 0x63, 0xe1, 0xff, 0xc3, 0xe5, 0x80, 0x44, 0xd7,
- 0x67, 0xd6, 0xd6, 0x1d, 0x03, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x2e, 0xac, 0x55, 0x84, 0xf4, 0x18, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07,
- 0x22, 0x30, 0x15, 0x32, 0x04, 0x5a, 0xaa, 0x9e, 0xbe, 0xb7, 0x8c, 0xd0,
- 0x63, 0xff, 0xda, 0x18, 0x21, 0x80, 0x10, 0xdd, 0x5d, 0xeb, 0xf3, 0xdf,
- 0xc1, 0x57, 0xde, 0x35, 0x7a, 0xc8, 0x80, 0x78, 0xc8, 0xe9, 0x85, 0x80,
- 0x00, 0x80, 0x0f, 0xdf, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xec, 0x61, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
- 0xff, 0x98, 0x4f, 0x00, 0x30, 0xa9, 0xa6, 0xbb, 0xbd, 0xfa, 0xc3, 0x32,
- 0xbc, 0xc4, 0x5a, 0xdc, 0x1c, 0x7a, 0xdf, 0x15, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf3, 0x07, 0x27, 0xbd, 0x41, 0xd1, 0x57, 0x63, 0x10, 0xb8, 0x03,
- 0x7d, 0x96, 0xd6, 0xa4, 0x5b, 0x10, 0x25, 0x87, 0x4d, 0x02, 0xab, 0x37,
- 0xd4, 0x7f, 0x3f, 0x39, 0x26, 0x5c, 0xf8, 0x01, 0x08, 0x7b, 0x42, 0x7a,
- 0x83, 0xf5, 0xd9, 0x78, 0x3d, 0x81, 0xb2, 0x51, 0x5e, 0xb4, 0xf4, 0x6f,
- 0x2d, 0xea, 0x5e, 0x27, 0xc4, 0x9d, 0xcd, 0x36, 0x7f, 0x69, 0xfe, 0x13,
- 0x17, 0x5d, 0xf3, 0xb8, 0x00, 0x04, 0x00, 0xce, 0xdf, 0x3b, 0x18, 0x22,
- 0xfc, 0x67, 0xf7, 0xd7, 0xf2, 0xf3, 0x03, 0x2d, 0xf4, 0xd7, 0x97, 0xb6,
- 0x1f, 0x67, 0xe2, 0xf1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x2a, 0x44, 0xc4,
- 0xee, 0xab, 0x66, 0xe1, 0x33, 0xed, 0x78, 0x38, 0x89, 0xda, 0x58, 0x44,
- 0xd6, 0x3f, 0xcf, 0xe0, 0x11, 0x4a, 0xf6, 0x07, 0xc8, 0x46, 0xfe, 0xbe,
- 0x01, 0x89, 0x85, 0x95, 0x3f, 0x52, 0xcd, 0xd0, 0x6a, 0x42, 0x2f, 0xe7,
- 0xdd, 0xf6, 0x45, 0xcf, 0xc2, 0xc0, 0x9c, 0x76, 0x59, 0x41, 0x76, 0x0e,
- 0x64, 0xc1, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xe6, 0x08, 0xae,
- 0x05, 0xff, 0x09, 0x30, 0x1d, 0xdb, 0x51, 0xc7, 0xa0, 0xf9, 0x24, 0x3b,
- 0x2e, 0xa1, 0xec, 0x6e, 0x5a, 0xc4, 0xcb, 0x1e, 0xd4, 0x0b, 0x15, 0x93,
- 0x3c, 0xb3, 0xf4, 0x2d, 0x49, 0xff, 0xd4, 0x99, 0x3f, 0x49, 0x97, 0x3c,
- 0x19, 0xfd, 0x7b, 0xf1, 0xde, 0xfd, 0xf8, 0xef, 0x66, 0xf8, 0x10, 0xc8,
- 0xb9, 0x63, 0x0b, 0x00, 0x11, 0x86, 0xbe, 0xae, 0xfe, 0xff, 0x00, 0xed,
- 0xe0, 0x97, 0x80, 0x00, 0xe0, 0x0b, 0x57, 0xf4, 0x04, 0x3a, 0xc0, 0xed,
- 0x81, 0x09, 0xef, 0xbe, 0xfc, 0x6c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xb1, 0x84, 0x37, 0xf3, 0x7e, 0x59, 0x11, 0x7c, 0x13, 0x08, 0x80, 0x0b,
- 0xe9, 0x4d, 0xcc, 0x11, 0x87, 0x3f, 0x5d, 0x00, 0x75, 0x7e, 0x09, 0x72,
- 0x00, 0x0e, 0x07, 0x6c, 0x08, 0x40, 0x3a, 0xbf, 0x04, 0xb9, 0x3c, 0x07,
- 0x81, 0xb3, 0xfc, 0x44, 0x4f, 0xef, 0xc6, 0x1a, 0x99, 0x91, 0xb7, 0xcf,
- 0x8a, 0x11, 0x00, 0x0b, 0x46, 0xbb, 0xac, 0xe2, 0xbe, 0xdf, 0x69, 0xf7,
- 0x01, 0xff, 0xff, 0x71, 0x6d, 0xf8, 0x25, 0xc8, 0x40, 0x63, 0xb5, 0xcc,
- 0xdd, 0xa6, 0xf8, 0xec, 0xf7, 0x57, 0xc2, 0x6d, 0x81, 0xfb, 0xd9, 0xf9,
- 0xb2, 0xfa, 0xc4, 0xf5, 0xc5, 0xbe, 0xff, 0x8c, 0xd6, 0x07, 0xe3, 0xbf,
- 0xe0, 0x08, 0xd7, 0xab, 0x3d, 0xcb, 0xa4, 0xe5, 0xe4, 0x34, 0x79, 0xff,
- 0xfb, 0xf1, 0xa6, 0xfa, 0xff, 0xf0, 0xf9, 0x30, 0x0b, 0xd4, 0x90, 0x1a,
- 0x88, 0xbf, 0x81, 0xb7, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xab, 0x57, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x3f, 0x18, 0x54, 0xf8, 0x00,
- 0x96, 0xb7, 0x2f, 0xd5, 0x5f, 0x80, 0x0e, 0xd9, 0x13, 0x31, 0x07, 0xf3,
- 0x35, 0x7b, 0x80, 0xec, 0x46, 0x2b, 0xff, 0xff, 0xff, 0x86, 0x03, 0xc0,
- 0xe8, 0xa2, 0xfa, 0xe3, 0x05, 0x35, 0x02, 0xb4, 0xe3, 0xc5, 0xd9, 0x12,
- 0x65, 0xa9, 0x0c, 0xad, 0xaa, 0xbd, 0xa0, 0x01, 0x8d, 0x8a, 0x2d, 0xe6,
- 0xdb, 0xc3, 0xf2, 0x60, 0xcd, 0x3c, 0xd5, 0x9e, 0x7c, 0x89, 0xa4, 0x61,
- 0x82, 0xa0, 0x7b, 0x4b, 0xf0, 0x98, 0xb0, 0x09, 0x84, 0x1c, 0x3c, 0x83,
- 0xcf, 0x98, 0x43, 0xcb, 0xde, 0x70, 0x8d, 0xb7, 0x1b, 0xc8, 0xff, 0xbf,
- 0x3e, 0xfb, 0xd8, 0xaf, 0xff, 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48,
- 0xb3, 0x60, 0x06, 0x07, 0x95, 0xf1, 0xd8, 0x7a, 0xba, 0x58, 0x7a, 0xb9,
- 0x30, 0x56, 0x28, 0xa0, 0x24, 0x39, 0x97, 0x80, 0x91, 0xb9, 0xaa, 0x79,
- 0x45, 0xf0, 0xb4, 0x8e, 0x1b, 0x5b, 0x24, 0xdf, 0x9e, 0x71, 0x4d, 0xc0,
- 0x0a, 0x83, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c, 0x02, 0xa0, 0xb0, 0x38,
- 0xff, 0xc2, 0x4c, 0xca, 0x24, 0x8f, 0x55, 0xe0, 0x6d, 0x4f, 0xc8, 0x0f,
- 0xdb, 0xc8, 0x74, 0xd4, 0x27, 0x03, 0xb7, 0xf6, 0x7f, 0x08, 0xdb, 0x4f,
- 0x46, 0x77, 0xca, 0x2f, 0xfe, 0x00, 0x67, 0xd6, 0xf1, 0xdb, 0xde, 0x3b,
- 0x61, 0x8f, 0x81, 0x0f, 0xb7, 0x8c, 0x2c, 0x04, 0x4d, 0xda, 0xf7, 0xb0,
- 0x04, 0x7b, 0xf4, 0x1f, 0xde, 0x80, 0x00, 0x7c, 0x01, 0x76, 0xf4, 0x08,
- 0xe9, 0x31, 0xd6, 0xb8, 0x77, 0xfc, 0xff, 0x77, 0x8d, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41,
- 0x09, 0xa0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33,
- 0x7e, 0x50, 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59,
- 0xd9, 0xe3, 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb,
- 0x06, 0xf7, 0x8c, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c,
- 0x02, 0x47, 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0f,
- 0xf5, 0xde, 0xa7, 0x3f, 0xf8, 0xe9, 0xca, 0xea, 0xb1, 0x16, 0xed, 0xe1,
- 0xfb, 0xb7, 0x66, 0xe2, 0x1b, 0x89, 0xaf, 0xbc, 0x68, 0x63, 0xeb, 0xff,
- 0xc3, 0xe4, 0x80, 0x6e, 0xa8, 0x68, 0x8b, 0xfe, 0x5f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf,
- 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xed, 0x69, 0x01, 0x2f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4, 0x14, 0xa2, 0xf0, 0x23,
- 0x7a, 0x3b, 0xec, 0x5e, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50,
- 0xc0, 0x03, 0x41, 0x3c, 0x39, 0xb6, 0xa7, 0x83, 0xf7, 0x19, 0xe1, 0xf4,
- 0xe6, 0xa8, 0xbf, 0xb6, 0xb1, 0x4b, 0xc7, 0x10, 0xb8, 0xc6, 0xad, 0x43,
- 0xcc, 0xe1, 0xbc, 0xe7, 0xca, 0x24, 0x4c, 0x87, 0xd0, 0x0e, 0xda, 0xc0,
- 0x43, 0xcf, 0x6e, 0x65, 0x7f, 0xb9, 0xfd, 0x67, 0x04, 0x2f, 0x81, 0xc1,
- 0x62, 0xbf, 0xff, 0xff, 0xe6, 0xfc, 0x41, 0x95, 0x09, 0x52, 0xd6, 0x4e,
- 0x00, 0xa3, 0xa2, 0x1d, 0x47, 0xe6, 0xd8, 0x3a, 0xb7, 0xe7, 0x80, 0xaa,
- 0x4e, 0x4f, 0xc2, 0x8d, 0x00, 0x4d, 0x09, 0x48, 0xae, 0xbc, 0x58, 0x1e,
- 0xb8, 0x36, 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07,
- 0xaf, 0x13, 0x2a, 0x03, 0xd8, 0xe3, 0xb9, 0xff, 0xff, 0xff, 0xfe, 0xff,
- 0xff, 0xff, 0xfd, 0xb0, 0x8d, 0xaf, 0x41, 0x77, 0x98, 0x1c, 0x1f, 0x30,
- 0xc3, 0x4a, 0x3f, 0xaf, 0x7e, 0x3b, 0xdf, 0xbf, 0x1d, 0xf3, 0x7f, 0xf7,
- 0xc5, 0xe1, 0x52, 0xe0, 0x12, 0x3f, 0x5e, 0xc2, 0x7f, 0xb5, 0x2a, 0xf0,
- 0x1e, 0xa7, 0x48, 0xdf, 0x9b, 0x40, 0xdc, 0xdf, 0xf7, 0xdf, 0xc6, 0x78,
- 0x01, 0x4d, 0xd9, 0x8a, 0x29, 0x70, 0x03, 0x27, 0xcc, 0x14, 0x2a, 0xff,
- 0x46, 0x47, 0xf2, 0x83, 0xef, 0xed, 0x7f, 0xb6, 0x6a, 0xa7, 0x80, 0x3f,
- 0xcd, 0xbb, 0x90, 0x08, 0xff, 0xc2, 0x5c, 0x5b, 0x17, 0xdc, 0x09, 0x3f,
- 0x7f, 0xf4, 0x01, 0x6f, 0xf3, 0xf9, 0x0d, 0x14, 0xd6, 0xdf, 0x9f, 0xef,
- 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4, 0x25, 0x90,
- 0x86, 0x80, 0x2b, 0x73, 0x44, 0xd0, 0x75, 0x7e, 0x6d, 0x3e, 0x91, 0x4f,
- 0x84, 0xe0, 0x00, 0x38, 0x7e, 0x2d, 0x4e, 0x1a, 0xf4, 0x3d, 0x33, 0xc1,
- 0x3e, 0xc0, 0xf9, 0x15, 0x00, 0x98, 0xff, 0xc4, 0x4f, 0x5e, 0xfc, 0x61,
- 0xa7, 0x9c, 0xcf, 0xe7, 0xc5, 0x08, 0x90, 0x9b, 0x03, 0xf0, 0xbf, 0x31,
- 0xa0, 0x3f, 0xf0, 0xd2, 0x0f, 0xc3, 0xeb, 0x01, 0x33, 0xcf, 0x13, 0x5f,
- 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff,
- 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xab, 0x99, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13, 0x80, 0x07, 0xfa, 0xb2, 0x96, 0x6c,
- 0xc5, 0xff, 0xb7, 0xd6, 0x57, 0x8c, 0x1e, 0x31, 0x5f, 0xff, 0xff, 0xfc,
- 0x30, 0x1c, 0x20, 0xd5, 0x07, 0x1c, 0xa3, 0x04, 0x0e, 0xb3, 0x69, 0x23,
- 0x6a, 0x6e, 0x17, 0x80, 0x2d, 0x94, 0xc1, 0x99, 0x26, 0x00, 0x31, 0x0f,
- 0x68, 0x87, 0x8f, 0xde, 0xd4, 0x53, 0xd0, 0x71, 0xf0, 0xdc, 0xcd, 0x64,
- 0x40, 0xab, 0x7e, 0xb5, 0x08, 0x05, 0x8c, 0xe0, 0x5c, 0x05, 0x56, 0x2e,
- 0xfa, 0xfe, 0x43, 0xe9, 0x6b, 0x15, 0xff, 0xfc, 0x31, 0xc7, 0xa8, 0x38,
- 0xcc, 0x18, 0xac, 0xd8, 0x08, 0xf5, 0xfb, 0x7c, 0x7b, 0x1a, 0x96, 0xf0,
- 0xec, 0xbc, 0x06, 0xdd, 0xa5, 0x8f, 0x4d, 0xff, 0x48, 0x0f, 0x3d, 0x7f,
- 0x83, 0xbd, 0x52, 0x15, 0xea, 0x7d, 0x96, 0x15, 0x69, 0xd4, 0xf2, 0x25,
- 0xd9, 0xff, 0xff, 0xef, 0xff, 0xf8, 0x62, 0xc0, 0x9b, 0x63, 0xfc, 0x24,
- 0x78, 0x06, 0x3d, 0x34, 0xff, 0x20, 0x1b, 0x5a, 0xcc, 0x4a, 0x82, 0x6d,
- 0xc2, 0xde, 0x16, 0x27, 0x18, 0x73, 0xeb, 0x78, 0xed, 0xef, 0x1c, 0xbd,
- 0x7a, 0x05, 0x01, 0x03, 0x38, 0x03, 0x23, 0xf3, 0xd0, 0xff, 0xf4, 0x00,
- 0x7a, 0xa8, 0xf4, 0x86, 0x1f, 0xe7, 0xa8, 0x38, 0x63, 0xe0, 0xe2, 0xff,
- 0xe2, 0x57, 0x00, 0x4f, 0x9b, 0x16, 0x54, 0x65, 0x01, 0x09, 0x6b, 0xdf,
- 0x93, 0xf6, 0x07, 0xe1, 0x3c, 0x5b, 0xd7, 0x01, 0x8f, 0x07, 0xde, 0x36,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xae, 0x65, 0x82, 0x25, 0xe1, 0x8d,
- 0x3d, 0xd1, 0xc4, 0xde, 0x5b, 0x15, 0x80, 0x10, 0x5b, 0xbf, 0x48, 0xfd,
- 0xc7, 0xe0, 0x87, 0x7b, 0x46, 0xc4, 0xe0, 0x32, 0x23, 0x58, 0xf9, 0xf8,
- 0x49, 0x64, 0x8c, 0x0f, 0x46, 0x36, 0xe6, 0xec, 0x0f, 0xde, 0x3b, 0xbe,
- 0xf4, 0x0e, 0x01, 0x03, 0x28, 0x12, 0xfa, 0x3f, 0xf9, 0xa0, 0xdd, 0xdf,
- 0x24, 0x87, 0xff, 0xa8, 0xef, 0xf6, 0x06, 0x4d, 0xe3, 0x03, 0x14, 0xce,
- 0x67, 0xf3, 0xe2, 0x96, 0xdc, 0x1c, 0x1b, 0xf4, 0x01, 0xc2, 0x27, 0x07,
- 0xe1, 0x3d, 0xf8, 0x66, 0x26, 0xbe, 0xf1, 0xdf, 0x2f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f,
- 0xf2, 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xee, 0x71,
- 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0x4f, 0x01, 0xbf, 0x85,
- 0xdb, 0x13, 0x2f, 0x00, 0x49, 0xff, 0x2a, 0xfb, 0xde, 0xfc, 0x46, 0x2b,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x89, 0x26, 0x32, 0x28, 0xc0, 0x09,
- 0xba, 0x69, 0xaa, 0x79, 0xb2, 0xa5, 0x05, 0xef, 0x32, 0xa5, 0x19, 0x90,
- 0x7d, 0x60, 0x04, 0x47, 0x53, 0x65, 0xff, 0x6c, 0xa7, 0x0e, 0xf4, 0xc6,
- 0x8b, 0xbc, 0xe0, 0x7f, 0x27, 0x89, 0x88, 0x88, 0x96, 0x31, 0x37, 0x90,
- 0x8f, 0x16, 0x78, 0xf6, 0x13, 0x05, 0xee, 0x4b, 0x7f, 0xc0, 0x44, 0x69,
- 0xf6, 0xff, 0xd5, 0x94, 0x17, 0x90, 0xd4, 0x41, 0xe9, 0x1b, 0x6f, 0xcd,
- 0x83, 0x1c, 0xb4, 0xd0, 0x35, 0x5b, 0xe1, 0xcf, 0xd0, 0x97, 0x70, 0x8d,
- 0xa4, 0x33, 0x1f, 0x32, 0x43, 0xed, 0x2f, 0xc2, 0x67, 0x07, 0x67, 0x14,
- 0x27, 0x7d, 0x5e, 0x20, 0x7e, 0x1f, 0xe5, 0x9f, 0xf1, 0x5f, 0xff, 0xfe,
- 0x6f, 0xc5, 0x01, 0xa1, 0x46, 0x6b, 0x5c, 0x04, 0x7b, 0xe7, 0xe6, 0x44,
- 0xd7, 0xb8, 0x6c, 0x7c, 0x6b, 0xcd, 0x1e, 0x6f, 0xfc, 0x6d, 0x54, 0xdf,
- 0xfa, 0xa4, 0x09, 0x10, 0xfe, 0xc5, 0xa4, 0x12, 0x29, 0xfa, 0x1d, 0x53,
- 0x9b, 0xf5, 0xb1, 0x05, 0x53, 0xb5, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xce,
- 0x2d, 0xd4, 0xcf, 0x22, 0x3d, 0xd8, 0xab, 0xc8, 0xb0, 0x0e, 0x0f, 0x6e,
- 0x4c, 0x63, 0xa6, 0x0c, 0x35, 0x37, 0x05, 0xb7, 0x8f, 0x55, 0xa6, 0x31,
- 0x73, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf9, 0xa5, 0x18, 0x0f, 0xe1,
- 0xc2, 0x4e, 0x00, 0x96, 0xbf, 0xd0, 0x63, 0x7a, 0x40, 0x80, 0x48, 0xca,
- 0x91, 0x81, 0x0b, 0x32, 0xb3, 0x4e, 0x3d, 0xe7, 0xfc, 0x78, 0x9b, 0xa1,
- 0xb9, 0x5e, 0x48, 0x8c, 0xbd, 0xf6, 0x11, 0xbf, 0xe1, 0xc6, 0xd7, 0xd7,
- 0x71, 0xa5, 0x65, 0x04, 0x20, 0x66, 0xae, 0xbf, 0x3f, 0xaf, 0x7e, 0x3b,
- 0x98, 0xb0, 0x03, 0xad, 0x68, 0x28, 0x3a, 0x7f, 0x49, 0xe0, 0x00, 0x77,
- 0x37, 0xf8, 0x8e, 0xbe, 0x15, 0xbf, 0x22, 0x07, 0x98, 0x9a, 0xfc, 0x0f,
- 0x00, 0x8b, 0xd7, 0x6d, 0x37, 0xff, 0x1d, 0x56, 0x15, 0xe5, 0xe2, 0x20,
- 0x74, 0x0a, 0xb2, 0xc2, 0x7f, 0xa6, 0x07, 0x91, 0xd3, 0x7f, 0x82, 0x78,
- 0xe8, 0x76, 0x29, 0xc0, 0x72, 0x36, 0x08, 0x99, 0x07, 0x23, 0x60, 0x89,
- 0x90, 0x18, 0x2b, 0x34, 0xc0, 0x21, 0x1d, 0x59, 0x12, 0xfa, 0x0c, 0x64,
- 0xe2, 0xc0, 0x5a, 0x00, 0xa8, 0xf1, 0x13, 0xe6, 0x1e, 0x2f, 0xff, 0xc2,
- 0x42, 0x00, 0x22, 0xf5, 0xdb, 0x17, 0x88, 0xfc, 0x0e, 0x81, 0x56, 0x42,
- 0x76, 0xe4, 0x37, 0x5f, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xb9, 0xc4, 0x11, 0x21, 0x01, 0x0f, 0xe5, 0x30, 0x23, 0xd0, 0x1f,
- 0xca, 0x3d, 0x7f, 0xff, 0xc4, 0x4f, 0xfb, 0xf1, 0x8a, 0x27, 0xe2, 0x42,
- 0x3a, 0xfc, 0xff, 0xff, 0x7e, 0x37, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xff,
- 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0xdb, 0x60,
- 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
- 0xd7, 0xbe, 0x2b, 0xff, 0xff, 0xfd, 0x7a, 0xc5, 0x22, 0xa1, 0x18, 0x09,
- 0x40, 0x30, 0x18, 0x97, 0x6a, 0xb8, 0x00, 0x04, 0xc2, 0xf2, 0x02, 0x72,
- 0x93, 0x86, 0x56, 0x8e, 0xe7, 0xc5, 0x64, 0x96, 0xab, 0x1a, 0x4b, 0x78,
- 0x86, 0x12, 0x1f, 0x6f, 0xf0, 0x98, 0xb1, 0x61, 0x8a, 0x17, 0x6f, 0x96,
- 0x13, 0x20, 0xea, 0xf9, 0x66, 0xc0, 0x95, 0x2c, 0xf7, 0x15, 0xff, 0xeb,
- 0xe2, 0xcd, 0x43, 0x08, 0x5b, 0x6e, 0x05, 0x01, 0xd2, 0x2a, 0x16, 0xe5,
- 0x3e, 0xe7, 0x0d, 0xa1, 0xb3, 0xba, 0x9a, 0x4c, 0x3f, 0xff, 0xfd, 0xff,
- 0xfa, 0xf6, 0x22, 0x20, 0xa2, 0x57, 0x02, 0x15, 0x2c, 0x0e, 0x4f, 0xe4,
- 0x11, 0xfa, 0xfc, 0x65, 0xd7, 0x72, 0xbb, 0x28, 0xee, 0xe9, 0xea, 0xc5,
- 0x14, 0x4a, 0xa0, 0xad, 0xe9, 0x1a, 0xec, 0x79, 0x4f, 0x57, 0x9d, 0x75,
- 0xbc, 0x72, 0xf0, 0xdc, 0x5e, 0xbf, 0x7a, 0xc6, 0x06, 0x3e, 0x11, 0xfa,
- 0x42, 0x14, 0x11, 0xc0, 0xc2, 0x54, 0xb5, 0x89, 0x63, 0xc2, 0x6a, 0x18,
- 0xc0, 0x37, 0x01, 0xff, 0x0f, 0x3e, 0x03, 0x08, 0x9b, 0x6d, 0x86, 0x30,
- 0x08, 0x07, 0xfe, 0x1f, 0x80, 0x90, 0x75, 0x6f, 0xcd, 0xe9, 0xf8, 0x26,
- 0xa0, 0x00, 0x85, 0xee, 0xee, 0xfb, 0xf8, 0x08, 0xd5, 0x31, 0x07, 0x5f,
- 0xff, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaf, 0x6d, 0x81,
- 0x08, 0x13, 0x48, 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x80, 0x3f, 0xdc,
- 0x36, 0x9b, 0xff, 0xf2, 0xef, 0x19, 0xf7, 0xf7, 0x8d, 0xff, 0x2f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff,
- 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x21, 0xef, 0x79, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff,
- 0x78, 0x89, 0x84, 0xea, 0x00, 0x44, 0x7b, 0xbf, 0x8f, 0xdf, 0x2f, 0x8a,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x30, 0xe8, 0x1e, 0x30, 0x10, 0x2a,
- 0x46, 0x87, 0x31, 0x83, 0x11, 0x88, 0xb3, 0xc4, 0x0a, 0xa3, 0x64, 0x00,
- 0x3a, 0xd7, 0xcd, 0xd9, 0xff, 0xd1, 0x19, 0x2d, 0xcf, 0x00, 0x6a, 0x0b,
- 0xc4, 0x98, 0xb9, 0x9b, 0x5d, 0xbd, 0xf5, 0xf8, 0xdc, 0x91, 0xb6, 0x08,
- 0x0a, 0xf4, 0x3a, 0x3f, 0x16, 0x3f, 0xe7, 0x7d, 0x96, 0x5b, 0x00, 0x46,
- 0xfb, 0xcb, 0xfc, 0x3b, 0x1a, 0x82, 0x2e, 0x01, 0x7b, 0x89, 0x28, 0x92,
- 0x98, 0x1e, 0x20, 0x14, 0x09, 0x17, 0xbe, 0x60, 0x6f, 0x1f, 0xee, 0x3e,
- 0x9d, 0x51, 0x83, 0x82, 0xa9, 0x4d, 0xda, 0xf0, 0x9e, 0x45, 0x84, 0xc4,
- 0x44, 0x5d, 0xaf, 0x15, 0xff, 0xff, 0xfc, 0x59, 0x24, 0xdc, 0xb4, 0x2a,
- 0x36, 0x3b, 0x9b, 0xf5, 0xb3, 0xc1, 0x01, 0xb7, 0xe0, 0x0a, 0x0e, 0x82,
- 0x3d, 0x67, 0xe6, 0xdc, 0xce, 0x4f, 0xcf, 0x00, 0x38, 0xc4, 0xd1, 0xb2,
- 0x35, 0xde, 0xf8, 0x64, 0xa0, 0x3b, 0xd7, 0xf3, 0x03, 0xab, 0xef, 0xb7,
- 0xcc, 0xda, 0xea, 0x3b, 0x3f, 0xfd, 0xa3, 0xbd, 0x01, 0xec, 0x67, 0x9f,
- 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xfe, 0x62, 0x20, 0x0f, 0x0f, 0xf0,
- 0x94, 0x02, 0x3d, 0x7d, 0xb4, 0xe0, 0x77, 0xd2, 0x17, 0xd0, 0x72, 0xd0,
- 0xca, 0x69, 0x5b, 0xb0, 0x79, 0x8f, 0x91, 0x1b, 0x55, 0xf9, 0xff, 0x39,
- 0xa5, 0x95, 0x41, 0xad, 0xac, 0x6c, 0xb0, 0x09, 0x19, 0xd3, 0x0f, 0xc3,
- 0xa5, 0x18, 0x39, 0xed, 0x84, 0x3e, 0x03, 0x7b, 0xfe, 0x07, 0xff, 0xfd,
- 0xfd, 0xc6, 0x8a, 0xb4, 0x07, 0xd1, 0x9e, 0x00, 0xf6, 0xfd, 0x0a, 0xa0,
- 0x74, 0x2f, 0x80, 0x1e, 0xee, 0xbd, 0x48, 0xfb, 0xcb, 0xf3, 0x7f, 0x9c,
- 0xcf, 0xe0, 0x81, 0xcb, 0x68, 0xfd, 0x79, 0x80, 0xc3, 0x77, 0x5f, 0xff,
- 0x55, 0xe8, 0x3f, 0x09, 0x3c, 0x71, 0xbe, 0xd0, 0xfb, 0x4a, 0x14, 0x50,
- 0xec, 0x98, 0x81, 0xf7, 0xf2, 0x7c, 0xa2, 0x11, 0xb7, 0xba, 0xbf, 0xc0,
- 0x40, 0x66, 0x9e, 0xb1, 0x3f, 0xf8, 0x4b, 0xf0, 0x0f, 0x00, 0x5d, 0x5d,
- 0xb0, 0x21, 0xd7, 0xfe, 0x00, 0x8d, 0x7a, 0x59, 0xee, 0x53, 0x7f, 0x99,
- 0xcf, 0x5c, 0x2a, 0x80, 0x19, 0x9f, 0xab, 0x10, 0xf3, 0xa0, 0x7e, 0x04,
- 0x4d, 0xe0, 0x7e, 0xf6, 0x75, 0xb8, 0x3f, 0x0b, 0xbf, 0x1d, 0xec, 0xde,
- 0x6d, 0xff, 0xc3, 0xe5, 0x54, 0x3b, 0xc0, 0x6e, 0xb6, 0x95, 0x5b, 0xaf,
- 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xbd, 0xe4, 0x57,
- 0x21, 0x27, 0x0b, 0xc7, 0x47, 0x5f, 0x95, 0x18, 0x39, 0x87, 0x50, 0x5f,
- 0x4b, 0xef, 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf,
- 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe,
- 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x2d, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
- 0x87, 0xb1, 0x50, 0x13, 0x63, 0x69, 0x38, 0xfa, 0x19, 0x89, 0x8a, 0xff,
- 0xff, 0xff, 0x7e, 0x18, 0x30, 0x22, 0x38, 0x83, 0xc4, 0x1a, 0x61, 0x61,
- 0x20, 0x25, 0x6d, 0xe7, 0xff, 0x78, 0xe4, 0xc8, 0x7a, 0xb4, 0xe0, 0x00,
- 0x23, 0xe0, 0xea, 0xcc, 0xcd, 0xb4, 0x83, 0x04, 0xca, 0xef, 0xd4, 0x25,
- 0x1a, 0x71, 0xb5, 0x31, 0x9e, 0xb5, 0x78, 0x70, 0xc0, 0x7f, 0x0f, 0xf0,
- 0x40, 0x2c, 0x67, 0x36, 0xe5, 0xff, 0x5b, 0xc6, 0x23, 0xeb, 0x5f, 0xf5,
- 0xbc, 0x57, 0xff, 0xbf, 0x0c, 0x7e, 0xb6, 0x18, 0x07, 0xb2, 0x70, 0x11,
- 0x94, 0xf4, 0xfc, 0xea, 0xf2, 0xf2, 0xf0, 0x04, 0xde, 0x6b, 0xa9, 0xe7,
- 0xda, 0x44, 0xc5, 0x4f, 0x3f, 0xd6, 0x52, 0x67, 0xce, 0xbf, 0xff, 0xf7,
- 0xff, 0xfc, 0x31, 0xc3, 0x07, 0xff, 0x84, 0xb8, 0x02, 0xbd, 0x34, 0xd4,
- 0x78, 0x81, 0x49, 0x97, 0x80, 0x8b, 0x37, 0xce, 0xd8, 0xeb, 0x2b, 0xc0,
- 0x9f, 0x84, 0xff, 0xa6, 0xa9, 0xf6, 0xb8, 0x6e, 0x2e, 0x4c, 0x70, 0x63,
- 0xed, 0x0f, 0xb4, 0x21, 0x41, 0x16, 0x05, 0x08, 0x5c, 0x9f, 0xb4, 0x6d,
- 0x66, 0x0e, 0x18, 0xae, 0xaa, 0x0b, 0xff, 0x0f, 0xb0, 0x0f, 0xaf, 0x1e,
- 0xc0, 0x81, 0xf8, 0x63, 0x55, 0xf0, 0xea, 0xa1, 0x82, 0x75, 0x80, 0x7f,
- 0x4e, 0x5c, 0xa8, 0xb0, 0x8c, 0x16, 0x4d, 0x1e, 0xf0, 0xc7, 0xc3, 0xd5,
- 0x7e, 0x08, 0x16, 0x3e, 0x1d, 0xd6, 0x06, 0x85, 0xe3, 0xb6, 0x18, 0x8e,
- 0xaf, 0xff, 0xc3, 0xe5, 0x01, 0xdf, 0xc3, 0xbb, 0x13, 0xab, 0x48, 0x6e,
- 0xbf, 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb0, 0x75, 0x83,
- 0x27, 0xf9, 0x77, 0x8c, 0xfb, 0xfb, 0xc6, 0xff, 0x97, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37,
- 0xf9, 0x7f, 0xff, 0xff, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf0,
- 0x81, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x98, 0xb1, 0x38,
- 0x09, 0xfd, 0xd7, 0x53, 0x7f, 0x00, 0x15, 0x34, 0x9a, 0xe5, 0xbe, 0x43,
- 0xbe, 0xe9, 0xe2, 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x28, 0x43, 0x09,
- 0xb0, 0xdc, 0x97, 0x83, 0x7c, 0x22, 0xc3, 0xe8, 0x5b, 0x40, 0x9d, 0xee,
- 0x83, 0xfe, 0xef, 0xf1, 0x02, 0x81, 0x36, 0x52, 0xd1, 0xe1, 0x70, 0x24,
- 0x7d, 0x01, 0x7f, 0x49, 0x03, 0xe0, 0x7c, 0x9d, 0xd9, 0xfe, 0x66, 0x32,
- 0x60, 0x6b, 0x03, 0xc6, 0x31, 0x0b, 0x24, 0xd8, 0xa4, 0xf4, 0x35, 0xbc,
- 0xff, 0xe6, 0x51, 0x1c, 0xb9, 0x03, 0xb7, 0xcf, 0xe0, 0x08, 0xee, 0xbe,
- 0x5e, 0x49, 0xdb, 0x04, 0x8c, 0xc2, 0xa0, 0xbb, 0x05, 0xca, 0x66, 0xd8,
- 0x8b, 0x1b, 0xbd, 0x4d, 0x2c, 0x86, 0x8f, 0x12, 0xef, 0x21, 0x83, 0x6c,
- 0x8d, 0xcf, 0xfd, 0x77, 0xe3, 0x65, 0x8f, 0x08, 0x84, 0x2e, 0x58, 0x5a,
- 0x04, 0x22, 0x52, 0x16, 0x58, 0x38, 0x44, 0x21, 0x92, 0xd2, 0x78, 0x38,
- 0x03, 0xc7, 0xe2, 0x45, 0xfc, 0x14, 0xd0, 0xdc, 0xdc, 0x75, 0x3d, 0x4a,
- 0x37, 0x6b, 0xed, 0x33, 0xf0, 0x05, 0x02, 0x18, 0x65, 0x51, 0xbb, 0x5e,
- 0x58, 0x2c, 0x71, 0x5f, 0xff, 0xff, 0xc6, 0x13, 0x82, 0x3d, 0xb3, 0xdd,
- 0x99, 0x36, 0x3f, 0x90, 0x5f, 0x9f, 0x63, 0xde, 0x43, 0x56, 0xc0, 0xc1,
- 0x69, 0xa6, 0x81, 0x66, 0xfd, 0x60, 0x4c, 0xc1, 0xef, 0xc0, 0x03, 0x31,
- 0xb6, 0xf4, 0x49, 0xb9, 0xd5, 0x6d, 0x63, 0x47, 0x44, 0x5d, 0xaf, 0xd0,
- 0x39, 0x04, 0x8d, 0xaa, 0x95, 0xea, 0xc0, 0x11, 0xc8, 0xda, 0x41, 0x33,
- 0x8b, 0x48, 0x5a, 0x54, 0x13, 0x18, 0x2d, 0x12, 0x67, 0xf6, 0x22, 0x37,
- 0x11, 0xec, 0xdf, 0xff, 0x91, 0x41, 0x09, 0xa0, 0x02, 0xf4, 0xbf, 0x82,
- 0x85, 0x2b, 0x1f, 0x98, 0x0e, 0xd0, 0x1f, 0x9f, 0xe1, 0xf8, 0x0c, 0xdf,
- 0xbd, 0xe5, 0x14, 0xa5, 0x93, 0x80, 0x20, 0x62, 0xb0, 0x35, 0x0c, 0x7b,
- 0xf2, 0x00, 0x3e, 0xf0, 0x32, 0x44, 0x20, 0x07, 0x48, 0x43, 0xba, 0x41,
- 0x53, 0xe3, 0xdd, 0x03, 0x94, 0x27, 0xa6, 0x05, 0x18, 0x3f, 0x5c, 0x3e,
- 0x00, 0x7f, 0xf0, 0x8f, 0x16, 0xfa, 0x40, 0x3d, 0x1c, 0x96, 0xcb, 0x9d,
- 0xfd, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x22, 0x09, 0x33, 0xc6, 0xec,
- 0x20, 0x3f, 0x12, 0x69, 0xf7, 0x4d, 0x18, 0x61, 0xff, 0x84, 0xa1, 0xd2,
- 0x46, 0x40, 0x18, 0x42, 0x60, 0x36, 0xd4, 0x0b, 0xe0, 0x07, 0x49, 0x19,
- 0x00, 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x74, 0x91, 0x90, 0x06, 0x10,
- 0x92, 0x83, 0x6d, 0x5e, 0x1c, 0xef, 0x06, 0x20, 0x40, 0x12, 0x58, 0x00,
- 0xfe, 0x94, 0xc7, 0x58, 0x8a, 0x73, 0xbe, 0x86, 0x61, 0xd7, 0xe6, 0xec,
- 0x37, 0xd9, 0xcd, 0xf4, 0xff, 0xe1, 0xf2, 0xc2, 0x19, 0xc9, 0x91, 0xa7,
- 0x1e, 0xaf, 0x7e, 0x60, 0xa7, 0xd3, 0x4f, 0x89, 0x37, 0xc0, 0x28, 0x3b,
- 0x6c, 0x0f, 0xa8, 0x1f, 0x62, 0xc1, 0x74, 0x7a, 0xbe, 0x69, 0x7f, 0xfa,
- 0xff, 0x00, 0x12, 0x55, 0x13, 0x77, 0x17, 0xde, 0x42, 0x22, 0xff, 0x3e,
- 0x18, 0xf0, 0xc4, 0xdc, 0x50, 0x88, 0x47, 0xc1, 0xf5, 0x19, 0x19, 0xe0,
- 0x39, 0x9d, 0x2a, 0x1f, 0x6f, 0x42, 0x62, 0x73, 0x53, 0xd3, 0xe9, 0x4c,
- 0x50, 0xc9, 0x31, 0xb5, 0x81, 0xf6, 0xf0, 0xff, 0xe0, 0x04, 0x11, 0xbb,
- 0xf4, 0x8f, 0xdc, 0x7a, 0x23, 0x58, 0xf9, 0xfe, 0x02, 0x32, 0xb4, 0xe7,
- 0x6a, 0xf7, 0xbf, 0x3f, 0x9f, 0x98, 0xf0, 0xd4, 0x9b, 0x2a, 0x40, 0xed,
- 0x85, 0x2c, 0x00, 0x22, 0xb7, 0x77, 0x75, 0xdf, 0xe0, 0x03, 0xe8, 0x3b,
- 0x5c, 0xee, 0x8c, 0x9e, 0xaf, 0x7f, 0xfd, 0xf9, 0xfc, 0xd0, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x09, 0x5c, 0x84, 0x8d, 0xc0, 0xab,
- 0x69, 0xe5, 0x41, 0x23, 0x0b, 0x17, 0xe0, 0x4f, 0xb8, 0xce, 0xd9, 0x79,
- 0x57, 0x0c, 0xae, 0x53, 0xf1, 0x9c, 0x54, 0xe2, 0xb1, 0xd0, 0xc4, 0xba,
- 0x23, 0x4c, 0xbb, 0xcf, 0xe2, 0xdb, 0x45, 0xb0, 0xc2, 0x1e, 0xc7, 0x21,
- 0xb6, 0x7b, 0xa7, 0x7c, 0xca, 0x09, 0xbe, 0x06, 0x69, 0x7f, 0x6c, 0x08,
- 0x5a, 0x8f, 0xfb, 0xd5, 0xfb, 0xed, 0xf8, 0xdf, 0xf7, 0x38, 0x54, 0x08,
- 0x9e, 0x80, 0xd2, 0xe3, 0xfe, 0xd4, 0x37, 0x05, 0xd8, 0x7c, 0x7d, 0xf9,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf,
- 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x5f, 0x60,
- 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa,
- 0x2c, 0xa2, 0x70, 0x23, 0xf6, 0x68, 0xd2, 0xfa, 0xe2, 0xbf, 0xff, 0xfe,
- 0xfd, 0xfa, 0xc2, 0x22, 0x00, 0x06, 0x45, 0x65, 0x17, 0x37, 0xdf, 0xf6,
- 0x1b, 0xde, 0x04, 0x22, 0x1d, 0xa1, 0x2c, 0x3d, 0xff, 0xa7, 0x8c, 0xb4,
- 0x60, 0x04, 0xde, 0x9e, 0x17, 0x87, 0xdf, 0xed, 0x18, 0x4d, 0x8d, 0x78,
- 0x7b, 0x88, 0xe2, 0x3a, 0xb3, 0x01, 0xa8, 0x63, 0x4f, 0x85, 0xff, 0x09,
- 0x9c, 0x22, 0x06, 0xc0, 0x02, 0x45, 0xea, 0xbe, 0x4c, 0xc6, 0x25, 0xdd,
- 0xd2, 0xef, 0x67, 0xc5, 0x00, 0x3d, 0x8b, 0xd2, 0x94, 0xfb, 0xfb, 0x8a,
- 0xff, 0xf7, 0xeb, 0x19, 0xe0, 0x45, 0xed, 0xdb, 0xfc, 0x5e, 0xc0, 0x0a,
- 0xcc, 0x87, 0x35, 0x67, 0xa4, 0xd6, 0x3f, 0xe0, 0x79, 0xb3, 0xc0, 0xdb,
- 0x1d, 0x24, 0xbb, 0xbc, 0xf8, 0xf3, 0x4f, 0x53, 0x03, 0xde, 0xff, 0xdb,
- 0xc7, 0x70, 0xb1, 0x10, 0x64, 0xdf, 0x3f, 0xf8, 0xc3, 0xee, 0xb6, 0x38,
- 0x63, 0xff, 0xf2, 0x28, 0x21, 0x2c, 0x00, 0x2f, 0x24, 0xdd, 0x7a, 0x13,
- 0x95, 0xbb, 0xfc, 0x38, 0x07, 0xe1, 0xd6, 0x52, 0x7c, 0x01, 0x56, 0x9a,
- 0x06, 0x39, 0xf3, 0xc7, 0xff, 0xfb, 0xff, 0xf7, 0xe4, 0xe0, 0x7c, 0x10,
- 0x80, 0x4d, 0xbe, 0x3f, 0xff, 0xb3, 0x2d, 0xca, 0x84, 0xb9, 0xcf, 0x01,
- 0xb7, 0x77, 0x5c, 0xc7, 0xf9, 0x70, 0x01, 0xa4, 0x90, 0x96, 0x3a, 0xd3,
- 0x60, 0x18, 0xdf, 0xbc, 0xac, 0x85, 0x04, 0x46, 0xb2, 0x06, 0x7a, 0x42,
- 0x44, 0x1c, 0x0c, 0xe1, 0x89, 0x5a, 0x19, 0x13, 0x7e, 0x13, 0x2c, 0x39,
- 0x07, 0xe1, 0x98, 0x38, 0x3f, 0x0c, 0x00, 0xe3, 0x53, 0xcf, 0x4b, 0xfa,
- 0x16, 0x18, 0x04, 0x9e, 0x98, 0x66, 0x00, 0x71, 0x5f, 0x00, 0x3f, 0xaa,
- 0xb6, 0xcf, 0xff, 0x8f, 0x00, 0xfe, 0xc2, 0x80, 0x23, 0x7d, 0x7a, 0xff,
- 0x6f, 0xfc, 0x01, 0x56, 0xe6, 0xe3, 0xe4, 0xab, 0xbc, 0x73, 0xe8, 0x35,
- 0x13, 0x86, 0x12, 0x69, 0x0e, 0x71, 0x09, 0xe2, 0xc6, 0x00, 0x8b, 0x7e,
- 0xbf, 0xc0, 0xff, 0xc1, 0x1f, 0xc7, 0x76, 0xff, 0x00, 0xd7, 0xdc, 0x7a,
- 0x1b, 0xc7, 0x3e, 0xc9, 0x11, 0x90, 0x4e, 0x02, 0x0d, 0x50, 0x1f, 0xe2,
- 0xfb, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x8a,
- 0x7f, 0x97, 0x78, 0xc7, 0xfb, 0xfb, 0xc6, 0xf7, 0xf9, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xf3,
- 0x7f, 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x01,
- 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x5f, 0xff, 0xfd, 0x7e, 0x49, 0x44, 0xe0, 0x26, 0xd3, 0x6f, 0xf5,
- 0x71, 0xec, 0x4f, 0x64, 0x88, 0x9b, 0x80, 0x0f, 0x9b, 0xd6, 0x42, 0x3a,
- 0x92, 0xbb, 0x60, 0x88, 0xbf, 0xff, 0xff, 0xff, 0xf8, 0xa1, 0x50, 0xd2,
- 0x4d, 0xd0, 0x74, 0x86, 0x84, 0xdd, 0x01, 0x04, 0x66, 0x53, 0x26, 0x64,
- 0xc5, 0xeb, 0xb6, 0x98, 0xd4, 0xcd, 0x21, 0x11, 0xb9, 0x40, 0xed, 0x8e,
- 0xb2, 0x28, 0x04, 0x78, 0xf0, 0xe3, 0xa9, 0x8e, 0x47, 0x85, 0x4d, 0x2d,
- 0xc3, 0xdf, 0x5c, 0x1f, 0x7e, 0xfe, 0x36, 0xf4, 0xb3, 0xf7, 0xf5, 0x6c,
- 0x43, 0xb3, 0x3c, 0xe6, 0x60, 0x7c, 0x09, 0xdf, 0x98, 0x65, 0x4b, 0x7f,
- 0x80, 0x28, 0xb2, 0x4c, 0x69, 0x1e, 0xfc, 0xde, 0xc7, 0xac, 0xe8, 0x80,
- 0xb1, 0x8c, 0x23, 0xe4, 0xfc, 0x03, 0x16, 0x28, 0x18, 0x5e, 0xb2, 0xb6,
- 0x98, 0x23, 0x34, 0xc0, 0xce, 0x2a, 0x31, 0xa1, 0x3b, 0xeb, 0xc9, 0x3a,
- 0x7b, 0xf5, 0x7b, 0xb8, 0x31, 0xa7, 0x00, 0x5a, 0xa2, 0xcd, 0x66, 0x34,
- 0xce, 0x20, 0xcc, 0xf6, 0xa0, 0x59, 0x00, 0x9f, 0xdb, 0x33, 0x13, 0xa4,
- 0xe1, 0xb2, 0xe3, 0xf5, 0x0d, 0xab, 0x55, 0xdf, 0x39, 0x00, 0x00, 0xc9,
- 0x73, 0xdc, 0xc9, 0xdd, 0xb4, 0x01, 0x6b, 0x99, 0x06, 0xa8, 0xf0, 0x09,
- 0xcb, 0x27, 0x45, 0x68, 0x77, 0x9a, 0x47, 0x1b, 0x53, 0x36, 0xba, 0xa7,
- 0xfc, 0xe0, 0x8e, 0x60, 0xfe, 0x12, 0xfc, 0x10, 0x0b, 0x02, 0x8b, 0xa5,
- 0x67, 0x92, 0xdf, 0x7d, 0x60, 0x24, 0xcc, 0x51, 0x6a, 0xee, 0xbc, 0x57,
- 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91, 0x31, 0x3b, 0xaa, 0xd9, 0xba, 0x2c,
- 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2, 0xf0, 0x40, 0x0e, 0x7d, 0x83, 0xe4,
- 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29, 0x53, 0xf5, 0x06, 0xe8, 0x7d, 0x9b,
- 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38, 0x1b, 0xb2, 0xd4, 0x17, 0x60, 0xe7,
- 0x19, 0xfe, 0xf0, 0x72, 0x18, 0x21, 0xf0, 0x02, 0xaf, 0xbe, 0x52, 0x5f,
- 0x57, 0xcc, 0x38, 0xbb, 0xc3, 0xfe, 0x12, 0x40, 0x0f, 0xf7, 0xd3, 0xd0,
- 0x22, 0x6e, 0x9e, 0xbf, 0xf0, 0x3c, 0x06, 0x11, 0x07, 0x98, 0x56, 0x2a,
- 0xac, 0x5e, 0xde, 0xf8, 0x00, 0xc1, 0x4c, 0xa4, 0xd6, 0x5f, 0xeb, 0xe1,
- 0x80, 0x1f, 0x31, 0xe4, 0xce, 0xef, 0x85, 0xac, 0x7a, 0x85, 0xbb, 0x51,
- 0x50, 0x3f, 0x80, 0x31, 0x13, 0xe8, 0x4a, 0x45, 0x11, 0xff, 0x7f, 0x93,
- 0xff, 0xff, 0xfe, 0x64, 0x01, 0x5c, 0x0b, 0xfe, 0x12, 0x40, 0xc4, 0xb3,
- 0xb5, 0x8c, 0x72, 0xa8, 0x6b, 0x7f, 0x72, 0xbd, 0x64, 0x21, 0xbe, 0xd3,
- 0x8e, 0x5d, 0x1f, 0x6a, 0xf8, 0x9a, 0xaf, 0xaa, 0x4e, 0x7e, 0xad, 0x73,
- 0xc0, 0xe7, 0xfe, 0x07, 0x8c, 0x27, 0x2f, 0xe8, 0x74, 0x3f, 0xa1, 0xd0,
- 0xe8, 0x08, 0x30, 0x84, 0x4e, 0x18, 0x1e, 0xfa, 0x9d, 0xe7, 0xe8, 0x37,
- 0xfc, 0x49, 0x24, 0xea, 0x6f, 0x3e, 0x03, 0x91, 0x91, 0xd3, 0x38, 0x88,
- 0x9f, 0xc7, 0x7b, 0x83, 0x18, 0xa1, 0x10, 0x05, 0x51, 0x6f, 0xce, 0x2c,
- 0x7a, 0x19, 0x5a, 0xeb, 0x9d, 0xe7, 0xe8, 0xe2, 0x42, 0xfc, 0xe2, 0x20,
- 0xea, 0x83, 0x1e, 0xc4, 0xb6, 0xce, 0x8f, 0xf9, 0x33, 0x5b, 0xe5, 0xfe,
- 0x1e, 0x62, 0xe6, 0x6a, 0xf9, 0xc6, 0x9a, 0x5f, 0x7d, 0xfc, 0x76, 0xbc,
- 0x77, 0xb1, 0x13, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
- 0xc6, 0x24, 0x44, 0x7b, 0xf1, 0x9e, 0x4f, 0xf8, 0x4b, 0xcb, 0xe3, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff,
- 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
- 0xac, 0xa1, 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
- 0xfe, 0xbb, 0xf7, 0xf3, 0x17, 0x01, 0x55, 0x26, 0xcf, 0x68, 0x25, 0xa1,
- 0xb5, 0xa5, 0x61, 0x51, 0x31, 0x5f, 0xff, 0xfb, 0xcc, 0x68, 0xfc, 0xaa,
- 0xf1, 0x65, 0x89, 0x61, 0xc4, 0x85, 0x56, 0xc0, 0x4a, 0xf3, 0x35, 0x41,
- 0xa0, 0x60, 0x10, 0x7d, 0xb4, 0x5d, 0xe1, 0x16, 0x74, 0x9b, 0x84, 0x2e,
- 0x09, 0xdd, 0xab, 0x78, 0x71, 0x9d, 0xd3, 0xcf, 0x1a, 0x18, 0x34, 0x0b,
- 0x3c, 0x59, 0x9c, 0x92, 0x63, 0x64, 0x00, 0x67, 0x53, 0xb3, 0x18, 0x88,
- 0xb5, 0x60, 0xb6, 0x5c, 0x3e, 0x69, 0x81, 0xcc, 0x3e, 0x93, 0xc7, 0x83,
- 0x99, 0x5d, 0x80, 0x69, 0xa7, 0x28, 0x36, 0x99, 0xe0, 0xdc, 0xcc, 0x80,
- 0x2d, 0x08, 0xde, 0x8b, 0x0f, 0x40, 0xaa, 0x99, 0xe6, 0xcd, 0xa1, 0xcb,
- 0x00, 0x7f, 0xe2, 0x01, 0xd3, 0x5c, 0xd6, 0x3e, 0x42, 0xd2, 0xd0, 0xc2,
- 0x43, 0xed, 0x2f, 0xc2, 0x67, 0x10, 0xd3, 0xe4, 0x9f, 0x5f, 0x9e, 0x23,
- 0x85, 0x75, 0xb7, 0xc4, 0x23, 0xd3, 0xbf, 0xa5, 0x15, 0xff, 0xfc, 0x31,
- 0xc7, 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x4c, 0x00, 0x33, 0x6d, 0xbe, 0x53,
- 0x70, 0xfb, 0x96, 0x3e, 0xd3, 0x01, 0xdc, 0x77, 0x34, 0x1a, 0x38, 0x95,
- 0x00, 0x23, 0x36, 0x9a, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0x49, 0x1c, 0x3b,
- 0x47, 0x8b, 0x2b, 0xf3, 0xc4, 0x59, 0x4c, 0xd0, 0x02, 0x5e, 0x93, 0xf3,
- 0xf0, 0xc7, 0xef, 0x7f, 0xf1, 0x27, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7,
- 0xbf, 0x20, 0x0b, 0x54, 0x81, 0xf3, 0x38, 0xe8, 0x7e, 0x10, 0x38, 0x3f,
- 0x0b, 0xfe, 0x18, 0x1e, 0xe3, 0xff, 0xc3, 0xcc, 0x3b, 0x6b, 0xe7, 0x05,
- 0xf8, 0x11, 0x5e, 0xba, 0xe1, 0xfb, 0xfe, 0xbf, 0xef, 0xff, 0xf8, 0x60,
- 0x55, 0x04, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x5b, 0x38, 0x48, 0xeb, 0x97,
- 0x68, 0x31, 0x88, 0x6f, 0x4a, 0x1f, 0x4f, 0xc7, 0x89, 0x95, 0x2c, 0x09,
- 0x7f, 0xe1, 0x4b, 0x8a, 0x46, 0xff, 0x6a, 0xd9, 0xf5, 0xa6, 0x66, 0x43,
- 0x7d, 0xe5, 0x0b, 0xff, 0x80, 0x19, 0xf8, 0x6e, 0x2f, 0x0d, 0x7a, 0xeb,
- 0x1d, 0xb0, 0xcf, 0xae, 0xb1, 0xdc, 0x31, 0xfc, 0x3f, 0xe1, 0x41, 0x10,
- 0x0a, 0x83, 0xd8, 0xe3, 0x17, 0x67, 0x65, 0x1c, 0x01, 0x47, 0x4d, 0x34,
- 0x6d, 0x4d, 0x0c, 0x45, 0x27, 0x6c, 0x20, 0x60, 0xcf, 0x64, 0x33, 0xd3,
- 0x0b, 0x69, 0x7b, 0x62, 0xe3, 0x1c, 0xa5, 0xff, 0xc5, 0xd9, 0x98, 0x10,
- 0xb2, 0x00, 0x65, 0x8e, 0x26, 0xff, 0xb2, 0x84, 0x59, 0x90, 0xeb, 0x06,
- 0x56, 0x5a, 0x28, 0x0c, 0x45, 0x86, 0xaf, 0xfc, 0x8d, 0x77, 0xbb, 0x2b,
- 0x5c, 0xa2, 0x17, 0x12, 0x01, 0x00, 0xee, 0xba, 0x60, 0x47, 0x76, 0x18,
- 0x8e, 0xb3, 0x42, 0x9c, 0x2c, 0xd6, 0xc0, 0x47, 0x9f, 0x3f, 0x31, 0x79,
- 0x9a, 0xd8, 0xb6, 0x4f, 0x44, 0x66, 0xd1, 0xc1, 0x5d, 0xad, 0xaf, 0xf2,
- 0x44, 0x45, 0x58, 0xd4, 0x1d, 0x24, 0x69, 0x83, 0x24, 0x93, 0x0d, 0x47,
- 0x4a, 0x36, 0xf8, 0x63, 0x44, 0x13, 0x9c, 0xa6, 0x20, 0x23, 0x70, 0x1d,
- 0x11, 0x5a, 0x58, 0x46, 0x53, 0xdf, 0x9e, 0x20, 0x32, 0xdf, 0xdc, 0x9d,
- 0x5b, 0x0a, 0x29, 0xcf, 0xe8, 0x13, 0xfc, 0xa2, 0xeb, 0x33, 0xd3, 0x68,
- 0x61, 0x13, 0x94, 0xc6, 0x0f, 0x27, 0xa6, 0x25, 0x4f, 0x58, 0xa5, 0x63,
- 0xb3, 0x6d, 0xa1, 0x8c, 0x29, 0xe9, 0x26, 0x9e, 0xdc, 0x0f, 0x01, 0x8c,
- 0x83, 0x83, 0x02, 0x9a, 0x48, 0x3d, 0xe5, 0xaf, 0xf0, 0x0d, 0xdb, 0x52,
- 0x97, 0x80, 0xc1, 0xcf, 0xc1, 0x84, 0xbc, 0xec, 0x14, 0xda, 0x06, 0xc8,
- 0x97, 0xab, 0xff, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb2, 0x85,
- 0x8b, 0x90, 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x9d, 0x07, 0xef, 0xe2, 0x26,
- 0x10, 0x8c, 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xe0, 0x6a, 0x71, 0xff,
- 0xc4, 0x30, 0x06, 0xcb, 0x49, 0xa7, 0xe1, 0x84, 0x21, 0x11, 0x2d, 0xfc,
- 0x8d, 0x63, 0xfc, 0x31, 0xb4, 0x5c, 0x3f, 0xf0, 0x91, 0x00, 0xe4, 0x03,
- 0x08, 0x80, 0x25, 0x14, 0xb0, 0x00, 0x10, 0x01, 0x7e, 0x00, 0xcb, 0x28,
- 0x1a, 0x2c, 0x07, 0x08, 0x00, 0x04, 0x75, 0x01, 0x1c, 0x07, 0x57, 0x26,
- 0xa4, 0x1d, 0x5d, 0xc3, 0x18, 0x5f, 0xff, 0xc2, 0x45, 0x80, 0x2b, 0x66,
- 0x44, 0xd3, 0xf3, 0xe0, 0x8b, 0xf7, 0x8c, 0xc9, 0xf6, 0x18, 0xfa, 0xb7,
- 0xc3, 0x1b, 0x14, 0x28, 0x03, 0x80, 0xe4, 0x21, 0x10, 0x99, 0x80, 0x08,
- 0x43, 0xd5, 0x0a, 0xb8, 0xac, 0xf8, 0x0d, 0x37, 0xa3, 0xce, 0x24, 0x6e,
- 0x60, 0x5d, 0x58, 0x51, 0xfd, 0x42, 0xba, 0x9f, 0xa9, 0xd4, 0x18, 0xb5,
- 0x09, 0xb5, 0xba, 0x91, 0xe0, 0x38, 0x0e, 0x42, 0x11, 0x09, 0x98, 0x62,
- 0xc3, 0x47, 0xb5, 0x9d, 0x5b, 0xe0, 0x85, 0xb2, 0xe1, 0xc4, 0x21, 0x53,
- 0x30, 0xc6, 0x1a, 0xb7, 0xf8, 0xc6, 0x40, 0x04, 0x21, 0xea, 0x85, 0x5c,
- 0x56, 0x7c, 0x06, 0x9b, 0xd1, 0xe7, 0x12, 0x37, 0x30, 0x2e, 0xac, 0x28,
- 0xfe, 0xa1, 0x5d, 0x4f, 0xd4, 0xea, 0x0c, 0x5a, 0x84, 0xda, 0xdd, 0x48,
- 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x03, 0x25, 0xa9, 0x86, 0x2c, 0x34, 0x7b,
- 0x59, 0xd5, 0xbe, 0x08, 0x5b, 0x2e, 0x1c, 0x42, 0x15, 0x33, 0x0c, 0x61,
- 0xab, 0x7f, 0x8c, 0x64, 0x00, 0x42, 0x1e, 0xa8, 0x55, 0xc5, 0x67, 0xc0,
- 0x69, 0xbd, 0x1e, 0x71, 0x23, 0x73, 0x02, 0xea, 0xc2, 0x8f, 0xea, 0x15,
- 0xd4, 0xfd, 0x4e, 0xa0, 0xc5, 0xa8, 0x4d, 0xad, 0xd4, 0x80, 0x03, 0x2f,
- 0xee, 0x9d, 0xd0, 0x32, 0x5a, 0x98, 0x62, 0xc3, 0x47, 0xb5, 0x9d, 0x5b,
- 0xe0, 0x85, 0xb2, 0xe1, 0xc4, 0x21, 0x53, 0x30, 0xc6, 0x1a, 0xb1, 0x7c,
- 0x69, 0x19, 0x00, 0x33, 0x29, 0x11, 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf,
- 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d, 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde,
- 0xdf, 0xe0, 0x0f, 0x4b, 0x78, 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x03, 0x25,
- 0xa8, 0x00, 0x1d, 0xbf, 0xe5, 0x7c, 0x07, 0x7b, 0xcc, 0x25, 0x53, 0x6f,
- 0xd5, 0xc4, 0x10, 0x06, 0x88, 0x0b, 0x89, 0x90, 0x0c, 0x47, 0x7a, 0xa3,
- 0x23, 0xfe, 0x7d, 0x0c, 0x61, 0xab, 0x16, 0x8b, 0x1a, 0x46, 0x40, 0x0c,
- 0xca, 0x44, 0x66, 0x03, 0x19, 0x76, 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7,
- 0xff, 0x0b, 0x62, 0xc1, 0xd2, 0x6f, 0x4f, 0x77, 0xb7, 0xf8, 0x03, 0xd2,
- 0xde, 0xe2, 0xe4, 0x8b, 0x3d, 0x00, 0x23, 0x6f, 0x7c, 0xad, 0xbf, 0xff,
- 0x07, 0x7b, 0xcc, 0x25, 0x53, 0x6f, 0xd5, 0xc4, 0x10, 0x06, 0x88, 0x0b,
- 0x89, 0x90, 0x0c, 0x47, 0x7a, 0xa3, 0x23, 0xfe, 0x7d, 0x0c, 0x61, 0xab,
- 0x16, 0x98, 0xd2, 0x32, 0x00, 0x66, 0x52, 0x23, 0x30, 0x18, 0xcb, 0xb4,
- 0x07, 0x5e, 0xfb, 0xf6, 0x85, 0xbf, 0xf8, 0x5b, 0x16, 0x0e, 0x93, 0x7a,
- 0x7b, 0xbd, 0xbf, 0xc0, 0x1e, 0x96, 0xf7, 0x16, 0x49, 0x13, 0x3d, 0x00,
- 0x07, 0x6f, 0xf9, 0x5f, 0x01, 0xde, 0xf3, 0x09, 0x54, 0xdb, 0xf5, 0x71,
- 0x04, 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03, 0x11, 0xde, 0xa8, 0xc8, 0xff,
- 0x9f, 0x43, 0x18, 0x6a, 0xc5, 0xa2, 0xd3, 0x8c, 0x80, 0x19, 0x94, 0x88,
- 0xcc, 0x06, 0x32, 0xed, 0x01, 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xfe, 0x16,
- 0xc5, 0x83, 0xa4, 0xde, 0x9e, 0xec, 0x6a, 0xa0, 0x07, 0xa4, 0x9d, 0xc5,
- 0xc9, 0x16, 0x7a, 0x00, 0x46, 0xde, 0xf9, 0x5b, 0x7f, 0xfe, 0x0e, 0xf7,
- 0x98, 0x4a, 0xa6, 0xdf, 0xab, 0xae, 0xf3, 0xab, 0xa6, 0x47, 0xf9, 0xf1,
- 0x71, 0x33, 0x54, 0xb6, 0xed, 0x5b, 0xe5, 0xe8, 0x63, 0xea, 0x64, 0x14,
- 0xb2, 0x77, 0xf8, 0x3c, 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68,
- 0x0e, 0xbd, 0xf7, 0xed, 0x0b, 0x7f, 0xfa, 0x40, 0x00, 0x5c, 0x10, 0x7e,
- 0x43, 0xb1, 0xaa, 0x80, 0x1e, 0x92, 0x67, 0xc1, 0xbf, 0xed, 0x2e, 0xdf,
- 0xe7, 0x83, 0x0d, 0xe4, 0x4c, 0xd6, 0xaf, 0x00, 0x4e, 0xbc, 0x32, 0xd8,
- 0x99, 0xdd, 0x97, 0x79, 0xd5, 0xd1, 0x91, 0xfe, 0x7d, 0xbe, 0x1a, 0xf5,
- 0x5d, 0xfd, 0xfe, 0xaa, 0x5b, 0x76, 0xad, 0xf2, 0xf4, 0x31, 0xf5, 0x32,
- 0x0a, 0x59, 0x38, 0xc8, 0x01, 0x99, 0x48, 0x8c, 0xc0, 0x63, 0x2e, 0xd0,
- 0x1d, 0x7b, 0xef, 0xda, 0x16, 0xff, 0xf4, 0x80, 0x00, 0xb8, 0x20, 0xfc,
- 0x87, 0x63, 0x55, 0x00, 0x3d, 0x24, 0xcf, 0x83, 0x7f, 0xda, 0x5d, 0x9f,
- 0xe7, 0x83, 0x0d, 0xe4, 0x4c, 0xd6, 0xaf, 0x00, 0x6e, 0x7c, 0x32, 0xd4,
- 0x82, 0x3b, 0x3a, 0xaf, 0x3a, 0xb9, 0x89, 0xff, 0x3a, 0xdf, 0x0d, 0x7a,
- 0xae, 0xfe, 0xff, 0x4d, 0x1d, 0xbb, 0x4c, 0x70, 0xee, 0xa1, 0x8f, 0xa9,
- 0x90, 0x52, 0xc9, 0xc6, 0x40, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19, 0x76,
- 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0xa4, 0x00, 0x05, 0xc1, 0x07,
- 0xe4, 0x3b, 0x1a, 0xa8, 0x01, 0xe9, 0x26, 0x7c, 0x23, 0xbb, 0x4b, 0xb3,
- 0xfc, 0xf0, 0x61, 0xbc, 0x89, 0x9a, 0xd5, 0xe0, 0x0d, 0xcf, 0x86, 0x5a,
- 0x90, 0x47, 0x67, 0x55, 0xe7, 0x57, 0x31, 0x3f, 0xe7, 0x5b, 0xe1, 0xaf,
- 0x55, 0xdf, 0xdf, 0xe9, 0xa3, 0xb7, 0x69, 0x8e, 0x1d, 0xd4, 0x31, 0xf3,
- 0x54, 0x0a, 0x3b, 0x43, 0x7f, 0x83, 0xc0, 0x02, 0x9d, 0xcc, 0xab, 0x58,
- 0x62, 0x94, 0xac, 0x39, 0x9e, 0x36, 0x45, 0xff, 0xd4, 0x9c, 0x00, 0x02,
- 0xa0, 0x85, 0xe4, 0x2f, 0x15, 0x03, 0xfb, 0x55, 0xf3, 0x7c, 0x23, 0xbb,
- 0x4b, 0xb7, 0xf9, 0xe0, 0x1a, 0x37, 0x36, 0x2d, 0x69, 0x58, 0x00, 0xc4,
- 0x79, 0x19, 0xc8, 0x14, 0x7f, 0xaa, 0x60, 0x19, 0x6f, 0x95, 0x87, 0x1d,
- 0xb2, 0x60, 0x76, 0x94, 0x98, 0xe1, 0xdd, 0x66, 0xcd, 0x5f, 0xf6, 0xff,
- 0xdd, 0xd0, 0xc7, 0xea, 0x81, 0x4b, 0x78, 0xc8, 0x00, 0x53, 0xb9, 0x95,
- 0x6b, 0x0c, 0x52, 0x93, 0x95, 0xb3, 0x33, 0x01, 0x5d, 0xf3, 0xd3, 0x80,
- 0x00, 0x54, 0x10, 0xbc, 0x85, 0xe2, 0xa0, 0x7f, 0x25, 0xfe, 0x6f, 0x87,
- 0xb4, 0x76, 0x63, 0xae, 0xe0, 0x06, 0x8d, 0xdb, 0x16, 0xb4, 0xac, 0x00,
- 0x62, 0x3c, 0x9b, 0x90, 0x28, 0xff, 0x54, 0xc0, 0x32, 0xdf, 0x39, 0x07,
- 0x1d, 0xb2, 0x60, 0x76, 0xa9, 0x63, 0x87, 0x75, 0xbb, 0x35, 0x7f, 0xd7,
- 0xf7, 0xa1, 0x8f, 0xd5, 0x02, 0x96, 0xf1, 0x90, 0x00, 0xa7, 0x73, 0x2a,
- 0xd6, 0x18, 0xa5, 0x27, 0x2b, 0x66, 0x66, 0x02, 0xbb, 0xe7, 0xa7, 0x00,
- 0x00, 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0x4b, 0xfc, 0xdf, 0x0f,
- 0x68, 0xec, 0xc7, 0x5d, 0xc0, 0x0d, 0x1b, 0xb6, 0x2d, 0x69, 0x58, 0x00,
- 0xc4, 0x79, 0x37, 0x20, 0x51, 0xfe, 0xa9, 0x80, 0x65, 0xbe, 0x72, 0x0e,
- 0x3b, 0x64, 0xc0, 0xed, 0x52, 0xc7, 0x0e, 0xeb, 0x76, 0x6a, 0xff, 0xaf,
- 0xef, 0x43, 0x1e, 0x02, 0xc8, 0x14, 0x8a, 0x30, 0x46, 0x40, 0x02, 0x9d,
- 0xcc, 0xa5, 0x2c, 0x37, 0xc7, 0xd8, 0x8e, 0x89, 0x33, 0xe6, 0xba, 0xbb,
- 0x80, 0x7a, 0xa0, 0xfe, 0x7d, 0x3b, 0xa3, 0x69, 0x7d, 0x7b, 0xe1, 0xed,
- 0x1d, 0x98, 0xeb, 0xb8, 0x1e, 0x21, 0x0a, 0xa4, 0xc2, 0x04, 0x01, 0x22,
- 0x00, 0x51, 0xce, 0x63, 0x4b, 0x6a, 0x15, 0xe0, 0x67, 0x1e, 0xba, 0x65,
- 0x3f, 0xf7, 0xc0, 0x42, 0x86, 0x14, 0x4a, 0x86, 0x2c, 0x1c, 0x51, 0x82,
- 0xf7, 0x13, 0xd5, 0x0b, 0xb8, 0x03, 0x39, 0xac, 0xc6, 0x6a, 0xb0, 0xdd,
- 0x75, 0x29, 0x00, 0xd7, 0xf7, 0x00, 0x3f, 0x2c, 0x44, 0xbf, 0xa8, 0x01,
- 0xe9, 0x1a, 0xee, 0xbe, 0x00, 0x19, 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42,
- 0xa1, 0x30, 0x81, 0x00, 0x48, 0x80, 0x24, 0x73, 0xc6, 0x96, 0xb3, 0xbb,
- 0x9e, 0x06, 0x71, 0xeb, 0xa6, 0x49, 0xff, 0xbe, 0x07, 0x0c, 0x63, 0x50,
- 0x64, 0x00, 0xc5, 0x18, 0x2f, 0x81, 0x55, 0x3a, 0x77, 0xe0, 0x0a, 0x77,
- 0x75, 0xcc, 0x64, 0xff, 0x66, 0x91, 0x66, 0x02, 0x8b, 0x15, 0x00, 0xda,
- 0xee, 0x01, 0xea, 0x82, 0xf9, 0xf4, 0x6e, 0x87, 0xd2, 0x57, 0x76, 0x7b,
- 0x80, 0x06, 0x5f, 0xdd, 0x3b, 0xa1, 0x82, 0x10, 0xaa, 0x4c, 0x20, 0x40,
- 0x16, 0x40, 0x0e, 0x39, 0xd8, 0xd2, 0xd6, 0x6e, 0xef, 0x03, 0x38, 0xf5,
- 0xd3, 0x16, 0x7f, 0xef, 0x83, 0x2a, 0x61, 0x87, 0x86, 0x6c, 0x9e, 0x20,
- 0xdb, 0xf5, 0x7e, 0x00, 0x19, 0xca, 0xd2, 0xce, 0x30, 0x67, 0x04, 0xf4,
- 0x35, 0x3b, 0x64, 0x83, 0xf3, 0xf5, 0x95, 0x7d, 0xc0, 0x3d, 0x70, 0xbb,
- 0xfa, 0xff, 0xf8, 0x8e, 0x2c, 0xdf, 0xff, 0x1f, 0x00, 0x0c, 0xbf, 0xba,
- 0x77, 0x43, 0x04, 0x21, 0x54, 0x98, 0x40, 0x80, 0x24, 0x41, 0x7c, 0xe3,
- 0x66, 0xb5, 0xe1, 0xa7, 0x03, 0x38, 0xf5, 0xd3, 0x14, 0x7f, 0xef, 0x84,
- 0x6d, 0x31, 0x0c, 0x7c, 0xc9, 0x3f, 0x6c, 0x64, 0x00, 0x33, 0x95, 0xa5,
- 0x9c, 0x60, 0xce, 0x09, 0xe8, 0x6a, 0x76, 0xc9, 0x07, 0xe7, 0xea, 0x8b,
- 0xa8, 0x67, 0xaf, 0x15, 0xd5, 0xb5, 0xff, 0xf1, 0x1c, 0x59, 0xbf, 0xfe,
- 0x3c, 0x00, 0x33, 0x6f, 0xf9, 0x5f, 0x32, 0x4d, 0x41, 0xb5, 0x01, 0x13,
- 0x8d, 0x9a, 0xd7, 0x86, 0x9c, 0x08, 0x51, 0xb4, 0x7b, 0x23, 0x69, 0x88,
- 0x63, 0xe6, 0x49, 0xfb, 0x63, 0x20, 0x01, 0x9c, 0xad, 0x2c, 0xe3, 0x06,
- 0x70, 0x4f, 0x43, 0x53, 0xb6, 0x48, 0x3f, 0x3f, 0x54, 0x5d, 0x43, 0x3d,
- 0x78, 0xae, 0xad, 0xaf, 0xff, 0x88, 0xe2, 0xcd, 0xff, 0xf1, 0xe0, 0x01,
- 0x9b, 0x7f, 0xca, 0xf9, 0x92, 0x6a, 0x0d, 0xa8, 0x08, 0x9c, 0x6c, 0xd6,
- 0xbc, 0x34, 0xe0, 0x42, 0x8d, 0xa3, 0xd9, 0x1b, 0x4c, 0x43, 0x1f, 0x52,
- 0x4f, 0xa3, 0x14, 0x64, 0x00, 0x33, 0x95, 0xa5, 0x9c, 0x60, 0xce, 0x09,
- 0xea, 0x3f, 0x41, 0x89, 0xb7, 0x9b, 0x8f, 0xf1, 0x45, 0xa4, 0x60, 0x6b,
- 0x7a, 0x1d, 0xc7, 0x57, 0xd9, 0x47, 0x8b, 0xb9, 0xfa, 0xf0, 0x00, 0xcd,
- 0xbf, 0xe5, 0x7c, 0xc9, 0x35, 0x03, 0x06, 0x60, 0x54, 0xe6, 0x3b, 0x44,
- 0x7f, 0xfb, 0xa0, 0x42, 0x46, 0xc8, 0xf6, 0x40, 0x01, 0x2a, 0xa6, 0x61,
- 0x8b, 0x30, 0x32, 0x47, 0x89, 0x4b, 0x13, 0x20, 0x00, 0x4a, 0x89, 0x90,
- 0x85, 0x31, 0x5d, 0x6f, 0xfe, 0x00, 0xad, 0xe9, 0x9c, 0x60, 0x41, 0x1d,
- 0xae, 0xa9, 0x72, 0x27, 0x3e, 0x7c, 0xbc, 0x0c, 0xe3, 0xb9, 0x76, 0x93,
- 0xfe, 0x57, 0x9b, 0x9c, 0xed, 0x5e, 0xdd, 0x35, 0xde, 0xb9, 0xbf, 0xfe,
- 0x0c, 0x40, 0x00, 0x2a, 0x56, 0x00, 0xa2, 0x7e, 0xb7, 0xda, 0xfb, 0xfc,
- 0x00, 0x1e, 0x3d, 0x61, 0x34, 0x93, 0x89, 0xf5, 0x6a, 0xe0, 0x1a, 0xf4,
- 0x7d, 0x5e, 0x86, 0x11, 0x82, 0xc9, 0x11, 0xa0, 0x97, 0xb8, 0x39, 0x2b,
- 0xd3, 0xd6, 0xef, 0xcf, 0x18, 0x53, 0x15, 0xd6, 0xdf, 0x41, 0x10, 0x7f,
- 0xab, 0x8f, 0xfd, 0xef, 0xa9, 0x72, 0x27, 0x37, 0x3e, 0x5e, 0x06, 0x71,
- 0xdc, 0xbb, 0x49, 0xff, 0x2b, 0xcd, 0xce, 0x76, 0xaf, 0x6e, 0x9a, 0xef,
- 0x5c, 0xdf, 0xff, 0x06, 0x58, 0x00, 0x15, 0x46, 0x00, 0xa2, 0x7e, 0xb7,
- 0xd9, 0x7d, 0xfe, 0x00, 0x33, 0x83, 0x57, 0x18, 0x9f, 0xf3, 0xaa, 0xd5,
- 0xc0, 0x35, 0xe8, 0x5d, 0x5e, 0x0f, 0xde, 0x18, 0x46, 0x0b, 0x24, 0x46,
- 0x82, 0x5e, 0xe1, 0x25, 0x7a, 0x7a, 0xdd, 0xf9, 0xe3, 0x0a, 0x62, 0xba,
- 0xdb, 0xe8, 0x19, 0x07, 0xfa, 0xae, 0x7f, 0xee, 0xfa, 0x97, 0x22, 0x73,
- 0x73, 0xe5, 0xe0, 0x67, 0x1d, 0xcb, 0xb4, 0x9f, 0xf2, 0xbc, 0xdc, 0xe7,
- 0x6a, 0xf6, 0xe9, 0xae, 0xf5, 0xcd, 0xff, 0xf0, 0x65, 0x80, 0x01, 0x54,
- 0x60, 0x0a, 0x27, 0xeb, 0x7d, 0x97, 0xdf, 0xe0, 0x03, 0x38, 0x35, 0x71,
- 0x89, 0xff, 0x3a, 0xad, 0x5c, 0x03, 0x5e, 0x85, 0xd5, 0xe0, 0xfd, 0xe1,
- 0x84, 0x83, 0x30, 0x5c, 0x41, 0x38, 0xe2, 0x61, 0x25, 0x7a, 0x7a, 0xdd,
- 0xf9, 0xe2, 0x4d, 0x40, 0x64, 0x1f, 0xea, 0xb9, 0xff, 0xbb, 0xef, 0xa3,
- 0x24, 0xb9, 0xb3, 0xfc, 0x01, 0xe4, 0xda, 0x83, 0xb7, 0x2f, 0x55, 0xbe,
- 0x9f, 0xff, 0xd7, 0x5a, 0x92, 0x56, 0xaf, 0x06, 0x58, 0x00, 0x15, 0x46,
- 0x00, 0xba, 0xe8, 0x5d, 0x5e, 0xd4, 0x97, 0x00, 0x19, 0xc1, 0xab, 0x8c,
- 0x4f, 0xf9, 0xd5, 0x6a, 0xe8, 0xd8, 0x5b, 0x57, 0xa1, 0x8e, 0xcc, 0x11,
- 0x40, 0x46, 0xc7, 0x79, 0xb3, 0x27, 0xb5, 0x0e, 0x1d, 0x40, 0xa0, 0x54,
- 0x1f, 0xe8, 0xeb, 0x2f, 0xbf, 0xd7, 0xd1, 0x92, 0x5c, 0xf3, 0xfc, 0x01,
- 0xe4, 0xda, 0x83, 0xbb, 0x2f, 0x55, 0xbe, 0xb5, 0x75, 0xa4, 0xa5, 0x6a,
- 0xf0, 0x61, 0x03, 0x14, 0x0e, 0xc3, 0x5f, 0xfb, 0xed, 0xab, 0xa1, 0x75,
- 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59, 0xcc, 0x38, 0xed, 0x98, 0x4e,
- 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x63, 0xfe, 0x18, 0xec, 0xc1, 0x14,
- 0x04, 0x6c, 0x77, 0x9b, 0x32, 0x3d, 0xa4, 0x38, 0x75, 0x12, 0x6a, 0x01,
- 0x50, 0x7f, 0xa3, 0xac, 0xbe, 0xff, 0x5f, 0x46, 0x49, 0x73, 0x67, 0xf8,
- 0x03, 0xc9, 0xb5, 0x07, 0x76, 0x5e, 0xab, 0x7d, 0x6a, 0xeb, 0x49, 0x4a,
- 0xd5, 0xe0, 0xc2, 0x06, 0x28, 0x1d, 0x86, 0xbf, 0xf7, 0xdb, 0x57, 0x42,
- 0xea, 0xf6, 0xa4, 0xb8, 0x34, 0x06, 0x5a, 0xb3, 0x98, 0x71, 0xdb, 0x30,
- 0x9c, 0xa5, 0x83, 0x5b, 0xec, 0x6d, 0xc0, 0xc7, 0xfc, 0x31, 0xd9, 0xb7,
- 0x40, 0x46, 0xfb, 0xcd, 0x99, 0x3d, 0xa8, 0x70, 0xea, 0x05, 0x02, 0xa0,
- 0xff, 0x47, 0x59, 0x7d, 0xfe, 0xbe, 0x8c, 0x92, 0xe7, 0x9f, 0xe0, 0x0e,
- 0x48, 0xda, 0x83, 0x8b, 0xa9, 0x8a, 0xea, 0xa9, 0x49, 0x6a, 0xf7, 0x84,
- 0x0c, 0x50, 0x3b, 0x0d, 0x7f, 0xef, 0xb6, 0xae, 0x85, 0xd5, 0xed, 0x49,
- 0x70, 0x68, 0x0c, 0xb5, 0x67, 0x30, 0xe3, 0xb6, 0x61, 0x39, 0x4b, 0x06,
- 0xb7, 0xd8, 0xdb, 0x81, 0xff, 0x86, 0x3b, 0x6c, 0xa8, 0xc8, 0xd2, 0xe2,
- 0x79, 0x93, 0xf5, 0xf7, 0x3f, 0xf7, 0x79, 0xf6, 0x98, 0x42, 0xd2, 0x60,
- 0x5a, 0x51, 0x3f, 0xcc, 0xb2, 0x98, 0xb8, 0xa6, 0x48, 0xd1, 0xbf, 0xf7,
- 0xe0, 0x0d, 0x2a, 0x20, 0xfc, 0x89, 0x3f, 0x34, 0x60, 0x42, 0x5a, 0x78,
- 0x1c, 0x7a, 0x41, 0x23, 0x9e, 0x34, 0xb5, 0x9d, 0xdc, 0xf5, 0x3d, 0x4e,
- 0x0d, 0x7f, 0x27, 0xfc, 0xfa, 0x18, 0xed, 0xb3, 0xa3, 0x21, 0x7c, 0x4e,
- 0xf2, 0x7e, 0xbe, 0xcf, 0xfd, 0xfd, 0x9f, 0x69, 0x83, 0xd7, 0x24, 0xc1,
- 0x29, 0x44, 0xff, 0x45, 0x0a, 0x63, 0x2a, 0x62, 0x46, 0x8d, 0xff, 0xbf,
- 0x00, 0x69, 0x51, 0x07, 0xe4, 0x49, 0xf9, 0xa3, 0x02, 0x12, 0xd3, 0xc0,
- 0xe3, 0xd2, 0x09, 0x1c, 0xf1, 0xa5, 0xac, 0xee, 0xe7, 0xa9, 0xf7, 0x9c,
- 0x1a, 0xa9, 0xbf, 0x5f, 0x61, 0x8e, 0xdb, 0x22, 0x32, 0x14, 0xb8, 0x9e,
- 0xe4, 0xfd, 0x7d, 0xd7, 0xdc, 0x7d, 0xa6, 0x5e, 0xa6, 0x09, 0x4a, 0x27,
- 0xfa, 0x28, 0x53, 0x19, 0x53, 0x12, 0x34, 0x6f, 0xfd, 0xc9, 0xf1, 0xbf,
- 0xf6, 0x00, 0xd2, 0xa2, 0x0f, 0xc8, 0x9b, 0xf3, 0x46, 0x04, 0x25, 0xa7,
- 0x81, 0xc7, 0xa4, 0x12, 0x39, 0xe3, 0x4b, 0x59, 0xdd, 0xcf, 0x53, 0xef,
- 0x38, 0x35, 0x53, 0x7e, 0xbe, 0xc3, 0x18, 0xf6, 0x44, 0x64, 0x69, 0x71,
- 0x30, 0x42, 0xde, 0x0f, 0xf3, 0xaf, 0xbe, 0xe2, 0x04, 0x01, 0x19, 0x01,
- 0x69, 0x30, 0x5b, 0xa1, 0x0d, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8, 0xdf,
- 0xde, 0x04, 0xe2, 0x17, 0xa6, 0x81, 0xc7, 0xa4, 0x0b, 0xfb, 0x2c, 0x73,
- 0x15, 0x0f, 0x78, 0x1d, 0x9c, 0xb0, 0xd3, 0xf2, 0x7f, 0xcf, 0xaa, 0xd6,
- 0xf1, 0xad, 0xac, 0xee, 0xe7, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8,
- 0x9e, 0xac, 0x67, 0x07, 0xfa, 0xbd, 0x3f, 0xf6, 0x10, 0x20, 0x08, 0xc8,
- 0x09, 0x32, 0x60, 0x65, 0x82, 0x19, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8,
- 0xdf, 0xde, 0x01, 0xef, 0xb0, 0xbd, 0x36, 0x0e, 0x3d, 0x20, 0x5f, 0xd9,
- 0x63, 0x98, 0xa8, 0x7b, 0xc0, 0xec, 0xe5, 0x86, 0x9f, 0x93, 0xfe, 0x7d,
- 0x76, 0xb7, 0x8d, 0x6d, 0x8c, 0x6e, 0xa8, 0x63, 0x1e, 0xc8, 0x8c, 0x8d,
- 0x2e, 0x26, 0x5f, 0x63, 0x38, 0x3f, 0xd5, 0xe9, 0xff, 0xb0, 0x81, 0x00,
- 0x46, 0x40, 0x49, 0x93, 0x03, 0x2c, 0x10, 0xcd, 0x30, 0x47, 0x7f, 0xb4,
- 0x1f, 0xc6, 0xfe, 0xf0, 0x0f, 0x7d, 0x85, 0xe9, 0xb0, 0x71, 0xe9, 0x02,
- 0xfe, 0xcb, 0x1c, 0xc5, 0x43, 0xde, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f,
- 0xf3, 0xeb, 0xb5, 0xbc, 0x6b, 0x6c, 0x63, 0x75, 0x43, 0x18, 0xe2, 0xc8,
- 0x8c, 0x8c, 0x01, 0xc4, 0xcb, 0xec, 0x00, 0x4a, 0xe4, 0x4e, 0x6d, 0x3e,
- 0x5e, 0x20, 0x40, 0x11, 0x90, 0x6c, 0xc5, 0xe9, 0xae, 0x5d, 0xff, 0xff,
- 0x79, 0x02, 0x10, 0xa9, 0x9f, 0x01, 0x19, 0xb9, 0xcd, 0x6a, 0xf0, 0x07,
- 0xbe, 0xc2, 0xf4, 0xd8, 0x38, 0xf4, 0x81, 0xaf, 0xe4, 0x1e, 0x91, 0x77,
- 0xe6, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f, 0xf3, 0xe9, 0xa0, 0xcb, 0x3d,
- 0x86, 0x1c, 0x76, 0xc8, 0x63, 0x4c, 0x59, 0x01, 0x91, 0x80, 0x38, 0x99,
- 0x2d, 0x40, 0x95, 0xc8, 0x9c, 0xd9, 0x3e, 0x5e, 0x07, 0x25, 0x7a, 0x7a,
- 0xdd, 0xf9, 0xe1, 0xa6, 0x2f, 0x4d, 0x72, 0xef, 0xff, 0xfb, 0xc8, 0x10,
- 0x85, 0x4c, 0xf8, 0x08, 0xcd, 0xce, 0x6b, 0x57, 0x81, 0x2f, 0xd8, 0xa2,
- 0xb5, 0xb5, 0xb7, 0xfe, 0xe7, 0xf2, 0x0f, 0x48, 0xbb, 0xf3, 0x01, 0xba,
- 0xd4, 0xf0, 0x69, 0x7e, 0x46, 0xdd, 0x34, 0x19, 0x67, 0xb0, 0xc3, 0x8e,
- 0xd9, 0x0c, 0x69, 0x8b, 0x20, 0x32, 0x30, 0x07, 0x13, 0x25, 0x54, 0x09,
- 0x5c, 0x89, 0xcd, 0xa7, 0xcb, 0xc0, 0xe4, 0xaf, 0x4f, 0x26, 0xef, 0xcf,
- 0x0d, 0x31, 0x7a, 0x6b, 0x97, 0x7f, 0xff, 0xde, 0x40, 0x84, 0x2a, 0x67,
- 0xc0, 0x46, 0x6e, 0x73, 0x5a, 0xbc, 0x05, 0xbf, 0x62, 0x8a, 0xd6, 0xf9,
- 0x75, 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03, 0x75, 0xa9, 0xe0, 0xd2,
- 0xae, 0x46, 0xdd, 0x34, 0x19, 0x67, 0xb0, 0xc3, 0x8e, 0xd9, 0x0c, 0x69,
- 0xa3, 0x00, 0x32, 0x35, 0xf8, 0x99, 0x2d, 0x40, 0x95, 0xc8, 0x9c, 0xd9,
- 0x3e, 0x5e, 0x07, 0x25, 0x7a, 0x7a, 0xdd, 0xf9, 0xe0, 0x63, 0xbd, 0x35,
- 0xcb, 0xbf, 0xff, 0xef, 0xcd, 0x1d, 0xea, 0xb6, 0x9f, 0xf3, 0xc0, 0xa2,
- 0xf5, 0x5b, 0xed, 0xff, 0xf0, 0x25, 0xfb, 0x14, 0x56, 0xb6, 0xb6, 0xff,
- 0x83, 0x5f, 0xc8, 0x3d, 0x22, 0xef, 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5,
- 0xf9, 0x1b, 0x74, 0xd0, 0x65, 0x9e, 0xe3, 0x0e, 0x3b, 0x64, 0x30, 0x8d,
- 0xd3, 0x8a, 0x34, 0x38, 0x99, 0xd2, 0x48, 0xbf, 0xd0, 0x45, 0x1b, 0xe1,
- 0x35, 0x29, 0xfe, 0xef, 0x6a, 0xd4, 0x8f, 0xda, 0x4f, 0x97, 0xb7, 0x27,
- 0xeb, 0xfb, 0x2f, 0xbf, 0xcc, 0xf2, 0x48, 0x9b, 0xd8, 0x42, 0xed, 0x56,
- 0x71, 0xff, 0x20, 0xc2, 0x0b, 0xd4, 0xfb, 0xff, 0xfe, 0xe0, 0x2a, 0x0f,
- 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00, 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b,
- 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8, 0x89, 0xff, 0x3a, 0x86, 0x11, 0xba,
- 0x71, 0x46, 0x80, 0xe2, 0x67, 0x49, 0x22, 0xff, 0x41, 0x14, 0x6f, 0x84,
- 0xd4, 0xa7, 0xfb, 0xbd, 0xab, 0x52, 0x3f, 0x69, 0x3e, 0x5e, 0xdc, 0x9f,
- 0xaf, 0xec, 0xbe, 0xff, 0x33, 0xc9, 0x22, 0x6f, 0x61, 0x0b, 0xb5, 0x59,
- 0xc7, 0xfc, 0x83, 0x08, 0x2f, 0x53, 0xef, 0xff, 0xfb, 0x80, 0xa8, 0x3f,
- 0xd3, 0xad, 0x7d, 0xfe, 0x10, 0x00, 0x0a, 0xa3, 0x01, 0xcf, 0xf8, 0x6f,
- 0x11, 0x5f, 0xa0, 0xc4, 0x1e, 0xf8, 0x84, 0xff, 0x9d, 0x43, 0x08, 0xdd,
- 0x21, 0x14, 0x61, 0xf7, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x42,
- 0xae, 0x7f, 0xbb, 0xda, 0xb5, 0x23, 0xf6, 0x93, 0xe5, 0xec, 0xc9, 0xfa,
- 0xfb, 0x4f, 0xfd, 0xdc, 0xcf, 0x52, 0x26, 0xf6, 0x18, 0xbf, 0x94, 0x1a,
- 0x3f, 0xd7, 0x41, 0xf2, 0x05, 0x41, 0xfe, 0x9d, 0x6b, 0xef, 0xf0, 0x80,
- 0x00, 0x55, 0x18, 0x0e, 0x7f, 0xc3, 0x78, 0x8a, 0xfd, 0x06, 0x20, 0xf7,
- 0xc4, 0x27, 0xfc, 0xea, 0x03, 0x88, 0x42, 0xa1, 0x33, 0xfd, 0x9f, 0xb6,
- 0x79, 0xad, 0x1a, 0x4e, 0x55, 0xc8, 0x54, 0x8c, 0x44, 0x65, 0xda, 0x0f,
- 0xf6, 0x50, 0x0a, 0x8a, 0x71, 0x96, 0x87, 0x91, 0x75, 0xde, 0x44, 0x2a,
- 0x62, 0x19, 0x88, 0x6e, 0xd0, 0x7f, 0xb8, 0x05, 0x45, 0x38, 0xcb, 0x43,
- 0xc8, 0xba, 0xef, 0x22, 0x15, 0x31, 0x0c, 0xc4, 0x37, 0x68, 0x3f, 0xdc,
- 0x02, 0xa2, 0x9c, 0x65, 0xa1, 0xe4, 0x5d, 0x77, 0x91, 0x0a, 0x98, 0x86,
- 0x62, 0x1b, 0xb4, 0x1f, 0xed, 0x03, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6,
- 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69,
- 0x32, 0x1c, 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc,
- 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x63, 0x3b, 0x1b, 0xb5,
- 0x77, 0xa2, 0x15, 0x23, 0x19, 0x98, 0xdd, 0xaf, 0xfd, 0xc1, 0xa4, 0xc8,
- 0x70, 0xac, 0x67, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4, 0x63, 0x33, 0x1b,
- 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x8c, 0xec, 0x6e, 0xd5, 0xde,
- 0x88, 0x54, 0x8c, 0x66, 0x63, 0x76, 0xbf, 0xf7, 0x06, 0x93, 0x21, 0xc2,
- 0xb1, 0x9d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x8c, 0xcc, 0x6e, 0xd7,
- 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x33, 0xb1, 0xbb, 0x57, 0x7a, 0x21,
- 0x52, 0x31, 0x99, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc6,
- 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x33, 0x31, 0xbb, 0x5f, 0xfb,
- 0x83, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48,
- 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x19, 0xd8,
- 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc, 0xc6, 0xed, 0x7f, 0xee, 0x0d,
- 0x26, 0x43, 0x85, 0x63, 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x19,
- 0x98, 0xdd, 0xaf, 0xfd, 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x67, 0x63, 0x76,
- 0xae, 0xf4, 0x42, 0xa4, 0x63, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99,
- 0x0e, 0x15, 0x8c, 0xec, 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x66, 0x63,
- 0x76, 0xbf, 0xf6, 0xc1, 0xa4, 0x64, 0x38, 0x72, 0x19, 0xc8, 0x6e, 0xd7,
- 0xe0, 0xa5, 0x11, 0x48, 0x59, 0x13, 0x78, 0x7b, 0x83, 0x48, 0xc8, 0x70,
- 0xe4, 0x33, 0x90, 0xdd, 0xaf, 0xc1, 0x4a, 0x22, 0x90, 0xb2, 0x26, 0xf0,
- 0xf6, 0x40, 0x93, 0x43, 0x85, 0x62, 0x3b, 0x2e, 0xd7, 0x60, 0xd2, 0x52,
- 0x24, 0x92, 0x78, 0x7f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c,
- 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf2, 0x91, 0x03, 0x3f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
- 0xf5, 0xcc, 0x27, 0x81, 0x2b, 0x5a, 0x4d, 0xff, 0x33, 0xe0, 0x99, 0xe1,
- 0xc6, 0xbc, 0x4c, 0xcb, 0x01, 0x2e, 0xdc, 0xf9, 0x83, 0x84, 0x8f, 0x6d,
- 0x25, 0xf9, 0x58, 0x92, 0x94, 0xb8, 0x3b, 0x7f, 0x2f, 0xb5, 0xff, 0xff,
- 0x7c, 0x57, 0xff, 0xff, 0xff, 0xfc, 0xc3, 0xa3, 0xf2, 0xab, 0xc5, 0x97,
- 0x89, 0x61, 0xc4, 0x85, 0x56, 0xc0, 0x4a, 0xf3, 0x35, 0x41, 0xa0, 0x60,
- 0x10, 0x7d, 0xb4, 0x5f, 0x84, 0x59, 0xd2, 0x7d, 0xc2, 0x17, 0x04, 0xee,
- 0xd5, 0xbc, 0x38, 0xce, 0xe9, 0xe7, 0x8d, 0x79, 0x48, 0x28, 0x80, 0x59,
- 0x7c, 0xf9, 0xa2, 0xd5, 0xfe, 0x85, 0x1e, 0x9d, 0x7f, 0xb7, 0x5e, 0x63,
- 0x10, 0xd4, 0x49, 0x52, 0x1c, 0xc0, 0x0a, 0xc8, 0xd0, 0x3e, 0x62, 0xe6,
- 0x5e, 0xdd, 0xfb, 0x6d, 0x1a, 0xe7, 0xe5, 0x0f, 0x4d, 0x36, 0x9f, 0x0b,
- 0xfe, 0x13, 0x13, 0x3a, 0x47, 0x2c, 0x00, 0x95, 0x79, 0xdf, 0x45, 0x18,
- 0xc4, 0x8d, 0xbb, 0x87, 0xaf, 0x6f, 0xae, 0x40, 0x74, 0x87, 0xe4, 0xab,
- 0xe7, 0xde, 0x32, 0x18, 0x31, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca,
- 0x64, 0xa9, 0x6b, 0x27, 0x00, 0x26, 0x6e, 0xc8, 0x23, 0xf2, 0x0f, 0xb1,
- 0x56, 0x3c, 0x93, 0x1e, 0x78, 0x08, 0x44, 0x55, 0x74, 0xba, 0x89, 0x06,
- 0x48, 0x04, 0x54, 0x2d, 0xc3, 0x67, 0xa7, 0x20, 0xea, 0x64, 0x00, 0x6f,
- 0x76, 0x02, 0x0b, 0xaa, 0x55, 0xe9, 0x0b, 0xbc, 0x50, 0x37, 0xab, 0xa2,
- 0x9f, 0xa8, 0x00, 0x33, 0xbb, 0x86, 0xd5, 0x12, 0x7e, 0xc7, 0x1d, 0xc8,
- 0x26, 0x3e, 0xff, 0xc8, 0x23, 0x18, 0xcb, 0xfc, 0x9f, 0x81, 0x24, 0x22,
- 0x26, 0x04, 0x98, 0xcb, 0x86, 0x50, 0x60, 0x57, 0xc0, 0x1f, 0x58, 0x33,
- 0xbd, 0x42, 0xa3, 0x31, 0xbb, 0x5b, 0x01, 0xbb, 0xdd, 0xdd, 0xef, 0x7f,
- 0x08, 0x2c, 0x00, 0x31, 0x7a, 0x76, 0xbe, 0x00, 0x01, 0x00, 0x8f, 0xce,
- 0x0e, 0x74, 0x03, 0x40, 0xc7, 0xbf, 0x00, 0x00, 0x03, 0x01, 0x00, 0xa9,
- 0xe0, 0x00, 0x20, 0x11, 0x14, 0x00, 0x04, 0x02, 0x22, 0x80, 0x00, 0x80,
- 0x44, 0x00, 0x8a, 0xde, 0x2a, 0xec, 0x01, 0x0f, 0xf9, 0x01, 0x47, 0xd7,
- 0x0e, 0x3b, 0x27, 0xec, 0x78, 0x00, 0x08, 0x04, 0x74, 0x8d, 0x2c, 0xb8,
- 0xd9, 0xa0, 0x40, 0x36, 0x89, 0xff, 0xff, 0xff, 0xe2, 0x11, 0x8c, 0xde,
- 0x71, 0x82, 0xff, 0x43, 0xfd, 0x5f, 0x08, 0x3c, 0x91, 0xfb, 0xd2, 0xb3,
- 0x17, 0xe3, 0x0b, 0x72, 0xc3, 0xdf, 0x0f, 0xcf, 0xeb, 0xe1, 0x58, 0x97,
- 0xff, 0xfe, 0x00, 0x19, 0x17, 0xc9, 0x4c, 0xda, 0x5e, 0x38, 0x82, 0x80,
- 0x00, 0x80, 0x64, 0x50, 0x00, 0x10, 0x0c, 0x8a, 0x00, 0x02, 0x01, 0x90,
- 0x00, 0xc2, 0xf5, 0x5b, 0xe8, 0x00, 0x04, 0x03, 0x00, 0x04, 0x3d, 0x63,
- 0xac, 0xc0, 0x08, 0x7e, 0x6e, 0xc6, 0xaa, 0x95, 0x52, 0xba, 0xa8, 0x89,
- 0x11, 0x6a, 0xf0, 0x60, 0x01, 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06,
- 0x2f, 0xed, 0x42, 0x8c, 0xcc, 0x7e, 0x6b, 0xfb, 0x50, 0xa3, 0x33, 0x1f,
- 0x98, 0x3f, 0x8e, 0xf6, 0x7f, 0x37, 0x91, 0x11, 0x48, 0x8b, 0xe0, 0x9a,
- 0x32, 0x1f, 0x9b, 0xfa, 0xc0, 0xfd, 0xec, 0x00, 0x85, 0x5b, 0x7f, 0x44,
- 0xfe, 0x68, 0x38, 0x07, 0xbf, 0x81, 0x2e, 0x40, 0x11, 0x7f, 0x56, 0x04,
- 0x7a, 0xed, 0x78, 0xef, 0x7c, 0x85, 0x80, 0x04, 0xb1, 0x3b, 0x69, 0xf2,
- 0xef, 0xa1, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44,
- 0x15, 0x7f, 0xcb, 0xef, 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff,
- 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xe3, 0x60,
- 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xa7, 0xfd,
- 0xfb, 0x24, 0x58, 0x9c, 0x37, 0xef, 0x0e, 0xcf, 0x57, 0x41, 0x11, 0x31,
- 0x5f, 0xff, 0xfb, 0xf7, 0xfd, 0xe2, 0x85, 0x01, 0x18, 0xe7, 0x22, 0x43,
- 0xba, 0xde, 0x1e, 0x00, 0xde, 0x29, 0x47, 0xa0, 0x3a, 0xf9, 0x00, 0x34,
- 0x61, 0xca, 0x4f, 0xf2, 0x8f, 0xd2, 0x22, 0x9d, 0xc0, 0x8d, 0x11, 0x4a,
- 0x60, 0x72, 0x08, 0x24, 0xa2, 0x45, 0x81, 0xd0, 0x42, 0x20, 0xcc, 0xb4,
- 0x28, 0x6e, 0x9e, 0x7b, 0xe3, 0x81, 0x62, 0xf0, 0xa1, 0xb3, 0x9e, 0xd9,
- 0xea, 0xaf, 0xaf, 0xc5, 0x7f, 0xff, 0x0c, 0x71, 0xea, 0x0e, 0x33, 0x06,
- 0x2b, 0x36, 0x01, 0x1e, 0xbe, 0xd8, 0x78, 0xa3, 0xa5, 0xbc, 0x3b, 0x2f,
- 0x01, 0x37, 0x35, 0xa0, 0xf9, 0x04, 0x77, 0xbb, 0x4a, 0x3f, 0x7e, 0xf7,
- 0xf8, 0x35, 0xe5, 0x48, 0x2b, 0xdd, 0xfb, 0x22, 0xe9, 0x13, 0xb9, 0x87,
- 0x1a, 0x3e, 0x7f, 0xf8, 0x60, 0x57, 0x15, 0x11, 0xf0, 0xf0, 0x91, 0xe0,
- 0x03, 0x05, 0x32, 0x93, 0x59, 0x7f, 0xaf, 0x84, 0x86, 0x8b, 0x74, 0xe8,
- 0xae, 0x74, 0x32, 0x06, 0x3e, 0x1b, 0x08, 0xef, 0xa5, 0xff, 0x0c, 0x15,
- 0x57, 0x0b, 0x33, 0x12, 0x98, 0x9c, 0x5f, 0xe0, 0x04, 0x2b, 0x7f, 0x16,
- 0x47, 0xfc, 0x81, 0x79, 0xdc, 0xb3, 0x24, 0x6f, 0x34, 0xa7, 0x87, 0x52,
- 0x8c, 0x55, 0x8d, 0x1b, 0x01, 0x0a, 0xea, 0x83, 0xb0, 0xfe, 0x87, 0x90,
- 0x10, 0xa6, 0x78, 0x00, 0x5e, 0x4f, 0xff, 0xe1, 0x8b, 0x53, 0x6f, 0xfc,
- 0x25, 0x80, 0x51, 0xd5, 0x8f, 0x7f, 0x90, 0x9a, 0x6b, 0x1d, 0x67, 0x66,
- 0xe8, 0x2d, 0x68, 0x26, 0x27, 0x18, 0x73, 0xec, 0x31, 0xf6, 0x97, 0xb5,
- 0xb0, 0xa6, 0x1d, 0x96, 0xfa, 0x21, 0x7d, 0x01, 0xf4, 0x94, 0x01, 0xed,
- 0xde, 0x3b, 0xf9, 0xf6, 0x1a, 0xd4, 0x1d, 0xfb, 0xeb, 0xf1, 0xdb, 0x71,
- 0x18, 0x62, 0xd6, 0x2e, 0x44, 0xdf, 0x89, 0xc0, 0x33, 0xf6, 0x75, 0x02,
- 0x88, 0x4b, 0x59, 0xdf, 0x80, 0x6f, 0xd4, 0x7a, 0x1e, 0x82, 0xee, 0xf5,
- 0x8e, 0xdb, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d,
- 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd,
- 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x01, 0x0f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x89, 0x8f, 0x80, 0x16, 0x32, 0x25,
- 0xb3, 0x31, 0x37, 0x5b, 0x05, 0x14, 0xab, 0xf9, 0x59, 0x61, 0x1e, 0x52,
- 0xe1, 0x1b, 0x2f, 0xdd, 0x1e, 0xff, 0x9b, 0xc5, 0x7f, 0xff, 0xff, 0xff,
- 0xff, 0xfc, 0x9f, 0x90, 0x21, 0x92, 0x28, 0x60, 0xe3, 0x81, 0xef, 0xc1,
- 0xa3, 0xd1, 0xd1, 0xa3, 0x15, 0x1f, 0x1b, 0x87, 0x44, 0x46, 0xd4, 0xc1,
- 0xcd, 0x6b, 0xb5, 0x04, 0xcb, 0xe4, 0xf8, 0x43, 0x93, 0x12, 0x2e, 0x71,
- 0xb0, 0x33, 0x8e, 0xff, 0xf7, 0x78, 0xad, 0xb9, 0x71, 0x9f, 0xbf, 0x3b,
- 0x40, 0x7f, 0x91, 0xf8, 0xaf, 0xff, 0xff, 0xe2, 0xc9, 0x00, 0x0a, 0xce,
- 0x73, 0xa2, 0x0a, 0xee, 0x5f, 0xff, 0xa1, 0x8d, 0x82, 0x82, 0x4c, 0x42,
- 0x00, 0x26, 0x0b, 0xdb, 0xc5, 0x54, 0x53, 0x79, 0x5c, 0x36, 0x1a, 0x0b,
- 0x58, 0xf4, 0xd3, 0x7e, 0xb6, 0x20, 0xaa, 0x76, 0xb8, 0x03, 0x54, 0x88,
- 0xda, 0x7e, 0x6d, 0xca, 0x72, 0x7e, 0x78, 0x9b, 0xb8, 0x3c, 0xf6, 0xbd,
- 0x22, 0x01, 0xde, 0xe6, 0x29, 0xa4, 0xc1, 0xe5, 0x63, 0x4c, 0x8c, 0x0c,
- 0x53, 0x30, 0xbb, 0x7f, 0x8f, 0x6b, 0x4c, 0x50, 0x99, 0x3f, 0xff, 0xff,
- 0xf3, 0x17, 0x80, 0x19, 0x1e, 0x28, 0xcc, 0x9f, 0xc5, 0x61, 0x10, 0x8f,
- 0x7f, 0xff, 0xfe, 0x4f, 0xc6, 0x7c, 0x46, 0x00, 0x44, 0xb0, 0xed, 0x24,
- 0x63, 0x9e, 0xba, 0x85, 0x58, 0x55, 0xf1, 0x4a, 0x2a, 0xfe, 0x23, 0xe8,
- 0x7d, 0x7b, 0xfa, 0x75, 0x58, 0x01, 0xf6, 0x01, 0xad, 0xf4, 0x1a, 0x64,
- 0x33, 0x56, 0x48, 0x91, 0x2e, 0xd5, 0x84, 0x72, 0x08, 0x46, 0xca, 0xe4,
- 0xd4, 0x05, 0xf8, 0xff, 0x92, 0x0f, 0xe1, 0x75, 0x9f, 0xd6, 0xeb, 0x0e,
- 0x72, 0x38, 0xba, 0x33, 0xcb, 0xcf, 0xeb, 0xeb, 0x83, 0x1c, 0x44, 0x6a,
- 0xcc, 0x67, 0x4c, 0x3e, 0x74, 0xc1, 0x38, 0xa0, 0x11, 0x7a, 0xc0, 0xff,
- 0xff, 0xb8, 0xbd, 0xf8, 0x3f, 0x09, 0xe0, 0x0f, 0xd3, 0xbb, 0xcb, 0x71,
- 0xfb, 0xb7, 0x00, 0x17, 0x15, 0xba, 0xf4, 0x6e, 0xf5, 0x57, 0x99, 0x7d,
- 0xdb, 0x8f, 0xf7, 0xf8, 0xef, 0x21, 0xbf, 0xff, 0x77, 0x85, 0x5f, 0x00,
- 0x88, 0xb6, 0x49, 0xd7, 0x98, 0xa3, 0xde, 0xa0, 0xf9, 0x9e, 0x6c, 0xfd,
- 0x7f, 0xf5, 0x9b, 0xfe, 0xe2, 0x2e, 0x3c, 0x67, 0x80, 0x11, 0x4d, 0xcc,
- 0xc5, 0x14, 0x7e, 0x00, 0x88, 0xb6, 0x49, 0xd7, 0x82, 0x8f, 0x7a, 0x83,
- 0xe6, 0x78, 0x3f, 0x6c, 0xfd, 0x7f, 0xf5, 0x0f, 0xf3, 0x6e, 0xe8, 0x8f,
- 0x1f, 0x08, 0xc5, 0x73, 0x23, 0xeb, 0xc3, 0xef, 0xa2, 0x26, 0xa4, 0x3d,
- 0x40, 0x8a, 0x67, 0x66, 0x29, 0xc7, 0xf0, 0x3b, 0xaa, 0x50, 0x89, 0x7b,
- 0xed, 0xb0, 0x62, 0xdb, 0x46, 0x4d, 0x21, 0x1b, 0x5f, 0xbb, 0xfe, 0x3b,
- 0xd8, 0x52, 0x50, 0x00, 0x8a, 0xdd, 0xdd, 0xd7, 0x7c, 0x01, 0x74, 0xd0,
- 0x64, 0x2f, 0x6a, 0xff, 0xff, 0x08, 0xb8, 0xea, 0x8c, 0xc8, 0x91, 0xb5,
- 0x30, 0x7f, 0x5e, 0x36, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64,
- 0x57, 0xfc, 0xbe, 0xfc, 0x67, 0xfd, 0xff, 0xdf, 0x8d, 0xff, 0xfc, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff,
- 0xcb, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x25,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa, 0xcc,
- 0x27, 0x00, 0x36, 0xd8, 0xfb, 0x32, 0x83, 0x81, 0xb7, 0xc9, 0x94, 0x8c,
- 0xf3, 0xd0, 0xcc, 0x4c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x05, 0xac,
- 0x0d, 0x71, 0x0c, 0x2c, 0x24, 0x01, 0x3f, 0xb6, 0x66, 0x2c, 0xa7, 0x0e,
- 0x0d, 0xaa, 0x2d, 0x22, 0xc6, 0x6b, 0x32, 0x43, 0x1c, 0xb6, 0x03, 0x03,
- 0xfa, 0x39, 0xdf, 0xf3, 0x35, 0xda, 0x73, 0xf3, 0x81, 0x22, 0xe0, 0x0b,
- 0x4d, 0x23, 0x43, 0x58, 0xf2, 0x0f, 0xde, 0x64, 0x44, 0x49, 0x64, 0x42,
- 0xdd, 0x42, 0xcb, 0x07, 0x88, 0x89, 0x2d, 0x0c, 0x07, 0xfc, 0xbf, 0x09,
- 0x8b, 0xf8, 0x4d, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5e, 0xa2, 0x0a, 0x08,
- 0x94, 0x8b, 0x96, 0x11, 0xab, 0xf9, 0x53, 0x7f, 0xde, 0x2b, 0xff, 0xd7,
- 0xc5, 0x99, 0x10, 0x6a, 0x2e, 0x50, 0x26, 0xbe, 0x59, 0xdc, 0xc0, 0x00,
- 0xa6, 0xc5, 0x97, 0xdb, 0xa0, 0x11, 0xf8, 0x67, 0xe1, 0x6f, 0x8b, 0x3f,
- 0xf6, 0xe4, 0xd5, 0x6b, 0x0f, 0xff, 0xef, 0xc3, 0x1f, 0xf9, 0xfe, 0x08,
- 0x04, 0xe0, 0x0f, 0xa7, 0x78, 0x1f, 0xbc, 0xef, 0xff, 0xd7, 0xb1, 0x11,
- 0x04, 0x10, 0xc7, 0x30, 0x04, 0x1d, 0x26, 0xba, 0x47, 0xe7, 0x20, 0x20,
- 0xf3, 0xc0, 0x29, 0x9e, 0xb9, 0xf3, 0x58, 0xc0, 0xb7, 0x72, 0x7e, 0x7e,
- 0x7e, 0x85, 0x91, 0x34, 0xd1, 0xaf, 0x3e, 0x2a, 0x54, 0x79, 0xbd, 0xb6,
- 0x3f, 0x0c, 0x83, 0x3e, 0xb8, 0x72, 0x2f, 0x0c, 0x7f, 0xff, 0x78, 0x21,
- 0x36, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x18, 0x5f, 0x50, 0xc3, 0x8f, 0x52,
- 0x18, 0x33, 0xa6, 0x12, 0x71, 0x14, 0xa6, 0x2c, 0x84, 0x2f, 0x01, 0xff,
- 0xfc, 0x0f, 0xbb, 0xc0, 0xfd, 0xe7, 0x00, 0xb4, 0xbf, 0x94, 0xf1, 0xfc,
- 0x7a, 0xc0, 0x08, 0x9f, 0x76, 0x48, 0xcd, 0x7b, 0x27, 0x39, 0x6c, 0xc1,
- 0xba, 0x79, 0x8e, 0x0a, 0xb3, 0xe3, 0xb2, 0x06, 0x3f, 0xfb, 0x93, 0xf1,
- 0x8f, 0x80, 0x36, 0xb6, 0x93, 0x7e, 0x60, 0x0d, 0xad, 0xa4, 0xdf, 0x81,
- 0x6d, 0xd2, 0xb3, 0x46, 0xe7, 0x00, 0x49, 0x8d, 0x10, 0x61, 0xf8, 0x7a,
- 0x43, 0x02, 0x81, 0xea, 0x04, 0x91, 0x18, 0x00, 0xff, 0x92, 0xe8, 0x74,
- 0x8f, 0xef, 0xdc, 0x6d, 0x6e, 0xcf, 0xbe, 0xf0, 0x3a, 0xc6, 0xaa, 0xa3,
- 0xb0, 0x7f, 0xae, 0x3b, 0x6a, 0x27, 0x42, 0x75, 0x8d, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x2e, 0xb4, 0x95, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe,
- 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
- 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x21, 0xf4, 0xa1, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xff, 0x98,
- 0xfb, 0x04, 0x1b, 0x44, 0xb7, 0x89, 0x94, 0xb8, 0x0c, 0xf9, 0x7f, 0x3e,
- 0xeb, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x15, 0x8c, 0x1d, 0xfe,
- 0x66, 0x32, 0x77, 0x00, 0x3e, 0x4f, 0xe0, 0x83, 0x81, 0x40, 0x62, 0x02,
- 0x67, 0xf0, 0x3e, 0x89, 0xec, 0x1a, 0xfa, 0xf1, 0xc0, 0x62, 0x15, 0x9d,
- 0xce, 0x00, 0x63, 0x1e, 0xac, 0x00, 0xa8, 0x2e, 0xf6, 0xc6, 0xe4, 0xb2,
- 0x50, 0xc4, 0x7c, 0x5f, 0x88, 0x10, 0x23, 0x06, 0xee, 0x18, 0xb3, 0x00,
- 0x67, 0x00, 0x8e, 0x59, 0x01, 0x74, 0x42, 0x62, 0x23, 0x3f, 0x31, 0x00,
- 0xb1, 0x89, 0x83, 0xb0, 0x1a, 0x14, 0xe7, 0xa6, 0x7c, 0xf7, 0x4a, 0x4d,
- 0x9c, 0x53, 0xff, 0x15, 0xff, 0xff, 0xe8, 0xbc, 0x59, 0x21, 0x13, 0x97,
- 0x4b, 0xb1, 0x2b, 0x10, 0x42, 0xef, 0x1f, 0x30, 0xc1, 0xfb, 0xf9, 0xbf,
- 0x5b, 0x3c, 0xd0, 0x1b, 0x7e, 0x00, 0x4c, 0x7e, 0x54, 0x10, 0x9b, 0x60,
- 0xfb, 0x1b, 0xda, 0x34, 0x9f, 0x9e, 0x00, 0x2e, 0x3e, 0x14, 0xe8, 0xee,
- 0xd5, 0x7f, 0xfc, 0xcb, 0xad, 0x44, 0x4b, 0x7f, 0xb0, 0x30, 0x2b, 0x6d,
- 0xbd, 0x24, 0xdb, 0xff, 0xfa, 0xd8, 0x5a, 0xe5, 0x0d, 0x7b, 0xff, 0xe3,
- 0x21, 0xc7, 0x6e, 0x0f, 0xf9, 0xb7, 0x9f, 0xff, 0xff, 0xfc, 0x9f, 0xff,
- 0xff, 0xc4, 0x38, 0x71, 0x16, 0x0a, 0x96, 0x29, 0x2b, 0xe9, 0x64, 0xe1,
- 0x01, 0x6c, 0xa4, 0x83, 0x77, 0x05, 0x7f, 0x31, 0x63, 0xff, 0xf0, 0x92,
- 0x09, 0x8c, 0xdc, 0x35, 0x12, 0x9b, 0x8d, 0xa9, 0x35, 0x70, 0x7d, 0x34,
- 0x03, 0x19, 0xf9, 0x5a, 0x86, 0x88, 0x34, 0xa2, 0xdc, 0x26, 0x75, 0x45,
- 0x73, 0xfe, 0x7f, 0x2f, 0x09, 0xb5, 0x00, 0x21, 0x35, 0x7d, 0xdf, 0xff,
- 0xff, 0xfd, 0x6f, 0x0c, 0x20, 0xb1, 0x63, 0xbc, 0x87, 0x8b, 0xcf, 0xe6,
- 0xfa, 0x53, 0xe1, 0x08, 0x50, 0x46, 0x00, 0x1f, 0xb0, 0xa4, 0xd1, 0x2c,
- 0x89, 0x9e, 0xfe, 0x41, 0x76, 0x0e, 0xe3, 0x5b, 0xc6, 0x7b, 0xeb, 0xb9,
- 0x00, 0x99, 0x25, 0x99, 0xe8, 0x48, 0xae, 0x90, 0xc7, 0x7b, 0x7c, 0x49,
- 0x1c, 0x5f, 0x98, 0x42, 0xfa, 0x87, 0xfc, 0x24, 0x87, 0x9a, 0x3f, 0x80,
- 0x28, 0xc3, 0x95, 0xcb, 0x5f, 0x4b, 0x0f, 0xa6, 0xc4, 0x30, 0x5f, 0xf8,
- 0x4b, 0x87, 0x04, 0x1b, 0x59, 0x00, 0x17, 0xad, 0xa5, 0xf5, 0xbb, 0xbf,
- 0xee, 0xde, 0x58, 0x4a, 0xde, 0x3f, 0xdf, 0xe6, 0xff, 0x00, 0xd5, 0xed,
- 0x0a, 0xc0, 0x03, 0x1f, 0x9a, 0xe7, 0x27, 0x0f, 0x19, 0x60, 0xf0, 0x2e,
- 0x18, 0xac, 0xe0, 0x6a, 0xe8, 0x08, 0xc9, 0x91, 0xb1, 0xa1, 0x54, 0x6e,
- 0x3f, 0x7f, 0x6f, 0xca, 0x9c, 0xdc, 0x80, 0xb5, 0x41, 0xb0, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x1d, 0x7f, 0xcb, 0xef, 0xc6, 0x7f,
- 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f,
- 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xad, 0x67, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x50, 0xf8, 0x54, 0x4e,
- 0x00, 0x8a, 0x6b, 0x38, 0x4f, 0xf8, 0xfe, 0x00, 0xb1, 0x48, 0x80, 0x0d,
- 0x41, 0x1c, 0x5f, 0x15, 0xff, 0xff, 0xf7, 0xef, 0xd6, 0x28, 0x50, 0x04,
- 0xc0, 0x61, 0x3a, 0xf3, 0xaf, 0x1d, 0x8c, 0x41, 0x1b, 0x5e, 0x41, 0xd3,
- 0x8f, 0xfa, 0xa3, 0x00, 0x7f, 0x50, 0xa3, 0x1b, 0x60, 0x2b, 0x1c, 0xba,
- 0x88, 0x98, 0x00, 0xb4, 0x58, 0x9a, 0x2e, 0xf1, 0xd0, 0xaa, 0x56, 0x2d,
- 0xad, 0x7b, 0x68, 0xf8, 0xf3, 0xf2, 0xe9, 0xb1, 0x5f, 0xfe, 0xfc, 0x31,
- 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xcd, 0xa9,
- 0xae, 0x5e, 0xff, 0x7c, 0x00, 0xcc, 0xae, 0x34, 0xed, 0x5e, 0xad, 0x96,
- 0xc4, 0x91, 0x4c, 0x7b, 0xdf, 0xd6, 0x51, 0xa7, 0xcf, 0xff, 0xf9, 0x3f,
- 0xfd, 0xf8, 0x63, 0x86, 0x0f, 0xff, 0x09, 0x70, 0x04, 0xdd, 0x1a, 0x35,
- 0x4f, 0x10, 0xa2, 0x65, 0xe0, 0x0d, 0x72, 0x6d, 0xce, 0xd8, 0xfa, 0xdb,
- 0xe3, 0xb2, 0x06, 0x63, 0x70, 0xcf, 0x86, 0x3e, 0x90, 0xe3, 0xc2, 0x30,
- 0x64, 0x02, 0xfa, 0x50, 0x1f, 0x50, 0x21, 0x2b, 0x92, 0x73, 0x69, 0xf2,
- 0xf6, 0x03, 0xcc, 0x4b, 0x2d, 0xc1, 0x9b, 0x7e, 0xad, 0xaf, 0xf0, 0x12,
- 0xb6, 0x67, 0xc2, 0x5f, 0xc3, 0xb6, 0xe2, 0x30, 0xc0, 0xf7, 0x1f, 0xfe,
- 0x12, 0x2a, 0xf0, 0x13, 0xbc, 0xa0, 0x3c, 0x8e, 0xc0, 0xd1, 0xfd, 0x6c,
- 0xa0, 0xe4, 0x23, 0x12, 0x5b, 0xf5, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x2e, 0xb5, 0x9d, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xf1, 0xbf,
- 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xc2,
- 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06,
- 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
- 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0xf5, 0xa9, 0x04, 0xff, 0xff, 0xff, 0xf9, 0xb8, 0x7d, 0x0f, 0x01, 0xff,
- 0xe5, 0x43, 0x82, 0xff, 0xa0, 0x13, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd7, 0xff, 0xff, 0x5f, 0xe5, 0x17, 0x82, 0x36, 0x97, 0x7d,
- 0xa0, 0x7e, 0x67, 0xa1, 0x00, 0x83, 0x7e, 0x07, 0xd6, 0xa6, 0x4f, 0xfc,
- 0x6c, 0x5a, 0xe2, 0xb5, 0x81, 0xee, 0xeb, 0xf0, 0x00, 0xfc, 0xb6, 0x27,
- 0x54, 0xf4, 0x89, 0x5b, 0xf7, 0x36, 0x3d, 0x66, 0xfe, 0x6c, 0x60, 0x92,
- 0x97, 0x05, 0x2d, 0xa4, 0x75, 0xd1, 0xef, 0xfa, 0xbc, 0x57, 0xff, 0xd8,
- 0xe7, 0x7f, 0xfe, 0x6c, 0xc0, 0xf2, 0x0b, 0x52, 0xf0, 0x91, 0xc7, 0x44,
- 0x6f, 0x5e, 0x12, 0x71, 0x3e, 0x3c, 0x51, 0xa1, 0x23, 0x0c, 0x49, 0x8a,
- 0x28, 0x47, 0xc1, 0xfd, 0xb2, 0x2e, 0xc0, 0xfe, 0x6f, 0xc2, 0x0e, 0x9e,
- 0x07, 0x41, 0x9b, 0x38, 0xfe, 0x1a, 0x90, 0x70, 0xd4, 0x70, 0xfe, 0x7e,
- 0x04, 0x62, 0xcf, 0x25, 0x82, 0x3f, 0x80, 0x58, 0x71, 0x75, 0xfa, 0x17,
- 0x84, 0x98, 0x72, 0x10, 0xba, 0x38, 0x1b, 0xd7, 0xc0, 0x25, 0xa2, 0x56,
- 0x61, 0xc3, 0x72, 0x39, 0x8d, 0x02, 0xce, 0x8a, 0xcc, 0xe4, 0x4e, 0x6f,
- 0x64, 0x04, 0xfc, 0xf6, 0x46, 0x8c, 0x33, 0xbf, 0xec, 0x33, 0xb5, 0xd9,
- 0xb1, 0xed, 0xd4, 0x68, 0xbc, 0x24, 0x28, 0x1e, 0x55, 0xcf, 0xdf, 0x42,
- 0xea, 0x3c, 0xcd, 0x2d, 0x85, 0x67, 0xdb, 0x24, 0x75, 0xda, 0x8c, 0xf1,
- 0x34, 0x9e, 0xaa, 0xdf, 0x7c, 0x00, 0xf6, 0xc5, 0xbc, 0x2b, 0x07, 0x06,
- 0xf4, 0x8d, 0x7e, 0xcc, 0x0a, 0x45, 0x21, 0xe0, 0x7b, 0xd2, 0x67, 0x78,
- 0x8c, 0x2e, 0xe1, 0x03, 0x36, 0xa9, 0x0d, 0xc7, 0x6c, 0x06, 0x77, 0x26,
- 0x66, 0x12, 0x69, 0xfe, 0xaa, 0xab, 0xe2, 0x14, 0x41, 0xf4, 0xc9, 0x0f,
- 0xb4, 0xbf, 0x09, 0x8b, 0xaa, 0x38, 0x44, 0xa1, 0xeb, 0x35, 0xf6, 0xf6,
- 0xfb, 0x1a, 0x3c, 0x75, 0x81, 0xbe, 0x82, 0x10, 0x7b, 0xdf, 0x82, 0xb6,
- 0x67, 0x60, 0xb9, 0x2f, 0x7f, 0xdd, 0xe0, 0xf1, 0x5f, 0xe5, 0x33, 0x99,
- 0xdf, 0xfc, 0xd4, 0x0c, 0x70, 0x7c, 0x71, 0x78, 0xa7, 0x84, 0x78, 0x3e,
- 0xef, 0x64, 0xc6, 0x47, 0x68, 0xe8, 0x7a, 0x5c, 0x04, 0x19, 0xbf, 0x5d,
- 0x9a, 0x1e, 0xfe, 0x00, 0x10, 0xca, 0x59, 0x9e, 0x85, 0x95, 0x77, 0x55,
- 0xb1, 0x57, 0x42, 0xb3, 0x2e, 0xd7, 0xf9, 0x61, 0xa2, 0x42, 0x43, 0x8f,
- 0x8a, 0xb7, 0xff, 0x78, 0x05, 0x7f, 0x09, 0x55, 0x03, 0x82, 0x68, 0x05,
- 0x94, 0x41, 0x24, 0x73, 0x1e, 0x30, 0x07, 0xa3, 0x26, 0x7f, 0x42, 0x63,
- 0x75, 0x86, 0x2f, 0xfc, 0x24, 0x22, 0x38, 0x51, 0x9c, 0x19, 0x86, 0x11,
- 0x7a, 0xff, 0xed, 0x26, 0x41, 0x8b, 0x11, 0xfe, 0x3f, 0xff, 0x3f, 0xfc,
- 0x43, 0x84, 0x38, 0x75, 0xfb, 0x90, 0xda, 0x19, 0xc7, 0x0b, 0x6f, 0xc2,
- 0x6b, 0x09, 0x99, 0xec, 0x93, 0x66, 0x1e, 0x88, 0x68, 0x3d, 0xa3, 0x87,
- 0x84, 0xe8, 0x44, 0xff, 0x22, 0xbc, 0x3e, 0x80, 0x7f, 0xfe, 0xd1, 0x81,
- 0x00, 0x4f, 0xb6, 0xfc, 0x85, 0x21, 0xbe, 0x04, 0xae, 0xec, 0x10, 0x05,
- 0x50, 0x4e, 0xe0, 0x5c, 0xd1, 0xf0, 0xff, 0xc2, 0x48, 0x3a, 0x16, 0x76,
- 0x07, 0x38, 0xfa, 0x0d, 0xb5, 0x02, 0xf8, 0x01, 0xd0, 0xb3, 0xb0, 0x39,
- 0xc7, 0x9c, 0x1b, 0x6a, 0x00, 0x3a, 0x14, 0x76, 0x05, 0x38, 0xf1, 0x01,
- 0xb6, 0xaf, 0x18, 0x8c, 0xfc, 0x71, 0x61, 0x23, 0x8f, 0x50, 0xab, 0x14,
- 0xeb, 0x8b, 0x0f, 0xc8, 0x29, 0x8f, 0x8a, 0xac, 0x82, 0x22, 0x7e, 0xc5,
- 0x15, 0x7c, 0x64, 0x6a, 0x1d, 0xe6, 0xe2, 0x9c, 0x39, 0x0b, 0x6d, 0x1c,
- 0x56, 0x39, 0x1d, 0xb3, 0xe6, 0xee, 0x3b, 0xe7, 0x89, 0xae, 0x43, 0x40,
- 0x01, 0x27, 0xa2, 0x4d, 0x9b, 0x42, 0x8e, 0xfa, 0x1c, 0xd9, 0x87, 0xd6,
- 0x27, 0x53, 0x8b, 0x41, 0xc0, 0x0b, 0x02, 0x96, 0xa7, 0xe4, 0x4e, 0xf5,
- 0xcb, 0xfc, 0x00, 0xb1, 0x63, 0x4d, 0x7b, 0x54, 0x6f, 0xbc, 0xf9, 0x86,
- 0xee, 0x83, 0xff, 0xff, 0x73, 0xe1, 0xee, 0x3f, 0xf9, 0xe0, 0xab, 0x24,
- 0xf7, 0x19, 0x59, 0xef, 0x74, 0xf1, 0x39, 0xbf, 0xff, 0xb4, 0x10, 0x88,
- 0x80, 0x03, 0x66, 0x62, 0x5c, 0x52, 0x08, 0x7a, 0xf9, 0x03, 0x17, 0xd0,
- 0xd0, 0x02, 0xcb, 0xa8, 0x56, 0xe1, 0x0f, 0xbb, 0xe8, 0x36, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4, 0x0d, 0xe0, 0x7c, 0xf0, 0x3e, 0x90,
- 0x93, 0xd2, 0x8b, 0xca, 0x83, 0xa8, 0xb7, 0x0b, 0x87, 0xb6, 0x03, 0x21,
- 0xb1, 0x5c, 0xc3, 0xd4, 0xf8, 0xa4, 0x00, 0x80, 0x0a, 0x19, 0x54, 0x0c,
- 0xb0, 0xa3, 0xdf, 0x80, 0x00, 0x01, 0x0f, 0x80, 0x16, 0x2c, 0x69, 0xaf,
- 0x6a, 0x8d, 0xf7, 0x99, 0x86, 0xee, 0x83, 0xff, 0xff, 0x73, 0xe1, 0xee,
- 0x3f, 0xf9, 0xe0, 0xab, 0x24, 0xf7, 0x19, 0x59, 0xef, 0x77, 0xfc, 0xdf,
- 0xb1, 0x66, 0xec, 0x47, 0x8c, 0x50, 0x01, 0xe9, 0x00, 0xef, 0x15, 0x9c,
- 0xc0, 0x60, 0x65, 0xf5, 0xcc, 0x00, 0x07, 0x16, 0x3b, 0x1a, 0x4e, 0xa8,
- 0xff, 0xff, 0xc9, 0xfe, 0xff, 0xed, 0xff, 0x80, 0x16, 0x05, 0x2d, 0xd7,
- 0xb2, 0x2b, 0xd7, 0x20, 0x34, 0x8a, 0xf1, 0xa1, 0x11, 0x41, 0xfd, 0x8c,
- 0x7f, 0xfa, 0xe0, 0x41, 0x8d, 0x13, 0x9b, 0xf3, 0x71, 0x59, 0xef, 0x60,
- 0xe3, 0xef, 0xff, 0xb7, 0xbf, 0x20, 0x88, 0xbc, 0x47, 0x88, 0xe6, 0xe2,
- 0x04, 0x41, 0xbc, 0x31, 0x75, 0x04, 0x8d, 0xa0, 0x14, 0x0b, 0xca, 0xc2,
- 0x2e, 0x1e, 0xdd, 0xe3, 0x04, 0x57, 0xc2, 0x4b, 0x82, 0x4d, 0x81, 0xfc,
- 0xb6, 0x1c, 0x41, 0x8c, 0xa4, 0x36, 0xfb, 0x7e, 0x02, 0x73, 0x1f, 0x93,
- 0x2b, 0xf4, 0x44, 0x88, 0x6e, 0xe5, 0xff, 0xa1, 0xbf, 0x1b, 0xc8, 0xe1,
- 0x03, 0x17, 0xfd, 0x7f, 0xf9, 0x08, 0x1d, 0x83, 0x02, 0x23, 0x41, 0x6b,
- 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xe0, 0xc3, 0x5f,
- 0xaf, 0xd7, 0xeb, 0xf5, 0xfa, 0xff, 0x94, 0x8e, 0xf8, 0xdf, 0x11, 0xfe,
- 0x28, 0x40, 0x6a, 0x58, 0x7a, 0x18, 0x2e, 0x1d, 0x50, 0xb0, 0xe8, 0x60,
- 0xb8, 0x67, 0xc2, 0x30, 0x4b, 0xb0, 0x1e, 0x6b, 0x22, 0xec, 0x07, 0x9a,
- 0xaf, 0x55, 0x22, 0xec, 0x07, 0x9a, 0xeb, 0xbd, 0x05, 0xd2, 0xbf, 0x08,
- 0xcc, 0x00, 0x5c, 0x39, 0x05, 0xd3, 0x6d, 0xb6, 0xdb, 0x34, 0xe0, 0xba,
- 0x0d, 0x2a, 0x07, 0xdf, 0xf1, 0x1e, 0x8f, 0x0a, 0xe7, 0xe5, 0xff, 0xff,
- 0xff, 0xff, 0xa3, 0x33, 0xf2, 0xff, 0x06, 0x3f, 0x10, 0x33, 0x04, 0x6d,
- 0x81, 0x3b, 0xff, 0x84, 0x2e, 0x5f, 0xbf, 0xc2, 0x2f, 0x87, 0x65, 0xae,
- 0x9c, 0x3b, 0x0f, 0xdb, 0xdc, 0x78, 0x3c, 0x18, 0x98, 0x46, 0x4f, 0x0a,
- 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60, 0x67, 0xff, 0xff,
- 0xef, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xeb, 0xbe, 0xa6, 0x13, 0x84,
- 0xac, 0xe4, 0xb8, 0x63, 0xff, 0x5f, 0xc1, 0x03, 0xc0, 0x1a, 0x37, 0x34,
- 0x07, 0xff, 0xd6, 0xf8, 0xaf, 0xff, 0x7f, 0xdf, 0xff, 0x14, 0x30, 0x05,
- 0xf3, 0x8a, 0xed, 0xba, 0xd0, 0xb9, 0x27, 0x40, 0x03, 0xe1, 0x66, 0xdc,
- 0x27, 0x0f, 0x80, 0x24, 0x9b, 0x81, 0x80, 0x31, 0x29, 0x06, 0x58, 0x56,
- 0x50, 0x87, 0xf4, 0x06, 0x66, 0xe1, 0x22, 0xaf, 0xf9, 0x0a, 0x6a, 0x63,
- 0x8b, 0xc9, 0x8e, 0xc9, 0x35, 0x32, 0x18, 0x0f, 0xfb, 0xfe, 0x13, 0x12,
- 0x38, 0x12, 0x20, 0x2d, 0x36, 0x2d, 0xd5, 0xe1, 0x56, 0x98, 0x11, 0x11,
- 0x4b, 0xff, 0xf5, 0x7d, 0x1d, 0x40, 0x75, 0x0f, 0xf5, 0x5f, 0x3e, 0xf1,
- 0x9c, 0x8a, 0xff, 0xbf, 0x7e, 0xb1, 0x9e, 0x04, 0x4a, 0xf7, 0x1d, 0x46,
- 0xb1, 0xb0, 0x03, 0xd2, 0x1a, 0x16, 0x20, 0x8b, 0x32, 0xf4, 0xf8, 0x5e,
- 0xe6, 0xc7, 0x3e, 0xd7, 0x81, 0x05, 0x87, 0x61, 0xb5, 0xdc, 0xb9, 0x71,
- 0xb0, 0xa9, 0x81, 0xe5, 0xff, 0x86, 0x1d, 0xc1, 0x62, 0x20, 0x64, 0x67,
- 0x5c, 0x00, 0xcb, 0xe7, 0x74, 0x76, 0x3f, 0x7f, 0xfe, 0x4e, 0xff, 0xbf,
- 0x7e, 0x4e, 0x07, 0xc1, 0x08, 0x00, 0xcd, 0xbf, 0xeb, 0xff, 0xff, 0xf4,
- 0xf6, 0xca, 0x41, 0x17, 0x15, 0xae, 0x00, 0xef, 0x3b, 0x5d, 0x5c, 0xcc,
- 0x6e, 0x02, 0xa6, 0x71, 0x52, 0xda, 0x64, 0x66, 0x00, 0x61, 0x97, 0xef,
- 0x45, 0x04, 0x48, 0x98, 0x21, 0x80, 0xc8, 0x33, 0xf4, 0x41, 0x23, 0x03,
- 0x83, 0x3b, 0xeb, 0x6b, 0x8e, 0xcc, 0xf8, 0xed, 0xaf, 0x0c, 0x05, 0x57,
- 0x5f, 0x8a, 0xf1, 0x45, 0xc8, 0x1a, 0x00, 0x3c, 0xcb, 0xfa, 0x6e, 0xb7,
- 0x6d, 0xad, 0xf2, 0xf3, 0xff, 0xfe, 0x01, 0x7d, 0x28, 0x0d, 0x44, 0x5f,
- 0x86, 0x3f, 0xd7, 0x5d, 0x70, 0xad, 0xa0, 0xed, 0x3b, 0xff, 0xaf, 0xf0,
- 0x05, 0x8e, 0xff, 0xce, 0xf6, 0x8c, 0x52, 0x39, 0x58, 0x9c, 0x36, 0xfa,
- 0x5f, 0x7c, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x82,
- 0xb7, 0xc8, 0xb2, 0x12, 0x00, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5f,
- 0xc4, 0x19, 0xc3, 0x17, 0x80, 0x94, 0x31, 0xef, 0xca, 0xd5, 0xc4, 0xc9,
- 0x80, 0x00, 0x80, 0x22, 0xed, 0x7f, 0x80, 0x00, 0x02, 0x01, 0x10, 0x02,
- 0x47, 0xec, 0x91, 0x00, 0x42, 0x3e, 0xb9, 0x80, 0x0e, 0xd5, 0xa0, 0x17,
- 0x18, 0x2e, 0x41, 0xbc, 0x63, 0xe5, 0x5d, 0xe3, 0xbb, 0xe5, 0xff, 0xff,
- 0xff, 0xff, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xe1, 0x5e, 0xfd,
- 0xfb, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdd, 0xfb, 0xe5, 0xc2, 0x90, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
- 0xf3, 0x09, 0xc0, 0x03, 0x31, 0xb6, 0xf9, 0x4f, 0x9b, 0xe5, 0x73, 0x8d,
- 0x35, 0x7d, 0xd2, 0x7f, 0x84, 0x24, 0x8b, 0xe0, 0x93, 0xc9, 0x36, 0x96,
- 0x69, 0xef, 0xfb, 0xf8, 0x00, 0xe4, 0x7d, 0xec, 0x8b, 0x2f, 0xf0, 0x26,
- 0xde, 0x85, 0x8a, 0x56, 0x42, 0xf7, 0xf4, 0xf1, 0x31, 0x5f, 0xff, 0xff,
- 0xfe, 0x51, 0x9c, 0x25, 0xf3, 0xd1, 0xff, 0xcd, 0xe8, 0xb0, 0x59, 0x49,
- 0xd0, 0x63, 0x16, 0x69, 0xba, 0xeb, 0xb7, 0xd2, 0xe9, 0x18, 0x24, 0x6e,
- 0xa7, 0xbf, 0xfd, 0x59, 0x00, 0x26, 0xf6, 0xa0, 0xce, 0xc6, 0x3f, 0xd7,
- 0x8e, 0x56, 0xc9, 0xef, 0xf9, 0x78, 0x6e, 0x0f, 0xf0, 0x02, 0x08, 0xe7,
- 0x18, 0x54, 0xd1, 0x6b, 0xf0, 0x11, 0x37, 0x73, 0x8f, 0xf7, 0x9a, 0xaa,
- 0x5a, 0x60, 0xe7, 0xd1, 0x6e, 0xd4, 0x08, 0xc2, 0x07, 0x7b, 0x72, 0x97,
- 0x6f, 0xac, 0x00, 0x01, 0x39, 0x26, 0xeb, 0xf9, 0x06, 0x21, 0x7a, 0x0a,
- 0x37, 0xff, 0xda, 0x53, 0x63, 0xfc, 0xb0, 0xd0, 0x4b, 0xc0, 0x01, 0xbb,
- 0xa3, 0x12, 0xc9, 0x56, 0x87, 0x4e, 0x68, 0x8c, 0x8d, 0xa9, 0x83, 0x39,
- 0xdb, 0x29, 0x6b, 0xba, 0x0e, 0x6f, 0xf0, 0x97, 0xe0, 0x80, 0x58, 0x30,
- 0x8b, 0x25, 0x31, 0xf8, 0x9f, 0x7f, 0xf8, 0x32, 0x12, 0x23, 0x1d, 0x24,
- 0x7b, 0xde, 0xf1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x2a, 0x44, 0xc4, 0xee,
- 0xab, 0x66, 0xf0, 0x4c, 0xf6, 0xd6, 0x0e, 0x09, 0x0a, 0xd2, 0xc1, 0x17,
- 0xad, 0x79, 0xff, 0x80, 0x45, 0x2b, 0xd8, 0x0f, 0x98, 0xcd, 0xfd, 0x7c,
- 0x03, 0x13, 0x0b, 0x3a, 0x7e, 0xa5, 0x95, 0xc8, 0x35, 0x21, 0x17, 0xf3,
- 0xee, 0xfb, 0x22, 0x69, 0xf8, 0x78, 0x97, 0x81, 0xc4, 0x8c, 0xa0, 0x4a,
- 0xc1, 0xca, 0xbb, 0xd0, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0x98,
- 0x20, 0xb8, 0x17, 0xfc, 0x24, 0xc1, 0xb3, 0x50, 0xd3, 0x4c, 0x7c, 0x5b,
- 0x3a, 0xc5, 0xbc, 0x67, 0x0b, 0x58, 0x55, 0x84, 0x77, 0xa3, 0x8b, 0x15,
- 0x99, 0xe5, 0xab, 0xe5, 0x54, 0xa7, 0xd5, 0x26, 0x4f, 0xd2, 0x64, 0xe7,
- 0x80, 0x67, 0xf5, 0xef, 0xb6, 0x1a, 0x89, 0x17, 0xc7, 0x79, 0xbc, 0x77,
- 0xb5, 0x08, 0xe4, 0x7c, 0x00, 0x44, 0x5c, 0xba, 0x7b, 0xbb, 0xd3, 0x61,
- 0xf4, 0xa7, 0xe0, 0x81, 0x80, 0x1e, 0x52, 0xae, 0x91, 0xbe, 0xa7, 0x85,
- 0xe3, 0xeb, 0xb3, 0xff, 0xa7, 0xe3, 0xe0, 0x00, 0x00, 0x01, 0x21, 0x01,
- 0x2f, 0xda, 0xc4, 0x15, 0x7f, 0xd9, 0x3f, 0x80, 0x91, 0xc4, 0x00, 0x89,
- 0x09, 0x88, 0x80, 0x19, 0x55, 0x99, 0x23, 0x00, 0x01, 0x00, 0x8d, 0x5e,
- 0x86, 0xc7, 0x65, 0xa0, 0x0c, 0x20, 0xe1, 0xcc, 0x00, 0x65, 0x56, 0xc9,
- 0x19, 0xea, 0xf7, 0x82, 0xd4, 0x63, 0xfa, 0xd2, 0xbd, 0x37, 0x7f, 0xf8,
- 0x09, 0x02, 0xac, 0x01, 0x03, 0x9d, 0x00, 0xd0, 0x31, 0xef, 0xcf, 0x7e,
- 0x33, 0xd9, 0xbd, 0x12, 0x9f, 0x4e, 0x14, 0x2b, 0x4f, 0xb8, 0xdf, 0xf7,
- 0xca, 0x78, 0xdf, 0x91, 0xe0, 0x2d, 0x1c, 0x96, 0xc8, 0x7c, 0xfb, 0x2d,
- 0x3e, 0xe3, 0x7f, 0xdf, 0xf9, 0xbf, 0xd2, 0x8e, 0x44, 0x58, 0xc2, 0x70,
- 0x00, 0x88, 0x2d, 0xc4, 0x53, 0x36, 0x44, 0xf7, 0x15, 0x80, 0x07, 0xe3,
- 0x5b, 0x91, 0x11, 0xfd, 0x91, 0x7f, 0xf8, 0x3c, 0x0a, 0xcf, 0xf5, 0xba,
- 0x3c, 0xef, 0x00, 0x2e, 0x67, 0x14, 0x36, 0x67, 0x1f, 0xfe, 0xa8, 0xdb,
- 0xfa, 0x54, 0x6f, 0xfa, 0xd0, 0x00, 0x00, 0x77, 0xf2, 0x78, 0x40, 0x2b,
- 0xfb, 0x60, 0x8b, 0x78, 0x2d, 0xd6, 0xb8, 0xc4, 0x3c, 0x03, 0x3b, 0x6f,
- 0xff, 0x92, 0x5f, 0xfa, 0xa0, 0xff, 0xdb, 0x36, 0x44, 0x47, 0xe6, 0x0d,
- 0xf8, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff, 0xff,
- 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb,
- 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf,
- 0x7f, 0x16, 0x27, 0x00, 0x74, 0x61, 0x56, 0x74, 0xb6, 0xfc, 0x00, 0x7f,
- 0xa9, 0xde, 0x51, 0xfb, 0x4d, 0x75, 0xb5, 0x1e, 0xae, 0x2b, 0xff, 0xfb,
- 0xff, 0xde, 0x63, 0x6c, 0x20, 0x1e, 0xb7, 0x2d, 0x0c, 0x00, 0x6c, 0xfa,
- 0x28, 0xba, 0x0a, 0x0d, 0xad, 0x7f, 0x12, 0x61, 0xf4, 0x5f, 0xd0, 0x53,
- 0x2b, 0xb6, 0x01, 0xae, 0x41, 0xdb, 0xa7, 0x80, 0x06, 0x1b, 0x9e, 0x41,
- 0x46, 0x5e, 0xbf, 0xe7, 0xd3, 0x5c, 0xbd, 0xfe, 0x87, 0x23, 0x43, 0xfc,
- 0xf3, 0x3f, 0x76, 0x9f, 0xdd, 0x82, 0x2f, 0x44, 0x00, 0xe9, 0xae, 0x60,
- 0xc5, 0xf1, 0x22, 0x58, 0xd5, 0x12, 0x24, 0xe1, 0xd5, 0xc9, 0x9c, 0x83,
- 0xb1, 0x72, 0xf0, 0x80, 0x51, 0x86, 0x9b, 0x1c, 0xae, 0x79, 0xf6, 0x0a,
- 0x27, 0xf1, 0x5f, 0xff, 0xc3, 0x1c, 0x78, 0x01, 0xa3, 0xea, 0x91, 0x66,
- 0xc0, 0x03, 0x36, 0xdb, 0xe5, 0x37, 0x0f, 0xb9, 0x63, 0xed, 0x30, 0x1d,
- 0xc7, 0x73, 0x41, 0xa3, 0x89, 0x50, 0x02, 0x32, 0xb4, 0xd3, 0x5a, 0xbc,
- 0xa2, 0x7c, 0x26, 0x91, 0xc3, 0xb4, 0x78, 0xb2, 0xbf, 0x3c, 0x4d, 0x93,
- 0x34, 0x00, 0xa5, 0x87, 0xe7, 0xff, 0xfc, 0x9f, 0xff, 0xc3, 0x04, 0xa8,
- 0x2c, 0xce, 0x5f, 0xf0, 0x91, 0x42, 0x59, 0x9c, 0x24, 0x75, 0x45, 0xda,
- 0x0c, 0x31, 0x5d, 0xb4, 0xa7, 0xea, 0xfc, 0x78, 0x0a, 0xa6, 0x96, 0x00,
- 0x97, 0xe6, 0x09, 0xb3, 0xab, 0x7c, 0xfe, 0x2b, 0x50, 0xa5, 0x22, 0x19,
- 0x7a, 0x65, 0xdb, 0xc5, 0x1b, 0xff, 0xe0, 0x01, 0x9f, 0x5b, 0x7c, 0x76,
- 0x6c, 0x76, 0xd4, 0x4e, 0x18, 0xcc, 0x3d, 0x0c, 0x4f, 0xe1, 0x32, 0xe0,
- 0x4c, 0xd4, 0x07, 0xef, 0x67, 0x83, 0xee, 0xed, 0xd4, 0x3e, 0x33, 0xf4,
- 0xd8, 0x7e, 0xbf, 0xc0, 0x3b, 0x4b, 0xb6, 0xe1, 0xc2, 0xd8, 0x7c, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x82, 0xaf, 0xb0, 0xc7, 0xe2,
- 0x7f, 0x4e, 0x14, 0x10, 0x00, 0xa8, 0xd1, 0x90, 0x06, 0x08, 0x7c, 0xf0,
- 0x1f, 0x80, 0x7d, 0x70, 0x25, 0xcc, 0x43, 0xf8, 0xdf, 0xdf, 0xf8, 0x63,
- 0x0f, 0x9d, 0x0f, 0xe1, 0x36, 0xbe, 0x21, 0xee, 0x48, 0x0f, 0xde, 0xcf,
- 0x0e, 0xb6, 0xbd, 0x34, 0x5d, 0xc4, 0x26, 0xe3, 0xff, 0xfb, 0xdf, 0x78,
- 0xcd, 0xaf, 0x0c, 0x4f, 0xcc, 0x3b, 0xa1, 0x16, 0xd7, 0x83, 0xf3, 0xea,
- 0xdd, 0x7f, 0xea, 0xff, 0xc0, 0x03, 0xfe, 0xb7, 0xd5, 0xb9, 0xa8, 0x06,
- 0x82, 0xd9, 0x14, 0xc7, 0xe2, 0x5f, 0xd8, 0x01, 0x9f, 0x7f, 0x59, 0xd8,
- 0x3f, 0xfc, 0xa6, 0x7b, 0xf0, 0x21, 0xe9, 0xbd, 0x09, 0x4f, 0xfa, 0x48,
- 0xfd, 0x17, 0x20, 0x62, 0x3b, 0xea, 0x00, 0x00, 0x3f, 0xef, 0x1d, 0x9b,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f,
- 0xff, 0xff, 0x37, 0xf9, 0x70, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
- 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
- 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf7,
- 0xb9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66, 0x13, 0x80,
- 0x10, 0x5a, 0xaf, 0x77, 0xb8, 0x20, 0xcf, 0xc9, 0x3f, 0x36, 0x11, 0x29,
- 0x4b, 0x89, 0xfa, 0xf5, 0xb1, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x61, 0x5b, 0x08, 0x07, 0xad, 0xcb, 0x5e, 0x52, 0x04, 0x50, 0x29, 0x4f,
- 0xb6, 0x8b, 0x99, 0x27, 0xc7, 0x27, 0x7e, 0xa7, 0xeb, 0xc3, 0x54, 0xe0,
- 0xd4, 0x6b, 0x53, 0x2f, 0x14, 0x60, 0xa1, 0x03, 0xef, 0x96, 0x60, 0x4c,
- 0x01, 0x34, 0x8d, 0x01, 0xf1, 0x1d, 0xcc, 0xc2, 0x9c, 0xd6, 0x1e, 0x25,
- 0x65, 0xc8, 0x0c, 0x2d, 0x13, 0x69, 0xf0, 0xbf, 0xe1, 0x33, 0xce, 0x91,
- 0xcb, 0x00, 0x25, 0x5e, 0x77, 0xd1, 0x46, 0x31, 0x23, 0x6e, 0xe1, 0xeb,
- 0xdb, 0xeb, 0x90, 0x1f, 0x21, 0xf9, 0x2a, 0xf9, 0xf7, 0xa7, 0x7d, 0x71,
- 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x27, 0x00,
- 0x26, 0x6e, 0xc8, 0x23, 0xf2, 0x0f, 0xb1, 0x56, 0x3c, 0x96, 0x3c, 0xf0,
- 0x10, 0x88, 0xaa, 0xe9, 0x75, 0x3b, 0x01, 0x92, 0x01, 0x15, 0x4d, 0x38,
- 0x64, 0x1e, 0xaf, 0xbd, 0xbe, 0xc8, 0x00, 0xde, 0xec, 0x04, 0x17, 0x54,
- 0x2b, 0xd2, 0x17, 0x75, 0xbf, 0x95, 0xab, 0xaa, 0xfd, 0x40, 0x01, 0x9d,
- 0xdc, 0x36, 0xa8, 0x93, 0xf6, 0x38, 0xee, 0x7f, 0xff, 0xff, 0xf2, 0x7f,
- 0xff, 0xff, 0xf8, 0x86, 0xd7, 0x5e, 0x87, 0xc7, 0xe8, 0xb5, 0x5e, 0x04,
- 0x0d, 0x29, 0x07, 0xdb, 0x2c, 0x40, 0xa5, 0x23, 0xe0, 0x71, 0xfb, 0xf3,
- 0xfa, 0xf7, 0xe3, 0xbc, 0xde, 0x3b, 0xdc, 0x40, 0x18, 0x48, 0x58, 0x00,
- 0x61, 0x3f, 0x41, 0x35, 0x97, 0xbf, 0xd0, 0xe7, 0x89, 0x0d, 0x78, 0xd8,
- 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x15, 0x7f, 0xd1, 0xbf,
- 0xb7, 0xca, 0x10, 0xa1, 0xa0, 0x38, 0x27, 0x1c, 0x31, 0x32, 0x02, 0x15,
- 0xed, 0xef, 0xd5, 0xef, 0x3c, 0x4c, 0xfe, 0xbd, 0xf8, 0xcf, 0x46, 0xff,
- 0xf6, 0x86, 0x08, 0x4c, 0x00, 0x26, 0xba, 0x36, 0xb9, 0x1f, 0xde, 0xfd,
- 0x58, 0xcf, 0x3e, 0xc3, 0x01, 0x1c, 0xa2, 0xb0, 0x00, 0x88, 0x2f, 0x91,
- 0x4c, 0xd9, 0x26, 0x1f, 0xdf, 0x8e, 0x32, 0x8f, 0x80, 0x7f, 0xc3, 0xcc,
- 0x07, 0x51, 0x19, 0xea, 0x02, 0x07, 0xeb, 0xbf, 0xfb, 0x7f, 0x9b, 0x00,
- 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x23, 0x0a, 0x62, 0x45, 0x99, 0xc5, 0x23,
- 0x1b, 0x0e, 0xb8, 0x00, 0x6c, 0xee, 0x7c, 0x67, 0x5d, 0xb8, 0x17, 0x58,
- 0x74, 0xbe, 0xc1, 0x18, 0xee, 0xf9, 0xdf, 0xe5, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x2f, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0, 0x87,
- 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f, 0x0a, 0x40, 0x00, 0x00,
- 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
- 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
- 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0xcc, 0x27, 0x00, 0x4a, 0xd2, 0xda,
- 0x4f, 0xfc, 0xb5, 0x1e, 0xb9, 0x62, 0xbf, 0xff, 0xff, 0xdf, 0xc5, 0x0a,
- 0x0e, 0x39, 0xe6, 0xa2, 0x43, 0xb3, 0x79, 0xf8, 0x04, 0xc1, 0x0a, 0x50,
- 0xb4, 0x1e, 0xff, 0x90, 0x01, 0xf9, 0xd0, 0x73, 0x93, 0xfd, 0x9f, 0xc1,
- 0x88, 0x91, 0xe8, 0x29, 0x88, 0x51, 0x1e, 0x03, 0x86, 0x36, 0xfa, 0xdf,
- 0xf0, 0x98, 0xb0, 0x0a, 0x03, 0x28, 0x09, 0xc3, 0x95, 0x7c, 0xfb, 0x55,
- 0xe3, 0x85, 0x3e, 0xdd, 0x2e, 0x78, 0xca, 0x44, 0x2b, 0xfb, 0xc3, 0x35,
- 0x69, 0x25, 0x2e, 0xd7, 0x8a, 0xff, 0xfe, 0x18, 0xe3, 0xd4, 0x1c, 0x26,
- 0xcd, 0xb3, 0x60, 0x06, 0x07, 0xab, 0xe3, 0xb0, 0xf5, 0x1a, 0x96, 0xf0,
- 0x22, 0x6b, 0x1f, 0xe7, 0xf1, 0x94, 0x68, 0xed, 0x87, 0x06, 0x77, 0x9d,
- 0xa1, 0x3f, 0xbf, 0x7f, 0xf8, 0x4b, 0xc9, 0x48, 0x25, 0x75, 0xff, 0xd4,
- 0xd1, 0xa4, 0x83, 0xd2, 0x01, 0xe6, 0x78, 0xf3, 0xff, 0xfe, 0x4f, 0xff,
- 0xe1, 0x81, 0x6a, 0x6d, 0xff, 0x84, 0x8f, 0x00, 0xa3, 0xab, 0x1e, 0xff,
- 0x20, 0xac, 0x47, 0x16, 0x3a, 0x47, 0x62, 0xb8, 0xa3, 0x70, 0x98, 0x7f,
- 0x91, 0xe3, 0x08, 0x67, 0xd6, 0xf1, 0xd9, 0xb1, 0xdb, 0x0c, 0x7c, 0x3f,
- 0x8d, 0x20, 0x87, 0x03, 0x88, 0x8e, 0x99, 0xa3, 0xbf, 0x9c, 0x33, 0x13,
- 0x58, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x8a, 0xfa,
- 0x5e, 0x40, 0x50, 0x08, 0x41, 0x88, 0x38, 0x12, 0x20, 0x01, 0x2c, 0xda,
- 0x52, 0xa7, 0x83, 0x07, 0x3b, 0x67, 0x73, 0xd7, 0x9f, 0x43, 0x93, 0xf1,
- 0x83, 0x44, 0xaf, 0xfd, 0x6b, 0x78, 0xcd, 0x2f, 0x20, 0x38, 0x07, 0x38,
- 0x98, 0x08, 0x4b, 0x29, 0xc8, 0x00, 0x7b, 0xeb, 0xbd, 0xe0, 0x00, 0x23,
- 0x00, 0x03, 0x23, 0x77, 0x78, 0xf8, 0x50, 0x00, 0x23, 0x24, 0x4f, 0x7a,
- 0x58, 0x28, 0x00, 0x11, 0x95, 0x3d, 0x81, 0xd0, 0xf5, 0xfe, 0xf1, 0xcb,
- 0xc3, 0x14, 0x1b, 0xbf, 0xff, 0x09, 0x60, 0xbb, 0x64, 0xb9, 0x98, 0xba,
- 0xbd, 0xef, 0x8c, 0x80, 0x19, 0xd4, 0xb0, 0x82, 0x2d, 0xb8, 0x61, 0x01,
- 0xaf, 0x69, 0x04, 0x11, 0xdf, 0x4b, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff,
- 0xf7, 0xff, 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xb8,
- 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
- 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
- 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf8, 0xc1, 0x01, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x07, 0x66, 0x2c, 0xdd, 0xf9, 0x4d,
- 0xaf, 0xb6, 0xa4, 0xb8, 0x82, 0xbc, 0x01, 0x36, 0x4f, 0xf0, 0xe1, 0xef,
- 0xef, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0x08, 0x62, 0x24,
- 0x18, 0x4a, 0x00, 0xeb, 0xc2, 0x24, 0xc3, 0x0b, 0x73, 0x28, 0xbd, 0x15,
- 0x44, 0xba, 0x98, 0x62, 0xea, 0x20, 0x49, 0x04, 0x8b, 0x7c, 0x43, 0x73,
- 0x9e, 0xb5, 0x78, 0xdd, 0xa5, 0xc8, 0x3e, 0xdf, 0xa9, 0x87, 0xe4, 0x7e,
- 0x2b, 0xff, 0xff, 0xcd, 0xfc, 0x01, 0xac, 0x90, 0xc6, 0x2c, 0x00, 0x84,
- 0x3d, 0xa2, 0x1d, 0x4b, 0xef, 0x84, 0x8f, 0xeb, 0x80, 0xfa, 0x30, 0xf1,
- 0x2a, 0xed, 0x0c, 0x5b, 0x25, 0xc0, 0x08, 0xfb, 0x9b, 0xcc, 0x71, 0xaa,
- 0x67, 0x37, 0xeb, 0x62, 0xd5, 0x3b, 0x27, 0x00, 0x6a, 0xa4, 0x6d, 0x3f,
- 0x38, 0xb7, 0x53, 0x3c, 0x12, 0x3d, 0xd8, 0xeb, 0xc8, 0x80, 0x39, 0xc1,
- 0xd9, 0xc9, 0x8c, 0x5a, 0x60, 0xc3, 0x53, 0x70, 0x5b, 0x78, 0xf5, 0x5a,
- 0x63, 0x17, 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xfc, 0xd1, 0xc2, 0x2f,
- 0xff, 0x09, 0x39, 0x02, 0x01, 0x11, 0x97, 0x6e, 0x89, 0xdc, 0x95, 0xa9,
- 0xbd, 0x13, 0x31, 0x2b, 0x51, 0x02, 0x01, 0x11, 0x91, 0x3b, 0xa6, 0x90,
- 0xdd, 0x6c, 0xb2, 0x44, 0x64, 0xfb, 0xb5, 0x17, 0x0f, 0x15, 0xfe, 0x70,
- 0x40, 0x88, 0x1a, 0x4d, 0x79, 0xfd, 0x7b, 0xf1, 0xde, 0x6f, 0x1d, 0xec,
- 0xdf, 0x02, 0x1f, 0x6f, 0x18, 0x58, 0x04, 0xbf, 0xb8, 0xfa, 0xd8, 0x04,
- 0x8f, 0x4c, 0x0f, 0xde, 0x00, 0x03, 0xe0, 0x0b, 0x65, 0x60, 0xc8, 0x93,
- 0x41, 0x7f, 0x1d, 0xe9, 0xff, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
- 0x01, 0x2f, 0xe3, 0x04, 0x11, 0x7f, 0xe6, 0xff, 0xfe, 0xd0, 0x42, 0x68,
- 0x03, 0x23, 0x14, 0x66, 0x43, 0xe0, 0x4e, 0x7f, 0xc7, 0x7e, 0x74, 0x05,
- 0x80, 0x12, 0x21, 0x8b, 0x80, 0x19, 0x1e, 0x3a, 0x12, 0xaf, 0x7e, 0x8f,
- 0xbf, 0xfe, 0xc2, 0xab, 0x7b, 0x90, 0x69, 0xe0, 0xff, 0x11, 0x3f, 0xef,
- 0xc6, 0x7c, 0xde, 0xc4, 0x55, 0x61, 0x3d, 0x76, 0x2b, 0x84, 0xcf, 0xb5,
- 0x87, 0x64, 0xc7, 0x3f, 0x20, 0x41, 0x4f, 0xe0, 0x65, 0x08, 0x07, 0x98,
- 0xbe, 0x14, 0x47, 0x5a, 0xf4, 0x9c, 0xbc, 0xfe, 0x26, 0x2e, 0xbf, 0xef,
- 0xc6, 0xf2, 0x1b, 0x00, 0x5d, 0x68, 0x15, 0x33, 0x8f, 0xcc, 0xa2, 0x30,
- 0x80, 0x7f, 0xc3, 0xc8, 0x6a, 0x39, 0x42, 0x50, 0x28, 0xf8, 0x81, 0x9b,
- 0x37, 0xcb, 0x77, 0xdf, 0x7f, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x6f, 0x60, 0x25, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x3e,
- 0x00, 0x6d, 0xb1, 0xf6, 0x45, 0x07, 0x06, 0x55, 0x6c, 0x91, 0xbd, 0x5e,
- 0x86, 0x62, 0x62, 0xbf, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x11, 0x45,
- 0xdf, 0x18, 0xc0, 0x96, 0x20, 0x71, 0x27, 0x32, 0x46, 0x39, 0x6c, 0x04,
- 0x07, 0xf4, 0xe5, 0xde, 0x9b, 0xc2, 0x9c, 0xfc, 0xe0, 0x08, 0xe4, 0xbf,
- 0xb9, 0xb7, 0x43, 0xf1, 0xf2, 0x0b, 0x4b, 0x22, 0x49, 0x98, 0x59, 0x60,
- 0xf2, 0x12, 0xcb, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0xfe, 0x13, 0x6c,
- 0xb1, 0xa3, 0xa2, 0x2e, 0xd7, 0xab, 0x00, 0xc3, 0x1c, 0xe2, 0xe5, 0xb6,
- 0x14, 0x95, 0x5e, 0x7f, 0x8a, 0xff, 0xf5, 0xf1, 0x66, 0x91, 0xa0, 0x4d,
- 0x7c, 0xb3, 0xb9, 0x20, 0x0e, 0xd9, 0xd0, 0xb7, 0x29, 0xf3, 0xf3, 0x28,
- 0x1d, 0xf1, 0x61, 0xbb, 0x72, 0x34, 0xad, 0x61, 0xff, 0xff, 0x27, 0xff,
- 0xaf, 0x42, 0x22, 0x0a, 0x75, 0xf0, 0x04, 0x0a, 0x94, 0x0e, 0xc7, 0x6c,
- 0xc4, 0x3f, 0x5f, 0x81, 0x19, 0xeb, 0xc3, 0xef, 0xee, 0x52, 0xde, 0x9e,
- 0x9b, 0x7d, 0x0b, 0x59, 0x21, 0x21, 0x6f, 0x9b, 0x06, 0xa4, 0x9a, 0xfe,
- 0x65, 0x71, 0xe6, 0x6e, 0xf8, 0x19, 0xf5, 0xbc, 0x76, 0x6c, 0x76, 0xc3,
- 0x1f, 0x0b, 0x7b, 0x78, 0x51, 0xc0, 0x4b, 0xfb, 0x5e, 0xfe, 0xf3, 0x89,
- 0xc0, 0x09, 0x07, 0xb9, 0xbe, 0xb5, 0xe4, 0x40, 0xc8, 0x83, 0x78, 0xd8,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x2f, 0xd7, 0xa0,
- 0x60, 0x19, 0x1c, 0x22, 0x06, 0x24, 0xd3, 0x22, 0x33, 0xda, 0x4c, 0x30,
- 0xaf, 0xb3, 0x64, 0x0c, 0x3f, 0xe0, 0x0c, 0x13, 0x7e, 0x95, 0xe7, 0x3d,
- 0xe3, 0x3a, 0xf4, 0x08, 0x02, 0x02, 0x60, 0x0c, 0x60, 0xd5, 0x82, 0x39,
- 0x03, 0x0f, 0x66, 0xae, 0x71, 0xef, 0xf8, 0x03, 0x3d, 0x7e, 0x48, 0x9e,
- 0xbe, 0xf1, 0xb2, 0x38, 0x01, 0xbf, 0x5f, 0xfe, 0x7e, 0xf6, 0x93, 0x5c,
- 0x66, 0x32, 0x80, 0x21, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff,
- 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff,
- 0xc6, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x03, 0xbf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f,
- 0xff, 0xf5, 0xff, 0xff, 0xf1, 0x32, 0x89, 0xc2, 0x26, 0x05, 0x45, 0x8a,
- 0xff, 0xff, 0xfe, 0x61, 0x58, 0xcb, 0x47, 0xff, 0xff, 0xf2, 0x7f, 0x04,
- 0x1c, 0x0a, 0x82, 0x98, 0x4e, 0xe3, 0x64, 0x85, 0x7b, 0x26, 0xe0, 0x3d,
- 0x53, 0x01, 0x51, 0xdc, 0x81, 0xed, 0x35, 0x46, 0x11, 0x7b, 0xbf, 0xe3,
- 0xe0, 0x65, 0x02, 0x35, 0x90, 0x1c, 0xa2, 0x21, 0x64, 0x7e, 0x62, 0x01,
- 0x63, 0x3b, 0x58, 0x00, 0xe5, 0x77, 0x41, 0xff, 0xbe, 0xdc, 0x5b, 0xab,
- 0xff, 0x15, 0xff, 0xff, 0xff, 0x37, 0xeb, 0x67, 0x9a, 0x03, 0x6c, 0x9c,
- 0x01, 0x41, 0xd0, 0x47, 0xa4, 0x7e, 0x6d, 0xcc, 0xe4, 0xfc, 0xf0, 0x03,
- 0x8c, 0x4d, 0x1b, 0x23, 0x5d, 0xf1, 0x86, 0x4a, 0xc3, 0xde, 0xbc, 0x60,
- 0x7a, 0xbf, 0xfa, 0xfc, 0xcf, 0x5d, 0x47, 0x67, 0xff, 0xac, 0x5f, 0x01,
- 0xe9, 0x99, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xff, 0xfc, 0x92, 0xc4, 0x9b,
- 0xcc, 0x58, 0xff, 0xfc, 0x25, 0x01, 0x31, 0x9b, 0x86, 0x9c, 0x0b, 0x7d,
- 0x10, 0xbe, 0x83, 0x97, 0x06, 0x63, 0xea, 0xd4, 0x1c, 0xc7, 0xc8, 0x8d,
- 0xaa, 0xfc, 0xff, 0x9f, 0xd7, 0xbf, 0x1d, 0xe6, 0xf1, 0xde, 0x8d, 0xff,
- 0xf9, 0x3c, 0x10, 0x9e, 0x00, 0x19, 0xb7, 0xfc, 0xaf, 0x80, 0x02, 0xef,
- 0xfc, 0x29, 0x4f, 0xc6, 0x3d, 0xff, 0xa4, 0xfb, 0x97, 0x9f, 0x37, 0xc1,
- 0xc5, 0xe5, 0xf8, 0x95, 0xc0, 0x0b, 0xcf, 0xd2, 0x0d, 0x59, 0xbc, 0xa0,
- 0x0c, 0x67, 0x68, 0xd2, 0xed, 0x34, 0x7f, 0x80, 0xff, 0x28, 0x0a, 0xcf,
- 0x6d, 0x90, 0x0d, 0x38, 0x00, 0x3e, 0x6f, 0xc6, 0xc0, 0x00, 0x00, 0x01,
- 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x57, 0xcd, 0xa7, 0xba, 0x10, 0xa3, 0x91,
- 0x6c, 0x46, 0x1e, 0xbb, 0x3c, 0x00, 0xc0, 0xf2, 0xbe, 0x3b, 0x15, 0xd6,
- 0xc8, 0x07, 0x4c, 0x55, 0xc3, 0xd0, 0x03, 0xef, 0xfc, 0x52, 0x97, 0x88,
- 0x7b, 0xff, 0x58, 0x13, 0xb5, 0x7d, 0x45, 0xa9, 0x76, 0x3f, 0xa5, 0xe0,
- 0xf0, 0xf3, 0x5f, 0xff, 0xf8, 0x49, 0x80, 0x0b, 0xa7, 0xf6, 0x48, 0x1a,
- 0x93, 0x76, 0x78, 0xdb, 0xe0, 0x3f, 0xca, 0x00, 0x01, 0xf8, 0x2f, 0x89,
- 0x9d, 0x5f, 0xbf, 0x18, 0x6a, 0x67, 0x33, 0xf9, 0xf1, 0x42, 0x20, 0x4c,
- 0x6b, 0xba, 0xce, 0x57, 0xdb, 0xed, 0x3e, 0xe0, 0x3f, 0xff, 0xef, 0xe1,
- 0xf6, 0xab, 0xb0, 0x3f, 0xfb, 0x65, 0xa7, 0xdc, 0x07, 0xff, 0xfd, 0xfc,
- 0x1f, 0x6a, 0xee, 0x78, 0xff, 0xe3, 0x67, 0xe6, 0xff, 0x5c, 0xf5, 0xc2,
- 0xb0, 0x46, 0xcb, 0xbb, 0x2b, 0x67, 0xfe, 0x9f, 0xff, 0x00, 0x2c, 0x0a,
- 0x5b, 0xaf, 0x64, 0x57, 0xae, 0x58, 0x61, 0xfa, 0xfb, 0x7f, 0xef, 0xfd,
- 0xf7, 0xff, 0x7e, 0x37, 0xfd, 0xc2, 0x2e, 0x33, 0x19, 0x04, 0x13, 0x3f,
- 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
- 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
- 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xb1,
- 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7,
- 0xfe, 0x63, 0xe0, 0x06, 0xcb, 0x91, 0x81, 0x20, 0xfd, 0x78, 0x3d, 0x3a,
- 0x53, 0x6f, 0xcb, 0xe2, 0xbf, 0xfd, 0xff, 0xff, 0x86, 0x03, 0xb3, 0xc1,
- 0x14, 0x5d, 0x15, 0x71, 0x82, 0x85, 0xff, 0xbd, 0x09, 0xe2, 0xb0, 0xbc,
- 0x08, 0x6d, 0x7e, 0xd3, 0x61, 0x8b, 0xb0, 0x04, 0x72, 0x5f, 0xdc, 0xdd,
- 0xfd, 0x16, 0xef, 0x50, 0xff, 0xe3, 0xc6, 0x6e, 0x55, 0x4a, 0xc5, 0x98,
- 0xdf, 0xdb, 0x2f, 0xd7, 0xfc, 0x57, 0xff, 0xf0, 0xc7, 0xeb, 0x61, 0x80,
- 0x0f, 0x64, 0xe0, 0x23, 0x29, 0xe9, 0xf9, 0xcd, 0xf2, 0xf2, 0xcc, 0x01,
- 0x37, 0x9a, 0xea, 0x79, 0xf6, 0x91, 0x30, 0xa9, 0xe7, 0xfb, 0x19, 0x07,
- 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc3, 0x1b, 0x06, 0x0f, 0xff, 0x09, 0x70,
- 0x05, 0x7a, 0x69, 0xd1, 0xe2, 0x05, 0x26, 0x5e, 0x02, 0x2c, 0xdf, 0x3b,
- 0x63, 0xeb, 0x78, 0xec, 0xd8, 0xed, 0x2f, 0x0c, 0x7c, 0x08, 0x64, 0x5f,
- 0x82, 0x62, 0xc2, 0x47, 0x0f, 0x7a, 0x08, 0xb0, 0x25, 0xe1, 0xe1, 0xca,
- 0x04, 0x28, 0x12, 0x5e, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xba,
- 0xc5, 0x83, 0x2e, 0xbc, 0x31, 0xf9, 0x64, 0x5f, 0x8c, 0x11, 0x01, 0x16,
- 0x33, 0x10, 0x11, 0xe8, 0x36, 0x82, 0x06, 0x78, 0x72, 0x81, 0x0a, 0x04,
- 0x99, 0xf7, 0xde, 0xf1, 0x91, 0xf8, 0x69, 0xee, 0x58, 0x03, 0x01, 0x16,
- 0x33, 0xc0, 0x8f, 0x41, 0xa4, 0xff, 0x67, 0x80, 0x78, 0x77, 0xde, 0x18,
- 0xff, 0x38, 0x9e, 0xb8, 0xb9, 0xe1, 0xf0, 0x19, 0x9b, 0x49, 0xe3, 0xff,
- 0xd7, 0xf8, 0x01, 0xe5, 0x76, 0xc9, 0x1b, 0x87, 0x2e, 0x2b, 0x78, 0xff,
- 0x7f, 0xf7, 0xf7, 0x8d, 0xef, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff,
- 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
- 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
- 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfa, 0xd1, 0x03, 0xbf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x19, 0x8f, 0x80, 0x0d, 0x9a, 0x6d,
- 0x27, 0x26, 0x6e, 0xff, 0xd8, 0x19, 0x8c, 0x13, 0x15, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf3, 0x07, 0x67, 0x45, 0x45, 0x17, 0x17, 0x37, 0x8c, 0x14,
- 0x56, 0x1d, 0x4c, 0xb6, 0xd2, 0x56, 0x6d, 0xaa, 0xac, 0x16, 0xe8, 0xdf,
- 0x7b, 0x66, 0xd9, 0xe0, 0x03, 0x6d, 0xe8, 0x51, 0x3f, 0xee, 0xdd, 0x0f,
- 0xd0, 0x61, 0x19, 0x27, 0xa7, 0xe2, 0xff, 0x66, 0xfc, 0x83, 0x33, 0xf9,
- 0x2f, 0xfe, 0xeb, 0x8d, 0x5c, 0xe9, 0x92, 0x1f, 0x69, 0x7e, 0x13, 0x16,
- 0x03, 0x8a, 0x87, 0x25, 0x39, 0xf3, 0x7c, 0xf4, 0x60, 0xbc, 0x09, 0x97,
- 0xad, 0xf0, 0x7f, 0x8b, 0x2c, 0x37, 0x7b, 0xbc, 0x1e, 0x2b, 0xff, 0xff,
- 0xfe, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x0c, 0x0f, 0x2b, 0xe3,
- 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8, 0x58, 0xc2, 0x9e, 0x45, 0xe7, 0x3e,
- 0x01, 0x9f, 0x82, 0x14, 0xea, 0x87, 0x4b, 0x8b, 0x06, 0x29, 0xfc, 0xff,
- 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0x9a, 0x3e, 0x1f, 0xf8, 0x4a, 0x02,
- 0xe9, 0xa0, 0x66, 0x3e, 0xad, 0x5f, 0xe0, 0x08, 0xa6, 0x81, 0x98, 0xe6,
- 0xad, 0x40, 0x08, 0xa6, 0x81, 0x98, 0xa2, 0x56, 0xaf, 0x0e, 0x7f, 0x5e,
- 0xfc, 0x77, 0x9b, 0xc7, 0x1b, 0xe1, 0xfd, 0x29, 0x0a, 0x17, 0x80, 0xe2,
- 0x33, 0x81, 0x25, 0xa0, 0x05, 0xa9, 0x54, 0x25, 0x5d, 0xf3, 0x7e, 0xf4,
- 0x50, 0x03, 0x3d, 0x2a, 0x10, 0x3f, 0x63, 0x79, 0x36, 0x01, 0xb8, 0x00,
- 0x7f, 0x0f, 0x3f, 0x00, 0x10, 0xfd, 0xdc, 0xed, 0x3f, 0xfa, 0x6c, 0x02,
- 0x01, 0xff, 0x87, 0xe0, 0x06, 0x25, 0xc4, 0x8d, 0xa5, 0xda, 0xc8, 0xd1,
- 0xfc, 0xdf, 0x08, 0xff, 0xc3, 0xea, 0x00, 0xc6, 0x76, 0x8d, 0x2e, 0xd7,
- 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44, 0x57,
- 0x21, 0xa0, 0x0a, 0xd9, 0x68, 0x06, 0x30, 0x15, 0x37, 0xe6, 0xd3, 0xe9,
- 0x14, 0xf8, 0x4d, 0x07, 0x00, 0x12, 0x6e, 0x9d, 0xfa, 0x4f, 0xdc, 0xf0,
- 0x7a, 0x1c, 0xd3, 0xd9, 0x73, 0xd7, 0xd3, 0xfc, 0x00, 0x1f, 0x69, 0xdf,
- 0xa9, 0x6b, 0xff, 0x44, 0x44, 0x93, 0x09, 0xef, 0xc6, 0x7f, 0xdf, 0xfd,
- 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff,
- 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01,
- 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
- 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
- 0x01, 0xae, 0xf3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x3e, 0x12, 0xb3, 0x92, 0xe1, 0x8f, 0xfd,
- 0x7f, 0x04, 0x0f, 0x02, 0x16, 0xe0, 0x3f, 0xd5, 0xbe, 0x2b, 0xff, 0xff,
- 0xff, 0x86, 0x03, 0xc2, 0x28, 0xa2, 0xf5, 0x51, 0x8c, 0x18, 0x07, 0xbc,
- 0x69, 0x19, 0xb0, 0x50, 0x41, 0xb5, 0x00, 0x58, 0xdf, 0xef, 0xa9, 0xc8,
- 0x04, 0x2c, 0x80, 0x47, 0x25, 0xfd, 0xcd, 0xba, 0x1f, 0x8f, 0x14, 0xbd,
- 0x7a, 0x6b, 0xe9, 0xf8, 0xca, 0xa5, 0xa1, 0x80, 0xff, 0xbf, 0xe1, 0x31,
- 0x62, 0x49, 0x40, 0x71, 0xd9, 0xb9, 0xcc, 0x88, 0x49, 0xbb, 0xff, 0xf5,
- 0x79, 0xd0, 0x1c, 0xf6, 0x0a, 0xb7, 0xf8, 0xaf, 0xff, 0xeb, 0x08, 0x2e,
- 0x09, 0x7f, 0x80, 0x04, 0x5a, 0x3a, 0x13, 0xeb, 0xc4, 0xef, 0xf8, 0x1e,
- 0x6c, 0xf0, 0x6a, 0xc5, 0x2c, 0xab, 0x3c, 0x72, 0x9f, 0x04, 0x37, 0x96,
- 0x30, 0x72, 0x04, 0x9b, 0xcf, 0xae, 0xa6, 0xdb, 0x59, 0xff, 0xff, 0x27,
- 0xff, 0xf2, 0x70, 0x3e, 0x08, 0x44, 0x17, 0x19, 0xcd, 0x13, 0x8c, 0xf0,
- 0x00, 0x8b, 0xee, 0xbb, 0x1f, 0xe5, 0xc0, 0x1a, 0xd2, 0x12, 0xde, 0xd3,
- 0x60, 0x66, 0xfd, 0xe3, 0x22, 0x23, 0x26, 0x38, 0xdc, 0x89, 0x13, 0xf3,
- 0xcf, 0xad, 0xe3, 0xb3, 0x63, 0x97, 0x86, 0x3f, 0xfb, 0xe2, 0xf0, 0xa9,
- 0x70, 0x08, 0xf5, 0xf6, 0xc3, 0xd9, 0x33, 0x5e, 0x03, 0xee, 0xdf, 0x3f,
- 0x37, 0x43, 0x86, 0x3f, 0xe3, 0xbb, 0xf1, 0x9e, 0x00, 0xcf, 0xe4, 0x7a,
- 0x2e, 0x00, 0x63, 0x69, 0x07, 0x59, 0x7f, 0xa6, 0xed, 0xe8, 0xde, 0x4e,
- 0x7e, 0x9b, 0x96, 0xcc, 0x0f, 0xc3, 0x1b, 0xb9, 0x00, 0x8f, 0xfc, 0x25,
- 0xc5, 0xf3, 0x95, 0xc1, 0x1f, 0x73, 0xfa, 0x02, 0x3d, 0x6f, 0xe4, 0xdc,
- 0x29, 0xc9, 0xf9, 0xfe, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
- 0xbb, 0xcd, 0x82, 0x29, 0x0d, 0x00, 0x32, 0x9e, 0x9f, 0xcc, 0xf7, 0xef,
- 0x97, 0x78, 0xcf, 0xbf, 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf8, 0x57, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xf3, 0x7f, 0x97,
- 0xff, 0xff, 0xf8, 0xd8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x02,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x1f, 0x80, 0x58, 0x9b, 0x88, 0xd0,
- 0x2c, 0x4c, 0x44, 0x5f, 0x02, 0x68, 0x7f, 0xdc, 0xd7, 0x22, 0xfc, 0xf7,
- 0xe0, 0x06, 0xc1, 0x7f, 0xd3, 0x22, 0x88, 0x7e, 0x01, 0x99, 0xb1, 0x91,
- 0xb3, 0xbd, 0x6c, 0xf7, 0xa7, 0x89, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0xa1, 0x0c, 0x23, 0xf6, 0xa3, 0x93, 0xf0, 0xc8, 0x8c, 0x64, 0x53, 0x00,
- 0x1d, 0xec, 0x98, 0x8a, 0x85, 0x6d, 0x5e, 0xbf, 0xea, 0x0b, 0x10, 0x8c,
- 0x74, 0xf0, 0x88, 0xfc, 0x16, 0x3b, 0x90, 0xfc, 0xc0, 0x03, 0x23, 0xb4,
- 0x4c, 0x91, 0x9b, 0xff, 0xff, 0x6e, 0xb5, 0x9e, 0x01, 0xf5, 0x69, 0x18,
- 0x12, 0x36, 0x24, 0xd7, 0xad, 0xfa, 0x5e, 0xee, 0x79, 0x4c, 0x60, 0xd3,
- 0x80, 0x3c, 0x6d, 0x30, 0xb5, 0x36, 0x29, 0x3d, 0x0d, 0x6f, 0x3f, 0xfc,
- 0x74, 0x47, 0xae, 0x40, 0xed, 0xf3, 0xf8, 0x47, 0x56, 0x67, 0x14, 0xbd,
- 0xef, 0xbe, 0x00, 0x00, 0xdc, 0x92, 0x6d, 0xff, 0xe8, 0xe1, 0x83, 0x6c,
- 0x8d, 0xcf, 0xfd, 0x77, 0x83, 0x50, 0x02, 0x1d, 0xb2, 0x19, 0x1e, 0x4f,
- 0x7a, 0x0f, 0x49, 0x8d, 0x11, 0xd0, 0xda, 0x98, 0x33, 0x96, 0xce, 0x16,
- 0xcb, 0xbb, 0xe0, 0x81, 0xcd, 0xfe, 0x12, 0xfc, 0x10, 0x09, 0x01, 0xa2,
- 0xdc, 0x45, 0x31, 0xdc, 0x9f, 0xff, 0xc3, 0xc7, 0x48, 0x48, 0xaf, 0x4d,
- 0x9f, 0xf7, 0xbc, 0x57, 0xff, 0xff, 0xf0, 0x8a, 0xc1, 0x2f, 0x9b, 0x9b,
- 0x82, 0x16, 0x97, 0xb5, 0xc8, 0x8d, 0x8f, 0xfe, 0x75, 0xf8, 0x5f, 0x5f,
- 0x5e, 0x6f, 0xc5, 0x48, 0x98, 0x9d, 0xd5, 0x6d, 0x70, 0x08, 0xf5, 0xf6,
- 0xd8, 0xb0, 0x18, 0x41, 0x51, 0x4e, 0x01, 0x17, 0x3a, 0xeb, 0xfb, 0xe4,
- 0x17, 0x45, 0x79, 0x80, 0x35, 0x19, 0xcd, 0xfd, 0x7c, 0x01, 0x5e, 0x63,
- 0x13, 0x12, 0x73, 0xfd, 0x53, 0x2d, 0x74, 0xc2, 0xfb, 0x19, 0x77, 0xf7,
- 0x7d, 0x89, 0xba, 0x3f, 0x17, 0x1a, 0x1f, 0xe7, 0xd5, 0x62, 0x7a, 0xd8,
- 0x4d, 0x47, 0x39, 0xfd, 0xfa, 0x8f, 0x10, 0x44, 0x6d, 0xff, 0xff, 0xff,
- 0x93, 0xff, 0xff, 0xf9, 0x06, 0x07, 0xa5, 0xbd, 0x5c, 0x5d, 0xc4, 0xf0,
- 0xd4, 0xc1, 0x55, 0xdc, 0xbf, 0xe1, 0x28, 0xee, 0x66, 0x91, 0xc7, 0xa9,
- 0x4f, 0x0a, 0x5c, 0x5b, 0x37, 0x37, 0x86, 0x70, 0xb2, 0xf0, 0xa9, 0x1d,
- 0xdf, 0xc4, 0x0b, 0x0b, 0xcc, 0x59, 0x2c, 0xcf, 0xba, 0xea, 0xde, 0xf9,
- 0x31, 0x99, 0xef, 0x04, 0x22, 0xff, 0xea, 0x0c, 0xfc, 0xa5, 0xc0, 0x03,
- 0xfe, 0x49, 0xdf, 0x00, 0x1e, 0x04, 0xdf, 0x00, 0xd7, 0xe9, 0xd3, 0x9a,
- 0x42, 0xf9, 0xf0, 0xc4, 0xe6, 0xfb, 0x5b, 0xe1, 0x28, 0x53, 0x00, 0x17,
- 0x30, 0xe5, 0xd5, 0x24, 0x74, 0x3d, 0xff, 0xf9, 0x05, 0xf8, 0x29, 0x8d,
- 0x2e, 0x14, 0x97, 0xd7, 0x72, 0x01, 0x61, 0x27, 0x91, 0xc8, 0x68, 0xa8,
- 0x90, 0xe6, 0xae, 0xab, 0x5f, 0x87, 0x09, 0x30, 0x35, 0xcb, 0x63, 0xfc,
- 0xff, 0xc0, 0x3c, 0x1f, 0xe4, 0x96, 0xe7, 0x5b, 0x9a, 0xae, 0xb5, 0xe7,
- 0xff, 0xe4, 0xb6, 0x3f, 0xcf, 0x9b, 0x55, 0xff, 0x55, 0x0c, 0x13, 0xaf,
- 0x80, 0x90, 0x1b, 0x73, 0xd6, 0x0e, 0x34, 0xe0, 0xd9, 0xcb, 0xe9, 0xdd,
- 0xf3, 0x80, 0x1a, 0x0b, 0xf7, 0x81, 0xad, 0x30, 0xa9, 0xd7, 0xcc, 0xf7,
- 0xd2, 0xff, 0x9b, 0xe1, 0xea, 0xbf, 0x04, 0x0b, 0xe0, 0x0b, 0x32, 0xaa,
- 0x3b, 0xda, 0x02, 0xfb, 0xab, 0xe4, 0x7b, 0xe6, 0x11, 0x37, 0xc3, 0xfa,
- 0x52, 0x08, 0x5c, 0x00, 0x29, 0x22, 0x94, 0x82, 0x77, 0x4e, 0x84, 0xff,
- 0xed, 0x14, 0x07, 0x3d, 0xa2, 0xa2, 0xc8, 0x7d, 0xdf, 0x48, 0x98, 0x9c,
- 0xfe, 0x61, 0xea, 0xff, 0xfc, 0x3e, 0x60, 0x03, 0xca, 0x55, 0x72, 0x46,
- 0xe7, 0x07, 0xd1, 0x23, 0x23, 0x75, 0xad, 0xfe, 0xfc, 0x6c, 0x00, 0x00,
- 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x1d, 0x7f, 0x94, 0x40, 0xc1, 0x65,
- 0xee, 0x5f, 0x7e, 0x33, 0x92, 0x52, 0xb0, 0x26, 0xf7, 0xcf, 0x32, 0x8f,
- 0x5f, 0x17, 0x09, 0x58, 0x12, 0x91, 0xe1, 0x03, 0x4f, 0x0f, 0x52, 0x4b,
- 0xdf, 0xfd, 0xf8, 0xde, 0x47, 0x81, 0x36, 0xb0, 0x37, 0xd0, 0xff, 0xff,
- 0x10, 0xa0, 0x91, 0xb9, 0xfd, 0x70, 0x4f, 0xf4, 0x0a, 0x4f, 0x2f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
- 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2,
- 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
- 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
- 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x21, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xdf, 0x90, 0x4c,
- 0xb1, 0x67, 0xc1, 0x0b, 0x47, 0xfe, 0xdf, 0x99, 0x00, 0x21, 0x7a, 0x7e,
- 0x55, 0xc5, 0x7f, 0xff, 0xfd, 0xfb, 0xf0, 0xc1, 0x83, 0x59, 0xf7, 0x8d,
- 0x05, 0x56, 0xc4, 0x00, 0xab, 0x5f, 0x1b, 0xb3, 0xff, 0x9b, 0x8d, 0x25,
- 0x39, 0xe0, 0x0f, 0xc7, 0xa7, 0xfa, 0x68, 0xf6, 0x03, 0x35, 0x38, 0x3a,
- 0xba, 0x78, 0x0e, 0xbf, 0x16, 0x3f, 0xe7, 0x7f, 0xcd, 0x70, 0x72, 0xc2,
- 0x1d, 0x01, 0x9b, 0x2b, 0x82, 0x64, 0x9d, 0x35, 0x44, 0xb1, 0x26, 0x63,
- 0x9d, 0xa3, 0xd7, 0x1e, 0x14, 0xcc, 0x69, 0x23, 0xa9, 0x3c, 0x57, 0xff,
- 0xbf, 0x0c, 0x71, 0xe0, 0x06, 0x8f, 0xaa, 0x45, 0x9b, 0x00, 0x30, 0x3c,
- 0xaf, 0x8e, 0xc3, 0xd5, 0xa9, 0x61, 0xea, 0xd2, 0x60, 0xac, 0x51, 0x40,
- 0x48, 0x73, 0x2f, 0x01, 0x23, 0x39, 0xd4, 0xf2, 0x8b, 0xe2, 0x29, 0x1c,
- 0x36, 0xb6, 0x91, 0xbf, 0x3c, 0xd4, 0xb7, 0x00, 0x29, 0xc8, 0x0f, 0xff,
- 0xf9, 0x3f, 0xfd, 0xf8, 0x62, 0xa8, 0x2c, 0x0e, 0x3f, 0xf0, 0x93, 0x32,
- 0x89, 0x23, 0x6a, 0xbc, 0x0c, 0xc4, 0xdf, 0x20, 0xfe, 0xef, 0x1e, 0xe9,
- 0x4b, 0x04, 0xe0, 0x53, 0x2f, 0xb3, 0xf6, 0xa1, 0x53, 0x72, 0xb1, 0x9d,
- 0xf2, 0x97, 0xff, 0x00, 0x33, 0xae, 0xb7, 0x8e, 0x59, 0x8b, 0x00, 0x13,
- 0x2f, 0xbc, 0xf0, 0x74, 0x23, 0xbf, 0xa7, 0x80, 0x00, 0x80, 0x06, 0x18,
- 0xff, 0x11, 0xd7, 0xc2, 0xbd, 0xa8, 0x07, 0x44, 0x56, 0xbf, 0x43, 0xc0,
- 0x25, 0x6f, 0xbd, 0xa1, 0x8f, 0xfe, 0x3a, 0x8c, 0x2b, 0xc7, 0xbb, 0xe5,
- 0x83, 0xc0, 0x79, 0x96, 0x10, 0x34, 0xe0, 0x3c, 0x8e, 0x3b, 0x7a, 0x52,
- 0x3e, 0xbb, 0xc7, 0x06, 0x3e, 0x50, 0xfa, 0x42, 0x08, 0x70, 0x01, 0x25,
- 0x51, 0x36, 0xb4, 0x5f, 0x7a, 0x12, 0x1d, 0x54, 0x99, 0x3f, 0x7c, 0xbd,
- 0x0d, 0xc4, 0xac, 0x35, 0xf2, 0x46, 0x44, 0x88, 0x10, 0x01, 0x23, 0xd5,
- 0x7d, 0x61, 0xee, 0xf8, 0xbf, 0xc0, 0xcd, 0x7e, 0x5e, 0x07, 0xd7, 0x9f,
- 0x77, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc, 0xd5, 0x84,
- 0xf2, 0xef, 0x18, 0xfd, 0xf7, 0xf7, 0x8d, 0xfd, 0xf2, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6,
- 0xff, 0x2e, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
- 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
- 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x03,
- 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66, 0x3e, 0x04, 0x5f, 0x8c,
- 0xf2, 0x0f, 0xa7, 0xfa, 0x9f, 0x96, 0x24, 0xb9, 0x4b, 0xb6, 0xbd, 0xeb,
- 0xfc, 0x7f, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xca, 0x41, 0x43,
- 0x00, 0x60, 0xf7, 0xdb, 0x4b, 0xa9, 0xd8, 0x34, 0xcf, 0x67, 0xe8, 0x31,
- 0x4b, 0x0d, 0x4d, 0x48, 0xa7, 0x80, 0x1b, 0x13, 0x41, 0xf3, 0x17, 0x32,
- 0xf7, 0xdf, 0xb9, 0xde, 0xc7, 0xcd, 0xa7, 0xc2, 0xff, 0x84, 0xc4, 0xbe,
- 0x80, 0x65, 0x01, 0x31, 0x7a, 0xaf, 0xa2, 0x98, 0xc4, 0x8d, 0xbb, 0xa7,
- 0xaf, 0x6f, 0x9e, 0x40, 0xeb, 0x1f, 0xb5, 0xf5, 0xef, 0xfc, 0x57, 0xff,
- 0xff, 0xfc, 0xdf, 0xad, 0x95, 0x0a, 0x92, 0xb3, 0x70, 0x03, 0x8b, 0x90,
- 0x8b, 0xd8, 0x79, 0xb7, 0x39, 0x1a, 0xe9, 0xef, 0x01, 0x08, 0x96, 0xd4,
- 0xba, 0x89, 0x1a, 0x80, 0x09, 0xa2, 0xdd, 0x0f, 0x7e, 0xf9, 0xd0, 0x00,
- 0xf5, 0x40, 0xd9, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0x93, 0x6e, 0xab, 0xf1,
- 0x20, 0x0c, 0xea, 0xa3, 0x6a, 0xa8, 0x67, 0x5c, 0x9c, 0xdf, 0xff, 0x91,
- 0x41, 0x09, 0xe0, 0x01, 0xb5, 0xf6, 0xe0, 0x90, 0xa5, 0x27, 0xf8, 0x00,
- 0xf5, 0x2f, 0x40, 0x7e, 0xf3, 0x1f, 0x7f, 0xc8, 0x3f, 0xff, 0xf7, 0x3c,
- 0xbf, 0x8e, 0x1f, 0x23, 0x02, 0x08, 0x7c, 0xf1, 0xeb, 0xfe, 0x4f, 0xff,
- 0xff, 0xff, 0x10, 0x48, 0x5f, 0xad, 0xab, 0xe0, 0xe8, 0xbe, 0x21, 0xd4,
- 0x68, 0x2a, 0x78, 0x3a, 0x2f, 0xfc, 0xe6, 0x95, 0xa4, 0x52, 0x26, 0x0f,
- 0x89, 0x2c, 0x01, 0x0a, 0x5f, 0xf0, 0x1f, 0xfd, 0xb3, 0x04, 0x44, 0xab,
- 0xa3, 0xcd, 0x1f, 0xb9, 0xf1, 0x9d, 0xff, 0x83, 0xff, 0xff, 0x70, 0x30,
- 0xe0, 0x05, 0x90, 0xed, 0xd3, 0x23, 0xbb, 0xd5, 0x41, 0x84, 0x77, 0xdf,
- 0xfe, 0x7e, 0xff, 0xbf, 0xcc, 0x29, 0x3d, 0x3e, 0x60, 0x27, 0x15, 0xf0,
- 0x03, 0xd9, 0xff, 0x28, 0xff, 0xf8, 0xf4, 0x0f, 0xe8, 0x28, 0x02, 0x1e,
- 0xbe, 0x97, 0xfb, 0x7f, 0xe0, 0x0a, 0x7b, 0x4b, 0x3e, 0x48, 0x9e, 0x3b,
- 0x8a, 0xf0, 0xec, 0x5f, 0x8d, 0x2c, 0x3c, 0x0b, 0xc4, 0xc4, 0xfc, 0x47,
- 0x99, 0x26, 0x90, 0xe7, 0x84, 0xf1, 0x63, 0x00, 0x4a, 0xf5, 0x2f, 0xf0,
- 0x3f, 0xf0, 0x48, 0xf0, 0xef, 0xe1, 0xfc, 0x01, 0xcd, 0xcb, 0x3d, 0x2f,
- 0x7e, 0x3b, 0xd8, 0x52, 0x24, 0x00, 0x21, 0x7b, 0xbb, 0xbe, 0xff, 0xc0,
- 0x03, 0xf7, 0xad, 0xc5, 0x0e, 0xba, 0xfc, 0xff, 0xfb, 0xf1, 0xb0, 0x00,
- 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x57, 0xfc, 0xbe, 0xfc, 0x67,
- 0xfd, 0xff, 0xdf, 0x8e, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f,
- 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
- 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
- 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x01, 0xaf, 0x77, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0x51, 0x67, 0xc2, 0x26, 0x83, 0x87, 0x82,
- 0x6b, 0x9e, 0x32, 0xe4, 0x08, 0x89, 0x58, 0xaf, 0xff, 0xff, 0xfe, 0xdc,
- 0x50, 0x80, 0x18, 0xc7, 0x3b, 0x22, 0x65, 0xfb, 0x3e, 0x9e, 0x03, 0x72,
- 0x14, 0xa1, 0x68, 0x0e, 0xbe, 0x40, 0x07, 0x73, 0xa0, 0xf9, 0x83, 0x3f,
- 0x64, 0x7a, 0x48, 0x85, 0x1e, 0xc1, 0xfb, 0x88, 0x51, 0x03, 0x81, 0xc3,
- 0x1b, 0x7d, 0x6f, 0xf8, 0x4c, 0x48, 0x14, 0x1b, 0x00, 0x09, 0x87, 0x2a,
- 0xf6, 0xf6, 0xb0, 0x3e, 0x6b, 0xfb, 0x74, 0xb9, 0xe3, 0x2b, 0x31, 0x5f,
- 0xde, 0x19, 0xb6, 0x92, 0x49, 0x76, 0xbc, 0x57, 0xff, 0xf0, 0xc7, 0x1e,
- 0xa0, 0xe1, 0x30, 0x6d, 0x9b, 0x00, 0x8f, 0x5f, 0x6c, 0x3c, 0x51, 0xd2,
- 0xde, 0x12, 0xe2, 0xf2, 0x06, 0xdc, 0xd2, 0xc7, 0xa0, 0xce, 0xf7, 0x69,
- 0x3f, 0xbf, 0x7f, 0xe0, 0xd7, 0x95, 0x20, 0xaf, 0x57, 0xec, 0xaa, 0xd2,
- 0xd3, 0xa9, 0x63, 0xb9, 0x1e, 0xb3, 0xaf, 0x5f, 0xfe, 0x4f, 0xff, 0xe1,
- 0x8b, 0x0a, 0x45, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea, 0xd3, 0xfc, 0x80,
- 0x4d, 0x35, 0x8e, 0xb2, 0xb3, 0x74, 0x12, 0xdc, 0x12, 0x2f, 0x23, 0xc3,
- 0x9c, 0x31, 0x2b, 0x15, 0x40, 0x89, 0xb5, 0xed, 0x40, 0x06, 0xd7, 0xf5,
- 0x7c, 0x7f, 0xd5, 0x0b, 0xaa, 0x3c, 0x6a, 0x10, 0x3f, 0xe9, 0xf1, 0xab,
- 0xfd, 0x81, 0xd3, 0x78, 0x01, 0xf3, 0xf9, 0x23, 0x37, 0x14, 0x83, 0x33,
- 0xbf, 0xfa, 0x7f, 0xdf, 0xfc, 0x04, 0x0f, 0x79, 0xde, 0x22, 0xfc, 0x31,
- 0xfe, 0x73, 0x3f, 0x82, 0x02, 0xea, 0x20, 0x30, 0x12, 0x9f, 0xea, 0xf9,
- 0x59, 0x41, 0xf8, 0x49, 0x8e, 0xef, 0xc3, 0x13, 0xd6, 0x27, 0xff, 0x09,
- 0x2f, 0xa0, 0x78, 0x03, 0xd7, 0xda, 0x02, 0x5d, 0xbe, 0x01, 0xdf, 0x78,
- 0xf7, 0x70, 0xc7, 0xf9, 0x9c, 0xf5, 0xc2, 0xa8, 0x02, 0x1c, 0xbe, 0x0e,
- 0x39, 0xbf, 0xc3, 0xb0, 0x7e, 0x1c, 0xc5, 0x81, 0xf8, 0x5d, 0xe3, 0xb6,
- 0x48, 0x88, 0x92, 0x17, 0x00, 0x6d, 0x5f, 0xe0, 0x51, 0x97, 0xde, 0x36,
- 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbd, 0xdd, 0x84, 0xbe, 0x5d, 0xe3,
- 0x3e, 0xfe, 0xf1, 0xdf, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
- 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
- 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
- 0x00, 0x00, 0x01, 0x01, 0xfd, 0xe5, 0x02, 0x5f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
- 0xff, 0xde, 0x11, 0x98, 0xfc, 0x01, 0x93, 0x76, 0xf6, 0xff, 0xfe, 0x9e,
- 0x26, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x36, 0x6b, 0x60, 0xe0,
- 0x31, 0x80, 0xd8, 0x40, 0x02, 0x6f, 0xcf, 0xb3, 0xff, 0xa2, 0xca, 0xd8,
- 0xc6, 0x81, 0xc4, 0x9c, 0xc9, 0x0c, 0x72, 0xd8, 0x08, 0x0f, 0xe9, 0xcb,
- 0xbd, 0x35, 0xda, 0x73, 0xf3, 0x81, 0xac, 0xb3, 0x7d, 0xdf, 0x1f, 0x11,
- 0x16, 0x59, 0x10, 0xb7, 0x50, 0xb2, 0xc1, 0xe2, 0x23, 0xcb, 0x42, 0x71,
- 0x21, 0x1d, 0xc8, 0xbf, 0x22, 0x73, 0xe1, 0xb2, 0xcb, 0x1a, 0x3a, 0x7d,
- 0xaf, 0xf4, 0x10, 0x5c, 0xc6, 0x27, 0x2c, 0x37, 0xa2, 0xc4, 0x8c, 0x9f,
- 0x6b, 0xfc, 0x57, 0xff, 0xff, 0xfd, 0x71, 0x22, 0xcd, 0x00, 0x62, 0x64,
- 0x28, 0x95, 0x54, 0x1d, 0x5a, 0x90, 0xe9, 0x75, 0xa5, 0xae, 0xb8, 0x30,
- 0x57, 0x94, 0xfd, 0x73, 0xe1, 0x8d, 0xc9, 0x1e, 0xb9, 0xe2, 0xb4, 0xf2,
- 0x41, 0xe3, 0xf3, 0x1e, 0x01, 0x2f, 0xaf, 0x0f, 0x9d, 0x5f, 0xeb, 0x02,
- 0x08, 0x38, 0x1e, 0xb8, 0x02, 0x19, 0x58, 0x7c, 0xc7, 0xbf, 0x30, 0xab,
- 0xfb, 0xd8, 0x84, 0x6f, 0x97, 0xd6, 0xf8, 0xff, 0x00, 0x7f, 0x4d, 0x18,
- 0xbd, 0x1f, 0x93, 0xff, 0xff, 0xfe, 0xc2, 0x22, 0x48, 0x20, 0x47, 0x0d,
- 0xdb, 0x30, 0x24, 0x41, 0xde, 0xbe, 0x60, 0x06, 0x53, 0xa7, 0x35, 0xd7,
- 0xa3, 0x20, 0xb2, 0x11, 0x10, 0x33, 0xf2, 0x9e, 0x06, 0x28, 0x49, 0x05,
- 0x70, 0x62, 0x43, 0x63, 0xf9, 0xfe, 0x81, 0xc0, 0x30, 0x81, 0xe3, 0x30,
- 0x53, 0xe9, 0xa7, 0xc2, 0x7c, 0x60, 0x4e, 0xe6, 0x8c, 0x1d, 0xf8, 0xf8,
- 0x26, 0xfa, 0x7f, 0x0f, 0xc7, 0x7b, 0x35, 0x23, 0xa7, 0xd2, 0x98, 0xad,
- 0x70, 0x89, 0xfc, 0x32, 0xbb, 0x31, 0x9b, 0x0f, 0x53, 0x36, 0x6f, 0x5e,
- 0xfc, 0x77, 0xbe, 0x43, 0xe0, 0x10, 0x6a, 0xa7, 0xdf, 0x5f, 0xdf, 0x8d,
- 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0xf7, 0x94, 0x22, 0xff, 0x97,
- 0xdf, 0x8c, 0xff, 0xbf, 0xfb, 0xf1, 0xdf, 0xf2, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xff,
- 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff,
- 0xff, 0xff, 0xf1, 0xb0
-};
-
+ 0x44, 0x4b, 0x49, 0x46, 0x00, 0x00, 0x20, 0x00, 0x56, 0x50, 0x38, 0x30,
+ 0x40, 0x01, 0xf0, 0x00, 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x39, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xa4, 0x00, 0x9d,
+ 0x01, 0x2a, 0x40, 0x01, 0xf0, 0x00, 0x00, 0x07, 0x08, 0x85, 0x85, 0x88,
+ 0x85, 0x84, 0x88, 0x02, 0x03, 0xb6, 0xe3, 0x6e, 0xfe, 0x67, 0xf8, 0x03,
+ 0x78, 0x41, 0xf8, 0x93, 0x86, 0x03, 0x9c, 0x03, 0xd0, 0xbc, 0xf0, 0x3f,
+ 0xd8, 0x3d, 0x18, 0xff, 0x92, 0xf3, 0x55, 0xf2, 0xbf, 0xf4, 0x7e, 0xc1,
+ 0xff, 0x8f, 0x7f, 0x2e, 0xfe, 0x8d, 0xf8, 0x0d, 0xfb, 0xd9, 0xe2, 0x03,
+ 0xfa, 0xcd, 0xec, 0x4a, 0x35, 0x55, 0x7f, 0x00, 0x5e, 0x8e, 0x7c, 0xaf,
+ 0xf2, 0x03, 0xf4, 0xcf, 0x8d, 0x8b, 0xb7, 0xbf, 0xa2, 0x1c, 0x3d, 0xc5,
+ 0x4f, 0xb2, 0x2f, 0x80, 0xfe, 0x00, 0xfe, 0x00, 0xf7, 0xa5, 0xdb, 0x6d,
+ 0xcc, 0xdd, 0xfc, 0x07, 0xf0, 0x07, 0xd8, 0x07, 0x58, 0x07, 0xf8, 0x0f,
+ 0xf0, 0x1e, 0xb5, 0x9f, 0xf1, 0x39, 0x29, 0x3d, 0x01, 0xfc, 0x01, 0xfb,
+ 0x01, 0xfc, 0x2d, 0xe1, 0x2f, 0xca, 0x3f, 0x0d, 0xff, 0x4f, 0x3d, 0x65,
+ 0xfc, 0x5f, 0xe7, 0x5f, 0xa3, 0x7e, 0x1a, 0x7e, 0xd4, 0x7f, 0x80, 0xf8,
+ 0x94, 0xfd, 0x47, 0xf1, 0x2f, 0xf6, 0xe7, 0xfc, 0x37, 0xb8, 0xfe, 0x9a,
+ 0xfe, 0xbb, 0xf8, 0x83, 0xee, 0x5f, 0xf3, 0x2f, 0xb3, 0x1f, 0x39, 0xff,
+ 0x05, 0xfa, 0x49, 0xfb, 0x35, 0xfd, 0xff, 0xfe, 0x1f, 0xd1, 0xff, 0xd0,
+ 0xbf, 0x0b, 0x3f, 0x50, 0xbf, 0xb9, 0x7c, 0x03, 0xf2, 0x17, 0xf5, 0x6f,
+ 0xc2, 0x4f, 0xda, 0x8f, 0xf1, 0xbf, 0x60, 0xbe, 0xb9, 0xfe, 0x7d, 0xf8,
+ 0x61, 0xfd, 0xcf, 0xfe, 0x77, 0xf7, 0x3f, 0xfc, 0x5f, 0xa5, 0x1f, 0x45,
+ 0xfd, 0x57, 0xf0, 0x6b, 0xcc, 0x8b, 0xb3, 0xff, 0x2f, 0xfd, 0x07, 0xf0,
+ 0xa3, 0xe0, 0x2f, 0xda, 0x1f, 0x98, 0xff, 0x46, 0xfe, 0xeb, 0xfd, 0xef,
+ 0xf9, 0x5f, 0xf8, 0x6f, 0xf5, 0x5f, 0xe9, 0x7f, 0xff, 0xfb, 0x8b, 0x7e,
+ 0x47, 0xf8, 0x3d, 0xf7, 0xcd, 0xf8, 0xdf, 0xe7, 0x9f, 0xd5, 0x3f, 0x99,
+ 0xfe, 0x0f, 0xff, 0x50, 0xfc, 0xd4, 0xfe, 0x03, 0xfc, 0x93, 0xf9, 0x2f,
+ 0xf3, 0x7f, 0xc3, 0xbf, 0xec, 0xdf, 0xeb, 0xbf, 0x7c, 0x7f, 0x13, 0xfe,
+ 0xfb, 0xfd, 0xd3, 0xf0, 0xb3, 0xf7, 0x9b, 0xdb, 0xb7, 0xe9, 0x3f, 0xde,
+ 0x7f, 0xc9, 0x7e, 0x1a, 0x7f, 0x39, 0xfb, 0x05, 0xfe, 0x39, 0xfc, 0x9f,
+ 0xf9, 0xef, 0xf8, 0xbf, 0xd1, 0xbf, 0xf3, 0xff, 0xed, 0x3f, 0xa9, 0x7f,
+ 0xf0, 0xfb, 0xbb, 0xfd, 0x9f, 0xfd, 0x77, 0xe8, 0xcf, 0xf8, 0x3f, 0xfe,
+ 0xbf, 0xbf, 0xff, 0x69, 0x3e, 0x7c, 0xfe, 0xf7, 0xfe, 0x77, 0xf4, 0xbf,
+ 0xfb, 0x47, 0xff, 0x1f, 0xdf, 0xff, 0xe2, 0x3f, 0xcb, 0xff, 0x9f, 0x7f,
+ 0x54, 0xff, 0x07, 0xfa, 0x7b, 0xfd, 0xeb, 0xff, 0x7f, 0xef, 0xef, 0xe4,
+ 0xc7, 0xac, 0x5f, 0xd9, 0xff, 0xb1, 0xaf, 0xdf, 0x7f, 0xc3, 0xaf, 0xd4,
+ 0xcf, 0xb1, 0xaf, 0xdf, 0xdd, 0xf9, 0x59, 0x5e, 0x77, 0xf7, 0x22, 0xeb,
+ 0x3c, 0xaf, 0xc7, 0x59, 0xc8, 0xe4, 0x19, 0x02, 0x0d, 0xde, 0x2d, 0x9d,
+ 0x01, 0x97, 0x95, 0x9d, 0xd0, 0x4d, 0x4e, 0xff, 0x85, 0xcb, 0x5a, 0xc8,
+ 0xf5, 0x5a, 0x6a, 0xda, 0x59, 0x27, 0x56, 0xdd, 0xbf, 0xf8, 0x55, 0x27,
+ 0x39, 0x23, 0x45, 0x35, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x59, 0xbd,
+ 0xc6, 0xf3, 0x73, 0x2b, 0xfb, 0xb4, 0x8a, 0x2d, 0xf0, 0xc8, 0xfb, 0x48,
+ 0xda, 0x8d, 0xd2, 0x2e, 0x5c, 0x06, 0xb5, 0xa9, 0xc4, 0x76, 0x19, 0xeb,
+ 0x5c, 0xd2, 0x02, 0x4f, 0x4b, 0x51, 0xcd, 0x38, 0xd2, 0x14, 0x54, 0x32,
+ 0x37, 0xf3, 0x86, 0x59, 0x2b, 0x13, 0xf6, 0x17, 0xb1, 0x01, 0x8c, 0x44,
+ 0x9b, 0xd3, 0xd3, 0x3e, 0x74, 0x2a, 0x7f, 0x99, 0x36, 0xc4, 0x16, 0xd3,
+ 0xd2, 0x9d, 0x3e, 0xa5, 0x7c, 0x8a, 0xfb, 0x79, 0x20, 0x09, 0xb2, 0x19,
+ 0xa9, 0xa8, 0xb9, 0xfb, 0x6d, 0xb0, 0x77, 0x80, 0x30, 0x0e, 0x02, 0x90,
+ 0x51, 0xa7, 0x79, 0xb1, 0x97, 0xff, 0xc8, 0xaa, 0x0e, 0xfd, 0xe7, 0x5b,
+ 0x24, 0x94, 0x42, 0xf8, 0x26, 0x14, 0x64, 0x3d, 0xbf, 0xdb, 0xe4, 0xb4,
+ 0x62, 0xee, 0x83, 0xb0, 0x5b, 0x41, 0xf7, 0x91, 0xca, 0x69, 0x85, 0xae,
+ 0xd5, 0x62, 0x8f, 0xd0, 0x58, 0xdd, 0xfc, 0x06, 0x35, 0x00, 0x1b, 0x75,
+ 0x3d, 0xf8, 0x9c, 0x4e, 0x33, 0x84, 0xdf, 0x1a, 0x4a, 0x75, 0xeb, 0x3c,
+ 0xf8, 0x6b, 0x04, 0x6c, 0xfe, 0x00, 0xf2, 0xc6, 0x10, 0xa6, 0x87, 0xd9,
+ 0xda, 0x48, 0x90, 0x3b, 0x95, 0xb7, 0x80, 0x3e, 0x6a, 0x63, 0x23, 0x74,
+ 0x95, 0xd5, 0x29, 0x26, 0xeb, 0xed, 0x85, 0x3a, 0x63, 0xf3, 0x9d, 0x12,
+ 0x8a, 0xc8, 0x0c, 0x87, 0xfd, 0xaa, 0xcc, 0xb1, 0xbe, 0xec, 0x43, 0xa8,
+ 0x19, 0xe3, 0xbe, 0x3e, 0xb6, 0xec, 0xd4, 0xbc, 0x19, 0x01, 0x2b, 0xbc,
+ 0xeb, 0x0d, 0x7a, 0x54, 0xc9, 0x9e, 0x57, 0xd5, 0xb3, 0x75, 0x3d, 0x48,
+ 0x82, 0xf0, 0x7f, 0x2d, 0xe7, 0x6a, 0xe8, 0x66, 0xfb, 0x11, 0x63, 0xee,
+ 0x3d, 0xad, 0x3d, 0x7f, 0x04, 0xed, 0x0e, 0x30, 0x86, 0xe1, 0x9d, 0xa7,
+ 0xcd, 0x5a, 0x30, 0xf3, 0xaa, 0xc1, 0x58, 0x1e, 0xea, 0x0a, 0x46, 0x19,
+ 0x49, 0x5e, 0xba, 0xd3, 0x7a, 0xf3, 0x05, 0x2d, 0x38, 0xe9, 0xb8, 0x2c,
+ 0x89, 0x9d, 0xf1, 0xf2, 0xe5, 0x5c, 0xab, 0x90, 0x14, 0x78, 0x62, 0xf3,
+ 0x0c, 0x48, 0xc1, 0x70, 0xbf, 0x71, 0xce, 0xc6, 0xea, 0x14, 0xf4, 0xbe,
+ 0x5d, 0xcf, 0xc7, 0x80, 0xa9, 0xc1, 0xce, 0xd1, 0x71, 0xba, 0xa2, 0x00,
+ 0xd7, 0xa3, 0x1a, 0x74, 0x1e, 0x06, 0xd8, 0x32, 0x0d, 0x0c, 0x03, 0xe3,
+ 0x90, 0x48, 0x92, 0x44, 0x85, 0x41, 0x88, 0x31, 0x04, 0xfa, 0xa2, 0x86,
+ 0xb8, 0x28, 0x09, 0x60, 0x4c, 0x41, 0x0b, 0x9b, 0x14, 0xbe, 0x34, 0xa4,
+ 0x76, 0xc7, 0xfd, 0x7f, 0x2a, 0xc2, 0x07, 0x5f, 0x50, 0x3f, 0xc6, 0xb8,
+ 0x80, 0x42, 0x07, 0xc2, 0x1a, 0x10, 0x00, 0xb4, 0xf0, 0x33, 0x59, 0xce,
+ 0x40, 0x1b, 0x0f, 0xcf, 0xa5, 0x56, 0x37, 0x89, 0x06, 0x7a, 0x12, 0xa9,
+ 0xe5, 0x08, 0x14, 0x6d, 0x7a, 0x71, 0x43, 0xc9, 0x9d, 0xb5, 0x27, 0x8a,
+ 0x81, 0x97, 0xb3, 0xa7, 0xbe, 0xb1, 0x44, 0x0d, 0xf1, 0x6b, 0x11, 0x79,
+ 0x93, 0x42, 0xd3, 0xbc, 0x64, 0x31, 0x8d, 0x4b, 0x9b, 0x4c, 0xfe, 0xcd,
+ 0x27, 0x00, 0x9a, 0x1f, 0xcb, 0x59, 0xd6, 0x73, 0x10, 0xe8, 0xcb, 0x26,
+ 0x8b, 0x3b, 0x3f, 0xd4, 0xfb, 0x64, 0x03, 0x66, 0xd9, 0xe7, 0x94, 0x2f,
+ 0x0a, 0xca, 0x0b, 0x33, 0x55, 0xc2, 0xf6, 0xfb, 0x77, 0xbd, 0xc8, 0xa7,
+ 0x48, 0x3a, 0xfa, 0xa5, 0x82, 0x24, 0x29, 0x1c, 0xba, 0x92, 0x52, 0x2e,
+ 0x57, 0x7d, 0x73, 0x5d, 0x30, 0x08, 0x4e, 0xc2, 0xab, 0x08, 0x86, 0x71,
+ 0x19, 0x7f, 0x0c, 0xfc, 0x75, 0x94, 0x90, 0x5e, 0xfc, 0xb2, 0xba, 0xb5,
+ 0x75, 0x2d, 0x50, 0x28, 0x7e, 0x3f, 0x92, 0xcc, 0xa9, 0xf8, 0xd7, 0x4c,
+ 0x19, 0xed, 0x70, 0x65, 0x24, 0xe3, 0xd9, 0x1b, 0xab, 0x27, 0xe7, 0xd0,
+ 0xb0, 0xa9, 0x00, 0x91, 0xcc, 0x19, 0xc5, 0xa4, 0x49, 0x00, 0x46, 0xbb,
+ 0x50, 0x8f, 0xf6, 0x99, 0x74, 0x5d, 0x91, 0xb4, 0x6a, 0x64, 0x2b, 0x51,
+ 0x41, 0x72, 0xb8, 0x08, 0xa3, 0x11, 0x2b, 0xd8, 0x3d, 0x7a, 0x2c, 0xfa,
+ 0x86, 0xb2, 0xe9, 0x15, 0xb3, 0x0c, 0x97, 0xc0, 0x88, 0xaf, 0x3a, 0x6f,
+ 0xc7, 0x00, 0x2a, 0x80, 0x84, 0xd0, 0x6a, 0xa3, 0xdf, 0x59, 0xa5, 0x78,
+ 0x7f, 0xe6, 0x7b, 0xc5, 0x21, 0x74, 0x21, 0x17, 0x56, 0x7f, 0x90, 0xa6,
+ 0x00, 0xdf, 0xbf, 0x8f, 0xee, 0xf6, 0xdc, 0xd0, 0x7c, 0xd2, 0xff, 0x1f,
+ 0x93, 0xbc, 0x0a, 0xdb, 0x1b, 0x2f, 0x8b, 0x91, 0x6e, 0x4f, 0xf2, 0x87,
+ 0xb7, 0x20, 0x81, 0xbc, 0xae, 0x76, 0x37, 0xaa, 0x3c, 0xc3, 0x71, 0xdc,
+ 0x0a, 0x86, 0x02, 0x6b, 0xa8, 0x4c, 0x0c, 0x64, 0xae, 0x1e, 0x03, 0x29,
+ 0xc7, 0x81, 0xb0, 0xbd, 0x90, 0x59, 0x55, 0x24, 0x7e, 0x4b, 0xec, 0xd6,
+ 0x54, 0x5a, 0x16, 0xac, 0xa0, 0x9c, 0xcb, 0xa6, 0x11, 0xa7, 0x7e, 0x5a,
+ 0xd3, 0x0d, 0xd3, 0xcb, 0xff, 0x41, 0xab, 0x56, 0xc7, 0x30, 0x48, 0xbc,
+ 0x92, 0x4a, 0x47, 0xa6, 0xcf, 0xef, 0xe3, 0xee, 0xb6, 0x0f, 0x09, 0x60,
+ 0xc4, 0x09, 0xd4, 0x93, 0xd3, 0x94, 0x3c, 0xca, 0x54, 0x10, 0x90, 0x9d,
+ 0xb3, 0xf4, 0x09, 0x2e, 0x5c, 0x9b, 0x2b, 0xda, 0x84, 0x2c, 0x52, 0x08,
+ 0xe5, 0x27, 0xae, 0x57, 0x4e, 0xb4, 0x0f, 0xdd, 0xb4, 0x2a, 0xdc, 0x00,
+ 0xee, 0xe0, 0xc4, 0x0d, 0x7f, 0x9b, 0xc5, 0x83, 0x04, 0x50, 0x6e, 0x76,
+ 0xf8, 0x61, 0x3b, 0xa3, 0x99, 0x59, 0x79, 0x3b, 0xf0, 0xf1, 0x67, 0xc6,
+ 0x54, 0x87, 0x41, 0xb9, 0xff, 0xa1, 0x51, 0x85, 0xb1, 0xd6, 0xd9, 0xdb,
+ 0x9f, 0x72, 0x2b, 0x23, 0x78, 0xc7, 0x73, 0xe3, 0x8f, 0xfb, 0xe1, 0xee,
+ 0x4a, 0xb5, 0x65, 0x9f, 0x60, 0x91, 0x5b, 0x4d, 0x46, 0x25, 0x5c, 0x83,
+ 0x6c, 0xf1, 0x1c, 0xb0, 0xc3, 0x25, 0x0c, 0xd9, 0x65, 0x6f, 0x00, 0xa3,
+ 0xe4, 0xf0, 0xeb, 0xc7, 0xa5, 0x15, 0x1e, 0x6a, 0x94, 0x87, 0x91, 0x39,
+ 0x72, 0xee, 0x08, 0xc5, 0x70, 0x16, 0xee, 0xa6, 0xea, 0x72, 0x74, 0x69,
+ 0xd5, 0x1e, 0xff, 0xea, 0xe5, 0xf6, 0xaf, 0x85, 0xfb, 0x24, 0x46, 0xb4,
+ 0x01, 0x22, 0xfe, 0xf0, 0x3e, 0xba, 0x6c, 0x12, 0x71, 0x15, 0xe1, 0xab,
+ 0x37, 0x3c, 0x8c, 0x9f, 0x32, 0xb9, 0xb3, 0xae, 0x6a, 0x37, 0x82, 0x46,
+ 0x88, 0xdb, 0x48, 0x99, 0x42, 0xcd, 0x0e, 0xd6, 0xb9, 0xce, 0xd1, 0x89,
+ 0x2c, 0xe6, 0x09, 0x81, 0xf5, 0xd7, 0x02, 0x7f, 0x90, 0x71, 0xea, 0xda,
+ 0x8f, 0xdc, 0x53, 0x43, 0xb5, 0xb2, 0x65, 0x5d, 0xc9, 0xc0, 0x00, 0xfe,
+ 0xde, 0x9a, 0xed, 0x31, 0x2f, 0x62, 0x20, 0xe0, 0x7f, 0x8d, 0x00, 0x97,
+ 0xa4, 0xca, 0xdc, 0x6f, 0xde, 0x5d, 0x1e, 0x60, 0xd0, 0xe1, 0x61, 0x6e,
+ 0x65, 0x47, 0xde, 0x5c, 0xf1, 0xb6, 0xcd, 0xa6, 0x6e, 0xdf, 0x02, 0xb4,
+ 0x86, 0xf0, 0x61, 0xd5, 0xe9, 0x3e, 0x7b, 0x41, 0xed, 0x15, 0xf6, 0x1e,
+ 0x90, 0xf2, 0xdd, 0x8f, 0x2c, 0xa0, 0x71, 0x8c, 0xdd, 0x12, 0xd8, 0x8b,
+ 0x3c, 0x26, 0xaa, 0x17, 0x7f, 0x38, 0xe6, 0x35, 0xde, 0x8f, 0x73, 0xf3,
+ 0xb3, 0x9f, 0x7c, 0xcb, 0x1b, 0x9a, 0x17, 0xc4, 0xc8, 0xeb, 0x86, 0xfe,
+ 0x84, 0x85, 0x75, 0xc6, 0x33, 0x71, 0x09, 0x96, 0x14, 0x58, 0xa8, 0xa0,
+ 0x16, 0x73, 0xea, 0x6b, 0xaf, 0x54, 0x09, 0xc1, 0x53, 0x1b, 0x8b, 0xae,
+ 0x5c, 0xa0, 0x3d, 0x34, 0xf1, 0x7f, 0x30, 0x02, 0x92, 0x8c, 0x32, 0x8f,
+ 0x7a, 0x01, 0x88, 0xab, 0x48, 0x94, 0x3e, 0x0b, 0x3c, 0x24, 0xa2, 0x72,
+ 0xeb, 0xb9, 0xc5, 0x85, 0x71, 0xc6, 0x9e, 0xf7, 0xdc, 0x22, 0x74, 0x39,
+ 0x61, 0x0e, 0x10, 0x60, 0xe5, 0x72, 0xc2, 0x0b, 0x35, 0xf2, 0xe6, 0x79,
+ 0x5b, 0x00, 0xf3, 0x7c, 0x0c, 0xd4, 0xff, 0x96, 0x36, 0xd2, 0x9b, 0xf3,
+ 0xed, 0x1f, 0x9c, 0x58, 0x9d, 0x25, 0x9d, 0xa0, 0x75, 0x52, 0xdb, 0x71,
+ 0x26, 0x80, 0x8d, 0xdc, 0x23, 0xe5, 0x83, 0x4c, 0xb1, 0x68, 0x91, 0x69,
+ 0xcf, 0x2c, 0xb8, 0xb6, 0xe1, 0x51, 0x03, 0xf1, 0x92, 0xef, 0x13, 0x80,
+ 0xcb, 0x32, 0xe9, 0x2b, 0x99, 0x2a, 0xd5, 0x02, 0x22, 0x7c, 0xce, 0xce,
+ 0x98, 0x18, 0x15, 0x60, 0xb8, 0x73, 0xf1, 0xf1, 0xbb, 0xfd, 0x4d, 0x57,
+ 0x11, 0x36, 0x12, 0xef, 0xea, 0xd4, 0xdc, 0x4d, 0xbb, 0xe8, 0xc3, 0x70,
+ 0xa8, 0x7e, 0x09, 0x49, 0x2c, 0xc5, 0x7d, 0x17, 0x3a, 0x7e, 0xd0, 0xaf,
+ 0x5a, 0x0a, 0x9d, 0x4a, 0x6c, 0x12, 0x51, 0x49, 0x4b, 0xca, 0x43, 0xc1,
+ 0xd5, 0x9e, 0x84, 0xa0, 0x29, 0xa5, 0x02, 0x35, 0xbb, 0x09, 0xa7, 0x04,
+ 0xbf, 0x93, 0xcf, 0x7d, 0x0a, 0x94, 0x85, 0x28, 0x0d, 0x88, 0x89, 0x57,
+ 0x46, 0x95, 0x1b, 0xa9, 0xf7, 0x16, 0x90, 0xd7, 0xe3, 0x7a, 0x0d, 0x92,
+ 0xe2, 0xbf, 0xe0, 0xa6, 0x6a, 0x45, 0xf7, 0x26, 0x02, 0x7b, 0x6a, 0xd8,
+ 0xb6, 0xd1, 0x82, 0x2d, 0xfc, 0x37, 0xa4, 0x18, 0xe5, 0x49, 0x70, 0x70,
+ 0xff, 0x3a, 0x74, 0xb5, 0xc6, 0xe4, 0xf5, 0x24, 0x3c, 0xdd, 0xf3, 0x89,
+ 0xe4, 0x8d, 0xdf, 0x5e, 0x3f, 0xea, 0x12, 0x10, 0x02, 0x2e, 0x14, 0x7d,
+ 0x79, 0x2d, 0xaa, 0x9b, 0xbe, 0xba, 0x03, 0xbc, 0x63, 0xd0, 0xe6, 0xbb,
+ 0xa6, 0xc0, 0x38, 0xf3, 0x85, 0x8b, 0x3f, 0x85, 0x33, 0xcc, 0xd6, 0x04,
+ 0xa4, 0xb4, 0xee, 0xe0, 0xbb, 0x9e, 0x28, 0x6c, 0xca, 0x83, 0x88, 0xc6,
+ 0x5d, 0xf3, 0xd0, 0x9f, 0xb2, 0xc4, 0x85, 0xff, 0xff, 0x0a, 0x87, 0xff,
+ 0xe2, 0x9b, 0x86, 0x47, 0xfa, 0xf2, 0x5f, 0xff, 0xd5, 0xe6, 0x33, 0x31,
+ 0x2f, 0x41, 0x1d, 0x78, 0x50, 0xff, 0xff, 0x6e, 0xc4, 0x48, 0xf4, 0xe5,
+ 0xcb, 0xbe, 0x82, 0x1a, 0xf6, 0x6f, 0x01, 0xc5, 0x51, 0xff, 0xfb, 0x9b,
+ 0x26, 0x08, 0xe5, 0xf7, 0xde, 0x32, 0x2d, 0xbe, 0x3b, 0x38, 0xc2, 0x1b,
+ 0xf1, 0x93, 0xa0, 0x22, 0xff, 0x1c, 0xae, 0x2d, 0xfd, 0xa5, 0xff, 0x1b,
+ 0xf7, 0x27, 0xff, 0x38, 0xd2, 0x42, 0x2d, 0xd3, 0x38, 0x27, 0xdd, 0xfd,
+ 0x9f, 0x0e, 0x9e, 0xf1, 0x6a, 0x6f, 0xcb, 0x80, 0xd0, 0x6d, 0xd2, 0x3d,
+ 0x7a, 0x6d, 0xc4, 0x8a, 0xf9, 0xff, 0xe9, 0x0b, 0xfd, 0xdc, 0x93, 0x16,
+ 0x69, 0xa4, 0xbe, 0xae, 0x2f, 0x74, 0x21, 0xb5, 0x51, 0xf4, 0x87, 0x9d,
+ 0x50, 0x77, 0x22, 0x40, 0x33, 0xfe, 0x86, 0x1d, 0x7e, 0xdd, 0xff, 0xb7,
+ 0x0f, 0x92, 0x62, 0x08, 0xb8, 0x41, 0x56, 0x1a, 0x07, 0xe2, 0xd3, 0x9a,
+ 0xe2, 0xc2, 0x54, 0xaa, 0xd8, 0x7b, 0x47, 0x72, 0x3a, 0x38, 0xf7, 0x7b,
+ 0x5e, 0x72, 0x7c, 0x2c, 0xfb, 0x63, 0xa1, 0x83, 0xdc, 0x02, 0xe5, 0x3d,
+ 0xca, 0x9a, 0x25, 0xa3, 0x1f, 0x64, 0xc4, 0xc2, 0x76, 0xe5, 0xdd, 0x48,
+ 0x99, 0x1f, 0xa9, 0x11, 0x2d, 0xe5, 0x27, 0x0f, 0x4d, 0xb6, 0xa9, 0xb2,
+ 0x73, 0x9c, 0x0f, 0xff, 0x50, 0xae, 0xd7, 0xb3, 0x57, 0x86, 0x5a, 0x1e,
+ 0xb3, 0xd9, 0xd7, 0x89, 0xd5, 0xb7, 0x55, 0xb1, 0xc3, 0x4b, 0x7e, 0xcf,
+ 0xf6, 0x9a, 0xdc, 0x35, 0x35, 0x44, 0xbc, 0x6d, 0xc9, 0x6f, 0x4e, 0x4f,
+ 0xce, 0x67, 0x4a, 0xb8, 0xc2, 0xd9, 0xfc, 0xec, 0x5f, 0x67, 0x16, 0x50,
+ 0x33, 0x9d, 0xe8, 0xd8, 0xa5, 0xf9, 0x04, 0x0d, 0x58, 0x7d, 0x9a, 0x45,
+ 0x6b, 0x09, 0xaa, 0xea, 0xfb, 0x3b, 0xb1, 0xe8, 0x58, 0x18, 0xa4, 0x63,
+ 0x8a, 0x34, 0x94, 0x3d, 0x2d, 0xce, 0xaf, 0x15, 0x4b, 0xeb, 0x6c, 0x3e,
+ 0xd4, 0x4f, 0x1f, 0x0c, 0xf7, 0xad, 0xdd, 0x42, 0xde, 0xbb, 0x2f, 0xbc,
+ 0xee, 0x42, 0xab, 0x9d, 0x53, 0xa5, 0x7b, 0x48, 0x5c, 0x13, 0xca, 0xeb,
+ 0x48, 0x39, 0x9a, 0xd7, 0xcd, 0xf1, 0xd8, 0xf0, 0x2d, 0xc4, 0x28, 0x34,
+ 0xfc, 0x02, 0x5d, 0x75, 0xfb, 0xc5, 0x52, 0x43, 0xa9, 0xa2, 0xd9, 0x7a,
+ 0xbf, 0x4a, 0x34, 0x7c, 0x69, 0x21, 0x0b, 0x24, 0x19, 0x8f, 0x24, 0x62,
+ 0x19, 0x13, 0x9a, 0x86, 0xbf, 0x06, 0x57, 0x5d, 0x2c, 0xca, 0xc7, 0x47,
+ 0xda, 0x88, 0x80, 0x9c, 0x26, 0x5c, 0xd1, 0xad, 0xa2, 0xdf, 0xd8, 0xf0,
+ 0x9c, 0x2c, 0x9e, 0xa0, 0x1b, 0xe3, 0xfb, 0xca, 0xd2, 0xd5, 0xa6, 0xa5,
+ 0x69, 0x57, 0xa6, 0xa4, 0x37, 0x74, 0xe9, 0x42, 0xc0, 0xd8, 0x4c, 0x53,
+ 0x82, 0xe6, 0x5d, 0x4c, 0x05, 0x6e, 0x6a, 0xd4, 0xbb, 0x91, 0xcc, 0xff,
+ 0x91, 0x08, 0x48, 0x37, 0xfa, 0x7d, 0xbc, 0x78, 0xaa, 0x5a, 0x70, 0xdf,
+ 0x1e, 0x1d, 0x23, 0xdb, 0x08, 0x61, 0x59, 0xda, 0xa4, 0x3c, 0x0c, 0x38,
+ 0x35, 0x6f, 0x7a, 0xc2, 0x57, 0x3e, 0xc8, 0x3e, 0x14, 0x25, 0xb8, 0x80,
+ 0xdd, 0x0f, 0x70, 0xfb, 0x12, 0x7b, 0x5d, 0x50, 0x29, 0x53, 0x92, 0x4d,
+ 0x54, 0xbb, 0xeb, 0x9f, 0x7e, 0xaa, 0x5d, 0x82, 0x65, 0x86, 0xf0, 0x6a,
+ 0x7e, 0x9e, 0x80, 0x76, 0x35, 0xdc, 0x16, 0x06, 0xf0, 0x03, 0xc9, 0x2c,
+ 0x18, 0x49, 0x15, 0x22, 0xbf, 0x55, 0xfa, 0x5f, 0x98, 0x8b, 0x7e, 0x55,
+ 0x35, 0x34, 0x43, 0x8a, 0x35, 0xa7, 0x5e, 0x58, 0xf4, 0x6a, 0xc1, 0xb8,
+ 0xf7, 0x7c, 0x97, 0x60, 0x40, 0x73, 0x94, 0x8e, 0xbe, 0x6d, 0xaf, 0x71,
+ 0xbe, 0x2f, 0x9e, 0xbc, 0x09, 0x5d, 0x8f, 0x00, 0x4b, 0xf3, 0x8c, 0x97,
+ 0x64, 0x72, 0x35, 0xc7, 0x86, 0x97, 0x7c, 0x19, 0x83, 0xf6, 0x52, 0x54,
+ 0x9d, 0x42, 0xeb, 0x0f, 0x98, 0x41, 0x5f, 0xbc, 0x1b, 0x8c, 0xc8, 0xc0,
+ 0x5e, 0x16, 0x05, 0xb1, 0x1c, 0x56, 0x31, 0x2f, 0x38, 0x70, 0x02, 0x06,
+ 0x7d, 0x61, 0x4e, 0x57, 0x74, 0x4c, 0xa9, 0x85, 0x94, 0xe5, 0x26, 0xf9,
+ 0x23, 0xbf, 0x7c, 0xf8, 0x71, 0xbd, 0xcc, 0x14, 0x7e, 0xc6, 0xe2, 0x02,
+ 0x0f, 0x93, 0xf1, 0x07, 0x48, 0x49, 0x5b, 0x39, 0xeb, 0x51, 0x45, 0x5e,
+ 0xa5, 0xc1, 0x68, 0x26, 0xca, 0xd0, 0x77, 0x36, 0x37, 0xce, 0x40, 0x5b,
+ 0xa4, 0x50, 0x94, 0xf2, 0xa2, 0xf7, 0x02, 0x7d, 0xf3, 0x3c, 0x1e, 0x68,
+ 0xad, 0x46, 0x2c, 0x33, 0x52, 0x3b, 0x8c, 0xec, 0x12, 0x7d, 0x20, 0xba,
+ 0xd3, 0x69, 0x07, 0x9f, 0xda, 0x4f, 0xef, 0xf0, 0x9b, 0x7b, 0x4e, 0x62,
+ 0x23, 0x55, 0x28, 0x5c, 0xff, 0xa3, 0x97, 0x18, 0xd6, 0x8e, 0x18, 0xfb,
+ 0x05, 0x34, 0x6e, 0xf7, 0x52, 0x98, 0x20, 0x35, 0x28, 0xac, 0xb2, 0xb6,
+ 0xc1, 0xa6, 0xab, 0xde, 0x5d, 0x50, 0x88, 0x68, 0x0c, 0x7a, 0x1a, 0x66,
+ 0x54, 0x42, 0x30, 0xcf, 0x60, 0xa8, 0x14, 0x3b, 0xdf, 0x2f, 0x87, 0x15,
+ 0xdb, 0xd6, 0x2b, 0x16, 0xd8, 0x10, 0x65, 0x1f, 0x9f, 0x90, 0xa7, 0x37,
+ 0xe1, 0xc5, 0xcc, 0x34, 0x4f, 0x5b, 0xac, 0x41, 0x10, 0xba, 0xce, 0x9e,
+ 0x56, 0x65, 0x4f, 0x60, 0x3d, 0x73, 0x55, 0xba, 0x21, 0x65, 0xf6, 0x30,
+ 0x79, 0xed, 0xaf, 0x81, 0x18, 0xe9, 0x14, 0xc4, 0x1a, 0x93, 0x88, 0x41,
+ 0x1f, 0x0d, 0x86, 0x57, 0xd3, 0xf7, 0x5c, 0x50, 0x21, 0x39, 0x90, 0x9e,
+ 0x3e, 0x18, 0xb3, 0x2d, 0xae, 0x45, 0xd4, 0xd5, 0x5f, 0x19, 0x71, 0x5f,
+ 0xa9, 0x6b, 0x6c, 0xbb, 0xd4, 0xaa, 0xe0, 0x36, 0x34, 0x74, 0xde, 0xea,
+ 0xc1, 0x70, 0x26, 0x8b, 0xce, 0xf8, 0xa1, 0xe3, 0x56, 0x6e, 0xdb, 0x86,
+ 0x3e, 0x40, 0xed, 0x67, 0x74, 0xe7, 0xbc, 0x2c, 0x2e, 0x74, 0xeb, 0xbf,
+ 0x9b, 0xd6, 0x11, 0xe9, 0xdf, 0xb3, 0x76, 0x46, 0xb1, 0x30, 0xda, 0x5f,
+ 0x4a, 0x9b, 0x1f, 0xd2, 0xa2, 0x52, 0x48, 0x63, 0x62, 0x84, 0xb1, 0x55,
+ 0x3b, 0xf3, 0xbc, 0x02, 0xa2, 0xf5, 0x1e, 0xd1, 0x36, 0xdf, 0x5d, 0xc9,
+ 0xdf, 0x80, 0xaf, 0xce, 0x08, 0xb9, 0x3e, 0x59, 0x9f, 0x98, 0x77, 0x47,
+ 0xa7, 0x98, 0x01, 0xed, 0xd9, 0xa1, 0x5c, 0x40, 0xb4, 0x58, 0x70, 0x5f,
+ 0x33, 0x90, 0x13, 0x9d, 0xe8, 0x82, 0x04, 0xe0, 0x50, 0x72, 0x57, 0xc2,
+ 0xf3, 0x0e, 0x9a, 0xdf, 0xde, 0xd6, 0x0e, 0xf2, 0xfa, 0x14, 0x4a, 0x64,
+ 0xbf, 0x56, 0x79, 0x09, 0x43, 0x83, 0x9e, 0xd9, 0x57, 0x40, 0x83, 0xed,
+ 0xca, 0xa3, 0x29, 0x23, 0xdd, 0x0f, 0x1d, 0x7b, 0xef, 0x60, 0x32, 0x4e,
+ 0xcf, 0x70, 0x32, 0x0d, 0xa2, 0xa7, 0x86, 0xb6, 0x8e, 0xbb, 0xcc, 0x1e,
+ 0x38, 0x2e, 0x40, 0x55, 0xee, 0xf7, 0x9a, 0x51, 0xea, 0xc9, 0x94, 0x4f,
+ 0x4c, 0x02, 0x51, 0x25, 0xa3, 0x34, 0xdc, 0x8f, 0x0a, 0x9a, 0xcb, 0xea,
+ 0xa6, 0x22, 0x6d, 0x87, 0xde, 0x01, 0x30, 0x7b, 0x85, 0x9f, 0x08, 0x6a,
+ 0x02, 0x20, 0x12, 0x5b, 0xfe, 0x9f, 0x63, 0xff, 0x98, 0x53, 0x55, 0x57,
+ 0x37, 0x89, 0xe1, 0xf8, 0xc8, 0x8c, 0xca, 0x00, 0x4a, 0xe9, 0xa5, 0x78,
+ 0x9d, 0x99, 0xf2, 0x7f, 0x0b, 0x4c, 0x4a, 0xea, 0xcb, 0xa8, 0x6f, 0x51,
+ 0xc6, 0xd5, 0x5f, 0x55, 0x11, 0xa8, 0x95, 0xeb, 0xd1, 0x90, 0xed, 0x76,
+ 0xdf, 0xb5, 0xae, 0xc9, 0x79, 0x13, 0x45, 0xf9, 0x67, 0x44, 0xbf, 0x69,
+ 0xb0, 0x41, 0x43, 0x3e, 0xb5, 0x24, 0x89, 0x18, 0x74, 0x54, 0x00, 0x1e,
+ 0xcf, 0xa9, 0x05, 0x7a, 0x6d, 0x2f, 0xf0, 0xad, 0x72, 0x4f, 0xc9, 0x59,
+ 0x3d, 0x32, 0x27, 0xe4, 0x22, 0xd2, 0xf6, 0x4c, 0x57, 0xe8, 0xcb, 0xa1,
+ 0x1c, 0x64, 0xe0, 0x28, 0x5a, 0x3a, 0x7b, 0xe2, 0x91, 0x90, 0x68, 0xd4,
+ 0xab, 0xc9, 0x2c, 0x27, 0x9f, 0x54, 0xea, 0x2d, 0x47, 0xc9, 0x93, 0x77,
+ 0x69, 0xdc, 0x74, 0x68, 0x0f, 0x14, 0xa0, 0x2e, 0x74, 0xb0, 0x44, 0xa8,
+ 0xb4, 0x8e, 0xc4, 0x22, 0x0d, 0xfb, 0xce, 0x05, 0x24, 0x64, 0x3b, 0x5e,
+ 0x04, 0xf0, 0xab, 0xc7, 0xfb, 0x8f, 0xfd, 0x39, 0xf1, 0xda, 0x80, 0x40,
+ 0xd6, 0x36, 0x4f, 0xfb, 0x1d, 0x61, 0x2e, 0xee, 0x88, 0xfd, 0x94, 0x8e,
+ 0x85, 0x3d, 0xf1, 0x49, 0x07, 0x14, 0x89, 0xc6, 0xc1, 0xc2, 0x67, 0xa3,
+ 0xdb, 0x35, 0x80, 0x50, 0xb4, 0x74, 0xf7, 0xc5, 0x23, 0x20, 0xd1, 0xa9,
+ 0x57, 0x92, 0x58, 0x4f, 0x3e, 0xa9, 0xd4, 0x5a, 0x8f, 0x93, 0x26, 0xee,
+ 0xd3, 0xb8, 0xe8, 0xd0, 0x1e, 0x29, 0x40, 0x5c, 0xe9, 0x60, 0x89, 0x51,
+ 0x69, 0x1d, 0x88, 0x44, 0x1b, 0xf7, 0x9c, 0x0a, 0x48, 0xc8, 0x76, 0xbc,
+ 0x09, 0xe1, 0x57, 0x8f, 0xf7, 0x1f, 0xfa, 0x73, 0xe3, 0xb5, 0x00, 0x81,
+ 0xac, 0x6c, 0x9f, 0xf6, 0x3a, 0xc2, 0x5d, 0xdd, 0x11, 0xfb, 0x29, 0x1d,
+ 0x0a, 0x7b, 0xe2, 0x92, 0x0e, 0x29, 0x13, 0x8d, 0x83, 0x84, 0xcf, 0x47,
+ 0xb6, 0x6b, 0x00, 0xa1, 0x68, 0xe9, 0xef, 0x8a, 0x46, 0x41, 0xa3, 0x52,
+ 0xaf, 0x24, 0xb0, 0x9e, 0x7d, 0x53, 0xa8, 0xb4, 0x8e, 0xc4, 0x24, 0x5c,
+ 0xd4, 0x05, 0xa8, 0xa3, 0xc1, 0x86, 0x68, 0x50, 0x20, 0x05, 0x02, 0x3a,
+ 0xdf, 0x9b, 0xa0, 0xab, 0x3b, 0xb7, 0x17, 0x31, 0xae, 0xcc, 0xab, 0x25,
+ 0xfd, 0xcd, 0x37, 0xc0, 0xf3, 0x72, 0x03, 0xc1, 0x8d, 0xc1, 0xe5, 0xa9,
+ 0xd9, 0xf1, 0x22, 0x87, 0xea, 0x79, 0xd5, 0xa7, 0xc3, 0x4e, 0x2b, 0xd4,
+ 0x92, 0xba, 0x83, 0x3d, 0x83, 0xb6, 0x8d, 0xb1, 0xaf, 0xe6, 0xfc, 0xd1,
+ 0x80, 0x06, 0x0a, 0x88, 0xa0, 0x54, 0x2c, 0xaf, 0x2f, 0x4b, 0x64, 0x8d,
+ 0xa2, 0x29, 0x3c, 0xec, 0x93, 0x79, 0x16, 0x20, 0x58, 0x84, 0xc0, 0x7b,
+ 0xed, 0x88, 0x0f, 0x37, 0x8b, 0x6b, 0x5e, 0x84, 0x4f, 0x0e, 0x8b, 0x3f,
+ 0x73, 0x3f, 0xfc, 0x4a, 0xea, 0xd8, 0x23, 0x66, 0x80, 0x45, 0x39, 0xa8,
+ 0xa8, 0xd3, 0xd2, 0x3b, 0x55, 0x04, 0x74, 0xb3, 0xea, 0xe8, 0x97, 0xe6,
+ 0xb3, 0x76, 0xd7, 0x25, 0x8c, 0x3e, 0xc6, 0x1e, 0xeb, 0x2f, 0x1f, 0xe7,
+ 0x2e, 0x5f, 0xa2, 0xe9, 0xee, 0xd0, 0xe4, 0x87, 0x1b, 0x05, 0xbf, 0x21,
+ 0x22, 0xd4, 0x0b, 0xd2, 0x7c, 0x4f, 0xb4, 0x42, 0x3b, 0x24, 0x7c, 0x3d,
+ 0x93, 0x5e, 0x47, 0xba, 0xb0, 0xb9, 0x1c, 0x33, 0xfb, 0x1e, 0x33, 0xc0,
+ 0xc6, 0xc4, 0x42, 0x85, 0xb1, 0x60, 0x4d, 0xe1, 0x55, 0xee, 0xb0, 0x1e,
+ 0x8f, 0xd7, 0x11, 0x99, 0x73, 0x1c, 0x0a, 0x7c, 0x64, 0x47, 0xd6, 0x5e,
+ 0xfb, 0x2a, 0xd6, 0xe9, 0xd4, 0x85, 0xc0, 0x1b, 0xfe, 0xbe, 0xe7, 0x64,
+ 0x60, 0xf1, 0x8e, 0x22, 0x03, 0xa6, 0x20, 0xd7, 0xc6, 0x5b, 0x27, 0xd2,
+ 0x28, 0xe4, 0x20, 0x37, 0x7b, 0xeb, 0x05, 0x4e, 0x01, 0x7a, 0x79, 0x6d,
+ 0x12, 0xa5, 0x44, 0x1f, 0xc9, 0x9f, 0x53, 0x44, 0x45, 0x8b, 0x53, 0x32,
+ 0xec, 0xf3, 0x79, 0x75, 0x05, 0xbc, 0x24, 0xc3, 0x4a, 0x27, 0x1e, 0x6c,
+ 0x3d, 0x58, 0x4a, 0xef, 0x45, 0x49, 0xc2, 0x91, 0xe6, 0x65, 0x9f, 0xb6,
+ 0x2a, 0x0e, 0x67, 0xa8, 0x7e, 0xd7, 0x6d, 0x84, 0x50, 0xff, 0x22, 0xb5,
+ 0x16, 0xe3, 0x13, 0x57, 0xb2, 0x58, 0x70, 0x09, 0x78, 0x11, 0xea, 0x2f,
+ 0xaa, 0x92, 0xec, 0x56, 0x07, 0xc8, 0xc3, 0x21, 0xa7, 0x7e, 0xb0, 0x31,
+ 0x15, 0x8b, 0xa4, 0xda, 0xcc, 0x1f, 0xbf, 0x83, 0x9d, 0x5a, 0x7a, 0xdd,
+ 0xa0, 0x09, 0xd4, 0x60, 0x56, 0x2b, 0xaf, 0x91, 0xf6, 0x7a, 0xf3, 0x30,
+ 0x3f, 0x5c, 0x7a, 0x41, 0x4a, 0x58, 0x56, 0x91, 0x1e, 0x04, 0x67, 0x58,
+ 0x34, 0x8e, 0x03, 0xda, 0x7d, 0x23, 0x37, 0xfb, 0xa4, 0xbb, 0x08, 0xa2,
+ 0x0f, 0xa1, 0xf3, 0x52, 0xb9, 0x3e, 0x49, 0xcf, 0x88, 0xb4, 0x1b, 0xff,
+ 0xb4, 0x96, 0x92, 0xa2, 0x8c, 0x9d, 0x41, 0x4c, 0xe2, 0x50, 0x93, 0x0c,
+ 0x2c, 0x63, 0xda, 0xc5, 0xa7, 0x7d, 0x7c, 0xbd, 0x5d, 0x8b, 0x33, 0xf3,
+ 0x25, 0xb6, 0xc6, 0xa4, 0xb4, 0xc7, 0xbc, 0xbc, 0x41, 0x32, 0xe3, 0xe5,
+ 0x35, 0x40, 0x3c, 0x0e, 0x28, 0x05, 0x6e, 0x15, 0x21, 0x3e, 0x58, 0x8e,
+ 0x9d, 0xaf, 0x73, 0x48, 0xc4, 0x91, 0xe9, 0x24, 0x9c, 0x57, 0x41, 0x09,
+ 0xed, 0xcf, 0xa6, 0xd1, 0x83, 0x6f, 0x96, 0x19, 0x1b, 0x77, 0xa3, 0xee,
+ 0x75, 0x36, 0x37, 0xd5, 0xde, 0xc9, 0x3b, 0x36, 0xbc, 0x54, 0x5d, 0x7c,
+ 0x0c, 0x26, 0xd5, 0xb9, 0xb3, 0xb9, 0x55, 0xe4, 0xe1, 0x7f, 0xec, 0x58,
+ 0x90, 0x6e, 0xb6, 0xf1, 0xb7, 0xe4, 0x23, 0x50, 0x8b, 0x14, 0x2f, 0xad,
+ 0x4d, 0x77, 0xe7, 0xcf, 0xc6, 0xab, 0xa6, 0x6d, 0x39, 0xef, 0x26, 0x81,
+ 0x7f, 0xe0, 0x81, 0x75, 0x99, 0xc0, 0xb6, 0x71, 0xd3, 0x29, 0x99, 0x6f,
+ 0xf9, 0x99, 0xcb, 0xd1, 0x57, 0x63, 0xf4, 0x25, 0x1b, 0xf7, 0x57, 0xb0,
+ 0x23, 0xa3, 0x46, 0x77, 0x46, 0xe4, 0x5a, 0xf3, 0x0b, 0xfe, 0x91, 0xb7,
+ 0xa2, 0x9c, 0x98, 0x96, 0x57, 0xc9, 0x83, 0x89, 0x9f, 0x02, 0x43, 0xbf,
+ 0x61, 0x0e, 0x08, 0xfa, 0x66, 0xad, 0x63, 0x94, 0x2a, 0xe9, 0x0a, 0x8b,
+ 0xa5, 0xc5, 0xa3, 0x31, 0xa1, 0xa5, 0x1a, 0x63, 0xfd, 0x0c, 0x7f, 0x07,
+ 0x37, 0x95, 0x94, 0x2b, 0x09, 0x8e, 0x1c, 0xab, 0x72, 0x59, 0xec, 0x92,
+ 0xbe, 0xde, 0x5c, 0xd7, 0x90, 0xf8, 0x2c, 0x66, 0x95, 0xe9, 0xe9, 0xfa,
+ 0xc1, 0xbe, 0x57, 0x21, 0xdf, 0x2a, 0x47, 0x24, 0x0d, 0x07, 0xec, 0x83,
+ 0xd2, 0xae, 0xa9, 0xc6, 0xad, 0x1a, 0x58, 0xa9, 0x54, 0x5d, 0x76, 0x33,
+ 0x1c, 0x85, 0xa1, 0xf2, 0x15, 0x79, 0x68, 0x92, 0x84, 0x1d, 0x8a, 0xe9,
+ 0xbe, 0x63, 0xe0, 0xd7, 0xe2, 0xcc, 0x31, 0xc5, 0x68, 0xcb, 0xaa, 0x8b,
+ 0x67, 0xe9, 0xbe, 0xf3, 0x50, 0xbb, 0xa8, 0xdd, 0x23, 0x5e, 0x14, 0xc3,
+ 0xa8, 0x5f, 0xe4, 0x22, 0xa9, 0x01, 0xdf, 0x7d, 0xe8, 0x0f, 0xcf, 0x84,
+ 0xac, 0xb1, 0x5f, 0x0e, 0xdb, 0x47, 0xe5, 0xda, 0x04, 0xde, 0xb7, 0x19,
+ 0xe9, 0x28, 0x57, 0x43, 0x6e, 0xa8, 0x6b, 0x11, 0x6d, 0x11, 0xa7, 0x8c,
+ 0xd5, 0x45, 0x4c, 0x6e, 0x44, 0x8f, 0x5c, 0x3d, 0x7e, 0x29, 0x94, 0x2e,
+ 0xf1, 0xc0, 0xdd, 0x35, 0x93, 0x56, 0xb2, 0x0e, 0xc3, 0xef, 0x8b, 0x97,
+ 0x2e, 0xa5, 0x5b, 0x5c, 0x39, 0xee, 0x2f, 0x02, 0xd3, 0x41, 0xaa, 0x10,
+ 0x94, 0x0a, 0xe1, 0x24, 0xda, 0x0d, 0xea, 0x01, 0xfb, 0x5d, 0x03, 0x7e,
+ 0x77, 0x27, 0xf5, 0x01, 0xa9, 0x5d, 0x41, 0xab, 0x89, 0x73, 0x57, 0x8e,
+ 0x68, 0x8a, 0xbd, 0x13, 0x1b, 0xad, 0x2e, 0xd1, 0x53, 0xbf, 0xab, 0x3d,
+ 0xe5, 0x8b, 0x0a, 0x3a, 0x11, 0xf1, 0x7b, 0xa9, 0x8c, 0x32, 0x71, 0x34,
+ 0xcf, 0xbb, 0x56, 0xf7, 0xad, 0xc7, 0x15, 0x88, 0x8f, 0xcb, 0x8b, 0x14,
+ 0xb9, 0x8a, 0xe8, 0x33, 0x76, 0x7e, 0x1f, 0xf7, 0xe4, 0x19, 0x96, 0x66,
+ 0x9d, 0x0f, 0xf0, 0x26, 0x8e, 0x79, 0x28, 0xce, 0x21, 0x05, 0xa2, 0xcf,
+ 0x82, 0xaa, 0x64, 0xbe, 0x77, 0x97, 0xff, 0xef, 0x53, 0xee, 0x33, 0x30,
+ 0x69, 0xb6, 0x08, 0x2a, 0x75, 0x4f, 0x76, 0x2c, 0xb8, 0x34, 0xc8, 0xf6,
+ 0xd4, 0x11, 0xee, 0xa7, 0x01, 0x57, 0xfb, 0x0e, 0xc1, 0xf2, 0x3c, 0x42,
+ 0x70, 0xdb, 0xf2, 0x63, 0xaa, 0x10, 0x23, 0x5a, 0xc0, 0xb1, 0x95, 0xd3,
+ 0xe1, 0x4b, 0x00, 0xd5, 0x42, 0xb8, 0x3c, 0xb9, 0xbf, 0xc8, 0xeb, 0xfe,
+ 0x44, 0xb3, 0xee, 0xad, 0xf7, 0xc1, 0xf2, 0x78, 0xf7, 0xa8, 0xe7, 0xd0,
+ 0xdc, 0x10, 0x82, 0x61, 0xa9, 0xcd, 0x02, 0xfd, 0xf4, 0x79, 0xa8, 0xcf,
+ 0x96, 0x86, 0x88, 0xf9, 0xb1, 0x88, 0xa4, 0x02, 0x9f, 0xd5, 0x1f, 0xa6,
+ 0x4d, 0xb4, 0x7e, 0x15, 0x61, 0xf7, 0x33, 0xb1, 0xa3, 0x37, 0x53, 0x9a,
+ 0xa3, 0x6f, 0x3c, 0x40, 0x62, 0x44, 0xe0, 0x10, 0x75, 0x42, 0x64, 0x0d,
+ 0xd9, 0x64, 0xf6, 0x61, 0x4d, 0x34, 0x83, 0x59, 0x9d, 0x7d, 0x63, 0x81,
+ 0xba, 0xf6, 0x56, 0x3a, 0x32, 0x44, 0x1b, 0x16, 0x3a, 0x95, 0x18, 0xd5,
+ 0x12, 0x53, 0xdd, 0xf8, 0xb5, 0x16, 0xda, 0x8d, 0xe7, 0x83, 0x3b, 0x54,
+ 0xac, 0x91, 0xbb, 0xb9, 0x65, 0xdb, 0x40, 0xc1, 0x8c, 0xdc, 0x79, 0x38,
+ 0x43, 0x41, 0xe6, 0x75, 0x38, 0x62, 0x8b, 0xee, 0xba, 0x6f, 0xa3, 0xd0,
+ 0x61, 0xcc, 0xfa, 0xfd, 0x52, 0xc0, 0x51, 0x00, 0xf6, 0xa7, 0x63, 0x49,
+ 0x9e, 0xb8, 0x4c, 0xe7, 0x95, 0x0c, 0xf2, 0x17, 0xdc, 0x5c, 0x50, 0x4f,
+ 0x4c, 0x55, 0x12, 0xb9, 0x12, 0xcd, 0x71, 0xff, 0x4a, 0x41, 0xb1, 0x45,
+ 0x8e, 0xdd, 0xc2, 0xea, 0xbe, 0xa0, 0xff, 0xc2, 0x11, 0x19, 0x07, 0xa9,
+ 0x56, 0x53, 0x6c, 0x3f, 0x88, 0x0f, 0x60, 0xdc, 0x33, 0x5c, 0xa4, 0xa6,
+ 0xc3, 0xd9, 0x12, 0xf3, 0x1d, 0x11, 0xfd, 0xcb, 0x76, 0x83, 0x86, 0xe5,
+ 0x80, 0x92, 0xb4, 0xa5, 0x0c, 0xab, 0xa4, 0x5f, 0xc2, 0xf0, 0x1d, 0x68,
+ 0x9f, 0xcb, 0x88, 0x0c, 0xf4, 0x41, 0xe1, 0xee, 0x70, 0x03, 0x44, 0x9e,
+ 0x22, 0xf3, 0x77, 0x63, 0x70, 0x85, 0xf4, 0x55, 0x0d, 0x3c, 0x49, 0x64,
+ 0x1a, 0x6a, 0x18, 0xdf, 0x8b, 0x1c, 0x18, 0x02, 0x16, 0x73, 0x53, 0x9d,
+ 0x2d, 0x27, 0xbf, 0xb2, 0x61, 0x59, 0x3b, 0x2b, 0xeb, 0x42, 0xcf, 0x15,
+ 0xae, 0x6c, 0xdf, 0x57, 0x70, 0x7e, 0xb9, 0xbe, 0xa1, 0x1d, 0x06, 0x1e,
+ 0x41, 0x59, 0xd3, 0xc5, 0x5d, 0xf9, 0x49, 0x03, 0xb4, 0xe1, 0x92, 0x67,
+ 0x4f, 0xa8, 0xe5, 0x09, 0xd1, 0xc3, 0x46, 0xb2, 0x5b, 0x1e, 0x73, 0xb4,
+ 0x43, 0x84, 0xd3, 0xd0, 0x38, 0xd8, 0xc7, 0x09, 0xec, 0x8f, 0xd5, 0xf7,
+ 0x92, 0x9a, 0x48, 0x15, 0xe5, 0x49, 0x29, 0xc4, 0xc7, 0x97, 0x55, 0x5a,
+ 0xa2, 0x47, 0x19, 0x3a, 0x26, 0xa3, 0x7c, 0x11, 0x15, 0xf3, 0xd1, 0xb7,
+ 0x13, 0x34, 0x64, 0xd9, 0x28, 0x8a, 0xf7, 0xe0, 0x63, 0x76, 0xc7, 0xea,
+ 0x33, 0xb1, 0x39, 0xe5, 0xe3, 0xf7, 0xf1, 0x32, 0xd6, 0x43, 0x2a, 0x7e,
+ 0x55, 0xf6, 0x6a, 0x4f, 0x7a, 0x93, 0x64, 0x11, 0x39, 0x9e, 0xd0, 0x4d,
+ 0x32, 0x1e, 0x0f, 0xc1, 0x13, 0xaa, 0x30, 0x5c, 0xdf, 0x93, 0xbb, 0x29,
+ 0xa9, 0xcf, 0xed, 0xf1, 0x34, 0x37, 0xca, 0x7f, 0xc9, 0x66, 0xcc, 0xe8,
+ 0xb0, 0x99, 0x59, 0x5f, 0x75, 0xe6, 0x15, 0xdb, 0x0c, 0xba, 0x98, 0x60,
+ 0x75, 0x8f, 0x39, 0x04, 0xfc, 0x66, 0x53, 0xb0, 0x4d, 0xaa, 0xb3, 0x80,
+ 0xad, 0x24, 0xa2, 0x75, 0xc9, 0x55, 0xb5, 0xcf, 0xfc, 0x1a, 0x8c, 0x9d,
+ 0x44, 0x16, 0xc0, 0x26, 0xe7, 0xd3, 0xe3, 0x59, 0x1c, 0xc2, 0xad, 0xcc,
+ 0xf7, 0x9d, 0x3c, 0xb4, 0x99, 0xf0, 0x01, 0x6e, 0xd5, 0x2c, 0x71, 0x11,
+ 0xfe, 0x42, 0x25, 0x25, 0x7f, 0xcb, 0xae, 0x34, 0xad, 0x4f, 0x8a, 0xc3,
+ 0x09, 0x0b, 0xcd, 0x68, 0x64, 0x08, 0x3c, 0xda, 0x84, 0x66, 0x9b, 0xa7,
+ 0x22, 0x84, 0xd5, 0xf6, 0x6a, 0xb3, 0x85, 0xfa, 0xbc, 0xab, 0x14, 0xbc,
+ 0x25, 0x24, 0x72, 0x59, 0x7c, 0xbe, 0xd9, 0xea, 0xa2, 0x0c, 0x67, 0xc7,
+ 0x93, 0x33, 0x7a, 0xd1, 0xe7, 0x49, 0x83, 0xdb, 0x39, 0x40, 0xf6, 0x48,
+ 0x62, 0x26, 0xae, 0xb3, 0xb1, 0x00, 0x59, 0x68, 0xf7, 0x55, 0x75, 0x6f,
+ 0xae, 0x62, 0x9c, 0x9e, 0xf0, 0xa3, 0x33, 0xea, 0xc7, 0x0b, 0xae, 0x2b,
+ 0x3d, 0xd8, 0xea, 0xf2, 0x0c, 0x1d, 0x7c, 0xbf, 0xff, 0x63, 0xf3, 0x5a,
+ 0xfd, 0x71, 0xeb, 0xbf, 0x59, 0x35, 0x2f, 0xd6, 0x5b, 0xe6, 0xb1, 0x07,
+ 0x23, 0xa3, 0xa8, 0xcd, 0x1d, 0x62, 0xff, 0x30, 0x0f, 0xe0, 0xc3, 0x46,
+ 0x6e, 0x23, 0x90, 0x5c, 0xfc, 0xb2, 0xf6, 0xe6, 0xe2, 0x18, 0xbb, 0x13,
+ 0xf9, 0x24, 0xb6, 0x77, 0xdd, 0xc6, 0xfb, 0x5d, 0xf3, 0x51, 0xa7, 0xbc,
+ 0xea, 0x42, 0x11, 0x38, 0x3f, 0x10, 0x7d, 0xf4, 0xb9, 0xa8, 0xe3, 0x80,
+ 0x5b, 0xf9, 0x37, 0x68, 0xae, 0x2b, 0x06, 0x14, 0xdd, 0xab, 0xe6, 0x16,
+ 0x69, 0x9b, 0x41, 0xd8, 0x54, 0xae, 0x07, 0xd8, 0xa2, 0x99, 0x2e, 0x30,
+ 0xb2, 0x33, 0xc1, 0xb5, 0xf5, 0x60, 0x64, 0xbb, 0x8d, 0x6e, 0x58, 0x1b,
+ 0x93, 0xc1, 0x5c, 0x32, 0x4c, 0x59, 0xf4, 0x57, 0xd8, 0xfe, 0x41, 0xf7,
+ 0x17, 0x02, 0xc1, 0xbd, 0x62, 0x2e, 0xd5, 0x58, 0xce, 0xf7, 0x7b, 0x06,
+ 0xdf, 0x2c, 0x32, 0x36, 0xef, 0x47, 0xdc, 0xf2, 0x63, 0x7e, 0x16, 0x1a,
+ 0x58, 0x2a, 0xa5, 0xfd, 0xa0, 0xa2, 0x0b, 0x7e, 0x07, 0x67, 0x11, 0xb6,
+ 0xd1, 0x21, 0xb3, 0x67, 0x1c, 0x53, 0xc0, 0xd9, 0xce, 0xd1, 0x4b, 0x39,
+ 0x3d, 0xcf, 0xb5, 0xe7, 0x02, 0x71, 0x02, 0xff, 0xbc, 0x59, 0x76, 0x60,
+ 0xb4, 0x50, 0x14, 0xdd, 0xf0, 0x2d, 0x55, 0x2e, 0x00, 0xc0, 0x21, 0x7a,
+ 0x34, 0xb2, 0xe2, 0x74, 0x5b, 0x26, 0x62, 0x6a, 0x95, 0x31, 0x13, 0xf9,
+ 0xa3, 0xd9, 0x8b, 0xfa, 0x5c, 0xaa, 0x61, 0xb3, 0x88, 0x85, 0x52, 0x87,
+ 0x61, 0x51, 0xa9, 0xfc, 0x09, 0x19, 0xbe, 0xa1, 0x95, 0x31, 0xe0, 0x89,
+ 0x95, 0x4d, 0xdd, 0xfb, 0xdd, 0x2d, 0x5e, 0x42, 0x2c, 0xe8, 0x7b, 0x57,
+ 0x9e, 0xb7, 0xed, 0x02, 0xc3, 0x2b, 0x0a, 0x40, 0x97, 0xaf, 0xad, 0x38,
+ 0x25, 0x11, 0x49, 0x2d, 0x1b, 0xce, 0xf8, 0x1e, 0x8c, 0x97, 0xbc, 0x8f,
+ 0x7e, 0x30, 0x81, 0x21, 0x0a, 0x6e, 0x18, 0x4f, 0x18, 0xea, 0x53, 0xf6,
+ 0xf6, 0x57, 0xcc, 0x8f, 0xe5, 0x39, 0xac, 0xe2, 0x4b, 0x50, 0x9d, 0x91,
+ 0xfe, 0x28, 0x27, 0x66, 0x58, 0xb5, 0x4c, 0xdf, 0x14, 0x84, 0x81, 0xf1,
+ 0xca, 0xb8, 0x4c, 0x56, 0xa6, 0x1c, 0xb8, 0xd0, 0xa5, 0x8f, 0x5f, 0xc2,
+ 0x3b, 0xa1, 0x66, 0x40, 0x02, 0xfe, 0x80, 0x2c, 0xe4, 0x8b, 0xd6, 0xda,
+ 0x52, 0xc1, 0x46, 0x24, 0x72, 0x13, 0x88, 0x24, 0x70, 0x51, 0xd6, 0xc9,
+ 0x28, 0x9c, 0x21, 0x24, 0xa7, 0xfa, 0xa3, 0x21, 0x06, 0x3b, 0xb5, 0x2b,
+ 0xa6, 0x0c, 0x77, 0xda, 0xaa, 0x84, 0x91, 0xc4, 0xbc, 0x9f, 0x83, 0x5a,
+ 0x10, 0xec, 0xf6, 0xc5, 0xf3, 0x01, 0x4f, 0x0f, 0xcc, 0xfe, 0x9c, 0x49,
+ 0x42, 0x4d, 0xcd, 0x7e, 0xc2, 0x17, 0x3d, 0x4a, 0x83, 0x53, 0xf4, 0x0c,
+ 0x37, 0x35, 0xd7, 0x87, 0x01, 0xaa, 0x3d, 0x39, 0x9d, 0x16, 0x11, 0x86,
+ 0x96, 0x8a, 0xc5, 0xd0, 0xaf, 0xd5, 0xfd, 0xc8, 0x23, 0x9b, 0xba, 0x8a,
+ 0xb7, 0x34, 0x9a, 0xdd, 0xd0, 0x5e, 0x2a, 0xba, 0xbf, 0x50, 0xac, 0xeb,
+ 0x0c, 0x6f, 0x2e, 0x54, 0x0a, 0x60, 0x88, 0x5e, 0xf5, 0xac, 0x4a, 0xc4,
+ 0x9d, 0xf9, 0x40, 0x88, 0x07, 0xb0, 0x81, 0xb3, 0x22, 0xeb, 0x07, 0xf7,
+ 0x44, 0x8f, 0x5f, 0xb6, 0x97, 0x74, 0x74, 0x6f, 0xee, 0x18, 0x1d, 0x29,
+ 0xcc, 0x24, 0x44, 0x65, 0x94, 0xc6, 0x54, 0x66, 0x1e, 0xae, 0x65, 0x21,
+ 0xa1, 0x0a, 0xe2, 0x82, 0xb3, 0x9c, 0xe4, 0x6a, 0xde, 0xa7, 0x06, 0x9e,
+ 0xf5, 0xb6, 0x94, 0xb0, 0x51, 0x89, 0x1c, 0x79, 0x78, 0x33, 0x99, 0x24,
+ 0x77, 0xa9, 0x53, 0xfe, 0x79, 0x02, 0xb5, 0x6d, 0xe0, 0x30, 0xbd, 0x79,
+ 0x4c, 0xdb, 0x23, 0xaf, 0x77, 0x05, 0x95, 0xa8, 0x30, 0x8b, 0x20, 0xce,
+ 0x6b, 0x6d, 0xa8, 0x8d, 0x6f, 0xfd, 0x17, 0x73, 0x75, 0xd7, 0xdc, 0x46,
+ 0xb6, 0x10, 0xc1, 0x84, 0x0a, 0xf6, 0xcd, 0x21, 0x29, 0x0c, 0xb0, 0x0a,
+ 0x91, 0xe5, 0xc3, 0xc3, 0x5f, 0x09, 0x96, 0x2e, 0x7f, 0xd0, 0x24, 0xc1,
+ 0x15, 0x70, 0x8d, 0x41, 0x74, 0x40, 0x47, 0x97, 0x19, 0xcc, 0xa0, 0x55,
+ 0x5f, 0x04, 0x8b, 0x33, 0xcb, 0xff, 0x2b, 0x51, 0x79, 0x05, 0x77, 0x98,
+ 0x78, 0x72, 0x1c, 0x36, 0xdc, 0xee, 0x38, 0x35, 0xa1, 0x52, 0xe8, 0x29,
+ 0x13, 0x26, 0xf8, 0x9c, 0xb1, 0x29, 0xe2, 0x88, 0x78, 0x97, 0xb7, 0x30,
+ 0xaf, 0xfd, 0xbd, 0x34, 0x40, 0x42, 0xd5, 0x69, 0x0a, 0x0f, 0x21, 0x91,
+ 0xa0, 0x6f, 0x61, 0x2b, 0xb4, 0x21, 0x67, 0x37, 0xbe, 0x53, 0x2e, 0x18,
+ 0xd0, 0xc8, 0x0c, 0x3d, 0xca, 0xe9, 0x18, 0x70, 0x80, 0x34, 0xc4, 0x75,
+ 0xd8, 0xc2, 0x38, 0xae, 0x1c, 0x28, 0x49, 0x19, 0xc1, 0x75, 0xa0, 0x26,
+ 0xa6, 0x3e, 0x21, 0x12, 0xd1, 0x15, 0x9e, 0xfa, 0xc7, 0xbd, 0xf3, 0x55,
+ 0xa9, 0xb8, 0x71, 0xcd, 0x18, 0x3c, 0x14, 0xac, 0xde, 0x37, 0xaf, 0x01,
+ 0x5a, 0x5a, 0x17, 0xda, 0xc4, 0x99, 0x89, 0xc2, 0xdf, 0x45, 0x3f, 0x3d,
+ 0x8c, 0x3f, 0xf6, 0xd3, 0xa5, 0x81, 0x49, 0xe9, 0x65, 0x0b, 0x1a, 0x05,
+ 0x01, 0x4d, 0xd1, 0x56, 0xe1, 0x2a, 0x59, 0x6d, 0x9a, 0x7d, 0xc5, 0x3c,
+ 0xc8, 0x79, 0xae, 0x4f, 0xd4, 0x93, 0x10, 0x6f, 0xeb, 0xbe, 0x83, 0xe1,
+ 0x7a, 0xf0, 0x6c, 0xdd, 0x41, 0xe5, 0xd3, 0xac, 0x88, 0x51, 0xd7, 0x52,
+ 0x2e, 0xfd, 0x7a, 0x0d, 0x29, 0x74, 0xf6, 0x5d, 0x27, 0x1f, 0x82, 0xcc,
+ 0x16, 0xea, 0xae, 0xbe, 0xde, 0xa3, 0xa9, 0x9a, 0xa6, 0x92, 0x48, 0x25,
+ 0xbc, 0x7a, 0xc9, 0x71, 0xc4, 0xd9, 0x35, 0x6d, 0x17, 0x40, 0x43, 0xc5,
+ 0xb6, 0xbf, 0xd0, 0x0f, 0x44, 0xdc, 0xa6, 0xd7, 0x83, 0xbc, 0x68, 0x7c,
+ 0xa6, 0x4e, 0x18, 0x2a, 0x47, 0x3a, 0xda, 0x90, 0x7c, 0xd4, 0x89, 0x2c,
+ 0x9c, 0xff, 0xdf, 0x9d, 0x9b, 0x66, 0x96, 0x5b, 0xda, 0x51, 0x1d, 0x25,
+ 0x98, 0x3f, 0xe7, 0x4c, 0x0a, 0xa2, 0xde, 0x73, 0xbd, 0xe2, 0x11, 0x2e,
+ 0x7e, 0x47, 0x39, 0xb8, 0xee, 0xe6, 0xd1, 0x89, 0x76, 0x4c, 0xaa, 0x25,
+ 0x6c, 0xbc, 0xab, 0xbf, 0x35, 0xcb, 0x5f, 0xbc, 0xef, 0x87, 0xec, 0x1c,
+ 0x5d, 0xf6, 0x8b, 0x1a, 0x70, 0x9a, 0xa8, 0xd4, 0x6b, 0x7b, 0x84, 0x4a,
+ 0x64, 0x0d, 0xd8, 0x40, 0x78, 0x0d, 0x4c, 0xed, 0xa1, 0x2b, 0x68, 0xe0,
+ 0xd9, 0xd0, 0x5c, 0xf1, 0x82, 0x51, 0x27, 0x52, 0xf6, 0x07, 0x4d, 0xb4,
+ 0x58, 0x22, 0xad, 0xeb, 0x60, 0x9b, 0xe9, 0x61, 0x91, 0xb7, 0x7a, 0x3e,
+ 0xe1, 0xc9, 0x8e, 0x7e, 0x6c, 0x9a, 0x74, 0x7d, 0xce, 0x84, 0x33, 0xaa,
+ 0x2a, 0x5f, 0xa9, 0xe3, 0x03, 0xd3, 0x8b, 0x67, 0x2d, 0x9f, 0xdc, 0xa3,
+ 0xfd, 0x54, 0x95, 0xb3, 0x15, 0x03, 0x7c, 0x03, 0x30, 0x95, 0x2c, 0xeb,
+ 0x49, 0x84, 0xd1, 0x31, 0x62, 0x88, 0x33, 0x82, 0x73, 0x70, 0xd0, 0x27,
+ 0x04, 0x60, 0xa8, 0x4a, 0xb3, 0x03, 0x69, 0x9b, 0x6e, 0x5b, 0x1c, 0x5e,
+ 0xda, 0xa8, 0x39, 0xd8, 0xa2, 0xbc, 0xb4, 0xa9, 0x62, 0x96, 0x06, 0x74,
+ 0x1d, 0x08, 0x1e, 0x06, 0xfa, 0x07, 0x00, 0xfa, 0x59, 0xfb, 0xa5, 0x73,
+ 0x66, 0x34, 0x89, 0xf3, 0xc9, 0xb4, 0x15, 0x83, 0x0d, 0x54, 0x1e, 0x7a,
+ 0xcc, 0xfb, 0x99, 0x6c, 0x7a, 0xc5, 0xfb, 0xb8, 0xa4, 0xa2, 0xeb, 0xc0,
+ 0x96, 0x4e, 0x14, 0x32, 0x05, 0xca, 0x85, 0xdd, 0xa8, 0xdd, 0xfc, 0x7c,
+ 0xf0, 0x05, 0x1c, 0x2d, 0xd4, 0x1e, 0x28, 0x05, 0x17, 0x03, 0xd4, 0xb0,
+ 0xde, 0xc4, 0x60, 0xd7, 0x39, 0x46, 0x2c, 0x6f, 0x29, 0x98, 0xd1, 0xb4,
+ 0xe9, 0x52, 0xe3, 0xb8, 0x8b, 0x9e, 0xf3, 0x80, 0x5f, 0xf7, 0x22, 0x01,
+ 0x13, 0xea, 0x50, 0x65, 0x0a, 0xdc, 0x1a, 0x81, 0xd3, 0x0b, 0x3a, 0x0f,
+ 0xbb, 0x2d, 0x1d, 0xa6, 0x9d, 0x03, 0xa4, 0x43, 0xc3, 0xc8, 0x9f, 0x41,
+ 0xdd, 0x12, 0xd9, 0x2e, 0x48, 0x41, 0xfd, 0x93, 0x25, 0xfc, 0x7b, 0xae,
+ 0x1e, 0xa0, 0x18, 0xeb, 0xaf, 0xc6, 0x04, 0x3b, 0x10, 0x04, 0xd2, 0x7b,
+ 0x6c, 0x65, 0xed, 0x27, 0xdc, 0xe0, 0xa0, 0x39, 0x36, 0x95, 0xdc, 0x14,
+ 0xe2, 0x6a, 0xdc, 0xb7, 0x20, 0x0f, 0x85, 0xd3, 0x54, 0x7e, 0x62, 0xc3,
+ 0x1f, 0xad, 0xaa, 0x9d, 0x74, 0xd9, 0x36, 0x03, 0x55, 0x78, 0x54, 0xb6,
+ 0xc7, 0x66, 0x25, 0x98, 0xec, 0x9b, 0xb5, 0x4d, 0x57, 0x23, 0x05, 0x3f,
+ 0x6c, 0x72, 0x90, 0xa4, 0x61, 0x4c, 0xae, 0x1f, 0xd9, 0x51, 0xde, 0x12,
+ 0xa2, 0xe5, 0x0f, 0xd9, 0x9d, 0xac, 0x8b, 0x1e, 0x1c, 0x5a, 0x99, 0x06,
+ 0x00, 0xaa, 0xfa, 0x15, 0xd4, 0xa9, 0x71, 0x93, 0x0b, 0x21, 0xd7, 0xbf,
+ 0x0a, 0x56, 0x21, 0xc8, 0x5d, 0x37, 0x80, 0xb8, 0xdb, 0x83, 0xd3, 0xa9,
+ 0x30, 0x59, 0xfd, 0x15, 0x0a, 0x72, 0x88, 0xf3, 0x39, 0x4a, 0x6a, 0x80,
+ 0x86, 0x8e, 0xf9, 0x8b, 0x6e, 0x2e, 0x23, 0x71, 0x20, 0xeb, 0x37, 0x67,
+ 0x30, 0x56, 0x75, 0xdd, 0x1a, 0xfc, 0x25, 0x48, 0x9a, 0xb6, 0x72, 0x92,
+ 0x2f, 0x63, 0x3d, 0xf9, 0x8b, 0x2e, 0x1c, 0xce, 0xc4, 0x9f, 0x19, 0x11,
+ 0x30, 0x9b, 0xf1, 0xfb, 0xdb, 0x5a, 0x05, 0x16, 0xf6, 0xea, 0x7b, 0x52,
+ 0x25, 0x56, 0x15, 0xd8, 0x47, 0xe6, 0x8d, 0xac, 0x93, 0xa3, 0x1e, 0xe0,
+ 0x5b, 0xf5, 0x38, 0x14, 0xe3, 0xa2, 0x8b, 0x0f, 0x90, 0xb4, 0x6c, 0xe9,
+ 0xfb, 0xd1, 0x22, 0x4a, 0x06, 0x1d, 0x9d, 0x89, 0x61, 0x2c, 0x85, 0x4a,
+ 0xc4, 0x0b, 0x66, 0x01, 0xea, 0xf1, 0x4d, 0x3e, 0x0d, 0x45, 0xaf, 0x1d,
+ 0xea, 0x51, 0xd1, 0x5d, 0xce, 0xd4, 0xc7, 0xb3, 0x59, 0x0a, 0x5b, 0xc5,
+ 0xc8, 0x4e, 0x8a, 0x5d, 0x55, 0x36, 0xd3, 0xc3, 0x64, 0x1f, 0x00, 0x4d,
+ 0x8e, 0x2f, 0xd0, 0xd9, 0x6c, 0xcd, 0xeb, 0xf0, 0x67, 0xf7, 0x5d, 0x77,
+ 0x50, 0x78, 0xae, 0x80, 0x13, 0xe6, 0x3b, 0x90, 0xd4, 0x92, 0x2d, 0xd4,
+ 0x36, 0x63, 0x0d, 0xf7, 0x09, 0xb1, 0x75, 0xd4, 0xb1, 0xe9, 0xb1, 0x80,
+ 0xfb, 0xe5, 0x5a, 0xd5, 0x41, 0x9a, 0x92, 0xce, 0xfc, 0xa5, 0x5f, 0x65,
+ 0x8a, 0x11, 0xf0, 0x0a, 0x6b, 0x93, 0x0c, 0xdc, 0x00, 0xdf, 0x29, 0xe1,
+ 0x86, 0x4e, 0xf2, 0x1f, 0xb4, 0x5d, 0x6f, 0xe8, 0xe5, 0x3a, 0xe7, 0x40,
+ 0x12, 0xdd, 0x84, 0xee, 0x28, 0xa3, 0x19, 0xf4, 0xd3, 0xa6, 0x59, 0xb0,
+ 0x7e, 0xfd, 0xc4, 0x25, 0x11, 0x60, 0xda, 0xa3, 0x52, 0x0a, 0xa1, 0x93,
+ 0x2b, 0xf0, 0x43, 0x49, 0x09, 0xa8, 0xc7, 0x26, 0x39, 0xf9, 0xb2, 0x69,
+ 0xd1, 0xf7, 0x0e, 0x4c, 0x73, 0xf3, 0x64, 0xd3, 0xa3, 0xee, 0x75, 0xc0,
+ 0x1e, 0x86, 0x18, 0x75, 0xf9, 0xda, 0xed, 0xf6, 0xc2, 0x74, 0x06, 0xf2,
+ 0x4a, 0x09, 0x54, 0xb2, 0x9e, 0x40, 0xf8, 0x5e, 0x45, 0xb0, 0x9d, 0x00,
+ 0xb8, 0x5b, 0xcb, 0x91, 0x0e, 0xd3, 0xec, 0xaf, 0x86, 0xc1, 0x7c, 0xbf,
+ 0xb6, 0x88, 0xee, 0x3f, 0xd4, 0x39, 0xe1, 0x6a, 0x27, 0x84, 0x9f, 0xba,
+ 0x71, 0x13, 0x7a, 0x29, 0x68, 0xb6, 0xed, 0x8a, 0x02, 0xc5, 0x93, 0x77,
+ 0xa7, 0x78, 0x15, 0xbb, 0xb7, 0x33, 0x0f, 0x17, 0xce, 0xf2, 0xd9, 0xb8,
+ 0x2e, 0x7f, 0x1d, 0xed, 0x0a, 0x61, 0x8e, 0x2d, 0x54, 0x79, 0x0f, 0x4a,
+ 0x2a, 0xf3, 0x03, 0x73, 0x66, 0x04, 0x02, 0x76, 0xba, 0x09, 0x04, 0xbb,
+ 0x05, 0x1b, 0x81, 0x2d, 0x7f, 0x49, 0xaf, 0x2f, 0x6c, 0xe2, 0x82, 0xeb,
+ 0xd6, 0x16, 0x9d, 0xbc, 0xcc, 0x94, 0xba, 0xab, 0x43, 0x8d, 0x57, 0x52,
+ 0x77, 0x7e, 0x11, 0x10, 0xfd, 0x91, 0x06, 0x59, 0x8e, 0x14, 0x72, 0x10,
+ 0x88, 0x74, 0xa4, 0x0d, 0xbe, 0x58, 0x64, 0x6d, 0xde, 0x8f, 0xb8, 0x72,
+ 0x63, 0x9f, 0x9b, 0x26, 0x9d, 0x1f, 0x73, 0xb5, 0xa6, 0x94, 0x04, 0x9a,
+ 0xd4, 0xee, 0xd8, 0x4e, 0x80, 0xdd, 0x0f, 0x56, 0x53, 0x35, 0x84, 0x29,
+ 0xa1, 0x31, 0xfa, 0xa2, 0xee, 0xc6, 0x30, 0x3f, 0xee, 0x86, 0x26, 0xac,
+ 0xea, 0xd0, 0x18, 0x26, 0xc8, 0xe8, 0x3e, 0x93, 0x93, 0x2b, 0x40, 0x5d,
+ 0x84, 0xfc, 0xca, 0x70, 0x31, 0xaf, 0x1e, 0xa5, 0x0d, 0x6a, 0xb7, 0xb5,
+ 0x2d, 0xe3, 0x6a, 0xfd, 0x8e, 0xe7, 0x30, 0x7a, 0xa8, 0x96, 0x27, 0x03,
+ 0x6f, 0x68, 0x4e, 0x10, 0x97, 0xf2, 0x59, 0x9f, 0xfd, 0x6a, 0x95, 0x0e,
+ 0xf0, 0x99, 0x97, 0xfd, 0xa5, 0x0d, 0xfc, 0x56, 0x1f, 0x42, 0xd3, 0x31,
+ 0xab, 0x18, 0x4f, 0x83, 0x20, 0xc1, 0x51, 0x0d, 0x32, 0x47, 0x27, 0xc6,
+ 0xc1, 0x0f, 0x17, 0x61, 0x75, 0x98, 0xa3, 0x7f, 0xf0, 0x04, 0x88, 0x8c,
+ 0x83, 0xd6, 0xdf, 0x78, 0x16, 0xb0, 0xfe, 0xb9, 0x29, 0xf8, 0xb9, 0x0b,
+ 0x5a, 0x20, 0xa7, 0xa4, 0x12, 0x60, 0xf6, 0x65, 0xe2, 0x31, 0xee, 0x91,
+ 0x6f, 0xd8, 0xd0, 0xba, 0xe3, 0xfc, 0x10, 0x28, 0xd9, 0x9d, 0xd5, 0x42,
+ 0x58, 0xb9, 0x44, 0x3f, 0xa6, 0x89, 0xfb, 0xe2, 0x9f, 0x93, 0xcf, 0xea,
+ 0x4e, 0x5d, 0x2b, 0xa1, 0x4b, 0xb0, 0x58, 0x62, 0x4f, 0x47, 0xfa, 0x70,
+ 0xd9, 0x8e, 0xeb, 0x9b, 0x88, 0x15, 0x87, 0xaa, 0xac, 0xab, 0x95, 0x3d,
+ 0x48, 0x73, 0xe3, 0x0b, 0xf2, 0x75, 0x45, 0x16, 0xfe, 0x06, 0xd6, 0xaa,
+ 0x64, 0xe0, 0xae, 0xa1, 0x6e, 0x93, 0xa6, 0x65, 0x60, 0xf7, 0x50, 0x2b,
+ 0x7a, 0x69, 0x9c, 0x78, 0xaa, 0x6e, 0x21, 0x62, 0x0e, 0x85, 0xd7, 0x39,
+ 0xd7, 0x08, 0x2b, 0xea, 0x7e, 0x91, 0xa9, 0xd1, 0x89, 0x80, 0xcf, 0xef,
+ 0x70, 0x56, 0x6b, 0x2d, 0xe4, 0xc9, 0x1b, 0xee, 0xac, 0x17, 0xc9, 0xdb,
+ 0x47, 0xdd, 0x8a, 0xe0, 0xb7, 0x14, 0xe1, 0xe2, 0x0a, 0xe1, 0xb4, 0x9a,
+ 0xe4, 0x94, 0xcc, 0x41, 0x97, 0x0b, 0x60, 0x9f, 0x9d, 0xe3, 0xa7, 0xd4,
+ 0x33, 0x0b, 0x21, 0x19, 0xbd, 0x04, 0xb9, 0xdf, 0xc1, 0x41, 0x74, 0xe3,
+ 0x4d, 0x4a, 0x9b, 0x7f, 0x73, 0x09, 0xa2, 0xd0, 0x32, 0xb6, 0x78, 0x92,
+ 0x29, 0x7d, 0x6c, 0x00, 0x4a, 0x3b, 0x36, 0xb6, 0xd7, 0x14, 0x34, 0x19,
+ 0x42, 0xe6, 0xd5, 0xc8, 0x34, 0x1c, 0x6c, 0x29, 0xc1, 0x0f, 0x9a, 0x50,
+ 0x17, 0x43, 0xc0, 0xff, 0x28, 0xc5, 0xff, 0x9a, 0x03, 0x4f, 0x4a, 0x4a,
+ 0xe7, 0x5d, 0x55, 0xd1, 0x98, 0xd3, 0xdf, 0xfa, 0xf8, 0x12, 0x0c, 0x63,
+ 0x3d, 0xec, 0xe1, 0x8a, 0x0b, 0xd2, 0xc1, 0x84, 0x84, 0xc4, 0xc5, 0xea,
+ 0xa8, 0x6e, 0xff, 0x19, 0xe1, 0x3f, 0x5b, 0xf2, 0x61, 0x90, 0xc2, 0x8e,
+ 0x6f, 0x38, 0x7e, 0xb0, 0x18, 0xf8, 0x36, 0xc0, 0xec, 0x88, 0x38, 0xa2,
+ 0xf3, 0xe7, 0x2e, 0x3b, 0xcd, 0xe9, 0xd8, 0x9f, 0x16, 0x40, 0x77, 0xcd,
+ 0x84, 0x1c, 0xce, 0xe9, 0x11, 0xd4, 0xe4, 0x77, 0x16, 0xd4, 0xe6, 0xe0,
+ 0x79, 0xd8, 0xb4, 0x18, 0x14, 0xdc, 0x2a, 0xde, 0x73, 0xb9, 0xfd, 0x2c,
+ 0x45, 0xed, 0xa6, 0xb6, 0x96, 0x0c, 0x0c, 0x8c, 0xc2, 0x93, 0x29, 0x58,
+ 0x20, 0x81, 0x40, 0x81, 0x1f, 0x73, 0xb5, 0xa6, 0x94, 0x00, 0xf8, 0x5e,
+ 0x94, 0x95, 0xa0, 0xaa, 0x26, 0xa2, 0x61, 0xf8, 0x0e, 0x12, 0x40, 0xf8,
+ 0x5d, 0xc7, 0x8a, 0x15, 0x6f, 0xea, 0x9d, 0xd4, 0xfd, 0xe1, 0x9c, 0x1b,
+ 0x58, 0xe6, 0x12, 0xfc, 0xd5, 0xb8, 0x92, 0x5d, 0x90, 0x7c, 0x1b, 0x85,
+ 0x21, 0x8b, 0xe3, 0x87, 0x6f, 0x4e, 0x7b, 0x16, 0xfd, 0x85, 0xf8, 0x1d,
+ 0xda, 0xaf, 0x87, 0x33, 0x08, 0xf3, 0xde, 0xc5, 0x6f, 0xe1, 0x64, 0xc0,
+ 0xa9, 0x80, 0x55, 0x9c, 0xca, 0xe9, 0xac, 0x9b, 0x01, 0xe1, 0x8f, 0xfc,
+ 0x79, 0x86, 0x9a, 0x53, 0x55, 0x95, 0x97, 0xb3, 0x02, 0x4a, 0x3b, 0x63,
+ 0x09, 0x23, 0x5d, 0xbd, 0xc3, 0x02, 0xf8, 0x01, 0x4a, 0xea, 0x18, 0xe7,
+ 0xd1, 0x18, 0x8a, 0x38, 0x4b, 0x24, 0xd6, 0x7a, 0x68, 0x58, 0x1d, 0x8c,
+ 0x7f, 0x67, 0x8a, 0x5d, 0x3c, 0x4b, 0x5f, 0xc2, 0x32, 0xca, 0xe9, 0x74,
+ 0xeb, 0x54, 0x4f, 0x31, 0xc1, 0x23, 0x98, 0x59, 0x53, 0x5e, 0x73, 0xea,
+ 0x6e, 0x81, 0x20, 0x71, 0xc7, 0x41, 0x98, 0x35, 0x76, 0xe9, 0xe0, 0x08,
+ 0xf6, 0x5b, 0x0e, 0x3b, 0x1c, 0x77, 0xc6, 0x8b, 0xdd, 0x2f, 0x11, 0xc2,
+ 0xee, 0xb9, 0x34, 0xbd, 0xe0, 0x7c, 0x0b, 0x18, 0x28, 0x62, 0x5a, 0xc3,
+ 0x76, 0x91, 0x31, 0x8d, 0x81, 0x46, 0xac, 0xf2, 0xbc, 0xdb, 0x7e, 0x62,
+ 0x20, 0x75, 0x98, 0xad, 0x8f, 0x8f, 0x5c, 0x6f, 0xe0, 0x4d, 0xe3, 0x2a,
+ 0x4b, 0xc3, 0xb3, 0x38, 0x75, 0x55, 0x6c, 0xba, 0xa6, 0xbf, 0xe3, 0x94,
+ 0x48, 0x57, 0x01, 0x0f, 0x48, 0xb1, 0x4d, 0x9b, 0xd4, 0xfa, 0x9d, 0xf1,
+ 0xe4, 0xbf, 0x7a, 0x45, 0x0e, 0x26, 0xc0, 0xda, 0xae, 0x17, 0x96, 0xcc,
+ 0x6c, 0xf0, 0x94, 0x41, 0x51, 0xcb, 0x01, 0x0e, 0xad, 0x1b, 0xbf, 0x40,
+ 0x78, 0x39, 0x4b, 0xeb, 0x9b, 0xee, 0xed, 0xd8, 0x21, 0x45, 0x97, 0x16,
+ 0x52, 0x79, 0x4b, 0x14, 0xd8, 0x3f, 0x1d, 0x52, 0x19, 0xe8, 0x12, 0x92,
+ 0xa5, 0xfe, 0x4c, 0x5a, 0x65, 0x46, 0x0d, 0x2e, 0x40, 0x04, 0xec, 0xda,
+ 0x47, 0xc6, 0x12, 0x6f, 0xbd, 0xab, 0x0e, 0xc7, 0xb8, 0x50, 0xab, 0xc5,
+ 0xb7, 0xe7, 0x15, 0xd1, 0xc2, 0xe3, 0xd2, 0xc3, 0x23, 0x6e, 0x62, 0x91,
+ 0xcf, 0x1c, 0x55, 0xda, 0xab, 0x19, 0xde, 0xef, 0x6a, 0xda, 0xfe, 0x58,
+ 0x11, 0x8c, 0x36, 0x4c, 0xe8, 0xdc, 0x51, 0x9f, 0xe0, 0xe6, 0xd1, 0xaa,
+ 0x50, 0xcd, 0x48, 0x64, 0x8a, 0x06, 0x2b, 0x90, 0x55, 0x82, 0xb6, 0x2a,
+ 0x91, 0x6e, 0x2d, 0x3a, 0xcb, 0xc3, 0x59, 0xf4, 0x41, 0x57, 0xc4, 0xca,
+ 0x76, 0xe9, 0xac, 0x44, 0x39, 0x58, 0x28, 0x94, 0x0d, 0xf5, 0xcc, 0x44,
+ 0x08, 0x0e, 0x54, 0x65, 0xbe, 0x3e, 0xeb, 0x7b, 0xf4, 0xd8, 0xdf, 0xe4,
+ 0xa7, 0xa1, 0x7b, 0xc7, 0x4a, 0x89, 0xb8, 0xce, 0x7b, 0x5d, 0xe3, 0x42,
+ 0x1a, 0x39, 0x41, 0x3c, 0x4d, 0xbd, 0x9b, 0xc1, 0x40, 0x1c, 0x26, 0xeb,
+ 0xb2, 0x81, 0xb0, 0x40, 0x95, 0x12, 0x0d, 0x44, 0x29, 0x31, 0x3f, 0xe3,
+ 0x82, 0x89, 0x67, 0x7d, 0xa1, 0x09, 0x45, 0x93, 0x2b, 0xc1, 0xeb, 0xe3,
+ 0x5d, 0x96, 0x0a, 0x1d, 0x8f, 0xc7, 0x57, 0x6e, 0x95, 0x78, 0x05, 0x65,
+ 0x39, 0x22, 0x6f, 0xd6, 0x5c, 0x66, 0x33, 0xc4, 0x48, 0x2d, 0x24, 0xfe,
+ 0x54, 0xec, 0x0b, 0xce, 0x0f, 0x18, 0xf5, 0xeb, 0xe2, 0x92, 0x8c, 0x54,
+ 0x2a, 0x46, 0xea, 0xda, 0xc4, 0x4b, 0x62, 0xa7, 0x48, 0xe3, 0x1a, 0xb9,
+ 0xaa, 0xc0, 0x18, 0xb8, 0x62, 0x04, 0x76, 0x93, 0xa8, 0x7b, 0xa3, 0x94,
+ 0xc2, 0x19, 0x64, 0x47, 0x63, 0x82, 0x7a, 0x81, 0xf6, 0xc1, 0x5a, 0x6d,
+ 0xa1, 0x86, 0x3d, 0x4d, 0xe5, 0x1c, 0x39, 0x90, 0xc4, 0xd4, 0xba, 0xe3,
+ 0xf6, 0x38, 0x27, 0xa7, 0xb1, 0x4c, 0x8b, 0xb1, 0x58, 0x49, 0x5a, 0x59,
+ 0x05, 0xa5, 0xed, 0xb7, 0x8a, 0x63, 0xaa, 0x15, 0xdc, 0xa2, 0xac, 0x21,
+ 0x61, 0x80, 0x77, 0x66, 0xd5, 0xa9, 0xd1, 0x6c, 0x41, 0x55, 0x3c, 0xb1,
+ 0x31, 0x58, 0x93, 0x24, 0xd7, 0x3e, 0xc2, 0x40, 0xb2, 0x61, 0xa3, 0xe5,
+ 0x67, 0x9b, 0xe6, 0x76, 0x04, 0xad, 0x43, 0x51, 0xb2, 0xd1, 0xab, 0xcc,
+ 0xcf, 0x13, 0x6f, 0x98, 0x59, 0xab, 0x2f, 0x0a, 0x45, 0xf3, 0x61, 0x3f,
+ 0x12, 0x54, 0x50, 0xb8, 0xe3, 0xc1, 0xfc, 0xac, 0x3f, 0x12, 0xf7, 0xc3,
+ 0xec, 0x61, 0xe2, 0x96, 0x00, 0x03, 0x0c, 0x29, 0xd3, 0x9a, 0x62, 0xd2,
+ 0xbe, 0x17, 0xa6, 0x39, 0xf7, 0x9b, 0xb2, 0x29, 0x37, 0x92, 0xef, 0xb0,
+ 0x8b, 0x09, 0xc8, 0x68, 0x90, 0x94, 0x70, 0x9a, 0xb5, 0xcb, 0x11, 0x60,
+ 0x65, 0x18, 0x28, 0x03, 0x4c, 0xda, 0xf1, 0x65, 0xef, 0x48, 0xf2, 0x9b,
+ 0x32, 0xf5, 0xc8, 0x9b, 0xe7, 0xb0, 0xb2, 0xb7, 0xca, 0x1c, 0xf5, 0x44,
+ 0xcc, 0x83, 0xcd, 0x87, 0xf0, 0x9f, 0x79, 0x19, 0xf8, 0x06, 0x1a, 0xa3,
+ 0xea, 0x6a, 0xfe, 0xd4, 0x74, 0x14, 0xad, 0x38, 0xc3, 0x2a, 0x8a, 0xa1,
+ 0x68, 0xcf, 0x45, 0xf0, 0x9f, 0x78, 0x60, 0x31, 0x1e, 0x39, 0x65, 0xa5,
+ 0x56, 0xf9, 0xca, 0x5b, 0xfb, 0x7c, 0x3c, 0xa1, 0x9d, 0x99, 0x6a, 0x82,
+ 0xa3, 0x64, 0x7a, 0x0e, 0x8d, 0x0a, 0xd2, 0xb1, 0xfa, 0x7f, 0x31, 0xc4,
+ 0xb3, 0x05, 0xf8, 0x12, 0x67, 0x63, 0xbc, 0x08, 0x09, 0x73, 0x2c, 0x2f,
+ 0x3d, 0x23, 0x79, 0xb1, 0xcd, 0xfa, 0xe1, 0xf9, 0x0b, 0x77, 0x23, 0x75,
+ 0xcc, 0x2e, 0x2b, 0x92, 0x75, 0x83, 0x28, 0x78, 0x95, 0x9e, 0xbd, 0x8f,
+ 0x27, 0x6e, 0x37, 0x80, 0x7d, 0x04, 0x45, 0xa9, 0xb9, 0x2a, 0xa0, 0x48,
+ 0x3c, 0x1d, 0x51, 0x27, 0x6b, 0xbd, 0x92, 0x0a, 0xdc, 0xf9, 0x93, 0x68,
+ 0xfa, 0xc7, 0x74, 0x18, 0x29, 0x5f, 0xfa, 0xa4, 0xd2, 0x10, 0x3e, 0xfe,
+ 0xcb, 0xf0, 0x22, 0x7e, 0x9b, 0x20, 0x93, 0x3e, 0x55, 0x23, 0x57, 0x82,
+ 0xbf, 0x71, 0x08, 0xe0, 0xa3, 0x41, 0x73, 0x7e, 0xb8, 0x1b, 0x3b, 0x4f,
+ 0xb9, 0x82, 0x47, 0x6c, 0xef, 0xd0, 0x9f, 0xac, 0x1a, 0x5c, 0x4d, 0x4e,
+ 0xc8, 0x5e, 0x42, 0xf0, 0x67, 0xbd, 0xf3, 0xe9, 0x1c, 0x70, 0x6b, 0x07,
+ 0x34, 0x25, 0x1c, 0xa4, 0xcc, 0xa8, 0x8c, 0xaf, 0xfb, 0xd9, 0xd1, 0x7c,
+ 0xa9, 0x1a, 0x55, 0xbd, 0x37, 0x5e, 0xde, 0xb0, 0x3b, 0x31, 0x1d, 0xba,
+ 0x22, 0x9b, 0x6d, 0x61, 0x0e, 0x30, 0x02, 0xe9, 0x67, 0x1e, 0x02, 0x47,
+ 0xd2, 0x2f, 0xea, 0xa9, 0x8f, 0x45, 0xfa, 0xca, 0x04, 0x93, 0x94, 0xc9,
+ 0x02, 0x9b, 0x99, 0x1e, 0x09, 0x62, 0x48, 0x00, 0xa3, 0x2b, 0x9d, 0xa8,
+ 0xc2, 0xf9, 0x57, 0x10, 0x08, 0x98, 0x4d, 0xcc, 0x2e, 0x45, 0x30, 0xb9,
+ 0x0e, 0x63, 0x86, 0xe8, 0x49, 0x76, 0xd0, 0x6a, 0x30, 0xa9, 0xb2, 0x4c,
+ 0xfb, 0xb5, 0x7c, 0x0d, 0xfb, 0x63, 0xc9, 0x4c, 0xd3, 0x2f, 0x38, 0xcc,
+ 0x09, 0xb3, 0x93, 0xa3, 0xb9, 0xac, 0x05, 0x4c, 0xd8, 0x74, 0xf7, 0x46,
+ 0x87, 0x68, 0xa5, 0xd5, 0xcf, 0x12, 0x6e, 0x85, 0x8e, 0x19, 0x36, 0xc5,
+ 0x12, 0xf8, 0xcf, 0x91, 0x5e, 0xf9, 0x6d, 0x8c, 0x40, 0x70, 0x0e, 0x44,
+ 0x0c, 0x13, 0xa5, 0x7b, 0x78, 0x8b, 0x33, 0xe7, 0xc2, 0xf2, 0x72, 0xd8,
+ 0xfb, 0x31, 0xce, 0x7f, 0xec, 0xf7, 0xac, 0x0e, 0xcc, 0x47, 0x6e, 0x64,
+ 0x25, 0x64, 0xc6, 0x9c, 0x37, 0x9d, 0x8b, 0x30, 0x4e, 0xfb, 0x7c, 0xcf,
+ 0x77, 0x4a, 0x43, 0x77, 0xea, 0x02, 0x1c, 0x52, 0x1a, 0x9d, 0xe3, 0xad,
+ 0x47, 0x1b, 0xd3, 0xaf, 0xf1, 0xfa, 0xa0, 0x65, 0x4a, 0x12, 0xcd, 0x60,
+ 0xa4, 0xa6, 0x9a, 0x9e, 0xb4, 0x4e, 0x15, 0xca, 0x50, 0x96, 0x78, 0x63,
+ 0x2a, 0xac, 0x55, 0x86, 0xe3, 0x22, 0xc2, 0x02, 0x75, 0xea, 0x86, 0xa4,
+ 0x28, 0x6f, 0xd8, 0x24, 0x6e, 0xc5, 0x8d, 0xcb, 0x5d, 0x8c, 0x4b, 0xbd,
+ 0x05, 0x35, 0x58, 0x11, 0x42, 0xd1, 0x75, 0x30, 0x69, 0xdc, 0x39, 0x64,
+ 0xa0, 0xe1, 0x00, 0x38, 0x4d, 0xd0, 0xb1, 0xc3, 0x26, 0xd8, 0xa2, 0x5f,
+ 0x19, 0xf2, 0x09, 0xf8, 0xcc, 0x08, 0x0f, 0xf3, 0x1a, 0x0f, 0x0a, 0x15,
+ 0x66, 0x1b, 0xdf, 0x13, 0x70, 0xf2, 0x34, 0x39, 0x39, 0xbb, 0x41, 0x53,
+ 0xd3, 0x80, 0x7d, 0x44, 0x66, 0xee, 0x6f, 0xb4, 0xea, 0x13, 0x9a, 0x6e,
+ 0x05, 0xa8, 0xef, 0x37, 0x25, 0xce, 0x30, 0xfb, 0xf1, 0x1c, 0x02, 0xb4,
+ 0x70, 0xdf, 0xc7, 0x0c, 0x34, 0x8a, 0xcb, 0x12, 0x6a, 0x62, 0xc8, 0x34,
+ 0x8a, 0xb1, 0x03, 0xf8, 0x18, 0x15, 0x79, 0x9c, 0x98, 0xb8, 0x0c, 0x18,
+ 0x9e, 0x59, 0x5a, 0xa6, 0xd4, 0x84, 0x67, 0x2c, 0xbe, 0x3a, 0xa8, 0x2f,
+ 0x11, 0x2c, 0xc2, 0x37, 0x84, 0x17, 0x34, 0x2a, 0x7a, 0xa6, 0x98, 0x7e,
+ 0xeb, 0xf3, 0xc2, 0x93, 0xd9, 0x86, 0x79, 0x10, 0x84, 0x4c, 0x5b, 0xe4,
+ 0x85, 0xa1, 0xcb, 0xa4, 0x20, 0x1b, 0x94, 0x49, 0x22, 0x97, 0xab, 0x7d,
+ 0x70, 0x69, 0xdf, 0xd2, 0xba, 0x68, 0xd8, 0xc2, 0x79, 0x9e, 0xdb, 0xa5,
+ 0x7d, 0x3a, 0xc2, 0x17, 0x5b, 0x10, 0xe7, 0xc2, 0xda, 0x58, 0xb8, 0xa0,
+ 0xa8, 0x25, 0xa0, 0xba, 0xf4, 0x11, 0xef, 0x04, 0x41, 0xc8, 0x58, 0x95,
+ 0xd6, 0x65, 0x03, 0x2a, 0xab, 0x62, 0x04, 0x98, 0x5f, 0x7e, 0x70, 0x31,
+ 0x46, 0xaf, 0xd7, 0x84, 0xd3, 0x28, 0xe5, 0x2e, 0x82, 0xc2, 0x3b, 0x4f,
+ 0x12, 0xdb, 0x29, 0xd2, 0xec, 0x84, 0x77, 0xdb, 0xeb, 0x06, 0x45, 0x2e,
+ 0xee, 0xea, 0x4d, 0x97, 0x82, 0xb9, 0x31, 0x2d, 0x35, 0x83, 0x5c, 0x17,
+ 0x70, 0xc8, 0x82, 0x1f, 0xa4, 0x43, 0x25, 0xfb, 0x8f, 0x69, 0x98, 0xcb,
+ 0x4c, 0x82, 0xfa, 0x86, 0x33, 0x51, 0xfd, 0x9e, 0x37, 0x49, 0x68, 0xb4,
+ 0x18, 0x91, 0xdb, 0x19, 0x39, 0x2a, 0x55, 0x9c, 0x5f, 0x69, 0xd7, 0x42,
+ 0x0f, 0xff, 0x31, 0xc6, 0x17, 0xd3, 0xaf, 0xbd, 0x5b, 0xeb, 0x83, 0x4e,
+ 0xfe, 0x95, 0xd3, 0x46, 0xc6, 0x13, 0xcc, 0xf6, 0xb7, 0x46, 0x9d, 0x90,
+ 0xaf, 0x63, 0xad, 0x65, 0x11, 0x45, 0x19, 0xff, 0x8b, 0x12, 0xdf, 0x49,
+ 0xb8, 0x93, 0xf5, 0x13, 0x8e, 0x74, 0x04, 0x1c, 0xbf, 0x44, 0x44, 0x61,
+ 0x7b, 0x97, 0x0f, 0x56, 0x18, 0x1a, 0xf9, 0xe7, 0x3c, 0xd8, 0x28, 0x9d,
+ 0xcc, 0xdb, 0xce, 0xc6, 0xfc, 0x80, 0x2e, 0xf7, 0xd7, 0x9f, 0x20, 0xd5,
+ 0xe5, 0x4e, 0x25, 0x50, 0x6c, 0x32, 0x17, 0xaa, 0xef, 0xa3, 0x2e, 0xe8,
+ 0xfd, 0x88, 0x0e, 0xc9, 0xb5, 0x6e, 0x37, 0x22, 0xf0, 0x26, 0xd7, 0xec,
+ 0x62, 0x5b, 0x1f, 0xef, 0xe4, 0xdc, 0xe5, 0x27, 0x02, 0x8d, 0x43, 0xf5,
+ 0xa2, 0xcd, 0x53, 0xe1, 0x76, 0x3c, 0x43, 0xb7, 0x6f, 0xd9, 0x33, 0x9c,
+ 0xf7, 0x4d, 0x73, 0x36, 0xd6, 0x5d, 0xd9, 0x21, 0x69, 0xc1, 0xff, 0x82,
+ 0xf9, 0xc1, 0x69, 0x7d, 0x67, 0xaf, 0xcf, 0x72, 0x25, 0x12, 0xfd, 0x77,
+ 0xd9, 0xba, 0xe5, 0x07, 0xa6, 0x4f, 0x9f, 0x62, 0x93, 0xd3, 0x23, 0xbf,
+ 0x3e, 0x41, 0x70, 0xc4, 0x0a, 0x63, 0x3a, 0x43, 0x3f, 0x36, 0x45, 0x29,
+ 0x9c, 0xcb, 0x0a, 0x3b, 0x97, 0x0f, 0x56, 0x18, 0x19, 0x13, 0x1b, 0xb6,
+ 0x0f, 0x0a, 0x14, 0x96, 0x47, 0xf9, 0xa7, 0x1b, 0x23, 0x4e, 0xf4, 0xa8,
+ 0x2f, 0x2e, 0x6c, 0x2d, 0x5d, 0xa6, 0x58, 0x80, 0xab, 0x30, 0xd0, 0x81,
+ 0x21, 0x7a, 0xb3, 0x5a, 0x0e, 0x9e, 0x10, 0xc3, 0xaa, 0x17, 0x1d, 0x9f,
+ 0x7a, 0xcd, 0x12, 0x7d, 0x80, 0x1b, 0xb9, 0xd0, 0xd7, 0x8b, 0xbe, 0x69,
+ 0x0d, 0x58, 0xed, 0x5e, 0x59, 0x4b, 0x8e, 0x8b, 0x82, 0x06, 0x9a, 0x61,
+ 0x01, 0xec, 0x8f, 0x3f, 0xd1, 0x69, 0xdd, 0x1e, 0x23, 0x8b, 0x97, 0xb4,
+ 0xbe, 0xdd, 0xee, 0x1a, 0xb8, 0x1a, 0xe5, 0x68, 0x1c, 0x6e, 0x21, 0x35,
+ 0x6b, 0x94, 0xef, 0xb7, 0x98, 0x19, 0x50, 0xcc, 0x76, 0x2e, 0x93, 0x6d,
+ 0xb7, 0x1a, 0x9a, 0x4a, 0x3f, 0x84, 0xcc, 0x55, 0x18, 0xc4, 0xdc, 0x6b,
+ 0x45, 0x25, 0xfa, 0x14, 0x6a, 0xea, 0x7b, 0xf3, 0x3d, 0xb1, 0xe2, 0x68,
+ 0xe5, 0x98, 0x6d, 0x33, 0x2b, 0x5b, 0x49, 0xdd, 0xb1, 0x20, 0xed, 0x43,
+ 0x67, 0x24, 0xcb, 0x52, 0xe6, 0xb2, 0xdf, 0x08, 0x62, 0x3a, 0xa7, 0x3b,
+ 0xe6, 0xa1, 0xf5, 0x6b, 0x49, 0x4d, 0xc8, 0x24, 0xea, 0xff, 0x5f, 0x6a,
+ 0xc2, 0xc8, 0xe3, 0x51, 0xd0, 0x25, 0xa5, 0x28, 0xf5, 0xa7, 0x4d, 0x4e,
+ 0x93, 0x18, 0x6f, 0x49, 0x87, 0xf1, 0xc8, 0xcf, 0xf4, 0x51, 0x68, 0x54,
+ 0x9e, 0x2e, 0x01, 0xc5, 0xce, 0xf6, 0x63, 0xdb, 0x47, 0x93, 0xc6, 0xaa,
+ 0x01, 0x85, 0x24, 0xe9, 0x41, 0xd8, 0x0e, 0x89, 0x56, 0x72, 0xc1, 0xe1,
+ 0x52, 0x53, 0xf2, 0xbf, 0xde, 0x0e, 0xfe, 0x47, 0x03, 0x58, 0x54, 0x54,
+ 0x41, 0xf9, 0x92, 0xf9, 0xe1, 0x1a, 0xc0, 0x87, 0xd8, 0xae, 0x46, 0xec,
+ 0x0a, 0xb7, 0x66, 0xc2, 0x6a, 0x5c, 0xe8, 0x6c, 0x4e, 0x88, 0xde, 0x7b,
+ 0xde, 0xff, 0x08, 0x79, 0x8e, 0xfb, 0x14, 0x75, 0x66, 0xf0, 0x54, 0x22,
+ 0x90, 0xee, 0x00, 0x52, 0xc9, 0xf5, 0xf6, 0xfc, 0xd9, 0x4e, 0x25, 0xc8,
+ 0x49, 0x65, 0x2c, 0x22, 0x13, 0xca, 0xb6, 0x71, 0x2c, 0x89, 0xde, 0x27,
+ 0x1a, 0x55, 0xf6, 0x3e, 0xc2, 0xda, 0xff, 0xd4, 0x6a, 0x2e, 0x3b, 0x8d,
+ 0xf4, 0x33, 0x08, 0x0e, 0x1e, 0x43, 0xd6, 0x9c, 0xe5, 0x9d, 0x01, 0x04,
+ 0x02, 0xf5, 0x1c, 0xa5, 0x37, 0xc9, 0x1f, 0xa8, 0x35, 0x31, 0x7c, 0x59,
+ 0xdd, 0x34, 0xfa, 0xa3, 0x73, 0x94, 0x6d, 0x5d, 0x03, 0x34, 0x27, 0x64,
+ 0xf5, 0xc9, 0x2b, 0x8e, 0x14, 0x4b, 0xee, 0xc6, 0x9a, 0xc2, 0x70, 0x4c,
+ 0xde, 0x1f, 0xc8, 0xce, 0x34, 0x04, 0x6e, 0x1b, 0x0f, 0xb8, 0x9a, 0xe6,
+ 0x73, 0x3d, 0xea, 0xeb, 0x34, 0x94, 0x96, 0xfe, 0xc1, 0xb4, 0x86, 0x5b,
+ 0x58, 0x24, 0xd2, 0x84, 0x22, 0x96, 0x0a, 0xb4, 0x84, 0x5b, 0xc1, 0xb9,
+ 0x11, 0xa4, 0x6f, 0x03, 0x9c, 0x4d, 0xc6, 0x89, 0xe5, 0x82, 0x0c, 0x76,
+ 0xde, 0x66, 0x3e, 0xf1, 0x3b, 0xcb, 0xb7, 0xa1, 0x1c, 0xed, 0x11, 0xae,
+ 0x3a, 0x54, 0x62, 0x9b, 0x53, 0x78, 0xd6, 0x0e, 0x2e, 0x1c, 0x8f, 0x3c,
+ 0x88, 0x28, 0x7a, 0x5b, 0x8d, 0xa1, 0xe8, 0x0a, 0xcf, 0x33, 0x2c, 0xc6,
+ 0x5e, 0x20, 0xf4, 0x64, 0x7d, 0x72, 0x77, 0x30, 0x11, 0x2a, 0x00, 0x22,
+ 0x79, 0x79, 0xeb, 0x1a, 0xdf, 0xf4, 0xe2, 0x85, 0xc5, 0x8b, 0xeb, 0x49,
+ 0x1f, 0xae, 0x90, 0xc5, 0x92, 0xee, 0xdb, 0x86, 0x85, 0x46, 0x32, 0x81,
+ 0x53, 0xa6, 0x73, 0xad, 0x98, 0xd8, 0xf2, 0x06, 0x03, 0x1b, 0xf4, 0x3e,
+ 0xcc, 0x0c, 0x60, 0x5a, 0x6d, 0xe2, 0x61, 0x12, 0xda, 0xa1, 0xab, 0x7c,
+ 0xfb, 0xba, 0x3e, 0xb0, 0x21, 0x82, 0x09, 0x1e, 0xbb, 0x30, 0xe7, 0xd4,
+ 0x3a, 0xe2, 0xc7, 0x05, 0x79, 0xa6, 0x32, 0x25, 0xb1, 0x86, 0x3b, 0x98,
+ 0xb6, 0x43, 0x2e, 0x86, 0xa4, 0x08, 0x5b, 0xad, 0x08, 0xf6, 0x2a, 0xfb,
+ 0xb4, 0x20, 0x44, 0xe6, 0x87, 0xe1, 0x6e, 0x33, 0x6d, 0x8a, 0x32, 0x63,
+ 0x22, 0xb9, 0x6a, 0xc2, 0xe1, 0x6e, 0x04, 0x44, 0x36, 0x96, 0xf0, 0xf5,
+ 0x70, 0xbf, 0x2a, 0x0a, 0x94, 0x5d, 0xa7, 0x8c, 0x53, 0xe0, 0x48, 0x0f,
+ 0x0c, 0x4b, 0xc0, 0xff, 0x59, 0x1f, 0xac, 0x81, 0xca, 0x93, 0x26, 0xc1,
+ 0xba, 0x4c, 0x54, 0x7e, 0x32, 0xf5, 0x79, 0x4d, 0xa0, 0x06, 0x1e, 0x03,
+ 0xc3, 0x1f, 0x88, 0xdc, 0xb5, 0x92, 0xdc, 0x55, 0x1b, 0x43, 0xfa, 0xfa,
+ 0x50, 0xeb, 0xa7, 0x4e, 0x6f, 0xbf, 0xca, 0x0d, 0x85, 0xb0, 0x32, 0x02,
+ 0xc9, 0x18, 0xc4, 0xb6, 0xb1, 0x99, 0x83, 0xfc, 0x5c, 0xda, 0x08, 0x81,
+ 0x5e, 0x27, 0xf0, 0x2c, 0xc3, 0x19, 0x9a, 0x6e, 0x74, 0x39, 0x88, 0xe8,
+ 0xa8, 0xa8, 0x61, 0x88, 0xf4, 0x94, 0xa8, 0x25, 0x03, 0x2c, 0x43, 0x0d,
+ 0xf8, 0x22, 0x55, 0x01, 0x70, 0x50, 0x01, 0x83, 0x33, 0x15, 0x6f, 0xed,
+ 0x22, 0xc6, 0x20, 0x0c, 0xe7, 0xba, 0x93, 0x1a, 0x1c, 0x1d, 0xd3, 0xf2,
+ 0x27, 0xdd, 0x35, 0xf9, 0x7b, 0x16, 0x70, 0x58, 0x38, 0x00, 0xdd, 0x28,
+ 0xb0, 0x87, 0xbc, 0x56, 0xde, 0x26, 0x71, 0x0c, 0x8b, 0x95, 0xe4, 0x72,
+ 0xda, 0xd9, 0xf0, 0x19, 0x49, 0x8b, 0x49, 0x93, 0x60, 0xdc, 0x75, 0x8f,
+ 0x19, 0xb4, 0x74, 0x3e, 0x28, 0xea, 0x4a, 0xc1, 0x42, 0x76, 0x76, 0xa0,
+ 0x1a, 0x0f, 0x69, 0x1e, 0xe1, 0xac, 0xbe, 0xc6, 0x73, 0xd0, 0x91, 0xa2,
+ 0x48, 0xc2, 0x55, 0x02, 0xd1, 0x7d, 0xbf, 0x41, 0xac, 0x60, 0xd3, 0x5f,
+ 0x6d, 0xe7, 0x0e, 0xaa, 0x0b, 0x7f, 0xe2, 0x25, 0x05, 0x59, 0x3e, 0xd7,
+ 0xc8, 0x74, 0xc3, 0x46, 0x3f, 0x5a, 0xe1, 0x8e, 0x66, 0x00, 0x84, 0xc6,
+ 0x39, 0xc1, 0xc6, 0xa3, 0x64, 0x23, 0xf4, 0x80, 0xeb, 0x5e, 0xd9, 0x04,
+ 0x0d, 0x32, 0x31, 0x5a, 0xda, 0xfa, 0xc7, 0x1b, 0x18, 0xc9, 0x25, 0x87,
+ 0x2f, 0x2c, 0xf2, 0x69, 0xa5, 0x6a, 0x08, 0xae, 0x64, 0xc6, 0xc5, 0xa7,
+ 0x22, 0x7c, 0x7e, 0x3d, 0x74, 0x5a, 0xb0, 0xc3, 0xaf, 0x2c, 0xe7, 0x26,
+ 0x8f, 0x21, 0xb2, 0xa0, 0xe4, 0x09, 0x03, 0xcf, 0x84, 0x10, 0x43, 0xdf,
+ 0x3a, 0x88, 0x30, 0xd0, 0x34, 0x52, 0x84, 0x23, 0x48, 0x5e, 0x6c, 0xcd,
+ 0x79, 0x7e, 0x13, 0x66, 0x5b, 0x9e, 0xac, 0x8b, 0xf1, 0xe8, 0xa3, 0xa0,
+ 0xd7, 0xe3, 0x1c, 0xf2, 0x54, 0xa1, 0x66, 0x92, 0x6f, 0xc4, 0x3c, 0x4b,
+ 0x5e, 0x66, 0x4f, 0xa0, 0xbb, 0xd1, 0xfd, 0x50, 0x3a, 0x5d, 0xb4, 0x64,
+ 0xb4, 0x5c, 0x08, 0x01, 0xac, 0x7a, 0xd2, 0x45, 0x6c, 0xa2, 0xb5, 0xff,
+ 0xea, 0x00, 0x87, 0xcd, 0xa8, 0x60, 0x23, 0x9f, 0x30, 0x81, 0xf4, 0x8d,
+ 0x01, 0xf8, 0xc8, 0x59, 0xc0, 0x0e, 0xb7, 0x9d, 0xa5, 0xe0, 0xcb, 0x0b,
+ 0xca, 0x0a, 0x79, 0x76, 0x58, 0x53, 0x24, 0xc2, 0x19, 0x09, 0x7e, 0x95,
+ 0xd3, 0x74, 0xfb, 0xdc, 0x92, 0x32, 0xa4, 0xa5, 0xd5, 0xe7, 0xf2, 0x05,
+ 0xdd, 0x71, 0xf0, 0xd1, 0xe2, 0x09, 0xea, 0x57, 0xe5, 0x13, 0xa2, 0x30,
+ 0x8a, 0xa9, 0xda, 0x8b, 0x54, 0x30, 0xf6, 0xd8, 0xc8, 0x98, 0xa0, 0xad,
+ 0x77, 0xe2, 0xbf, 0xd2, 0x50, 0xb8, 0x4c, 0x86, 0x8e, 0x5a, 0x13, 0xdc,
+ 0x37, 0xdd, 0x6c, 0xe3, 0x4a, 0x2f, 0x85, 0x58, 0x37, 0xec, 0x05, 0xca,
+ 0x1f, 0xd6, 0x44, 0xe8, 0x42, 0x3d, 0x41, 0xfe, 0x58, 0xff, 0x57, 0xcb,
+ 0xd8, 0x44, 0x9a, 0x8e, 0xda, 0x6b, 0xda, 0x8c, 0x3a, 0x0e, 0xea, 0x62,
+ 0xe9, 0x71, 0xa6, 0x7e, 0x3b, 0x3c, 0xb0, 0x3d, 0x98, 0xd8, 0xd8, 0x4b,
+ 0xca, 0xfd, 0x0c, 0xc5, 0xbd, 0xa7, 0x92, 0x24, 0xa8, 0x19, 0xc5, 0x20,
+ 0x1e, 0xaf, 0xa4, 0xc1, 0xc0, 0xf7, 0xee, 0xdb, 0x12, 0xa3, 0x3a, 0xae,
+ 0x5b, 0xe2, 0xc0, 0xf4, 0x0c, 0x40, 0xd5, 0xab, 0x59, 0xd4, 0xe4, 0x6c,
+ 0x72, 0x28, 0x73, 0x1e, 0x32, 0xce, 0xb7, 0x46, 0x4f, 0x56, 0x0d, 0x0c,
+ 0xd7, 0xc8, 0xf6, 0xc3, 0x43, 0x84, 0x98, 0xb5, 0xff, 0x2b, 0x91, 0x63,
+ 0x95, 0xe9, 0xd3, 0x35, 0x63, 0x88, 0xa4, 0x8d, 0x91, 0x9c, 0xa4, 0x3a,
+ 0xc2, 0x1b, 0x61, 0x2e, 0xac, 0xff, 0xe3, 0xc0, 0xb5, 0x3b, 0x43, 0x4e,
+ 0x48, 0x16, 0x77, 0xd0, 0xff, 0x14, 0xf9, 0x3c, 0xd4, 0xb2, 0x35, 0xd1,
+ 0x39, 0xca, 0x70, 0x5c, 0x90, 0xbd, 0xbb, 0x25, 0xa3, 0x5c, 0xce, 0xce,
+ 0x9b, 0xed, 0xb7, 0xa6, 0x08, 0xee, 0x89, 0x58, 0xa9, 0x21, 0xdc, 0xad,
+ 0x5b, 0xf6, 0x89, 0x67, 0xe7, 0x4f, 0xdf, 0x96, 0xdc, 0xaf, 0xe1, 0x35,
+ 0x0a, 0x96, 0x50, 0xaf, 0xd0, 0x91, 0xad, 0xd1, 0x3c, 0xf1, 0x68, 0x67,
+ 0x9f, 0xe3, 0x4d, 0x64, 0x69, 0xee, 0xcf, 0xc7, 0x12, 0x5e, 0xc3, 0x26,
+ 0x18, 0x65, 0xed, 0x35, 0x9d, 0x45, 0xfa, 0x66, 0x78, 0xc9, 0x1d, 0xe6,
+ 0x42, 0x24, 0x61, 0x23, 0x6a, 0x85, 0x64, 0xb6, 0x50, 0xa9, 0x6c, 0x7d,
+ 0xdf, 0xb2, 0x1d, 0xd1, 0x8e, 0xa8, 0x68, 0x8f, 0x9f, 0x26, 0x9c, 0xfa,
+ 0xb8, 0xe7, 0xfa, 0x5e, 0x1f, 0xf6, 0x94, 0x48, 0x55, 0xa3, 0xc4, 0xcd,
+ 0xf5, 0x3e, 0x0b, 0xe1, 0x0b, 0x36, 0xe2, 0xae, 0x5a, 0x8d, 0x95, 0xfe,
+ 0x09, 0x68, 0x42, 0x66, 0x45, 0x27, 0xe6, 0x5e, 0x22, 0xd1, 0x57, 0xf3,
+ 0x4b, 0x83, 0x2a, 0x1f, 0x18, 0x5c, 0x02, 0x63, 0x7c, 0x04, 0x3b, 0x37,
+ 0x3e, 0x18, 0xd6, 0xc8, 0xc5, 0xce, 0xb3, 0xd6, 0x61, 0x73, 0xae, 0x3a,
+ 0x8d, 0x7f, 0x35, 0x94, 0xca, 0xae, 0xa7, 0x20, 0x16, 0x98, 0xec, 0xfe,
+ 0x9d, 0x32, 0x04, 0xe5, 0xd7, 0x93, 0x63, 0xe0, 0x5c, 0x89, 0x1f, 0x45,
+ 0xf9, 0xe3, 0x0e, 0xad, 0xc7, 0x93, 0xa0, 0x4c, 0x13, 0xfc, 0xc2, 0xd9,
+ 0x2a, 0x96, 0x3f, 0xcb, 0x1f, 0x35, 0xf3, 0x1a, 0x82, 0x56, 0xa9, 0x79,
+ 0x51, 0xe0, 0x76, 0xc6, 0x23, 0x9c, 0xf1, 0xa6, 0xcc, 0x70, 0xc2, 0x2a,
+ 0x0e, 0x1a, 0x90, 0xaa, 0xb1, 0x67, 0x67, 0x94, 0xb4, 0x4a, 0x88, 0x19,
+ 0x4c, 0x43, 0xb9, 0x16, 0x7c, 0x6a, 0x56, 0xb5, 0x91, 0x4f, 0xbe, 0x9f,
+ 0xc8, 0xff, 0xb7, 0x55, 0x00, 0xbf, 0xb4, 0xdc, 0x0e, 0x4e, 0xa4, 0x18,
+ 0x55, 0x12, 0x87, 0xb6, 0xa3, 0xbf, 0xb0, 0xbe, 0xec, 0xb8, 0x19, 0x57,
+ 0xa5, 0xb1, 0xa6, 0xc8, 0xc6, 0xef, 0x96, 0xa9, 0xf9, 0x54, 0x3d, 0xc2,
+ 0x3c, 0x9d, 0x68, 0x43, 0x02, 0xb5, 0x91, 0x04, 0x78, 0x5c, 0xb2, 0x13,
+ 0x7c, 0x2d, 0x4b, 0x99, 0x58, 0xb8, 0xc5, 0x8a, 0xc0, 0x00, 0xe0, 0xac,
+ 0x86, 0x33, 0x97, 0x16, 0x3b, 0x28, 0x68, 0x60, 0xb3, 0x5b, 0x2c, 0xbd,
+ 0x63, 0xd6, 0xcd, 0x42, 0x72, 0x56, 0x19, 0x3f, 0xb5, 0xe6, 0xd8, 0x9a,
+ 0x3b, 0x5b, 0x15, 0x84, 0x56, 0x0b, 0xc3, 0x5a, 0xfb, 0xba, 0xf9, 0xb5,
+ 0x7a, 0xe5, 0x54, 0xf1, 0x68, 0x7d, 0xec, 0x13, 0x45, 0x45, 0xf5, 0x59,
+ 0x82, 0xf5, 0x04, 0xd1, 0xb7, 0x3e, 0xc6, 0x2c, 0x6d, 0x4f, 0x10, 0xd2,
+ 0x30, 0xe9, 0xab, 0x77, 0x0a, 0x69, 0x41, 0x20, 0x0a, 0x16, 0xf5, 0x01,
+ 0x07, 0x62, 0x5a, 0xa0, 0x1b, 0x87, 0x1e, 0x59, 0x29, 0xc2, 0x94, 0x23,
+ 0x1e, 0x0d, 0x49, 0xf6, 0xbf, 0xb6, 0xf7, 0x2d, 0xed, 0xc5, 0x48, 0x06,
+ 0xd8, 0x1a, 0xc3, 0x3a, 0x3f, 0x9b, 0x07, 0x37, 0x82, 0xd1, 0x4b, 0x81,
+ 0xae, 0x32, 0x53, 0xd2, 0xd6, 0xe1, 0x6e, 0x18, 0x6f, 0x65, 0xe9, 0x17,
+ 0x55, 0xd8, 0xcc, 0x7b, 0xa2, 0x28, 0x0b, 0x0c, 0xb5, 0x86, 0x43, 0x13,
+ 0x87, 0x40, 0xbb, 0x22, 0x11, 0x3d, 0x46, 0x6a, 0x7e, 0x58, 0xc7, 0x18,
+ 0x33, 0xbf, 0xad, 0x8a, 0x16, 0xf8, 0xae, 0x00, 0x23, 0x48, 0x8d, 0x8d,
+ 0x8d, 0xa4, 0xdd, 0xc2, 0x6c, 0x74, 0x86, 0xac, 0xbf, 0x3a, 0xd7, 0x1b,
+ 0x04, 0x51, 0xca, 0x58, 0x17, 0x55, 0xd4, 0x8e, 0x63, 0xb9, 0x82, 0x65,
+ 0xb3, 0xc4, 0x16, 0x1b, 0xba, 0xee, 0x60, 0xfc, 0xac, 0xc9, 0x3f, 0x36,
+ 0x18, 0x25, 0x4c, 0x76, 0xe2, 0x33, 0xba, 0xa2, 0x71, 0xeb, 0x3d, 0x2c,
+ 0x65, 0x19, 0x4d, 0x98, 0x75, 0x9d, 0x19, 0x93, 0x83, 0x79, 0x02, 0xf9,
+ 0x19, 0x3a, 0x39, 0x08, 0x65, 0xaa, 0xed, 0x34, 0x65, 0xe8, 0x68, 0xd8,
+ 0x79, 0xf1, 0xb4, 0x43, 0x01, 0xa0, 0xdc, 0xbd, 0x28, 0x4b, 0xf2, 0xf0,
+ 0xe6, 0x86, 0x4b, 0xad, 0xf0, 0xe2, 0x19, 0xb0, 0x5c, 0x1e, 0x5f, 0x7a,
+ 0x20, 0x9a, 0xfd, 0x3d, 0x01, 0xfc, 0x5f, 0x40, 0x0c, 0x8b, 0x97, 0xe2,
+ 0xc7, 0x85, 0x74, 0x5d, 0x63, 0x0b, 0x82, 0x8b, 0x6e, 0xdb, 0x59, 0x48,
+ 0x2d, 0xe9, 0xda, 0x97, 0xfe, 0xf0, 0xc8, 0x92, 0xbc, 0xf0, 0x81, 0x31,
+ 0xda, 0x1f, 0xc6, 0xca, 0xd0, 0x3e, 0x3c, 0xae, 0xe7, 0x1c, 0xf0, 0x83,
+ 0xf2, 0xf2, 0x2c, 0xf6, 0x03, 0xcd, 0x03, 0xd2, 0xa7, 0x04, 0x32, 0x0b,
+ 0x7c, 0xc2, 0x2b, 0x12, 0x8c, 0x58, 0x2e, 0xa7, 0xcb, 0x02, 0x85, 0x60,
+ 0x4a, 0xc2, 0x69, 0x0a, 0x43, 0xd2, 0x8f, 0x4a, 0x56, 0xba, 0x98, 0xdd,
+ 0x0a, 0x57, 0x5a, 0xa7, 0xb3, 0x79, 0x3d, 0xfa, 0x22, 0x82, 0xac, 0x43,
+ 0x31, 0x55, 0xa2, 0xe4, 0xe8, 0x97, 0x9f, 0x27, 0x9c, 0xe5, 0x4e, 0x2e,
+ 0x08, 0x17, 0x8b, 0xbb, 0xa1, 0x53, 0x10, 0x9d, 0x49, 0x53, 0x30, 0x40,
+ 0xf0, 0xf5, 0xba, 0x4e, 0xd2, 0x3d, 0xc5, 0x90, 0xe2, 0xcc, 0x87, 0x97,
+ 0xbd, 0x83, 0x16, 0x66, 0x1d, 0x8b, 0xc1, 0x85, 0x0a, 0xde, 0x30, 0x66,
+ 0x4b, 0xc8, 0xf9, 0x0c, 0xfa, 0xda, 0x56, 0x42, 0x9a, 0x4a, 0x85, 0x92,
+ 0xfb, 0xb9, 0x8b, 0x0a, 0x05, 0x75, 0xd6, 0x08, 0x52, 0xd8, 0xb9, 0x9a,
+ 0x09, 0x97, 0x0c, 0x00, 0x37, 0x75, 0x4d, 0x2e, 0xcf, 0x96, 0xa9, 0x0c,
+ 0xe9, 0xac, 0x15, 0x70, 0x63, 0xa1, 0x38, 0xfc, 0xab, 0x19, 0x4f, 0x86,
+ 0xa5, 0x4a, 0x9b, 0xe7, 0xb3, 0xc9, 0x96, 0x22, 0x75, 0x46, 0x30, 0x78,
+ 0x95, 0x26, 0x06, 0x3c, 0x76, 0xe0, 0xe9, 0x02, 0xdb, 0x47, 0x42, 0x39,
+ 0x58, 0xb7, 0xed, 0xff, 0x41, 0x5b, 0x06, 0x56, 0xee, 0xa8, 0xa9, 0x52,
+ 0x7c, 0xa6, 0x69, 0x90, 0x64, 0xc8, 0x3d, 0x58, 0xe6, 0x5d, 0xbf, 0x38,
+ 0x7c, 0x65, 0x35, 0x32, 0x93, 0xfe, 0x21, 0xf4, 0x82, 0x10, 0x90, 0x5a,
+ 0x69, 0x94, 0x20, 0x90, 0xd3, 0x79, 0x88, 0x38, 0x6b, 0x58, 0xcf, 0xde,
+ 0x7c, 0xb6, 0x83, 0x47, 0x8c, 0x82, 0xe4, 0x00, 0xb3, 0xc0, 0xe8, 0x3c,
+ 0x45, 0x8f, 0x7c, 0x9f, 0xbb, 0xa0, 0x3c, 0xa8, 0x5c, 0x64, 0x52, 0x75,
+ 0x66, 0x97, 0x4a, 0xa1, 0xca, 0x30, 0x42, 0x65, 0xa2, 0x1c, 0x63, 0xe1,
+ 0x60, 0xb8, 0x6d, 0x3d, 0x3c, 0x60, 0xfb, 0x96, 0xc3, 0xde, 0x18, 0x29,
+ 0xa3, 0x8c, 0xdf, 0x4d, 0x00, 0xd9, 0x21, 0x18, 0xb2, 0xb7, 0x8c, 0xa5,
+ 0xeb, 0xf3, 0x55, 0x7b, 0x26, 0x45, 0x70, 0x7b, 0x53, 0x98, 0x8a, 0xfe,
+ 0x95, 0xd1, 0x09, 0x21, 0xec, 0x40, 0x82, 0xc2, 0x19, 0x83, 0x10, 0xc8,
+ 0x24, 0x50, 0xb4, 0x7a, 0x7c, 0x71, 0x1e, 0xc9, 0xf5, 0xbd, 0x92, 0xae,
+ 0x3c, 0x8e, 0x0d, 0x1f, 0x50, 0xc1, 0xee, 0x8b, 0x91, 0x3b, 0x1a, 0x38,
+ 0xe0, 0x92, 0x21, 0x3c, 0xf1, 0x32, 0xa1, 0x77, 0x3f, 0x8f, 0x8b, 0xe5,
+ 0xbd, 0x95, 0x68, 0x50, 0x3b, 0x48, 0x87, 0xc9, 0x76, 0x15, 0x27, 0x6b,
+ 0x6c, 0x98, 0xd3, 0x95, 0xea, 0x21, 0xd5, 0xf7, 0xe5, 0x4d, 0xca, 0xdc,
+ 0x5f, 0x8c, 0xc9, 0xdc, 0x66, 0x6d, 0x8c, 0x7a, 0x69, 0xf3, 0x49, 0xa0,
+ 0x94, 0xe0, 0xa0, 0x09, 0x2d, 0x55, 0x2b, 0xbe, 0x44, 0x76, 0x0e, 0x8b,
+ 0x3b, 0x42, 0x8f, 0xd7, 0x29, 0x68, 0x07, 0xaf, 0xa2, 0xc0, 0xda, 0xf0,
+ 0xe2, 0xbc, 0x0a, 0x7a, 0x94, 0x59, 0x91, 0x71, 0xeb, 0xc5, 0xe1, 0x76,
+ 0x63, 0x29, 0x0e, 0xe3, 0xbe, 0x5d, 0xd0, 0x3d, 0x34, 0xd7, 0x80, 0xb1,
+ 0x9f, 0xe5, 0x6e, 0x79, 0xf7, 0x73, 0xc8, 0x2d, 0x0b, 0x69, 0xe3, 0xf4,
+ 0xf3, 0xfd, 0x2b, 0xb5, 0xc3, 0x1b, 0xc9, 0x5b, 0x15, 0xad, 0xa1, 0x57,
+ 0xcf, 0xa2, 0x85, 0x0b, 0xe5, 0x01, 0x7b, 0xc5, 0xa7, 0xec, 0x73, 0x75,
+ 0xf1, 0x7b, 0xb2, 0x37, 0xaf, 0xc6, 0xc1, 0x6d, 0x53, 0x6a, 0x9c, 0xcd,
+ 0xa1, 0x0f, 0x78, 0x5d, 0x1f, 0xf1, 0x0f, 0xfe, 0xea, 0x73, 0xee, 0xe3,
+ 0xe6, 0x3f, 0x31, 0x57, 0x90, 0xd2, 0x3a, 0x77, 0xc8, 0x56, 0x0d, 0xfe,
+ 0x0d, 0xb7, 0xe3, 0x5f, 0x3d, 0x15, 0x4b, 0x3a, 0x9d, 0x9f, 0x98, 0x8f,
+ 0x06, 0x91, 0xb6, 0x10, 0x95, 0xd2, 0xd7, 0xee, 0xa8, 0x87, 0x99, 0xbe,
+ 0xef, 0xd8, 0x6c, 0x99, 0xb1, 0x8b, 0x08, 0x5a, 0xed, 0x78, 0x45, 0x5b,
+ 0x27, 0x6e, 0xec, 0xdf, 0x87, 0xfe, 0xb9, 0xc8, 0x23, 0xe0, 0x43, 0xe1,
+ 0x75, 0x5d, 0xbf, 0xa6, 0x26, 0xf8, 0xc5, 0x87, 0x05, 0x2f, 0xcf, 0xfd,
+ 0x2f, 0xad, 0x64, 0x4b, 0x10, 0xd0, 0xe5, 0xf8, 0x1f, 0x67, 0x19, 0xf1,
+ 0xa2, 0xc0, 0xa1, 0x55, 0x0e, 0x75, 0x4c, 0x9c, 0xdd, 0xef, 0xe1, 0x16,
+ 0xd6, 0xf4, 0x52, 0xc1, 0xf7, 0x9e, 0x63, 0x13, 0x11, 0x2f, 0xb8, 0x3f,
+ 0x35, 0xe6, 0xfb, 0xd8, 0x70, 0xe4, 0x8b, 0xf5, 0x16, 0x3b, 0x74, 0xc4,
+ 0x71, 0xb9, 0xae, 0xac, 0x2f, 0x63, 0x00, 0x64, 0xdf, 0xf0, 0x38, 0x57,
+ 0x6f, 0x42, 0x1d, 0x9f, 0x90, 0xa1, 0xdc, 0xb0, 0x65, 0x6f, 0xaf, 0x9e,
+ 0x4c, 0x01, 0xe1, 0x7b, 0x4b, 0xff, 0xd9, 0xc5, 0x5d, 0x37, 0xd7, 0xc9,
+ 0x85, 0xfe, 0x72, 0xc4, 0xf7, 0x71, 0x2d, 0x9b, 0x04, 0x8c, 0x49, 0x58,
+ 0xb7, 0xaa, 0x77, 0x47, 0xdb, 0x19, 0x5d, 0xbe, 0x91, 0x83, 0x34, 0xdb,
+ 0x44, 0x92, 0x07, 0x0e, 0x10, 0xcd, 0xdf, 0x63, 0xe0, 0x57, 0x43, 0x75,
+ 0x0d, 0xdc, 0x7c, 0xb2, 0xff, 0x0f, 0xe3, 0x0b, 0xfd, 0xf0, 0x20, 0xdb,
+ 0x2f, 0x5a, 0x55, 0xdd, 0x07, 0xf8, 0xb7, 0x6d, 0x18, 0x88, 0x0c, 0xba,
+ 0x3e, 0x4f, 0x23, 0xfe, 0xf7, 0xad, 0xcc, 0x27, 0x2c, 0x3c, 0xcb, 0xdd,
+ 0x36, 0x75, 0x84, 0xd7, 0xb5, 0xaa, 0x08, 0xc4, 0x2f, 0x80, 0x17, 0x61,
+ 0xf7, 0x51, 0xdc, 0xab, 0xdc, 0x5a, 0x82, 0x06, 0x2e, 0x92, 0x45, 0xad,
+ 0x5d, 0x8b, 0x5d, 0x18, 0xe0, 0xb0, 0x21, 0x02, 0xab, 0x16, 0x53, 0xd7,
+ 0x15, 0x4c, 0x0c, 0x8b, 0xe3, 0x00, 0x07, 0x23, 0x54, 0x6d, 0x7a, 0x2e,
+ 0xe4, 0x94, 0x0d, 0xf6, 0x7e, 0xf1, 0x15, 0x68, 0x04, 0x91, 0x8c, 0x2b,
+ 0x89, 0xbd, 0xe9, 0xfb, 0x20, 0x17, 0xdf, 0x0c, 0x0d, 0x6f, 0xc3, 0x3a,
+ 0x96, 0xe3, 0xa7, 0x75, 0xeb, 0x81, 0x03, 0xcd, 0xe8, 0x9d, 0xae, 0x34,
+ 0x36, 0x8a, 0xb3, 0x5f, 0x56, 0x7a, 0xd6, 0x73, 0x5d, 0x5a, 0x35, 0x40,
+ 0xdc, 0xe4, 0x50, 0x51, 0xff, 0xff, 0xb2, 0xa5, 0xe1, 0x85, 0x51, 0x25,
+ 0x8b, 0xc9, 0xa3, 0x9a, 0x94, 0x49, 0x45, 0x96, 0xfb, 0x97, 0x12, 0x54,
+ 0x80, 0x8b, 0xe5, 0x07, 0x65, 0xfc, 0xad, 0xfc, 0x5a, 0xa5, 0x5d, 0x3a,
+ 0x95, 0x12, 0xac, 0xdf, 0xe8, 0xdb, 0x43, 0xb8, 0xdc, 0xdd, 0xb9, 0xd8,
+ 0xb2, 0x0e, 0x75, 0x6a, 0xe5, 0x1e, 0xdc, 0x51, 0xd1, 0x38, 0x22, 0x70,
+ 0x12, 0xd3, 0x64, 0xcc, 0x37, 0x66, 0xb1, 0x79, 0xa2, 0x37, 0xc7, 0x96,
+ 0xb2, 0x80, 0x10, 0x47, 0xd0, 0x68, 0x5c, 0x1e, 0xbb, 0x89, 0x8a, 0x25,
+ 0xd2, 0x65, 0x25, 0x2e, 0x97, 0xa8, 0xea, 0x37, 0x32, 0xd0, 0x1a, 0x4c,
+ 0x01, 0x12, 0x6c, 0x83, 0xd2, 0x05, 0xc0, 0x55, 0xd8, 0xf6, 0x7f, 0xda,
+ 0x80, 0xdb, 0x9a, 0xcc, 0xe9, 0xc2, 0x1a, 0x57, 0xf2, 0x91, 0x0a, 0xc7,
+ 0x0a, 0x7a, 0xcf, 0x2f, 0x2f, 0xa6, 0x32, 0x67, 0x06, 0x9c, 0x06, 0xd9,
+ 0x18, 0x51, 0xd8, 0x5b, 0x0a, 0x9d, 0xc3, 0x21, 0xf4, 0xc1, 0x8f, 0x29,
+ 0x4d, 0x46, 0x6a, 0xa8, 0xb5, 0xeb, 0x68, 0x14, 0x1f, 0x9f, 0x93, 0x96,
+ 0x40, 0x46, 0x51, 0xa3, 0x8d, 0xf2, 0xcf, 0xcd, 0xc5, 0x68, 0x27, 0x23,
+ 0x61, 0xfa, 0x17, 0xbd, 0xe1, 0x33, 0x85, 0xb8, 0xa0, 0x26, 0x6f, 0x45,
+ 0xdf, 0x83, 0x00, 0x81, 0xe0, 0x38, 0xa4, 0xa1, 0xc8, 0x43, 0x44, 0x05,
+ 0x8e, 0x77, 0xd3, 0xe2, 0x49, 0xbc, 0x60, 0xc3, 0xad, 0x22, 0x36, 0x6a,
+ 0x23, 0xb5, 0x58, 0x62, 0x14, 0xa9, 0x78, 0x60, 0xb6, 0x6e, 0x95, 0xd8,
+ 0xb9, 0xd2, 0x1b, 0x24, 0xea, 0xd5, 0x37, 0x60, 0xd1, 0xa1, 0x98, 0xd5,
+ 0xe5, 0x9f, 0x99, 0xea, 0x62, 0xbf, 0x8c, 0x16, 0xfd, 0x0a, 0x82, 0xa3,
+ 0x23, 0xf5, 0x68, 0x9e, 0x73, 0x62, 0x37, 0x77, 0x5d, 0x45, 0xe9, 0xd8,
+ 0x12, 0xd6, 0xfe, 0xd6, 0xa6, 0x86, 0xf8, 0x26, 0x6c, 0xd8, 0x8c, 0x01,
+ 0xb7, 0xa2, 0x27, 0x84, 0x3f, 0x31, 0x69, 0x8c, 0xf6, 0x08, 0x1d, 0x8c,
+ 0x6f, 0xf7, 0xc1, 0x51, 0xf6, 0x6a, 0xbe, 0x4e, 0x31, 0x91, 0xc0, 0xcf,
+ 0xcc, 0x23, 0xd2, 0xe6, 0xa9, 0x24, 0xe9, 0x49, 0x15, 0x42, 0xee, 0xc2,
+ 0x16, 0x76, 0x13, 0xd9, 0x25, 0x9e, 0x1c, 0x51, 0x20, 0x7f, 0x76, 0xfa,
+ 0xad, 0x3c, 0x0a, 0x70, 0x64, 0xc0, 0xc1, 0x3b, 0x92, 0xed, 0xc7, 0x5f,
+ 0x79, 0xc4, 0x59, 0xda, 0x87, 0x15, 0x1a, 0x15, 0x2c, 0x91, 0x9a, 0x6f,
+ 0x48, 0x69, 0x9f, 0x7e, 0x5f, 0xaa, 0x86, 0xde, 0x26, 0xda, 0x87, 0xa0,
+ 0x24, 0xb1, 0x19, 0x56, 0x5a, 0xeb, 0xc8, 0x47, 0x29, 0xf2, 0x1e, 0x74,
+ 0x01, 0x32, 0x8e, 0x20, 0xa0, 0x0a, 0xb2, 0x5d, 0xdc, 0xce, 0x00, 0x9c,
+ 0xf3, 0x97, 0xe9, 0x1d, 0xd2, 0x2d, 0xcf, 0x7f, 0xb7, 0x0c, 0x3d, 0xfe,
+ 0xb2, 0x51, 0x7f, 0x71, 0x63, 0x8d, 0x41, 0x9d, 0x3f, 0x43, 0x0a, 0x99,
+ 0xde, 0x61, 0x4d, 0xc4, 0xd1, 0xf2, 0x62, 0x71, 0x3d, 0x6c, 0x4f, 0x83,
+ 0x62, 0x6c, 0x2b, 0xd7, 0xd8, 0xa6, 0x55, 0x71, 0xa6, 0xb5, 0xcd, 0x9d,
+ 0x5a, 0xf0, 0x40, 0x55, 0xfa, 0x32, 0x84, 0x32, 0xfe, 0xfd, 0xff, 0xd2,
+ 0x79, 0xbf, 0x44, 0x5f, 0x5a, 0xdb, 0x99, 0x36, 0xcf, 0x78, 0xeb, 0x92,
+ 0x56, 0xe6, 0x60, 0x87, 0x74, 0xa2, 0x02, 0x6c, 0x6e, 0x6c, 0xc4, 0x5c,
+ 0xbd, 0xd6, 0xc1, 0x55, 0xf4, 0x9c, 0x56, 0x11, 0x38, 0xea, 0x2e, 0xf4,
+ 0x92, 0x90, 0xac, 0xd3, 0x2b, 0x7c, 0xf6, 0x4a, 0x9d, 0x0a, 0xd8, 0x70,
+ 0x6f, 0x32, 0x53, 0x6a, 0x76, 0x84, 0xfe, 0xb4, 0x37, 0x77, 0x30, 0x8a,
+ 0xa9, 0x1b, 0xfd, 0xd4, 0x01, 0xb4, 0xba, 0x7f, 0x60, 0x48, 0xae, 0x1c,
+ 0x06, 0x1b, 0x1d, 0x4b, 0xd5, 0x2d, 0x81, 0x7b, 0x62, 0xcf, 0xe1, 0x59,
+ 0x10, 0xcf, 0xa7, 0xf7, 0xcd, 0x22, 0xf7, 0x4b, 0x78, 0x58, 0x26, 0x2f,
+ 0x30, 0x46, 0x21, 0x28, 0x29, 0xd5, 0x5e, 0x95, 0x4f, 0x19, 0x17, 0x94,
+ 0x40, 0xc9, 0x54, 0xcf, 0x9c, 0x6a, 0x74, 0xb7, 0xa0, 0xe9, 0x71, 0x9f,
+ 0xe0, 0xf8, 0xae, 0x7a, 0xbd, 0x69, 0xde, 0xf7, 0x0f, 0x28, 0xa1, 0xdc,
+ 0xba, 0x83, 0x3e, 0xb9, 0xcb, 0x97, 0x22, 0x47, 0xb8, 0xfa, 0x53, 0xe8,
+ 0x87, 0x7c, 0x4e, 0x57, 0xa8, 0x3a, 0xc6, 0xc8, 0xb5, 0x5d, 0x54, 0x0d,
+ 0xef, 0xec, 0x0d, 0x09, 0x46, 0x18, 0x5d, 0x36, 0x12, 0x2a, 0xa9, 0x86,
+ 0xf0, 0x8a, 0x45, 0x10, 0xfb, 0xb3, 0x71, 0xd3, 0xa8, 0xb0, 0x5e, 0x83,
+ 0xac, 0xbf, 0x89, 0xcc, 0xa7, 0x95, 0x3d, 0x67, 0x61, 0x42, 0xb6, 0xde,
+ 0x66, 0xc5, 0x29, 0x5d, 0xdf, 0x21, 0x4f, 0x49, 0x4f, 0xd7, 0x63, 0x28,
+ 0xc8, 0x3e, 0x42, 0x80, 0xca, 0xed, 0x5d, 0x2c, 0x4a, 0xa5, 0x23, 0x44,
+ 0x2f, 0xc1, 0x49, 0x8f, 0xb9, 0x77, 0x96, 0x15, 0x03, 0xac, 0x4d, 0xb9,
+ 0xc7, 0x01, 0x3b, 0xa6, 0xd5, 0x57, 0xf0, 0x39, 0x46, 0x83, 0x1e, 0x72,
+ 0xc3, 0x84, 0x24, 0xfb, 0xa3, 0xfb, 0xe2, 0x0b, 0x58, 0xe7, 0x03, 0x33,
+ 0x04, 0xcd, 0x50, 0x59, 0x0b, 0x37, 0xcd, 0xf2, 0x5d, 0x7d, 0xb3, 0x8d,
+ 0x30, 0xde, 0x56, 0xab, 0x80, 0xad, 0x49, 0x07, 0xdc, 0x6b, 0x0d, 0xf7,
+ 0x4b, 0x82, 0xdb, 0x3c, 0x00, 0xcf, 0x8b, 0x78, 0x4d, 0xf6, 0x81, 0x16,
+ 0x87, 0x31, 0x6e, 0x79, 0x6f, 0x2e, 0x76, 0xc9, 0xde, 0xb6, 0x6a, 0x9d,
+ 0xcb, 0xe9, 0x01, 0xc6, 0xe4, 0x52, 0xa3, 0x8d, 0x3d, 0x6e, 0x6f, 0x03,
+ 0x89, 0x54, 0x8b, 0xf4, 0x83, 0xa3, 0x76, 0xe6, 0x83, 0xd4, 0x1a, 0x77,
+ 0x50, 0xc3, 0x99, 0xa7, 0x0b, 0x84, 0xa6, 0x98, 0x02, 0x65, 0x4f, 0x3a,
+ 0xb9, 0xe9, 0x76, 0x6f, 0xb7, 0x52, 0x7b, 0xb9, 0x17, 0x40, 0xf9, 0x2a,
+ 0xa4, 0xdf, 0x33, 0x84, 0x72, 0xdd, 0x45, 0x40, 0xc9, 0xf6, 0x15, 0xea,
+ 0x6d, 0x0a, 0x0e, 0x38, 0x78, 0x25, 0x50, 0x4d, 0x55, 0x17, 0xa6, 0x18,
+ 0xba, 0x0c, 0xa2, 0x08, 0xe3, 0x63, 0x4d, 0x0a, 0xe2, 0x6f, 0x96, 0x1b,
+ 0x73, 0x5b, 0x76, 0x63, 0xc4, 0xbe, 0x14, 0xae, 0x45, 0xb7, 0x5e, 0x34,
+ 0x77, 0x04, 0x48, 0x87, 0xe9, 0x0a, 0x82, 0x91, 0x71, 0x96, 0x39, 0x08,
+ 0xdf, 0xd4, 0x0b, 0x9d, 0x01, 0xb1, 0x6b, 0xb7, 0xf2, 0x6b, 0x14, 0x7f,
+ 0xdf, 0x70, 0x3a, 0x53, 0x90, 0x35, 0x33, 0x0f, 0x7d, 0x4a, 0xfe, 0x17,
+ 0xda, 0xd3, 0x2c, 0x37, 0x88, 0x7f, 0xde, 0xca, 0x8a, 0x6b, 0x41, 0xb1,
+ 0x3d, 0x1a, 0x69, 0x35, 0xe2, 0xfa, 0xca, 0x5a, 0xad, 0x72, 0x3d, 0xcf,
+ 0x9c, 0x86, 0x74, 0x8b, 0x01, 0xc5, 0x7b, 0x17, 0x8b, 0x58, 0xb5, 0x4a,
+ 0x4c, 0x48, 0x55, 0x5a, 0xe9, 0xc1, 0xdd, 0x72, 0x79, 0xd8, 0x01, 0x71,
+ 0xd7, 0x7e, 0x6f, 0x81, 0x2b, 0xc4, 0xc2, 0xb4, 0xad, 0xe7, 0x69, 0x8b,
+ 0x0f, 0x04, 0x2d, 0x27, 0xdb, 0x07, 0x72, 0x7b, 0xca, 0xf1, 0xac, 0x42,
+ 0x20, 0x61, 0x5a, 0x7d, 0x6e, 0x47, 0x57, 0xcd, 0xe1, 0xeb, 0xca, 0xd1,
+ 0x78, 0xf2, 0x09, 0xba, 0x1e, 0x3c, 0x64, 0xc9, 0x43, 0x15, 0x27, 0x0d,
+ 0xec, 0xf7, 0x28, 0x5f, 0xc6, 0x5a, 0xa9, 0x59, 0x20, 0x96, 0x10, 0xfd,
+ 0xd7, 0x0e, 0xeb, 0x0b, 0xe6, 0xa7, 0xcc, 0xba, 0xd4, 0xdc, 0x28, 0x4a,
+ 0x77, 0x29, 0x50, 0x82, 0x17, 0x44, 0xfe, 0xfc, 0xe9, 0xc6, 0xbb, 0x28,
+ 0xdd, 0xaf, 0x80, 0x9e, 0xf3, 0x51, 0xae, 0x48, 0x4a, 0x1d, 0x08, 0x95,
+ 0xd0, 0xf2, 0x0d, 0x6f, 0xe3, 0x6b, 0xbe, 0x40, 0x9b, 0xd4, 0xb1, 0xe0,
+ 0x90, 0x06, 0x9e, 0x23, 0xd1, 0xb0, 0x4f, 0x71, 0x6a, 0x40, 0x95, 0xf5,
+ 0xee, 0x50, 0x62, 0x65, 0x26, 0x4f, 0xbf, 0xe3, 0xec, 0xda, 0x81, 0x59,
+ 0x80, 0x3b, 0xd7, 0x66, 0xdc, 0xa2, 0xdc, 0xff, 0x04, 0x64, 0x2a, 0x1c,
+ 0x14, 0xe1, 0xe0, 0xc1, 0xa4, 0x9c, 0x35, 0x06, 0x94, 0x7f, 0x55, 0x7b,
+ 0x10, 0xfe, 0xea, 0x84, 0x01, 0xfd, 0xff, 0x3a, 0x33, 0xd4, 0xad, 0x9b,
+ 0x40, 0x68, 0x33, 0x65, 0x13, 0xf8, 0x52, 0xde, 0x2a, 0x48, 0xdc, 0xb8,
+ 0xbc, 0xf9, 0x2f, 0x50, 0xc6, 0xe9, 0x8b, 0x54, 0xe4, 0xf1, 0x10, 0xbe,
+ 0x2d, 0xce, 0x32, 0x5e, 0x55, 0x99, 0xc3, 0x89, 0x6a, 0x21, 0x41, 0xb6,
+ 0xf1, 0xff, 0x65, 0xbd, 0x62, 0x9e, 0x96, 0x02, 0xf6, 0xe5, 0xba, 0x9c,
+ 0xd7, 0xb0, 0xc4, 0x94, 0x1a, 0xee, 0x1d, 0xe2, 0x24, 0x72, 0xbf, 0x96,
+ 0x28, 0x9a, 0x2a, 0x49, 0xcd, 0x08, 0x72, 0x89, 0x51, 0xff, 0x76, 0x92,
+ 0x18, 0x0a, 0x80, 0xb4, 0xea, 0xac, 0x35, 0x19, 0xca, 0xef, 0xc0, 0x68,
+ 0x0e, 0x63, 0x8a, 0xb1, 0x4f, 0xbe, 0xd8, 0x0f, 0x43, 0x58, 0xea, 0x30,
+ 0xce, 0x6b, 0xfb, 0xf4, 0x8b, 0x0e, 0x52, 0x0b, 0x19, 0x9e, 0x13, 0xa0,
+ 0x28, 0x45, 0x3f, 0x95, 0x2d, 0x34, 0x92, 0xe0, 0x79, 0x73, 0x46, 0xef,
+ 0x7d, 0x8f, 0xe7, 0x4c, 0xa6, 0xd3, 0x2a, 0xa6, 0x4d, 0x4c, 0xe4, 0x64,
+ 0x07, 0x96, 0x38, 0x81, 0x3c, 0x1f, 0x22, 0x24, 0x69, 0x8e, 0xc8, 0x86,
+ 0xb3, 0xad, 0x5d, 0xf3, 0xe5, 0xe9, 0x87, 0xaa, 0xee, 0xa5, 0x4a, 0xc6,
+ 0x9a, 0xda, 0x14, 0x1e, 0x99, 0x13, 0x67, 0xac, 0xa3, 0x77, 0xe1, 0xa7,
+ 0xa4, 0x41, 0x11, 0x10, 0x6b, 0x7f, 0x1b, 0x53, 0x73, 0xf4, 0x1c, 0x44,
+ 0x20, 0xc8, 0x60, 0x56, 0x8c, 0xbe, 0xb5, 0x1e, 0x8f, 0xf9, 0x0e, 0xbd,
+ 0x8a, 0xf2, 0x46, 0x5b, 0xfc, 0x51, 0x6c, 0x99, 0xf9, 0x78, 0xc1, 0x55,
+ 0x35, 0xa4, 0xff, 0x0a, 0x34, 0x22, 0xb9, 0x1b, 0x66, 0x10, 0xaa, 0x61,
+ 0xe3, 0x53, 0xd2, 0x60, 0xa4, 0xc5, 0xd7, 0xb4, 0xba, 0x97, 0x13, 0x79,
+ 0x63, 0xf2, 0x07, 0xdb, 0xad, 0x1d, 0xd9, 0x68, 0xa3, 0x16, 0xeb, 0x53,
+ 0x6f, 0xdf, 0xe8, 0xf4, 0xa0, 0x13, 0x98, 0x37, 0xe2, 0xb4, 0x7e, 0xc6,
+ 0xf9, 0x24, 0xcf, 0xdd, 0x12, 0x18, 0x02, 0x22, 0x56, 0xc6, 0x53, 0x2c,
+ 0x32, 0xbd, 0xee, 0x57, 0x47, 0xa3, 0x06, 0xb1, 0xf6, 0x27, 0x8d, 0xdc,
+ 0x45, 0x36, 0xdf, 0x04, 0xe5, 0x79, 0x6d, 0xaf, 0x14, 0x45, 0x78, 0xf4,
+ 0x50, 0x67, 0xdd, 0xea, 0x7f, 0x0d, 0xa9, 0xdc, 0x53, 0x72, 0x3f, 0x93,
+ 0x7b, 0x31, 0x22, 0x5a, 0xc6, 0x17, 0xd7, 0xbc, 0x67, 0x7a, 0x0b, 0xdb,
+ 0x14, 0xf8, 0x1e, 0x95, 0xa1, 0xcd, 0x5b, 0x04, 0x0a, 0x5c, 0xae, 0x96,
+ 0xa6, 0xa0, 0x8e, 0xfd, 0xad, 0x37, 0xdf, 0xe1, 0x64, 0xd4, 0x04, 0xa8,
+ 0x55, 0xde, 0x64, 0x13, 0x2b, 0x44, 0x0c, 0x3b, 0x4b, 0x8c, 0x2f, 0x54,
+ 0x5f, 0x55, 0x46, 0xce, 0x39, 0xdd, 0xc9, 0x9b, 0x3e, 0xf8, 0x7c, 0x16,
+ 0xf3, 0x78, 0x16, 0xf0, 0x70, 0xeb, 0xd5, 0x77, 0x7f, 0xbc, 0x48, 0x6b,
+ 0xef, 0xfb, 0x61, 0xd1, 0xea, 0x8e, 0x16, 0x1f, 0x76, 0xd8, 0xbf, 0x2f,
+ 0x2a, 0x49, 0x7f, 0x81, 0xd3, 0x22, 0xa1, 0x34, 0x38, 0x0e, 0x68, 0x93,
+ 0x96, 0x9f, 0x98, 0x27, 0x41, 0xd3, 0x85, 0x60, 0x10, 0x44, 0x53, 0x7a,
+ 0x71, 0xe2, 0xaf, 0x7f, 0xc3, 0xff, 0x96, 0x70, 0xfe, 0x7b, 0xd6, 0x38,
+ 0x4b, 0x6b, 0x0e, 0x21, 0x7f, 0xdf, 0x68, 0x5b, 0x35, 0x37, 0x29, 0xcb,
+ 0xdd, 0x7d, 0xdf, 0xa2, 0xbb, 0xe0, 0x4c, 0x44, 0x5a, 0x46, 0xf4, 0x77,
+ 0xd1, 0xaa, 0x4f, 0x23, 0xeb, 0x39, 0x31, 0x47, 0x9b, 0x07, 0x82, 0x4a,
+ 0x21, 0xa6, 0xae, 0x59, 0x3f, 0xba, 0xa1, 0x30, 0x11, 0xa0, 0x2d, 0x44,
+ 0xfb, 0x63, 0x5a, 0x77, 0x89, 0xd4, 0xee, 0x54, 0xd7, 0xd9, 0x92, 0xfc,
+ 0xee, 0xc4, 0x72, 0x82, 0x88, 0x55, 0x14, 0xb6, 0x52, 0x5e, 0x0f, 0xf1,
+ 0xa3, 0x8e, 0x53, 0xe8, 0xd8, 0x35, 0xb8, 0x39, 0x19, 0x0e, 0xdb, 0x9e,
+ 0x81, 0x3d, 0x64, 0xf3, 0x2c, 0xcc, 0xc4, 0x35, 0x0d, 0xaf, 0x95, 0x16,
+ 0xd7, 0xa3, 0x2d, 0x76, 0x73, 0x46, 0x59, 0xc2, 0xd1, 0x2b, 0xcb, 0x3f,
+ 0x2e, 0x83, 0xa5, 0xb3, 0x9e, 0x7a, 0x9f, 0xbd, 0x79, 0xf4, 0x27, 0x24,
+ 0xc4, 0x8f, 0x0c, 0xf8, 0x44, 0x6a, 0xf5, 0x33, 0xa0, 0xbd, 0xcd, 0xc6,
+ 0x2b, 0xaa, 0x28, 0x03, 0xe4, 0x49, 0x3e, 0x69, 0x38, 0xa0, 0x08, 0xad,
+ 0x02, 0xad, 0xd1, 0xb2, 0x75, 0xe4, 0xf0, 0x73, 0xa2, 0x35, 0x3b, 0xb4,
+ 0x04, 0x37, 0xc0, 0xc2, 0x7e, 0xeb, 0x75, 0x8c, 0x16, 0xa2, 0xcd, 0x11,
+ 0xd7, 0xff, 0x36, 0x73, 0x32, 0x6f, 0xb2, 0x4b, 0x05, 0x6b, 0xd9, 0xc2,
+ 0x1f, 0xb9, 0x8d, 0xbf, 0x94, 0xc7, 0xfc, 0xc2, 0xfc, 0x08, 0x5c, 0x32,
+ 0x12, 0x5c, 0x00, 0xad, 0x9e, 0x27, 0x03, 0x93, 0xdb, 0x2b, 0xf7, 0xff,
+ 0x76, 0x1b, 0xeb, 0x89, 0x89, 0x5a, 0x5a, 0x18, 0x5d, 0x1f, 0x96, 0x61,
+ 0x9a, 0x30, 0x13, 0x3e, 0xc1, 0xfe, 0x98, 0x71, 0x2b, 0x2e, 0x80, 0x9d,
+ 0x4e, 0x22, 0x41, 0x03, 0x10, 0xcc, 0xec, 0xfc, 0x22, 0x30, 0x8c, 0xb9,
+ 0x65, 0x1e, 0xcc, 0xb5, 0x3c, 0xc8, 0x9b, 0xd1, 0x54, 0x82, 0xc4, 0x7e,
+ 0xc1, 0x9e, 0xd8, 0x3a, 0x36, 0x7b, 0x66, 0xec, 0xfd, 0x3d, 0x19, 0x89,
+ 0x14, 0x8c, 0x03, 0xcc, 0x80, 0xcf, 0x34, 0x92, 0x19, 0x68, 0x70, 0x05,
+ 0x83, 0x03, 0xd2, 0x54, 0xf0, 0x80, 0xdc, 0xfb, 0x5f, 0x19, 0xba, 0xea,
+ 0x58, 0xfb, 0x54, 0x5e, 0x79, 0x3d, 0xd1, 0xa5, 0x84, 0x66, 0x26, 0x19,
+ 0x45, 0x6f, 0x91, 0x53, 0xd1, 0x43, 0x61, 0xd5, 0xaa, 0xc4, 0x4e, 0x70,
+ 0xa4, 0x31, 0x3f, 0x48, 0x28, 0x35, 0xed, 0x6a, 0xd3, 0x0b, 0xdd, 0x03,
+ 0x70, 0x4c, 0x8d, 0xca, 0x65, 0xda, 0x6f, 0x3b, 0xa1, 0x95, 0x0c, 0x18,
+ 0x56, 0xb5, 0x51, 0x5d, 0x35, 0x04, 0xf5, 0x72, 0xaa, 0xf0, 0xc1, 0xfc,
+ 0x42, 0x94, 0xb6, 0x11, 0x24, 0x49, 0x89, 0x4c, 0x67, 0xea, 0x9d, 0xa5,
+ 0x69, 0xc6, 0x22, 0x36, 0x5b, 0x6f, 0xa5, 0x09, 0xc7, 0x78, 0xe3, 0xdc,
+ 0x59, 0xa9, 0xc0, 0xe1, 0x49, 0x2e, 0x8d, 0x6c, 0xa9, 0xcf, 0x5a, 0xd2,
+ 0x0e, 0xdb, 0xe3, 0xd3, 0xb2, 0x36, 0xc1, 0x0f, 0xbe, 0xf6, 0xcf, 0xf9,
+ 0x84, 0xa7, 0x33, 0x1c, 0x20, 0x8e, 0x4c, 0x75, 0xa4, 0x36, 0x7f, 0xc3,
+ 0x57, 0xa6, 0x8c, 0x06, 0x57, 0x0b, 0x73, 0x9a, 0xc7, 0xe9, 0xb2, 0x5b,
+ 0x20, 0x7a, 0x2c, 0xff, 0xdc, 0xaa, 0xf5, 0xa7, 0x62, 0x7d, 0xc7, 0xa6,
+ 0xc9, 0x24, 0x5e, 0x19, 0x05, 0x99, 0x96, 0xd0, 0x06, 0x9a, 0x64, 0xc3,
+ 0x8f, 0x01, 0xc9, 0x32, 0x52, 0xe2, 0x9a, 0x21, 0xfa, 0xf2, 0xc5, 0xf5,
+ 0xa2, 0x6a, 0xaa, 0x5a, 0xf6, 0x80, 0xa0, 0xcd, 0x89, 0xa9, 0xf4, 0x92,
+ 0xa1, 0xdf, 0x84, 0x04, 0x78, 0xb2, 0xdc, 0x3e, 0x8b, 0xe3, 0x86, 0xb7,
+ 0x0b, 0xc0, 0xed, 0x43, 0x14, 0x87, 0x72, 0xcd, 0xaa, 0x7b, 0x2c, 0x5c,
+ 0x61, 0x3a, 0xc0, 0x8d, 0x08, 0xde, 0x74, 0xe8, 0x02, 0x93, 0x53, 0x3f,
+ 0xff, 0x8f, 0x6d, 0xa3, 0xd0, 0x1f, 0xd0, 0x5d, 0xd7, 0x13, 0xfe, 0xeb,
+ 0x01, 0xcd, 0x60, 0x46, 0xb7, 0x29, 0x4e, 0x00, 0x59, 0x1a, 0xb3, 0x8f,
+ 0x0a, 0x66, 0xfe, 0x22, 0x73, 0x9e, 0x2a, 0x5d, 0x6b, 0x59, 0x72, 0x19,
+ 0xf8, 0x9e, 0x43, 0xce, 0xc6, 0x2b, 0x19, 0x89, 0x6c, 0x03, 0x58, 0xd9,
+ 0x34, 0x8f, 0x6f, 0x98, 0xc4, 0x1d, 0xde, 0x60, 0xba, 0x7b, 0x3c, 0x92,
+ 0xa8, 0xeb, 0x41, 0xc3, 0x00, 0xbc, 0x24, 0x5a, 0x99, 0x23, 0xa4, 0x30,
+ 0xe0, 0x6b, 0x23, 0xa9, 0x15, 0xf8, 0x5c, 0x84, 0x61, 0x8c, 0x90, 0x09,
+ 0x1f, 0x88, 0x03, 0xe1, 0x19, 0x05, 0x95, 0x42, 0x9a, 0x15, 0x67, 0x03,
+ 0xe0, 0x57, 0x67, 0x8a, 0xa5, 0x31, 0xf1, 0x54, 0xf8, 0xee, 0xe9, 0xb9,
+ 0xf5, 0x3a, 0x1d, 0xa2, 0x0a, 0x66, 0x50, 0x24, 0x4c, 0xae, 0x0e, 0xa4,
+ 0xbb, 0xb5, 0x3b, 0x40, 0x8b, 0x76, 0x87, 0x70, 0xb3, 0x17, 0xb3, 0x64,
+ 0xea, 0x9e, 0x37, 0xcc, 0x0b, 0x14, 0x29, 0x27, 0x88, 0x3e, 0x4c, 0xfd,
+ 0xa3, 0x4e, 0xf0, 0x24, 0x66, 0x73, 0xae, 0x0a, 0x1b, 0x11, 0xc6, 0x3e,
+ 0x1d, 0x53, 0x10, 0x41, 0xdd, 0x7d, 0x8f, 0x53, 0xd9, 0x17, 0x14, 0xd5,
+ 0xe4, 0xf5, 0x55, 0xba, 0xf4, 0xfb, 0x7b, 0x16, 0x30, 0xff, 0xdf, 0xf2,
+ 0xdb, 0x0e, 0x8a, 0x24, 0xe5, 0xb6, 0x63, 0x06, 0xe9, 0x03, 0xef, 0xea,
+ 0x44, 0x86, 0xad, 0xb4, 0x09, 0x5c, 0x03, 0x56, 0x75, 0x0e, 0xa2, 0x4f,
+ 0xb8, 0x21, 0xe7, 0xd5, 0x40, 0x74, 0xa1, 0x84, 0xcb, 0x54, 0xb1, 0x17,
+ 0x7b, 0x0f, 0xdb, 0x1c, 0xd0, 0xf4, 0x01, 0x26, 0x5d, 0x93, 0x31, 0xdc,
+ 0xac, 0xe5, 0x33, 0xdd, 0xe6, 0x01, 0xa4, 0xbc, 0x4b, 0x79, 0xa6, 0x0d,
+ 0x1b, 0x5e, 0x7c, 0x7c, 0xe7, 0x0d, 0xa3, 0xe0, 0x88, 0x5a, 0x98, 0x3f,
+ 0xa6, 0xa2, 0x0f, 0x0f, 0x2a, 0x66, 0x78, 0x62, 0x4f, 0x76, 0xff, 0xca,
+ 0xeb, 0x1e, 0x0b, 0x5e, 0x7b, 0xe3, 0x3a, 0x9d, 0x0a, 0x54, 0x97, 0x45,
+ 0xeb, 0xbd, 0x02, 0xe1, 0x19, 0xd0, 0x2d, 0xea, 0x90, 0x9c, 0x1d, 0x10,
+ 0x04, 0x94, 0x41, 0xa7, 0x22, 0x58, 0x68, 0xd8, 0x7e, 0x06, 0x0a, 0x9e,
+ 0x1a, 0x66, 0x8b, 0xb9, 0x7b, 0xcd, 0xd3, 0xf3, 0x6e, 0xbd, 0x8c, 0xd7,
+ 0x60, 0xb8, 0xc2, 0x3b, 0xfb, 0x0f, 0xce, 0x91, 0xd2, 0x5e, 0x10, 0xdf,
+ 0x02, 0x01, 0x69, 0xae, 0x1f, 0x35, 0x2a, 0x51, 0x09, 0xc8, 0x5f, 0xf2,
+ 0x12, 0xe5, 0x55, 0x88, 0x9d, 0x8f, 0xab, 0xd3, 0xdd, 0x52, 0x68, 0xfb,
+ 0x8b, 0xfb, 0x2a, 0x81, 0x46, 0x8a, 0x78, 0xc7, 0x97, 0x30, 0xea, 0x32,
+ 0x2e, 0xfb, 0x3a, 0x33, 0x86, 0x6a, 0xb9, 0x69, 0x54, 0xfb, 0xfe, 0x6e,
+ 0xd5, 0x8c, 0x5f, 0x33, 0x88, 0xf0, 0x62, 0x9e, 0x27, 0x5b, 0xb6, 0xcd,
+ 0xc6, 0x19, 0xec, 0xbb, 0x7b, 0x43, 0xc3, 0x51, 0x59, 0xfd, 0x9b, 0xc5,
+ 0x90, 0x59, 0x25, 0xba, 0x59, 0x24, 0x67, 0xc9, 0x60, 0x86, 0x0c, 0x66,
+ 0x04, 0x3e, 0xc3, 0x61, 0xfd, 0x36, 0x25, 0x2b, 0xcd, 0x18, 0x84, 0x3a,
+ 0x8f, 0x8e, 0xf4, 0x15, 0xc8, 0x45, 0x65, 0x12, 0xd4, 0xb4, 0x67, 0xad,
+ 0xda, 0x97, 0xf2, 0x18, 0xe2, 0xf4, 0xb7, 0x5e, 0x5d, 0x94, 0x26, 0xb9,
+ 0x66, 0xac, 0x5f, 0x37, 0xe4, 0xb8, 0xab, 0xb5, 0x62, 0x4f, 0xd8, 0xf4,
+ 0xf9, 0xe3, 0x78, 0xa2, 0x68, 0x8f, 0xea, 0x5b, 0x2d, 0x05, 0xb6, 0xb4,
+ 0xbe, 0xc6, 0x11, 0x8c, 0x5a, 0x10, 0x85, 0x2d, 0xe5, 0xe3, 0x65, 0xa3,
+ 0xbd, 0x9c, 0x10, 0x71, 0xd8, 0x25, 0x4d, 0xed, 0xc4, 0xa8, 0xac, 0x5d,
+ 0x76, 0x13, 0xaa, 0x7c, 0x96, 0x14, 0x3d, 0xfb, 0x7c, 0xbe, 0x56, 0x65,
+ 0x4a, 0x3d, 0xcd, 0xaa, 0xdf, 0xe3, 0x07, 0x00, 0xf4, 0x2f, 0x4c, 0x1a,
+ 0x39, 0x0e, 0x9e, 0x86, 0xff, 0x32, 0x1b, 0x78, 0x09, 0xd2, 0x16, 0xc2,
+ 0x4e, 0xb3, 0x51, 0x7c, 0xf4, 0x9c, 0xef, 0x71, 0x44, 0x93, 0xca, 0xa3,
+ 0x53, 0xe6, 0xf3, 0xa1, 0xb9, 0x2d, 0x85, 0x57, 0xaf, 0x42, 0x3f, 0x61,
+ 0x53, 0xb6, 0xee, 0xf5, 0xbe, 0xe6, 0x75, 0x60, 0xbb, 0xf3, 0x66, 0xa4,
+ 0x51, 0x80, 0x21, 0xc5, 0x76, 0x9a, 0x5f, 0x1e, 0x65, 0x74, 0xea, 0x62,
+ 0x30, 0x10, 0x8c, 0x71, 0x6d, 0x2e, 0x02, 0xcd, 0xb6, 0x15, 0x30, 0x53,
+ 0x6c, 0xfc, 0x85, 0x56, 0x2d, 0x87, 0x8a, 0xcb, 0xf6, 0x04, 0x31, 0x47,
+ 0xa8, 0xc9, 0xf3, 0xa0, 0x24, 0xe6, 0x97, 0x6e, 0xac, 0xf0, 0x4a, 0x28,
+ 0xdc, 0xfd, 0x17, 0x1f, 0x5a, 0xe9, 0x8d, 0xd5, 0xce, 0x5a, 0x6e, 0x7d,
+ 0xaf, 0xa6, 0x00, 0xd6, 0x74, 0xc3, 0xf2, 0x6c, 0x8a, 0x32, 0xdd, 0xd5,
+ 0x51, 0xb4, 0xb8, 0x08, 0xec, 0x08, 0x25, 0x9b, 0x42, 0x93, 0x26, 0x57,
+ 0x14, 0xa3, 0x0d, 0xb6, 0x9d, 0x91, 0xfe, 0x7a, 0x4a, 0xe5, 0x93, 0x46,
+ 0x26, 0x98, 0x2e, 0x16, 0xed, 0x59, 0xde, 0x6d, 0x91, 0xb8, 0xe6, 0x3e,
+ 0xb3, 0x79, 0x86, 0x78, 0xa3, 0x3b, 0xff, 0x3a, 0x34, 0x68, 0x7f, 0xe3,
+ 0x0b, 0xe4, 0xcb, 0xb3, 0xd2, 0xc6, 0xb7, 0x4d, 0x15, 0xd1, 0xa9, 0x16,
+ 0xd2, 0x21, 0x05, 0xe2, 0x7c, 0x2c, 0x58, 0x75, 0xd2, 0x07, 0x3f, 0xd7,
+ 0xa5, 0xbb, 0x86, 0xdd, 0x4a, 0x2b, 0xbc, 0x30, 0xc9, 0xe0, 0x55, 0x81,
+ 0xf6, 0x51, 0xc6, 0x1f, 0x99, 0xe5, 0x7e, 0x54, 0x49, 0x6e, 0xfb, 0x5a,
+ 0x3a, 0xe3, 0xd5, 0x6d, 0xdc, 0x8d, 0x9a, 0x69, 0x2d, 0x6d, 0xed, 0xd3,
+ 0xec, 0xeb, 0x54, 0x42, 0xc0, 0x84, 0xd9, 0x9a, 0x1c, 0xb7, 0xea, 0x4a,
+ 0x97, 0x56, 0x70, 0xc9, 0x98, 0x28, 0x75, 0x84, 0xd1, 0x9f, 0x07, 0x5f,
+ 0x45, 0xb3, 0x85, 0xf3, 0xa3, 0xea, 0x6f, 0xbb, 0x7b, 0xf7, 0xcf, 0xde,
+ 0x73, 0xd6, 0x4b, 0x6f, 0xab, 0x49, 0x9e, 0xc6, 0x9a, 0x93, 0xe8, 0x81,
+ 0x92, 0x2d, 0xd5, 0x6f, 0x4a, 0xaa, 0xb8, 0xeb, 0x64, 0xc4, 0xd0, 0x80,
+ 0xcb, 0x06, 0xe5, 0x67, 0x44, 0xfd, 0x78, 0x27, 0x32, 0x93, 0xaf, 0x94,
+ 0x9d, 0xc4, 0xa9, 0x07, 0x6e, 0x6b, 0x36, 0x44, 0xc0, 0x16, 0x86, 0x7d,
+ 0xdb, 0x94, 0x7d, 0x44, 0x5c, 0x66, 0x38, 0x92, 0xe0, 0xb9, 0x39, 0x2b,
+ 0x3c, 0x24, 0xe0, 0x9a, 0xc9, 0x7a, 0x68, 0x1f, 0x80, 0x3d, 0xee, 0xf4,
+ 0xb6, 0x38, 0x4b, 0xfb, 0x73, 0x7d, 0x28, 0xe8, 0xf6, 0x27, 0x52, 0xb6,
+ 0x21, 0x29, 0x2a, 0x8b, 0x76, 0x78, 0xb0, 0xa9, 0x58, 0x63, 0x35, 0xa5,
+ 0x48, 0xac, 0xe7, 0x47, 0x26, 0x13, 0xc6, 0x83, 0x66, 0x67, 0xaa, 0x00,
+ 0x1f, 0x66, 0xba, 0x60, 0xde, 0x46, 0xf3, 0x5f, 0xe2, 0xc9, 0x16, 0xe9,
+ 0xc1, 0x84, 0x85, 0xac, 0x07, 0x58, 0x2b, 0x74, 0xed, 0xa4, 0xbc, 0x60,
+ 0x70, 0x44, 0x4f, 0x0a, 0x77, 0x26, 0xcc, 0x05, 0x12, 0xe4, 0x09, 0x6b,
+ 0x50, 0x7b, 0xb7, 0x3c, 0xfe, 0x9f, 0x67, 0x14, 0xf3, 0x40, 0x98, 0x5e,
+ 0x17, 0xf4, 0x53, 0xb8, 0x9e, 0x87, 0xf8, 0x50, 0x8f, 0x53, 0x03, 0x6e,
+ 0xf1, 0x55, 0x90, 0xf5, 0x1a, 0x01, 0x65, 0x02, 0xce, 0xaf, 0xab, 0xfa,
+ 0x51, 0xee, 0x95, 0x91, 0x0c, 0x05, 0xe9, 0x46, 0xd1, 0xa5, 0xa1, 0x16,
+ 0xcd, 0x3e, 0x81, 0x61, 0x44, 0xee, 0x9d, 0x00, 0xce, 0x68, 0x67, 0x18,
+ 0x71, 0xd4, 0x14, 0x7c, 0x7a, 0x22, 0x27, 0x76, 0x0f, 0x54, 0x58, 0x06,
+ 0x00, 0x50, 0x8e, 0x73, 0xe9, 0x5c, 0x51, 0x55, 0x12, 0xce, 0x49, 0xc9,
+ 0x95, 0xdc, 0x1e, 0xb7, 0xa4, 0x47, 0xf1, 0xfe, 0x1e, 0x29, 0xbe, 0xcd,
+ 0xa6, 0xdd, 0x54, 0xbe, 0x71, 0xb9, 0x78, 0xcd, 0xe9, 0x55, 0x7c, 0x6c,
+ 0x62, 0x27, 0xbe, 0xb7, 0x9c, 0xff, 0xbc, 0x88, 0x44, 0x9a, 0x5e, 0xfd,
+ 0xf1, 0xce, 0x29, 0x4e, 0x6f, 0xa0, 0xce, 0x45, 0x69, 0x0a, 0x7d, 0xf1,
+ 0x01, 0x2d, 0xbf, 0x72, 0x41, 0x88, 0xa9, 0xd2, 0x5a, 0x57, 0x1d, 0xa2,
+ 0xf4, 0x2d, 0xba, 0xa6, 0x53, 0xc9, 0x90, 0x36, 0x2d, 0x05, 0x81, 0xa3,
+ 0xb0, 0x9f, 0x3b, 0x7f, 0x0d, 0x4d, 0x9d, 0xb4, 0x25, 0x58, 0x01, 0x56,
+ 0xed, 0xdb, 0xb6, 0xc6, 0xfd, 0x82, 0xcc, 0xca, 0x15, 0x13, 0x13, 0x08,
+ 0x68, 0xbf, 0xd7, 0x11, 0xd5, 0xed, 0x19, 0x0c, 0xf0, 0x7e, 0x66, 0xa2,
+ 0xb1, 0x95, 0x74, 0xc3, 0x23, 0x6e, 0xf4, 0x7d, 0xc3, 0x93, 0x1c, 0xfc,
+ 0xd9, 0x34, 0xe8, 0xfb, 0x9d, 0xe3, 0xea, 0xd5, 0x01, 0x3a, 0x16, 0x3c,
+ 0xbe, 0x35, 0xba, 0xbb, 0x43, 0x2d, 0x47, 0x41, 0xaf, 0xf9, 0xcd, 0x2b,
+ 0x9d, 0xed, 0x5e, 0x47, 0x40, 0x7e, 0x4b, 0xb3, 0x05, 0x56, 0x67, 0x9c,
+ 0x39, 0xf4, 0x30, 0x08, 0x8f, 0xd9, 0x4c, 0x46, 0x78, 0x8b, 0xa0, 0xc0,
+ 0x55, 0x48, 0x21, 0x30, 0x78, 0xeb, 0x86, 0x5a, 0x57, 0x74, 0x61, 0x8a,
+ 0x0a, 0x05, 0x80, 0x2b, 0x48, 0xfb, 0x10, 0xde, 0x89, 0x92, 0xa7, 0x16,
+ 0x68, 0xff, 0x38, 0x1d, 0xc5, 0x40, 0x14, 0x63, 0x5b, 0x3f, 0xff, 0xed,
+ 0x7c, 0x30, 0x91, 0xf2, 0x6a, 0x00, 0xcb, 0xce, 0x78, 0xda, 0x5a, 0x17,
+ 0x33, 0x6c, 0xc5, 0x0b, 0x9a, 0xd0, 0xd7, 0x2e, 0x9e, 0x3b, 0x5d, 0x6f,
+ 0xf5, 0xed, 0x11, 0x6f, 0x83, 0x95, 0xab, 0x5c, 0x23, 0x0b, 0xc8, 0xb0,
+ 0xf3, 0xb5, 0x14, 0xe8, 0xb9, 0x83, 0xda, 0x2c, 0xd2, 0x75, 0x8b, 0x0d,
+ 0x6e, 0xf0, 0x99, 0x08, 0x95, 0xfe, 0xf4, 0xf0, 0x8a, 0x8b, 0x43, 0xa1,
+ 0xb3, 0x84, 0x39, 0xc1, 0x56, 0x59, 0xc6, 0xc8, 0x67, 0x40, 0x8e, 0xcc,
+ 0xcd, 0xde, 0xf1, 0xd7, 0xee, 0x43, 0x36, 0x46, 0x78, 0xf7, 0x86, 0x5d,
+ 0x2f, 0x72, 0x5e, 0xc8, 0xf9, 0xb6, 0x19, 0xd6, 0xb2, 0xb4, 0xaf, 0xc2,
+ 0x95, 0x8c, 0x5e, 0x4f, 0xa4, 0xc2, 0x6f, 0x45, 0xcc, 0xdb, 0x69, 0x0e,
+ 0xd3, 0x1b, 0xfd, 0x2d, 0x8d, 0x96, 0xa7, 0x13, 0x23, 0x72, 0xa9, 0x89,
+ 0xdb, 0xbc, 0x2a, 0x3e, 0x63, 0x32, 0x3b, 0xf5, 0xd7, 0x9a, 0xda, 0x9d,
+ 0x61, 0xc0, 0x4c, 0x88, 0x30, 0x3a, 0x35, 0xac, 0x0b, 0x25, 0x67, 0x84,
+ 0x5e, 0xf0, 0xf1, 0xb7, 0x1b, 0xb7, 0xbb, 0x16, 0xe6, 0x81, 0x5f, 0x75,
+ 0x76, 0x4e, 0x7a, 0x40, 0xc1, 0x91, 0x69, 0x51, 0xfb, 0xe4, 0x9a, 0x51,
+ 0xe8, 0x24, 0x2c, 0x71, 0x7c, 0x15, 0x2a, 0x60, 0xe1, 0x0d, 0xb8, 0x62,
+ 0x36, 0xe3, 0x2c, 0xd9, 0xd0, 0x0f, 0x20, 0x3a, 0xe8, 0xfa, 0x90, 0xfc,
+ 0xaf, 0x3c, 0xfd, 0xe5, 0x9f, 0xdf, 0xac, 0x70, 0x08, 0xf7, 0x42, 0x83,
+ 0xc4, 0xfa, 0xcb, 0x5b, 0xf7, 0xcd, 0x70, 0x09, 0xfc, 0xed, 0x88, 0xf1,
+ 0x14, 0x52, 0x4e, 0xd5, 0x77, 0x14, 0x20, 0x93, 0x41, 0x58, 0x10, 0x14,
+ 0xea, 0x20, 0xf8, 0x3e, 0x8c, 0x09, 0xa3, 0xca, 0xc1, 0xdd, 0xef, 0x6c,
+ 0xf6, 0x66, 0x65, 0x78, 0xcd, 0x56, 0xa1, 0x6e, 0x6c, 0x77, 0xca, 0x9b,
+ 0x86, 0x17, 0xa1, 0x6f, 0xa4, 0x5c, 0xa5, 0xbf, 0x8f, 0x7a, 0x1e, 0x96,
+ 0x11, 0x17, 0x04, 0x54, 0x6a, 0x59, 0xdc, 0x2a, 0x4e, 0xff, 0xe8, 0x0f,
+ 0xce, 0xe7, 0xd1, 0xd1, 0x92, 0xab, 0x1e, 0x91, 0xba, 0x48, 0xbc, 0x39,
+ 0x44, 0xa0, 0x0b, 0x69, 0xe7, 0x3e, 0xba, 0x34, 0x76, 0x59, 0xc5, 0x00,
+ 0x84, 0x25, 0xb0, 0xbb, 0x8a, 0xb4, 0xee, 0x20, 0x84, 0x37, 0x97, 0x99,
+ 0x18, 0xf1, 0x51, 0x45, 0x03, 0x1c, 0x4e, 0x78, 0xa0, 0x22, 0xc4, 0xce,
+ 0x2f, 0x53, 0xf8, 0x5b, 0x9e, 0x22, 0x6f, 0x2c, 0x09, 0x60, 0x9a, 0x1f,
+ 0x64, 0x8c, 0x50, 0x2e, 0x56, 0xe2, 0xd9, 0x5e, 0x99, 0xc2, 0x97, 0x9f,
+ 0x19, 0xab, 0xab, 0xa8, 0x22, 0x7f, 0x7b, 0x5b, 0x11, 0xe8, 0x0b, 0x43,
+ 0xda, 0xfc, 0xeb, 0x26, 0xc3, 0xd3, 0xab, 0xc5, 0xa7, 0xf6, 0xfb, 0xec,
+ 0xd7, 0x96, 0xa8, 0x46, 0xaa, 0x6f, 0xd2, 0x02, 0xc5, 0x3a, 0xd7, 0x4e,
+ 0x72, 0x45, 0xed, 0xcc, 0x51, 0xa8, 0xdc, 0xe3, 0x6c, 0x50, 0x17, 0x2b,
+ 0xe0, 0x23, 0x9b, 0xe8, 0x3d, 0xb6, 0x5d, 0x3a, 0xeb, 0xc5, 0x7f, 0x18,
+ 0xc7, 0xa2, 0x30, 0x01, 0x04, 0x90, 0x9b, 0xa3, 0xd8, 0xce, 0x6d, 0x17,
+ 0x0f, 0x56, 0xe2, 0x72, 0xf9, 0xc9, 0x4a, 0xb7, 0x3c, 0x78, 0x9c, 0x29,
+ 0x38, 0x8b, 0xee, 0xac, 0x02, 0x92, 0x27, 0x18, 0x35, 0x5e, 0x62, 0x10,
+ 0x14, 0xb5, 0x14, 0xa9, 0x01, 0x84, 0x6d, 0xd2, 0x62, 0x8d, 0xd7, 0x49,
+ 0xb7, 0x77, 0x57, 0x2d, 0x31, 0xd2, 0x0a, 0x83, 0x65, 0x87, 0x35, 0xbd,
+ 0x8e, 0x32, 0x1a, 0xf1, 0x8d, 0x6f, 0xa7, 0xa4, 0x71, 0x9b, 0x21, 0x96,
+ 0x76, 0xb2, 0x97, 0x8b, 0x14, 0x09, 0x99, 0x8a, 0x5d, 0xce, 0x6e, 0x14,
+ 0xf9, 0x4f, 0x5f, 0x99, 0x7b, 0xf5, 0x91, 0xad, 0x2c, 0xf2, 0x94, 0x33,
+ 0x9e, 0x89, 0x3d, 0x15, 0x01, 0xcd, 0x71, 0x70, 0x3f, 0x9b, 0xb3, 0x82,
+ 0x4e, 0x3a, 0x3a, 0xf7, 0xc2, 0xb1, 0xeb, 0x90, 0x2d, 0xad, 0xb9, 0x16,
+ 0x2e, 0x30, 0xaf, 0x8a, 0x59, 0x26, 0x8c, 0x50, 0xea, 0xad, 0xee, 0xf8,
+ 0xa3, 0x83, 0x88, 0xbc, 0xb2, 0x12, 0x34, 0xab, 0x34, 0x90, 0xce, 0x29,
+ 0x21, 0x80, 0xfa, 0x5a, 0xc5, 0x1f, 0xea, 0xa0, 0x8c, 0x07, 0x70, 0x22,
+ 0xff, 0x2e, 0x7a, 0x4b, 0xe7, 0xe3, 0x48, 0x88, 0x13, 0x9e, 0x11, 0xb0,
+ 0x49, 0xd6, 0x78, 0x6b, 0x30, 0xcc, 0x71, 0x92, 0x7d, 0x26, 0xb8, 0x82,
+ 0xa3, 0x46, 0x3f, 0x7e, 0x1a, 0xcb, 0x64, 0x29, 0x93, 0xda, 0x24, 0x47,
+ 0x3a, 0x40, 0x43, 0x1c, 0x93, 0x12, 0x77, 0xcd, 0x18, 0x15, 0x6f, 0xfc,
+ 0xff, 0x12, 0x54, 0x3d, 0x07, 0x74, 0x82, 0xf6, 0x55, 0x28, 0x97, 0x16,
+ 0x39, 0xd1, 0x94, 0x32, 0xcd, 0x18, 0x41, 0xd5, 0x82, 0xc8, 0x6f, 0x2e,
+ 0x3b, 0x9f, 0xa4, 0xec, 0x7c, 0xb5, 0x3d, 0x5c, 0x77, 0x3f, 0x4a, 0x81,
+ 0xb5, 0x9d, 0xd7, 0x2c, 0x5a, 0x8f, 0x60, 0x1c, 0x6c, 0x4f, 0xf7, 0xda,
+ 0x11, 0x95, 0xb7, 0x36, 0x0b, 0x2e, 0xe9, 0xe0, 0x69, 0x8a, 0xb4, 0xf6,
+ 0x8a, 0xdb, 0x34, 0x4c, 0x7a, 0x40, 0xae, 0xca, 0x89, 0xe4, 0xe2, 0x91,
+ 0x3c, 0x69, 0xed, 0x84, 0x1d, 0xb2, 0x05, 0x11, 0x81, 0x29, 0xca, 0xd1,
+ 0x2d, 0xa8, 0xb8, 0xb8, 0xf9, 0xae, 0x01, 0x83, 0x67, 0xd0, 0xe0, 0x4f,
+ 0x7a, 0x23, 0xae, 0xf8, 0x1b, 0x40, 0x60, 0xcf, 0x0f, 0xdd, 0xd6, 0xba,
+ 0x0c, 0x0d, 0x93, 0x8f, 0x9a, 0xe0, 0x18, 0x36, 0x7d, 0x0e, 0x04, 0xf7,
+ 0xa2, 0x3a, 0xef, 0x81, 0xb4, 0x06, 0x0f, 0x1a, 0xef, 0xeb, 0x61, 0x99,
+ 0xad, 0x99, 0x25, 0xb3, 0xbc, 0x52, 0xa7, 0x26, 0x2f, 0x9c, 0xa0, 0x13,
+ 0xb5, 0x95, 0x6b, 0x47, 0xb4, 0x8c, 0xd5, 0xe9, 0x70, 0x21, 0x31, 0x97,
+ 0x14, 0x14, 0xf0, 0xaa, 0x30, 0x7e, 0x31, 0x7b, 0x17, 0xdb, 0x4d, 0xb3,
+ 0x29, 0xa2, 0xe4, 0x0e, 0x25, 0xe3, 0x38, 0x0d, 0x85, 0xed, 0x23, 0x35,
+ 0x7a, 0x5c, 0x08, 0x4c, 0x65, 0xc5, 0x05, 0x3a, 0xd0, 0x03, 0xb0, 0x00,
+ 0x34, 0xcf, 0x93, 0x8f, 0x73, 0x1a, 0xb8, 0x00, 0x08, 0x09, 0xb4, 0x15,
+ 0x15, 0x0b, 0x77, 0x73, 0xda, 0x1d, 0x6b, 0xac, 0xb2, 0xd3, 0x62, 0x20,
+ 0x55, 0xcc, 0xff, 0x24, 0xe9, 0xc0, 0x40, 0x23, 0xd0, 0x0a, 0x43, 0x20,
+ 0x3c, 0xe3, 0x36, 0x42, 0x3c, 0x14, 0x62, 0x14, 0x2f, 0xbb, 0xf1, 0x7f,
+ 0x88, 0x79, 0x14, 0xc3, 0xb4, 0x99, 0x04, 0x64, 0x16, 0xcd, 0xf3, 0x90,
+ 0xf4, 0x42, 0x74, 0x38, 0xa1, 0x80, 0x37, 0x03, 0x8d, 0x2c, 0x39, 0x39,
+ 0xd0, 0x7f, 0xf9, 0xb9, 0x15, 0xcd, 0x77, 0x88, 0x79, 0x14, 0xc3, 0xb4,
+ 0x99, 0x04, 0x64, 0x16, 0xcd, 0xf3, 0x90, 0xf4, 0x42, 0x74, 0x38, 0xa1,
+ 0x80, 0x37, 0x03, 0x8a, 0x4e, 0x61, 0x6d, 0xec, 0xfe, 0x88, 0x4e, 0x87,
+ 0x3d, 0x78, 0x1b, 0x65, 0x7e, 0x67, 0xf4, 0x42, 0x74, 0x38, 0xa1, 0x80,
+ 0x37, 0x03, 0x89, 0xf2, 0x30, 0xd4, 0x5c, 0x5c, 0x7f, 0x79, 0x81, 0xb6,
+ 0x57, 0xe6, 0x7f, 0x44, 0x27, 0x43, 0x8a, 0x18, 0x04, 0xda, 0x28, 0x9c,
+ 0xe1, 0xd7, 0x9f, 0xa3, 0xb9, 0x13, 0xbe, 0xff, 0x0f, 0x64, 0x17, 0xe1,
+ 0xb6, 0xa2, 0xe2, 0xe3, 0xe6, 0xb8, 0x04, 0xda, 0x6b, 0xaa, 0xdb, 0xce,
+ 0xec, 0xe8, 0xee, 0x44, 0xef, 0xbf, 0xc3, 0xd9, 0x05, 0xf8, 0x6d, 0xa8,
+ 0xb8, 0xb8, 0xf9, 0xae, 0x01, 0x36, 0x9a, 0xea, 0xb6, 0xf3, 0xbb, 0x3a,
+ 0x3b, 0x91, 0x3b, 0xef, 0xf0, 0xf6, 0x41, 0x7e, 0x1b, 0x6a, 0x2e, 0x2e,
+ 0x3e, 0x6b, 0x80, 0x4d, 0xa6, 0xba, 0x95, 0xbc, 0x80, 0xea, 0xec, 0xdf,
+ 0x6b, 0x50, 0xa0, 0xa0, 0x33, 0x30, 0x0b, 0x20, 0xd3, 0x42, 0xf0, 0xff,
+ 0x79, 0xd1, 0x2d, 0x6b, 0xac, 0x66, 0xe6, 0xfa, 0x42, 0x85, 0xac, 0x0e,
+ 0xae, 0xcd, 0xf6, 0xb5, 0x0a, 0x0a, 0x03, 0x33, 0x00, 0xb2, 0x0d, 0x34,
+ 0x2f, 0x0f, 0xf7, 0x9d, 0x12, 0xd6, 0x84, 0x12, 0x3c, 0xea, 0x19, 0x2a,
+ 0x8c, 0x9f, 0x5f, 0xe2, 0x1e, 0x45, 0x30, 0xed, 0x26, 0x41, 0x19, 0x05,
+ 0xb3, 0x7c, 0xe4, 0x3d, 0x10, 0x9d, 0x0e, 0x28, 0x60, 0x13, 0x69, 0xae,
+ 0x9a, 0xf7, 0x5a, 0xe8, 0x30, 0x36, 0x4e, 0x3e, 0x6b, 0x80, 0x60, 0xd9,
+ 0xf4, 0x38, 0x13, 0xde, 0x88, 0xeb, 0xbe, 0x07, 0x6a, 0xad, 0xd2, 0xe3,
+ 0x10, 0xf2, 0x29, 0x87, 0x69, 0x32, 0x08, 0xc8, 0x2d, 0x9b, 0xe7, 0x21,
+ 0xe8, 0x84, 0xe8, 0x71, 0x43, 0x00, 0x9b, 0x4d, 0x75, 0x5b, 0x79, 0xdd,
+ 0x9d, 0x1d, 0xc8, 0x9d, 0xf7, 0xf8, 0x7b, 0x20, 0xbf, 0x0d, 0xb5, 0x17,
+ 0x17, 0x1f, 0x35, 0xc0, 0x26, 0xd3, 0x0e, 0x54, 0x3d, 0xc5, 0xee, 0x69,
+ 0x65, 0x5d, 0xae, 0x81, 0x71, 0xb6, 0xed, 0x0d, 0xa7, 0x26, 0x12, 0x2c,
+ 0x2f, 0xb4, 0x76, 0x23, 0xb6, 0x71, 0x5e, 0xc3, 0xff, 0xd9, 0x2f, 0xf8,
+ 0x71, 0x2b, 0xfb, 0xf9, 0x98, 0xac, 0xc0, 0x00, 0x17, 0x01, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x1c, 0x00, 0x23,
+ 0x11, 0xfc, 0x00, 0x18, 0x01, 0x5d, 0xff, 0xed, 0xf4, 0x7f, 0xf3, 0x6c,
+ 0x8e, 0x1e, 0x5c, 0x15, 0x6f, 0xa3, 0x7e, 0x4c, 0x16, 0x4d, 0xd1, 0x3d,
+ 0x6c, 0x7d, 0x2c, 0x78, 0xe8, 0xd1, 0xd2, 0xe7, 0x3b, 0x3a, 0x7a, 0xd2,
+ 0x31, 0x2d, 0x80, 0x64, 0x5f, 0x3e, 0xe4, 0x9a, 0x4e, 0x87, 0xa7, 0x71,
+ 0xd5, 0x25, 0xe0, 0xaf, 0x37, 0xb1, 0x80, 0x09, 0xe1, 0x2a, 0x92, 0x03,
+ 0x6d, 0x37, 0xb1, 0x79, 0x26, 0x24, 0x80, 0xc7, 0xfd, 0x66, 0x7d, 0xa6,
+ 0xa8, 0xc6, 0x00, 0xb0, 0x47, 0x7b, 0xca, 0x77, 0xaa, 0x79, 0xbe, 0x20,
+ 0x40, 0xae, 0x13, 0x04, 0x2a, 0x40, 0x0a, 0x6d, 0x6e, 0x88, 0x99, 0xac,
+ 0xa6, 0x3a, 0x80, 0x7a, 0xc7, 0xc0, 0xc3, 0xbe, 0xf6, 0x9a, 0x16, 0xdd,
+ 0x26, 0xee, 0x5b, 0xde, 0xd3, 0x24, 0xa6, 0x00, 0x0f, 0x0b, 0xf5, 0x44,
+ 0x81, 0xa7, 0x81, 0xc7, 0xca, 0xbd, 0x24, 0x1e, 0xb7, 0x2e, 0x23, 0xe0,
+ 0x5a, 0x51, 0x4c, 0x4f, 0x21, 0x4c, 0x80, 0xc2, 0x72, 0x3d, 0x00, 0xc2,
+ 0x72, 0x3d, 0x00, 0xc2, 0x72, 0x3d, 0x00, 0xc2, 0x72, 0x3d, 0x00, 0xc2,
+ 0x72, 0x3d, 0x00, 0xc2, 0x72, 0x3d, 0x00, 0xc2, 0x72, 0x3d, 0x00, 0xc2,
+ 0x72, 0x3d, 0x00, 0xc2, 0x72, 0x3d, 0x00, 0xc2, 0x6e, 0xc4, 0x04, 0xbb,
+ 0xe8, 0x00, 0x49, 0xc0, 0x25, 0x00, 0x49, 0xbf, 0xd8, 0x01, 0xcc, 0x29,
+ 0xdc, 0x44, 0x7e, 0xb0, 0x90, 0x1c, 0xc2, 0xca, 0xc0, 0x02, 0x61, 0x27,
+ 0x51, 0x8c, 0xed, 0xa2, 0x84, 0x75, 0x03, 0x88, 0x3f, 0xa8, 0x91, 0xd9,
+ 0x2c, 0x96, 0x16, 0x52, 0xbc, 0xc4, 0x2d, 0xed, 0x00, 0xcb, 0xe8, 0x76,
+ 0x76, 0x18, 0xea, 0x83, 0x9f, 0xde, 0x53, 0x40, 0xad, 0xad, 0x76, 0x97,
+ 0x70, 0x16, 0x0b, 0xb4, 0x38, 0x8f, 0x70, 0x8f, 0xab, 0x33, 0xc5, 0xc0,
+ 0xb3, 0x2c, 0x2f, 0x8d, 0xf3, 0x79, 0x5c, 0xfc, 0xbd, 0x02, 0x1b, 0x29,
+ 0xf6, 0x72, 0x28, 0x58, 0x27, 0xa9, 0xc6, 0xf1, 0x4b, 0x10, 0x00, 0x92,
+ 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1,
+ 0x14, 0x00, 0x2e, 0x11, 0x5c, 0x00, 0x19, 0x89, 0xf7, 0x7d, 0x2b, 0x6c,
+ 0x33, 0xff, 0x92, 0x08, 0x68, 0xf4, 0x51, 0x6c, 0x27, 0x20, 0x69, 0x2a,
+ 0x30, 0x5c, 0x2f, 0x67, 0x8d, 0xb4, 0x70, 0xcf, 0xda, 0x1d, 0x23, 0x90,
+ 0xb4, 0x5e, 0x67, 0xc1, 0x64, 0xd3, 0x8c, 0x6d, 0xb4, 0x47, 0xfd, 0x37,
+ 0x01, 0xdf, 0xc5, 0xcf, 0x3b, 0xb9, 0x55, 0x87, 0x01, 0xdc, 0xff, 0x50,
+ 0xe0, 0x53, 0x1e, 0x36, 0x2a, 0x88, 0xa0, 0x30, 0xef, 0xbc, 0x87, 0xf4,
+ 0xea, 0xaa, 0xe1, 0x01, 0x2f, 0x2d, 0x62, 0xef, 0xe8, 0x54, 0x68, 0x44,
+ 0xfb, 0xeb, 0x7a, 0x9c, 0x9b, 0xa4, 0xbc, 0xb9, 0x25, 0xba, 0x50, 0xc6,
+ 0x96, 0xef, 0x7b, 0x33, 0xff, 0xf1, 0x87, 0x30, 0x27, 0x02, 0xb6, 0xc5,
+ 0xb1, 0xa4, 0x11, 0xd5, 0xfb, 0x08, 0x02, 0x06, 0x17, 0xac, 0x85, 0xa6,
+ 0x1c, 0x61, 0xf5, 0xb6, 0x16, 0xa2, 0xef, 0xc0, 0xdf, 0xfa, 0x14, 0xc2,
+ 0x64, 0xa8, 0xeb, 0x1f, 0x55, 0x84, 0xc9, 0x51, 0xd6, 0x3e, 0xa9, 0xf4,
+ 0xc2, 0xb0, 0x02, 0x9e, 0x77, 0x34, 0x4d, 0x80, 0xbe, 0x0f, 0xb1, 0x03,
+ 0xed, 0x94, 0x6e, 0x09, 0x5e, 0xe9, 0xc2, 0xc7, 0x63, 0xaf, 0x0e, 0x82,
+ 0x00, 0x35, 0x3e, 0xe8, 0x5f, 0x9d, 0xfb, 0xee, 0xe0, 0x6a, 0x16, 0xbf,
+ 0xfb, 0xa2, 0xd1, 0x18, 0x05, 0x84, 0x5e, 0x29, 0x60, 0xe4, 0xc1, 0xaf,
+ 0xd8, 0x6a, 0xd8, 0x4b, 0x76, 0xf5, 0xda, 0x3b, 0x6a, 0x37, 0x2b, 0xbc,
+ 0xa6, 0xa5, 0x8a, 0xee, 0xa8, 0xfb, 0xd1, 0x49, 0x20, 0x51, 0x69, 0x8c,
+ 0xf6, 0x43, 0xa9, 0x86, 0x38, 0xaf, 0xa7, 0x55, 0xdf, 0x86, 0x88, 0xd7,
+ 0xc8, 0xb4, 0xa5, 0x16, 0x2f, 0x02, 0xe1, 0xd0, 0x15, 0xd4, 0x38, 0xfb,
+ 0x1b, 0x30, 0x61, 0xca, 0xef, 0xb3, 0x1b, 0xa1, 0x5f, 0x46, 0x96, 0xe6,
+ 0xdd, 0xd2, 0x6b, 0xdb, 0xe4, 0x4d, 0xb2, 0x1f, 0x72, 0x84, 0xda, 0x3b,
+ 0x9d, 0x1b, 0xc9, 0x95, 0x4d, 0x8e, 0x41, 0x2f, 0x6c, 0xa3, 0x14, 0x79,
+ 0x16, 0xed, 0x54, 0x1e, 0xa0, 0x86, 0x09, 0x1f, 0x59, 0x77, 0xfc, 0x1c,
+ 0xdd, 0xc7, 0xe6, 0x23, 0x36, 0x6f, 0x67, 0xa8, 0x2d, 0xbc, 0x19, 0x69,
+ 0x11, 0x7f, 0x80, 0x75, 0x77, 0x69, 0x62, 0x82, 0x8e, 0xce, 0x76, 0xf8,
+ 0x11, 0x25, 0xc1, 0x34, 0xeb, 0xf5, 0x5d, 0x6d, 0x5f, 0x28, 0x37, 0xa4,
+ 0xfb, 0x9f, 0x69, 0x47, 0xb3, 0x4c, 0x8e, 0x59, 0x4f, 0xeb, 0xab, 0x45,
+ 0x43, 0x74, 0x6f, 0xb3, 0xa4, 0x27, 0x7f, 0x2c, 0x9f, 0xe7, 0x94, 0x12,
+ 0x37, 0xb0, 0x76, 0x5e, 0x57, 0xe3, 0x82, 0x68, 0xce, 0x2c, 0x5e, 0x1b,
+ 0xb2, 0x7f, 0x5f, 0x0b, 0x30, 0xe0, 0xfd, 0x76, 0x13, 0x29, 0x01, 0x7b,
+ 0x50, 0xd2, 0xa0, 0x63, 0xfc, 0x01, 0x7a, 0x8a, 0xa6, 0x76, 0x96, 0x18,
+ 0x15, 0x18, 0x8a, 0x34, 0x68, 0xb9, 0x5d, 0xda, 0xe4, 0xcb, 0xba, 0xb1,
+ 0x39, 0xf9, 0xac, 0x8a, 0xe0, 0xe5, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0c, 0x00, 0x1e, 0x11, 0x50, 0x00,
+ 0x18, 0x00, 0x1a, 0x20, 0x5f, 0x3f, 0xe8, 0x5c, 0x03, 0x26, 0x29, 0xad,
+ 0x40, 0x95, 0x31, 0xe9, 0xda, 0x0d, 0xab, 0xb9, 0x36, 0xf7, 0xdd, 0xd9,
+ 0xa5, 0x60, 0x20, 0x0a, 0xb8, 0xf3, 0xbc, 0xa0, 0x73, 0xe9, 0x18, 0xc8,
+ 0x98, 0x95, 0xa1, 0xca, 0x3f, 0x4e, 0x5c, 0xba, 0x6f, 0xed, 0xfc, 0x87,
+ 0x67, 0x0f, 0xfc, 0xdc, 0x2e, 0x4e, 0x8b, 0x98, 0xd2, 0xf7, 0xf7, 0xc5,
+ 0x67, 0xf4, 0xb3, 0xc0, 0x47, 0xa5, 0x2c, 0x97, 0x36, 0xb4, 0x36, 0x8e,
+ 0x44, 0x7a, 0x28, 0x33, 0x2a, 0x92, 0x7b, 0x42, 0x20, 0xf3, 0x81, 0x61,
+ 0x1a, 0x4f, 0xaa, 0x95, 0xf0, 0xb7, 0x5e, 0x2b, 0xaf, 0x98, 0xb1, 0xce,
+ 0x09, 0xae, 0x37, 0x18, 0xf5, 0x83, 0xf0, 0xba, 0x43, 0xa1, 0xd4, 0xd9,
+ 0x52, 0x84, 0xd4, 0x8f, 0x4a, 0x3f, 0x0c, 0xdb, 0x23, 0x14, 0x0f, 0xbb,
+ 0x15, 0x27, 0x85, 0xb2, 0x28, 0x6a, 0xe0, 0x80, 0x36, 0x51, 0xe9, 0x58,
+ 0x42, 0x93, 0x45, 0xc9, 0xfa, 0xee, 0xae, 0x23, 0xbe, 0xa1, 0x11, 0x42,
+ 0x9b, 0x0e, 0xb6, 0x5e, 0x1d, 0xd9, 0x3f, 0xde, 0x32, 0x0b, 0xd4, 0xd5,
+ 0x4e, 0xdd, 0xb6, 0x1c, 0xb1, 0x06, 0xb0, 0x45, 0x59, 0x07, 0x9b, 0x07,
+ 0x74, 0x38, 0xaa, 0x50, 0x3c, 0xe3, 0x10, 0x05, 0x11, 0xc0, 0xb5, 0xe3,
+ 0xc0, 0x17, 0x90, 0x17, 0x9e, 0x4c, 0x85, 0x1e, 0x13, 0xe7, 0xaa, 0xdd,
+ 0x10, 0xf4, 0x65, 0x46, 0xfb, 0x9e, 0xa0, 0x4c, 0xfc, 0x30, 0xad, 0xbc,
+ 0x14, 0x44, 0xda, 0x32, 0x2c, 0x8a, 0x69, 0x79, 0x0d, 0xf9, 0x24, 0xf1,
+ 0xcc, 0x35, 0x01, 0x8f, 0x80, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x11, 0x00, 0x21, 0x11, 0x34,
+ 0x00, 0x18, 0xe0, 0x7e, 0xfb, 0xf9, 0x47, 0xf6, 0x08, 0x01, 0xb4, 0x07,
+ 0x52, 0x39, 0xaf, 0x6e, 0xe2, 0xa0, 0x66, 0xb4, 0xc4, 0x81, 0x9d, 0x63,
+ 0xb2, 0x2a, 0xd0, 0x27, 0x55, 0xde, 0xbb, 0x9b, 0x1a, 0x10, 0xab, 0xc5,
+ 0x7f, 0x33, 0xc2, 0x39, 0x61, 0x96, 0x7b, 0x72, 0x19, 0xb8, 0xd9, 0xc1,
+ 0x9f, 0x33, 0x34, 0xc1, 0xea, 0x4c, 0x81, 0x59, 0x21, 0x9b, 0x72, 0x66,
+ 0xf7, 0x26, 0x9d, 0xff, 0x78, 0x09, 0xda, 0xc7, 0x4a, 0xe5, 0xab, 0x85,
+ 0x03, 0x88, 0xc6, 0x02, 0xc0, 0x77, 0xeb, 0x46, 0x0c, 0xd6, 0x03, 0x6b,
+ 0x36, 0xf0, 0x89, 0xec, 0x37, 0x6e, 0x53, 0xd2, 0x60, 0x78, 0x15, 0xfa,
+ 0x4d, 0xd6, 0x13, 0x2f, 0x00, 0x84, 0x62, 0xef, 0xb6, 0xdc, 0x9c, 0xe0,
+ 0x99, 0x4b, 0x01, 0x01, 0x35, 0x87, 0xcc, 0xd2, 0x4e, 0xd0, 0x6c, 0x77,
+ 0x43, 0x6d, 0xb7, 0x18, 0xa4, 0xc3, 0xad, 0xd1, 0xd6, 0x72, 0x72, 0xb3,
+ 0x16, 0x50, 0x43, 0x65, 0x7a, 0x80, 0x37, 0x12, 0x50, 0x85, 0x81, 0xad,
+ 0xd3, 0xc2, 0x71, 0x2e, 0xab, 0x50, 0x35, 0x58, 0x0e, 0x8c, 0x2d, 0xf5,
+ 0xb5, 0x98, 0x1a, 0x13, 0x42, 0x90, 0x7a, 0x86, 0xf9, 0x20, 0x30, 0x6c,
+ 0xce, 0x9f, 0x28, 0xc2, 0x1c, 0x28, 0x59, 0x20, 0x56, 0x91, 0xe4, 0xcc,
+ 0x17, 0xd6, 0xc2, 0x74, 0xbe, 0x5d, 0x10, 0x03, 0x9c, 0xc9, 0xe1, 0xc9,
+ 0x6a, 0xfd, 0xd0, 0x65, 0x18, 0x63, 0xcd, 0x22, 0xc4, 0xb2, 0x0a, 0x68,
+ 0xa3, 0xe5, 0x4b, 0xe7, 0x52, 0x03, 0x1a, 0xc0, 0x22, 0x68, 0x36, 0x79,
+ 0x01, 0x92, 0x98, 0x25, 0x1d, 0xc4, 0xf6, 0xb9, 0x9f, 0x8e, 0x69, 0xbd,
+ 0xf8, 0x03, 0x6c, 0x93, 0x1a, 0x03, 0x13, 0x4a, 0x14, 0xa2, 0x1f, 0xe8,
+ 0x27, 0x3f, 0x28, 0x29, 0x90, 0x7f, 0x9d, 0xfb, 0x49, 0xb0, 0xe8, 0x6f,
+ 0xd1, 0x27, 0x41, 0x3c, 0xd5, 0x16, 0xb5, 0x6e, 0xcf, 0x66, 0x17, 0xdc,
+ 0xb6, 0x25, 0xb0, 0xbd, 0x02, 0x3f, 0x51, 0x27, 0x87, 0xef, 0x51, 0x43,
+ 0xe1, 0x59, 0xdc, 0xaa, 0xc3, 0x89, 0xc1, 0x98, 0xf1, 0xaf, 0x7d, 0x9c,
+ 0x8b, 0x29, 0x8c, 0x07, 0x31, 0x64, 0x00, 0x4a, 0x44, 0x13, 0xc6, 0x40,
+ 0xde, 0x03, 0xce, 0x2a, 0x0e, 0x4b, 0xba, 0x3a, 0x0a, 0x5d, 0xcf, 0x20,
+ 0xdc, 0xa1, 0x7c, 0x62, 0xb3, 0x09, 0x38, 0x49, 0x34, 0x3a, 0x81, 0xb6,
+ 0x09, 0x5e, 0x9b, 0x40, 0x19, 0x80, 0x85, 0xe2, 0xb8, 0xde, 0xcd, 0xa6,
+ 0x69, 0x79, 0xc7, 0x1c, 0xa0, 0x04, 0x01, 0x00, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0b, 0x00, 0x22, 0x11, 0x40, 0x00,
+ 0x18, 0x01, 0x4a, 0x41, 0xb9, 0x84, 0x09, 0x9d, 0xbe, 0x22, 0x11, 0x5a,
+ 0xf7, 0xd1, 0xa7, 0xfd, 0xfa, 0x98, 0x63, 0x6f, 0x29, 0xbf, 0x7c, 0x76,
+ 0xfc, 0x44, 0x1e, 0x6d, 0xc8, 0xd9, 0x5a, 0x19, 0x4d, 0xeb, 0x78, 0x7a,
+ 0x27, 0xb8, 0x18, 0xc9, 0x5a, 0x05, 0xb4, 0x00, 0xb5, 0x66, 0x27, 0xa0,
+ 0xf2, 0xe8, 0xdf, 0x8d, 0x5b, 0xc4, 0x3b, 0x9a, 0xd1, 0x42, 0xbd, 0xda,
+ 0x86, 0xb9, 0xa8, 0x20, 0xd9, 0x75, 0x7a, 0xce, 0xa3, 0x1f, 0x2b, 0xd5,
+ 0x5d, 0xbf, 0xdb, 0xc0, 0x36, 0x4f, 0xf8, 0xf2, 0x00, 0xbd, 0x85, 0xbf,
+ 0x2a, 0x67, 0xf4, 0x2b, 0x60, 0xc1, 0x1b, 0xc1, 0xf8, 0x01, 0x24, 0x9b,
+ 0x5e, 0xbe, 0xdc, 0x47, 0x2c, 0xfe, 0xa3, 0x3e, 0x79, 0x5e, 0xfc, 0x35,
+ 0x31, 0x13, 0x59, 0x10, 0x1e, 0x9a, 0xa2, 0xb5, 0x81, 0xb5, 0x82, 0x1f,
+ 0x84, 0x6f, 0xb8, 0x0e, 0xdc, 0xce, 0x13, 0xa2, 0xc6, 0x52, 0x49, 0x7d,
+ 0x6b, 0x2c, 0x1d, 0x13, 0xa1, 0xc4, 0x39, 0x6f, 0x46, 0x94, 0x1c, 0x38,
+ 0x58, 0xfd, 0x79, 0x3b, 0x0b, 0xfb, 0xd5, 0xad, 0xe6, 0x4f, 0x89, 0x5e,
+ 0x14, 0x28, 0x7d, 0xa3, 0x23, 0x50, 0x61, 0xfb, 0x58, 0x70, 0xca, 0x79,
+ 0xc1, 0xa6, 0xaa, 0x68, 0x26, 0x40, 0x0c, 0xaa, 0x0d, 0xcb, 0x56, 0x61,
+ 0x31, 0xaa, 0xf4, 0xcf, 0xa9, 0xd9, 0x01, 0x5e, 0x03, 0xca, 0x8f, 0x7f,
+ 0x5d, 0x54, 0x40, 0xdd, 0x69, 0x12, 0x8f, 0xc4, 0x65, 0x7e, 0x8c, 0xb9,
+ 0xf4, 0xbd, 0x68, 0x94, 0x5a, 0x93, 0x4d, 0x62, 0x43, 0x9d, 0xad, 0xe3,
+ 0xd5, 0x51, 0x09, 0x2d, 0x47, 0xb1, 0x47, 0xcf, 0x2f, 0xb8, 0x7f, 0x33,
+ 0xa7, 0x5a, 0xc0, 0x52, 0x6c, 0x3a, 0x4b, 0x30, 0xab, 0x74, 0xf2, 0xdc,
+ 0x16, 0x9a, 0x64, 0x22, 0x8d, 0x64, 0x61, 0x88, 0xe3, 0x16, 0xe0, 0x00,
+ 0x00, 0xc4, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xf1, 0x08, 0x00, 0x23, 0x11, 0x34, 0x00, 0x18, 0x00, 0x19, 0x30,
+ 0x77, 0xb7, 0xe8, 0x45, 0x31, 0x0e, 0x7c, 0xc3, 0x9c, 0xb4, 0x6f, 0xfe,
+ 0x76, 0x21, 0x5b, 0x87, 0x66, 0xa7, 0x1d, 0x9b, 0x04, 0x4e, 0xd3, 0xc6,
+ 0x03, 0x60, 0xaf, 0x64, 0x8e, 0x3f, 0xef, 0xc8, 0x29, 0x34, 0x63, 0x7e,
+ 0x50, 0x91, 0x08, 0x03, 0x00, 0x11, 0x07, 0x50, 0xf2, 0x7b, 0xf1, 0x02,
+ 0xcc, 0xb3, 0x64, 0x81, 0xb6, 0xa4, 0x35, 0xa4, 0xeb, 0x1e, 0xd0, 0xc4,
+ 0xe5, 0x9c, 0x20, 0x32, 0x25, 0x09, 0x44, 0xb1, 0x01, 0xed, 0x62, 0x1c,
+ 0x5a, 0xa6, 0x64, 0x0a, 0x12, 0x34, 0xcc, 0x6c, 0xda, 0x4b, 0x59, 0x5f,
+ 0x5c, 0x37, 0xdf, 0x56, 0x44, 0xb7, 0x92, 0x12, 0xc4, 0x4e, 0x00, 0x6a,
+ 0xe5, 0x6b, 0x04, 0x66, 0x11, 0x6b, 0xba, 0x4c, 0xe5, 0xa4, 0x1c, 0xae,
+ 0x41, 0xc8, 0xb3, 0xe2, 0x9f, 0x4a, 0xcb, 0x39, 0xdc, 0x15, 0x01, 0xa1,
+ 0x1d, 0x2f, 0x18, 0x38, 0x2a, 0xf4, 0xb4, 0x2c, 0x08, 0xb7, 0x61, 0x73,
+ 0x97, 0x97, 0xd2, 0xb8, 0x79, 0xd3, 0x7a, 0x3b, 0x5e, 0x13, 0xae, 0x4d,
+ 0xa3, 0x07, 0xfb, 0xe6, 0xb5, 0x56, 0xe8, 0x3f, 0x09, 0xc0, 0xd2, 0x5b,
+ 0xfc, 0x08, 0x66, 0x15, 0xc2, 0x10, 0x8e, 0xf9, 0xad, 0x09, 0x1c, 0xa1,
+ 0x0b, 0x6e, 0x86, 0x27, 0x9a, 0xaf, 0x24, 0xaf, 0x25, 0x25, 0x1a, 0xd0,
+ 0x8b, 0x63, 0x30, 0x00, 0x00, 0x9d, 0x06, 0x00, 0x00, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x21, 0x00, 0x12, 0x10, 0xa4, 0x14,
+ 0x6c, 0xaf, 0xfd, 0x2d, 0x74, 0xa9, 0x4b, 0x55, 0xb8, 0x5e, 0x51, 0xcc,
+ 0x40, 0x3d, 0x4e, 0xdc, 0xf9, 0x3d, 0xff, 0x7a, 0xae, 0xae, 0x3b, 0x4b,
+ 0xab, 0xf8, 0x8c, 0xab, 0xcf, 0x4c, 0xd8, 0x7f, 0x64, 0xbc, 0x32, 0x7f,
+ 0xa3, 0xff, 0xbb, 0xbc, 0x27, 0xe8, 0xff, 0xd7, 0xf3, 0xcf, 0xb3, 0x63,
+ 0x1a, 0xfd, 0x04, 0x7f, 0xd7, 0xdc, 0x5f, 0xff, 0x2c, 0xf2, 0xbb, 0xf3,
+ 0xc8, 0x21, 0xfa, 0x3f, 0xf3, 0x7c, 0xab, 0x3f, 0xe7, 0xcb, 0xbb, 0xdd,
+ 0xb7, 0xa6, 0x43, 0xef, 0xeb, 0xc5, 0xf3, 0xff, 0x57, 0xff, 0x5f, 0x67,
+ 0xef, 0xf9, 0x1d, 0x61, 0xeb, 0xe1, 0x05, 0x6b, 0xe4, 0x33, 0x95, 0x9e,
+ 0x96, 0x50, 0x93, 0xcf, 0x3a, 0x54, 0xab, 0xed, 0xfe, 0x25, 0x09, 0x24,
+ 0x2d, 0x9e, 0x1a, 0x12, 0x1f, 0x67, 0x14, 0xef, 0x13, 0x8e, 0xd2, 0xc9,
+ 0x73, 0xc4, 0xa7, 0x32, 0x44, 0xeb, 0x6d, 0xe2, 0x70, 0xaa, 0x33, 0x40,
+ 0x72, 0x0c, 0xf9, 0x9d, 0xb7, 0x54, 0xe9, 0x0a, 0xc3, 0x89, 0x2d, 0xdb,
+ 0x9a, 0xf7, 0xe0, 0x21, 0x38, 0x0c, 0x2f, 0x15, 0x30, 0x12, 0xb0, 0xdb,
+ 0xec, 0xeb, 0x92, 0x40, 0xaf, 0x49, 0x98, 0xcd, 0x11, 0x18, 0x1e, 0xa2,
+ 0xff, 0x65, 0x53, 0x2c, 0xba, 0xcf, 0x53, 0x54, 0x0f, 0x9a, 0x8d, 0x54,
+ 0x23, 0x3d, 0xc3, 0xce, 0x12, 0x1c, 0xd1, 0x48, 0xad, 0x21, 0x00, 0x60,
+ 0x11, 0xb3, 0x27, 0x87, 0xba, 0x11, 0x63, 0xce, 0x0f, 0xc2, 0xe6, 0x6c,
+ 0x2e, 0x1b, 0xd7, 0x4c, 0xe0, 0xcc, 0xf4, 0x89, 0x0d, 0xd5, 0xe3, 0x00,
+ 0xac, 0xff, 0x73, 0xf2, 0x23, 0x7b, 0xa2, 0x39, 0x6e, 0xa9, 0x6a, 0x02,
+ 0xc5, 0x23, 0x47, 0xad, 0xfc, 0x00, 0x70, 0xc7, 0x6b, 0x31, 0x61, 0xcd,
+ 0xf2, 0xa0, 0x66, 0xc6, 0x07, 0x87, 0x4f, 0x89, 0xb1, 0xe6, 0x4f, 0xa3,
+ 0x01, 0xa8, 0x77, 0x0f, 0x60, 0xae, 0x1d, 0x00, 0xe4, 0xdc, 0x8f, 0xbc,
+ 0x00, 0x88, 0x3f, 0x80, 0x37, 0xe6, 0xdf, 0x6f, 0xa2, 0xa3, 0x75, 0xcb,
+ 0x34, 0xb1, 0xda, 0x9f, 0xe0, 0xd4, 0xbf, 0x75, 0x9d, 0xbc, 0x0e, 0x71,
+ 0xc0, 0x68, 0x18, 0xc9, 0xcc, 0xbb, 0xa3, 0x07, 0x8c, 0x2a, 0xd4, 0x63,
+ 0x46, 0x32, 0xd2, 0x4f, 0x45, 0x44, 0x3d, 0x7c, 0xd3, 0x00, 0x83, 0x9c,
+ 0x52, 0x53, 0x67, 0x14, 0xe5, 0xf7, 0xe1, 0x0a, 0x64, 0x03, 0xbf, 0x82,
+ 0x88, 0xdb, 0x82, 0xe9, 0xfb, 0x22, 0x25, 0x97, 0xbb, 0x64, 0x86, 0x4d,
+ 0xf4, 0xb3, 0xd0, 0xea, 0xf5, 0x52, 0x17, 0xda, 0x7e, 0x33, 0x6f, 0x25,
+ 0x95, 0xc1, 0xf8, 0x5b, 0x31, 0xe4, 0x60, 0xbc, 0xd2, 0xb5, 0x73, 0xe4,
+ 0xc2, 0x20, 0x3b, 0x9e, 0x2b, 0xd9, 0xda, 0xb2, 0x37, 0x74, 0x0e, 0x47,
+ 0xb2, 0x9d, 0x17, 0xc9, 0x54, 0x41, 0x56, 0xb7, 0x7e, 0x8a, 0x3d, 0xd8,
+ 0x96, 0x21, 0x9e, 0xa0, 0xf6, 0xc0, 0x15, 0x2c, 0x30, 0x2f, 0x66, 0xea,
+ 0xac, 0x4b, 0xb9, 0x22, 0x41, 0x17, 0x7d, 0x3b, 0xe0, 0xaa, 0xe2, 0x23,
+ 0x0b, 0x04, 0xf6, 0xe5, 0xe5, 0x66, 0x80, 0xe9, 0xae, 0x4d, 0x2c, 0x0e,
+ 0x47, 0x09, 0xba, 0x20, 0xc3, 0x3f, 0x7d, 0xc3, 0xb5, 0xd8, 0xc0, 0xb1,
+ 0x02, 0x88, 0x31, 0xf5, 0xfc, 0xd9, 0x20, 0x7f, 0x0e, 0x5b, 0x9c, 0xde,
+ 0x01, 0xe1, 0x1a, 0x43, 0x7a, 0xbd, 0xf6, 0x2e, 0x6a, 0x88, 0xac, 0x88,
+ 0x17, 0xcb, 0x37, 0x21, 0xdf, 0xae, 0x1b, 0xb8, 0x56, 0x3e, 0xd7, 0xff,
+ 0xca, 0x66, 0xb5, 0xfa, 0x44, 0x2a, 0xeb, 0x02, 0xbc, 0xc3, 0xfc, 0xfb,
+ 0x34, 0x9e, 0x36, 0x40, 0xc4, 0xcf, 0xe6, 0xbc, 0x96, 0x43, 0x28, 0x33,
+ 0x81, 0xbf, 0xfa, 0xf7, 0x57, 0xbd, 0x0a, 0x57, 0xe8, 0x88, 0xc8, 0xc2,
+ 0x76, 0x16, 0x79, 0x3e, 0x21, 0x5a, 0xfb, 0x31, 0x9f, 0x1e, 0xba, 0x23,
+ 0xfe, 0x62, 0x3e, 0x59, 0xb7, 0xec, 0xc1, 0x10, 0x5b, 0x8b, 0xa1, 0x0c,
+ 0x6d, 0xff, 0x6f, 0x23, 0x0e, 0x6f, 0x83, 0x4c, 0x2e, 0x51, 0x86, 0x2a,
+ 0x96, 0x44, 0x19, 0x5f, 0x87, 0xf5, 0xd5, 0xaf, 0x30, 0xce, 0xfb, 0x0d,
+ 0xe5, 0x29, 0xbe, 0x92, 0xc2, 0x40, 0x5b, 0xb4, 0x53, 0xa3, 0x74, 0x6f,
+ 0x54, 0x6f, 0x6e, 0x48, 0xf7, 0x2a, 0xac, 0x87, 0xa4, 0x05, 0xf3, 0xff,
+ 0x27, 0x7b, 0x33, 0x2b, 0x94, 0x82, 0x3e, 0xc6, 0x54, 0xc0, 0xf6, 0xa6,
+ 0x5c, 0x30, 0x1b, 0xe1, 0x4f, 0x13, 0x03, 0x8b, 0x44, 0xbc, 0x8d, 0x7f,
+ 0x42, 0xad, 0x44, 0xec, 0x0c, 0xd1, 0x79, 0x31, 0xf2, 0x9b, 0xea, 0x82,
+ 0xc3, 0xaf, 0x6b, 0xec, 0x02, 0x49, 0xd3, 0x93, 0xe0, 0x67, 0x15, 0x41,
+ 0x9c, 0xe0, 0x8a, 0x11, 0x4d, 0x73, 0x56, 0xa0, 0xa9, 0xd0, 0xee, 0xfd,
+ 0xb9, 0x94, 0x43, 0x40, 0x96, 0x38, 0xa0, 0xcf, 0x1e, 0x8c, 0x08, 0xe8,
+ 0xcc, 0x70, 0x77, 0x8b, 0x31, 0x09, 0x98, 0x3f, 0x17, 0x94, 0x16, 0x97,
+ 0x6e, 0x19, 0x89, 0xf1, 0xab, 0x33, 0xfa, 0xf3, 0x5f, 0xd6, 0x1c, 0xb7,
+ 0xfd, 0x8f, 0x9e, 0x75, 0x6e, 0x05, 0x01, 0x02, 0xf4, 0x8a, 0x4b, 0xdd,
+ 0x90, 0x20, 0x52, 0x39, 0x29, 0xe4, 0x4c, 0xc5, 0xcd, 0x11, 0x42, 0xd6,
+ 0xea, 0xfb, 0xe1, 0xdb, 0x4a, 0xf5, 0x77, 0x6f, 0xb7, 0x93, 0xbc, 0xeb,
+ 0x16, 0x68, 0x02, 0x04, 0x80, 0xd7, 0x55, 0x13, 0x5a, 0x52, 0x02, 0x27,
+ 0x91, 0xb7, 0x13, 0xdb, 0x57, 0x09, 0xa5, 0xf4, 0x37, 0xe1, 0xab, 0x1b,
+ 0x5d, 0x25, 0x67, 0x1c, 0xdc, 0x0f, 0xe5, 0x14, 0x44, 0xf4, 0xbb, 0xe0,
+ 0xaf, 0x30, 0x21, 0x8d, 0xda, 0x6e, 0xf3, 0xef, 0x22, 0xda, 0x4e, 0xf7,
+ 0x32, 0xd3, 0x4d, 0x80, 0x77, 0x49, 0x84, 0xd2, 0xa8, 0xdb, 0xa8, 0x18,
+ 0x7b, 0x81, 0x57, 0x41, 0x85, 0xb0, 0xd0, 0x4c, 0x59, 0x30, 0xce, 0x87,
+ 0xf8, 0xe3, 0x13, 0x03, 0x95, 0x9d, 0x9f, 0xf3, 0xc1, 0x5f, 0x37, 0x95,
+ 0x7a, 0x82, 0x59, 0xb6, 0x25, 0x27, 0x63, 0x49, 0x99, 0x60, 0x59, 0xb5,
+ 0xd4, 0xf8, 0x77, 0x72, 0x36, 0x4a, 0x4b, 0xe9, 0x69, 0x62, 0x57, 0xe0,
+ 0x52, 0xe9, 0x06, 0x1e, 0xfd, 0x90, 0xc6, 0x30, 0x6b, 0xef, 0x9c, 0x07,
+ 0x04, 0x91, 0xef, 0xc3, 0x9d, 0xb2, 0x93, 0x98, 0x35, 0x24, 0xed, 0x79,
+ 0xe3, 0xba, 0x90, 0x65, 0x64, 0x0f, 0xf3, 0x3b, 0xad, 0xc8, 0x48, 0xf3,
+ 0x99, 0x13, 0x47, 0x85, 0x1c, 0x57, 0xf1, 0xb4, 0xe9, 0xf6, 0xbc, 0x50,
+ 0x2e, 0xfc, 0x38, 0x5e, 0x17, 0x46, 0x3f, 0x02, 0xe9, 0x9e, 0x69, 0x3f,
+ 0x72, 0x30, 0x54, 0xe7, 0xb6, 0xc6, 0x8f, 0xae, 0xd1, 0x0c, 0x2f, 0x0c,
+ 0x49, 0xa4, 0xd9, 0x7a, 0x4e, 0x69, 0xcb, 0xb3, 0x10, 0x04, 0x06, 0xb1,
+ 0x5c, 0x39, 0x7f, 0xda, 0xbb, 0x5f, 0x35, 0x43, 0xe7, 0xec, 0xe1, 0xd5,
+ 0xb5, 0x95, 0x1c, 0x81, 0xc0, 0x47, 0xce, 0x47, 0x1c, 0x30, 0x33, 0x07,
+ 0x2d, 0xaf, 0x59, 0xd2, 0x5f, 0xf0, 0x57, 0x3d, 0x0e, 0x40, 0xe6, 0x62,
+ 0x86, 0x15, 0x45, 0xab, 0x6e, 0x7c, 0x49, 0x0f, 0x5b, 0x7b, 0xa5, 0x3e,
+ 0x27, 0xde, 0xaf, 0xc9, 0xe3, 0xd7, 0x1f, 0xd5, 0x2d, 0xec, 0x8a, 0x65,
+ 0xa8, 0xa6, 0xb0, 0x46, 0x5b, 0x62, 0x28, 0xf1, 0x47, 0x4a, 0xe6, 0x25,
+ 0x10, 0x6b, 0x70, 0x3b, 0x45, 0xd0, 0x0e, 0xc7, 0x16, 0xd9, 0x64, 0x5c,
+ 0x71, 0x9b, 0x84, 0x92, 0xa8, 0xab, 0xca, 0xf0, 0x41, 0x17, 0xd7, 0xff,
+ 0xe9, 0x07, 0x95, 0x1e, 0xdc, 0x0d, 0x8e, 0xd7, 0xe6, 0x39, 0x1a, 0xe6,
+ 0x12, 0xd7, 0x97, 0x8f, 0xae, 0xbf, 0xa4, 0x7f, 0x31, 0x9c, 0x49, 0x99,
+ 0xea, 0x3b, 0xc6, 0x20, 0x41, 0x54, 0x16, 0xc4, 0x81, 0x3a, 0xfa, 0x55,
+ 0x20, 0x1c, 0x81, 0x91, 0x4c, 0x39, 0x37, 0x23, 0x40, 0x89, 0xba, 0xd9,
+ 0xbc, 0xe7, 0x15, 0x85, 0x31, 0x88, 0x07, 0x0b, 0xc1, 0x6c, 0x52, 0x76,
+ 0x55, 0xef, 0x82, 0xa5, 0x7e, 0x23, 0x84, 0x1c, 0x83, 0x30, 0x2d, 0x73,
+ 0xe1, 0xe4, 0xe1, 0xfa, 0x77, 0x52, 0x2a, 0xb9, 0x21, 0x47, 0x72, 0x44,
+ 0xb9, 0x70, 0x25, 0x61, 0x39, 0xa1, 0x42, 0xcd, 0x85, 0xfe, 0x52, 0x84,
+ 0xd6, 0xd4, 0x37, 0xfc, 0xa3, 0xc6, 0x67, 0xeb, 0x42, 0x6e, 0x8a, 0x5a,
+ 0xef, 0x40, 0xf4, 0xb4, 0x1a, 0xc5, 0xc6, 0xd6, 0x28, 0x32, 0x55, 0x46,
+ 0x81, 0x4a, 0x17, 0x19, 0xbf, 0x66, 0x69, 0x0a, 0xb7, 0x90, 0xfb, 0xfe,
+ 0x87, 0xeb, 0x73, 0x35, 0xd5, 0x98, 0x7c, 0x30, 0xec, 0xf3, 0xcf, 0xca,
+ 0x18, 0x69, 0xbe, 0x39, 0x16, 0x1e, 0xbc, 0x27, 0xfa, 0xaf, 0x55, 0x3a,
+ 0xe1, 0xb7, 0x30, 0xa8, 0xb4, 0x76, 0x19, 0x47, 0xb1, 0x5d, 0xd3, 0xbf,
+ 0xd7, 0xaa, 0xf6, 0x86, 0x0f, 0xf0, 0x5f, 0x12, 0x03, 0x85, 0xe3, 0xe8,
+ 0xc7, 0x5c, 0xfe, 0x28, 0x4a, 0xde, 0x40, 0x1a, 0xe7, 0x5d, 0x13, 0x58,
+ 0x80, 0xfc, 0x7a, 0x88, 0x09, 0xa2, 0xe7, 0x8e, 0xa8, 0xd5, 0xf6, 0x6a,
+ 0x77, 0x96, 0x44, 0x98, 0x52, 0x69, 0x38, 0x65, 0xd7, 0x07, 0xa7, 0xcd,
+ 0x8b, 0xb7, 0x67, 0x14, 0x1c, 0xbf, 0x0b, 0xdb, 0x0f, 0x69, 0x50, 0x2a,
+ 0xc4, 0x63, 0xc6, 0x9e, 0x42, 0xa9, 0xdf, 0x90, 0xbe, 0x0f, 0xc7, 0x00,
+ 0xe0, 0x76, 0x9e, 0x5e, 0xc4, 0x9a, 0x9d, 0x02, 0x48, 0x3e, 0xe6, 0x6e,
+ 0xcb, 0x26, 0xc5, 0x46, 0x49, 0xc7, 0xd3, 0x5a, 0xf3, 0x8d, 0x79, 0xc7,
+ 0x0e, 0x81, 0x08, 0xdd, 0x9f, 0xfb, 0xe8, 0x68, 0xac, 0xc5, 0x1d, 0x84,
+ 0x9b, 0x70, 0xaf, 0xd4, 0x0b, 0xdc, 0x39, 0x20, 0x3b, 0xb0, 0x0d, 0xa2,
+ 0xe5, 0x1f, 0x4b, 0x70, 0x9b, 0x9b, 0xa5, 0xa9, 0xdc, 0x58, 0x8a, 0xf6,
+ 0xad, 0x3a, 0xc4, 0x67, 0x8a, 0x46, 0x0f, 0x13, 0x25, 0x9e, 0x41, 0x70,
+ 0xef, 0x40, 0xdf, 0x71, 0xdc, 0xf3, 0x61, 0x08, 0xd6, 0x2d, 0x4a, 0x0d,
+ 0x83, 0x8f, 0x42, 0xcb, 0x9a, 0x1e, 0x25, 0xd2, 0x94, 0x1a, 0x1d, 0xc5,
+ 0x0b, 0x8a, 0x62, 0x79, 0x48, 0x2f, 0x4e, 0x7b, 0x39, 0x88, 0xf1, 0x1e,
+ 0xc2, 0x03, 0x15, 0x57, 0x68, 0xab, 0xa8, 0x07, 0xf9, 0x08, 0x68, 0xda,
+ 0x60, 0x8c, 0x27, 0x0b, 0x0b, 0xce, 0x0c, 0xd7, 0xa0, 0x84, 0x70, 0xa2,
+ 0xb6, 0xc9, 0xaf, 0x34, 0xce, 0x99, 0x74, 0x75, 0x22, 0xb0, 0x4f, 0xd9,
+ 0x0c, 0x9d, 0xa0, 0xed, 0xc9, 0xcb, 0xdb, 0x66, 0xb5, 0x42, 0xc8, 0x58,
+ 0xc0, 0x10, 0x95, 0x85, 0x56, 0xc1, 0x50, 0x6c, 0xe0, 0x8f, 0x22, 0x0a,
+ 0x73, 0x48, 0xa1, 0x2b, 0xee, 0xb2, 0x58, 0x53, 0x13, 0xfe, 0x95, 0x0d,
+ 0x26, 0x30, 0xea, 0x22, 0xde, 0x93, 0xd2, 0x57, 0x68, 0x3f, 0xd0, 0x53,
+ 0x48, 0xb5, 0xd1, 0x86, 0xc0, 0xcf, 0x01, 0xf9, 0x14, 0xfa, 0x1c, 0xa9,
+ 0x2a, 0x16, 0xfc, 0x56, 0x8c, 0x58, 0xae, 0x7a, 0xd2, 0x9b, 0x25, 0x95,
+ 0x7d, 0x24, 0x12, 0x71, 0xe7, 0x4a, 0x6e, 0x64, 0x62, 0x28, 0xf1, 0x80,
+ 0xa9, 0x95, 0x48, 0x0c, 0xde, 0xe7, 0xaf, 0x41, 0x93, 0x6e, 0x13, 0xd3,
+ 0xec, 0x29, 0x30, 0x76, 0x26, 0xd2, 0x13, 0xe7, 0x14, 0x1a, 0xf9, 0x79,
+ 0x41, 0xd0, 0xf9, 0xd3, 0x4e, 0xe0, 0x7b, 0xb7, 0x63, 0x6e, 0x67, 0x70,
+ 0xbb, 0xc4, 0x5d, 0x40, 0xf7, 0x8b, 0x3a, 0xc8, 0x2d, 0x38, 0x78, 0x9b,
+ 0xe5, 0x05, 0xe1, 0x36, 0x83, 0xdc, 0xe8, 0x54, 0xb2, 0x1c, 0xf2, 0xf8,
+ 0x05, 0xa8, 0xee, 0x2a, 0xe3, 0x5e, 0xa5, 0x5f, 0xc1, 0x27, 0x61, 0x84,
+ 0xeb, 0x12, 0x14, 0xfe, 0x10, 0xf5, 0x1a, 0x9a, 0xfe, 0x9d, 0xfa, 0x3e,
+ 0x1e, 0x7b, 0x4e, 0x2c, 0xcf, 0xd3, 0xa3, 0xc9, 0xf5, 0x7f, 0x6c, 0x26,
+ 0x61, 0x98, 0x10, 0xa8, 0xc2, 0x27, 0xb3, 0x40, 0xc0, 0x3c, 0x77, 0x3f,
+ 0x53, 0xc5, 0xff, 0x17, 0x19, 0xb8, 0xc5, 0xcb, 0xab, 0x0d, 0x80, 0x02,
+ 0xe7, 0xa9, 0x53, 0xa2, 0xdb, 0x61, 0xdb, 0x46, 0x08, 0x41, 0x2c, 0x76,
+ 0xdf, 0xd1, 0x54, 0x9d, 0xa2, 0xe8, 0x81, 0x32, 0xe2, 0x7a, 0xad, 0x2b,
+ 0x61, 0x4d, 0xff, 0xb2, 0xdf, 0xd8, 0x2e, 0x9a, 0xae, 0xaf, 0x44, 0x92,
+ 0x4d, 0xec, 0x7d, 0x9d, 0x9d, 0x77, 0x64, 0x41, 0xbf, 0x07, 0x30, 0x28,
+ 0xaf, 0xf8, 0x1f, 0x9b, 0x96, 0x53, 0x2b, 0x61, 0x1d, 0xd0, 0x35, 0xd6,
+ 0x88, 0xa3, 0x44, 0x54, 0x09, 0xf4, 0xbc, 0xce, 0x86, 0x8d, 0xa4, 0x54,
+ 0xae, 0xe0, 0x61, 0x5a, 0xee, 0x39, 0x87, 0xa3, 0xb1, 0x36, 0xe1, 0x64,
+ 0xf4, 0x66, 0xbe, 0x4d, 0xcc, 0xe9, 0xa1, 0xf4, 0x7a, 0xb4, 0x1d, 0xbc,
+ 0x05, 0x0c, 0xf9, 0x0e, 0xc0, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x09, 0x00, 0x10, 0x10, 0xc4,
+ 0x00, 0x18, 0x00, 0x19, 0xd8, 0x5f, 0xa0, 0x18, 0x55, 0xb5, 0x10, 0x76,
+ 0xf3, 0x6c, 0x24, 0x37, 0x95, 0xb1, 0xb7, 0x2a, 0x7f, 0xfd, 0x1d, 0xa1,
+ 0x31, 0x7e, 0x36, 0x6d, 0x45, 0x93, 0x72, 0x14, 0x0d, 0x40, 0x16, 0xf8,
+ 0x36, 0xae, 0x07, 0x73, 0xfd, 0x27, 0x3c, 0x95, 0x86, 0x83, 0xc1, 0xdf,
+ 0xb2, 0xd1, 0xdb, 0x41, 0xe1, 0x91, 0xc2, 0xd6, 0x6c, 0x7c, 0x11, 0x06,
+ 0xeb, 0xad, 0x34, 0xaa, 0xd8, 0x47, 0x92, 0x47, 0xc6, 0xea, 0x2e, 0x83,
+ 0x23, 0x17, 0xc8, 0x32, 0xf2, 0x41, 0xce, 0xa3, 0x6b, 0xe6, 0x50, 0x36,
+ 0x75, 0x4a, 0x51, 0xcd, 0x77, 0x10, 0x3b, 0xfe, 0x03, 0x39, 0xb1, 0x31,
+ 0x21, 0x28, 0xe0, 0xfa, 0xe2, 0xb9, 0xf0, 0x10, 0x75, 0x55, 0x48, 0x70,
+ 0xe5, 0x02, 0x35, 0xf8, 0x09, 0x38, 0x42, 0x31, 0x00, 0xb3, 0x9e, 0x36,
+ 0x2e, 0x9f, 0xba, 0xd7, 0x4a, 0x03, 0xbd, 0x1b, 0x8f, 0x2f, 0x3b, 0xbc,
+ 0x3f, 0x46, 0xcf, 0xab, 0x21, 0x5d, 0x8a, 0xd4, 0xd7, 0x6d, 0x50, 0x99,
+ 0xa1, 0x67, 0x8c, 0x74, 0x67, 0xd1, 0xde, 0x05, 0x1a, 0xcb, 0xe4, 0x09,
+ 0xbc, 0x6c, 0x29, 0xee, 0x25, 0xda, 0xd2, 0x50, 0x42, 0xba, 0x05, 0xdc,
+ 0xb8, 0xe9, 0x6d, 0x9a, 0x31, 0x8d, 0x58, 0x96, 0xa1, 0x66, 0x81, 0x38,
+ 0x0b, 0x38, 0xac, 0x91, 0xa8, 0x8f, 0x66, 0x17, 0xe3, 0x00, 0x1f, 0x88,
+ 0x82, 0x69, 0x67, 0x66, 0x90, 0xa7, 0x15, 0x78, 0xf0, 0x04, 0x4f, 0x63,
+ 0xc3, 0x8d, 0xf8, 0xe3, 0xfc, 0x6c, 0xa5, 0x1d, 0x45, 0x9d, 0x88, 0x24,
+ 0xdf, 0x04, 0x81, 0xfe, 0xe8, 0x7d, 0x8d, 0x14, 0xbd, 0x43, 0xc8, 0xb8,
+ 0x91, 0xc8, 0x29, 0xda, 0xd4, 0xda, 0x59, 0x96, 0x81, 0xe4, 0xa7, 0x57,
+ 0x3c, 0x26, 0x76, 0xdb, 0x53, 0x14, 0x65, 0xd3, 0xa9, 0x56, 0x9f, 0xea,
+ 0xe1, 0x7b, 0xe1, 0x06, 0x36, 0x23, 0xf8, 0xdc, 0x41, 0xeb, 0x60, 0xa9,
+ 0x61, 0x56, 0xc3, 0xfd, 0xee, 0x11, 0xdc, 0x41, 0xe0, 0xa0, 0x28, 0x00,
+ 0xe8, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x31, 0x0b, 0x00, 0x0d, 0x10, 0xb0, 0x00, 0x18, 0x00, 0x19, 0x48, 0x5f,
+ 0x3d, 0x30, 0x47, 0x85, 0x76, 0x44, 0xda, 0x8f, 0x33, 0xc9, 0x5a, 0xad,
+ 0x70, 0x5f, 0xfe, 0xe5, 0xc2, 0xb3, 0x4a, 0x80, 0x15, 0xf6, 0x02, 0x81,
+ 0x29, 0x15, 0xce, 0xac, 0x7c, 0xd4, 0x4a, 0x17, 0xe6, 0x50, 0x31, 0xb5,
+ 0xc4, 0x98, 0x3c, 0x07, 0x6e, 0x6e, 0x54, 0x80, 0xb2, 0x2b, 0xcc, 0x5d,
+ 0x54, 0xb0, 0x00, 0x0f, 0xa4, 0x2f, 0x3e, 0x40, 0x01, 0x7a, 0x84, 0x61,
+ 0xb6, 0xaa, 0xae, 0x0a, 0x9e, 0xa0, 0x4a, 0x28, 0xbe, 0xde, 0xe2, 0x79,
+ 0xd0, 0x19, 0x0a, 0x3f, 0x0f, 0x99, 0xa9, 0xf0, 0xb6, 0x75, 0x5a, 0xba,
+ 0x96, 0x78, 0xca, 0xd0, 0xba, 0x3d, 0x2e, 0x08, 0xf1, 0x5f, 0x65, 0xc6,
+ 0x06, 0x07, 0x63, 0x2a, 0x6a, 0x53, 0x15, 0x3f, 0x5c, 0xfd, 0x1d, 0x01,
+ 0x11, 0x34, 0x5c, 0x94, 0xc8, 0xa1, 0xbe, 0x5a, 0xd0, 0xc5, 0x93, 0x6b,
+ 0x80, 0x57, 0xe4, 0x68, 0x08, 0xad, 0x1a, 0xd5, 0xd9, 0x56, 0x83, 0xfc,
+ 0x48, 0x3a, 0xaa, 0x79, 0x4d, 0x26, 0x42, 0xb6, 0x9d, 0xbd, 0xc4, 0x79,
+ 0x6c, 0x61, 0x0c, 0x87, 0xcb, 0xb2, 0x08, 0x55, 0x5e, 0x72, 0x97, 0x92,
+ 0x21, 0x50, 0x1d, 0x59, 0x3d, 0xce, 0x32, 0xc1, 0x7c, 0x0a, 0x50, 0x4f,
+ 0xa7, 0x41, 0x77, 0xf5, 0x34, 0xb8, 0x17, 0xe9, 0x8b, 0xfc, 0x73, 0xad,
+ 0x26, 0xfd, 0x7c, 0x75, 0x4b, 0x73, 0x42, 0x95, 0x8f, 0xef, 0x6d, 0x96,
+ 0x17, 0x54, 0x13, 0x13, 0x19, 0x91, 0x22, 0xdb, 0xfb, 0x91, 0x41, 0x83,
+ 0x8c, 0xaa, 0x5c, 0x91, 0xe0, 0xa8, 0xbe, 0x2a, 0x30, 0xd2, 0x3b, 0xfb,
+ 0xba, 0xf9, 0x84, 0x40, 0x58, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x91, 0x0e, 0x00, 0x0f, 0x10, 0xbc, 0x00, 0x18,
+ 0x00, 0xcd, 0x40, 0x40, 0x13, 0x70, 0xc5, 0x36, 0xbd, 0x2b, 0x58, 0x53,
+ 0x2f, 0x15, 0xf1, 0x66, 0x55, 0x0a, 0xb9, 0xd7, 0x56, 0x51, 0x52, 0x10,
+ 0x4e, 0x93, 0xdc, 0xb1, 0xbe, 0x49, 0xc4, 0x9d, 0x8d, 0xe2, 0xc5, 0x6c,
+ 0xd0, 0x99, 0x87, 0x68, 0x0a, 0x3a, 0xb5, 0xfa, 0x66, 0x20, 0xec, 0xb0,
+ 0x83, 0xe5, 0x85, 0xa7, 0x90, 0x10, 0xc1, 0x04, 0x22, 0x18, 0x31, 0x65,
+ 0x26, 0xa8, 0xbf, 0xad, 0x5d, 0x2f, 0xff, 0x73, 0x12, 0xcf, 0x99, 0x34,
+ 0x9d, 0x5c, 0x7f, 0xec, 0x20, 0x26, 0x12, 0xa2, 0x08, 0xdc, 0x3a, 0xdb,
+ 0x39, 0x5c, 0xb2, 0x7b, 0x9b, 0x00, 0xc6, 0xbf, 0x37, 0xd7, 0xdb, 0x32,
+ 0x47, 0x8a, 0x91, 0x99, 0xbe, 0xf7, 0x05, 0xea, 0x9a, 0xdb, 0x29, 0xe2,
+ 0x83, 0x78, 0x80, 0x29, 0xb9, 0xf0, 0x31, 0x1d, 0x90, 0x26, 0x3d, 0x68,
+ 0x9e, 0x89, 0xee, 0x37, 0x25, 0xda, 0x87, 0xe1, 0x68, 0x7c, 0xcc, 0xdc,
+ 0x9d, 0x19, 0x8b, 0xfe, 0xc4, 0xf7, 0x02, 0x30, 0x10, 0x1a, 0x9e, 0x29,
+ 0xa6, 0x82, 0x9c, 0x77, 0x85, 0x1a, 0xd5, 0xd6, 0xd6, 0x66, 0x0c, 0x66,
+ 0x6c, 0x6e, 0xcd, 0x33, 0x80, 0xbc, 0xbf, 0x34, 0x46, 0xba, 0x92, 0xa6,
+ 0x65, 0x26, 0xfe, 0x1a, 0xc5, 0x08, 0x78, 0x36, 0xbb, 0x61, 0x63, 0x53,
+ 0x2b, 0x69, 0x78, 0xdb, 0x2c, 0x07, 0x78, 0xb1, 0xbb, 0x93, 0xb5, 0xeb,
+ 0x55, 0x90, 0x1d, 0x9f, 0x9c, 0xf5, 0xa1, 0x00, 0x15, 0x2f, 0x43, 0x5d,
+ 0x06, 0xca, 0xeb, 0x31, 0xef, 0x85, 0xb9, 0x65, 0x3e, 0x3f, 0x5d, 0x47,
+ 0x26, 0xf2, 0xa2, 0x59, 0xe8, 0x5f, 0xdf, 0x8b, 0x9b, 0x40, 0x54, 0xb5,
+ 0xca, 0xc6, 0x57, 0xce, 0x1b, 0x91, 0xaf, 0x5b, 0xaa, 0x80, 0x85, 0x55,
+ 0xef, 0x0b, 0x52, 0x41, 0x0b, 0xee, 0xfc, 0x8e, 0x65, 0xaf, 0x62, 0x1d,
+ 0x23, 0xaf, 0x21, 0x0c, 0xa2, 0xfe, 0xea, 0xc3, 0xc8, 0x78, 0xe4, 0xed,
+ 0x57, 0x7d, 0x9f, 0x4d, 0x8a, 0x37, 0x81, 0x52, 0xd1, 0xca, 0x7c, 0xa9,
+ 0x7f, 0x05, 0x4d, 0xb9, 0xd6, 0x92, 0x0f, 0xea, 0x3c, 0x2d, 0x9e, 0xe7,
+ 0x45, 0x4d, 0x4e, 0xd6, 0xa6, 0xd2, 0xcc, 0xb4, 0x18, 0xa5, 0xec, 0x5d,
+ 0x02, 0x13, 0x3b, 0xf5, 0xe4, 0xfc, 0x1b, 0x97, 0x4e, 0x86, 0x85, 0xd4,
+ 0x34, 0xda, 0xbb, 0x69, 0xbd, 0x9b, 0x00, 0x41, 0x59, 0x47, 0x8b, 0xf7,
+ 0x8a, 0x10, 0x19, 0x70, 0xb1, 0x7d, 0xc0, 0x08, 0x56, 0x24, 0x14, 0x00,
+ 0x51, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x0d, 0x00, 0x0c, 0x10, 0xb0, 0x00, 0x18, 0x00, 0xf9, 0xe9, 0x27,
+ 0xa2, 0xe9, 0xc4, 0xe8, 0x98, 0x9e, 0xb4, 0x2d, 0x38, 0x14, 0xef, 0x4b,
+ 0x4c, 0x45, 0x1a, 0x9e, 0x35, 0xa7, 0x5d, 0x8d, 0x98, 0x00, 0x0f, 0xeb,
+ 0x59, 0x43, 0x93, 0x63, 0xaa, 0xdc, 0x0c, 0x2a, 0x90, 0x9a, 0x4f, 0xd1,
+ 0x20, 0x4a, 0x76, 0xb2, 0x85, 0x8a, 0x2b, 0x20, 0x2e, 0xc7, 0xb7, 0xfe,
+ 0x72, 0x22, 0x93, 0x3a, 0x64, 0xf4, 0x60, 0x4b, 0x49, 0x1e, 0xb0, 0xed,
+ 0x8b, 0x30, 0x25, 0xf0, 0x5e, 0x7b, 0x3c, 0x6e, 0x00, 0x08, 0x13, 0x28,
+ 0x8e, 0xb9, 0x9c, 0x9c, 0x09, 0x48, 0x16, 0xc9, 0x24, 0xeb, 0x3d, 0xbd,
+ 0x77, 0x8d, 0x10, 0xba, 0x9d, 0x69, 0x05, 0xbb, 0x70, 0x7f, 0x20, 0x30,
+ 0x2e, 0x02, 0xb9, 0x14, 0x74, 0xe4, 0x7e, 0x23, 0x87, 0x2f, 0xbb, 0xd7,
+ 0x01, 0x5c, 0x47, 0xa5, 0x28, 0xa1, 0x23, 0x63, 0xf3, 0x3e, 0x91, 0xd9,
+ 0xbd, 0xa2, 0x67, 0x05, 0x44, 0x31, 0x5f, 0x72, 0x22, 0x24, 0x85, 0x16,
+ 0xcb, 0x50, 0x17, 0xe6, 0x25, 0x61, 0x26, 0x7f, 0xa8, 0x4b, 0x01, 0x17,
+ 0xcd, 0x04, 0xba, 0x26, 0x30, 0x71, 0x23, 0xd8, 0x7d, 0x1d, 0xe6, 0x41,
+ 0x35, 0x8e, 0xfd, 0xae, 0xcb, 0x20, 0xdb, 0x79, 0xfa, 0x7c, 0x02, 0xbc,
+ 0x23, 0xd8, 0x9a, 0xa3, 0x55, 0x7e, 0xc1, 0xf3, 0xdf, 0x7f, 0x0a, 0x5f,
+ 0x09, 0xad, 0xb3, 0xcc, 0x15, 0xf2, 0xd7, 0x17, 0x0d, 0x8c, 0xd0, 0xa3,
+ 0x8d, 0x94, 0x01, 0x05, 0x7f, 0x93, 0xdb, 0x00, 0xf0, 0x3e, 0x06, 0x74,
+ 0x5b, 0x69, 0x72, 0xcd, 0x08, 0x3e, 0x6d, 0x57, 0x03, 0x08, 0xc4, 0x43,
+ 0x80, 0x00, 0x7e, 0xf1, 0x81, 0x01, 0x8a, 0x0d, 0xbc, 0xb1, 0x0a, 0xd0,
+ 0x75, 0xa1, 0xf8, 0x55, 0xf5, 0x8d, 0xb7, 0xd3, 0x6b, 0xf2, 0xff, 0x98,
+ 0x6c, 0x3f, 0x1e, 0x0f, 0x48, 0x02, 0x33, 0x2c, 0x9d, 0x71, 0x7a, 0xca,
+ 0x31, 0xd8, 0x66, 0x51, 0xc2, 0x3b, 0x20, 0x6d, 0xfc, 0x86, 0x15, 0x29,
+ 0x0f, 0x79, 0x9b, 0x58, 0xd8, 0xc3, 0x23, 0x52, 0x15, 0x7c, 0x3f, 0x08,
+ 0x98, 0x73, 0xb3, 0x7c, 0x04, 0x44, 0xa4, 0xdc, 0xe7, 0x85, 0x60, 0x56,
+ 0x9c, 0x3a, 0xa7, 0x5f, 0x95, 0x69, 0x71, 0x45, 0xc4, 0x00, 0xe8, 0x15,
+ 0x7b, 0x99, 0x2c, 0xe0, 0x09, 0xbd, 0x41, 0xbc, 0xc2, 0x57, 0xfc, 0x30,
+ 0xe6, 0x74, 0x09, 0x46, 0xf6, 0x52, 0x3b, 0x0b, 0x61, 0x83, 0x70, 0x83,
+ 0x00, 0xc2, 0x03, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x91, 0x1a, 0x00, 0x0c, 0x10, 0x78, 0x00, 0x1e, 0xbf, 0xdc, 0xfb,
+ 0xa7, 0x3a, 0xcf, 0x6a, 0x10, 0x01, 0xd8, 0x66, 0xe9, 0x26, 0xd0, 0x36,
+ 0x39, 0x92, 0xa3, 0x4e, 0xe7, 0xf3, 0xff, 0xa1, 0x3e, 0x51, 0xc6, 0x13,
+ 0xda, 0x5a, 0x83, 0x65, 0x91, 0x32, 0xc8, 0xa3, 0xd7, 0x74, 0x83, 0xe1,
+ 0xd9, 0x0c, 0xbb, 0x57, 0xd8, 0x6d, 0xf2, 0xfc, 0x5e, 0x47, 0x10, 0x59,
+ 0xdf, 0x59, 0x79, 0x70, 0x48, 0x31, 0xe1, 0xd0, 0x50, 0x78, 0xca, 0x6e,
+ 0xdb, 0xf3, 0x76, 0x17, 0x1c, 0xd5, 0x01, 0x9d, 0x7e, 0x8e, 0xa4, 0x04,
+ 0xdc, 0x54, 0xbb, 0x56, 0x92, 0xb0, 0x48, 0xb9, 0x93, 0x28, 0xd6, 0x6f,
+ 0x15, 0xee, 0xeb, 0x27, 0xd3, 0x6e, 0x76, 0xf2, 0x06, 0x81, 0xcf, 0x51,
+ 0x41, 0x6b, 0x0e, 0xa6, 0x54, 0xfd, 0x18, 0x97, 0xfe, 0x53, 0xc1, 0x31,
+ 0x70, 0x8a, 0xfa, 0x5a, 0xd1, 0xf0, 0x27, 0x8b, 0xa2, 0xbb, 0x80, 0x03,
+ 0x9f, 0x8b, 0xb7, 0x20, 0x06, 0x84, 0x03, 0x80, 0x2a, 0x89, 0xdc, 0x01,
+ 0x15, 0x75, 0x80, 0x06, 0xd4, 0x03, 0x80, 0x2a, 0x89, 0xdc, 0x01, 0x15,
+ 0x75, 0x80, 0x06, 0xd4, 0x03, 0x80, 0x2a, 0x89, 0xdc, 0x01, 0x15, 0x75,
+ 0x80, 0x06, 0xd4, 0x03, 0x80, 0x06, 0xc0, 0xdc, 0x80, 0x01, 0x9f, 0x56,
+ 0x00, 0x08, 0x99, 0x75, 0x80, 0x06, 0xd4, 0x03, 0x80, 0x04, 0x92, 0x08,
+ 0xab, 0x6a, 0xcf, 0x68, 0x33, 0xd3, 0x0b, 0xae, 0xe4, 0x5d, 0xc8, 0xd4,
+ 0x67, 0x15, 0x99, 0x5e, 0x56, 0xfb, 0xa1, 0xab, 0x7a, 0x5f, 0xef, 0x00,
+ 0x5b, 0xc9, 0x4b, 0xa4, 0xeb, 0x73, 0x16, 0x54, 0xbe, 0x55, 0x16, 0xc3,
+ 0xf2, 0x48, 0x53, 0x5a, 0x17, 0x40, 0xc3, 0x99, 0xae, 0xa4, 0x77, 0x8a,
+ 0xce, 0x68, 0x21, 0xc4, 0x32, 0x06, 0x3e, 0xbd, 0x52, 0xbc, 0x74, 0x48,
+ 0x01, 0xf5, 0xd8, 0x1d, 0xc7, 0x07, 0xd6, 0xb4, 0xc1, 0xfe, 0x79, 0xe2,
+ 0x76, 0x8c, 0x3d, 0x61, 0x9e, 0xdd, 0xcc, 0x17, 0x8b, 0xf9, 0xfa, 0xc4,
+ 0x12, 0x7e, 0xd9, 0xea, 0x74, 0x96, 0x16, 0x3a, 0xea, 0xf3, 0xd9, 0x91,
+ 0x3e, 0xd9, 0x4e, 0x45, 0x19, 0x4b, 0x9e, 0x08, 0xca, 0x5c, 0xf0, 0x46,
+ 0x52, 0xe7, 0x82, 0x32, 0x97, 0x3c, 0x11, 0x94, 0x66, 0xf3, 0xb0, 0x72,
+ 0x18, 0x65, 0xa2, 0x6a, 0xed, 0x4a, 0xc0, 0xfe, 0x84, 0x66, 0xc8, 0xea,
+ 0x81, 0x43, 0xb1, 0xf3, 0x0a, 0xaf, 0x55, 0xff, 0xf8, 0x21, 0xb9, 0x25,
+ 0xb2, 0x91, 0x0b, 0x84, 0x51, 0x66, 0xd9, 0xe6, 0xd9, 0x4f, 0xcd, 0xb6,
+ 0x42, 0x4f, 0x9e, 0x58, 0x2c, 0x82, 0x99, 0xe6, 0xb4, 0xe8, 0x30, 0xc4,
+ 0x2f, 0x0a, 0xab, 0x6c, 0x77, 0x7c, 0xee, 0x72, 0xb4, 0x1c, 0xd4, 0x8b,
+ 0x3e, 0x3a, 0x50, 0x11, 0xb2, 0x38, 0xb2, 0xde, 0x73, 0x74, 0x91, 0x60,
+ 0xb0, 0x8c, 0x25, 0xfd, 0xa3, 0x1e, 0xe5, 0xaf, 0x5f, 0x59, 0x06, 0xf3,
+ 0xa5, 0x1e, 0x6e, 0x17, 0xb7, 0x38, 0x9e, 0x0b, 0x2e, 0xd7, 0x0f, 0xf5,
+ 0x2c, 0x13, 0x50, 0x5f, 0x52, 0x60, 0x60, 0xe1, 0x7f, 0x9d, 0x2d, 0xdf,
+ 0x2e, 0x09, 0x16, 0x39, 0xf0, 0xa1, 0x31, 0x8a, 0xa3, 0x83, 0xfd, 0x4e,
+ 0xbc, 0xc2, 0xed, 0xd1, 0x66, 0xdb, 0xd2, 0xa1, 0xdb, 0xd0, 0x6c, 0x72,
+ 0xa5, 0xd0, 0x69, 0xf8, 0x53, 0x3e, 0xac, 0x2d, 0x21, 0xa7, 0x03, 0x6a,
+ 0x4b, 0x43, 0xcb, 0xcd, 0x36, 0xb4, 0x80, 0xfb, 0x6e, 0xf1, 0xca, 0xe0,
+ 0x49, 0x2e, 0x84, 0x2a, 0x97, 0x0d, 0xbf, 0x61, 0x1e, 0x86, 0xba, 0x82,
+ 0x77, 0xa5, 0xf7, 0x54, 0x46, 0x6f, 0xeb, 0xf3, 0x59, 0x80, 0x1d, 0x1d,
+ 0x90, 0x70, 0x6e, 0x96, 0x0f, 0xc6, 0x4b, 0xd2, 0x46, 0xa4, 0x92, 0x9f,
+ 0xf5, 0xe6, 0x0a, 0x04, 0x42, 0xe8, 0x84, 0x9b, 0xaa, 0x75, 0x0b, 0xd7,
+ 0xbe, 0xd9, 0x39, 0x7b, 0x15, 0xc7, 0x94, 0x0a, 0xe3, 0xec, 0x34, 0xb1,
+ 0x08, 0x33, 0x5d, 0x64, 0xe2, 0xff, 0x91, 0x35, 0xca, 0xa6, 0xfb, 0x54,
+ 0x0b, 0x16, 0x18, 0x2b, 0xa3, 0xdd, 0xd0, 0xe6, 0x9d, 0x3f, 0xf5, 0xdd,
+ 0xc3, 0x0f, 0x06, 0x59, 0x9f, 0x16, 0xfb, 0x18, 0x24, 0x1f, 0xc4, 0xe8,
+ 0x5a, 0xd6, 0x15, 0xdd, 0x1e, 0xb9, 0xf6, 0x60, 0x85, 0x0e, 0x04, 0x67,
+ 0x92, 0xe0, 0xb9, 0x4b, 0x66, 0x44, 0xb7, 0xc1, 0x5a, 0x14, 0x0d, 0x22,
+ 0x80, 0xe2, 0xf3, 0xea, 0xa3, 0xaa, 0x84, 0xa6, 0x91, 0xa1, 0x2c, 0x0d,
+ 0x43, 0xd8, 0x6f, 0x88, 0xaf, 0xca, 0x75, 0x57, 0xc2, 0xb6, 0x3f, 0x83,
+ 0xfe, 0x6f, 0xfe, 0xd7, 0x6f, 0x3a, 0x8b, 0x9e, 0x58, 0xc7, 0x27, 0x55,
+ 0xfc, 0xd9, 0x5f, 0x11, 0xa5, 0x4b, 0x8e, 0x72, 0x19, 0x6b, 0x76, 0x0a,
+ 0x1b, 0xb7, 0x52, 0x62, 0x02, 0x3e, 0x3e, 0xcd, 0x6a, 0x2b, 0x32, 0xe8,
+ 0x06, 0x81, 0x08, 0x36, 0x62, 0x13, 0x3a, 0x2f, 0x55, 0x2a, 0xfc, 0x58,
+ 0x2b, 0x6e, 0x82, 0x7f, 0x41, 0x4c, 0x8d, 0xb0, 0xed, 0xd1, 0x5c, 0xf9,
+ 0x31, 0xae, 0x64, 0x96, 0xec, 0x22, 0x8c, 0xf6, 0x8c, 0xeb, 0xc8, 0x80,
+ 0x7b, 0xb0, 0x30, 0xbf, 0xf1, 0xa6, 0x7d, 0x9e, 0x41, 0x3c, 0x42, 0x68,
+ 0xe7, 0xd1, 0x47, 0x23, 0x5d, 0x00, 0x8e, 0xb5, 0x79, 0x04, 0x01, 0x02,
+ 0x37, 0xe0, 0x07, 0x29, 0xb8, 0xc2, 0x91, 0x4e, 0xb3, 0xc4, 0xac, 0x59,
+ 0x3a, 0x0b, 0x5e, 0x83, 0x26, 0xde, 0x0c, 0x8f, 0xb4, 0xff, 0x43, 0x8b,
+ 0x18, 0x22, 0x48, 0xf1, 0xe9, 0x06, 0x1d, 0x5e, 0xd6, 0xa2, 0x9b, 0x57,
+ 0x9c, 0xfc, 0xe3, 0xde, 0x83, 0xfd, 0x2f, 0x68, 0x08, 0x80, 0x53, 0x08,
+ 0x56, 0x2f, 0x12, 0x32, 0x19, 0x67, 0x12, 0x36, 0xde, 0x17, 0x26, 0x01,
+ 0x8c, 0x94, 0x49, 0x66, 0xeb, 0x81, 0xbe, 0x52, 0xb7, 0x6a, 0xae, 0x3a,
+ 0x6e, 0x59, 0x07, 0x49, 0x6f, 0x67, 0xd8, 0x29, 0x4b, 0xf8, 0xba, 0x36,
+ 0x1a, 0xb1, 0xfe, 0xdf, 0xe9, 0xe0, 0xb5, 0xd1, 0x62, 0xd3, 0x49, 0xb1,
+ 0xb1, 0x1d, 0x31, 0x47, 0x5c, 0xcb, 0x7d, 0x11, 0xb7, 0x26, 0xc0, 0x1f,
+ 0x08, 0xe3, 0x1b, 0xd4, 0xa3, 0x35, 0x4a, 0x91, 0xfe, 0xb4, 0xce, 0xa2,
+ 0xb5, 0x9e, 0x98, 0x62, 0x34, 0x70, 0xb7, 0x09, 0x64, 0xba, 0x21, 0x97,
+ 0x47, 0xce, 0xff, 0xbc, 0x9a, 0xff, 0x41, 0x0d, 0x83, 0x2f, 0xef, 0x99,
+ 0xbc, 0x71, 0xdf, 0x0f, 0x78, 0x86, 0x69, 0xbe, 0x1e, 0xf1, 0x8f, 0x26,
+ 0x4f, 0xd7, 0xc4, 0xe7, 0xa7, 0xbf, 0x2f, 0xd5, 0xc2, 0x8c, 0x61, 0xb5,
+ 0x5a, 0x36, 0x9b, 0xae, 0x87, 0xb9, 0xd1, 0x12, 0xf2, 0x3a, 0x6d, 0xa7,
+ 0x2c, 0x47, 0x48, 0xfa, 0x44, 0x5f, 0x3a, 0x8f, 0x59, 0xe9, 0xd7, 0xe6,
+ 0xcc, 0xd8, 0xe5, 0xd9, 0x1d, 0xb7, 0x13, 0xfa, 0x96, 0x05, 0x0f, 0x71,
+ 0x71, 0x46, 0x6f, 0x21, 0xc7, 0x6d, 0xe1, 0xf4, 0x1c, 0x67, 0x9d, 0x3f,
+ 0xca, 0x2f, 0x4c, 0x00, 0x09, 0x8b, 0x01, 0x88, 0x1e, 0x00, 0xea, 0xa2,
+ 0xfa, 0x6d, 0xa2, 0x9e, 0x90, 0x3e, 0x16, 0x9d, 0x40, 0x21, 0x61, 0xcc,
+ 0x11, 0x97, 0xb8, 0x18, 0x6d, 0xb9, 0x02, 0x86, 0xc9, 0xb3, 0xce, 0x84,
+ 0x15, 0x98, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb1, 0x09, 0x00, 0x0d, 0x10, 0x78, 0x00, 0x18, 0x01,
+ 0x3e, 0x58, 0x7f, 0x6e, 0x43, 0xc6, 0x02, 0x09, 0x22, 0x2b, 0xcd, 0xf3,
+ 0x08, 0xff, 0xbe, 0x24, 0xd7, 0x6d, 0xf6, 0x27, 0x5a, 0xb7, 0x58, 0x67,
+ 0xbe, 0x30, 0x97, 0xcb, 0x14, 0x8f, 0x69, 0xc8, 0x5f, 0xee, 0x75, 0x6c,
+ 0x8c, 0xb3, 0x16, 0x69, 0xaf, 0x80, 0x15, 0x84, 0x32, 0xd9, 0xbf, 0xb9,
+ 0xa1, 0x5c, 0x60, 0xee, 0xaa, 0x5d, 0x38, 0xb7, 0x96, 0xb9, 0x14, 0xdf,
+ 0x9b, 0x4b, 0xb5, 0x57, 0x4e, 0xb5, 0x90, 0xf9, 0x7c, 0x61, 0x00, 0x86,
+ 0x64, 0x8b, 0x50, 0x87, 0x4b, 0x78, 0x1f, 0x0a, 0x45, 0x03, 0xe0, 0x6d,
+ 0x8d, 0x7c, 0x4f, 0x68, 0xcf, 0x3e, 0xd6, 0xb4, 0x39, 0x13, 0x9d, 0xdd,
+ 0x8b, 0x88, 0x2c, 0x95, 0xd7, 0x69, 0x83, 0x8a, 0xd3, 0x78, 0xe9, 0x9a,
+ 0xb0, 0xff, 0xa4, 0x6a, 0xe2, 0x57, 0x22, 0x5e, 0xa8, 0x51, 0xf6, 0x7d,
+ 0x83, 0xcb, 0x23, 0x3d, 0x56, 0x32, 0xb3, 0x81, 0x9f, 0x53, 0xe4, 0x8e,
+ 0x43, 0x6b, 0xa2, 0x72, 0x73, 0xd1, 0xe2, 0xc2, 0xc0, 0x4d, 0xea, 0xea,
+ 0xad, 0x92, 0x58, 0x9d, 0x2f, 0xfb, 0x46, 0x02, 0x4e, 0x6e, 0x37, 0xf5,
+ 0xac, 0x5f, 0xc6, 0xca, 0x00, 0x77, 0xdd, 0x92, 0x4e, 0xf8, 0x90, 0x54,
+ 0xb6, 0x1e, 0xa6, 0xcc, 0x4d, 0xea, 0xd6, 0xbe, 0x05, 0xe8, 0x70, 0xf9,
+ 0xec, 0xd3, 0x7d, 0xf3, 0xb7, 0x05, 0x5b, 0x3d, 0x7f, 0xb9, 0xc2, 0x9b,
+ 0x8f, 0xcf, 0x5c, 0x45, 0x10, 0x45, 0x67, 0x93, 0x6f, 0xfb, 0x52, 0x43,
+ 0xc6, 0x9f, 0x46, 0xd1, 0x83, 0x35, 0xd8, 0x33, 0x11, 0xf7, 0xa3, 0x38,
+ 0x62, 0xa7, 0x92, 0xe5, 0x6c, 0xdc, 0xb8, 0x3d, 0x97, 0x72, 0x53, 0x3a,
+ 0xe9, 0xb8, 0x92, 0x89, 0x5e, 0x01, 0x7f, 0xaf, 0xfc, 0xcc, 0xe9, 0x4a,
+ 0xaa, 0x0d, 0xd7, 0x51, 0x08, 0x60, 0x13, 0x5f, 0xc3, 0x60, 0xa1, 0x72,
+ 0x48, 0x27, 0x6b, 0x07, 0xaf, 0x63, 0x26, 0xce, 0x9c, 0x05, 0x8e, 0xbd,
+ 0x7d, 0xee, 0xac, 0x1c, 0x5f, 0x23, 0xfd, 0x6f, 0xdb, 0x66, 0x85, 0x20,
+ 0x93, 0x1a, 0x6a, 0xa4, 0x39, 0x49, 0xe6, 0x77, 0x2f, 0x7e, 0x4b, 0x64,
+ 0x12, 0x57, 0xed, 0x77, 0xda, 0x88, 0x8a, 0x0f, 0xdf, 0x23, 0x84, 0xd0,
+ 0x16, 0x04, 0x75, 0x85, 0x65, 0x2b, 0x99, 0x9c, 0x9f, 0xb6, 0x4b, 0x46,
+ 0x14, 0x15, 0x41, 0xf5, 0x59, 0x9e, 0x03, 0x89, 0xc4, 0xeb, 0x40, 0x00,
+ 0x35, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x0a, 0x00, 0x0a, 0x10, 0xa4, 0x00, 0x18, 0x00, 0x3a, 0xbc, 0x5b,
+ 0xcc, 0x55, 0xf2, 0xa2, 0xca, 0x9e, 0xfa, 0x2b, 0x7a, 0x61, 0xea, 0x01,
+ 0x09, 0xe3, 0xa0, 0x2c, 0x87, 0x64, 0x56, 0xdd, 0x4c, 0x07, 0xb6, 0x15,
+ 0x79, 0xbb, 0x91, 0x16, 0x57, 0x8a, 0x7a, 0x71, 0x0e, 0x00, 0x24, 0xcb,
+ 0x9e, 0x54, 0x0e, 0x64, 0x4d, 0x88, 0x60, 0xcc, 0xe8, 0x2f, 0xee, 0xc8,
+ 0xf5, 0xcf, 0x2c, 0xc3, 0x00, 0x39, 0xf8, 0x36, 0xb5, 0x3f, 0x75, 0x08,
+ 0x3e, 0x60, 0x1e, 0x05, 0x19, 0xb2, 0x3c, 0x02, 0x4e, 0x40, 0x2a, 0x9d,
+ 0x36, 0x85, 0xb3, 0x00, 0x2b, 0x43, 0x8e, 0x42, 0x08, 0xcb, 0x8a, 0xb0,
+ 0x5a, 0xb1, 0xa5, 0x52, 0x2b, 0xc4, 0xd8, 0xbe, 0xd0, 0x46, 0x34, 0x87,
+ 0x8c, 0x35, 0x8b, 0x39, 0xae, 0xb7, 0xb8, 0x83, 0x10, 0xd6, 0x52, 0x8a,
+ 0x53, 0xca, 0x52, 0x79, 0xdd, 0xe1, 0x56, 0x4f, 0x2d, 0x74, 0x94, 0x26,
+ 0x99, 0x04, 0x39, 0x51, 0x52, 0xdd, 0x66, 0xe2, 0x35, 0x58, 0x20, 0x7e,
+ 0x3f, 0x19, 0xba, 0x9e, 0x0c, 0x25, 0xa4, 0x69, 0x49, 0xaf, 0x80, 0x69,
+ 0xef, 0xd7, 0x42, 0x3a, 0x80, 0xa0, 0x43, 0xc3, 0xae, 0x87, 0x6d, 0x85,
+ 0x83, 0x9a, 0x4f, 0xcd, 0xdc, 0xc2, 0xe5, 0x48, 0xd3, 0xdf, 0x74, 0xdc,
+ 0xd0, 0x30, 0x1a, 0xff, 0xa5, 0x90, 0x81, 0xa4, 0x20, 0x5f, 0x9a, 0xa5,
+ 0x7a, 0x60, 0x35, 0x49, 0xc8, 0xac, 0x82, 0x6f, 0xd2, 0xaf, 0x94, 0x7b,
+ 0x21, 0xd6, 0xc2, 0x47, 0xc8, 0xbb, 0xf7, 0x3f, 0x57, 0xd9, 0x97, 0x42,
+ 0xde, 0x11, 0xe2, 0xeb, 0x09, 0x64, 0xf5, 0x7d, 0x86, 0x61, 0x35, 0xad,
+ 0x66, 0x3f, 0xec, 0xcf, 0xa4, 0xbf, 0xbb, 0x34, 0xca, 0x4c, 0x12, 0x27,
+ 0xc3, 0x1d, 0x27, 0x28, 0x25, 0x20, 0x18, 0x85, 0xe6, 0x37, 0x0c, 0x43,
+ 0x09, 0xe1, 0x51, 0xc6, 0x6d, 0xd6, 0x7a, 0x99, 0x0a, 0x55, 0x09, 0x26,
+ 0xa6, 0xb1, 0x33, 0x9c, 0x6a, 0x4d, 0x5a, 0x2a, 0x21, 0x4f, 0x34, 0x60,
+ 0x32, 0x5c, 0xa7, 0x79, 0xbb, 0x16, 0x99, 0x53, 0x23, 0xb5, 0x7c, 0x37,
+ 0x9a, 0xf7, 0x9a, 0x11, 0x45, 0x96, 0x81, 0xe2, 0x78, 0x6b, 0x43, 0x2e,
+ 0xff, 0xd9, 0x9a, 0xdf, 0x58, 0x54, 0x2f, 0x40, 0x00, 0x8a, 0x01, 0x00,
+ 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0c, 0x00,
+ 0x10, 0x10, 0x90, 0x00, 0x18, 0x01, 0x11, 0x03, 0x07, 0xff, 0x7c, 0x0d,
+ 0xc8, 0x74, 0x56, 0x6c, 0x3b, 0x00, 0x8e, 0xf4, 0xab, 0x66, 0x1c, 0xc8,
+ 0x30, 0xf0, 0x98, 0x83, 0x9b, 0xfb, 0xeb, 0x27, 0x78, 0xb2, 0x56, 0x10,
+ 0x6c, 0x9a, 0xc0, 0x88, 0x21, 0x4a, 0x7b, 0x17, 0x4b, 0x8f, 0xb0, 0xa3,
+ 0x06, 0x66, 0xc1, 0xb0, 0x49, 0x2c, 0xab, 0xc4, 0x31, 0x55, 0x54, 0x04,
+ 0x04, 0x16, 0xf1, 0x69, 0x8a, 0xbb, 0xec, 0x25, 0x14, 0x41, 0x6d, 0x3b,
+ 0xb9, 0xa2, 0x74, 0x54, 0x85, 0xfb, 0x71, 0xb4, 0x9a, 0xea, 0x06, 0x00,
+ 0x29, 0x87, 0x12, 0xe9, 0xa1, 0x4a, 0x7c, 0xde, 0x1a, 0x34, 0x5e, 0x00,
+ 0x97, 0x86, 0x34, 0x6e, 0xa0, 0x99, 0x97, 0x7f, 0x76, 0xf1, 0x59, 0x4d,
+ 0x24, 0x72, 0x43, 0x46, 0xe3, 0xaf, 0x91, 0x41, 0xac, 0x5a, 0xf0, 0xab,
+ 0x1c, 0x94, 0x44, 0x6f, 0xdc, 0x60, 0x59, 0x8a, 0x47, 0x12, 0xa5, 0xdc,
+ 0x29, 0x92, 0x18, 0xe8, 0xa2, 0x49, 0xeb, 0x7b, 0x44, 0xa2, 0x37, 0xcf,
+ 0xcd, 0x32, 0xfa, 0xfe, 0xd4, 0x17, 0xc6, 0x55, 0xfa, 0x04, 0x17, 0x6a,
+ 0x64, 0xee, 0xea, 0x54, 0x7d, 0xef, 0x47, 0x80, 0x0d, 0x1b, 0x1e, 0x5e,
+ 0x06, 0xbc, 0x98, 0xe9, 0xb4, 0x3c, 0x55, 0x37, 0xdf, 0xfd, 0xcf, 0x5a,
+ 0x5a, 0x1b, 0x95, 0x4f, 0x05, 0x26, 0x54, 0xcb, 0x7d, 0x71, 0xc6, 0xf4,
+ 0x67, 0x0e, 0xb5, 0xc6, 0xf1, 0xad, 0xe6, 0xd3, 0xae, 0xe2, 0xe6, 0x43,
+ 0x9a, 0x2f, 0x94, 0xfd, 0x2b, 0x0c, 0xdf, 0x47, 0xaa, 0xe7, 0x2e, 0x98,
+ 0xce, 0x39, 0xf8, 0xb8, 0x9e, 0x27, 0xf3, 0x1e, 0x01, 0x28, 0x65, 0xaa,
+ 0x2d, 0xef, 0x93, 0x0d, 0x6a, 0xd5, 0x31, 0x38, 0xa4, 0xeb, 0x3d, 0x67,
+ 0xed, 0x0c, 0xfc, 0x33, 0x48, 0x6c, 0x08, 0x76, 0x8c, 0x1d, 0x2c, 0x79,
+ 0x1e, 0x2c, 0x32, 0xa3, 0xdf, 0xeb, 0xd8, 0x0f, 0xc6, 0xce, 0x58, 0x3b,
+ 0x4f, 0xdd, 0x53, 0xeb, 0xcc, 0xc8, 0xd4, 0x73, 0x7a, 0xc4, 0x37, 0xc4,
+ 0x04, 0xa9, 0x31, 0x49, 0xa7, 0x0f, 0xa0, 0x80, 0xc9, 0xe6, 0x1b, 0x36,
+ 0xc2, 0x1c, 0x10, 0x03, 0xfd, 0x14, 0x08, 0x80, 0x9a, 0xe5, 0xa2, 0x9c,
+ 0xc8, 0x05, 0xa6, 0x9a, 0xc1, 0x56, 0x44, 0xde, 0xa1, 0xd9, 0xd4, 0xce,
+ 0x0a, 0x99, 0x9e, 0x8e, 0xbc, 0xcc, 0x2b, 0x5e, 0xf6, 0x6e, 0x41, 0x07,
+ 0xc1, 0x06, 0xbf, 0x30, 0x6e, 0x92, 0xa6, 0x47, 0xca, 0x52, 0x9f, 0xa4,
+ 0x2c, 0x6e, 0x1d, 0x7b, 0x96, 0x4a, 0x95, 0x49, 0xa3, 0x9c, 0x36, 0xb8,
+ 0x0b, 0x52, 0xec, 0x29, 0xaa, 0xd0, 0xbb, 0x12, 0x10, 0xdf, 0x15, 0x00,
+ 0x1b, 0x1d, 0xff, 0xb2, 0x21, 0xf4, 0xf2, 0xb7, 0x30, 0x8d, 0xae, 0xa6,
+ 0x4a, 0xa6, 0x06, 0x6a, 0x41, 0x58, 0x24, 0x0e, 0xf1, 0xae, 0x5a, 0x01,
+ 0x3f, 0xf8, 0x0b, 0x3c, 0xd8, 0xfb, 0x80, 0x7a, 0x05, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x14, 0x00, 0x0c, 0x10,
+ 0x48, 0x14, 0x70, 0x2e, 0xe6, 0xbe, 0x36, 0x0f, 0x96, 0x81, 0x5a, 0x63,
+ 0xff, 0xe3, 0xe7, 0x89, 0x54, 0x09, 0xaf, 0xf9, 0xd3, 0x93, 0xb5, 0x6a,
+ 0x6a, 0xd6, 0x1c, 0xfa, 0x4f, 0xe5, 0x73, 0xec, 0x43, 0xfc, 0xd7, 0xf6,
+ 0xaf, 0xf3, 0x6e, 0x61, 0xdb, 0xc8, 0x66, 0x51, 0x61, 0x3c, 0x79, 0x32,
+ 0x78, 0xf4, 0x20, 0xd5, 0x94, 0x24, 0x7d, 0x9a, 0x5f, 0x3d, 0xff, 0xc4,
+ 0x5c, 0x9d, 0x88, 0xa8, 0xff, 0x67, 0xf7, 0x01, 0xa1, 0xb9, 0x04, 0x7b,
+ 0xe2, 0xf6, 0x30, 0xf6, 0xce, 0x6b, 0x22, 0x0d, 0x2f, 0xfe, 0xfd, 0x74,
+ 0x87, 0x29, 0xb3, 0xd3, 0x34, 0xc8, 0x6b, 0xc9, 0x84, 0xf0, 0xc4, 0xb0,
+ 0xd4, 0x57, 0x3f, 0x78, 0x9d, 0x2c, 0x65, 0x7b, 0xf8, 0x29, 0x76, 0xe6,
+ 0x92, 0xbd, 0x78, 0x88, 0xd0, 0x07, 0x1e, 0x35, 0x05, 0x27, 0x0e, 0xa1,
+ 0x08, 0xf2, 0xeb, 0x32, 0x19, 0x41, 0x15, 0xee, 0xb4, 0x23, 0x81, 0xee,
+ 0x0c, 0x82, 0x5c, 0xb4, 0xae, 0x7b, 0x30, 0x18, 0x1c, 0x32, 0xdb, 0x82,
+ 0x52, 0x05, 0x2f, 0x88, 0x38, 0x19, 0x7f, 0x17, 0x7b, 0xc0, 0x77, 0x21,
+ 0x64, 0xff, 0xcd, 0xdb, 0xd3, 0xc1, 0x00, 0xb4, 0x0d, 0x13, 0x03, 0xc7,
+ 0xf1, 0x19, 0x76, 0x1c, 0x07, 0x90, 0x15, 0x2c, 0xc7, 0x2c, 0xdb, 0xec,
+ 0xa1, 0x78, 0x99, 0x83, 0xd6, 0x8f, 0x32, 0xc0, 0xab, 0xf3, 0xf7, 0x2d,
+ 0x86, 0xbc, 0x35, 0xe6, 0xa8, 0x3e, 0x7b, 0x37, 0x60, 0x7c, 0x5f, 0x0c,
+ 0x5e, 0x81, 0x72, 0x05, 0xfe, 0x45, 0x5f, 0x80, 0x38, 0xa4, 0x19, 0x7f,
+ 0x18, 0x37, 0x22, 0x27, 0x71, 0x00, 0x8a, 0x41, 0x8a, 0x25, 0x73, 0x7f,
+ 0x45, 0x8c, 0xa0, 0x89, 0x81, 0xe6, 0x85, 0x59, 0xe5, 0x8c, 0xa4, 0x27,
+ 0xa2, 0x01, 0x0f, 0x75, 0x44, 0x54, 0x6f, 0x73, 0x39, 0x06, 0x73, 0x27,
+ 0x59, 0xaf, 0x8a, 0xa9, 0x99, 0x18, 0x03, 0x33, 0x38, 0x5d, 0xa0, 0xc8,
+ 0x73, 0xd1, 0x4b, 0x8e, 0x1b, 0xdd, 0xf8, 0x6a, 0xd9, 0x42, 0x90, 0x8e,
+ 0xd9, 0x3b, 0xb9, 0xd1, 0xad, 0x54, 0x4f, 0xfa, 0x8d, 0x01, 0x3b, 0xac,
+ 0x45, 0x27, 0xf0, 0x58, 0x78, 0x91, 0xf2, 0x42, 0x43, 0x46, 0x43, 0x41,
+ 0xc3, 0x24, 0xae, 0xeb, 0x97, 0x5b, 0x0d, 0x56, 0xfb, 0x8d, 0x36, 0xc0,
+ 0x17, 0x1a, 0xf3, 0x26, 0x21, 0x64, 0xb1, 0x7c, 0x2b, 0x25, 0xb7, 0x1f,
+ 0x56, 0x91, 0x0f, 0x7e, 0x0c, 0xe9, 0x6e, 0xb9, 0xcc, 0xaf, 0xb3, 0x61,
+ 0xf0, 0x73, 0x61, 0xf0, 0x73, 0x61, 0xf0, 0x73, 0x61, 0xf0, 0x73, 0x61,
+ 0xf0, 0x73, 0x08, 0x6e, 0xa0, 0x0d, 0xe1, 0x77, 0x6b, 0x1b, 0x2f, 0x97,
+ 0x0b, 0x2c, 0xa4, 0x0b, 0x89, 0xa1, 0x3a, 0x5a, 0x79, 0x56, 0x2b, 0x9d,
+ 0x1c, 0x01, 0x02, 0xe5, 0x5d, 0xf2, 0xb5, 0xfe, 0x7c, 0x7b, 0x65, 0x19,
+ 0x6e, 0x23, 0x19, 0x8b, 0xf9, 0xc9, 0x8c, 0xf7, 0x32, 0x03, 0xde, 0x85,
+ 0xf7, 0x22, 0xe2, 0x8f, 0xff, 0x24, 0xa9, 0xb6, 0xad, 0x5d, 0x02, 0xde,
+ 0xb7, 0x11, 0x89, 0x6c, 0x96, 0x88, 0x01, 0xc9, 0xa7, 0x07, 0xb2, 0x6e,
+ 0x56, 0x9f, 0x07, 0x1d, 0x85, 0x55, 0x6d, 0x61, 0x96, 0x3e, 0x1e, 0xb6,
+ 0xb0, 0x54, 0x42, 0x71, 0xc9, 0xbf, 0xdf, 0x8f, 0x0f, 0xe7, 0x3d, 0x1c,
+ 0x70, 0xcd, 0xb8, 0xad, 0xbd, 0xef, 0xf9, 0xab, 0xc8, 0xd7, 0x5a, 0xe5,
+ 0x0a, 0x30, 0x75, 0x7d, 0x6c, 0x82, 0x5c, 0x08, 0x9a, 0xdf, 0xf5, 0xf6,
+ 0x3c, 0x1b, 0x2d, 0x2c, 0xce, 0x56, 0xd2, 0x99, 0x43, 0xd6, 0xab, 0x0b,
+ 0xcc, 0x65, 0xf0, 0xcd, 0xd5, 0xc4, 0x88, 0xcd, 0xfe, 0x35, 0xbd, 0xbe,
+ 0xfe, 0x32, 0xcf, 0xe0, 0xef, 0x45, 0xef, 0x65, 0x25, 0x1a, 0x41, 0xea,
+ 0x15, 0x33, 0x32, 0x7d, 0x46, 0xa6, 0x5c, 0x12, 0xff, 0x44, 0x39, 0x17,
+ 0x78, 0x19, 0x56, 0x2e, 0x04, 0x81, 0xff, 0x86, 0xe4, 0x17, 0x23, 0x12,
+ 0xbb, 0x9c, 0x43, 0x39, 0x2e, 0xba, 0x8d, 0x87, 0xa8, 0x18, 0x7f, 0xb9,
+ 0x3c, 0xbe, 0x4c, 0x96, 0x3d, 0x01, 0x4e, 0x34, 0x12, 0x26, 0xb0, 0xf4,
+ 0x84, 0xbb, 0x0b, 0x43, 0x4d, 0x48, 0x2d, 0x71, 0x95, 0x13, 0xde, 0x57,
+ 0x4f, 0x91, 0x26, 0x82, 0x7c, 0xa8, 0x0e, 0x49, 0x4f, 0xfd, 0xa4, 0xe6,
+ 0x22, 0x2d, 0x35, 0x36, 0x94, 0xf1, 0x16, 0x64, 0x1d, 0xc1, 0x52, 0x58,
+ 0xc6, 0x3f, 0x2d, 0x25, 0xd3, 0xf6, 0x62, 0x02, 0xb5, 0x2e, 0x24, 0xb0,
+ 0xad, 0x8c, 0xa6, 0x46, 0xdd, 0x97, 0x0b, 0x1c, 0x1c, 0xe1, 0x54, 0xa3,
+ 0xc6, 0x56, 0x37, 0xa0, 0xfb, 0x51, 0xaa, 0x36, 0x5f, 0x62, 0x86, 0x44,
+ 0xaf, 0xea, 0x8b, 0x16, 0x82, 0xad, 0xaf, 0xc8, 0x42, 0x50, 0x5e, 0xd3,
+ 0x12, 0x48, 0x75, 0xf3, 0x0a, 0xfe, 0x47, 0x48, 0xfd, 0x3c, 0x18, 0x5b,
+ 0x05, 0x22, 0xd0, 0xb7, 0x85, 0xc6, 0x65, 0x97, 0xb9, 0x0a, 0xa5, 0xb8,
+ 0x59, 0x35, 0x1e, 0xc2, 0x3e, 0xec, 0xc6, 0x28, 0xd8, 0x96, 0x6f, 0xd1,
+ 0x7a, 0xa7, 0x34, 0x92, 0x55, 0x4e, 0x4d, 0x69, 0xa8, 0x14, 0x3d, 0x95,
+ 0x0f, 0xd4, 0xdb, 0x1c, 0x5c, 0xd5, 0x56, 0xce, 0xe3, 0xe9, 0x54, 0x00,
+ 0x95, 0x5a, 0x60, 0x74, 0xf1, 0x8c, 0xb0, 0x35, 0x8b, 0xe0, 0x75, 0x79,
+ 0x31, 0x3f, 0xa3, 0xd5, 0x5b, 0xfd, 0xaa, 0x8c, 0x1e, 0xca, 0x62, 0xfd,
+ 0x7f, 0xb8, 0x8a, 0x9c, 0x03, 0xd6, 0xd5, 0x7a, 0xea, 0x1f, 0x1e, 0x50,
+ 0x00, 0x9b, 0xfb, 0xc7, 0xa1, 0xc0, 0xe5, 0x0a, 0x94, 0xff, 0x52, 0xff,
+ 0xea, 0xd7, 0x63, 0x0a, 0xdf, 0xf8, 0x79, 0xbe, 0x9f, 0x98, 0xa5, 0xe0,
+ 0x73, 0x15, 0xb5, 0x5f, 0x4c, 0x85, 0x09, 0x24, 0x50, 0x8a, 0x3a, 0x33,
+ 0x57, 0x8a, 0xaa, 0x70, 0x40, 0xb6, 0x5f, 0xc1, 0x0d, 0xb3, 0x96, 0x87,
+ 0x25, 0x44, 0xd1, 0x03, 0x25, 0xb4, 0x8a, 0xfa, 0x9f, 0x82, 0x67, 0x2c,
+ 0x07, 0x04, 0xbf, 0x14, 0x29, 0x86, 0xc2, 0xdf, 0xb2, 0xf5, 0x2e, 0x0d,
+ 0xe1, 0x96, 0x37, 0xda, 0x31, 0x50, 0xb9, 0x22, 0x34, 0xa8, 0x14, 0x07,
+ 0x15, 0x71, 0x45, 0x0d, 0xc1, 0x86, 0x35, 0x2d, 0x09, 0x73, 0x08, 0x80,
+ 0x9e, 0xa4, 0x39, 0x23, 0xd8, 0xf0, 0x75, 0x7f, 0xef, 0x7a, 0xc6, 0x32,
+ 0x11, 0xaf, 0x1f, 0x03, 0x93, 0x8f, 0x0d, 0x1c, 0xf9, 0x84, 0xd9, 0x4a,
+ 0x19, 0x39, 0x51, 0x05, 0x9f, 0x97, 0x5c, 0x4b, 0x78, 0x5c, 0x3b, 0xef,
+ 0xb7, 0x5b, 0x64, 0x82, 0x0d, 0xc3, 0x29, 0xf2, 0x2a, 0xcb, 0x20, 0xed,
+ 0xae, 0xfc, 0x6a, 0xbf, 0x90, 0x9e, 0xa4, 0x6f, 0x15, 0x1e, 0xba, 0x69,
+ 0x22, 0x22, 0xac, 0x7e, 0xaa, 0xcf, 0x79, 0x87, 0x8f, 0x1b, 0xa2, 0x84,
+ 0xe6, 0x7f, 0xd2, 0x46, 0x65, 0x95, 0xb7, 0xe0, 0x30, 0x85, 0x6c, 0x22,
+ 0xd7, 0xde, 0x6a, 0x9e, 0x3c, 0x99, 0xbf, 0x6c, 0x9b, 0x95, 0xd8, 0x54,
+ 0xf9, 0xbf, 0xb5, 0x87, 0x21, 0x16, 0x17, 0xa4, 0x9d, 0x27, 0x46, 0xca,
+ 0xc7, 0x49, 0xe3, 0xd7, 0x81, 0x3c, 0x70, 0x95, 0xde, 0xc2, 0xfe, 0x3e,
+ 0x43, 0x01, 0x46, 0xdb, 0xfc, 0x73, 0xf8, 0x7b, 0x25, 0x09, 0x45, 0xe8,
+ 0x3a, 0xec, 0xf3, 0xf6, 0x5e, 0x0e, 0x16, 0xcd, 0xdf, 0x24, 0x67, 0xe4,
+ 0x95, 0xd7, 0x51, 0x3d, 0x75, 0xa4, 0xa5, 0xba, 0x78, 0x3a, 0xdb, 0x75,
+ 0x39, 0xb1, 0x4b, 0x1e, 0xed, 0x5a, 0x36, 0xdc, 0x4e, 0x10, 0x0a, 0x25,
+ 0x71, 0x37, 0xe0, 0xf9, 0xc3, 0x31, 0x9a, 0x34, 0x78, 0x9f, 0x5e, 0x74,
+ 0xb4, 0xbf, 0xdd, 0xaa, 0xfd, 0x18, 0xfc, 0x3f, 0xfd, 0x3e, 0x05, 0x6d,
+ 0x68, 0x45, 0xd9, 0x17, 0x98, 0x10, 0xc1, 0xe9, 0xe0, 0x78, 0x93, 0xcd,
+ 0xe9, 0x5b, 0xd9, 0xf1, 0x92, 0x62, 0xa3, 0xec, 0x1c, 0x70, 0x8c, 0x63,
+ 0x7c, 0xb8, 0x57, 0xb2, 0xbc, 0x4a, 0x0e, 0x82, 0xa9, 0xa0, 0x15, 0x49,
+ 0xdc, 0x65, 0xed, 0x82, 0xb9, 0x2c, 0x31, 0xbc, 0xf7, 0x13, 0x0a, 0x4e,
+ 0x88, 0xc7, 0xc3, 0x55, 0x3c, 0x4d, 0xd4, 0x25, 0x92, 0x19, 0x83, 0xf3,
+ 0x07, 0x5e, 0xa4, 0xdc, 0x72, 0x5b, 0xe6, 0xa3, 0x7c, 0x46, 0xfd, 0x3f,
+ 0xfd, 0x45, 0x8b, 0x96, 0x8f, 0xa9, 0xbd, 0xfd, 0xf1, 0x1f, 0x04, 0x46,
+ 0x90, 0xa3, 0x75, 0x04, 0x23, 0xc3, 0xeb, 0x26, 0x53, 0x8f, 0x09, 0x08,
+ 0x6d, 0x61, 0x5a, 0x43, 0x86, 0x17, 0xad, 0xa6, 0x9a, 0xe5, 0xcb, 0x81,
+ 0x99, 0x17, 0xe9, 0xa9, 0x26, 0x0d, 0x43, 0x1a, 0xd0, 0xff, 0xa8, 0x61,
+ 0x0b, 0x99, 0xbe, 0xf8, 0x81, 0x4f, 0xc3, 0x4f, 0x9c, 0x79, 0x1c, 0xa7,
+ 0xf0, 0xd0, 0x27, 0x75, 0x77, 0x71, 0xf0, 0xcf, 0x66, 0x74, 0x06, 0x5f,
+ 0xa3, 0x8c, 0xc7, 0x3e, 0x18, 0x46, 0x6b, 0x47, 0xc2, 0xf1, 0x8d, 0xcc,
+ 0xab, 0x85, 0xc1, 0x10, 0x1e, 0xe6, 0x59, 0x11, 0x99, 0xfe, 0xde, 0x22,
+ 0x40, 0x38, 0x5a, 0x46, 0xab, 0x38, 0x78, 0x5a, 0xc6, 0xe2, 0xa4, 0x55,
+ 0x2e, 0x1a, 0x4d, 0xa4, 0x7e, 0xae, 0x0a, 0xd1, 0x7b, 0xb7, 0x9e, 0x20,
+ 0x39, 0x84, 0x4f, 0xd3, 0xe3, 0x66, 0xca, 0x26, 0x09, 0x64, 0x43, 0x04,
+ 0x45, 0xc3, 0xc6, 0x02, 0x2d, 0x50, 0x95, 0x36, 0x12, 0xfa, 0x31, 0x70,
+ 0xb4, 0x79, 0xd3, 0x6b, 0x52, 0x66, 0x73, 0x7a, 0x6c, 0xec, 0x81, 0xa4,
+ 0xe2, 0x4e, 0xff, 0x1e, 0x95, 0x6a, 0xd5, 0x83, 0x6d, 0x0b, 0x06, 0xeb,
+ 0x12, 0xcf, 0xc6, 0x81, 0x1d, 0x49, 0xaa, 0x48, 0x57, 0xc5, 0x9c, 0x7e,
+ 0x26, 0xea, 0xc8, 0x8e, 0xba, 0x04, 0x75, 0xd6, 0x94, 0x50, 0x91, 0xeb,
+ 0x76, 0x1e, 0xbe, 0xe2, 0x19, 0xc1, 0x82, 0x04, 0x3c, 0x18, 0x0d, 0xcd,
+ 0xa3, 0x89, 0x15, 0xb6, 0x8c, 0xd8, 0x2e, 0x91, 0x1d, 0xba, 0x09, 0xb5,
+ 0x84, 0xb2, 0xc8, 0x94, 0x03, 0xa7, 0x04, 0x2c, 0x58, 0x6b, 0x15, 0x40,
+ 0x8d, 0x77, 0x18, 0x70, 0x5b, 0xef, 0x8a, 0x08, 0xdf, 0xe8, 0xfc, 0x5b,
+ 0xbb, 0x02, 0x03, 0xb8, 0x91, 0xdc, 0xf9, 0x6f, 0x1b, 0x89, 0xe6, 0xdd,
+ 0xcc, 0x24, 0xfe, 0x0e, 0x3d, 0x26, 0x9e, 0xf8, 0xd1, 0x79, 0x96, 0xdd,
+ 0x81, 0x26, 0xc1, 0x9b, 0x1e, 0xd6, 0xbd, 0x61, 0xb3, 0x4a, 0x74, 0x57,
+ 0x6d, 0x72, 0x7f, 0x59, 0x63, 0x53, 0xc0, 0x45, 0xcb, 0x23, 0x21, 0x96,
+ 0x8d, 0x29, 0x7e, 0xb3, 0x8a, 0xe9, 0x5a, 0x22, 0xe8, 0x3f, 0x83, 0xc9,
+ 0xea, 0x03, 0x29, 0x80, 0x00, 0x59, 0x01, 0x00, 0x00, 0x11, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0b, 0x00, 0x07, 0x10, 0x5c, 0x00,
+ 0x1e, 0xee, 0x0c, 0x8b, 0x18, 0xb6, 0xad, 0x34, 0xbb, 0xc1, 0x82, 0xe9,
+ 0x38, 0x03, 0x3f, 0x5c, 0x4d, 0x8a, 0xa5, 0x0d, 0x83, 0x67, 0x4e, 0xbd,
+ 0x5e, 0x34, 0xc3, 0x24, 0xf3, 0xb5, 0x10, 0xbb, 0xc1, 0x95, 0x2f, 0x2c,
+ 0x7f, 0xc8, 0x7d, 0x04, 0x4f, 0x15, 0x30, 0x00, 0x21, 0x47, 0x37, 0x4f,
+ 0xf7, 0x3b, 0xcc, 0xc2, 0x18, 0xc5, 0x65, 0xb5, 0xae, 0xd0, 0x44, 0x16,
+ 0x13, 0x87, 0xfe, 0xbe, 0x6f, 0x24, 0x99, 0x1f, 0x9a, 0x54, 0x7c, 0x11,
+ 0xc5, 0xbd, 0x99, 0x60, 0xd9, 0x61, 0xa0, 0x9c, 0x3a, 0x0c, 0xe4, 0xb0,
+ 0x1a, 0xf5, 0x09, 0x00, 0x56, 0x50, 0x05, 0x38, 0x09, 0x5f, 0x17, 0x2c,
+ 0x59, 0x80, 0x8f, 0x00, 0xa8, 0x89, 0x83, 0xb6, 0xd1, 0x61, 0x80, 0x47,
+ 0x24, 0xd7, 0x0c, 0x15, 0xf9, 0xa5, 0x9d, 0x52, 0x54, 0x0d, 0xf6, 0xe2,
+ 0x8c, 0x57, 0x7f, 0xbe, 0xb2, 0xce, 0xd2, 0xb4, 0x48, 0xb3, 0x71, 0x4f,
+ 0x49, 0x55, 0x06, 0xf9, 0x74, 0x35, 0x19, 0xe4, 0xff, 0x21, 0x97, 0xb1,
+ 0xd1, 0x05, 0x00, 0xdc, 0xb2, 0x08, 0x63, 0x50, 0xd8, 0xcb, 0x03, 0x38,
+ 0x87, 0x28, 0xdb, 0x39, 0x55, 0x1a, 0x98, 0xf9, 0x67, 0xf7, 0x5a, 0x07,
+ 0xfa, 0xf3, 0x86, 0xca, 0xad, 0xe9, 0xf3, 0x1a, 0xeb, 0x61, 0x57, 0xc4,
+ 0xfc, 0x20, 0xad, 0x24, 0xa7, 0x96, 0x52, 0x44, 0xb3, 0xf4, 0xe4, 0x82,
+ 0x1d, 0xa4, 0x32, 0xd4, 0xdd, 0xc6, 0xaf, 0x13, 0xe4, 0x80, 0xf8, 0xcc,
+ 0x00, 0x16, 0x19, 0x0c, 0xf1, 0xc0, 0x39, 0x72, 0xf3, 0x10, 0x02, 0x4a,
+ 0x46, 0xe4, 0x92, 0x69, 0x2b, 0x20, 0x36, 0xf6, 0x60, 0x8b, 0xba, 0x0e,
+ 0x96, 0xaa, 0x58, 0x29, 0x92, 0x01, 0x2d, 0x41, 0x2f, 0x5d, 0x82, 0x79,
+ 0x67, 0x2e, 0xbe, 0x0a, 0xd5, 0xc3, 0x8c, 0x63, 0x60, 0xda, 0x9d, 0x6d,
+ 0xbc, 0x08, 0x56, 0x7f, 0x8f, 0xc1, 0x84, 0x0e, 0x7b, 0x94, 0xba, 0xd3,
+ 0xcd, 0xf3, 0x01, 0x8f, 0x13, 0x4a, 0x3f, 0x1b, 0xe7, 0x39, 0x88, 0x18,
+ 0xba, 0x6c, 0x07, 0xe2, 0x2a, 0x90, 0x5b, 0x2b, 0x01, 0x5b, 0xe3, 0xa2,
+ 0x04, 0xbd, 0x09, 0xd5, 0xb1, 0x0a, 0x21, 0x00, 0x87, 0xb0, 0x37, 0x17,
+ 0xd0, 0xf9, 0x72, 0x1b, 0x32, 0x52, 0x9c, 0x9e, 0xce, 0xb9, 0x49, 0x2c,
+ 0xba, 0xe6, 0x0c, 0x34, 0x37, 0xd9, 0x2c, 0x5e, 0x3a, 0x70, 0x5d, 0xb7,
+ 0x14, 0xbe, 0xca, 0xff, 0xef, 0x20, 0x53, 0xc8, 0x1d, 0xba, 0x1c, 0x41,
+ 0x8f, 0xb4, 0xca, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xb1, 0x0c, 0x00, 0x09, 0x10, 0x48, 0x00, 0x1e, 0xe0, 0x72,
+ 0x07, 0xc0, 0xe3, 0x84, 0x08, 0x2a, 0x02, 0x34, 0x7b, 0x64, 0x8e, 0x18,
+ 0x96, 0xc7, 0x40, 0x7b, 0x8a, 0x93, 0xc8, 0x56, 0xf7, 0xeb, 0x8d, 0x56,
+ 0xb4, 0xdb, 0x37, 0xc2, 0x9d, 0xab, 0xb2, 0xd9, 0x16, 0x38, 0xad, 0xa4,
+ 0xac, 0x19, 0xd5, 0x1b, 0x95, 0xb7, 0xf3, 0x91, 0xa0, 0xcd, 0xdd, 0x9f,
+ 0xa3, 0x82, 0x0f, 0x14, 0x57, 0xfd, 0xe0, 0xda, 0x9c, 0x3d, 0x98, 0x05,
+ 0xf9, 0x47, 0xff, 0xa2, 0x37, 0x4a, 0x7d, 0x54, 0x28, 0xbd, 0x85, 0x92,
+ 0x55, 0xf8, 0x97, 0x00, 0x01, 0xb7, 0x2d, 0x63, 0xdb, 0xe1, 0xdf, 0x44,
+ 0xe9, 0x51, 0xd3, 0x4d, 0xed, 0xdb, 0x05, 0xda, 0x08, 0x00, 0x4f, 0x31,
+ 0x95, 0xf0, 0x08, 0xe7, 0x29, 0xcf, 0xd3, 0xa9, 0xc9, 0xe3, 0x62, 0xd2,
+ 0x52, 0x8c, 0x62, 0x03, 0x63, 0x5f, 0x9c, 0xc0, 0x37, 0xbc, 0x03, 0x04,
+ 0xc2, 0x38, 0xcb, 0x01, 0xd7, 0xf9, 0xa5, 0x3d, 0xd1, 0xd1, 0xfa, 0x7f,
+ 0x27, 0xbd, 0x52, 0x92, 0x98, 0x09, 0x1d, 0xe1, 0xe9, 0xcb, 0xee, 0x57,
+ 0x5d, 0x41, 0x13, 0xdb, 0xad, 0xf6, 0xc6, 0x07, 0xa5, 0x9c, 0xd9, 0x9c,
+ 0xe7, 0xc6, 0x09, 0x4b, 0xa6, 0xd2, 0x97, 0x83, 0xd0, 0x5a, 0xb1, 0xa0,
+ 0x5d, 0x74, 0x55, 0x7f, 0x20, 0x48, 0xd5, 0xfc, 0xe5, 0x3f, 0x6d, 0xbf,
+ 0x75, 0x98, 0x78, 0x6d, 0xd2, 0xd4, 0xb4, 0x89, 0xf7, 0x49, 0xb7, 0x87,
+ 0xdc, 0x2a, 0x7f, 0xa7, 0x94, 0x1f, 0xec, 0xb4, 0xab, 0x52, 0x98, 0x55,
+ 0xc4, 0xc2, 0x67, 0x43, 0x23, 0x77, 0xaf, 0x22, 0x27, 0x9c, 0x96, 0x4a,
+ 0x4f, 0x23, 0xc5, 0x9a, 0xa5, 0x16, 0xcb, 0x20, 0xb0, 0x9a, 0x7b, 0xbc,
+ 0x0e, 0x66, 0x55, 0xb7, 0xab, 0x6a, 0x05, 0x9c, 0x33, 0xdb, 0x86, 0x9a,
+ 0xe5, 0x32, 0x38, 0x2b, 0x85, 0xe0, 0x13, 0xc8, 0xba, 0xb9, 0xf1, 0xe3,
+ 0x07, 0xb5, 0x08, 0xff, 0x42, 0xe9, 0x43, 0x72, 0x50, 0x8c, 0x30, 0xc9,
+ 0x14, 0x2d, 0x21, 0xe6, 0x27, 0xd7, 0xe8, 0x9f, 0xe2, 0x70, 0xac, 0x54,
+ 0xc0, 0x01, 0xb2, 0x66, 0x53, 0xf0, 0xfe, 0xe1, 0xa5, 0x96, 0x60, 0x44,
+ 0xa1, 0x1d, 0x85, 0xe2, 0x2b, 0xcd, 0x1b, 0xe8, 0x1e, 0x14, 0xf9, 0x61,
+ 0xac, 0xa9, 0x19, 0xa2, 0xb7, 0x59, 0xfe, 0x10, 0xfa, 0xb8, 0x67, 0x69,
+ 0xab, 0x55, 0xbf, 0xd2, 0x4b, 0x58, 0xfc, 0xda, 0x62, 0x88, 0x74, 0x5f,
+ 0xe5, 0x06, 0x9f, 0xaf, 0x02, 0xc5, 0xdf, 0xaa, 0x15, 0xed, 0x31, 0xd0,
+ 0x7c, 0xf9, 0x00, 0x70, 0x3d, 0xa0, 0x27, 0xf0, 0xe6, 0xf6, 0x99, 0x50,
+ 0xbc, 0x8d, 0x90, 0xb1, 0x8b, 0xb2, 0x37, 0x46, 0x9b, 0x27, 0x0d, 0xc9,
+ 0xfe, 0xa5, 0xdd, 0x8d, 0x78, 0xf2, 0xa8, 0x9c, 0xe0, 0xcc, 0x35, 0x92,
+ 0x16, 0x8a, 0x1a, 0xbb, 0x72, 0x75, 0x79, 0xa8, 0x33, 0x4a, 0x48, 0xca,
+ 0xdf, 0x04, 0xb8, 0x1b, 0x70, 0xb7, 0xb4, 0xf2, 0xe8, 0xbe, 0x17, 0x38,
+ 0x31, 0x59, 0xe0, 0xcc, 0x07, 0x34, 0x09, 0xf8, 0xd2, 0x97, 0x1e, 0x48,
+ 0xf3, 0x66, 0x65, 0x8e, 0x5b, 0x19, 0x7f, 0x94, 0x59, 0xc4, 0xc9, 0xb1,
+ 0xb4, 0x39, 0x14, 0xfb, 0x42, 0x86, 0x01, 0x94, 0x53, 0xa1, 0xc1, 0x62,
+ 0x7a, 0x78, 0xb8, 0x1f, 0x8a, 0x1e, 0x2e, 0x26, 0xc9, 0xe0, 0xa5, 0x12,
+ 0xa4, 0x9b, 0x3e, 0x00, 0x60, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0a, 0x00, 0x0a, 0x10, 0x5c, 0x00, 0x18,
+ 0x88, 0x01, 0x00, 0xdf, 0xff, 0x3a, 0x1f, 0x59, 0x4a, 0x37, 0x70, 0x9a,
+ 0x5d, 0x04, 0x25, 0xd6, 0x9a, 0x2a, 0xa0, 0xa2, 0xc1, 0x0b, 0x7f, 0xa6,
+ 0xc8, 0x5c, 0xa9, 0xf4, 0xe5, 0xc1, 0x7b, 0xcc, 0xfc, 0x98, 0x33, 0xc9,
+ 0x2e, 0x0c, 0xdb, 0xee, 0x29, 0x55, 0x63, 0x13, 0xdd, 0xf4, 0xff, 0xe4,
+ 0x2e, 0x69, 0x84, 0x35, 0x9f, 0xff, 0xf1, 0xe0, 0x01, 0x0d, 0x67, 0xfd,
+ 0xec, 0x00, 0x03, 0x77, 0x18, 0x25, 0xbe, 0x2a, 0xbe, 0x86, 0xdd, 0x34,
+ 0xdd, 0xf9, 0x97, 0x89, 0x7f, 0x76, 0x8f, 0x1d, 0x8e, 0x10, 0xc7, 0x50,
+ 0x8e, 0x92, 0x16, 0x13, 0xd4, 0x38, 0x19, 0xfe, 0xf3, 0xa7, 0x37, 0x24,
+ 0x5a, 0x6f, 0x3a, 0xc8, 0xc2, 0x47, 0xdd, 0x03, 0x92, 0xb5, 0xc8, 0x1e,
+ 0xf6, 0x5a, 0xb7, 0x77, 0x1b, 0xfc, 0x5f, 0x6d, 0x9b, 0x34, 0xa0, 0x33,
+ 0xc0, 0xd4, 0x67, 0x37, 0xb8, 0x13, 0xa5, 0xc8, 0x6c, 0x79, 0xbc, 0x40,
+ 0x5f, 0xc4, 0x4a, 0xa7, 0x03, 0xb0, 0xfd, 0x72, 0xea, 0xa1, 0xfd, 0x3c,
+ 0x3f, 0x88, 0x3d, 0x6a, 0xcd, 0x8d, 0x67, 0xc2, 0x7e, 0x61, 0x04, 0xf6,
+ 0x68, 0xe8, 0x10, 0x46, 0xf0, 0xf1, 0x20, 0x6f, 0x28, 0xfc, 0xf1, 0x83,
+ 0xd1, 0xe2, 0x28, 0xab, 0x80, 0x8c, 0x4b, 0x93, 0xfb, 0x96, 0xb4, 0x23,
+ 0x54, 0x00, 0x29, 0xb5, 0xcd, 0xb1, 0xfc, 0xb6, 0xc2, 0xd3, 0x45, 0xc2,
+ 0xf0, 0x4b, 0x9c, 0x2d, 0x2e, 0xb5, 0xc1, 0x3e, 0x19, 0x32, 0xff, 0xb6,
+ 0xbe, 0x76, 0x85, 0x85, 0x35, 0x63, 0xf1, 0x7c, 0xb4, 0x7a, 0x42, 0xa5,
+ 0xde, 0xc5, 0xf2, 0x7f, 0x0e, 0xbe, 0x55, 0xf7, 0x01, 0x96, 0x2a, 0xa0,
+ 0x2e, 0xae, 0x48, 0xe8, 0x4b, 0x3b, 0x55, 0xdb, 0x58, 0xf7, 0x15, 0xf5,
+ 0x5b, 0x12, 0xa7, 0x37, 0x81, 0x1a, 0x37, 0xb5, 0x6a, 0xbc, 0xb6, 0xba,
+ 0x00, 0xbe, 0x57, 0xa4, 0x78, 0x1b, 0x8e, 0x9c, 0xf7, 0x0a, 0x89, 0x52,
+ 0x6d, 0x55, 0xe8, 0x59, 0x38, 0x31, 0x39, 0x01, 0x49, 0xce, 0xc2, 0xff,
+ 0x5e, 0x8e, 0x6b, 0x10, 0x05, 0xfb, 0xba, 0x9d, 0xff, 0x37, 0xc8, 0xf2,
+ 0x2d, 0xe8, 0x87, 0x68, 0xb7, 0xf6, 0xed, 0x8c, 0xa0, 0x04, 0xf2, 0x99,
+ 0x12, 0x40, 0x86, 0xcd, 0x24, 0xef, 0x70, 0x01, 0x89, 0x38, 0xa2, 0xb1,
+ 0x02, 0xc1, 0xd0, 0x07, 0xc4, 0xa9, 0xd7, 0xfd, 0x4b, 0xa5, 0x3d, 0x63,
+ 0x8d, 0x82, 0x3e, 0x5d, 0x48, 0x60, 0xa6, 0x1c, 0x25, 0x8d, 0x74, 0xa9,
+ 0x74, 0x14, 0x22, 0x72, 0x79, 0x07, 0x21, 0xc0, 0x0f, 0x02, 0x00, 0x00,
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0f, 0x00, 0x0a,
+ 0x10, 0x50, 0x00, 0x18, 0x00, 0x6c, 0xe0, 0x5b, 0x3e, 0x49, 0xb3, 0xb4,
+ 0x26, 0x19, 0x86, 0xef, 0xcd, 0xd8, 0xd6, 0x0b, 0xd0, 0xa2, 0x40, 0x96,
+ 0x91, 0xc0, 0x72, 0x88, 0x0e, 0x01, 0x0e, 0x34, 0x33, 0xf2, 0xfd, 0xab,
+ 0xfb, 0x60, 0x17, 0xb1, 0xcb, 0xc9, 0x2d, 0x06, 0xbb, 0xad, 0x0b, 0xab,
+ 0x3e, 0xc7, 0x87, 0x95, 0xa3, 0xdc, 0x49, 0x3f, 0x5b, 0x1d, 0x06, 0xcf,
+ 0x74, 0x20, 0xe0, 0x19, 0x88, 0x3a, 0x08, 0xde, 0xe8, 0xbc, 0x49, 0x48,
+ 0xb1, 0x4f, 0x3d, 0x58, 0xfe, 0x01, 0x46, 0xcf, 0x3d, 0x29, 0x86, 0xd5,
+ 0x1b, 0x95, 0xb7, 0xe9, 0x85, 0x78, 0x12, 0x5f, 0x6e, 0x8c, 0x9c, 0x77,
+ 0x16, 0x12, 0x58, 0x00, 0x00, 0x2e, 0x5d, 0xae, 0x92, 0xc2, 0x1a, 0xb5,
+ 0x34, 0xa6, 0x38, 0x1a, 0x0d, 0x88, 0xf8, 0x08, 0x28, 0x99, 0xe0, 0x7b,
+ 0x02, 0xd0, 0xb2, 0xc1, 0x58, 0x5e, 0x42, 0x77, 0xa1, 0xba, 0x50, 0x3b,
+ 0x7e, 0xa7, 0x74, 0x76, 0x87, 0xc0, 0x35, 0xe3, 0x39, 0xd2, 0xde, 0xda,
+ 0x05, 0x5f, 0x53, 0x4c, 0xbb, 0x62, 0x91, 0xd0, 0x83, 0x09, 0x8f, 0x22,
+ 0x69, 0xf4, 0x87, 0xb4, 0x45, 0x6d, 0x6c, 0xc1, 0xd0, 0x68, 0x88, 0x99,
+ 0x55, 0x75, 0xb8, 0x76, 0xd6, 0x26, 0xec, 0xc7, 0x90, 0x19, 0x83, 0xa8,
+ 0x57, 0x55, 0xcf, 0x15, 0x10, 0x5a, 0x46, 0xd2, 0x7f, 0x43, 0x3d, 0xed,
+ 0xb2, 0x21, 0x8e, 0x13, 0xcf, 0xe3, 0x16, 0xb4, 0xa3, 0x6e, 0xa0, 0xfc,
+ 0x96, 0x96, 0x03, 0xe9, 0xc1, 0xfc, 0x0c, 0x9d, 0xa8, 0xc3, 0xc5, 0x82,
+ 0x5b, 0x43, 0x1e, 0x9b, 0x03, 0xc2, 0xac, 0x03, 0x47, 0x15, 0x89, 0xb1,
+ 0xad, 0x12, 0x14, 0x38, 0x3d, 0x92, 0x9f, 0x05, 0x79, 0x6e, 0xb5, 0x24,
+ 0x14, 0x22, 0x78, 0x10, 0x24, 0xd6, 0x81, 0x7d, 0x23, 0x85, 0x7a, 0xc8,
+ 0x32, 0xeb, 0x3b, 0x5d, 0x94, 0x01, 0xbb, 0x5a, 0xd0, 0x88, 0xa9, 0x63,
+ 0xe8, 0xff, 0xa4, 0x68, 0x60, 0x29, 0x89, 0x5f, 0xe3, 0x53, 0xa3, 0x1c,
+ 0x27, 0x3e, 0xde, 0xcb, 0x4a, 0x3e, 0x81, 0x48, 0xff, 0x32, 0x6f, 0x62,
+ 0x15, 0x5c, 0xae, 0xb7, 0x2b, 0x7f, 0xa3, 0xcd, 0x6e, 0x6d, 0xe5, 0xc7,
+ 0xed, 0x52, 0x4b, 0x7a, 0xcf, 0x14, 0xb0, 0x3a, 0x95, 0x31, 0x49, 0x20,
+ 0x7c, 0xe3, 0x70, 0xa4, 0x20, 0x43, 0x40, 0x04, 0x22, 0x63, 0x80, 0xdb,
+ 0x1c, 0x60, 0x1d, 0x77, 0x5e, 0x88, 0x45, 0x41, 0x32, 0xbf, 0x0a, 0xd3,
+ 0x4d, 0xa7, 0x7c, 0x04, 0xc8, 0x3d, 0x20, 0x11, 0xfc, 0x01, 0x5f, 0xea,
+ 0x61, 0xfe, 0x8f, 0xc7, 0x8b, 0x81, 0x4b, 0x1d, 0xa9, 0xce, 0x0b, 0x59,
+ 0xed, 0x75, 0x9c, 0x0c, 0x86, 0x25, 0xcd, 0x12, 0x40, 0xc0, 0x1a, 0xb2,
+ 0x77, 0xb4, 0x84, 0x19, 0xff, 0x51, 0x32, 0x52, 0xa7, 0xe3, 0xdc, 0x86,
+ 0x77, 0xfa, 0x05, 0x00, 0x23, 0x6b, 0x37, 0x98, 0x2e, 0x50, 0x1b, 0x11,
+ 0x6b, 0x59, 0x69, 0x4e, 0x41, 0x95, 0x2f, 0xdf, 0xe8, 0x1e, 0x50, 0xc6,
+ 0xbd, 0x19, 0x2b, 0x15, 0x56, 0x1e, 0xf9, 0xdb, 0xcd, 0x98, 0x0f, 0xf1,
+ 0x3e, 0xf9, 0x1f, 0x81, 0x1b, 0x3a, 0x1f, 0x84, 0x3d, 0x45, 0xd3, 0x2b,
+ 0x91, 0x49, 0x14, 0xd8, 0xc8, 0x56, 0x8b, 0x49, 0xe8, 0xb8, 0x54, 0xde,
+ 0x90, 0x22, 0xfa, 0xa0, 0x59, 0x28, 0xe8, 0x29, 0x87, 0xee, 0x38, 0xfe,
+ 0xd0, 0x49, 0x0f, 0x53, 0x3f, 0x1f, 0x94, 0x0c, 0xc5, 0x44, 0xba, 0xe7,
+ 0x3e, 0xc8, 0x73, 0x6f, 0x1e, 0xea, 0x02, 0xc8, 0x3e, 0x03, 0xa0, 0xc1,
+ 0xa6, 0xc9, 0x72, 0x97, 0xa2, 0x18, 0xbc, 0xbd, 0xb3, 0x9f, 0x28, 0x22,
+ 0x7f, 0xe1, 0x33, 0x59, 0x91, 0x6b, 0x74, 0x3e, 0x53, 0x37, 0xbc, 0xc4,
+ 0x38, 0x1e, 0xc3, 0xaf, 0x6a, 0x11, 0x65, 0x18, 0x96, 0x85, 0x6b, 0xf1,
+ 0xf2, 0x1a, 0xef, 0x22, 0x35, 0xf0, 0x00, 0xce, 0x01, 0x00, 0x00, 0x15,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0d, 0x00, 0x09, 0x10,
+ 0x4c, 0x00, 0x18, 0x00, 0xe2, 0x00, 0xc8, 0x33, 0xec, 0xb8, 0xe8, 0xdc,
+ 0xd0, 0xce, 0x8a, 0x98, 0xe2, 0x2f, 0x0c, 0xb1, 0x3a, 0x00, 0xda, 0x89,
+ 0x1b, 0xc4, 0x74, 0xb1, 0x6a, 0x95, 0x74, 0x03, 0x54, 0x90, 0xcd, 0x2e,
+ 0x4d, 0x11, 0x68, 0x76, 0x22, 0x70, 0x35, 0xb3, 0xdc, 0xe1, 0xf1, 0xfc,
+ 0x49, 0xfe, 0xa4, 0x99, 0x57, 0x29, 0xdd, 0x9c, 0x3b, 0x4b, 0x6b, 0xba,
+ 0x9b, 0xd3, 0x86, 0xa2, 0x39, 0xee, 0xfa, 0xc0, 0x03, 0x76, 0xa8, 0x0e,
+ 0xf6, 0x9b, 0x0b, 0x10, 0xbf, 0xe8, 0x90, 0xbe, 0x57, 0x0d, 0x93, 0x90,
+ 0xf1, 0x9d, 0x5a, 0x9b, 0x7f, 0x32, 0xd6, 0x69, 0xa8, 0x29, 0x3d, 0x97,
+ 0x9c, 0x50, 0xe5, 0x09, 0x3a, 0x7b, 0x5b, 0x23, 0x67, 0xbe, 0x20, 0x44,
+ 0x73, 0x74, 0x1a, 0xd2, 0x60, 0xde, 0x8c, 0x58, 0x40, 0x64, 0xa0, 0xa6,
+ 0x37, 0x6c, 0x84, 0xee, 0x27, 0xc4, 0x3c, 0x85, 0x61, 0x56, 0x6a, 0xe5,
+ 0x60, 0xf7, 0x93, 0xd1, 0xd3, 0x3c, 0x0f, 0xf9, 0xcc, 0x0f, 0xb8, 0x93,
+ 0x8a, 0xf0, 0x44, 0x7c, 0xcc, 0x89, 0xde, 0xed, 0xd4, 0xbe, 0x06, 0xa6,
+ 0xc8, 0x9a, 0xda, 0xad, 0x4e, 0x65, 0xe3, 0x47, 0x2c, 0x8d, 0x6d, 0x6d,
+ 0x38, 0xa1, 0xf5, 0xa8, 0x11, 0x6c, 0x89, 0x9e, 0x3f, 0xb5, 0x9d, 0x20,
+ 0x59, 0x31, 0xea, 0x56, 0x3f, 0x37, 0x35, 0xcc, 0x01, 0xb3, 0xeb, 0x75,
+ 0x24, 0xa5, 0x36, 0x81, 0x34, 0x1f, 0xf6, 0xdb, 0x43, 0xe1, 0x53, 0x33,
+ 0x01, 0xb6, 0xa0, 0x84, 0x0f, 0xd0, 0x88, 0x35, 0x99, 0x0a, 0xc9, 0x44,
+ 0xd5, 0x16, 0x6a, 0x61, 0x3a, 0x68, 0x70, 0x13, 0x81, 0x31, 0xc8, 0x6f,
+ 0x5c, 0x04, 0xa8, 0x2c, 0xe3, 0xdb, 0x13, 0x93, 0xa7, 0x32, 0x95, 0x08,
+ 0x47, 0x7e, 0xcf, 0x2f, 0xd7, 0x32, 0x76, 0xed, 0x6c, 0xc8, 0x1f, 0x4c,
+ 0x00, 0x81, 0x3b, 0x23, 0xe7, 0xe8, 0xdd, 0xd8, 0x59, 0xec, 0xf3, 0xa0,
+ 0x3c, 0xba, 0x9a, 0x05, 0x30, 0x5f, 0x30, 0x71, 0xcd, 0x3d, 0x16, 0xb5,
+ 0xa4, 0x63, 0xe4, 0x13, 0x62, 0xfb, 0x85, 0xed, 0x8e, 0xbe, 0x08, 0x49,
+ 0xdc, 0x9c, 0x30, 0xa7, 0xba, 0x5a, 0xf3, 0x3b, 0xa6, 0x3d, 0x4a, 0xdf,
+ 0x4a, 0x7d, 0x20, 0x53, 0x73, 0x68, 0x11, 0x14, 0xda, 0x73, 0x28, 0x1f,
+ 0xfc, 0x27, 0xb1, 0xaa, 0x02, 0x73, 0xd3, 0xbb, 0x00, 0x42, 0x51, 0xa3,
+ 0xcd, 0x14, 0x33, 0x86, 0x18, 0x1f, 0x95, 0xee, 0xd3, 0xfa, 0x98, 0x72,
+ 0x3a, 0xec, 0xad, 0x75, 0x43, 0xa2, 0x0c, 0x41, 0x6a, 0xb4, 0x40, 0x01,
+ 0x84, 0x57, 0x57, 0x94, 0x8d, 0x14, 0xe4, 0x2a, 0xf5, 0x0e, 0x28, 0x50,
+ 0xc8, 0x31, 0xa9, 0xe8, 0x5b, 0x21, 0xba, 0xb4, 0x70, 0x63, 0x60, 0x90,
+ 0x9e, 0xef, 0xec, 0xa2, 0xb2, 0x76, 0xf2, 0xf5, 0x26, 0xa0, 0x96, 0xed,
+ 0x2e, 0xaa, 0x41, 0xf1, 0x24, 0x2b, 0x23, 0x52, 0x69, 0xa3, 0xc2, 0xb1,
+ 0x91, 0xca, 0x74, 0xab, 0x43, 0xea, 0x24, 0xa8, 0x8b, 0xeb, 0xb3, 0x40,
+ 0xb0, 0xb4, 0x70, 0x00, 0x98, 0xf4, 0x2e, 0xf6, 0x1b, 0x68, 0x29, 0xe4,
+ 0xb3, 0x09, 0x56, 0x78, 0x3a, 0xa1, 0x36, 0xdc, 0xb2, 0x1e, 0xe7, 0x2b,
+ 0xb5, 0x93, 0x2e, 0xfc, 0x0c, 0x68, 0xc8, 0xc2, 0x85, 0x74, 0x20, 0xdd,
+ 0x6e, 0xb5, 0x61, 0xc5, 0x5b, 0xa7, 0x0b, 0x14, 0xff, 0xe0, 0xfd, 0xec,
+ 0x00, 0x18, 0x03, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xf1, 0x18, 0x00, 0x06, 0x10, 0x40, 0x00, 0x1e, 0xbf, 0x9b, 0x69,
+ 0x2d, 0xd4, 0xb6, 0x01, 0xa0, 0x6b, 0xfb, 0x95, 0xe5, 0x2f, 0x00, 0x45,
+ 0xb1, 0xda, 0xb7, 0xa9, 0x63, 0x9d, 0x76, 0x58, 0x92, 0xf6, 0x51, 0x71,
+ 0x59, 0xe0, 0xb9, 0x29, 0x50, 0xb1, 0x9d, 0x4b, 0x96, 0xd3, 0x39, 0xa0,
+ 0x33, 0xe8, 0xd7, 0xc2, 0x6b, 0x8d, 0xd4, 0x01, 0x8c, 0x22, 0xa6, 0xe8,
+ 0x63, 0xc5, 0x17, 0x01, 0x15, 0xce, 0xcb, 0xa4, 0xc5, 0x86, 0x35, 0x05,
+ 0xf8, 0xcf, 0x57, 0xea, 0xe0, 0x03, 0xf9, 0x68, 0x79, 0xbc, 0xac, 0x9a,
+ 0x29, 0x12, 0xe5, 0xa1, 0x73, 0x63, 0x7c, 0x65, 0x16, 0xd0, 0xbf, 0x3f,
+ 0x9d, 0xe2, 0xd9, 0xc7, 0x1a, 0x03, 0x13, 0x35, 0x28, 0x7e, 0x81, 0x2f,
+ 0x67, 0xfb, 0x5d, 0xdd, 0x40, 0x83, 0xde, 0xa4, 0x16, 0x13, 0x3e, 0x02,
+ 0xc8, 0x29, 0x34, 0x64, 0xf5, 0x23, 0x69, 0xc9, 0x50, 0x82, 0x26, 0xc9,
+ 0xa1, 0x3b, 0xd4, 0xd0, 0x92, 0x84, 0x91, 0x4d, 0xde, 0xea, 0x8a, 0x91,
+ 0xfa, 0x78, 0xe4, 0xd9, 0x1a, 0xc9, 0xfe, 0x8c, 0xf8, 0x18, 0xea, 0x30,
+ 0x08, 0x02, 0x57, 0x78, 0x5b, 0x30, 0x04, 0x9d, 0x85, 0x20, 0x0a, 0xdd,
+ 0x80, 0x00, 0x1f, 0x28, 0xe0, 0x01, 0x2b, 0xb4, 0xa1, 0x25, 0x09, 0x28,
+ 0x4d, 0xe2, 0x60, 0x59, 0xb5, 0x84, 0xa9, 0x35, 0xeb, 0xfb, 0x7a, 0x9f,
+ 0x9c, 0x7d, 0x6c, 0xd9, 0xbf, 0x7e, 0x1c, 0x56, 0x1f, 0xe5, 0x00, 0x62,
+ 0xe9, 0x34, 0xe4, 0x37, 0x1c, 0xb9, 0x43, 0x81, 0x33, 0xb0, 0xd8, 0x6b,
+ 0x47, 0xff, 0x90, 0x1a, 0x6c, 0x79, 0x4b, 0x30, 0x9c, 0xe5, 0xe5, 0x55,
+ 0x19, 0x63, 0xba, 0x59, 0x8a, 0x8d, 0xbc, 0x88, 0x4a, 0x41, 0x21, 0x90,
+ 0x0d, 0x7a, 0x2e, 0xe7, 0xc3, 0x1b, 0xe0, 0xda, 0x19, 0x53, 0x4e, 0x28,
+ 0x91, 0x6c, 0xab, 0x41, 0x5c, 0x09, 0xf9, 0xfb, 0x3a, 0x97, 0x8e, 0x06,
+ 0x12, 0x3a, 0xad, 0x5d, 0xf9, 0x03, 0x5f, 0x4e, 0xea, 0xca, 0xb6, 0x6f,
+ 0xe0, 0x50, 0x1c, 0xea, 0x19, 0xe4, 0x06, 0x45, 0xb1, 0x2e, 0xb3, 0x9e,
+ 0xa4, 0xd1, 0xc2, 0x8f, 0x0d, 0x3a, 0x91, 0x5a, 0x29, 0xde, 0x43, 0x88,
+ 0x90, 0x7e, 0x7d, 0xe9, 0x1d, 0x24, 0x28, 0x08, 0x7e, 0x0f, 0x06, 0xa5,
+ 0xf1, 0x36, 0x5d, 0x3e, 0x2b, 0xef, 0x5e, 0x6c, 0x0f, 0xf4, 0x78, 0x9f,
+ 0xa4, 0x27, 0xac, 0x3a, 0x53, 0x2c, 0x4b, 0xbb, 0x87, 0x80, 0xa0, 0x0b,
+ 0xfa, 0xa5, 0x5c, 0xc6, 0x50, 0xe4, 0x79, 0x2e, 0x25, 0x53, 0x2f, 0x61,
+ 0x89, 0xa5, 0xaa, 0x5b, 0x82, 0x2c, 0x45, 0xe1, 0xb0, 0x56, 0x80, 0x94,
+ 0x72, 0x8c, 0xf0, 0x8c, 0x03, 0x30, 0xfc, 0xbd, 0xd8, 0x34, 0x95, 0xd2,
+ 0x16, 0x9e, 0x0e, 0x49, 0x61, 0x70, 0x57, 0x89, 0x4d, 0xc0, 0xe0, 0x83,
+ 0x35, 0xcb, 0x8b, 0xd2, 0xdc, 0xc8, 0x0c, 0xc1, 0x20, 0x88, 0x2f, 0x91,
+ 0x65, 0x7b, 0x46, 0x96, 0x4f, 0xb0, 0xae, 0xc7, 0xcd, 0x15, 0x4e, 0x9f,
+ 0x23, 0xd8, 0x37, 0x22, 0x37, 0x5f, 0x84, 0x35, 0x42, 0xa2, 0xa0, 0x1a,
+ 0x2e, 0x14, 0x4c, 0xc6, 0xa9, 0x4d, 0xd7, 0x22, 0x0d, 0xa3, 0x54, 0x47,
+ 0xaa, 0xc6, 0xe9, 0x91, 0x5e, 0x92, 0xfa, 0xad, 0xc8, 0x3a, 0xe8, 0x74,
+ 0x12, 0xa3, 0x14, 0x05, 0xa6, 0x58, 0xb6, 0xf6, 0xaf, 0x19, 0xe2, 0x42,
+ 0x91, 0x90, 0xc9, 0x6a, 0xce, 0x4d, 0x6c, 0x8f, 0x3a, 0x2b, 0x44, 0xd8,
+ 0x7c, 0xcc, 0x6e, 0x8e, 0x9c, 0x8b, 0x52, 0x60, 0x18, 0x04, 0x22, 0x7d,
+ 0x46, 0xe4, 0xdd, 0xbe, 0x30, 0x92, 0x70, 0xaa, 0x61, 0x1b, 0xfb, 0x1b,
+ 0x90, 0xe7, 0x54, 0x67, 0x40, 0xda, 0xcb, 0xb0, 0xa9, 0x98, 0x31, 0xee,
+ 0x0c, 0x99, 0xeb, 0xf1, 0x8c, 0xd7, 0x08, 0xa3, 0xac, 0xc0, 0x0f, 0xee,
+ 0x0c, 0xe7, 0x8e, 0xbc, 0x22, 0x87, 0xab, 0x3c, 0x1a, 0x46, 0xe5, 0xbc,
+ 0x3b, 0x39, 0xd2, 0x2c, 0xbb, 0x26, 0x8e, 0xe1, 0xb0, 0xed, 0xcf, 0x23,
+ 0x1a, 0xd1, 0xb5, 0xcb, 0x14, 0xfb, 0x05, 0xa2, 0x68, 0x86, 0x63, 0x5e,
+ 0xf7, 0xc5, 0xcd, 0x72, 0xd8, 0x33, 0xc7, 0x39, 0xcb, 0x45, 0x5f, 0xc4,
+ 0x9b, 0x1c, 0xed, 0x59, 0x04, 0x48, 0x3e, 0x79, 0xf8, 0xe8, 0x32, 0x54,
+ 0xd2, 0x07, 0x9f, 0xe0, 0xf0, 0xdc, 0x50, 0xf0, 0x8a, 0x24, 0xda, 0xe0,
+ 0x8e, 0xdd, 0x94, 0x70, 0x38, 0xa4, 0x41, 0x3f, 0xd1, 0x51, 0x40, 0x5b,
+ 0x51, 0x19, 0x51, 0x08, 0xcf, 0xb4, 0x64, 0x2e, 0x87, 0xe7, 0x60, 0xcb,
+ 0x0e, 0x4c, 0x08, 0x4b, 0xf4, 0xf1, 0xc2, 0x89, 0x08, 0x76, 0x0b, 0x3b,
+ 0x4f, 0x0c, 0xda, 0x71, 0xa6, 0x8b, 0x85, 0xf7, 0x76, 0x36, 0x6b, 0x61,
+ 0x98, 0x9a, 0xf1, 0x69, 0xe2, 0x33, 0xcc, 0xd1, 0x51, 0x62, 0x36, 0x7c,
+ 0x5b, 0x95, 0x3d, 0xd0, 0x99, 0x47, 0x7d, 0xa8, 0x35, 0x69, 0xcc, 0x77,
+ 0xf5, 0x2b, 0x90, 0xe6, 0xd6, 0xf2, 0xbb, 0xbd, 0xf1, 0x98, 0x51, 0x2c,
+ 0xc1, 0x95, 0x59, 0x5d, 0x0f, 0x85, 0xf2, 0x57, 0xe9, 0x0c, 0xed, 0x40,
+ 0xce, 0xee, 0x82, 0xab, 0xdf, 0x08, 0x07, 0xd0, 0x7a, 0x82, 0xe0, 0x27,
+ 0x16, 0xbd, 0xb6, 0x18, 0xd3, 0x61, 0x93, 0x9f, 0x06, 0xc1, 0x40, 0xe2,
+ 0x40, 0x1a, 0x2b, 0x22, 0xbe, 0x23, 0x7d, 0x20, 0xfc, 0x7e, 0xd7, 0x6c,
+ 0xc1, 0x3f, 0x75, 0xb3, 0x01, 0x29, 0x64, 0x8a, 0x3c, 0x08, 0x59, 0x4f,
+ 0x11, 0x86, 0x14, 0xcd, 0x88, 0xc6, 0xac, 0xc2, 0x16, 0xd1, 0x97, 0x63,
+ 0x48, 0xb3, 0xdb, 0x0a, 0x74, 0x4b, 0xee, 0x37, 0xc0, 0xb3, 0x36, 0xc3,
+ 0x40, 0x1f, 0x6d, 0xd8, 0xa2, 0x15, 0x86, 0x30, 0xbf, 0x80, 0xe9, 0xdd,
+ 0xd6, 0x5e, 0x15, 0xb4, 0xd8, 0x89, 0x1e, 0xcf, 0xc4, 0x2b, 0x40, 0xc9,
+ 0x14, 0xd4, 0x5e, 0x10, 0x78, 0xae, 0xfd, 0x71, 0x4a, 0xde, 0xa4, 0x20,
+ 0x00, 0x46, 0x02, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xd1, 0x0e, 0x00, 0x07, 0x10, 0x74, 0x00, 0x18, 0x01, 0x5e, 0x87,
+ 0xa5, 0xdb, 0xdf, 0x7b, 0xc6, 0x9e, 0x29, 0xcf, 0x0e, 0xcf, 0xf6, 0x1f,
+ 0xee, 0xfa, 0x1d, 0x5c, 0xfc, 0x84, 0x4a, 0xe6, 0x00, 0x55, 0x35, 0xf5,
+ 0x4d, 0x2e, 0xdb, 0x8d, 0xb7, 0x2e, 0xd0, 0xe1, 0xbf, 0xc5, 0x96, 0x32,
+ 0x27, 0x91, 0x62, 0xc6, 0x91, 0x06, 0x00, 0xb6, 0x61, 0x4d, 0xf2, 0xfa,
+ 0x13, 0xe5, 0x36, 0xd8, 0x59, 0x27, 0xaa, 0x11, 0xa3, 0xb4, 0xea, 0x2c,
+ 0xfe, 0x02, 0xce, 0x91, 0x35, 0x98, 0x84, 0x38, 0x64, 0x73, 0x03, 0xc7,
+ 0x8e, 0x00, 0x5b, 0x16, 0x7b, 0x21, 0xaa, 0x40, 0x2d, 0xa8, 0x3a, 0x12,
+ 0xf2, 0x1e, 0xce, 0x17, 0xee, 0x38, 0xc0, 0x3d, 0x63, 0xb6, 0x4b, 0x2e,
+ 0x34, 0x85, 0x10, 0xff, 0x03, 0xc6, 0x56, 0x55, 0x88, 0x53, 0x36, 0x81,
+ 0xcb, 0x10, 0x3e, 0xe1, 0x10, 0xc6, 0xf1, 0x0b, 0x4a, 0x79, 0x89, 0xe5,
+ 0x11, 0x88, 0x20, 0x18, 0xfa, 0x90, 0x9f, 0x59, 0x2e, 0x97, 0xed, 0x54,
+ 0x95, 0x6f, 0xd0, 0xea, 0x4e, 0x2b, 0xcc, 0x13, 0xa0, 0x88, 0x7d, 0xd6,
+ 0xdb, 0xb1, 0xd4, 0x14, 0x53, 0xe6, 0xbc, 0x86, 0x1b, 0x94, 0x76, 0xf7,
+ 0x27, 0xca, 0x3a, 0x07, 0x05, 0xa8, 0xc6, 0xce, 0xc5, 0x5a, 0x22, 0x05,
+ 0x71, 0x44, 0x80, 0x6e, 0x13, 0x5e, 0xa3, 0x51, 0x15, 0x76, 0x49, 0xef,
+ 0x5f, 0xf9, 0xd5, 0xbb, 0x67, 0x92, 0xd7, 0x76, 0x05, 0xdb, 0x69, 0x27,
+ 0x02, 0xe6, 0x02, 0x37, 0x79, 0xdb, 0xb9, 0x4b, 0x37, 0xa5, 0x93, 0x8d,
+ 0xe6, 0xef, 0x91, 0x0d, 0x65, 0x60, 0xab, 0xce, 0x0a, 0x92, 0xd5, 0x04,
+ 0xe2, 0x49, 0xe1, 0x57, 0x89, 0xcb, 0x52, 0xd7, 0xa6, 0xc4, 0x21, 0x41,
+ 0xe9, 0x27, 0xd8, 0xf9, 0xb5, 0x6a, 0x21, 0x4b, 0xba, 0x2f, 0x4b, 0xdc,
+ 0x39, 0x8c, 0x7c, 0xa2, 0x03, 0xc0, 0x00, 0x89, 0xfa, 0xb5, 0x98, 0xf5,
+ 0x9d, 0x31, 0x37, 0x59, 0x5a, 0x91, 0x8f, 0xae, 0x0f, 0x7d, 0xbd, 0x75,
+ 0x61, 0xc8, 0x91, 0xbe, 0x2b, 0x02, 0x55, 0x46, 0x65, 0x31, 0x23, 0xc2,
+ 0x7c, 0x01, 0x96, 0xea, 0x06, 0xde, 0x89, 0x6f, 0x9f, 0xfe, 0x3f, 0xed,
+ 0x1a, 0x08, 0xb6, 0x5a, 0xfd, 0x40, 0xc5, 0xf4, 0xed, 0x98, 0x2d, 0xe2,
+ 0xe7, 0x68, 0x50, 0xd2, 0xbc, 0xc8, 0x5f, 0xfe, 0xb6, 0x19, 0x77, 0xea,
+ 0x6f, 0x0b, 0xa3, 0x16, 0xbb, 0x33, 0x96, 0xb7, 0xfc, 0x20, 0x4c, 0x2c,
+ 0x22, 0x5a, 0x01, 0xd6, 0xec, 0xe7, 0xeb, 0xdb, 0xf4, 0xfb, 0xdf, 0xfd,
+ 0xfb, 0x6d, 0x84, 0x86, 0x83, 0x08, 0xda, 0x90, 0x5a, 0xd3, 0x14, 0xa0,
+ 0x3d, 0xa2, 0x11, 0x11, 0x50, 0x11, 0xbe, 0x5a, 0x92, 0x4e, 0x82, 0x38,
+ 0x1c, 0xa2, 0x37, 0x2f, 0x15, 0x45, 0xc9, 0x17, 0x26, 0x92, 0x91, 0x31,
+ 0xb7, 0x99, 0xf0, 0x57, 0xc9, 0xed, 0xaf, 0x92, 0x6a, 0xc1, 0xf4, 0xcb,
+ 0x43, 0xee, 0x09, 0x4c, 0xe4, 0x7a, 0x7e, 0xcb, 0xf5, 0x90, 0x57, 0x93,
+ 0x99, 0x7a, 0xbd, 0x4a, 0x60, 0x62, 0x4a, 0x29, 0xa7, 0x97, 0x12, 0xbf,
+ 0xf0, 0x4f, 0x67, 0x8b, 0x5d, 0x88, 0x50, 0x0e, 0xa9, 0xdc, 0xb7, 0x1b,
+ 0xec, 0x6b, 0x78, 0x71, 0xaa, 0x4f, 0xf1, 0xf7, 0xe8, 0x45, 0x46, 0x3d,
+ 0x70, 0xb5, 0x0e, 0xc4, 0xbf, 0xf4, 0xfc, 0x83, 0x40, 0x2b, 0x13, 0x2a,
+ 0x40, 0x81, 0x4c, 0xcf, 0x1c, 0xfe, 0xd5, 0x4d, 0x6c, 0x6f, 0xfa, 0x12,
+ 0xc4, 0x71, 0x48, 0x84, 0xb5, 0xc9, 0x95, 0xb4, 0x22, 0x80, 0x05, 0xd1,
+ 0x60, 0xdd, 0x3d, 0x38, 0x1a, 0xbf, 0x7e, 0xae, 0xb9, 0x50, 0xe4, 0x28,
+ 0x03, 0xbe, 0x7b, 0x32, 0xd1, 0xe9, 0x21, 0xb0, 0x6b, 0xbf, 0x78, 0x2d,
+ 0x45, 0x28, 0x7d, 0x50, 0x72, 0x0b, 0x0b, 0x7f, 0xf3, 0x29, 0x95, 0x52,
+ 0x30, 0x9a, 0xb2, 0xb1, 0xfa, 0x79, 0x50, 0x3e, 0x67, 0x3e, 0xae, 0x55,
+ 0x3c, 0x97, 0xcf, 0xe4, 0x83, 0xc0, 0xc3, 0x7e, 0xb6, 0xb7, 0xc5, 0xa4,
+ 0xc3, 0x56, 0xa2, 0xc5, 0x43, 0x5f, 0xfb, 0xd5, 0xbe, 0x2e, 0x60, 0x98,
+ 0xe7, 0xf7, 0xb6, 0xdb, 0x5f, 0x10, 0x60, 0xd2, 0x32, 0x60, 0xca, 0xbe,
+ 0x44, 0x54, 0x69, 0xa3, 0x11, 0x96, 0xbc, 0xdd, 0x3a, 0xf7, 0x27, 0x52,
+ 0x7c, 0xbc, 0x24, 0xcc, 0x88, 0x80, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x18,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0d, 0x00, 0x06, 0x10,
+ 0x70, 0x00, 0x18, 0x00, 0xd5, 0x06, 0x98, 0x37, 0x3c, 0xc8, 0xb1, 0xe8,
+ 0x9b, 0xf0, 0x1b, 0x8e, 0xd7, 0xbd, 0x9a, 0xf6, 0x2c, 0xa8, 0x8c, 0x1d,
+ 0xfc, 0x78, 0xa1, 0x6c, 0xc9, 0xb8, 0xb9, 0xb1, 0xb5, 0x20, 0xb9, 0x36,
+ 0x8b, 0x57, 0x73, 0xf3, 0x80, 0x83, 0x63, 0xc1, 0xed, 0x3e, 0xe6, 0x0e,
+ 0xde, 0x50, 0xfd, 0x16, 0x14, 0xb5, 0x7c, 0xe6, 0x52, 0x9d, 0x0d, 0x3d,
+ 0x6a, 0x8d, 0xf5, 0x38, 0x44, 0xb2, 0xa2, 0x38, 0xb7, 0x60, 0x86, 0xee,
+ 0xe5, 0x2c, 0x09, 0xdb, 0x5d, 0x76, 0x15, 0x7c, 0xbc, 0xb8, 0x24, 0xd7,
+ 0xbf, 0x03, 0x83, 0x40, 0x20, 0xbe, 0x08, 0xcc, 0xc4, 0xa4, 0xdb, 0x04,
+ 0x7f, 0x65, 0x91, 0xa5, 0xba, 0xa6, 0xb9, 0x1d, 0x5b, 0xd8, 0x2e, 0xcc,
+ 0x01, 0x5a, 0xaa, 0x20, 0xe1, 0x28, 0x22, 0x7f, 0xfb, 0x99, 0x55, 0xbd,
+ 0xdd, 0xf9, 0xc6, 0x9a, 0x6b, 0x75, 0x87, 0x23, 0x7e, 0xb1, 0xc1, 0x50,
+ 0x17, 0x78, 0x08, 0xfd, 0xfb, 0x6d, 0x9f, 0xd1, 0x9f, 0x98, 0x0f, 0x18,
+ 0x24, 0xa5, 0xec, 0x43, 0x3e, 0x8a, 0xe7, 0xbb, 0x4e, 0xb6, 0xbd, 0x45,
+ 0xec, 0x7d, 0xa7, 0xa2, 0xb9, 0x90, 0x36, 0x5c, 0xa5, 0x67, 0xef, 0x91,
+ 0xe0, 0x46, 0x62, 0x2b, 0xa6, 0x1c, 0x48, 0x29, 0x4b, 0x58, 0xad, 0x46,
+ 0x27, 0x98, 0x6e, 0x43, 0x8b, 0x4c, 0x09, 0x2c, 0xd7, 0xe3, 0x89, 0xda,
+ 0x18, 0x35, 0x26, 0x34, 0xa8, 0xe6, 0xbe, 0xf1, 0x15, 0xe7, 0xec, 0xc4,
+ 0xd3, 0x01, 0x3c, 0x1f, 0xc0, 0x6d, 0x8b, 0x37, 0xc7, 0x64, 0xbd, 0x14,
+ 0xb5, 0xdf, 0x22, 0x4d, 0x06, 0x0a, 0x3a, 0xa6, 0x7c, 0x14, 0x74, 0x17,
+ 0x5c, 0x59, 0x6e, 0x11, 0xfd, 0x19, 0xec, 0xc9, 0x66, 0xec, 0xec, 0x6e,
+ 0xc8, 0x2d, 0x11, 0xb4, 0xff, 0x75, 0xd0, 0x51, 0xcb, 0xb0, 0x00, 0xee,
+ 0xef, 0xc9, 0xb1, 0x5c, 0x3f, 0x9e, 0xcd, 0xcc, 0x1a, 0x89, 0x8a, 0x98,
+ 0xcd, 0x70, 0x50, 0x82, 0x0c, 0x3c, 0xbe, 0xd0, 0xb1, 0xee, 0xa6, 0x81,
+ 0x93, 0x8d, 0x5f, 0xff, 0xf1, 0x85, 0x22, 0x3b, 0xc0, 0x0b, 0x4a, 0xc4,
+ 0x9d, 0x0d, 0x5a, 0x1b, 0xc9, 0xbd, 0xea, 0x88, 0x85, 0xd7, 0x67, 0x1f,
+ 0x5d, 0xf3, 0x5a, 0x5d, 0x11, 0xaf, 0x06, 0x5b, 0xac, 0xe6, 0x93, 0x8d,
+ 0xbd, 0xe7, 0x02, 0x6c, 0x1a, 0x77, 0x24, 0x0b, 0x44, 0x32, 0xd4, 0x93,
+ 0x29, 0x03, 0x05, 0xd2, 0x2f, 0x45, 0x36, 0xfe, 0x29, 0x3a, 0x3b, 0xb4,
+ 0x89, 0xb3, 0x5b, 0x95, 0x3e, 0xe4, 0x3c, 0xbe, 0x1a, 0xb5, 0xd0, 0x19,
+ 0x04, 0x38, 0x22, 0xfd, 0x0d, 0x19, 0xa5, 0x56, 0xba, 0xc1, 0x21, 0x89,
+ 0xe0, 0xc9, 0xea, 0x67, 0xfe, 0x59, 0xbe, 0xea, 0x50, 0xe7, 0x47, 0xc7,
+ 0x52, 0x5b, 0x70, 0x20, 0x30, 0xdb, 0x31, 0xc1, 0x51, 0xd7, 0x2b, 0x5c,
+ 0x04, 0x65, 0x33, 0xca, 0x15, 0xbd, 0xd2, 0x16, 0xa0, 0x39, 0xdf, 0xa8,
+ 0xe8, 0xec, 0x1c, 0x46, 0xf4, 0x6e, 0xf6, 0x7f, 0x36, 0xe9, 0x7d, 0x0b,
+ 0xe9, 0xa1, 0x68, 0x79, 0x07, 0x2f, 0xe8, 0x9b, 0xed, 0x7a, 0xb4, 0x3d,
+ 0xbb, 0x49, 0x9a, 0x75, 0xdd, 0xda, 0xde, 0x11, 0x00, 0x2f, 0x04, 0x00,
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x40, 0x00,
+ 0x39, 0x11, 0xfc, 0x00, 0x18, 0x01, 0x6b, 0x83, 0xf1, 0xdf, 0xdf, 0x4e,
+ 0xba, 0xff, 0x9f, 0xfe, 0xa5, 0xf6, 0xa5, 0xf7, 0xff, 0xd7, 0xa3, 0xff,
+ 0xfd, 0xca, 0xbe, 0xeb, 0x3f, 0xff, 0xfe, 0xbf, 0xbe, 0x6f, 0x00, 0x79,
+ 0x0d, 0xff, 0xef, 0xe7, 0xc3, 0x49, 0x2e, 0x25, 0xfc, 0x8f, 0xff, 0xfd,
+ 0x75, 0x7d, 0x0f, 0xe9, 0xd1, 0xe5, 0x91, 0xff, 0xff, 0xb7, 0x24, 0x40,
+ 0x73, 0x80, 0x6f, 0xb3, 0x28, 0xaa, 0x4c, 0x84, 0xd9, 0x6a, 0xe3, 0xa9,
+ 0xe4, 0xbb, 0x81, 0x6c, 0x97, 0x80, 0x11, 0xa5, 0x2c, 0xc6, 0xdd, 0x8f,
+ 0x32, 0xf6, 0x67, 0x6e, 0x98, 0x28, 0xaa, 0x60, 0xed, 0x25, 0x77, 0x85,
+ 0x40, 0xab, 0x53, 0x78, 0xde, 0xa6, 0xa4, 0x59, 0x41, 0xe0, 0xa4, 0x48,
+ 0xcd, 0x76, 0x57, 0x7f, 0x95, 0xd6, 0x57, 0xbd, 0xe5, 0x87, 0x36, 0x4a,
+ 0x0e, 0x0c, 0x6c, 0x16, 0x7c, 0x0c, 0xda, 0xf4, 0x40, 0x7c, 0xd2, 0xc1,
+ 0x20, 0x3c, 0x3c, 0x83, 0xf0, 0xcc, 0x3e, 0x05, 0x1c, 0xcb, 0xbb, 0x59,
+ 0xad, 0xc5, 0x04, 0x96, 0x6d, 0x82, 0x2a, 0xea, 0x8e, 0x7a, 0xdb, 0x8a,
+ 0x74, 0xf2, 0x7b, 0x79, 0x51, 0x94, 0x67, 0xd3, 0xfa, 0x7c, 0x32, 0x01,
+ 0x29, 0x59, 0x22, 0x20, 0x99, 0xd7, 0x94, 0xb9, 0xa9, 0x5d, 0x58, 0x1d,
+ 0x7e, 0x02, 0x2a, 0x2f, 0x9a, 0xb2, 0xa3, 0xda, 0x68, 0x16, 0x99, 0x83,
+ 0xad, 0x0b, 0x01, 0x73, 0x75, 0x7b, 0xe7, 0x20, 0xe4, 0x82, 0x53, 0x4e,
+ 0xcf, 0x7b, 0x67, 0xc5, 0x73, 0xba, 0xca, 0xe8, 0x42, 0x90, 0x71, 0xee,
+ 0xb7, 0xfb, 0xac, 0xb2, 0x9d, 0x46, 0xd1, 0x11, 0x33, 0xe7, 0x52, 0x43,
+ 0xa7, 0x65, 0xca, 0xe7, 0x79, 0x19, 0xa2, 0x49, 0x34, 0x79, 0xac, 0x47,
+ 0x9c, 0xba, 0x1d, 0x64, 0x5f, 0xdd, 0x58, 0x6b, 0x60, 0x45, 0x1b, 0xa1,
+ 0xd5, 0xea, 0x97, 0x30, 0xcc, 0x81, 0xd8, 0x16, 0xfa, 0xf1, 0x5d, 0x29,
+ 0xc8, 0x2d, 0x96, 0x35, 0x39, 0x23, 0xe3, 0x3b, 0xc6, 0x7c, 0x92, 0x8f,
+ 0x49, 0xd9, 0x47, 0xfb, 0xc7, 0x9d, 0x08, 0x12, 0x9e, 0x79, 0x9f, 0x97,
+ 0xed, 0x6c, 0xd0, 0xcb, 0x08, 0x9a, 0x76, 0xb1, 0xce, 0xb8, 0x22, 0x81,
+ 0x82, 0xa6, 0xcd, 0x29, 0xaf, 0x65, 0xb6, 0xbc, 0x3d, 0x34, 0xa9, 0x08,
+ 0xe7, 0x1a, 0x59, 0xc1, 0xb9, 0x97, 0x91, 0x16, 0x88, 0x97, 0x2e, 0x85,
+ 0x2c, 0xa3, 0x98, 0x94, 0xc7, 0xf2, 0x78, 0xd3, 0x2e, 0x8b, 0x70, 0x86,
+ 0x0f, 0x29, 0x1a, 0xe8, 0x8e, 0xc7, 0x7a, 0x6e, 0xae, 0x37, 0x1c, 0x3e,
+ 0xc4, 0x6f, 0x78, 0x52, 0xf0, 0x5a, 0x8d, 0xbb, 0x82, 0x00, 0x40, 0xba,
+ 0x19, 0xfe, 0x07, 0xb0, 0x46, 0x40, 0x52, 0xb2, 0x1d, 0xe5, 0x50, 0xeb,
+ 0x05, 0x7b, 0xed, 0x63, 0xca, 0xce, 0xba, 0x63, 0xb8, 0xe4, 0x7a, 0x69,
+ 0x66, 0xd5, 0x27, 0x98, 0x7f, 0x3d, 0x4b, 0x58, 0xad, 0xb4, 0x41, 0x21,
+ 0xc1, 0xa8, 0xa0, 0xa2, 0x93, 0xa0, 0x7f, 0x1d, 0x02, 0x09, 0x14, 0xdd,
+ 0x80, 0x95, 0xae, 0x38, 0x53, 0xe8, 0x53, 0xd3, 0x41, 0x46, 0xce, 0x70,
+ 0xae, 0x0d, 0xf1, 0xfa, 0xf2, 0xc5, 0x96, 0x4c, 0xfe, 0xb9, 0x33, 0xb1,
+ 0xb2, 0xbc, 0xb8, 0x84, 0x66, 0x9e, 0xe0, 0xc5, 0x98, 0x00, 0xda, 0x2d,
+ 0xb0, 0x00, 0x99, 0xec, 0x8c, 0xd0, 0x06, 0x52, 0x20, 0x00, 0x79, 0xe1,
+ 0xb0, 0x80, 0x05, 0x2c, 0xce, 0xf0, 0x02, 0x3d, 0x8c, 0x10, 0x00, 0x80,
+ 0x51, 0x00, 0x08, 0xc3, 0x73, 0x00, 0x0f, 0xac, 0x40, 0x01, 0x0f, 0x22,
+ 0xb0, 0x01, 0x66, 0x91, 0x20, 0x02, 0x5f, 0xdc, 0x00, 0x04, 0x23, 0xe4,
+ 0xc0, 0x02, 0xfd, 0x87, 0x00, 0x09, 0x9e, 0x74, 0x00, 0x0f, 0x13, 0x64,
+ 0xb0, 0xd4, 0x4b, 0x48, 0xa3, 0x31, 0x43, 0x20, 0x2c, 0x60, 0xb3, 0x4a,
+ 0x10, 0x3a, 0x42, 0x51, 0x05, 0x18, 0xfc, 0x06, 0x5a, 0x66, 0xf6, 0x28,
+ 0x0d, 0x73, 0xe2, 0xae, 0x55, 0xa1, 0xf8, 0x04, 0xad, 0x3e, 0x86, 0x13,
+ 0xa0, 0x66, 0xe4, 0x60, 0xd5, 0x59, 0x6f, 0xe2, 0x4a, 0x96, 0x2f, 0x6d,
+ 0x10, 0xc6, 0x2e, 0x4b, 0x2f, 0x69, 0x79, 0x1a, 0x69, 0xc8, 0x71, 0x69,
+ 0x02, 0xe7, 0x9f, 0x36, 0xe4, 0x81, 0xe5, 0xfe, 0x9f, 0x91, 0xa8, 0x57,
+ 0x3d, 0x3c, 0x03, 0x3b, 0xc5, 0xfa, 0xf4, 0xf2, 0xe6, 0xec, 0x37, 0x12,
+ 0x37, 0x3d, 0xbe, 0x0e, 0x42, 0xc4, 0xfd, 0x89, 0x87, 0xb8, 0x8e, 0xc2,
+ 0xee, 0xf1, 0xbe, 0x5e, 0xec, 0xb6, 0xe1, 0xef, 0x78, 0xe4, 0x71, 0xa9,
+ 0xac, 0xdb, 0x32, 0xb4, 0x15, 0x08, 0xde, 0xb0, 0xf7, 0x14, 0x51, 0x0a,
+ 0xfb, 0xb2, 0xdc, 0xc0, 0x90, 0x81, 0xfe, 0x7f, 0x4d, 0x99, 0x69, 0xd3,
+ 0x31, 0xb3, 0x17, 0xa3, 0x03, 0xbf, 0x8e, 0x27, 0x33, 0xbb, 0xa9, 0x0c,
+ 0x9a, 0x88, 0xd5, 0xbe, 0x70, 0xa1, 0x45, 0x35, 0x25, 0x06, 0xe0, 0x63,
+ 0xd0, 0xc7, 0x23, 0xe0, 0x74, 0x00, 0xfe, 0xdf, 0xc2, 0x15, 0x56, 0x7d,
+ 0xfe, 0x98, 0x4e, 0x47, 0xdc, 0xdc, 0xa3, 0xa9, 0x99, 0x43, 0x3e, 0x1b,
+ 0x55, 0x63, 0x2e, 0xd5, 0xb1, 0x92, 0x7d, 0x0c, 0x39, 0xe7, 0xe2, 0x7f,
+ 0x88, 0xb1, 0xa9, 0x6f, 0x67, 0x9a, 0x48, 0x4c, 0xf1, 0xe7, 0xf2, 0x9a,
+ 0xee, 0x1c, 0x5e, 0xb9, 0xdd, 0x2c, 0x07, 0x99, 0x7c, 0x89, 0x81, 0x0d,
+ 0x6c, 0xf4, 0xb0, 0xa3, 0x5a, 0x30, 0xa6, 0x53, 0xe9, 0x02, 0xee, 0x25,
+ 0xd5, 0xb4, 0x24, 0xe1, 0xf3, 0x17, 0x1f, 0x82, 0xdf, 0x6e, 0x3a, 0x6d,
+ 0xb1, 0x94, 0x8b, 0x35, 0x9f, 0xc4, 0x5d, 0x88, 0xd4, 0x89, 0x68, 0xe6,
+ 0xfe, 0xc4, 0xf9, 0xed, 0x26, 0xdf, 0x23, 0x29, 0x7b, 0x26, 0xd5, 0x4f,
+ 0x00, 0xb4, 0xfd, 0xca, 0xa1, 0xb5, 0x0d, 0x8a, 0x32, 0x4d, 0xa1, 0x92,
+ 0x28, 0xd3, 0x54, 0x35, 0xc4, 0xbc, 0xc3, 0x3d, 0xe5, 0x69, 0x9d, 0x5f,
+ 0x67, 0x99, 0x15, 0x00, 0x21, 0x6a, 0x31, 0x6d, 0xeb, 0xa9, 0x80, 0x2e,
+ 0xc7, 0x0f, 0x4d, 0x99, 0x9a, 0x67, 0x84, 0x3f, 0x38, 0x7d, 0x07, 0x4f,
+ 0x67, 0xf7, 0xf2, 0xb8, 0x91, 0x71, 0x81, 0xae, 0x17, 0xaa, 0x73, 0x04,
+ 0xed, 0xfe, 0x81, 0x06, 0x6f, 0x7f, 0x32, 0x3e, 0xbe, 0x30, 0xf1, 0x61,
+ 0x95, 0xcc, 0xac, 0x4b, 0x9b, 0x94, 0xe4, 0x7a, 0x26, 0xdf, 0x2c, 0x87,
+ 0x9b, 0x51, 0x1a, 0x69, 0x4c, 0x01, 0x78, 0xa0, 0xc8, 0x68, 0xca, 0xa2,
+ 0x87, 0xd8, 0x04, 0x9b, 0xc9, 0xd7, 0xfb, 0x92, 0x8b, 0x5d, 0xbe, 0x2b,
+ 0xa2, 0xcb, 0xc6, 0xad, 0x63, 0xed, 0xf3, 0x44, 0xce, 0x02, 0x1c, 0x20,
+ 0x3d, 0xd2, 0x3c, 0xb0, 0x3b, 0xe1, 0xf6, 0x27, 0x59, 0xcb, 0xbd, 0x3d,
+ 0xfc, 0x43, 0x63, 0x7c, 0x40, 0x59, 0x6b, 0x37, 0xe7, 0xc0, 0xf1, 0x96,
+ 0x1a, 0xe9, 0x4b, 0xec, 0x0c, 0x23, 0x4f, 0x38, 0xb8, 0x44, 0x8b, 0xfe,
+ 0xa4, 0x24, 0x0c, 0x58, 0x22, 0xb7, 0x68, 0x36, 0x7a, 0x9d, 0x00, 0x13,
+ 0xc8, 0x5c, 0x72, 0x5e, 0xd9, 0xa4, 0x09, 0x18, 0x63, 0xd3, 0x6e, 0xda,
+ 0xac, 0xda, 0xa6, 0x3f, 0xfc, 0xc8, 0x87, 0xd0, 0xda, 0xd7, 0x63, 0xa9,
+ 0x26, 0xbc, 0x5c, 0x01, 0x06, 0x9e, 0xd0, 0x80, 0xab, 0xe2, 0x7b, 0xe2,
+ 0x59, 0xb7, 0xb0, 0x67, 0xa5, 0xde, 0xd3, 0xb9, 0x3e, 0xd7, 0xad, 0x57,
+ 0x19, 0x75, 0x6f, 0xb3, 0xe6, 0x25, 0x26, 0xdb, 0xdc, 0x4a, 0xe4, 0xd0,
+ 0xbd, 0x78, 0x2c, 0x93, 0x52, 0xb4, 0x80, 0xb9, 0x0e, 0xd9, 0x3d, 0x3b,
+ 0xad, 0x30, 0x53, 0xb7, 0x4e, 0x5d, 0x5a, 0x34, 0xb2, 0x48, 0xc9, 0x18,
+ 0x12, 0x65, 0xda, 0xaa, 0x25, 0xfb, 0x1e, 0x22, 0xae, 0x68, 0x7b, 0x39,
+ 0x20, 0x2d, 0x0b, 0x17, 0x57, 0x52, 0xa9, 0x2a, 0x99, 0x9a, 0xe6, 0x33,
+ 0x2d, 0xa4, 0x90, 0x7c, 0xa7, 0x83, 0xa9, 0xa8, 0xbb, 0x66, 0x7e, 0xf1,
+ 0xf8, 0x13, 0x66, 0xad, 0x06, 0xd5, 0x25, 0xc1, 0x44, 0x56, 0x80, 0x00,
+ 0xf6, 0x05, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x29, 0x00, 0x07, 0x10, 0x30, 0x14, 0x70, 0x79, 0x21, 0xfb, 0x18,
+ 0x5f, 0xee, 0x78, 0x1c, 0x17, 0xb8, 0x7d, 0x32, 0xff, 0x25, 0x7b, 0x3b,
+ 0x3d, 0x6b, 0xeb, 0xce, 0x4d, 0xef, 0xba, 0x7a, 0xe2, 0xfe, 0xb7, 0xc1,
+ 0x5e, 0x00, 0xbf, 0x9b, 0xf9, 0x80, 0x46, 0x60, 0xb2, 0xfe, 0xe5, 0x5d,
+ 0x40, 0xfc, 0xc0, 0xf2, 0xdd, 0xe4, 0xf3, 0xeb, 0xe7, 0x85, 0x8d, 0x00,
+ 0x7c, 0xa0, 0x7f, 0x9c, 0xff, 0x73, 0xe6, 0x57, 0xaf, 0xf8, 0x9b, 0xe8,
+ 0x60, 0x95, 0xc8, 0x6a, 0xfa, 0xd5, 0xab, 0x5f, 0x64, 0xca, 0x08, 0x1b,
+ 0x83, 0xf8, 0x1b, 0x3a, 0x39, 0x3c, 0x6f, 0xe6, 0x2f, 0x5a, 0xde, 0x89,
+ 0xa1, 0x27, 0x07, 0x3e, 0x60, 0xcb, 0xfc, 0x68, 0x9e, 0x35, 0x32, 0x60,
+ 0x6c, 0x5b, 0xb1, 0x30, 0x90, 0x3d, 0xb5, 0xc7, 0x05, 0x59, 0xa6, 0x18,
+ 0x18, 0x31, 0xcf, 0x89, 0xba, 0xc2, 0x9a, 0x11, 0x6c, 0x4c, 0xd0, 0x56,
+ 0xcd, 0x6f, 0x9f, 0x83, 0x8e, 0xce, 0x16, 0x0c, 0xef, 0x11, 0xcf, 0xd1,
+ 0x63, 0x3b, 0x15, 0x21, 0xf1, 0xa3, 0xb3, 0xf1, 0x30, 0x35, 0xdf, 0x58,
+ 0xfb, 0x5a, 0x14, 0xa3, 0xa5, 0x54, 0x68, 0x5e, 0xc0, 0x9e, 0xd4, 0x09,
+ 0x80, 0xf7, 0x58, 0x03, 0xc2, 0x9e, 0x6e, 0xdc, 0x3a, 0xd8, 0x2a, 0xbb,
+ 0xda, 0x67, 0xb9, 0x84, 0xcc, 0x8a, 0x34, 0xda, 0x41, 0x26, 0x06, 0x18,
+ 0x23, 0x36, 0xbc, 0xa6, 0xae, 0x24, 0x8a, 0xf3, 0x57, 0xb1, 0x0a, 0x6a,
+ 0xac, 0xd4, 0x58, 0xfe, 0x67, 0x75, 0xa7, 0x00, 0x9a, 0x38, 0x11, 0x96,
+ 0xa6, 0x33, 0x00, 0x3d, 0x56, 0x1e, 0xcf, 0x34, 0x38, 0xf4, 0x36, 0xbc,
+ 0x4c, 0x22, 0x72, 0x00, 0x75, 0x00, 0xe0, 0x0d, 0x1a, 0x10, 0x01, 0x72,
+ 0x6e, 0x00, 0x28, 0x21, 0xe0, 0x04, 0x66, 0xaa, 0x00, 0x7c, 0xb4, 0x60,
+ 0x0d, 0x74, 0xd8, 0x01, 0x78, 0x03, 0x00, 0x28, 0xdc, 0x70, 0x04, 0x84,
+ 0x36, 0x00, 0x7e, 0x85, 0x20, 0x07, 0x81, 0xca, 0x38, 0x02, 0x42, 0x1b,
+ 0x00, 0x3f, 0x42, 0x90, 0x01, 0x52, 0xf2, 0x00, 0x35, 0x49, 0xc2, 0x8d,
+ 0x5c, 0x49, 0x15, 0xe6, 0xb3, 0xc4, 0xf2, 0xb9, 0x5c, 0x6e, 0xba, 0xcd,
+ 0x5c, 0x49, 0x15, 0xe6, 0xb3, 0xd1, 0x35, 0x57, 0xd1, 0x02, 0x84, 0x62,
+ 0x15, 0x8a, 0xc0, 0x2d, 0x80, 0x50, 0xf6, 0x6d, 0xb3, 0x8b, 0x23, 0x0f,
+ 0x04, 0xa4, 0xad, 0xa8, 0x96, 0x84, 0x00, 0xca, 0x20, 0xc5, 0x4d, 0x4a,
+ 0xbe, 0xa5, 0x01, 0xb2, 0x9e, 0x1f, 0xd2, 0x0f, 0x6c, 0x40, 0xb0, 0xa5,
+ 0x85, 0xd5, 0x9a, 0x08, 0xf2, 0x78, 0xb8, 0xcc, 0x4c, 0x4a, 0xcb, 0xbe,
+ 0xeb, 0x2a, 0x54, 0x74, 0x19, 0x6a, 0x88, 0xa5, 0x44, 0xec, 0x10, 0xef,
+ 0xfc, 0x91, 0x3d, 0xc1, 0x9e, 0x89, 0xbb, 0x60, 0xba, 0x4b, 0x94, 0x27,
+ 0xa6, 0x54, 0x0f, 0xa1, 0xd8, 0x4a, 0x27, 0x35, 0xf4, 0x68, 0xc0, 0x1b,
+ 0x7d, 0xb7, 0x65, 0xf5, 0x90, 0x29, 0x0f, 0x3c, 0xb0, 0x50, 0x6d, 0xa0,
+ 0xbc, 0xdb, 0xac, 0x1a, 0x59, 0x28, 0x2e, 0x36, 0x99, 0x30, 0x67, 0xf4,
+ 0xd5, 0x89, 0x28, 0xf1, 0x24, 0x0d, 0xff, 0x70, 0x1b, 0x0f, 0x69, 0x69,
+ 0xf4, 0xb8, 0x60, 0xa5, 0x3e, 0xbc, 0x9a, 0x47, 0x55, 0x48, 0xbc, 0xe3,
+ 0xed, 0x8d, 0xcf, 0xea, 0xe0, 0x94, 0x69, 0xda, 0x6f, 0xf0, 0xec, 0x41,
+ 0x47, 0x96, 0xce, 0x51, 0xdc, 0x46, 0x97, 0xdd, 0x07, 0xdf, 0x85, 0x64,
+ 0xdf, 0x7e, 0x69, 0x40, 0xc0, 0xe2, 0x58, 0xf8, 0xca, 0xa3, 0xfc, 0xed,
+ 0x04, 0x0b, 0xb1, 0x72, 0x7b, 0x30, 0x18, 0x7b, 0xe9, 0xc0, 0xb2, 0x84,
+ 0x0a, 0x76, 0x5c, 0x4e, 0xcc, 0x6c, 0x31, 0x4e, 0x7a, 0xa5, 0x30, 0x9e,
+ 0x11, 0xa1, 0x37, 0xe5, 0x16, 0x4d, 0xf6, 0xa9, 0xa5, 0x76, 0x54, 0xb1,
+ 0xcb, 0xc6, 0xea, 0x11, 0x78, 0xc1, 0x6e, 0x22, 0xd8, 0x9c, 0xf5, 0xe6,
+ 0x7d, 0x39, 0xd2, 0x1f, 0xca, 0xfd, 0xe1, 0xff, 0x37, 0x49, 0xf2, 0x3c,
+ 0x42, 0x42, 0x16, 0xae, 0x1e, 0xaa, 0x64, 0xb5, 0x41, 0x89, 0xd6, 0xfc,
+ 0xb8, 0x9b, 0x3c, 0x5a, 0x8d, 0x60, 0x7e, 0x32, 0x9d, 0x15, 0xce, 0xdf,
+ 0x57, 0x9d, 0xfe, 0xb8, 0xd8, 0x0a, 0xf0, 0xc9, 0xe3, 0xac, 0x8e, 0x89,
+ 0xb4, 0x27, 0xf8, 0x8d, 0xa1, 0xe9, 0x52, 0x08, 0xae, 0x1a, 0xca, 0xb4,
+ 0xd0, 0xa8, 0x43, 0x17, 0x79, 0xa3, 0xa4, 0x73, 0x6a, 0x06, 0xb3, 0xc4,
+ 0x3c, 0xee, 0x60, 0xba, 0x96, 0xaf, 0x51, 0x61, 0xc9, 0xea, 0xa7, 0xee,
+ 0x33, 0x53, 0x88, 0xf4, 0xb8, 0x8b, 0x88, 0xa3, 0xcd, 0x3d, 0x5a, 0x9d,
+ 0x37, 0xb8, 0x3e, 0xd6, 0x99, 0x95, 0x4b, 0x81, 0x55, 0x5f, 0x99, 0xd7,
+ 0x51, 0xf9, 0x5b, 0xd3, 0x29, 0x40, 0x26, 0x0e, 0xf1, 0x42, 0x7c, 0x3e,
+ 0xd9, 0x57, 0x50, 0x50, 0xe1, 0x87, 0x57, 0xaa, 0x4c, 0x79, 0x29, 0x80,
+ 0xc0, 0x15, 0x6d, 0x04, 0xe0, 0x7d, 0xf4, 0xe6, 0xd3, 0x1b, 0x47, 0xbd,
+ 0x1a, 0x27, 0x86, 0x2c, 0xda, 0xb2, 0xac, 0xee, 0x5f, 0x3b, 0xb1, 0x43,
+ 0x59, 0x73, 0x87, 0xfb, 0x81, 0xcb, 0x74, 0xa8, 0xda, 0x08, 0xbc, 0x1f,
+ 0x45, 0x4b, 0x19, 0x9e, 0x8d, 0x82, 0xf1, 0x0e, 0xb4, 0xe0, 0xef, 0xc5,
+ 0xe4, 0x0c, 0xdf, 0x30, 0x6b, 0xd7, 0x12, 0x5f, 0xfa, 0x20, 0xdc, 0xf6,
+ 0x25, 0x20, 0x86, 0x09, 0x43, 0xdd, 0x5b, 0xfb, 0x8d, 0xcd, 0x38, 0x96,
+ 0x3c, 0x4c, 0xe5, 0xc5, 0x91, 0x59, 0xa8, 0x2f, 0x28, 0xca, 0x11, 0x7b,
+ 0x4b, 0x16, 0xdd, 0x9f, 0x44, 0x01, 0xe3, 0x4f, 0x84, 0x0a, 0x7c, 0xe0,
+ 0x25, 0x71, 0x20, 0xb4, 0x6a, 0x1e, 0x7e, 0x30, 0x5b, 0x15, 0x6f, 0x06,
+ 0x7c, 0x79, 0x32, 0xf0, 0x97, 0x8d, 0x4a, 0x37, 0x96, 0xcc, 0x38, 0x01,
+ 0x92, 0x27, 0xee, 0xd0, 0x43, 0xc4, 0x57, 0xb0, 0x3a, 0x38, 0xe8, 0x41,
+ 0xf5, 0xcf, 0xd9, 0x73, 0xa8, 0x37, 0xf7, 0x7b, 0x6d, 0xd4, 0xd0, 0xe5,
+ 0xc1, 0xef, 0x34, 0x80, 0x8a, 0x9f, 0x33, 0xe3, 0xa3, 0x50, 0x89, 0xe6,
+ 0x2b, 0x2e, 0xd8, 0x43, 0xe9, 0xb7, 0x99, 0xb3, 0x21, 0xc9, 0xce, 0x3e,
+ 0x01, 0xed, 0x0a, 0xbf, 0xca, 0xef, 0xb1, 0xe1, 0x8f, 0xfd, 0xca, 0xe3,
+ 0x2a, 0xe9, 0x07, 0x57, 0x3a, 0x2d, 0x2a, 0xa6, 0x01, 0x17, 0x5d, 0xec,
+ 0xeb, 0x1d, 0x5c, 0x74, 0x93, 0x22, 0xdc, 0x16, 0x00, 0xde, 0xd2, 0x1e,
+ 0x73, 0x3f, 0x53, 0x2d, 0x91, 0xcd, 0x8d, 0x8f, 0xe2, 0xfb, 0xc6, 0x11,
+ 0x47, 0xa2, 0xaf, 0x0b, 0xae, 0x85, 0x04, 0x5f, 0x74, 0xc8, 0x71, 0x8b,
+ 0xe2, 0x57, 0x50, 0xa9, 0x7a, 0x1f, 0x34, 0xdd, 0xa2, 0x03, 0xed, 0x0f,
+ 0xe9, 0xd9, 0x84, 0x18, 0xd4, 0x79, 0xf3, 0x83, 0xfe, 0x5e, 0x9c, 0xa4,
+ 0x6e, 0xa1, 0x4c, 0x08, 0x4a, 0x81, 0xce, 0x45, 0xa5, 0xa4, 0x77, 0x82,
+ 0x97, 0x46, 0x09, 0x59, 0x24, 0xb0, 0x57, 0x61, 0x01, 0x4e, 0x93, 0x44,
+ 0x75, 0x79, 0xcf, 0x35, 0x0e, 0xbb, 0xd7, 0xfd, 0x26, 0xdf, 0x13, 0x7d,
+ 0x02, 0x9f, 0x7f, 0xb0, 0x7c, 0xf6, 0x88, 0x03, 0xc1, 0x8f, 0x67, 0x93,
+ 0xe4, 0x54, 0x41, 0xb2, 0x15, 0xe7, 0x19, 0x27, 0xfa, 0x55, 0xea, 0x27,
+ 0xe0, 0xe9, 0x53, 0x4d, 0x0c, 0xce, 0xcf, 0xef, 0xb0, 0xc4, 0x72, 0xcf,
+ 0xf8, 0xb0, 0x71, 0xe5, 0xd2, 0x0a, 0x92, 0xce, 0xb3, 0xb8, 0x13, 0x3e,
+ 0xe7, 0xb2, 0x4a, 0xf0, 0x69, 0x67, 0xa9, 0xfc, 0x32, 0x57, 0xb0, 0x0f,
+ 0x93, 0x51, 0x55, 0x7c, 0x41, 0x9e, 0xe1, 0xfc, 0x94, 0xc8, 0x52, 0x90,
+ 0x33, 0x1b, 0xc5, 0xf2, 0x00, 0x1e, 0x84, 0xc9, 0xc3, 0x33, 0x3e, 0xb1,
+ 0xb6, 0xef, 0xe5, 0x2e, 0x2a, 0xdf, 0xef, 0xe1, 0x61, 0x39, 0xd4, 0x6b,
+ 0xc5, 0xdf, 0xb9, 0x1e, 0xa6, 0x7d, 0x81, 0x30, 0xae, 0xbb, 0x57, 0x6f,
+ 0x78, 0x57, 0xbd, 0x02, 0x35, 0xbc, 0x94, 0x9b, 0x30, 0x38, 0x2a, 0xda,
+ 0x3d, 0xb0, 0xae, 0x60, 0x3c, 0xf8, 0x13, 0xa8, 0x42, 0x5c, 0xc5, 0x5b,
+ 0x4f, 0xe1, 0xa1, 0xf4, 0x6f, 0x61, 0x01, 0x53, 0x49, 0xe1, 0x71, 0x5d,
+ 0x91, 0x98, 0x00, 0x25, 0x01, 0x5e, 0xc3, 0xd1, 0xdd, 0x8b, 0xf5, 0x9b,
+ 0x3a, 0xb1, 0x36, 0xcb, 0x32, 0xda, 0x50, 0xbe, 0x80, 0xfb, 0x54, 0x8b,
+ 0x17, 0xdf, 0x4e, 0x71, 0xfd, 0xa8, 0xe8, 0xe9, 0x73, 0xfb, 0xba, 0x51,
+ 0xb6, 0xb9, 0x46, 0x39, 0x06, 0xe4, 0x7d, 0xee, 0x9b, 0x99, 0xac, 0xcb,
+ 0xef, 0xbd, 0x9f, 0xc2, 0x59, 0xf1, 0xab, 0x65, 0x0b, 0x31, 0x00, 0x20,
+ 0x2d, 0x64, 0x3a, 0x87, 0xa8, 0x59, 0x31, 0x89, 0x35, 0x2f, 0x7f, 0x2e,
+ 0x64, 0xfb, 0x3d, 0x75, 0x26, 0x1d, 0x11, 0xf3, 0x96, 0xf1, 0x71, 0x71,
+ 0x68, 0xdf, 0xdc, 0xf2, 0x3d, 0x4b, 0x5b, 0x6b, 0x40, 0x53, 0x97, 0x09,
+ 0x7a, 0xee, 0x13, 0x98, 0xf4, 0xe4, 0xe9, 0x8f, 0x84, 0xfb, 0xea, 0xb0,
+ 0xc9, 0x62, 0x8f, 0xf9, 0xc6, 0x86, 0x5a, 0x2a, 0x52, 0xbd, 0xbe, 0x75,
+ 0xf3, 0xa6, 0xfa, 0x27, 0x04, 0xa5, 0xcf, 0x81, 0xbe, 0x20, 0xcb, 0x56,
+ 0x80, 0xe6, 0x59, 0xa0, 0xf2, 0xc4, 0x7c, 0x32, 0xa9, 0x45, 0x75, 0xdf,
+ 0xd1, 0x51, 0x6e, 0x78, 0x2b, 0xf4, 0xa5, 0x31, 0xaf, 0x4c, 0x75, 0xe0,
+ 0xe3, 0xed, 0xac, 0x58, 0x36, 0x32, 0xd7, 0xff, 0xd4, 0xc9, 0x7e, 0x13,
+ 0x7c, 0xa5, 0xa2, 0x55, 0xc6, 0xcb, 0xeb, 0xb6, 0x04, 0xe2, 0x00, 0x53,
+ 0x92, 0x8d, 0x9a, 0x3f, 0x66, 0xc3, 0x9e, 0xd1, 0x47, 0x66, 0x98, 0x59,
+ 0x8f, 0x16, 0x5e, 0x77, 0x3c, 0x42, 0xac, 0x9c, 0xf3, 0x00, 0x9d, 0xc4,
+ 0xba, 0x00, 0xad, 0x73, 0xe5, 0x5e, 0xa5, 0xf6, 0x46, 0x2e, 0xbc, 0xf6,
+ 0x05, 0x7c, 0x6f, 0x7f, 0x75, 0x2f, 0x89, 0x15, 0xef, 0x60, 0x15, 0x4e,
+ 0x39, 0x73, 0x51, 0xd0, 0x65, 0x0d, 0x86, 0x0a, 0x34, 0x3d, 0x4d, 0xae,
+ 0xb2, 0x86, 0xf6, 0x02, 0x42, 0x9f, 0x40, 0x84, 0x97, 0x79, 0xe9, 0x10,
+ 0x25, 0x1f, 0xdb, 0x50, 0x4c, 0x50, 0x04, 0x9f, 0xcf, 0xa5, 0x51, 0xf2,
+ 0x3b, 0x65, 0x89, 0x78, 0xb9, 0x24, 0xe6, 0x58, 0xad, 0x35, 0xb3, 0x05,
+ 0x7e, 0xdb, 0x55, 0x01, 0xcc, 0x47, 0x80, 0xcb, 0x4b, 0xec, 0xb7, 0xa1,
+ 0x76, 0x8e, 0xcf, 0x71, 0x03, 0xd0, 0x30, 0x40, 0xad, 0x96, 0xc6, 0x2f,
+ 0x9e, 0x9e, 0xdc, 0xdd, 0x8f, 0xc5, 0x0c, 0xd3, 0x7b, 0x69, 0x81, 0x61,
+ 0xdc, 0xb5, 0x36, 0xd9, 0x32, 0x8d, 0x29, 0x28, 0x4d, 0xd6, 0xf2, 0xd2,
+ 0x1d, 0x08, 0x00, 0x79, 0xe1, 0x86, 0xbc, 0xae, 0xe1, 0xc1, 0x59, 0xed,
+ 0x15, 0xe2, 0x30, 0xec, 0xd5, 0xc1, 0x58, 0x38, 0x8d, 0xd4, 0x8c, 0x4f,
+ 0x88, 0x0f, 0x14, 0x28, 0x54, 0xfa, 0xa7, 0xab, 0xa1, 0xd0, 0x9b, 0x78,
+ 0xbd, 0x38, 0x9c, 0xbd, 0x4d, 0x40, 0x9e, 0x81, 0xfc, 0x21, 0x42, 0x0b,
+ 0xfc, 0x37, 0xfa, 0x4e, 0xfa, 0xdc, 0x86, 0x9b, 0x09, 0xef, 0x41, 0x3f,
+ 0xed, 0x1c, 0x2e, 0xa9, 0xcd, 0xcd, 0x91, 0x54, 0x48, 0xda, 0x2b, 0xe9,
+ 0x01, 0x70, 0xf0, 0x74, 0xee, 0xeb, 0x2f, 0x0a, 0xdc, 0x76, 0x50, 0x09,
+ 0xe4, 0xa4, 0x74, 0x40, 0xf3, 0x7e, 0xf8, 0x66, 0x9a, 0x25, 0x47, 0xe2,
+ 0xec, 0x73, 0xfe, 0xa9, 0xf5, 0x09, 0x04, 0x3e, 0x6a, 0x32, 0xf3, 0xd1,
+ 0xa0, 0x40, 0x70, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x91, 0x0b, 0x00, 0x0d, 0x10, 0xbc, 0x00, 0x18, 0x00, 0x4b,
+ 0x1e, 0x78, 0x02, 0x50, 0xb0, 0xdf, 0x80, 0xeb, 0x97, 0x02, 0xcf, 0x75,
+ 0xda, 0x1d, 0xa0, 0xaf, 0xac, 0xb7, 0x63, 0x56, 0x18, 0x0b, 0x61, 0x11,
+ 0xd9, 0xeb, 0x52, 0xed, 0x3c, 0x62, 0x61, 0xaa, 0x7e, 0x95, 0x57, 0x78,
+ 0x57, 0x1d, 0xa5, 0xa0, 0x16, 0x0a, 0xd1, 0x76, 0xeb, 0x2f, 0xca, 0x4e,
+ 0xfe, 0x11, 0xc7, 0x8f, 0x20, 0x78, 0x79, 0xcf, 0x9a, 0x66, 0x92, 0x5c,
+ 0x00, 0xfe, 0x1b, 0x51, 0x8a, 0x7e, 0x5d, 0x00, 0x3d, 0xe9, 0x82, 0x37,
+ 0x6d, 0xb3, 0x1d, 0x08, 0x00, 0x41, 0x10, 0x06, 0xa9, 0xd8, 0xcc, 0x09,
+ 0x1e, 0x06, 0x1b, 0x1e, 0x1c, 0xc6, 0x2e, 0x96, 0xe6, 0xf1, 0xe1, 0xa7,
+ 0xd8, 0xaf, 0xe6, 0x5c, 0x0f, 0x4f, 0xda, 0x9a, 0xaf, 0x88, 0x66, 0x11,
+ 0xce, 0x6a, 0x47, 0x03, 0x08, 0xdb, 0x08, 0x94, 0x33, 0x95, 0xde, 0x1d,
+ 0xb0, 0x2c, 0x4e, 0xbd, 0xbf, 0xc2, 0x17, 0x6a, 0x66, 0xb6, 0x59, 0xbe,
+ 0x8f, 0xcf, 0x6a, 0x81, 0xec, 0x0a, 0xf9, 0x32, 0x3c, 0xf7, 0x91, 0x77,
+ 0x3f, 0xb0, 0xb5, 0xd2, 0xd4, 0x70, 0x23, 0x25, 0xf3, 0xef, 0xf6, 0x36,
+ 0x1f, 0x59, 0x5c, 0x70, 0x19, 0x2b, 0xc8, 0x24, 0x0e, 0x0f, 0x3d, 0x99,
+ 0xf0, 0x39, 0x75, 0xf6, 0xa1, 0x17, 0xd2, 0xe7, 0x85, 0xac, 0x4f, 0xac,
+ 0xba, 0xc3, 0x8a, 0x04, 0x07, 0xc5, 0xaf, 0x5c, 0x98, 0xab, 0xf7, 0x25,
+ 0xaf, 0xdb, 0x79, 0x08, 0x2a, 0x77, 0x21, 0xea, 0xb9, 0x55, 0xf5, 0x71,
+ 0x75, 0xda, 0x06, 0x8e, 0x20, 0x35, 0x5f, 0x21, 0x88, 0xa4, 0x17, 0xc7,
+ 0x6a, 0xf0, 0xfd, 0x61, 0xd1, 0xff, 0x07, 0x47, 0x36, 0x02, 0xc0, 0x4a,
+ 0x9a, 0xdf, 0x09, 0xe3, 0x23, 0x36, 0xac, 0x42, 0x90, 0x5d, 0xe0, 0xdd,
+ 0xeb, 0x67, 0x1b, 0x90, 0xc2, 0x6c, 0xa0, 0xc7, 0x4e, 0x03, 0xb8, 0xf0,
+ 0x16, 0x59, 0xd7, 0x58, 0x43, 0x9c, 0x91, 0xc0, 0x48, 0x42, 0x70, 0x39,
+ 0x07, 0x97, 0xfb, 0x8f, 0x79, 0x25, 0x06, 0xd1, 0x6c, 0xf6, 0xf1, 0xc2,
+ 0xd5, 0x0b, 0x25, 0xd2, 0x1f, 0xe9, 0x4b, 0x84, 0x6c, 0xa3, 0xac, 0x7f,
+ 0xb4, 0xe1, 0x0f, 0xc1, 0xdb, 0xed, 0x73, 0x84, 0xf9, 0xc8, 0x6f, 0x30,
+ 0x9c, 0x40, 0x8a, 0x1e, 0x95, 0xe9, 0x04, 0x61, 0xe7, 0x39, 0xb9, 0x31,
+ 0xf8, 0x2d, 0x26, 0xe8, 0x04, 0x7d, 0x05, 0x51, 0xb0, 0x02, 0xa0, 0x5f,
+ 0x59, 0x0e, 0x93, 0x49, 0xa6, 0x75, 0x24, 0x80, 0x1e, 0xe4, 0x7c, 0xb0,
+ 0x37, 0x3f, 0xeb, 0x2e, 0x93, 0xb1, 0xd7, 0xc8, 0x49, 0x6b, 0x1d, 0xb3,
+ 0x4d, 0x88, 0x8e, 0x8a, 0xec, 0xbc, 0xc7, 0xf0, 0x40, 0x00, 0xa6, 0x01,
+ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0a,
+ 0x00, 0x09, 0x10, 0x68, 0x00, 0x1b, 0x72, 0xb0, 0x00, 0x7c, 0x51, 0xd3,
+ 0x15, 0x8c, 0x98, 0xa3, 0xb4, 0xd8, 0xbe, 0x10, 0xd7, 0xa4, 0x1b, 0xcc,
+ 0xf3, 0xd0, 0x21, 0x48, 0x77, 0x6a, 0x9e, 0x55, 0x15, 0xf0, 0xee, 0xb3,
+ 0x0d, 0x59, 0x6b, 0x3a, 0xff, 0xd2, 0x4f, 0xcd, 0xfc, 0x3d, 0xac, 0x97,
+ 0xb4, 0x47, 0xa7, 0xce, 0x3f, 0x2a, 0x73, 0x21, 0x19, 0xb9, 0x99, 0xfa,
+ 0x16, 0x7a, 0x3f, 0xba, 0x81, 0x0b, 0xf4, 0xee, 0x30, 0xdf, 0xca, 0x50,
+ 0x11, 0x9b, 0x67, 0xc5, 0x36, 0xe9, 0xd9, 0x2f, 0x00, 0x16, 0x8b, 0x12,
+ 0xa4, 0x77, 0x52, 0x35, 0x7f, 0x5c, 0x37, 0xf9, 0x31, 0x71, 0x42, 0x48,
+ 0x54, 0x31, 0x14, 0x58, 0x16, 0x95, 0x95, 0xea, 0x16, 0x64, 0x6a, 0xf2,
+ 0x1a, 0xe8, 0x2a, 0xe6, 0xb6, 0x97, 0xd0, 0xcb, 0x59, 0x76, 0x8d, 0x2d,
+ 0xf3, 0xa5, 0xf7, 0x3b, 0xec, 0x01, 0xf0, 0x3f, 0x87, 0x16, 0x27, 0x08,
+ 0x11, 0xf7, 0x72, 0x7e, 0x56, 0xe7, 0x41, 0xad, 0x12, 0xf7, 0x82, 0x3a,
+ 0xe9, 0x9b, 0x49, 0x75, 0x53, 0x62, 0x2f, 0xdb, 0x89, 0x0c, 0x24, 0xd2,
+ 0xb1, 0xc9, 0xec, 0x08, 0x5d, 0x71, 0x85, 0x38, 0x41, 0x6e, 0x6b, 0xef,
+ 0x29, 0x07, 0xcb, 0xb0, 0xbc, 0xe3, 0x96, 0x07, 0x16, 0x82, 0x71, 0x96,
+ 0x28, 0xae, 0xe9, 0x0a, 0x87, 0x8b, 0xae, 0x62, 0x06, 0x41, 0xa7, 0xa4,
+ 0x10, 0xc6, 0x89, 0xab, 0x60, 0xfd, 0xa0, 0x8a, 0x53, 0x1c, 0xa2, 0x06,
+ 0xc6, 0xcf, 0x21, 0x41, 0x26, 0xfb, 0xd3, 0x45, 0x14, 0x88, 0x90, 0x28,
+ 0xbf, 0x22, 0xd9, 0xea, 0x9a, 0x41, 0x8e, 0xe9, 0x64, 0xbc, 0x00, 0xfe,
+ 0x6f, 0xb0, 0x74, 0xb3, 0xed, 0xf3, 0x0c, 0x10, 0xe7, 0xcb, 0x56, 0xc9,
+ 0x95, 0xe1, 0x31, 0x6e, 0x53, 0x80, 0xcf, 0x94, 0x60, 0x04, 0xb0, 0xae,
+ 0x61, 0xe6, 0xb2, 0x4c, 0xab, 0x22, 0xc0, 0xf7, 0xb9, 0xae, 0xd4, 0x8f,
+ 0x73, 0x26, 0xb4, 0x78, 0x42, 0x73, 0xb6, 0x86, 0x03, 0x7d, 0x61, 0x1e,
+ 0x2d, 0x67, 0x76, 0xb1, 0x66, 0x5b, 0x69, 0xdf, 0xc0, 0x50, 0x4f, 0xf1,
+ 0xe5, 0xef, 0xc2, 0xad, 0x57, 0xf2, 0x2f, 0xcf, 0x32, 0x3f, 0x5d, 0x8d,
+ 0x78, 0xf0, 0x66, 0x73, 0xd0, 0xd7, 0x0a, 0x50, 0x20, 0x49, 0xa3, 0xf3,
+ 0x34, 0x12, 0xeb, 0x6b, 0xf5, 0xb0, 0x4a, 0x6c, 0xb5, 0xa0, 0x63, 0xc7,
+ 0xff, 0x23, 0x7d, 0xf5, 0xf7, 0x8e, 0x0d, 0xc1, 0x90, 0xc1, 0x2f, 0x92,
+ 0x3e, 0xca, 0x63, 0xd3, 0x08, 0x32, 0xbf, 0x14, 0x71, 0x4d, 0x60, 0x68,
+ 0x95, 0xf7, 0x7d, 0x46, 0x42, 0x71, 0xd2, 0x52, 0x4e, 0x73, 0x12, 0x1c,
+ 0xe5, 0xe4, 0x75, 0xb6, 0xd7, 0x8f, 0x06, 0xeb, 0x89, 0xff, 0xf2, 0x02,
+ 0x31, 0xba, 0xb8, 0x5c, 0xb9, 0xdd, 0xe0, 0x13, 0xb5, 0x7a, 0xa9, 0x43,
+ 0xd5, 0x7a, 0x12, 0x0d, 0x44, 0xca, 0x6e, 0xa0, 0xf8, 0x77, 0xe1, 0xa8,
+ 0xfc, 0xa5, 0x4c, 0xd6, 0xa2, 0x32, 0xfd, 0x9b, 0x5b, 0xec, 0x02, 0x8d,
+ 0xab, 0xe0, 0x22, 0x58, 0x76, 0x0e, 0xb6, 0x20, 0xf2, 0x4a, 0x84, 0x00,
+ 0xaf, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x71, 0x0c, 0x00, 0x06, 0x10, 0x5c, 0x00, 0x18, 0x00, 0x8d, 0x01, 0x78,
+ 0x9e, 0xb1, 0x92, 0xbb, 0xa1, 0xd1, 0x9a, 0xf6, 0xcd, 0x6c, 0x2b, 0xfc,
+ 0xc8, 0x9e, 0xff, 0xff, 0x51, 0x1c, 0x8b, 0x83, 0x8a, 0xb3, 0xf4, 0xe8,
+ 0x0c, 0xe7, 0x45, 0x93, 0x28, 0xa8, 0xc1, 0xc3, 0x43, 0x07, 0xb1, 0x75,
+ 0x10, 0x35, 0x3d, 0x32, 0x73, 0xe3, 0x1c, 0xf2, 0x90, 0x0b, 0x64, 0xf7,
+ 0x89, 0x88, 0xfc, 0xb8, 0x41, 0xc0, 0x19, 0x5f, 0x02, 0x69, 0x32, 0x27,
+ 0xed, 0x78, 0x3c, 0x7f, 0x57, 0x2e, 0xb7, 0x5e, 0x24, 0x64, 0x39, 0xa1,
+ 0x5e, 0x13, 0xd2, 0xc2, 0xec, 0xf3, 0xb6, 0x87, 0xd0, 0xbc, 0x1c, 0xc5,
+ 0x2a, 0x6c, 0x44, 0x80, 0x81, 0x00, 0x62, 0xe6, 0x57, 0xfb, 0x14, 0xfb,
+ 0xba, 0x04, 0xbc, 0xa5, 0x1f, 0x67, 0x6c, 0x26, 0x46, 0x6a, 0x7d, 0xd0,
+ 0xe8, 0x5d, 0x4d, 0x81, 0xba, 0x86, 0xfe, 0x3c, 0x37, 0x39, 0xe4, 0x20,
+ 0xfe, 0x54, 0xad, 0x29, 0x1b, 0x39, 0xb8, 0x9c, 0xec, 0x60, 0x6e, 0x95,
+ 0x55, 0xa1, 0x97, 0xb5, 0xa5, 0xa2, 0x4e, 0xa5, 0xcc, 0x4a, 0x08, 0xdf,
+ 0x10, 0x76, 0x4d, 0x6d, 0xeb, 0x3a, 0x95, 0x28, 0xa8, 0x5b, 0x75, 0xb1,
+ 0x5c, 0x27, 0xf3, 0xb3, 0x4e, 0x2c, 0x8f, 0x82, 0x67, 0xff, 0x68, 0xb0,
+ 0xab, 0x3a, 0x62, 0x49, 0x29, 0xfb, 0x65, 0x75, 0x95, 0x8a, 0x9e, 0x97,
+ 0xba, 0x19, 0x17, 0x35, 0x47, 0x5a, 0xa6, 0x48, 0xd1, 0x24, 0xf4, 0x20,
+ 0x10, 0x54, 0x44, 0xe4, 0x07, 0xb5, 0xeb, 0x0a, 0xce, 0xce, 0x07, 0x21,
+ 0xb4, 0x9f, 0xfa, 0x54, 0x12, 0xb0, 0x47, 0x0d, 0xda, 0x7c, 0xcb, 0x2a,
+ 0x83, 0x97, 0x6b, 0xe8, 0x75, 0xd8, 0x89, 0x3e, 0x47, 0x70, 0xf1, 0x4a,
+ 0xae, 0x9b, 0xa1, 0x40, 0xa5, 0x4f, 0xef, 0xab, 0x0e, 0x28, 0x69, 0x23,
+ 0xdb, 0x80, 0x86, 0x31, 0x8c, 0x35, 0x99, 0xaf, 0xd5, 0x53, 0xd6, 0xb7,
+ 0xb6, 0xea, 0x7b, 0xcd, 0xcd, 0xf7, 0x44, 0xe2, 0x83, 0xab, 0x92, 0x6f,
+ 0x96, 0x9f, 0xa9, 0x80, 0x19, 0x05, 0xfb, 0xf7, 0xd4, 0x80, 0x13, 0x69,
+ 0x0e, 0xce, 0x4b, 0x6a, 0x75, 0xb6, 0xd0, 0x86, 0x9e, 0x49, 0xd8, 0x00,
+ 0x5b, 0x10, 0xb5, 0x7c, 0xb6, 0x84, 0x5f, 0x32, 0xbb, 0x73, 0xea, 0xa6,
+ 0x92, 0xce, 0x98, 0xb4, 0x89, 0x7d, 0x30, 0x9e, 0xc4, 0x16, 0x82, 0x99,
+ 0xc3, 0x4d, 0x09, 0x98, 0x0d, 0xe7, 0x0b, 0x8e, 0xcb, 0xc8, 0x22, 0x06,
+ 0x13, 0x71, 0xe9, 0x43, 0x2a, 0x3a, 0x88, 0x57, 0xe4, 0x5d, 0x70, 0xca,
+ 0x8a, 0xd7, 0x70, 0x9d, 0xcf, 0x1b, 0xf2, 0xf7, 0x9d, 0x11, 0xa0, 0x7b,
+ 0xfb, 0x9e, 0xf1, 0x94, 0x23, 0xf0, 0x7d, 0x05, 0x4d, 0x58, 0x96, 0x9d,
+ 0x9a, 0x01, 0xdd, 0x52, 0xb8, 0x88, 0xf0, 0xb1, 0x30, 0x8d, 0x4a, 0x4a,
+ 0x97, 0x33, 0xe8, 0xce, 0xa7, 0x21, 0xae, 0x99, 0xb0, 0x64, 0xec, 0xa9,
+ 0x83, 0xbb, 0x36, 0x67, 0xc5, 0xa5, 0x6e, 0xb2, 0xf5, 0x48, 0x8b, 0xed,
+ 0x48, 0xfd, 0x4b, 0xbb, 0x1b, 0x6e, 0xd5, 0x00, 0x54, 0xfe, 0xaf, 0xcd,
+ 0xc5, 0x79, 0x28, 0x08, 0x6a, 0x45, 0xbe, 0x38, 0x60, 0x00, 0x00, 0x34,
+ 0x02, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1,
+ 0x0b, 0x00, 0x05, 0x10, 0x54, 0x00, 0x18, 0x01, 0x5c, 0x41, 0x2f, 0x2d,
+ 0x44, 0x31, 0xfd, 0x05, 0xc2, 0x88, 0x43, 0x06, 0x89, 0x48, 0xaa, 0xc1,
+ 0x15, 0x79, 0x6e, 0xbd, 0x23, 0x97, 0x8c, 0xe3, 0x15, 0xa8, 0x5e, 0x52,
+ 0x21, 0x56, 0x8f, 0x64, 0x21, 0x60, 0x85, 0xd6, 0xc3, 0x92, 0xef, 0x3e,
+ 0x04, 0x54, 0x7a, 0xf6, 0xd6, 0x45, 0xcf, 0xff, 0x00, 0x87, 0x37, 0xfd,
+ 0xa5, 0x51, 0x4a, 0x68, 0x0b, 0x88, 0x41, 0x80, 0x31, 0x59, 0x01, 0x5e,
+ 0x2d, 0xfc, 0x20, 0x03, 0x01, 0x81, 0xff, 0xfa, 0xd9, 0x33, 0x2c, 0x30,
+ 0xdc, 0x70, 0xe2, 0x2c, 0x95, 0x94, 0xac, 0xa5, 0x4a, 0x2b, 0x9d, 0x80,
+ 0x08, 0xe8, 0x1d, 0xbe, 0xe3, 0x20, 0xa7, 0x72, 0x05, 0x49, 0x34, 0x12,
+ 0x1d, 0xed, 0x05, 0x67, 0x18, 0x5e, 0x66, 0x85, 0x7f, 0x43, 0xb2, 0xe7,
+ 0xc1, 0x99, 0xf1, 0x73, 0xd8, 0x60, 0x1f, 0xa6, 0x33, 0x6e, 0x43, 0xd5,
+ 0xfa, 0x18, 0xaf, 0x76, 0xdf, 0x4b, 0x05, 0x9b, 0xa3, 0x18, 0xdb, 0x35,
+ 0x71, 0x18, 0xab, 0x3c, 0x71, 0x41, 0x36, 0xf9, 0x7f, 0x24, 0x02, 0xcd,
+ 0x10, 0x03, 0x58, 0x7b, 0xa7, 0x22, 0xd8, 0x7a, 0xa3, 0x7a, 0xd1, 0x13,
+ 0x80, 0x96, 0xc2, 0x46, 0x3c, 0xf4, 0x80, 0x8e, 0xe8, 0x77, 0x5e, 0x6e,
+ 0xae, 0x9f, 0xb1, 0xa8, 0x80, 0x28, 0x27, 0x54, 0x65, 0x41, 0xb3, 0x84,
+ 0xa2, 0xcd, 0xb4, 0x8f, 0x88, 0x94, 0xfd, 0xc3, 0x9f, 0x3f, 0xbb, 0xb0,
+ 0x71, 0x87, 0xe9, 0x45, 0xd6, 0xb4, 0x37, 0xc3, 0x8b, 0xd3, 0x9c, 0x13,
+ 0xeb, 0xd8, 0x7c, 0xba, 0xe4, 0x73, 0x6f, 0x20, 0xaf, 0xf2, 0xad, 0x4a,
+ 0x0d, 0x24, 0xa9, 0x5d, 0x6f, 0xe0, 0xec, 0x08, 0xe3, 0x6c, 0xc9, 0xee,
+ 0x51, 0x76, 0x52, 0xeb, 0xca, 0x93, 0xba, 0x48, 0x12, 0x01, 0x5c, 0x6c,
+ 0x07, 0xe2, 0xe7, 0xe3, 0xcf, 0xc9, 0xcc, 0xbd, 0x2b, 0xfb, 0x49, 0x51,
+ 0xf4, 0x02, 0x0d, 0x9a, 0x37, 0x6f, 0xac, 0x87, 0x85, 0x0a, 0x8b, 0x88,
+ 0xe9, 0xbe, 0x02, 0xbc, 0xcf, 0x14, 0x21, 0x6b, 0x10, 0x32, 0x16, 0xcb,
+ 0xb8, 0x25, 0xf6, 0x3d, 0x58, 0xb7, 0x88, 0x7e, 0x12, 0xdf, 0x76, 0x01,
+ 0xda, 0x1f, 0x51, 0xf6, 0xac, 0x1e, 0x01, 0x59, 0x58, 0x9e, 0xcd, 0x59,
+ 0x33, 0xf8, 0xf6, 0x6d, 0xd2, 0xbc, 0x2b, 0x35, 0x19, 0x1c, 0x57, 0xeb,
+ 0xab, 0x58, 0xdb, 0xe6, 0x44, 0x39, 0x39, 0x43, 0xdd, 0x3e, 0x13, 0x5f,
+ 0x75, 0x94, 0x3a, 0xb2, 0x09, 0xdf, 0x13, 0x31, 0x31, 0xda, 0xeb, 0x97,
+ 0xc6, 0x8b, 0x65, 0x3e, 0x7f, 0x95, 0x7e, 0xcb, 0xfa, 0x37, 0xc7, 0x46,
+ 0x5e, 0xb6, 0xf1, 0xcc, 0x8d, 0xaa, 0x22, 0x18, 0xe0, 0x30, 0x3e, 0xc1,
+ 0x64, 0x09, 0xce, 0x99, 0x1b, 0x96, 0xb8, 0x27, 0xa7, 0x40, 0x48, 0xf8,
+ 0x06, 0x9c, 0x58, 0xb0, 0x19, 0x1b, 0xda, 0x9b, 0xc6, 0x3f, 0xd3, 0x4a,
+ 0x84, 0x81, 0xb0, 0xb8, 0x0d, 0x84, 0xb5, 0xc9, 0x8f, 0x45, 0xe1, 0x79,
+ 0x71, 0x13, 0xcc, 0x2f, 0x08, 0x39, 0x94, 0x3a, 0xb3, 0x67, 0x4d, 0xfc,
+ 0x56, 0x90, 0x80, 0x47, 0x37, 0x41, 0x02, 0xcb, 0x2a, 0x01, 0xe5, 0xd6,
+ 0xa2, 0xbe, 0x0f, 0x00, 0xa4, 0xb4, 0xae, 0x7f, 0xed, 0x3c, 0xd6, 0x40,
+ 0x18, 0x1a, 0x6a, 0x74, 0x30, 0xb2, 0x16, 0xbf, 0x44, 0xdb, 0x46, 0x10,
+ 0x87, 0xad, 0x4f, 0x6d, 0x1f, 0x9f, 0xc6, 0x40, 0x63, 0xdf, 0xbd, 0x95,
+ 0x19, 0x35, 0x46, 0x95, 0x3b, 0x91, 0x91, 0x78, 0x2c, 0xc5, 0xa8, 0xc6,
+ 0xff, 0xc9, 0xcd, 0xc6, 0xef, 0x04, 0xdf, 0x71, 0x8d, 0x9d, 0x0b, 0x00,
+ 0x6f, 0xd9, 0x51, 0x50, 0xb9, 0xda, 0x87, 0x83, 0x43, 0xdb, 0x34, 0x6c,
+ 0x38, 0x02, 0xd5, 0xb7, 0x81, 0x6c, 0xc7, 0xd3, 0xf8, 0x0b, 0x9b, 0x6c,
+ 0x3f, 0x6c, 0xb0, 0x74, 0x48, 0x1e, 0x59, 0x44, 0xd3, 0xd3, 0x37, 0x5e,
+ 0x07, 0x00, 0xfe, 0x08, 0x92, 0xb5, 0xd3, 0xa0, 0xe1, 0x84, 0xaf, 0x2f,
+ 0x8c, 0xb6, 0x74, 0xda, 0xbd, 0xe9, 0x15, 0x1b, 0xb9, 0x1a, 0x4b, 0xa6,
+ 0xb4, 0x16, 0xf3, 0xee, 0xa9, 0x57, 0xb1, 0x82, 0x63, 0xd0, 0x00, 0x1a,
+ 0x06, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1,
+ 0x13, 0x00, 0x06, 0x10, 0x24, 0x00, 0x1c, 0xb1, 0xe5, 0x3f, 0xca, 0x78,
+ 0xdb, 0xf4, 0x8a, 0xfe, 0x75, 0x45, 0x3c, 0xdd, 0x91, 0xff, 0x69, 0xff,
+ 0x8f, 0x8f, 0xef, 0x4d, 0x2b, 0x44, 0xad, 0x34, 0x97, 0x9e, 0xc3, 0x4e,
+ 0xc1, 0x19, 0xdf, 0x44, 0x47, 0x0a, 0x0d, 0xfb, 0x5c, 0x8e, 0xf1, 0x95,
+ 0xe6, 0xc2, 0xcd, 0x05, 0x30, 0xf1, 0xca, 0xf1, 0xe2, 0x69, 0x67, 0xe1,
+ 0xa9, 0x50, 0x4c, 0x6a, 0x7b, 0xe5, 0x74, 0x0c, 0x1e, 0xcc, 0x24, 0x7e,
+ 0x16, 0x51, 0x9e, 0x61, 0x99, 0xc5, 0x18, 0x6e, 0x76, 0x10, 0x4c, 0x34,
+ 0xde, 0x60, 0x64, 0xa4, 0xb5, 0xe7, 0x80, 0xc8, 0xe8, 0x69, 0x96, 0xf9,
+ 0x39, 0xd4, 0x54, 0x9a, 0x1e, 0x0d, 0x82, 0x6b, 0x05, 0xe1, 0x2a, 0x2a,
+ 0xaf, 0x1f, 0xda, 0x8c, 0x00, 0x0c, 0xc6, 0xa8, 0x38, 0x1d, 0xe1, 0x90,
+ 0xe1, 0xed, 0x8f, 0x6f, 0x7c, 0xef, 0x12, 0xdf, 0x83, 0x59, 0x93, 0xb5,
+ 0x29, 0x58, 0xc0, 0x12, 0xcc, 0x11, 0x06, 0x6c, 0x3d, 0xc0, 0x00, 0x7a,
+ 0x3e, 0x6c, 0x2e, 0xae, 0xcf, 0xf2, 0x2a, 0xe6, 0x26, 0xc1, 0xc2, 0xc2,
+ 0xf7, 0x99, 0x70, 0xe0, 0x63, 0xde, 0xaf, 0xed, 0x37, 0x3e, 0x0c, 0xab,
+ 0xbf, 0xb7, 0x19, 0x70, 0x2b, 0xd8, 0x95, 0x33, 0x0c, 0xce, 0x92, 0x08,
+ 0x21, 0x03, 0x43, 0x34, 0x29, 0x1a, 0x91, 0xfa, 0x0b, 0xe0, 0xbb, 0xa2,
+ 0x09, 0x5c, 0xca, 0x2a, 0xa8, 0x4a, 0x8e, 0xf4, 0xdc, 0x80, 0xf3, 0xde,
+ 0x52, 0xf0, 0xbe, 0x43, 0x0f, 0xc5, 0x1f, 0x49, 0x77, 0x2b, 0x5d, 0x33,
+ 0xa2, 0x18, 0x12, 0xe9, 0xb2, 0xfd, 0x94, 0x11, 0x26, 0x0b, 0x2f, 0x5b,
+ 0x7e, 0x93, 0x7e, 0x52, 0x6c, 0x5f, 0x85, 0xbb, 0xe9, 0x28, 0xae, 0xa6,
+ 0xc0, 0x96, 0xda, 0x8d, 0x30, 0x17, 0xa9, 0x9d, 0xed, 0xaf, 0x80, 0xf6,
+ 0x78, 0x19, 0x65, 0x10, 0x15, 0x7b, 0x69, 0x73, 0xf3, 0xaf, 0x8f, 0x65,
+ 0x8d, 0x9b, 0x0a, 0xe8, 0x91, 0xb4, 0x38, 0x77, 0xb4, 0xaf, 0x29, 0x31,
+ 0x97, 0xc8, 0x9d, 0x21, 0xba, 0xc4, 0x2e, 0xcb, 0x48, 0x24, 0xcb, 0xc0,
+ 0x47, 0x6e, 0x84, 0xd8, 0x58, 0x62, 0x2c, 0x8b, 0x07, 0xd1, 0xb5, 0x3e,
+ 0x12, 0x10, 0xe1, 0xf0, 0x34, 0xcb, 0x30, 0x07, 0x72, 0x3e, 0xd4, 0x65,
+ 0xcc, 0x23, 0x03, 0xcc, 0xd0, 0xd0, 0xe5, 0xde, 0x53, 0xc7, 0x90, 0x3d,
+ 0x36, 0x69, 0x51, 0x54, 0x53, 0x16, 0xd1, 0x6d, 0xf5, 0xe1, 0xb3, 0x1a,
+ 0x63, 0x98, 0x05, 0x0b, 0xf8, 0xd1, 0xf2, 0xfb, 0x5b, 0x31, 0x58, 0xbb,
+ 0xc7, 0x68, 0xc9, 0xac, 0xfb, 0xdb, 0xbb, 0xdc, 0xdd, 0x82, 0xf8, 0xac,
+ 0xa4, 0x44, 0x3b, 0xb4, 0x72, 0x2b, 0xed, 0x5e, 0x19, 0x4b, 0x02, 0xd8,
+ 0xe3, 0x12, 0x1b, 0x29, 0x38, 0x58, 0x1e, 0xd7, 0xeb, 0xd5, 0x1f, 0x5b,
+ 0xc8, 0x26, 0x0c, 0x73, 0xc2, 0x5e, 0x18, 0x1b, 0x50, 0x74, 0x05, 0xd9,
+ 0x7b, 0xba, 0x07, 0x2e, 0x0d, 0xaf, 0xb5, 0xdf, 0x22, 0xb5, 0x1a, 0x41,
+ 0x4d, 0x49, 0xf4, 0x8b, 0xe0, 0x17, 0x56, 0x9d, 0x14, 0x63, 0xef, 0x70,
+ 0xaf, 0xf9, 0xc8, 0x11, 0xd0, 0x41, 0x47, 0x43, 0x69, 0xa9, 0x84, 0x89,
+ 0x4a, 0xd4, 0x6f, 0x07, 0x49, 0xd7, 0x26, 0x19, 0x7a, 0x35, 0x30, 0x6a,
+ 0xf8, 0x55, 0x06, 0x1e, 0x43, 0xe5, 0xcd, 0xec, 0xd3, 0x4e, 0xe5, 0x63,
+ 0xbd, 0x21, 0x72, 0xe3, 0xd8, 0x43, 0x6f, 0xf7, 0x49, 0x32, 0xbe, 0x36,
+ 0xea, 0x62, 0x8b, 0x7a, 0xd8, 0x83, 0x22, 0x8c, 0xcf, 0x9b, 0x5b, 0x2c,
+ 0x04, 0xea, 0x24, 0xc6, 0xbd, 0xcc, 0xde, 0x86, 0xd0, 0x82, 0xbc, 0xac,
+ 0x0b, 0xea, 0xbd, 0x34, 0x29, 0x31, 0x4b, 0xf6, 0xdd, 0x11, 0x61, 0xf2,
+ 0x94, 0x42, 0xf4, 0x7e, 0x88, 0x39, 0xbd, 0x9e, 0x0b, 0x29, 0x45, 0x9d,
+ 0x05, 0xbc, 0x74, 0x91, 0x2f, 0x50, 0x8b, 0xa7, 0xc1, 0x92, 0x57, 0x20,
+ 0x69, 0x29, 0x7f, 0xd3, 0xd4, 0x81, 0x8b, 0x4f, 0x76, 0xab, 0x79, 0x41,
+ 0xde, 0x5e, 0x7c, 0xd6, 0xca, 0xed, 0xd9, 0xa6, 0x81, 0x21, 0x42, 0xff,
+ 0x7e, 0x88, 0x2c, 0x29, 0x26, 0xf5, 0xe7, 0x7d, 0x2f, 0x5c, 0xd3, 0x81,
+ 0xf1, 0x0d, 0x66, 0x66, 0x4d, 0xc4, 0x04, 0x37, 0xe9, 0x88, 0x55, 0x6d,
+ 0xba, 0x87, 0xf2, 0xc2, 0xd5, 0x47, 0x9e, 0x11, 0x97, 0x0b, 0x9a, 0xb0,
+ 0x4d, 0xfc, 0xd5, 0x5f, 0xdc, 0xb4, 0xc0, 0xc9, 0x6c, 0x22, 0xf7, 0xd3,
+ 0xef, 0x22, 0x08, 0x91, 0x92, 0x7b, 0xb6, 0x72, 0x78, 0xda, 0xf2, 0x9f,
+ 0x34, 0xb0, 0x60, 0xe7, 0x28, 0xc6, 0xd5, 0xf5, 0x77, 0xf4, 0xf9, 0x64,
+ 0x3f, 0x66, 0x92, 0x0b, 0x64, 0xdc, 0xb8, 0x54, 0x0e, 0x1f, 0x8d, 0xf0,
+ 0x00, 0xf6, 0x68, 0xe9, 0x66, 0x45, 0x37, 0xac, 0x38, 0xb5, 0xdf, 0x17,
+ 0x9f, 0x37, 0x49, 0x09, 0x4c, 0xbe, 0x3f, 0xd8, 0x36, 0xa3, 0xac, 0x47,
+ 0x7d, 0x0c, 0xb5, 0x02, 0x29, 0xbc, 0xc4, 0x6d, 0xd0, 0xe6, 0x03, 0xd5,
+ 0x28, 0x85, 0x12, 0xee, 0xc9, 0xe3, 0x60, 0x77, 0x39, 0xbc, 0x32, 0xca,
+ 0xfe, 0x79, 0xa7, 0x1e, 0xe1, 0xb2, 0xac, 0x4f, 0x61, 0x8d, 0xca, 0x13,
+ 0x8a, 0xe9, 0x97, 0x21, 0xb4, 0x2c, 0xe1, 0xbc, 0xc1, 0x14, 0x56, 0x3a,
+ 0x74, 0x34, 0xfd, 0x8b, 0x74, 0x0e, 0x0a, 0xde, 0xa8, 0xe0, 0x2a, 0xc6,
+ 0x95, 0xbf, 0xbc, 0xd1, 0xb5, 0xd0, 0x33, 0xb9, 0xc0, 0xa5, 0xb1, 0x23,
+ 0xec, 0xe4, 0x08, 0x7e, 0xf2, 0x2e, 0x01, 0xe1, 0x84, 0xf1, 0xb2, 0xb5,
+ 0xd9, 0xb9, 0x16, 0x0d, 0xb4, 0x4d, 0xc4, 0x7e, 0xf3, 0xc1, 0x2c, 0x76,
+ 0x38, 0xee, 0xfd, 0xc2, 0xa4, 0x31, 0xdb, 0x28, 0xda, 0x95, 0xd5, 0xec,
+ 0x61, 0xe6, 0x5d, 0xda, 0x77, 0x20, 0x29, 0x62, 0xd9, 0xaf, 0x42, 0x4a,
+ 0x84, 0x16, 0x1b, 0xca, 0xce, 0x47, 0xd7, 0x8f, 0x6a, 0x48, 0x6a, 0xbf,
+ 0x08, 0x48, 0x5a, 0x6f, 0xa9, 0x5f, 0x56, 0x30, 0x97, 0x8d, 0x26, 0xb2,
+ 0xea, 0x76, 0xc8, 0x2f, 0xe3, 0xf6, 0xe7, 0x84, 0xf8, 0x16, 0x4c, 0x60,
+ 0x52, 0x58, 0x18, 0x03, 0x72, 0xbc, 0x1c, 0x4c, 0xc6, 0x90, 0xbc, 0x81,
+ 0x95, 0xe7, 0x90, 0x44, 0x76, 0x54, 0x9b, 0x3c, 0xf6, 0x42, 0x82, 0x89,
+ 0xa0, 0x27, 0x26, 0xab, 0x98, 0x1f, 0x48, 0x09, 0xe5, 0xa3, 0xc5, 0xe6,
+ 0x14, 0xc2, 0x29, 0xe1, 0x0c, 0x64, 0x19, 0x2d, 0x2c, 0x4f, 0xfc, 0x97,
+ 0xaf, 0x1e, 0x10, 0x42, 0x25, 0x4e, 0xe6, 0x39, 0x24, 0xe3, 0x3d, 0x49,
+ 0x48, 0x6c, 0xc6, 0x17, 0x84, 0x24, 0xc0, 0x32, 0x79, 0x91, 0xd1, 0x3c,
+ 0x14, 0x39, 0x7f, 0xcb, 0x36, 0x9e, 0xc0, 0xe6, 0xa2, 0xfa, 0x48, 0xa3,
+ 0x3b, 0xad, 0x8c, 0x75, 0x78, 0xdd, 0xd5, 0x93, 0x87, 0xae, 0xf0, 0x55,
+ 0xb7, 0x3f, 0xc1, 0x96, 0x18, 0xfc, 0xb9, 0x1b, 0x27, 0x39, 0x6c, 0x79,
+ 0x4c, 0x60, 0xdb, 0x10, 0xd0, 0xed, 0xb7, 0x77, 0x9c, 0x83, 0x55, 0xd5,
+ 0x78, 0x52, 0xfe, 0x90, 0x61, 0xe0, 0x5e, 0x81, 0x19, 0xd6, 0xeb, 0x16,
+ 0xcd, 0x1b, 0x7b, 0x7b, 0x7c, 0x46, 0x13, 0x35, 0xb4, 0x9f, 0x77, 0x3f,
+ 0xa0, 0x80, 0x7d, 0x96, 0x64, 0x28, 0x8b, 0x31, 0x9a, 0x09, 0xe9, 0x5e,
+ 0x4b, 0x0f, 0x34, 0x3c, 0x2f, 0x05, 0xcb, 0xc9, 0x05, 0xc8, 0xa9, 0x4d,
+ 0x8b, 0x56, 0x14, 0x29, 0xff, 0x1c, 0xe1, 0x04, 0x2b, 0x59, 0xc3, 0xb9,
+ 0x20, 0x5c, 0x21, 0xeb, 0xa2, 0x64, 0xeb, 0x5b, 0x39, 0x0f, 0x80, 0xc4,
+ 0x75, 0x6d, 0x5f, 0xb0, 0xf3, 0xe7, 0xbf, 0x44, 0x0d, 0x8c, 0x5b, 0xcb,
+ 0xff, 0xe6, 0x08, 0xb2, 0x33, 0x9c, 0x8b, 0xee, 0xd3, 0x90, 0x93, 0x0b,
+ 0x66, 0xc8, 0x75, 0x37, 0xfc, 0xc2, 0x11, 0x20, 0x0b, 0x5e, 0x42, 0xd7,
+ 0x6a, 0xc0, 0x61, 0xf0, 0xfa, 0x47, 0x81, 0x49, 0xa1, 0x6a, 0x9b, 0xda,
+ 0xef, 0x4a, 0x8c, 0x4a, 0x72, 0x86, 0x0d, 0xa0, 0x65, 0x6b, 0x59, 0x76,
+ 0x79, 0xfb, 0xec, 0x6b, 0x2c, 0x86, 0xe6, 0x69, 0xe4, 0x69, 0x28, 0x24,
+ 0x53, 0x70, 0xd0, 0x76, 0x99, 0x39, 0x7d, 0xde, 0x77, 0xd9, 0x40, 0x91,
+ 0xac, 0xcc, 0x62, 0xd2, 0x43, 0xca, 0xc1, 0xf7, 0x5f, 0x7f, 0xc4, 0x3a,
+ 0x36, 0x90, 0x7e, 0xed, 0x43, 0x76, 0x1b, 0xfe, 0x56, 0x2c, 0xcf, 0x9f,
+ 0x57, 0xd7, 0xe6, 0x6e, 0x49, 0x45, 0x9e, 0x3c, 0xac, 0xdb, 0xc8, 0xbe,
+ 0x59, 0x3a, 0xbe, 0x8f, 0x08, 0xf2, 0xfd, 0x5e, 0x58, 0x57, 0x18, 0x4d,
+ 0x61, 0x71, 0x72, 0x57, 0x05, 0x7c, 0xcd, 0x0c, 0x59, 0xa1, 0x82, 0xaa,
+ 0xae, 0xce, 0x2f, 0x81, 0x29, 0x4d, 0x8b, 0xac, 0xb8, 0x23, 0x3b, 0x6c,
+ 0x43, 0xf4, 0xe4, 0x98, 0xc0, 0xc6, 0xe8, 0xf7, 0x10, 0x18, 0x28, 0x22,
+ 0x17, 0xd5, 0xce, 0x4e, 0xa3, 0x20, 0x35, 0xe1, 0x75, 0x2b, 0x97, 0xf9,
+ 0xed, 0x4c, 0xfc, 0x46, 0x40, 0x7e, 0x88, 0x63, 0xa5, 0x61, 0x02, 0x61,
+ 0xeb, 0x14, 0x90, 0x05, 0x4e, 0xeb, 0x50, 0x3c, 0x68, 0x3b, 0x41, 0x06,
+ 0x77, 0x41, 0xe4, 0xc6, 0xbe, 0x23, 0x02, 0x11, 0xb0, 0x26, 0x1e, 0x54,
+ 0x9e, 0xe6, 0x79, 0x0f, 0x18, 0x87, 0xa1, 0x3b, 0x07, 0x59, 0x08, 0xcc,
+ 0x05, 0x13, 0xc1, 0x4c, 0xd4, 0x0c, 0xdb, 0x97, 0xd2, 0xea, 0xfd, 0xd2,
+ 0x94, 0x7a, 0xba, 0x05, 0x9b, 0xd6, 0x2c, 0x8b, 0x40, 0x48, 0x53, 0x37,
+ 0x40, 0x48, 0xa6, 0x02, 0xaa, 0xf5, 0xbf, 0xa8, 0xc0, 0xa9, 0xeb, 0x2c,
+ 0x28, 0x38, 0xae, 0xf9, 0x86, 0x56, 0xe0, 0x00, 0xb3, 0x77, 0x21, 0xba,
+ 0x51, 0x9a, 0x11, 0xe9, 0xa8, 0x1a, 0x14, 0xbd, 0x2a, 0x8f, 0xc5, 0xb5,
+ 0x3a, 0x9a, 0xcf, 0x9f, 0x54, 0x91, 0x27, 0xb9, 0xde, 0x21, 0xd7, 0x9d,
+ 0x41, 0xa8, 0x11, 0x73, 0x47, 0xd1, 0x12, 0xec, 0xa8, 0xb3, 0x43, 0x62,
+ 0x01, 0xe8, 0xeb, 0xf5, 0x8c, 0x3d, 0x88, 0xf4, 0xde, 0xd5, 0x0d, 0x54,
+ 0xfd, 0xa0, 0x8c, 0x4b, 0xde, 0xc5, 0x5e, 0x23, 0x5c, 0x6a, 0x0d, 0x58,
+ 0x47, 0x93, 0x78, 0x55, 0x9d, 0xe0, 0xa8, 0x81, 0x4e, 0xbe, 0xf8, 0x64,
+ 0xf9, 0xaf, 0x39, 0x2f, 0x2c, 0x95, 0xfc, 0x48, 0xf4, 0x70, 0x1a, 0x90,
+ 0xe9, 0x17, 0xad, 0x15, 0x63, 0x04, 0x5c, 0x34, 0x99, 0xdb, 0xc2, 0xa5,
+ 0x01, 0xad, 0x79, 0xe6, 0x91, 0x5d, 0x6d, 0x05, 0x8f, 0xe2, 0xca, 0x34,
+ 0xff, 0xe0, 0x14, 0x6b, 0xa3, 0x5a, 0xb7, 0xfd, 0x27, 0x70, 0x53, 0x6b,
+ 0xac, 0x7a, 0xff, 0x6d, 0x82, 0x2a, 0x18, 0x7f, 0x50, 0xff, 0x48, 0x95,
+ 0xd3, 0xe6, 0xcc, 0x17, 0x79, 0xea, 0x43, 0x51, 0x82, 0xb3, 0xb5, 0xd7,
+ 0xeb, 0x02, 0x5d, 0x81, 0x77, 0xbe, 0x3d, 0xf2, 0x60, 0x77, 0x87, 0xdf,
+ 0xe8, 0xf2, 0x4b, 0x12, 0xab, 0x6c, 0x1d, 0xbe, 0x0f, 0xb1, 0x6b, 0x20,
+ 0x3c, 0x4b, 0xa3, 0xd7, 0x52, 0x0e, 0xa5, 0xb8, 0xc6, 0xe7, 0x08, 0x41,
+ 0xf5, 0x86, 0xbc, 0x82, 0xaf, 0xa6, 0x66, 0x3e, 0x89, 0xe1, 0xfd, 0x75,
+ 0xae, 0xdd, 0x80, 0x57, 0x17, 0xa2, 0xa7, 0xd9, 0x2d, 0x3c, 0x78, 0x70,
+ 0xd3, 0x9e, 0x84, 0xe6, 0xd2, 0xdd, 0xfd, 0x79, 0x56, 0xc1, 0xae, 0xc9,
+ 0x7e, 0xba, 0x90, 0x91, 0xba, 0x6b, 0x2b, 0x54, 0xfe, 0xf0, 0xaa, 0xad,
+ 0xce, 0x8a, 0x96, 0x47, 0x95, 0xe6, 0x34, 0x9f, 0x37, 0xd4, 0xc7, 0x6b,
+ 0xca, 0xe2, 0x8d, 0x8e, 0xf3, 0xad, 0x7b, 0x1e, 0x04, 0x67, 0x1b, 0x35,
+ 0x28, 0x8e, 0x5f, 0x71, 0x67, 0xdc, 0x61, 0xe7, 0xc0, 0x4b, 0xbd, 0x23,
+ 0xa0, 0x38, 0x67, 0xa3, 0x00, 0x19, 0x43, 0x3d, 0x18, 0x00, 0xcc, 0x4e,
+ 0x00, 0x72, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x11, 0x0c, 0x00, 0x07, 0x10, 0x5c, 0x00, 0x18, 0x00, 0x19, 0x18,
+ 0x47, 0xcf, 0xe8, 0x41, 0x1f, 0xf8, 0x15, 0xff, 0xe7, 0x33, 0xe2, 0xfe,
+ 0x50, 0xf3, 0x75, 0xa5, 0x73, 0x43, 0xc2, 0xa1, 0x6a, 0x65, 0x24, 0x00,
+ 0xfd, 0xd9, 0xca, 0x3a, 0x08, 0xab, 0x1f, 0xe2, 0x46, 0xce, 0x1d, 0x14,
+ 0x10, 0xb7, 0xd4, 0xbb, 0x64, 0xb5, 0xc4, 0x95, 0x25, 0x0c, 0xfc, 0xa0,
+ 0x1f, 0x33, 0xe9, 0x69, 0xce, 0xc6, 0x6d, 0x16, 0xa3, 0xe7, 0x40, 0xac,
+ 0x73, 0x97, 0xbf, 0x68, 0x65, 0xdf, 0x55, 0x83, 0xc2, 0x26, 0x7e, 0x00,
+ 0xb0, 0x84, 0x0c, 0xc0, 0x41, 0xd6, 0x1b, 0x42, 0xe6, 0x5a, 0x7c, 0x24,
+ 0xf5, 0x8b, 0xf8, 0x00, 0x09, 0x74, 0x25, 0x02, 0x0c, 0xb4, 0x67, 0xd0,
+ 0x89, 0xf9, 0x88, 0xa3, 0x6b, 0xdd, 0x8d, 0x72, 0x76, 0x02, 0xbd, 0xfd,
+ 0x3b, 0x50, 0x2c, 0xa3, 0xf0, 0x46, 0x91, 0x0d, 0xa1, 0x90, 0xc5, 0x92,
+ 0x3a, 0xa7, 0xcb, 0xe9, 0xa1, 0x61, 0xbf, 0x20, 0x7e, 0x26, 0xd3, 0xe8,
+ 0x74, 0x56, 0x48, 0xc1, 0xbd, 0x94, 0x74, 0x3e, 0x98, 0x9a, 0xcd, 0x40,
+ 0x71, 0xd5, 0xf2, 0x53, 0x77, 0xf8, 0x89, 0x70, 0x2d, 0x45, 0x5d, 0xfd,
+ 0x7c, 0x9a, 0x35, 0xba, 0xe7, 0x68, 0x15, 0x2f, 0x07, 0xa6, 0x38, 0xaf,
+ 0x2a, 0x5e, 0xb6, 0xcb, 0x4c, 0xae, 0x34, 0x86, 0x00, 0x9d, 0x9a, 0x50,
+ 0xa6, 0xb2, 0x46, 0xb9, 0xbe, 0x5e, 0x2f, 0x2d, 0x45, 0x16, 0xf0, 0x4e,
+ 0xd4, 0x5c, 0x08, 0x81, 0x07, 0x3b, 0xbb, 0x17, 0x3c, 0xce, 0x29, 0x33,
+ 0x03, 0xeb, 0x74, 0x09, 0x61, 0xff, 0xd3, 0x7a, 0xd2, 0x1f, 0x4c, 0xaa,
+ 0xe9, 0xcc, 0xd4, 0xd3, 0xc9, 0xa4, 0x91, 0x1b, 0x58, 0x21, 0x58, 0xcd,
+ 0xec, 0xd8, 0x52, 0x7b, 0xb3, 0x97, 0xa5, 0x00, 0xd8, 0xf1, 0xb5, 0x03,
+ 0x54, 0x09, 0xda, 0xd0, 0x47, 0x19, 0x15, 0x5c, 0x2e, 0x8d, 0x98, 0x2c,
+ 0x64, 0xe0, 0xb4, 0x02, 0x5c, 0x44, 0xe0, 0x98, 0x9c, 0xdf, 0x67, 0xa0,
+ 0xce, 0x2f, 0xf1, 0x9a, 0xe4, 0x1b, 0xc1, 0xb2, 0xf7, 0x7a, 0x90, 0xea,
+ 0x56, 0xf5, 0xea, 0xdc, 0xff, 0x2b, 0x16, 0xcb, 0xfa, 0x17, 0x3c, 0xe6,
+ 0x9d, 0x20, 0xf5, 0x38, 0xc1, 0xd7, 0xa0, 0xf9, 0x7d, 0x1b, 0xca, 0x2b,
+ 0x05, 0x0b, 0x51, 0x84, 0x53, 0x9b, 0xe5, 0xbd, 0xdd, 0x6f, 0x7c, 0x50,
+ 0x67, 0x84, 0xf0, 0xa4, 0x77, 0x77, 0x5f, 0x14, 0x0b, 0x97, 0x20, 0x8a,
+ 0xcf, 0x11, 0x35, 0xc0, 0x27, 0x6d, 0xaa, 0xd8, 0x9c, 0x94, 0x82, 0x14,
+ 0xb8, 0xe6, 0x98, 0xc0, 0xd0, 0xed, 0xd2, 0x0a, 0x8b, 0x85, 0x87, 0x0e,
+ 0x2b, 0x54, 0xbf, 0x9d, 0xe8, 0xe6, 0xca, 0xa5, 0xd7, 0x13, 0xa0, 0x43,
+ 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
+ 0x0c, 0x00, 0x06, 0x10, 0x50, 0x00, 0x18, 0x00, 0x8d, 0x6e, 0x79, 0xff,
+ 0x7d, 0x39, 0xcb, 0x62, 0xe8, 0x67, 0x57, 0x95, 0x03, 0x93, 0xcf, 0x7c,
+ 0x90, 0x55, 0xac, 0x2f, 0xa9, 0x25, 0x19, 0x4c, 0x5e, 0x80, 0x36, 0xde,
+ 0xe6, 0xfe, 0x15, 0x12, 0x0a, 0xb9, 0xeb, 0x80, 0xc2, 0xc4, 0xa7, 0x68,
+ 0x37, 0xf1, 0x37, 0xe4, 0xc7, 0x34, 0x83, 0xca, 0xf6, 0x17, 0x8e, 0x1a,
+ 0x95, 0x85, 0xc3, 0xcc, 0x1b, 0x55, 0xa2, 0x09, 0x57, 0x51, 0xa4, 0xe6,
+ 0x6b, 0xc4, 0xa0, 0x57, 0x97, 0x7c, 0xbe, 0x89, 0xe1, 0xc2, 0xe8, 0x13,
+ 0x6c, 0x5b, 0x97, 0xbe, 0x3d, 0xdb, 0xa3, 0x8f, 0x8c, 0x51, 0xc8, 0x16,
+ 0x6b, 0xbb, 0x41, 0x78, 0x28, 0x0d, 0xc4, 0xe2, 0xed, 0xd1, 0x5c, 0x84,
+ 0x65, 0xb0, 0x2e, 0x25, 0x58, 0x60, 0x72, 0x4a, 0xa0, 0x54, 0x23, 0xe0,
+ 0xf9, 0xac, 0x3c, 0xb4, 0x1f, 0xfa, 0x80, 0x86, 0x64, 0x89, 0x1b, 0x53,
+ 0xdf, 0xed, 0xfa, 0xe3, 0xbc, 0x03, 0x7d, 0xe9, 0x0f, 0xbd, 0xf5, 0x6d,
+ 0xa1, 0x38, 0x34, 0xa7, 0x2e, 0x10, 0x3a, 0x08, 0x64, 0xaa, 0x88, 0x96,
+ 0xeb, 0x38, 0xc6, 0x2d, 0x16, 0xd7, 0x2c, 0x62, 0xfe, 0x65, 0x12, 0x83,
+ 0xe3, 0x5b, 0x32, 0x1a, 0xa7, 0x85, 0xd7, 0x34, 0x48, 0xb2, 0x2c, 0x6e,
+ 0xaa, 0xb5, 0x42, 0x4b, 0xe9, 0x7e, 0x4b, 0x27, 0xfe, 0x49, 0xfa, 0x61,
+ 0xac, 0x9d, 0x51, 0x14, 0x1a, 0xc8, 0x73, 0xbf, 0x4e, 0xb0, 0x38, 0xff,
+ 0x9e, 0x0b, 0x0e, 0xfb, 0xf9, 0x5b, 0xcf, 0x97, 0xd5, 0xb2, 0xd9, 0x89,
+ 0x77, 0x08, 0xa1, 0x3b, 0x94, 0xb4, 0x59, 0x32, 0x94, 0xf3, 0x5c, 0x59,
+ 0xdf, 0xee, 0x14, 0x46, 0x43, 0x31, 0x69, 0x75, 0x7c, 0x96, 0xc4, 0x94,
+ 0x91, 0x9c, 0xf6, 0x6f, 0x4f, 0x5d, 0x71, 0xf1, 0x9d, 0xd9, 0xb2, 0x73,
+ 0x34, 0xde, 0xd0, 0xe5, 0x37, 0x4f, 0xa7, 0x22, 0xad, 0xcf, 0x25, 0x1f,
+ 0x59, 0x6c, 0x0f, 0x40, 0x3a, 0x18, 0xc2, 0x06, 0x4d, 0xef, 0x82, 0x37,
+ 0x82, 0x88, 0x66, 0x7a, 0x42, 0x2b, 0xb4, 0x78, 0x6d, 0x49, 0xc7, 0xa0,
+ 0x52, 0x08, 0x20, 0x9b, 0xc1, 0x1c, 0xa5, 0x26, 0x9c, 0xa2, 0x4e, 0x52,
+ 0x56, 0x0d, 0x81, 0x74, 0x14, 0xe8, 0xd5, 0xbc, 0x19, 0x00, 0x74, 0xcd,
+ 0x14, 0x2a, 0x80, 0x0d, 0xf3, 0x68, 0x4e, 0xf4, 0xd0, 0x4b, 0xb1, 0x99,
+ 0x48, 0x82, 0x44, 0xcf, 0x42, 0x92, 0x60, 0xd4, 0x18, 0xa0, 0xf6, 0xeb,
+ 0xba, 0xb1, 0x01, 0xa1, 0x37, 0xa4, 0xe5, 0xda, 0xc7, 0xad, 0x66, 0x47,
+ 0x95, 0xd3, 0xca, 0x04, 0xe6, 0x8b, 0xeb, 0xfe, 0xf1, 0x0a, 0x19, 0x53,
+ 0x01, 0x83, 0x1e, 0xf2, 0xdd, 0xe1, 0xbf, 0xf8, 0x68, 0x29, 0x0e, 0x64,
+ 0xff, 0x6f, 0xe5, 0x18, 0xea, 0xf6, 0xc0, 0xaa, 0x89, 0x49, 0x1a, 0x3c,
+ 0xef, 0x7c, 0x7a, 0x95, 0xe0, 0x9a, 0x30, 0x38, 0xb2, 0x7a, 0x0b, 0xb3,
+ 0x16, 0xac, 0x37, 0xde, 0x0a, 0xba, 0x02, 0x1c, 0x82, 0x5e, 0x9a, 0x80,
+ 0x9e, 0x83, 0xc1, 0x1b, 0x71, 0x26, 0xda, 0xa6, 0x19, 0x7d, 0xf5, 0xd3,
+ 0xa9, 0x52, 0x1b, 0x14, 0xe4, 0xb2, 0xf5, 0x74, 0x00, 0xe6, 0x78, 0xa2,
+ 0x43, 0x9f, 0x15, 0x8f, 0xae, 0x35, 0x90, 0x3f, 0x58, 0x8e, 0x2b, 0x7d,
+ 0x12, 0x32, 0x3c, 0xc7, 0x38, 0x69, 0x84, 0x5d, 0xdb, 0x94, 0x19, 0x90,
+ 0x07, 0xbb, 0xe7, 0xf6, 0x9c, 0x66, 0x93, 0x17, 0x73, 0x92, 0xa5, 0x89,
+ 0x3c, 0x3d, 0x4d, 0x6a, 0xd3, 0xad, 0xc8, 0xa7, 0xd3, 0x25, 0xba, 0x7b,
+ 0x21, 0x73, 0x55, 0x0c, 0x34, 0xec, 0xe4, 0x56, 0x2a, 0xc2, 0x75, 0x9a,
+ 0x93, 0x29, 0xd6, 0x4e, 0x83, 0x55, 0xe2, 0x2b, 0xbe, 0x9d, 0x14, 0xa7,
+ 0x5d, 0x60, 0x68, 0xe2, 0xfe, 0xd4, 0x35, 0xe2, 0x6a, 0xbe, 0x8b, 0x92,
+ 0x3a, 0xa5, 0xd3, 0xe2, 0x26, 0x84, 0x4a, 0x49, 0x51, 0x58, 0xf0, 0x16,
+ 0xc9, 0x71, 0x64, 0x2c, 0xeb, 0x6f, 0x7c, 0xfc, 0x1d, 0xea, 0x54, 0x97,
+ 0xf9, 0xc3, 0x89, 0x4c, 0x8f, 0xe0, 0x5a, 0xcd, 0xc7, 0xa0, 0xfb, 0xa7,
+ 0xe0, 0x21, 0xf5, 0x4b, 0xed, 0xb6, 0xc3, 0xd2, 0x55, 0xb4, 0xa5, 0x85,
+ 0x7c, 0x22, 0xd2, 0xb1, 0xe0, 0x13, 0xfc, 0xff, 0x1d, 0x47, 0x86, 0x30,
+ 0xf0, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x31, 0x0c, 0x00, 0x01, 0x10, 0x30, 0x00, 0x18, 0x00, 0x42,
+ 0x1a, 0xb4, 0xd4, 0x77, 0xd0, 0xd1, 0xfd, 0x30, 0x7b, 0x99, 0x35, 0x37,
+ 0xad, 0x6e, 0x3d, 0x5b, 0x24, 0x11, 0xb7, 0xf4, 0x0d, 0x00, 0x9f, 0x61,
+ 0x61, 0x80, 0x05, 0x22, 0x2d, 0x57, 0xea, 0xa5, 0x5f, 0x79, 0xaf, 0x86,
+ 0x22, 0x02, 0xeb, 0x0a, 0x72, 0x09, 0x31, 0xa9, 0xe0, 0x05, 0x45, 0x12,
+ 0x0b, 0x6a, 0xc4, 0xb6, 0x85, 0x0d, 0xe8, 0x2b, 0xdd, 0x6b, 0x59, 0x26,
+ 0x24, 0x2f, 0x8b, 0xee, 0x92, 0xbf, 0xe3, 0xfe, 0xe6, 0x2e, 0x03, 0x90,
+ 0x92, 0x48, 0xde, 0x43, 0x2d, 0xe8, 0xcc, 0x9c, 0x88, 0x16, 0x86, 0xe0,
+ 0xe4, 0xdf, 0x64, 0x51, 0x24, 0xf0, 0x14, 0x25, 0x7a, 0x46, 0x5a, 0x5e,
+ 0xb4, 0x50, 0x9a, 0x9f, 0xef, 0xa3, 0xc4, 0x3b, 0xcc, 0x7f, 0x71, 0x43,
+ 0xac, 0x89, 0xd9, 0x5a, 0x3e, 0xb8, 0x22, 0x4e, 0xce, 0x6e, 0xde, 0x75,
+ 0xe6, 0x6d, 0x8c, 0xa1, 0xc1, 0xc5, 0x93, 0x7e, 0x82, 0xe4, 0xe3, 0xbc,
+ 0x69, 0x83, 0x84, 0xfe, 0x7a, 0xed, 0x45, 0x1d, 0xb9, 0xb2, 0x59, 0x7a,
+ 0x2f, 0x16, 0x91, 0xc5, 0x92, 0x26, 0xae, 0xbc, 0xfc, 0xbb, 0x4a, 0x43,
+ 0x34, 0xc4, 0x1e, 0xf1, 0xa2, 0x36, 0x56, 0xe0, 0x17, 0x10, 0x25, 0x74,
+ 0xfe, 0x4c, 0x4f, 0x29, 0x37, 0xb4, 0x02, 0x11, 0xf9, 0x1e, 0x93, 0xa5,
+ 0x4a, 0x40, 0xba, 0x9f, 0xe0, 0xff, 0xf7, 0x11, 0x2f, 0x13, 0xc0, 0xed,
+ 0x2a, 0xa0, 0x1a, 0xdf, 0x4b, 0xdb, 0x1a, 0xaa, 0xb7, 0x9d, 0xd5, 0x48,
+ 0xb2, 0x17, 0xf0, 0x25, 0x51, 0x54, 0xc7, 0x92, 0xbc, 0x3c, 0x02, 0xc0,
+ 0xe1, 0x89, 0x3b, 0xbf, 0x34, 0xaa, 0x59, 0x1a, 0xca, 0x1a, 0xd2, 0x71,
+ 0xa6, 0x02, 0xdd, 0x3d, 0x63, 0xf5, 0xbd, 0x2f, 0xf1, 0x37, 0x7a, 0xcd,
+ 0x98, 0x81, 0x55, 0x1c, 0xc9, 0x50, 0x66, 0xeb, 0xed, 0xc8, 0x05, 0x77,
+ 0x2f, 0x4f, 0x03, 0x71, 0xa3, 0xeb, 0x24, 0x4d, 0x01, 0xed, 0xe9, 0x7e,
+ 0xac, 0x77, 0x76, 0xd8, 0x77, 0x2b, 0x2b, 0x2a, 0x26, 0xa3, 0x29, 0xe1,
+ 0xb1, 0xaf, 0xee, 0x4c, 0x19, 0xcd, 0xe7, 0x51, 0x2f, 0x73, 0x4d, 0xa9,
+ 0x00, 0x3e, 0x25, 0x79, 0x41, 0x9d, 0x69, 0x5e, 0xcc, 0xf2, 0x24, 0x61,
+ 0x7e, 0x52, 0xdf, 0x4c, 0x01, 0xea, 0xb5, 0x16, 0xe4, 0xe3, 0xcf, 0x68,
+ 0x77, 0x3e, 0x97, 0x16, 0x81, 0x57, 0x32, 0x03, 0xf8, 0x80, 0x2a, 0x88,
+ 0x30, 0xd0, 0xdd, 0x2e, 0xc7, 0x13, 0xf5, 0x4f, 0x34, 0xad, 0x54, 0x2e,
+ 0x33, 0xba, 0x56, 0x3a, 0xcd, 0xdb, 0xa9, 0x8d, 0x4a, 0x14, 0xab, 0x8a,
+ 0xd4, 0x94, 0xab, 0x02, 0xee, 0x02, 0x7e, 0x5f, 0x9b, 0x88, 0x71, 0x40,
+ 0x65, 0xb2, 0xc8, 0x20, 0x21, 0x39, 0xc1, 0xd2, 0x57, 0xa9, 0x8b, 0x27,
+ 0xbb, 0x2d, 0x2d, 0xf6, 0x3f, 0x90, 0xa9, 0x61, 0x4f, 0xac, 0x64, 0x61,
+ 0x7b, 0xae, 0x82, 0x89, 0x4d, 0xd2, 0xdb, 0x2c, 0x0e, 0x0d, 0x60, 0xb9,
+ 0xa8, 0x6b, 0x2d, 0x21, 0x6d, 0x21, 0x10, 0x8a, 0xcb, 0x3d, 0x50, 0x8f,
+ 0x35, 0xb7, 0x44, 0x7c, 0xea, 0x75, 0x31, 0x40, 0xed, 0xc5, 0x7e, 0xd4,
+ 0x08, 0xef, 0x8c, 0x5e, 0x32, 0xb1, 0x9c, 0x6b, 0x3a, 0x81, 0x2d, 0x58,
+ 0x96, 0x6b, 0xf9, 0xf1, 0x71, 0x62, 0xdd, 0xd9, 0x18, 0xdf, 0x38, 0x20,
+ 0x89, 0x2d, 0x7c, 0x4b, 0x42, 0x99, 0x22, 0x8e, 0x39, 0x70, 0x0a, 0x53,
+ 0x17, 0x57, 0xf4, 0x70, 0x06, 0xe1, 0x4f, 0xc4, 0x03, 0x5d, 0x99, 0x9b,
+ 0x13, 0xcf, 0x8c, 0x47, 0x4f, 0x55, 0xd3, 0xd8, 0x11, 0x40, 0xb7, 0x44,
+ 0x7e, 0xd3, 0x6c, 0x4a, 0x56, 0x15, 0xbc, 0xf6, 0xf3, 0xd2, 0x39, 0x82,
+ 0xa8, 0x26, 0x36, 0x21, 0xd3, 0xa2, 0x00, 0x45, 0x0f, 0x65, 0x11, 0x8b,
+ 0x20, 0x6b, 0xf1, 0x04, 0x23, 0x7d, 0xfb, 0xc2, 0xc6, 0x1d, 0xf0, 0x7a,
+ 0xad, 0x6e, 0xd8, 0x52, 0x1c, 0x2b, 0x2b, 0x17, 0x09, 0x4e, 0x3a, 0x7d,
+ 0x89, 0xae, 0x80, 0x04, 0xdc, 0xca, 0xbf, 0xe7, 0x66, 0x77, 0xac, 0xc1,
+ 0xa7, 0x8e, 0x8c, 0x99, 0xa5, 0x65, 0x21, 0xd3, 0x01, 0xaa, 0x07, 0x5f,
+ 0x98, 0xd2, 0xf2, 0xa6, 0x21, 0x28, 0xbe, 0xa4, 0x38, 0x04, 0x6b, 0x9f,
+ 0x3e, 0x3f, 0x39, 0x42, 0xd3, 0x7f, 0x83, 0xd4, 0xf7, 0x12, 0x48, 0xf2,
+ 0x3b, 0x65, 0x71, 0x24, 0x91, 0xb8, 0x25, 0x01, 0x30, 0x6c, 0xb9, 0xbc,
+ 0x1d, 0x3a, 0xf3, 0x76, 0x96, 0xe6, 0x2c, 0x80, 0x7d, 0x03, 0x00, 0x00,
+ 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x17, 0x00, 0x06,
+ 0x10, 0x28, 0x14, 0x70, 0xe5, 0x80, 0x53, 0x33, 0xff, 0xff, 0x36, 0x65,
+ 0xc4, 0x81, 0xfd, 0xb9, 0xf9, 0x04, 0xb4, 0xe4, 0x6c, 0x9e, 0x9e, 0x11,
+ 0x12, 0x58, 0x02, 0x9a, 0xb7, 0xea, 0x88, 0xfa, 0x05, 0x5c, 0xca, 0x49,
+ 0x3a, 0x52, 0x62, 0xb7, 0x4a, 0x55, 0x5d, 0x0c, 0xce, 0x4e, 0x19, 0x65,
+ 0xb9, 0xb0, 0xcf, 0xbf, 0xd2, 0x8c, 0x86, 0xa2, 0x6b, 0x6e, 0xb0, 0x0c,
+ 0x50, 0x9a, 0x0f, 0xc6, 0x58, 0xb6, 0x44, 0x4c, 0x30, 0x1a, 0x12, 0xba,
+ 0xe4, 0xf9, 0xbe, 0x46, 0x45, 0x7a, 0x6a, 0x48, 0x05, 0x6e, 0x19, 0x19,
+ 0xe8, 0xdf, 0x4f, 0xcf, 0xb7, 0x47, 0xc8, 0x5e, 0x86, 0x47, 0x11, 0x39,
+ 0x52, 0xae, 0x3b, 0x35, 0xc4, 0xb9, 0x44, 0x75, 0x49, 0xc3, 0x2e, 0x93,
+ 0x0a, 0x84, 0xf4, 0xc3, 0xd8, 0xa0, 0x2c, 0x8b, 0x3f, 0x3c, 0xa8, 0xd4,
+ 0xad, 0x35, 0x8c, 0xbf, 0xfb, 0x2f, 0xe4, 0x03, 0x13, 0x88, 0xad, 0xaf,
+ 0x55, 0x89, 0x3c, 0x83, 0x91, 0xa8, 0x1a, 0x2c, 0x92, 0x3e, 0xc5, 0x4a,
+ 0x81, 0x80, 0x97, 0x0b, 0x95, 0xca, 0xe6, 0x73, 0x92, 0x79, 0x16, 0x78,
+ 0x82, 0x4d, 0xe6, 0x1f, 0x82, 0xee, 0xe9, 0x3f, 0xe1, 0x90, 0x8d, 0x94,
+ 0x41, 0x56, 0x5c, 0xf3, 0xb9, 0x7d, 0xe8, 0x0e, 0x2a, 0x38, 0xd4, 0x67,
+ 0x65, 0x24, 0xe6, 0xc0, 0x00, 0x18, 0x6f, 0xbc, 0xaf, 0x33, 0xe5, 0xf9,
+ 0xe4, 0x36, 0x56, 0x6e, 0xc8, 0x07, 0xca, 0xce, 0x26, 0xa7, 0xeb, 0x9c,
+ 0x34, 0xdc, 0x39, 0x02, 0xe6, 0xf5, 0x54, 0xdd, 0x5c, 0x8b, 0xa0, 0xaf,
+ 0x8e, 0x78, 0xfb, 0xd8, 0xd3, 0xc2, 0x10, 0xcb, 0x9c, 0x97, 0x39, 0xf0,
+ 0xfd, 0xf4, 0x59, 0x92, 0x82, 0xd2, 0x20, 0xbf, 0x8b, 0xa5, 0xe0, 0x9e,
+ 0xc7, 0x3e, 0x0a, 0xb3, 0xf4, 0x87, 0x4d, 0x29, 0x1d, 0x24, 0x32, 0x17,
+ 0xc1, 0xf4, 0x95, 0xb7, 0x38, 0x28, 0x16, 0xb0, 0xe3, 0xde, 0x66, 0x44,
+ 0x6e, 0x9c, 0x81, 0xb5, 0x11, 0x3d, 0x2f, 0x0a, 0xb8, 0xce, 0x28, 0xb0,
+ 0x47, 0xbb, 0x08, 0xca, 0x9b, 0x75, 0xf8, 0xee, 0xa3, 0x63, 0x57, 0x0b,
+ 0x6d, 0xf3, 0x1b, 0x08, 0xbe, 0xed, 0x5c, 0x1c, 0xeb, 0x17, 0xcf, 0x1d,
+ 0x3c, 0xbf, 0x88, 0x82, 0x6e, 0xcb, 0x53, 0x78, 0xbe, 0x04, 0x34, 0x2f,
+ 0xa8, 0x8b, 0xf8, 0x3f, 0xb4, 0x7f, 0x94, 0xce, 0xeb, 0xa8, 0x3e, 0x4a,
+ 0xdf, 0x60, 0x1e, 0x3b, 0x2a, 0x24, 0x1e, 0x18, 0xc0, 0x84, 0x93, 0x75,
+ 0xec, 0xb2, 0x39, 0x8d, 0x26, 0x5e, 0xc0, 0xf3, 0x21, 0x3a, 0xc4, 0xaf,
+ 0xf6, 0x73, 0xb3, 0x8a, 0x38, 0x00, 0xa3, 0x31, 0x75, 0x6c, 0x5f, 0x5e,
+ 0x2c, 0x54, 0xc9, 0x30, 0x12, 0xde, 0x7c, 0x88, 0x0c, 0xf7, 0x6e, 0x08,
+ 0x6d, 0xd4, 0xd0, 0x9c, 0x66, 0x90, 0x91, 0x28, 0x8a, 0xe6, 0x16, 0x98,
+ 0x42, 0x13, 0x38, 0x45, 0x9e, 0xed, 0x52, 0x9c, 0xd0, 0xd4, 0x89, 0xdf,
+ 0x98, 0xbe, 0x8c, 0xb7, 0xc0, 0x19, 0xc5, 0x1d, 0xc4, 0x78, 0xca, 0xda,
+ 0x5b, 0xb3, 0x3f, 0xf3, 0xb7, 0x52, 0x0b, 0x5a, 0x7b, 0x0b, 0x42, 0x94,
+ 0x91, 0xcb, 0x63, 0x95, 0x66, 0x2b, 0x0e, 0x98, 0x25, 0xcb, 0xf8, 0x9f,
+ 0x60, 0x11, 0x2b, 0xc2, 0xf6, 0xd4, 0xeb, 0xcb, 0x63, 0x06, 0x22, 0x07,
+ 0x65, 0x9e, 0x67, 0xcd, 0x89, 0xcd, 0x6d, 0x8f, 0x74, 0xab, 0x78, 0xb0,
+ 0x8e, 0x5b, 0xf8, 0x78, 0x9a, 0x6b, 0xfb, 0xa0, 0x81, 0x3d, 0xb9, 0x9b,
+ 0x1e, 0x00, 0xe7, 0xf0, 0x17, 0x4c, 0xe8, 0x30, 0x41, 0xdf, 0x3d, 0x28,
+ 0x0b, 0x2f, 0x87, 0xeb, 0x9f, 0x79, 0x57, 0xfa, 0x5b, 0x99, 0x6b, 0xa9,
+ 0xf8, 0x07, 0x3d, 0x67, 0x0f, 0xe4, 0x31, 0x21, 0xeb, 0x06, 0xd2, 0x23,
+ 0x3f, 0x7f, 0x96, 0x43, 0xf8, 0xb2, 0xf7, 0x68, 0xf5, 0x60, 0x89, 0xee,
+ 0xfe, 0xe6, 0x37, 0x5e, 0x5c, 0x40, 0xed, 0xae, 0x9f, 0x77, 0x1c, 0xe5,
+ 0xbf, 0x33, 0xec, 0x82, 0x3e, 0x7c, 0xc1, 0x9d, 0xd4, 0xdf, 0xc2, 0x78,
+ 0xe2, 0x05, 0xdf, 0xd6, 0x3d, 0x61, 0x04, 0xe0, 0x07, 0x0d, 0x3b, 0x28,
+ 0x4b, 0x80, 0x38, 0xbe, 0xaa, 0x1c, 0xc9, 0xe2, 0xbc, 0xf3, 0x2a, 0xf8,
+ 0x30, 0x06, 0xac, 0x24, 0x7b, 0xf3, 0x96, 0x38, 0x3e, 0xf8, 0x52, 0x66,
+ 0x14, 0x9a, 0xa0, 0x7f, 0x91, 0x01, 0x9c, 0x40, 0x3a, 0x0b, 0x8d, 0x7e,
+ 0xd1, 0x25, 0xeb, 0xda, 0xcc, 0xac, 0x11, 0xff, 0xe6, 0xb1, 0xe3, 0x74,
+ 0xd6, 0xa9, 0xb0, 0x67, 0xe6, 0x40, 0x9a, 0x03, 0xe4, 0x27, 0x7f, 0x1b,
+ 0x22, 0x8f, 0xf5, 0x53, 0x7e, 0xe7, 0x8d, 0xd5, 0x64, 0xfb, 0x48, 0x7c,
+ 0x8e, 0x54, 0xea, 0x27, 0x6c, 0x97, 0x04, 0x33, 0x02, 0x3d, 0x49, 0x5e,
+ 0xa5, 0xdd, 0xed, 0xe8, 0xda, 0xde, 0x42, 0xb2, 0xd0, 0xe5, 0xb4, 0x6e,
+ 0x76, 0xfb, 0x2e, 0xfa, 0x15, 0x9d, 0xb6, 0x66, 0x7c, 0x24, 0x75, 0x8c,
+ 0x41, 0xe8, 0xda, 0xe5, 0xed, 0xe9, 0x42, 0xfb, 0x06, 0x30, 0xe1, 0x3c,
+ 0xda, 0x00, 0x6c, 0xdc, 0x58, 0xd7, 0x48, 0x6e, 0x37, 0x0e, 0x1a, 0xc0,
+ 0x21, 0x21, 0x1f, 0x3f, 0x0a, 0xc8, 0xfe, 0x79, 0xdb, 0xaa, 0x9a, 0x25,
+ 0xd1, 0xf3, 0xc9, 0x81, 0x6a, 0xd5, 0x64, 0x06, 0x31, 0xbd, 0x51, 0x8e,
+ 0xc2, 0xf3, 0xf1, 0xce, 0x35, 0xd7, 0x9a, 0x8a, 0x2e, 0x1d, 0x06, 0xef,
+ 0xc6, 0xbf, 0x79, 0xac, 0xa4, 0x53, 0xeb, 0x15, 0x37, 0xa2, 0x57, 0x1c,
+ 0x81, 0x5a, 0x27, 0x15, 0x0b, 0xc0, 0xc1, 0xff, 0xb2, 0xa0, 0x96, 0x96,
+ 0x57, 0x66, 0x51, 0x23, 0x92, 0xdb, 0x35, 0xfb, 0x37, 0x6a, 0xc2, 0x8a,
+ 0xc3, 0xa7, 0xad, 0x53, 0x7e, 0x5e, 0x8d, 0xea, 0x7d, 0x8d, 0xca, 0x96,
+ 0x19, 0xbd, 0xc0, 0x85, 0x88, 0x00, 0xfd, 0xc6, 0xa2, 0x2e, 0x64, 0xd3,
+ 0xc2, 0x1d, 0xb2, 0x68, 0x43, 0x11, 0xff, 0x84, 0xb8, 0xb1, 0xf9, 0x4f,
+ 0xcf, 0x52, 0xf0, 0xf6, 0xd3, 0x10, 0xff, 0x8d, 0x05, 0xe8, 0xda, 0xf4,
+ 0x4c, 0x53, 0x8e, 0xf0, 0x17, 0xc6, 0xd2, 0x48, 0xf7, 0x35, 0x5a, 0xc6,
+ 0x3b, 0x1b, 0x10, 0xe6, 0x2a, 0xab, 0x57, 0x42, 0x98, 0x41, 0x31, 0x2d,
+ 0xcf, 0xa6, 0x2f, 0xf9, 0x84, 0x32, 0x7f, 0x96, 0x68, 0x26, 0x20, 0x3d,
+ 0xf1, 0x00, 0x04, 0xd8, 0x18, 0x88, 0x1c, 0x3a, 0xa6, 0x77, 0x3e, 0x2e,
+ 0x8a, 0xef, 0x12, 0x0c, 0x45, 0x3a, 0xf5, 0x2b, 0x03, 0x76, 0x27, 0xdd,
+ 0x03, 0x71, 0xec, 0x8d, 0x38, 0x6c, 0x70, 0xa5, 0x53, 0xd9, 0xc6, 0x14,
+ 0x47, 0x31, 0xc4, 0xb9, 0x0d, 0x8f, 0x7e, 0x76, 0x04, 0x4b, 0x1b, 0x2f,
+ 0xa0, 0xf0, 0x03, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x11, 0x0f, 0x00, 0x06, 0x10, 0x20, 0x00, 0x1c, 0x29, 0x31, 0x09,
+ 0x6d, 0x80, 0x01, 0x17, 0xbb, 0x29, 0x9c, 0xcc, 0xb0, 0x9c, 0xf0, 0x8e,
+ 0x78, 0x4d, 0x44, 0x15, 0x0c, 0xb1, 0x5e, 0x7c, 0xd6, 0x68, 0x69, 0x3d,
+ 0x63, 0x5c, 0xf5, 0x67, 0x66, 0x76, 0xd5, 0x96, 0xe5, 0x0e, 0x01, 0x7d,
+ 0xaf, 0x82, 0xaa, 0x3f, 0xe3, 0x0a, 0x91, 0xea, 0x28, 0x70, 0x39, 0x2e,
+ 0x40, 0xc2, 0x64, 0x92, 0x11, 0x16, 0x11, 0x0a, 0x8c, 0xfe, 0xdf, 0xfe,
+ 0xca, 0xda, 0x74, 0xc5, 0x08, 0x59, 0xb7, 0x72, 0xf9, 0x2f, 0xec, 0x8e,
+ 0x19, 0x54, 0xf1, 0xff, 0xa7, 0x60, 0x40, 0x5e, 0xc7, 0x9d, 0xd3, 0x28,
+ 0x6c, 0x6b, 0x20, 0x81, 0xc2, 0xb7, 0xb3, 0x9a, 0xd7, 0xcc, 0xca, 0xc4,
+ 0x9e, 0x95, 0x2a, 0xfc, 0x57, 0x83, 0x9e, 0x0e, 0x3d, 0x01, 0x5c, 0x76,
+ 0xb2, 0xfe, 0x2f, 0x00, 0x33, 0xaf, 0xff, 0x50, 0x0c, 0x2b, 0x39, 0xdb,
+ 0xf8, 0xc6, 0x90, 0xe6, 0x52, 0x1f, 0xd7, 0xd3, 0xbd, 0x78, 0xe1, 0x15,
+ 0x7f, 0xa6, 0x2a, 0xbd, 0x71, 0xf4, 0x36, 0xba, 0x79, 0xc1, 0xda, 0x2c,
+ 0x5a, 0x4d, 0x71, 0xd5, 0x09, 0x40, 0xae, 0x62, 0x5e, 0x22, 0xf5, 0x35,
+ 0xab, 0xa6, 0x6a, 0x4a, 0x4b, 0x30, 0x29, 0x93, 0xab, 0x8d, 0x13, 0x7b,
+ 0xe5, 0xa3, 0x46, 0xd0, 0xbc, 0x18, 0x0f, 0x70, 0x39, 0x39, 0x2a, 0xd7,
+ 0x17, 0xd9, 0x8b, 0x6e, 0x65, 0x87, 0xb7, 0xe9, 0x9c, 0xa9, 0xca, 0xaf,
+ 0x59, 0xae, 0x03, 0xfe, 0x4d, 0xa5, 0x50, 0x28, 0x9d, 0x70, 0x1f, 0xf2,
+ 0x93, 0x74, 0x13, 0x22, 0x62, 0x63, 0x8d, 0x03, 0xde, 0x73, 0xc5, 0xf4,
+ 0xa7, 0x5c, 0x72, 0x85, 0x08, 0xc7, 0xe0, 0xb4, 0xf9, 0xa6, 0x36, 0xe3,
+ 0x69, 0x1f, 0x7d, 0x6d, 0x55, 0x29, 0x96, 0x0d, 0x6e, 0xeb, 0xe1, 0x7e,
+ 0xce, 0xb4, 0xc5, 0xa6, 0x45, 0x3b, 0xfa, 0x11, 0x6e, 0xd9, 0xeb, 0x59,
+ 0xc0, 0x90, 0xcd, 0xd3, 0x7f, 0x1e, 0x66, 0x04, 0x02, 0xb0, 0x72, 0x75,
+ 0xd0, 0xab, 0x5b, 0x75, 0x14, 0xb7, 0x72, 0xa0, 0x1a, 0x0c, 0x7c, 0xfc,
+ 0xdb, 0x0b, 0x70, 0x20, 0x2a, 0x38, 0x61, 0xb9, 0x0b, 0x71, 0x96, 0x43,
+ 0xfc, 0x68, 0xc5, 0x16, 0x59, 0x8b, 0x9a, 0x48, 0x24, 0x74, 0x6d, 0x9a,
+ 0xf7, 0x08, 0x3f, 0xf7, 0x24, 0x45, 0x3e, 0x1a, 0x54, 0x81, 0x12, 0x48,
+ 0xb0, 0x0b, 0xbb, 0xa9, 0x87, 0xaa, 0x4e, 0xd5, 0x1f, 0x4c, 0xe5, 0x5e,
+ 0x94, 0xe7, 0xe6, 0x7e, 0x66, 0x4f, 0xef, 0xb1, 0x33, 0xe2, 0xd4, 0x1d,
+ 0xe9, 0x40, 0xce, 0x78, 0x63, 0x5e, 0x47, 0xb9, 0xde, 0x91, 0x6c, 0x88,
+ 0xce, 0xc9, 0x0b, 0xfc, 0x9d, 0xe8, 0xbb, 0x6b, 0xc5, 0x01, 0x71, 0x90,
+ 0xbf, 0xdb, 0x14, 0x4b, 0x02, 0x8d, 0x7b, 0xab, 0xc0, 0xbf, 0x08, 0xd0,
+ 0x75, 0xe2, 0x9b, 0x3f, 0xd2, 0x39, 0xad, 0x1e, 0x62, 0x1c, 0xc1, 0xf1,
+ 0x42, 0x93, 0x1f, 0xfa, 0x2b, 0x27, 0x49, 0x62, 0x1e, 0xff, 0x63, 0x5c,
+ 0xf5, 0xe0, 0x42, 0xe3, 0x38, 0x38, 0x3e, 0x03, 0x28, 0x94, 0xff, 0x51,
+ 0x4d, 0x08, 0xa2, 0x70, 0x67, 0x87, 0x99, 0x69, 0xe1, 0xd4, 0x29, 0x36,
+ 0x77, 0xc6, 0x14, 0xee, 0x12, 0x52, 0x5b, 0xb9, 0x24, 0xb6, 0x8f, 0x64,
+ 0x50, 0xe3, 0x6b, 0x3b, 0x20, 0xfa, 0xa5, 0x73, 0x8b, 0x79, 0x7f, 0x79,
+ 0x1e, 0xac, 0x89, 0xaa, 0x0b, 0x74, 0x07, 0x79, 0x77, 0xa1, 0x7c, 0x82,
+ 0xe4, 0xc8, 0x35, 0xe9, 0xd5, 0xb5, 0xe0, 0x38, 0x24, 0xa4, 0x9e, 0x8d,
+ 0x99, 0xfd, 0x4f, 0xb5, 0xef, 0x50, 0xad, 0xd0, 0xdf, 0x4b, 0x23, 0x5e,
+ 0xb3, 0xc7, 0xec, 0x21, 0x52, 0x9f, 0x59, 0x1d, 0xcb, 0x0f, 0x88, 0xb5,
+ 0x56, 0x09, 0xaf, 0xdf, 0xe2, 0xcb, 0xb8, 0x1a, 0xea, 0xa8, 0x99, 0xe8,
+ 0xec, 0x38, 0xd9, 0x7d, 0x7d, 0xaf, 0x35, 0x7c, 0xfc, 0xef, 0x2b, 0x99,
+ 0x86, 0xe9, 0xe1, 0xb8, 0xf6, 0xb1, 0x68, 0x53, 0x7f, 0x6d, 0xd5, 0x2a,
+ 0x5f, 0xac, 0xfc, 0x48, 0xbb, 0x7a, 0xff, 0x45, 0x65, 0x10, 0x67, 0x34,
+ 0x67, 0x9e, 0x1e, 0xac, 0x16, 0x30, 0x59, 0x7b, 0xcb, 0x87, 0xe0, 0x86,
+ 0x97, 0x0c, 0x6a, 0xfa, 0x05, 0x2e, 0xe8, 0xa0, 0x7e, 0x3f, 0x9e, 0xcd,
+ 0xa8, 0xce, 0x06, 0xdd, 0x12, 0xf5, 0x14, 0x7f, 0x45, 0xf6, 0xac, 0xb9,
+ 0xea, 0x38, 0x4f, 0x3f, 0xda, 0x95, 0x5c, 0x14, 0x61, 0xaa, 0x9e, 0xa8,
+ 0xba, 0xe7, 0xaa, 0x32, 0xd8, 0x2a, 0x5d, 0x9d, 0xfd, 0x2c, 0xbc, 0x9e,
+ 0x90, 0x3a, 0x02, 0x1a, 0xa1, 0x1f, 0x06, 0x5b, 0xc7, 0x9f, 0x88, 0x15,
+ 0xc3, 0xaa, 0x81, 0xf9, 0xb2, 0xb9, 0x75, 0x4b, 0x52, 0x8b, 0x6b, 0x24,
+ 0xb7, 0xfb, 0x03, 0x4d, 0xaa, 0xfa, 0x58, 0x07, 0x9a, 0x9a, 0xdf, 0xc1,
+ 0xe9, 0x21, 0xba, 0x5e, 0x48, 0x1e, 0x45, 0xb6, 0xcd, 0xb6, 0xf0, 0xb2,
+ 0x40, 0x71, 0x68, 0x4c, 0x18, 0x2c, 0xfa, 0x14, 0x4c, 0xd8, 0xc8, 0x61,
+ 0x1f, 0x67, 0x70, 0x9c, 0x1b, 0x44, 0xa8, 0x66, 0xed, 0xd6, 0xa2, 0xba,
+ 0x5d, 0xfe, 0x2b, 0x1c, 0x93, 0xef, 0x60, 0x51, 0xff, 0x34, 0x1c, 0x35,
+ 0xe0, 0xfc, 0x6a, 0xc3, 0xe4, 0x4e, 0x9f, 0xb0, 0x4b, 0x28, 0x05, 0xbb,
+ 0x99, 0x40, 0x9c, 0xd9, 0x73, 0xb6, 0xe8, 0xf2, 0xea, 0x65, 0x13, 0x25,
+ 0xa8, 0x28, 0x27, 0xc0, 0x9e, 0x56, 0x89, 0x1d, 0xb7, 0x72, 0xb3, 0x9b,
+ 0xfe, 0x90, 0x25, 0xf3, 0x1f, 0x46, 0xba, 0xaf, 0x29, 0xa6, 0xcb, 0x13,
+ 0x7a, 0x1e, 0x38, 0x37, 0xd6, 0xe7, 0x00, 0xa9, 0xe5, 0x1b, 0xf1, 0x15,
+ 0x98, 0xa5, 0x4c, 0x27, 0x1a, 0x79, 0xde, 0x29, 0xee, 0x05, 0x84, 0xa5,
+ 0x5d, 0xfc, 0xce, 0x21, 0x37, 0x55, 0xf0, 0x48, 0xa2, 0xa7, 0xd1, 0xbb,
+ 0xbe, 0xb5, 0xec, 0x50, 0xf4, 0xb9, 0x6f, 0xc7, 0x13, 0x95, 0x67, 0x27,
+ 0xae, 0xcd, 0x82, 0x0b, 0xd5, 0xd0, 0x17, 0xf7, 0x84, 0xa6, 0x76, 0x9c,
+ 0x07, 0x82, 0x5c, 0x00, 0xe6, 0xd1, 0xd0, 0x36, 0xa7, 0x04, 0x5a, 0x14,
+ 0xa8, 0xaa, 0xc0, 0x3a, 0x89, 0x22, 0x27, 0x5c, 0xac, 0xdb, 0xef, 0x12,
+ 0x54, 0x6b, 0xc9, 0xa3, 0x7e, 0x7e, 0x04, 0x3c, 0xa2, 0x03, 0x6c, 0xb1,
+ 0xde, 0xa3, 0x78, 0x25, 0x8f, 0x3b, 0x8f, 0xb9, 0xd6, 0x18, 0x89, 0x20,
+ 0x42, 0x74, 0xfc, 0x3c, 0xc5, 0xb5, 0xfd, 0x66, 0xdf, 0xad, 0xaa, 0xe6,
+ 0x0e, 0xd5, 0x2d, 0x53, 0x63, 0xc8, 0x97, 0x07, 0x3e, 0x84, 0xb1, 0x6b,
+ 0x79, 0xde, 0xef, 0x39, 0x67, 0x23, 0xea, 0x23, 0x68, 0xb0, 0x91, 0x69,
+ 0x14, 0x00, 0xce, 0x6c, 0x6e, 0xe8, 0xe6, 0xd4, 0x71, 0x5b, 0x00, 0xa1,
+ 0xab, 0x74, 0x0f, 0x68, 0x63, 0xa9, 0x4d, 0xe3, 0xca, 0x4b, 0x08, 0xdf,
+ 0xb0, 0x82, 0xb8, 0x22, 0xa4, 0x09, 0x4e, 0x4b, 0xec, 0x9d, 0xcd, 0x4e,
+ 0xb7, 0xac, 0x39, 0x5c, 0xdf, 0x8d, 0x98, 0x21, 0xe1, 0x0b, 0x90, 0x39,
+ 0x0f, 0x28, 0x3c, 0x2c, 0x58, 0x3f, 0x34, 0xca, 0x9c, 0xba, 0x05, 0x67,
+ 0x2f, 0xd7, 0x38, 0xc7, 0x3d, 0x49, 0xf6, 0x04, 0x5d, 0xc1, 0xb0, 0x0e,
+ 0x18, 0x88, 0x63, 0x66, 0x40, 0x72, 0x56, 0x7b, 0x84, 0xb9, 0x5e, 0x12,
+ 0x1f, 0x21, 0x98, 0x35, 0x83, 0x8a, 0xe4, 0x15, 0xe2, 0xeb, 0x8c, 0x0b,
+ 0xfb, 0x61, 0x85, 0x49, 0x84, 0xc0, 0x79, 0x12, 0x3e, 0xdf, 0xc8, 0x26,
+ 0x7e, 0x74, 0x89, 0x65, 0x19, 0x66, 0x1a, 0x2c, 0x1d, 0x14, 0x5c, 0xf8,
+ 0x00, 0x74, 0x02, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x31, 0x10, 0x00, 0x01, 0x10, 0x20, 0x00, 0x1e, 0xe0, 0xb0, 0x1e,
+ 0x26, 0xfc, 0x8c, 0xd0, 0x75, 0xc0, 0x2f, 0xb3, 0x19, 0xef, 0xbd, 0x8d,
+ 0xfb, 0x25, 0x3e, 0xb9, 0x3e, 0x22, 0xa6, 0xe9, 0x64, 0xde, 0x86, 0xf3,
+ 0x83, 0xad, 0x35, 0x3f, 0x9e, 0xe5, 0xb7, 0x52, 0x52, 0xf4, 0xd3, 0x44,
+ 0xe2, 0x99, 0x8e, 0x93, 0x12, 0x3a, 0xb1, 0xd5, 0x64, 0x52, 0x15, 0xaf,
+ 0xac, 0x07, 0xa5, 0x68, 0x0e, 0xed, 0x47, 0x08, 0x64, 0x61, 0x62, 0x63,
+ 0xfc, 0xdc, 0x85, 0xa5, 0xef, 0xa8, 0x24, 0xaa, 0x62, 0x8f, 0x17, 0x45,
+ 0xe2, 0x99, 0x57, 0xf0, 0x88, 0x78, 0x6d, 0x02, 0x07, 0xd7, 0x0a, 0xd8,
+ 0xb5, 0xfb, 0x1c, 0xc4, 0xa7, 0x86, 0x80, 0x5f, 0x36, 0xad, 0xfb, 0xa1,
+ 0xc8, 0x55, 0x37, 0xfa, 0xff, 0xfa, 0x8e, 0x01, 0x3a, 0x70, 0x96, 0x2b,
+ 0xd1, 0x20, 0xbc, 0xfb, 0x1c, 0x37, 0x24, 0x5d, 0x15, 0x9f, 0xac, 0xd2,
+ 0xf0, 0xea, 0xe9, 0x2e, 0xd6, 0x85, 0x4b, 0xc2, 0x0c, 0x04, 0xfe, 0xd6,
+ 0x96, 0xf2, 0x7b, 0xf3, 0xa4, 0x25, 0xc2, 0x1a, 0x79, 0xcb, 0x37, 0xd5,
+ 0x1d, 0xc1, 0xa5, 0x4a, 0x1d, 0x8c, 0x6a, 0xa6, 0xb8, 0x3b, 0x00, 0xca,
+ 0x70, 0x6d, 0x72, 0x08, 0x07, 0x02, 0x9f, 0x79, 0x89, 0x46, 0xb3, 0xb1,
+ 0x04, 0x64, 0x6b, 0xd8, 0x79, 0x22, 0xc8, 0x9f, 0x64, 0x13, 0xd9, 0xd4,
+ 0xff, 0x85, 0x5a, 0xa7, 0x99, 0xe8, 0xbe, 0x8a, 0xda, 0xaa, 0x81, 0xb9,
+ 0xc2, 0x12, 0x58, 0xe5, 0xad, 0x5e, 0x0f, 0xf0, 0xc5, 0x48, 0x06, 0xde,
+ 0x3c, 0x5e, 0xb5, 0xf9, 0x6a, 0xae, 0x9a, 0xea, 0xbe, 0xfc, 0xd6, 0x95,
+ 0x03, 0xb4, 0xaa, 0xc2, 0x4c, 0x15, 0xdc, 0x65, 0x5d, 0x0a, 0x35, 0xf8,
+ 0xf7, 0x58, 0x11, 0x7b, 0x11, 0x8c, 0x57, 0xd8, 0x06, 0x9a, 0xd3, 0x69,
+ 0xf8, 0x7a, 0x45, 0x57, 0x65, 0x36, 0xb8, 0x8a, 0x02, 0xf6, 0x19, 0xcc,
+ 0xf1, 0xf3, 0xa1, 0x86, 0x73, 0x68, 0x79, 0xba, 0xac, 0x4f, 0x18, 0x22,
+ 0x9e, 0xf3, 0xf7, 0xd7, 0x68, 0xe1, 0xbe, 0xb8, 0xe1, 0x87, 0x22, 0x39,
+ 0xbf, 0xa6, 0x0d, 0xb1, 0x88, 0xda, 0x61, 0x72, 0x8f, 0xcc, 0x2e, 0x02,
+ 0x98, 0xc5, 0x27, 0x98, 0xb9, 0xdf, 0x77, 0xa8, 0xa3, 0xb7, 0xb5, 0x07,
+ 0xf7, 0x2e, 0x42, 0x5a, 0x65, 0x3f, 0x2d, 0x37, 0xe0, 0x5c, 0xa6, 0x44,
+ 0x85, 0x92, 0xb3, 0x48, 0x2d, 0xfe, 0x9f, 0x6f, 0xc5, 0x77, 0xab, 0x4a,
+ 0xc9, 0xdc, 0x28, 0x59, 0x4c, 0x2f, 0x38, 0x51, 0x66, 0x08, 0x9c, 0xac,
+ 0xdc, 0x1f, 0x9b, 0xd2, 0x32, 0xcf, 0x1e, 0x98, 0x3c, 0xf2, 0x7d, 0x54,
+ 0x5b, 0x61, 0x8d, 0xc1, 0x60, 0xcf, 0x3d, 0x48, 0xae, 0x03, 0xac, 0x96,
+ 0x83, 0x62, 0x6b, 0x4c, 0xbb, 0x65, 0x25, 0xba, 0x2f, 0x20, 0x2a, 0x56,
+ 0x4c, 0xb7, 0x03, 0x68, 0x67, 0x73, 0x3d, 0x6f, 0x99, 0x2d, 0xbc, 0xf6,
+ 0x60, 0x36, 0x3d, 0xcb, 0x0d, 0x94, 0x4f, 0x35, 0x47, 0x02, 0xbb, 0xb2,
+ 0xce, 0xa0, 0x0b, 0x95, 0x21, 0x78, 0x83, 0x3e, 0x13, 0x1e, 0xc2, 0x43,
+ 0x60, 0x4b, 0x0b, 0xb9, 0xa3, 0x42, 0xae, 0x00, 0x97, 0xd8, 0x04, 0xfd,
+ 0x92, 0xb5, 0x72, 0x0f, 0x9e, 0x52, 0x11, 0xdf, 0x88, 0x70, 0xff, 0x26,
+ 0xa4, 0xb3, 0x4e, 0xec, 0x1c, 0x9b, 0x6b, 0x5e, 0x88, 0xc1, 0xa8, 0x00,
+ 0x27, 0xa1, 0xdc, 0x6c, 0x2c, 0x3e, 0xd1, 0xf0, 0x33, 0x4d, 0xc2, 0xce,
+ 0x79, 0x7b, 0xdc, 0x8d, 0x83, 0xf6, 0xc1, 0x92, 0x4d, 0xd0, 0x2a, 0x6f,
+ 0xa5, 0xf6, 0x52, 0x79, 0x2e, 0xb4, 0xa3, 0x33, 0x67, 0x9a, 0xf3, 0xd7,
+ 0xdc, 0xc5, 0x93, 0x84, 0x0a, 0x64, 0xbd, 0xb7, 0x56, 0x25, 0xb1, 0x48,
+ 0xed, 0x09, 0x2f, 0x14, 0x01, 0x63, 0x37, 0x5d, 0x4d, 0x92, 0x29, 0xe4,
+ 0xe9, 0xe7, 0x12, 0xa0, 0x8b, 0xfc, 0x44, 0xc3, 0x7d, 0x58, 0xc2, 0x15,
+ 0xa7, 0x69, 0x25, 0x0c, 0x79, 0x13, 0x0f, 0x2e, 0xa5, 0xdd, 0x0d, 0x46,
+ 0xa0, 0x7a, 0x6e, 0x9f, 0xd9, 0x80, 0xec, 0x0a, 0xef, 0x36, 0x50, 0x98,
+ 0x24, 0x0c, 0xcd, 0xad, 0x99, 0x6b, 0x8f, 0xf2, 0x4a, 0x0f, 0xa5, 0x5a,
+ 0xa5, 0xbe, 0x70, 0x18, 0x7a, 0xfe, 0x7c, 0x98, 0x76, 0x07, 0x08, 0x44,
+ 0x5d, 0xbd, 0xf6, 0xd6, 0xf6, 0xa8, 0xc1, 0x1c, 0x1f, 0xed, 0xa9, 0x7e,
+ 0x59, 0xf6, 0x0b, 0xfb, 0x44, 0x17, 0x72, 0xc8, 0xb0, 0xc4, 0x0a, 0x35,
+ 0x77, 0x18, 0xe0, 0xe0, 0x46, 0x88, 0x4c, 0xa6, 0xda, 0xb9, 0x8e, 0xd5,
+ 0x30, 0x56, 0x81, 0x52, 0x08, 0x4f, 0x9e, 0x15, 0x72, 0x7d, 0xa6, 0x7a,
+ 0x67, 0x85, 0xcc, 0xd0, 0x00, 0x2e, 0x04, 0x00, 0x00, 0x26, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0f, 0x00, 0x06, 0x10, 0x1c, 0x00,
+ 0x1e, 0xb4, 0x6b, 0x63, 0xcb, 0x42, 0x24, 0x3b, 0xa7, 0x37, 0xbf, 0x66,
+ 0x80, 0x1f, 0x58, 0x12, 0x5b, 0xe0, 0x95, 0x0c, 0xcd, 0x0e, 0xe3, 0xa3,
+ 0x1c, 0x8e, 0x72, 0x66, 0xe0, 0x00, 0xd4, 0x8e, 0xcb, 0x69, 0x8d, 0x86,
+ 0xad, 0xf5, 0x02, 0xd3, 0x1a, 0x6e, 0x96, 0xef, 0xd6, 0x9d, 0xec, 0x4f,
+ 0x9e, 0x75, 0x95, 0x5c, 0x87, 0xc8, 0x2b, 0x83, 0xe5, 0xd8, 0xbd, 0x61,
+ 0x1c, 0xf1, 0x26, 0xba, 0x4b, 0x04, 0xb6, 0x15, 0x93, 0xa1, 0x2e, 0xb5,
+ 0xaf, 0xcc, 0x41, 0xf7, 0xc6, 0x62, 0xcb, 0x2a, 0xa1, 0x8f, 0x6a, 0x1b,
+ 0x10, 0xbf, 0xf6, 0x59, 0x00, 0x0b, 0x01, 0xe0, 0x3e, 0xe8, 0x43, 0x4f,
+ 0xff, 0x1e, 0x4e, 0xe5, 0x90, 0xa3, 0x0b, 0xca, 0x2f, 0xb8, 0x81, 0x2b,
+ 0x14, 0xc1, 0x53, 0xaf, 0x0b, 0x92, 0x09, 0x1b, 0x3e, 0x80, 0x40, 0xb8,
+ 0x00, 0xc4, 0x12, 0x40, 0x39, 0x37, 0xfd, 0x6c, 0x82, 0x64, 0x2d, 0x02,
+ 0xee, 0x69, 0xec, 0x35, 0x9c, 0x99, 0xfd, 0x5b, 0xc7, 0x2a, 0xb5, 0x36,
+ 0xa8, 0xdb, 0xab, 0xd9, 0x4f, 0xc8, 0x89, 0xf2, 0xad, 0x5a, 0x15, 0xb5,
+ 0xee, 0x6f, 0x49, 0x2f, 0x95, 0x47, 0x79, 0xe2, 0x6b, 0x6d, 0x46, 0x88,
+ 0x50, 0x03, 0xc4, 0xc6, 0x82, 0xe8, 0x46, 0xeb, 0x30, 0xcf, 0x33, 0x90,
+ 0xd3, 0x12, 0x32, 0x6f, 0x7d, 0xa2, 0x73, 0xbf, 0x5b, 0xf1, 0x86, 0xee,
+ 0xf4, 0x51, 0x4f, 0x9a, 0x6f, 0x17, 0x2e, 0xdd, 0x26, 0xb5, 0xc1, 0x6e,
+ 0x19, 0x3c, 0xcb, 0x76, 0x6b, 0xe8, 0xc2, 0x37, 0x22, 0xdf, 0x5c, 0xbe,
+ 0x71, 0x78, 0x4e, 0x65, 0x0c, 0x94, 0xa1, 0xaf, 0x3a, 0x7b, 0xcb, 0x3d,
+ 0x20, 0x4a, 0xd6, 0xd2, 0x74, 0x12, 0x19, 0xea, 0x7a, 0x90, 0xe9, 0x34,
+ 0x1c, 0x5b, 0x7a, 0x8f, 0xad, 0x2a, 0x7c, 0x4d, 0x96, 0x53, 0x69, 0x23,
+ 0x01, 0x92, 0xca, 0x05, 0xff, 0xe9, 0xd4, 0x12, 0x1e, 0x45, 0x87, 0x3d,
+ 0x4d, 0xe4, 0x17, 0xf2, 0x1b, 0xb7, 0x8a, 0xa7, 0xbe, 0x4e, 0xd3, 0x5b,
+ 0xcf, 0x7f, 0x2d, 0xa3, 0x56, 0x5f, 0x17, 0xae, 0xca, 0xab, 0x43, 0x3c,
+ 0x71, 0xac, 0xa5, 0x48, 0xac, 0x53, 0xf9, 0xaf, 0x21, 0xc1, 0xe5, 0xc7,
+ 0x43, 0x83, 0x63, 0x05, 0x21, 0x21, 0x04, 0xd4, 0x0d, 0x0e, 0xcf, 0x0e,
+ 0xad, 0xe8, 0x06, 0x6e, 0xb7, 0x36, 0x42, 0x37, 0xdf, 0x32, 0x4d, 0x40,
+ 0x0c, 0xc2, 0x8d, 0x02, 0xaa, 0xed, 0xca, 0x04, 0x28, 0xf6, 0xf3, 0xd5,
+ 0xee, 0xaa, 0xb4, 0xf1, 0xc8, 0x0f, 0x9d, 0xd3, 0x56, 0xd5, 0xd2, 0x0d,
+ 0x79, 0xda, 0x78, 0xad, 0xbb, 0xc2, 0x11, 0xfc, 0x76, 0x85, 0xfc, 0xb3,
+ 0xc5, 0x07, 0xc1, 0xef, 0xf6, 0xc3, 0xa1, 0x39, 0x53, 0x15, 0x1d, 0x22,
+ 0xbb, 0xbc, 0xf3, 0x73, 0xb7, 0x01, 0xc6, 0xde, 0xee, 0xbb, 0x4e, 0x49,
+ 0x28, 0x4b, 0x09, 0xa2, 0x0f, 0x1a, 0xeb, 0x58, 0x6d, 0x9e, 0x4b, 0xb8,
+ 0xb7, 0x8d, 0xcc, 0x84, 0x1c, 0x15, 0xfa, 0x86, 0x30, 0x1b, 0xa5, 0x41,
+ 0xcb, 0xe5, 0x43, 0xf6, 0x92, 0xc7, 0xc2, 0xee, 0x95, 0xa9, 0x53, 0x37,
+ 0x0e, 0x0f, 0x3c, 0x70, 0x30, 0x2d, 0x97, 0x5f, 0xdf, 0x94, 0x8e, 0xda,
+ 0xfb, 0xd2, 0x4a, 0x22, 0x07, 0x06, 0x02, 0xba, 0x2d, 0x33, 0xea, 0xb3,
+ 0xf8, 0xae, 0x12, 0x24, 0x35, 0xb9, 0xe2, 0xfa, 0x1c, 0x03, 0x5f, 0x0c,
+ 0x2e, 0x50, 0xb9, 0x82, 0xe1, 0x45, 0x5d, 0x1d, 0x2d, 0xd7, 0xa8, 0x85,
+ 0x31, 0xb6, 0xe4, 0x5b, 0x0a, 0xd4, 0x5d, 0xc7, 0xfe, 0x4a, 0x0f, 0x12,
+ 0x65, 0x2f, 0x23, 0x25, 0xf0, 0xe1, 0xb6, 0xf0, 0xdc, 0x83, 0xca, 0xe8,
+ 0xcf, 0x13, 0x87, 0xe2, 0x4b, 0x67, 0x2a, 0x07, 0x4f, 0x95, 0xfe, 0x76,
+ 0x23, 0xd4, 0x47, 0x4e, 0x07, 0xcc, 0x57, 0x2e, 0x50, 0x24, 0x42, 0x89,
+ 0x57, 0xe5, 0xfc, 0x50, 0x80, 0xc4, 0x66, 0x10, 0x14, 0xed, 0xf5, 0x96,
+ 0xe2, 0xdf, 0xa8, 0xaf, 0xd3, 0x46, 0x75, 0xb7, 0x4e, 0xf0, 0xa9, 0xd1,
+ 0xe8, 0xd2, 0x8f, 0x2e, 0xb1, 0x60, 0x7a, 0x44, 0x0b, 0x13, 0xe3, 0xf1,
+ 0xa4, 0xa4, 0x8c, 0x46, 0xd4, 0x6e, 0x1f, 0xac, 0x46, 0xd9, 0xb9, 0x6e,
+ 0x81, 0x2d, 0xb2, 0x47, 0xf9, 0x13, 0xfa, 0xc4, 0x6d, 0x91, 0xd6, 0xf1,
+ 0x32, 0xa3, 0x19, 0xbc, 0x08, 0x76, 0xb3, 0x1a, 0xe0, 0xed, 0x4f, 0xc8,
+ 0x23, 0xd2, 0xf0, 0x01, 0x23, 0x99, 0x32, 0xee, 0xb1, 0x12, 0xa4, 0x80,
+ 0xb4, 0x26, 0xf0, 0x89, 0x81, 0x7e, 0x4c, 0xa4, 0x8d, 0xc6, 0x6a, 0x7e,
+ 0x81, 0x89, 0x02, 0x9c, 0x0a, 0x59, 0xee, 0x66, 0xe1, 0xb9, 0xba, 0x34,
+ 0x9d, 0x91, 0xcd, 0xb4, 0x70, 0xe6, 0xfc, 0xbf, 0x4c, 0xb4, 0x69, 0x0b,
+ 0x2a, 0x3a, 0x1f, 0xd0, 0x91, 0x24, 0x64, 0x40, 0x4a, 0xbd, 0xf5, 0x51,
+ 0x13, 0x54, 0x2a, 0x76, 0xd7, 0x14, 0x57, 0x72, 0xa5, 0xd2, 0xc0, 0xe4,
+ 0x71, 0xc7, 0xe4, 0x5b, 0x5d, 0xae, 0xff, 0x4f, 0xfb, 0x6a, 0xd7, 0x60,
+ 0xe8, 0x32, 0x58, 0x68, 0xd1, 0xae, 0xa4, 0xcd, 0xa3, 0x9c, 0x1f, 0xef,
+ 0xde, 0x9b, 0x39, 0x94, 0xef, 0x1c, 0x9b, 0x97, 0xae, 0x58, 0xaa, 0x6d,
+ 0x16, 0xd7, 0xb7, 0xa5, 0x7b, 0x67, 0xed, 0x11, 0x0f, 0x46, 0xfc, 0xe4,
+ 0x62, 0x54, 0x09, 0x28, 0x49, 0xa0, 0x4f, 0xe2, 0xdc, 0xf2, 0xe2, 0xa5,
+ 0x24, 0x09, 0xe7, 0x86, 0xf9, 0xae, 0x11, 0x57, 0x5d, 0x28, 0x00, 0xe6,
+ 0x96, 0xde, 0xc0, 0xc3, 0x03, 0x0f, 0xe1, 0x22, 0xe1, 0xb1, 0xff, 0x82,
+ 0xd0, 0x2a, 0xe1, 0x0b, 0x2e, 0x44, 0xd2, 0x1b, 0xb2, 0xec, 0xc6, 0x0e,
+ 0x96, 0x80, 0x01, 0x32, 0x28, 0x9e, 0xdd, 0x34, 0x48, 0x55, 0x6e, 0x27,
+ 0xd8, 0x17, 0xcd, 0x1a, 0x79, 0x18, 0x97, 0x0c, 0x63, 0x53, 0xc8, 0x5c,
+ 0xaf, 0x52, 0x29, 0x00, 0xea, 0xc8, 0x4d, 0xb7, 0x67, 0x24, 0x81, 0x5a,
+ 0x5c, 0x55, 0x52, 0xc6, 0xd4, 0x90, 0x79, 0xd2, 0x7b, 0x3a, 0x09, 0x5c,
+ 0x18, 0x4f, 0xb2, 0x56, 0xc1, 0x52, 0x8f, 0xf8, 0x69, 0xf4, 0x73, 0x24,
+ 0xa6, 0x2e, 0xcb, 0x81, 0xe6, 0x6c, 0x76, 0x49, 0x32, 0xc4, 0xd6, 0x30,
+ 0x87, 0x3f, 0xdf, 0x21, 0xd4, 0xd7, 0x06, 0xa9, 0xf5, 0x58, 0x53, 0x41,
+ 0x92, 0x18, 0x0c, 0x2d, 0x5a, 0x3f, 0xf8, 0x77, 0x77, 0x21, 0xc8, 0x99,
+ 0xfa, 0xfe, 0x8c, 0x0d, 0xb4, 0x4f, 0x1d, 0x96, 0x77, 0x33, 0x54, 0x17,
+ 0xf1, 0x3b, 0x9e, 0xf7, 0x9b, 0x1a, 0x9a, 0xbd, 0x56, 0x06, 0x2e, 0x79,
+ 0x17, 0x99, 0xf7, 0xd0, 0xf6, 0x22, 0x90, 0xc1, 0x83, 0x80, 0x36, 0x4d,
+ 0x1e, 0x42, 0x27, 0x9a, 0xd3, 0xbd, 0xc8, 0x38, 0x5d, 0xb0, 0x99, 0x4a,
+ 0x4c, 0x91, 0x41, 0x0c, 0x63, 0x8a, 0x67, 0x98, 0xac, 0x70, 0xcd, 0x7c,
+ 0x57, 0xb5, 0x18, 0xd3, 0x30, 0xa0, 0x16, 0x73, 0x4b, 0xfe, 0xf8, 0x91,
+ 0xc0, 0xed, 0x78, 0x6d, 0x92, 0x62, 0x4c, 0x76, 0x5b, 0x92, 0x46, 0xfc,
+ 0xbc, 0xcc, 0xb6, 0xbc, 0x10, 0xae, 0x41, 0xfb, 0x9a, 0x35, 0xd1, 0x4f,
+ 0x91, 0xad, 0x07, 0xd7, 0x43, 0x31, 0x7c, 0xaf, 0xc2, 0xa2, 0x40, 0x30,
+ 0x10, 0xb2, 0x38, 0x72, 0xef, 0xaf, 0xa9, 0x4e, 0x9d, 0xb8, 0x03, 0x43,
+ 0x35, 0xa8, 0x2b, 0x22, 0x3f, 0x9f, 0x0e, 0x86, 0xed, 0xe3, 0x68, 0x5f,
+ 0x86, 0x8c, 0x94, 0xc0, 0x27, 0xbf, 0x73, 0xf8, 0xad, 0xef, 0xbe, 0xc9,
+ 0x3e, 0xa9, 0xf0, 0x7a, 0x49, 0x7a, 0xea, 0x4a, 0x52, 0xd7, 0x69, 0x11,
+ 0xf6, 0x5c, 0xfc, 0x19, 0x78, 0x1d, 0xf9, 0xcd, 0xb9, 0xa9, 0xfe, 0xc4,
+ 0x08, 0x89, 0xcc, 0x69, 0x88, 0x11, 0xae, 0x58, 0x12, 0x57, 0xac, 0x10,
+ 0x62, 0x5f, 0x45, 0xdd, 0x22, 0xfa, 0x4e, 0x5c, 0xd0, 0x4d, 0x33, 0x27,
+ 0x90, 0xd0, 0xdc, 0x21, 0x25, 0x69, 0x22, 0xcb, 0xf5, 0x36, 0x4d, 0x79,
+ 0xc5, 0xb9, 0xc6, 0x31, 0x10, 0x0b, 0x00, 0x34, 0x03, 0x00, 0x00, 0x27,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x05, 0x10,
+ 0x1c, 0x00, 0x1e, 0xd7, 0xf0, 0x87, 0xff, 0x32, 0x27, 0x63, 0x95, 0xd7,
+ 0xa5, 0xee, 0x11, 0x43, 0xb2, 0x7e, 0xb3, 0x04, 0x3b, 0xa5, 0xbc, 0x5f,
+ 0xa6, 0x9c, 0x49, 0xb4, 0xa2, 0x3f, 0x49, 0x3d, 0xff, 0x3d, 0xbd, 0x8b,
+ 0x93, 0x66, 0xf1, 0x1e, 0xec, 0x1d, 0x73, 0x22, 0x79, 0x00, 0x18, 0x4f,
+ 0x4b, 0x51, 0x93, 0x12, 0x0c, 0x48, 0x12, 0x0c, 0x59, 0x4c, 0x48, 0x01,
+ 0xd1, 0xeb, 0x2c, 0x41, 0x45, 0xcc, 0x5d, 0xfc, 0xf2, 0x88, 0x32, 0x61,
+ 0xb0, 0x96, 0x12, 0xff, 0xb7, 0xdc, 0x62, 0x8e, 0xad, 0x7a, 0xb5, 0xc9,
+ 0x05, 0x3d, 0x55, 0x92, 0x93, 0x6b, 0xf5, 0x03, 0xa5, 0x75, 0xd7, 0xa5,
+ 0x7e, 0x9a, 0x83, 0xff, 0x5c, 0x07, 0xb5, 0x80, 0xea, 0x86, 0x71, 0x24,
+ 0xdd, 0xfa, 0x52, 0x5a, 0xd5, 0x56, 0x18, 0x60, 0x3b, 0x8a, 0xc7, 0x16,
+ 0xc1, 0x8c, 0xf7, 0xc7, 0xf0, 0xc7, 0x4e, 0xea, 0x58, 0xf2, 0x56, 0xf1,
+ 0xa8, 0x87, 0xa4, 0x47, 0xcf, 0x36, 0x67, 0xbd, 0x05, 0xa3, 0x2b, 0x52,
+ 0xfe, 0xdf, 0x24, 0x4b, 0x13, 0x05, 0x46, 0x63, 0x0d, 0x17, 0x60, 0xd3,
+ 0xdd, 0xa5, 0x7c, 0x22, 0x7e, 0x62, 0xd8, 0x0d, 0x01, 0xce, 0xe6, 0x7a,
+ 0xf3, 0x26, 0xf3, 0x4a, 0xc9, 0x4d, 0xac, 0xf3, 0x11, 0x16, 0xa6, 0xf1,
+ 0xc1, 0x65, 0x26, 0x24, 0xab, 0xcd, 0xf1, 0x7e, 0xac, 0x23, 0x64, 0xb9,
+ 0xf0, 0x1e, 0x79, 0x7c, 0x9a, 0xcd, 0xf1, 0x7d, 0x29, 0xb2, 0x56, 0xae,
+ 0xdc, 0x99, 0xbd, 0x96, 0x19, 0xce, 0xb0, 0xdd, 0xce, 0x78, 0xe7, 0x3b,
+ 0xde, 0xd7, 0xbc, 0x53, 0x1e, 0x10, 0x54, 0xbf, 0x26, 0x8c, 0xc4, 0x08,
+ 0x7d, 0x75, 0x75, 0xf2, 0x47, 0x7f, 0x79, 0xcc, 0x6c, 0x97, 0xb1, 0xe0,
+ 0x02, 0x52, 0xae, 0x94, 0xd2, 0x1b, 0x6c, 0x0b, 0x54, 0x26, 0xd1, 0x7a,
+ 0x94, 0xe2, 0x97, 0xd0, 0x9c, 0x4e, 0x09, 0xa2, 0xab, 0x67, 0x9f, 0x57,
+ 0x63, 0xa2, 0xa5, 0xa3, 0x56, 0xf4, 0xe6, 0xf4, 0x3a, 0xf2, 0x3e, 0x5f,
+ 0x7e, 0x71, 0xed, 0x05, 0x7c, 0xc1, 0xb0, 0x85, 0x14, 0xdb, 0x60, 0x85,
+ 0x53, 0x20, 0xf0, 0x98, 0x5f, 0xdd, 0x72, 0x0a, 0x3a, 0xc0, 0xd2, 0x02,
+ 0xf9, 0x14, 0x6b, 0xae, 0x51, 0x9d, 0xd0, 0x5c, 0xbb, 0x07, 0x7d, 0x48,
+ 0x89, 0x76, 0x16, 0xcf, 0x24, 0x28, 0x37, 0x51, 0x5a, 0x7d, 0xb5, 0xf0,
+ 0x02, 0xdd, 0x82, 0x00, 0x4a, 0x70, 0xd7, 0xa1, 0x82, 0x5e, 0x95, 0x65,
+ 0x4c, 0xf7, 0xe0, 0x7f, 0xc9, 0x5f, 0x8b, 0xf3, 0xaa, 0x35, 0x21, 0xa0,
+ 0xbc, 0x39, 0x74, 0x0f, 0x8b, 0x73, 0x2e, 0xd9, 0x16, 0x21, 0x20, 0x88,
+ 0xaf, 0xdf, 0x0d, 0x0b, 0xa3, 0xec, 0x84, 0x16, 0x23, 0x80, 0xc9, 0x15,
+ 0x4e, 0x5f, 0x16, 0x73, 0xb9, 0x64, 0x7d, 0x9b, 0x04, 0x9c, 0x49, 0xa0,
+ 0x4d, 0x94, 0xf1, 0xc9, 0xd8, 0x07, 0x75, 0x19, 0x76, 0xb2, 0x52, 0x69,
+ 0x4b, 0x02, 0x94, 0x0a, 0xc5, 0x30, 0xe1, 0x7e, 0x87, 0xf1, 0x0a, 0x72,
+ 0x33, 0x62, 0xf6, 0xcd, 0x78, 0x3f, 0xc8, 0x6f, 0x40, 0x6c, 0x6c, 0x93,
+ 0x8c, 0xf4, 0x15, 0xd7, 0x3e, 0x64, 0x89, 0x84, 0x81, 0x18, 0xe1, 0x5a,
+ 0xc8, 0xeb, 0x7f, 0xae, 0x37, 0x73, 0x62, 0x7c, 0x56, 0xa8, 0x3f, 0x72,
+ 0x30, 0x4d, 0x6d, 0x9e, 0x7c, 0xe9, 0xa6, 0xaa, 0xaa, 0xba, 0x4b, 0x58,
+ 0x88, 0x91, 0x9e, 0x93, 0xfc, 0xb5, 0x47, 0x55, 0x6b, 0x91, 0x22, 0x6b,
+ 0xf1, 0xbf, 0x16, 0x10, 0x58, 0xe2, 0x4e, 0xfe, 0x15, 0x04, 0x5c, 0x46,
+ 0x3f, 0xb5, 0x96, 0x43, 0xe3, 0xc1, 0xe9, 0x62, 0xd6, 0xfc, 0x7d, 0xb5,
+ 0x75, 0x27, 0x85, 0x75, 0x22, 0xbb, 0x30, 0x2f, 0xfe, 0xee, 0x05, 0xa7,
+ 0x79, 0x17, 0xf3, 0x74, 0xc7, 0x7e, 0xb6, 0x7c, 0x20, 0x04, 0x8c, 0xee,
+ 0x78, 0x11, 0xe5, 0x5f, 0xa6, 0x96, 0xa9, 0x30, 0x1d, 0xb5, 0x5c, 0xf3,
+ 0xf1, 0xb2, 0x28, 0xf4, 0xc0, 0xc8, 0x90, 0x9e, 0x79, 0x1b, 0xd2, 0x24,
+ 0x55, 0x37, 0x81, 0x30, 0x25, 0x71, 0x45, 0x18, 0xf2, 0x3b, 0x7c, 0x59,
+ 0x34, 0xa4, 0xf5, 0x0c, 0x89, 0x8d, 0x35, 0x6f, 0x0a, 0x33, 0x2c, 0x0b,
+ 0xcf, 0xcd, 0x2d, 0x3d, 0x83, 0xf3, 0x6c, 0x98, 0x6e, 0x5f, 0xa1, 0x8d,
+ 0xf4, 0x4d, 0x0b, 0x76, 0x45, 0xb0, 0xb1, 0x35, 0x95, 0x4a, 0x28, 0x43,
+ 0xf5, 0x33, 0xba, 0xc2, 0x1c, 0x62, 0xc6, 0xb1, 0x77, 0x3d, 0x60, 0x9f,
+ 0x9c, 0x82, 0xd2, 0x95, 0x8a, 0xc3, 0xc9, 0x89, 0xf1, 0x58, 0xad, 0xb5,
+ 0x6a, 0x77, 0xae, 0xc2, 0x4c, 0x99, 0x63, 0x5f, 0xa8, 0x96, 0x3b, 0x6b,
+ 0x36, 0x31, 0x9c, 0x70, 0x53, 0x79, 0x3a, 0x81, 0xc8, 0x1b, 0x99, 0xc4,
+ 0x25, 0x43, 0x02, 0x13, 0xd7, 0x9b, 0x56, 0x3d, 0x77, 0x2e, 0xa3, 0x0d,
+ 0x4d, 0xed, 0xd6, 0x16, 0x3b, 0xc8, 0xf2, 0x9d, 0xf2, 0x3d, 0x83, 0x6c,
+ 0xf7, 0xda, 0x9a, 0x31, 0x16, 0x37, 0xa0, 0x04, 0x28, 0x67, 0x20, 0xe7,
+ 0x5c, 0xbc, 0xb2, 0x9c, 0xc8, 0x80, 0x5b, 0x0b, 0x34, 0x10, 0xbc, 0x8c,
+ 0xb7, 0xc6, 0x36, 0x0b, 0x4d, 0x31, 0xe3, 0x09, 0x11, 0x02, 0xa1, 0x40,
+ 0x62, 0xf3, 0xa3, 0x45, 0x3e, 0x5e, 0x6d, 0xbd, 0x9a, 0x14, 0xde, 0x84,
+ 0xcd, 0x74, 0xb6, 0x07, 0xe3, 0x4f, 0x8c, 0xff, 0xbb, 0xd0, 0x6a, 0x6b,
+ 0x04, 0xb3, 0x03, 0xf0, 0x1c, 0x81, 0xc0, 0xa4, 0xad, 0x4d, 0x0c, 0x2c,
+ 0x33, 0x72, 0x4b, 0xed, 0x74, 0x4f, 0x4d, 0x0b, 0xaa, 0x31, 0xd7, 0x27,
+ 0xfd, 0x42, 0x50, 0xd0, 0x7e, 0x4b, 0x9b, 0x53, 0x86, 0x16, 0x80, 0x30,
+ 0xe4, 0x76, 0xfe, 0xf0, 0x6b, 0x46, 0xf0, 0x2d, 0x7e, 0x8a, 0xe0, 0x98,
+ 0x9c, 0x5a, 0x20, 0x9e, 0x47, 0xe1, 0xec, 0x17, 0x14, 0x5f, 0xa2, 0xa9,
+ 0x28, 0xdf, 0x5b, 0x61, 0x57, 0x16, 0x9b, 0x1f, 0x81, 0xef, 0x4e, 0x3c,
+ 0x62, 0x89, 0x25, 0xe5, 0x9d, 0x33, 0x79, 0x01, 0xd7, 0x2f, 0x33, 0x57,
+ 0xb9, 0x7e, 0x7e, 0x04, 0xe9, 0xe4, 0xea, 0x05, 0xe4, 0xe7, 0x00, 0x01,
+ 0x04, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
+ 0x11, 0x00, 0x04, 0x10, 0x18, 0x00, 0x1c, 0xbd, 0x8d, 0x63, 0x56, 0xbc,
+ 0x06, 0x98, 0x0f, 0x88, 0x1d, 0x98, 0x9a, 0x94, 0x8b, 0xeb, 0xec, 0x0c,
+ 0x44, 0xe6, 0x38, 0x9e, 0x4d, 0xe4, 0x07, 0xcd, 0xff, 0xd9, 0x14, 0xd1,
+ 0x95, 0xb5, 0x91, 0xab, 0x5e, 0x60, 0x57, 0x5e, 0x04, 0xb8, 0xe7, 0x68,
+ 0x21, 0x85, 0x06, 0xfd, 0xfa, 0x03, 0x6d, 0x06, 0x63, 0x9e, 0x5a, 0x0f,
+ 0xc7, 0x10, 0x28, 0x26, 0x41, 0xad, 0x64, 0x96, 0x16, 0x8b, 0xda, 0x67,
+ 0x92, 0x0a, 0x96, 0x17, 0x24, 0x8f, 0x12, 0x8f, 0x9a, 0xd5, 0x36, 0x5f,
+ 0x0b, 0x50, 0x7c, 0xf7, 0x54, 0x64, 0xed, 0xde, 0x7e, 0xb5, 0x78, 0xf4,
+ 0x93, 0x85, 0xf3, 0xbd, 0x78, 0x00, 0xec, 0x68, 0x85, 0x58, 0x48, 0x07,
+ 0xc9, 0x17, 0xcf, 0xf3, 0x02, 0xc7, 0xb6, 0x30, 0xee, 0xf5, 0xdb, 0x21,
+ 0x1c, 0x24, 0x78, 0x28, 0x48, 0x6c, 0x6b, 0x92, 0xf4, 0x33, 0x0b, 0x3c,
+ 0x9e, 0xa4, 0x36, 0x27, 0xb3, 0xfb, 0xed, 0x82, 0x10, 0x63, 0x85, 0xc1,
+ 0x69, 0xa9, 0x48, 0x29, 0x2a, 0xa8, 0x8d, 0xe6, 0x10, 0x0e, 0xf3, 0xcd,
+ 0x8b, 0x02, 0x0c, 0xc6, 0xaa, 0xbf, 0xf8, 0xc8, 0xc0, 0xfa, 0xee, 0x19,
+ 0x89, 0xf7, 0x35, 0x5f, 0x64, 0x6a, 0x2d, 0xac, 0x7e, 0xcb, 0x63, 0xf1,
+ 0x8b, 0xc0, 0xa8, 0x44, 0xf8, 0xd7, 0x9c, 0xfe, 0xd5, 0x91, 0xf0, 0xba,
+ 0xb3, 0x05, 0xea, 0xe6, 0x14, 0x4f, 0x3a, 0xea, 0xca, 0x4f, 0x16, 0xd1,
+ 0x79, 0xac, 0x10, 0x80, 0xd4, 0xb3, 0xfa, 0x3b, 0x24, 0x11, 0x9c, 0xb2,
+ 0x3f, 0xc2, 0x0c, 0xfd, 0x3f, 0x4d, 0xbd, 0x2d, 0xdc, 0x96, 0x56, 0x85,
+ 0xd6, 0x25, 0xaa, 0xfa, 0xb5, 0x78, 0xee, 0xac, 0x58, 0x7e, 0xbf, 0xbb,
+ 0x23, 0xb6, 0x27, 0x86, 0x7a, 0xd4, 0x06, 0x74, 0xc1, 0x41, 0x95, 0x74,
+ 0xba, 0xc4, 0x9c, 0xf8, 0x51, 0x79, 0xd3, 0x02, 0x3a, 0x7d, 0x4d, 0xc0,
+ 0x94, 0xce, 0x7e, 0xd8, 0xc4, 0xb4, 0xf0, 0x3d, 0x66, 0xc7, 0x88, 0xf4,
+ 0xb3, 0xd1, 0xed, 0x7e, 0x03, 0xb7, 0x38, 0x07, 0x95, 0x47, 0x20, 0xbd,
+ 0x36, 0xef, 0x0a, 0xd4, 0x04, 0x5e, 0x42, 0x54, 0x06, 0x70, 0xc0, 0x3c,
+ 0x57, 0xad, 0x59, 0x33, 0x2a, 0x32, 0x9f, 0xc0, 0xf5, 0xd6, 0xb1, 0x1a,
+ 0x24, 0x10, 0xc1, 0x79, 0x0e, 0x27, 0x6c, 0xa1, 0x7d, 0xf3, 0xae, 0xa5,
+ 0x1f, 0xe5, 0x7e, 0x4a, 0xb2, 0x11, 0x5a, 0xf5, 0xd9, 0xdc, 0x88, 0xb4,
+ 0xdf, 0x00, 0x3a, 0x67, 0x76, 0x43, 0x89, 0x19, 0xc3, 0x1f, 0x9b, 0x01,
+ 0x0c, 0xd2, 0x72, 0xdc, 0x9a, 0x14, 0x3e, 0x4c, 0xf2, 0x8a, 0x0d, 0x0e,
+ 0x17, 0x1a, 0xa5, 0xe8, 0x82, 0x5e, 0x4d, 0xc8, 0xa1, 0xef, 0x19, 0x8e,
+ 0xba, 0x71, 0x71, 0x8e, 0xab, 0xb9, 0x9f, 0x6d, 0x57, 0x84, 0x64, 0x4d,
+ 0x2d, 0xf6, 0x31, 0x73, 0x5b, 0x01, 0xef, 0x48, 0x01, 0xf3, 0xa8, 0x4f,
+ 0xcc, 0x08, 0xac, 0x93, 0x79, 0x60, 0xae, 0x4a, 0x48, 0xcb, 0xa4, 0xba,
+ 0x7a, 0xc7, 0x88, 0x3f, 0x7b, 0x95, 0xc6, 0x0c, 0x67, 0xf8, 0x6e, 0x02,
+ 0x04, 0x36, 0xd2, 0x46, 0xd8, 0xdb, 0xaf, 0xa7, 0xfc, 0x7e, 0x25, 0x80,
+ 0xf4, 0x59, 0x57, 0x59, 0x90, 0x78, 0x88, 0xef, 0xb0, 0x86, 0xc8, 0xfe,
+ 0x86, 0x4b, 0x50, 0xab, 0x72, 0xd0, 0xc6, 0x31, 0xfc, 0xa7, 0x3e, 0x81,
+ 0x4f, 0xd6, 0xba, 0x52, 0xa1, 0xec, 0x95, 0x83, 0xd9, 0x57, 0x19, 0x5e,
+ 0x78, 0xed, 0x70, 0xfd, 0x55, 0x57, 0xa6, 0x6c, 0xfd, 0xd7, 0xfb, 0x06,
+ 0x2f, 0x3c, 0x6f, 0x85, 0x42, 0x2d, 0x73, 0xb9, 0x48, 0x56, 0xd3, 0xef,
+ 0x32, 0x86, 0xea, 0x2b, 0x3e, 0xd8, 0xf3, 0x9f, 0x1e, 0x94, 0xdc, 0xdf,
+ 0x97, 0x6f, 0xad, 0x4d, 0xf7, 0x47, 0x24, 0xcb, 0xc0, 0xb2, 0xb5, 0x54,
+ 0x61, 0x5a, 0x4b, 0x9c, 0x2a, 0x15, 0x4d, 0x98, 0x28, 0x45, 0x1d, 0x9b,
+ 0x3f, 0xf1, 0x7a, 0x9e, 0x0f, 0x6d, 0xcb, 0x8b, 0xd8, 0x34, 0xfe, 0x88,
+ 0x85, 0x0e, 0xc1, 0xea, 0x3d, 0xfa, 0x7b, 0xfc, 0xf8, 0xea, 0xdf, 0x40,
+ 0x47, 0x73, 0xf2, 0xc4, 0x4d, 0x98, 0xda, 0x08, 0x3c, 0x45, 0x6f, 0xec,
+ 0x40, 0xa5, 0x7c, 0x77, 0x02, 0x8a, 0x64, 0x27, 0x8e, 0xe0, 0x8b, 0xb1,
+ 0x22, 0x69, 0x1d, 0x94, 0x2a, 0xb6, 0x2c, 0x0e, 0x09, 0xa8, 0x73, 0x89,
+ 0xa5, 0xfe, 0xf0, 0x99, 0xf5, 0x5a, 0xca, 0x23, 0x7d, 0xdb, 0x74, 0x03,
+ 0x6f, 0xbd, 0x46, 0xc8, 0xc0, 0x96, 0x05, 0x89, 0x83, 0x9f, 0xbb, 0xe6,
+ 0xf8, 0xbe, 0xf8, 0x69, 0x1b, 0x5e, 0x03, 0x64, 0x84, 0xc9, 0x86, 0xb6,
+ 0xb9, 0x0d, 0xa5, 0x73, 0x3c, 0xd6, 0xdd, 0x9f, 0xf3, 0x9d, 0xa0, 0x14,
+ 0xbc, 0xa7, 0xcf, 0x03, 0x3d, 0xcd, 0x22, 0x21, 0x61, 0x6a, 0xf3, 0x9e,
+ 0x76, 0x3d, 0xde, 0x98, 0x81, 0x5c, 0x80, 0x42, 0xd0, 0xfc, 0x61, 0x91,
+ 0xff, 0x0e, 0x0b, 0xff, 0x1b, 0x95, 0xa2, 0xfa, 0x12, 0x26, 0x71, 0xcd,
+ 0x17, 0x9d, 0x5d, 0xab, 0xc8, 0x13, 0x7d, 0x64, 0xc8, 0x04, 0x64, 0x93,
+ 0xb1, 0x5c, 0x03, 0x05, 0xa2, 0x78, 0x93, 0xd4, 0xfb, 0x11, 0x1f, 0xae,
+ 0xe0, 0xf9, 0x80, 0x7b, 0x31, 0x54, 0xba, 0x9a, 0x0e, 0x67, 0x78, 0x56,
+ 0xc2, 0x26, 0x0c, 0xae, 0x12, 0x1a, 0xb0, 0x08, 0x06, 0x86, 0xc4, 0xd1,
+ 0xa8, 0x63, 0x81, 0x7d, 0x09, 0xae, 0xe5, 0xd6, 0xd9, 0x93, 0x3a, 0x89,
+ 0x1d, 0x27, 0x75, 0x26, 0xa3, 0x0b, 0xdd, 0xac, 0x23, 0xda, 0xd4, 0xc7,
+ 0x11, 0x4d, 0x33, 0xf0, 0xfa, 0x35, 0x42, 0x7f, 0x63, 0x83, 0x52, 0x0d,
+ 0x4c, 0x20, 0xb3, 0xae, 0x03, 0x67, 0x44, 0x59, 0x75, 0x9c, 0xf6, 0x0b,
+ 0xb8, 0xf4, 0xe2, 0x4b, 0xf5, 0xe6, 0xb4, 0xc0, 0x26, 0x24, 0x65, 0x09,
+ 0xc8, 0xaa, 0xd8, 0xfa, 0x0c, 0x94, 0x47, 0xfe, 0x23, 0x26, 0x77, 0x2f,
+ 0x11, 0xea, 0x8e, 0x72, 0x3f, 0xf0, 0x67, 0x38, 0xb5, 0x5d, 0x3f, 0x6d,
+ 0x0b, 0x09, 0xd9, 0x8c, 0xca, 0x20, 0xe9, 0x6d, 0x7e, 0x6e, 0xb3, 0x81,
+ 0xe7, 0x35, 0xcc, 0xa6, 0xe0, 0x95, 0x32, 0x51, 0x31, 0x44, 0x85, 0x0a,
+ 0x08, 0xe9, 0x8a, 0x9b, 0x3d, 0x11, 0x94, 0x3e, 0x90, 0x69, 0xff, 0x5d,
+ 0x89, 0x19, 0xa0, 0x61, 0x2f, 0x5a, 0x2d, 0x49, 0xff, 0xbf, 0x40, 0xcf,
+ 0x3e, 0xbc, 0xe3, 0xdb, 0xa4, 0x24, 0x16, 0xdf, 0x08, 0x9c, 0x2d, 0xaf,
+ 0xc4, 0xb2, 0x2b, 0x82, 0x48, 0xd4, 0xd9, 0x3b, 0x0d, 0x95, 0x0e, 0xb3,
+ 0xf0, 0x0e, 0x8f, 0x5a, 0xc0, 0x22, 0x0b, 0x5e, 0xc9, 0xa2, 0x4f, 0x0a,
+ 0x6c, 0x06, 0x5f, 0xd4, 0xc5, 0x9c, 0xdc, 0x6d, 0x8c, 0xff, 0x21, 0xa3,
+ 0x02, 0xd1, 0x3a, 0x6e, 0x72, 0xf5, 0x0b, 0x9a, 0x61, 0xc7, 0x79, 0x4d,
+ 0x66, 0x29, 0xf1, 0xfd, 0xbb, 0xde, 0x9a, 0x7a, 0xc6, 0x0e, 0x47, 0xd1,
+ 0xae, 0xb1, 0x4d, 0x36, 0x20, 0x28, 0x5f, 0x24, 0x3b, 0x4f, 0xd3, 0xcf,
+ 0x6c, 0xd5, 0xed, 0x8d, 0x04, 0xa2, 0xa7, 0x1c, 0x0a, 0x6f, 0xb1, 0xf0,
+ 0x9a, 0x4a, 0xa1, 0xdf, 0x0d, 0xe3, 0x00, 0x18, 0xc8, 0x5d, 0x40, 0x5c,
+ 0x99, 0xea, 0xbe, 0xb4, 0x5f, 0xf1, 0x22, 0x7e, 0x76, 0xa9, 0x24, 0xdd,
+ 0x9c, 0xb7, 0x2d, 0x87, 0x6d, 0x66, 0x2d, 0x91, 0xbd, 0x93, 0x7d, 0x3a,
+ 0xe1, 0xc2, 0xa2, 0x18, 0xb5, 0x9d, 0x2b, 0x76, 0x5a, 0x6c, 0x5b, 0xda,
+ 0xe1, 0xe3, 0x92, 0xbe, 0xac, 0x56, 0xea, 0xc9, 0x07, 0x58, 0xad, 0x7c,
+ 0xd1, 0x1f, 0xee, 0x0a, 0x33, 0x3b, 0xd9, 0x5c, 0xed, 0x15, 0x13, 0x45,
+ 0x6a, 0x95, 0x96, 0x00, 0xda, 0x05, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x10, 0x00, 0x07, 0x10, 0x14, 0x00, 0x1e,
+ 0xae, 0x59, 0xfd, 0xcb, 0xf5, 0x0c, 0xbc, 0x62, 0x6d, 0xcb, 0x64, 0xf1,
+ 0xf4, 0xe2, 0x69, 0x65, 0x2f, 0xf9, 0x25, 0x28, 0x8d, 0xff, 0xaf, 0xcc,
+ 0x37, 0x0f, 0x88, 0x78, 0x94, 0x00, 0x53, 0xc2, 0x87, 0x1f, 0xa9, 0x4a,
+ 0x44, 0x4c, 0xac, 0xac, 0xe5, 0x5d, 0xa9, 0x30, 0x07, 0x2c, 0x5d, 0x8e,
+ 0x79, 0x52, 0xb8, 0xf0, 0xf5, 0xa6, 0x1e, 0x73, 0x27, 0x88, 0x42, 0x28,
+ 0x5f, 0x31, 0x0a, 0xe6, 0xba, 0x99, 0xa5, 0x37, 0x4a, 0xe7, 0xa7, 0x48,
+ 0xda, 0x32, 0x37, 0x5a, 0xd9, 0xa5, 0x53, 0x99, 0xe4, 0x2b, 0xd0, 0x10,
+ 0x38, 0x34, 0xc2, 0xdd, 0xf8, 0xc2, 0x98, 0xf1, 0xa3, 0x88, 0x9a, 0xd9,
+ 0x98, 0x63, 0x9a, 0xa6, 0x11, 0xbf, 0x5c, 0x6d, 0x58, 0x35, 0x49, 0x70,
+ 0x01, 0xde, 0x5e, 0x3d, 0xbc, 0xaa, 0xd4, 0x8e, 0x50, 0xb4, 0x7d, 0xf3,
+ 0x6e, 0x7c, 0x17, 0x71, 0xd6, 0xd9, 0x90, 0xde, 0x76, 0x8c, 0x65, 0x9b,
+ 0xeb, 0x70, 0x69, 0xc5, 0xe2, 0x60, 0x54, 0xcb, 0x25, 0xb3, 0xaf, 0x09,
+ 0x94, 0xf2, 0xec, 0x53, 0x96, 0xad, 0x34, 0xb6, 0xd7, 0x7e, 0xf3, 0x8e,
+ 0xa9, 0x52, 0x8b, 0xfc, 0xe8, 0x8e, 0xa2, 0x97, 0x6d, 0xb7, 0x7b, 0x7f,
+ 0x55, 0x4b, 0xf1, 0x18, 0x93, 0xf9, 0xf2, 0x8e, 0x88, 0xec, 0x52, 0xd1,
+ 0x9b, 0xfc, 0x23, 0x18, 0xa9, 0x37, 0xb9, 0x58, 0x61, 0x84, 0x7f, 0x4e,
+ 0xb7, 0xf3, 0x95, 0xce, 0xaf, 0xa8, 0x70, 0xdd, 0xdc, 0xba, 0x42, 0x61,
+ 0x3d, 0xdd, 0xc7, 0xa8, 0xec, 0x7b, 0x51, 0xd2, 0x65, 0xa0, 0x40, 0x41,
+ 0x63, 0x55, 0x50, 0x7c, 0xf9, 0x86, 0xf3, 0x74, 0x9c, 0x9a, 0xd4, 0x70,
+ 0x94, 0xec, 0x26, 0x9d, 0x65, 0x25, 0xd6, 0x68, 0xca, 0x2b, 0xaa, 0xef,
+ 0xa1, 0x87, 0x63, 0xf1, 0xd1, 0xfe, 0xcc, 0xc6, 0x59, 0x0e, 0xe2, 0x8c,
+ 0x5f, 0xcf, 0xce, 0xc7, 0x00, 0x3a, 0x76, 0xc7, 0x5f, 0x45, 0x49, 0xbe,
+ 0x8f, 0x28, 0x2a, 0x5b, 0x47, 0x27, 0x3b, 0x28, 0x59, 0xa4, 0x57, 0x22,
+ 0xda, 0x7a, 0xd0, 0x73, 0xe5, 0xda, 0x62, 0x21, 0xdd, 0x0e, 0xef, 0xa7,
+ 0x03, 0xef, 0x8b, 0x28, 0x09, 0x07, 0xa3, 0x07, 0x08, 0x7e, 0x04, 0xd2,
+ 0xaa, 0xb6, 0xdf, 0x2a, 0xa7, 0x12, 0x30, 0xff, 0xbb, 0xb2, 0xa8, 0x0d,
+ 0xad, 0xaf, 0x27, 0xc4, 0xc9, 0x8a, 0x09, 0x03, 0x3f, 0x21, 0x26, 0x69,
+ 0x67, 0x84, 0xb6, 0xd5, 0xf2, 0x89, 0x1c, 0xaf, 0x57, 0xa9, 0x2d, 0x13,
+ 0x9f, 0xfd, 0x54, 0x9c, 0x74, 0x3d, 0x98, 0x0b, 0x48, 0x15, 0x73, 0xa8,
+ 0x2d, 0x89, 0x80, 0xb9, 0x47, 0xec, 0x21, 0x0d, 0x11, 0xfb, 0xbc, 0xee,
+ 0xba, 0xb0, 0xbc, 0x68, 0x43, 0x61, 0x29, 0x4a, 0x18, 0x1b, 0x51, 0x5b,
+ 0x2e, 0xe7, 0x92, 0x0a, 0x10, 0x13, 0xbb, 0x08, 0xb4, 0x2b, 0x84, 0xfe,
+ 0xe8, 0xba, 0x92, 0x67, 0x89, 0x85, 0x37, 0xcb, 0x1e, 0x95, 0x02, 0xbf,
+ 0x3c, 0xae, 0xf7, 0x90, 0x87, 0xfc, 0x84, 0x50, 0x17, 0xdd, 0xfa, 0xab,
+ 0x1b, 0xde, 0x13, 0xe0, 0xc6, 0x8c, 0xb3, 0x1c, 0x23, 0x62, 0x22, 0x1e,
+ 0x3c, 0xb2, 0xa0, 0x19, 0x6c, 0x59, 0x3a, 0x99, 0xa2, 0xef, 0x00, 0xb3,
+ 0xe9, 0xdf, 0x93, 0xf4, 0xb7, 0x65, 0x07, 0x48, 0xbe, 0x1f, 0x3c, 0x5f,
+ 0x0f, 0xab, 0xe8, 0x5c, 0x56, 0xcc, 0x19, 0xd7, 0xe9, 0x55, 0xbe, 0x8d,
+ 0x88, 0x46, 0x16, 0x7b, 0xae, 0x71, 0x01, 0xa5, 0xdd, 0xa5, 0x17, 0x42,
+ 0x24, 0xe9, 0x14, 0xad, 0xc8, 0x0d, 0xb1, 0x57, 0x9b, 0x2f, 0xf0, 0xb4,
+ 0xdc, 0xd4, 0xd7, 0x90, 0xca, 0xd6, 0xe8, 0x09, 0x55, 0xa1, 0x06, 0xa7,
+ 0x5d, 0xde, 0x9d, 0x60, 0x9c, 0x83, 0x7f, 0x38, 0xf0, 0x8d, 0xcf, 0xbb,
+ 0x16, 0xbd, 0xb3, 0xad, 0x06, 0x4a, 0x7a, 0x6c, 0xde, 0xc8, 0xf5, 0xb8,
+ 0x17, 0x24, 0xa7, 0xe9, 0x1f, 0x95, 0x20, 0x8d, 0x53, 0xaa, 0x39, 0x07,
+ 0x9e, 0xa8, 0x76, 0xf8, 0x80, 0xd7, 0x7a, 0xf3, 0x10, 0x3c, 0x2c, 0x51,
+ 0x26, 0x28, 0xaa, 0x56, 0x44, 0x26, 0xd2, 0x14, 0xf8, 0x49, 0xdb, 0xdc,
+ 0xc6, 0xd4, 0xf2, 0x9e, 0x24, 0xaf, 0x3d, 0xfa, 0x99, 0xa9, 0xff, 0xc6,
+ 0xed, 0x2a, 0x42, 0xbc, 0xc9, 0xd8, 0xef, 0xc1, 0x32, 0xd4, 0x2d, 0x35,
+ 0xfc, 0xaf, 0xb7, 0xcb, 0x5f, 0x2a, 0xe3, 0xda, 0xa4, 0xe0, 0xd5, 0xa5,
+ 0x94, 0x4c, 0x95, 0x65, 0x97, 0xb3, 0xa2, 0x09, 0xb8, 0x62, 0xa4, 0x55,
+ 0x39, 0x61, 0x31, 0x52, 0xdc, 0xbe, 0x75, 0x25, 0x08, 0x04, 0xe9, 0xe5,
+ 0xc5, 0xb9, 0xe9, 0x9d, 0x8c, 0x6c, 0xec, 0xd6, 0x77, 0xdf, 0xd7, 0xdd,
+ 0xdb, 0xe5, 0xe2, 0x8b, 0x93, 0xd9, 0xd5, 0xaa, 0x31, 0x2a, 0x04, 0xd3,
+ 0x6d, 0x77, 0x47, 0x5e, 0x03, 0x36, 0xc8, 0xef, 0x40, 0x92, 0xdd, 0x95,
+ 0x7c, 0x28, 0xd1, 0x5a, 0xfc, 0x45, 0x47, 0x98, 0x77, 0x73, 0x57, 0x9f,
+ 0x83, 0x6d, 0x58, 0x3c, 0xa9, 0xe0, 0xbb, 0x6b, 0x8d, 0x2a, 0xe8, 0x37,
+ 0xf0, 0xea, 0x66, 0x2e, 0x89, 0xb4, 0x27, 0x1b, 0x3a, 0xae, 0xa1, 0xe8,
+ 0xd3, 0x97, 0x71, 0xce, 0x79, 0x39, 0x02, 0xb5, 0x5a, 0xe6, 0xfc, 0x61,
+ 0x03, 0xbe, 0x37, 0x90, 0xa1, 0xa2, 0x27, 0xc8, 0xb1, 0x38, 0x56, 0x61,
+ 0xee, 0xc5, 0xf9, 0x0f, 0xfa, 0x2d, 0xa3, 0x27, 0xb7, 0x9d, 0x6d, 0xac,
+ 0x73, 0x51, 0x73, 0x1f, 0xa7, 0x6f, 0x37, 0xc3, 0x67, 0x90, 0xe7, 0x14,
+ 0xb8, 0xf4, 0x31, 0xa0, 0xb0, 0xb9, 0xab, 0x88, 0x28, 0x35, 0xe9, 0x2a,
+ 0x95, 0x2d, 0x58, 0x92, 0x9b, 0xc4, 0x2c, 0xda, 0xb4, 0xd8, 0x79, 0xf6,
+ 0x44, 0x89, 0x41, 0x08, 0xb2, 0x7b, 0x05, 0xd4, 0xdc, 0x95, 0x40, 0x94,
+ 0x90, 0x06, 0xd2, 0x00, 0x46, 0xa7, 0x49, 0x75, 0x62, 0x0f, 0x95, 0x26,
+ 0xd6, 0x96, 0x6d, 0xd2, 0x48, 0x58, 0x21, 0xa5, 0xf0, 0x25, 0xe4, 0x34,
+ 0x07, 0x2f, 0x72, 0x5f, 0x15, 0x4c, 0xf3, 0x33, 0x61, 0xe0, 0xa4, 0xc3,
+ 0x5c, 0x5f, 0x37, 0x45, 0x89, 0xa7, 0xe4, 0x8b, 0x08, 0xd9, 0x01, 0x13,
+ 0xb8, 0x19, 0xaa, 0xdc, 0x46, 0xc3, 0xbd, 0x29, 0x5b, 0xd8, 0xc9, 0x8a,
+ 0xfd, 0x85, 0x65, 0x4b, 0x30, 0x56, 0x43, 0xb7, 0xb3, 0x18, 0xbe, 0xf0,
+ 0xa1, 0xc1, 0xf5, 0x73, 0xb9, 0xe1, 0xf7, 0xe1, 0x04, 0xe9, 0xa5, 0xfb,
+ 0xb8, 0xfe, 0x78, 0x55, 0x7f, 0x86, 0x1e, 0x3a, 0x64, 0x7b, 0xe4, 0x40,
+ 0x31, 0xff, 0x7d, 0xc0, 0xf4, 0x82, 0xd1, 0x2e, 0xf3, 0xab, 0x30, 0xdf,
+ 0x8c, 0x04, 0x04, 0xc9, 0x99, 0x2a, 0x15, 0x2a, 0x6a, 0x09, 0x67, 0xfe,
+ 0x9e, 0xd4, 0x44, 0x1a, 0xd6, 0x96, 0xcf, 0xbf, 0xa9, 0x5f, 0xa0, 0x26,
+ 0x53, 0xc8, 0xaf, 0x21, 0x87, 0x90, 0x86, 0xb6, 0x46, 0x42, 0x0d, 0xdb,
+ 0xb7, 0xb3, 0x6e, 0xd3, 0xbb, 0x3b, 0x60, 0x41, 0x90, 0x1b, 0x9d, 0xf2,
+ 0x91, 0x2b, 0xc7, 0xa8, 0xc5, 0xb1, 0x5b, 0xbe, 0x7c, 0x23, 0xc1, 0xa6,
+ 0x36, 0x35, 0x64, 0x41, 0x4a, 0x46, 0xbc, 0x34, 0x11, 0x9d, 0x2c, 0x60,
+ 0xc3, 0xd5, 0xad, 0x88, 0xe3, 0x35, 0xa9, 0xa3, 0x5d, 0x14, 0xaa, 0x4d,
+ 0xc0, 0x9a, 0x35, 0x8b, 0xee, 0xe3, 0x30, 0x53, 0xe7, 0x34, 0xf9, 0x19,
+ 0x64, 0x09, 0x4f, 0x71, 0xc3, 0x44, 0x54, 0x70, 0x6d, 0x6c, 0xef, 0x42,
+ 0xa8, 0x4d, 0xcc, 0x00, 0x17, 0x42, 0x71, 0x52, 0xa8, 0x05, 0x65, 0xfe,
+ 0x44, 0x73, 0x91, 0x11, 0xcb, 0x69, 0x5a, 0xf0, 0xb7, 0x74, 0x3d, 0xa1,
+ 0xfd, 0x9b, 0xa2, 0x35, 0xe4, 0xae, 0x36, 0x29, 0xba, 0x82, 0x1b, 0x9b,
+ 0x21, 0x6d, 0xa5, 0x38, 0x9c, 0xb0, 0x7c, 0x5b, 0x31, 0x24, 0x0d, 0x67,
+ 0x1b, 0x78, 0x3b, 0x33, 0xf2, 0x6b, 0xe8, 0xce, 0xdd, 0xed, 0xcf, 0xa9,
+ 0x6b, 0x89, 0x5c, 0x81, 0x79, 0x5c, 0x68, 0x89, 0x2f, 0xa0, 0xd5, 0x0a,
+ 0x2a, 0xd3, 0xfc, 0x43, 0x57, 0xa2, 0xd5, 0xdf, 0x60, 0x03, 0xea, 0x44,
+ 0x4e, 0x4e, 0x2d, 0xfc, 0xf9, 0x22, 0x3b, 0x0b, 0x63, 0xac, 0x76, 0x8f,
+ 0xe6, 0xa5, 0x34, 0x31, 0xea, 0x17, 0xd8, 0x33, 0xc8, 0x48, 0xe7, 0x63,
+ 0x0c, 0x23, 0x79, 0x01, 0x8b, 0x82, 0x82, 0x99, 0x43, 0xc4, 0x00, 0x44,
+ 0x18, 0x52, 0xc5, 0x09, 0x8e, 0x11, 0xee, 0x93, 0xe0, 0x85, 0x96, 0x6d,
+ 0x57, 0x24, 0x93, 0x0f, 0x83, 0x48, 0x0b, 0xb3, 0x30, 0x78, 0x76, 0x47,
+ 0x63, 0xf0, 0x13, 0x31, 0xc5, 0xde, 0x26, 0x66, 0x2e, 0xff, 0x1b, 0xaa,
+ 0x0e, 0x19, 0xd3, 0xac, 0x14, 0xcc, 0x33, 0x37, 0x28, 0x9e, 0x13, 0x65,
+ 0x58, 0x7d, 0xac, 0x28, 0x87, 0x63, 0x85, 0x43, 0x68, 0x91, 0x60, 0x3d,
+ 0xf7, 0x81, 0x2b, 0x60, 0xb4, 0x6f, 0x1e, 0xee, 0x7c, 0x31, 0x63, 0x45,
+ 0xd2, 0x3d, 0xcc, 0x4e, 0x11, 0xde, 0xe1, 0x6c, 0xf3, 0x80, 0xb3, 0x4a,
+ 0xac, 0x45, 0x88, 0x82, 0xc6, 0x19, 0x64, 0xda, 0x64, 0x6f, 0x91, 0x63,
+ 0xac, 0xec, 0x9f, 0xbf, 0x77, 0x5a, 0xf6, 0x79, 0xbd, 0x4e, 0x57, 0x96,
+ 0x05, 0x40, 0x08, 0xbb, 0xfd, 0xe0, 0xf5, 0xf1, 0x23, 0x68, 0xce, 0xed,
+ 0x54, 0xaa, 0x9a, 0xbf, 0x30, 0x0b, 0x87, 0x44, 0x06, 0xb3, 0x00, 0x57,
+ 0x28, 0xc0, 0x9c, 0x8e, 0x6f, 0xa3, 0x03, 0x76, 0xe2, 0x84, 0xf5, 0x4f,
+ 0xad, 0x96, 0x77, 0xe2, 0x69, 0xb9, 0x73, 0x2c, 0xa2, 0xb4, 0x51, 0xaa,
+ 0xa3, 0xc2, 0x15, 0x25, 0x61, 0x27, 0xdb, 0x79, 0x8e, 0x5c, 0x37, 0x39,
+ 0xde, 0xeb, 0x15, 0xf6, 0x26, 0x3c, 0xcc, 0x88, 0x7a, 0x94, 0x8d, 0xb5,
+ 0xec, 0x81, 0x37, 0x31, 0xea, 0x0a, 0xca, 0x1a, 0xf4, 0xc3, 0x08, 0xe7,
+ 0xad, 0x4c, 0x7f, 0x31, 0x35, 0xab, 0xdb, 0x6c, 0x72, 0x69, 0x7b, 0x6f,
+ 0x97, 0x8f, 0x5e, 0x01, 0x55, 0x84, 0x9d, 0x2a, 0x1f, 0x02, 0x40, 0x7b,
+ 0x24, 0x2f, 0xc4, 0xde, 0xa5, 0xcc, 0x18, 0xad, 0xb5, 0xce, 0x5e, 0xdc,
+ 0x3c, 0x7e, 0xd2, 0x7c, 0x57, 0xdb, 0x08, 0xbf, 0xd9, 0xc5, 0xe7, 0x31,
+ 0x96, 0x9f, 0x39, 0x1f, 0x14, 0x20, 0x5a, 0x74, 0xe6, 0x44, 0xe5, 0xe2,
+ 0x29, 0xee, 0x56, 0x30, 0x85, 0x27, 0xf5, 0xc8, 0x24, 0xb0, 0x95, 0x6c,
+ 0x10, 0x00, 0x6c, 0x04, 0xdb, 0x74, 0xdf, 0x16, 0x77, 0x6e, 0x34, 0xe6,
+ 0x8b, 0xfc, 0xd2, 0x3a, 0x06, 0x2e, 0xe1, 0x06, 0x9c, 0x24, 0xc4, 0x77,
+ 0x19, 0x9c, 0x4c, 0xb1, 0x4a, 0xa9, 0x81, 0x01, 0xcf, 0x4a, 0x3e, 0x7f,
+ 0x2c, 0xe5, 0x6d, 0x01, 0x21, 0xcb, 0xc2, 0x6a, 0xd7, 0x78, 0x02, 0x23,
+ 0xc7, 0xa0, 0xd9, 0x98, 0xb9, 0xfe, 0xa8, 0x9a, 0x09, 0xff, 0x60, 0x26,
+ 0x68, 0x56, 0x83, 0x1e, 0xa7, 0x53, 0x48, 0x3e, 0x45, 0x35, 0xc4, 0xff,
+ 0xa1, 0xe7, 0x2b, 0xd5, 0xb1, 0x37, 0xdd, 0xde, 0xb5, 0xc1, 0x12, 0x4d,
+ 0x33, 0x35, 0xb2, 0xd2, 0x13, 0x87, 0x0c, 0x40, 0xe3, 0x85, 0x12, 0x57,
+ 0xb2, 0x79, 0xe1, 0x5f, 0x5b, 0xfc, 0xa4, 0x2e, 0xd6, 0xac, 0xfc, 0xca,
+ 0x9a, 0x85, 0x3c, 0xea, 0xc7, 0xfc, 0x33, 0x30, 0x6e, 0x72, 0x1e, 0x0f,
+ 0x0d, 0x00, 0xaf, 0x02, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x91, 0x0e, 0x00, 0x03, 0x10, 0x1c, 0x00, 0x1e, 0xde, 0x80,
+ 0x27, 0xc4, 0xff, 0x43, 0x40, 0xe2, 0x4d, 0x20, 0x34, 0xff, 0xa5, 0x60,
+ 0xe5, 0x34, 0x3a, 0x74, 0xfc, 0xcc, 0x9d, 0x21, 0x45, 0x04, 0x34, 0xe4,
+ 0x7a, 0x19, 0xe7, 0xff, 0x04, 0xfd, 0x19, 0x05, 0xc5, 0x47, 0xd5, 0x98,
+ 0x01, 0x8c, 0x22, 0x53, 0x39, 0x31, 0x69, 0x37, 0xb4, 0x0f, 0x88, 0xaf,
+ 0x93, 0x8c, 0x14, 0x1a, 0xd2, 0xb2, 0x1d, 0xd0, 0x30, 0x13, 0xdb, 0x85,
+ 0x3a, 0x96, 0x1d, 0x12, 0xb2, 0x00, 0x3d, 0xc8, 0xd9, 0x09, 0x34, 0x6a,
+ 0xbc, 0xf6, 0x44, 0x46, 0xa2, 0x60, 0x00, 0x00, 0xcc, 0xbc, 0x7a, 0x08,
+ 0x22, 0x0c, 0x23, 0x0e, 0x80, 0x83, 0x1d, 0x6c, 0x50, 0x66, 0x09, 0xd0,
+ 0xe4, 0x13, 0xad, 0x59, 0x5b, 0x42, 0x73, 0xa4, 0x1b, 0xfd, 0x40, 0x01,
+ 0x88, 0x60, 0x20, 0x90, 0xa9, 0xe8, 0x8b, 0x30, 0xf7, 0xae, 0x3c, 0x4b,
+ 0x31, 0x17, 0x19, 0x6e, 0xb0, 0x9c, 0x09, 0x84, 0x99, 0x32, 0xc8, 0x1e,
+ 0x21, 0x6f, 0x20, 0xe8, 0x50, 0x3f, 0x49, 0x08, 0x6e, 0x32, 0xfd, 0xea,
+ 0x4d, 0x30, 0x4b, 0x0d, 0xef, 0x8d, 0x8c, 0x2e, 0x66, 0xdf, 0xcf, 0x75,
+ 0x9c, 0xfd, 0x0d, 0x5d, 0x94, 0x81, 0xc4, 0xa3, 0xa6, 0x26, 0x5a, 0x33,
+ 0xa1, 0x41, 0x4c, 0x81, 0xcb, 0xc5, 0x4a, 0x26, 0x26, 0xa5, 0x97, 0x8c,
+ 0xa1, 0x64, 0xd9, 0xeb, 0x0c, 0xf5, 0x06, 0x91, 0x6b, 0x37, 0xa7, 0x90,
+ 0xf0, 0x1f, 0x1d, 0x6a, 0x0e, 0x82, 0x39, 0xf9, 0x46, 0xd9, 0x1d, 0x60,
+ 0xa7, 0x6b, 0xe4, 0x65, 0xef, 0xe6, 0x7c, 0x33, 0xfb, 0x9a, 0x14, 0xc2,
+ 0x50, 0xb8, 0x76, 0x52, 0x57, 0x2d, 0xd3, 0xff, 0xca, 0xd2, 0x90, 0x14,
+ 0x7d, 0x73, 0x65, 0x07, 0x53, 0x85, 0x98, 0x2f, 0xb6, 0x86, 0x98, 0x21,
+ 0xf8, 0xa6, 0xd7, 0xb8, 0xd9, 0x49, 0x33, 0x81, 0xf3, 0x47, 0x76, 0x20,
+ 0xbb, 0x6d, 0x5a, 0x26, 0x3d, 0x4a, 0xa1, 0x89, 0xc4, 0x8c, 0x05, 0xe3,
+ 0xd1, 0xfa, 0xf2, 0x9d, 0x0d, 0xbb, 0x1b, 0x76, 0x92, 0x18, 0x14, 0xbf,
+ 0xbe, 0xfb, 0xc3, 0x12, 0x70, 0xf4, 0x92, 0xb6, 0x91, 0x9f, 0x48, 0x34,
+ 0x51, 0xf5, 0xa2, 0x19, 0x63, 0xa1, 0xb7, 0xa9, 0xaf, 0xee, 0xf4, 0x0d,
+ 0xc2, 0x77, 0x6e, 0x53, 0x54, 0x59, 0xb8, 0xb1, 0x48, 0x50, 0x71, 0x58,
+ 0xbd, 0x24, 0x14, 0xaf, 0x92, 0xb5, 0x83, 0xe8, 0xe8, 0x79, 0xca, 0xe8,
+ 0x80, 0x9f, 0x70, 0x11, 0xfc, 0x22, 0x72, 0x82, 0x70, 0x21, 0x3e, 0xb0,
+ 0xc4, 0xea, 0xe2, 0xb3, 0x33, 0xe2, 0x66, 0x45, 0x1c, 0xb3, 0x11, 0xf6,
+ 0x8a, 0x89, 0x1a, 0xa2, 0x8b, 0xc6, 0xa4, 0x71, 0x82, 0xcf, 0x37, 0xbb,
+ 0x90, 0x86, 0xfe, 0x8e, 0xdd, 0xab, 0xc5, 0xed, 0xc9, 0xe4, 0x18, 0x3d,
+ 0xa0, 0x25, 0x41, 0x62, 0xf4, 0xc9, 0x7c, 0x45, 0x30, 0x49, 0xd9, 0xaf,
+ 0x57, 0x78, 0x41, 0xe5, 0xd8, 0x63, 0xc8, 0xbc, 0xbb, 0x5f, 0x70, 0x27,
+ 0xd3, 0x6b, 0x68, 0x77, 0x38, 0x0c, 0xac, 0xb0, 0xd3, 0xd2, 0x75, 0x48,
+ 0x25, 0x0b, 0xa4, 0xbc, 0xf1, 0x39, 0x25, 0xfb, 0xde, 0xc5, 0xde, 0xae,
+ 0x45, 0x40, 0xb3, 0x9f, 0x06, 0x34, 0xc5, 0x07, 0x47, 0xf0, 0x5b, 0x56,
+ 0x8b, 0x96, 0xa4, 0xda, 0x4e, 0x4e, 0x88, 0xe3, 0x32, 0xc0, 0x32, 0x2f,
+ 0xf0, 0x1c, 0x21, 0xdf, 0x51, 0xc8, 0x95, 0xeb, 0x07, 0x80, 0x3f, 0x52,
+ 0x18, 0xae, 0xb6, 0xbd, 0x8a, 0xff, 0xa9, 0xf5, 0x67, 0x87, 0x4e, 0xe8,
+ 0xe9, 0x00, 0x3b, 0x79, 0x0d, 0x1b, 0xba, 0x33, 0x81, 0x9d, 0xa0, 0x93,
+ 0xb5, 0x56, 0x39, 0x30, 0x43, 0xcd, 0xd7, 0x43, 0x5a, 0x35, 0xdf, 0xb0,
+ 0x92, 0x7a, 0xb0, 0x56, 0x44, 0xbd, 0xaa, 0xf8, 0xaf, 0xf8, 0x15, 0x64,
+ 0xda, 0xac, 0x54, 0xf7, 0x00, 0x73, 0xab, 0x9c, 0x8b, 0xfc, 0x4e, 0x5d,
+ 0xc1, 0x2e, 0x5f, 0x16, 0xf0, 0x51, 0x4c, 0x74, 0x65, 0xbd, 0x38, 0x21,
+ 0xb0, 0x51, 0x0c, 0x11, 0x77, 0xbd, 0x68, 0x0c, 0x94, 0xe4, 0xc8, 0xd3,
+ 0x1e, 0x11, 0x11, 0x9e, 0xd9, 0xb6, 0xb4, 0xc0, 0xbc, 0x9c, 0x99, 0x1a,
+ 0xfc, 0xfa, 0x4a, 0xde, 0xd8, 0xfb, 0xab, 0x8d, 0x84, 0x30, 0xd3, 0x80,
+ 0x34, 0x29, 0xd9, 0xe8, 0xe8, 0x57, 0xd4, 0x85, 0x43, 0x39, 0x22, 0x77,
+ 0x8f, 0x91, 0x97, 0xa7, 0x13, 0xd4, 0x39, 0x8d, 0x56, 0x9a, 0x80, 0x51,
+ 0x02, 0x45, 0x1a, 0xf7, 0xe7, 0xae, 0xcd, 0xbb, 0x59, 0xb1, 0x3b, 0x40,
+ 0xb3, 0x25, 0xed, 0x65, 0x8f, 0x22, 0xd7, 0x42, 0x97, 0x13, 0x0d, 0x2d,
+ 0x48, 0x23, 0x0d, 0x01, 0x92, 0x75, 0x2e, 0xd2, 0x1f, 0x52, 0x62, 0xd8,
+ 0xd5, 0x7b, 0xd2, 0xa0, 0x7c, 0xb6, 0x5b, 0x9c, 0xc4, 0xff, 0xa6, 0x2a,
+ 0x8b, 0xd4, 0x8f, 0x3e, 0xfd, 0x80, 0x74, 0xa3, 0xf8, 0xb5, 0x71, 0x37,
+ 0xb0, 0x36, 0x81, 0xdd, 0x73, 0x61, 0xda, 0xd6, 0x7d, 0x38, 0xb5, 0xab,
+ 0x31, 0x01, 0x24, 0xb0, 0xd5, 0xf6, 0xb1, 0xee, 0x37, 0x86, 0x52, 0xca,
+ 0xe4, 0xfd, 0x7a, 0x40, 0x00, 0xcd, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0e, 0x00, 0x04, 0x10, 0x18, 0x00,
+ 0x18, 0x00, 0xf8, 0x01, 0x80, 0x01, 0x3c, 0xa9, 0xf3, 0xcd, 0xcf, 0x90,
+ 0xad, 0x26, 0xf4, 0x50, 0xb6, 0x97, 0xdb, 0xe6, 0x22, 0x26, 0x20, 0x82,
+ 0x60, 0xd3, 0x6a, 0x65, 0x7f, 0x57, 0x61, 0x9a, 0xdb, 0x27, 0xf0, 0x68,
+ 0xc9, 0x66, 0x94, 0x00, 0xee, 0x33, 0x35, 0xbf, 0xf5, 0xc1, 0xd4, 0x4c,
+ 0x2e, 0x21, 0x03, 0xa0, 0x4d, 0xfd, 0x50, 0x28, 0x82, 0x18, 0x3d, 0x92,
+ 0xf9, 0x16, 0x02, 0x62, 0x39, 0x1d, 0x96, 0x53, 0x26, 0x35, 0x91, 0xf7,
+ 0xe0, 0x29, 0xb8, 0x8f, 0xff, 0xf9, 0x27, 0xce, 0xa4, 0x82, 0x38, 0x72,
+ 0x30, 0x83, 0x37, 0xdd, 0xd4, 0x00, 0x02, 0xa8, 0x87, 0x15, 0xd4, 0xad,
+ 0x9a, 0x68, 0xba, 0xbc, 0x9b, 0x96, 0x59, 0xc8, 0xec, 0xfe, 0x25, 0x30,
+ 0x67, 0x00, 0x65, 0xb7, 0x00, 0x85, 0x79, 0x58, 0x93, 0x3f, 0x9b, 0xbc,
+ 0x3e, 0xe7, 0x3b, 0xca, 0x0e, 0xbd, 0x4d, 0x74, 0xfa, 0x1e, 0x0a, 0xf9,
+ 0x25, 0x6d, 0x88, 0x0a, 0x5a, 0xa6, 0xd4, 0x91, 0xbe, 0x2e, 0xcc, 0x63,
+ 0xe3, 0xa8, 0xbb, 0xd4, 0x9c, 0x5b, 0x18, 0xd9, 0xf8, 0x4f, 0x16, 0x19,
+ 0x43, 0x33, 0x5e, 0xec, 0xd5, 0x6f, 0x70, 0x16, 0x82, 0x64, 0x76, 0x7d,
+ 0x42, 0x4d, 0x9f, 0xc1, 0xce, 0x24, 0x79, 0x9a, 0x35, 0xcb, 0x68, 0x8c,
+ 0x22, 0x93, 0xeb, 0xbb, 0x69, 0x46, 0x4a, 0x82, 0x94, 0x59, 0x15, 0xa9,
+ 0xc4, 0x7c, 0x91, 0xbb, 0x45, 0x90, 0xf5, 0x84, 0x53, 0xce, 0x74, 0xc0,
+ 0x25, 0x44, 0x3f, 0x40, 0x4f, 0xad, 0x21, 0x7c, 0x7f, 0x8b, 0x77, 0xd2,
+ 0x65, 0xe3, 0xa1, 0x24, 0x4d, 0xfe, 0xd6, 0xc2, 0x0e, 0x53, 0xe4, 0xde,
+ 0xd6, 0xe1, 0x37, 0x55, 0x2e, 0x96, 0xe3, 0x82, 0x16, 0xf0, 0x80, 0x77,
+ 0x02, 0x55, 0x20, 0x03, 0x5f, 0x7b, 0x15, 0x7d, 0x33, 0xd4, 0x3a, 0x63,
+ 0x46, 0xf8, 0xd2, 0xd4, 0xe7, 0x0c, 0x48, 0x6a, 0x2c, 0x50, 0x52, 0xf0,
+ 0x7b, 0x24, 0xa6, 0x5d, 0xd1, 0xa1, 0xb1, 0xce, 0x29, 0x5d, 0x63, 0x1b,
+ 0x0f, 0xb8, 0x68, 0x4b, 0x71, 0x9e, 0xeb, 0xc0, 0x71, 0xeb, 0x6c, 0x77,
+ 0x63, 0x41, 0x4b, 0x7a, 0x16, 0x68, 0xc4, 0x1f, 0x36, 0xda, 0xa6, 0x43,
+ 0x33, 0x76, 0xa0, 0x11, 0xce, 0xac, 0xdd, 0x22, 0xea, 0x6d, 0x41, 0x5b,
+ 0x64, 0x65, 0x2a, 0xbf, 0x1e, 0x73, 0x68, 0x7c, 0xf5, 0xa2, 0xe1, 0xc8,
+ 0xb1, 0xd2, 0xae, 0xa6, 0x41, 0x9c, 0x62, 0x34, 0x0f, 0xd9, 0x06, 0x3a,
+ 0x1b, 0xf2, 0xeb, 0xc4, 0xe5, 0xf2, 0xd5, 0xde, 0x1b, 0xbd, 0xa6, 0x8b,
+ 0x18, 0x5e, 0x19, 0x99, 0xe6, 0x38, 0x11, 0xc9, 0x63, 0xbc, 0x76, 0xe6,
+ 0x1e, 0x32, 0x6e, 0x96, 0xec, 0xcc, 0x44, 0x1b, 0x6f, 0xf3, 0xa5, 0x40,
+ 0x4a, 0x3b, 0x63, 0x2d, 0xd2, 0xc0, 0x6d, 0x8a, 0x06, 0x41, 0x7a, 0xde,
+ 0x59, 0x8e, 0x96, 0x2b, 0xaa, 0xa5, 0x7c, 0x51, 0xc6, 0x86, 0x93, 0x6f,
+ 0x0d, 0x5a, 0x88, 0xac, 0xc6, 0x78, 0x9a, 0x19, 0x80, 0xbf, 0xab, 0xe7,
+ 0x67, 0xa3, 0x82, 0x40, 0x7f, 0xcf, 0x2a, 0xfd, 0x87, 0x9b, 0xa4, 0x6d,
+ 0xb2, 0xc2, 0xe4, 0xfb, 0xe5, 0x99, 0x9c, 0xff, 0x6c, 0x1a, 0xf0, 0x0f,
+ 0xe7, 0x39, 0xb7, 0x5d, 0x22, 0x64, 0x66, 0xbe, 0x51, 0x97, 0x45, 0xb3,
+ 0xd4, 0xe8, 0xcd, 0x19, 0x08, 0x49, 0xb9, 0xb6, 0x4c, 0xb7, 0xb7, 0x20,
+ 0x15, 0x69, 0xfa, 0x11, 0x5c, 0x42, 0xa3, 0x19, 0xc8, 0xf6, 0x89, 0x6d,
+ 0x16, 0x8e, 0x0c, 0xaa, 0x5f, 0x8f, 0xaf, 0x8f, 0x4b, 0xc4, 0x99, 0x20,
+ 0x42, 0x81, 0xf0, 0x72, 0xa5, 0xde, 0x78, 0xd5, 0xf5, 0x5a, 0x85, 0xdd,
+ 0x2a, 0x4f, 0xec, 0xb9, 0x4d, 0xad, 0x21, 0xe4, 0xc5, 0xcf, 0x9b, 0x11,
+ 0x72, 0x2d, 0xf9, 0x6a, 0x2e, 0xe3, 0x7e, 0xa6, 0x8f, 0xfa, 0xf4, 0x9f,
+ 0x0b, 0x13, 0x14, 0xb9, 0x80, 0xb7, 0x38, 0xf4, 0xd8, 0x07, 0xe5, 0x95,
+ 0x34, 0xce, 0x87, 0xc9, 0x31, 0xaf, 0xf9, 0x03, 0x67, 0xbf, 0x10, 0x76,
+ 0x8d, 0x72, 0x4a, 0xd6, 0x1a, 0xc0, 0xc8, 0xc9, 0xb8, 0x17, 0x20, 0x66,
+ 0xf5, 0x0c, 0xa5, 0xef, 0x7a, 0x16, 0xd2, 0x76, 0x57, 0x21, 0x95, 0x22,
+ 0x0c, 0x64, 0x1b, 0xd3, 0x7d, 0xbc, 0x47, 0x42, 0xbb, 0x23, 0x56, 0x97,
+ 0x67, 0x47, 0xa6, 0x50, 0xaa, 0xf8, 0x8e, 0x73, 0x53, 0x48, 0x83, 0x56,
+ 0xfd, 0xaf, 0x8c, 0xc0, 0x0d, 0x2f, 0xbd, 0x05, 0xe7, 0x41, 0xcf, 0x77,
+ 0x65, 0x9a, 0x96, 0x09, 0x07, 0xec, 0xec, 0xdf, 0x79, 0xe8, 0x93, 0x65,
+ 0xa5, 0xd2, 0x47, 0xb6, 0xc0, 0xf9, 0xe8, 0x31, 0x1f, 0xae, 0x15, 0xd7,
+ 0x5e, 0x29, 0x48, 0xb5, 0xfa, 0xa3, 0x66, 0xd8, 0x98, 0x3c, 0x29, 0x7b,
+ 0x42, 0xc8, 0x50, 0x06, 0x56, 0x9b, 0x2c, 0xa4, 0x4d, 0x0c, 0xc1, 0xed,
+ 0x44, 0x62, 0x76, 0x71, 0x41, 0x53, 0xa1, 0xa6, 0x24, 0x85, 0x63, 0xac,
+ 0x42, 0xfb, 0x42, 0xe6, 0xf2, 0x6b, 0xd7, 0x3a, 0x75, 0x1f, 0x06, 0x50,
+ 0x14, 0xd7, 0xbe, 0x35, 0x1e, 0x8c, 0x54, 0xcb, 0x4b, 0x4e, 0xc7, 0x5a,
+ 0x08, 0x0d, 0xfe, 0x45, 0x73, 0x94, 0xf1, 0x52, 0xb3, 0x70, 0xcf, 0x49,
+ 0x8a, 0x65, 0xbe, 0x69, 0x8e, 0x76, 0xea, 0x31, 0xe2, 0xe1, 0xfa, 0x98,
+ 0xb8, 0x00, 0x0f, 0x03, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf1, 0x0e, 0x00, 0x04, 0x10, 0x14, 0x00, 0x1e, 0xc8, 0x5e,
+ 0xfa, 0x04, 0x39, 0x2c, 0x53, 0x63, 0x66, 0x64, 0x02, 0xab, 0xaa, 0x0a,
+ 0xfb, 0xce, 0x0d, 0x3a, 0x7f, 0xb1, 0xdd, 0x9d, 0x66, 0xf1, 0x92, 0x93,
+ 0x75, 0x72, 0xe3, 0xeb, 0x62, 0x1b, 0x04, 0x57, 0x94, 0xcd, 0x51, 0xa6,
+ 0x22, 0xa0, 0x3d, 0xb1, 0xca, 0x6a, 0x62, 0xf8, 0xdd, 0xc0, 0xf1, 0x05,
+ 0x79, 0x74, 0x36, 0xcb, 0x9e, 0x93, 0xd3, 0x89, 0x16, 0x90, 0xef, 0xea,
+ 0xf6, 0x3a, 0x00, 0xbe, 0x2c, 0x6b, 0x54, 0x25, 0xdf, 0xf4, 0xb5, 0x78,
+ 0x21, 0xfa, 0xeb, 0x48, 0x00, 0xa6, 0x15, 0x8b, 0xeb, 0x86, 0xc8, 0xc4,
+ 0x58, 0x60, 0x81, 0x86, 0xf4, 0xeb, 0xdb, 0x9b, 0xd3, 0x32, 0xdd, 0x5e,
+ 0xfb, 0x6e, 0xe8, 0x83, 0xa1, 0xe5, 0x05, 0x5d, 0xb6, 0x0d, 0x16, 0x29,
+ 0x02, 0x0b, 0x06, 0xe0, 0x50, 0x4e, 0x41, 0xe9, 0x97, 0xdb, 0xa7, 0xa7,
+ 0x31, 0x55, 0xaf, 0x1b, 0xac, 0x39, 0x8f, 0x83, 0x2b, 0xfe, 0xdc, 0xaf,
+ 0xad, 0x87, 0xbb, 0xe0, 0x3b, 0x02, 0x66, 0xdf, 0xb9, 0x4e, 0x7c, 0x78,
+ 0x20, 0xa2, 0x38, 0x99, 0x56, 0x86, 0xc8, 0x6b, 0x21, 0xdb, 0xa8, 0x1a,
+ 0x9d, 0x9c, 0xd8, 0x0b, 0x60, 0xe8, 0x02, 0x84, 0x13, 0x33, 0x88, 0xc1,
+ 0xde, 0x21, 0xb2, 0xd7, 0x8b, 0xfc, 0xa6, 0x5a, 0x1d, 0x7a, 0x9e, 0x82,
+ 0x10, 0xb0, 0xc2, 0x68, 0x03, 0xc8, 0x4c, 0x0b, 0xaf, 0x50, 0x70, 0xc5,
+ 0x3b, 0x5b, 0x11, 0x93, 0x57, 0x71, 0x2a, 0x89, 0x58, 0xee, 0x1d, 0x4d,
+ 0xcb, 0x03, 0x57, 0xa9, 0x10, 0x90, 0x59, 0xef, 0xae, 0x75, 0x7a, 0x3b,
+ 0xf1, 0xb4, 0x07, 0x01, 0xbc, 0x7f, 0xbb, 0x6c, 0x6b, 0x7d, 0xf6, 0x93,
+ 0x4f, 0x5d, 0x9f, 0xbe, 0x2c, 0x7b, 0xbe, 0x86, 0x8d, 0x2d, 0x12, 0x4a,
+ 0x9e, 0xa6, 0xb5, 0x2b, 0xad, 0xae, 0x3d, 0x3c, 0xc2, 0xce, 0xbc, 0xb1,
+ 0x62, 0x93, 0xd8, 0x17, 0xe7, 0x67, 0x37, 0xf7, 0xcc, 0x0e, 0x8a, 0xaf,
+ 0x3b, 0x87, 0x1c, 0xa1, 0xbf, 0x1c, 0x23, 0x80, 0x0c, 0xdc, 0x4c, 0xe9,
+ 0x1b, 0xc1, 0x27, 0x42, 0xda, 0x8f, 0x63, 0xb5, 0x84, 0x32, 0x33, 0xf0,
+ 0x80, 0xe6, 0x6f, 0x74, 0x0a, 0x0c, 0x2a, 0xc3, 0x7c, 0x05, 0x47, 0x03,
+ 0xda, 0xb0, 0x93, 0xad, 0x6c, 0x64, 0xb2, 0x17, 0x7b, 0xc3, 0x6a, 0x5f,
+ 0x69, 0x1e, 0x7b, 0x84, 0xf0, 0xca, 0xf2, 0x8b, 0x25, 0x63, 0x0f, 0xac,
+ 0x56, 0x0f, 0x5b, 0x79, 0x15, 0xfb, 0xac, 0xaa, 0xca, 0x4f, 0xd8, 0xaa,
+ 0xf4, 0x28, 0xfe, 0x42, 0x85, 0xdd, 0xf9, 0xa0, 0xb2, 0x67, 0x52, 0x21,
+ 0x13, 0x04, 0x9a, 0xd3, 0x0e, 0xed, 0x64, 0xfc, 0x94, 0x7a, 0x66, 0x87,
+ 0x7a, 0xca, 0xfe, 0x84, 0x4e, 0x57, 0x42, 0xe5, 0x29, 0x6b, 0x39, 0x1b,
+ 0xb9, 0xe2, 0xc2, 0xb0, 0xeb, 0x23, 0xb7, 0x1e, 0x3f, 0x0d, 0xb2, 0x7c,
+ 0xab, 0x07, 0x2b, 0x98, 0x8e, 0x05, 0x57, 0x10, 0x58, 0xb0, 0x67, 0x57,
+ 0x79, 0xe6, 0x5f, 0xe1, 0xcb, 0xf6, 0xa5, 0x14, 0x42, 0xac, 0x6a, 0x86,
+ 0xc6, 0x4c, 0xe1, 0x6f, 0x4b, 0x3c, 0x1c, 0xaf, 0x11, 0x7f, 0xcb, 0x74,
+ 0x0f, 0x95, 0x51, 0x90, 0x83, 0x97, 0xdc, 0x7b, 0x00, 0x75, 0xe0, 0x85,
+ 0x8c, 0x2f, 0xfb, 0x58, 0x41, 0xb5, 0xab, 0x0e, 0xd5, 0x5e, 0x94, 0x59,
+ 0x13, 0x61, 0x58, 0xfc, 0xd3, 0xc2, 0x07, 0x25, 0x87, 0x5f, 0x00, 0x3b,
+ 0xee, 0xfd, 0x1b, 0x58, 0x58, 0x1c, 0xe4, 0xcc, 0x87, 0x23, 0x6e, 0x78,
+ 0x6e, 0xf4, 0x2e, 0xf6, 0x35, 0xd5, 0x00, 0x04, 0x1a, 0x8f, 0x43, 0xe8,
+ 0xc1, 0xa6, 0x53, 0xe6, 0xa6, 0xed, 0xa5, 0xa2, 0x5f, 0x97, 0xab, 0xd9,
+ 0xdd, 0x63, 0xfa, 0x0d, 0x88, 0x0b, 0x8e, 0x10, 0x1a, 0x12, 0xb8, 0x93,
+ 0xb9, 0xb0, 0x18, 0xa3, 0xad, 0xb7, 0x6c, 0x55, 0xc7, 0xde, 0x25, 0x79,
+ 0x86, 0x34, 0xf3, 0x47, 0x11, 0x9a, 0x59, 0x66, 0xfe, 0x87, 0x43, 0xa3,
+ 0xf7, 0xb4, 0x3a, 0x28, 0xa5, 0xab, 0xd3, 0x8f, 0x9e, 0x1e, 0x38, 0x2b,
+ 0x2a, 0xaa, 0x44, 0x06, 0xe5, 0xaf, 0x1e, 0xbf, 0x59, 0xb2, 0xb0, 0xd8,
+ 0xd4, 0xd4, 0xc1, 0x64, 0xed, 0xa8, 0x3d, 0x3c, 0xeb, 0xa8, 0xd5, 0x85,
+ 0x02, 0xc1, 0x4c, 0xa1, 0x32, 0x1d, 0xda, 0x85, 0xa8, 0x9b, 0x49, 0x7f,
+ 0x9e, 0x95, 0x0d, 0x01, 0x1f, 0x85, 0x81, 0xbe, 0xb6, 0x5e, 0xd4, 0x69,
+ 0xf6, 0xe1, 0x5b, 0x3c, 0xe2, 0x9a, 0x84, 0xc0, 0x71, 0x43, 0x9f, 0xb5,
+ 0xfd, 0x3b, 0x06, 0xeb, 0xd1, 0x9a, 0xd4, 0xee, 0xac, 0xb2, 0x5e, 0xa1,
+ 0xdc, 0x83, 0x5a, 0xf6, 0xd8, 0x5f, 0x7b, 0x1f, 0x0e, 0x5c, 0x01, 0xab,
+ 0x79, 0x2b, 0xac, 0x1b, 0xdc, 0xec, 0xeb, 0x01, 0xb9, 0x67, 0x9a, 0xcd,
+ 0xb5, 0xe4, 0xc3, 0x0c, 0xd3, 0xeb, 0x03, 0x1e, 0x46, 0x76, 0xfb, 0x59,
+ 0x2f, 0x03, 0xbf, 0xe4, 0xf4, 0x80, 0xf0, 0x2e, 0x22, 0x45, 0xba, 0x5a,
+ 0x58, 0xf9, 0x66, 0xe4, 0xd7, 0x92, 0x45, 0xc7, 0x8e, 0xb4, 0x65, 0x54,
+ 0xfd, 0x30, 0x16, 0x10, 0x26, 0x91, 0x57, 0x7c, 0xdf, 0x22, 0xcd, 0xf5,
+ 0x4c, 0xd0, 0x02, 0x10, 0x6a, 0xa0, 0x5d, 0x25, 0x86, 0x11, 0xee, 0x14,
+ 0xa8, 0x15, 0x9d, 0x1a, 0x4b, 0x20, 0xe0, 0xaf, 0x5c, 0x12, 0x14, 0x65,
+ 0x4f, 0xde, 0xb3, 0x40, 0x76, 0xeb, 0x48, 0xe3, 0xd2, 0x6c, 0xb6, 0x7e,
+ 0x2a, 0x0f, 0x57, 0x4f, 0xe1, 0xa2, 0x22, 0x5a, 0x51, 0x94, 0x84, 0x07,
+ 0x43, 0x1a, 0xfb, 0x96, 0x70, 0x50, 0xdb, 0x71, 0x97, 0xba, 0xc1, 0x30,
+ 0xf9, 0xe6, 0x4a, 0xbd, 0xf4, 0x7f, 0x7d, 0xb9, 0x6b, 0x9d, 0x9c, 0x7a,
+ 0x06, 0xf1, 0xb7, 0xb0, 0x81, 0xe6, 0x93, 0x79, 0x40, 0x95, 0x5c, 0xb1,
+ 0x6a, 0xac, 0xf9, 0xa6, 0x00, 0xb7, 0x03, 0x00, 0x00, 0x2d, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x10, 0x00, 0x02, 0x10, 0x14, 0x14,
+ 0x7b, 0x94, 0x42, 0x1d, 0x03, 0x6a, 0x4a, 0x03, 0x02, 0x68, 0x96, 0xf7,
+ 0x64, 0x2c, 0xa9, 0x9b, 0x1c, 0xe0, 0x2a, 0x92, 0xb5, 0x0a, 0x0a, 0x09,
+ 0x5d, 0x44, 0x3a, 0x00, 0x67, 0xd9, 0x23, 0x2a, 0xe9, 0xf2, 0x8f, 0xe7,
+ 0x6e, 0x97, 0x96, 0x15, 0xf9, 0xe0, 0x07, 0x60, 0x6e, 0x02, 0xa4, 0x1c,
+ 0x5f, 0xed, 0xa2, 0x15, 0xc1, 0xa9, 0xb2, 0xf4, 0xf4, 0x87, 0x2e, 0x80,
+ 0xfb, 0xd6, 0xe6, 0x3e, 0x81, 0xcc, 0x1a, 0xbf, 0x41, 0xcd, 0x57, 0x26,
+ 0x4a, 0x17, 0x9e, 0x10, 0xc5, 0x93, 0x03, 0xc2, 0xbc, 0x4d, 0x59, 0xec,
+ 0xa2, 0x8d, 0x6c, 0x76, 0x42, 0x15, 0xc2, 0xd9, 0x75, 0x1c, 0x5c, 0x2f,
+ 0xa0, 0x5d, 0x16, 0xc2, 0xab, 0x08, 0xe5, 0x10, 0xc4, 0x1c, 0x42, 0x62,
+ 0x6c, 0x8c, 0xd5, 0xf6, 0x11, 0x74, 0x8f, 0xe8, 0x84, 0xf2, 0x6f, 0x96,
+ 0xaa, 0xeb, 0xa4, 0xd9, 0x5c, 0xe5, 0x00, 0xe1, 0x92, 0x54, 0x85, 0xb9,
+ 0x00, 0x23, 0xfb, 0x95, 0xe1, 0xfe, 0x7c, 0xff, 0x44, 0x4f, 0x49, 0x7e,
+ 0x03, 0xf9, 0x01, 0x99, 0x80, 0x2a, 0x3e, 0x89, 0xc0, 0xf6, 0x90, 0x60,
+ 0x1d, 0x09, 0x34, 0xb2, 0x6e, 0x9c, 0xc4, 0x4d, 0xa5, 0x51, 0x44, 0x72,
+ 0x40, 0xa5, 0x26, 0x12, 0x9b, 0x61, 0xf4, 0xd5, 0xdb, 0x4c, 0x4e, 0xa4,
+ 0x8a, 0x7e, 0xf4, 0x0c, 0xf0, 0x71, 0x75, 0x7f, 0x18, 0x67, 0xbe, 0x81,
+ 0x5d, 0x4d, 0x45, 0xc6, 0x84, 0x56, 0x80, 0x07, 0x8a, 0x99, 0xd2, 0x81,
+ 0xc1, 0xb0, 0xc1, 0x1f, 0x81, 0xd5, 0x35, 0xd0, 0xf8, 0x9c, 0x96, 0xce,
+ 0x34, 0x74, 0xe9, 0x9c, 0x65, 0x4e, 0x43, 0x69, 0xd3, 0x6c, 0x08, 0xa4,
+ 0xd6, 0x99, 0xb4, 0xe0, 0xcf, 0x8b, 0xea, 0xbb, 0x27, 0x1f, 0x08, 0x1a,
+ 0xc0, 0xdf, 0xf0, 0xea, 0x74, 0x92, 0x99, 0xf7, 0xb6, 0xbd, 0xf4, 0x22,
+ 0x61, 0x1f, 0x26, 0x20, 0xdf, 0x2a, 0xa9, 0x70, 0xc6, 0xb3, 0xee, 0xe3,
+ 0x6c, 0x99, 0xd6, 0xba, 0x6d, 0xae, 0x81, 0xe2, 0x99, 0x68, 0x66, 0x81,
+ 0x11, 0xf8, 0xd3, 0x50, 0x5a, 0x11, 0xb1, 0x69, 0xf7, 0x0a, 0x65, 0xca,
+ 0x36, 0x5f, 0x43, 0x91, 0x59, 0xff, 0x1b, 0x31, 0x2b, 0x36, 0x7d, 0xde,
+ 0x58, 0x45, 0xe3, 0xe9, 0x4b, 0xca, 0x46, 0x09, 0xf1, 0xc2, 0xfa, 0x9a,
+ 0x69, 0x9c, 0x8d, 0xc3, 0x99, 0x47, 0x63, 0x2e, 0x36, 0x63, 0x25, 0xf5,
+ 0xd3, 0x26, 0xd8, 0xb4, 0xe9, 0x1b, 0xf5, 0x34, 0xfb, 0x6b, 0xda, 0xfb,
+ 0x06, 0x57, 0x12, 0x26, 0x2e, 0xdd, 0xa9, 0xe4, 0xe2, 0x52, 0xf6, 0x9a,
+ 0x47, 0x4c, 0x9d, 0xcf, 0x69, 0x10, 0xf6, 0x64, 0xa8, 0xa3, 0x17, 0x7d,
+ 0x11, 0xba, 0x35, 0xa3, 0xcd, 0x00, 0x96, 0x5b, 0x60, 0x8c, 0x20, 0x7d,
+ 0x1a, 0x30, 0xd7, 0x4e, 0xbb, 0x90, 0x76, 0xbc, 0x16, 0x49, 0x74, 0x68,
+ 0x52, 0x25, 0x8d, 0x60, 0x46, 0x0d, 0xee, 0x9e, 0xe1, 0xd1, 0x2f, 0xa3,
+ 0x17, 0x47, 0x6b, 0x7a, 0x1d, 0x73, 0x54, 0x87, 0x16, 0xd1, 0x0f, 0x5f,
+ 0x98, 0xac, 0x84, 0x89, 0xb9, 0x7d, 0x98, 0x48, 0x1d, 0x20, 0x31, 0x85,
+ 0x71, 0xda, 0xa6, 0x1d, 0x16, 0x99, 0xdc, 0xd0, 0x12, 0x60, 0x84, 0x78,
+ 0xc3, 0x33, 0x45, 0x7a, 0x25, 0xe5, 0xe1, 0xd1, 0xdb, 0x26, 0xdc, 0x57,
+ 0x21, 0xf2, 0xc6, 0x80, 0xe4, 0xcd, 0xf0, 0xdd, 0xb4, 0x25, 0xca, 0x92,
+ 0xf6, 0x3f, 0xcf, 0xda, 0xfd, 0x7f, 0x45, 0x5a, 0xa6, 0xb0, 0x42, 0x57,
+ 0x32, 0x03, 0xe7, 0xf0, 0x91, 0xbb, 0xdf, 0x6c, 0x09, 0x78, 0x55, 0x1c,
+ 0x94, 0xe5, 0x53, 0x66, 0xd8, 0xae, 0x13, 0x6b, 0xd4, 0xd5, 0x2b, 0x90,
+ 0xfd, 0x24, 0x37, 0x14, 0x5c, 0x16, 0xe2, 0x8c, 0x52, 0x47, 0x4d, 0x7c,
+ 0x0c, 0x3c, 0x2b, 0x48, 0x07, 0xaa, 0xf0, 0xbb, 0xc1, 0x58, 0xca, 0xfc,
+ 0x7a, 0x92, 0xec, 0xb9, 0x1c, 0xa8, 0x62, 0xfd, 0x89, 0xf2, 0x20, 0xd7,
+ 0xe9, 0x1e, 0x43, 0xa4, 0xa4, 0x90, 0x0a, 0x89, 0xf2, 0x5d, 0x1f, 0x8d,
+ 0xe2, 0x09, 0x88, 0xd2, 0x9b, 0xfc, 0xa6, 0x0e, 0xc5, 0xec, 0xde, 0xdf,
+ 0xac, 0x75, 0xd3, 0x99, 0x80, 0x0d, 0x8b, 0x8a, 0x8a, 0xfd, 0xcd, 0xb4,
+ 0x9b, 0x90, 0x39, 0x43, 0xf7, 0x97, 0x85, 0x88, 0x01, 0x16, 0x9a, 0xa1,
+ 0x63, 0x6f, 0xf4, 0x15, 0x0c, 0xa1, 0x0f, 0xc0, 0x67, 0x8b, 0x8d, 0xfc,
+ 0x68, 0xf9, 0xa8, 0x7b, 0xc2, 0xa5, 0x74, 0x10, 0x54, 0xe5, 0x0b, 0x9e,
+ 0x20, 0xe1, 0x2a, 0xcd, 0x62, 0x71, 0x0f, 0x6b, 0x85, 0x2f, 0xb5, 0x7b,
+ 0x20, 0x54, 0x39, 0x35, 0x75, 0xb0, 0xf7, 0x9a, 0xc9, 0x74, 0xad, 0x6c,
+ 0x62, 0x22, 0x4a, 0xbb, 0x56, 0x2d, 0x76, 0x95, 0x4d, 0xa4, 0x4d, 0xcf,
+ 0x66, 0x7a, 0x52, 0xa4, 0x7a, 0x2e, 0x43, 0x24, 0xc5, 0xd9, 0x2f, 0xbb,
+ 0x27, 0xc1, 0x31, 0x44, 0x9f, 0x82, 0x02, 0xff, 0xa1, 0x82, 0xef, 0xd4,
+ 0xb6, 0x6c, 0x62, 0x66, 0x3b, 0xf7, 0x61, 0xc2, 0xc0, 0xdc, 0x8f, 0xc1,
+ 0x66, 0x55, 0xce, 0x8b, 0x96, 0xb7, 0x62, 0x1b, 0x37, 0xba, 0x41, 0x2d,
+ 0xed, 0x0a, 0x09, 0x32, 0xbf, 0xf9, 0x69, 0x6a, 0xa5, 0x59, 0xdb, 0xba,
+ 0x3a, 0x10, 0x1b, 0x7e, 0x67, 0xee, 0xe9, 0xc2, 0x58, 0x68, 0xab, 0x04,
+ 0x0d, 0x6c, 0x80, 0xa0, 0x8c, 0x29, 0x23, 0x40, 0xf0, 0x59, 0xe5, 0x62,
+ 0x81, 0x5e, 0x47, 0xa9, 0x55, 0xda, 0x2a, 0x5e, 0xd2, 0x9e, 0x9c, 0x3b,
+ 0xb2, 0x16, 0x7e, 0x12, 0xea, 0xe2, 0x08, 0x54, 0x96, 0x71, 0x45, 0x8b,
+ 0xf7, 0x70, 0x60, 0x89, 0xd2, 0xc8, 0x00, 0xd0, 0xb9, 0xf7, 0xbd, 0x75,
+ 0x69, 0x0f, 0x69, 0x79, 0x45, 0x1a, 0xb1, 0xcf, 0x4e, 0x53, 0xe8, 0xdf,
+ 0x13, 0x19, 0xfc, 0x68, 0x6a, 0x5e, 0xb8, 0xe3, 0x7f, 0xbb, 0x1d, 0x59,
+ 0x3f, 0xb4, 0xae, 0x7c, 0x14, 0xe3, 0xa5, 0x3c, 0x6a, 0xd3, 0x5a, 0xfc,
+ 0xb7, 0x27, 0xbb, 0xcf, 0x20, 0x0e, 0x20, 0xd1, 0x4c, 0xd5, 0x65, 0x84,
+ 0x5f, 0x16, 0xcf, 0x68, 0xba, 0xa3, 0x14, 0xe5, 0x92, 0x10, 0xda, 0xe6,
+ 0xd8, 0x6a, 0xf4, 0xd1, 0xf5, 0xf9, 0x4a, 0xf0, 0x54, 0xbc, 0xba, 0x58,
+ 0x5f, 0x34, 0x55, 0x53, 0xfc, 0xcb, 0x60, 0x50, 0x74, 0x38, 0x21, 0x30,
+ 0x76, 0x2c, 0x55, 0xe0, 0x0f, 0x1f, 0x44, 0x3d, 0x11, 0x97, 0xf3, 0xcb,
+ 0x81, 0xa4, 0xc1, 0x0f, 0xfa, 0xf3, 0xd0, 0x01, 0x27, 0x69, 0x57, 0x70,
+ 0xc3, 0x86, 0x74, 0xb2, 0xac, 0x6b, 0xff, 0x6e, 0x45, 0x76, 0xb0, 0x7d,
+ 0xab, 0x5e, 0x96, 0xc3, 0x45, 0xbe, 0x83, 0x79, 0x90, 0xaa, 0x7c, 0x14,
+ 0x20, 0xb5, 0xad, 0xef, 0xeb, 0x22, 0xde, 0x3f, 0x42, 0xc2, 0x1c, 0xfa,
+ 0x31, 0x50, 0x71, 0x69, 0x8b, 0xb2, 0x03, 0x89, 0x42, 0x0b, 0x94, 0xb9,
+ 0xe2, 0xe8, 0x1c, 0xaa, 0xd4, 0x5e, 0x28, 0xd5, 0xaf, 0x99, 0x40, 0x7f,
+ 0xe4, 0x8b, 0x60, 0x23, 0xc4, 0x88, 0x8c, 0xf2, 0xef, 0x70, 0xe3, 0xd4,
+ 0x05, 0x50, 0x87, 0x37, 0xbc, 0xcb, 0x78, 0x00, 0x2d, 0x03, 0x00, 0x00,
+ 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x00,
+ 0x10, 0x14, 0x00, 0x18, 0x00, 0x31, 0x7f, 0xe8, 0x0c, 0x5a, 0xb0, 0x60,
+ 0x11, 0x3b, 0x1e, 0xe7, 0x7f, 0x7d, 0x04, 0x3d, 0xe3, 0x00, 0xb4, 0xb2,
+ 0xfa, 0xa2, 0xe1, 0xc5, 0xe1, 0x8d, 0x6d, 0x13, 0x23, 0xdc, 0x0d, 0xac,
+ 0xd3, 0x2e, 0x77, 0x79, 0xde, 0x6a, 0x50, 0xa4, 0xef, 0xfd, 0x13, 0xba,
+ 0x20, 0x2a, 0x67, 0x86, 0xd1, 0x54, 0x03, 0x16, 0x37, 0x7d, 0xdf, 0xb5,
+ 0xb3, 0xa2, 0xde, 0xfa, 0xad, 0x07, 0x95, 0xcf, 0x12, 0x72, 0x9c, 0x27,
+ 0xbd, 0x96, 0xb4, 0x10, 0x68, 0x0d, 0xe6, 0x9d, 0x3f, 0xcd, 0x41, 0xfc,
+ 0x10, 0xc0, 0x0c, 0xd0, 0x1c, 0x16, 0x53, 0xae, 0xb8, 0x32, 0x13, 0x0b,
+ 0x7c, 0xb7, 0xee, 0xc1, 0x0d, 0xa5, 0xae, 0xb3, 0x52, 0x5e, 0xb7, 0x6f,
+ 0x4e, 0x9d, 0x0b, 0x2b, 0x74, 0x32, 0x7f, 0x7d, 0x00, 0x68, 0xea, 0x3d,
+ 0x2f, 0xc6, 0xac, 0x5e, 0x2f, 0xa2, 0x1b, 0x81, 0xfb, 0x98, 0xd9, 0x9b,
+ 0x04, 0x38, 0xbb, 0x38, 0x37, 0x25, 0x2d, 0xe2, 0xe5, 0x81, 0x6e, 0xa9,
+ 0x69, 0x66, 0x9f, 0x8d, 0x30, 0x9b, 0x20, 0xbe, 0xc1, 0x62, 0xfd, 0xc4,
+ 0x42, 0xf9, 0x8a, 0xc9, 0x54, 0xfc, 0x28, 0x6d, 0x44, 0x82, 0x00, 0x78,
+ 0xc5, 0x0f, 0x3b, 0x8a, 0x2c, 0x0f, 0x61, 0x91, 0x24, 0x22, 0x69, 0x33,
+ 0x2a, 0xaf, 0x18, 0x54, 0xe1, 0x78, 0x1a, 0x29, 0xa1, 0x45, 0x0d, 0x49,
+ 0x42, 0xc7, 0xb1, 0x5a, 0x59, 0xad, 0xd5, 0x87, 0x4c, 0xf4, 0x37, 0xad,
+ 0x91, 0x82, 0xdc, 0x67, 0xac, 0x9c, 0x6e, 0x4b, 0xb5, 0x8d, 0x54, 0x28,
+ 0xb6, 0x57, 0xec, 0xe1, 0x08, 0x67, 0x29, 0x76, 0x04, 0xdb, 0xf9, 0xc1,
+ 0x11, 0x29, 0x76, 0xcc, 0x01, 0x9a, 0x34, 0xba, 0xb3, 0xbd, 0x7b, 0x50,
+ 0x74, 0xbd, 0xa2, 0x00, 0x3a, 0xa8, 0x0e, 0x87, 0xef, 0x04, 0xaf, 0xe8,
+ 0x1a, 0x3c, 0xbc, 0xb1, 0xc5, 0x79, 0x5e, 0x0d, 0x4d, 0x37, 0xae, 0x55,
+ 0xe5, 0x5c, 0x2e, 0x7d, 0xdc, 0x96, 0x46, 0x60, 0x9e, 0xbe, 0xad, 0xff,
+ 0xfd, 0x61, 0xce, 0xa7, 0x08, 0x1d, 0x65, 0xaf, 0x8b, 0xed, 0xc3, 0xa8,
+ 0xc4, 0x60, 0x68, 0x00, 0x13, 0xec, 0x6a, 0x3e, 0x24, 0x86, 0x64, 0x63,
+ 0xdd, 0x56, 0xaf, 0x98, 0xfd, 0x8d, 0x86, 0x53, 0x5b, 0x76, 0x5b, 0xb1,
+ 0xc3, 0x27, 0x64, 0x59, 0xc0, 0x59, 0xaf, 0xf2, 0x79, 0x07, 0x51, 0xa4,
+ 0x1e, 0x80, 0x92, 0x3d, 0x61, 0x94, 0xe6, 0xa1, 0xef, 0x5e, 0x2d, 0x2b,
+ 0xc9, 0xe0, 0xf3, 0xf0, 0x60, 0x9a, 0x19, 0xe7, 0x52, 0x5a, 0x53, 0x8b,
+ 0x00, 0x65, 0xab, 0x8b, 0x47, 0xa1, 0x1a, 0x6e, 0x98, 0x4a, 0xe9, 0x4b,
+ 0x6e, 0xe8, 0x77, 0x9f, 0xfc, 0xea, 0x41, 0x95, 0xc8, 0x5c, 0x67, 0x79,
+ 0x93, 0xf3, 0x33, 0xb3, 0x33, 0x82, 0x05, 0x3b, 0x9f, 0x60, 0x1f, 0x7e,
+ 0x62, 0xe0, 0x8f, 0x05, 0xfb, 0x2f, 0xf1, 0xb3, 0x85, 0xc8, 0x11, 0x94,
+ 0xe0, 0xb7, 0x1b, 0xd2, 0x62, 0xf8, 0xf6, 0xa8, 0xd9, 0x7c, 0xef, 0x2a,
+ 0x75, 0x09, 0x90, 0xe5, 0x32, 0x8c, 0x6d, 0xd8, 0x7b, 0x04, 0xe9, 0xa9,
+ 0xac, 0xf0, 0x10, 0x48, 0x7b, 0x1d, 0xa8, 0xa9, 0x57, 0x4f, 0xfd, 0x8e,
+ 0x30, 0x76, 0xf4, 0x3d, 0x84, 0x9c, 0xe7, 0x11, 0xcd, 0x74, 0xe6, 0x60,
+ 0x03, 0x90, 0x97, 0x1e, 0x9f, 0x90, 0x03, 0x98, 0xb6, 0x6c, 0xc5, 0x82,
+ 0x12, 0xa9, 0x60, 0x6c, 0xa3, 0xad, 0xbc, 0x89, 0x4b, 0x2a, 0xe2, 0xec,
+ 0x86, 0x16, 0xb7, 0x5a, 0xb8, 0xe3, 0x04, 0x72, 0x11, 0x24, 0x36, 0x0f,
+ 0xd2, 0xdf, 0x2d, 0xb2, 0xe6, 0xd6, 0xba, 0x64, 0x28, 0xb2, 0x35, 0xe3,
+ 0x93, 0xba, 0xde, 0xe0, 0xb3, 0x4e, 0x4d, 0x69, 0x84, 0x50, 0xd1, 0x4d,
+ 0x25, 0xe1, 0x2e, 0x52, 0xb2, 0xb1, 0xb0, 0x78, 0x79, 0xed, 0xb1, 0xf2,
+ 0x22, 0x7e, 0x9a, 0xfb, 0xac, 0x16, 0xaa, 0x6d, 0x71, 0x07, 0xd9, 0x70,
+ 0x75, 0x72, 0x09, 0xba, 0xa8, 0x48, 0xe6, 0x16, 0x04, 0xdd, 0x95, 0xb7,
+ 0xe8, 0x64, 0x56, 0x51, 0xfa, 0xab, 0x7a, 0x5b, 0x51, 0xa6, 0x99, 0x82,
+ 0x52, 0xb3, 0x99, 0xed, 0x0c, 0x9d, 0xf2, 0x0f, 0xb8, 0x04, 0x2e, 0x12,
+ 0xd8, 0x6b, 0x8b, 0x7a, 0x48, 0x5f, 0x20, 0xbb, 0x38, 0xdb, 0x23, 0x4e,
+ 0x0a, 0x6a, 0x8b, 0x2c, 0xea, 0x41, 0x68, 0xe0, 0x1e, 0xda, 0x6f, 0x5c,
+ 0x44, 0xbe, 0x4d, 0xab, 0x41, 0xfa, 0x62, 0x72, 0x6b, 0x10, 0x88, 0x54,
+ 0x27, 0xcf, 0x15, 0x34, 0x06, 0x3d, 0x08, 0x4d, 0x1e, 0xa4, 0x83, 0x1f,
+ 0x7b, 0x1c, 0xab, 0x9f, 0x97, 0xe1, 0x90, 0x0a, 0x99, 0x72, 0x30, 0xda,
+ 0x91, 0x10, 0xa3, 0x08, 0xd1, 0x30, 0xd8, 0x81, 0x13, 0x23, 0xfd, 0x05,
+ 0xd3, 0x55, 0x1d, 0xa1, 0x04, 0xaf, 0xcb, 0x57, 0xc9, 0x1a, 0xda, 0x52,
+ 0x07, 0x25, 0x1a, 0x7f, 0xe3, 0x1e, 0x32, 0x48, 0xe7, 0xa1, 0xbb, 0x4e,
+ 0x2e, 0x44, 0xe5, 0xc6, 0x94, 0x4e, 0x2f, 0x1c, 0xf9, 0x5f, 0x3e, 0xd9,
+ 0x27, 0x66, 0x1a, 0x94, 0x8a, 0x74, 0x22, 0x8a, 0x4a, 0x13, 0x96, 0x2c,
+ 0x0b, 0xcb, 0x22, 0xd3, 0x3c, 0x74, 0xc0, 0xd0, 0xbb, 0x23, 0x49, 0x28,
+ 0xc4, 0xde, 0xf9, 0xbf, 0x51, 0x38, 0x2e, 0x80, 0x43, 0x06, 0xbf, 0x03,
+ 0x6f, 0x63, 0x34, 0x6d, 0xba, 0xc2, 0x0b, 0x20, 0xe6, 0xe6, 0x5f, 0xa7,
+ 0x2c, 0x76, 0x54, 0x50, 0x8a, 0x74, 0x2c, 0x77, 0x9c, 0x23, 0x98, 0xc0,
+ 0xea, 0xe6, 0xe9, 0x86, 0x81, 0xfb, 0x76, 0x2b, 0xa7, 0x34, 0xa1, 0x0c,
+ 0xb9, 0x47, 0x29, 0xa1, 0xc3, 0x30, 0x7a, 0x93, 0xeb, 0x11, 0xbb, 0xf1,
+ 0x5a, 0xdd, 0xa8, 0x58, 0x77, 0x51, 0xd8, 0x22, 0x73, 0x40, 0x7a, 0x00,
+ 0x8e, 0x93, 0xdf, 0xcb, 0x06, 0x9d, 0xfc, 0xed, 0xa8, 0x93, 0xeb, 0x61,
+ 0x59, 0xbb, 0xcb, 0xb4, 0xe1, 0x54, 0xd1, 0xce, 0xd2, 0x08, 0xe0, 0x24,
+ 0xdd, 0x04, 0xf8, 0x7e, 0x9d, 0x73, 0x78, 0x0c, 0x6b, 0x41, 0x2d, 0xed,
+ 0x7e, 0x24, 0x17, 0xcc, 0x00, 0xcb, 0x02, 0x00, 0x00, 0x2f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x02, 0x10, 0x14, 0x00,
+ 0x18, 0x12, 0x96, 0x00, 0xdb, 0x08, 0xb1, 0xfb, 0x54, 0x59, 0x0d, 0x1d,
+ 0x95, 0xb0, 0x27, 0x6f, 0x4c, 0x9f, 0xb1, 0xd2, 0x6a, 0x08, 0x25, 0x17,
+ 0x44, 0xf6, 0x25, 0xf9, 0xcd, 0x55, 0x57, 0x7a, 0xd4, 0xca, 0xbe, 0x8f,
+ 0x23, 0x4d, 0xa6, 0xa3, 0x90, 0xb8, 0xf3, 0x1e, 0xcb, 0x49, 0xc5, 0x83,
+ 0x5d, 0x0c, 0xa5, 0x89, 0x9a, 0xbe, 0x28, 0x14, 0x38, 0xa2, 0x40, 0x23,
+ 0x01, 0xeb, 0xdc, 0xf7, 0x8d, 0xab, 0x06, 0x39, 0x64, 0x09, 0x72, 0xe3,
+ 0x60, 0x00, 0x4d, 0x57, 0x66, 0x23, 0xe4, 0x62, 0x35, 0xbf, 0x6b, 0xec,
+ 0x83, 0x95, 0x9f, 0x21, 0xdf, 0x48, 0xaf, 0x65, 0xc5, 0xf8, 0x0d, 0x23,
+ 0x9f, 0xc2, 0x21, 0xe6, 0x5b, 0xdf, 0xf3, 0x59, 0x48, 0xa7, 0x72, 0xb7,
+ 0x00, 0x55, 0x50, 0x74, 0x29, 0xc0, 0x69, 0x20, 0x1f, 0x1b, 0x4f, 0x88,
+ 0x06, 0xe6, 0x42, 0x11, 0x51, 0x68, 0x2f, 0xcc, 0x67, 0xaf, 0xa7, 0xcf,
+ 0xb2, 0x90, 0x61, 0x50, 0x55, 0xc9, 0x1e, 0x23, 0x4e, 0x5c, 0x9e, 0xcf,
+ 0x08, 0xef, 0x1a, 0xc4, 0xfc, 0x40, 0x98, 0x0f, 0x2b, 0x29, 0x7a, 0x74,
+ 0xfc, 0x77, 0xcd, 0x4e, 0x7e, 0x1d, 0x4f, 0x3f, 0xf4, 0xe6, 0xe5, 0x30,
+ 0xf4, 0x87, 0x1f, 0xd7, 0x9d, 0xe5, 0x7a, 0xe7, 0x1c, 0xd6, 0xf3, 0x2e,
+ 0xee, 0xd1, 0x63, 0xa2, 0xf5, 0x12, 0xfb, 0xe5, 0xf0, 0x34, 0x5a, 0x69,
+ 0xcb, 0x89, 0x1d, 0xca, 0x57, 0xd6, 0x74, 0x2e, 0x60, 0xbb, 0x7d, 0xaa,
+ 0x9a, 0x0e, 0xaf, 0x6b, 0x18, 0x11, 0x86, 0x2e, 0xad, 0xa5, 0xd6, 0x71,
+ 0x69, 0x69, 0xea, 0xef, 0x35, 0x08, 0x74, 0xa9, 0xcb, 0x7c, 0x2b, 0x9c,
+ 0x16, 0x07, 0xf0, 0x06, 0x31, 0x6a, 0xdc, 0xaa, 0xe1, 0xfa, 0x37, 0x74,
+ 0x80, 0x24, 0xea, 0x65, 0x1f, 0x5a, 0x6e, 0xb6, 0x1f, 0xef, 0x5c, 0xf0,
+ 0xc8, 0xa2, 0x6d, 0x8b, 0x0f, 0xca, 0xd6, 0x33, 0x33, 0xc0, 0xa1, 0xe3,
+ 0x73, 0xbe, 0xdf, 0x5f, 0xa7, 0xce, 0x8b, 0x62, 0xfd, 0x5d, 0x00, 0xbb,
+ 0x57, 0x7c, 0xfb, 0x1c, 0x5d, 0x1b, 0xf2, 0xca, 0x2b, 0x7e, 0x50, 0x9d,
+ 0x1b, 0x74, 0xdb, 0xa0, 0xab, 0x76, 0xd9, 0xe4, 0xc0, 0xc2, 0x1f, 0x29,
+ 0x37, 0x20, 0xd6, 0x71, 0x28, 0xb2, 0x4b, 0x0b, 0x67, 0x5d, 0x91, 0x88,
+ 0xc9, 0xe1, 0x1a, 0x35, 0xcc, 0xe0, 0x79, 0xdc, 0x6c, 0x2e, 0x93, 0x50,
+ 0xff, 0xf4, 0x96, 0x7a, 0x2f, 0x95, 0xa8, 0x7d, 0xc7, 0x21, 0xa5, 0x35,
+ 0x66, 0x32, 0x2d, 0x37, 0x12, 0x36, 0xd6, 0xa0, 0x6d, 0xab, 0x17, 0x79,
+ 0xb4, 0xa3, 0x9d, 0x4e, 0xd9, 0x44, 0x61, 0x94, 0x4d, 0x18, 0x4d, 0x76,
+ 0x68, 0x4a, 0x3f, 0x3d, 0x86, 0x52, 0x6e, 0x57, 0xc0, 0x29, 0x51, 0xdb,
+ 0x5c, 0x88, 0xe5, 0xe3, 0xe1, 0x46, 0xfa, 0x9a, 0x9c, 0xda, 0x0d, 0x16,
+ 0x37, 0x1a, 0x25, 0x7d, 0x0a, 0x24, 0xc1, 0xd4, 0x2d, 0x2d, 0x7f, 0x36,
+ 0x5d, 0x75, 0x4a, 0x5d, 0xe2, 0x8f, 0xb1, 0xa4, 0xc6, 0x83, 0x33, 0xc3,
+ 0x61, 0x13, 0x88, 0x7d, 0x19, 0x47, 0x14, 0x03, 0x5d, 0x5b, 0xce, 0x04,
+ 0x74, 0xd5, 0xf6, 0xe7, 0x53, 0x4f, 0xdb, 0x2a, 0x70, 0x4a, 0x23, 0x49,
+ 0xc0, 0x83, 0xec, 0x56, 0xfd, 0x31, 0x87, 0x8c, 0x4b, 0x71, 0xba, 0xca,
+ 0x12, 0xdb, 0x45, 0xb1, 0x7c, 0x48, 0xfd, 0x7d, 0xbe, 0x61, 0xc1, 0x96,
+ 0x11, 0x0d, 0x99, 0xd5, 0x5d, 0xed, 0x58, 0xaf, 0x78, 0x16, 0x96, 0x7f,
+ 0x82, 0xf9, 0x11, 0x49, 0xdd, 0x39, 0x50, 0x56, 0x06, 0xd0, 0x22, 0x72,
+ 0x91, 0xc3, 0x82, 0xcd, 0x65, 0x97, 0x60, 0xb5, 0x27, 0xb8, 0x0c, 0x1b,
+ 0xe3, 0xb5, 0xbb, 0x2d, 0x9a, 0x81, 0x9f, 0x6a, 0x88, 0xe9, 0x1f, 0x9e,
+ 0x95, 0xeb, 0x8e, 0x5d, 0xd9, 0xb8, 0xf9, 0x6b, 0xcc, 0x59, 0x87, 0x30,
+ 0x15, 0x67, 0xcf, 0xf2, 0x58, 0xf6, 0x25, 0x42, 0x07, 0xb7, 0xcc, 0x7b,
+ 0x65, 0xcc, 0xa4, 0x2b, 0x94, 0x52, 0x6a, 0x14, 0xf3, 0x67, 0xd8, 0x14,
+ 0x81, 0xc5, 0x31, 0xa0, 0xa6, 0x4a, 0xbe, 0xbf, 0xb8, 0x1f, 0x3a, 0x33,
+ 0x97, 0xf2, 0x48, 0x58, 0x08, 0x28, 0xec, 0x94, 0x41, 0xd2, 0x1c, 0x52,
+ 0x8c, 0xda, 0xaf, 0xbe, 0xbb, 0x70, 0x29, 0x5a, 0xa3, 0xc6, 0xae, 0x29,
+ 0xa4, 0x23, 0x62, 0x09, 0x80, 0x8f, 0x71, 0x4d, 0x36, 0x92, 0xa3, 0xd6,
+ 0xd3, 0xc6, 0x7d, 0x9b, 0x87, 0xeb, 0xa8, 0xf4, 0x9b, 0x22, 0x40, 0x5f,
+ 0x9d, 0x5e, 0x56, 0xfd, 0x67, 0xdd, 0xee, 0xca, 0x45, 0x89, 0x1f, 0xa8,
+ 0x6c, 0x1e, 0x90, 0x91, 0xc5, 0x70, 0x4e, 0x72, 0xe5, 0xca, 0xe0, 0x8c,
+ 0xf9, 0x87, 0xbd, 0xd5, 0x68, 0x11, 0x8e, 0xb3, 0x35, 0x44, 0xbe, 0x26,
+ 0x27, 0x2d, 0xfc, 0xb8, 0xa4, 0xf3, 0xf4, 0xf1, 0xcb, 0x6b, 0x10, 0xa5,
+ 0xb0, 0x72, 0x49, 0xc1, 0x10, 0x55, 0xdc, 0xce, 0xfd, 0xb0, 0x3a, 0x71,
+ 0xa6, 0xa2, 0x61, 0x17, 0xca, 0x9f, 0x42, 0xa5, 0xaf, 0x8c, 0xb5, 0xe6,
+ 0xb7, 0x5b, 0x45, 0x5a, 0xd2, 0x88, 0xbf, 0x37, 0x11, 0x57, 0xa1, 0x31,
+ 0xc1, 0xca, 0x51, 0xdb, 0x8e, 0x75, 0x63, 0xfa, 0x76, 0x1c, 0x78, 0xa7,
+ 0x82, 0x71, 0xdd, 0x4f, 0x53, 0xee, 0x13, 0xd4, 0xd8, 0xb1, 0x65, 0x00,
+ 0x90, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xd1, 0x0d, 0x00, 0x00, 0x10, 0x18, 0x00, 0x18, 0x00, 0x1c, 0x18, 0x8f,
+ 0xcf, 0xe8, 0x98, 0x32, 0x74, 0xe7, 0xc2, 0x8f, 0x48, 0x70, 0x5d, 0x79,
+ 0x03, 0xbd, 0xd7, 0xfa, 0xde, 0x12, 0x87, 0x02, 0xac, 0x5d, 0x25, 0x6d,
+ 0x0e, 0xed, 0x44, 0xae, 0xf0, 0x83, 0x01, 0x51, 0x5c, 0x4a, 0x96, 0x8c,
+ 0x11, 0x03, 0xb9, 0x5f, 0xbc, 0xae, 0x6d, 0x03, 0x32, 0xbf, 0x5e, 0xeb,
+ 0xf2, 0xb4, 0x7d, 0xa5, 0x1d, 0x49, 0x06, 0x18, 0xb7, 0xf4, 0x8e, 0x01,
+ 0x2b, 0x8e, 0x00, 0xef, 0xc1, 0x6a, 0xd7, 0xb2, 0x3d, 0xb0, 0x00, 0xb8,
+ 0xf0, 0x90, 0xdc, 0x98, 0xf3, 0x1b, 0x8c, 0xec, 0x8d, 0x30, 0x00, 0x5b,
+ 0x12, 0xa3, 0x92, 0x15, 0x35, 0x8e, 0x8a, 0x08, 0x3c, 0x0d, 0x9a, 0x8b,
+ 0xbc, 0xec, 0xe4, 0x74, 0x80, 0xf0, 0x7e, 0x5f, 0x85, 0x25, 0x1f, 0x2e,
+ 0xca, 0xd8, 0x3c, 0x28, 0xe5, 0x28, 0x7c, 0xc7, 0xdf, 0xa6, 0xe8, 0x24,
+ 0x2e, 0xf6, 0x15, 0xdf, 0xb4, 0xdc, 0x5b, 0x64, 0x7b, 0xb5, 0x76, 0x06,
+ 0x3e, 0x93, 0x67, 0x18, 0x59, 0xb3, 0xb3, 0xb8, 0x5e, 0xa0, 0xec, 0x4e,
+ 0xc7, 0x1d, 0x77, 0x23, 0x7a, 0xe0, 0xfb, 0x3e, 0x66, 0x8f, 0x36, 0xfc,
+ 0xbe, 0xa0, 0xa3, 0x2f, 0x11, 0x14, 0x16, 0x4d, 0x05, 0x0e, 0x87, 0xfb,
+ 0xaf, 0x36, 0x63, 0xa8, 0xd3, 0xc8, 0xdc, 0x43, 0x03, 0xe2, 0x5f, 0x1d,
+ 0x91, 0x6f, 0xad, 0x95, 0xb7, 0xec, 0xa8, 0x81, 0x55, 0xce, 0x7c, 0x97,
+ 0x01, 0x76, 0xf4, 0xde, 0xa0, 0x11, 0x7f, 0xad, 0x88, 0x91, 0xb3, 0xc9,
+ 0xf3, 0xec, 0x03, 0x85, 0x5c, 0xe7, 0x9f, 0x2f, 0x84, 0x29, 0x76, 0xdd,
+ 0xa0, 0xcd, 0xd4, 0x65, 0x4f, 0x6b, 0xce, 0xc8, 0x0d, 0xe0, 0x54, 0x2a,
+ 0x35, 0x11, 0xad, 0x35, 0x80, 0xe7, 0x40, 0xa9, 0xdf, 0x23, 0x3f, 0xb6,
+ 0x16, 0xe6, 0x61, 0x94, 0x62, 0x98, 0x5a, 0x1c, 0xda, 0x24, 0x02, 0x72,
+ 0x62, 0x05, 0xdc, 0x23, 0xd4, 0x38, 0x30, 0x9e, 0x17, 0x87, 0xc7, 0x51,
+ 0x8b, 0xc9, 0x92, 0x72, 0x8f, 0x04, 0x6f, 0xeb, 0x07, 0x99, 0xc5, 0x8e,
+ 0x07, 0x31, 0x43, 0xe4, 0xa7, 0xea, 0xa8, 0x8b, 0x69, 0x85, 0x40, 0xed,
+ 0x85, 0xd2, 0x35, 0x38, 0xe0, 0x82, 0x13, 0xce, 0x03, 0x07, 0x8b, 0xe5,
+ 0xa5, 0xc1, 0x71, 0x1c, 0x02, 0xc5, 0x49, 0x1b, 0xcb, 0x69, 0xa4, 0x66,
+ 0xb7, 0x48, 0x7e, 0x5b, 0xf8, 0x4e, 0x1d, 0x91, 0x0f, 0xab, 0xd9, 0x9b,
+ 0xfe, 0xb1, 0x63, 0xfe, 0x3f, 0x3f, 0xb1, 0x49, 0x89, 0x5b, 0xe0, 0x32,
+ 0x2d, 0xfd, 0x31, 0x9c, 0x8b, 0xfb, 0x14, 0x98, 0x7d, 0xfe, 0x15, 0x22,
+ 0x75, 0xde, 0x8f, 0xab, 0xbd, 0xde, 0xf4, 0xf5, 0xf2, 0x6e, 0xbb, 0xb3,
+ 0x91, 0xc7, 0x4f, 0x93, 0x03, 0x2b, 0x53, 0xec, 0xbd, 0x84, 0x47, 0x53,
+ 0x72, 0x4c, 0x55, 0x10, 0x41, 0xa1, 0xcd, 0xab, 0xc5, 0x89, 0x57, 0x94,
+ 0xca, 0x7d, 0x90, 0x01, 0xdf, 0x7a, 0x4b, 0xa7, 0x35, 0x1c, 0x50, 0xe3,
+ 0x3d, 0xdb, 0x9b, 0xa0, 0xe0, 0xe0, 0x60, 0xf6, 0xb0, 0xfa, 0xd0, 0xfd,
+ 0xaa, 0x8e, 0x04, 0xdc, 0x95, 0xde, 0x10, 0xc4, 0x2a, 0x51, 0xc1, 0x4f,
+ 0x65, 0xcb, 0x98, 0x54, 0xf5, 0xd4, 0x2c, 0xe7, 0xf2, 0x5a, 0x50, 0x78,
+ 0x71, 0x74, 0x5e, 0x33, 0x45, 0x61, 0x3c, 0xa6, 0xd2, 0xcb, 0xa3, 0x91,
+ 0xee, 0x9c, 0xaa, 0x91, 0x70, 0x61, 0xd7, 0xf1, 0x78, 0xff, 0x2b, 0xdf,
+ 0xb7, 0x72, 0xa7, 0x7f, 0x60, 0xf8, 0x53, 0xab, 0x6e, 0x84, 0xb5, 0x3c,
+ 0x57, 0xfd, 0xb2, 0x51, 0x88, 0x6e, 0x3c, 0x49, 0xe7, 0xf4, 0xcc, 0x2a,
+ 0x73, 0x83, 0xf1, 0x0f, 0x0d, 0x73, 0x23, 0x70, 0xb0, 0x9b, 0x76, 0x01,
+ 0xdc, 0x65, 0xe8, 0x03, 0xe2, 0xb3, 0x84, 0x94, 0x32, 0x57, 0x65, 0x5b,
+ 0x57, 0xf8, 0x16, 0x4c, 0x49, 0xfe, 0x6e, 0x6d, 0xfb, 0xc1, 0xc6, 0x53,
+ 0x4b, 0x1b, 0x68, 0x30, 0xda, 0x11, 0xd5, 0xe4, 0xfc, 0x2a, 0x79, 0xcc,
+ 0xfe, 0x19, 0x19, 0x5b, 0xd7, 0x99, 0xb4, 0xb7, 0x62, 0x1c, 0x72, 0x04,
+ 0xc8, 0xd9, 0xe4, 0x38, 0x43, 0x74, 0xa2, 0x17, 0x73, 0xe4, 0xef, 0x2a,
+ 0x64, 0xe9, 0x4a, 0xa3, 0x91, 0x28, 0x92, 0xa6, 0x84, 0xe1, 0xa6, 0x8a,
+ 0xbb, 0x76, 0x58, 0xa7, 0xae, 0x09, 0x77, 0xee, 0x34, 0x49, 0x82, 0x99,
+ 0x57, 0xfe, 0x43, 0x3a, 0xed, 0x5d, 0xd7, 0x04, 0x83, 0xc0, 0xd5, 0x3b,
+ 0xa4, 0x72, 0x21, 0xf9, 0xe2, 0x13, 0x5e, 0xa9, 0x9b, 0x54, 0xe1, 0xc5,
+ 0x44, 0x3b, 0xfa, 0x8d, 0x76, 0x44, 0x36, 0x92, 0x13, 0x07, 0x96, 0x42,
+ 0x7a, 0xe2, 0x76, 0x5f, 0x74, 0xe3, 0x16, 0x2f, 0x93, 0xf0, 0xff, 0xa2,
+ 0x7e, 0x38, 0xa1, 0x03, 0xde, 0x20, 0x93, 0x9d, 0x87, 0xc4, 0xbb, 0x7c,
+ 0x1b, 0xed, 0x35, 0xab, 0x71, 0x0e, 0x4d, 0x00, 0xcb, 0x02, 0x00, 0x00,
+ 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e, 0x00, 0x05,
+ 0x10, 0x18, 0x00, 0x18, 0x00, 0x5c, 0x65, 0x5e, 0x3e, 0xbc, 0x76, 0xf9,
+ 0x9b, 0xcf, 0x70, 0x94, 0x5d, 0xca, 0xd4, 0xe4, 0x00, 0xc3, 0xd9, 0xd0,
+ 0x06, 0x31, 0x20, 0xe5, 0xb5, 0x92, 0x34, 0xa1, 0x6d, 0xc9, 0xa8, 0x43,
+ 0xb3, 0xb8, 0x5c, 0x9b, 0x37, 0x8f, 0x2f, 0x20, 0x1a, 0x08, 0x21, 0xc5,
+ 0x77, 0x0b, 0x68, 0x05, 0x7a, 0x14, 0x20, 0x0a, 0x23, 0x30, 0x82, 0x95,
+ 0x9f, 0x71, 0x4a, 0x03, 0x1f, 0x33, 0x03, 0x3c, 0xb5, 0x06, 0x82, 0x17,
+ 0x98, 0xdd, 0x3a, 0xcb, 0x9f, 0x46, 0x96, 0xb9, 0x4b, 0x9c, 0x11, 0x4a,
+ 0xd0, 0x4d, 0xe7, 0x58, 0xef, 0xc5, 0x8b, 0x4c, 0x81, 0xe8, 0x51, 0xac,
+ 0x9b, 0x4c, 0x4a, 0x8a, 0xa9, 0xb7, 0x7a, 0xe3, 0x67, 0x74, 0xd3, 0xb7,
+ 0x88, 0x0f, 0x3c, 0x00, 0xf0, 0x7e, 0x5e, 0x86, 0x7f, 0x43, 0x5c, 0x46,
+ 0xea, 0x53, 0x20, 0xce, 0x7a, 0x83, 0x2b, 0xcf, 0x19, 0x1c, 0x1c, 0x96,
+ 0xb3, 0x03, 0x32, 0xde, 0x11, 0x82, 0xc2, 0xd5, 0xd4, 0x89, 0x11, 0x7b,
+ 0x9d, 0x57, 0xc3, 0x08, 0x8b, 0x52, 0x4b, 0x39, 0x6d, 0xfb, 0xc9, 0x60,
+ 0x2d, 0x39, 0x98, 0x9c, 0x9b, 0xa9, 0x1f, 0x9d, 0xec, 0x9b, 0x76, 0x4e,
+ 0x07, 0x69, 0x11, 0x1c, 0x30, 0xb1, 0x01, 0x9c, 0x9c, 0x23, 0x7d, 0x4c,
+ 0xa5, 0xda, 0x93, 0xf2, 0x21, 0xdd, 0xb3, 0xbd, 0xf1, 0xe3, 0xbd, 0xa3,
+ 0x1c, 0x90, 0xce, 0x74, 0xfe, 0xf2, 0x97, 0xbf, 0x81, 0xdf, 0x31, 0x2d,
+ 0x44, 0xd0, 0xaf, 0x23, 0xbf, 0x85, 0xe7, 0x13, 0xbe, 0x62, 0xfe, 0x33,
+ 0xe9, 0xed, 0x6c, 0xae, 0x24, 0xf1, 0x88, 0xcb, 0xab, 0x5b, 0xeb, 0x41,
+ 0x44, 0x99, 0x6a, 0x60, 0xa8, 0x56, 0x21, 0xab, 0xa9, 0x94, 0x64, 0x1d,
+ 0x86, 0x3b, 0xc6, 0xc6, 0x0c, 0x33, 0x31, 0x15, 0x9e, 0x39, 0xe9, 0x20,
+ 0xb7, 0x14, 0x7d, 0x1f, 0xd6, 0x50, 0x32, 0xbc, 0xb2, 0xb6, 0x52, 0xa5,
+ 0xf6, 0x8d, 0x2c, 0xbf, 0xdf, 0x08, 0x2b, 0x0e, 0x10, 0x44, 0x04, 0x1d,
+ 0xdf, 0xb5, 0x1b, 0xad, 0x8f, 0x3f, 0xc1, 0xed, 0xab, 0x84, 0xbd, 0x4d,
+ 0x68, 0x31, 0xdf, 0x1d, 0xf9, 0x97, 0xd7, 0x4e, 0x78, 0x33, 0x68, 0x5e,
+ 0x9b, 0x78, 0x50, 0xf9, 0x2d, 0xb8, 0xe2, 0x9c, 0x75, 0x7c, 0x49, 0xf2,
+ 0x3b, 0x70, 0xa4, 0x8f, 0x4b, 0x67, 0x5c, 0x72, 0xd8, 0x3b, 0xd4, 0x07,
+ 0x08, 0x4b, 0xd7, 0x08, 0x56, 0x41, 0x46, 0x63, 0x87, 0x69, 0x89, 0x59,
+ 0xd6, 0x22, 0x04, 0xba, 0x9f, 0xd8, 0x1f, 0xc6, 0x86, 0x1b, 0x0b, 0x5f,
+ 0x9e, 0x1e, 0x99, 0x57, 0x8c, 0xc5, 0x5c, 0x68, 0xd4, 0x5f, 0xcc, 0x93,
+ 0x4e, 0x01, 0xa7, 0x3c, 0x4e, 0x7a, 0x01, 0x65, 0x38, 0x90, 0xfa, 0x29,
+ 0xec, 0xbf, 0xca, 0xb9, 0x1a, 0x00, 0x3a, 0xe6, 0xcb, 0x8e, 0x14, 0x4f,
+ 0xf8, 0x66, 0x14, 0x9a, 0x65, 0x53, 0x9b, 0xb9, 0x7d, 0xb1, 0xdf, 0x06,
+ 0x04, 0x71, 0x91, 0xcf, 0x09, 0x37, 0xf2, 0xba, 0x5b, 0x9e, 0x07, 0xf4,
+ 0x01, 0xee, 0x29, 0xf4, 0xc5, 0x39, 0x3d, 0x05, 0x97, 0xd3, 0x54, 0xb3,
+ 0xf0, 0x1c, 0xbf, 0x17, 0x02, 0x57, 0x95, 0x54, 0x12, 0x1a, 0x03, 0x87,
+ 0x66, 0x0e, 0x91, 0xab, 0xdf, 0x22, 0x75, 0x06, 0xea, 0xa7, 0xd9, 0x3e,
+ 0xc7, 0x7f, 0x1c, 0x6f, 0xcc, 0x55, 0x03, 0x60, 0x8b, 0x38, 0x36, 0x30,
+ 0x91, 0xb6, 0xfd, 0x37, 0x18, 0x63, 0xef, 0xba, 0x19, 0xb8, 0x13, 0xe1,
+ 0xcf, 0xca, 0x60, 0x2d, 0x18, 0x06, 0x53, 0x20, 0x06, 0x70, 0xa6, 0x24,
+ 0xc3, 0xa1, 0x23, 0xf2, 0x47, 0xab, 0xec, 0xb2, 0xa7, 0x19, 0x93, 0x4e,
+ 0x10, 0x76, 0x47, 0x05, 0xac, 0x70, 0x56, 0xa2, 0xa8, 0x5a, 0x3d, 0xbc,
+ 0xc0, 0xb7, 0x97, 0xee, 0x1a, 0x18, 0x6c, 0xa2, 0xe5, 0x97, 0xfe, 0xfe,
+ 0x0d, 0x96, 0x51, 0xea, 0x03, 0x37, 0xf1, 0xd0, 0x1f, 0x93, 0x9d, 0xc2,
+ 0x3b, 0xa5, 0xdf, 0x1c, 0x36, 0xe5, 0xfb, 0x13, 0x37, 0x33, 0xda, 0x97,
+ 0x44, 0xf8, 0xb9, 0xac, 0x4c, 0x90, 0x08, 0x64, 0xef, 0x56, 0x2c, 0x50,
+ 0xf2, 0xe4, 0x43, 0x49, 0xef, 0x97, 0xa8, 0xaf, 0xc9, 0x6e, 0x30, 0xd1,
+ 0x8a, 0x8f, 0x1b, 0x6e, 0xaa, 0xd2, 0x2c, 0x34, 0xd7, 0x14, 0xda, 0xe9,
+ 0x77, 0xc2, 0x4f, 0x36, 0xb9, 0x9d, 0x1f, 0x6c, 0x76, 0x15, 0x8d, 0xd0,
+ 0x5a, 0x8c, 0x60, 0x59, 0x36, 0xf0, 0xc2, 0xb5, 0x17, 0x72, 0x78, 0xe1,
+ 0x9e, 0xd3, 0x71, 0xa1, 0x49, 0xaf, 0x97, 0x4d, 0xb5, 0x49, 0xb5, 0xa2,
+ 0xb9, 0xf7, 0x49, 0xfe, 0x86, 0xa8, 0x91, 0xe5, 0x0f, 0x7e, 0x76, 0xa0,
+ 0x73, 0xe8, 0x9a, 0x28, 0x8b, 0x7d, 0xa9, 0xdc, 0x2c, 0xf9, 0xf6, 0x9f,
+ 0x16, 0x59, 0x5c, 0x4a, 0x2c, 0xe2, 0x09, 0x39, 0x89, 0x13, 0xf3, 0x60,
+ 0xd8, 0x08, 0x18, 0xe3, 0x42, 0xb6, 0x63, 0x27, 0x04, 0xfd, 0xf5, 0x06,
+ 0xf8, 0x19, 0xcc, 0x66, 0x94, 0x00, 0xaa, 0xeb, 0x65, 0xfa, 0xca, 0xce,
+ 0xd7, 0xd9, 0x9b, 0xba, 0x98, 0xa6, 0xcb, 0xf4, 0x73, 0x5c, 0x21, 0x67,
+ 0x70, 0xba, 0x0a, 0xbc, 0x49, 0xe6, 0x42, 0xcf, 0x10, 0x0a, 0xa9, 0x0d,
+ 0x80, 0x7d, 0x7b, 0x81, 0xb7, 0x78, 0x76, 0xef, 0x67, 0xba, 0x9e, 0xca,
+ 0xc0, 0x88, 0x00, 0xd8, 0x05, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb1, 0x3d, 0x00, 0x3b, 0x11, 0xfc, 0x00, 0x18, 0x01,
+ 0x5d, 0x8d, 0xe8, 0xa3, 0xe6, 0x3f, 0x6a, 0xbf, 0x3f, 0xfc, 0x60, 0x7b,
+ 0xd8, 0xbd, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xf6, 0xfd, 0xdb, 0xff, 0xf7,
+ 0xbd, 0x6d, 0xff, 0xff, 0xd6, 0xf9, 0x7f, 0xf8, 0x8d, 0x7f, 0x7f, 0xff,
+ 0xff, 0xaf, 0x3f, 0x3f, 0xfc, 0xfb, 0xf6, 0xa7, 0xff, 0xff, 0xef, 0x85,
+ 0xe5, 0x69, 0xff, 0xff, 0xb0, 0x1f, 0xbf, 0xfd, 0xbf, 0xe1, 0x49, 0xb9,
+ 0xcd, 0x17, 0x08, 0x1c, 0xbf, 0xa8, 0x47, 0x9e, 0x13, 0xa3, 0x97, 0x00,
+ 0x99, 0x72, 0x6c, 0xf9, 0xc4, 0x3d, 0x11, 0xfc, 0x73, 0x39, 0x51, 0x8b,
+ 0x14, 0x7b, 0x4d, 0x63, 0xca, 0x90, 0x28, 0x98, 0x8f, 0xee, 0x9d, 0xb3,
+ 0x5b, 0xc7, 0x6f, 0xd3, 0x67, 0xe4, 0xba, 0xa1, 0x49, 0x7b, 0xcc, 0xec,
+ 0xda, 0xac, 0x9c, 0xd4, 0xd4, 0x03, 0x7e, 0x53, 0x68, 0x0b, 0x12, 0xc7,
+ 0x9f, 0x20, 0x07, 0xb8, 0x51, 0x5d, 0x67, 0x07, 0xb3, 0x4f, 0xc0, 0xdc,
+ 0x83, 0x00, 0x5e, 0x1e, 0x9f, 0xa0, 0x69, 0xbd, 0x9b, 0x3a, 0xe5, 0x01,
+ 0x62, 0xe5, 0x8a, 0xbc, 0x07, 0x08, 0x0b, 0x57, 0x81, 0xb1, 0x85, 0xe6,
+ 0x29, 0x44, 0xa8, 0xd2, 0x17, 0x76, 0x69, 0xb6, 0x15, 0xef, 0x87, 0x1d,
+ 0xae, 0xed, 0x28, 0xd5, 0x16, 0x69, 0xc6, 0x4d, 0x12, 0x47, 0xfa, 0xe4,
+ 0xec, 0xb8, 0xd7, 0x32, 0x1e, 0xf6, 0xb6, 0x8a, 0xf1, 0x55, 0xa0, 0x92,
+ 0xec, 0x0c, 0x93, 0x50, 0x10, 0xe6, 0x53, 0xeb, 0x73, 0x1e, 0xc4, 0x5d,
+ 0x69, 0x88, 0xd3, 0x56, 0xdd, 0x5a, 0x5b, 0xdb, 0xeb, 0x5d, 0x17, 0x2e,
+ 0xc6, 0x75, 0xe8, 0xe1, 0xa3, 0xa0, 0x0a, 0x49, 0xb5, 0x5b, 0x93, 0xb3,
+ 0xa7, 0x2e, 0xa0, 0xdb, 0xec, 0xf1, 0x7d, 0xeb, 0xd9, 0x78, 0x1c, 0xa3,
+ 0xb7, 0x16, 0xf5, 0x24, 0x21, 0x88, 0xc1, 0x19, 0xd6, 0x02, 0xff, 0x07,
+ 0x71, 0x5f, 0x47, 0x93, 0x40, 0xfb, 0xbd, 0x6f, 0xdb, 0xed, 0x4e, 0x66,
+ 0xe2, 0x11, 0x5a, 0xf6, 0x35, 0x39, 0x58, 0xf5, 0x46, 0xa1, 0x01, 0x5f,
+ 0x40, 0x87, 0x87, 0x44, 0x88, 0xa8, 0x19, 0xbf, 0xa7, 0x87, 0xfb, 0xa7,
+ 0x2f, 0xff, 0xa7, 0x2d, 0xea, 0x26, 0xfe, 0x4f, 0x30, 0x84, 0x09, 0x57,
+ 0x3a, 0x86, 0xcb, 0xfa, 0x3c, 0x93, 0xd5, 0xb0, 0x00, 0xd7, 0x98, 0x6e,
+ 0x98, 0xe6, 0xe3, 0x0d, 0xd8, 0x67, 0x76, 0xa7, 0x9d, 0xa2, 0x4b, 0x85,
+ 0x9b, 0xd4, 0x56, 0xfa, 0x5d, 0x74, 0xcc, 0x62, 0x8f, 0x3e, 0x65, 0x88,
+ 0xd5, 0x2f, 0x1e, 0x9a, 0x65, 0x12, 0x56, 0xf2, 0x13, 0xd7, 0xd9, 0xef,
+ 0xb4, 0x29, 0x7f, 0xb7, 0x28, 0x6b, 0xe1, 0x61, 0x9f, 0x0b, 0xda, 0xee,
+ 0xf9, 0x57, 0x83, 0xed, 0x32, 0xcb, 0x0a, 0xca, 0x4c, 0x06, 0x0d, 0x78,
+ 0x77, 0x51, 0xad, 0x50, 0x68, 0x0e, 0xf1, 0x27, 0x7b, 0x4e, 0x19, 0xdb,
+ 0x39, 0x2d, 0x41, 0xd4, 0xb8, 0x95, 0x0c, 0x81, 0x5a, 0xdc, 0x00, 0x65,
+ 0x37, 0x7e, 0x7f, 0x5c, 0x6c, 0xbc, 0xf4, 0x69, 0x0d, 0x8f, 0x8f, 0xf0,
+ 0x78, 0x91, 0x48, 0xd6, 0xb6, 0xde, 0xe9, 0x51, 0x00, 0xf6, 0x10, 0x00,
+ 0xc4, 0xb4, 0xf6, 0x5f, 0xe0, 0x01, 0xd4, 0xff, 0xf7, 0x00, 0x05, 0xab,
+ 0x64, 0x2d, 0x00, 0x01, 0xa7, 0x62, 0x49, 0xe0, 0x02, 0x11, 0xae, 0x67,
+ 0x58, 0x02, 0x7b, 0xb6, 0xb8, 0x03, 0x00, 0x49, 0xc7, 0x30, 0x6f, 0x00,
+ 0xad, 0xe3, 0x9b, 0xe9, 0x8a, 0x84, 0x60, 0x55, 0x04, 0x00, 0x3d, 0x8f,
+ 0x90, 0xce, 0x00, 0x29, 0xb2, 0x65, 0x86, 0x00, 0x22, 0x9f, 0x2b, 0x9f,
+ 0x34, 0x2d, 0x30, 0x59, 0x28, 0xb6, 0xac, 0x09, 0xaf, 0x24, 0xd7, 0xac,
+ 0xf0, 0xe0, 0xb0, 0xbf, 0xab, 0xf6, 0xb6, 0x62, 0xc7, 0x0b, 0x3c, 0x71,
+ 0xd9, 0x57, 0x32, 0x4b, 0x3d, 0xd7, 0xe2, 0x13, 0x33, 0xf5, 0x18, 0x70,
+ 0x1e, 0xe1, 0x22, 0x44, 0xe9, 0x61, 0x5c, 0x84, 0xd0, 0x0e, 0x5e, 0x0d,
+ 0xe0, 0x86, 0x0d, 0x04, 0x19, 0x78, 0xa1, 0x62, 0xb0, 0x45, 0xd9, 0x36,
+ 0x3b, 0xec, 0x27, 0x26, 0x5b, 0x1f, 0xe1, 0x38, 0x22, 0x79, 0x3c, 0xfe,
+ 0xed, 0x38, 0xea, 0xdd, 0x0d, 0x55, 0xa6, 0x63, 0x62, 0x24, 0x13, 0xa4,
+ 0x39, 0xf2, 0xb1, 0xdd, 0x94, 0x08, 0xdc, 0xc0, 0x25, 0xc0, 0x0d, 0x22,
+ 0x0e, 0x74, 0x02, 0x76, 0xdd, 0xe1, 0xea, 0x7d, 0x50, 0x5e, 0xa3, 0x21,
+ 0x08, 0x06, 0x3a, 0xd5, 0xf3, 0x83, 0xfa, 0x12, 0x32, 0x02, 0x2c, 0x87,
+ 0xc2, 0x95, 0xca, 0x3b, 0x1b, 0x68, 0x3f, 0xf6, 0xb5, 0x26, 0x30, 0x5f,
+ 0x03, 0x55, 0xa4, 0x0d, 0x93, 0xb1, 0xe0, 0xb7, 0x6e, 0xce, 0xec, 0xe5,
+ 0x15, 0x61, 0x08, 0x7f, 0x15, 0x03, 0x36, 0xb4, 0x08, 0x8a, 0x80, 0xa8,
+ 0x42, 0xc1, 0x97, 0x99, 0xa7, 0xe9, 0xaf, 0x0e, 0x9e, 0xfe, 0xec, 0xb0,
+ 0x69, 0x4b, 0x4b, 0x5e, 0xd5, 0xa6, 0xbc, 0xff, 0x4c, 0x9b, 0xf6, 0x87,
+ 0x9b, 0x5d, 0x19, 0x53, 0x52, 0x87, 0xf7, 0x7d, 0xb6, 0xef, 0x28, 0x00,
+ 0x19, 0x65, 0xf0, 0x58, 0x7f, 0xf9, 0x2a, 0xd0, 0x51, 0x82, 0x2f, 0x33,
+ 0xb6, 0xca, 0x9e, 0xb0, 0x13, 0x83, 0xbb, 0x7c, 0xd3, 0x71, 0xf5, 0xd0,
+ 0x90, 0x80, 0x31, 0xab, 0xdf, 0xc9, 0x49, 0x91, 0xbe, 0x71, 0xef, 0x62,
+ 0x77, 0xd0, 0xee, 0x6e, 0x02, 0xfc, 0xa1, 0xe2, 0xa2, 0x4f, 0x20, 0xae,
+ 0x1a, 0xdf, 0x0f, 0x30, 0xa7, 0x26, 0xe8, 0xbb, 0xb9, 0x1d, 0x06, 0x45,
+ 0x18, 0xdd, 0x18, 0xb4, 0xbd, 0x83, 0x9f, 0x7a, 0xbc, 0xbb, 0x54, 0x48,
+ 0x96, 0x96, 0x8d, 0x1b, 0xef, 0x43, 0x8f, 0x88, 0xcf, 0xda, 0xe9, 0x43,
+ 0x93, 0xe2, 0x94, 0xfc, 0x69, 0xe5, 0x81, 0xc3, 0xfb, 0xec, 0xf3, 0x7c,
+ 0xfb, 0x83, 0x32, 0xd7, 0x2a, 0x07, 0xbd, 0xe8, 0x10, 0x79, 0xc3, 0x2e,
+ 0x61, 0x46, 0xb8, 0x9f, 0x08, 0x14, 0xb7, 0x1f, 0x2e, 0xaa, 0xa3, 0xf2,
+ 0x9d, 0x90, 0xa2, 0xcb, 0x00, 0x59, 0x84, 0x46, 0xbc, 0xf1, 0x45, 0x9f,
+ 0xf1, 0xc9, 0x8b, 0x71, 0xf6, 0xc4, 0xdc, 0x1d, 0x27, 0x72, 0xa9, 0x88,
+ 0x07, 0x92, 0x59, 0xc4, 0x7e, 0xed, 0xac, 0x61, 0x05, 0x33, 0x4f, 0x8e,
+ 0x35, 0xaf, 0xf1, 0xeb, 0x80, 0x92, 0x94, 0x11, 0x0e, 0x14, 0xb9, 0x29,
+ 0x66, 0xb0, 0x79, 0x61, 0x66, 0x55, 0xeb, 0x55, 0xb4, 0x92, 0x04, 0x60,
+ 0x52, 0x5c, 0x7f, 0xad, 0xb2, 0xcc, 0xe1, 0xc0, 0x93, 0xff, 0x0f, 0xb0,
+ 0x98, 0x29, 0xe4, 0x2b, 0xaa, 0xd7, 0x13, 0x09, 0xc2, 0xb3, 0x2b, 0x12,
+ 0x7a, 0x64, 0xd3, 0xa6, 0xbd, 0xb1, 0xe6, 0x86, 0x5c, 0x1b, 0x00, 0x16,
+ 0x19, 0xcb, 0xd3, 0x0c, 0xb9, 0x4a, 0xea, 0xb9, 0x4f, 0x35, 0x0e, 0xc4,
+ 0xeb, 0x2b, 0xcc, 0x99, 0xc5, 0x1f, 0x1e, 0xd7, 0x79, 0x09, 0x96, 0xe4,
+ 0x92, 0x4b, 0x32, 0xfe, 0x57, 0x3a, 0xfe, 0xec, 0x8e, 0x31, 0x01, 0x59,
+ 0x7b, 0x86, 0xbb, 0x8a, 0xc8, 0xc7, 0x71, 0xdf, 0x92, 0x23, 0x14, 0x04,
+ 0x0b, 0xee, 0x5a, 0x34, 0xb6, 0x94, 0xec, 0x41, 0x4d, 0x98, 0xd0, 0x2c,
+ 0x49, 0xb6, 0x28, 0xb6, 0xdf, 0x01, 0x41, 0xe7, 0x18, 0x2b, 0x7d, 0xc8,
+ 0x22, 0xc7, 0xd1, 0x4c, 0xa2, 0xbe, 0x0d, 0x37, 0xac, 0x23, 0x56, 0x6a,
+ 0xe1, 0x0f, 0x7d, 0xdc, 0xb4, 0x64, 0x14, 0x51, 0x62, 0x9c, 0x89, 0xc1,
+ 0x31, 0x9e, 0x01, 0x6d, 0x35, 0xbf, 0x86, 0xdf, 0x8f, 0x1c, 0x55, 0x4d,
+ 0xde, 0x0e, 0x89, 0xd9, 0xeb, 0x9d, 0x8a, 0xdc, 0x82, 0x08, 0x3c, 0x6b,
+ 0xc7, 0x9f, 0x03, 0x1b, 0xd3, 0x86, 0xe0, 0xe6, 0x84, 0x52, 0x49, 0xc6,
+ 0x6f, 0xf6, 0xd0, 0x81, 0x23, 0x8b, 0x84, 0x6c, 0x6a, 0x5d, 0x3b, 0xaa,
+ 0x9c, 0x18, 0x65, 0xc6, 0xa5, 0x4b, 0xc2, 0xe6, 0x6f, 0x3b, 0x8a, 0xb1,
+ 0x32, 0x91, 0xfe, 0xb2, 0xda, 0x60, 0xe4, 0x1f, 0xf4, 0x90, 0x37, 0x85,
+ 0x30, 0x31, 0x85, 0x1e, 0x87, 0x7f, 0x1d, 0x4d, 0x09, 0xc9, 0x49, 0x88,
+ 0x4a, 0xc4, 0x32, 0x41, 0xc6, 0x3a, 0xc4, 0xd9, 0xf3, 0xc7, 0xf7, 0x60,
+ 0xde, 0xf3, 0xd1, 0x01, 0xda, 0x6c, 0x96, 0xb5, 0xfc, 0x58, 0xf4, 0x30,
+ 0xb5, 0xe2, 0x3c, 0xec, 0xe5, 0xd7, 0x38, 0xaa, 0xcc, 0x4d, 0x5b, 0x0e,
+ 0xe4, 0xbe, 0x63, 0x85, 0x78, 0xa7, 0xa0, 0x33, 0xeb, 0x32, 0xc7, 0xe5,
+ 0x15, 0xaa, 0xc6, 0x83, 0x01, 0x65, 0x59, 0xf5, 0x75, 0xc6, 0x8d, 0x77,
+ 0x57, 0x77, 0xd1, 0x39, 0xba, 0x99, 0xf5, 0xf1, 0x57, 0x8d, 0xd9, 0x71,
+ 0xb8, 0xad, 0x01, 0xa3, 0xf5, 0x6a, 0xdc, 0x26, 0x72, 0xc0, 0xa2, 0x89,
+ 0xb3, 0xdb, 0xab, 0xe6, 0xdc, 0x1e, 0x21, 0x7b, 0x65, 0x9a, 0xa9, 0x7b,
+ 0xe9, 0xbc, 0x8c, 0xf6, 0x43, 0x0c, 0x88, 0xc0, 0x07, 0xc2, 0xc1, 0xf1,
+ 0xdd, 0x0b, 0x67, 0x73, 0x97, 0x75, 0x97, 0x67, 0xd9, 0x88, 0x09, 0x23,
+ 0x33, 0x27, 0x5e, 0xa9, 0x7b, 0xad, 0x78, 0x7d, 0xc7, 0xe5, 0x79, 0x19,
+ 0x9c, 0xbe, 0xf2, 0x45, 0xed, 0x24, 0x1c, 0x48, 0x0f, 0xc1, 0x82, 0x12,
+ 0x34, 0x31, 0x2d, 0xeb, 0xd8, 0x28, 0xf9, 0x65, 0x0e, 0x4b, 0x0e, 0x3a,
+ 0x95, 0x32, 0x2c, 0x07, 0x12, 0x43, 0x47, 0xd8, 0x0d, 0x15, 0x04, 0xcc,
+ 0x48, 0x34, 0x07, 0xae, 0x33, 0xdd, 0x38, 0x12, 0xef, 0xe8, 0x6e, 0xdc,
+ 0x89, 0x36, 0x37, 0x51, 0x6d, 0xf6, 0xb0, 0x41, 0x38, 0x99, 0x85, 0xa0,
+ 0x40, 0x0d, 0x7f, 0xfb, 0xb0, 0x8d, 0xb8, 0xbc, 0x55, 0xfb, 0xe5, 0xc7,
+ 0xef, 0x63, 0x21, 0x29, 0x22, 0xf0, 0x30, 0xca, 0x47, 0xdf, 0xc5, 0x98,
+ 0x04, 0x7a, 0xd6, 0x0f, 0x5e, 0x76, 0xe7, 0xec, 0xca, 0x02, 0x3d, 0x9f,
+ 0x8d, 0xba, 0xe9, 0x7f, 0x3a, 0xc9, 0x30, 0xc5, 0xdc, 0xe1, 0x01, 0xa1,
+ 0x82, 0x1f, 0x17, 0xd7, 0xce, 0x6c, 0x2e, 0x81, 0x27, 0x32, 0x08, 0xba,
+ 0xfb, 0xaa, 0x0f, 0x0c, 0x1f, 0xce, 0x56, 0xce, 0xef, 0x12, 0x8c, 0xc8,
+ 0xc2, 0xfd, 0x71, 0x6f, 0xa4, 0x2a, 0xb5, 0x3c, 0xf5, 0xae, 0x03, 0xb3,
+ 0x96, 0x01, 0xbd, 0x13, 0x73, 0x79, 0x23, 0xbb, 0x80, 0xfb, 0xec, 0x1e,
+ 0xa5, 0xc7, 0xf7, 0x6d, 0x2a, 0x03, 0x2b, 0xe9, 0xcf, 0x80, 0x67, 0x54,
+ 0x5f, 0x80, 0xdd, 0xa6, 0xe0, 0x0c, 0x73, 0x58, 0x1e, 0xd5, 0x30, 0xb8,
+ 0x81, 0xc4, 0xb5, 0xe6, 0x36, 0x26, 0xa6, 0x03, 0x6c, 0x90, 0x86, 0x79,
+ 0x44, 0x61, 0x9e, 0x33, 0xd0, 0xb8, 0x48, 0x58, 0x45, 0xb8, 0xbc, 0x76,
+ 0xd2, 0x3c, 0x95, 0xf4, 0x80, 0x1a, 0x8a, 0x0d, 0xd6, 0x3e, 0x25, 0x61,
+ 0xb4, 0xa9, 0xdd, 0x40, 0x23, 0x47, 0x34, 0x1c, 0xf7, 0xc3, 0x54, 0x3a,
+ 0x24, 0x68, 0x1c, 0x9a, 0x10, 0x70, 0x24, 0xbd, 0x9e, 0xdb, 0x02, 0xfc,
+ 0x9b, 0x3f, 0x40, 0x3e, 0x77, 0x7e, 0xa4, 0x09, 0x61, 0xdb, 0x36, 0x80,
+ 0x7c, 0xee, 0xfd, 0x48, 0x0c, 0x2f, 0xbd, 0x83, 0x40, 0xfc, 0x4b, 0x14,
+ 0x08, 0xb8, 0x20, 0xae, 0x80, 0x20, 0x25, 0x7d, 0x70, 0x19, 0x2d, 0xd1,
+ 0x84, 0xa7, 0x2a, 0x0e, 0xbe, 0x96, 0xc4, 0xb2, 0x5a, 0x40, 0x00, 0x71,
+ 0x03, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91,
+ 0x1c, 0x00, 0x07, 0x10, 0x6c, 0x00, 0x1b, 0x22, 0x6a, 0x97, 0x28, 0xd1,
+ 0x7e, 0x20, 0x3e, 0x51, 0xe3, 0xdf, 0x28, 0x0a, 0x8c, 0x1d, 0x00, 0x64,
+ 0x18, 0x0f, 0x69, 0xd3, 0x8f, 0x79, 0x91, 0xb8, 0xe2, 0xdc, 0xbb, 0xfa,
+ 0x5b, 0xb0, 0x1f, 0x27, 0x4f, 0xe2, 0xff, 0xe7, 0xff, 0x43, 0xff, 0xaf,
+ 0xea, 0x33, 0xe8, 0xff, 0x63, 0x2f, 0xce, 0xc7, 0xc2, 0x7c, 0x18, 0xa9,
+ 0xb8, 0x09, 0x88, 0xc1, 0x01, 0xda, 0xbd, 0x10, 0x26, 0xb4, 0x46, 0xf1,
+ 0xb1, 0xa7, 0xe9, 0x39, 0x87, 0x78, 0x03, 0x08, 0x3a, 0x19, 0xdb, 0xee,
+ 0xf1, 0xb0, 0x15, 0xda, 0x03, 0xcf, 0xe1, 0xf9, 0x48, 0x83, 0x13, 0x4b,
+ 0x55, 0x61, 0x11, 0xb3, 0x06, 0x3d, 0x6a, 0x9d, 0x6c, 0x33, 0x1c, 0x15,
+ 0x70, 0x3b, 0xfc, 0x49, 0x83, 0x15, 0xcf, 0x19, 0x7f, 0xaa, 0x86, 0xa8,
+ 0x5d, 0xf6, 0xe5, 0x93, 0x94, 0x88, 0xc4, 0x3a, 0xa9, 0x41, 0x55, 0x95,
+ 0xe3, 0xd6, 0x64, 0x63, 0xff, 0xdb, 0xeb, 0x1b, 0xec, 0xfc, 0xd5, 0x60,
+ 0x8b, 0xab, 0x83, 0xd3, 0xec, 0x6e, 0xa0, 0xea, 0x5c, 0xde, 0x57, 0x92,
+ 0x87, 0x0c, 0x72, 0xa7, 0xef, 0xbc, 0x62, 0x2a, 0x19, 0x95, 0xc1, 0x02,
+ 0x30, 0x8d, 0xc7, 0xee, 0x2d, 0x92, 0xfb, 0x02, 0x01, 0x1d, 0xb9, 0x2a,
+ 0x00, 0xc9, 0x06, 0x99, 0xb4, 0x9c, 0x24, 0x06, 0xed, 0x5e, 0xf0, 0xf9,
+ 0xc5, 0x85, 0x2f, 0xcc, 0x80, 0x89, 0x3a, 0x2f, 0x2e, 0xee, 0x18, 0x92,
+ 0xca, 0x76, 0x98, 0xb1, 0x62, 0xc5, 0x8b, 0x16, 0x0a, 0xca, 0xa5, 0xca,
+ 0xc6, 0xc5, 0x4e, 0x9c, 0x7e, 0x3d, 0xab, 0xc6, 0x67, 0xe8, 0xb1, 0xc2,
+ 0x55, 0x80, 0xe3, 0x88, 0x77, 0xe5, 0x6f, 0xbf, 0x78, 0x6f, 0x72, 0x3a,
+ 0xc0, 0x16, 0xb3, 0xf1, 0x72, 0x7a, 0x84, 0xe8, 0x9d, 0x00, 0x95, 0x0b,
+ 0xf4, 0x51, 0xf3, 0xf8, 0x71, 0xf9, 0x53, 0xdf, 0x05, 0x67, 0xdc, 0xd8,
+ 0x0b, 0x27, 0x65, 0x41, 0xbd, 0xf6, 0x14, 0xc9, 0x97, 0xe5, 0x47, 0xff,
+ 0x0b, 0x8a, 0x25, 0x67, 0xec, 0xce, 0x5d, 0x2d, 0xe6, 0x91, 0x3f, 0xdd,
+ 0x50, 0x3a, 0x42, 0xfd, 0x2e, 0x4a, 0x55, 0x1f, 0xb5, 0x8e, 0x47, 0x6a,
+ 0xe6, 0xf7, 0x26, 0xc3, 0xd0, 0x20, 0x5c, 0x16, 0x38, 0x40, 0xca, 0xfe,
+ 0xf0, 0x15, 0x88, 0x10, 0x47, 0xfc, 0x62, 0x1d, 0x68, 0x13, 0x8a, 0xba,
+ 0x61, 0x6c, 0x89, 0x5b, 0x86, 0x69, 0x15, 0xf9, 0xc1, 0x0f, 0x5b, 0xa3,
+ 0xa0, 0xc2, 0x40, 0x4b, 0xf9, 0xb9, 0x88, 0x14, 0x14, 0x9e, 0x6f, 0xc9,
+ 0xf7, 0xf5, 0x89, 0xdd, 0x48, 0xf2, 0x0e, 0x9f, 0xff, 0x28, 0x01, 0x05,
+ 0xca, 0xaf, 0x29, 0xf7, 0xc5, 0xda, 0xee, 0x48, 0x71, 0x7f, 0x6c, 0xf5,
+ 0xdf, 0x30, 0x1f, 0x86, 0xbe, 0x59, 0x90, 0xb1, 0x08, 0x91, 0xf7, 0x8d,
+ 0xeb, 0x1e, 0xb2, 0x58, 0xd9, 0x58, 0x43, 0x67, 0x92, 0xd6, 0x46, 0xd8,
+ 0x0e, 0x3f, 0x61, 0x72, 0x58, 0xde, 0x20, 0xe1, 0x06, 0x92, 0x4d, 0x5f,
+ 0xec, 0x1e, 0x99, 0x59, 0xb5, 0xff, 0xa0, 0xdd, 0xf9, 0x2a, 0x65, 0x78,
+ 0x5e, 0x2f, 0x17, 0xbb, 0xc9, 0x6f, 0x97, 0xf4, 0x6e, 0xe0, 0xe7, 0x5f,
+ 0xdb, 0xf4, 0x9d, 0x55, 0xb8, 0x49, 0xeb, 0x58, 0x87, 0x4d, 0xca, 0xed,
+ 0xf0, 0x18, 0xda, 0x53, 0x79, 0x49, 0x4e, 0xc0, 0x5a, 0xaf, 0xd4, 0xf0,
+ 0x04, 0xa8, 0xf2, 0x4b, 0x6f, 0x71, 0xbf, 0x68, 0xfc, 0xd9, 0xf5, 0xca,
+ 0xfb, 0x3b, 0x28, 0x8c, 0x58, 0x9a, 0x14, 0x46, 0x65, 0xa5, 0xc2, 0xd1,
+ 0x91, 0xe6, 0x34, 0x3d, 0xca, 0x2a, 0x8b, 0x16, 0x6c, 0x20, 0x01, 0x98,
+ 0xaf, 0x02, 0x80, 0xb7, 0xd6, 0x29, 0x6c, 0x74, 0x84, 0xe8, 0x23, 0x53,
+ 0xd1, 0x99, 0x0d, 0x2d, 0x9a, 0x89, 0xb2, 0xf5, 0xcf, 0x54, 0x9b, 0x37,
+ 0xf2, 0x79, 0x4b, 0xe4, 0x59, 0xc3, 0x1a, 0x91, 0x0d, 0xdc, 0xe3, 0x2e,
+ 0xe4, 0x7e, 0x95, 0x34, 0x0c, 0x3d, 0xf1, 0xaf, 0x52, 0x57, 0x18, 0xb0,
+ 0xdc, 0x5d, 0xa8, 0xb6, 0x95, 0x3c, 0xd4, 0xe6, 0xf5, 0xc1, 0x82, 0xb4,
+ 0x57, 0x0f, 0x36, 0x4d, 0x22, 0x45, 0x20, 0x1b, 0x36, 0x7a, 0x7e, 0x47,
+ 0x2c, 0x41, 0xdf, 0x62, 0x1d, 0xe7, 0x31, 0x2e, 0xef, 0x20, 0xf6, 0x5d,
+ 0x5c, 0x7d, 0x37, 0xe6, 0x2b, 0xdc, 0xbd, 0x80, 0x4b, 0x2f, 0x31, 0xd8,
+ 0xe0, 0x40, 0x21, 0x06, 0xb3, 0x16, 0xb3, 0x5b, 0x00, 0x2e, 0x21, 0x6e,
+ 0xde, 0xd6, 0x7b, 0x45, 0x69, 0x74, 0x3c, 0x3d, 0x65, 0x9c, 0xb3, 0xc2,
+ 0xc4, 0xbf, 0x21, 0x61, 0x32, 0xd0, 0x1e, 0x78, 0x6d, 0x1f, 0xe1, 0xf0,
+ 0xe9, 0x16, 0x08, 0x89, 0x48, 0x2a, 0x03, 0x40, 0x2a, 0x38, 0x1c, 0x45,
+ 0xa3, 0x4e, 0x09, 0xbb, 0x86, 0x63, 0x1f, 0x78, 0x56, 0x16, 0xc0, 0x5a,
+ 0x8e, 0xcb, 0x43, 0x9d, 0xb8, 0xfd, 0x7e, 0x49, 0xc1, 0xd7, 0x84, 0x5e,
+ 0xb0, 0x90, 0x67, 0xc8, 0xb4, 0x09, 0x91, 0x37, 0x9a, 0xc9, 0xf8, 0xde,
+ 0x03, 0x71, 0x34, 0xea, 0x2f, 0xd3, 0x8c, 0x52, 0xbe, 0xf7, 0xe4, 0xb1,
+ 0xd1, 0xa1, 0x9e, 0x7f, 0xef, 0x2d, 0xd1, 0x69, 0xe0, 0xf0, 0x56, 0xc3,
+ 0x5f, 0x8d, 0xbb, 0xc6, 0x62, 0x1c, 0x24, 0xbe, 0xa4, 0x77, 0xdc, 0x67,
+ 0x6f, 0xed, 0xfd, 0x62, 0x99, 0x93, 0xdc, 0xab, 0xfc, 0x81, 0xf2, 0x44,
+ 0x49, 0xea, 0xc6, 0x0b, 0x69, 0x6b, 0x8f, 0x7c, 0x5a, 0xbb, 0x5c, 0x10,
+ 0x48, 0x13, 0x99, 0xc0, 0xe3, 0x27, 0x6c, 0x01, 0xd7, 0x7d, 0x88, 0x6f,
+ 0xd4, 0x4a, 0x1e, 0x82, 0x72, 0x1e, 0x06, 0xd0, 0x7f, 0x0d, 0x98, 0x41,
+ 0x07, 0x5c, 0xb6, 0x24, 0xfd, 0xcb, 0xe2, 0x80, 0x36, 0xdc, 0x6f, 0x53,
+ 0xe3, 0x19, 0x54, 0xd9, 0xaa, 0xfd, 0xee, 0xa2, 0xd4, 0x9b, 0xfa, 0x67,
+ 0x7c, 0x6d, 0x6e, 0x38, 0x95, 0xdc, 0x7b, 0x99, 0xd5, 0x62, 0x25, 0xfd,
+ 0x3f, 0x30, 0x8f, 0x7c, 0x49, 0xd3, 0xb5, 0xf9, 0xfc, 0x8e, 0xf8, 0x27,
+ 0x3b, 0x7a, 0xe1, 0x20, 0xfa, 0x7c, 0xbb, 0x67, 0xfb, 0x33, 0x18, 0x74,
+ 0x39, 0xde, 0x77, 0xe9, 0x1a, 0x31, 0xf0, 0x0d, 0x98, 0xe4, 0xd0, 0x0c,
+ 0x1c, 0x3c, 0x24, 0x87, 0x3e, 0x3e, 0x93, 0x66, 0xfb, 0xcb, 0x83, 0x06,
+ 0x5e, 0xb4, 0x87, 0xb8, 0xfd, 0x78, 0x6d, 0xf5, 0xec, 0x2a, 0x38, 0x2f,
+ 0x2c, 0xd3, 0x24, 0xec, 0xbe, 0x30, 0xb0, 0xaa, 0x62, 0xf1, 0xea, 0x4d,
+ 0x27, 0x65, 0xf2, 0x48, 0x64, 0x30, 0x18, 0x72, 0x05, 0x57, 0x63, 0x2f,
+ 0xb3, 0x35, 0xd2, 0x40, 0xe1, 0x03, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xd1, 0x1d, 0x00, 0x07, 0x10, 0x28, 0x00, 0x1c,
+ 0x01, 0x98, 0x7f, 0x28, 0x5e, 0xec, 0x9f, 0xff, 0xdd, 0xdf, 0x22, 0xb6,
+ 0xb9, 0x8d, 0x03, 0x3c, 0xbf, 0x22, 0x8d, 0x49, 0x36, 0xe8, 0x4a, 0x31,
+ 0x73, 0x4d, 0xbf, 0x21, 0x6a, 0xd0, 0x4c, 0xe9, 0x73, 0x83, 0x13, 0x73,
+ 0x09, 0x0e, 0x2d, 0x67, 0x92, 0xcc, 0x10, 0xd6, 0x81, 0xce, 0xb2, 0xd1,
+ 0x8a, 0x2a, 0xc9, 0x0d, 0x2b, 0xb3, 0x88, 0x3a, 0xce, 0x5d, 0x85, 0xe2,
+ 0x21, 0x90, 0xe9, 0xac, 0x6a, 0x90, 0xc3, 0xfd, 0x64, 0x64, 0xdb, 0xbd,
+ 0x86, 0x1c, 0x5a, 0x2f, 0xf4, 0xd6, 0x1b, 0x05, 0x5c, 0x80, 0x04, 0xc1,
+ 0x12, 0x2c, 0xc4, 0x4e, 0x30, 0xbf, 0x70, 0x36, 0x1a, 0x0e, 0x10, 0x27,
+ 0x77, 0xbc, 0xec, 0x38, 0xfc, 0x32, 0x76, 0x55, 0x70, 0x68, 0xcf, 0x48,
+ 0x40, 0x1e, 0x25, 0xac, 0x07, 0xbc, 0xce, 0xc8, 0xe9, 0x22, 0x14, 0x35,
+ 0x11, 0xed, 0x0e, 0x6f, 0xc5, 0x74, 0x2f, 0xf2, 0x5b, 0x52, 0x43, 0x9d,
+ 0x1b, 0x78, 0x41, 0x1b, 0x90, 0xae, 0x13, 0x94, 0x1f, 0x4d, 0xd4, 0x62,
+ 0xee, 0x55, 0xc1, 0x99, 0x7d, 0x04, 0xc2, 0x44, 0x84, 0x78, 0x32, 0x8e,
+ 0x00, 0x3f, 0x94, 0x70, 0x01, 0xfc, 0xa3, 0x80, 0x0f, 0xe5, 0x1c, 0x00,
+ 0x7f, 0x28, 0xe0, 0x03, 0xf9, 0x47, 0x00, 0x1f, 0xca, 0x38, 0x00, 0xfe,
+ 0x51, 0xc0, 0x07, 0xf2, 0x8e, 0x00, 0x3f, 0x94, 0x70, 0x01, 0xfc, 0xa3,
+ 0x80, 0x00, 0xdd, 0xc0, 0xf1, 0x12, 0x84, 0x04, 0x8a, 0x28, 0xf0, 0x00,
+ 0x83, 0xb0, 0x00, 0x11, 0x53, 0x70, 0x00, 0x07, 0xca, 0x38, 0xde, 0x83,
+ 0x65, 0xcf, 0xcc, 0xd8, 0xa4, 0xad, 0x7e, 0xa4, 0x76, 0x40, 0x33, 0xd1,
+ 0xad, 0x0f, 0x7c, 0xb8, 0x00, 0xf0, 0x76, 0x82, 0x64, 0xc5, 0xd9, 0x6c,
+ 0x84, 0x5c, 0xcf, 0x60, 0x06, 0x5f, 0x92, 0x5d, 0x08, 0x0e, 0x7b, 0xae,
+ 0xa2, 0x6f, 0x23, 0x3f, 0xab, 0x74, 0x86, 0x64, 0xef, 0x47, 0xc9, 0x90,
+ 0x20, 0x74, 0xdf, 0xf5, 0xb7, 0x4f, 0xd5, 0x0d, 0x84, 0x92, 0xc2, 0xee,
+ 0x7b, 0xcb, 0x87, 0xdf, 0x86, 0x97, 0x03, 0x95, 0x10, 0x29, 0x3d, 0x36,
+ 0x78, 0x2f, 0xaf, 0xf3, 0x7e, 0x1c, 0x8d, 0x74, 0xac, 0x23, 0xba, 0x6e,
+ 0xff, 0x0a, 0x20, 0x43, 0x6a, 0xea, 0x3d, 0x52, 0x46, 0xf2, 0xdc, 0xd6,
+ 0x90, 0x1b, 0x9a, 0x8e, 0x8b, 0xe4, 0x2f, 0x1c, 0x0b, 0xf4, 0x9c, 0x4d,
+ 0x75, 0x9e, 0xe5, 0xca, 0x31, 0x6c, 0x37, 0x24, 0x18, 0x35, 0x33, 0x8a,
+ 0xa9, 0xc8, 0x6e, 0x89, 0x66, 0x5d, 0xeb, 0x1b, 0x22, 0x72, 0xc1, 0x30,
+ 0x7e, 0x32, 0xaf, 0x7c, 0xa3, 0xf8, 0x6e, 0x20, 0xd4, 0xac, 0x70, 0x7c,
+ 0x99, 0xdd, 0xf1, 0x1b, 0x42, 0x99, 0x36, 0x36, 0x87, 0xb4, 0xa7, 0x1c,
+ 0xdd, 0x8e, 0x60, 0x60, 0x77, 0x0a, 0xb7, 0x67, 0xb9, 0x2a, 0x93, 0x58,
+ 0xbd, 0x3e, 0x0b, 0x8d, 0xbf, 0xb2, 0xa5, 0xd1, 0x22, 0x64, 0xbc, 0xf3,
+ 0x99, 0xf8, 0xa0, 0x5a, 0xb2, 0x99, 0x28, 0x94, 0xa1, 0x9f, 0x48, 0xfa,
+ 0x22, 0xd8, 0x9c, 0x0b, 0xd8, 0x6e, 0x8e, 0xd7, 0x53, 0xa7, 0xc7, 0xa8,
+ 0xa5, 0x3a, 0x34, 0x08, 0xe0, 0xeb, 0xf5, 0xe1, 0x2a, 0xe9, 0x90, 0x87,
+ 0x30, 0x85, 0xd4, 0x73, 0x32, 0x96, 0xa2, 0xf7, 0x08, 0xaf, 0xc2, 0xa3,
+ 0x46, 0x57, 0xd9, 0x7f, 0x06, 0xb9, 0x6e, 0xb3, 0x32, 0x1f, 0x72, 0xd3,
+ 0xb0, 0x5c, 0xfe, 0x56, 0xba, 0x12, 0xfc, 0x23, 0xb4, 0x73, 0xec, 0x65,
+ 0x3a, 0x01, 0x85, 0x6a, 0xf1, 0xf2, 0xde, 0xd4, 0xcc, 0xcd, 0x40, 0x31,
+ 0xc2, 0xc5, 0x0a, 0xa9, 0x0b, 0xc5, 0xec, 0x19, 0xa7, 0xf0, 0x94, 0x29,
+ 0x2d, 0x70, 0xd0, 0x96, 0x06, 0x5c, 0x3b, 0x32, 0x6c, 0xf7, 0xf8, 0x16,
+ 0x39, 0xe3, 0x71, 0xa4, 0x39, 0x91, 0x3f, 0xdc, 0xd1, 0x5d, 0x04, 0x04,
+ 0xe6, 0xdb, 0x19, 0xd1, 0x9b, 0xa4, 0x7d, 0x74, 0x78, 0xe6, 0xb8, 0x05,
+ 0xbf, 0x43, 0x93, 0xb8, 0x14, 0xec, 0x7f, 0xd1, 0x22, 0x21, 0x99, 0xa7,
+ 0x12, 0xa3, 0x66, 0xec, 0x7b, 0x7d, 0xfc, 0x76, 0x9c, 0xa5, 0x7c, 0xa0,
+ 0x95, 0x77, 0xc5, 0x4c, 0x75, 0x11, 0x42, 0xb1, 0xca, 0x12, 0xed, 0x60,
+ 0x1c, 0x21, 0x7a, 0x31, 0xe5, 0x09, 0x29, 0xa6, 0x08, 0x04, 0x16, 0x67,
+ 0xc8, 0x83, 0x60, 0x1a, 0xda, 0x1d, 0x30, 0x7d, 0x96, 0xca, 0xb7, 0xbb,
+ 0x99, 0xf6, 0xde, 0x51, 0xc3, 0x71, 0x07, 0xdc, 0xf6, 0x13, 0x74, 0x89,
+ 0x06, 0xc2, 0x41, 0xd3, 0x5a, 0x68, 0x57, 0xe4, 0xbe, 0xcf, 0x3e, 0x98,
+ 0xf4, 0x72, 0xd0, 0x6f, 0x93, 0x85, 0x7a, 0x05, 0x56, 0x3b, 0x86, 0x98,
+ 0x5a, 0xd1, 0x32, 0xbe, 0x3f, 0x60, 0x97, 0xdd, 0x77, 0x5d, 0x20, 0x5a,
+ 0x58, 0x8e, 0x4a, 0x7f, 0x92, 0xb6, 0x44, 0x77, 0xd8, 0x7e, 0x9f, 0xc4,
+ 0x48, 0xd0, 0x36, 0x6c, 0xad, 0x59, 0xe5, 0x77, 0x2b, 0x34, 0xa7, 0x0d,
+ 0xa8, 0x50, 0x0e, 0x37, 0x37, 0x8f, 0x75, 0xaf, 0xb0, 0x6b, 0xdb, 0x88,
+ 0xfe, 0xfe, 0x98, 0x3e, 0x7d, 0x43, 0xe3, 0x3b, 0x60, 0x9c, 0x23, 0xad,
+ 0xda, 0xdb, 0xe3, 0x36, 0x7c, 0x90, 0x80, 0xa6, 0x6c, 0x11, 0x3e, 0x72,
+ 0x4a, 0xa3, 0xce, 0x34, 0xce, 0xa2, 0xee, 0xa1, 0x4d, 0x96, 0x86, 0x69,
+ 0xcc, 0x5c, 0x4f, 0x49, 0x48, 0x8d, 0xaf, 0x7b, 0x18, 0x09, 0x5a, 0x5d,
+ 0x76, 0x6d, 0xb7, 0x0c, 0x3c, 0x2e, 0x8a, 0x45, 0x70, 0xf8, 0x67, 0xc5,
+ 0xaa, 0xf9, 0x99, 0xb8, 0xce, 0xc6, 0x3b, 0x42, 0x0d, 0x9e, 0xd8, 0xbf,
+ 0x11, 0x5c, 0x4e, 0xb1, 0xe7, 0x34, 0x3a, 0x37, 0x66, 0xb3, 0x9e, 0xfc,
+ 0x42, 0x5b, 0xe8, 0xa9, 0x50, 0x97, 0xc9, 0xbb, 0xbc, 0xb8, 0x5d, 0x84,
+ 0x07, 0x82, 0xa5, 0x9d, 0x44, 0x5c, 0x7e, 0x2d, 0xf2, 0x07, 0xfe, 0x12,
+ 0xc8, 0x0e, 0xd2, 0xc2, 0x99, 0xdc, 0xe2, 0x80, 0xb8, 0xde, 0x7a, 0x55,
+ 0x9c, 0x4f, 0x52, 0x8a, 0x53, 0xa3, 0x4b, 0xcf, 0xcc, 0xca, 0x64, 0x55,
+ 0x95, 0xe3, 0x13, 0x2e, 0x24, 0xaa, 0x1e, 0x72, 0x31, 0x57, 0x1d, 0x44,
+ 0x09, 0x73, 0x40, 0x17, 0xb2, 0x26, 0x58, 0x3c, 0xf9, 0x32, 0xc3, 0xf2,
+ 0x01, 0x6c, 0x0e, 0x45, 0x28, 0xb0, 0x96, 0x64, 0x74, 0xb6, 0x8f, 0xdb,
+ 0x58, 0x9c, 0x2e, 0xd6, 0x01, 0x4f, 0xf4, 0xcd, 0x00, 0x98, 0x28, 0x0f,
+ 0x3c, 0x93, 0x2c, 0xc3, 0x83, 0x04, 0x88, 0x73, 0xe9, 0x59, 0x8f, 0xae,
+ 0x78, 0xc4, 0x4e, 0x6e, 0x31, 0x16, 0x50, 0xd9, 0xad, 0xe8, 0xf8, 0xde,
+ 0x69, 0x93, 0xbe, 0xc4, 0xf5, 0x21, 0xec, 0x6b, 0x65, 0xf3, 0xab, 0xe9,
+ 0xfb, 0x3f, 0x85, 0x4e, 0x9e, 0x2c, 0x53, 0x38, 0x17, 0x52, 0x41, 0x1b,
+ 0x9b, 0x5b, 0x98, 0x48, 0x24, 0x7c, 0xfd, 0x35, 0x11, 0xfe, 0x2d, 0x37,
+ 0x39, 0x28, 0x72, 0xd2, 0x3b, 0xb2, 0xe1, 0x07, 0x12, 0x5c, 0x9f, 0x14,
+ 0xc9, 0x38, 0x0b, 0x1a, 0x1e, 0xc7, 0x3a, 0x35, 0x90, 0xce, 0x17, 0x42,
+ 0xf0, 0x3b, 0x4c, 0x68, 0x2b, 0x95, 0x29, 0xe8, 0x1e, 0x08, 0x65, 0x5e,
+ 0x79, 0xe9, 0xc0, 0x85, 0x10, 0x2e, 0xb2, 0xca, 0x0d, 0xd3, 0x73, 0xef,
+ 0x82, 0x81, 0xad, 0x53, 0xfa, 0xfa, 0x0a, 0x1d, 0xba, 0x2e, 0x1e, 0x39,
+ 0x04, 0x5a, 0xca, 0x1d, 0xb3, 0xe2, 0x1b, 0x87, 0x5e, 0x72, 0x80, 0x8f,
+ 0x40, 0xe5, 0x03, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xd1, 0x15, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x24, 0xd8, 0x04,
+ 0x90, 0x8f, 0x79, 0x29, 0xf4, 0x3e, 0x07, 0x7f, 0x26, 0x5f, 0x20, 0xca,
+ 0x4f, 0xe9, 0x03, 0x98, 0x37, 0x82, 0x6f, 0xe9, 0xbe, 0xb6, 0x74, 0xee,
+ 0x3f, 0x87, 0xdf, 0xda, 0x3d, 0xc8, 0x61, 0x94, 0x93, 0xdf, 0xad, 0x88,
+ 0x6e, 0x7b, 0x58, 0x6d, 0x88, 0xca, 0xea, 0xdd, 0x7a, 0xbb, 0xd5, 0xed,
+ 0x15, 0xa1, 0x50, 0xce, 0xbd, 0x87, 0x4d, 0x81, 0xd0, 0x87, 0x96, 0xb7,
+ 0x2d, 0x94, 0x05, 0x38, 0xe9, 0x30, 0x94, 0x83, 0x0d, 0xca, 0x9e, 0xcb,
+ 0x99, 0x83, 0xd2, 0x24, 0x65, 0x5d, 0x46, 0x4b, 0x08, 0xa9, 0x9d, 0xb5,
+ 0xb9, 0x3e, 0x4b, 0x09, 0x77, 0xa1, 0x52, 0x00, 0xfd, 0x80, 0xf5, 0x3c,
+ 0x8f, 0x51, 0xe6, 0x15, 0xc6, 0x54, 0x64, 0x52, 0x8e, 0xd8, 0x5e, 0xe9,
+ 0x31, 0x21, 0x1e, 0x8a, 0x0c, 0xe2, 0xa1, 0x69, 0xe3, 0x2b, 0x50, 0x8f,
+ 0x88, 0x4f, 0x56, 0xb1, 0x5b, 0x85, 0xa8, 0xcf, 0xad, 0x58, 0xf6, 0x26,
+ 0x97, 0x52, 0xb0, 0x4a, 0x10, 0x93, 0x3f, 0xaa, 0x04, 0x32, 0xa1, 0x95,
+ 0x0c, 0xa8, 0x65, 0xf1, 0xa5, 0x34, 0x83, 0xeb, 0xd7, 0xaf, 0x5e, 0xd5,
+ 0x42, 0x6f, 0xcf, 0x77, 0x6f, 0x7d, 0x2e, 0xde, 0x61, 0x00, 0xe8, 0xd1,
+ 0xd2, 0x8e, 0xfa, 0x1d, 0x92, 0xa2, 0x6c, 0x25, 0x5b, 0x46, 0x79, 0x50,
+ 0x34, 0x37, 0x6b, 0x49, 0xc1, 0x85, 0x0e, 0x23, 0x0c, 0x30, 0x0b, 0x2d,
+ 0xa6, 0x29, 0x12, 0x3e, 0x5c, 0xe0, 0xf0, 0xd7, 0x9f, 0xd0, 0x60, 0xb5,
+ 0x89, 0xf6, 0xe8, 0xc8, 0xe3, 0x6f, 0xac, 0x2c, 0x32, 0xd3, 0xcb, 0xbc,
+ 0x3b, 0x2e, 0x1c, 0x48, 0x9a, 0xe0, 0x46, 0xda, 0xf1, 0x37, 0xd5, 0x14,
+ 0xab, 0x04, 0x20, 0x3a, 0xc4, 0xe4, 0x88, 0x58, 0x93, 0x18, 0xe1, 0x55,
+ 0x4d, 0xdd, 0x60, 0x1b, 0x83, 0x4f, 0x04, 0x94, 0xf5, 0x27, 0xab, 0xa9,
+ 0x87, 0xdb, 0xc0, 0xed, 0x81, 0x05, 0x7b, 0x78, 0xf8, 0xd2, 0x94, 0xfb,
+ 0x92, 0x12, 0x00, 0xe8, 0xd2, 0x62, 0xd5, 0x89, 0x42, 0x87, 0x11, 0x3c,
+ 0x00, 0xee, 0xfc, 0xd7, 0x1c, 0x87, 0x0c, 0xef, 0xeb, 0xac, 0x31, 0xb5,
+ 0xf9, 0x52, 0xbd, 0x8c, 0x9b, 0x92, 0x08, 0x7b, 0x43, 0x64, 0xd1, 0xbb,
+ 0xbe, 0xbf, 0x85, 0xc6, 0x05, 0xba, 0x90, 0xba, 0x8d, 0x65, 0xe7, 0xe6,
+ 0x22, 0x0b, 0x74, 0xab, 0xbc, 0x8a, 0x89, 0x2f, 0xb5, 0x45, 0x2d, 0xa3,
+ 0x88, 0x72, 0xec, 0xf0, 0x24, 0x73, 0xfc, 0x12, 0xa7, 0x91, 0xb2, 0xdc,
+ 0x63, 0xcb, 0xb6, 0xee, 0xd3, 0xc6, 0x58, 0xfc, 0x9c, 0x7a, 0x38, 0x37,
+ 0xc7, 0x5e, 0xf3, 0x52, 0x9e, 0xe0, 0xc4, 0x10, 0x7a, 0xfc, 0xb9, 0x1a,
+ 0x6a, 0x50, 0xa6, 0x2e, 0x3c, 0x2c, 0x59, 0x1f, 0x3b, 0x16, 0xd6, 0xfc,
+ 0x28, 0x21, 0x2e, 0xc9, 0x21, 0xc4, 0xa6, 0x56, 0x54, 0xbb, 0x78, 0x5f,
+ 0xe3, 0x98, 0xc3, 0x1f, 0xe0, 0xf9, 0x2b, 0x97, 0x96, 0xec, 0x9b, 0x1c,
+ 0xdd, 0xbd, 0x3c, 0x86, 0x8f, 0xf5, 0x23, 0x91, 0xb2, 0x9d, 0xb2, 0x89,
+ 0x71, 0x85, 0xb7, 0xfe, 0xb5, 0xea, 0x36, 0xa7, 0x62, 0x33, 0xcc, 0x23,
+ 0x0e, 0x6b, 0x65, 0xbe, 0xb3, 0xb3, 0x1e, 0x4b, 0x3b, 0x48, 0xf6, 0xf0,
+ 0xca, 0xef, 0xe2, 0x29, 0xa8, 0xe4, 0x78, 0xdd, 0xaf, 0x32, 0x46, 0x19,
+ 0xe0, 0x12, 0x61, 0xb0, 0xee, 0x68, 0xb8, 0xef, 0xc1, 0x9f, 0xbe, 0x5b,
+ 0xf2, 0x7b, 0x62, 0xb2, 0xa7, 0x43, 0xb2, 0x7f, 0x65, 0x8a, 0x1a, 0xb2,
+ 0x05, 0x60, 0x56, 0xcc, 0x41, 0x84, 0x7d, 0x41, 0xf7, 0xce, 0xd0, 0x68,
+ 0xc0, 0x21, 0xd9, 0xd8, 0x00, 0xf3, 0x01, 0x8a, 0x0f, 0x12, 0xff, 0xf3,
+ 0x73, 0xf2, 0x40, 0x9e, 0xde, 0x3f, 0x0c, 0x14, 0x40, 0xe9, 0xcd, 0xa4,
+ 0xe5, 0x50, 0x2f, 0x69, 0xcd, 0xb1, 0x5e, 0xb3, 0x54, 0x3e, 0x7b, 0x55,
+ 0x1f, 0x61, 0x33, 0x62, 0x3c, 0x25, 0x02, 0xb4, 0x1f, 0xec, 0x4f, 0x24,
+ 0x78, 0x5f, 0x50, 0x36, 0x6e, 0xcf, 0x7d, 0x14, 0xe9, 0x21, 0x5b, 0xf0,
+ 0x00, 0x83, 0x43, 0x62, 0x63, 0x0f, 0xbe, 0xc3, 0x17, 0xc7, 0xb0, 0x6b,
+ 0xad, 0x53, 0x5e, 0xe3, 0xa7, 0x20, 0xe0, 0xa2, 0xc1, 0x42, 0xc0, 0xff,
+ 0x05, 0x01, 0x08, 0x41, 0x7e, 0xe8, 0x0a, 0x0f, 0x35, 0x91, 0xf6, 0x13,
+ 0x9b, 0xd8, 0x29, 0xbd, 0x3e, 0x3c, 0xe3, 0x2f, 0xd4, 0xe5, 0x9f, 0xa6,
+ 0xc1, 0x60, 0x30, 0x47, 0x9b, 0x4d, 0x8f, 0xfd, 0xe4, 0x40, 0x26, 0x02,
+ 0x95, 0x09, 0x2e, 0x3b, 0x30, 0x84, 0xe4, 0xcf, 0xa9, 0x2f, 0xca, 0xba,
+ 0x7f, 0xb3, 0xbc, 0x73, 0xa7, 0x01, 0x16, 0x02, 0x91, 0x8b, 0x09, 0xcc,
+ 0x2e, 0x84, 0xdf, 0xd3, 0x70, 0x57, 0x3d, 0x1f, 0xd2, 0x69, 0x47, 0x9f,
+ 0x26, 0x78, 0xf3, 0x1c, 0x91, 0xe3, 0x5f, 0x68, 0xc4, 0x35, 0xd4, 0xc7,
+ 0x9b, 0x9f, 0xf8, 0x75, 0xfb, 0xac, 0x37, 0x53, 0xaa, 0x76, 0x72, 0xe5,
+ 0x1e, 0x78, 0xe6, 0x0a, 0x3d, 0x37, 0xf1, 0xdb, 0x66, 0x3e, 0xd3, 0x44,
+ 0x60, 0x48, 0x76, 0x83, 0x83, 0x8d, 0x89, 0x37, 0x80, 0x99, 0xca, 0xbc,
+ 0x05, 0xeb, 0x20, 0x36, 0x72, 0x5e, 0x0e, 0xf7, 0x75, 0x62, 0xa8, 0xbe,
+ 0x6c, 0x09, 0xcf, 0x78, 0xb6, 0xff, 0xeb, 0xcb, 0x48, 0xff, 0xe5, 0x27,
+ 0xd7, 0x15, 0xb6, 0xad, 0x49, 0x7d, 0x17, 0x0e, 0xe0, 0xff, 0x34, 0x29,
+ 0x18, 0xc5, 0x1e, 0x55, 0xff, 0x7b, 0xf7, 0xe1, 0xf3, 0xb6, 0x3c, 0x73,
+ 0x29, 0x1c, 0xc9, 0xf2, 0xff, 0xa9, 0xfb, 0xd5, 0xb3, 0x2d, 0xe1, 0x14,
+ 0xa6, 0xe3, 0xd2, 0xaf, 0x41, 0x57, 0x91, 0xcd, 0x32, 0xef, 0x47, 0xfd,
+ 0xca, 0x0f, 0xc4, 0x77, 0xfb, 0x12, 0x4c, 0x0e, 0xdb, 0x63, 0x03, 0xf4,
+ 0x23, 0xef, 0x9d, 0x85, 0xba, 0x35, 0x47, 0x15, 0xaa, 0x17, 0x07, 0x08,
+ 0x63, 0x65, 0x57, 0x7c, 0xa9, 0x50, 0xc2, 0xf1, 0xde, 0xf4, 0x78, 0xc1,
+ 0xbf, 0x56, 0x47, 0x80, 0x63, 0xe6, 0x65, 0x66, 0xd2, 0xbd, 0xa6, 0xdf,
+ 0xb0, 0x81, 0xb5, 0x48, 0x03, 0x8a, 0xac, 0xbd, 0x19, 0xf1, 0xf7, 0x46,
+ 0x4d, 0x94, 0xdc, 0x38, 0x10, 0x5f, 0xcb, 0xa9, 0x7e, 0xed, 0x87, 0xbf,
+ 0xbb, 0x69, 0x1e, 0x67, 0xdc, 0x0c, 0x6e, 0x77, 0x14, 0x86, 0xf5, 0x2d,
+ 0x17, 0x11, 0xd2, 0xc3, 0x91, 0x63, 0x01, 0x55, 0xec, 0x1f, 0x32, 0xec,
+ 0xef, 0x4c, 0x8d, 0x24, 0xeb, 0x4c, 0xe0, 0x68, 0x28, 0xcd, 0xd2, 0xfb,
+ 0x2a, 0x5d, 0x34, 0x08, 0xd8, 0x99, 0x19, 0xc3, 0xc3, 0xdf, 0xdb, 0xaf,
+ 0x60, 0x6e, 0x7a, 0xad, 0x99, 0x0d, 0x1e, 0x14, 0xc6, 0x03, 0x3e, 0x77,
+ 0x00, 0x96, 0x98, 0xfc, 0x12, 0x15, 0x13, 0xc7, 0xbf, 0x5b, 0x7a, 0x86,
+ 0x4c, 0xda, 0x5c, 0x23, 0x3c, 0x60, 0x0b, 0x19, 0xfe, 0xfe, 0x23, 0xf1,
+ 0x06, 0x50, 0x19, 0xfc, 0x39, 0x6f, 0x30, 0x4c, 0x51, 0xf3, 0x48, 0x83,
+ 0x9c, 0x7e, 0xea, 0x60, 0x77, 0xa6, 0xaa, 0xc6, 0x13, 0xd6, 0xc1, 0x6a,
+ 0xdf, 0x29, 0xaf, 0x6b, 0xe0, 0xe3, 0x08, 0x0e, 0x0f, 0x2e, 0x40, 0x10,
+ 0x2b, 0xba, 0x1c, 0xce, 0xa6, 0x25, 0x0a, 0x75, 0xd1, 0x72, 0x82, 0xa5,
+ 0xd5, 0x5b, 0x62, 0x34, 0xea, 0x0d, 0xb4, 0x78, 0x87, 0xb7, 0x0d, 0xb5,
+ 0x20, 0x89, 0x16, 0xcb, 0x2a, 0x48, 0x7e, 0xc6, 0xbc, 0x18, 0xe0, 0x0b,
+ 0x9d, 0x00, 0xea, 0x03, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xb1, 0x15, 0x00, 0x00, 0x10, 0x18, 0x00, 0x1e, 0xd9, 0xd4,
+ 0xc3, 0x76, 0x06, 0x0c, 0x2f, 0xfe, 0x06, 0xca, 0x1d, 0x01, 0x67, 0x13,
+ 0x57, 0x38, 0x3f, 0xf3, 0x88, 0xab, 0x9d, 0x97, 0x6c, 0x8e, 0x10, 0x10,
+ 0x31, 0x0f, 0x8a, 0x88, 0x4f, 0xb8, 0xd2, 0x1e, 0x89, 0xe2, 0x21, 0x84,
+ 0x9c, 0x78, 0x56, 0xd6, 0xaa, 0xba, 0x0d, 0x26, 0x4d, 0x60, 0xaf, 0x0c,
+ 0x37, 0x7a, 0xea, 0xb4, 0x75, 0xe8, 0xb2, 0x2d, 0x75, 0xa1, 0x7b, 0x58,
+ 0xcf, 0xdd, 0xf3, 0x8e, 0x46, 0xc7, 0x90, 0xb0, 0x73, 0xd4, 0x0b, 0x39,
+ 0x06, 0x4e, 0x1c, 0xe0, 0x0a, 0x48, 0x00, 0xa0, 0x86, 0xd1, 0xbf, 0xf0,
+ 0xc4, 0xd9, 0x01, 0x16, 0x85, 0x9b, 0xb5, 0x96, 0x35, 0x72, 0xef, 0xd5,
+ 0xf6, 0x5a, 0x2c, 0x78, 0xee, 0x0a, 0x1e, 0x33, 0xf9, 0xf0, 0x8e, 0x74,
+ 0xf8, 0xc0, 0x73, 0x5d, 0xef, 0x58, 0xab, 0x7b, 0x9a, 0x60, 0xce, 0x5a,
+ 0x18, 0xe8, 0xb7, 0x01, 0x61, 0x01, 0x5f, 0x8d, 0x75, 0x18, 0x0a, 0x62,
+ 0x6d, 0xd1, 0x81, 0xf2, 0x0e, 0x4d, 0x45, 0x68, 0xaf, 0x15, 0xe7, 0x46,
+ 0xf1, 0x5e, 0x79, 0x36, 0x31, 0x8c, 0x63, 0x18, 0xba, 0xc2, 0x9a, 0x2b,
+ 0xfe, 0x2c, 0x89, 0xc2, 0x60, 0xa9, 0x4e, 0x6f, 0x4d, 0x00, 0x75, 0xbc,
+ 0x99, 0x00, 0x35, 0x39, 0x68, 0xc8, 0x64, 0x89, 0xf2, 0x42, 0x4e, 0xe4,
+ 0x4f, 0xe8, 0xd0, 0xc0, 0x53, 0x6f, 0xee, 0xb4, 0x7a, 0xdb, 0x16, 0x6f,
+ 0xaa, 0x87, 0xb3, 0x30, 0x9c, 0xd7, 0x50, 0x1e, 0xa2, 0x5b, 0x89, 0xf9,
+ 0xf4, 0x14, 0x9b, 0x42, 0xe6, 0x85, 0x7e, 0xe7, 0x74, 0xbf, 0xb2, 0xf4,
+ 0x85, 0xd2, 0x6d, 0x8b, 0x29, 0xf0, 0xf1, 0x6d, 0x4e, 0x03, 0x6b, 0x8a,
+ 0xc7, 0xb3, 0xdb, 0x02, 0x55, 0x04, 0x0a, 0x86, 0x3f, 0x51, 0xc0, 0xd5,
+ 0x71, 0x8e, 0xce, 0x9a, 0xdd, 0x4b, 0x38, 0x8e, 0x89, 0x0f, 0xf8, 0x7f,
+ 0xcc, 0x7f, 0x36, 0xfe, 0x71, 0x95, 0x9e, 0x84, 0xd9, 0x1d, 0xf0, 0xff,
+ 0xf2, 0xa9, 0xe5, 0x65, 0xc5, 0xb0, 0x91, 0xb8, 0x63, 0x21, 0x73, 0x9f,
+ 0x50, 0x3f, 0xc9, 0x5b, 0x51, 0x60, 0x9b, 0x0b, 0x7a, 0xb1, 0x73, 0x6a,
+ 0x5f, 0x16, 0x95, 0x47, 0xe3, 0x88, 0xed, 0x88, 0xb1, 0x9f, 0xba, 0x5e,
+ 0x52, 0x81, 0xa8, 0x41, 0xd4, 0xf5, 0x97, 0x08, 0x8b, 0x48, 0x4a, 0x1c,
+ 0xe8, 0xd6, 0x97, 0x29, 0xc9, 0xd4, 0x81, 0xf4, 0x4d, 0x0f, 0xa3, 0xb7,
+ 0xfd, 0x45, 0xee, 0x89, 0x4c, 0xba, 0x6a, 0x3d, 0x49, 0xd4, 0x74, 0x9a,
+ 0x2e, 0xad, 0x6f, 0x63, 0x13, 0xe1, 0x97, 0xc4, 0x7a, 0xe5, 0xb5, 0x45,
+ 0xaf, 0x33, 0xf0, 0x55, 0x38, 0x53, 0xb9, 0x2b, 0x0b, 0x61, 0x23, 0xe7,
+ 0xbf, 0x98, 0x08, 0xa0, 0xcc, 0x1c, 0x7a, 0xb8, 0xf6, 0xd4, 0xeb, 0x7d,
+ 0xa1, 0x87, 0x37, 0xa6, 0xc1, 0x06, 0xab, 0x8e, 0xdb, 0x6a, 0x1a, 0x9b,
+ 0xe2, 0x2b, 0x3a, 0x39, 0x1c, 0xbe, 0x89, 0x1b, 0x6c, 0xae, 0x23, 0xf5,
+ 0xd9, 0x52, 0xc5, 0x30, 0xa3, 0x3a, 0x73, 0x83, 0xde, 0x5d, 0xab, 0x6e,
+ 0x7c, 0x50, 0xaf, 0x2c, 0xb2, 0x1a, 0xe2, 0x7f, 0xf3, 0x76, 0xdf, 0x1a,
+ 0x31, 0xb1, 0xbd, 0x75, 0xe2, 0x81, 0x47, 0x64, 0x6d, 0x9e, 0xad, 0xc5,
+ 0x11, 0x4d, 0x1c, 0x6a, 0x26, 0xa0, 0x0b, 0x37, 0x30, 0x77, 0xda, 0x76,
+ 0xf7, 0x4f, 0xe0, 0x02, 0x11, 0x63, 0x9e, 0x86, 0xd8, 0xdc, 0x5b, 0xe4,
+ 0x79, 0x8b, 0x0d, 0x3f, 0x34, 0xb6, 0xdd, 0x44, 0x6a, 0xba, 0x6d, 0xfa,
+ 0x18, 0xcc, 0xde, 0x32, 0x13, 0x26, 0x02, 0x4c, 0x12, 0x21, 0x1c, 0x08,
+ 0x58, 0x7a, 0xe1, 0xec, 0xda, 0x02, 0xe5, 0x8a, 0xdf, 0x06, 0x89, 0x29,
+ 0x9f, 0x8f, 0x35, 0x5a, 0x52, 0x7e, 0x66, 0x0a, 0x09, 0xca, 0xae, 0xf5,
+ 0xf4, 0x9e, 0x84, 0x32, 0x82, 0x49, 0xd5, 0xb0, 0xe3, 0xea, 0xd4, 0x67,
+ 0xb9, 0x13, 0x28, 0xb2, 0x1b, 0xfa, 0x45, 0x76, 0xdc, 0x10, 0x9d, 0x1b,
+ 0xd2, 0xc5, 0x63, 0xff, 0x73, 0x23, 0x37, 0x91, 0x54, 0x85, 0xa7, 0xa6,
+ 0xb1, 0xc5, 0x7d, 0x03, 0x1d, 0x54, 0x6b, 0xc3, 0x1b, 0x7e, 0x03, 0x4e,
+ 0xee, 0xaf, 0xea, 0x46, 0x3b, 0x68, 0x4d, 0xfd, 0xa2, 0xd7, 0x28, 0x32,
+ 0x01, 0x9f, 0x26, 0xc6, 0x41, 0xdb, 0x7c, 0xe2, 0x27, 0x7e, 0x4b, 0x91,
+ 0xa3, 0x17, 0x2c, 0x0e, 0xf0, 0x84, 0x7a, 0x5d, 0x88, 0x0b, 0xe2, 0x6c,
+ 0xe0, 0x3d, 0xd1, 0x11, 0xc8, 0x6d, 0x0d, 0xbb, 0x27, 0x1b, 0x33, 0x3f,
+ 0xd4, 0x5f, 0xee, 0xcb, 0xe7, 0x8d, 0x19, 0xa5, 0x16, 0x20, 0xa4, 0x81,
+ 0x93, 0xb3, 0xb3, 0x3f, 0x64, 0x5f, 0xc0, 0x2c, 0xca, 0x04, 0x09, 0xb9,
+ 0xaf, 0xd9, 0x8d, 0x63, 0xdb, 0x6b, 0xc9, 0x88, 0xbd, 0xb1, 0x68, 0xed,
+ 0x3a, 0x11, 0xd6, 0xf2, 0xa9, 0x7a, 0xe6, 0xed, 0x51, 0x29, 0x8e, 0x3d,
+ 0x8d, 0xb4, 0x11, 0x32, 0xc1, 0x38, 0x45, 0xb6, 0xff, 0xde, 0x00, 0x98,
+ 0x81, 0x14, 0x1f, 0x15, 0xd6, 0x9e, 0x82, 0x09, 0x00, 0x8d, 0x28, 0xc6,
+ 0x94, 0x42, 0x1c, 0x0c, 0xc1, 0x02, 0x62, 0x7b, 0x08, 0x97, 0xc0, 0x2d,
+ 0xe4, 0x2e, 0x1d, 0x37, 0x4e, 0x64, 0x06, 0x32, 0xa5, 0xe4, 0xb9, 0xf8,
+ 0xf0, 0x4f, 0x49, 0xe3, 0x31, 0xe6, 0x21, 0x92, 0x9c, 0x39, 0x22, 0x23,
+ 0x45, 0x2a, 0xa1, 0x23, 0x4e, 0x28, 0x6a, 0x98, 0x45, 0x36, 0x02, 0xe0,
+ 0x65, 0x97, 0xf8, 0xa8, 0xaa, 0xec, 0xa3, 0x40, 0x01, 0x12, 0x44, 0x97,
+ 0xd6, 0x4d, 0xfd, 0x8b, 0xf8, 0x99, 0x90, 0x62, 0x87, 0x8f, 0x2d, 0x0b,
+ 0xbe, 0xeb, 0x68, 0xa8, 0xbc, 0xcc, 0xa2, 0x12, 0xdd, 0x52, 0x26, 0xca,
+ 0x49, 0x01, 0x8b, 0x0b, 0xae, 0xc2, 0x72, 0xa0, 0x4f, 0xb4, 0xd2, 0xa7,
+ 0x85, 0x39, 0x69, 0x25, 0xf2, 0x0c, 0x25, 0xbe, 0x62, 0x9c, 0x17, 0xe7,
+ 0x24, 0x22, 0x7c, 0x6b, 0x41, 0x92, 0x5c, 0x85, 0x56, 0x40, 0xf1, 0xee,
+ 0x85, 0xd1, 0xbb, 0x76, 0x1d, 0x09, 0x2a, 0x42, 0x23, 0x88, 0x0f, 0x24,
+ 0xf6, 0x49, 0x91, 0xf8, 0xd5, 0xd9, 0x5f, 0xb4, 0x59, 0xbd, 0xea, 0xe5,
+ 0x04, 0xf5, 0xa3, 0xa6, 0x68, 0x35, 0x41, 0x15, 0x55, 0xf8, 0x77, 0x05,
+ 0x5b, 0x98, 0x79, 0x90, 0x0b, 0xb6, 0xa6, 0x23, 0x3d, 0xc5, 0xc6, 0xcf,
+ 0x58, 0x36, 0x6a, 0xfe, 0xa4, 0x16, 0x1d, 0x5a, 0x16, 0x80, 0x60, 0xf4,
+ 0x3e, 0x68, 0x06, 0x4c, 0x3a, 0x22, 0x86, 0x3e, 0x71, 0xbb, 0x47, 0xc1,
+ 0xcc, 0x3f, 0x90, 0x40, 0x88, 0x71, 0xbe, 0x02, 0x52, 0xb7, 0x94, 0x62,
+ 0x64, 0xb3, 0xc8, 0xb2, 0x01, 0x91, 0x18, 0x81, 0xdf, 0x42, 0x86, 0x54,
+ 0x6a, 0xfb, 0x64, 0x2c, 0x4b, 0x8d, 0xc6, 0xe9, 0xfe, 0x77, 0x8d, 0xb2,
+ 0xfe, 0xfc, 0x7b, 0x68, 0x5d, 0x71, 0xfe, 0x3f, 0x68, 0x61, 0xb0, 0xd1,
+ 0xcf, 0xb9, 0x51, 0xb5, 0x5f, 0xd1, 0x4a, 0xc9, 0x3c, 0xea, 0x6e, 0x37,
+ 0xb7, 0x86, 0xe5, 0xa9, 0x9b, 0xec, 0x25, 0x2c, 0x47, 0x81, 0x09, 0xa9,
+ 0x70, 0xa1, 0xb2, 0x58, 0xf5, 0x01, 0x1e, 0xfa, 0x41, 0xf9, 0xc2, 0x59,
+ 0xd9, 0xcd, 0x69, 0x16, 0xf1, 0x56, 0xf0, 0x4d, 0xca, 0x90, 0xe8, 0x85,
+ 0x41, 0x07, 0xc8, 0x90, 0x00, 0x1f, 0x19, 0x08, 0xeb, 0xd4, 0x9b, 0x15,
+ 0xf0, 0xe2, 0x9e, 0x9d, 0xf7, 0xcc, 0x41, 0x42, 0x6e, 0xfb, 0x84, 0xeb,
+ 0x85, 0x7c, 0xe1, 0x44, 0x85, 0x5a, 0x08, 0x00, 0x28, 0x05, 0x00, 0x00,
+ 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x18, 0x00, 0x01,
+ 0x10, 0x14, 0x14, 0x63, 0xb2, 0x7f, 0xd7, 0x27, 0x00, 0x15, 0xec, 0x06,
+ 0xac, 0x05, 0xad, 0xe3, 0x40, 0x73, 0xa0, 0x34, 0xe4, 0xba, 0x2f, 0xbf,
+ 0xbd, 0xe1, 0xdc, 0xf8, 0xd3, 0x97, 0x62, 0x54, 0xbf, 0x91, 0xb8, 0xa1,
+ 0xc7, 0xc6, 0x48, 0x9a, 0xd4, 0xef, 0xed, 0xec, 0x9b, 0xf2, 0xe0, 0x1a,
+ 0x64, 0x49, 0x83, 0xb8, 0xa0, 0x6f, 0xb2, 0x4d, 0xef, 0xf4, 0x22, 0xcf,
+ 0x1d, 0x98, 0x45, 0xe0, 0x0b, 0x4f, 0xa9, 0xe9, 0xf0, 0xdc, 0x56, 0xb9,
+ 0x79, 0x44, 0xa3, 0x39, 0x17, 0x65, 0x90, 0x31, 0x96, 0xb4, 0xc4, 0xeb,
+ 0xcd, 0x24, 0x57, 0x10, 0x89, 0xc2, 0x22, 0x6d, 0x06, 0x1b, 0x0c, 0x84,
+ 0x2a, 0x86, 0x76, 0x8d, 0xe4, 0xe0, 0x85, 0x2f, 0x2d, 0xcb, 0x9c, 0x40,
+ 0x5a, 0xb3, 0x03, 0xba, 0xec, 0x4c, 0xd9, 0x19, 0x80, 0xb8, 0x48, 0x83,
+ 0x00, 0x62, 0xf7, 0x86, 0xd7, 0x9c, 0xff, 0xff, 0xea, 0x3c, 0xfc, 0x93,
+ 0x66, 0xc1, 0x4e, 0xda, 0xfc, 0x00, 0x36, 0xdd, 0x5e, 0x2b, 0xd4, 0x71,
+ 0xf3, 0x90, 0xc2, 0x5f, 0x26, 0xf5, 0x77, 0x86, 0xed, 0xf0, 0xdd, 0xc0,
+ 0x11, 0x40, 0xd8, 0xe1, 0x50, 0xce, 0xe0, 0x02, 0x9a, 0xc4, 0xe4, 0x33,
+ 0x58, 0xd6, 0x46, 0xb1, 0xac, 0xd1, 0xf4, 0x8a, 0xa9, 0x3d, 0x91, 0xaf,
+ 0x25, 0x1d, 0x4e, 0x65, 0x29, 0xbf, 0x21, 0xe9, 0x90, 0xe6, 0xa5, 0x2c,
+ 0x00, 0x4a, 0x00, 0x69, 0xbe, 0x64, 0xb8, 0x38, 0xfc, 0x8a, 0xeb, 0x91,
+ 0x72, 0x4a, 0xc9, 0xae, 0xb9, 0x1c, 0x15, 0x77, 0x69, 0xf9, 0xeb, 0xa9,
+ 0x30, 0x60, 0xf2, 0x19, 0x8a, 0x01, 0x9e, 0xce, 0xc9, 0xfd, 0xfa, 0x56,
+ 0x5e, 0x47, 0xf7, 0x42, 0xb3, 0x91, 0x96, 0xf6, 0x03, 0xd7, 0x94, 0x6d,
+ 0x32, 0x41, 0x11, 0xa7, 0x3c, 0xbb, 0x9a, 0xf6, 0x5c, 0x8b, 0xbf, 0xcd,
+ 0x57, 0xdd, 0x91, 0x10, 0x3c, 0x27, 0x23, 0x44, 0x55, 0x36, 0x36, 0xf1,
+ 0xb9, 0xe0, 0x84, 0xf7, 0xdf, 0x46, 0x8e, 0xee, 0x31, 0x2f, 0x4b, 0xe6,
+ 0xde, 0xfa, 0x05, 0x3a, 0x83, 0xc2, 0xbe, 0x6d, 0x50, 0xff, 0x88, 0x7f,
+ 0x0e, 0x5b, 0xfa, 0x8a, 0x0b, 0xda, 0xd1, 0x19, 0x9f, 0xce, 0x43, 0x14,
+ 0xa1, 0x84, 0xf5, 0xec, 0x37, 0x5d, 0xb4, 0xce, 0x61, 0xa0, 0x68, 0x34,
+ 0xb1, 0x14, 0xc9, 0xe0, 0x50, 0xf0, 0x24, 0x5a, 0xa3, 0x61, 0x93, 0xa0,
+ 0x8a, 0x9c, 0x0b, 0xb0, 0x9a, 0xc6, 0xfd, 0x77, 0x41, 0x9a, 0x85, 0x9d,
+ 0xef, 0x57, 0x9d, 0xb2, 0x34, 0x5b, 0x92, 0x48, 0xed, 0x81, 0xae, 0xc8,
+ 0x1c, 0x04, 0x71, 0x40, 0x3c, 0x3e, 0xdd, 0x9d, 0x6b, 0x39, 0xed, 0xf7,
+ 0x60, 0xc6, 0x46, 0x01, 0xc8, 0x6b, 0xf8, 0xe4, 0xcb, 0x2d, 0xa2, 0x0b,
+ 0xcc, 0xb0, 0xf3, 0x35, 0x89, 0xc7, 0xe5, 0x40, 0x86, 0x0a, 0x7c, 0xab,
+ 0x91, 0x59, 0x5b, 0x3c, 0xf4, 0xb1, 0xba, 0xfc, 0x56, 0x65, 0x33, 0x33,
+ 0x20, 0xf5, 0x50, 0x87, 0xbb, 0xbf, 0x68, 0x34, 0xc3, 0x60, 0x34, 0x5b,
+ 0x28, 0xea, 0xda, 0x48, 0x3b, 0xb3, 0x9b, 0x2a, 0x7c, 0x66, 0x70, 0xe8,
+ 0xe1, 0x59, 0x67, 0x36, 0xa9, 0x93, 0x97, 0xb0, 0x50, 0xc7, 0x9e, 0x65,
+ 0xed, 0x03, 0x8f, 0xe8, 0x9c, 0xbd, 0xc0, 0x4d, 0xfc, 0xa8, 0xa0, 0xb9,
+ 0x6e, 0x9d, 0x2d, 0x10, 0x27, 0x9c, 0x90, 0xed, 0x01, 0x3f, 0x2d, 0xcc,
+ 0x11, 0x73, 0x9f, 0x45, 0xb4, 0x94, 0x46, 0x4c, 0x6e, 0xe3, 0xf6, 0xf7,
+ 0xac, 0xd1, 0x47, 0xcd, 0x4f, 0x30, 0x11, 0xae, 0x53, 0x8b, 0x10, 0x19,
+ 0xb4, 0x52, 0x2c, 0x87, 0xf0, 0xf8, 0x34, 0xf6, 0xbc, 0xbc, 0xb4, 0xa3,
+ 0x85, 0xc8, 0x97, 0xbf, 0x74, 0x63, 0x5f, 0xb3, 0x5c, 0xe1, 0xef, 0xd4,
+ 0x11, 0xde, 0xeb, 0x8d, 0x29, 0xa7, 0xcd, 0xe2, 0x4e, 0x9a, 0x48, 0xb7,
+ 0x2d, 0x1d, 0xd6, 0xa2, 0xa2, 0x8b, 0x0e, 0x8a, 0xc9, 0x0a, 0xe9, 0x2f,
+ 0x5d, 0xe6, 0xe8, 0x9a, 0x05, 0x3f, 0xcc, 0xa6, 0x2e, 0x84, 0xbd, 0x8c,
+ 0x1f, 0xe3, 0x23, 0x4c, 0xf6, 0x87, 0x59, 0x61, 0x3e, 0xe1, 0xe8, 0xf8,
+ 0x8b, 0xc2, 0x88, 0xfa, 0xa1, 0xc8, 0x9a, 0x20, 0x4a, 0x44, 0x24, 0x15,
+ 0x03, 0x1b, 0x92, 0x9c, 0x0e, 0x03, 0x37, 0x61, 0xb4, 0xe1, 0x59, 0x2e,
+ 0xf5, 0x9f, 0x57, 0xe5, 0x5d, 0x0d, 0xd3, 0xb3, 0xa6, 0xf7, 0x3c, 0x05,
+ 0x7d, 0x6b, 0x97, 0x5a, 0x2a, 0x4c, 0xab, 0x0b, 0xdd, 0x4d, 0xea, 0x07,
+ 0xba, 0x46, 0x3f, 0x04, 0x29, 0x7f, 0xc9, 0xfa, 0xf2, 0x7b, 0x5b, 0xe0,
+ 0x7f, 0x2c, 0xed, 0x01, 0xbf, 0xe0, 0x92, 0x46, 0xf6, 0x85, 0x91, 0x11,
+ 0x95, 0x8a, 0x3e, 0x6a, 0xc2, 0x46, 0x8a, 0x9b, 0x4d, 0x73, 0x7d, 0x6a,
+ 0x8f, 0xf5, 0x49, 0xf1, 0xf9, 0xc9, 0x64, 0x04, 0xa7, 0x03, 0x6b, 0x05,
+ 0x0c, 0x87, 0xc4, 0xed, 0xda, 0xd9, 0x7a, 0xe8, 0x6d, 0x3e, 0xaa, 0x91,
+ 0xc4, 0xc6, 0x47, 0x12, 0xb4, 0xb3, 0x1f, 0xd0, 0x13, 0x78, 0x55, 0x0e,
+ 0xdb, 0x3d, 0xcc, 0x43, 0x4d, 0x14, 0x0b, 0x44, 0xf0, 0x6d, 0x9e, 0x64,
+ 0x71, 0xe0, 0xa9, 0xa0, 0x84, 0x27, 0x08, 0x56, 0xbe, 0xfb, 0x20, 0x45,
+ 0x89, 0xdd, 0x0e, 0x1b, 0x0f, 0x8e, 0xbc, 0x4a, 0x39, 0x91, 0x08, 0x6b,
+ 0x34, 0x1d, 0x0b, 0x97, 0x68, 0x5e, 0xcb, 0x6c, 0x0b, 0x50, 0x22, 0xb2,
+ 0x4e, 0xc0, 0x07, 0x1e, 0x42, 0xd4, 0x9b, 0xb8, 0xac, 0x6b, 0x03, 0x70,
+ 0xcb, 0x02, 0x01, 0xe4, 0x3b, 0x23, 0x3a, 0x48, 0x7c, 0xab, 0x11, 0x1d,
+ 0x10, 0x22, 0x6d, 0xc8, 0x82, 0xf0, 0x17, 0xd2, 0x55, 0x00, 0xc1, 0x3f,
+ 0xf0, 0x67, 0x1f, 0x8f, 0xfe, 0x65, 0x94, 0x7f, 0x97, 0xb8, 0x3a, 0x8f,
+ 0x2c, 0xd4, 0xea, 0x5f, 0x18, 0x71, 0xc2, 0x11, 0x05, 0x68, 0x3d, 0xfd,
+ 0x85, 0xac, 0x16, 0x22, 0xc9, 0xbc, 0x55, 0x23, 0x2b, 0x55, 0xdf, 0x49,
+ 0x11, 0xbd, 0x4a, 0xde, 0xc6, 0x05, 0x26, 0xd9, 0x70, 0x98, 0xb5, 0x3b,
+ 0x13, 0x76, 0x7d, 0x71, 0xcf, 0x1d, 0xb6, 0xfd, 0x04, 0x7d, 0x81, 0x44,
+ 0x2f, 0x15, 0x21, 0xb9, 0x4e, 0xff, 0x8a, 0x7e, 0xaf, 0x52, 0x91, 0x53,
+ 0xb9, 0x0f, 0xe1, 0xd4, 0x63, 0x0a, 0x0a, 0xde, 0x49, 0x59, 0x2c, 0x6b,
+ 0xcd, 0x6e, 0x8e, 0xff, 0xe1, 0x31, 0x79, 0x1a, 0x0b, 0xc8, 0x6a, 0x4b,
+ 0x4a, 0x56, 0x9c, 0x2c, 0x4b, 0x69, 0x78, 0xeb, 0x28, 0x7b, 0xd0, 0x11,
+ 0x7f, 0xb9, 0x2a, 0x75, 0xc2, 0x5b, 0x12, 0x33, 0x5b, 0x98, 0xd6, 0x50,
+ 0x3a, 0x85, 0x7f, 0x83, 0x09, 0x53, 0x23, 0x4d, 0x1c, 0x14, 0xc3, 0x80,
+ 0x3a, 0xbb, 0xf0, 0x28, 0x5d, 0xd4, 0x88, 0x9b, 0x6e, 0xa4, 0xc1, 0x0f,
+ 0x7a, 0xe9, 0xbe, 0x11, 0xb7, 0x6e, 0x08, 0x18, 0x8a, 0x6a, 0x18, 0x7c,
+ 0x3b, 0xcd, 0x87, 0xd3, 0xf9, 0x3b, 0x62, 0xd1, 0xdc, 0x7c, 0x43, 0xb6,
+ 0x5c, 0xa3, 0x8b, 0xe7, 0xf5, 0x0f, 0x72, 0x0a, 0x7d, 0x90, 0x58, 0x92,
+ 0xa4, 0x5f, 0xf3, 0x93, 0xa6, 0x37, 0xbf, 0xfd, 0xd9, 0x63, 0xf3, 0x10,
+ 0xec, 0x5b, 0x92, 0x5c, 0x68, 0xc7, 0x86, 0xc9, 0x0e, 0x95, 0x39, 0x17,
+ 0xf2, 0x95, 0x47, 0xf7, 0x8c, 0x2e, 0xd8, 0x0f, 0xfa, 0x57, 0xba, 0x8c,
+ 0xf8, 0x31, 0xf4, 0xc3, 0x7b, 0x78, 0xfc, 0xe9, 0xd6, 0xc4, 0xc3, 0x0f,
+ 0x8b, 0x12, 0x34, 0x16, 0xd9, 0x4a, 0x6b, 0x9e, 0xea, 0x43, 0x7b, 0x2a,
+ 0x01, 0x9f, 0x36, 0xfa, 0x03, 0x53, 0x28, 0xff, 0xcd, 0x64, 0xe4, 0xd4,
+ 0xa9, 0xed, 0xf8, 0xb7, 0x19, 0x4c, 0x3d, 0x05, 0xb2, 0xcf, 0xdd, 0xfc,
+ 0xc8, 0xc8, 0x5a, 0x5a, 0x50, 0xf6, 0x6a, 0x28, 0xe9, 0xfa, 0x14, 0x88,
+ 0x95, 0x35, 0x93, 0xdb, 0x5b, 0xbd, 0x74, 0xc8, 0x0e, 0x74, 0xed, 0xb9,
+ 0x4a, 0x1a, 0x0c, 0x02, 0xbd, 0xf6, 0x58, 0x1b, 0x87, 0x79, 0x4c, 0xf3,
+ 0x56, 0x70, 0xcf, 0xc0, 0x76, 0x92, 0xbb, 0x70, 0xc9, 0x56, 0xad, 0xd5,
+ 0xdd, 0x80, 0x3a, 0x3a, 0x29, 0x70, 0x45, 0x4f, 0x2b, 0x84, 0x95, 0x2a,
+ 0xe7, 0xfa, 0x81, 0x5d, 0x45, 0xd9, 0x72, 0x7c, 0xd7, 0xfb, 0xe4, 0x47,
+ 0x87, 0xb9, 0xb6, 0x4e, 0xcf, 0x91, 0x26, 0xac, 0xc0, 0xc8, 0x28, 0xaa,
+ 0xff, 0x90, 0xb7, 0xe0, 0x66, 0x11, 0x27, 0xd9, 0x2a, 0xcc, 0xcf, 0x78,
+ 0x61, 0xf1, 0x88, 0xd9, 0x71, 0x10, 0x8b, 0x24, 0x64, 0x61, 0xed, 0xeb,
+ 0x39, 0x46, 0x71, 0x6a, 0x34, 0x1c, 0x60, 0xad, 0x33, 0x9b, 0x75, 0xdd,
+ 0x5c, 0xe1, 0x3b, 0x8f, 0x52, 0x39, 0x04, 0x3c, 0x7d, 0xcc, 0xc7, 0xe2,
+ 0x0c, 0x23, 0x6a, 0x73, 0x0a, 0xf3, 0xbc, 0xeb, 0x27, 0x11, 0x9d, 0x88,
+ 0x07, 0x0d, 0xc1, 0xe9, 0x2b, 0x91, 0x5c, 0x67, 0x83, 0xb4, 0x0b, 0xef,
+ 0xcf, 0x4f, 0x85, 0xe2, 0x17, 0x5e, 0x86, 0x77, 0xc0, 0x02, 0x81, 0x6a,
+ 0x0d, 0x72, 0x2d, 0x4f, 0x5a, 0x69, 0xe6, 0xab, 0x03, 0xfe, 0x90, 0x29,
+ 0xd8, 0xec, 0x6c, 0xef, 0xaa, 0x26, 0xe0, 0x97, 0x04, 0x1a, 0xea, 0xe1,
+ 0x8f, 0x6d, 0x4d, 0xb6, 0x39, 0xee, 0x6e, 0x63, 0x6f, 0xd5, 0x0e, 0x23,
+ 0x96, 0xf0, 0x8f, 0x63, 0x16, 0x13, 0x4c, 0x5a, 0x17, 0xe3, 0x00, 0xe9,
+ 0xb9, 0xb1, 0xd9, 0xe1, 0x20, 0x76, 0x33, 0x13, 0xf7, 0x37, 0x04, 0x92,
+ 0x45, 0x6f, 0x8f, 0x96, 0x38, 0x43, 0x42, 0xe3, 0x1f, 0xf1, 0xa1, 0x7c,
+ 0xb7, 0x66, 0xb3, 0x87, 0x9c, 0x62, 0x5e, 0x56, 0xe4, 0xf9, 0x63, 0x91,
+ 0x66, 0xf7, 0x45, 0x23, 0xb9, 0xb0, 0xc6, 0x29, 0x9a, 0x17, 0x12, 0xcd,
+ 0x49, 0xd5, 0xc6, 0xa7, 0x5a, 0x64, 0x1d, 0x8c, 0xc4, 0x17, 0x5d, 0x03,
+ 0x84, 0x2a, 0x5a, 0x9c, 0x0d, 0x1a, 0x79, 0x2a, 0xae, 0x9e, 0xdf, 0xcd,
+ 0x67, 0xd3, 0x3c, 0xcd, 0xc6, 0x0d, 0x4f, 0x00, 0x0d, 0x03, 0x00, 0x00,
+ 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0f, 0x00, 0x00,
+ 0x10, 0x14, 0x00, 0x18, 0x01, 0x42, 0x64, 0xd0, 0x2e, 0x84, 0x42, 0x57,
+ 0x38, 0x64, 0x39, 0x04, 0x0d, 0xb9, 0xee, 0x54, 0xe8, 0x5a, 0x61, 0xbb,
+ 0xd1, 0x9b, 0xcb, 0xe5, 0x7a, 0xbe, 0x99, 0x6c, 0x70, 0x06, 0x71, 0xd8,
+ 0xd7, 0xe2, 0xbe, 0xf1, 0xc4, 0x11, 0xa5, 0xa4, 0xfb, 0x73, 0x84, 0x7d,
+ 0xd9, 0xca, 0x66, 0xc4, 0x6e, 0x12, 0xfd, 0x9c, 0xe2, 0xc1, 0x60, 0x86,
+ 0x17, 0x62, 0x0a, 0x5a, 0x19, 0x52, 0xd9, 0x09, 0xa0, 0x2f, 0x49, 0x40,
+ 0x36, 0x27, 0x1d, 0xd7, 0x5d, 0x42, 0x8e, 0xfb, 0x8d, 0xa4, 0x99, 0xc5,
+ 0xa0, 0x16, 0xbf, 0xb7, 0xe9, 0x09, 0x81, 0xef, 0x5a, 0x70, 0x2c, 0x74,
+ 0x00, 0x51, 0x40, 0x00, 0x01, 0x5d, 0xfb, 0x5a, 0xc8, 0x84, 0xd0, 0x8a,
+ 0xf3, 0x3b, 0x0a, 0xd8, 0x6d, 0xdd, 0x7f, 0xdd, 0xab, 0xa5, 0x82, 0x44,
+ 0x1c, 0x5f, 0x76, 0x51, 0x50, 0x69, 0xbe, 0x64, 0xce, 0x25, 0x0d, 0x17,
+ 0x66, 0x97, 0x0b, 0xbd, 0xea, 0xbd, 0x4a, 0x9f, 0x9d, 0xc7, 0x62, 0xe4,
+ 0x2f, 0x65, 0x32, 0x1d, 0xf8, 0x42, 0x26, 0x54, 0xf2, 0x8b, 0x38, 0x14,
+ 0x21, 0x28, 0x54, 0xcc, 0xe3, 0x71, 0x8b, 0xab, 0x6d, 0x8a, 0xc2, 0xa9,
+ 0xd4, 0x25, 0xa9, 0x68, 0xb2, 0x3c, 0x90, 0x1f, 0xa5, 0x2a, 0x46, 0x59,
+ 0x01, 0x45, 0x71, 0x82, 0x0f, 0x9d, 0xd8, 0x09, 0xd4, 0x74, 0xdf, 0x4a,
+ 0xfe, 0x38, 0x44, 0x13, 0x00, 0xa3, 0xff, 0x55, 0x7c, 0x0d, 0x56, 0xee,
+ 0xe2, 0x0d, 0xff, 0xa2, 0x57, 0x07, 0xd0, 0x33, 0x16, 0xd4, 0x29, 0xa0,
+ 0xc3, 0xc3, 0xf8, 0xdd, 0x6f, 0x28, 0xe4, 0x06, 0x22, 0x3b, 0xac, 0x98,
+ 0x75, 0xe9, 0x5e, 0x09, 0x0e, 0xe7, 0xcc, 0x21, 0x26, 0x21, 0x7b, 0x66,
+ 0x41, 0x80, 0x31, 0x90, 0x0a, 0xf8, 0x6f, 0xe1, 0x73, 0x4c, 0x43, 0x0c,
+ 0xec, 0xf1, 0x17, 0xce, 0x3e, 0x19, 0xc9, 0x54, 0x2f, 0xbc, 0x14, 0x0a,
+ 0xe4, 0x9e, 0x6d, 0xa3, 0x50, 0x85, 0x81, 0x01, 0xea, 0x20, 0xf8, 0xc3,
+ 0xe3, 0x44, 0x89, 0x39, 0x97, 0x17, 0x4d, 0x27, 0x16, 0x7c, 0x36, 0x52,
+ 0x6d, 0xb1, 0x49, 0xc4, 0x3c, 0xb4, 0x50, 0x66, 0x60, 0x13, 0x9c, 0x9a,
+ 0x9b, 0xf4, 0x3c, 0xee, 0x70, 0x4e, 0x4f, 0x8e, 0x3c, 0x4c, 0x92, 0x83,
+ 0xad, 0xc0, 0x5e, 0x36, 0x07, 0xca, 0xf1, 0x5c, 0x5c, 0x72, 0xa5, 0x35,
+ 0xad, 0xb0, 0xdb, 0xca, 0x24, 0xa1, 0x41, 0x67, 0xb9, 0x8c, 0xce, 0x15,
+ 0x9d, 0x3a, 0x4e, 0x05, 0xcb, 0xa4, 0x1f, 0x4e, 0xe4, 0x19, 0xe8, 0x1d,
+ 0xff, 0x43, 0x3f, 0xc0, 0x97, 0xab, 0x78, 0x69, 0x34, 0x54, 0x25, 0x08,
+ 0xa2, 0x16, 0x45, 0x57, 0x9e, 0xed, 0xe6, 0x1d, 0x3e, 0xef, 0xa6, 0x2c,
+ 0xaf, 0xb2, 0xde, 0x18, 0xe8, 0x91, 0xfd, 0x52, 0xe3, 0xfb, 0xe2, 0x3b,
+ 0xed, 0x6b, 0x83, 0x8c, 0x67, 0x90, 0xee, 0xe3, 0x34, 0xa6, 0x88, 0x36,
+ 0xfd, 0x1b, 0x03, 0x53, 0x24, 0x26, 0x76, 0xd3, 0x9e, 0xb9, 0x95, 0xc1,
+ 0x59, 0xef, 0xc4, 0x5e, 0xcc, 0x19, 0xbe, 0x09, 0x68, 0xd9, 0xbf, 0xc4,
+ 0x59, 0xed, 0xb7, 0xb2, 0xc6, 0x9b, 0xa8, 0x6b, 0x54, 0x5d, 0xb6, 0x69,
+ 0x31, 0x50, 0x2b, 0x95, 0xe1, 0x4c, 0xdf, 0xa7, 0xff, 0xd4, 0x0a, 0x65,
+ 0xe3, 0x97, 0x5d, 0x08, 0xc8, 0x22, 0xdc, 0x40, 0xa2, 0x9c, 0xc1, 0xff,
+ 0xd9, 0x97, 0x8b, 0xa0, 0xa8, 0x99, 0x60, 0xdc, 0xfe, 0x8a, 0xa2, 0x2b,
+ 0x91, 0xcf, 0x47, 0xc1, 0x49, 0x4f, 0x0e, 0x48, 0x0b, 0x0b, 0xab, 0xe2,
+ 0xf3, 0x54, 0xb0, 0x6f, 0x06, 0x1e, 0x5b, 0x6e, 0xe1, 0x60, 0xbf, 0xd2,
+ 0xfe, 0x47, 0xae, 0x6b, 0xf5, 0xfd, 0x4e, 0xb6, 0x50, 0xdd, 0x29, 0x6b,
+ 0x6c, 0x6e, 0x04, 0x90, 0xc6, 0xbe, 0x1d, 0x34, 0xaf, 0x21, 0xaf, 0x4f,
+ 0xac, 0x76, 0xac, 0x03, 0x77, 0xe6, 0x88, 0x70, 0x9e, 0x20, 0x4e, 0xb2,
+ 0x64, 0xff, 0x5a, 0x11, 0x37, 0x4c, 0xbc, 0x70, 0x62, 0xd4, 0x65, 0x55,
+ 0xac, 0x77, 0x0c, 0x6b, 0xe4, 0x83, 0xac, 0xa1, 0xa0, 0xbd, 0x88, 0xbb,
+ 0x9f, 0xc8, 0x65, 0x2e, 0x8c, 0x56, 0xc9, 0x65, 0x57, 0x32, 0x9e, 0x56,
+ 0x27, 0x0c, 0xc9, 0x18, 0xf9, 0xe5, 0x90, 0xfb, 0xcb, 0xa8, 0x16, 0x96,
+ 0x39, 0x09, 0x67, 0xfb, 0x5c, 0xf4, 0x73, 0x52, 0xe0, 0x41, 0xcc, 0xd4,
+ 0xf3, 0x51, 0x21, 0x28, 0x6a, 0xb0, 0xba, 0x54, 0xb0, 0x20, 0x68, 0x09,
+ 0x3d, 0x2f, 0xab, 0x26, 0x59, 0x29, 0x6e, 0x20, 0x9b, 0x5c, 0x7a, 0x7d,
+ 0x67, 0xce, 0x97, 0x6c, 0xe7, 0x2d, 0x75, 0xfe, 0x2c, 0x02, 0xe9, 0xf3,
+ 0x81, 0xb2, 0xd4, 0x82, 0xf3, 0x84, 0x68, 0x3d, 0x06, 0x3b, 0xaa, 0xdb,
+ 0x37, 0xca, 0xfe, 0xc8, 0x12, 0xaf, 0x7a, 0xfe, 0xc9, 0x20, 0x26, 0xd7,
+ 0xbf, 0x84, 0x19, 0x2d, 0x2e, 0xa1, 0x12, 0x9b, 0x58, 0xdd, 0xd6, 0x8b,
+ 0xc6, 0xf2, 0x39, 0xb5, 0x6c, 0x59, 0xc7, 0xc4, 0x94, 0x83, 0x25, 0xa2,
+ 0x71, 0x31, 0x9f, 0x9c, 0x64, 0x5a, 0xb0, 0xf0, 0x63, 0x8e, 0xbc, 0x00,
+ 0x8f, 0x95, 0x2d, 0x10, 0x2c, 0x60, 0x6f, 0xa6, 0x4c, 0xc2, 0xb6, 0x60,
+ 0xa1, 0x7b, 0x81, 0x60, 0x47, 0x3e, 0x52, 0x8d, 0x64, 0x73, 0x77, 0xac,
+ 0xcb, 0x73, 0x60, 0x0f, 0x01, 0xec, 0xec, 0xa9, 0x1f, 0x01, 0x8a, 0xbb,
+ 0x94, 0x80, 0xad, 0x95, 0x7c, 0xcf, 0x97, 0x21, 0x53, 0xc2, 0x46, 0x10,
+ 0xb6, 0x2e, 0x47, 0x70, 0x09, 0x97, 0xa4, 0x52, 0x28, 0x1e, 0x31, 0x8c,
+ 0x53, 0x34, 0x2e, 0x25, 0x9a, 0x93, 0xab, 0x71, 0x60, 0xfc, 0xf8, 0x35,
+ 0xa7, 0x84, 0x01, 0xd8, 0x11, 0x00, 0xaf, 0x4d, 0xe8, 0x14, 0xff, 0x9c,
+ 0x9d, 0x9d, 0x67, 0xe5, 0xfa, 0xf0, 0x89, 0x7c, 0x00, 0xa5, 0x02, 0x00,
+ 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0f, 0x00,
+ 0x04, 0x10, 0x14, 0x00, 0x1e, 0xeb, 0xd3, 0x0a, 0xb6, 0x78, 0x04, 0x15,
+ 0x8c, 0xb9, 0x9c, 0xd1, 0x65, 0xde, 0x48, 0x4d, 0x7c, 0x58, 0x47, 0xb1,
+ 0x8f, 0xe7, 0x00, 0xc7, 0x9f, 0x19, 0x92, 0x67, 0x0c, 0xf6, 0xbf, 0xe0,
+ 0x23, 0x8b, 0x0f, 0x45, 0x02, 0x90, 0xc0, 0xab, 0x9e, 0xa0, 0xef, 0x84,
+ 0xd7, 0xf8, 0x4b, 0x2e, 0xe7, 0x62, 0x8b, 0xd8, 0x0f, 0xcb, 0x6d, 0xce,
+ 0x9a, 0x66, 0xc6, 0x64, 0xc0, 0x15, 0x24, 0x28, 0x4e, 0x67, 0xba, 0x97,
+ 0x1b, 0x70, 0x94, 0xd6, 0x21, 0x13, 0x0d, 0xa7, 0x87, 0xed, 0x35, 0xa3,
+ 0xc8, 0xa6, 0xa1, 0x59, 0xca, 0xfb, 0x81, 0x36, 0x46, 0xc8, 0x00, 0x01,
+ 0x63, 0x47, 0x11, 0x8e, 0x4f, 0xa0, 0x5b, 0xfc, 0xe5, 0x11, 0x3d, 0xa1,
+ 0x43, 0x7a, 0xaa, 0xab, 0x59, 0xe3, 0x46, 0xd5, 0x8c, 0xd6, 0x83, 0xce,
+ 0x87, 0xbf, 0x91, 0x80, 0x69, 0xbe, 0x2b, 0xde, 0x2b, 0x92, 0xc2, 0xe8,
+ 0x2a, 0xfe, 0x47, 0x0b, 0xc2, 0x83, 0xa3, 0xba, 0xa8, 0x49, 0xab, 0xd6,
+ 0xfb, 0x57, 0x96, 0x27, 0xd0, 0x35, 0xc4, 0xdd, 0x91, 0xe5, 0xe8, 0x76,
+ 0x9a, 0x5d, 0x45, 0x5b, 0xf6, 0x9b, 0xd1, 0xe0, 0x59, 0x18, 0x2c, 0x23,
+ 0xc9, 0x81, 0x62, 0xef, 0x09, 0x4c, 0xc3, 0x09, 0x85, 0x4d, 0x1e, 0xd0,
+ 0xfd, 0x48, 0x6c, 0xf8, 0x29, 0x40, 0x9e, 0xf7, 0xc2, 0x5f, 0xe0, 0x81,
+ 0x24, 0x56, 0xf1, 0xff, 0x37, 0x92, 0x61, 0x5e, 0x3a, 0x92, 0x1a, 0x5a,
+ 0xb2, 0x45, 0x38, 0xba, 0x12, 0xbc, 0x3d, 0x16, 0x71, 0xda, 0x57, 0x72,
+ 0xd5, 0x1d, 0x8b, 0x53, 0x8c, 0xd7, 0x34, 0x9d, 0x3b, 0xd2, 0x4c, 0x12,
+ 0x3b, 0x08, 0x97, 0x9a, 0x6d, 0x09, 0x01, 0x4b, 0xa7, 0x13, 0xe3, 0x3d,
+ 0x6b, 0x41, 0xaa, 0xd5, 0x45, 0xf1, 0x39, 0x37, 0x25, 0x8b, 0xd8, 0x21,
+ 0x43, 0x0c, 0xd2, 0x42, 0x5f, 0x1c, 0xb2, 0xc5, 0xad, 0x89, 0x1f, 0xcb,
+ 0xb9, 0x53, 0xca, 0x4f, 0x9c, 0xae, 0x25, 0x21, 0xff, 0x3d, 0x7c, 0xfe,
+ 0x70, 0x60, 0xac, 0xfa, 0x92, 0x34, 0x4e, 0x8b, 0x9a, 0x77, 0x1c, 0xbf,
+ 0x22, 0x35, 0x6b, 0xba, 0x4b, 0xb0, 0x9d, 0xb3, 0xf1, 0xa0, 0xb7, 0x6f,
+ 0x72, 0x70, 0x42, 0x4c, 0xa3, 0x42, 0x47, 0x80, 0x5c, 0xdb, 0xeb, 0x7a,
+ 0x25, 0xee, 0x58, 0xcb, 0x0a, 0x84, 0x5b, 0x06, 0x6c, 0x49, 0x85, 0x60,
+ 0x9d, 0xdc, 0xbd, 0x0f, 0x32, 0x4b, 0x27, 0xa3, 0x72, 0x0f, 0x13, 0x57,
+ 0x99, 0x7c, 0x26, 0x18, 0x46, 0x8b, 0x8b, 0x95, 0x33, 0x90, 0x32, 0xd7,
+ 0x2d, 0x45, 0xd9, 0x83, 0x4c, 0x2c, 0x49, 0xaf, 0x0d, 0x8b, 0x14, 0xc0,
+ 0x02, 0xdd, 0xfd, 0xf9, 0x21, 0xe9, 0x71, 0xf6, 0xd5, 0x9e, 0xbb, 0x9a,
+ 0x3e, 0xaf, 0xf2, 0x34, 0xca, 0x78, 0x6c, 0x97, 0x2a, 0xf4, 0x73, 0xc2,
+ 0x06, 0xd3, 0xa5, 0xd2, 0x20, 0xd1, 0xe0, 0x08, 0x9b, 0xb5, 0xdc, 0x09,
+ 0xca, 0x0d, 0xf6, 0x2d, 0xa8, 0x7e, 0xb4, 0x15, 0x1e, 0xc9, 0x0c, 0xe3,
+ 0x53, 0xb3, 0x04, 0x69, 0x9a, 0xba, 0x22, 0x1e, 0x65, 0x04, 0xb0, 0x48,
+ 0xd8, 0xe4, 0xa3, 0x3e, 0x20, 0x75, 0x67, 0x4c, 0xb3, 0x25, 0x6d, 0x75,
+ 0xd2, 0xa3, 0x97, 0x85, 0x2e, 0x28, 0xfc, 0x49, 0x53, 0x58, 0x21, 0xb4,
+ 0xda, 0xa8, 0x0a, 0x5d, 0x9a, 0x05, 0xd2, 0x80, 0x23, 0x69, 0xdb, 0xfc,
+ 0x5e, 0x39, 0x45, 0xab, 0xdf, 0x04, 0x0d, 0x7d, 0x71, 0xa5, 0xd7, 0xca,
+ 0xe0, 0xa3, 0xac, 0x99, 0xac, 0x1e, 0xd4, 0x87, 0xef, 0x7e, 0xcd, 0x3f,
+ 0xa0, 0x40, 0x52, 0x8f, 0xdf, 0xd3, 0xe3, 0x08, 0xf8, 0x10, 0xaf, 0x8f,
+ 0x24, 0xd4, 0x10, 0xa1, 0xab, 0x1e, 0xb1, 0xde, 0xa9, 0x61, 0xbd, 0xd8,
+ 0xe2, 0x50, 0x0a, 0xe1, 0xf3, 0x91, 0xde, 0xc6, 0x64, 0x75, 0x38, 0x85,
+ 0xa4, 0xa8, 0xb2, 0x8a, 0x28, 0xf6, 0xcb, 0xe3, 0x84, 0xa7, 0x6f, 0xb7,
+ 0x6c, 0x32, 0x3c, 0x2b, 0x94, 0x61, 0xbd, 0x4c, 0xdc, 0x04, 0x05, 0xfd,
+ 0x4f, 0x49, 0x6e, 0xff, 0x3a, 0x90, 0x45, 0xca, 0xc4, 0x38, 0x88, 0xfd,
+ 0x8a, 0xff, 0x91, 0x29, 0x1f, 0xbc, 0x40, 0x1d, 0x61, 0x79, 0x26, 0x34,
+ 0xce, 0xd0, 0x3c, 0x50, 0x35, 0xab, 0xa7, 0xe3, 0x52, 0x36, 0x1c, 0xee,
+ 0x40, 0xad, 0x81, 0x4d, 0xd4, 0x5d, 0xfd, 0xdf, 0xb6, 0x43, 0x42, 0xf9,
+ 0x21, 0x43, 0xba, 0x7d, 0xdb, 0x31, 0xde, 0x86, 0x55, 0x86, 0x21, 0xc8,
+ 0x28, 0x20, 0x5f, 0xdb, 0xf0, 0xda, 0xc8, 0x9b, 0xb3, 0x2b, 0x36, 0x4a,
+ 0xa2, 0x0d, 0xd1, 0xe2, 0x02, 0x60, 0xaf, 0xcd, 0x27, 0x93, 0xd5, 0x17,
+ 0x7d, 0x61, 0x41, 0xb3, 0xd5, 0x3e, 0x8c, 0xa9, 0x28, 0x96, 0x14, 0xd6,
+ 0xed, 0x0e, 0x9f, 0x7e, 0xee, 0x68, 0x3e, 0x8e, 0x02, 0x48, 0xfe, 0x1c,
+ 0xcd, 0x88, 0xc5, 0x9f, 0xf9, 0x00, 0x82, 0x08, 0xfa, 0x5e, 0xea, 0x74,
+ 0x08, 0x1d, 0xff, 0x1f, 0x3b, 0x2c, 0x89, 0xf4, 0xa6, 0xdb, 0xcf, 0x52,
+ 0x68, 0x00, 0x35, 0x03, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x11, 0x0f, 0x00, 0x00, 0x10, 0x14, 0x00, 0x18, 0x89, 0xe1,
+ 0x24, 0x47, 0xdc, 0xce, 0x69, 0x31, 0xf0, 0xce, 0x44, 0x37, 0x42, 0xb2,
+ 0xb8, 0x1a, 0x4d, 0xbd, 0xb3, 0x4c, 0x2f, 0xc6, 0xd4, 0xf6, 0xd4, 0xe6,
+ 0x4d, 0x58, 0x6b, 0x27, 0x90, 0xa8, 0x6a, 0x79, 0x4f, 0xbc, 0x0d, 0xbf,
+ 0x33, 0xec, 0xb1, 0x1e, 0x06, 0xac, 0x03, 0x0f, 0x92, 0x97, 0x03, 0xf0,
+ 0x5d, 0x27, 0x82, 0xd9, 0x94, 0xe9, 0x0a, 0xb2, 0x1f, 0xc6, 0x81, 0x61,
+ 0x22, 0xb1, 0x0f, 0xeb, 0x40, 0x7c, 0x47, 0x09, 0x4c, 0x9b, 0x05, 0x5d,
+ 0x46, 0x93, 0xa0, 0xf8, 0x70, 0x20, 0xc8, 0xbe, 0x4f, 0x70, 0x9c, 0x65,
+ 0xf8, 0x25, 0xf7, 0x0b, 0xbb, 0xae, 0x99, 0x9e, 0x1f, 0x94, 0xc2, 0x78,
+ 0xd5, 0xe7, 0xa4, 0xfc, 0xf8, 0xfe, 0xaf, 0x73, 0xa2, 0x73, 0x89, 0x53,
+ 0xb5, 0xb9, 0x82, 0x67, 0x80, 0x16, 0xd2, 0x85, 0xec, 0xbc, 0x58, 0xdf,
+ 0x52, 0x7c, 0x09, 0x27, 0x3b, 0x60, 0x37, 0x96, 0x97, 0xf0, 0xbd, 0xef,
+ 0x75, 0x29, 0xd7, 0xbf, 0xb7, 0xb6, 0xbd, 0x62, 0xe2, 0x78, 0x45, 0xad,
+ 0xeb, 0x16, 0xea, 0x6e, 0x13, 0x02, 0x66, 0x5f, 0xf7, 0xf6, 0xed, 0xb7,
+ 0x9b, 0x05, 0x7d, 0x31, 0x88, 0xcc, 0x10, 0x07, 0x94, 0x08, 0xdb, 0xba,
+ 0x45, 0x74, 0xf1, 0x37, 0x86, 0x4c, 0x37, 0x4e, 0x69, 0x4e, 0x50, 0xdc,
+ 0x05, 0x5a, 0xeb, 0xe4, 0x26, 0xb4, 0xbb, 0xe8, 0xf9, 0x7c, 0x1c, 0x5b,
+ 0x15, 0x6e, 0x45, 0x42, 0x08, 0xa2, 0xd3, 0xb4, 0x76, 0x5a, 0x21, 0x86,
+ 0x0a, 0x65, 0xf1, 0xf5, 0xf3, 0x27, 0x1b, 0xc2, 0x28, 0x64, 0x59, 0x7b,
+ 0xe7, 0x68, 0x7b, 0xce, 0x02, 0x44, 0xbd, 0x8b, 0x80, 0xb5, 0x2b, 0xac,
+ 0xbf, 0x9b, 0x2b, 0xdf, 0x15, 0x03, 0x70, 0x6e, 0x58, 0x1c, 0x6d, 0x0f,
+ 0xb4, 0x0e, 0xed, 0x01, 0x90, 0xa9, 0x1b, 0xf1, 0xe5, 0xe8, 0x97, 0x37,
+ 0xca, 0x17, 0x80, 0xfa, 0xf3, 0x70, 0xf3, 0x57, 0x1f, 0x47, 0xc5, 0x6a,
+ 0xd4, 0xe6, 0x72, 0x1f, 0xf7, 0xa8, 0xa2, 0xef, 0x7d, 0xcd, 0x21, 0x05,
+ 0x74, 0x4d, 0xac, 0x42, 0x89, 0xd4, 0xd7, 0x97, 0x1e, 0xe2, 0xe8, 0x48,
+ 0xef, 0xb3, 0x56, 0xd3, 0x8a, 0xf1, 0x7f, 0x58, 0x32, 0xab, 0x1e, 0x90,
+ 0x85, 0x41, 0xa8, 0xfd, 0x96, 0xa5, 0xf4, 0x9f, 0xf5, 0x0b, 0x25, 0xe1,
+ 0x5d, 0xf5, 0x6f, 0x7a, 0x83, 0x25, 0xdc, 0xfe, 0x6c, 0xb2, 0x7a, 0x8d,
+ 0x5e, 0xd0, 0x54, 0x8f, 0x1d, 0x3d, 0x0d, 0x74, 0x98, 0x03, 0x4f, 0x74,
+ 0xf3, 0x95, 0xff, 0x49, 0x57, 0x83, 0x1d, 0xa1, 0xd1, 0xc9, 0x0a, 0x6c,
+ 0x3f, 0xad, 0x8c, 0x2c, 0xa0, 0xde, 0xcf, 0x07, 0xfc, 0xe9, 0x1c, 0x95,
+ 0x12, 0xf5, 0xb3, 0x57, 0xb7, 0x7d, 0x24, 0xd2, 0x8a, 0xd3, 0x39, 0x64,
+ 0x0e, 0xcf, 0xb8, 0xaa, 0xcb, 0x6f, 0x3e, 0x8b, 0x44, 0x96, 0x5b, 0xc1,
+ 0x72, 0x4a, 0xb0, 0xd0, 0x66, 0x24, 0x1a, 0x67, 0x0a, 0xe9, 0x78, 0x89,
+ 0x8b, 0x83, 0xf5, 0x4f, 0x6d, 0x57, 0x88, 0x88, 0xb2, 0x94, 0xfe, 0x0d,
+ 0x08, 0xee, 0x5d, 0x9b, 0xad, 0x7e, 0xe8, 0x7d, 0xf9, 0xe4, 0xd7, 0xf8,
+ 0xfd, 0xde, 0x72, 0xb7, 0x72, 0xf6, 0x6b, 0xdf, 0xbf, 0x1d, 0x71, 0x3d,
+ 0x86, 0xcc, 0xf6, 0x7b, 0x5e, 0x5d, 0x72, 0x50, 0x23, 0xfc, 0xb3, 0x1a,
+ 0x43, 0xd9, 0x4c, 0xf8, 0x98, 0x46, 0xba, 0x84, 0xb1, 0xa0, 0xe3, 0xfa,
+ 0x64, 0xc3, 0x93, 0x80, 0x4b, 0x1b, 0x86, 0x42, 0x08, 0x5d, 0x21, 0xef,
+ 0xd1, 0x7b, 0x2d, 0x71, 0x3e, 0x29, 0xdc, 0xcf, 0xee, 0x2e, 0x0b, 0x87,
+ 0xc3, 0xec, 0x01, 0x6c, 0x1e, 0x83, 0x91, 0xdf, 0xee, 0x2e, 0x0b, 0x84,
+ 0xfb, 0xec, 0xd7, 0x5e, 0x55, 0x05, 0x3b, 0x93, 0xbe, 0x08, 0x90, 0x34,
+ 0xcd, 0xe0, 0x03, 0x80, 0x98, 0x5f, 0x6b, 0xb9, 0x06, 0x27, 0x71, 0x2e,
+ 0x9c, 0x41, 0xdd, 0x17, 0x63, 0xf6, 0x1e, 0x60, 0x8c, 0xd9, 0xaf, 0x17,
+ 0x5c, 0x92, 0xb3, 0x38, 0x8b, 0xdd, 0xf6, 0x0b, 0xe5, 0x7a, 0xd5, 0xf3,
+ 0x87, 0xad, 0x0b, 0xc6, 0xbe, 0x1e, 0xf4, 0xf8, 0xa4, 0x0e, 0xa6, 0x3a,
+ 0xfe, 0x48, 0x03, 0xf4, 0x12, 0xe9, 0xcd, 0x4d, 0x3e, 0x46, 0x13, 0x0e,
+ 0x6c, 0x74, 0x08, 0x24, 0x50, 0xea, 0x67, 0x4f, 0x6e, 0xf1, 0xd4, 0x25,
+ 0xa6, 0xc2, 0x52, 0x5d, 0x8f, 0xb7, 0x84, 0x68, 0xe3, 0x94, 0xe1, 0xa5,
+ 0xf8, 0x29, 0xa1, 0x55, 0x39, 0xd2, 0x76, 0x58, 0xff, 0xfa, 0x88, 0xd1,
+ 0x83, 0xdb, 0xe0, 0x1d, 0xcf, 0x14, 0xff, 0x4a, 0xa9, 0x14, 0x0a, 0x30,
+ 0x03, 0x58, 0xa6, 0x19, 0x28, 0x25, 0x91, 0xfb, 0x0b, 0xa3, 0x4d, 0xc1,
+ 0x99, 0x73, 0x79, 0x28, 0x38, 0x22, 0xa1, 0x7b, 0x6d, 0x24, 0xd1, 0x65,
+ 0x6f, 0x85, 0x33, 0x02, 0xa2, 0xd1, 0x18, 0x11, 0x3b, 0x66, 0xa6, 0x1d,
+ 0x1c, 0x4d, 0xbd, 0x1c, 0x7a, 0xd1, 0x60, 0x4c, 0x6d, 0x1a, 0xc1, 0xd2,
+ 0xd5, 0x49, 0x59, 0x54, 0xa9, 0x7c, 0x28, 0xaf, 0x03, 0x54, 0x8b, 0xfd,
+ 0x31, 0x8e, 0xc0, 0xf2, 0x2e, 0x75, 0xf3, 0x7e, 0x9c, 0xcd, 0x89, 0x07,
+ 0xf4, 0xb7, 0x9d, 0x9e, 0x30, 0xa5, 0xbe, 0xf8, 0x00, 0xe7, 0x33, 0x4f,
+ 0x96, 0x16, 0xf3, 0xf8, 0x84, 0x5a, 0xd5, 0xdb, 0x7d, 0x52, 0x89, 0x87,
+ 0xa6, 0xc1, 0xc8, 0x01, 0xea, 0x48, 0xc5, 0x84, 0xf7, 0xf8, 0x51, 0x7e,
+ 0xf1, 0x4a, 0xab, 0x9d, 0x7a, 0xa6, 0x52, 0x89, 0x2e, 0x42, 0x0c, 0x42,
+ 0x90, 0xfc, 0xc1, 0xa5, 0x4e, 0xa1, 0xfb, 0x27, 0x37, 0x55, 0xde, 0x39,
+ 0xcd, 0x19, 0x53, 0xc1, 0x5d, 0x5c, 0x7b, 0xac, 0xf1, 0x90, 0x80, 0xe8,
+ 0x35, 0x1a, 0xd6, 0x9a, 0xc7, 0x1a, 0x56, 0x72, 0x95, 0x82, 0x5f, 0x80,
+ 0x83, 0xaf, 0x71, 0xae, 0x6d, 0x67, 0x80, 0x6b, 0x46, 0x8a, 0x9f, 0x0f,
+ 0xa6, 0x11, 0xdc, 0x1a, 0xfe, 0x41, 0x91, 0x24, 0x7f, 0x0e, 0x66, 0x98,
+ 0xfb, 0xb9, 0xa3, 0xd1, 0x98, 0xeb, 0x3f, 0x3b, 0x95, 0x62, 0x6c, 0xa1,
+ 0x32, 0x61, 0xe2, 0xb5, 0x7b, 0xbf, 0xc0, 0xb0, 0x02, 0x00, 0x00, 0x3b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e, 0x00, 0x00, 0x10,
+ 0x14, 0x00, 0x18, 0x71, 0x51, 0x0b, 0xca, 0xb0, 0xc9, 0xee, 0xb9, 0x70,
+ 0x06, 0x97, 0x33, 0x20, 0xf5, 0x41, 0x01, 0x40, 0xd6, 0x6e, 0x56, 0x75,
+ 0xf1, 0xf8, 0x02, 0x9d, 0x0f, 0x01, 0x6b, 0xe8, 0xc1, 0xb8, 0x6f, 0xba,
+ 0x0e, 0xe1, 0x40, 0x95, 0xb8, 0x58, 0xb5, 0x54, 0x34, 0xcc, 0xfc, 0x0a,
+ 0x6a, 0x1b, 0xd8, 0x1b, 0xc6, 0x88, 0x87, 0x49, 0x75, 0x51, 0x55, 0x39,
+ 0x7e, 0x70, 0x8e, 0xf6, 0x07, 0x53, 0x90, 0x1d, 0x30, 0x0a, 0x95, 0xc5,
+ 0x4b, 0x82, 0xb1, 0xca, 0x6e, 0xf2, 0x54, 0x7a, 0x21, 0xa5, 0x3e, 0xeb,
+ 0xb0, 0xa9, 0xe4, 0xd7, 0x2d, 0x60, 0x8e, 0x16, 0xcd, 0xb8, 0x9f, 0xe1,
+ 0x74, 0xff, 0xf5, 0xd7, 0xb7, 0x99, 0xdf, 0x13, 0x84, 0xae, 0x0a, 0x87,
+ 0x66, 0x0d, 0x00, 0x16, 0xe2, 0xd1, 0xd9, 0x45, 0x30, 0x37, 0xe0, 0x84,
+ 0x7f, 0x6b, 0x94, 0xf4, 0x89, 0x50, 0xe1, 0x7a, 0x64, 0xe4, 0x64, 0x98,
+ 0x76, 0x32, 0x66, 0x94, 0x17, 0xab, 0x1d, 0x99, 0xfd, 0x3c, 0x00, 0x48,
+ 0x1b, 0xec, 0x9a, 0x7f, 0xa2, 0x56, 0x4c, 0xb2, 0x8c, 0x7e, 0xb8, 0xd6,
+ 0x95, 0x8c, 0xeb, 0x32, 0x95, 0x2c, 0x06, 0xf4, 0xa4, 0x9d, 0xdb, 0x36,
+ 0x05, 0x2d, 0x4d, 0xa0, 0x59, 0x03, 0x0a, 0xb9, 0xf4, 0x53, 0x8c, 0x23,
+ 0x0d, 0x61, 0x2c, 0x7f, 0x2d, 0xbb, 0x25, 0x1a, 0x29, 0x32, 0x1a, 0xcc,
+ 0xaa, 0xc3, 0xcb, 0xc4, 0x17, 0xaa, 0x7c, 0x85, 0x57, 0xa7, 0x8c, 0x7f,
+ 0x33, 0x79, 0xbc, 0x6b, 0xde, 0x1d, 0xd3, 0x3d, 0x6c, 0x74, 0x63, 0xfe,
+ 0xe2, 0x66, 0xef, 0x0c, 0x1b, 0x26, 0x9b, 0xd9, 0xfb, 0x43, 0x23, 0xc7,
+ 0x5b, 0xe5, 0x38, 0xe8, 0x94, 0xb6, 0x25, 0xbd, 0xf6, 0x69, 0x70, 0x1e,
+ 0x6b, 0xfc, 0xdc, 0xe1, 0x33, 0xde, 0xff, 0x2c, 0xff, 0x1d, 0xeb, 0xb0,
+ 0x1f, 0xee, 0x2b, 0x45, 0x5e, 0x63, 0x21, 0x95, 0xe8, 0xd2, 0x28, 0x44,
+ 0xa7, 0x0c, 0x95, 0x57, 0xc8, 0x3f, 0x75, 0x07, 0xbc, 0x89, 0xe1, 0xcb,
+ 0x15, 0x4e, 0x3d, 0xd8, 0xad, 0xb6, 0x06, 0x55, 0xc4, 0x99, 0xc1, 0xcc,
+ 0x44, 0xb1, 0x0b, 0xe3, 0x5e, 0x7f, 0x9f, 0xbb, 0x70, 0x41, 0x08, 0x47,
+ 0xf0, 0x2e, 0xae, 0xec, 0xd2, 0x22, 0x81, 0x4e, 0x81, 0xc7, 0xec, 0x09,
+ 0x0c, 0x98, 0xd6, 0x66, 0x6f, 0x6e, 0xf8, 0x2f, 0xf8, 0xee, 0x5d, 0xcc,
+ 0x7d, 0x92, 0xf1, 0x58, 0x81, 0x3f, 0x9e, 0xb4, 0xe9, 0x43, 0xac, 0xbb,
+ 0x46, 0xcd, 0xec, 0x3f, 0xf9, 0x5c, 0x8d, 0xda, 0xee, 0xc8, 0x46, 0xc1,
+ 0xc8, 0xe3, 0xd1, 0xd8, 0x24, 0x36, 0xdc, 0xd6, 0x7e, 0xfb, 0xe3, 0x81,
+ 0x8f, 0xb2, 0x14, 0x4f, 0xe9, 0x38, 0x31, 0x49, 0x5b, 0x13, 0x03, 0x7f,
+ 0x1e, 0x80, 0xc9, 0x42, 0xc1, 0xb5, 0x24, 0x15, 0x6e, 0xb1, 0x53, 0x2b,
+ 0xdb, 0x99, 0x26, 0x8f, 0xe5, 0xa7, 0x13, 0x11, 0x32, 0xde, 0xb5, 0x9c,
+ 0xdc, 0x7e, 0x6f, 0xa7, 0xe5, 0x6a, 0xf8, 0x85, 0x6c, 0x59, 0xa8, 0x89,
+ 0xd5, 0x21, 0x02, 0xfc, 0x7e, 0x7b, 0x5e, 0x9c, 0x39, 0x7c, 0xe3, 0x15,
+ 0x4f, 0x82, 0x1b, 0xe2, 0x9d, 0xb5, 0xc0, 0x51, 0xb4, 0xe5, 0xad, 0xd9,
+ 0x89, 0xa0, 0x73, 0x33, 0x0b, 0x71, 0x4a, 0xb4, 0x50, 0xce, 0x44, 0xfc,
+ 0x1a, 0x5b, 0x4b, 0x6a, 0x6f, 0xf4, 0xa3, 0x3f, 0xd1, 0xb7, 0xef, 0xa5,
+ 0x30, 0x32, 0xc5, 0x2f, 0x84, 0xe6, 0xbb, 0x2d, 0x60, 0xb3, 0xe4, 0x3f,
+ 0x72, 0x9e, 0x94, 0xe8, 0x61, 0x18, 0x4c, 0xfb, 0x20, 0xb3, 0x2d, 0xbf,
+ 0xd6, 0x48, 0x49, 0xd0, 0x0b, 0x27, 0x54, 0x4c, 0x0b, 0x13, 0x71, 0x65,
+ 0x07, 0x18, 0x0c, 0x3f, 0x33, 0x5a, 0xd1, 0x0c, 0xd6, 0x7c, 0x12, 0x58,
+ 0x0e, 0x18, 0x7d, 0x18, 0x69, 0xde, 0xd9, 0xb5, 0x75, 0xed, 0x22, 0x2e,
+ 0x01, 0x09, 0x49, 0x8e, 0x97, 0xdf, 0xa6, 0xbe, 0xd4, 0xab, 0x55, 0x6b,
+ 0x80, 0x0c, 0x6c, 0x7f, 0x2f, 0xc7, 0xb1, 0x76, 0xff, 0x4d, 0x7f, 0x08,
+ 0xc4, 0xc4, 0x81, 0xdc, 0xfe, 0xa8, 0xab, 0x70, 0x79, 0x26, 0x7c, 0xfe,
+ 0x1f, 0x91, 0x50, 0xa2, 0xa3, 0xa3, 0x8e, 0xa1, 0x03, 0xe2, 0x37, 0x42,
+ 0xf2, 0xa2, 0x77, 0x48, 0x2b, 0xc2, 0xe8, 0x66, 0x47, 0x5c, 0x72, 0xc6,
+ 0x3b, 0x75, 0x4a, 0xb2, 0xbe, 0xd3, 0xed, 0x87, 0xa3, 0x69, 0x4a, 0x72,
+ 0xfc, 0x84, 0xdb, 0x46, 0xee, 0x26, 0x38, 0xae, 0xbc, 0x70, 0xb0, 0x7b,
+ 0x5b, 0xf7, 0x47, 0xa6, 0xa2, 0xda, 0x2d, 0x98, 0x75, 0x9c, 0xdb, 0xcf,
+ 0x9f, 0x1d, 0xa5, 0xac, 0x83, 0xaa, 0x17, 0x47, 0x82, 0xc7, 0xb1, 0xfe,
+ 0x99, 0x6c, 0x0d, 0x4e, 0x34, 0xe9, 0x90, 0x20, 0x4b, 0x4d, 0xc5, 0x64,
+ 0xf4, 0x26, 0x75, 0x4b, 0x1b, 0x6b, 0x12, 0x7f, 0x82, 0xdc, 0x04, 0x04,
+ 0xc6, 0x6f, 0x06, 0x8e, 0x11, 0x70, 0xbd, 0x04, 0xfa, 0x0e, 0x32, 0xfb,
+ 0x36, 0xa1, 0x41, 0x45, 0xe0, 0x7e, 0xd1, 0x83, 0x93, 0x5e, 0xcc, 0xc2,
+ 0xd6, 0xca, 0x5a, 0x49, 0xe7, 0xd5, 0x5a, 0xb7, 0xad, 0x94, 0x00, 0x82,
+ 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
+ 0x12, 0x00, 0x05, 0x10, 0x20, 0x00, 0x18, 0x01, 0x14, 0xe5, 0xfd, 0x59,
+ 0x21, 0xde, 0xaa, 0x17, 0x12, 0xde, 0x5d, 0x42, 0x6c, 0x29, 0xcf, 0x5c,
+ 0xa2, 0x65, 0xb7, 0x02, 0x43, 0x02, 0x4d, 0xb4, 0xeb, 0x53, 0xd4, 0x71,
+ 0x73, 0xbf, 0xfd, 0x08, 0x3e, 0x22, 0x43, 0x6b, 0xe5, 0x7e, 0xd2, 0xdd,
+ 0x78, 0xc5, 0xb7, 0xaf, 0xb1, 0x94, 0x38, 0x45, 0xbc, 0xf3, 0x28, 0x3a,
+ 0x57, 0xdc, 0xde, 0xf2, 0x83, 0x1e, 0x48, 0x63, 0x7d, 0xd2, 0x43, 0x40,
+ 0x82, 0x37, 0x2c, 0x4d, 0x44, 0xe2, 0xe8, 0xf2, 0x64, 0x30, 0x75, 0x6b,
+ 0x57, 0xe6, 0x92, 0xba, 0xf7, 0x07, 0x28, 0x78, 0x40, 0xdb, 0xdb, 0x63,
+ 0x72, 0x01, 0xd8, 0x1f, 0x51, 0xb5, 0x08, 0x77, 0xbd, 0x03, 0x0f, 0x00,
+ 0x6d, 0xac, 0x8a, 0x54, 0x81, 0x63, 0x39, 0xee, 0x08, 0x58, 0x9d, 0x71,
+ 0x13, 0x4c, 0x11, 0x21, 0x61, 0x37, 0xa4, 0xc4, 0x36, 0xe5, 0xbb, 0xd6,
+ 0x45, 0x5e, 0x5e, 0x5e, 0x7e, 0x9c, 0x25, 0x0d, 0xf9, 0x53, 0xe4, 0x12,
+ 0x0e, 0xf0, 0xdc, 0xc8, 0x39, 0x41, 0xce, 0xf9, 0xbd, 0x25, 0x2a, 0xb6,
+ 0xf6, 0x00, 0x5c, 0xfb, 0x5f, 0x51, 0x11, 0xdf, 0x8c, 0x67, 0x24, 0xd6,
+ 0x82, 0x51, 0xcb, 0xf6, 0x2d, 0x8f, 0x6a, 0x3d, 0x3c, 0x93, 0x52, 0xbf,
+ 0x5e, 0x6e, 0x1d, 0x18, 0xb4, 0xe9, 0x41, 0x79, 0x6b, 0x05, 0xcc, 0x27,
+ 0x0c, 0xdd, 0xf4, 0x79, 0xc0, 0x50, 0xbf, 0x0a, 0xa1, 0x23, 0xa7, 0x52,
+ 0x17, 0x41, 0x9e, 0x41, 0x11, 0x08, 0xb9, 0x92, 0x27, 0x17, 0x09, 0x96,
+ 0x1e, 0xe3, 0x88, 0xcf, 0xce, 0xe1, 0xa8, 0x52, 0x87, 0xe6, 0x6e, 0x3c,
+ 0x6f, 0x32, 0x0e, 0x84, 0x9b, 0x07, 0x1a, 0xdb, 0x9c, 0x10, 0x07, 0x7f,
+ 0x75, 0x03, 0x1b, 0x80, 0x14, 0xc9, 0x84, 0x1b, 0x9b, 0xaf, 0x90, 0x26,
+ 0xa7, 0xf3, 0x86, 0x81, 0x68, 0x41, 0x8a, 0x09, 0xb5, 0x9a, 0xb9, 0x23,
+ 0xaa, 0x60, 0xfd, 0x64, 0xa7, 0x83, 0x6a, 0x1a, 0x90, 0x1f, 0xdf, 0x26,
+ 0x7a, 0xa2, 0xb6, 0xd0, 0x44, 0xe5, 0x22, 0x26, 0x84, 0x15, 0x0f, 0xeb,
+ 0xa7, 0x71, 0x5a, 0x0b, 0x08, 0x67, 0x74, 0x8e, 0xe8, 0xb3, 0x52, 0xe4,
+ 0xd6, 0xc4, 0x38, 0xa7, 0xdd, 0x52, 0xa1, 0xb0, 0x27, 0x1d, 0x86, 0x98,
+ 0x0d, 0x0e, 0x5c, 0xa4, 0x3d, 0x4c, 0x8f, 0x08, 0x6d, 0xf4, 0x03, 0x2f,
+ 0xc5, 0x62, 0xcd, 0x15, 0x5d, 0x0f, 0xf8, 0xec, 0x59, 0x24, 0x02, 0x98,
+ 0xe3, 0xf7, 0x7c, 0xfb, 0x97, 0x53, 0x8e, 0xeb, 0x78, 0x8a, 0x64, 0x9e,
+ 0xd1, 0x00, 0x2c, 0x46, 0xe3, 0x4f, 0x14, 0x8f, 0xe4, 0x44, 0x04, 0x68,
+ 0x2e, 0x66, 0x54, 0x27, 0x63, 0xff, 0x7e, 0xdf, 0x32, 0x07, 0x2a, 0x25,
+ 0x7f, 0x70, 0xfd, 0x22, 0xaf, 0x1e, 0xb9, 0x6e, 0x2e, 0x9e, 0x64, 0xb5,
+ 0x5f, 0x08, 0xf8, 0x74, 0x7f, 0x63, 0xbd, 0x78, 0x70, 0xfb, 0xf2, 0x50,
+ 0xc8, 0x8d, 0x48, 0x33, 0xaf, 0xa2, 0xdf, 0x3c, 0xb5, 0x7c, 0x8f, 0xea,
+ 0x59, 0x68, 0x5f, 0x0a, 0x3a, 0xd4, 0x4d, 0xbf, 0x83, 0x16, 0x00, 0xd0,
+ 0x43, 0x53, 0xd0, 0x19, 0x30, 0xbb, 0x97, 0xf5, 0x76, 0xd3, 0x60, 0x2b,
+ 0x54, 0x90, 0xc3, 0xcd, 0x32, 0x0f, 0xe3, 0x69, 0x54, 0x71, 0xcd, 0x4d,
+ 0xe9, 0x72, 0x2a, 0x45, 0x10, 0x65, 0x54, 0x11, 0x9e, 0x3a, 0xe5, 0xb6,
+ 0xb0, 0xa1, 0x0f, 0x5f, 0xb0, 0x67, 0x85, 0x47, 0x42, 0xf9, 0xf3, 0xb1,
+ 0xc8, 0x2e, 0xae, 0x31, 0x61, 0xa4, 0xa4, 0xf7, 0xa2, 0x52, 0x22, 0xf5,
+ 0x1b, 0x04, 0x09, 0x43, 0x98, 0x11, 0xb1, 0x2d, 0xe9, 0x38, 0xce, 0xf1,
+ 0x71, 0xa2, 0x91, 0x96, 0x17, 0x3c, 0x18, 0x69, 0x9d, 0x61, 0xc1, 0x30,
+ 0x1c, 0xd7, 0xc6, 0x90, 0xbc, 0xb0, 0x3d, 0x35, 0x35, 0xb7, 0x66, 0x56,
+ 0xc8, 0xc4, 0x03, 0x2d, 0x3d, 0x6a, 0x00, 0xdf, 0x44, 0x14, 0x93, 0x4f,
+ 0xba, 0x84, 0x9f, 0xbd, 0xfe, 0x99, 0xc5, 0x36, 0x53, 0x45, 0x0a, 0x2c,
+ 0x01, 0x02, 0x0f, 0x99, 0x0f, 0x2c, 0x17, 0x49, 0x72, 0xdb, 0xef, 0x68,
+ 0x00, 0x1a, 0x7d, 0x49, 0x7d, 0xd9, 0x71, 0xc8, 0x73, 0x46, 0xff, 0x5d,
+ 0xfb, 0x6d, 0x40, 0x0b, 0x82, 0x02, 0xd3, 0xf9, 0xdc, 0x4b, 0x07, 0x8f,
+ 0x46, 0x3e, 0xbd, 0x56, 0xed, 0x76, 0xde, 0xc0, 0x08, 0x26, 0x31, 0xe5,
+ 0xfc, 0xf1, 0x4f, 0x64, 0xa0, 0x1e, 0xd4, 0x1e, 0x7f, 0xe8, 0x45, 0x85,
+ 0x31, 0xa3, 0xc6, 0x36, 0xd6, 0xea, 0x37, 0x20, 0x59, 0xd2, 0x98, 0x2e,
+ 0x57, 0xdb, 0xc6, 0x65, 0xf8, 0xa8, 0x1d, 0xee, 0xd0, 0x8e, 0x5e, 0x92,
+ 0x9b, 0x39, 0x9f, 0xcb, 0xaf, 0x71, 0xc9, 0x68, 0x5a, 0x6a, 0x40, 0xd0,
+ 0xc5, 0xef, 0x23, 0x67, 0x65, 0x3d, 0xc0, 0xf5, 0xa0, 0x8a, 0x5b, 0xe6,
+ 0xf5, 0x9e, 0x24, 0xb7, 0x91, 0x86, 0x41, 0x5f, 0x1d, 0x73, 0x50, 0x49,
+ 0xd7, 0x63, 0x8e, 0x34, 0xde, 0xfe, 0xa8, 0xe8, 0x44, 0x1d, 0x7b, 0x21,
+ 0x11, 0x89, 0x40, 0x24, 0x5f, 0x71, 0x15, 0xc6, 0x17, 0x9e, 0x9a, 0x5c,
+ 0xfa, 0xb6, 0x8a, 0x8b, 0x5b, 0x6c, 0x6e, 0xa0, 0x6f, 0x52, 0xfd, 0xe3,
+ 0xd5, 0xa0, 0xcc, 0x63, 0x29, 0x75, 0xb3, 0xc0, 0x0f, 0xa3, 0xd0, 0x9e,
+ 0x9e, 0x8e, 0x91, 0x87, 0x06, 0xf1, 0xa8, 0x08, 0xa9, 0x7a, 0x4f, 0x3d,
+ 0x62, 0x40, 0x4e, 0x36, 0xdd, 0xb2, 0x6d, 0x3a, 0x07, 0x00, 0x9a, 0x83,
+ 0xa1, 0x64, 0x2b, 0x5a, 0x16, 0xc3, 0x2b, 0x46, 0xd6, 0xda, 0x3d, 0x9f,
+ 0x5a, 0x68, 0xe1, 0xe8, 0xc4, 0x66, 0xef, 0xb1, 0xaa, 0xac, 0xbc, 0x0d,
+ 0x95, 0x3b, 0x57, 0x23, 0x7a, 0x4d, 0x6f, 0xbb, 0xf8, 0xa7, 0x4a, 0x97,
+ 0xa9, 0xcd, 0x91, 0xb0, 0x22, 0x31, 0xb2, 0xd4, 0x9e, 0x8e, 0xff, 0xe1,
+ 0x58, 0x06, 0x70, 0xcb, 0x12, 0x2b, 0x8a, 0x9e, 0xd8, 0xe0, 0xa2, 0x5e,
+ 0x7b, 0x5b, 0x04, 0x03, 0x78, 0xe2, 0x1b, 0x6e, 0xfa, 0x15, 0x25, 0x63,
+ 0x39, 0xf8, 0x88, 0x70, 0x4d, 0x19, 0x26, 0xaa, 0xa1, 0x1b, 0x5e, 0xec,
+ 0xc7, 0x78, 0xd7, 0x12, 0x69, 0x30, 0x46, 0x8a, 0xa9, 0x2a, 0xf4, 0x50,
+ 0x8f, 0xca, 0xe6, 0x2e, 0xa4, 0x5d, 0x91, 0x9d, 0x9e, 0xdf, 0x1b, 0x30,
+ 0xb1, 0x02, 0xe8, 0x06, 0x61, 0x99, 0x92, 0xcc, 0x99, 0x8a, 0xdb, 0xe6,
+ 0x54, 0x6b, 0x4b, 0xf1, 0xa1, 0x3e, 0xfd, 0xb1, 0x92, 0xca, 0x76, 0x1c,
+ 0x90, 0x59, 0x2b, 0x29, 0x87, 0x31, 0x76, 0x9d, 0x6c, 0xd3, 0x35, 0x8a,
+ 0x38, 0xde, 0xa7, 0x42, 0x82, 0xad, 0x6f, 0xd0, 0xb3, 0xd8, 0x32, 0xfb,
+ 0x7f, 0xa6, 0x14, 0xbf, 0xb1, 0xb8, 0xf2, 0x89, 0x40, 0x58, 0x07, 0x00,
+ 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x15, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x1e, 0xa0, 0xf0, 0x27, 0x05, 0xfd, 0xdf, 0x7a,
+ 0xdf, 0xff, 0xfa, 0xb1, 0x08, 0x89, 0xc1, 0x87, 0xa5, 0x2d, 0x8e, 0xce,
+ 0x45, 0x1c, 0x40, 0x25, 0x19, 0x7c, 0x95, 0xa9, 0x47, 0x4a, 0xa9, 0xe5,
+ 0x60, 0x36, 0x00, 0xb6, 0x0c, 0x05, 0xb6, 0x79, 0xe3, 0x9e, 0x04, 0x9b,
+ 0x21, 0x1e, 0x8f, 0x3b, 0x29, 0xd0, 0x1c, 0xbc, 0xa4, 0x41, 0x90, 0xe6,
+ 0x56, 0x98, 0xe5, 0x9a, 0xd1, 0xa2, 0xd3, 0x10, 0x44, 0x35, 0xee, 0x06,
+ 0xd6, 0x4f, 0x89, 0xb9, 0x3f, 0x97, 0x07, 0x81, 0x29, 0xe6, 0x66, 0x53,
+ 0xdc, 0x80, 0x4a, 0x2f, 0x24, 0x60, 0x39, 0x6e, 0x19, 0x19, 0xf3, 0x18,
+ 0x67, 0xb4, 0x33, 0xb1, 0xab, 0x97, 0xf9, 0x1e, 0x60, 0x19, 0x2d, 0xec,
+ 0xab, 0x25, 0xc8, 0x4d, 0x67, 0x3c, 0x27, 0x4c, 0xbf, 0xd1, 0xb0, 0x3a,
+ 0x44, 0x2c, 0xd3, 0x77, 0xf7, 0xc3, 0xf4, 0x18, 0x80, 0xaf, 0x6d, 0x55,
+ 0x36, 0xf9, 0xa5, 0x26, 0x50, 0xd9, 0xbf, 0xba, 0xa9, 0x18, 0xd7, 0xc1,
+ 0x76, 0x7b, 0xb7, 0x4c, 0x44, 0x48, 0x45, 0x56, 0x24, 0x5b, 0x0d, 0x1c,
+ 0xa5, 0xb6, 0x85, 0x12, 0x1d, 0x80, 0xe4, 0x5d, 0x9a, 0xd6, 0xee, 0x33,
+ 0x5d, 0x08, 0x66, 0x38, 0xd2, 0x55, 0x34, 0x94, 0xe1, 0xe2, 0x36, 0xff,
+ 0x73, 0x2d, 0x8c, 0xf2, 0x7a, 0x02, 0x89, 0xad, 0x32, 0xb7, 0x4f, 0xce,
+ 0xe3, 0x40, 0xb7, 0x84, 0x03, 0x0c, 0xaa, 0x23, 0xa0, 0x4e, 0x27, 0x00,
+ 0xab, 0x94, 0xa0, 0xb1, 0x5e, 0x9f, 0x41, 0x32, 0x30, 0xcf, 0xf5, 0xdc,
+ 0x4a, 0x57, 0x58, 0x99, 0x03, 0x1b, 0x9c, 0xba, 0x17, 0x4f, 0x66, 0xd2,
+ 0xfa, 0x1b, 0x51, 0xfe, 0xc2, 0xb8, 0x1f, 0xf3, 0x2e, 0xaf, 0x81, 0x5e,
+ 0x50, 0x86, 0x07, 0x90, 0xc3, 0x07, 0x9e, 0xec, 0x96, 0x9d, 0xe8, 0xe2,
+ 0x80, 0x59, 0x8f, 0xdf, 0x07, 0xf5, 0xc1, 0xab, 0x2c, 0x7b, 0x64, 0x37,
+ 0x6c, 0x03, 0xac, 0x09, 0x91, 0x3f, 0x42, 0x65, 0x34, 0x96, 0xa0, 0xf9,
+ 0x52, 0x8d, 0x1f, 0x01, 0x70, 0x56, 0xf6, 0xb3, 0x9b, 0x30, 0xc1, 0x81,
+ 0x03, 0xa0, 0xa6, 0x5a, 0xef, 0x7c, 0x78, 0xae, 0x87, 0x3c, 0x37, 0x8d,
+ 0xf2, 0x5b, 0x6f, 0xad, 0x83, 0xec, 0xc1, 0xe6, 0xb7, 0x94, 0x62, 0x52,
+ 0x26, 0x89, 0xd0, 0x0d, 0x93, 0x36, 0x69, 0x11, 0x31, 0x51, 0x74, 0x55,
+ 0xdd, 0x36, 0x1a, 0xf8, 0xd4, 0xe4, 0x72, 0x7b, 0x1a, 0x57, 0x90, 0x9a,
+ 0x89, 0x19, 0x31, 0x44, 0x84, 0xb2, 0xe5, 0xe3, 0x3c, 0x90, 0x73, 0x8e,
+ 0xb3, 0x9b, 0x61, 0x0f, 0xb7, 0xe7, 0x85, 0xe0, 0xb6, 0x19, 0x82, 0x2a,
+ 0x5b, 0xf4, 0x16, 0x51, 0xdc, 0x7f, 0x2b, 0x61, 0xed, 0x95, 0x9c, 0xba,
+ 0x4d, 0xa2, 0x1f, 0x42, 0xc3, 0xb0, 0x93, 0x03, 0xb3, 0x46, 0x6f, 0x84,
+ 0x06, 0x05, 0xe7, 0xaa, 0xfb, 0x0e, 0x97, 0xf6, 0xa9, 0x5d, 0x45, 0xda,
+ 0x2b, 0x70, 0x46, 0x93, 0x32, 0x4f, 0x9c, 0x17, 0xa0, 0x50, 0x74, 0xa7,
+ 0x87, 0xe0, 0x4e, 0xac, 0xc0, 0x1d, 0x3c, 0xcf, 0x67, 0x47, 0x41, 0xdc,
+ 0xe3, 0x8c, 0xc7, 0xfa, 0x89, 0xa5, 0x55, 0x05, 0x39, 0xfc, 0xdf, 0x30,
+ 0x06, 0x34, 0x04, 0xa0, 0xe8, 0xe6, 0xb1, 0xbd, 0x6e, 0xe9, 0xd2, 0x74,
+ 0x76, 0x69, 0xf0, 0x8f, 0xd4, 0x83, 0x88, 0x82, 0xc9, 0xe5, 0xda, 0x6e,
+ 0xdf, 0x7b, 0x72, 0x51, 0xa5, 0x1f, 0xaa, 0x22, 0xb1, 0xa5, 0xf7, 0xe3,
+ 0x60, 0x75, 0xd9, 0x46, 0x5e, 0x5c, 0x9d, 0x6c, 0x76, 0x07, 0x45, 0x7e,
+ 0xe8, 0xee, 0xce, 0x92, 0xa2, 0x6c, 0x8d, 0x45, 0x6c, 0x0a, 0x32, 0x91,
+ 0x40, 0xfa, 0x32, 0x8c, 0x6c, 0x4a, 0x51, 0x06, 0x8e, 0x09, 0xe7, 0xe9,
+ 0xa4, 0x9d, 0x5e, 0xdf, 0x99, 0xd7, 0x40, 0x80, 0xe4, 0x07, 0x51, 0x07,
+ 0x2a, 0xa6, 0x38, 0x68, 0xd8, 0x48, 0x97, 0xda, 0xf4, 0xe7, 0xea, 0xeb,
+ 0x5a, 0xc7, 0xbe, 0x1d, 0xad, 0xba, 0x22, 0x15, 0x8d, 0x8c, 0x77, 0x9e,
+ 0xc7, 0xf3, 0x54, 0x7f, 0xa3, 0x7a, 0x77, 0x58, 0x9d, 0xb8, 0x18, 0xb7,
+ 0x6d, 0x1d, 0x3c, 0x73, 0xbf, 0xb6, 0x89, 0x07, 0x60, 0xc3, 0xa9, 0x9e,
+ 0x15, 0x8a, 0x42, 0xac, 0xd2, 0x10, 0xfd, 0xa1, 0x7a, 0x91, 0x52, 0xc9,
+ 0x07, 0xe0, 0x69, 0xf2, 0x3e, 0xbf, 0x02, 0x21, 0x0a, 0x97, 0xeb, 0xbc,
+ 0x0d, 0x1e, 0x64, 0x51, 0x0c, 0x8a, 0x27, 0xb9, 0x8f, 0xe6, 0xfd, 0x50,
+ 0xae, 0xf9, 0x14, 0x79, 0x89, 0x43, 0x43, 0xba, 0x0f, 0xff, 0xad, 0x2a,
+ 0x0f, 0x46, 0x62, 0x01, 0x02, 0xc1, 0xa6, 0x5e, 0xfb, 0x6f, 0x1c, 0x23,
+ 0x76, 0xfa, 0x9e, 0xb9, 0x23, 0xf5, 0x4e, 0x3d, 0xd9, 0x01, 0x2e, 0x50,
+ 0x22, 0xb1, 0xea, 0xc5, 0x2f, 0xb6, 0x69, 0x79, 0x21, 0x85, 0x6f, 0x2a,
+ 0xac, 0xb8, 0xd3, 0x13, 0xff, 0x42, 0xaa, 0x8d, 0x9e, 0x95, 0x36, 0x77,
+ 0xd1, 0x9b, 0xd0, 0xf6, 0x76, 0x2b, 0x81, 0xca, 0x1f, 0x20, 0x41, 0x22,
+ 0x57, 0x6b, 0xe6, 0x45, 0x55, 0x2b, 0xc9, 0x57, 0x33, 0xf9, 0x89, 0x61,
+ 0x00, 0x35, 0xbb, 0xdb, 0x11, 0x61, 0xad, 0x1d, 0x70, 0x60, 0xcc, 0x63,
+ 0xdb, 0xd2, 0x06, 0x72, 0x13, 0x73, 0x46, 0xfb, 0x1c, 0x2c, 0x83, 0xa4,
+ 0x41, 0x4f, 0x07, 0x69, 0x1f, 0x36, 0x52, 0x6c, 0xb9, 0x8a, 0xb5, 0x61,
+ 0x88, 0x04, 0x92, 0x27, 0x9d, 0x16, 0xa3, 0x87, 0xe1, 0x16, 0x6f, 0x28,
+ 0x05, 0xac, 0xed, 0x8f, 0x72, 0x17, 0xb9, 0x52, 0x67, 0x0e, 0xd3, 0xf9,
+ 0x69, 0x0b, 0xa4, 0xc6, 0xc8, 0x62, 0x90, 0x46, 0x06, 0x05, 0xb0, 0x2c,
+ 0x22, 0xc0, 0xba, 0x77, 0xe3, 0x89, 0x12, 0x5a, 0x5f, 0x8c, 0x27, 0x89,
+ 0xbe, 0x31, 0xb4, 0xe4, 0x7d, 0x66, 0x11, 0x3b, 0x88, 0xfa, 0x5a, 0x9d,
+ 0x77, 0x47, 0x9a, 0xf3, 0x8e, 0x48, 0x62, 0xb0, 0x45, 0x89, 0xc4, 0x1b,
+ 0xc8, 0x3b, 0x83, 0x5d, 0x02, 0x56, 0x82, 0x24, 0xc2, 0xd6, 0xd9, 0x32,
+ 0xea, 0x25, 0x48, 0xe6, 0xae, 0xa1, 0x0e, 0x58, 0x2b, 0x46, 0xa7, 0x23,
+ 0x00, 0x2d, 0x72, 0xad, 0x30, 0x5a, 0x92, 0x0f, 0xb4, 0xa6, 0x0f, 0x9d,
+ 0xb1, 0xb7, 0x71, 0x63, 0x88, 0x35, 0x0c, 0x73, 0xe1, 0x29, 0x24, 0x86,
+ 0x2c, 0xcc, 0x32, 0xc4, 0xdd, 0xbc, 0x92, 0x24, 0x18, 0x1e, 0x5c, 0xe4,
+ 0xee, 0x70, 0xf5, 0x20, 0xdb, 0x92, 0x38, 0x68, 0xa5, 0xf7, 0x73, 0x78,
+ 0xae, 0x65, 0x67, 0xcf, 0x43, 0x5f, 0x21, 0x23, 0x64, 0x91, 0x19, 0xc4,
+ 0x07, 0xb2, 0x00, 0x06, 0x13, 0x29, 0x3d, 0x40, 0x6f, 0x8d, 0xe1, 0x19,
+ 0x5b, 0xfc, 0xee, 0xdd, 0x47, 0x8f, 0x11, 0x3b, 0x90, 0xbb, 0xda, 0x30,
+ 0x29, 0x86, 0x2b, 0xdb, 0x0d, 0x6e, 0x68, 0x7b, 0x1e, 0x75, 0xdc, 0xbc,
+ 0x1a, 0x5c, 0xc8, 0x0d, 0x2f, 0x2b, 0x63, 0xf3, 0xd6, 0x7c, 0xf9, 0x8d,
+ 0x52, 0xbb, 0x1c, 0x8b, 0xce, 0x6b, 0x97, 0xc7, 0x65, 0x72, 0xcb, 0xd2,
+ 0xd0, 0x4c, 0x36, 0xbe, 0x15, 0x79, 0x99, 0x83, 0xdd, 0x9f, 0x4a, 0xbb,
+ 0x5b, 0x78, 0x81, 0x9f, 0xfc, 0x91, 0xc0, 0x2d, 0x62, 0xe7, 0xce, 0xb2,
+ 0xa4, 0x88, 0xe1, 0x9f, 0xcc, 0x65, 0xc3, 0x05, 0x67, 0xaf, 0x84, 0x91,
+ 0x6e, 0x3d, 0x2e, 0x25, 0xfd, 0x10, 0x9c, 0xdc, 0xa3, 0x52, 0x83, 0x46,
+ 0x19, 0x82, 0x00, 0x87, 0xa5, 0xc3, 0x5f, 0x92, 0xda, 0x49, 0xa5, 0x7c,
+ 0x48, 0x29, 0xfd, 0x87, 0x8c, 0x25, 0xfb, 0x05, 0xad, 0xe1, 0xc7, 0x43,
+ 0x06, 0x53, 0x3b, 0xd7, 0x1c, 0xb5, 0xac, 0x14, 0xf6, 0x13, 0x8a, 0x5a,
+ 0xbd, 0x64, 0x5b, 0x2e, 0x23, 0x9f, 0x68, 0x6e, 0x57, 0xc3, 0x6f, 0xf6,
+ 0x2f, 0x95, 0xa1, 0x57, 0x6c, 0xc8, 0x02, 0xa3, 0xd8, 0x57, 0xe6, 0x95,
+ 0x98, 0xc4, 0xf4, 0x51, 0x2e, 0xe4, 0x85, 0x9d, 0x46, 0x2a, 0xe9, 0xd8,
+ 0x09, 0x19, 0xde, 0xb7, 0x70, 0xad, 0x66, 0x80, 0x34, 0x0b, 0x6c, 0x1f,
+ 0xff, 0x36, 0x4d, 0x37, 0x7c, 0xb1, 0xa8, 0xff, 0x59, 0xfc, 0xd4, 0x53,
+ 0x5f, 0xd7, 0x16, 0xde, 0x88, 0x35, 0xb5, 0x88, 0x0f, 0x3b, 0xcc, 0xcb,
+ 0x27, 0x5a, 0xe4, 0x46, 0x9d, 0x87, 0x6b, 0x3b, 0xbd, 0x0b, 0x91, 0xb6,
+ 0x11, 0x22, 0x0d, 0x1a, 0x17, 0xdf, 0x29, 0x72, 0xc1, 0x0e, 0xfb, 0x66,
+ 0x23, 0xa6, 0x35, 0xec, 0xf3, 0x2e, 0x7e, 0x80, 0x62, 0xa7, 0x7f, 0x3d,
+ 0x76, 0xeb, 0xdc, 0x5d, 0x93, 0xb7, 0x79, 0xd7, 0xff, 0x9f, 0x2f, 0x16,
+ 0x97, 0x14, 0x17, 0xfc, 0x12, 0x75, 0x41, 0xd1, 0xd1, 0x81, 0x6b, 0xa0,
+ 0xdd, 0x40, 0xa4, 0x6a, 0x21, 0xf9, 0x13, 0xa2, 0x4c, 0x8b, 0x75, 0x4e,
+ 0x4d, 0xaf, 0x67, 0x28, 0x9d, 0xb4, 0x4e, 0xda, 0x6a, 0x48, 0x9c, 0x70,
+ 0x3b, 0x49, 0x20, 0xcb, 0x72, 0x1c, 0x97, 0x45, 0x73, 0xda, 0xfb, 0x55,
+ 0x96, 0x14, 0x7f, 0x58, 0x16, 0x12, 0xc9, 0x57, 0x8f, 0x4e, 0x88, 0xeb,
+ 0x17, 0x24, 0xbd, 0xae, 0x2c, 0x9a, 0xc9, 0xf8, 0x5b, 0x62, 0x54, 0x6a,
+ 0x93, 0xa2, 0x74, 0x37, 0xde, 0x3e, 0xdc, 0x27, 0x28, 0x26, 0x95, 0xc7,
+ 0xcd, 0xf3, 0x99, 0x60, 0xb4, 0x10, 0xfa, 0xfd, 0x4a, 0xc2, 0xaf, 0x34,
+ 0x55, 0xfc, 0x0c, 0x88, 0x8f, 0xf9, 0x11, 0xce, 0x3f, 0xd7, 0x4e, 0xb0,
+ 0x38, 0x4d, 0x80, 0x92, 0x07, 0x8b, 0x24, 0x13, 0xa4, 0x67, 0xcc, 0x04,
+ 0x69, 0xf9, 0x31, 0xab, 0x34, 0xda, 0xe2, 0xa7, 0x2b, 0x51, 0xb8, 0xc3,
+ 0x12, 0xcd, 0x49, 0x3d, 0x37, 0xfc, 0x55, 0xe4, 0x37, 0xe9, 0x85, 0xad,
+ 0x76, 0xf6, 0x8a, 0x67, 0x3a, 0x17, 0x5d, 0x12, 0x44, 0xc4, 0x6e, 0x31,
+ 0x2c, 0xfe, 0xd9, 0x0c, 0x3e, 0x28, 0x51, 0xb0, 0x2f, 0x1d, 0x46, 0xf7,
+ 0x60, 0x28, 0x68, 0xe8, 0x65, 0xdd, 0x37, 0x19, 0xa2, 0x32, 0xc7, 0x3c,
+ 0x41, 0x12, 0xaf, 0xb3, 0xbc, 0x2a, 0x77, 0x1b, 0xfc, 0xb5, 0xe3, 0xcf,
+ 0x14, 0x2f, 0x06, 0x35, 0x71, 0xd7, 0x62, 0xf6, 0x79, 0x83, 0xf4, 0x8b,
+ 0x9f, 0x23, 0x8f, 0xb9, 0x22, 0x0b, 0x25, 0x8d, 0xa8, 0xa7, 0xab, 0xcc,
+ 0xbd, 0x1b, 0x3e, 0x0e, 0x30, 0xe8, 0x0b, 0x31, 0x61, 0x73, 0x08, 0x47,
+ 0x8c, 0xe6, 0x3c, 0x8e, 0x48, 0x8e, 0x5f, 0xfb, 0x7a, 0xc9, 0x46, 0x76,
+ 0xd3, 0x7c, 0x4b, 0x93, 0xe5, 0x97, 0xc5, 0x68, 0x83, 0x7f, 0xb7, 0x92,
+ 0xf1, 0xad, 0x9d, 0xb0, 0xd3, 0xbb, 0x93, 0x76, 0x70, 0x9e, 0xd6, 0x22,
+ 0xbb, 0x94, 0xf5, 0x75, 0x40, 0x96, 0x06, 0x5e, 0xee, 0xe1, 0xd7, 0x74,
+ 0x88, 0x13, 0xe0, 0x58, 0x91, 0x21, 0x72, 0xf6, 0x1f, 0x9e, 0x40, 0x38,
+ 0x59, 0x45, 0xa8, 0xa5, 0xfe, 0x4c, 0xce, 0xf1, 0x86, 0x69, 0xf8, 0x49,
+ 0x2e, 0xc5, 0xe6, 0x3e, 0xf6, 0x89, 0xb2, 0xe9, 0x6f, 0x11, 0x36, 0xa9,
+ 0xca, 0x95, 0x9c, 0xd4, 0x33, 0xf7, 0xaf, 0xb3, 0x56, 0x03, 0xff, 0xd3,
+ 0x20, 0xbc, 0xcc, 0x79, 0xdc, 0xcc, 0xc2, 0x78, 0x2b, 0x93, 0xa9, 0xc6,
+ 0x43, 0x10, 0x46, 0x34, 0x45, 0x35, 0xc7, 0x63, 0x20, 0x84, 0x9e, 0x89,
+ 0x57, 0xd7, 0x41, 0xed, 0x66, 0x25, 0x3f, 0x7a, 0x6b, 0x84, 0x36, 0x84,
+ 0x66, 0x1f, 0xe5, 0xbb, 0x63, 0x25, 0x6d, 0xb7, 0x6a, 0x9c, 0x72, 0x80,
+ 0x22, 0xbd, 0x1f, 0xc6, 0x59, 0x9a, 0x52, 0xfc, 0x12, 0x08, 0x75, 0x39,
+ 0x8a, 0xaf, 0xfd, 0xdc, 0x4d, 0x02, 0x24, 0xaf, 0xd9, 0x19, 0x61, 0x26,
+ 0xc5, 0x77, 0x38, 0x72, 0x11, 0x1a, 0xb8, 0x0b, 0x0b, 0x5d, 0x20, 0x12,
+ 0xc9, 0x23, 0x7d, 0x9b, 0x25, 0x9d, 0x03, 0x13, 0xc4, 0xed, 0x94, 0x36,
+ 0xf9, 0x2a, 0x1c, 0xaa, 0x0e, 0xe2, 0x5b, 0xd3, 0xad, 0xf2, 0x54, 0x39,
+ 0x54, 0x1d, 0xc4, 0xb7, 0xa7, 0x5b, 0xe4, 0xa8, 0x72, 0xa8, 0x3b, 0x89,
+ 0x6f, 0x4e, 0xb7, 0xc9, 0x50, 0xe5, 0x50, 0x77, 0x12, 0xde, 0x9d, 0x6f,
+ 0x92, 0xa1, 0xca, 0x8c, 0xb9, 0xb5, 0x2d, 0xe9, 0xd9, 0xc3, 0x4e, 0xe2,
+ 0xf8, 0x45, 0xb3, 0xbc, 0xbd, 0x7c, 0x3b, 0x58, 0x5d, 0xc2, 0xd6, 0x37,
+ 0x09, 0x98, 0xa6, 0xcb, 0xc2, 0x04, 0x95, 0x44, 0x03, 0x27, 0x19, 0x41,
+ 0x2f, 0x58, 0xc7, 0x54, 0x50, 0xc4, 0xf2, 0xc6, 0x44, 0xd7, 0x71, 0x7d,
+ 0x72, 0x6b, 0x27, 0x51, 0xbd, 0xb3, 0x2b, 0x09, 0x37, 0xfe, 0x36, 0xe1,
+ 0x7b, 0xec, 0xee, 0x5c, 0xda, 0x8c, 0xc4, 0x19, 0xa8, 0xc0, 0xab, 0x0e,
+ 0x91, 0xc6, 0xc5, 0x8c, 0xee, 0xb3, 0xe7, 0x39, 0x16, 0x81, 0xbf, 0x8d,
+ 0x7e, 0x84, 0xd1, 0x49, 0x49, 0xd8, 0x49, 0x77, 0x6c, 0x2f, 0xfe, 0xdb,
+ 0x3b, 0xa1, 0xbf, 0x2f, 0xd2, 0x33, 0xfc, 0xcd, 0x88, 0xf4, 0xbb, 0xd0,
+ 0x55, 0xc6, 0x85, 0x03, 0xaf, 0xa0, 0x16, 0x06, 0x48, 0x42, 0x03, 0x74,
+ 0x56, 0x42, 0xd0, 0x67, 0xb3, 0x5f, 0xc0, 0x92, 0xda, 0xd1, 0x0b, 0x4a,
+ 0x65, 0x63, 0x07, 0x5f, 0x8a, 0xe6, 0x28, 0x92, 0x23, 0x27, 0xfc, 0xd0,
+ 0x53, 0xdb, 0x3a, 0xbe, 0x7d, 0x66, 0xe0, 0x58, 0xb0, 0x22, 0x48, 0xdb,
+ 0xe3, 0xe1, 0xd7, 0x0b, 0x87, 0x15, 0xf5, 0xda, 0x9f, 0x64, 0xca, 0xad,
+ 0x7e, 0x66, 0x18, 0xb0, 0x2f, 0x4b, 0x78, 0x51, 0xbe, 0x2b, 0xa1, 0x9b,
+ 0x46, 0xbb, 0xf7, 0xad, 0xf8, 0xaa, 0x72, 0x4b, 0xac, 0xea, 0xb8, 0x7a,
+ 0x48, 0x86, 0xb6, 0x19, 0xbc, 0x5f, 0x47, 0x48, 0x37, 0x05, 0x85, 0xfe,
+ 0x43, 0x8b, 0xdb, 0x71, 0x40, 0x1c, 0xf6, 0x3e, 0x12, 0xd0, 0xc2, 0x3a,
+ 0x60, 0x5a, 0xaa, 0x29, 0xbf, 0xc5, 0x64, 0x0f, 0x98, 0x82, 0x37, 0x7e,
+ 0xea, 0xde, 0x54, 0x92, 0x17, 0x85, 0x4c, 0x84, 0x1e, 0x65, 0x07, 0x98,
+ 0xdb, 0x9e, 0x06, 0xc3, 0x61, 0xdd, 0xbb, 0x86, 0xe3, 0x53, 0x07, 0x47,
+ 0xb8, 0x4c, 0xe7, 0x3f, 0x81, 0x0b, 0x8b, 0xa2, 0xd7, 0x6f, 0x00, 0xfe,
+ 0xe3, 0x83, 0x92, 0x98, 0x04, 0xa6, 0x00, 0x69, 0x1b, 0x35, 0x0b, 0xb7,
+ 0x4f, 0x17, 0x43, 0x8c, 0x00, 0xb2, 0x03, 0x00, 0x00, 0x3e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x11, 0x00, 0x04, 0x10, 0x10, 0x00,
+ 0x1e, 0xd7, 0xae, 0x78, 0x25, 0x00, 0x0f, 0xa2, 0x89, 0x61, 0x48, 0xd9,
+ 0x59, 0x67, 0x07, 0x6f, 0x23, 0x69, 0x9d, 0xf5, 0xec, 0x48, 0xeb, 0xf3,
+ 0x26, 0x11, 0x33, 0x0f, 0x5a, 0x27, 0x2f, 0xcc, 0xbd, 0xcb, 0x63, 0xbf,
+ 0x36, 0x5e, 0xbc, 0xf2, 0xb5, 0x54, 0x44, 0xe4, 0x94, 0xed, 0x85, 0xc7,
+ 0xb5, 0x20, 0x6b, 0x34, 0xa3, 0x79, 0x3d, 0x5c, 0x1d, 0xa3, 0x10, 0x82,
+ 0x54, 0x65, 0xbd, 0xee, 0x20, 0x5d, 0x0c, 0xd4, 0xc6, 0x2a, 0xd9, 0x22,
+ 0xc4, 0xab, 0xb1, 0x25, 0xf1, 0x1a, 0x23, 0x27, 0xda, 0xb3, 0xf9, 0x25,
+ 0xfd, 0x03, 0x57, 0xd4, 0xed, 0x82, 0xff, 0x43, 0x1e, 0x15, 0x05, 0xb2,
+ 0x52, 0xe4, 0xc8, 0x6d, 0x47, 0x1a, 0x21, 0xba, 0xcc, 0x5e, 0xc8, 0x5f,
+ 0xda, 0x70, 0xa0, 0xbe, 0x26, 0xc1, 0x4c, 0x5f, 0xf4, 0x7f, 0x78, 0x03,
+ 0xe1, 0x64, 0x97, 0xb3, 0xb2, 0x2a, 0x00, 0x9f, 0xb6, 0x91, 0x68, 0x0e,
+ 0x46, 0x17, 0x5b, 0x97, 0xe0, 0x9e, 0x53, 0xc0, 0x84, 0x4e, 0xe6, 0xbf,
+ 0xca, 0xca, 0x2f, 0x8e, 0xc9, 0xf5, 0x58, 0x6e, 0x4d, 0x61, 0x42, 0x89,
+ 0x7a, 0xaf, 0x5d, 0xfa, 0xbc, 0xf5, 0x7c, 0xe9, 0x15, 0xc6, 0x97, 0x5c,
+ 0x6e, 0xdf, 0x85, 0x60, 0x24, 0xab, 0xf0, 0xb6, 0x87, 0x98, 0xa9, 0x3e,
+ 0x1b, 0x6c, 0x7c, 0xad, 0x36, 0xe7, 0x61, 0x88, 0x04, 0x7c, 0x83, 0xf3,
+ 0xb3, 0x6b, 0xc2, 0xca, 0x38, 0x0f, 0x89, 0xef, 0x5e, 0x7c, 0x79, 0x00,
+ 0xc8, 0x86, 0xca, 0x6a, 0x89, 0xb7, 0xb0, 0x29, 0x63, 0x3e, 0xf3, 0x37,
+ 0x18, 0x99, 0x24, 0x2f, 0xdc, 0x19, 0x94, 0xb3, 0x7c, 0xc3, 0x72, 0x39,
+ 0x8b, 0x49, 0x9d, 0xc0, 0x9b, 0x65, 0x5f, 0x10, 0x1b, 0xc9, 0xa6, 0xc7,
+ 0x4b, 0xdf, 0x0c, 0x46, 0xf9, 0xa4, 0x1e, 0xbf, 0x55, 0x98, 0x29, 0x9f,
+ 0xd9, 0x8a, 0x24, 0xdc, 0x24, 0xa5, 0xb4, 0xa1, 0x69, 0x85, 0x35, 0x74,
+ 0x35, 0x4a, 0x38, 0xbd, 0x55, 0xc9, 0xb0, 0x07, 0xba, 0x1f, 0xed, 0x54,
+ 0x71, 0x9d, 0xf8, 0x12, 0xdc, 0x4e, 0xf5, 0xa4, 0x42, 0x33, 0xf3, 0xe6,
+ 0xec, 0xcc, 0xd0, 0xa1, 0xfd, 0x7d, 0x60, 0x81, 0x48, 0x68, 0xf5, 0x15,
+ 0x9d, 0xc1, 0x8e, 0x2e, 0x5c, 0xc9, 0x90, 0x9f, 0x8b, 0x0d, 0x7a, 0x49,
+ 0x82, 0x49, 0x7e, 0xc5, 0x1b, 0x95, 0x77, 0xe0, 0x83, 0x5d, 0x57, 0xd0,
+ 0x02, 0x39, 0x9a, 0xd6, 0x57, 0x9b, 0xca, 0x11, 0xa7, 0x29, 0xcf, 0xc5,
+ 0xcb, 0xbb, 0x75, 0x6e, 0xf8, 0xb3, 0x7d, 0xa4, 0xb7, 0x00, 0x90, 0xf8,
+ 0x0c, 0x2f, 0x97, 0x42, 0x5b, 0xd6, 0x80, 0xc9, 0xee, 0x97, 0x10, 0xc7,
+ 0x59, 0x59, 0x8d, 0x43, 0xd3, 0x9a, 0x82, 0xb5, 0xdd, 0xc0, 0xf6, 0x5f,
+ 0x26, 0xa5, 0x8f, 0x3f, 0x9a, 0x1b, 0x28, 0x08, 0x7f, 0xbc, 0x1b, 0xd1,
+ 0x2a, 0xfd, 0x69, 0x07, 0xca, 0x75, 0x14, 0x3d, 0xd1, 0xa9, 0xeb, 0x13,
+ 0x42, 0x50, 0xdf, 0x05, 0x06, 0x0e, 0x1b, 0xe2, 0x96, 0xe3, 0xf2, 0x51,
+ 0x6a, 0x42, 0xf5, 0x33, 0x60, 0x72, 0xca, 0xd6, 0x8a, 0x1e, 0xa3, 0xac,
+ 0xa0, 0x8a, 0xe1, 0x8f, 0x81, 0xfe, 0x04, 0x9a, 0x27, 0x6c, 0x78, 0xe8,
+ 0x20, 0x60, 0x8c, 0x20, 0x98, 0xfc, 0x58, 0xf7, 0x84, 0x95, 0xb9, 0x7e,
+ 0xc7, 0x51, 0x55, 0xae, 0x79, 0xa2, 0xa9, 0x66, 0x7d, 0x72, 0x1d, 0xfc,
+ 0x0c, 0x2e, 0x25, 0xd8, 0xae, 0x1e, 0xa2, 0x20, 0x50, 0x87, 0x46, 0xa2,
+ 0x1d, 0xe1, 0x96, 0x73, 0xdf, 0x58, 0x2b, 0x72, 0x69, 0xed, 0x19, 0x10,
+ 0xa9, 0x9a, 0x4e, 0x4d, 0x8f, 0x4c, 0xa5, 0xed, 0xa0, 0x94, 0x12, 0x1e,
+ 0x12, 0x90, 0x95, 0xe6, 0xe4, 0xa2, 0x69, 0x54, 0xde, 0x30, 0x5c, 0x22,
+ 0x6f, 0xca, 0xd2, 0x07, 0x5a, 0x6d, 0xb6, 0x72, 0xfa, 0x17, 0xf0, 0xa6,
+ 0x4a, 0x81, 0x7c, 0x58, 0x3e, 0x88, 0xfc, 0xb9, 0x01, 0xf5, 0x55, 0xde,
+ 0x5f, 0x51, 0x18, 0x57, 0x40, 0x85, 0x56, 0x8f, 0xef, 0xe4, 0xcf, 0xa2,
+ 0x30, 0x9f, 0x34, 0x3a, 0xc3, 0xed, 0x03, 0xe6, 0xfa, 0xe3, 0xf7, 0x8e,
+ 0x11, 0xf9, 0xfa, 0x5a, 0x18, 0x43, 0xf2, 0x2f, 0x0d, 0x31, 0xcf, 0x92,
+ 0x24, 0x66, 0x1c, 0xc4, 0x3d, 0xd5, 0x55, 0xd0, 0x9e, 0xfc, 0x01, 0x37,
+ 0xe0, 0x53, 0x22, 0xf0, 0x93, 0x61, 0xb0, 0xe2, 0xc3, 0x10, 0x52, 0x24,
+ 0x0a, 0xbe, 0x7a, 0xaf, 0x86, 0xf6, 0xde, 0x36, 0x02, 0xd5, 0x05, 0x95,
+ 0x7a, 0x87, 0xaf, 0xf0, 0x36, 0x7f, 0xac, 0xac, 0x86, 0x88, 0x9c, 0xbe,
+ 0x46, 0x93, 0xa9, 0x76, 0xe2, 0x8c, 0x87, 0x51, 0x8c, 0xd4, 0x8f, 0x86,
+ 0x21, 0xee, 0x16, 0x51, 0x53, 0xaa, 0x84, 0xa4, 0x62, 0x22, 0xed, 0x23,
+ 0x97, 0x7c, 0x7b, 0x1f, 0xb3, 0x0f, 0x5a, 0x28, 0xe0, 0xfd, 0xdb, 0xc8,
+ 0x64, 0xd1, 0xf1, 0x77, 0xdb, 0x76, 0xea, 0xb2, 0x70, 0x04, 0x72, 0xf1,
+ 0xba, 0xe5, 0xa1, 0xb7, 0x99, 0xe2, 0xea, 0x50, 0x07, 0x58, 0x6d, 0xed,
+ 0x0a, 0xc0, 0x59, 0x65, 0xf8, 0xee, 0x5b, 0xa7, 0x79, 0x62, 0xbe, 0x8f,
+ 0xf8, 0x63, 0x69, 0x50, 0x56, 0xe4, 0x15, 0x0a, 0x7c, 0xc6, 0xc9, 0x2b,
+ 0xef, 0x39, 0xfe, 0xfb, 0x9b, 0x57, 0x0a, 0x36, 0x10, 0x71, 0x65, 0xd4,
+ 0x31, 0xd7, 0x15, 0xa9, 0x3d, 0xef, 0xee, 0xe5, 0xac, 0x86, 0x62, 0x1e,
+ 0xbe, 0x42, 0x1c, 0xd2, 0x19, 0x8a, 0x95, 0xd9, 0xaf, 0x1b, 0x83, 0x30,
+ 0xd2, 0xdc, 0xe3, 0xec, 0xd6, 0x50, 0x9f, 0x98, 0x6f, 0xbf, 0x39, 0x38,
+ 0xa3, 0xe4, 0x5a, 0x9d, 0xfa, 0x48, 0xb2, 0x76, 0xc2, 0x0f, 0x06, 0x18,
+ 0xa9, 0xb5, 0xf7, 0xa5, 0xc6, 0x79, 0xda, 0x48, 0xbd, 0x92, 0x8e, 0x35,
+ 0xc3, 0x55, 0x6f, 0xc3, 0x34, 0xa9, 0x0b, 0xb0, 0xad, 0xbd, 0xaf, 0x7f,
+ 0xcb, 0x2a, 0x63, 0x1d, 0xf8, 0x04, 0x87, 0x0a, 0x76, 0x89, 0xb7, 0x76,
+ 0xd9, 0x1d, 0xc3, 0x70, 0x50, 0x00, 0x1f, 0x53, 0xc8, 0xb5, 0xfb, 0x90,
+ 0x60, 0x39, 0x90, 0x0f, 0x62, 0xf0, 0x67, 0x7d, 0xc6, 0x05, 0xc0, 0xba,
+ 0x9e, 0x31, 0xcd, 0xef, 0x0b, 0x60, 0xf2, 0xb6, 0x77, 0x74, 0x78, 0x98,
+ 0x3c, 0x54, 0x8d, 0xcd, 0xc1, 0x40, 0x85, 0xf1, 0x10, 0x69, 0xd1, 0x88,
+ 0x6e, 0x24, 0xfd, 0x38, 0xa8, 0x25, 0x0a, 0xd5, 0x7b, 0x3f, 0x95, 0xd5,
+ 0x4e, 0x39, 0xa3, 0xb8, 0x2a, 0x72, 0x6b, 0xee, 0x28, 0x4e, 0x0a, 0xf4,
+ 0x57, 0x18, 0x4c, 0x21, 0xe9, 0x56, 0xb7, 0xa5, 0x5a, 0xde, 0x95, 0x6b,
+ 0x7c, 0xad, 0x4c, 0x0d, 0x33, 0xac, 0xde, 0x06, 0x8e, 0x9c, 0xb1, 0xe3,
+ 0x44, 0x8d, 0x6b, 0x1b, 0x0a, 0xaf, 0x3b, 0x19, 0xa4, 0xd9, 0xf2, 0xfc,
+ 0xa1, 0xfb, 0x9d, 0xa3, 0x2d, 0xae, 0x66, 0x56, 0x82, 0xbf, 0x16, 0xe1,
+ 0x52, 0x4b, 0x2f, 0xed, 0x99, 0xa3, 0x89, 0xfa, 0xcb, 0x67, 0x15, 0x25,
+ 0xf9, 0xc9, 0x33, 0x6c, 0x2d, 0xec, 0x08, 0x9b, 0x89, 0x55, 0x16, 0x44,
+ 0xbf, 0x22, 0x20, 0xde, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x0d, 0x00, 0x05, 0x10, 0x10, 0x00, 0x19, 0x19,
+ 0xfb, 0x8d, 0xb0, 0x01, 0xcc, 0x83, 0xdf, 0x3e, 0x3c, 0xc8, 0x97, 0xe4,
+ 0x3a, 0x41, 0x2a, 0xc0, 0x5b, 0x62, 0x6e, 0x4c, 0xc3, 0x55, 0xd1, 0xd8,
+ 0x51, 0xc9, 0xb2, 0x63, 0xc2, 0x16, 0xd1, 0x6f, 0xc3, 0x30, 0xec, 0xb2,
+ 0x27, 0xf5, 0x34, 0x93, 0x15, 0x1c, 0xf8, 0x0a, 0xad, 0x02, 0x07, 0x90,
+ 0x8a, 0x62, 0xac, 0x7e, 0x28, 0xa4, 0xb3, 0xa9, 0xca, 0x52, 0x1f, 0xca,
+ 0x26, 0x77, 0x04, 0xfa, 0x2f, 0x49, 0x3a, 0x00, 0xe3, 0xc9, 0x61, 0x65,
+ 0xb5, 0xde, 0x92, 0xf2, 0x80, 0x14, 0x94, 0xf2, 0xa4, 0xb6, 0xb7, 0x82,
+ 0x9c, 0x74, 0xd6, 0xe6, 0x27, 0x4d, 0x11, 0x2b, 0x02, 0x3c, 0x5d, 0x56,
+ 0x37, 0xf9, 0x5e, 0xe5, 0x7c, 0x80, 0xa8, 0x98, 0xe4, 0x2e, 0x3d, 0xb5,
+ 0xd5, 0x72, 0xff, 0xc9, 0xb6, 0xfb, 0x54, 0x53, 0xdb, 0x76, 0xcc, 0x24,
+ 0x2a, 0xb3, 0x5f, 0xe5, 0xa5, 0x0c, 0xc1, 0x52, 0x11, 0xd4, 0x89, 0xd5,
+ 0x09, 0x40, 0x06, 0xe9, 0x88, 0xc0, 0x2b, 0x44, 0xc6, 0xfb, 0x61, 0x87,
+ 0x06, 0x1c, 0xc5, 0x27, 0xbb, 0x33, 0x53, 0xce, 0x55, 0x27, 0x3c, 0x13,
+ 0x2a, 0xd9, 0x54, 0xb8, 0x6c, 0x3c, 0xaa, 0xa1, 0x4b, 0x2a, 0xde, 0xac,
+ 0xff, 0x01, 0x68, 0xb8, 0x7c, 0xb6, 0x3e, 0x6c, 0x2b, 0x67, 0x68, 0xf0,
+ 0x13, 0x37, 0x82, 0x6d, 0xad, 0x50, 0x03, 0x4e, 0x1e, 0x9f, 0x6a, 0x1f,
+ 0x2a, 0xce, 0x35, 0x98, 0x28, 0x19, 0x9c, 0xe0, 0xa1, 0xdf, 0xbf, 0x3d,
+ 0x01, 0xcd, 0x1e, 0x2b, 0x19, 0x07, 0x3e, 0x3a, 0xb6, 0x87, 0x7d, 0x45,
+ 0xcf, 0x38, 0x9b, 0xa7, 0x76, 0x3f, 0x43, 0xd8, 0x33, 0x7b, 0xf3, 0xcd,
+ 0x04, 0xfe, 0x25, 0x9c, 0x43, 0x2c, 0xb4, 0x45, 0x10, 0xbd, 0x0a, 0x9a,
+ 0xfd, 0x6e, 0x44, 0x3d, 0xdf, 0x8e, 0x29, 0x66, 0x23, 0x43, 0xb0, 0xe5,
+ 0xe6, 0x58, 0x06, 0x07, 0x84, 0x5e, 0x5f, 0x7a, 0xde, 0xd8, 0xb4, 0xc3,
+ 0x6a, 0xe1, 0xe9, 0x31, 0x23, 0xda, 0x19, 0x48, 0xd1, 0xf5, 0x8b, 0x34,
+ 0xc6, 0x5a, 0x0f, 0x1c, 0xee, 0xa3, 0x3a, 0xc2, 0x75, 0x20, 0xc5, 0x17,
+ 0xb9, 0x71, 0x96, 0x01, 0x45, 0x0e, 0x8c, 0xaf, 0x81, 0x5a, 0xd6, 0xce,
+ 0x84, 0x73, 0xe7, 0xf8, 0xba, 0x61, 0x32, 0xa8, 0x9d, 0x50, 0x14, 0x7d,
+ 0xe3, 0xe2, 0xd8, 0x56, 0x39, 0x8a, 0x2d, 0xe6, 0x4e, 0xbe, 0x0d, 0x0a,
+ 0x60, 0xb2, 0xaf, 0xe7, 0xe0, 0x29, 0x64, 0xd7, 0xd6, 0x32, 0x04, 0x60,
+ 0x10, 0x58, 0xcf, 0xcf, 0x96, 0xd4, 0x7f, 0xa9, 0x11, 0x72, 0x86, 0x67,
+ 0x17, 0x90, 0xc5, 0xff, 0x35, 0x51, 0xf6, 0x8c, 0xd1, 0x84, 0xea, 0x11,
+ 0x3e, 0xd7, 0x1f, 0xb9, 0x21, 0x6d, 0x60, 0xab, 0x67, 0xe5, 0x5c, 0x56,
+ 0xae, 0x3f, 0x64, 0xa3, 0xd4, 0x63, 0x42, 0xd1, 0x8a, 0x54, 0x2a, 0x64,
+ 0xfe, 0xf0, 0xd6, 0xf2, 0xac, 0xa3, 0xa6, 0xaa, 0xe2, 0x50, 0x51, 0x2c,
+ 0xf3, 0x94, 0x4b, 0xf1, 0x3a, 0x47, 0x92, 0x9f, 0xb0, 0x0d, 0xd6, 0x8c,
+ 0x31, 0x80, 0x37, 0xa4, 0x79, 0x8d, 0xd3, 0xd3, 0x0d, 0x76, 0xe7, 0xa5,
+ 0x03, 0xda, 0xb0, 0x13, 0xf5, 0x13, 0x0d, 0xa3, 0x85, 0x5a, 0x79, 0x02,
+ 0x20, 0xb2, 0x6b, 0x9b, 0x91, 0x75, 0xf7, 0xe8, 0x02, 0x84, 0xf8, 0x17,
+ 0xb2, 0xf6, 0xab, 0x52, 0x29, 0x79, 0x3a, 0x64, 0x4b, 0x79, 0x0d, 0xd9,
+ 0x93, 0x88, 0x62, 0x60, 0x42, 0x8e, 0xcf, 0xc7, 0xc3, 0x22, 0x04, 0xcb,
+ 0xe3, 0x62, 0x90, 0xd8, 0x36, 0x13, 0x26, 0xe9, 0x92, 0xd3, 0x19, 0xee,
+ 0x53, 0x36, 0xfd, 0x74, 0xec, 0x47, 0x9e, 0xda, 0x0f, 0xe3, 0x40, 0x03,
+ 0x17, 0x1b, 0xfd, 0x9d, 0x7a, 0xf3, 0x88, 0x19, 0x8a, 0xad, 0x6c, 0x9f,
+ 0xf9, 0xe8, 0xc4, 0x23, 0xca, 0x85, 0x04, 0x1c, 0xdb, 0xeb, 0x18, 0x88,
+ 0xd6, 0x74, 0x29, 0x15, 0x1e, 0xa6, 0x93, 0x7f, 0xa0, 0x2d, 0x70, 0x2b,
+ 0x16, 0xde, 0xf4, 0xd0, 0x56, 0x7b, 0xca, 0x95, 0x15, 0x3d, 0x6f, 0xfd,
+ 0x74, 0x57, 0x18, 0x32, 0x34, 0x58, 0x51, 0xf9, 0xac, 0x5a, 0xda, 0xf3,
+ 0x92, 0x1d, 0x66, 0x5b, 0x87, 0x18, 0x13, 0xd1, 0x54, 0xa0, 0x19, 0x7c,
+ 0x9b, 0x26, 0xc0, 0xd7, 0x28, 0x5b, 0x61, 0x65, 0xb2, 0xd3, 0x7c, 0x70,
+ 0xa6, 0xc9, 0x34, 0xd2, 0xcc, 0x7d, 0xcd, 0xa4, 0xeb, 0xb6, 0x41, 0x74,
+ 0x4f, 0xf2, 0xd2, 0x62, 0x0e, 0xef, 0x02, 0xa1, 0xda, 0x5a, 0x1a, 0x89,
+ 0xe2, 0xf0, 0xed, 0x38, 0x7d, 0x0e, 0x87, 0x24, 0x32, 0x52, 0x31, 0x85,
+ 0x25, 0x2d, 0xcc, 0x76, 0x70, 0x35, 0xff, 0x6f, 0x69, 0x4e, 0x86, 0xa8,
+ 0xa5, 0xf3, 0x95, 0xf3, 0x14, 0x82, 0x77, 0xbc, 0xb3, 0x3c, 0xc5, 0x9e,
+ 0xa7, 0xed, 0xf1, 0x62, 0xe8, 0x32, 0x11, 0xd7, 0x8a, 0xc1, 0xee, 0x79,
+ 0x70, 0xa8, 0x5f, 0x77, 0x82, 0x44, 0xdf, 0x75, 0xc9, 0xca, 0x44, 0xdc,
+ 0xc1, 0x6c, 0x82, 0x21, 0x31, 0x9a, 0x46, 0x30, 0x62, 0x60, 0x81, 0x23,
+ 0xd7, 0x70, 0xfb, 0xae, 0x60, 0x15, 0x48, 0x3a, 0xf7, 0x3b, 0xa5, 0x23,
+ 0x4e, 0xa0, 0x8f, 0x7b, 0x6f, 0x45, 0x47, 0xb4, 0x84, 0x12, 0x84, 0xa2,
+ 0x10, 0x3f, 0x1e, 0xf8, 0xba, 0x6f, 0x12, 0x87, 0xd6, 0x26, 0xa1, 0x5f,
+ 0x4b, 0xff, 0x14, 0x4b, 0xcd, 0x7f, 0x98, 0x46, 0x10, 0x44, 0xd1, 0xf8,
+ 0x2f, 0xeb, 0xab, 0x8c, 0x00, 0x36, 0x05, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x1b, 0x00, 0x14, 0x10, 0x80, 0x00,
+ 0x1e, 0xca, 0x81, 0xbe, 0xbe, 0x64, 0x0b, 0xe0, 0x63, 0x2f, 0xb3, 0x96,
+ 0x3e, 0x3c, 0x35, 0x6c, 0x0c, 0xa8, 0x74, 0x1d, 0xfc, 0xcb, 0x87, 0xdd,
+ 0xf9, 0x14, 0x4d, 0x16, 0x16, 0x9e, 0xaf, 0xfb, 0x3f, 0x1d, 0x2f, 0x62,
+ 0xcf, 0xcc, 0x89, 0x2b, 0x62, 0xde, 0xf0, 0x4f, 0xfc, 0x10, 0x87, 0xa2,
+ 0x92, 0x68, 0x21, 0x29, 0x29, 0x7b, 0xb3, 0x11, 0x5a, 0xa0, 0xfe, 0xde,
+ 0xb3, 0xe6, 0xa8, 0xc2, 0x10, 0x24, 0xec, 0x1c, 0x34, 0x34, 0xa2, 0xa4,
+ 0x10, 0xc2, 0x09, 0x43, 0xb6, 0xca, 0x76, 0x1a, 0x7f, 0x5a, 0x65, 0x9d,
+ 0xa3, 0xf7, 0x0e, 0x9d, 0xb7, 0x89, 0xff, 0x25, 0x18, 0x6f, 0x35, 0x05,
+ 0xf1, 0x57, 0xad, 0x88, 0x17, 0x28, 0xb6, 0x15, 0x4e, 0x42, 0x8b, 0xc2,
+ 0x70, 0xcb, 0xde, 0x31, 0x13, 0x74, 0x9e, 0x51, 0xf6, 0x6a, 0xd7, 0x10,
+ 0xb2, 0x8a, 0x23, 0x9e, 0x84, 0xda, 0x8f, 0x95, 0x53, 0x2a, 0x48, 0x3d,
+ 0xa4, 0xa9, 0x9b, 0xeb, 0xa4, 0xb3, 0x90, 0xea, 0xc9, 0xa7, 0x14, 0xc3,
+ 0x54, 0x91, 0x16, 0x18, 0x67, 0x30, 0x7a, 0xa0, 0xfc, 0x82, 0x4b, 0x1a,
+ 0x20, 0xa2, 0xeb, 0x4c, 0x44, 0x44, 0x44, 0x44, 0x44, 0x42, 0x3a, 0x45,
+ 0x00, 0x25, 0x99, 0x09, 0x50, 0xf1, 0xb4, 0x38, 0x3b, 0xf6, 0x8b, 0x85,
+ 0xc2, 0x5c, 0x04, 0x53, 0x3d, 0xed, 0x87, 0x42, 0xa3, 0x19, 0x69, 0x67,
+ 0x05, 0x76, 0x67, 0xd3, 0x4a, 0x77, 0xc2, 0xeb, 0xe5, 0x7f, 0xe5, 0x77,
+ 0x60, 0xbf, 0x4c, 0x42, 0xe0, 0x4c, 0xd8, 0x00, 0xab, 0x8e, 0x00, 0x43,
+ 0x91, 0xac, 0xa5, 0x77, 0xfa, 0x43, 0xfd, 0x14, 0x32, 0x2e, 0xfa, 0xa6,
+ 0xe7, 0x79, 0x85, 0xc0, 0xae, 0x38, 0x2b, 0x25, 0xdf, 0x45, 0x32, 0xd9,
+ 0x57, 0xe7, 0xfa, 0xc9, 0x96, 0x3e, 0x8b, 0xa7, 0x7a, 0x57, 0x04, 0x7d,
+ 0x33, 0xed, 0xd7, 0xbc, 0xc6, 0xbe, 0x73, 0x8d, 0x77, 0x18, 0xee, 0xad,
+ 0xbd, 0xcf, 0xde, 0x87, 0x40, 0x56, 0x38, 0x85, 0x0b, 0xba, 0x6d, 0x4c,
+ 0xa1, 0x41, 0x6f, 0x0c, 0x75, 0xa5, 0x60, 0x24, 0x79, 0x7c, 0x9a, 0xcf,
+ 0xb6, 0xe3, 0x39, 0x7f, 0xd1, 0x29, 0x20, 0x3f, 0x46, 0xbd, 0x83, 0x16,
+ 0x75, 0x59, 0x86, 0x94, 0x4d, 0xeb, 0x4c, 0xee, 0xce, 0x83, 0x0d, 0x95,
+ 0x16, 0x17, 0xb2, 0xf8, 0x22, 0x9e, 0x9e, 0x35, 0xb2, 0xe3, 0x7d, 0xbe,
+ 0x14, 0x7a, 0xc6, 0x93, 0x03, 0xdb, 0xc4, 0xe5, 0x1e, 0x24, 0x5f, 0x4a,
+ 0x6f, 0x58, 0x47, 0x08, 0x0b, 0x07, 0xef, 0x37, 0x54, 0x6a, 0x43, 0x9c,
+ 0xaf, 0x06, 0x86, 0xbc, 0xb3, 0xae, 0xc9, 0x29, 0x2f, 0x25, 0xb0, 0x6a,
+ 0x48, 0xe2, 0x18, 0x67, 0x8c, 0x91, 0xa6, 0x63, 0xbd, 0x93, 0x05, 0xad,
+ 0xc1, 0x52, 0x36, 0xbf, 0x35, 0x29, 0x99, 0x64, 0x15, 0x7b, 0x64, 0x3a,
+ 0xf8, 0x72, 0x1f, 0x51, 0x7f, 0x1f, 0x14, 0x8f, 0x48, 0x53, 0xe6, 0x86,
+ 0xe6, 0xb1, 0xaf, 0x17, 0x13, 0xb2, 0xf0, 0x0c, 0x40, 0x2a, 0xfc, 0x2b,
+ 0x2a, 0xed, 0x02, 0x76, 0x5a, 0xbb, 0x83, 0x5f, 0x6b, 0x58, 0x18, 0xc2,
+ 0x91, 0xcb, 0x77, 0xdb, 0xa9, 0xeb, 0x33, 0x91, 0x39, 0xc7, 0x92, 0x64,
+ 0x95, 0x92, 0x89, 0x21, 0xb6, 0xf2, 0x00, 0x58, 0x51, 0x8e, 0x67, 0x20,
+ 0xda, 0xb5, 0x87, 0xfb, 0xe2, 0xd2, 0x74, 0xcc, 0x41, 0xea, 0x26, 0x0b,
+ 0x40, 0x59, 0xe4, 0x55, 0xee, 0x81, 0xd2, 0x71, 0xe6, 0x31, 0xe1, 0x02,
+ 0x2b, 0x49, 0xd5, 0xcf, 0xcd, 0x5c, 0x97, 0x49, 0x81, 0x6e, 0xee, 0x80,
+ 0xa1, 0x3d, 0x79, 0x07, 0x4e, 0x7a, 0x6e, 0xdc, 0xf6, 0x7b, 0xcf, 0xf7,
+ 0xcf, 0x13, 0x18, 0xa0, 0x91, 0x0e, 0xef, 0x7c, 0x78, 0x2b, 0x23, 0x86,
+ 0xd0, 0x8c, 0x94, 0x72, 0x1b, 0x31, 0x1a, 0xa5, 0x4b, 0x4b, 0xe9, 0xba,
+ 0xd7, 0x30, 0xe9, 0x46, 0xaa, 0x2a, 0xdf, 0x4a, 0x63, 0xc4, 0x0f, 0x35,
+ 0x43, 0x28, 0x47, 0x6a, 0x71, 0x30, 0xaa, 0x9e, 0x83, 0x7c, 0x2e, 0x8a,
+ 0x75, 0x18, 0x47, 0xd4, 0x18, 0x85, 0xcc, 0x1f, 0xb4, 0xdd, 0xdb, 0xba,
+ 0x31, 0x92, 0xcd, 0x1a, 0x92, 0x21, 0xfa, 0xc2, 0x66, 0x19, 0x01, 0xf1,
+ 0xeb, 0x1a, 0x47, 0xba, 0xda, 0xdf, 0x63, 0xef, 0xc8, 0x1b, 0xd4, 0x76,
+ 0x87, 0xdb, 0x4f, 0x7c, 0xae, 0x2a, 0x79, 0x79, 0xb7, 0xd5, 0xe0, 0xc5,
+ 0xdc, 0x88, 0x54, 0xb0, 0x2e, 0x1a, 0x69, 0xff, 0xc5, 0x9d, 0xb9, 0x27,
+ 0x3c, 0x16, 0x2d, 0xf3, 0x14, 0xbc, 0x6b, 0x5f, 0x71, 0xb5, 0xb4, 0xf8,
+ 0x2d, 0xf6, 0x03, 0x22, 0xfc, 0xf1, 0x77, 0x82, 0x6a, 0x09, 0xcc, 0x30,
+ 0x92, 0x4f, 0xbb, 0x47, 0xb1, 0x87, 0x48, 0x1d, 0xb6, 0x77, 0x8e, 0x89,
+ 0xf9, 0xb6, 0xcd, 0xa1, 0x03, 0x9e, 0x26, 0x16, 0xb2, 0x51, 0xb0, 0x37,
+ 0x1e, 0xcd, 0x42, 0x0b, 0xb8, 0x3a, 0x46, 0x42, 0x15, 0x79, 0x33, 0x5a,
+ 0xa4, 0x03, 0xff, 0x1a, 0x3c, 0x02, 0x05, 0x77, 0x86, 0xb4, 0xd6, 0xb8,
+ 0xe4, 0x8a, 0xbd, 0xde, 0x66, 0x3c, 0x4c, 0x8a, 0xbb, 0x80, 0x7d, 0xf6,
+ 0x08, 0x50, 0x2e, 0x90, 0xb3, 0xf0, 0x15, 0x17, 0xe0, 0x0a, 0xc3, 0xa5,
+ 0xc4, 0xeb, 0xb0, 0x53, 0x4f, 0xce, 0x39, 0xa9, 0x74, 0xbb, 0x9b, 0x14,
+ 0x62, 0xa8, 0x7d, 0x65, 0x25, 0x78, 0x2f, 0xdb, 0x30, 0xc9, 0xa3, 0x12,
+ 0x39, 0x74, 0x36, 0x45, 0xc6, 0x12, 0xeb, 0x3d, 0x49, 0x10, 0x5a, 0x69,
+ 0xec, 0xbf, 0x44, 0x7f, 0x0c, 0xff, 0xc6, 0x17, 0xdb, 0xb6, 0xc2, 0x99,
+ 0x0b, 0x93, 0x71, 0xea, 0x66, 0x31, 0x4e, 0x56, 0x8d, 0x21, 0xde, 0xb0,
+ 0x12, 0x29, 0xeb, 0xc2, 0x81, 0xd0, 0xe4, 0x7b, 0x07, 0x1f, 0x64, 0x96,
+ 0xd7, 0xbd, 0xa9, 0xf2, 0x30, 0x7d, 0x82, 0x42, 0x19, 0x62, 0xe4, 0xfc,
+ 0x9d, 0x90, 0x92, 0x13, 0xdb, 0x74, 0x9e, 0x39, 0xa9, 0x3c, 0x5d, 0xaa,
+ 0xbc, 0x55, 0x3e, 0x7d, 0x8a, 0x49, 0x85, 0xee, 0x61, 0xf0, 0xcf, 0x6b,
+ 0x8d, 0xfb, 0x89, 0xac, 0x6a, 0xbe, 0xb2, 0xc3, 0x63, 0x74, 0xd2, 0xf5,
+ 0xb1, 0x98, 0xea, 0x03, 0xdf, 0x22, 0x03, 0x01, 0x24, 0xcd, 0xc5, 0x57,
+ 0x5a, 0xa5, 0x2c, 0x61, 0xe4, 0x06, 0x0f, 0x7e, 0x85, 0x83, 0xc1, 0xac,
+ 0x12, 0xe7, 0x2b, 0xfd, 0xbd, 0x26, 0xf0, 0xca, 0x7c, 0x21, 0x42, 0x2b,
+ 0xe6, 0x53, 0xe6, 0x27, 0xdb, 0xd8, 0xba, 0xb2, 0x68, 0xbe, 0x81, 0x97,
+ 0xf3, 0x49, 0x16, 0x4c, 0x2c, 0x60, 0xc1, 0x4e, 0x65, 0xbe, 0xb9, 0xe6,
+ 0xb5, 0xb9, 0x24, 0xc5, 0x2e, 0x7a, 0xaa, 0xa1, 0x1b, 0x63, 0xa9, 0x14,
+ 0x30, 0xaa, 0x50, 0xae, 0xb6, 0xee, 0x0a, 0x3c, 0x41, 0xd9, 0x39, 0xb0,
+ 0xd3, 0x01, 0x49, 0xb6, 0x58, 0x86, 0xb4, 0x6b, 0x0e, 0x31, 0x0e, 0x34,
+ 0xe0, 0x0b, 0x21, 0x14, 0x2f, 0xf1, 0xf2, 0xe1, 0xbc, 0x7f, 0xd0, 0xa6,
+ 0xe8, 0x15, 0x59, 0xa3, 0x2c, 0x76, 0xb1, 0xa9, 0x94, 0xc0, 0xd7, 0xc6,
+ 0x9f, 0xae, 0xc9, 0x67, 0x36, 0x53, 0x1b, 0x68, 0xcb, 0x82, 0x4a, 0x40,
+ 0xee, 0xfa, 0x90, 0x70, 0xa7, 0x94, 0xd6, 0xfe, 0x65, 0x2e, 0x11, 0x62,
+ 0x2f, 0x20, 0x0c, 0x1b, 0x76, 0x53, 0x5b, 0x35, 0xdf, 0xee, 0x8c, 0x2d,
+ 0xab, 0xce, 0x3c, 0xf2, 0x6d, 0xa9, 0x8b, 0x9f, 0xc9, 0xc2, 0x2c, 0x86,
+ 0x53, 0xa4, 0xda, 0x43, 0xa1, 0x10, 0x4e, 0xbb, 0x6e, 0x0a, 0x6b, 0xaf,
+ 0x08, 0x25, 0x15, 0x7e, 0x99, 0xd7, 0xf1, 0x3f, 0x98, 0x25, 0xff, 0x7c,
+ 0x9d, 0x23, 0x60, 0xba, 0x59, 0xcf, 0x7a, 0x95, 0xf4, 0x6b, 0xa4, 0x0a,
+ 0x45, 0x46, 0x97, 0xdf, 0xaf, 0x1e, 0x0e, 0x03, 0x09, 0x03, 0x65, 0x52,
+ 0x97, 0x09, 0xe5, 0x24, 0xd7, 0xcd, 0xb6, 0x50, 0x20, 0x0c, 0xfb, 0x0f,
+ 0xea, 0x93, 0xc9, 0x7d, 0x50, 0xb0, 0x0a, 0x0a, 0x35, 0x90, 0xe6, 0x05,
+ 0x4b, 0xd5, 0x52, 0xe3, 0x1e, 0xac, 0xf2, 0xbf, 0x7c, 0x12, 0x11, 0xa0,
+ 0x1d, 0xbe, 0x43, 0x8c, 0x7c, 0xaa, 0x86, 0xe0, 0x1c, 0x07, 0x4c, 0x06,
+ 0xfc, 0x82, 0x75, 0xeb, 0x1b, 0x4d, 0xa1, 0x63, 0x6f, 0xd0, 0x3d, 0x85,
+ 0x11, 0x15, 0x9a, 0xa6, 0xa6, 0x1e, 0x4f, 0x29, 0x07, 0x01, 0xb5, 0xd6,
+ 0x68, 0xb5, 0xb5, 0x82, 0xd3, 0x70, 0x28, 0x97, 0x60, 0x99, 0x79, 0x07,
+ 0x78, 0x53, 0xa9, 0x4b, 0x4e, 0xdf, 0xcf, 0x01, 0x49, 0x27, 0x01, 0x9d,
+ 0xa7, 0xfc, 0xa1, 0x5b, 0x70, 0x46, 0x7e, 0x68, 0xc0, 0x2e, 0x3a, 0xbf,
+ 0x36, 0x9d, 0xd0, 0xe4, 0x0a, 0x7c, 0x1c, 0xde, 0x6a, 0xc1, 0x24, 0x4b,
+ 0x92, 0xfc, 0xc1, 0x39, 0x58, 0x08, 0xa2, 0x0b, 0xef, 0xa4, 0xcd, 0xd1,
+ 0x33, 0x34, 0x11, 0x4c, 0x1e, 0xf3, 0x90, 0x1b, 0xf2, 0x4a, 0x64, 0xff,
+ 0x1c, 0x6a, 0x13, 0xda, 0x30, 0xa0, 0xfb, 0x6c, 0xce, 0xcc, 0xb7, 0x6b,
+ 0x67, 0xc3, 0x51, 0x2a, 0x7b, 0x75, 0x8d, 0xb4, 0xaa, 0x55, 0xa2, 0xc8,
+ 0x17, 0x95, 0x3e, 0x4a, 0xd1, 0x3b, 0x24, 0x74, 0x9a, 0x84, 0xee, 0x38,
+ 0x87, 0x57, 0xee, 0x87, 0x5b, 0xe7, 0xfb, 0x04, 0x13, 0x99, 0x6c, 0x6c,
+ 0x3b, 0xe9, 0x44, 0x3d, 0x2a, 0x26, 0xa8, 0xf3, 0x12, 0x4c, 0x76, 0x08,
+ 0xe0, 0x6f, 0xca, 0x65, 0xca, 0x6a, 0x4c, 0xb7, 0xf4, 0x13, 0x62, 0x25,
+ 0xbb, 0x09, 0xe3, 0xc1, 0xba, 0xcc, 0x29, 0xfd, 0xdd, 0xfd, 0x67, 0x87,
+ 0x41, 0x54, 0xca, 0x56, 0xab, 0x28, 0x1b, 0x9a, 0x8e, 0x42, 0xb6, 0x30,
+ 0x63, 0xc3, 0xcb, 0x3f, 0x83, 0x11, 0xec, 0x41, 0x0a, 0x7d, 0x51, 0x3a,
+ 0x51, 0xbe, 0xb5, 0xcc, 0xf3, 0x6b, 0x65, 0xab, 0xee, 0xb1, 0xa2, 0xde,
+ 0xc7, 0xba, 0xa7, 0x76, 0x59, 0xe5, 0x11, 0x35, 0x73, 0xd3, 0xda, 0x53,
+ 0x5f, 0xc8, 0xcc, 0xf9, 0x19, 0x31, 0xaa, 0x60, 0x63, 0x73, 0xd3, 0x9f,
+ 0x97, 0xe9, 0xa0, 0x89, 0xef, 0x08, 0x80, 0x6c, 0x08, 0x00, 0x00, 0x41,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x19, 0x00, 0x06, 0x10,
+ 0x38, 0x14, 0x6c, 0xeb, 0x1c, 0xbb, 0x37, 0x2f, 0x7f, 0xe9, 0x29, 0xef,
+ 0xd4, 0x54, 0x9f, 0x5c, 0x7d, 0x22, 0xff, 0x39, 0xe3, 0xfe, 0xa1, 0xb5,
+ 0x75, 0xa9, 0xca, 0x04, 0x10, 0x0c, 0x69, 0x5f, 0xa7, 0x6b, 0xf8, 0x17,
+ 0x0e, 0x95, 0x1e, 0xd8, 0xbb, 0xc3, 0xc1, 0x61, 0xc6, 0x5b, 0xfd, 0x7f,
+ 0x08, 0x4f, 0x35, 0x8f, 0xd9, 0x29, 0xf0, 0x07, 0x99, 0xe9, 0x5d, 0x97,
+ 0xfa, 0x80, 0xd4, 0xcd, 0x82, 0x38, 0x98, 0x7a, 0x9c, 0x93, 0x0a, 0x70,
+ 0x4d, 0x79, 0x99, 0xeb, 0x4a, 0x6c, 0x87, 0xf6, 0x50, 0xc4, 0x4d, 0xcf,
+ 0x40, 0x2a, 0xe6, 0x13, 0x8f, 0xbf, 0x6e, 0x71, 0x1f, 0x05, 0xc1, 0x24,
+ 0xf4, 0x74, 0x01, 0x4a, 0x08, 0xea, 0xfa, 0x1f, 0xcd, 0xc5, 0x14, 0x0c,
+ 0x23, 0x53, 0xbb, 0x48, 0xca, 0x03, 0xf0, 0xd7, 0xf7, 0x3a, 0xa8, 0xde,
+ 0xb5, 0xae, 0xa9, 0xb5, 0xb0, 0x0f, 0x10, 0x02, 0xb4, 0x56, 0x1a, 0xbc,
+ 0x6c, 0x49, 0x35, 0xbb, 0x49, 0x55, 0x67, 0x43, 0xe3, 0x3b, 0xfc, 0x09,
+ 0x2b, 0xd1, 0x93, 0x81, 0x56, 0xf9, 0x8d, 0x46, 0xaf, 0xc7, 0xb5, 0x61,
+ 0x16, 0x59, 0x17, 0x25, 0x05, 0x4b, 0x8c, 0xed, 0xc1, 0xc5, 0x6a, 0xc0,
+ 0xb7, 0xb8, 0xec, 0x6c, 0xc0, 0x90, 0x66, 0x0b, 0x12, 0x32, 0x53, 0x6b,
+ 0x2d, 0x84, 0x12, 0xde, 0x63, 0xe4, 0x6e, 0xa2, 0x48, 0xb7, 0x41, 0x40,
+ 0x29, 0xad, 0x8e, 0x94, 0x86, 0x0d, 0x62, 0xcb, 0xc1, 0x00, 0x61, 0xa3,
+ 0x73, 0xa0, 0xd8, 0xf6, 0x6f, 0x9a, 0xdc, 0xc9, 0x6e, 0x08, 0xc7, 0xaa,
+ 0x85, 0x58, 0xcd, 0xcb, 0x5f, 0x7c, 0x56, 0xca, 0xc6, 0x69, 0x03, 0xd5,
+ 0xab, 0x8b, 0xfb, 0x94, 0x86, 0xbd, 0x81, 0x72, 0x74, 0x0b, 0xe3, 0xc0,
+ 0xab, 0x69, 0x78, 0x40, 0x62, 0x0f, 0x22, 0xae, 0x38, 0x1f, 0xae, 0xf9,
+ 0x9d, 0x20, 0x16, 0x89, 0x0d, 0x85, 0x82, 0x19, 0x5d, 0x8a, 0x6f, 0x40,
+ 0xc0, 0x39, 0xb2, 0x80, 0x8a, 0x37, 0x9a, 0xbf, 0xee, 0x19, 0x39, 0xee,
+ 0xd8, 0xc5, 0x61, 0x67, 0x64, 0x38, 0x86, 0x7e, 0x35, 0xd6, 0x12, 0x4e,
+ 0x55, 0x31, 0xf1, 0x38, 0x71, 0x40, 0x22, 0xf4, 0x29, 0xf4, 0xb7, 0xb9,
+ 0x0d, 0x46, 0x5a, 0x60, 0x3a, 0x19, 0x19, 0x8e, 0x43, 0x35, 0xe6, 0xe7,
+ 0xbc, 0xec, 0xf7, 0x91, 0x19, 0x1f, 0x3b, 0xce, 0xd3, 0x14, 0xc5, 0xb2,
+ 0xb8, 0x58, 0x48, 0x43, 0x10, 0xce, 0x4b, 0x0b, 0x3e, 0xc8, 0x2c, 0xa3,
+ 0x10, 0x11, 0x6e, 0xd3, 0xe4, 0x2f, 0xe4, 0x9d, 0x18, 0x22, 0xf3, 0x45,
+ 0xe5, 0x73, 0x72, 0x8b, 0x59, 0x9e, 0xf7, 0x9a, 0xe6, 0x02, 0x62, 0xed,
+ 0x11, 0x42, 0xef, 0xbb, 0xc3, 0xdd, 0xab, 0xd3, 0xe3, 0x21, 0xb9, 0x40,
+ 0x32, 0x0c, 0x40, 0xcd, 0x4e, 0xee, 0x3a, 0xe7, 0x4a, 0xed, 0xb6, 0x34,
+ 0xee, 0xa7, 0xa5, 0xdc, 0xe5, 0xe8, 0x9c, 0x48, 0xb3, 0x49, 0x47, 0x42,
+ 0x49, 0xf0, 0x04, 0xb6, 0x56, 0x91, 0xa6, 0x8d, 0x9a, 0xf3, 0x5c, 0x68,
+ 0x07, 0xec, 0x5c, 0x92, 0xb3, 0xb8, 0x6e, 0x67, 0xb8, 0x8b, 0x80, 0xb4,
+ 0x5e, 0x6f, 0xcd, 0x06, 0xab, 0x04, 0x1b, 0x52, 0x4a, 0x15, 0x5d, 0x74,
+ 0x96, 0xa5, 0x44, 0x5d, 0xba, 0x79, 0xbe, 0x9a, 0x9e, 0x93, 0xa5, 0x07,
+ 0xf3, 0x41, 0x3e, 0xab, 0x2a, 0x03, 0x81, 0x0c, 0xc6, 0x1e, 0xed, 0x0b,
+ 0xbd, 0xbc, 0x28, 0x8e, 0xf8, 0xec, 0x6a, 0xf2, 0x6c, 0x94, 0xb5, 0xbb,
+ 0xbd, 0x79, 0x4f, 0x2d, 0x06, 0x09, 0xc8, 0xde, 0xa9, 0x28, 0x0e, 0x86,
+ 0xa7, 0x56, 0x40, 0x31, 0xac, 0xe0, 0x01, 0x45, 0xbf, 0x9f, 0x54, 0xa6,
+ 0xa2, 0x83, 0x18, 0x41, 0xbd, 0x8c, 0x31, 0xc5, 0x8e, 0xc0, 0xf6, 0x81,
+ 0x37, 0x9b, 0x09, 0xcf, 0x67, 0xcd, 0x87, 0x3a, 0xa9, 0x1a, 0x27, 0xf6,
+ 0x6d, 0x47, 0x5d, 0x41, 0x45, 0x06, 0x1d, 0x34, 0x4d, 0x51, 0xd9, 0x36,
+ 0xe6, 0x99, 0x28, 0x22, 0x6a, 0x8c, 0xe3, 0x77, 0xa1, 0x9b, 0x8f, 0x6c,
+ 0x19, 0xeb, 0x99, 0x15, 0x8b, 0xf1, 0xd4, 0xd2, 0x6e, 0xd7, 0xe2, 0x13,
+ 0x69, 0xae, 0x2f, 0x02, 0x03, 0xb5, 0xf6, 0xc8, 0x4d, 0xb6, 0x5d, 0x54,
+ 0x6f, 0xfd, 0xe7, 0x09, 0xb9, 0x28, 0x33, 0x5b, 0x88, 0x76, 0x14, 0x86,
+ 0xe8, 0x2e, 0xf2, 0x97, 0x04, 0xc1, 0x51, 0x10, 0xa8, 0x9e, 0xb0, 0x30,
+ 0x30, 0x92, 0x3d, 0x62, 0x65, 0xfd, 0xb1, 0xf8, 0xf5, 0x10, 0xaa, 0xf5,
+ 0xc9, 0x04, 0x4b, 0x53, 0x31, 0x9e, 0xbd, 0xee, 0x20, 0xae, 0xb6, 0x9d,
+ 0x37, 0xb7, 0xd3, 0xd3, 0x73, 0x39, 0x09, 0xf2, 0x84, 0x38, 0x01, 0x9f,
+ 0xa5, 0x46, 0x82, 0x39, 0x35, 0x47, 0xc1, 0x72, 0x55, 0x40, 0x63, 0xfa,
+ 0xb7, 0x80, 0x20, 0x1c, 0xd0, 0xa5, 0x63, 0x19, 0xae, 0xe5, 0x3a, 0x8d,
+ 0x3e, 0xc4, 0x9c, 0x3b, 0xd2, 0x6d, 0xda, 0xa4, 0xdc, 0xfa, 0xff, 0x21,
+ 0xc3, 0xb5, 0x94, 0x84, 0xdd, 0xe0, 0xa3, 0xd5, 0xbf, 0x8f, 0xfc, 0x88,
+ 0xf6, 0x26, 0x7b, 0x1f, 0x5d, 0x93, 0xfc, 0x3d, 0xaa, 0x01, 0xf5, 0x56,
+ 0x4d, 0xd6, 0xcd, 0xcd, 0x83, 0xbf, 0x67, 0xaa, 0x5e, 0xea, 0x21, 0x57,
+ 0x66, 0x1a, 0xa2, 0x5c, 0x05, 0x94, 0x02, 0xf1, 0x1d, 0xd1, 0x13, 0x81,
+ 0xe0, 0x7b, 0xab, 0x15, 0xbb, 0x40, 0x18, 0x31, 0x7c, 0xc1, 0x6a, 0x9e,
+ 0x27, 0xb8, 0x13, 0x6b, 0x1b, 0x16, 0xbe, 0xaf, 0xe4, 0x27, 0xbd, 0x9a,
+ 0x5c, 0x01, 0xcf, 0xe1, 0x9e, 0xb1, 0xf0, 0x3d, 0x57, 0x94, 0x80, 0x75,
+ 0x68, 0xac, 0x84, 0x60, 0x6f, 0xb3, 0xbb, 0x81, 0x27, 0x0e, 0x01, 0xb3,
+ 0xb0, 0x77, 0xf3, 0x47, 0x0c, 0x1a, 0xef, 0x33, 0xb9, 0x9c, 0x1c, 0x9e,
+ 0x47, 0x7f, 0xb8, 0xe8, 0x3b, 0x51, 0x31, 0x9e, 0x24, 0x6c, 0xd8, 0x8a,
+ 0x59, 0x86, 0x45, 0x56, 0x69, 0x6a, 0x33, 0x9c, 0x0a, 0xed, 0xf4, 0x11,
+ 0x1b, 0x7c, 0x66, 0x2c, 0xfb, 0x4b, 0x72, 0x0b, 0x23, 0x50, 0x73, 0xd7,
+ 0x8d, 0x42, 0x4e, 0xb6, 0x68, 0xb5, 0x9c, 0xe8, 0xa9, 0x74, 0x90, 0x5c,
+ 0xca, 0x1f, 0xe4, 0xce, 0xd8, 0xe2, 0x11, 0x97, 0x54, 0xa6, 0xa4, 0x4e,
+ 0xe1, 0x74, 0x8e, 0xc1, 0x7d, 0x43, 0x90, 0xc3, 0x98, 0xe5, 0x50, 0xfa,
+ 0x7a, 0x3b, 0xe7, 0x95, 0x8a, 0x37, 0xeb, 0x88, 0xeb, 0x40, 0xfe, 0xe7,
+ 0x1a, 0xaa, 0x60, 0x5d, 0xcf, 0x92, 0xfb, 0x5c, 0xe1, 0x4a, 0xea, 0x04,
+ 0x27, 0x60, 0x32, 0x77, 0xc9, 0x58, 0xf0, 0x05, 0xee, 0xf0, 0x51, 0x97,
+ 0xb3, 0x8a, 0x67, 0x96, 0x68, 0x76, 0x2c, 0xa4, 0xa7, 0xa8, 0x45, 0xc8,
+ 0xc5, 0x12, 0x50, 0xb9, 0xed, 0x97, 0x93, 0x97, 0x65, 0x08, 0xf5, 0xf9,
+ 0xb4, 0xaf, 0x28, 0x6d, 0x4f, 0xd3, 0x95, 0x40, 0xf7, 0x16, 0x13, 0x4b,
+ 0x3e, 0xd2, 0x80, 0x18, 0x51, 0xcb, 0x9d, 0x82, 0x83, 0x4a, 0x76, 0xb2,
+ 0xdd, 0x09, 0x65, 0xed, 0x71, 0xff, 0xdc, 0x1d, 0xa9, 0xad, 0x09, 0xc0,
+ 0x3b, 0xf5, 0x76, 0x92, 0xdf, 0xf2, 0x64, 0xeb, 0x8a, 0x9d, 0xa9, 0x5d,
+ 0x43, 0x9c, 0xd9, 0x42, 0x97, 0x8b, 0x91, 0xe7, 0x3d, 0xc0, 0x95, 0x75,
+ 0xb9, 0x29, 0x14, 0x6d, 0x90, 0x90, 0x1d, 0xb6, 0x38, 0x5d, 0xff, 0x96,
+ 0x2b, 0xe4, 0xe7, 0xd6, 0x3c, 0x3f, 0x42, 0x95, 0x3f, 0x03, 0xfb, 0x41,
+ 0xd3, 0x93, 0xa8, 0xfb, 0x0b, 0xac, 0x80, 0x4a, 0xa4, 0xa9, 0x71, 0x77,
+ 0xba, 0x56, 0xa5, 0x51, 0x99, 0xc7, 0xea, 0x0e, 0x2f, 0x1e, 0x51, 0x74,
+ 0x08, 0xac, 0x35, 0x44, 0xd5, 0x7b, 0x85, 0xa4, 0x6d, 0x53, 0x94, 0xf7,
+ 0xc1, 0x41, 0x07, 0xee, 0xb2, 0x62, 0x30, 0x5e, 0x4e, 0x8b, 0x6f, 0x0f,
+ 0xdf, 0x69, 0x5a, 0x8e, 0x10, 0x70, 0x81, 0x29, 0xcb, 0xda, 0x6c, 0xc0,
+ 0x0b, 0x2f, 0xe7, 0x73, 0x78, 0x94, 0x6c, 0xe2, 0xa0, 0xcf, 0x3c, 0x6e,
+ 0x81, 0x78, 0x75, 0xae, 0xe8, 0xf3, 0x94, 0x0d, 0x5c, 0xf6, 0x40, 0x91,
+ 0x11, 0x25, 0x6e, 0xc6, 0x79, 0x4d, 0x86, 0x06, 0x7d, 0xcb, 0x4f, 0x53,
+ 0xb8, 0x94, 0x54, 0xd7, 0x5a, 0xbe, 0xef, 0x0e, 0xe5, 0x80, 0x6b, 0x19,
+ 0x21, 0xe4, 0xb5, 0x1d, 0x51, 0xb4, 0xf1, 0x36, 0xc4, 0xad, 0x7f, 0xd2,
+ 0xa4, 0x17, 0x48, 0x71, 0x75, 0x6c, 0xa5, 0x64, 0x46, 0x64, 0x54, 0x13,
+ 0x59, 0xe4, 0x5c, 0xf5, 0x6a, 0xc2, 0xf8, 0xc2, 0x17, 0x77, 0x56, 0x1a,
+ 0x7c, 0x75, 0x09, 0xe0, 0xa2, 0xcf, 0x20, 0x1f, 0x79, 0xe6, 0x28, 0x46,
+ 0x81, 0x56, 0x66, 0xd9, 0xf8, 0x0b, 0xd7, 0x2c, 0x50, 0x3b, 0xdb, 0x55,
+ 0x98, 0x0d, 0xb3, 0x75, 0x0f, 0x31, 0x1c, 0x78, 0x60, 0xa5, 0x9b, 0x20,
+ 0x4e, 0x0d, 0x83, 0xa7, 0xf1, 0x51, 0xa7, 0xc4, 0x27, 0xf5, 0xa4, 0x07,
+ 0x91, 0xec, 0x94, 0x3e, 0x2e, 0xe0, 0x2f, 0x57, 0xa5, 0xe7, 0x84, 0x85,
+ 0x06, 0xb7, 0x26, 0xca, 0x62, 0x01, 0x4e, 0x7e, 0x80, 0x6c, 0xab, 0xe4,
+ 0xb1, 0x76, 0x80, 0x9e, 0x0b, 0xb6, 0xe9, 0x0d, 0x2d, 0xc4, 0x80, 0xfd,
+ 0x8c, 0xb3, 0x95, 0x5e, 0x81, 0x8d, 0xd4, 0xbf, 0x7f, 0x98, 0x37, 0xcc,
+ 0xda, 0x14, 0xf0, 0xf3, 0x3b, 0xdc, 0x87, 0x1c, 0x83, 0x61, 0xd6, 0x84,
+ 0x8d, 0xa3, 0xd4, 0x86, 0x45, 0x63, 0xd2, 0xfb, 0x37, 0x4a, 0x06, 0x11,
+ 0xd3, 0xbd, 0x72, 0xe6, 0x64, 0x2f, 0xa9, 0x5b, 0x03, 0xe8, 0x7f, 0x3b,
+ 0x4d, 0x4e, 0x90, 0xf1, 0xb8, 0xf7, 0xd1, 0x95, 0x9b, 0x8d, 0xfb, 0x5d,
+ 0xd9, 0x80, 0x2f, 0x30, 0x04, 0x08, 0x6f, 0xce, 0x78, 0x8d, 0xd5, 0xaf,
+ 0xa5, 0xa6, 0x6c, 0x29, 0x50, 0x10, 0xe4, 0xf2, 0xb9, 0xd0, 0xf3, 0xbb,
+ 0x57, 0x4e, 0x7d, 0xfd, 0xe6, 0x38, 0xa1, 0xaa, 0xe8, 0xd1, 0xc2, 0x11,
+ 0x79, 0x4a, 0x1c, 0x5d, 0xb5, 0x6f, 0xd8, 0x97, 0xd6, 0x10, 0xf8, 0xe7,
+ 0x0f, 0x16, 0x18, 0x1b, 0xb4, 0xfa, 0xa4, 0x34, 0x08, 0x6f, 0x40, 0x6c,
+ 0x52, 0x22, 0x45, 0x94, 0x0f, 0x99, 0xf4, 0x3a, 0xab, 0x56, 0x52, 0x2b,
+ 0xe0, 0xe6, 0xb5, 0x7a, 0x6c, 0x98, 0xb1, 0x59, 0xc1, 0x68, 0x26, 0x43,
+ 0x0e, 0xc2, 0xee, 0x1e, 0xef, 0xbc, 0x76, 0xd8, 0x75, 0xd1, 0x81, 0x37,
+ 0xba, 0x08, 0x38, 0xb2, 0xc5, 0x5d, 0xb7, 0x6f, 0xd6, 0xc4, 0xad, 0xfb,
+ 0x9d, 0xe5, 0x02, 0x7b, 0xbf, 0x53, 0xd3, 0x92, 0x95, 0x78, 0xa9, 0x89,
+ 0xa2, 0x54, 0x43, 0x47, 0x06, 0x47, 0xf9, 0x90, 0x78, 0xe9, 0x03, 0x45,
+ 0xd6, 0x79, 0x70, 0xae, 0x01, 0xc6, 0x4b, 0x5b, 0x21, 0xe1, 0xe0, 0x5c,
+ 0x2f, 0x9e, 0x4f, 0x33, 0x8c, 0x00, 0xd4, 0xd1, 0x0a, 0x94, 0x76, 0x05,
+ 0xa6, 0xd7, 0x32, 0x2f, 0x0c, 0xa1, 0x54, 0x40, 0xbf, 0x05, 0xfb, 0x07,
+ 0xc2, 0x0f, 0x27, 0x15, 0x8f, 0xd3, 0xe9, 0xa9, 0xb8, 0x37, 0x5b, 0x2f,
+ 0xf5, 0x13, 0xd3, 0xcf, 0x45, 0x39, 0x11, 0x22, 0xf9, 0xd9, 0x53, 0x18,
+ 0x06, 0xc9, 0xa5, 0xaf, 0x6f, 0xac, 0x4e, 0x1b, 0xad, 0x50, 0x29, 0xe6,
+ 0xff, 0x18, 0xb0, 0xb8, 0xf7, 0xba, 0xae, 0x49, 0xec, 0xa0, 0x40, 0x3f,
+ 0xfc, 0x24, 0xa8, 0xe2, 0x5d, 0xe1, 0xc6, 0xd4, 0xf0, 0x47, 0x00, 0x78,
+ 0x91, 0xeb, 0x99, 0x81, 0x46, 0x23, 0x6c, 0x38, 0xda, 0x2d, 0xc5, 0x24,
+ 0x1e, 0x8f, 0x45, 0xd9, 0x41, 0x5c, 0xd3, 0xfb, 0x2e, 0x62, 0x8c, 0x9b,
+ 0xc8, 0xa2, 0x34, 0xe9, 0x0c, 0xbb, 0x4f, 0xf4, 0xea, 0x4a, 0x0e, 0xdb,
+ 0xc2, 0xff, 0x56, 0x7d, 0xc6, 0x29, 0x16, 0x64, 0x79, 0xc5, 0x41, 0x1c,
+ 0xc8, 0x98, 0xe7, 0x9f, 0x6e, 0x32, 0xb6, 0xa1, 0xa4, 0xd4, 0x01, 0x3d,
+ 0x44, 0x8e, 0x8a, 0xce, 0xf3, 0xd9, 0xfa, 0x1b, 0x7d, 0x9d, 0x08, 0xb8,
+ 0x46, 0x08, 0x80, 0x46, 0xbd, 0x03, 0x4c, 0x99, 0xd7, 0x00, 0x36, 0x5f,
+ 0x0b, 0x51, 0xf7, 0xa5, 0x62, 0xe0, 0x94, 0xe9, 0x6b, 0xe5, 0xdf, 0x57,
+ 0x9e, 0xe9, 0x05, 0xa7, 0x76, 0x49, 0x49, 0xf7, 0x69, 0xbc, 0x6a, 0xde,
+ 0x27, 0xd2, 0x52, 0xca, 0xaf, 0xed, 0x39, 0x9c, 0xa4, 0xa2, 0xd6, 0xa5,
+ 0x81, 0x59, 0xfb, 0x0e, 0x49, 0x87, 0xf0, 0xce, 0x58, 0x9c, 0xa3, 0xec,
+ 0x67, 0x11, 0xf9, 0x23, 0x17, 0x51, 0xde, 0x24, 0x90, 0x6d, 0x99, 0x38,
+ 0x1a, 0xfb, 0x52, 0x19, 0x5b, 0xff, 0x95, 0xea, 0x74, 0x99, 0x0d, 0x63,
+ 0x84, 0x05, 0x21, 0xc4, 0x19, 0x81, 0x4a, 0x24, 0x41, 0xd4, 0xf8, 0xd3,
+ 0xff, 0x8e, 0x26, 0x8a, 0x3b, 0x0d, 0xdf, 0x02, 0x1c, 0xf4, 0x94, 0x31,
+ 0x4c, 0x26, 0xa1, 0x1a, 0x3c, 0x92, 0x9f, 0x1a, 0x5d, 0xe5, 0x70, 0x1b,
+ 0xd6, 0xf8, 0xc4, 0xea, 0xaa, 0x18, 0xce, 0xa9, 0x30, 0x76, 0xd0, 0x8c,
+ 0xd4, 0x16, 0x56, 0xdb, 0xec, 0xb0, 0xf4, 0x48, 0x14, 0x6e, 0x78, 0xba,
+ 0x89, 0x24, 0x26, 0x27, 0x63, 0x6a, 0xb6, 0x81, 0xb5, 0x2d, 0xbd, 0x1c,
+ 0x10, 0x43, 0xe2, 0x21, 0xa4, 0x58, 0xdc, 0x8f, 0xfd, 0x89, 0x16, 0x0e,
+ 0x14, 0x1a, 0x3d, 0x17, 0x46, 0xfa, 0x2d, 0x83, 0x11, 0x7d, 0xc7, 0x1d,
+ 0x02, 0xbb, 0xcf, 0xc3, 0x35, 0xe6, 0x15, 0x27, 0x8e, 0xe4, 0x18, 0x6b,
+ 0xd8, 0x8a, 0x20, 0xdc, 0x46, 0x9e, 0x0b, 0xd2, 0x11, 0x90, 0x4b, 0x2d,
+ 0x19, 0x26, 0x41, 0xef, 0x78, 0x20, 0x82, 0x77, 0x15, 0x35, 0x9b, 0xce,
+ 0xca, 0x9d, 0x33, 0x74, 0x19, 0xaa, 0x37, 0x1e, 0x8f, 0x1c, 0x12, 0xfa,
+ 0x94, 0x84, 0x9b, 0xa0, 0xcd, 0x51, 0xb8, 0xf4, 0x78, 0xe0, 0x97, 0xd4,
+ 0x9c, 0x7a, 0x93, 0x74, 0x80, 0x05, 0x4e, 0xce, 0x60, 0x57, 0x5e, 0x88,
+ 0x51, 0x50, 0xe2, 0x85, 0xd5, 0xcc, 0x19, 0xd8, 0x15, 0x03, 0xa5, 0x38,
+ 0x95, 0x0a, 0x0e, 0xf1, 0xea, 0x14, 0x5e, 0x2e, 0x0d, 0xb0, 0xc0, 0x56,
+ 0x04, 0x83, 0xd8, 0xfd, 0xd5, 0xbe, 0xba, 0x0a, 0x7f, 0x1e, 0xb5, 0x4f,
+ 0xd4, 0x3a, 0x20, 0xa2, 0x63, 0x8c, 0x9b, 0x97, 0x86, 0x03, 0x33, 0xfe,
+ 0x6e, 0x3b, 0x51, 0x7e, 0x70, 0x22, 0x19, 0x27, 0x56, 0x9b, 0x55, 0xee,
+ 0x2f, 0x62, 0x23, 0x91, 0xff, 0x9e, 0x1b, 0x54, 0x3a, 0x97, 0x8d, 0x35,
+ 0xa4, 0xfe, 0x8b, 0x63, 0xa0, 0xdd, 0x23, 0x12, 0x06, 0xf7, 0x49, 0xd5,
+ 0x24, 0xc9, 0x49, 0x61, 0x3e, 0xc6, 0x07, 0x38, 0x58, 0x29, 0x73, 0xe1,
+ 0x26, 0xdc, 0xe2, 0x58, 0x58, 0x78, 0x1b, 0xf6, 0x93, 0x88, 0x4b, 0x1c,
+ 0xeb, 0xae, 0x12, 0x96, 0xca, 0x6c, 0x9c, 0xe5, 0x1e, 0x3e, 0x98, 0x0f,
+ 0xcc, 0x54, 0x8d, 0x3a, 0x11, 0xbc, 0x99, 0xac, 0x92, 0x39, 0x58, 0x5d,
+ 0xc7, 0xef, 0x8c, 0x47, 0x59, 0x7f, 0x95, 0x2a, 0x3b, 0xda, 0x3b, 0x23,
+ 0x06, 0x73, 0x9f, 0x3d, 0x20, 0x5c, 0x1f, 0x28, 0x08, 0x13, 0x01, 0xaa,
+ 0x22, 0x24, 0x8a, 0x27, 0x30, 0xe7, 0x01, 0x61, 0x36, 0xba, 0x85, 0xc7,
+ 0x19, 0x5b, 0xd0, 0x49, 0x34, 0x04, 0x5a, 0x13, 0x2c, 0xa0, 0xeb, 0x49,
+ 0xc5, 0x5a, 0x9c, 0x01, 0xc3, 0xd0, 0xb1, 0x9c, 0xd9, 0xed, 0xc3, 0xa5,
+ 0x9c, 0x5f, 0x2b, 0x33, 0xf5, 0x96, 0xbe, 0xef, 0x5a, 0x9e, 0x20, 0xad,
+ 0xc4, 0x10, 0x86, 0x63, 0x6e, 0x65, 0xa7, 0x2a, 0xee, 0x17, 0xb0, 0x06,
+ 0xdb, 0xaf, 0x5b, 0xfb, 0x07, 0x46, 0x4d, 0xf1, 0x8f, 0x1a, 0x52, 0x1f,
+ 0x4e, 0x3a, 0xbe, 0x02, 0x4e, 0xb9, 0x0e, 0x95, 0x52, 0xf6, 0x5b, 0x48,
+ 0x4d, 0x03, 0x70, 0x71, 0x46, 0x7a, 0xff, 0xaa, 0x3b, 0x6f, 0x38, 0xc6,
+ 0x7c, 0xe8, 0xb0, 0xf0, 0x12, 0x5f, 0xa9, 0x3d, 0x9e, 0xcb, 0x33, 0x58,
+ 0xa3, 0x50, 0x66, 0x03, 0x99, 0xdb, 0x19, 0x73, 0xb9, 0x99, 0xc3, 0x37,
+ 0x41, 0x1c, 0x68, 0xc5, 0x79, 0x88, 0xe3, 0x45, 0x1a, 0x8e, 0x51, 0x2e,
+ 0x2c, 0xcd, 0x5d, 0x4e, 0x5d, 0x77, 0x5f, 0xc5, 0xf8, 0x0c, 0x49, 0xcd,
+ 0xb2, 0x5c, 0xe6, 0xcc, 0xd5, 0xb5, 0x5d, 0x17, 0x57, 0x33, 0x38, 0xd8,
+ 0x81, 0x53, 0x26, 0x1e, 0x00, 0xef, 0x98, 0xe2, 0xcc, 0x29, 0xd9, 0x70,
+ 0x27, 0x89, 0x00, 0x5b, 0x04, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x11, 0x18, 0x00, 0x08, 0x10, 0x2c, 0x00, 0x1c, 0x27,
+ 0xdc, 0x7c, 0xb4, 0x34, 0x51, 0xff, 0x1d, 0x34, 0x1b, 0xa3, 0x58, 0x9f,
+ 0xd4, 0xca, 0xb7, 0x26, 0x23, 0x0e, 0x88, 0x0c, 0xc4, 0x9f, 0x87, 0xbc,
+ 0x60, 0xfd, 0x82, 0xff, 0x22, 0xff, 0xa0, 0x7b, 0x13, 0xd0, 0xf6, 0xff,
+ 0xe4, 0x00, 0x79, 0xba, 0xea, 0x7a, 0xf6, 0x33, 0xc0, 0x57, 0xa8, 0x0d,
+ 0x18, 0x50, 0x3a, 0x25, 0xb6, 0xf9, 0x93, 0x7c, 0x36, 0x66, 0xc5, 0x8e,
+ 0xdf, 0x2d, 0x4f, 0x32, 0x6e, 0xa9, 0x99, 0x13, 0x40, 0x7d, 0xbc, 0xbf,
+ 0xa2, 0x3f, 0xec, 0xc4, 0xac, 0x88, 0x42, 0x7d, 0xc3, 0x04, 0x64, 0xee,
+ 0x3f, 0x42, 0x2f, 0x5e, 0x7c, 0xc0, 0x75, 0x08, 0x1f, 0x9a, 0xcd, 0x7c,
+ 0xde, 0x3e, 0x66, 0x77, 0x9d, 0x2e, 0x7b, 0x71, 0x41, 0xd5, 0xab, 0xae,
+ 0x2d, 0x3a, 0xe6, 0x38, 0x6f, 0x0a, 0xd9, 0x3a, 0xdc, 0x5a, 0xfe, 0x32,
+ 0x7f, 0x79, 0x80, 0x87, 0x0b, 0xa3, 0x1c, 0xc3, 0xc1, 0x4c, 0x98, 0x2a,
+ 0x02, 0xaf, 0x74, 0x4a, 0x4e, 0xe5, 0x26, 0xc5, 0xf4, 0xc7, 0x74, 0x11,
+ 0x8e, 0xe3, 0x14, 0x03, 0xa6, 0xe3, 0xdb, 0x80, 0xc2, 0x81, 0xe9, 0xc8,
+ 0x05, 0xb1, 0xb5, 0xbf, 0xb2, 0x17, 0xb4, 0x07, 0xbf, 0xb2, 0x17, 0xb4,
+ 0x08, 0x06, 0xa3, 0xf5, 0x4a, 0x28, 0x8e, 0x8d, 0xca, 0xf9, 0x9f, 0xcb,
+ 0x02, 0x10, 0xaa, 0xbb, 0xa3, 0x80, 0x9f, 0x76, 0x8a, 0xf5, 0xf0, 0x0f,
+ 0xa1, 0x4d, 0x37, 0xa1, 0x9b, 0xb6, 0xd6, 0x94, 0x2b, 0xbf, 0xdb, 0x6e,
+ 0x35, 0xa1, 0x04, 0x5c, 0x2e, 0x44, 0x40, 0x11, 0x93, 0xfd, 0xd3, 0x56,
+ 0xec, 0xf5, 0x75, 0xde, 0xec, 0x8e, 0x5b, 0xc0, 0x42, 0xb0, 0xae, 0x17,
+ 0x24, 0xa4, 0x0b, 0x7c, 0x37, 0xdb, 0x15, 0x6c, 0x46, 0xe8, 0xb7, 0x13,
+ 0x5b, 0x2c, 0x38, 0x51, 0xc6, 0xdb, 0x3d, 0x57, 0x81, 0xa4, 0xaf, 0xcc,
+ 0xce, 0xe8, 0x11, 0x03, 0x3f, 0x38, 0x40, 0x8e, 0x3c, 0x7b, 0xe9, 0x4b,
+ 0xa9, 0x8e, 0x2d, 0x68, 0x23, 0x76, 0x3f, 0x6d, 0xc9, 0x01, 0x8e, 0xcd,
+ 0x07, 0xd9, 0xdc, 0x87, 0xb2, 0x5a, 0xf8, 0x6d, 0xd9, 0x22, 0x6b, 0x38,
+ 0x43, 0x64, 0x6f, 0x12, 0x83, 0xfa, 0x63, 0x95, 0x90, 0xc2, 0x0b, 0x84,
+ 0x9c, 0x13, 0x1d, 0x74, 0xbc, 0xca, 0xba, 0xc4, 0xcf, 0xb3, 0xf8, 0x0d,
+ 0xe5, 0x88, 0x18, 0x64, 0xbf, 0x66, 0x4a, 0x87, 0xac, 0x9a, 0xf7, 0x64,
+ 0x34, 0x6c, 0xb2, 0xe0, 0xa2, 0x50, 0xa8, 0x96, 0x90, 0x1f, 0x79, 0x68,
+ 0x69, 0x97, 0x89, 0x3a, 0x55, 0xb5, 0x0f, 0xcb, 0x97, 0x69, 0x99, 0x09,
+ 0x51, 0x54, 0x71, 0xec, 0x90, 0x63, 0xea, 0x97, 0xd7, 0xbd, 0x1d, 0x51,
+ 0x98, 0x2a, 0x6f, 0x0b, 0x83, 0x91, 0x4b, 0xa8, 0x9e, 0x12, 0xd2, 0x27,
+ 0x10, 0x35, 0xa0, 0xde, 0x66, 0xc7, 0x18, 0x4b, 0xf7, 0xb6, 0x48, 0xed,
+ 0xb9, 0x88, 0x38, 0x03, 0x9e, 0xd4, 0xd9, 0xf9, 0xc2, 0x16, 0xdf, 0xf8,
+ 0x47, 0x25, 0x1f, 0x3d, 0xe6, 0x7b, 0xd1, 0xb9, 0x8a, 0x29, 0xdd, 0x0b,
+ 0x27, 0xc0, 0x3c, 0x2e, 0xcc, 0x45, 0x65, 0x81, 0x0a, 0xd9, 0x0f, 0xa7,
+ 0x85, 0xa8, 0xea, 0x94, 0x38, 0xf3, 0x9f, 0xd0, 0xd7, 0xdb, 0xda, 0x7b,
+ 0x25, 0xc0, 0x64, 0x98, 0xba, 0x95, 0xfc, 0x2d, 0x56, 0x6f, 0xb6, 0xe9,
+ 0x55, 0xe5, 0xaa, 0x2a, 0xdf, 0xd7, 0x2b, 0xcf, 0xcd, 0xf6, 0x94, 0xfa,
+ 0xa7, 0x6e, 0x6c, 0xa8, 0x6c, 0xf3, 0x9b, 0x84, 0x73, 0x29, 0x7f, 0xa7,
+ 0xd0, 0xea, 0x2c, 0xb9, 0x6f, 0x40, 0x74, 0xdc, 0x97, 0x9c, 0x8c, 0x2e,
+ 0x05, 0x20, 0xd7, 0xa4, 0x67, 0x83, 0x4b, 0xcd, 0x42, 0xc2, 0x06, 0x4c,
+ 0xc2, 0x99, 0x16, 0x00, 0xb5, 0x40, 0x4a, 0x25, 0xba, 0x83, 0xc9, 0x6b,
+ 0xc7, 0x75, 0xad, 0x57, 0xed, 0x72, 0x3d, 0xac, 0xab, 0x02, 0xf6, 0xe6,
+ 0x8d, 0x90, 0xc6, 0xcf, 0xe4, 0xe6, 0x55, 0xa1, 0x24, 0xf5, 0x7c, 0x01,
+ 0xb3, 0x03, 0x51, 0x44, 0x89, 0xe9, 0x30, 0x46, 0xb9, 0x57, 0xee, 0xa0,
+ 0xeb, 0x10, 0xa4, 0x30, 0xf6, 0x07, 0xb5, 0x14, 0x98, 0x6c, 0xbf, 0x43,
+ 0x03, 0x57, 0xcb, 0x4d, 0x9e, 0xb5, 0x6a, 0xfb, 0x83, 0xd9, 0x71, 0xc2,
+ 0xca, 0x8b, 0x42, 0xa9, 0xa7, 0xf2, 0xf2, 0xe9, 0x7c, 0x24, 0xf9, 0x98,
+ 0x02, 0x6a, 0xd8, 0x21, 0x8e, 0x88, 0x8f, 0xbc, 0x8c, 0xd9, 0x1e, 0xde,
+ 0xca, 0xf2, 0x89, 0x24, 0xf9, 0x93, 0x0d, 0xc2, 0xa3, 0xc2, 0x73, 0x9a,
+ 0x1f, 0x2f, 0x7c, 0x89, 0xb1, 0x08, 0xb5, 0xa8, 0xc7, 0x49, 0x57, 0xf1,
+ 0x3a, 0x93, 0x87, 0xb7, 0xac, 0x72, 0x81, 0x58, 0xbf, 0xdf, 0x02, 0x82,
+ 0x4c, 0x22, 0x5d, 0x14, 0xa4, 0xa6, 0x9a, 0xd5, 0x6a, 0xa3, 0xd4, 0x38,
+ 0xb9, 0xb3, 0x6c, 0x40, 0x8b, 0x49, 0xff, 0xeb, 0x92, 0xb9, 0xcb, 0xce,
+ 0xdb, 0x73, 0x93, 0xe6, 0x69, 0x3e, 0x11, 0x3b, 0x20, 0x79, 0x8a, 0xea,
+ 0xad, 0x33, 0xac, 0x6a, 0x20, 0x9c, 0x00, 0xbc, 0xd8, 0xdc, 0x63, 0x33,
+ 0x3b, 0x5b, 0x4e, 0x37, 0x46, 0xba, 0xc1, 0x20, 0xad, 0xf6, 0x57, 0x8d,
+ 0xb7, 0x52, 0x20, 0x93, 0xeb, 0x8d, 0x39, 0x35, 0x4a, 0x4d, 0x6e, 0x2d,
+ 0x20, 0x3d, 0x8d, 0x95, 0x19, 0x1f, 0xc5, 0x2c, 0xe2, 0x42, 0x79, 0x6e,
+ 0x75, 0x94, 0xf1, 0x71, 0x67, 0xd8, 0x36, 0x88, 0xfa, 0x8d, 0x21, 0xb4,
+ 0x0f, 0x48, 0x75, 0xbd, 0x03, 0x23, 0x2c, 0xf0, 0x93, 0x0b, 0xbf, 0xcd,
+ 0x47, 0x1c, 0xd7, 0x03, 0xe9, 0x44, 0xb0, 0x4a, 0x91, 0x73, 0x10, 0x9d,
+ 0x3d, 0x90, 0x68, 0x08, 0x19, 0xa0, 0x4a, 0xed, 0x98, 0x28, 0x9a, 0xac,
+ 0xe1, 0x03, 0x45, 0xcb, 0x10, 0x3d, 0x2f, 0x7e, 0x6a, 0xa0, 0x10, 0xb7,
+ 0xff, 0xd5, 0x15, 0x1c, 0x4d, 0x6b, 0x6f, 0xa7, 0x47, 0xf3, 0x53, 0x9b,
+ 0x43, 0xab, 0xc9, 0x2b, 0x72, 0x03, 0x94, 0xd0, 0xe8, 0x7b, 0x44, 0xeb,
+ 0xac, 0x50, 0xe0, 0xd0, 0x2c, 0x09, 0x59, 0xd8, 0xbc, 0x38, 0x75, 0x23,
+ 0xd1, 0xd9, 0xef, 0xb1, 0x20, 0x87, 0xdd, 0x1e, 0x5f, 0x07, 0x80, 0x8f,
+ 0xce, 0x14, 0xa4, 0x29, 0x2a, 0x89, 0x35, 0xd2, 0x4c, 0xc4, 0xf2, 0xd1,
+ 0xb5, 0x51, 0xfc, 0x72, 0x67, 0x35, 0xc9, 0xde, 0xde, 0x14, 0xde, 0xad,
+ 0x3d, 0x20, 0xc4, 0xff, 0xf1, 0xe6, 0xaf, 0x18, 0x45, 0x18, 0xcb, 0xe5,
+ 0x45, 0x27, 0x52, 0xbd, 0xca, 0x35, 0x4e, 0x2a, 0x4a, 0xe2, 0xe7, 0x45,
+ 0x51, 0x40, 0xad, 0x0b, 0xc1, 0x88, 0xf2, 0x9d, 0x08, 0xaa, 0x90, 0x31,
+ 0xe9, 0x1c, 0x18, 0xb5, 0x14, 0x05, 0x44, 0xe0, 0xea, 0xe5, 0xb5, 0x59,
+ 0xa9, 0x1f, 0x4a, 0xdc, 0x01, 0x31, 0xe9, 0x65, 0x0d, 0xca, 0x76, 0x1b,
+ 0xce, 0x83, 0x39, 0x01, 0x93, 0xa4, 0xec, 0xcb, 0x96, 0xfa, 0x62, 0xab,
+ 0x27, 0xb2, 0x71, 0xc1, 0x83, 0x7b, 0xee, 0xf2, 0x86, 0xd6, 0x97, 0xdb,
+ 0xba, 0x57, 0x6d, 0xaa, 0xcc, 0xd7, 0x0a, 0x7b, 0x4a, 0x53, 0x6e, 0x07,
+ 0x25, 0xad, 0xfd, 0xa1, 0x7d, 0xe5, 0xfd, 0x16, 0x82, 0x78, 0xd4, 0xe0,
+ 0xe0, 0x6e, 0xfc, 0x66, 0xbc, 0x96, 0x3e, 0x00, 0xc9, 0xc1, 0xfd, 0xc8,
+ 0xb7, 0xf8, 0xd7, 0x62, 0x64, 0x78, 0xc7, 0x9c, 0x77, 0xad, 0xc2, 0xca,
+ 0xfe, 0x87, 0x69, 0xbc, 0x9a, 0x32, 0xda, 0x53, 0xd7, 0xc3, 0x02, 0x0d,
+ 0x85, 0x68, 0x62, 0x92, 0x41, 0x51, 0x82, 0x8a, 0xe7, 0x86, 0x09, 0x3c,
+ 0xe5, 0x6a, 0x0f, 0x80, 0xac, 0x94, 0xff, 0x49, 0xbc, 0xd1, 0x8a, 0x3d,
+ 0xa4, 0xfe, 0x90, 0xef, 0x90, 0xe4, 0x00, 0xf8, 0xe0, 0xe2, 0xcd, 0x35,
+ 0x6c, 0x89, 0x86, 0x23, 0x4b, 0x62, 0x1b, 0xfe, 0x2e, 0x5b, 0x34, 0xda,
+ 0xca, 0xf7, 0x9e, 0x13, 0xc7, 0x45, 0xcd, 0xdf, 0x97, 0x92, 0x40, 0xa5,
+ 0xea, 0x99, 0xae, 0x18, 0x87, 0xe6, 0xfc, 0x16, 0x7a, 0x2e, 0x67, 0x4a,
+ 0x11, 0x8c, 0x02, 0x1f, 0xe2, 0x49, 0xe4, 0xe4, 0x27, 0x14, 0x93, 0x01,
+ 0x8a, 0x08, 0xe3, 0xcb, 0xa1, 0xc6, 0x7e, 0x7e, 0x12, 0xf0, 0x5a, 0x7b,
+ 0x1a, 0xbf, 0x3d, 0x8d, 0x55, 0x33, 0x1d, 0x93, 0x60, 0x85, 0xa2, 0x43,
+ 0x94, 0x49, 0xf1, 0x9c, 0x64, 0xd7, 0x10, 0xa5, 0x77, 0x2c, 0xa0, 0xd0,
+ 0x60, 0x00, 0x97, 0x03, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x71, 0x10, 0x00, 0x06, 0x10, 0x28, 0x00, 0x1e, 0xb8, 0x75,
+ 0xe0, 0x2c, 0x34, 0x83, 0x43, 0x2b, 0x1f, 0x1c, 0x1e, 0x28, 0x3b, 0x5d,
+ 0x33, 0x5c, 0x53, 0xd5, 0xf2, 0x0b, 0x0f, 0x1e, 0x88, 0x1e, 0x93, 0xcf,
+ 0x62, 0x6a, 0x9c, 0xdb, 0x86, 0x44, 0xef, 0x4d, 0x56, 0x17, 0x21, 0xba,
+ 0xfb, 0x8d, 0x3c, 0x66, 0xc7, 0x75, 0x43, 0xa5, 0xc4, 0x24, 0x87, 0x09,
+ 0x74, 0xff, 0xb7, 0x67, 0x0c, 0x48, 0x9e, 0x7f, 0x99, 0x12, 0x44, 0x1f,
+ 0x19, 0x3e, 0x00, 0xd0, 0xef, 0x78, 0x04, 0x0a, 0x41, 0xfd, 0xec, 0x97,
+ 0x90, 0xe1, 0xd9, 0x0e, 0x0e, 0xf5, 0xea, 0x73, 0xd7, 0xa5, 0xef, 0x32,
+ 0x47, 0x08, 0xb2, 0x96, 0x16, 0x6c, 0x30, 0x7c, 0xf0, 0x50, 0x34, 0x83,
+ 0xdb, 0xb3, 0x6a, 0x07, 0x60, 0x57, 0xec, 0x30, 0x23, 0x68, 0x85, 0xbf,
+ 0xcc, 0x2a, 0x1c, 0xc5, 0xcf, 0xa1, 0xc8, 0x4c, 0x10, 0xcb, 0xad, 0x0d,
+ 0x6b, 0xfc, 0x87, 0xc0, 0x7b, 0x4d, 0x2c, 0x1a, 0x8a, 0x3b, 0x12, 0x0d,
+ 0x14, 0x8b, 0x80, 0x6a, 0xc9, 0x7a, 0x88, 0x11, 0x78, 0x95, 0xf1, 0xf8,
+ 0xbf, 0xa1, 0x12, 0x97, 0x84, 0xd6, 0xed, 0xc8, 0x90, 0xca, 0xbc, 0xdf,
+ 0xd3, 0x56, 0xc0, 0xa8, 0x85, 0xd3, 0xaf, 0xe9, 0x33, 0xed, 0x85, 0x42,
+ 0x4d, 0xd9, 0x03, 0xd5, 0x55, 0x50, 0x5c, 0x9e, 0xc1, 0xa1, 0x1f, 0x9c,
+ 0xa2, 0xee, 0xc9, 0x5c, 0x65, 0xf1, 0xd8, 0x60, 0xf8, 0xc4, 0x33, 0xc2,
+ 0x92, 0x18, 0x16, 0x6f, 0x6a, 0xdd, 0xd0, 0x78, 0x43, 0x76, 0x4d, 0x53,
+ 0xec, 0xfc, 0x27, 0x83, 0x4c, 0x1d, 0xf6, 0x7d, 0x71, 0xce, 0xec, 0x34,
+ 0x5d, 0xd2, 0xe7, 0xd1, 0x7d, 0xfc, 0xb2, 0x0b, 0x84, 0xfe, 0x11, 0x4b,
+ 0xde, 0x32, 0x04, 0x75, 0x3a, 0x5f, 0xb3, 0xd0, 0xd1, 0x38, 0x6e, 0x6b,
+ 0x89, 0x62, 0x8c, 0x94, 0xdb, 0x6c, 0x18, 0xed, 0x34, 0xd2, 0x1a, 0xb4,
+ 0x6f, 0x31, 0x3d, 0x34, 0x03, 0xf0, 0x7e, 0xec, 0xd8, 0x6e, 0x79, 0xcd,
+ 0x7e, 0x23, 0x88, 0x4d, 0x10, 0x27, 0x1b, 0xd4, 0x8d, 0x35, 0x87, 0x3f,
+ 0xf1, 0x34, 0x39, 0x13, 0xf0, 0x42, 0x41, 0xf8, 0x39, 0x06, 0x27, 0xef,
+ 0x0c, 0xa6, 0xdb, 0xc4, 0x11, 0xd6, 0x4e, 0x4d, 0x67, 0x57, 0x52, 0x24,
+ 0x77, 0x4a, 0xb4, 0x94, 0x0f, 0x1a, 0x30, 0x15, 0x4e, 0xaf, 0x17, 0x68,
+ 0xc5, 0x8c, 0x6a, 0x2c, 0x1d, 0x1a, 0x21, 0x12, 0x6f, 0x7e, 0x4d, 0x9b,
+ 0x83, 0xc0, 0xa0, 0xc8, 0x4d, 0x46, 0x56, 0xb0, 0xf5, 0x2d, 0xdf, 0x3a,
+ 0x09, 0xfc, 0xc1, 0xcb, 0xa0, 0x97, 0x08, 0x95, 0xec, 0x14, 0xa9, 0xd1,
+ 0x8b, 0xdb, 0xa1, 0xbc, 0x9c, 0xc1, 0x34, 0x66, 0x91, 0x5d, 0xa0, 0xec,
+ 0x00, 0x1a, 0x6b, 0xc0, 0x55, 0xf2, 0x19, 0x6b, 0xf4, 0x15, 0x91, 0x2b,
+ 0x87, 0x20, 0x47, 0xa9, 0x89, 0x39, 0x20, 0xf1, 0xa2, 0x0c, 0xce, 0x59,
+ 0x68, 0x9c, 0xef, 0x9b, 0xa9, 0xec, 0x65, 0x9a, 0xd5, 0x24, 0xd8, 0x62,
+ 0x4e, 0xa5, 0x30, 0xc1, 0xff, 0x71, 0xc8, 0x24, 0x4d, 0xa5, 0x2f, 0xd2,
+ 0xd7, 0xba, 0xa6, 0x36, 0xad, 0x16, 0xbc, 0xc9, 0xce, 0xf6, 0x69, 0xe5,
+ 0x8c, 0xa3, 0x5f, 0x2a, 0x32, 0x48, 0x4f, 0xb2, 0x86, 0xfb, 0x22, 0x4f,
+ 0x9d, 0x4f, 0x93, 0xe3, 0x82, 0x57, 0xea, 0xe9, 0x3f, 0x40, 0x1b, 0x22,
+ 0xd2, 0x00, 0xbd, 0xdf, 0x2e, 0x41, 0xc6, 0xa3, 0x48, 0xcc, 0x95, 0x8b,
+ 0x30, 0x00, 0x52, 0x78, 0xc5, 0xd9, 0x92, 0x4d, 0xc5, 0x4b, 0x85, 0xd3,
+ 0xe2, 0x74, 0x34, 0xe1, 0xe4, 0x3e, 0x0f, 0xdd, 0xd7, 0xce, 0x81, 0x16,
+ 0x26, 0xd3, 0x2c, 0xe8, 0x00, 0x60, 0xfe, 0xa7, 0x6e, 0xc9, 0x86, 0x36,
+ 0x0e, 0xa2, 0xc3, 0x27, 0xb7, 0x8f, 0x46, 0xe3, 0x68, 0xa2, 0xfc, 0x4d,
+ 0xf6, 0x59, 0xcf, 0x57, 0x6a, 0xe8, 0xbf, 0x3d, 0x95, 0x07, 0x7c, 0xe4,
+ 0x0b, 0x0c, 0x8d, 0x44, 0x47, 0x36, 0x79, 0x73, 0x31, 0x80, 0xb7, 0xa5,
+ 0xfa, 0x21, 0x96, 0xee, 0x4a, 0xf6, 0x24, 0xb3, 0x31, 0xe0, 0xf3, 0x84,
+ 0x97, 0xe1, 0x4a, 0x46, 0x76, 0xcb, 0xc0, 0x1e, 0x1a, 0x51, 0xf9, 0x3d,
+ 0x4f, 0xa7, 0xbd, 0xd7, 0xff, 0x41, 0x32, 0x38, 0x75, 0x50, 0x10, 0x26,
+ 0xc4, 0x8f, 0x39, 0x3e, 0x02, 0x05, 0x52, 0x45, 0x73, 0x91, 0x5b, 0x45,
+ 0xf3, 0xf2, 0xbf, 0x2c, 0x47, 0x50, 0x59, 0x35, 0x1d, 0xba, 0xed, 0xe2,
+ 0x6e, 0x71, 0xe0, 0x79, 0xbf, 0x0d, 0x05, 0x5d, 0xbc, 0x64, 0x85, 0xb6,
+ 0x3d, 0x78, 0x0c, 0x05, 0xab, 0x02, 0x2a, 0x0e, 0xfe, 0x86, 0x2f, 0x63,
+ 0x1b, 0xa4, 0xd6, 0x9a, 0x59, 0x42, 0xe7, 0x6a, 0x8e, 0xcb, 0x70, 0x26,
+ 0xe5, 0xf9, 0x63, 0xf3, 0x7b, 0xb9, 0x1a, 0x98, 0xf7, 0x98, 0x16, 0xc0,
+ 0x8e, 0x28, 0xac, 0xa1, 0x42, 0x5e, 0x20, 0x33, 0x91, 0xb7, 0x3f, 0x21,
+ 0x35, 0xba, 0xaf, 0x7a, 0x27, 0x6d, 0xc5, 0x1d, 0x4c, 0xe3, 0x26, 0x9b,
+ 0x00, 0x31, 0x36, 0x3e, 0x57, 0xe4, 0xc7, 0xbd, 0xbe, 0x5e, 0x73, 0x25,
+ 0xb8, 0x82, 0xec, 0x58, 0x8b, 0x83, 0xda, 0x79, 0x43, 0xbc, 0xc3, 0xe3,
+ 0xb5, 0x7c, 0xef, 0x26, 0x50, 0xdb, 0x32, 0xa7, 0x74, 0x8d, 0xae, 0x93,
+ 0x25, 0xfe, 0xcd, 0x1b, 0x06, 0x41, 0x73, 0x1f, 0x6a, 0x96, 0x8a, 0x77,
+ 0x8f, 0x1e, 0xb1, 0xe9, 0x4b, 0x45, 0x87, 0xcb, 0xe0, 0x59, 0xf4, 0x5b,
+ 0xc2, 0xfd, 0x26, 0x21, 0xee, 0x29, 0x7a, 0xea, 0x05, 0xe8, 0x61, 0x2e,
+ 0x3b, 0x50, 0x9c, 0xe2, 0x7b, 0xac, 0x1d, 0xcc, 0x53, 0x24, 0x43, 0x00,
+ 0x56, 0xa1, 0x5d, 0x06, 0x53, 0x6d, 0x11, 0xaf, 0x14, 0xf1, 0x6c, 0x54,
+ 0xb0, 0xb6, 0x4d, 0x75, 0xde, 0xf9, 0xae, 0x7e, 0xcc, 0x22, 0xa5, 0x50,
+ 0x2d, 0x91, 0xd0, 0x28, 0x94, 0xb5, 0x02, 0x1b, 0xc6, 0x59, 0x95, 0xaa,
+ 0xdd, 0xfc, 0xb6, 0x97, 0xc5, 0xbd, 0x3b, 0x54, 0x5a, 0xd8, 0x20, 0xa8,
+ 0x0b, 0xb4, 0x86, 0xea, 0x61, 0x24, 0x5e, 0x36, 0xa2, 0x6b, 0x53, 0xd2,
+ 0x19, 0xec, 0x69, 0x6c, 0xe1, 0x8c, 0xb0, 0xa8, 0x50, 0x6a, 0x60, 0x11,
+ 0xd1, 0xd1, 0x3b, 0x21, 0x73, 0xcd, 0x76, 0x75, 0xe7, 0x09, 0xe7, 0x2c,
+ 0x85, 0xff, 0x82, 0xb2, 0x3a, 0x5b, 0xcc, 0x14, 0x0f, 0x63, 0xd8, 0x7d,
+ 0xec, 0x54, 0x3c, 0x4a, 0xd1, 0xbc, 0x3b, 0x38, 0x82, 0x63, 0x5e, 0x01,
+ 0xe7, 0xd5, 0x87, 0x32, 0xda, 0xf2, 0x93, 0xcd, 0x05, 0x1d, 0x9f, 0x52,
+ 0x3d, 0x6b, 0x15, 0x36, 0x23, 0xbc, 0x5a, 0xf4, 0x37, 0x14, 0x3f, 0x58,
+ 0x24, 0x8e, 0x09, 0x1b, 0xbd, 0xd0, 0x2f, 0xbd, 0xdc, 0xfd, 0x15, 0x3a,
+ 0x0d, 0x7b, 0xca, 0x4a, 0x14, 0x8b, 0xad, 0x57, 0xbc, 0x96, 0x16, 0x13,
+ 0xfe, 0x7d, 0xe5, 0x70, 0x94, 0x15, 0xf2, 0xa2, 0xc0, 0x0b, 0x03, 0x00,
+ 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00,
+ 0x05, 0x10, 0x24, 0x00, 0x1e, 0xe0, 0xb0, 0x7c, 0x53, 0xc6, 0xcd, 0x91,
+ 0x1d, 0xc5, 0x91, 0xcf, 0x4f, 0x5e, 0x92, 0xa1, 0x04, 0x51, 0xd6, 0xab,
+ 0x9c, 0xb1, 0xd6, 0x8a, 0xde, 0xb3, 0x94, 0x78, 0x86, 0x2f, 0x7e, 0x45,
+ 0x46, 0x54, 0xbc, 0x0c, 0xca, 0x19, 0xc2, 0xed, 0x9e, 0x68, 0x17, 0xce,
+ 0xcd, 0xe4, 0x66, 0xca, 0xd4, 0x77, 0xcd, 0x2f, 0x42, 0x5e, 0x58, 0xcc,
+ 0x98, 0x13, 0x2f, 0x2a, 0x1b, 0x5c, 0xc2, 0xd9, 0x1a, 0xc4, 0x53, 0xc6,
+ 0xb7, 0xf8, 0x26, 0x20, 0x4e, 0x4d, 0xb2, 0x0c, 0x43, 0xff, 0xff, 0x82,
+ 0x0c, 0xb9, 0x23, 0xff, 0xd5, 0x38, 0xf7, 0x6d, 0x8f, 0xdd, 0x0c, 0x37,
+ 0x90, 0x03, 0x53, 0xfd, 0x52, 0x2b, 0xc8, 0xae, 0x3d, 0x9c, 0xd8, 0x34,
+ 0xdb, 0x92, 0x07, 0x8b, 0xf5, 0xec, 0xa7, 0x15, 0x02, 0x27, 0x4e, 0xac,
+ 0xa2, 0x18, 0x70, 0xbb, 0x02, 0xd5, 0xd9, 0x40, 0x85, 0x61, 0x6b, 0x39,
+ 0x37, 0xf9, 0xa8, 0xba, 0x38, 0x24, 0x3c, 0xde, 0x6f, 0xa8, 0x77, 0x08,
+ 0x46, 0xdc, 0x58, 0xd1, 0x70, 0x85, 0x5f, 0x6d, 0x98, 0xff, 0x6a, 0x2c,
+ 0x10, 0x07, 0x14, 0x5f, 0x38, 0x15, 0x1d, 0x65, 0x29, 0x51, 0x49, 0x43,
+ 0x6f, 0x04, 0xef, 0x69, 0x03, 0xe8, 0x37, 0x25, 0x14, 0x7f, 0xd4, 0x64,
+ 0xaf, 0x2f, 0x80, 0xcd, 0xd8, 0x2c, 0xa8, 0x3b, 0x26, 0x29, 0x44, 0xc4,
+ 0xf1, 0x91, 0xad, 0x3f, 0x0f, 0x73, 0xb0, 0xa4, 0xda, 0x68, 0xe1, 0x65,
+ 0x8b, 0x97, 0x2b, 0xe5, 0xd2, 0x46, 0x30, 0x28, 0xe5, 0x8d, 0x79, 0x26,
+ 0xda, 0x0a, 0xdc, 0x20, 0x2c, 0xa4, 0x38, 0x27, 0xae, 0x2e, 0x86, 0xa6,
+ 0xc8, 0x88, 0x42, 0x27, 0x4a, 0xe9, 0xe6, 0xfd, 0xd4, 0x76, 0x5c, 0xce,
+ 0xdf, 0x89, 0xbe, 0x0b, 0x9c, 0x39, 0x04, 0x78, 0x05, 0x03, 0xb3, 0x77,
+ 0x49, 0x5f, 0xe1, 0x34, 0xf1, 0x8e, 0x5b, 0x71, 0x1f, 0x6e, 0x24, 0xca,
+ 0x0d, 0x55, 0x11, 0x58, 0x3a, 0xa6, 0xfa, 0xf1, 0xb8, 0xff, 0x86, 0x61,
+ 0x01, 0x8e, 0xf6, 0x42, 0x7e, 0xec, 0x58, 0x14, 0xf6, 0x93, 0x79, 0xd1,
+ 0x8b, 0xe0, 0x98, 0xae, 0xb7, 0xfc, 0x8d, 0x3e, 0xee, 0x16, 0x7a, 0x13,
+ 0x1a, 0x9d, 0xd2, 0x9f, 0xa4, 0x06, 0x40, 0x73, 0xaa, 0x7a, 0x2b, 0xda,
+ 0x65, 0x5a, 0x2e, 0xa5, 0xc2, 0x9b, 0x79, 0x9b, 0x74, 0xad, 0xa5, 0x8d,
+ 0xaf, 0x22, 0xaf, 0xdc, 0x07, 0x4d, 0x4c, 0xe8, 0xa0, 0x7c, 0x94, 0x42,
+ 0x4d, 0xdd, 0x8c, 0x4c, 0x49, 0xfa, 0x9b, 0xb1, 0x1c, 0xa3, 0xf9, 0x28,
+ 0x0c, 0x83, 0xfb, 0x24, 0x2a, 0x70, 0xf5, 0x6b, 0x9a, 0xbc, 0x44, 0x5b,
+ 0xc5, 0xc6, 0x8d, 0x18, 0x24, 0x98, 0xd9, 0xcd, 0x6a, 0x7c, 0x97, 0x6c,
+ 0x7e, 0xe4, 0xe9, 0x37, 0xe2, 0xe3, 0x6e, 0x0d, 0x78, 0xae, 0x5d, 0xad,
+ 0x04, 0xec, 0x83, 0xdd, 0x7a, 0xeb, 0xee, 0x97, 0x38, 0xf3, 0x5f, 0x2e,
+ 0x12, 0xcd, 0x52, 0x28, 0x2c, 0x5e, 0x76, 0xfb, 0xbf, 0x6b, 0x78, 0x09,
+ 0x63, 0xe0, 0x2d, 0xf1, 0x41, 0x8a, 0xd0, 0xb1, 0xf9, 0x1a, 0xbf, 0x16,
+ 0xe9, 0x97, 0xd4, 0xb8, 0x37, 0x39, 0x2b, 0xa9, 0xd4, 0x39, 0x18, 0xce,
+ 0xe0, 0x4e, 0x13, 0xc9, 0x62, 0xf7, 0x8b, 0xb2, 0x03, 0x22, 0xbb, 0x0a,
+ 0xf2, 0xe2, 0xb0, 0x81, 0x12, 0xcf, 0x48, 0x1a, 0x22, 0x8e, 0xa3, 0x05,
+ 0xb6, 0x67, 0xe9, 0x2b, 0xfe, 0xf3, 0x4f, 0xb1, 0xb4, 0x99, 0x66, 0x79,
+ 0x9e, 0x78, 0x1b, 0xeb, 0xac, 0x7d, 0x8e, 0x33, 0x0d, 0x59, 0xc8, 0x3c,
+ 0x83, 0x9b, 0xd8, 0xd0, 0x30, 0x8d, 0x83, 0x27, 0x1d, 0xcc, 0xa0, 0x8d,
+ 0xa5, 0x2e, 0x0c, 0x9e, 0xb5, 0x6a, 0x57, 0x82, 0x96, 0x40, 0x49, 0x9a,
+ 0xc1, 0x80, 0x14, 0x3f, 0x2f, 0x8d, 0xf0, 0x6a, 0x98, 0x06, 0xd2, 0xde,
+ 0x41, 0x4f, 0xbc, 0xe6, 0x57, 0x47, 0x11, 0xb0, 0x2a, 0x35, 0xbc, 0x24,
+ 0x71, 0x31, 0xd5, 0xb5, 0xf9, 0x6a, 0x02, 0xdc, 0x7b, 0xd8, 0x44, 0x6a,
+ 0xb9, 0xaa, 0x11, 0xc0, 0xe6, 0x8a, 0xfb, 0x42, 0x5c, 0xff, 0x7a, 0x82,
+ 0x39, 0x42, 0x23, 0x2f, 0x89, 0xa5, 0xb1, 0x02, 0x18, 0x54, 0x6e, 0x57,
+ 0x98, 0x61, 0x76, 0x6c, 0xd1, 0x3f, 0xe2, 0x97, 0xe3, 0x61, 0xc1, 0xb4,
+ 0xdf, 0x95, 0x7c, 0x5c, 0x6a, 0x5a, 0xeb, 0x20, 0x5b, 0x0e, 0x84, 0x91,
+ 0xb3, 0x1c, 0xd4, 0xe4, 0x37, 0xa0, 0x38, 0x3d, 0xbf, 0xe8, 0x85, 0x67,
+ 0x90, 0x84, 0x63, 0x4c, 0x24, 0x29, 0x19, 0x01, 0xdb, 0xcd, 0x41, 0xdd,
+ 0x2d, 0x21, 0xc5, 0x9d, 0x9a, 0xca, 0x04, 0x70, 0xce, 0xa9, 0xd6, 0x3c,
+ 0x6e, 0x83, 0x75, 0xba, 0x33, 0xf4, 0x67, 0xf4, 0x56, 0x02, 0x10, 0x85,
+ 0x42, 0x23, 0x40, 0x57, 0x04, 0xb1, 0x84, 0xd4, 0xe1, 0xb3, 0x74, 0x65,
+ 0x8a, 0xde, 0xc0, 0x04, 0xce, 0x97, 0x93, 0x96, 0x5a, 0xf3, 0xef, 0xdf,
+ 0xdf, 0x00, 0x0d, 0x29, 0xf6, 0xd5, 0x4e, 0xc5, 0x0f, 0x29, 0x24, 0x95,
+ 0x5f, 0xa4, 0x6c, 0x18, 0xbf, 0x3b, 0x58, 0xdf, 0x95, 0x2b, 0x1b, 0x3c,
+ 0x89, 0xf2, 0xd3, 0xcb, 0xe5, 0xed, 0x6f, 0x19, 0xc6, 0x95, 0x8f, 0xb7,
+ 0x06, 0x86, 0xcb, 0xa8, 0x13, 0xf9, 0x4e, 0x7a, 0x44, 0x48, 0x99, 0x3e,
+ 0x73, 0x65, 0x1a, 0xc8, 0xc4, 0x0e, 0xf2, 0xb8, 0x26, 0x68, 0x61, 0xa0,
+ 0x41, 0xe4, 0xac, 0xa0, 0xb7, 0x91, 0xcc, 0x5f, 0x7a, 0x3c, 0x44, 0xca,
+ 0xf9, 0x1b, 0x41, 0x38, 0x5d, 0xca, 0x7e, 0xcd, 0xa7, 0x4d, 0x35, 0x7f,
+ 0xba, 0xe5, 0x71, 0xff, 0x6d, 0x34, 0x15, 0x07, 0xe0, 0xbf, 0x19, 0x60,
+ 0xb0, 0xd1, 0x5a, 0x83, 0xb5, 0xdc, 0x05, 0x8a, 0x24, 0x7f, 0xc4, 0x48,
+ 0x1b, 0x0a, 0x11, 0xfb, 0x11, 0xaa, 0x6b, 0x00, 0x2d, 0x04, 0x00, 0x00,
+ 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0e, 0x00, 0x07,
+ 0x10, 0x20, 0x00, 0x1e, 0xba, 0x65, 0xb9, 0xa1, 0xff, 0xa2, 0x48, 0x0f,
+ 0xec, 0xca, 0xf6, 0x2e, 0x7c, 0x20, 0x06, 0x09, 0xe8, 0xf9, 0xe9, 0x01,
+ 0x3e, 0xcf, 0x4c, 0xc3, 0x21, 0xf4, 0x29, 0xb8, 0x7b, 0x36, 0xd2, 0xde,
+ 0xdd, 0x30, 0x52, 0x07, 0x27, 0x50, 0x5b, 0x89, 0xcd, 0xe3, 0xc1, 0x17,
+ 0xcd, 0x0a, 0x67, 0x88, 0x32, 0x71, 0xd6, 0x15, 0xe4, 0xc1, 0x4b, 0xbc,
+ 0x0d, 0x6e, 0x4b, 0x83, 0x53, 0x6c, 0xd8, 0xa3, 0xa4, 0x37, 0x58, 0xa8,
+ 0x58, 0x40, 0x80, 0x17, 0xcd, 0x5f, 0xff, 0x7c, 0xf8, 0x61, 0x14, 0xde,
+ 0x7e, 0x69, 0xec, 0x3f, 0xb5, 0xfa, 0x96, 0x34, 0xbd, 0x3c, 0x81, 0x81,
+ 0xa3, 0x0e, 0x95, 0x5b, 0xd8, 0xfd, 0xc8, 0xc6, 0xd6, 0x74, 0x9f, 0x6e,
+ 0x22, 0x04, 0x90, 0x54, 0x0a, 0x3c, 0x18, 0xaf, 0xe0, 0x0c, 0x9c, 0x30,
+ 0x0c, 0xe9, 0x08, 0x38, 0xf8, 0x71, 0xdb, 0x7d, 0xd7, 0x78, 0xac, 0x27,
+ 0x48, 0x1b, 0x21, 0xb3, 0x08, 0x45, 0x79, 0x6f, 0x8f, 0x8e, 0xff, 0x82,
+ 0x1c, 0x35, 0x27, 0xe3, 0x44, 0x5d, 0xf5, 0x13, 0x1f, 0xe9, 0x8e, 0x75,
+ 0xf1, 0x46, 0x04, 0x1a, 0x98, 0xbb, 0x99, 0xe7, 0x41, 0x31, 0xbd, 0x92,
+ 0x51, 0x1f, 0x11, 0x60, 0x4a, 0x34, 0xf0, 0x63, 0x58, 0xf7, 0x33, 0x28,
+ 0x26, 0x05, 0x9a, 0xbc, 0x50, 0xd7, 0x44, 0xe8, 0xf3, 0xc3, 0x00, 0xf9,
+ 0x1f, 0xaa, 0xb4, 0xa0, 0x8a, 0xea, 0x7f, 0xdf, 0x4c, 0x59, 0xa1, 0x1d,
+ 0x39, 0x75, 0x1e, 0x2f, 0xac, 0x7e, 0x2d, 0x2b, 0x89, 0x07, 0x2c, 0x16,
+ 0xfe, 0x77, 0x31, 0x00, 0xff, 0xb7, 0x7d, 0xb9, 0x57, 0x1d, 0x20, 0x58,
+ 0x75, 0x66, 0xea, 0xf3, 0xc8, 0x6f, 0x76, 0x01, 0xeb, 0xa1, 0x35, 0x8e,
+ 0xd9, 0xd2, 0xff, 0xd9, 0x40, 0x69, 0xf5, 0xce, 0x1f, 0x80, 0x4c, 0x07,
+ 0x52, 0xa8, 0xaa, 0x62, 0xd2, 0x80, 0xd1, 0x5b, 0xd3, 0x6a, 0x01, 0x42,
+ 0xaa, 0xbf, 0x76, 0x90, 0x97, 0x49, 0xf4, 0x3d, 0x63, 0x43, 0x8a, 0x32,
+ 0x03, 0xd3, 0x62, 0x44, 0x57, 0x03, 0x76, 0xe0, 0xa1, 0xb3, 0x87, 0x57,
+ 0xeb, 0xda, 0xf1, 0x39, 0x4a, 0x8c, 0x33, 0x16, 0x98, 0x7d, 0x3e, 0x80,
+ 0x8f, 0x08, 0x0b, 0xce, 0x16, 0x9e, 0x09, 0xdf, 0x81, 0xba, 0x39, 0xdd,
+ 0xb6, 0x21, 0x36, 0xd3, 0x27, 0x38, 0x4e, 0x3c, 0xc6, 0xe3, 0xfe, 0xa4,
+ 0x69, 0xe2, 0xba, 0xfa, 0xce, 0xd7, 0x27, 0x65, 0x0a, 0xf5, 0xef, 0x31,
+ 0xe1, 0x18, 0x15, 0xbb, 0xbe, 0x9f, 0x66, 0xa8, 0x67, 0x92, 0xa9, 0x8a,
+ 0x67, 0x74, 0xe1, 0x0b, 0xfc, 0x38, 0x0b, 0x3e, 0xb3, 0xd6, 0x0a, 0xc2,
+ 0x5c, 0x96, 0x0e, 0x84, 0x99, 0x56, 0x34, 0x4c, 0x3c, 0x0c, 0xcb, 0x56,
+ 0xf2, 0x00, 0xad, 0x06, 0xbb, 0xb1, 0xb0, 0xaa, 0x7f, 0x3a, 0xe1, 0x4f,
+ 0x55, 0x24, 0x96, 0x0b, 0xb3, 0xb8, 0xbb, 0x2e, 0x7f, 0xe4, 0x5a, 0x14,
+ 0x62, 0x2c, 0xd7, 0x14, 0xe4, 0x16, 0x34, 0x2e, 0xbe, 0x9c, 0x8f, 0x52,
+ 0x5f, 0x98, 0xdf, 0x14, 0xd0, 0xb6, 0x76, 0x12, 0x67, 0x77, 0x77, 0xac,
+ 0x6e, 0xd9, 0x1b, 0x41, 0xbf, 0xc6, 0xb4, 0xea, 0x34, 0x96, 0xb2, 0x2e,
+ 0xbc, 0x5f, 0x66, 0x4f, 0x16, 0x31, 0x09, 0xb5, 0xdc, 0xdb, 0x28, 0xf4,
+ 0x55, 0xab, 0x90, 0x6d, 0x5e, 0x9b, 0xd9, 0x4e, 0xfe, 0x46, 0xa6, 0x0f,
+ 0x5b, 0x54, 0x34, 0x17, 0x6a, 0x7c, 0xfc, 0x37, 0x2e, 0x42, 0x11, 0x97,
+ 0x43, 0xfd, 0x6a, 0xed, 0x9e, 0x41, 0x37, 0x21, 0x3a, 0xba, 0xe9, 0x29,
+ 0xff, 0x1a, 0xc4, 0xb8, 0x3d, 0x7a, 0x60, 0x73, 0x33, 0x77, 0xa3, 0xd3,
+ 0x1e, 0x08, 0xb3, 0x53, 0x1d, 0x40, 0xa0, 0x09, 0x96, 0xd1, 0x1a, 0x3b,
+ 0xf7, 0xa7, 0xe5, 0x4d, 0x38, 0x20, 0x41, 0x07, 0x71, 0xdd, 0xbf, 0xf7,
+ 0x5a, 0xb4, 0x71, 0xc2, 0xc0, 0x4b, 0x5d, 0x91, 0xe0, 0x0f, 0xbf, 0x4a,
+ 0xaa, 0xe8, 0xa8, 0xd0, 0xcc, 0x61, 0xa7, 0x47, 0x25, 0xf6, 0xfa, 0x8b,
+ 0x37, 0x39, 0x79, 0xeb, 0xf5, 0x57, 0x8f, 0x5a, 0x00, 0xd3, 0xc9, 0xd5,
+ 0xdb, 0x54, 0x59, 0xb8, 0x98, 0x5b, 0xe5, 0xb8, 0xb9, 0x0c, 0x03, 0x7b,
+ 0x50, 0xdf, 0xf0, 0xde, 0x0b, 0xbe, 0x3e, 0x11, 0x1e, 0x6f, 0x7d, 0xfc,
+ 0x1d, 0xfd, 0xe6, 0x08, 0x6e, 0x76, 0xfc, 0x7f, 0x3a, 0xaa, 0x81, 0xa7,
+ 0xcd, 0x72, 0x8b, 0x49, 0x82, 0x59, 0xd5, 0x38, 0xb8, 0x29, 0xab, 0xc4,
+ 0x27, 0xdd, 0x44, 0x1a, 0x73, 0x46, 0x46, 0xc5, 0x51, 0xc7, 0x76, 0x3d,
+ 0x05, 0xeb, 0x00, 0xfa, 0x43, 0x6c, 0x3d, 0x6f, 0x9f, 0x09, 0x45, 0xee,
+ 0x3a, 0x1b, 0xa0, 0x05, 0x11, 0xe9, 0x07, 0xbe, 0x8e, 0x68, 0x90, 0x48,
+ 0xac, 0x42, 0x43, 0x77, 0x79, 0x58, 0x79, 0x45, 0x24, 0x34, 0x4d, 0xa4,
+ 0x92, 0x5a, 0x68, 0x54, 0xa1, 0x97, 0xb2, 0x03, 0xea, 0x73, 0xaa, 0x8f,
+ 0x04, 0x14, 0x99, 0x3e, 0x45, 0x25, 0x96, 0x96, 0xe6, 0x82, 0x49, 0x16,
+ 0xc7, 0xb8, 0x65, 0x7e, 0x14, 0xd1, 0x9e, 0xee, 0xd1, 0xa0, 0xcf, 0x99,
+ 0x4b, 0xb8, 0xaa, 0xae, 0x03, 0x17, 0x91, 0xa5, 0x39, 0x2b, 0xaf, 0x8f,
+ 0xcd, 0x9e, 0xa6, 0x0d, 0x2f, 0xa6, 0x69, 0xe2, 0xc3, 0x6d, 0xd1, 0x0d,
+ 0x35, 0x52, 0xb5, 0xc8, 0x01, 0x20, 0xe5, 0x02, 0xa0, 0xf2, 0x6a, 0xce,
+ 0x2f, 0x08, 0x17, 0x1a, 0x3d, 0x66, 0xa0, 0xbd, 0xc8, 0x16, 0x68, 0xa7,
+ 0xd0, 0x37, 0x69, 0x4b, 0x7a, 0x7a, 0xf2, 0xd0, 0x56, 0x29, 0xa5, 0x91,
+ 0x7d, 0x49, 0x68, 0x5c, 0x53, 0xb7, 0x50, 0xea, 0x14, 0xca, 0x82, 0x35,
+ 0xee, 0x9a, 0x0b, 0x11, 0x9c, 0x5a, 0x97, 0x21, 0x01, 0xc4, 0xab, 0xeb,
+ 0x13, 0x31, 0x3d, 0xe5, 0x96, 0x61, 0xd9, 0xdf, 0x34, 0x31, 0xea, 0xd6,
+ 0xd3, 0xde, 0x82, 0xeb, 0x67, 0x28, 0x70, 0x70, 0x60, 0x36, 0xe0, 0x64,
+ 0x0e, 0x15, 0xf2, 0x7c, 0x44, 0x5f, 0x90, 0xd2, 0xeb, 0x81, 0xbe, 0x83,
+ 0x21, 0x30, 0x46, 0x45, 0x32, 0x29, 0xce, 0xad, 0xc1, 0x7b, 0xfe, 0x5e,
+ 0xd9, 0x1e, 0xde, 0x6b, 0xc2, 0x6f, 0x46, 0x21, 0x36, 0x04, 0x7c, 0x1f,
+ 0x58, 0x56, 0x30, 0x6f, 0x77, 0xd2, 0x79, 0x91, 0x3b, 0xbf, 0xd4, 0x6d,
+ 0x02, 0x61, 0xc9, 0x34, 0xeb, 0xe6, 0xfc, 0x20, 0x79, 0x8f, 0x79, 0x80,
+ 0x0e, 0x44, 0x5e, 0xfb, 0x17, 0xd8, 0x67, 0x83, 0xa1, 0xd1, 0x5e, 0xc7,
+ 0x68, 0x23, 0x31, 0xb5, 0xf7, 0xf8, 0xa2, 0x6d, 0x71, 0x18, 0x62, 0x0c,
+ 0x56, 0xc1, 0x1e, 0x74, 0xb8, 0xcf, 0x1c, 0xaa, 0x6e, 0x92, 0xc2, 0x78,
+ 0xd4, 0x93, 0xd3, 0xdb, 0xf4, 0x66, 0x01, 0x58, 0x8c, 0x45, 0xad, 0x35,
+ 0x5e, 0xe4, 0x55, 0xdc, 0x22, 0x7d, 0xce, 0x49, 0xfe, 0x8f, 0x8b, 0x96,
+ 0x86, 0x5b, 0xab, 0x30, 0x9d, 0x6b, 0xcc, 0xdc, 0x8f, 0xab, 0x93, 0x4f,
+ 0x59, 0x87, 0x3f, 0x08, 0x87, 0x06, 0x66, 0x11, 0x1f, 0x10, 0x5d, 0x92,
+ 0x55, 0x53, 0xcd, 0x5f, 0x3c, 0x82, 0x9a, 0xb4, 0xfb, 0x9c, 0x43, 0x65,
+ 0x45, 0x1f, 0xfb, 0x5d, 0x1d, 0x09, 0x64, 0xa3, 0xd9, 0x1a, 0xd9, 0xd1,
+ 0x77, 0x10, 0xf8, 0xc3, 0xfc, 0x49, 0x6b, 0xc7, 0x50, 0x7e, 0xec, 0xad,
+ 0x9d, 0x3d, 0xd3, 0x64, 0xd3, 0x53, 0xae, 0xd0, 0x66, 0x8d, 0xcd, 0xb9,
+ 0xe1, 0x57, 0xd9, 0xb7, 0xbb, 0x8e, 0x40, 0x80, 0x73, 0x71, 0x38, 0xdd,
+ 0x2e, 0x29, 0x68, 0x20, 0xcf, 0x44, 0x5a, 0xbd, 0x2b, 0x1d, 0x47, 0xb7,
+ 0x92, 0xea, 0xaa, 0x7c, 0x81, 0x3c, 0xb2, 0xec, 0xb9, 0xa7, 0x4f, 0xa6,
+ 0x4a, 0x19, 0x6b, 0xe4, 0x1f, 0x3e, 0x39, 0x57, 0x04, 0x1d, 0xcf, 0x00,
+ 0x16, 0xaf, 0x88, 0xb0, 0xa8, 0x00, 0xd4, 0xbb, 0x08, 0x64, 0x7a, 0x67,
+ 0x64, 0x5b, 0x0c, 0xcf, 0xcb, 0xe4, 0xc8, 0x54, 0x29, 0xd0, 0x20, 0x65,
+ 0x2e, 0xd2, 0xc3, 0x9d, 0x0c, 0x22, 0xb8, 0x50, 0x00, 0xa8, 0x03, 0x00,
+ 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x13, 0x00,
+ 0x05, 0x10, 0x20, 0x00, 0x1e, 0xdc, 0x50, 0x1e, 0x19, 0xbe, 0x49, 0x6f,
+ 0xcc, 0xfc, 0xf3, 0x73, 0x87, 0xf9, 0x6c, 0x01, 0xdc, 0x3f, 0x7c, 0x78,
+ 0x06, 0xab, 0xc0, 0xbb, 0x82, 0xde, 0x28, 0x7c, 0x85, 0xb1, 0xfd, 0xb9,
+ 0xca, 0xae, 0xf7, 0x00, 0xab, 0x8e, 0x2b, 0xce, 0xf9, 0xc9, 0x63, 0xb6,
+ 0x0a, 0x33, 0xf3, 0x34, 0x53, 0x4a, 0x38, 0xbd, 0x0f, 0xe0, 0x09, 0x79,
+ 0x9c, 0xb0, 0xdb, 0x15, 0x77, 0x01, 0x4d, 0x31, 0xe6, 0x26, 0xca, 0xec,
+ 0x08, 0xa7, 0xa3, 0x3c, 0x16, 0x71, 0x89, 0xe8, 0xd9, 0x32, 0xe5, 0x51,
+ 0xbc, 0x25, 0x87, 0xc5, 0xcc, 0x4f, 0xf0, 0x95, 0x09, 0x63, 0xfc, 0xdb,
+ 0xfd, 0x64, 0x58, 0xf9, 0xbe, 0x29, 0xdd, 0x05, 0x9f, 0x54, 0xa8, 0x15,
+ 0x39, 0xd4, 0x50, 0x05, 0x31, 0x2f, 0xcd, 0x05, 0x29, 0x06, 0x01, 0xf6,
+ 0x0d, 0xb9, 0xd4, 0xd0, 0xbf, 0xe0, 0x4a, 0x90, 0x00, 0x01, 0x87, 0xd6,
+ 0x31, 0xa0, 0x95, 0xb5, 0x83, 0xd8, 0xb2, 0x44, 0x4d, 0x88, 0xea, 0x13,
+ 0xfc, 0x6c, 0x89, 0x94, 0x42, 0x3e, 0xd6, 0xec, 0x50, 0xfe, 0xb4, 0x4a,
+ 0x40, 0xa3, 0x27, 0xff, 0x9f, 0xf5, 0x7a, 0xa0, 0x1d, 0x98, 0xc0, 0x41,
+ 0x98, 0x33, 0x12, 0xf9, 0x4f, 0x33, 0x21, 0xc2, 0x47, 0x62, 0x59, 0xb7,
+ 0xc7, 0x85, 0x11, 0x1c, 0xbe, 0x92, 0x4a, 0xba, 0x06, 0xe3, 0x5c, 0xd6,
+ 0xfc, 0xa4, 0x07, 0xf6, 0xe7, 0x0c, 0x16, 0x04, 0xef, 0x0c, 0xb7, 0x1d,
+ 0x9f, 0x51, 0x8c, 0xc6, 0x45, 0x29, 0x71, 0xbd, 0xb0, 0x21, 0xe1, 0xc2,
+ 0x14, 0x03, 0x7e, 0x89, 0xf6, 0xf2, 0xcb, 0xc7, 0x89, 0x05, 0x79, 0x17,
+ 0x96, 0xdd, 0xc2, 0x40, 0xe6, 0x78, 0xf7, 0xfc, 0x6a, 0x62, 0x01, 0x85,
+ 0xaa, 0x4c, 0x9c, 0x92, 0x15, 0xdb, 0xe2, 0x67, 0x2a, 0xf5, 0xa9, 0x81,
+ 0xc1, 0x0c, 0x67, 0xa9, 0x9e, 0x63, 0x7c, 0x80, 0xc8, 0x95, 0x26, 0x83,
+ 0x1a, 0x9e, 0x1c, 0xc7, 0xc5, 0x43, 0x9d, 0xb8, 0x88, 0x76, 0xfb, 0xa3,
+ 0x24, 0x99, 0xa6, 0x4b, 0x94, 0x3a, 0xf6, 0xe3, 0x5b, 0x12, 0x77, 0xed,
+ 0xed, 0xeb, 0x83, 0x8f, 0x8c, 0x30, 0xf0, 0x24, 0xfe, 0xe9, 0xb1, 0x32,
+ 0x9d, 0x93, 0x24, 0x07, 0x1e, 0x45, 0x68, 0xf5, 0x64, 0x86, 0xe7, 0xb0,
+ 0xbb, 0xd5, 0xda, 0x87, 0x76, 0xac, 0x7f, 0x0f, 0xba, 0xfd, 0x38, 0x74,
+ 0x45, 0xaa, 0x92, 0xdf, 0x45, 0x08, 0x21, 0xa0, 0x47, 0xab, 0x79, 0x3f,
+ 0xe1, 0x79, 0x9a, 0x67, 0x6e, 0xc5, 0x73, 0x68, 0x98, 0x2f, 0xcd, 0x4f,
+ 0x81, 0xed, 0x24, 0x10, 0x8f, 0x58, 0xad, 0x34, 0x66, 0x2b, 0x8c, 0x83,
+ 0x13, 0x29, 0xa8, 0x21, 0x0c, 0x29, 0x5d, 0x73, 0x87, 0x4c, 0x15, 0x2c,
+ 0x5c, 0x4d, 0xa2, 0xf5, 0x7d, 0x61, 0x92, 0x05, 0xbf, 0x7f, 0xff, 0x30,
+ 0x1d, 0x05, 0xb1, 0xbe, 0x31, 0x5c, 0xe9, 0xec, 0xcb, 0x4c, 0xe3, 0x1c,
+ 0x3c, 0xe4, 0x9a, 0x12, 0xaf, 0x7b, 0xfb, 0x29, 0x68, 0xac, 0x7f, 0xb6,
+ 0xa8, 0x17, 0x7e, 0x2a, 0x1d, 0x54, 0xff, 0x6d, 0xc7, 0x23, 0x56, 0xba,
+ 0xaf, 0x43, 0x88, 0x51, 0x07, 0xb6, 0xe2, 0xb2, 0xe8, 0x9f, 0xc2, 0x94,
+ 0x79, 0x39, 0x57, 0x42, 0xe6, 0x6a, 0xd0, 0x9a, 0xa7, 0xab, 0xfa, 0x1e,
+ 0x88, 0x90, 0xac, 0x23, 0x63, 0x76, 0xa0, 0x86, 0x54, 0x08, 0x41, 0x04,
+ 0x0f, 0x08, 0x40, 0x1d, 0x06, 0xf6, 0xb3, 0x44, 0xd7, 0xc0, 0x12, 0xaf,
+ 0x90, 0x13, 0x52, 0xc3, 0x13, 0x14, 0xdb, 0xcb, 0x6c, 0x10, 0xa4, 0xd9,
+ 0x40, 0xd0, 0x2e, 0x95, 0xda, 0xee, 0x9c, 0x9d, 0x25, 0x0c, 0x23, 0xac,
+ 0x0b, 0xff, 0xc9, 0xfb, 0xda, 0xa4, 0x8b, 0x60, 0xff, 0xfa, 0xe0, 0x72,
+ 0x44, 0x0c, 0x38, 0x44, 0x7b, 0x73, 0xd3, 0x5f, 0x29, 0x80, 0x09, 0x92,
+ 0x00, 0xbc, 0x67, 0x6f, 0xdd, 0xb4, 0xf1, 0x4a, 0x46, 0x11, 0xe5, 0x5b,
+ 0xd3, 0xa7, 0x36, 0xd7, 0x5e, 0x5e, 0xa6, 0x1d, 0x81, 0x4d, 0x92, 0xbe,
+ 0x91, 0xc3, 0x49, 0x8f, 0xbb, 0xa0, 0x8c, 0x5b, 0xdd, 0xce, 0xa1, 0x68,
+ 0xff, 0x82, 0x7d, 0xbc, 0x54, 0xca, 0x82, 0x38, 0x1b, 0x9a, 0x5a, 0x3a,
+ 0xcc, 0x44, 0x78, 0xc1, 0x56, 0x18, 0x2e, 0x72, 0xab, 0xf0, 0xe1, 0xea,
+ 0x3e, 0xdc, 0x03, 0x54, 0x1c, 0x69, 0x31, 0xec, 0x0a, 0x6a, 0xfa, 0x87,
+ 0xbf, 0x44, 0xd2, 0x9f, 0x30, 0x31, 0xeb, 0x71, 0xe5, 0x86, 0x70, 0xa2,
+ 0x6e, 0x65, 0x0e, 0x74, 0xb6, 0x84, 0xc2, 0x14, 0x95, 0x7a, 0x64, 0x31,
+ 0xdc, 0x1a, 0x1f, 0xdd, 0x85, 0xbd, 0xd9, 0x91, 0x4e, 0x05, 0x54, 0xc7,
+ 0xbd, 0xbf, 0x2f, 0x46, 0x0d, 0xe9, 0x4e, 0x95, 0x2c, 0xe7, 0x7b, 0xab,
+ 0x01, 0x51, 0x8d, 0xfe, 0xc9, 0xb6, 0x4a, 0x94, 0xdb, 0x0e, 0x0c, 0xaf,
+ 0xa9, 0x5f, 0x95, 0x53, 0x3d, 0x2b, 0x51, 0xf7, 0x92, 0x29, 0xbf, 0x8c,
+ 0xfd, 0x09, 0x86, 0x1b, 0x54, 0x12, 0x59, 0xdc, 0x94, 0x2d, 0x2b, 0xc9,
+ 0x72, 0x10, 0xe8, 0x74, 0x0f, 0x30, 0xa4, 0x4c, 0xeb, 0xaf, 0xd0, 0x2c,
+ 0x5f, 0x9f, 0x0a, 0xf7, 0xda, 0xaa, 0xbf, 0xcd, 0x20, 0xb1, 0xa7, 0x9f,
+ 0x54, 0xb2, 0x0d, 0xc4, 0xac, 0x47, 0x43, 0xc8, 0x26, 0x15, 0x1e, 0x71,
+ 0x43, 0xea, 0x91, 0x83, 0xa0, 0xce, 0x8b, 0xb7, 0xda, 0x5f, 0x10, 0x18,
+ 0xb2, 0x0c, 0xb7, 0x33, 0xe8, 0xf3, 0x53, 0x22, 0xa6, 0x89, 0xfd, 0x15,
+ 0x05, 0xc3, 0x76, 0xc4, 0xee, 0x3f, 0x73, 0x59, 0x29, 0x6d, 0xaa, 0x97,
+ 0x46, 0x81, 0x6e, 0xd3, 0xe4, 0x81, 0x7c, 0x9a, 0xba, 0x81, 0x09, 0xac,
+ 0x25, 0x29, 0xdf, 0x6e, 0x8a, 0x65, 0x16, 0xfe, 0xa6, 0x30, 0x34, 0x58,
+ 0x98, 0x5c, 0x71, 0x70, 0x1f, 0xae, 0xd2, 0x78, 0xf2, 0x81, 0xee, 0x04,
+ 0xda, 0xba, 0x9f, 0x6f, 0x48, 0xb0, 0xcb, 0xe5, 0x87, 0xe0, 0xdf, 0xe3,
+ 0xcd, 0x9b, 0xa0, 0xca, 0xdd, 0xab, 0x1d, 0x54, 0x32, 0x6c, 0x2b, 0x1c,
+ 0xb0, 0xa7, 0x9b, 0x29, 0x30, 0x2a, 0x15, 0x1f, 0x47, 0xa9, 0x11, 0xc9,
+ 0x14, 0x43, 0xce, 0x24, 0x41, 0xce, 0x98, 0x13, 0x47, 0x31, 0xf6, 0x0f,
+ 0x1d, 0x1d, 0xca, 0x8d, 0x28, 0xd7, 0x23, 0x18, 0xdc, 0x61, 0x3a, 0x8b,
+ 0xad, 0x03, 0x1d, 0x10, 0xaf, 0x4a, 0x70, 0x8c, 0xf6, 0xae, 0x09, 0xc5,
+ 0x91, 0x9e, 0xb9, 0x38, 0x6e, 0x2b, 0x97, 0xa9, 0xfc, 0xe8, 0xc2, 0xc2,
+ 0x49, 0x99, 0x03, 0x99, 0xb4, 0xbd, 0x34, 0xf0, 0x88, 0x81, 0x7c, 0xac,
+ 0xf4, 0x25, 0x33, 0x49, 0x84, 0xc1, 0x01, 0x08, 0x9e, 0x6f, 0xc5, 0xa8,
+ 0x33, 0x8d, 0xd4, 0x6b, 0x1b, 0x21, 0xf0, 0x29, 0x3c, 0x8b, 0x8a, 0x03,
+ 0x45, 0x5c, 0x62, 0xb0, 0x9d, 0x4e, 0x3e, 0xa1, 0x1b, 0x34, 0x78, 0x54,
+ 0x7c, 0x37, 0x18, 0xcb, 0x64, 0x09, 0x91, 0xb3, 0xec, 0xe5, 0x93, 0x85,
+ 0x91, 0x5d, 0xc7, 0xc3, 0xa7, 0x50, 0x26, 0xd8, 0x00, 0x19, 0x05, 0x00,
+ 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x11, 0x00,
+ 0x06, 0x10, 0x1c, 0x00, 0x1e, 0xbd, 0x5f, 0xb6, 0x8f, 0x2c, 0xba, 0x13,
+ 0x93, 0x75, 0x72, 0x5b, 0xcd, 0xf3, 0x81, 0xc1, 0x48, 0xce, 0x8f, 0x34,
+ 0xee, 0xc9, 0x2e, 0x11, 0xc5, 0x9c, 0x04, 0x90, 0x15, 0x2d, 0x63, 0x96,
+ 0x9a, 0x4b, 0xac, 0xfa, 0xa8, 0xc3, 0x18, 0x58, 0xed, 0xc5, 0xc3, 0x1e,
+ 0x12, 0x72, 0xb8, 0xee, 0x00, 0x33, 0xfa, 0xad, 0xce, 0xbd, 0x5d, 0x0a,
+ 0x9c, 0x75, 0x1f, 0x66, 0x9f, 0xa0, 0x60, 0xc8, 0x97, 0x78, 0xcd, 0x08,
+ 0xed, 0x09, 0xcb, 0x7e, 0xfa, 0x83, 0x05, 0x03, 0xba, 0xd2, 0x37, 0x6f,
+ 0x9d, 0x4c, 0x43, 0xd5, 0x40, 0xac, 0x67, 0xb7, 0xee, 0x45, 0x38, 0x14,
+ 0xf2, 0xfd, 0x4b, 0xfc, 0x24, 0x6b, 0xad, 0xbe, 0x1e, 0x71, 0x74, 0x70,
+ 0x02, 0x45, 0xaa, 0x2d, 0x5e, 0xc2, 0x79, 0xa3, 0xb1, 0x27, 0x69, 0xa6,
+ 0xe5, 0xc8, 0x89, 0xee, 0x76, 0xe9, 0xbf, 0xde, 0xce, 0x82, 0xb4, 0x97,
+ 0x75, 0xa6, 0x38, 0x31, 0x09, 0x00, 0xce, 0x35, 0x21, 0xfc, 0xe6, 0x05,
+ 0xbf, 0xb5, 0x76, 0x20, 0xbb, 0xac, 0x61, 0x30, 0x93, 0x8b, 0x0e, 0x51,
+ 0x48, 0xdd, 0x2c, 0x95, 0xb8, 0xad, 0x2d, 0x96, 0x0d, 0x5d, 0xa1, 0xad,
+ 0xe3, 0xbe, 0x16, 0xd6, 0x79, 0x82, 0x30, 0xb7, 0xc4, 0x75, 0xf2, 0xee,
+ 0x67, 0x5b, 0xab, 0xd8, 0xb3, 0x35, 0x73, 0xc5, 0x2d, 0x99, 0xff, 0x41,
+ 0x4b, 0x01, 0x60, 0xdc, 0xb9, 0x39, 0x31, 0x0d, 0x68, 0xe2, 0xd0, 0x8b,
+ 0x34, 0x67, 0x60, 0xee, 0x61, 0xf1, 0x6b, 0xe6, 0x15, 0xdc, 0x43, 0x6b,
+ 0x65, 0x6f, 0x39, 0x64, 0x01, 0x52, 0xa5, 0xb3, 0x1f, 0xe6, 0x1e, 0x39,
+ 0xd1, 0xd5, 0x78, 0x4f, 0x77, 0x28, 0x8d, 0x0a, 0xee, 0xde, 0x02, 0x15,
+ 0x57, 0xaa, 0xb2, 0xe8, 0xa8, 0x21, 0xc8, 0x68, 0xac, 0x82, 0x52, 0xea,
+ 0x33, 0x6f, 0x94, 0xd3, 0x06, 0x0b, 0xde, 0x87, 0xff, 0xbf, 0x41, 0x51,
+ 0x37, 0xb6, 0xc2, 0xaa, 0x7b, 0xdf, 0x6a, 0x40, 0x18, 0x52, 0x88, 0xf1,
+ 0xdf, 0x01, 0xc7, 0x76, 0x1a, 0x1f, 0xac, 0x3e, 0x33, 0xef, 0x02, 0x68,
+ 0xf5, 0x77, 0x64, 0x8f, 0x5a, 0xd3, 0x17, 0xef, 0xbd, 0xc7, 0x56, 0x4f,
+ 0x51, 0xdd, 0x6a, 0x05, 0xfc, 0x40, 0xf8, 0x7b, 0x5b, 0x14, 0xd9, 0x63,
+ 0xb3, 0x37, 0x1b, 0x29, 0x08, 0x48, 0x8c, 0xed, 0x82, 0x16, 0x4f, 0x68,
+ 0xa4, 0x16, 0x07, 0x8b, 0xbb, 0x5d, 0xe1, 0xef, 0x71, 0x9e, 0x07, 0xc6,
+ 0x29, 0x8d, 0xd7, 0x39, 0xde, 0x4c, 0xde, 0x6c, 0xc4, 0x46, 0xc3, 0x44,
+ 0x7b, 0x52, 0xae, 0x81, 0xc9, 0xcd, 0xe6, 0x44, 0x2c, 0xd4, 0xf3, 0x48,
+ 0x38, 0x9c, 0x12, 0x2a, 0x91, 0x29, 0x48, 0x80, 0xcd, 0x79, 0x5c, 0xff,
+ 0x34, 0x6a, 0xab, 0x39, 0xd6, 0x60, 0x60, 0x44, 0x74, 0x66, 0xd6, 0xbf,
+ 0x5e, 0xe6, 0x26, 0xcb, 0x2c, 0x13, 0x89, 0xdf, 0xf1, 0x4d, 0xe0, 0x3d,
+ 0xcc, 0xd8, 0x81, 0x7e, 0x55, 0x77, 0x82, 0xcf, 0x77, 0x69, 0x34, 0x83,
+ 0x4d, 0x07, 0x47, 0x60, 0x96, 0x54, 0x66, 0x41, 0x4a, 0xbd, 0xfa, 0xbf,
+ 0xab, 0xe8, 0x62, 0xe0, 0xa0, 0xbb, 0xb1, 0x20, 0x54, 0x86, 0x30, 0xb9,
+ 0x60, 0x48, 0x17, 0xc7, 0x8f, 0x6f, 0x96, 0x78, 0x4a, 0x56, 0x88, 0x2e,
+ 0x13, 0xf8, 0x09, 0x85, 0xb3, 0x2d, 0x5d, 0x7e, 0xe3, 0x65, 0x1a, 0xb8,
+ 0x29, 0xc9, 0xd6, 0x83, 0xf4, 0xc1, 0x04, 0x10, 0xb7, 0xad, 0x92, 0xad,
+ 0x30, 0xdf, 0xa9, 0xe7, 0xdb, 0xf5, 0xc7, 0xb9, 0x7d, 0x23, 0x41, 0xef,
+ 0x3a, 0x9c, 0x0b, 0x9f, 0xba, 0x1c, 0x5b, 0xda, 0xc0, 0x81, 0x63, 0x49,
+ 0x2b, 0x4d, 0xf0, 0x3e, 0x7a, 0x4d, 0x81, 0x2f, 0x22, 0xf1, 0x0e, 0xe5,
+ 0xbf, 0x90, 0x8b, 0xab, 0x94, 0xfa, 0xd9, 0xfb, 0x46, 0x0c, 0xc1, 0xc7,
+ 0x43, 0x17, 0x45, 0xc6, 0x4c, 0xef, 0xe3, 0x3b, 0x2e, 0xc9, 0x3e, 0xaa,
+ 0x70, 0x9a, 0xfa, 0xe4, 0xdb, 0x93, 0xa9, 0xab, 0xe4, 0xed, 0xab, 0x7e,
+ 0xde, 0x53, 0xb2, 0xa3, 0xd6, 0xd0, 0xf6, 0x51, 0x24, 0x47, 0x9c, 0x49,
+ 0x74, 0x56, 0xcc, 0x21, 0xf0, 0x91, 0x48, 0xc2, 0xbb, 0x3e, 0xfd, 0xf2,
+ 0xed, 0xac, 0x6d, 0x17, 0x95, 0xdf, 0xa8, 0xbb, 0x77, 0x59, 0xd5, 0x6a,
+ 0x29, 0xfc, 0x65, 0x47, 0xba, 0x13, 0xc2, 0x46, 0x46, 0xf6, 0x40, 0xda,
+ 0xbf, 0x5e, 0xda, 0x64, 0xb4, 0xc1, 0xbc, 0x5f, 0x5a, 0x36, 0xf0, 0xa0,
+ 0xee, 0xbe, 0x19, 0xb9, 0x5f, 0x29, 0x0b, 0xd0, 0xa5, 0xe2, 0x9e, 0x8f,
+ 0xbc, 0x15, 0x6a, 0x96, 0x00, 0xae, 0x17, 0xc7, 0xd6, 0x05, 0xd4, 0xa0,
+ 0xb0, 0x90, 0x0c, 0x7b, 0x90, 0xc5, 0xe4, 0xb4, 0x30, 0x9f, 0x14, 0xf2,
+ 0x57, 0xfc, 0x46, 0xff, 0xa7, 0x67, 0xc4, 0x76, 0x92, 0x7b, 0x07, 0xfe,
+ 0xe6, 0xa3, 0x65, 0x14, 0x35, 0x68, 0xe0, 0xb9, 0x0e, 0xf0, 0xea, 0x1c,
+ 0x84, 0x4c, 0xc8, 0x83, 0x97, 0x5c, 0x76, 0x70, 0x7a, 0x9d, 0xad, 0xb4,
+ 0x32, 0x20, 0x63, 0x20, 0x11, 0x2b, 0xd8, 0x0f, 0xcf, 0x28, 0x94, 0x3a,
+ 0x4d, 0xa6, 0xa0, 0xca, 0x21, 0x41, 0x0c, 0x9b, 0xb0, 0xbc, 0x3e, 0x94,
+ 0xab, 0x8c, 0xcf, 0x13, 0x77, 0x0f, 0x18, 0xd3, 0x66, 0xac, 0x26, 0x23,
+ 0x21, 0xe4, 0xe4, 0x5b, 0x8d, 0x36, 0x15, 0xab, 0x1c, 0xa7, 0x76, 0xcd,
+ 0x55, 0x5b, 0xfa, 0x1a, 0x07, 0x57, 0x2a, 0x84, 0xac, 0xf7, 0x9a, 0xf9,
+ 0xfb, 0x19, 0xad, 0x81, 0xb3, 0xa5, 0x45, 0xa3, 0xe4, 0x17, 0x85, 0xa4,
+ 0xfc, 0xd1, 0x84, 0x86, 0x8a, 0xb2, 0x6d, 0x55, 0xd6, 0x1b, 0xee, 0xab,
+ 0x9b, 0x50, 0x99, 0x0b, 0x92, 0x5c, 0x6b, 0xca, 0x5d, 0xab, 0xb8, 0xe2,
+ 0xe6, 0x2d, 0x6f, 0x6f, 0xf6, 0xee, 0x0c, 0x11, 0x50, 0xa5, 0x8b, 0x32,
+ 0xd1, 0x03, 0x5d, 0x43, 0x1c, 0xa1, 0x76, 0x15, 0xcc, 0xda, 0xe9, 0x60,
+ 0xe4, 0x57, 0x69, 0xf7, 0x99, 0x93, 0xfa, 0x29, 0x6a, 0xca, 0xb2, 0xbf,
+ 0xa8, 0x9f, 0x10, 0x9a, 0xe1, 0x8b, 0x72, 0xf2, 0x47, 0x1c, 0xe2, 0x6d,
+ 0xd9, 0x86, 0x74, 0xc0, 0x52, 0x96, 0x74, 0x1d, 0xb1, 0xff, 0x53, 0x7f,
+ 0x33, 0xa0, 0x9f, 0xb5, 0x82, 0x62, 0xee, 0x78, 0x16, 0x32, 0xb8, 0x9f,
+ 0x71, 0xa2, 0xb8, 0xdf, 0x73, 0xa5, 0xae, 0x2a, 0x9a, 0x11, 0x2d, 0x39,
+ 0xdf, 0xc0, 0x81, 0x63, 0x8e, 0x5b, 0xdf, 0x89, 0x26, 0xdd, 0x04, 0xa8,
+ 0xad, 0x53, 0xe4, 0x77, 0xea, 0x4b, 0x6a, 0x1b, 0x54, 0xb4, 0x3a, 0x08,
+ 0xeb, 0x76, 0x08, 0x7a, 0xa8, 0x62, 0x04, 0x8a, 0x47, 0xd1, 0xe7, 0x03,
+ 0x13, 0xd3, 0x50, 0x68, 0xe6, 0xfe, 0x7a, 0x11, 0xb4, 0x27, 0xb0, 0x83,
+ 0x9d, 0x0c, 0x72, 0x20, 0x0a, 0x5a, 0x3c, 0x2c, 0x70, 0x64, 0x5f, 0x53,
+ 0xdf, 0x39, 0x9b, 0xf5, 0x99, 0x95, 0xc5, 0x96, 0x99, 0x04, 0x73, 0xd2,
+ 0x4d, 0x15, 0xe2, 0x73, 0x08, 0xcf, 0x14, 0x7a, 0x72, 0x36, 0x6e, 0x54,
+ 0xe5, 0x8f, 0xcb, 0xb8, 0xb3, 0x2d, 0x30, 0x3e, 0xbe, 0x76, 0xfb, 0x8e,
+ 0xe0, 0x90, 0xaf, 0xd0, 0x72, 0x2d, 0x43, 0xef, 0xa0, 0x31, 0x2f, 0x3e,
+ 0x40, 0x16, 0xf4, 0xae, 0x4f, 0xbe, 0x80, 0x23, 0x43, 0x4d, 0x47, 0xec,
+ 0x54, 0x07, 0xf1, 0x9b, 0x45, 0x95, 0x63, 0x32, 0x56, 0x01, 0x0e, 0x88,
+ 0x10, 0x85, 0x90, 0xe6, 0xfd, 0x58, 0x3b, 0x19, 0x92, 0x73, 0x89, 0x15,
+ 0xfe, 0x28, 0x42, 0x1b, 0x09, 0xf0, 0x36, 0x32, 0x06, 0x21, 0x17, 0x71,
+ 0x67, 0x4f, 0xe4, 0x8c, 0x75, 0x8a, 0x61, 0x69, 0x6a, 0x6f, 0xd6, 0x17,
+ 0x12, 0xc5, 0xfe, 0x54, 0xb4, 0x61, 0xec, 0x06, 0xd2, 0x1a, 0x6f, 0xfe,
+ 0x76, 0x21, 0xeb, 0x6c, 0xdd, 0x60, 0x4c, 0xa6, 0xa0, 0x0b, 0xab, 0xb7,
+ 0xfd, 0xe6, 0x99, 0x7f, 0x6c, 0xbc, 0x61, 0x94, 0xcc, 0x77, 0x3a, 0xd2,
+ 0xe1, 0x15, 0x24, 0x4d, 0x7e, 0xc3, 0x55, 0xef, 0x41, 0xf8, 0x78, 0x25,
+ 0x92, 0xd6, 0x78, 0x21, 0xa4, 0x08, 0x8f, 0x1f, 0xb3, 0xb0, 0x1c, 0xd8,
+ 0x5f, 0xea, 0x72, 0x09, 0x26, 0xb6, 0x60, 0x66, 0x1b, 0x83, 0x2d, 0x0e,
+ 0x10, 0xfd, 0x0e, 0x43, 0xf1, 0xe0, 0xd7, 0x85, 0xf9, 0xb5, 0xbb, 0x9a,
+ 0x98, 0x05, 0xe0, 0xbd, 0x56, 0x64, 0x6b, 0xac, 0x40, 0xdf, 0x74, 0x44,
+ 0xc1, 0x5b, 0xaf, 0x95, 0x2b, 0xd7, 0x70, 0x24, 0x1a, 0x09, 0x18, 0x2d,
+ 0xc7, 0xd5, 0x79, 0xe2, 0x68, 0x16, 0xc6, 0xba, 0xc8, 0x02, 0x12, 0x30,
+ 0x5b, 0x8f, 0xaa, 0xf3, 0xc4, 0xd0, 0x2d, 0x8d, 0x75, 0x90, 0x04, 0x24,
+ 0x60, 0xb7, 0x1f, 0x55, 0xe7, 0x89, 0x44, 0xf8, 0xbd, 0x58, 0x27, 0xb8,
+ 0x42, 0x73, 0x0a, 0x75, 0x37, 0xfc, 0x2a, 0x66, 0xb1, 0x24, 0x39, 0x66,
+ 0x74, 0xde, 0xf6, 0x96, 0xc8, 0x6b, 0x87, 0x2a, 0xc8, 0x40, 0x0f, 0x53,
+ 0x6f, 0x80, 0xd6, 0xe1, 0x2c, 0x32, 0x54, 0xce, 0x22, 0xd9, 0x4b, 0x6e,
+ 0xb8, 0x0e, 0xe5, 0xf2, 0x23, 0x7c, 0x00, 0xdc, 0x9b, 0x66, 0x75, 0xfe,
+ 0xf6, 0xbc, 0x4a, 0x19, 0xdb, 0xb8, 0x23, 0x20, 0x80, 0x09, 0x6e, 0xe4,
+ 0x3c, 0x9d, 0x3e, 0x3c, 0x51, 0xc0, 0x8a, 0x64, 0x70, 0x1d, 0x98, 0xab,
+ 0xce, 0x06, 0x53, 0x0d, 0xd1, 0x1e, 0x10, 0x3b, 0xef, 0x29, 0xc4, 0xa8,
+ 0xb1, 0x6e, 0x60, 0x09, 0xa3, 0xab, 0x72, 0x4e, 0xb9, 0x8c, 0xe3, 0x2c,
+ 0x84, 0x56, 0x55, 0xb4, 0x27, 0x98, 0x58, 0xe5, 0xa9, 0xfd, 0xe4, 0x67,
+ 0xa7, 0x88, 0xdf, 0x4f, 0x6d, 0x80, 0x8e, 0x8f, 0x6b, 0xeb, 0x5e, 0x3d,
+ 0x14, 0x48, 0x8a, 0xad, 0x57, 0x7f, 0x1d, 0x86, 0x90, 0x44, 0x77, 0x7a,
+ 0x37, 0x10, 0x38, 0xe6, 0x6e, 0x30, 0x7d, 0x06, 0x00, 0x00, 0x48, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x12, 0x00, 0x07, 0x10, 0x14,
+ 0x00, 0x1e, 0xa7, 0x1d, 0x7a, 0xe9, 0x90, 0x33, 0xfe, 0xd5, 0x06, 0x22,
+ 0xcb, 0xff, 0x4b, 0xd1, 0x02, 0x49, 0x2f, 0x75, 0x75, 0xa1, 0x36, 0xf2,
+ 0xff, 0xce, 0xce, 0x5b, 0xf9, 0x7f, 0xd5, 0x60, 0x8f, 0x11, 0x0d, 0x1a,
+ 0x62, 0x6e, 0xb4, 0xa5, 0xff, 0x41, 0x11, 0xfe, 0x41, 0xe9, 0xc1, 0xcf,
+ 0x0e, 0xec, 0x95, 0x2d, 0x1f, 0xf8, 0xea, 0x43, 0xc7, 0xbf, 0x13, 0xaa,
+ 0xf2, 0x01, 0x4c, 0x87, 0xa0, 0x34, 0x75, 0x2c, 0xdf, 0xcb, 0xec, 0x36,
+ 0xcf, 0x41, 0x3a, 0x4e, 0xd8, 0x04, 0x25, 0x6f, 0x51, 0x83, 0xcf, 0x77,
+ 0x61, 0x4c, 0xc4, 0xcc, 0x9b, 0x53, 0x53, 0xe9, 0x0f, 0x00, 0x07, 0x42,
+ 0x1e, 0xee, 0xaa, 0x00, 0xd6, 0xfb, 0x56, 0xe9, 0xb6, 0x2a, 0x29, 0xf4,
+ 0x68, 0x3f, 0x33, 0x33, 0x21, 0xb8, 0x1e, 0x15, 0x08, 0x94, 0x4b, 0xcf,
+ 0x45, 0x64, 0xd0, 0x20, 0xa0, 0x6d, 0x0c, 0x53, 0x3f, 0x41, 0x20, 0x71,
+ 0xde, 0x0a, 0x36, 0x43, 0xd3, 0xed, 0x72, 0xf7, 0x9d, 0xfe, 0xf7, 0xb5,
+ 0x9b, 0x40, 0xd3, 0x07, 0x1f, 0x3f, 0xed, 0x26, 0xfb, 0x52, 0xd5, 0x77,
+ 0xdf, 0x88, 0x87, 0x99, 0xb7, 0x4f, 0xce, 0xd3, 0xfe, 0xe8, 0x82, 0x7d,
+ 0xdf, 0x4d, 0xf5, 0x17, 0x08, 0x76, 0x4e, 0x06, 0xa9, 0x17, 0x04, 0x5d,
+ 0x53, 0xbe, 0xaa, 0xa4, 0x2a, 0xa6, 0x4d, 0xa4, 0x7d, 0x22, 0xea, 0xda,
+ 0x94, 0x14, 0xe3, 0xab, 0xa7, 0xba, 0x16, 0x2c, 0x55, 0x0b, 0x5b, 0xc0,
+ 0x19, 0x9b, 0xfc, 0x2e, 0x48, 0x8c, 0x8d, 0x12, 0x63, 0x26, 0x95, 0x8d,
+ 0xeb, 0x7a, 0x21, 0xef, 0x63, 0xfa, 0xad, 0xd4, 0x58, 0x52, 0x8b, 0xa7,
+ 0x0a, 0x81, 0xc4, 0x2e, 0xcf, 0xe3, 0xcc, 0x51, 0xc0, 0x39, 0x77, 0x89,
+ 0x75, 0xa7, 0xf1, 0x17, 0xd4, 0x1b, 0x8f, 0x85, 0xcd, 0x6a, 0xa9, 0x02,
+ 0x56, 0x23, 0x07, 0x33, 0xdb, 0x1c, 0x8f, 0x41, 0xc7, 0x41, 0xfd, 0x71,
+ 0xbc, 0xa6, 0x36, 0x0e, 0x91, 0x5e, 0x2a, 0xb5, 0x3d, 0x6c, 0x04, 0x95,
+ 0xa1, 0x96, 0x04, 0x3f, 0x86, 0x0b, 0x90, 0x28, 0x55, 0xc4, 0x43, 0xa7,
+ 0xa7, 0x06, 0x81, 0x6d, 0xca, 0xcf, 0x44, 0xcc, 0x8f, 0xfc, 0x47, 0x5e,
+ 0x02, 0x4e, 0x17, 0x11, 0x15, 0xd9, 0x1d, 0x3a, 0x14, 0xe3, 0x69, 0x1a,
+ 0xe6, 0x6b, 0x7c, 0xac, 0x98, 0xfe, 0x55, 0x48, 0x37, 0x94, 0x2a, 0xff,
+ 0x35, 0x3c, 0x3b, 0x5f, 0x51, 0xef, 0x99, 0x30, 0x15, 0x98, 0x2e, 0x0a,
+ 0x17, 0x20, 0x2d, 0x1e, 0xe8, 0x78, 0xa6, 0x6b, 0x5f, 0x1d, 0x1b, 0x15,
+ 0x2a, 0x40, 0xe0, 0xeb, 0x77, 0x06, 0x2a, 0x42, 0x1f, 0x5e, 0x7b, 0x7f,
+ 0xfa, 0x76, 0xe0, 0xcd, 0xd9, 0xb1, 0xfd, 0x90, 0xce, 0x8c, 0x85, 0x29,
+ 0x4a, 0x97, 0xec, 0x80, 0x66, 0xc5, 0x52, 0x39, 0x03, 0x4a, 0xf0, 0x84,
+ 0xd1, 0x19, 0x6b, 0x25, 0x31, 0x40, 0x67, 0xd0, 0x4a, 0x72, 0x31, 0x45,
+ 0x7e, 0x86, 0x71, 0x6a, 0xdd, 0x13, 0x0b, 0x0d, 0x71, 0x0e, 0x0a, 0x19,
+ 0x64, 0xf2, 0xbe, 0xaa, 0xa4, 0xd2, 0x1d, 0x5d, 0x63, 0xb8, 0x3c, 0x00,
+ 0xe6, 0x2e, 0xbc, 0x8b, 0x84, 0x51, 0xfe, 0xa3, 0x81, 0xeb, 0x0e, 0x09,
+ 0xaa, 0xc8, 0x69, 0xf1, 0x52, 0x5b, 0x1f, 0x54, 0x9a, 0x43, 0x8e, 0xb1,
+ 0x1c, 0xe0, 0x5c, 0x03, 0x97, 0x4c, 0x35, 0x9b, 0xa9, 0x09, 0xa7, 0x75,
+ 0xa3, 0x08, 0x4d, 0x1b, 0xd6, 0xb6, 0xaf, 0xbd, 0x75, 0x92, 0x7d, 0x00,
+ 0xac, 0x1a, 0x91, 0x2b, 0x76, 0x3f, 0x53, 0xf0, 0x0a, 0xc3, 0x73, 0x9e,
+ 0xa9, 0x13, 0x22, 0xd6, 0xb3, 0x33, 0xf9, 0x37, 0x7e, 0xaf, 0x5e, 0x33,
+ 0x6e, 0x1c, 0xc5, 0xc0, 0xfe, 0xff, 0x79, 0x77, 0xc8, 0x94, 0xa8, 0xe0,
+ 0x3f, 0xa2, 0x09, 0x47, 0xf8, 0xf1, 0xc9, 0x2c, 0xc9, 0x78, 0x70, 0x73,
+ 0x15, 0x30, 0x9d, 0xff, 0x83, 0xcc, 0x9e, 0x17, 0xe2, 0x29, 0x5e, 0x94,
+ 0x57, 0x6a, 0xf7, 0x7f, 0xa4, 0xef, 0x6f, 0x3c, 0xe3, 0xe3, 0x37, 0xb1,
+ 0x54, 0x0a, 0x63, 0x26, 0xca, 0x49, 0x5b, 0x46, 0x28, 0xaf, 0x2f, 0x2f,
+ 0xe3, 0xe7, 0x4e, 0x93, 0x05, 0x0c, 0xb0, 0xd4, 0x48, 0x7f, 0xbf, 0x6a,
+ 0x69, 0x46, 0x98, 0x66, 0x22, 0x2f, 0xac, 0x53, 0x93, 0x99, 0x89, 0xe2,
+ 0xb2, 0xe2, 0xe2, 0x7a, 0xc5, 0xdd, 0x53, 0x49, 0xe4, 0xa9, 0xfa, 0x75,
+ 0x8e, 0x4e, 0x0f, 0xf9, 0x6c, 0x75, 0xb5, 0xd1, 0x4c, 0xb9, 0x50, 0xed,
+ 0xc2, 0x69, 0xa8, 0xa2, 0xbe, 0x2d, 0x40, 0x6e, 0x5f, 0x7d, 0xe6, 0x7d,
+ 0x6b, 0xd6, 0x81, 0x3b, 0xc6, 0xc1, 0x8e, 0x7a, 0xef, 0xbf, 0x43, 0x8f,
+ 0xcd, 0x7d, 0xcd, 0x82, 0x43, 0xec, 0xe5, 0x6d, 0x48, 0x07, 0x11, 0xc0,
+ 0xa1, 0xe0, 0xc0, 0x4a, 0x9d, 0xe3, 0xd4, 0x69, 0xff, 0xb7, 0xca, 0x1f,
+ 0x20, 0x73, 0xca, 0xf0, 0x0c, 0x8b, 0x5a, 0x20, 0xba, 0xcd, 0xa8, 0xbe,
+ 0x74, 0x2f, 0x4e, 0x26, 0x67, 0x53, 0x0e, 0x1a, 0x7b, 0xa9, 0xbf, 0x0b,
+ 0x72, 0xd0, 0xb7, 0xd7, 0x87, 0x43, 0x19, 0xa8, 0xd0, 0xc6, 0xcf, 0x57,
+ 0x69, 0x5c, 0xc6, 0xa5, 0x0d, 0x31, 0x88, 0x48, 0xa8, 0x12, 0xa4, 0xad,
+ 0xff, 0x78, 0x7d, 0x72, 0xa2, 0x7b, 0x93, 0x31, 0xdb, 0x85, 0x30, 0xa4,
+ 0x54, 0xc9, 0x10, 0x22, 0x20, 0xf4, 0x7c, 0xba, 0xfd, 0x28, 0xb2, 0x80,
+ 0xcb, 0x49, 0x0d, 0x94, 0x42, 0x78, 0x12, 0x79, 0x5c, 0x9f, 0x38, 0x21,
+ 0xf3, 0x18, 0xe6, 0x0f, 0x5a, 0x8e, 0xf9, 0x75, 0x7b, 0x88, 0x13, 0x3a,
+ 0x7f, 0x93, 0xc8, 0xb3, 0x69, 0xa1, 0x73, 0xbc, 0x43, 0x85, 0x11, 0x7e,
+ 0x6f, 0xa5, 0xf1, 0x20, 0x97, 0xab, 0x1a, 0xa8, 0xfa, 0xc8, 0x64, 0xe5,
+ 0xbb, 0xf4, 0x85, 0xcf, 0xa3, 0x97, 0x9a, 0x22, 0x57, 0x58, 0x16, 0x61,
+ 0x71, 0x95, 0xc2, 0xd5, 0x08, 0xd4, 0xb1, 0x63, 0x50, 0x71, 0x2a, 0xb2,
+ 0xc6, 0xc9, 0xcf, 0xc0, 0xe7, 0x15, 0x86, 0x96, 0x6e, 0xdd, 0x04, 0x7a,
+ 0x4b, 0x18, 0x38, 0x0d, 0xbd, 0x46, 0x39, 0x3a, 0x6a, 0x3e, 0x89, 0x33,
+ 0xf9, 0x57, 0x07, 0xb0, 0x60, 0x1a, 0xa4, 0xc1, 0x3e, 0x16, 0x79, 0x24,
+ 0x10, 0xe3, 0x6d, 0x9b, 0x52, 0x5c, 0x63, 0xb2, 0x0b, 0x89, 0xe9, 0x5b,
+ 0xc7, 0x71, 0xa1, 0x25, 0x9b, 0xf5, 0xdc, 0x10, 0x16, 0x3b, 0xab, 0x84,
+ 0x87, 0xe2, 0x97, 0x9d, 0xb2, 0x15, 0xb8, 0x99, 0xff, 0x73, 0x5b, 0x1f,
+ 0xb5, 0x4c, 0x26, 0x3a, 0xbb, 0xc1, 0x13, 0x13, 0x46, 0x7f, 0xfc, 0xbe,
+ 0xf9, 0x61, 0xec, 0xfe, 0x3c, 0x87, 0x28, 0x33, 0x00, 0x97, 0xeb, 0x5c,
+ 0x86, 0x27, 0x1b, 0xfb, 0x23, 0x8c, 0x2c, 0x55, 0x16, 0x61, 0x8a, 0x28,
+ 0xbb, 0x15, 0xf3, 0xf9, 0xcc, 0xd7, 0x6e, 0x19, 0x34, 0x38, 0x1d, 0x01,
+ 0xeb, 0xc9, 0xe9, 0x96, 0xa2, 0x45, 0xe9, 0x06, 0x6f, 0x27, 0x68, 0xbe,
+ 0x52, 0x48, 0xe5, 0x29, 0xf1, 0xc0, 0xb2, 0x50, 0x34, 0x68, 0xbe, 0xa7,
+ 0xd4, 0x7a, 0x24, 0x94, 0x84, 0x37, 0xc0, 0xf0, 0xc5, 0xc7, 0xfa, 0xe8,
+ 0x06, 0xc9, 0x0e, 0xb1, 0xd5, 0x79, 0xd5, 0xb7, 0xe6, 0xb0, 0x59, 0x5a,
+ 0x6f, 0x8a, 0x8e, 0xee, 0x34, 0xa8, 0xa6, 0xd7, 0x30, 0xe0, 0xca, 0xe5,
+ 0x7d, 0xb3, 0x3b, 0x16, 0x75, 0xb9, 0xf7, 0x11, 0xf3, 0xbb, 0xd6, 0x94,
+ 0x36, 0xfe, 0x55, 0x34, 0xb4, 0xef, 0xdb, 0x4e, 0xbd, 0x1b, 0x31, 0xf4,
+ 0x51, 0xd2, 0x3a, 0x01, 0x29, 0x9c, 0x14, 0xa9, 0xd9, 0xd7, 0x38, 0x64,
+ 0xbd, 0x70, 0x51, 0x7c, 0x24, 0x53, 0x27, 0x24, 0xd7, 0xf8, 0xbc, 0x98,
+ 0x3d, 0xc2, 0xc9, 0x12, 0x9c, 0xf9, 0xad, 0x4d, 0x70, 0x1d, 0xff, 0xee,
+ 0xad, 0x8d, 0x64, 0x52, 0xae, 0x37, 0x4b, 0x06, 0x37, 0x28, 0x0e, 0xeb,
+ 0xba, 0x4b, 0xce, 0x5c, 0x08, 0x63, 0x6a, 0x5b, 0xdf, 0x04, 0xce, 0x16,
+ 0x18, 0xfb, 0x56, 0xbf, 0x33, 0x33, 0xe2, 0x3a, 0x6e, 0x61, 0x95, 0x93,
+ 0x90, 0x67, 0x73, 0xd7, 0x28, 0xda, 0xae, 0x51, 0xe0, 0x92, 0xf9, 0x90,
+ 0x70, 0x5b, 0x02, 0x33, 0xaa, 0x5e, 0x03, 0x5b, 0xf7, 0xb5, 0xa7, 0xf9,
+ 0xb4, 0x78, 0xb5, 0x14, 0xbe, 0x48, 0xb6, 0xa0, 0x98, 0x1a, 0x71, 0x5a,
+ 0x98, 0xb7, 0x38, 0xd1, 0xe1, 0xa0, 0x31, 0x8c, 0x83, 0x8a, 0x7c, 0x5f,
+ 0xb3, 0xab, 0xcf, 0xe5, 0xa4, 0x64, 0xb7, 0xa3, 0x2c, 0x68, 0xbf, 0x35,
+ 0x3c, 0xdb, 0xd6, 0xf4, 0x4c, 0xb0, 0xdf, 0x84, 0x76, 0xb3, 0x91, 0x21,
+ 0xbd, 0x4e, 0x37, 0x68, 0x40, 0x4e, 0xd0, 0xd7, 0x9a, 0x68, 0x0d, 0xd4,
+ 0xa5, 0xea, 0x9d, 0x45, 0xca, 0x2d, 0x5d, 0x5b, 0x5f, 0xbe, 0xd9, 0x69,
+ 0xb1, 0xde, 0x13, 0x66, 0x12, 0x81, 0x1e, 0xb5, 0x51, 0x6d, 0x74, 0x65,
+ 0x1f, 0x4a, 0xb4, 0xd5, 0xf4, 0x43, 0x73, 0x59, 0x64, 0xbf, 0x72, 0x7b,
+ 0xbf, 0x7e, 0x46, 0xdb, 0x35, 0xa7, 0x23, 0xbf, 0x92, 0xab, 0x23, 0xa4,
+ 0x6d, 0xc1, 0x72, 0xda, 0xe3, 0x02, 0x99, 0x11, 0x59, 0xb9, 0x42, 0x42,
+ 0x77, 0x18, 0x1a, 0x6a, 0xcc, 0x7f, 0xba, 0x92, 0xcb, 0xa1, 0x80, 0x1d,
+ 0xca, 0x79, 0xc6, 0x88, 0x3e, 0x30, 0xf9, 0x45, 0xc1, 0x60, 0x3e, 0x95,
+ 0x0a, 0xbb, 0xe1, 0xc5, 0x5e, 0xc5, 0xab, 0x65, 0x18, 0x0d, 0x7b, 0x77,
+ 0x62, 0x37, 0x45, 0xdb, 0xa0, 0x66, 0x10, 0x55, 0xba, 0xd3, 0x06, 0x00,
+ 0x45, 0xde, 0x93, 0xe4, 0x7b, 0xad, 0xd8, 0xaf, 0x07, 0x99, 0xd8, 0xc4,
+ 0x63, 0x13, 0x40, 0x78, 0xab, 0x48, 0x50, 0xcf, 0x37, 0x04, 0xf4, 0x69,
+ 0xa8, 0xfa, 0xec, 0xa3, 0x69, 0xad, 0xda, 0x10, 0x99, 0xa3, 0xf2, 0xcf,
+ 0xb0, 0xbe, 0x68, 0x81, 0x5f, 0x59, 0x12, 0x1b, 0xec, 0x57, 0x66, 0x6f,
+ 0x82, 0x37, 0x97, 0x75, 0x63, 0x3a, 0xfa, 0x8f, 0xcb, 0x93, 0x39, 0xf1,
+ 0x11, 0x8d, 0xa8, 0xa3, 0x6b, 0x66, 0x51, 0xea, 0x48, 0x09, 0x52, 0xd3,
+ 0xfb, 0x89, 0x0b, 0x98, 0xb4, 0x1e, 0x65, 0xbb, 0xd5, 0xbe, 0xb4, 0x36,
+ 0xaa, 0x87, 0x80, 0x90, 0x50, 0xb1, 0xa1, 0x40, 0x5f, 0xf0, 0x1b, 0x62,
+ 0x1a, 0x04, 0xcd, 0x62, 0x45, 0xa7, 0x55, 0xae, 0xf3, 0x61, 0xbe, 0xbb,
+ 0x90, 0x47, 0xd2, 0xe2, 0x83, 0xfe, 0x03, 0x6e, 0x0a, 0xaa, 0x08, 0x11,
+ 0xaa, 0x43, 0x3a, 0xc4, 0x6f, 0xdd, 0x65, 0x5c, 0xe9, 0x0c, 0xa1, 0x84,
+ 0x77, 0x34, 0x4e, 0xfd, 0x9e, 0xce, 0x97, 0x62, 0x0c, 0x62, 0x5c, 0x9f,
+ 0x29, 0x87, 0xae, 0x73, 0x08, 0xe5, 0x86, 0x9b, 0x46, 0x84, 0xd9, 0x41,
+ 0x56, 0xed, 0xd0, 0xf4, 0x73, 0x85, 0x28, 0x9c, 0xe7, 0x22, 0x3d, 0xee,
+ 0x0c, 0x6e, 0x96, 0x58, 0xc2, 0xaa, 0x04, 0xee, 0xcf, 0x5d, 0xbb, 0x03,
+ 0x3c, 0x8f, 0xe0, 0xca, 0x2d, 0x0c, 0xf9, 0x12, 0x8f, 0x2a, 0xdc, 0xa9,
+ 0xba, 0xf0, 0x26, 0x97, 0x1d, 0x44, 0xcb, 0xa9, 0x78, 0xc0, 0x1a, 0x16,
+ 0x04, 0x7c, 0x73, 0x8f, 0xa8, 0x13, 0x82, 0xbb, 0xb2, 0x09, 0xba, 0x93,
+ 0xb0, 0x24, 0x1e, 0xdb, 0xad, 0x37, 0x20, 0x1f, 0xbc, 0xe4, 0xab, 0x39,
+ 0xfd, 0x8d, 0x45, 0x16, 0x6f, 0x97, 0xfa, 0x0b, 0x34, 0xdf, 0x8d, 0x58,
+ 0x00, 0xad, 0xd8, 0x6b, 0x92, 0xd4, 0xc6, 0xc3, 0x78, 0xdf, 0xf4, 0xa0,
+ 0x88, 0xef, 0x0e, 0x08, 0x22, 0x55, 0x7d, 0xd6, 0xfa, 0xbc, 0x9a, 0x0b,
+ 0xa4, 0xf4, 0xde, 0xaa, 0x9c, 0x18, 0x1d, 0xb9, 0xe1, 0x39, 0x5c, 0xce,
+ 0xdf, 0x5f, 0xed, 0xac, 0xcd, 0xc1, 0x72, 0x7b, 0xce, 0xda, 0xd1, 0x85,
+ 0xba, 0x01, 0xac, 0x68, 0xb6, 0xd7, 0xd2, 0x7f, 0xa1, 0xd2, 0x56, 0x7a,
+ 0x11, 0x8a, 0xba, 0x7e, 0xe4, 0x4e, 0x8e, 0x80, 0x5a, 0xb7, 0x1c, 0xfe,
+ 0x50, 0x2c, 0xb1, 0x71, 0xa3, 0xc0, 0x1a, 0x40, 0x91, 0xf0, 0x5a, 0x7f,
+ 0x1b, 0x70, 0xe6, 0x65, 0x42, 0xaa, 0x65, 0xe0, 0x38, 0x61, 0x40, 0x4e,
+ 0xf9, 0x3c, 0x0d, 0xcb, 0x0f, 0x6e, 0x51, 0xca, 0xb6, 0x57, 0x0c, 0x01,
+ 0xd0, 0x91, 0xd8, 0x95, 0x9b, 0xf2, 0xdc, 0x1a, 0x91, 0xad, 0xa9, 0xd0,
+ 0xf1, 0x97, 0x7d, 0xaa, 0x0b, 0xd4, 0x8c, 0x8a, 0xeb, 0x4b, 0x0e, 0x8c,
+ 0x0f, 0x33, 0x11, 0xc0, 0xd5, 0x84, 0xb8, 0x16, 0xb2, 0x69, 0x06, 0xe2,
+ 0xe6, 0x07, 0xc5, 0xde, 0x0e, 0x31, 0xcb, 0x77, 0x57, 0x36, 0x00, 0x49,
+ 0x03, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1,
+ 0x0e, 0x00, 0x05, 0x10, 0x18, 0x00, 0x1e, 0xe9, 0x70, 0x8f, 0xbd, 0x8c,
+ 0xd4, 0xe6, 0x8b, 0xfa, 0x30, 0xe5, 0x4e, 0x84, 0xec, 0x81, 0xca, 0x8e,
+ 0xe0, 0x0b, 0xaa, 0x3f, 0x93, 0x37, 0x44, 0x23, 0xbd, 0x15, 0xc6, 0xa6,
+ 0xf9, 0x43, 0xcd, 0x2a, 0x0a, 0xd1, 0xc4, 0x30, 0x5c, 0x33, 0x70, 0x0c,
+ 0x6b, 0x20, 0x7f, 0x3f, 0xa3, 0x73, 0x83, 0x00, 0x57, 0xf4, 0x80, 0xb2,
+ 0x79, 0x0f, 0xb2, 0x6b, 0x6a, 0x0a, 0x4c, 0xbc, 0xba, 0x3b, 0x51, 0xb3,
+ 0xd1, 0xfc, 0xc5, 0x9d, 0x52, 0xb3, 0xf1, 0x33, 0x2d, 0x97, 0x4d, 0xdc,
+ 0x00, 0x79, 0x80, 0x07, 0x43, 0xc4, 0xe5, 0x0c, 0x0f, 0x17, 0xb6, 0xed,
+ 0xff, 0x8b, 0xda, 0xd9, 0x2a, 0x0b, 0x3e, 0x2c, 0x04, 0x66, 0x80, 0xef,
+ 0x73, 0xa3, 0x99, 0x88, 0x7d, 0x65, 0xc5, 0x1e, 0xf7, 0x58, 0xdf, 0x09,
+ 0xe8, 0x93, 0x7d, 0x62, 0x54, 0x0c, 0x1a, 0xb3, 0xf2, 0x5f, 0xa9, 0x39,
+ 0xdb, 0x06, 0x31, 0xe8, 0xdd, 0x05, 0x40, 0x7a, 0xf6, 0x84, 0x5e, 0x99,
+ 0xfc, 0xf5, 0xb9, 0x86, 0xf7, 0x6c, 0xbc, 0xe3, 0x21, 0xdc, 0xa7, 0xe7,
+ 0x7e, 0xe0, 0x1f, 0xad, 0x58, 0x65, 0x77, 0x5c, 0x6d, 0x15, 0x8a, 0x0b,
+ 0x61, 0xf2, 0x7f, 0x5f, 0x90, 0x28, 0x3b, 0x7a, 0x1f, 0x59, 0x47, 0x9f,
+ 0xcb, 0x9d, 0x90, 0x02, 0x5f, 0xe7, 0x68, 0x63, 0x63, 0x2a, 0xdb, 0x32,
+ 0xb8, 0x6c, 0x63, 0x2c, 0xb7, 0x07, 0x55, 0x3c, 0x91, 0x30, 0xda, 0xcb,
+ 0xb8, 0x71, 0x84, 0xa8, 0xa9, 0x45, 0x8c, 0x45, 0x22, 0x91, 0xb9, 0xe5,
+ 0xdd, 0x1b, 0x85, 0x66, 0x63, 0x77, 0x1d, 0x51, 0x0e, 0x55, 0x8a, 0x6d,
+ 0xad, 0xf4, 0xb7, 0xe9, 0x90, 0x68, 0x59, 0x56, 0x27, 0x43, 0xf1, 0xd3,
+ 0xb7, 0x88, 0xa6, 0xb6, 0xc8, 0xf6, 0xa5, 0xef, 0xba, 0xc7, 0x0a, 0xc4,
+ 0x16, 0xad, 0xc0, 0x15, 0x00, 0x95, 0x2d, 0xa9, 0x6b, 0x87, 0xd1, 0x24,
+ 0xfe, 0x40, 0x20, 0x06, 0x20, 0xf2, 0xf7, 0x51, 0xe0, 0x7b, 0x76, 0x9a,
+ 0x9d, 0xe4, 0x17, 0xe1, 0x07, 0x62, 0xdd, 0xcc, 0xaa, 0x74, 0xa0, 0x21,
+ 0x42, 0xcf, 0x86, 0x69, 0x1d, 0xbf, 0x81, 0x09, 0x4d, 0x56, 0xd8, 0xf2,
+ 0x29, 0x83, 0x09, 0x25, 0x4e, 0x43, 0xa5, 0x98, 0x15, 0x5a, 0xcb, 0xe9,
+ 0xa2, 0x40, 0xff, 0xe8, 0x9b, 0xef, 0xbe, 0x0d, 0x6f, 0x1c, 0xd4, 0x10,
+ 0xe6, 0x01, 0x31, 0x50, 0x88, 0xdf, 0xa5, 0xf9, 0xc7, 0x02, 0xfd, 0xff,
+ 0xd8, 0xf7, 0xa7, 0x38, 0xc4, 0x49, 0x56, 0x72, 0xa4, 0xf3, 0x16, 0x3a,
+ 0xed, 0xf8, 0xc4, 0x6b, 0x14, 0xe5, 0xc8, 0x24, 0x4f, 0x65, 0x4d, 0xb5,
+ 0x73, 0xef, 0x0c, 0x68, 0x1d, 0x03, 0x57, 0xac, 0xc7, 0xcb, 0x49, 0x78,
+ 0x76, 0x79, 0x09, 0xda, 0xb8, 0xa9, 0xb3, 0x99, 0x30, 0x27, 0xf2, 0x76,
+ 0xc8, 0xe4, 0xad, 0x6f, 0xac, 0x07, 0x5c, 0x57, 0xb4, 0xf9, 0x10, 0x92,
+ 0x87, 0x20, 0xa1, 0xe1, 0xb8, 0x4f, 0x3c, 0xf8, 0xa2, 0x8c, 0x8a, 0x10,
+ 0x96, 0xa1, 0xf7, 0x48, 0x6d, 0xb0, 0x87, 0xa0, 0xe1, 0x8e, 0x0e, 0x0f,
+ 0xba, 0x7c, 0x45, 0xb1, 0x9c, 0xea, 0xbf, 0x6b, 0x1f, 0xc0, 0x4b, 0x42,
+ 0xcd, 0x60, 0x50, 0x86, 0x3b, 0xbc, 0x41, 0x04, 0x1d, 0x74, 0xf0, 0x4d,
+ 0x92, 0x9a, 0x21, 0xdd, 0x1c, 0x02, 0xa6, 0x8e, 0xff, 0x24, 0x6c, 0x62,
+ 0xab, 0xe5, 0xe1, 0x57, 0x8f, 0x01, 0xe1, 0x93, 0x21, 0xb9, 0x8a, 0x1c,
+ 0xff, 0x36, 0x88, 0x97, 0xbc, 0x19, 0x34, 0xc3, 0x28, 0xf9, 0x3c, 0x04,
+ 0x73, 0x4f, 0x3c, 0xb6, 0xb0, 0x8d, 0x70, 0xdc, 0xee, 0x1c, 0xff, 0x7c,
+ 0x03, 0xcd, 0x4b, 0xe0, 0xba, 0x94, 0xe3, 0xff, 0xe1, 0x1a, 0x13, 0xf7,
+ 0x23, 0x0c, 0x40, 0x88, 0x07, 0x04, 0x46, 0x11, 0x3e, 0xc6, 0xa0, 0x21,
+ 0x77, 0x9e, 0x22, 0xf6, 0x57, 0x24, 0x91, 0x8c, 0x16, 0x6d, 0x4f, 0xa8,
+ 0x5e, 0xd9, 0x41, 0xc5, 0x5b, 0x65, 0xad, 0xeb, 0xbd, 0x10, 0xf6, 0xe2,
+ 0x94, 0xdc, 0x7b, 0xa8, 0x1e, 0x06, 0x18, 0x2c, 0x9c, 0x61, 0x4c, 0x9b,
+ 0xb9, 0xa0, 0xe6, 0xb4, 0x31, 0x66, 0xc3, 0x3d, 0x20, 0x37, 0xed, 0x2c,
+ 0x14, 0x05, 0x67, 0xbd, 0xbe, 0x84, 0x14, 0xd3, 0x04, 0xe9, 0x41, 0x7f,
+ 0x74, 0x40, 0x51, 0x1d, 0x15, 0x48, 0xd3, 0xe9, 0xfa, 0x52, 0x66, 0xd3,
+ 0x87, 0x99, 0x5c, 0xfb, 0x45, 0x37, 0xc0, 0x9e, 0x03, 0x95, 0xdd, 0xb8,
+ 0x9f, 0x64, 0x5e, 0xb4, 0xc4, 0x6e, 0x62, 0xdf, 0xa6, 0xbb, 0x3d, 0x9e,
+ 0x9a, 0x3f, 0xd8, 0x16, 0xb3, 0x31, 0xa6, 0x2b, 0x00, 0x87, 0x90, 0x5f,
+ 0x3e, 0xba, 0xbe, 0xcf, 0x62, 0x8d, 0x4f, 0xd2, 0x99, 0xe3, 0x0d, 0x19,
+ 0x13, 0x4b, 0x25, 0xfb, 0xae, 0xdd, 0x59, 0xb2, 0x6b, 0xb7, 0x77, 0x2f,
+ 0x6b, 0xac, 0x69, 0x11, 0x33, 0x71, 0xdd, 0xd9, 0x4e, 0x05, 0x1f, 0x1a,
+ 0xe3, 0x59, 0xf7, 0x1b, 0x44, 0xee, 0x72, 0xa5, 0x14, 0xf1, 0xa8, 0x5d,
+ 0x1b, 0xfd, 0x45, 0xfe, 0xbc, 0x4b, 0xeb, 0x5a, 0xa3, 0x2e, 0x60, 0x69,
+ 0x25, 0xd3, 0x04, 0xc4, 0xa8, 0x59, 0x6f, 0x1d, 0x98, 0x4c, 0x5f, 0x65,
+ 0x1a, 0xdb, 0x8f, 0x28, 0xeb, 0x65, 0xce, 0xf9, 0x9a, 0x57, 0x8d, 0xa7,
+ 0x18, 0x1a, 0x55, 0xa8, 0x86, 0x5d, 0x57, 0xa4, 0x10, 0xb2, 0x13, 0x25,
+ 0x27, 0xa0, 0x55, 0xee, 0xaa, 0x82, 0xc1, 0xe9, 0xbc, 0xb5, 0x12, 0x31,
+ 0xcc, 0x44, 0xb7, 0x32, 0x83, 0xe9, 0xe6, 0xdf, 0xd4, 0x03, 0x0f, 0xee,
+ 0x6f, 0x32, 0x21, 0xbf, 0xc1, 0x5c, 0x6f, 0xe4, 0xd8, 0x31, 0x87, 0xa9,
+ 0xef, 0x50, 0x74, 0x51, 0x6e, 0x53, 0x61, 0x54, 0x04, 0x45, 0x23, 0x0f,
+ 0x15, 0xbb, 0xf0, 0x47, 0x36, 0x84, 0xfe, 0xa2, 0xde, 0x52, 0x24, 0x6a,
+ 0x45, 0x0d, 0xd2, 0xe0, 0x8f, 0x30, 0x6f, 0xa2, 0xbd, 0xfd, 0xc2, 0x01,
+ 0x90, 0x90, 0xf2, 0xea, 0x0c, 0x07, 0x0a, 0x84, 0xe2, 0x7c, 0xd6, 0x96,
+ 0xe7, 0x3b, 0x3c, 0x18, 0xec, 0x8d, 0x87, 0xb3, 0xe2, 0x00, 0x96, 0xf8,
+ 0xd4, 0x34, 0x8e, 0x9d, 0x90, 0xb3, 0x68, 0x73, 0xd2, 0x1a, 0x49, 0x7a,
+ 0xdb, 0x33, 0x42, 0x40, 0x15, 0x31, 0xb3, 0xb0, 0x55, 0xba, 0x11, 0x60,
+ 0xa6, 0x03, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x11, 0x00, 0x00, 0x10, 0x14, 0x00, 0x1e, 0xd1, 0x1c, 0xb7, 0x75,
+ 0xc0, 0x1c, 0x8e, 0xfd, 0x05, 0xde, 0x88, 0xd3, 0x16, 0xa7, 0xf9, 0x00,
+ 0x07, 0x18, 0xd7, 0x62, 0x2e, 0x39, 0xf7, 0xa3, 0xf6, 0xdf, 0x8d, 0x82,
+ 0x8b, 0x55, 0x6c, 0x9e, 0x9f, 0xf9, 0x70, 0x24, 0x68, 0x23, 0xfb, 0xcc,
+ 0x11, 0x5a, 0xba, 0x38, 0x09, 0x44, 0x49, 0x8d, 0x15, 0xd5, 0xe8, 0x4c,
+ 0x10, 0x11, 0xd9, 0x6b, 0xec, 0x5b, 0x15, 0x8d, 0xce, 0x7e, 0xa0, 0xf7,
+ 0x24, 0xfb, 0x30, 0x45, 0x4c, 0x1b, 0x89, 0x55, 0xc3, 0x54, 0x76, 0xa3,
+ 0x73, 0x53, 0x9d, 0x89, 0x85, 0xe1, 0x40, 0x34, 0x55, 0xf3, 0xfa, 0x37,
+ 0x8f, 0x6e, 0xe8, 0xdd, 0xf6, 0x30, 0x68, 0x04, 0x18, 0x00, 0x7d, 0x32,
+ 0x08, 0xf6, 0x19, 0x07, 0x05, 0x04, 0x6d, 0x0c, 0x74, 0xb6, 0xae, 0x4b,
+ 0x10, 0x57, 0xa4, 0xe7, 0xaf, 0xb8, 0x90, 0x4c, 0x8e, 0xcf, 0xea, 0xdb,
+ 0x7a, 0xb9, 0xb3, 0xc3, 0xc1, 0x88, 0x3a, 0x7a, 0x95, 0x25, 0x87, 0x66,
+ 0xe1, 0xac, 0x66, 0x20, 0x8d, 0x36, 0x78, 0xc3, 0x66, 0x57, 0xc2, 0xbe,
+ 0x5b, 0x8c, 0x3b, 0x9c, 0x40, 0x50, 0xce, 0x1a, 0x5a, 0xee, 0x69, 0xa6,
+ 0x4d, 0x43, 0xf4, 0x87, 0x86, 0x8e, 0x1d, 0x04, 0xc3, 0x3f, 0x37, 0x1e,
+ 0x71, 0xae, 0x0e, 0xbd, 0x9c, 0x6d, 0x10, 0x05, 0x4a, 0x4e, 0xa0, 0xa3,
+ 0x1d, 0xbe, 0x72, 0x31, 0xbe, 0xe8, 0x97, 0x37, 0x6a, 0x41, 0xbc, 0xcf,
+ 0x60, 0x92, 0x08, 0x5e, 0x0b, 0x24, 0xb4, 0x78, 0xd1, 0x36, 0x59, 0x3b,
+ 0x19, 0xe7, 0xba, 0xed, 0xeb, 0xf4, 0x84, 0x5a, 0xf0, 0x39, 0x7f, 0xf1,
+ 0x21, 0xf9, 0xbf, 0xd0, 0x1a, 0x15, 0x42, 0xd4, 0x33, 0xf7, 0x11, 0x68,
+ 0xc7, 0xd6, 0xa3, 0x73, 0xef, 0x15, 0xf9, 0x06, 0x2a, 0x65, 0xae, 0x80,
+ 0x9f, 0x48, 0x3c, 0x64, 0x59, 0x72, 0x96, 0xe3, 0x2f, 0x24, 0xd1, 0x7c,
+ 0x08, 0x6e, 0x21, 0x3e, 0x74, 0x69, 0x00, 0x7e, 0x96, 0xdf, 0x0e, 0xa1,
+ 0xb0, 0x5c, 0x86, 0x1c, 0x0b, 0x7c, 0x1a, 0x31, 0xa8, 0x9e, 0xc1, 0x9e,
+ 0xbb, 0x30, 0x6b, 0x6d, 0x62, 0x11, 0xe1, 0x32, 0x6c, 0x70, 0x2f, 0xbf,
+ 0x7e, 0x10, 0x96, 0x68, 0xf0, 0xf5, 0xd4, 0x09, 0xc8, 0x33, 0x70, 0xf0,
+ 0x87, 0x21, 0xc1, 0xf1, 0xd6, 0x05, 0x66, 0x0b, 0x90, 0x83, 0x29, 0x90,
+ 0x16, 0xdf, 0x69, 0x66, 0x0a, 0x62, 0x69, 0x92, 0x9b, 0x4f, 0x4a, 0xab,
+ 0x33, 0x36, 0xd8, 0x91, 0x56, 0x78, 0xa8, 0xf0, 0x0d, 0xe9, 0x0b, 0xd2,
+ 0x69, 0xd0, 0x2b, 0xc1, 0x11, 0x56, 0xa5, 0x48, 0xa2, 0xa4, 0x48, 0x89,
+ 0xb0, 0xc0, 0xab, 0x33, 0x3e, 0xd6, 0x49, 0xc1, 0x34, 0xa9, 0xc1, 0x0e,
+ 0xc4, 0xa4, 0x00, 0x62, 0xaf, 0xd2, 0x66, 0x5f, 0xb5, 0x72, 0xd4, 0xef,
+ 0x69, 0xec, 0x76, 0xfb, 0xc8, 0x5c, 0xd9, 0x38, 0x9d, 0x75, 0x3b, 0xd5,
+ 0xd1, 0x5b, 0x3e, 0x17, 0x34, 0xd8, 0x3e, 0xe5, 0x3c, 0x86, 0xa4, 0x9a,
+ 0xe8, 0x7b, 0xa5, 0x93, 0x8b, 0xaf, 0xc5, 0xb7, 0x3c, 0x3b, 0x8c, 0xb2,
+ 0xf6, 0x25, 0xb0, 0x85, 0x57, 0x9d, 0x2c, 0xde, 0x7b, 0xde, 0x40, 0xa1,
+ 0xe1, 0x06, 0x37, 0xb4, 0x03, 0x17, 0x44, 0x48, 0xc7, 0x04, 0xb8, 0x00,
+ 0xe6, 0x93, 0x54, 0x99, 0x8e, 0xdb, 0x26, 0x90, 0x7a, 0x3b, 0x0f, 0x7f,
+ 0x9c, 0x4f, 0xcd, 0x94, 0xc7, 0x73, 0xb5, 0x5c, 0x48, 0x55, 0x83, 0x36,
+ 0x2b, 0x65, 0x3b, 0x3d, 0x62, 0x2d, 0xea, 0xd0, 0x0c, 0x9e, 0xa3, 0x79,
+ 0xf1, 0x40, 0x72, 0x3d, 0xa0, 0xb4, 0xbd, 0x6e, 0x31, 0xa1, 0xfb, 0x01,
+ 0x4b, 0x9c, 0x20, 0xe6, 0x7d, 0xa2, 0x88, 0x91, 0x15, 0xb8, 0x02, 0xf3,
+ 0xee, 0xed, 0xca, 0xdf, 0xb6, 0x0e, 0x4c, 0x70, 0xf5, 0xfd, 0x30, 0xe5,
+ 0xa0, 0x68, 0xcc, 0x89, 0x56, 0x3a, 0xa5, 0x19, 0x7f, 0x0e, 0xd6, 0x03,
+ 0xb3, 0x5b, 0x61, 0xf9, 0xb7, 0x23, 0xcc, 0x04, 0x71, 0x8a, 0xfc, 0xff,
+ 0x98, 0xb6, 0x78, 0x0c, 0x7c, 0x36, 0x10, 0x6e, 0x1f, 0x82, 0xfb, 0xbc,
+ 0x02, 0x36, 0x13, 0x85, 0x61, 0xbb, 0xef, 0x00, 0x1a, 0xf3, 0xc2, 0x57,
+ 0x97, 0xea, 0x08, 0x44, 0x64, 0xe1, 0x51, 0xdc, 0xb0, 0xcb, 0x49, 0x14,
+ 0x17, 0x66, 0x23, 0x58, 0x25, 0x98, 0xcc, 0x62, 0x32, 0xe2, 0x8b, 0x57,
+ 0xb3, 0x03, 0xcf, 0x46, 0xe3, 0x7f, 0xf6, 0x13, 0xdc, 0x29, 0x2b, 0x2b,
+ 0xc8, 0x9a, 0xd3, 0x7b, 0x99, 0x20, 0x43, 0xe5, 0x49, 0x9b, 0x28, 0x95,
+ 0xed, 0x46, 0x3f, 0x75, 0x72, 0xee, 0x4f, 0x5f, 0xdb, 0xe6, 0xb9, 0x94,
+ 0x98, 0x0d, 0x9a, 0x13, 0x41, 0x6d, 0x44, 0x0e, 0x71, 0xec, 0xf4, 0x7d,
+ 0xbd, 0x30, 0xd2, 0xd7, 0x9b, 0xe4, 0xb2, 0xe7, 0x8e, 0xec, 0x72, 0x3f,
+ 0x7b, 0x0b, 0x84, 0x10, 0x5b, 0x35, 0xc4, 0x63, 0xf3, 0x77, 0xfb, 0xe8,
+ 0x35, 0xf7, 0x7f, 0xf9, 0xdc, 0xda, 0x6d, 0xed, 0x30, 0x57, 0xc4, 0xfe,
+ 0xc8, 0x1b, 0x9c, 0xbf, 0xdf, 0xaa, 0x90, 0xb7, 0xc8, 0x62, 0x46, 0x77,
+ 0x8c, 0x66, 0x01, 0x77, 0x54, 0x2e, 0xaa, 0x34, 0xc9, 0x3c, 0xa9, 0x14,
+ 0x35, 0x9b, 0x3e, 0xe0, 0xa3, 0x10, 0x66, 0xa8, 0x82, 0x7e, 0x04, 0xe3,
+ 0x6a, 0xb2, 0xa6, 0x73, 0xd8, 0x53, 0xf7, 0x0b, 0x1f, 0xa2, 0xc9, 0x23,
+ 0xd4, 0xe3, 0x9f, 0xdd, 0xe1, 0xd8, 0xfc, 0x80, 0x26, 0x41, 0x78, 0x64,
+ 0x37, 0x34, 0x8c, 0x2b, 0xba, 0xf8, 0x3c, 0xac, 0x15, 0x62, 0x5d, 0x76,
+ 0x8a, 0xd0, 0x2d, 0xf3, 0x67, 0xbe, 0xb3, 0xa3, 0x7a, 0xf8, 0x3b, 0x9e,
+ 0x83, 0x52, 0x24, 0x05, 0xbd, 0x3c, 0xd8, 0xc7, 0xb9, 0x0c, 0x2c, 0xd1,
+ 0xed, 0xa4, 0xba, 0x6a, 0x7f, 0x44, 0x35, 0x59, 0x0b, 0x8a, 0xb6, 0x25,
+ 0x59, 0x11, 0x27, 0x3c, 0x0a, 0xb5, 0x87, 0x42, 0x0a, 0x9d, 0xbd, 0x20,
+ 0x99, 0xfb, 0xc0, 0x9e, 0xd3, 0xfa, 0x2e, 0x96, 0x1f, 0x5b, 0x06, 0x01,
+ 0x68, 0x7d, 0xc0, 0x90, 0x9e, 0x9b, 0xf5, 0xf1, 0x0f, 0xf4, 0xee, 0x58,
+ 0x1a, 0x58, 0xa2, 0x9f, 0x33, 0x07, 0xda, 0x07, 0x30, 0xfc, 0x1e, 0x7d,
+ 0x8a, 0xbc, 0x17, 0x17, 0x50, 0xd2, 0x52, 0xa7, 0x9e, 0x9f, 0xed, 0x3d,
+ 0x3f, 0x98, 0xb5, 0x68, 0xcc, 0x4d, 0xd6, 0x71, 0x54, 0xf0, 0x83, 0xd0,
+ 0x5e, 0x25, 0x57, 0xea, 0x08, 0xcd, 0x26, 0x57, 0xda, 0x81, 0x11, 0x33,
+ 0xa1, 0xc5, 0x49, 0x4a, 0x6c, 0xab, 0x11, 0xb8, 0x87, 0x89, 0x92, 0xe5,
+ 0x93, 0xe1, 0xa8, 0x82, 0x28, 0x5c, 0x7c, 0xcf, 0x37, 0xca, 0xda, 0x2c,
+ 0x0b, 0x53, 0x52, 0x42, 0x52, 0x21, 0x1b, 0xdb, 0x80, 0x1b, 0xf0, 0x25,
+ 0x4f, 0x44, 0xd0, 0x68, 0xd4, 0x05, 0x24, 0xdc, 0xa4, 0xcd, 0x1a, 0xa2,
+ 0x6c, 0xcf, 0x39, 0x7f, 0xd9, 0x47, 0x8b, 0x27, 0x62, 0xb1, 0x6d, 0x38,
+ 0xdd, 0xd4, 0x51, 0xaa, 0x3e, 0x63, 0xe3, 0xce, 0xd4, 0x60, 0x60, 0x06,
+ 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x3c,
+ 0x00, 0x31, 0x11, 0xc4, 0x14, 0x60, 0x05, 0xb3, 0x7f, 0xc5, 0xff, 0xa8,
+ 0xfe, 0x99, 0xf8, 0x9e, 0xfd, 0xab, 0xff, 0x2f, 0x33, 0xdf, 0xbf, 0xfe,
+ 0x7f, 0xfe, 0x31, 0xb7, 0xff, 0xe8, 0x57, 0xdc, 0x27, 0xfc, 0xe8, 0x4f,
+ 0x7f, 0xc0, 0xff, 0xff, 0xed, 0x3f, 0xf8, 0x7e, 0x36, 0xff, 0x15, 0xff,
+ 0xff, 0xfc, 0xd7, 0xb0, 0x5f, 0x3f, 0xfc, 0xdf, 0xfd, 0xdf, 0xfd, 0x98,
+ 0x7f, 0x79, 0xfa, 0x75, 0x7f, 0xff, 0xff, 0xff, 0xdd, 0x3f, 0xdd, 0xbf,
+ 0xff, 0xfd, 0xe6, 0xa1, 0x14, 0xb6, 0xd2, 0xb6, 0xb3, 0xe1, 0x08, 0x42,
+ 0x12, 0x17, 0xde, 0x78, 0x03, 0xf9, 0x85, 0xdc, 0x2a, 0xbf, 0xe3, 0x97,
+ 0x98, 0x2f, 0x5b, 0xef, 0x60, 0x4d, 0xf2, 0x44, 0xe3, 0xc2, 0x25, 0xd2,
+ 0xb5, 0xce, 0x1a, 0xcb, 0x6f, 0x24, 0x48, 0x7d, 0x82, 0x24, 0x57, 0xae,
+ 0xc9, 0x5b, 0x0c, 0xeb, 0x2b, 0x64, 0x1b, 0x07, 0xdf, 0x5e, 0xfc, 0xb3,
+ 0x72, 0xbd, 0xe2, 0xae, 0x6c, 0x00, 0x03, 0xc1, 0x73, 0xeb, 0x08, 0x48,
+ 0xbd, 0x98, 0x6f, 0x9d, 0xe7, 0xeb, 0x68, 0xd1, 0xde, 0xd2, 0x74, 0x5c,
+ 0x94, 0x8d, 0x35, 0x67, 0x43, 0x03, 0xb5, 0x4f, 0xa9, 0xdf, 0xc7, 0x96,
+ 0xfb, 0xd2, 0x5a, 0xfe, 0xb6, 0xc0, 0x13, 0x64, 0xa2, 0xee, 0x20, 0x77,
+ 0x43, 0xa2, 0x09, 0x65, 0x33, 0xac, 0x25, 0x3b, 0xfc, 0x29, 0x44, 0x90,
+ 0x03, 0x6f, 0x70, 0x17, 0x13, 0xba, 0xc4, 0xc5, 0x6e, 0xa1, 0xe2, 0x45,
+ 0x13, 0xcb, 0x72, 0xcd, 0x66, 0xad, 0xb9, 0x3d, 0x86, 0xab, 0x12, 0xec,
+ 0x8c, 0x31, 0xe5, 0x95, 0xf7, 0xa6, 0x04, 0x58, 0x93, 0xab, 0x3a, 0xbe,
+ 0x27, 0x81, 0x6d, 0x6f, 0xd7, 0x0c, 0xb3, 0x48, 0x89, 0x63, 0x8f, 0x49,
+ 0x0b, 0x25, 0xf6, 0x54, 0xc2, 0x04, 0xea, 0x4a, 0x01, 0x51, 0x79, 0xbc,
+ 0xc9, 0xd4, 0x41, 0x58, 0x04, 0xf9, 0xbc, 0xc9, 0xd4, 0x41, 0x58, 0x04,
+ 0xf9, 0xbd, 0x0d, 0xb8, 0x04, 0x60, 0x21, 0x1c, 0x2a, 0xab, 0xff, 0xaa,
+ 0xde, 0x7f, 0xb7, 0x89, 0xe1, 0xe7, 0x75, 0xb5, 0xd3, 0x8e, 0x6e, 0xa5,
+ 0x51, 0xb2, 0xb4, 0xa8, 0x91, 0xde, 0x70, 0x06, 0x90, 0x33, 0xe6, 0xee,
+ 0xb7, 0x34, 0x01, 0xd0, 0x98, 0x86, 0x91, 0x39, 0xea, 0x27, 0x94, 0x0a,
+ 0x05, 0x15, 0x1b, 0xa3, 0xf9, 0x29, 0x71, 0x96, 0x44, 0x0d, 0xd8, 0x8a,
+ 0xa2, 0x9e, 0x08, 0xc5, 0x44, 0x2e, 0x9d, 0xc0, 0x7a, 0x09, 0x5e, 0x89,
+ 0x30, 0xb6, 0xca, 0xc9, 0x51, 0xb2, 0xad, 0x9b, 0x9a, 0x30, 0xdd, 0x91,
+ 0x4e, 0x60, 0x13, 0xf1, 0xcb, 0x5b, 0xbc, 0x73, 0xeb, 0x45, 0x3c, 0xb2,
+ 0x99, 0x5f, 0xe3, 0x29, 0x5f, 0x1a, 0x9e, 0x01, 0x69, 0xc8, 0x17, 0x7e,
+ 0x90, 0xa1, 0x6f, 0x39, 0xc8, 0xdd, 0xdc, 0x22, 0x51, 0xd6, 0x6a, 0xc2,
+ 0x97, 0x50, 0x36, 0xdb, 0xc1, 0x93, 0x4f, 0xed, 0x9a, 0xe3, 0xeb, 0xca,
+ 0x3f, 0x45, 0x58, 0x74, 0x38, 0xfa, 0x21, 0x7e, 0xe3, 0x3c, 0x6a, 0x07,
+ 0xc8, 0xc9, 0x97, 0xee, 0x33, 0xb9, 0x4c, 0x98, 0x2c, 0xe6, 0xda, 0x20,
+ 0xc1, 0x79, 0x83, 0xb8, 0x2a, 0x5f, 0x1c, 0x4a, 0x1f, 0xde, 0xda, 0x19,
+ 0x07, 0x7c, 0xdc, 0x3a, 0xef, 0x83, 0x44, 0x93, 0x66, 0xea, 0x59, 0x46,
+ 0x00, 0xd7, 0x35, 0x30, 0x00, 0x00, 0x7c, 0xb6, 0x80, 0x00, 0x87, 0xf8,
+ 0x80, 0x03, 0x04, 0x48, 0x54, 0x1f, 0x9d, 0xdf, 0x06, 0xd5, 0x05, 0xa2,
+ 0x21, 0x7f, 0x64, 0x00, 0x04, 0xae, 0x48, 0x00, 0x24, 0x69, 0x02, 0x9e,
+ 0x2f, 0x25, 0x47, 0x14, 0xa6, 0x00, 0xad, 0x99, 0x35, 0x60, 0x7d, 0xa1,
+ 0x6c, 0x8a, 0x01, 0x77, 0x65, 0xd8, 0x4e, 0x47, 0xd3, 0x6a, 0x0a, 0x89,
+ 0x22, 0x40, 0x3d, 0xf3, 0xa0, 0x96, 0x7e, 0x36, 0x98, 0x0a, 0x48, 0x5c,
+ 0xfb, 0xd1, 0xea, 0x67, 0x0c, 0xe1, 0x80, 0x9c, 0x94, 0x05, 0x59, 0x07,
+ 0xc1, 0x00, 0xa4, 0x6c, 0xfc, 0xc0, 0x5b, 0x97, 0xfd, 0xb8, 0x63, 0x19,
+ 0x6b, 0x0a, 0x7a, 0x07, 0x40, 0x14, 0x37, 0x42, 0xf0, 0x1b, 0x9a, 0xad,
+ 0x28, 0xb5, 0x0b, 0xcc, 0x74, 0x5a, 0x94, 0x56, 0xe4, 0x64, 0xd9, 0x06,
+ 0x62, 0x14, 0x5e, 0xde, 0xba, 0x17, 0x20, 0xfd, 0xfb, 0x7a, 0x1c, 0xf4,
+ 0x06, 0x6e, 0x9e, 0x3a, 0x2c, 0x13, 0x5a, 0x37, 0xed, 0x46, 0x25, 0xae,
+ 0xa4, 0x94, 0x12, 0x7d, 0x4b, 0xdd, 0xa1, 0x7d, 0x2b, 0x82, 0x63, 0x67,
+ 0x4b, 0xef, 0x26, 0xaf, 0xc4, 0x74, 0x93, 0x35, 0x1c, 0x4f, 0x09, 0x42,
+ 0xc9, 0xc1, 0xfe, 0x37, 0x21, 0x54, 0x28, 0x4a, 0x70, 0xda, 0xac, 0x79,
+ 0x33, 0x22, 0x41, 0x6f, 0xf2, 0x5f, 0xe7, 0x67, 0xae, 0xd6, 0x50, 0xf9,
+ 0xba, 0x94, 0x9c, 0x88, 0x68, 0xa2, 0xed, 0xbc, 0x63, 0x0f, 0x8c, 0x32,
+ 0x4a, 0x20, 0x91, 0x53, 0xee, 0x24, 0x0e, 0x2c, 0x4f, 0xbb, 0xfc, 0xc3,
+ 0xe0, 0xb6, 0x6d, 0x58, 0xac, 0x1d, 0xd0, 0x24, 0x33, 0x07, 0x42, 0x29,
+ 0x75, 0xfb, 0xa5, 0x49, 0x44, 0x8d, 0x6e, 0xbd, 0xd2, 0xd7, 0xa0, 0x47,
+ 0x54, 0x86, 0x7e, 0xe9, 0x9d, 0xbe, 0xd1, 0x1b, 0x34, 0xcc, 0x0a, 0x0f,
+ 0x86, 0x69, 0x11, 0x94, 0x45, 0x35, 0x2c, 0x90, 0x7e, 0x92, 0x0d, 0x73,
+ 0x50, 0xb8, 0xe0, 0x38, 0xf8, 0xd6, 0x6c, 0x2c, 0xd3, 0x3d, 0xa5, 0x47,
+ 0xd0, 0x54, 0x6b, 0xcf, 0x92, 0x60, 0xaa, 0x3c, 0x42, 0x6a, 0x31, 0x04,
+ 0xbf, 0xc3, 0x12, 0x78, 0x2b, 0xc2, 0x0f, 0x65, 0xa0, 0xa1, 0x57, 0xc9,
+ 0x52, 0xd3, 0x64, 0x6a, 0x82, 0x32, 0x1d, 0x8f, 0xc9, 0x18, 0x44, 0xcd,
+ 0x6b, 0x97, 0xca, 0x40, 0x67, 0x6c, 0xd1, 0x9e, 0xcb, 0xcb, 0x3c, 0xbc,
+ 0xad, 0x85, 0x78, 0xee, 0x75, 0x06, 0x76, 0x6e, 0x04, 0xdb, 0x0e, 0x73,
+ 0x68, 0x34, 0x43, 0x10, 0xed, 0x81, 0x33, 0x49, 0x99, 0xfa, 0x93, 0xd0,
+ 0x56, 0xdd, 0x41, 0x4e, 0x10, 0xdc, 0x3c, 0x14, 0x1f, 0x6a, 0xa1, 0xb9,
+ 0x57, 0xe7, 0x36, 0x83, 0x44, 0x31, 0x0e, 0xd8, 0x13, 0x34, 0x99, 0x9f,
+ 0xa9, 0x3d, 0x05, 0x6d, 0xd4, 0x14, 0xe1, 0x0d, 0xc3, 0xc1, 0x41, 0xf6,
+ 0xaa, 0x1b, 0x95, 0x90, 0xba, 0x08, 0xc1, 0x61, 0xd5, 0xfb, 0x6e, 0x06,
+ 0xa3, 0x3c, 0x85, 0xb7, 0xde, 0x36, 0x2b, 0xf7, 0x9b, 0x1b, 0x68, 0x5f,
+ 0xe7, 0x21, 0xb4, 0xa7, 0xdc, 0xf1, 0x12, 0xd8, 0x8c, 0xf2, 0x2d, 0x20,
+ 0x7c, 0x03, 0x4a, 0x8a, 0xb8, 0x57, 0x9a, 0x62, 0x49, 0x8c, 0x4b, 0x93,
+ 0x98, 0xd8, 0x00, 0x46, 0x32, 0xd8, 0x8c, 0xf2, 0x2d, 0x20, 0x7c, 0x03,
+ 0x4a, 0x8a, 0xb8, 0x57, 0x9a, 0x62, 0x49, 0x8c, 0x45, 0xa1, 0xa3, 0x69,
+ 0xd2, 0x25, 0x16, 0x67, 0x49, 0x80, 0xfa, 0x28, 0x97, 0xed, 0x23, 0x23,
+ 0xcd, 0x95, 0x0b, 0x8f, 0x72, 0xb7, 0x47, 0xbc, 0x1d, 0xde, 0x95, 0x56,
+ 0x2b, 0xbe, 0xfd, 0x7c, 0x44, 0x70, 0x7a, 0xbd, 0x6c, 0x57, 0x1f, 0x00,
+ 0xbf, 0x36, 0x12, 0x59, 0x82, 0xa7, 0xd0, 0xfd, 0xef, 0xca, 0x4a, 0x6f,
+ 0x46, 0x3c, 0x3e, 0xc5, 0x25, 0x58, 0x3b, 0xdb, 0x0e, 0x97, 0x61, 0x62,
+ 0x2f, 0xcb, 0x61, 0xa8, 0xab, 0x74, 0x4b, 0xd0, 0xcb, 0x53, 0xfd, 0x34,
+ 0x6b, 0x4d, 0xd2, 0xd8, 0x01, 0xcc, 0x69, 0xfe, 0x00, 0xf3, 0xb7, 0x8f,
+ 0x0c, 0x06, 0x65, 0xd8, 0xeb, 0xa7, 0x4c, 0x97, 0xeb, 0xf6, 0x9c, 0x80,
+ 0xbb, 0xc8, 0xc0, 0x0a, 0x8e, 0xce, 0xdf, 0xf0, 0xc6, 0xc7, 0x71, 0xee,
+ 0x3f, 0xa3, 0x4b, 0xa2, 0xc1, 0x68, 0xbe, 0x1e, 0xfb, 0x6e, 0xb6, 0x91,
+ 0xbd, 0xf3, 0x7f, 0xa1, 0xdb, 0xe6, 0xda, 0x92, 0x75, 0xbd, 0x7d, 0x45,
+ 0xce, 0x23, 0x95, 0x40, 0x6d, 0xc9, 0x65, 0x4e, 0x17, 0x62, 0x6f, 0x02,
+ 0xe7, 0x02, 0xe2, 0x5d, 0xe7, 0x30, 0x6b, 0x16, 0xc0, 0x51, 0x76, 0x43,
+ 0x33, 0x1b, 0xbb, 0x2a, 0x5a, 0xd3, 0x1b, 0xda, 0x84, 0x72, 0xf8, 0x55,
+ 0x8a, 0x16, 0xf3, 0xaa, 0x3d, 0xa6, 0x63, 0xc0, 0x13, 0x30, 0xf7, 0x92,
+ 0x39, 0x76, 0x23, 0x97, 0x0e, 0x23, 0xc1, 0x81, 0x32, 0xe7, 0x3b, 0x13,
+ 0xab, 0xac, 0x59, 0x64, 0xfb, 0x99, 0xc6, 0x71, 0x65, 0xb6, 0xa2, 0xf5,
+ 0xce, 0xd3, 0xe4, 0x8d, 0x3a, 0x04, 0xb7, 0x4f, 0x4c, 0x9a, 0x2a, 0x37,
+ 0x87, 0x34, 0x8c, 0xd6, 0x47, 0xff, 0x01, 0xed, 0x25, 0xf5, 0x4c, 0x3f,
+ 0xdd, 0x92, 0x1d, 0x35, 0xa7, 0x74, 0xd7, 0x15, 0x57, 0x39, 0xf6, 0x7f,
+ 0xfa, 0xf9, 0xef, 0xc6, 0x55, 0xd8, 0xd5, 0x00, 0xda, 0xf7, 0xa6, 0xa7,
+ 0x98, 0xc9, 0xcd, 0x7f, 0x83, 0xa7, 0x87, 0x14, 0x84, 0x54, 0xee, 0x3d,
+ 0x03, 0x2d, 0x1c, 0x79, 0xeb, 0x46, 0x86, 0x44, 0x61, 0x56, 0x43, 0x6b,
+ 0xd4, 0x65, 0xdc, 0x7d, 0x42, 0x16, 0x23, 0xbf, 0x0b, 0x42, 0x90, 0x05,
+ 0x1c, 0xd3, 0x45, 0x0a, 0x89, 0xc1, 0x08, 0x15, 0xf9, 0x2b, 0x51, 0x23,
+ 0x9c, 0x80, 0xbb, 0x00, 0xae, 0x17, 0xee, 0xbe, 0xf4, 0x40, 0xb5, 0xcb,
+ 0x62, 0x79, 0x59, 0x9b, 0x9c, 0x4e, 0x38, 0x1d, 0xb3, 0xd8, 0x0f, 0xe5,
+ 0x6f, 0xd1, 0xab, 0x79, 0x24, 0x07, 0x6a, 0x25, 0x97, 0x59, 0x85, 0x85,
+ 0xd9, 0x14, 0x3a, 0xc1, 0xa1, 0xa8, 0x8d, 0x71, 0xa5, 0xc6, 0x5f, 0x9a,
+ 0x1b, 0xf6, 0xe9, 0xdb, 0x5f, 0xca, 0x19, 0x5b, 0x54, 0x93, 0x45, 0xc3,
+ 0xf3, 0xaa, 0xf0, 0x65, 0x5f, 0x60, 0x31, 0xbf, 0x54, 0xc7, 0xdb, 0x15,
+ 0x45, 0xcd, 0x3c, 0x09, 0x46, 0x2e, 0x9e, 0xac, 0x5b, 0x9f, 0xf9, 0x84,
+ 0xba, 0x58, 0x2d, 0x83, 0x23, 0x5c, 0x83, 0x17, 0x40, 0x75, 0xa6, 0x22,
+ 0x29, 0xcd, 0xa9, 0xf6, 0xf8, 0x00, 0x71, 0x4a, 0x0f, 0xe0, 0xa8, 0xa6,
+ 0x51, 0xcb, 0x7e, 0x12, 0xa7, 0xcb, 0xc0, 0x65, 0xac, 0x8c, 0x81, 0x4d,
+ 0xe1, 0xa5, 0x0d, 0xb3, 0xeb, 0x0e, 0x33, 0x41, 0xae, 0xe2, 0x8a, 0xa6,
+ 0xb5, 0x95, 0xa3, 0x3b, 0xbb, 0xa3, 0x9c, 0xf6, 0x2e, 0x57, 0xe5, 0x17,
+ 0x6a, 0xf6, 0xe6, 0x55, 0x40, 0xec, 0xcb, 0x7e, 0x77, 0x7d, 0x67, 0x89,
+ 0x46, 0x9b, 0x3f, 0x8b, 0x74, 0x87, 0xa0, 0x25, 0xfa, 0x21, 0xc0, 0x17,
+ 0x10, 0x27, 0x0a, 0xdd, 0x36, 0x96, 0xdc, 0x31, 0x09, 0xc5, 0x27, 0x16,
+ 0x9d, 0x28, 0xe0, 0xd4, 0xe6, 0x1a, 0xb6, 0x47, 0xfc, 0xf6, 0x2b, 0x8d,
+ 0xd1, 0xbf, 0x58, 0xf5, 0x7d, 0x64, 0x3a, 0x73, 0x7a, 0x5e, 0x2d, 0xd6,
+ 0xd8, 0x3b, 0xb9, 0x14, 0xe5, 0xe2, 0x37, 0xc1, 0x11, 0x63, 0x0f, 0xde,
+ 0xb9, 0x76, 0xa5, 0x2c, 0x38, 0xd7, 0xda, 0x42, 0x2c, 0x62, 0xf3, 0x4e,
+ 0x0f, 0x72, 0x37, 0xbb, 0x58, 0xb4, 0xff, 0x02, 0xb1, 0x12, 0xb7, 0xdc,
+ 0xa5, 0x15, 0xd8, 0x91, 0x5d, 0x4e, 0x98, 0xe6, 0x7f, 0xb6, 0x51, 0x59,
+ 0xcf, 0x9a, 0x28, 0xc1, 0x2d, 0x4a, 0x94, 0x31, 0xc5, 0xe8, 0xc6, 0x81,
+ 0x4f, 0x6b, 0xc8, 0x1f, 0x86, 0xd4, 0x2d, 0x15, 0x73, 0xe8, 0x85, 0x2b,
+ 0x9f, 0xc8, 0x59, 0x82, 0xfd, 0x1b, 0x9f, 0x16, 0xc2, 0xee, 0xad, 0x88,
+ 0x32, 0x8d, 0x0b, 0x9c, 0x96, 0x07, 0x1a, 0x67, 0x8e, 0x71, 0xe0, 0x14,
+ 0x22, 0x6f, 0x93, 0x40, 0x3c, 0x56, 0xb0, 0xcf, 0x13, 0x54, 0xaf, 0xe4,
+ 0x64, 0x53, 0xb1, 0x4f, 0x24, 0xb4, 0xda, 0x52, 0xdb, 0x2f, 0xf1, 0xd3,
+ 0xcb, 0xc3, 0x24, 0x92, 0x63, 0x23, 0x9b, 0xf6, 0xb7, 0x6c, 0xda, 0x17,
+ 0xf5, 0x51, 0x25, 0xec, 0xd4, 0xc9, 0x91, 0xb9, 0x56, 0xd8, 0xeb, 0xe3,
+ 0x70, 0x04, 0x5d, 0x09, 0xc3, 0xa6, 0x93, 0xc1, 0x00, 0x13, 0x23, 0x01,
+ 0x1e, 0x6d, 0x9f, 0x57, 0x22, 0xc1, 0xe1, 0x43, 0x30, 0xf7, 0xc2, 0xb0,
+ 0xdc, 0xa8, 0xa9, 0x12, 0x53, 0xc6, 0x61, 0x23, 0xcd, 0xb3, 0xea, 0xe4,
+ 0x58, 0x3c, 0x28, 0x66, 0x1e, 0xf8, 0x56, 0x1b, 0x95, 0x15, 0x22, 0x4a,
+ 0x78, 0xcc, 0x24, 0x79, 0xb6, 0x7d, 0x5c, 0x8b, 0x07, 0x85, 0x0c, 0xc3,
+ 0xdf, 0x0a, 0xc3, 0x72, 0xa2, 0xa4, 0x49, 0x4f, 0x19, 0xc8, 0x26, 0x5e,
+ 0xa9, 0x00, 0x83, 0x65, 0x75, 0x28, 0x4a, 0x69, 0x34, 0x00, 0xd3, 0x03,
+ 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x1f,
+ 0x00, 0x07, 0x10, 0x30, 0x00, 0x1e, 0xe5, 0x10, 0x78, 0xc0, 0x6e, 0x47,
+ 0xdb, 0x93, 0xf9, 0x2e, 0x88, 0xd7, 0xf4, 0x4f, 0xf2, 0x7f, 0x99, 0x39,
+ 0x86, 0xf6, 0x97, 0xea, 0xd1, 0xf7, 0x23, 0xf6, 0x01, 0xfc, 0x5d, 0xe7,
+ 0x0b, 0xfc, 0x97, 0xfa, 0x6f, 0x3f, 0x5f, 0x3d, 0xff, 0xbf, 0xf7, 0x0f,
+ 0xfc, 0x99, 0x7d, 0xeb, 0xbf, 0x98, 0x70, 0x23, 0xd4, 0x17, 0xff, 0xff,
+ 0xfc, 0x1e, 0xf7, 0xf3, 0x5f, 0xf9, 0x8a, 0x97, 0x57, 0xb7, 0x0e, 0x34,
+ 0x44, 0xff, 0xa0, 0x79, 0x0a, 0x12, 0x52, 0x52, 0x71, 0x28, 0x02, 0x4b,
+ 0x21, 0xaf, 0x08, 0x1e, 0xd3, 0x69, 0x55, 0xcc, 0x23, 0x44, 0x44, 0xfd,
+ 0x0d, 0xf2, 0x8d, 0x01, 0xe7, 0x8e, 0x6e, 0x70, 0xe2, 0x25, 0x9c, 0xd8,
+ 0xd7, 0xb2, 0xa6, 0x3f, 0xe8, 0x9e, 0xfc, 0x7f, 0x9e, 0x51, 0xa1, 0xfc,
+ 0xff, 0xfa, 0x79, 0x6f, 0x23, 0x19, 0xcb, 0x97, 0xc0, 0x36, 0x99, 0x9e,
+ 0x09, 0x33, 0x2c, 0xc5, 0x1b, 0xc9, 0xc0, 0x41, 0x8b, 0x37, 0x48, 0x75,
+ 0x0b, 0x03, 0x52, 0x3c, 0x97, 0xa2, 0x17, 0x3b, 0xde, 0xe5, 0x29, 0x6d,
+ 0x20, 0xa7, 0xc3, 0x6d, 0x54, 0xfb, 0x24, 0x0f, 0x02, 0xe3, 0xc5, 0x98,
+ 0x33, 0x0a, 0x3f, 0xd0, 0x7e, 0x8e, 0xc3, 0xf7, 0x2e, 0x66, 0x18, 0xe4,
+ 0xed, 0x2a, 0x8b, 0xd8, 0x49, 0xd9, 0x51, 0x0c, 0x84, 0x3f, 0x9e, 0xda,
+ 0x49, 0xa4, 0x32, 0x87, 0xe1, 0x54, 0x6e, 0x2c, 0x40, 0x1d, 0x67, 0x7f,
+ 0xf7, 0xfd, 0xae, 0xe3, 0x04, 0x3f, 0xb7, 0x33, 0x2e, 0xa6, 0x1f, 0xb9,
+ 0x85, 0xc2, 0xd9, 0x96, 0xe0, 0xc1, 0x1a, 0x0e, 0xe7, 0x07, 0xaa, 0x98,
+ 0xae, 0x47, 0xa0, 0xa9, 0x14, 0xb0, 0xff, 0x14, 0x9d, 0x64, 0x8c, 0x9a,
+ 0x74, 0xcd, 0xbd, 0x36, 0xb1, 0x82, 0x7a, 0x60, 0x00, 0xbe, 0x0f, 0xae,
+ 0x0d, 0xe9, 0xdf, 0xcb, 0x16, 0x0a, 0x40, 0x79, 0x64, 0x00, 0x88, 0x6e,
+ 0xa0, 0x08, 0xe6, 0x9a, 0x32, 0x37, 0xe1, 0x4c, 0x5b, 0xd8, 0x6e, 0xe1,
+ 0xcd, 0x95, 0x4c, 0xeb, 0xb4, 0x1c, 0x7e, 0x46, 0x2c, 0x02, 0x2f, 0x87,
+ 0x51, 0x11, 0x2b, 0x7c, 0x52, 0xb2, 0xfc, 0x97, 0x03, 0xb9, 0x40, 0xb0,
+ 0x7d, 0x57, 0xc4, 0xc4, 0xac, 0x03, 0xf8, 0xde, 0x3f, 0x13, 0x3f, 0xe9,
+ 0x6d, 0x8d, 0x57, 0x95, 0x42, 0x94, 0x93, 0x21, 0x03, 0xed, 0xa8, 0xf6,
+ 0xec, 0x21, 0x9f, 0xb1, 0x97, 0xd0, 0x0c, 0x4b, 0x95, 0xaf, 0x60, 0x3b,
+ 0xf8, 0x33, 0xd5, 0x51, 0xaf, 0xec, 0x55, 0x49, 0x49, 0x92, 0xc9, 0x2a,
+ 0xa9, 0x39, 0xde, 0x27, 0x81, 0x96, 0x29, 0xed, 0x15, 0x99, 0x46, 0x30,
+ 0x60, 0x55, 0xb7, 0x18, 0xd5, 0xc4, 0x47, 0xe1, 0xf9, 0xf6, 0x56, 0x3b,
+ 0x2d, 0xb1, 0x57, 0x87, 0xb9, 0x82, 0xba, 0x01, 0xfc, 0x27, 0xca, 0x72,
+ 0x42, 0xcd, 0xeb, 0x5e, 0x8f, 0x7b, 0x3d, 0x18, 0x69, 0xbd, 0x14, 0x7e,
+ 0x27, 0xd5, 0x1e, 0x16, 0x8d, 0x5c, 0xa8, 0x29, 0x71, 0xe6, 0x63, 0x20,
+ 0x42, 0x89, 0xbc, 0x3f, 0x85, 0x2b, 0x32, 0xb9, 0x67, 0xaf, 0xc4, 0xe4,
+ 0x2b, 0x64, 0x12, 0xe7, 0x43, 0x3c, 0xa7, 0xe6, 0x5a, 0x17, 0xf1, 0xba,
+ 0x7a, 0x0e, 0xd8, 0x25, 0x9e, 0x7e, 0x94, 0xa2, 0x29, 0xbe, 0xee, 0x0a,
+ 0xbf, 0x2d, 0x29, 0x19, 0x05, 0xa6, 0x8e, 0x96, 0xf1, 0x1c, 0xb6, 0xc7,
+ 0x77, 0x5a, 0xdc, 0xce, 0xd4, 0xa6, 0xe4, 0xa7, 0x11, 0x37, 0x72, 0x3d,
+ 0xca, 0x13, 0x17, 0x96, 0x5b, 0x0a, 0x61, 0x1a, 0xb8, 0xce, 0xc2, 0x4e,
+ 0x23, 0x73, 0xe6, 0xbb, 0x91, 0x6f, 0x96, 0x09, 0xfc, 0xa5, 0xb4, 0x8c,
+ 0xd2, 0x08, 0x28, 0x3f, 0x3f, 0x24, 0x01, 0xcc, 0x67, 0x63, 0xa3, 0xb9,
+ 0x9c, 0x4c, 0xa2, 0x6f, 0xf2, 0x77, 0xc3, 0x4a, 0x0c, 0x3c, 0x56, 0xc4,
+ 0x76, 0x5f, 0x4d, 0xbe, 0xe3, 0x1f, 0xf1, 0x1e, 0xc2, 0x3f, 0x0c, 0x74,
+ 0xd7, 0x8e, 0x7e, 0x53, 0x9d, 0x28, 0xe5, 0xca, 0x64, 0xbf, 0x9b, 0xa6,
+ 0x3d, 0x43, 0x64, 0x71, 0x24, 0xa0, 0x2a, 0xaa, 0x86, 0x63, 0xf2, 0x8f,
+ 0x49, 0xb1, 0x93, 0xad, 0xab, 0x91, 0xe9, 0x23, 0x3c, 0xb9, 0x24, 0x70,
+ 0x47, 0x2c, 0x22, 0x14, 0xd2, 0xf2, 0x25, 0x3f, 0xcc, 0xdf, 0x87, 0xf4,
+ 0x9c, 0xa5, 0x45, 0x93, 0x33, 0xdd, 0x3e, 0x93, 0x68, 0x40, 0xf4, 0x57,
+ 0x44, 0xce, 0xe2, 0x73, 0xea, 0xf7, 0xc2, 0x05, 0x66, 0x04, 0xef, 0x15,
+ 0x7e, 0x0e, 0xfc, 0xa8, 0x1b, 0x91, 0x9a, 0xe6, 0x0c, 0x2f, 0xeb, 0xa8,
+ 0x02, 0xba, 0x40, 0xba, 0xd1, 0x0d, 0x0a, 0x82, 0x74, 0xd6, 0x12, 0x7d,
+ 0x03, 0x9c, 0xbc, 0x1a, 0x96, 0xbd, 0x3d, 0x18, 0xd7, 0xbe, 0xee, 0xbe,
+ 0x6e, 0x14, 0x3a, 0x9d, 0x09, 0x4f, 0x3e, 0x1f, 0x2a, 0x20, 0x87, 0x99,
+ 0x6c, 0x0d, 0xed, 0x55, 0x55, 0xfa, 0xf8, 0x3c, 0x0c, 0xd1, 0xb7, 0x34,
+ 0x97, 0x18, 0xb9, 0xb1, 0xfd, 0xd6, 0x60, 0x37, 0x06, 0x9b, 0x95, 0xb1,
+ 0x47, 0x6b, 0x92, 0xe5, 0xfe, 0x58, 0x2e, 0x0a, 0x2e, 0x6f, 0xc0, 0xb9,
+ 0xa4, 0xfc, 0xa6, 0x5a, 0xf9, 0x9a, 0xa6, 0x70, 0xde, 0xee, 0x52, 0xef,
+ 0x2a, 0x34, 0xb3, 0xa1, 0xdb, 0x44, 0xb2, 0xc8, 0x53, 0xf3, 0x36, 0x65,
+ 0x05, 0x46, 0xb2, 0xd6, 0x31, 0x5f, 0x6c, 0xe7, 0x69, 0x41, 0x38, 0x48,
+ 0xa2, 0x23, 0xcf, 0xfa, 0x66, 0x26, 0xf6, 0x4b, 0xcf, 0xc2, 0x40, 0x48,
+ 0xb7, 0x53, 0xbe, 0xaf, 0x43, 0x06, 0xe4, 0xc9, 0x6c, 0xc7, 0x54, 0x17,
+ 0xb3, 0x1e, 0x56, 0x48, 0xe7, 0x4e, 0x89, 0x54, 0xae, 0xa1, 0x24, 0xbd,
+ 0x39, 0xc4, 0xac, 0x68, 0x54, 0x57, 0xfd, 0xce, 0x49, 0xa9, 0xe6, 0xc9,
+ 0x3f, 0x76, 0x49, 0x0d, 0x44, 0x6d, 0xf6, 0x46, 0xbb, 0x3c, 0x95, 0x4c,
+ 0xc8, 0x2b, 0xa6, 0x9c, 0x0f, 0x79, 0xcf, 0x67, 0x57, 0x38, 0xfb, 0x65,
+ 0x96, 0xc5, 0xc6, 0xb0, 0xd2, 0x9e, 0xdd, 0x84, 0x0c, 0xd0, 0x2c, 0xd5,
+ 0x0b, 0x7d, 0xd8, 0xb4, 0x07, 0x62, 0x7c, 0x6a, 0x04, 0x5a, 0xd8, 0x12,
+ 0xa2, 0xea, 0xc3, 0xfd, 0x81, 0x65, 0x56, 0xcb, 0x47, 0x05, 0x68, 0xad,
+ 0x20, 0x69, 0x44, 0xb0, 0x49, 0x3d, 0x06, 0x17, 0x0a, 0x1b, 0x73, 0xd6,
+ 0xb8, 0x1e, 0x02, 0x90, 0xca, 0x39, 0x52, 0x5c, 0xd1, 0x07, 0x6d, 0x8a,
+ 0x71, 0x44, 0x03, 0xa6, 0xca, 0xe2, 0x23, 0x0c, 0x11, 0xd7, 0xe8, 0x84,
+ 0x68, 0x75, 0x6e, 0x19, 0xc9, 0xb0, 0xed, 0x27, 0x18, 0x76, 0x0e, 0xdb,
+ 0x0d, 0xc0, 0xb8, 0xf1, 0x94, 0x34, 0x37, 0xbe, 0xac, 0xab, 0x17, 0x37,
+ 0x02, 0x1c, 0x4c, 0x95, 0xd6, 0xa5, 0xa2, 0xa6, 0x74, 0x8c, 0x37, 0x13,
+ 0xa2, 0x5b, 0xf1, 0x4f, 0xe2, 0x55, 0xe1, 0xc1, 0x73, 0xee, 0x0d, 0xcc,
+ 0xfb, 0xef, 0xe8, 0x40, 0xbd, 0xb0, 0x20, 0x7c, 0x7a, 0x63, 0xa7, 0x83,
+ 0xd4, 0xa7, 0xc6, 0x22, 0x05, 0xee, 0x90, 0x0b, 0x33, 0x2c, 0x80, 0x2e,
+ 0xff, 0xfe, 0x78, 0xae, 0x8d, 0x25, 0xb7, 0xc6, 0x4f, 0x8d, 0xda, 0x49,
+ 0xa5, 0xbf, 0xfb, 0xa0, 0x1b, 0xfe, 0x14, 0xe9, 0xf6, 0xbb, 0x44, 0xe2,
+ 0x53, 0x96, 0xe0, 0x1c, 0x63, 0xef, 0x6d, 0x1d, 0x29, 0xbb, 0xeb, 0x1a,
+ 0x07, 0x6f, 0xf8, 0x58, 0x00, 0x30, 0x03, 0x00, 0x00, 0x4d, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x11, 0x00, 0x06, 0x10, 0x2c, 0x00,
+ 0x1e, 0xd7, 0xf0, 0x8c, 0xc9, 0xca, 0x03, 0x8c, 0x97, 0x3d, 0x07, 0x6c,
+ 0xbd, 0x0e, 0x57, 0x0d, 0x35, 0x5e, 0x2a, 0x36, 0xea, 0x80, 0x7b, 0x75,
+ 0x26, 0xf6, 0x26, 0x7e, 0x75, 0x8a, 0xd6, 0x3f, 0xfe, 0x58, 0x8d, 0x17,
+ 0x43, 0xb2, 0x07, 0xee, 0xb7, 0x5a, 0x43, 0xc8, 0x81, 0xa8, 0xaa, 0xca,
+ 0xb8, 0x25, 0xba, 0x28, 0x07, 0x0b, 0xc3, 0x8d, 0xcc, 0x60, 0xf5, 0xff,
+ 0x70, 0x34, 0xad, 0x61, 0xb3, 0x94, 0xdc, 0x6f, 0x2f, 0x91, 0x5a, 0x3c,
+ 0x2d, 0x5a, 0x0d, 0xc4, 0x64, 0xf5, 0x41, 0x3c, 0x61, 0x5d, 0x69, 0x5f,
+ 0x25, 0xf5, 0xe0, 0xb3, 0x03, 0xe1, 0xd8, 0x88, 0xc8, 0xc7, 0x08, 0x98,
+ 0xff, 0xf1, 0x6e, 0x17, 0xfb, 0x2c, 0x09, 0x1b, 0x97, 0x60, 0xc7, 0xf1,
+ 0x20, 0xbf, 0x55, 0xf2, 0xf1, 0x01, 0x05, 0x7b, 0x39, 0x5c, 0xfe, 0x47,
+ 0xc1, 0x74, 0x27, 0xde, 0x65, 0xba, 0x55, 0x45, 0x29, 0x6c, 0xcd, 0x6c,
+ 0x3e, 0xc8, 0x4f, 0xa1, 0x00, 0xbd, 0x94, 0xee, 0xfa, 0xfa, 0x8a, 0xeb,
+ 0x8d, 0xe5, 0x5a, 0xb3, 0xf5, 0x97, 0xc7, 0x1e, 0xc5, 0x18, 0x8e, 0x24,
+ 0x06, 0x8e, 0xfe, 0x87, 0x9e, 0xe4, 0x33, 0xa2, 0xbb, 0x7f, 0x2d, 0xff,
+ 0x85, 0xfc, 0x9e, 0x33, 0x03, 0x2b, 0x14, 0x75, 0x64, 0x9c, 0xa6, 0xc5,
+ 0x7d, 0xee, 0xae, 0x18, 0xe6, 0x83, 0xfe, 0x61, 0x81, 0x62, 0x3c, 0xf9,
+ 0x4a, 0x4d, 0x2c, 0xca, 0x9d, 0x43, 0xff, 0xe7, 0xcf, 0x96, 0x97, 0xfc,
+ 0xae, 0x9d, 0x43, 0x9a, 0xe9, 0x16, 0xa2, 0x96, 0x39, 0x5a, 0xb5, 0x0e,
+ 0x3d, 0xf6, 0xba, 0xf3, 0xd2, 0x66, 0xc6, 0x0f, 0x8b, 0xfa, 0x8d, 0xaa,
+ 0x3e, 0x15, 0x21, 0xd4, 0x68, 0x23, 0x86, 0xff, 0x89, 0xe1, 0x38, 0x33,
+ 0xb0, 0x07, 0xac, 0x50, 0x55, 0x74, 0xf4, 0x8e, 0xc8, 0x2b, 0x02, 0xd4,
+ 0xab, 0x1b, 0xc9, 0x04, 0x09, 0x4a, 0x20, 0x42, 0x67, 0x80, 0x76, 0x43,
+ 0x12, 0xdc, 0x2a, 0x2c, 0x29, 0x4c, 0x37, 0x17, 0xb1, 0x49, 0x04, 0xe1,
+ 0x61, 0x7f, 0x92, 0xfe, 0x3a, 0xcc, 0x4c, 0x3f, 0x84, 0x36, 0x5e, 0xf3,
+ 0xb5, 0x24, 0x6e, 0x49, 0x57, 0x30, 0xe5, 0x36, 0xc5, 0xf9, 0x4f, 0x4f,
+ 0x13, 0xe2, 0xa6, 0xe8, 0xdc, 0x41, 0x04, 0xc4, 0x6a, 0x47, 0xd2, 0x9b,
+ 0x9f, 0xe5, 0xc7, 0xbf, 0x3e, 0x56, 0x26, 0xa7, 0x8d, 0xaa, 0xa5, 0xac,
+ 0x91, 0x2b, 0xc4, 0xb4, 0xd2, 0x94, 0xba, 0x28, 0xde, 0x5f, 0x47, 0xa6,
+ 0x7d, 0x2d, 0xfd, 0x5f, 0x9b, 0x52, 0xd0, 0xc4, 0x12, 0x1c, 0x18, 0x3e,
+ 0x56, 0x88, 0xb7, 0x5a, 0xd5, 0x7d, 0xc8, 0xb4, 0x4b, 0x12, 0xc2, 0x05,
+ 0xdb, 0x22, 0x36, 0x8a, 0x37, 0xe9, 0xa7, 0x2c, 0x17, 0x77, 0xd4, 0x15,
+ 0x2a, 0x3b, 0x94, 0x08, 0x27, 0xc4, 0x1d, 0x7c, 0xcb, 0x7d, 0xe7, 0x1e,
+ 0x64, 0xeb, 0xd2, 0x4b, 0x47, 0xd6, 0xa2, 0xd3, 0xb7, 0x44, 0xce, 0xb7,
+ 0x5d, 0xdd, 0x7d, 0x65, 0xf4, 0x28, 0x11, 0x25, 0x3d, 0x69, 0xd9, 0x9d,
+ 0x63, 0xd7, 0x81, 0xec, 0x6a, 0xe7, 0x27, 0x5f, 0x60, 0xf9, 0x66, 0x20,
+ 0xd9, 0x0e, 0xa4, 0xb0, 0x95, 0x75, 0xd6, 0x3a, 0xc7, 0x49, 0x81, 0xb4,
+ 0x60, 0x3d, 0xcd, 0xb0, 0xb1, 0xc8, 0x3e, 0x53, 0x60, 0xa8, 0xe9, 0x5d,
+ 0xe2, 0x64, 0x52, 0x83, 0x04, 0xb6, 0xa5, 0x76, 0xfe, 0x5d, 0x33, 0x24,
+ 0xae, 0x1c, 0xeb, 0x1a, 0x3f, 0x4c, 0x2a, 0x3e, 0x44, 0x72, 0x43, 0x23,
+ 0x48, 0x4b, 0x35, 0x23, 0x14, 0xad, 0x7a, 0xda, 0x4a, 0xa8, 0xec, 0xa1,
+ 0x6c, 0x95, 0x5d, 0x38, 0x8c, 0xdb, 0x31, 0xc3, 0xda, 0x77, 0x72, 0xfc,
+ 0x32, 0x28, 0xc0, 0x44, 0x97, 0x08, 0xa7, 0xc2, 0x8f, 0x51, 0x2d, 0x68,
+ 0xe4, 0x9e, 0x33, 0x0f, 0x1d, 0xfd, 0xa2, 0xbd, 0xa7, 0x2f, 0x26, 0x3e,
+ 0x5c, 0x57, 0x80, 0x7c, 0x5c, 0xba, 0x39, 0xc4, 0xbd, 0x1d, 0x16, 0xed,
+ 0xb4, 0x3c, 0x7e, 0xab, 0xe5, 0x19, 0xd0, 0xd9, 0x02, 0x6d, 0xc3, 0xe7,
+ 0x2f, 0x69, 0xf5, 0x2e, 0xce, 0xa9, 0x8c, 0x94, 0x03, 0x52, 0x86, 0xa8,
+ 0x83, 0x51, 0xdb, 0x50, 0x48, 0x9c, 0x46, 0x30, 0x22, 0x94, 0xfb, 0x8b,
+ 0x46, 0x4f, 0x59, 0xe5, 0xb7, 0xc8, 0x12, 0x9f, 0xe2, 0x98, 0x19, 0x7a,
+ 0x9c, 0x73, 0x50, 0x71, 0xe2, 0xa4, 0xbc, 0x15, 0x0e, 0x4e, 0x2a, 0x82,
+ 0xeb, 0x47, 0x54, 0xf4, 0xb7, 0x26, 0xa0, 0xfe, 0x04, 0xbb, 0x0a, 0xfd,
+ 0x65, 0x8e, 0xc0, 0x8b, 0x48, 0xe7, 0x81, 0x77, 0x4d, 0xae, 0x64, 0x10,
+ 0x25, 0xf9, 0xac, 0xa8, 0xe1, 0x43, 0x2d, 0x74, 0x2f, 0xc2, 0x18, 0x45,
+ 0xcb, 0x42, 0xd7, 0x51, 0x42, 0x27, 0x8e, 0xff, 0xa7, 0x45, 0x89, 0x00,
+ 0x4d, 0x3a, 0x23, 0x27, 0x9e, 0xa0, 0xd3, 0x16, 0x91, 0xf8, 0xf6, 0xe3,
+ 0xbc, 0xcf, 0x33, 0x29, 0xfe, 0x4c, 0xbc, 0xb5, 0xf1, 0x89, 0xac, 0x92,
+ 0x01, 0xde, 0x22, 0xcf, 0xe2, 0x35, 0x69, 0x4d, 0x69, 0xe3, 0x8b, 0x43,
+ 0x9f, 0xf4, 0xad, 0x89, 0xd0, 0x8b, 0xcf, 0xf1, 0xf3, 0xbb, 0x87, 0xe7,
+ 0x1c, 0x1a, 0x41, 0x20, 0x46, 0xc1, 0x24, 0xec, 0xb1, 0x59, 0xd1, 0xc1,
+ 0x9f, 0x3d, 0x90, 0x9c, 0xb5, 0xe8, 0xa4, 0x38, 0x83, 0xf9, 0x21, 0xfb,
+ 0x94, 0x66, 0x95, 0x88, 0xf1, 0x00, 0xf8, 0xe7, 0x37, 0xfe, 0x51, 0x16,
+ 0x65, 0x12, 0x74, 0xa4, 0x2b, 0x09, 0xd7, 0x49, 0x13, 0xff, 0x08, 0x4c,
+ 0xf6, 0x9b, 0x0b, 0xc2, 0x7f, 0xd6, 0xd1, 0x52, 0x66, 0x37, 0xa1, 0xda,
+ 0x52, 0xd6, 0x8e, 0x34, 0x11, 0x9d, 0xef, 0x71, 0x49, 0x47, 0xbe, 0x06,
+ 0xd5, 0x01, 0xf9, 0x26, 0x18, 0x7c, 0x45, 0xb0, 0x6b, 0xaa, 0x5e, 0x6b,
+ 0xd9, 0x3a, 0xdc, 0x8b, 0xf0, 0x00, 0x0b, 0xea, 0xc8, 0xde, 0xe6, 0xcb,
+ 0xbc, 0x4c, 0xb1, 0xaa, 0x40, 0x9b, 0xad, 0x36, 0xc3, 0x65, 0xa7, 0x70,
+ 0x3b, 0xa1, 0x8b, 0x9c, 0x5e, 0x80, 0xcb, 0x20, 0xe8, 0x0e, 0xbd, 0x33,
+ 0x8f, 0x40, 0x06, 0x10, 0x00, 0x80, 0x04, 0x00, 0x00, 0x4e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x10, 0x00, 0x06, 0x10, 0x1c, 0x00,
+ 0x1c, 0x10, 0xdf, 0x41, 0x5b, 0xfc, 0xf8, 0x82, 0x0a, 0x68, 0x65, 0x2b,
+ 0x49, 0xfd, 0x15, 0x3b, 0xfa, 0x1d, 0xb9, 0x19, 0xfa, 0xe0, 0x6f, 0x91,
+ 0xac, 0x4b, 0xda, 0x9f, 0x79, 0x9c, 0xb8, 0xa2, 0xd3, 0x20, 0x9d, 0x79,
+ 0xa5, 0xc3, 0xb4, 0x0e, 0xa0, 0xf0, 0x76, 0x04, 0x63, 0x06, 0x75, 0x60,
+ 0xa9, 0xb8, 0xd7, 0x1e, 0xde, 0x71, 0x8b, 0xa5, 0x71, 0x81, 0xaa, 0xa2,
+ 0x5e, 0x12, 0x28, 0xd5, 0x06, 0xcf, 0x08, 0xe3, 0x88, 0x40, 0xb4, 0xfb,
+ 0xef, 0x0f, 0x09, 0x2d, 0x67, 0xde, 0xac, 0x90, 0xd6, 0xbd, 0x98, 0xa3,
+ 0x12, 0x4a, 0xf6, 0x05, 0x02, 0x39, 0x50, 0xa4, 0x70, 0x66, 0xc8, 0x3f,
+ 0x24, 0x5d, 0x12, 0xd1, 0x83, 0x7c, 0xb1, 0x14, 0x88, 0x22, 0x8b, 0x55,
+ 0xc3, 0xf5, 0xc4, 0xb9, 0x9e, 0x52, 0xf2, 0xcd, 0xc2, 0x3d, 0xb7, 0x55,
+ 0x91, 0x32, 0xd6, 0x83, 0x13, 0x28, 0xa9, 0xea, 0x2e, 0xcc, 0x97, 0x0e,
+ 0xe7, 0xf3, 0x18, 0xfd, 0x66, 0xd0, 0xf7, 0xbb, 0xad, 0x83, 0x38, 0xdb,
+ 0x22, 0x09, 0x9d, 0x31, 0xcd, 0x2e, 0x56, 0xd9, 0xe2, 0x9a, 0xf2, 0x88,
+ 0x3b, 0x99, 0x92, 0xab, 0x0b, 0xe3, 0xff, 0xa3, 0xee, 0x54, 0x8d, 0x8e,
+ 0x4d, 0x7b, 0x7d, 0x2c, 0x71, 0x31, 0x79, 0x55, 0xa9, 0x4c, 0x13, 0x6c,
+ 0xec, 0x9e, 0x9a, 0x76, 0x73, 0x6c, 0xb4, 0x3e, 0x97, 0x09, 0xfb, 0x6a,
+ 0x73, 0x27, 0xd6, 0x61, 0x14, 0x4f, 0x8b, 0xcc, 0xa1, 0x6f, 0x96, 0xf9,
+ 0x43, 0x0a, 0x21, 0x49, 0x8a, 0xa3, 0x3d, 0x66, 0xe9, 0xb7, 0xfd, 0x9e,
+ 0xe3, 0xfb, 0xd4, 0x7d, 0xcb, 0xb5, 0xef, 0xa7, 0x48, 0x06, 0xae, 0x41,
+ 0x41, 0x84, 0xef, 0xbc, 0xca, 0x4e, 0xa4, 0x37, 0x44, 0xa2, 0x82, 0xdc,
+ 0xc1, 0xe1, 0xc5, 0xfc, 0x69, 0xf5, 0x7d, 0x0c, 0xd8, 0x78, 0x15, 0xa1,
+ 0xab, 0xad, 0x74, 0xe6, 0x4d, 0xdd, 0x67, 0xda, 0x6a, 0x91, 0x6b, 0x8e,
+ 0x3b, 0x12, 0x18, 0x0f, 0x72, 0x38, 0xb7, 0x0d, 0xfe, 0x97, 0x12, 0xe0,
+ 0xb9, 0xe3, 0xe8, 0xe3, 0x46, 0x16, 0x82, 0x8a, 0x53, 0xc4, 0x70, 0x53,
+ 0xe5, 0xa8, 0x5d, 0x58, 0x24, 0xfa, 0x63, 0x97, 0x21, 0x84, 0x47, 0x8d,
+ 0x3f, 0x57, 0x9a, 0x75, 0x52, 0x15, 0xc5, 0xe9, 0x40, 0xe3, 0x1d, 0x32,
+ 0x60, 0x67, 0xa7, 0x1f, 0x58, 0xa1, 0x9f, 0x2a, 0xee, 0x6c, 0x9f, 0xef,
+ 0x0a, 0x33, 0xf2, 0x18, 0x8e, 0x51, 0xbd, 0xfa, 0x9f, 0xeb, 0xc1, 0x59,
+ 0xfb, 0x5c, 0xac, 0x25, 0x68, 0x30, 0xa2, 0xc2, 0x7f, 0xff, 0x04, 0x10,
+ 0xd5, 0x0f, 0x90, 0x59, 0xab, 0xd5, 0x4b, 0x32, 0xb2, 0xbe, 0x4d, 0x4b,
+ 0xcb, 0x74, 0x51, 0xb6, 0xca, 0xfe, 0xaf, 0x3b, 0xcb, 0x51, 0x56, 0xe5,
+ 0x07, 0x55, 0x7d, 0x83, 0xce, 0x7a, 0xcd, 0x81, 0x2f, 0x2b, 0x48, 0xf7,
+ 0x19, 0xe7, 0x67, 0xba, 0x79, 0x0d, 0xf8, 0x2c, 0xc6, 0x43, 0x5e, 0x8f,
+ 0xd3, 0xcf, 0x0e, 0x87, 0xbe, 0xcc, 0xc0, 0xf8, 0xdc, 0x28, 0x0f, 0x41,
+ 0x6f, 0xcc, 0xf1, 0xc1, 0x35, 0xd3, 0x98, 0x31, 0x6a, 0xe5, 0xa1, 0x00,
+ 0xd3, 0x0a, 0x26, 0x79, 0x75, 0x7d, 0x11, 0x66, 0xed, 0x11, 0x58, 0x66,
+ 0xe3, 0x72, 0x41, 0x2f, 0x6e, 0x40, 0x40, 0xc6, 0x5d, 0xe8, 0x78, 0x4d,
+ 0x59, 0x98, 0x95, 0xb8, 0x4a, 0xcf, 0xf3, 0xdd, 0x5d, 0x22, 0x78, 0x68,
+ 0x5f, 0xb2, 0xeb, 0xec, 0xec, 0x56, 0xe3, 0x3d, 0x34, 0x93, 0x68, 0xeb,
+ 0xda, 0x1a, 0x8c, 0x67, 0x74, 0x8d, 0x22, 0x1e, 0x4e, 0xa3, 0x38, 0x74,
+ 0x78, 0xcd, 0x8c, 0x33, 0xd4, 0x39, 0xdd, 0x15, 0x1d, 0x77, 0xf1, 0xd2,
+ 0x7d, 0xf2, 0x80, 0x0b, 0x1d, 0x85, 0xcd, 0x6a, 0xaf, 0x95, 0x40, 0xea,
+ 0xc9, 0x4e, 0x69, 0xe6, 0x5c, 0x06, 0x55, 0x85, 0xab, 0xf5, 0x7f, 0x7e,
+ 0xf1, 0xee, 0xa7, 0xb2, 0xbc, 0x3e, 0x78, 0xaf, 0x42, 0x7a, 0xea, 0x57,
+ 0xee, 0xa7, 0xb2, 0x80, 0x3e, 0x85, 0x8e, 0x4b, 0x05, 0xe4, 0xda, 0x00,
+ 0xc6, 0xbb, 0x19, 0xb1, 0x20, 0x6e, 0xe1, 0x91, 0xa4, 0xf0, 0x12, 0x9b,
+ 0xa8, 0x13, 0x98, 0x28, 0xef, 0x3b, 0xd9, 0xd2, 0x70, 0x1f, 0x8d, 0x3c,
+ 0x31, 0xd0, 0x59, 0xa3, 0x11, 0x2e, 0x9d, 0x1d, 0xff, 0x8c, 0x27, 0x51,
+ 0xf4, 0x1a, 0xd1, 0xe4, 0xd3, 0xf1, 0x99, 0xd8, 0x95, 0xf5, 0x11, 0xbc,
+ 0x04, 0xca, 0xb5, 0xc6, 0x81, 0x60, 0xcc, 0x05, 0x99, 0xef, 0x4a, 0xe2,
+ 0xbe, 0x6b, 0x1b, 0x07, 0x8c, 0x86, 0x83, 0x32, 0xf8, 0x92, 0xa1, 0xab,
+ 0xf1, 0x87, 0xa4, 0xc7, 0x3c, 0xb4, 0xbf, 0x00, 0x32, 0x76, 0x46, 0x77,
+ 0x53, 0x2a, 0x6d, 0x5e, 0x97, 0xa3, 0x83, 0xd9, 0x51, 0x13, 0xb0, 0x1a,
+ 0x86, 0xd4, 0x44, 0x44, 0x7c, 0x9e, 0x45, 0xbd, 0xdc, 0x13, 0xf0, 0xec,
+ 0xb8, 0x24, 0x7a, 0x8a, 0xdf, 0x72, 0xd2, 0x67, 0x2c, 0x38, 0x10, 0xf7,
+ 0x3e, 0x99, 0xa2, 0x0c, 0xc1, 0x96, 0x1a, 0x04, 0xe4, 0x9f, 0xb6, 0x79,
+ 0x34, 0xb7, 0xa4, 0xeb, 0x0f, 0x6a, 0x0c, 0x99, 0xc0, 0x85, 0x1b, 0xf5,
+ 0xd3, 0x5f, 0x00, 0x4e, 0x3d, 0x8e, 0x86, 0x2d, 0x89, 0xe2, 0xd2, 0xab,
+ 0x73, 0x9a, 0x69, 0x02, 0xb1, 0x3c, 0xe3, 0x68, 0xda, 0xf9, 0x02, 0x22,
+ 0x7d, 0x40, 0x29, 0x1b, 0x0a, 0x63, 0x84, 0x49, 0x59, 0x60, 0x3d, 0xeb,
+ 0xbb, 0xd3, 0x5f, 0x8b, 0x0f, 0x31, 0x8d, 0xe6, 0xde, 0xb4, 0xfe, 0x00,
+ 0xce, 0xb1, 0xb9, 0xe0, 0x5c, 0x14, 0xf6, 0x92, 0x68, 0xc1, 0xe6, 0x90,
+ 0x26, 0x10, 0xab, 0xae, 0xe2, 0xa3, 0x33, 0x17, 0x17, 0x64, 0xcd, 0xe6,
+ 0x42, 0xc7, 0x9e, 0x02, 0x3d, 0xa8, 0x4b, 0xeb, 0x9c, 0x75, 0xa0, 0x4d,
+ 0xcc, 0x2f, 0xcf, 0xa6, 0x30, 0xaa, 0xec, 0xcc, 0x30, 0x47, 0x50, 0x87,
+ 0x9f, 0x8b, 0x3a, 0x86, 0x4b, 0xe4, 0xa8, 0xb2, 0x76, 0x5f, 0x82, 0x87,
+ 0x11, 0x05, 0xca, 0x30, 0xb9, 0xf0, 0xf2, 0x7e, 0x53, 0xa8, 0xd9, 0xc5,
+ 0x7b, 0x14, 0xb5, 0x0d, 0xa4, 0x8a, 0xf0, 0x8a, 0xf9, 0x14, 0x15, 0x04,
+ 0x25, 0x6d, 0x95, 0x22, 0xbf, 0xb3, 0xc0, 0x4c, 0x0b, 0xd3, 0x11, 0xd7,
+ 0x60, 0x29, 0x2f, 0x50, 0xcd, 0x97, 0x0d, 0xa2, 0x99, 0xea, 0x61, 0xe2,
+ 0x92, 0xb2, 0x00, 0xcb, 0x8e, 0x77, 0xd8, 0xa8, 0xa0, 0x4f, 0x91, 0x17,
+ 0x04, 0x8c, 0x37, 0x2b, 0x26, 0x9d, 0xe4, 0x8f, 0xac, 0x84, 0xb5, 0xf9,
+ 0x2f, 0x2c, 0x25, 0x6e, 0xf3, 0x62, 0x7c, 0x77, 0x7e, 0x88, 0x56, 0xea,
+ 0x78, 0x58, 0xba, 0x08, 0x33, 0x54, 0x12, 0x33, 0x91, 0xe4, 0xdb, 0x41,
+ 0x4d, 0xb0, 0x5d, 0xcd, 0x80, 0x0e, 0x21, 0x37, 0x9d, 0x10, 0xab, 0x4a,
+ 0xe2, 0xd3, 0x21, 0x1c, 0x56, 0x4f, 0x7d, 0x76, 0x48, 0x0a, 0x14, 0x03,
+ 0xb9, 0x98, 0xbb, 0xb8, 0x59, 0x67, 0x38, 0xd3, 0x34, 0x89, 0x05, 0xce,
+ 0x0f, 0x42, 0x57, 0xc2, 0xc8, 0x6c, 0xc3, 0x1f, 0xfc, 0x22, 0xba, 0x3c,
+ 0xa2, 0x13, 0xaf, 0xfc, 0x1d, 0x1e, 0x6d, 0x30, 0x71, 0xe7, 0x55, 0x72,
+ 0xcf, 0xdc, 0xba, 0x2e, 0xe3, 0xce, 0xaa, 0xe5, 0x9f, 0xb9, 0x74, 0x5d,
+ 0xc7, 0x9d, 0x55, 0xcb, 0x3f, 0x72, 0xe8, 0xbb, 0x8f, 0x3a, 0xab, 0x96,
+ 0x7e, 0xe5, 0xd1, 0x77, 0x1e, 0x75, 0x57, 0x2c, 0xfd, 0xa0, 0x38, 0xf4,
+ 0x54, 0x25, 0x63, 0x9d, 0xc8, 0x3d, 0x3d, 0x19, 0x9e, 0xb2, 0x82, 0x35,
+ 0x9b, 0x0f, 0xc5, 0xe7, 0x23, 0xa4, 0xac, 0x2f, 0x39, 0x97, 0xf0, 0xcd,
+ 0xdd, 0x31, 0x41, 0xc3, 0x3c, 0xef, 0x8b, 0xe5, 0x9e, 0xe0, 0x51, 0xfb,
+ 0xdf, 0x1f, 0x77, 0x03, 0xed, 0x37, 0xdc, 0xf8, 0x65, 0xb6, 0x63, 0xe7,
+ 0xf8, 0x4d, 0xfd, 0x0e, 0xa7, 0x20, 0x0c, 0x29, 0x9e, 0xd6, 0x57, 0x40,
+ 0x86, 0xe1, 0xbe, 0xb9, 0x0e, 0xca, 0x99, 0x06, 0x0c, 0xa2, 0xd0, 0xe4,
+ 0x6b, 0x5e, 0x3f, 0xcf, 0xf9, 0xd5, 0x55, 0x6e, 0x13, 0x54, 0x52, 0xd6,
+ 0xe4, 0x17, 0xba, 0x6d, 0x10, 0xb1, 0xc9, 0x81, 0x16, 0x67, 0x3b, 0x83,
+ 0xab, 0xe7, 0x3b, 0x12, 0x95, 0x89, 0x81, 0x5a, 0x37, 0x07, 0x6c, 0x3a,
+ 0x75, 0x08, 0xb6, 0xe5, 0xf5, 0xc8, 0xca, 0x16, 0x61, 0x84, 0x6b, 0x9c,
+ 0x58, 0xf0, 0x1f, 0x08, 0xfb, 0x2a, 0x48, 0xd3, 0xa7, 0x04, 0x61, 0x7a,
+ 0x71, 0x68, 0xae, 0x93, 0xbf, 0x9c, 0xff, 0x6c, 0xca, 0x2a, 0x9e, 0x43,
+ 0xf7, 0x4e, 0x96, 0x35, 0xad, 0x68, 0xa6, 0x40, 0xbd, 0x26, 0x70, 0x87,
+ 0x2c, 0x36, 0x8b, 0x50, 0x00, 0x39, 0x03, 0x00, 0x00, 0x4f, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e, 0x00, 0x05, 0x10, 0x18, 0x00,
+ 0x1a, 0xf8, 0x10, 0x07, 0xca, 0x8f, 0xc5, 0x87, 0x52, 0xd6, 0xfc, 0x8c,
+ 0x36, 0x10, 0xb4, 0xa4, 0xc3, 0x07, 0x3c, 0x8b, 0xdc, 0xca, 0x25, 0xc3,
+ 0xf2, 0x9c, 0xce, 0xff, 0x00, 0x71, 0xbd, 0x3a, 0x93, 0x84, 0xb4, 0xc8,
+ 0xdb, 0xd2, 0x49, 0x02, 0xe4, 0xca, 0x1d, 0x02, 0x01, 0xd8, 0xb4, 0x33,
+ 0x46, 0x43, 0xbe, 0x65, 0xdb, 0xaf, 0xe8, 0x16, 0xc6, 0xb8, 0xfe, 0xb2,
+ 0x51, 0xf4, 0xf2, 0xca, 0x57, 0x22, 0x10, 0x1a, 0x66, 0xc5, 0x46, 0x7e,
+ 0x10, 0x41, 0x36, 0x9c, 0x1a, 0x43, 0xeb, 0x77, 0x79, 0x58, 0x29, 0x5d,
+ 0x4f, 0x43, 0x03, 0x9d, 0xa2, 0xa7, 0x1a, 0xad, 0xcd, 0x92, 0x8e, 0x1b,
+ 0x4c, 0xd3, 0xf3, 0x5a, 0xe2, 0x7d, 0xcf, 0xd9, 0x69, 0x8e, 0x7b, 0x51,
+ 0x80, 0xd0, 0xf3, 0xa3, 0xd9, 0x3f, 0xbf, 0xbd, 0x72, 0xa3, 0x28, 0x0f,
+ 0x20, 0xd6, 0xb8, 0xd0, 0xd5, 0x0f, 0xdb, 0x85, 0x6c, 0xe0, 0x70, 0xfa,
+ 0xa7, 0x9b, 0xa6, 0x96, 0x6b, 0x39, 0x12, 0x78, 0xc2, 0x37, 0xe2, 0x7b,
+ 0x3d, 0x2c, 0x7f, 0x49, 0xfc, 0x71, 0xca, 0xa3, 0x98, 0x4c, 0x78, 0x1a,
+ 0xd9, 0xf7, 0xbf, 0xf4, 0x03, 0x58, 0xb8, 0x39, 0xeb, 0x23, 0x22, 0x78,
+ 0x7d, 0x0f, 0x41, 0xd2, 0x09, 0x8e, 0xe9, 0xab, 0x1d, 0xb0, 0x7a, 0xba,
+ 0x10, 0xef, 0x3c, 0x1a, 0xee, 0xf8, 0x1f, 0xd2, 0xca, 0xe4, 0x1d, 0x10,
+ 0x5d, 0xc1, 0xfd, 0x80, 0xb5, 0x34, 0x18, 0x0c, 0x32, 0x9f, 0xb3, 0x74,
+ 0x44, 0x22, 0x28, 0xd2, 0x06, 0x94, 0x50, 0xa3, 0xd4, 0x61, 0x0c, 0xfb,
+ 0xf6, 0x48, 0xab, 0xe1, 0xb6, 0x29, 0x64, 0x3d, 0xb1, 0x6a, 0x16, 0xdc,
+ 0xdf, 0xaf, 0xbf, 0x4e, 0x11, 0x9a, 0xe7, 0x76, 0x65, 0xe5, 0xec, 0xdd,
+ 0x8f, 0x84, 0x41, 0xd5, 0x10, 0x65, 0x3a, 0x32, 0x6c, 0xe4, 0xf5, 0x08,
+ 0x5e, 0xed, 0x99, 0xcc, 0x6a, 0x08, 0x2a, 0x94, 0x85, 0xa1, 0x7a, 0x5a,
+ 0x97, 0xed, 0x6b, 0x78, 0x54, 0xc8, 0x57, 0xa8, 0x82, 0xca, 0x28, 0xbb,
+ 0xe6, 0x4e, 0xf3, 0xdf, 0x1d, 0x46, 0x53, 0xff, 0x59, 0xc4, 0x4a, 0x4e,
+ 0x68, 0x81, 0x64, 0x54, 0x14, 0x29, 0xcd, 0xd1, 0xd6, 0x4f, 0xc9, 0x9b,
+ 0xf8, 0xec, 0xc0, 0x79, 0x5c, 0xd3, 0xab, 0x11, 0x3d, 0x9f, 0x1c, 0xe2,
+ 0x9e, 0x0b, 0x91, 0x77, 0x76, 0x6d, 0xd5, 0x2c, 0xaa, 0xfb, 0x9f, 0x56,
+ 0x4b, 0x2d, 0x9f, 0xb5, 0x5e, 0x3c, 0xc3, 0xf7, 0x03, 0x60, 0xfa, 0x89,
+ 0x2a, 0x23, 0xa6, 0x99, 0xf1, 0xa3, 0xd0, 0x69, 0x4a, 0x78, 0x2d, 0x4b,
+ 0x09, 0x4d, 0x1a, 0x32, 0x37, 0x31, 0x51, 0x01, 0x4f, 0xf5, 0x60, 0x98,
+ 0x5f, 0x5e, 0xfe, 0xc2, 0x72, 0xc5, 0xa9, 0x45, 0x93, 0xf4, 0x69, 0x3b,
+ 0x8c, 0xe5, 0x5c, 0xf7, 0xc4, 0xc3, 0x0c, 0x09, 0x29, 0x58, 0x9b, 0x0b,
+ 0xb1, 0x72, 0x4b, 0xb8, 0xeb, 0x91, 0x98, 0xce, 0x81, 0x53, 0x29, 0x1d,
+ 0x08, 0xe4, 0x7a, 0xfd, 0xb0, 0x4b, 0x74, 0xd9, 0x53, 0xba, 0xe1, 0xa0,
+ 0x69, 0xf9, 0x83, 0x31, 0xa1, 0x9c, 0x02, 0x87, 0x1c, 0x60, 0xd2, 0xf1,
+ 0xdf, 0x8e, 0x73, 0x96, 0xff, 0x99, 0xf8, 0xd1, 0xe8, 0xc5, 0xe4, 0xe6,
+ 0xdf, 0x2c, 0x3f, 0xeb, 0xa3, 0x4d, 0xe4, 0x9c, 0x26, 0xe5, 0x5a, 0xc8,
+ 0x0a, 0xc1, 0x63, 0xa5, 0x69, 0x6c, 0xa6, 0x3a, 0xd7, 0xe2, 0xb2, 0xae,
+ 0xbc, 0x29, 0x9e, 0x55, 0x79, 0x80, 0x74, 0xfd, 0x4a, 0xf7, 0xa1, 0x6e,
+ 0x92, 0x0f, 0x93, 0x10, 0x44, 0xd2, 0x6e, 0xfc, 0x20, 0xe3, 0xb2, 0x12,
+ 0xc5, 0xc8, 0x91, 0xee, 0xa2, 0x42, 0xa6, 0x9b, 0xcc, 0x72, 0x9c, 0x5b,
+ 0x59, 0x14, 0x74, 0x15, 0x72, 0x42, 0x6c, 0x95, 0xe1, 0x97, 0xca, 0x03,
+ 0xc3, 0x08, 0x8e, 0x07, 0x35, 0x03, 0xf8, 0xeb, 0x9c, 0x62, 0x29, 0x55,
+ 0x5b, 0x47, 0x76, 0x6e, 0x88, 0xa8, 0x9c, 0x96, 0xab, 0x27, 0x86, 0x90,
+ 0x9b, 0xcd, 0x71, 0xba, 0x9f, 0x20, 0x31, 0xd7, 0xbc, 0x08, 0x64, 0x10,
+ 0xeb, 0x4b, 0x9f, 0xb5, 0x4a, 0xcc, 0x4b, 0x18, 0x37, 0xab, 0xf5, 0xee,
+ 0x73, 0x5f, 0x4e, 0x09, 0x01, 0xb9, 0x00, 0xed, 0xfa, 0xa9, 0xb2, 0x16,
+ 0xac, 0x4a, 0x08, 0x50, 0x60, 0x64, 0x1b, 0x60, 0xb2, 0x98, 0xee, 0x30,
+ 0xbe, 0xd4, 0x0f, 0xff, 0xf0, 0x5c, 0x7d, 0x46, 0xe2, 0xa5, 0x10, 0xc4,
+ 0x95, 0x58, 0x3b, 0xeb, 0x82, 0x32, 0xa5, 0x07, 0x98, 0x01, 0xb5, 0x60,
+ 0x19, 0x4c, 0xc2, 0x8f, 0xe4, 0xab, 0x85, 0x48, 0xf6, 0x83, 0x88, 0x0b,
+ 0x1a, 0x72, 0xda, 0x26, 0x3d, 0x0c, 0xf0, 0x35, 0x4e, 0x36, 0xfa, 0x5c,
+ 0xa9, 0x08, 0x52, 0xb0, 0x8b, 0x76, 0xf5, 0x38, 0x86, 0x5e, 0x09, 0xe9,
+ 0x00, 0xc2, 0xcb, 0xd4, 0xba, 0xb3, 0x1d, 0x50, 0xd1, 0x91, 0xd9, 0x2d,
+ 0xd5, 0x50, 0x41, 0x21, 0x58, 0x14, 0x01, 0x96, 0xbc, 0x7f, 0xdf, 0xe8,
+ 0x6b, 0x12, 0x80, 0xa0, 0x52, 0xd3, 0xbd, 0x81, 0x0c, 0x9d, 0x3e, 0xbc,
+ 0xca, 0x00, 0xf3, 0x84, 0xba, 0x99, 0x6c, 0xc3, 0xb2, 0xc5, 0xa7, 0x61,
+ 0x2a, 0x0b, 0xad, 0x68, 0x98, 0x63, 0x8c, 0x9b, 0x26, 0xa6, 0x8e, 0xdc,
+ 0xbd, 0xb1, 0xac, 0xf3, 0x69, 0xd8, 0x61, 0x79, 0xbf, 0x81, 0xee, 0xcc,
+ 0x27, 0xe7, 0x41, 0x7d, 0x4f, 0x6e, 0xd0, 0x36, 0x65, 0xaa, 0x7c, 0x02,
+ 0xeb, 0x5a, 0xfe, 0x3d, 0x03, 0x05, 0xdf, 0xe2, 0x70, 0x60, 0xf4, 0xf5,
+ 0xaf, 0xae, 0x46, 0x9e, 0x8c, 0x1b, 0xc5, 0x96, 0xfb, 0x7e, 0x68, 0x02,
+ 0xe0, 0x1a, 0xd4, 0x11, 0x71, 0x21, 0xe8, 0x4f, 0x33, 0x97, 0x91, 0x0e,
+ 0x59, 0x47, 0x2c, 0x49, 0x1e, 0x77, 0x1b, 0x9c, 0xde, 0x2f, 0xe0, 0x3e,
+ 0xa9, 0x1a, 0x14, 0x81, 0x20, 0xb2, 0xd7, 0x39, 0x7c, 0xc0, 0x74, 0xdd,
+ 0x0d, 0x8a, 0xd0, 0x84, 0xb3, 0xea, 0x16, 0x88, 0x64, 0xec, 0x18, 0x7d,
+ 0x6d, 0x91, 0xc5, 0xd1, 0x90, 0xa6, 0xf2, 0x55, 0xba, 0x38, 0x56, 0x6e,
+ 0x89, 0xa2, 0xf2, 0x98, 0x95, 0x1c, 0x3a, 0xf5, 0x2c, 0xf4, 0x16, 0xcd,
+ 0xb0, 0x00, 0x68, 0x05, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xd1, 0x13, 0x00, 0x07, 0x10, 0x14, 0x00, 0x1e, 0xca, 0x4f,
+ 0x61, 0x9e, 0xd3, 0x4b, 0x5c, 0x6e, 0xbf, 0x4d, 0x33, 0xa3, 0x42, 0xc9,
+ 0x2b, 0xd8, 0xb5, 0xc2, 0xa3, 0x1f, 0xe0, 0x61, 0x47, 0x49, 0x64, 0xa6,
+ 0x38, 0xff, 0x6f, 0x61, 0x6e, 0xb1, 0x7f, 0x85, 0x3d, 0x8f, 0x60, 0xee,
+ 0x9b, 0x4b, 0x70, 0xe3, 0xdc, 0x69, 0x2d, 0x76, 0x6b, 0xaa, 0x2b, 0xfb,
+ 0x1f, 0x90, 0xde, 0x84, 0x32, 0xff, 0x7f, 0x64, 0x9a, 0x39, 0x0b, 0x67,
+ 0xab, 0x5f, 0x28, 0xf8, 0xa5, 0xb0, 0x50, 0xeb, 0xdd, 0x71, 0xb2, 0x5b,
+ 0x83, 0xeb, 0x5c, 0x7d, 0x7b, 0xae, 0xb0, 0x33, 0xa0, 0xc0, 0xd5, 0x29,
+ 0x18, 0xbe, 0x44, 0x00, 0x2d, 0x8f, 0x38, 0x0b, 0x56, 0xcc, 0x4b, 0x32,
+ 0xd0, 0xbf, 0x50, 0xb9, 0x32, 0xf0, 0x31, 0x50, 0xb8, 0x98, 0x3a, 0x8d,
+ 0x36, 0x20, 0xbe, 0x74, 0x0e, 0x89, 0x5f, 0xff, 0x87, 0x97, 0x80, 0xc7,
+ 0xf8, 0x32, 0xe7, 0x78, 0x97, 0x3a, 0x4f, 0x78, 0x91, 0xba, 0xbc, 0xf8,
+ 0x33, 0x9d, 0xce, 0x05, 0xbc, 0xeb, 0x67, 0x3f, 0xee, 0x74, 0x93, 0xd5,
+ 0x81, 0xfc, 0x84, 0x44, 0x12, 0x7a, 0x50, 0x51, 0x9d, 0x9d, 0x68, 0x33,
+ 0x88, 0xc8, 0xb9, 0xa3, 0xcd, 0x30, 0x36, 0xc5, 0x1b, 0x9b, 0xd2, 0x4b,
+ 0xe4, 0xf7, 0x9f, 0x0d, 0x23, 0xe8, 0xb1, 0xf6, 0x81, 0xa9, 0xc0, 0xbb,
+ 0x27, 0x62, 0x6d, 0x4b, 0x45, 0x25, 0x7b, 0x42, 0x7d, 0x8d, 0xdd, 0x2b,
+ 0xbc, 0xc7, 0x4b, 0x9c, 0x27, 0x84, 0xe4, 0x62, 0x12, 0xd9, 0xc2, 0x37,
+ 0x59, 0xc5, 0x67, 0x77, 0x0c, 0xad, 0x1e, 0x88, 0x0c, 0x92, 0xb1, 0x65,
+ 0xcc, 0x98, 0x2f, 0xbf, 0x9a, 0x2e, 0x99, 0xc6, 0xe0, 0x6a, 0xd1, 0xe0,
+ 0xb9, 0x48, 0x5f, 0xdd, 0x53, 0x3f, 0x92, 0x90, 0x75, 0x99, 0xf9, 0xcf,
+ 0x56, 0x70, 0xae, 0xd0, 0x58, 0x36, 0xa2, 0xa4, 0xe1, 0x88, 0x02, 0xb5,
+ 0xd5, 0x54, 0xa7, 0xf8, 0x88, 0x99, 0x47, 0xa9, 0x01, 0x6f, 0x61, 0xb0,
+ 0x54, 0x46, 0xc4, 0x80, 0xaf, 0x0b, 0x24, 0x16, 0x62, 0x2b, 0xf3, 0xd7,
+ 0x6a, 0x58, 0xd6, 0x5e, 0x3a, 0xc3, 0x32, 0x8e, 0x71, 0x97, 0xce, 0x7e,
+ 0xe3, 0xa1, 0xb0, 0x2d, 0x5c, 0x8b, 0x53, 0x55, 0x8a, 0xe7, 0xa9, 0xa8,
+ 0x44, 0xf3, 0x96, 0xde, 0x23, 0xc4, 0x76, 0x75, 0x65, 0xe2, 0xbd, 0x03,
+ 0xb5, 0xac, 0x0f, 0xce, 0x86, 0xb3, 0x5f, 0x7c, 0x7f, 0x17, 0xb4, 0x7a,
+ 0x9a, 0x1b, 0x16, 0x93, 0xe7, 0x3f, 0xf9, 0x7f, 0xce, 0xb6, 0xd0, 0x71,
+ 0xaa, 0x71, 0x6d, 0xf3, 0x1c, 0xb3, 0x45, 0x09, 0x01, 0xcd, 0x3c, 0x0d,
+ 0x22, 0x82, 0x29, 0xf0, 0xe3, 0xb2, 0x16, 0x16, 0x33, 0x9c, 0x80, 0x08,
+ 0x8a, 0xd3, 0x9e, 0xe2, 0xe9, 0x59, 0x41, 0x96, 0xf0, 0x16, 0xb0, 0x07,
+ 0xe7, 0x25, 0xa6, 0x31, 0x7b, 0x22, 0xb3, 0xcc, 0xd7, 0x24, 0x8d, 0x34,
+ 0x93, 0x09, 0x9a, 0x0e, 0xe7, 0x88, 0x18, 0x04, 0xbd, 0x85, 0xdf, 0x2a,
+ 0x50, 0x3a, 0x53, 0xe0, 0x17, 0x60, 0x24, 0xc3, 0xfe, 0xaf, 0x59, 0x1f,
+ 0xa5, 0x02, 0xfd, 0x65, 0x84, 0x8d, 0xef, 0xbd, 0xcb, 0xa5, 0x64, 0x33,
+ 0xf0, 0x4d, 0xfc, 0x4d, 0x65, 0xed, 0xf9, 0xcc, 0xf1, 0x6c, 0x39, 0xe6,
+ 0x49, 0xab, 0x33, 0xa0, 0x10, 0x8f, 0x56, 0x9c, 0x66, 0x3c, 0xdb, 0xb4,
+ 0x29, 0x80, 0xa4, 0xce, 0x98, 0x68, 0x86, 0x35, 0xfb, 0xf5, 0x3b, 0xfe,
+ 0x3e, 0x18, 0x44, 0x45, 0x93, 0x3a, 0x4c, 0xd1, 0x88, 0xa6, 0xc1, 0xbc,
+ 0x70, 0xab, 0x55, 0x5a, 0x50, 0x23, 0x67, 0xca, 0xe7, 0x43, 0x7f, 0x26,
+ 0x6c, 0x49, 0x0f, 0x96, 0x09, 0x96, 0x5d, 0x5b, 0xf3, 0xaf, 0x71, 0x5d,
+ 0x6c, 0x3b, 0x08, 0xdd, 0x69, 0xa4, 0x71, 0xb3, 0x5a, 0xd4, 0x2d, 0xbb,
+ 0xbb, 0x13, 0x36, 0xdc, 0x8d, 0x66, 0xc8, 0x03, 0x03, 0xd7, 0x48, 0xae,
+ 0x3a, 0xa5, 0xd5, 0x3f, 0x64, 0x95, 0xd5, 0x5c, 0x59, 0x2b, 0x02, 0xcd,
+ 0xb0, 0xc4, 0xa9, 0x53, 0x51, 0xb9, 0x14, 0x3b, 0xd1, 0x7a, 0x73, 0x98,
+ 0x4a, 0xf3, 0x50, 0xf4, 0xfa, 0xc8, 0xb5, 0x36, 0xf6, 0x40, 0xfa, 0xf6,
+ 0x75, 0x35, 0x56, 0x77, 0xf2, 0x31, 0xb7, 0xb8, 0x5a, 0x9a, 0xbc, 0xb8,
+ 0xee, 0x06, 0x7a, 0x88, 0xba, 0xeb, 0x74, 0xdd, 0x24, 0x0c, 0x04, 0xab,
+ 0x21, 0xcb, 0x1f, 0xc2, 0x58, 0x5e, 0x68, 0x6b, 0xee, 0xe0, 0xb3, 0xb1,
+ 0x68, 0x4b, 0x3b, 0x1b, 0x5b, 0xab, 0xa5, 0x57, 0xb5, 0x11, 0x53, 0x78,
+ 0xa1, 0x39, 0xfe, 0x2b, 0x78, 0xaa, 0xa7, 0xbf, 0x8d, 0x91, 0x92, 0x23,
+ 0x35, 0xe9, 0xcd, 0x9a, 0x8b, 0xdc, 0x63, 0xaa, 0xe5, 0x20, 0x00, 0xe5,
+ 0xec, 0x22, 0x81, 0x66, 0x59, 0xe3, 0x4d, 0x74, 0x6e, 0x5f, 0x6e, 0x9e,
+ 0x66, 0x34, 0x93, 0x76, 0xaf, 0xda, 0xac, 0x9d, 0x09, 0x77, 0x47, 0xf5,
+ 0x50, 0xb4, 0xbd, 0x44, 0x94, 0x27, 0x93, 0x91, 0x7f, 0x5d, 0xf8, 0xb6,
+ 0xde, 0x7a, 0x62, 0xf5, 0x69, 0xc1, 0x6c, 0x24, 0x89, 0x9d, 0xda, 0x97,
+ 0x40, 0xe6, 0xa7, 0x34, 0x92, 0x72, 0x50, 0x78, 0x66, 0x5e, 0x61, 0xc8,
+ 0x6b, 0xdf, 0x06, 0xb4, 0xe6, 0x01, 0xcd, 0x7a, 0xd7, 0xff, 0xbb, 0xd1,
+ 0x0f, 0x2d, 0xef, 0x38, 0x8b, 0xce, 0x09, 0x99, 0xad, 0x58, 0xd6, 0x37,
+ 0x20, 0x37, 0xb6, 0xf5, 0x5d, 0x51, 0xda, 0x6a, 0x97, 0xdf, 0x18, 0x37,
+ 0x6d, 0x5c, 0xab, 0x7b, 0xc5, 0x72, 0x02, 0x6a, 0x01, 0xf8, 0x34, 0x60,
+ 0xdc, 0x47, 0x3a, 0xee, 0x4f, 0x3f, 0x5c, 0x73, 0x93, 0x64, 0x4b, 0x6d,
+ 0x77, 0x48, 0x23, 0x63, 0xf2, 0x47, 0x6b, 0x51, 0x64, 0x1e, 0x55, 0x07,
+ 0x7f, 0x0c, 0xf0, 0x11, 0x13, 0x76, 0xff, 0x68, 0x27, 0xb9, 0x5b, 0x89,
+ 0xdf, 0x0f, 0x07, 0xd8, 0xe5, 0x81, 0x52, 0x6d, 0xb3, 0x26, 0xe8, 0x4a,
+ 0x31, 0x86, 0xd8, 0x21, 0x42, 0x00, 0x54, 0xbb, 0x67, 0x6c, 0x58, 0x64,
+ 0xb7, 0x26, 0xdd, 0xe8, 0x68, 0x8f, 0x73, 0x5b, 0xde, 0x76, 0x65, 0x46,
+ 0x5a, 0xd1, 0x9e, 0xbc, 0x41, 0xb2, 0x98, 0xd7, 0xb8, 0x8e, 0x74, 0xd1,
+ 0xd4, 0xe7, 0x3c, 0xc4, 0x72, 0x56, 0x57, 0x05, 0x68, 0x41, 0xa8, 0x19,
+ 0x18, 0xa1, 0xce, 0xf6, 0x12, 0x0d, 0x37, 0x1b, 0xd9, 0x80, 0xec, 0x29,
+ 0x0e, 0x63, 0xbf, 0x05, 0xdb, 0xc6, 0x5c, 0xda, 0x01, 0xfe, 0x96, 0x42,
+ 0x08, 0x6c, 0x3d, 0xab, 0xe9, 0x58, 0x10, 0x6d, 0xb9, 0x7f, 0xe2, 0x4f,
+ 0xf7, 0xd6, 0x2d, 0x11, 0x3e, 0x3d, 0xcd, 0x96, 0xe2, 0x85, 0xe0, 0xea,
+ 0x94, 0x14, 0x2e, 0xb1, 0x12, 0x4d, 0x7b, 0x0d, 0xc3, 0x68, 0x33, 0x73,
+ 0xd4, 0xb8, 0xa9, 0x1c, 0xdd, 0xd7, 0xc8, 0xf4, 0x62, 0xef, 0x5f, 0xc1,
+ 0xe8, 0xc3, 0xe2, 0x8a, 0x65, 0xc4, 0xf6, 0x25, 0xe6, 0x60, 0xf1, 0x63,
+ 0x23, 0x74, 0x89, 0x4b, 0x4a, 0x31, 0x04, 0x62, 0x16, 0x84, 0xcb, 0x63,
+ 0xc3, 0x79, 0x1b, 0xbd, 0x36, 0x3d, 0x13, 0x66, 0x03, 0xfa, 0xfe, 0xa7,
+ 0xde, 0x38, 0x0a, 0x1d, 0xea, 0x3f, 0x55, 0x3e, 0x70, 0x8c, 0x8b, 0xeb,
+ 0x95, 0x4b, 0xe9, 0xd3, 0x05, 0x84, 0xe7, 0xb0, 0x49, 0xd2, 0xdf, 0xa2,
+ 0xc8, 0x74, 0x8b, 0x99, 0x87, 0xe1, 0x09, 0xcc, 0x94, 0x09, 0x76, 0x94,
+ 0x5c, 0x3a, 0x28, 0x93, 0xb6, 0xf4, 0x6c, 0xe0, 0xaf, 0x1e, 0x4c, 0x08,
+ 0xaf, 0x1d, 0x66, 0xb3, 0x66, 0x0a, 0x0f, 0x6d, 0x17, 0xde, 0x52, 0xd4,
+ 0x8a, 0x8f, 0x04, 0x83, 0xc4, 0x02, 0xc0, 0x95, 0x34, 0xad, 0xd7, 0x5d,
+ 0x65, 0x35, 0x67, 0xfa, 0x74, 0x68, 0xb5, 0xfa, 0x5f, 0x8e, 0x43, 0xd4,
+ 0xb0, 0x3a, 0x9f, 0x21, 0xd2, 0x02, 0x13, 0xfc, 0x00, 0x98, 0xa0, 0x0e,
+ 0xd7, 0xde, 0x0a, 0x1c, 0x10, 0x30, 0x27, 0x83, 0xb0, 0xc9, 0x61, 0x8c,
+ 0x5e, 0x18, 0x9d, 0x44, 0x09, 0x8e, 0xc3, 0xe2, 0x4a, 0x62, 0x84, 0x9e,
+ 0x07, 0xcc, 0x1e, 0xc5, 0x72, 0x21, 0x7a, 0x37, 0xb3, 0x5f, 0x59, 0xa1,
+ 0xc5, 0x58, 0xb4, 0x2c, 0x29, 0xce, 0xe7, 0xbe, 0xa9, 0xc1, 0x72, 0xba,
+ 0xca, 0x76, 0x96, 0x25, 0xbf, 0x7c, 0x24, 0x81, 0xf4, 0x95, 0xcd, 0xcb,
+ 0x49, 0xc5, 0x9a, 0x8b, 0x92, 0x96, 0xff, 0x41, 0x9d, 0xc4, 0x31, 0x45,
+ 0x31, 0x5a, 0xf8, 0x9a, 0x14, 0x02, 0xaf, 0x10, 0xdc, 0x32, 0x39, 0x15,
+ 0x3c, 0x81, 0x6d, 0x67, 0x60, 0x8f, 0xf1, 0x78, 0x22, 0xf5, 0x34, 0x5f,
+ 0xfc, 0xbe, 0x0e, 0x82, 0xec, 0x72, 0xa2, 0x96, 0x21, 0x0d, 0xbf, 0x63,
+ 0x2f, 0x40, 0x21, 0x4c, 0x48, 0x15, 0x66, 0x38, 0x34, 0x28, 0x25, 0x4f,
+ 0xe4, 0x3e, 0x01, 0x66, 0xa0, 0x02, 0x9f, 0x6c, 0xdd, 0x25, 0xf5, 0xac,
+ 0xb0, 0x37, 0x02, 0x0d, 0x0b, 0x85, 0xed, 0xaf, 0xc7, 0x4a, 0x02, 0xa7,
+ 0x86, 0xdc, 0x19, 0x7d, 0x5a, 0x96, 0xcc, 0x09, 0xaa, 0x50, 0xf3, 0xd4,
+ 0xd2, 0x81, 0xab, 0xad, 0xb4, 0xf7, 0x74, 0x4b, 0x82, 0x5e, 0x70, 0xc4,
+ 0xb2, 0x3e, 0x02, 0xa3, 0x40, 0x95, 0x29, 0x91, 0xba, 0x7a, 0xcd, 0x9f,
+ 0x8b, 0x09, 0xf8, 0x79, 0xdd, 0x43, 0x54, 0x16, 0xd7, 0x49, 0xdf, 0x00,
+ 0x9f, 0x5a, 0xa5, 0x38, 0xef, 0x9d, 0x48, 0x0d, 0xca, 0x06, 0xef, 0xe7,
+ 0xd5, 0x5b, 0x8d, 0x64, 0xd4, 0xdd, 0xa6, 0xe9, 0x21, 0x61, 0x23, 0x2a,
+ 0xf1, 0xe0, 0x05, 0xcd, 0xd3, 0x7a, 0x35, 0x12, 0x62, 0x1f, 0x8f, 0xe1,
+ 0x06, 0xe6, 0xf5, 0x0a, 0xc9, 0xae, 0x99, 0xba, 0x28, 0x8c, 0xb3, 0x14,
+ 0xda, 0xea, 0xe7, 0x1f, 0x53, 0xed, 0x09, 0x8c, 0x67, 0x77, 0x24, 0x8c,
+ 0xcf, 0xfc, 0x65, 0xed, 0xe2, 0xf2, 0xbe, 0xda, 0xa2, 0x61, 0x6d, 0x63,
+ 0x39, 0x2e, 0x89, 0xdd, 0x7b, 0x45, 0x73, 0x20, 0xfe, 0x57, 0xf1, 0xf6,
+ 0xd3, 0xb1, 0xfa, 0xc1, 0x29, 0x63, 0xfc, 0x80, 0x41, 0x79, 0xef, 0xc1,
+ 0xae, 0xbf, 0xb0, 0xb1, 0x08, 0x51, 0xdb, 0xed, 0x78, 0xc3, 0x18, 0xd4,
+ 0xa6, 0x5d, 0x9f, 0x01, 0x19, 0x6f, 0xd4, 0xa8, 0xb0, 0xe1, 0xeb, 0x2a,
+ 0x9c, 0x39, 0x5a, 0xbe, 0xa3, 0x6e, 0x93, 0x86, 0xa6, 0x2b, 0x49, 0x84,
+ 0x21, 0xb1, 0x05, 0x1f, 0x4c, 0x98, 0x87, 0x86, 0x42, 0xca, 0x12, 0x2e,
+ 0x20, 0x93, 0xe3, 0xa8, 0xda, 0x00, 0xb3, 0x02, 0x00, 0x00, 0x51, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0e, 0x00, 0x01, 0x10, 0x18,
+ 0x00, 0x1e, 0xe7, 0x7d, 0xb4, 0x0c, 0x07, 0x72, 0x94, 0xa7, 0x33, 0xef,
+ 0x38, 0xf6, 0x74, 0x7f, 0x8a, 0x7b, 0x2c, 0x6d, 0x6b, 0x32, 0x08, 0x8c,
+ 0x63, 0x60, 0x70, 0x7f, 0xb0, 0x4c, 0x67, 0x8e, 0x55, 0x89, 0xa0, 0xb0,
+ 0xb5, 0xbb, 0x3d, 0x54, 0x12, 0xf0, 0x42, 0xb6, 0x46, 0xbe, 0xe5, 0x6e,
+ 0xe7, 0xcc, 0x26, 0xe9, 0x85, 0x5b, 0x77, 0x26, 0x03, 0x08, 0x5b, 0xe5,
+ 0x70, 0x34, 0xd9, 0x88, 0x8e, 0x94, 0xef, 0xd5, 0x91, 0xcb, 0xee, 0x51,
+ 0x05, 0xea, 0xd5, 0x5e, 0x62, 0xaa, 0x26, 0x80, 0x00, 0x07, 0x19, 0x59,
+ 0xae, 0x24, 0xdb, 0x2c, 0xee, 0xde, 0xf9, 0x22, 0x50, 0x52, 0x9b, 0xe6,
+ 0xea, 0x5f, 0xb7, 0x9c, 0x5b, 0x80, 0xea, 0xc2, 0x65, 0x5b, 0xc0, 0x4a,
+ 0xa3, 0x5a, 0xd7, 0x90, 0x23, 0x32, 0xf8, 0xe1, 0xc3, 0xad, 0xa2, 0x0a,
+ 0x46, 0x46, 0x81, 0x0a, 0x84, 0xf6, 0x46, 0xfb, 0xd9, 0xd8, 0x3a, 0x20,
+ 0xb4, 0x5c, 0x00, 0x2d, 0x2a, 0x69, 0x62, 0xe4, 0x32, 0xf7, 0xcc, 0x34,
+ 0x75, 0x0f, 0x14, 0xa8, 0xba, 0x5e, 0xbe, 0xd5, 0xa8, 0xa8, 0x4a, 0x42,
+ 0x91, 0x16, 0x84, 0x2d, 0x4e, 0x1e, 0x77, 0x73, 0x5f, 0xf8, 0xf4, 0x90,
+ 0x89, 0xcd, 0x99, 0x0a, 0xd3, 0x2e, 0x92, 0xf0, 0x4f, 0xa2, 0xe6, 0x9b,
+ 0x85, 0xb6, 0xc4, 0x1a, 0x0d, 0x58, 0xec, 0x9a, 0x6a, 0x50, 0x45, 0x72,
+ 0x8a, 0x51, 0x13, 0x7c, 0xb5, 0x7c, 0xc9, 0xf2, 0xf7, 0xa1, 0xec, 0xcf,
+ 0xd4, 0xf7, 0x1d, 0xba, 0xdb, 0x64, 0x20, 0xa4, 0x8f, 0x81, 0x6a, 0x77,
+ 0x34, 0x71, 0x38, 0x01, 0x5a, 0x14, 0x2a, 0xe0, 0x90, 0x4e, 0xc1, 0xa6,
+ 0x6b, 0x2b, 0x33, 0x13, 0x72, 0x2d, 0x15, 0x77, 0x76, 0x7d, 0xed, 0x3f,
+ 0x4e, 0xd8, 0x84, 0xde, 0xa1, 0x84, 0xb6, 0xb2, 0x00, 0x1c, 0x38, 0x86,
+ 0xc5, 0x87, 0x3b, 0x7d, 0x4d, 0x08, 0x8f, 0x34, 0xd6, 0xdd, 0xdf, 0x11,
+ 0x73, 0x0c, 0x6a, 0x7d, 0x1a, 0x5c, 0xc5, 0x39, 0xba, 0xbe, 0x18, 0x66,
+ 0x32, 0x64, 0x4f, 0x00, 0xbc, 0x0c, 0x44, 0x96, 0xfb, 0x4d, 0x02, 0x92,
+ 0x46, 0xcc, 0xec, 0x9b, 0x82, 0x22, 0x49, 0x92, 0x19, 0x0a, 0x3e, 0x41,
+ 0xbb, 0xed, 0xd2, 0xec, 0xee, 0x6c, 0x1f, 0x16, 0x19, 0x92, 0x5b, 0x01,
+ 0x7f, 0x6e, 0xb4, 0x86, 0xad, 0x1d, 0x99, 0x64, 0xd8, 0x78, 0xda, 0xac,
+ 0x6a, 0x0e, 0x1c, 0xe4, 0x53, 0xf2, 0x16, 0x68, 0xca, 0x83, 0x0b, 0x38,
+ 0x31, 0x81, 0x7d, 0x42, 0xdf, 0x76, 0xc8, 0x35, 0x31, 0x19, 0xb2, 0x95,
+ 0x0f, 0x4e, 0x87, 0x52, 0x38, 0x16, 0x39, 0x6d, 0x07, 0x18, 0x5a, 0x9d,
+ 0xcb, 0xfe, 0x27, 0x15, 0x57, 0x2f, 0xc3, 0xe6, 0x42, 0xbb, 0xf3, 0x18,
+ 0xa2, 0xf6, 0xd6, 0xc2, 0x93, 0x17, 0x0b, 0xc8, 0x38, 0xad, 0xe7, 0xf1,
+ 0xc0, 0x3a, 0x23, 0xa8, 0xed, 0x9e, 0xa9, 0xdb, 0xa2, 0x8c, 0x87, 0x86,
+ 0x24, 0x69, 0xca, 0x85, 0x64, 0xa7, 0x20, 0xd4, 0x62, 0x29, 0x10, 0x66,
+ 0xb2, 0x91, 0xad, 0x48, 0xf8, 0x49, 0x5d, 0x7c, 0x76, 0x95, 0x0c, 0xb4,
+ 0x3a, 0x0d, 0xf4, 0xe1, 0xcc, 0x78, 0xf9, 0x98, 0x09, 0xed, 0xe0, 0xb1,
+ 0x57, 0x03, 0xa0, 0x4f, 0xf9, 0x0c, 0x2e, 0xa9, 0x3b, 0x98, 0x94, 0x94,
+ 0x67, 0x97, 0x44, 0x79, 0xb4, 0xd2, 0x8a, 0x00, 0xf6, 0x99, 0x13, 0xf1,
+ 0xcb, 0x29, 0x16, 0x30, 0x52, 0xc7, 0x3a, 0x55, 0x58, 0xff, 0xdc, 0xcf,
+ 0xd8, 0x4c, 0x24, 0x43, 0x09, 0xa9, 0x72, 0x96, 0xac, 0xfd, 0x3b, 0x88,
+ 0xea, 0x14, 0xb7, 0x18, 0x22, 0xbf, 0x65, 0xdb, 0xd7, 0xf6, 0x2f, 0xb1,
+ 0x2b, 0x97, 0x04, 0xf5, 0xf2, 0x5c, 0x0c, 0x59, 0x6a, 0xed, 0x41, 0x60,
+ 0x44, 0x30, 0xa1, 0xc7, 0xb1, 0x4c, 0xe3, 0x59, 0xe8, 0xbe, 0xfb, 0x10,
+ 0xfe, 0x64, 0x8c, 0xd9, 0x88, 0x80, 0x31, 0xc4, 0x35, 0x81, 0x3f, 0x31,
+ 0x4f, 0x84, 0x76, 0x0f, 0x39, 0x1a, 0xe3, 0x98, 0xfc, 0x38, 0x3a, 0xe1,
+ 0x9c, 0xfd, 0x8e, 0x14, 0x1f, 0xe4, 0x38, 0x5c, 0xa3, 0xfc, 0xfb, 0x0b,
+ 0x72, 0xa3, 0x1b, 0xe2, 0xeb, 0x8e, 0xe2, 0xc3, 0xad, 0xdf, 0x0e, 0x63,
+ 0x30, 0x6b, 0x1d, 0x38, 0xb6, 0x73, 0x03, 0x36, 0xc2, 0xa1, 0xdf, 0x64,
+ 0x56, 0x8d, 0x86, 0x2e, 0x7b, 0x7f, 0xd7, 0x71, 0xf4, 0x99, 0x78, 0xc5,
+ 0xd9, 0xaf, 0xcd, 0x88, 0x3b, 0x15, 0x6e, 0x98, 0x82, 0x9d, 0xa9, 0x62,
+ 0x19, 0xef, 0x56, 0x1e, 0xad, 0x91, 0x0c, 0x0a, 0x1d, 0x88, 0xa4, 0xee,
+ 0x63, 0xd0, 0x09, 0x27, 0x06, 0x79, 0xce, 0x55, 0xf8, 0x7e, 0x7c, 0x72,
+ 0x04, 0x6a, 0x21, 0x05, 0xbf, 0x6a, 0xcf, 0xfe, 0x0b, 0x28, 0xbd, 0x98,
+ 0xa1, 0xa8, 0xd0, 0x54, 0x49, 0x73, 0xd7, 0x26, 0x8e, 0xf0, 0x54, 0x78,
+ 0x0b, 0x4f, 0xc8, 0x7b, 0x5d, 0xd5, 0xb4, 0xf4, 0x34, 0x73, 0xa8, 0x06,
+ 0x43, 0x81, 0xe6, 0x2d, 0x2a, 0xad, 0x4f, 0x0b, 0x97, 0x74, 0x79, 0x03,
+ 0x02, 0x10, 0xa8, 0xfe, 0x9b, 0xe1, 0x3f, 0x3b, 0xcb, 0x37, 0x1d, 0xcb,
+ 0x80, 0x16, 0x03, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x91, 0x10, 0x00, 0x05, 0x10, 0x14, 0x00, 0x1e, 0xdc, 0x50, 0x56,
+ 0xa7, 0x79, 0x19, 0x46, 0x65, 0x3d, 0xca, 0xcd, 0x50, 0x58, 0x27, 0xd0,
+ 0xc7, 0x55, 0xb2, 0x40, 0x36, 0x4d, 0x34, 0xd7, 0x1e, 0xee, 0x0c, 0x2e,
+ 0xfa, 0x18, 0xcf, 0x30, 0xc1, 0xa8, 0x66, 0x28, 0xcb, 0x2f, 0xbc, 0x55,
+ 0x4a, 0x77, 0xa4, 0x0d, 0xaa, 0xd6, 0x16, 0x62, 0x42, 0xf5, 0xd1, 0x12,
+ 0x35, 0xf9, 0xdb, 0xb0, 0x6b, 0xe4, 0x0d, 0xc4, 0x41, 0x0c, 0x57, 0x35,
+ 0xdf, 0x53, 0x0f, 0x05, 0x15, 0xa7, 0x0b, 0x44, 0xe3, 0x03, 0x75, 0x8a,
+ 0xe8, 0x3c, 0xe1, 0x4e, 0xdd, 0xd9, 0x67, 0x06, 0x02, 0x57, 0xc0, 0x3c,
+ 0xa7, 0x78, 0x10, 0x9e, 0x64, 0xc3, 0x5b, 0x6d, 0x49, 0x84, 0x1d, 0xb8,
+ 0x3b, 0xc4, 0xbb, 0xbb, 0x4d, 0x3d, 0x55, 0x41, 0xac, 0x52, 0x02, 0x10,
+ 0xc3, 0x56, 0x8c, 0x44, 0x50, 0xfc, 0x4e, 0xd9, 0x4e, 0x81, 0xf0, 0x4f,
+ 0x37, 0x6a, 0x65, 0x10, 0xa3, 0x58, 0x43, 0x97, 0x0b, 0xf8, 0x86, 0xaf,
+ 0x34, 0x72, 0xd1, 0xa9, 0x51, 0x51, 0x76, 0x09, 0x0f, 0x86, 0xd7, 0x0f,
+ 0x13, 0x65, 0x44, 0x7e, 0x19, 0x2e, 0x39, 0xef, 0xe0, 0x25, 0xd7, 0xb0,
+ 0xd0, 0x8f, 0x41, 0xbf, 0x0b, 0x4c, 0xfd, 0xc4, 0x73, 0xca, 0x95, 0xf5,
+ 0x30, 0xdc, 0x44, 0xee, 0x8f, 0xdb, 0x87, 0x51, 0x33, 0x15, 0x6a, 0xed,
+ 0xcc, 0x78, 0x37, 0x24, 0xeb, 0x7a, 0x80, 0x8c, 0xfd, 0xf2, 0xd0, 0xe2,
+ 0xcd, 0x8f, 0x22, 0xee, 0xd8, 0x6e, 0x7a, 0x4a, 0x8e, 0x38, 0xe2, 0xfd,
+ 0x67, 0xa7, 0x22, 0xc7, 0xea, 0x8c, 0x8c, 0x00, 0x00, 0x71, 0x57, 0xf7,
+ 0x6a, 0x0d, 0x73, 0xad, 0xf3, 0x22, 0x27, 0x68, 0x54, 0xed, 0xfc, 0x4a,
+ 0x2b, 0x72, 0x64, 0x39, 0x3f, 0x19, 0x40, 0x44, 0x6c, 0x6a, 0xfe, 0xfc,
+ 0xbe, 0xb2, 0x97, 0x5f, 0xad, 0xf0, 0xb8, 0xe1, 0x9d, 0xca, 0xd3, 0xf8,
+ 0xcb, 0x1a, 0xe4, 0x26, 0xf1, 0x15, 0xe5, 0x87, 0x63, 0xa7, 0x2c, 0xf9,
+ 0x41, 0x20, 0x5f, 0x81, 0x99, 0xe0, 0xc4, 0x38, 0x3f, 0xfb, 0x71, 0xfa,
+ 0x06, 0xa9, 0x0f, 0x67, 0x2b, 0xeb, 0x90, 0x46, 0xc4, 0xb8, 0xa8, 0x6d,
+ 0x77, 0xdb, 0xa4, 0xcd, 0x7c, 0xa5, 0xe6, 0xd8, 0x2b, 0xb0, 0xf6, 0x71,
+ 0xba, 0x69, 0x5c, 0x73, 0xd4, 0x3d, 0x4f, 0x33, 0x6a, 0x7e, 0x5a, 0x1e,
+ 0xd2, 0x7e, 0x97, 0x20, 0x71, 0x05, 0xc3, 0x18, 0x65, 0x89, 0x88, 0xf6,
+ 0xc4, 0xaa, 0xd9, 0x01, 0x0a, 0x37, 0xdf, 0xcf, 0x55, 0xd7, 0x00, 0x80,
+ 0xf6, 0xc4, 0x4b, 0x4d, 0x23, 0xc0, 0x40, 0xb1, 0x4a, 0xdf, 0x4a, 0x75,
+ 0xbe, 0x87, 0x35, 0xa5, 0x6f, 0x7f, 0x5b, 0x0c, 0x90, 0xab, 0x8a, 0x91,
+ 0xa0, 0xde, 0x0e, 0x3c, 0x66, 0xbc, 0x5f, 0x72, 0xfa, 0x7f, 0x36, 0xda,
+ 0x59, 0xc2, 0xc5, 0xa4, 0xa3, 0x34, 0xc9, 0xba, 0x48, 0x7f, 0x5c, 0x92,
+ 0xf9, 0xa9, 0x25, 0xe8, 0x0a, 0x27, 0x28, 0x27, 0x55, 0xcd, 0xf2, 0xe8,
+ 0xdf, 0x34, 0x0b, 0xd5, 0x72, 0xa0, 0x9b, 0x72, 0x13, 0x74, 0xf4, 0xd7,
+ 0x9c, 0x40, 0x7e, 0xe2, 0x9b, 0x16, 0x3b, 0xbb, 0x47, 0xb4, 0xb5, 0xdc,
+ 0xb0, 0x8c, 0xae, 0x7c, 0xda, 0x3a, 0xf1, 0xf5, 0x0d, 0x61, 0xa0, 0xf3,
+ 0x56, 0x2c, 0x13, 0xa8, 0xb6, 0x14, 0xff, 0x5b, 0xe5, 0xcf, 0xe0, 0xaf,
+ 0x7c, 0x8a, 0x65, 0x7e, 0x14, 0x33, 0x3a, 0x45, 0x01, 0xc8, 0x26, 0x0a,
+ 0xa3, 0x7c, 0x36, 0xbb, 0xb3, 0xbe, 0xf1, 0x58, 0xee, 0x05, 0x99, 0xfc,
+ 0xd8, 0xbe, 0x54, 0x23, 0x54, 0x04, 0x9b, 0x09, 0x35, 0xf8, 0x1c, 0x3e,
+ 0x20, 0xdf, 0x4a, 0x88, 0x0a, 0x5d, 0xf9, 0x0f, 0x55, 0x3b, 0x7a, 0x88,
+ 0x7d, 0xd7, 0xa2, 0x9d, 0x08, 0xc5, 0x98, 0x42, 0x17, 0xc0, 0x54, 0xde,
+ 0xae, 0x99, 0x2e, 0x21, 0xe5, 0xbb, 0x10, 0xa0, 0x80, 0x78, 0x0c, 0x3b,
+ 0x43, 0x42, 0x53, 0x62, 0xd0, 0x81, 0xd0, 0xdd, 0xb5, 0xfb, 0xc3, 0x30,
+ 0x1a, 0xdb, 0x88, 0x54, 0xc4, 0xc2, 0x04, 0x94, 0x85, 0xfc, 0x45, 0xe9,
+ 0x5f, 0xf4, 0xe9, 0x25, 0x3e, 0x44, 0xa5, 0x1b, 0xb1, 0xbe, 0xcd, 0x9c,
+ 0xe4, 0x75, 0x3b, 0x4c, 0xa8, 0xc9, 0x22, 0x80, 0x8a, 0x36, 0x00, 0xc6,
+ 0x23, 0xd4, 0xf1, 0xcb, 0x95, 0x68, 0x76, 0x89, 0xdb, 0x5b, 0xea, 0x29,
+ 0x6b, 0x9e, 0xa0, 0xe9, 0x76, 0xb4, 0x22, 0x1b, 0x54, 0x7c, 0x54, 0xbd,
+ 0x46, 0x4e, 0x84, 0x04, 0xea, 0x5f, 0x42, 0x92, 0x86, 0x5f, 0x9b, 0x02,
+ 0x91, 0xa5, 0xcf, 0xc0, 0x21, 0x5f, 0xa7, 0xc3, 0x10, 0x1c, 0xb5, 0xb0,
+ 0x20, 0xbb, 0x53, 0xb8, 0xba, 0x62, 0x14, 0xca, 0x7d, 0xdb, 0xc5, 0x35,
+ 0xed, 0x29, 0xf3, 0x8a, 0x6d, 0x2a, 0xec, 0xe0, 0x68, 0x84, 0x28, 0x70,
+ 0x92, 0x0f, 0xde, 0x17, 0xe9, 0xcc, 0x21, 0x72, 0x81, 0xfb, 0x5a, 0xe0,
+ 0xf8, 0x0d, 0xda, 0x0d, 0xcb, 0x73, 0xc5, 0x5d, 0x90, 0xa6, 0xf8, 0xa6,
+ 0x02, 0xff, 0xeb, 0x21, 0x65, 0x72, 0x51, 0xf7, 0xb6, 0x40, 0x18, 0x4a,
+ 0x3e, 0x83, 0x1a, 0x6b, 0x26, 0xe2, 0x29, 0x2e, 0xcf, 0x52, 0x2f, 0xa1,
+ 0xea, 0xd1, 0x86, 0xd2, 0xd3, 0xe8, 0x38, 0x08, 0x10, 0x64, 0x1d, 0x17,
+ 0x9e, 0xe5, 0x14, 0xd0, 0x99, 0x80, 0xbb, 0xed, 0x3b, 0x86, 0x71, 0xd1,
+ 0x55, 0x2a, 0xcc, 0xa6, 0x3f, 0x52, 0x4e, 0xd3, 0x56, 0x0b, 0xbd, 0xc8,
+ 0xd1, 0xde, 0xde, 0x8c, 0x12, 0x74, 0xa7, 0x96, 0x05, 0xdf, 0x1c, 0x6e,
+ 0xdd, 0x63, 0xab, 0xb7, 0xc4, 0x99, 0x6b, 0x0a, 0x33, 0x54, 0x8d, 0xd4,
+ 0xe9, 0x65, 0xc7, 0x61, 0x5e, 0xca, 0xac, 0x0e, 0x9b, 0xc2, 0xce, 0x7c,
+ 0xd4, 0xff, 0x7d, 0xbd, 0x94, 0x04, 0x98, 0xf5, 0x92, 0x42, 0xab, 0x2a,
+ 0xbb, 0x67, 0x6d, 0xcc, 0x95, 0x86, 0x00, 0xbe, 0x74, 0x51, 0x00, 0xa8,
+ 0x03, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1,
+ 0x11, 0x00, 0x04, 0x10, 0x28, 0x00, 0x18, 0x01, 0x60, 0xfb, 0xdd, 0xa7,
+ 0x59, 0x98, 0xb6, 0x39, 0x03, 0x3f, 0xf4, 0x62, 0xf2, 0xea, 0x7f, 0xec,
+ 0x4b, 0x7e, 0x5d, 0xff, 0x73, 0xfa, 0xdf, 0x3b, 0x57, 0xed, 0x4b, 0xee,
+ 0x8c, 0x0c, 0xa4, 0xbf, 0xd3, 0x86, 0x8b, 0x94, 0xc5, 0x93, 0x27, 0x1f,
+ 0x2d, 0xc0, 0x54, 0x2f, 0x01, 0xf4, 0x7f, 0xfb, 0x35, 0xaf, 0xbc, 0x0b,
+ 0x11, 0xee, 0xac, 0x68, 0x6c, 0x64, 0xee, 0xba, 0x5c, 0x06, 0x46, 0x29,
+ 0x5d, 0xcb, 0x58, 0x92, 0xc6, 0xaa, 0x81, 0x30, 0x26, 0x94, 0x68, 0xd4,
+ 0x03, 0x88, 0x11, 0xc6, 0xfc, 0xc8, 0xf9, 0x86, 0x36, 0xa1, 0xa0, 0x03,
+ 0xb4, 0x01, 0x83, 0x82, 0xbe, 0xaa, 0x46, 0x0a, 0xa3, 0xc2, 0xd7, 0x85,
+ 0xd7, 0xd0, 0x56, 0x0d, 0xab, 0xa6, 0x66, 0xe1, 0xde, 0x0d, 0xa8, 0x5b,
+ 0x92, 0x83, 0x18, 0x0e, 0x2c, 0x89, 0xdb, 0xce, 0x77, 0x10, 0x50, 0x9f,
+ 0xa2, 0x78, 0x07, 0x69, 0x5d, 0x6b, 0x1a, 0x6f, 0x86, 0x92, 0xdb, 0x3f,
+ 0xa4, 0x9e, 0xc1, 0xf3, 0x34, 0x5a, 0x04, 0x83, 0xc5, 0x0d, 0x0f, 0x6f,
+ 0x98, 0xd4, 0x77, 0x9e, 0xda, 0x39, 0xd6, 0x2b, 0xd2, 0xf6, 0x99, 0x2c,
+ 0xf5, 0x97, 0x03, 0x4b, 0x42, 0x8f, 0x88, 0xcc, 0x34, 0x43, 0x73, 0xcb,
+ 0xce, 0xc8, 0xf3, 0x56, 0x02, 0xe0, 0xf6, 0x21, 0x8f, 0x5f, 0x9c, 0xaf,
+ 0xb0, 0x53, 0x4d, 0x90, 0xf7, 0x5f, 0x90, 0x1c, 0x83, 0x01, 0x8d, 0xed,
+ 0xfe, 0xde, 0x25, 0x0b, 0xa9, 0x7d, 0x55, 0xf1, 0x57, 0x98, 0xf1, 0x7a,
+ 0xc1, 0x07, 0xd4, 0x7c, 0x72, 0x0e, 0xdc, 0x9b, 0x18, 0x9f, 0x61, 0x5c,
+ 0x1a, 0xf2, 0x54, 0x21, 0x3d, 0x71, 0x45, 0x31, 0x1f, 0x22, 0x09, 0xf5,
+ 0xf5, 0xb0, 0x67, 0xef, 0xef, 0xd4, 0x4c, 0x17, 0x29, 0x12, 0x7c, 0x4b,
+ 0x71, 0xea, 0xc7, 0xc9, 0xec, 0x01, 0xf4, 0x2a, 0x39, 0x0a, 0x26, 0x5f,
+ 0x38, 0xaa, 0xad, 0xd7, 0x3e, 0xcd, 0x42, 0xa6, 0x17, 0xf6, 0x0f, 0xc5,
+ 0xb4, 0xd3, 0x22, 0x49, 0xa5, 0x38, 0x37, 0xdb, 0xa2, 0x01, 0x93, 0xc8,
+ 0x01, 0xad, 0x09, 0xc7, 0xba, 0xbc, 0x4d, 0xd1, 0xff, 0xff, 0x23, 0x7c,
+ 0x8c, 0x0e, 0x77, 0x97, 0xd8, 0x9a, 0x68, 0x98, 0xc9, 0x9d, 0x30, 0xed,
+ 0xad, 0x57, 0x39, 0xe9, 0xde, 0x36, 0x9c, 0x92, 0x4c, 0x6e, 0xd0, 0xb9,
+ 0x9c, 0x9c, 0xfc, 0xc3, 0x39, 0x5f, 0x05, 0x40, 0x13, 0x3e, 0xe0, 0x03,
+ 0xcd, 0x11, 0x17, 0xfe, 0xb4, 0x75, 0x58, 0x22, 0x5d, 0x74, 0x23, 0x54,
+ 0x4d, 0xdc, 0xd0, 0x83, 0x27, 0xc1, 0x77, 0x23, 0x71, 0x63, 0xf7, 0x6d,
+ 0x2d, 0x7f, 0x51, 0xa1, 0x2b, 0x7c, 0x2d, 0x0e, 0x27, 0x01, 0x87, 0x2f,
+ 0x74, 0xa2, 0x54, 0xde, 0x78, 0xb9, 0x16, 0xdd, 0x6b, 0x17, 0x16, 0x78,
+ 0xdc, 0x45, 0xc7, 0xf6, 0x60, 0xda, 0x46, 0x91, 0x99, 0x2f, 0x6a, 0x3e,
+ 0x66, 0xfb, 0x97, 0xc0, 0xb9, 0x8e, 0xc6, 0x55, 0xee, 0xde, 0x0c, 0xfb,
+ 0xe0, 0xf1, 0x80, 0x9e, 0x73, 0x8c, 0x75, 0x25, 0xd3, 0x5b, 0x9b, 0xde,
+ 0x70, 0xee, 0x88, 0xe6, 0xde, 0x18, 0x4e, 0x3e, 0x88, 0x0a, 0x66, 0x13,
+ 0xeb, 0xfd, 0x8d, 0x90, 0xd6, 0xd8, 0x1f, 0xf5, 0x56, 0x9d, 0xee, 0x4d,
+ 0x61, 0x0d, 0x40, 0xbb, 0xcf, 0xf6, 0x02, 0x64, 0xed, 0x75, 0x05, 0xa2,
+ 0x39, 0x82, 0x4e, 0x52, 0x14, 0xed, 0xca, 0xc6, 0x11, 0x85, 0x9b, 0x86,
+ 0x9d, 0x51, 0xa6, 0xb5, 0x8e, 0x92, 0x92, 0xde, 0xbe, 0xb2, 0x56, 0x0e,
+ 0x5f, 0x3b, 0x55, 0xae, 0xd6, 0xf0, 0xd5, 0x35, 0x95, 0xdd, 0x8a, 0xfb,
+ 0x61, 0x61, 0x36, 0x63, 0x33, 0x52, 0x28, 0x72, 0xc1, 0xde, 0xa5, 0x22,
+ 0x6d, 0x98, 0x99, 0x75, 0x74, 0xf4, 0x2e, 0xb3, 0xac, 0xa6, 0x74, 0xb2,
+ 0x5c, 0x87, 0x6b, 0xbf, 0xbd, 0x77, 0xc5, 0xc2, 0xb7, 0x55, 0xb8, 0xad,
+ 0xdf, 0xbe, 0xa9, 0x16, 0x1a, 0xda, 0x33, 0xd0, 0xdf, 0x66, 0x0c, 0xc9,
+ 0xe0, 0xc7, 0x03, 0x73, 0xd8, 0xf1, 0xe0, 0x54, 0x04, 0xc0, 0x3f, 0x5a,
+ 0x10, 0x26, 0xdc, 0xde, 0x1a, 0x07, 0x7d, 0xed, 0x78, 0x5a, 0x91, 0x99,
+ 0x47, 0x48, 0x59, 0x67, 0x78, 0x3e, 0x8e, 0x8c, 0x3d, 0x3d, 0xd9, 0x5a,
+ 0x33, 0xf4, 0x67, 0xc6, 0x0e, 0x6a, 0x7a, 0xd4, 0x27, 0xaf, 0x70, 0xe8,
+ 0x9e, 0x12, 0x4a, 0xac, 0xfd, 0xbf, 0xaf, 0x36, 0xc0, 0x7a, 0x3c, 0x04,
+ 0x5f, 0xde, 0x45, 0x93, 0x9e, 0x18, 0x0b, 0xc7, 0xae, 0xf1, 0xcd, 0x0e,
+ 0x7b, 0x3a, 0x12, 0x55, 0x84, 0x80, 0xe4, 0xc4, 0x2a, 0x1a, 0x9d, 0x60,
+ 0xc6, 0xe3, 0xd0, 0x07, 0x29, 0x7e, 0xf1, 0x15, 0xcd, 0x03, 0x84, 0x6e,
+ 0x59, 0x14, 0xfa, 0xaa, 0x23, 0x2a, 0x56, 0x9d, 0x07, 0x51, 0x68, 0xa8,
+ 0x54, 0xcd, 0xcb, 0x23, 0x54, 0x5f, 0xb1, 0xed, 0xed, 0x7e, 0x34, 0x5c,
+ 0x5a, 0x10, 0xf0, 0x48, 0x1a, 0xd4, 0xb0, 0x95, 0x3c, 0xb1, 0x91, 0xf9,
+ 0x93, 0x2b, 0x62, 0xe5, 0xde, 0xf0, 0x1d, 0x76, 0xdb, 0xcc, 0xc3, 0x55,
+ 0xae, 0x6a, 0xcd, 0x47, 0x06, 0x17, 0xf1, 0x3f, 0x5f, 0x44, 0x4d, 0x5a,
+ 0xbe, 0x7b, 0xed, 0xa7, 0x32, 0xac, 0xde, 0xc5, 0x6b, 0x24, 0xf0, 0xa2,
+ 0x11, 0xf8, 0x60, 0xd9, 0x9d, 0x36, 0xe7, 0x4f, 0xc0, 0xa6, 0x72, 0xd8,
+ 0x82, 0x6a, 0x33, 0xae, 0xf5, 0x51, 0xcc, 0xd4, 0xd6, 0x5a, 0x38, 0x95,
+ 0x46, 0xea, 0x2f, 0x9a, 0xe1, 0x18, 0x89, 0x69, 0x19, 0xa8, 0x9f, 0xca,
+ 0x00, 0xe1, 0x3b, 0xd0, 0xfa, 0x13, 0x2e, 0xe4, 0x24, 0x3f, 0x8c, 0xa5,
+ 0xc3, 0x56, 0x77, 0x26, 0x6c, 0x70, 0xfa, 0xa6, 0xbc, 0x01, 0xef, 0x19,
+ 0x97, 0xa7, 0x6f, 0xa4, 0x92, 0xa9, 0xcb, 0x3a, 0xb7, 0x48, 0x53, 0x78,
+ 0xe9, 0xd8, 0xf9, 0xc6, 0xc2, 0x94, 0x68, 0x92, 0xea, 0xa2, 0x16, 0xe9,
+ 0x6c, 0x41, 0xa3, 0xf1, 0x52, 0xe0, 0x7f, 0xff, 0x3c, 0xb8, 0x24, 0x01,
+ 0xe3, 0x4a, 0xff, 0xcb, 0x43, 0xdb, 0x34, 0x6a, 0x26, 0x6d, 0xff, 0xd1,
+ 0x5f, 0xe4, 0x90, 0xb7, 0xdc, 0xaa, 0xda, 0x5d, 0xe4, 0xe2, 0xd4, 0x85,
+ 0x0a, 0x13, 0x0f, 0x9d, 0xb8, 0x23, 0xaf, 0xb0, 0xb0, 0x9b, 0x80, 0x7b,
+ 0x6e, 0xb8, 0x7a, 0xec, 0xba, 0x91, 0x88, 0x64, 0xa5, 0x94, 0x42, 0x15,
+ 0x32, 0xdb, 0x3c, 0x78, 0xc4, 0xc5, 0x54, 0xd1, 0x3a, 0x25, 0x81, 0xb5,
+ 0x7c, 0x8c, 0x36, 0xb3, 0x28, 0x79, 0x3c, 0xf3, 0x08, 0x42, 0xca, 0xf7,
+ 0xe8, 0xde, 0xc1, 0xe0, 0xad, 0x31, 0x56, 0xdc, 0x77, 0x9f, 0x12, 0x6b,
+ 0x4a, 0xa0, 0x92, 0x9b, 0x49, 0xbf, 0x85, 0x80, 0x71, 0x0a, 0xb2, 0x04,
+ 0x47, 0x0d, 0x32, 0xf5, 0x47, 0x12, 0x35, 0x5c, 0xd2, 0xdf, 0xc0, 0x37,
+ 0x25, 0xea, 0xbc, 0x2b, 0x25, 0x4c, 0xeb, 0x0d, 0xe5, 0xd1, 0x47, 0xea,
+ 0x61, 0x76, 0xe1, 0x84, 0x39, 0x47, 0x90, 0x84, 0x47, 0x60, 0x00, 0x91,
+ 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31,
+ 0x11, 0x00, 0x00, 0x10, 0x14, 0x00, 0x19, 0x81, 0xbe, 0xc8, 0xa0, 0x19,
+ 0xcc, 0x58, 0xff, 0x93, 0xe6, 0x85, 0x06, 0xa4, 0x6f, 0xe4, 0x53, 0xfa,
+ 0x59, 0xcd, 0x05, 0x29, 0x55, 0x49, 0xd8, 0xfe, 0x31, 0xd7, 0xbe, 0x4a,
+ 0x3e, 0x8e, 0x2c, 0x04, 0x27, 0x69, 0xb1, 0xc7, 0xe6, 0x53, 0x42, 0x9e,
+ 0xd6, 0x20, 0x54, 0xf6, 0xe1, 0x72, 0x6d, 0x6a, 0xa0, 0x42, 0xbf, 0x43,
+ 0x76, 0x76, 0xa5, 0x44, 0x72, 0x27, 0xcb, 0xf5, 0x8b, 0x2d, 0xeb, 0x0a,
+ 0x72, 0x6b, 0x57, 0x55, 0x6d, 0x60, 0x3f, 0xb4, 0x41, 0x5b, 0x27, 0x7e,
+ 0xa4, 0xef, 0x82, 0xe4, 0xfe, 0xec, 0xda, 0x76, 0x25, 0xf3, 0x01, 0xf9,
+ 0x1f, 0x3d, 0x1b, 0x78, 0xe5, 0xf1, 0x2a, 0xba, 0x66, 0x8e, 0xa9, 0x35,
+ 0xd5, 0x06, 0xf1, 0xde, 0x35, 0xe1, 0xe2, 0x74, 0x60, 0x94, 0x69, 0x3d,
+ 0xb3, 0xc9, 0x28, 0x8e, 0xf2, 0xc2, 0x95, 0x75, 0x1b, 0x95, 0x20, 0xac,
+ 0x0f, 0x16, 0xb6, 0x55, 0xb5, 0x16, 0xa0, 0x3c, 0xc9, 0x70, 0xc2, 0x97,
+ 0xa7, 0xf6, 0x53, 0xbf, 0xff, 0xf5, 0xf7, 0x81, 0x89, 0xfb, 0x77, 0x3c,
+ 0xf7, 0x93, 0x16, 0xdf, 0x15, 0x5c, 0x75, 0x7a, 0xea, 0x75, 0xd3, 0xed,
+ 0x8e, 0xab, 0xa6, 0x93, 0x68, 0x55, 0x98, 0x25, 0x0a, 0xf9, 0xcf, 0xf1,
+ 0x54, 0x70, 0x0a, 0x7c, 0xa8, 0x96, 0xfa, 0xe3, 0x42, 0xd1, 0xb4, 0xf0,
+ 0x26, 0x86, 0x76, 0x90, 0xab, 0xc5, 0x9e, 0x4a, 0x9e, 0xf2, 0x33, 0x13,
+ 0x3f, 0x82, 0xfb, 0x83, 0xc9, 0xcf, 0xf3, 0xb7, 0xf9, 0x52, 0x3f, 0x00,
+ 0xed, 0x70, 0x83, 0x9f, 0x2e, 0x54, 0xe7, 0xa4, 0x6a, 0xbd, 0x9a, 0x65,
+ 0xc2, 0x70, 0x48, 0x11, 0xb1, 0xaf, 0x60, 0x6f, 0x07, 0x53, 0xa2, 0x80,
+ 0x56, 0x29, 0x1f, 0x89, 0x2d, 0x7b, 0x85, 0xb8, 0x17, 0xd9, 0x8b, 0xb0,
+ 0xc6, 0xaf, 0x36, 0x1a, 0x27, 0x1a, 0x5b, 0x55, 0x55, 0x84, 0xf6, 0x1d,
+ 0xc5, 0x03, 0xc4, 0x93, 0xfe, 0xc3, 0xb8, 0x85, 0xfc, 0x62, 0x7a, 0x42,
+ 0x5e, 0xab, 0xcf, 0xa3, 0x94, 0x34, 0x6a, 0x2c, 0xba, 0xd8, 0xa7, 0x99,
+ 0xf4, 0xd3, 0x82, 0xbe, 0xd1, 0x49, 0x72, 0x54, 0xc5, 0xbe, 0xa4, 0x9e,
+ 0x57, 0x15, 0xd0, 0x30, 0xcf, 0xb1, 0x81, 0x85, 0x0b, 0xd7, 0x87, 0x7e,
+ 0xd5, 0x2f, 0x65, 0xb4, 0x4e, 0x51, 0xad, 0xb3, 0xba, 0x2e, 0xcf, 0xef,
+ 0x08, 0xe0, 0x60, 0xd3, 0xe5, 0x40, 0x9e, 0x91, 0x8b, 0xdd, 0x0b, 0x09,
+ 0x1f, 0x8d, 0x9f, 0x34, 0x16, 0x63, 0x7e, 0xa4, 0x66, 0xb2, 0x23, 0x57,
+ 0x11, 0xb5, 0xd5, 0xc4, 0xce, 0x74, 0x1b, 0x4f, 0x8d, 0xf1, 0x8c, 0x77,
+ 0x72, 0xf7, 0xfc, 0xca, 0x38, 0x54, 0x6d, 0x4c, 0x4c, 0x9b, 0x74, 0xfa,
+ 0x5e, 0x1e, 0xc4, 0xe7, 0xf0, 0xf2, 0xdb, 0xd5, 0xb0, 0xf4, 0x82, 0x2e,
+ 0x00, 0xf4, 0xe8, 0xa5, 0xd3, 0xc3, 0x94, 0xde, 0xae, 0x72, 0x78, 0x32,
+ 0x9c, 0xd7, 0x5b, 0x48, 0xf8, 0x8d, 0xd7, 0x93, 0x5f, 0xab, 0x1f, 0x0c,
+ 0xab, 0xce, 0xe4, 0x67, 0xe8, 0xbd, 0x21, 0xb5, 0xd2, 0xc7, 0x05, 0xd8,
+ 0x4b, 0x0f, 0xdb, 0x4f, 0xfd, 0xad, 0x91, 0xb1, 0x33, 0x55, 0xb9, 0xb9,
+ 0xa5, 0xbf, 0xd2, 0xec, 0xb0, 0x00, 0xb5, 0x57, 0x16, 0x98, 0x78, 0xdc,
+ 0x30, 0x60, 0xa6, 0x98, 0xd7, 0x01, 0xff, 0x31, 0x82, 0x5f, 0xfd, 0xdb,
+ 0x16, 0x39, 0x02, 0x99, 0xd3, 0x9b, 0xc8, 0x0c, 0x06, 0x84, 0x1c, 0xcc,
+ 0xb3, 0xee, 0xed, 0xf5, 0x24, 0xbc, 0x30, 0x8c, 0x37, 0x08, 0x87, 0xd7,
+ 0x4d, 0x08, 0xc3, 0x26, 0xe6, 0x4e, 0x1e, 0x4f, 0x4d, 0x05, 0x3a, 0x4d,
+ 0x22, 0x4e, 0x43, 0x62, 0xa8, 0xde, 0x77, 0x93, 0x9e, 0xbf, 0xfd, 0xba,
+ 0xa0, 0x1e, 0xd7, 0x0e, 0xf4, 0xc4, 0xc5, 0x09, 0xa9, 0x93, 0x85, 0x0d,
+ 0xd6, 0x67, 0x19, 0xc3, 0xef, 0x2d, 0xa6, 0x32, 0xdf, 0x3b, 0xea, 0x95,
+ 0x54, 0xf1, 0x31, 0xeb, 0x26, 0x7a, 0xcb, 0x0b, 0x8a, 0x36, 0x04, 0x51,
+ 0xe3, 0xd4, 0x19, 0x04, 0xfd, 0xab, 0xb8, 0x47, 0x3f, 0x2c, 0x5c, 0xa5,
+ 0x31, 0x4d, 0xb1, 0x01, 0xf4, 0xfb, 0x29, 0xdb, 0x7d, 0xea, 0xfb, 0x1e,
+ 0xd5, 0x49, 0x63, 0x54, 0xbc, 0x0e, 0xa7, 0x14, 0xb6, 0x2b, 0x0c, 0x99,
+ 0x58, 0x1f, 0x53, 0xab, 0xfa, 0x5d, 0x84, 0x91, 0xef, 0x65, 0x89, 0x15,
+ 0x0b, 0x47, 0x0f, 0xce, 0x53, 0x66, 0x4b, 0x4a, 0x1f, 0x72, 0xf7, 0x8d,
+ 0x82, 0x8c, 0x0f, 0x18, 0x45, 0x29, 0x71, 0xd7, 0xe7, 0x41, 0xa1, 0x4c,
+ 0xc0, 0x23, 0x39, 0xb3, 0xe9, 0x38, 0xed, 0xeb, 0x6e, 0xb8, 0x0a, 0x36,
+ 0x02, 0xa9, 0x31, 0x84, 0x7f, 0x93, 0x49, 0xbe, 0xff, 0xaf, 0x97, 0x23,
+ 0x28, 0x0e, 0xb7, 0xd4, 0x0f, 0x1b, 0xce, 0x4a, 0x43, 0xcc, 0x29, 0xa7,
+ 0x8c, 0x40, 0xb6, 0xc1, 0xc4, 0x62, 0x63, 0xae, 0xb9, 0x18, 0xb8, 0x23,
+ 0x5a, 0xc8, 0x01, 0x16, 0xa5, 0x08, 0xc2, 0x70, 0xd2, 0xaa, 0x57, 0x63,
+ 0x0b, 0xe1, 0x40, 0xa5, 0x3a, 0x14, 0x92, 0x2b, 0x3a, 0xbc, 0xbc, 0xa8,
+ 0x47, 0xe9, 0x0a, 0xbd, 0x3e, 0xec, 0xf3, 0x33, 0xb2, 0xff, 0xd6, 0xa0,
+ 0x7d, 0x80, 0x75, 0x9b, 0x82, 0x10, 0x68, 0x31, 0x4f, 0x99, 0x6e, 0xb7,
+ 0xe3, 0x38, 0xff, 0xe7, 0x5a, 0x64, 0x6c, 0xa6, 0xac, 0xb9, 0x46, 0x02,
+ 0x52, 0x95, 0x6d, 0x88, 0x58, 0x68, 0x49, 0x50, 0xa6, 0xfb, 0xb8, 0x48,
+ 0xf4, 0x3f, 0xb3, 0xb8, 0xe0, 0xb7, 0xf5, 0xfd, 0x83, 0x5d, 0x89, 0xa0,
+ 0x9e, 0x4e, 0x96, 0x3a, 0xf4, 0xfb, 0xb3, 0xcc, 0xcb, 0x8f, 0x70, 0x81,
+ 0x78, 0x1c, 0x88, 0x05, 0x1c, 0xa7, 0x93, 0x71, 0x1c, 0x73, 0xfe, 0x41,
+ 0xad, 0xc6, 0x12, 0xc0, 0x70, 0xa9, 0xe8, 0xbb, 0xdd, 0x8f, 0x71, 0xe4,
+ 0xfd, 0x69, 0xfe, 0x1b, 0x08, 0xc5, 0xbd, 0x15, 0xee, 0xb3, 0xf4, 0x12,
+ 0x78, 0x4a, 0x64, 0xa4, 0xf5, 0x0d, 0xac, 0xf2, 0x0d, 0xe3, 0x93, 0x5a,
+ 0x11, 0xc4, 0xe5, 0x57, 0xc9, 0xf1, 0x99, 0xde, 0xa3, 0x02, 0xcc, 0x69,
+ 0xe9, 0xaf, 0x4a, 0x87, 0xb0, 0xad, 0xe1, 0xca, 0x3f, 0xfe, 0x17, 0xc0,
+ 0x21, 0xda, 0xc2, 0xe3, 0x2e, 0x50, 0xb1, 0x0b, 0xd7, 0xde, 0x9f, 0x43,
+ 0xf8, 0x58, 0xc1, 0xe6, 0x1e, 0x14, 0x4f, 0xd1, 0xca, 0xce, 0x36, 0x06,
+ 0x51, 0x76, 0x4e, 0x67, 0x49, 0x06, 0xe2, 0x69, 0x03, 0xca, 0x2e, 0x45,
+ 0x76, 0xd3, 0x77, 0x46, 0x80, 0x57, 0xaf, 0x66, 0x07, 0x8c, 0x3e, 0x3c,
+ 0x77, 0x4f, 0xc7, 0xbb, 0x78, 0xef, 0x6f, 0x19, 0xa4, 0x3f, 0x60, 0x70,
+ 0x42, 0xe0, 0x71, 0x67, 0x7e, 0x6b, 0xf5, 0x3f, 0x56, 0x89, 0xd6, 0xa8,
+ 0x50, 0x5e, 0xf9, 0xf0, 0xe2, 0xd1, 0x36, 0x8e, 0xdc, 0xe7, 0x2c, 0x00,
+ 0x62, 0x03, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf1, 0x13, 0x00, 0x04, 0x10, 0x14, 0x14, 0x7b, 0xa5, 0xc1, 0xec, 0x5f,
+ 0xa7, 0x0a, 0x2c, 0xd5, 0x47, 0x34, 0x7b, 0xfd, 0x99, 0x7f, 0x8c, 0xee,
+ 0xb1, 0xf6, 0x26, 0x88, 0x3b, 0x3a, 0xe4, 0xad, 0x8e, 0x59, 0x17, 0xf5,
+ 0xc8, 0xe2, 0x3e, 0xa3, 0x16, 0x36, 0x99, 0x91, 0xcb, 0xd1, 0xe4, 0xb0,
+ 0xf0, 0xe9, 0x9e, 0xff, 0x90, 0x05, 0x60, 0x57, 0x17, 0x0a, 0x7e, 0x05,
+ 0xed, 0xf3, 0x96, 0xbb, 0x8c, 0x96, 0xa6, 0x4c, 0xf8, 0x1e, 0x43, 0xd2,
+ 0x59, 0x29, 0x84, 0xe2, 0xce, 0xd3, 0x45, 0x27, 0x67, 0xfb, 0x12, 0xd0,
+ 0xed, 0x9a, 0xe3, 0x90, 0x9e, 0x7f, 0x56, 0x28, 0x1c, 0xc3, 0xb4, 0xfc,
+ 0xef, 0x83, 0x32, 0x40, 0x54, 0x62, 0xda, 0x9f, 0x63, 0x93, 0x3e, 0x00,
+ 0x62, 0x71, 0xb9, 0x5c, 0x79, 0x84, 0x57, 0x63, 0x90, 0x7d, 0x62, 0xda,
+ 0x47, 0x49, 0x11, 0x96, 0xf1, 0xbe, 0x91, 0x57, 0x3d, 0x5f, 0x66, 0x6f,
+ 0xe0, 0xe4, 0x60, 0x98, 0x77, 0xc7, 0xe1, 0x67, 0xe1, 0x3e, 0x48, 0xf6,
+ 0x50, 0xd7, 0xca, 0x12, 0xc0, 0x21, 0x30, 0xc9, 0xa6, 0x5f, 0x08, 0x6f,
+ 0xfb, 0x0a, 0x7c, 0x5b, 0x6e, 0x00, 0x9e, 0x9e, 0xf2, 0x57, 0xbe, 0xfb,
+ 0x5a, 0xfd, 0x81, 0x3e, 0x87, 0xb9, 0xc7, 0x3c, 0x1e, 0xfe, 0x98, 0xca,
+ 0xd1, 0x67, 0x38, 0xa7, 0x42, 0x89, 0xef, 0xd6, 0xcc, 0xe0, 0x2a, 0xad,
+ 0x65, 0xc7, 0x7b, 0x83, 0xfe, 0xe4, 0xf0, 0x4e, 0x00, 0x28, 0x65, 0x5c,
+ 0x71, 0x3d, 0x47, 0x1c, 0x1a, 0x8e, 0xc2, 0x0e, 0x69, 0x28, 0xff, 0xad,
+ 0xf2, 0xe1, 0x63, 0x3a, 0x97, 0xc6, 0x6c, 0xa1, 0xa1, 0xba, 0x8b, 0x50,
+ 0xe4, 0xe9, 0xe3, 0x99, 0xfe, 0x20, 0x9b, 0x39, 0xb0, 0xb0, 0x6a, 0x35,
+ 0xce, 0x95, 0x85, 0xf7, 0x37, 0xc3, 0x4a, 0x72, 0x1f, 0xde, 0xd5, 0x9c,
+ 0x44, 0x48, 0xfa, 0x79, 0xd7, 0x61, 0x06, 0x81, 0xe3, 0x8a, 0x07, 0x02,
+ 0x52, 0xc4, 0xce, 0xb4, 0xcc, 0x7d, 0xef, 0x30, 0x7d, 0xd7, 0x61, 0xfe,
+ 0x6b, 0xc5, 0xb8, 0x30, 0x6f, 0x7a, 0xd3, 0xf3, 0xce, 0x52, 0x5b, 0xf4,
+ 0x21, 0xca, 0xfb, 0xe7, 0xf3, 0x96, 0xcd, 0xa2, 0xb7, 0x33, 0xfc, 0xde,
+ 0xed, 0x19, 0x02, 0xcd, 0x91, 0x1d, 0x94, 0xeb, 0x71, 0x5b, 0xb5, 0xd5,
+ 0x71, 0x4e, 0x7d, 0xab, 0xa2, 0x5f, 0x06, 0xe7, 0x96, 0xa1, 0x84, 0x82,
+ 0xb7, 0xf1, 0x3f, 0xc3, 0x1c, 0x33, 0xde, 0x67, 0xa4, 0xa7, 0xf7, 0xc8,
+ 0x18, 0xcb, 0x3a, 0x40, 0xd4, 0x51, 0x48, 0x38, 0x7a, 0x5c, 0x0d, 0x68,
+ 0xbc, 0xa2, 0x53, 0xf0, 0x66, 0x1f, 0xf5, 0x07, 0xe3, 0x06, 0x84, 0xd5,
+ 0x08, 0x6f, 0x5b, 0x01, 0x45, 0xd4, 0xc3, 0x33, 0x71, 0xca, 0x04, 0x09,
+ 0xcc, 0x81, 0x06, 0x9a, 0x4d, 0x9d, 0xba, 0xde, 0x37, 0x8e, 0x99, 0x3e,
+ 0x9c, 0x12, 0x40, 0xff, 0x24, 0x65, 0x2c, 0x56, 0xfc, 0x2c, 0x1c, 0xbe,
+ 0xbc, 0x1c, 0x03, 0x40, 0xff, 0x06, 0x07, 0xf2, 0xb4, 0xa2, 0x64, 0x5f,
+ 0x37, 0xfe, 0xc7, 0xe6, 0x9b, 0x7f, 0x79, 0xca, 0xfa, 0xaf, 0xf0, 0x13,
+ 0x65, 0xe9, 0x75, 0x28, 0x74, 0x36, 0xfc, 0x9e, 0x78, 0x06, 0x8e, 0x37,
+ 0x38, 0x75, 0xd0, 0x51, 0x57, 0x7d, 0x42, 0x01, 0x5d, 0x18, 0xaa, 0x6a,
+ 0x26, 0xa9, 0xd3, 0x43, 0xde, 0x4c, 0x3c, 0x50, 0x1e, 0x80, 0x1e, 0xb6,
+ 0x37, 0xee, 0x03, 0x80, 0xb7, 0x4a, 0xcd, 0xd5, 0xbd, 0x66, 0x64, 0xb4,
+ 0x26, 0x11, 0xb2, 0x3b, 0xd0, 0xf9, 0x20, 0x80, 0xdb, 0x68, 0x3c, 0x06,
+ 0xa1, 0xa1, 0x83, 0xeb, 0xbc, 0x86, 0xb5, 0x8b, 0x00, 0xff, 0xe5, 0x94,
+ 0xe5, 0x6e, 0x5c, 0xcf, 0xd6, 0xdb, 0x58, 0xde, 0xd8, 0x60, 0x68, 0x29,
+ 0x9a, 0x1b, 0x35, 0x00, 0x63, 0x99, 0xbe, 0x84, 0x0b, 0xf6, 0x42, 0xf8,
+ 0x13, 0x14, 0xd6, 0x00, 0x3d, 0x51, 0x68, 0xa8, 0xfa, 0xa0, 0xb3, 0x43,
+ 0xe0, 0x10, 0xe2, 0xa0, 0xd8, 0x76, 0x5c, 0x29, 0x93, 0xd4, 0x1e, 0xc9,
+ 0x85, 0xb2, 0x49, 0x33, 0x46, 0x56, 0x58, 0x6d, 0xfb, 0x99, 0x67, 0x43,
+ 0x78, 0x34, 0xf0, 0x13, 0x48, 0xac, 0x1b, 0x0f, 0x84, 0xaf, 0xc4, 0xc2,
+ 0xb4, 0xb2, 0x77, 0xdb, 0x92, 0xde, 0x9a, 0x74, 0xae, 0x46, 0x5d, 0x83,
+ 0x39, 0xb7, 0xb6, 0xc5, 0xec, 0xac, 0x65, 0xda, 0x2b, 0x71, 0x92, 0xa2,
+ 0xb9, 0x26, 0xfd, 0x49, 0x17, 0x52, 0x58, 0xcd, 0xa5, 0x67, 0x29, 0xcf,
+ 0xc2, 0xc8, 0xe8, 0x84, 0x62, 0x4b, 0x8e, 0xf7, 0xe3, 0xee, 0x1a, 0x91,
+ 0x74, 0xb6, 0x4b, 0x28, 0xdf, 0x25, 0x90, 0x8d, 0xad, 0x82, 0x6f, 0x39,
+ 0xad, 0x87, 0x32, 0x2c, 0x31, 0x6a, 0x40, 0x4e, 0x35, 0x2a, 0x8d, 0x50,
+ 0x5e, 0x05, 0x32, 0xb2, 0x59, 0x14, 0x3c, 0x5b, 0x8b, 0x3d, 0x6f, 0xb1,
+ 0xb8, 0x55, 0xff, 0x59, 0x3e, 0xa9, 0xe1, 0xfa, 0xa0, 0xf7, 0x47, 0x2a,
+ 0x05, 0xf0, 0x08, 0x9f, 0xb0, 0xc0, 0x92, 0x75, 0x20, 0xe9, 0x33, 0x62,
+ 0xef, 0xc9, 0xd7, 0xd2, 0xb3, 0x0b, 0x61, 0x35, 0x3a, 0xb8, 0x1d, 0x44,
+ 0x8b, 0x88, 0x9b, 0xbb, 0x96, 0x07, 0xbf, 0x6f, 0xe4, 0x0e, 0x30, 0xbe,
+ 0xdc, 0x5b, 0x54, 0xf3, 0xe2, 0xdf, 0x91, 0x79, 0x52, 0x7e, 0x0e, 0xf7,
+ 0x36, 0x76, 0x04, 0xfe, 0x4e, 0x2e, 0x5b, 0xa5, 0x17, 0xe6, 0xe4, 0x12,
+ 0xb1, 0xb1, 0x28, 0x54, 0x48, 0x9c, 0x98, 0xfe, 0xb4, 0xb0, 0x5c, 0x49,
+ 0x53, 0xac, 0xc7, 0x1d, 0x12, 0xc8, 0xfd, 0xf1, 0x4a, 0x1f, 0xdc, 0x50,
+ 0x75, 0x8a, 0xf1, 0xa0, 0x52, 0x38, 0xa9, 0x35, 0xc4, 0x28, 0x0a, 0x0b,
+ 0x50, 0x69, 0x56, 0x9e, 0x76, 0xdf, 0xb8, 0x9c, 0x2e, 0x36, 0x0f, 0x72,
+ 0xbb, 0xb5, 0x10, 0xa7, 0xf8, 0x04, 0x22, 0xd8, 0x4b, 0x5c, 0xea, 0xe8,
+ 0x4a, 0x74, 0xaa, 0x79, 0x8e, 0x85, 0x1d, 0x3e, 0x12, 0xd8, 0x83, 0x29,
+ 0x0b, 0x52, 0x70, 0xa5, 0xd4, 0xf8, 0xee, 0xb9, 0xd3, 0x56, 0xf3, 0x7f,
+ 0x7b, 0xb2, 0x1e, 0x0b, 0x0b, 0xa1, 0x0e, 0x60, 0xc5, 0xad, 0xe3, 0xee,
+ 0x1d, 0x6c, 0x21, 0x17, 0x29, 0xcb, 0xf6, 0x99, 0x99, 0xc4, 0xf4, 0xdc,
+ 0xa1, 0x79, 0xef, 0xda, 0x18, 0x50, 0xd5, 0x05, 0x4f, 0x09, 0xe3, 0xdc,
+ 0x01, 0xf5, 0x1c, 0x96, 0x81, 0x72, 0x43, 0x59, 0x26, 0x07, 0x01, 0x85,
+ 0x7a, 0x05, 0xd5, 0xad, 0x4e, 0xb7, 0xc7, 0x6d, 0x8e, 0xed, 0x30, 0x94,
+ 0x74, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x31, 0x0e, 0x00, 0x00, 0x10, 0x14, 0x00, 0x18, 0x00, 0x49,
+ 0x3d, 0x6b, 0xb7, 0x43, 0x4d, 0x16, 0xe5, 0x42, 0x0e, 0x9a, 0x44, 0xb1,
+ 0xfb, 0xcf, 0x97, 0x86, 0x2c, 0x25, 0x1c, 0x48, 0x13, 0xca, 0x2f, 0x8a,
+ 0x02, 0xda, 0xa3, 0xb2, 0x9d, 0x1f, 0xc8, 0x9b, 0x70, 0x4a, 0x0b, 0xff,
+ 0xc7, 0x7a, 0xba, 0x70, 0xe5, 0xf2, 0xa7, 0x12, 0x5b, 0x39, 0x91, 0xd2,
+ 0x05, 0x82, 0x35, 0xda, 0x5f, 0xdf, 0x1a, 0x79, 0xda, 0x4b, 0x10, 0x12,
+ 0xc9, 0x21, 0x95, 0xb7, 0x9e, 0xd4, 0x15, 0xc0, 0x9a, 0x23, 0xec, 0x4c,
+ 0xc5, 0xe2, 0xf6, 0x0b, 0x14, 0xf8, 0x9f, 0x38, 0x0c, 0x9e, 0xe0, 0xc5,
+ 0x58, 0x39, 0x51, 0xae, 0x7b, 0xe4, 0x32, 0x8a, 0x9f, 0x05, 0xa2, 0xf1,
+ 0xb6, 0xdb, 0x61, 0x58, 0xa0, 0xce, 0x4f, 0xd1, 0x66, 0xa0, 0x9e, 0x9e,
+ 0xa6, 0x9f, 0xe8, 0x02, 0xf9, 0x33, 0x65, 0xca, 0xe0, 0x4b, 0x16, 0x0c,
+ 0x35, 0x1f, 0xc4, 0xf7, 0x34, 0xac, 0xeb, 0xb9, 0xbf, 0x70, 0x2c, 0xf2,
+ 0x20, 0x5b, 0xfe, 0x83, 0xbb, 0xf5, 0xd6, 0xad, 0x0f, 0x15, 0x48, 0xeb,
+ 0x41, 0x24, 0x38, 0x34, 0x10, 0x9f, 0x83, 0x60, 0x4f, 0xc0, 0x46, 0x1e,
+ 0xfa, 0xe2, 0x3c, 0x7d, 0x2e, 0x15, 0x0a, 0xa5, 0xb9, 0x91, 0x6d, 0x69,
+ 0xb0, 0xa6, 0xc6, 0x93, 0x24, 0x03, 0x5b, 0xbc, 0x31, 0xf6, 0xea, 0x29,
+ 0xc1, 0xe2, 0x57, 0x9c, 0x80, 0xe7, 0x08, 0xf5, 0x8e, 0x00, 0xfe, 0x9c,
+ 0x03, 0xbd, 0xd9, 0x47, 0xef, 0x8f, 0x03, 0x0c, 0x68, 0xe3, 0x5b, 0xc6,
+ 0x5f, 0xda, 0x85, 0xd9, 0x88, 0x1d, 0xcb, 0xd7, 0xf5, 0x20, 0xdd, 0xe5,
+ 0xf7, 0x56, 0x02, 0x91, 0x44, 0xbf, 0xd0, 0x11, 0xe7, 0xcf, 0xba, 0x62,
+ 0xe7, 0x22, 0xe8, 0xf2, 0x0f, 0x5a, 0x11, 0xde, 0x65, 0x15, 0xfa, 0xd8,
+ 0xee, 0xc1, 0xa5, 0x4c, 0x78, 0x94, 0xe6, 0x61, 0x0e, 0xaa, 0x59, 0x7a,
+ 0x3f, 0xdc, 0x4a, 0x8b, 0xd5, 0x43, 0x97, 0x97, 0xea, 0x95, 0x75, 0x2e,
+ 0x12, 0x02, 0xca, 0xe0, 0x23, 0xea, 0x9f, 0xa2, 0x49, 0xf4, 0x99, 0xf2,
+ 0xe3, 0xfb, 0xfe, 0xb6, 0xea, 0xee, 0x31, 0xfd, 0x10, 0x8c, 0xa5, 0x55,
+ 0xdd, 0xb3, 0xe2, 0xef, 0xae, 0xc5, 0x1c, 0x16, 0xea, 0x28, 0x66, 0xf7,
+ 0x58, 0x96, 0xab, 0x47, 0x1d, 0x5a, 0x50, 0xe8, 0xe7, 0x84, 0x7a, 0xc2,
+ 0x23, 0x2b, 0x21, 0x50, 0x61, 0xf7, 0xfc, 0xbf, 0xeb, 0xd8, 0x50, 0x3b,
+ 0x60, 0xe4, 0x9b, 0x75, 0x74, 0x28, 0x99, 0xd7, 0xfe, 0x3b, 0x78, 0xa1,
+ 0x0b, 0xdc, 0x5f, 0x09, 0xd6, 0x2d, 0xe8, 0xfd, 0xba, 0xb1, 0xfd, 0xc0,
+ 0x5f, 0x09, 0xd7, 0x9e, 0xa3, 0x8e, 0x8a, 0xa7, 0xb5, 0xb3, 0x05, 0x93,
+ 0xb1, 0xdd, 0x37, 0xe0, 0x1f, 0x91, 0x21, 0x67, 0xa5, 0xf9, 0x9d, 0x15,
+ 0x34, 0x57, 0x07, 0x58, 0xde, 0x69, 0x28, 0xdb, 0x45, 0x73, 0x0f, 0x7b,
+ 0x97, 0xe7, 0xce, 0x60, 0xaa, 0x3c, 0x56, 0x00, 0x7b, 0xe7, 0xd6, 0x77,
+ 0xe3, 0x12, 0x11, 0x10, 0xe1, 0x47, 0x88, 0xac, 0x22, 0xfc, 0xf1, 0xc9,
+ 0x03, 0x5e, 0x0f, 0x47, 0xed, 0x4b, 0x00, 0xee, 0x21, 0x7a, 0xd3, 0x7a,
+ 0x51, 0x62, 0x6d, 0x73, 0x75, 0xc4, 0x1a, 0xd3, 0xa6, 0xf1, 0x28, 0xba,
+ 0x8f, 0xc5, 0x3b, 0x7c, 0x14, 0x15, 0x89, 0xf4, 0x0b, 0x96, 0x5c, 0xbc,
+ 0x3e, 0x01, 0xb2, 0x34, 0x16, 0x06, 0xc2, 0xf7, 0x33, 0xfe, 0x52, 0x46,
+ 0x9f, 0x9d, 0xf7, 0x37, 0x32, 0xe5, 0x4e, 0xad, 0x53, 0x86, 0x3e, 0x01,
+ 0x37, 0x55, 0x66, 0xd2, 0x00, 0xf1, 0x25, 0x19, 0x09, 0x90, 0x64, 0x08,
+ 0x13, 0x3b, 0xa8, 0x63, 0x81, 0xac, 0xe8, 0x3b, 0xdb, 0x34, 0x81, 0x2d,
+ 0x72, 0xb4, 0x38, 0x0e, 0x65, 0x74, 0xbb, 0x42, 0xf7, 0xd9, 0xdf, 0x24,
+ 0xda, 0x0c, 0x8a, 0x77, 0x4c, 0x86, 0x94, 0x76, 0x95, 0x84, 0xdf, 0xc5,
+ 0x46, 0xdc, 0xb0, 0x5c, 0xb6, 0x81, 0x79, 0x88, 0xd5, 0xf9, 0xae, 0x1e,
+ 0x31, 0xf5, 0x71, 0x72, 0x5b, 0x30, 0xce, 0xc0, 0xb6, 0xeb, 0x46, 0x7e,
+ 0xd4, 0xa3, 0xe4, 0x6f, 0x83, 0xe9, 0x79, 0xef, 0xe1, 0x67, 0x5d, 0x53,
+ 0xe5, 0x8d, 0xa4, 0x60, 0x09, 0x3f, 0x2c, 0x1d, 0x96, 0x8e, 0x0b, 0x5c,
+ 0xff, 0x34, 0xad, 0x19, 0xa3, 0xa4, 0xe0, 0x75, 0xb7, 0xde, 0xea, 0x74,
+ 0xd5, 0x0b, 0x66, 0xec, 0xcf, 0xd0, 0x6e, 0xd1, 0xb9, 0x90, 0x8f, 0xd9,
+ 0xf1, 0x0a, 0x71, 0x4d, 0x2c, 0x8b, 0x21, 0x45, 0x58, 0x25, 0xe9, 0x52,
+ 0x93, 0xa2, 0x51, 0xc7, 0xdc, 0xf1, 0xe1, 0x8f, 0xc0, 0x52, 0xeb, 0x30,
+ 0x04, 0xf7, 0xe8, 0xd2, 0x9c, 0xae, 0xcc, 0x3e, 0xa7, 0x1c, 0x97, 0x77,
+ 0x3c, 0x39, 0x47, 0x1d, 0xa0, 0xda, 0x17, 0xd2, 0xbd, 0x56, 0xb2, 0x67,
+ 0xd1, 0x02, 0x0d, 0x80, 0xfb, 0x91, 0x9b, 0xdf, 0xc3, 0x9c, 0x05, 0x95,
+ 0x5f, 0x98, 0x52, 0xc1, 0x30, 0xca, 0x51, 0x90, 0x9a, 0x72, 0xa9, 0x52,
+ 0x71, 0x72, 0xbe, 0x2b, 0x6b, 0xdf, 0x1a, 0x85, 0xac, 0x52, 0x84, 0x11,
+ 0xdb, 0xa7, 0x57, 0x42, 0x37, 0x51, 0xe7, 0x74, 0x97, 0xc2, 0xec, 0xab,
+ 0x48, 0x40, 0x45, 0xe6, 0x0b, 0xce, 0xaf, 0xa7, 0xf3, 0x84, 0x97, 0x3d,
+ 0x4c, 0x76, 0xea, 0xec, 0x20, 0x18, 0x76, 0xde, 0x9d, 0xe0, 0xa0, 0xfa,
+ 0xcf, 0xc9, 0xad, 0xe8, 0x00, 0x91, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0d, 0x00, 0x00, 0x10, 0x14, 0x00,
+ 0x18, 0x00, 0xc0, 0x74, 0xb8, 0x02, 0x92, 0x1b, 0xb1, 0xc6, 0x84, 0x5e,
+ 0x13, 0xda, 0x9c, 0x34, 0x71, 0xf6, 0x6a, 0x44, 0x41, 0x1c, 0xca, 0xd9,
+ 0x8b, 0xc7, 0x52, 0x4b, 0xea, 0xc4, 0x50, 0x59, 0x52, 0x3b, 0xaa, 0x81,
+ 0x87, 0x42, 0x12, 0xcb, 0xc7, 0xa5, 0xce, 0x6e, 0x7e, 0x4d, 0xb4, 0x8f,
+ 0xc0, 0xfa, 0x13, 0x9e, 0xfa, 0x06, 0xef, 0x25, 0x73, 0xdd, 0x06, 0x4f,
+ 0x79, 0xd7, 0x89, 0x78, 0x42, 0x69, 0x07, 0xe6, 0x49, 0x0e, 0x95, 0x42,
+ 0x43, 0x96, 0xf2, 0xdf, 0xbb, 0x9b, 0x6c, 0xdb, 0x7b, 0x72, 0x88, 0x68,
+ 0xd0, 0x66, 0xcb, 0xcf, 0x1c, 0x24, 0xf2, 0x43, 0xd9, 0x69, 0x7d, 0xe6,
+ 0xf7, 0xa4, 0xf1, 0x7c, 0x04, 0xa8, 0xe5, 0x0c, 0x9e, 0x9e, 0xd8, 0xd7,
+ 0xda, 0x11, 0x2c, 0x4f, 0x72, 0xc5, 0x79, 0x91, 0xe5, 0xc3, 0x49, 0x8a,
+ 0xf2, 0x56, 0xe7, 0x1c, 0x93, 0x8b, 0x0f, 0x5a, 0x2b, 0x79, 0x0a, 0xca,
+ 0x38, 0x46, 0x6b, 0x49, 0x7e, 0x97, 0x67, 0x4d, 0x19, 0x99, 0x0c, 0xcc,
+ 0x02, 0x18, 0xdc, 0x15, 0xec, 0xda, 0xf7, 0x4d, 0x16, 0x47, 0x79, 0x38,
+ 0x22, 0x2d, 0x4e, 0x01, 0x92, 0xf3, 0x4b, 0x53, 0x70, 0x6a, 0x51, 0x34,
+ 0xe0, 0xcd, 0x15, 0xfb, 0x27, 0x32, 0x80, 0x3c, 0xff, 0x78, 0x3f, 0xc5,
+ 0x75, 0xa6, 0xa8, 0x50, 0x68, 0xce, 0xef, 0x5c, 0x60, 0x90, 0x6a, 0x1f,
+ 0x2c, 0x15, 0x0f, 0xf8, 0xcb, 0x92, 0x5f, 0x9e, 0x29, 0x1a, 0xa7, 0x73,
+ 0x6e, 0x6a, 0xcb, 0x96, 0x46, 0x99, 0x62, 0x18, 0xd7, 0x37, 0xb6, 0xd7,
+ 0xcf, 0xbf, 0x02, 0x3f, 0x1a, 0x6b, 0xc2, 0x13, 0x2c, 0xc2, 0x89, 0x0a,
+ 0x8f, 0x5a, 0x95, 0x23, 0xeb, 0x73, 0x46, 0x15, 0x2f, 0xb2, 0x7f, 0x5e,
+ 0x41, 0x95, 0x24, 0x9b, 0x1c, 0x95, 0x69, 0x51, 0x4a, 0x79, 0x9e, 0xf7,
+ 0x81, 0xcf, 0xae, 0x99, 0x9c, 0xe8, 0x46, 0x0a, 0xf4, 0xcb, 0xa0, 0xa5,
+ 0xb1, 0x5f, 0xb8, 0x85, 0x3c, 0xca, 0xc7, 0x85, 0xc2, 0xe5, 0x92, 0xed,
+ 0x08, 0xaa, 0x16, 0x46, 0x2e, 0x57, 0x9c, 0x28, 0xb2, 0xf5, 0x84, 0x8f,
+ 0x60, 0x57, 0xc7, 0xcc, 0x0b, 0xd4, 0xd8, 0x17, 0xa3, 0x78, 0xc0, 0x95,
+ 0x7b, 0x0b, 0xa1, 0x79, 0xd0, 0x9a, 0x43, 0x40, 0xb7, 0x6b, 0x5a, 0x62,
+ 0x46, 0x68, 0x07, 0x57, 0xfe, 0xca, 0xc5, 0x4b, 0xfd, 0xf6, 0x15, 0x71,
+ 0xb6, 0x34, 0x62, 0xe8, 0x7b, 0x89, 0x25, 0x6e, 0xe9, 0x05, 0x7e, 0x30,
+ 0x47, 0xa8, 0x01, 0xaf, 0x0b, 0xd9, 0xab, 0x85, 0xa0, 0xda, 0x51, 0xfd,
+ 0x25, 0xae, 0x67, 0xe4, 0x46, 0x9d, 0xb1, 0xcb, 0xc3, 0x70, 0x53, 0x1b,
+ 0x74, 0x55, 0x6a, 0xfa, 0x2c, 0xca, 0x56, 0x88, 0xc3, 0x68, 0xc6, 0x90,
+ 0x73, 0x0f, 0xce, 0x25, 0x4f, 0xcb, 0x90, 0x9e, 0x22, 0x46, 0x3f, 0x73,
+ 0x23, 0x5f, 0x2f, 0xfa, 0x28, 0xa2, 0xb8, 0x51, 0xe2, 0x2b, 0x08, 0x9b,
+ 0x38, 0x97, 0x41, 0xbd, 0xc5, 0x63, 0x11, 0x64, 0xfa, 0xdc, 0x50, 0x7f,
+ 0x52, 0x58, 0x4d, 0x75, 0xd3, 0xc7, 0x90, 0x47, 0xe7, 0x4f, 0x84, 0x5b,
+ 0xab, 0x4f, 0x1f, 0xaf, 0x11, 0xee, 0x12, 0xad, 0x98, 0xcf, 0x08, 0x50,
+ 0x71, 0x5e, 0xc7, 0x09, 0x9f, 0x5f, 0x57, 0x44, 0x03, 0x22, 0xfa, 0xa5,
+ 0x9f, 0xbf, 0x1f, 0xba, 0x00, 0x9b, 0xe0, 0xba, 0xbb, 0x62, 0x3f, 0x72,
+ 0xc6, 0x42, 0xe4, 0x73, 0x32, 0xe3, 0x50, 0xfe, 0xeb, 0xd7, 0xb3, 0x32,
+ 0xc2, 0xa9, 0xb1, 0xbc, 0xb0, 0xdb, 0x72, 0x57, 0x16, 0x15, 0x3c, 0xd2,
+ 0xa8, 0x77, 0xab, 0x22, 0xea, 0x2d, 0xa8, 0x0a, 0xb8, 0x26, 0xb0, 0x8c,
+ 0x69, 0x27, 0x76, 0x97, 0x6d, 0x45, 0xe8, 0x45, 0xfe, 0x37, 0x25, 0xa2,
+ 0x04, 0xb6, 0x46, 0x39, 0xca, 0xa5, 0x1a, 0xda, 0xfc, 0x51, 0x96, 0x36,
+ 0xb6, 0x28, 0x07, 0x7f, 0x65, 0x4a, 0xfa, 0xa5, 0x80, 0x36, 0x1a, 0xf7,
+ 0x82, 0x95, 0x34, 0x4e, 0x50, 0x88, 0x37, 0xe3, 0x7c, 0xd9, 0xb2, 0xd5,
+ 0x47, 0x79, 0xd5, 0xee, 0x19, 0xa9, 0x45, 0xcf, 0x54, 0xcb, 0x48, 0x3a,
+ 0xa4, 0x87, 0x7c, 0x7e, 0xdb, 0x48, 0xf2, 0x2e, 0x91, 0xa8, 0x89, 0x30,
+ 0x04, 0xb4, 0xe1, 0x62, 0xb6, 0x73, 0x40, 0xc6, 0x77, 0x23, 0x55, 0xb0,
+ 0x51, 0x79, 0xe9, 0x74, 0xff, 0x01, 0xa1, 0x0a, 0x0f, 0xce, 0x09, 0x09,
+ 0x17, 0x0b, 0x52, 0xb4, 0xb8, 0x8b, 0xac, 0x6f, 0xc0, 0xa9, 0x28, 0x48,
+ 0x1b, 0x15, 0x3f, 0xda, 0xb3, 0xb7, 0x32, 0xca, 0xfc, 0x79, 0x85, 0x30,
+ 0x37, 0x49, 0xf3, 0xef, 0xc3, 0x26, 0x3c, 0x87, 0x11, 0x6d, 0x1c, 0xc9,
+ 0x7b, 0x4f, 0x12, 0x4a, 0x5b, 0x7f, 0xaa, 0x8d, 0x21, 0xaf, 0xc2, 0xa9,
+ 0x30, 0xbc, 0x7a, 0xc6, 0x50, 0xa9, 0x25, 0x71, 0x04, 0x70, 0x46, 0xe4,
+ 0x3a, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf1, 0x0b, 0x00, 0x01, 0x10, 0x14, 0x00, 0x18, 0x00, 0x1e,
+ 0x70, 0x8f, 0xf4, 0x00, 0xd8, 0xd2, 0xcd, 0x6c, 0x77, 0x14, 0x05, 0xf4,
+ 0x56, 0xc7, 0x47, 0x7b, 0x0b, 0x1f, 0xe4, 0x96, 0xe2, 0x5d, 0xce, 0x4f,
+ 0x8a, 0x1c, 0x07, 0x1b, 0x33, 0x1e, 0xc3, 0x33, 0x33, 0xb9, 0x28, 0xf8,
+ 0x31, 0x77, 0x08, 0xee, 0xa2, 0xb1, 0x8b, 0xce, 0xc7, 0xb0, 0xac, 0x1f,
+ 0x00, 0x0f, 0xfd, 0x81, 0x4c, 0x62, 0x0d, 0x2a, 0x1b, 0x8b, 0x30, 0x51,
+ 0xf8, 0x26, 0x00, 0x89, 0xf2, 0xdb, 0xc7, 0x08, 0x7a, 0xfe, 0xd0, 0xd7,
+ 0x3d, 0xe2, 0x72, 0x98, 0xe1, 0x31, 0x09, 0x0a, 0x89, 0x45, 0xee, 0x5a,
+ 0x89, 0x86, 0x9b, 0xc0, 0x9e, 0x9e, 0xd8, 0xd7, 0xda, 0x11, 0x2c, 0x4e,
+ 0x7c, 0xf0, 0xd8, 0x06, 0xf4, 0x8c, 0x94, 0x4b, 0x3e, 0x98, 0x9e, 0x53,
+ 0x54, 0xeb, 0x76, 0x7a, 0x2c, 0x59, 0xeb, 0xcd, 0xef, 0xf5, 0x1a, 0x44,
+ 0xdb, 0x4a, 0x04, 0xc7, 0x5a, 0xaa, 0xfb, 0x5f, 0x9a, 0xae, 0x8e, 0x9e,
+ 0x9f, 0x96, 0xdd, 0x0b, 0x6e, 0xb9, 0x90, 0xa5, 0x8f, 0xbd, 0x80, 0xf5,
+ 0x67, 0x39, 0xf8, 0xe5, 0x31, 0xdd, 0x76, 0x47, 0x88, 0xe2, 0x6e, 0x64,
+ 0x02, 0x33, 0xf5, 0xfa, 0xb8, 0xf0, 0xad, 0xfa, 0x87, 0x11, 0x57, 0xc6,
+ 0xe7, 0x40, 0xc8, 0x84, 0xac, 0x43, 0x2e, 0xae, 0x5b, 0xa3, 0x14, 0xfb,
+ 0x1a, 0xbb, 0xd0, 0x30, 0x8c, 0xd2, 0x83, 0xa5, 0xc8, 0xdb, 0x05, 0x57,
+ 0x6b, 0x07, 0x97, 0x47, 0x8e, 0xec, 0xb0, 0xfc, 0x65, 0x5b, 0xf9, 0xef,
+ 0x16, 0x82, 0x83, 0x3e, 0x33, 0xc9, 0xc9, 0x79, 0x3e, 0xb8, 0x31, 0x90,
+ 0x57, 0xa5, 0xd5, 0xfe, 0x43, 0x5b, 0x93, 0xce, 0x30, 0x5c, 0xfb, 0xd2,
+ 0xfc, 0xa4, 0x61, 0xd8, 0xc8, 0x2f, 0xd9, 0x07, 0x05, 0x83, 0x86, 0x9f,
+ 0x7f, 0xd9, 0x9d, 0xed, 0xc1, 0xa2, 0xb0, 0x2d, 0x30, 0x36, 0x24, 0x89,
+ 0x11, 0x47, 0xcf, 0xd7, 0x84, 0xb9, 0x2e, 0x71, 0xba, 0x63, 0x19, 0x4d,
+ 0xbf, 0x5e, 0x02, 0x98, 0x42, 0x50, 0x50, 0xdc, 0x17, 0x20, 0xd5, 0x67,
+ 0x33, 0x09, 0xd8, 0x3c, 0x2b, 0x9a, 0xea, 0x5f, 0x09, 0x6d, 0xd8, 0xb4,
+ 0x92, 0x7f, 0xa5, 0x3f, 0xd8, 0x57, 0x65, 0x76, 0xce, 0x2d, 0xe3, 0x91,
+ 0xe8, 0xb6, 0x7c, 0xd6, 0xc8, 0xbe, 0xc6, 0x7e, 0xa8, 0xfc, 0xc4, 0xf9,
+ 0xe3, 0x28, 0x95, 0x6c, 0xb2, 0x37, 0x5e, 0x2f, 0x96, 0xd4, 0x21, 0x77,
+ 0xf4, 0xdc, 0x15, 0x19, 0x0f, 0x3c, 0x49, 0x0a, 0x97, 0x7d, 0x4d, 0x06,
+ 0xc8, 0x8c, 0x7f, 0xfb, 0x43, 0x90, 0x8a, 0xc1, 0xa5, 0x2a, 0x5a, 0x11,
+ 0x32, 0xad, 0xbd, 0x11, 0xa5, 0xa0, 0x2d, 0x69, 0x6b, 0x89, 0xd1, 0x45,
+ 0x70, 0xa3, 0xc4, 0x56, 0x11, 0x76, 0x19, 0xfb, 0xa5, 0xd6, 0xe7, 0x5d,
+ 0x89, 0x46, 0xdd, 0x4b, 0x13, 0x3a, 0x5c, 0xc6, 0x78, 0x75, 0xfc, 0x42,
+ 0xb5, 0x06, 0x7c, 0xff, 0x14, 0xa4, 0xe8, 0xaf, 0x8b, 0x32, 0xa6, 0xe1,
+ 0x09, 0x7f, 0x3a, 0x25, 0x07, 0x47, 0x93, 0xa0, 0xc9, 0xe0, 0xa6, 0xf4,
+ 0xa7, 0xde, 0x2f, 0xdf, 0xcc, 0xc2, 0x33, 0x2c, 0x8f, 0x98, 0xcd, 0x05,
+ 0xaf, 0x69, 0x70, 0x3c, 0x0e, 0xbe, 0x1c, 0x8d, 0xc8, 0x6a, 0x7f, 0xbb,
+ 0x6b, 0x93, 0x85, 0x3d, 0x82, 0x4d, 0x72, 0x7a, 0x5d, 0xed, 0x04, 0x22,
+ 0x6f, 0x08, 0x80, 0x94, 0x62, 0xf2, 0x48, 0x11, 0xb1, 0x26, 0x62, 0x8a,
+ 0x0b, 0xb3, 0x98, 0xe2, 0x92, 0xa6, 0x70, 0xe9, 0x83, 0x31, 0x1d, 0x15,
+ 0x61, 0x54, 0x30, 0x37, 0xb5, 0x05, 0x22, 0xa0, 0xfb, 0x06, 0x73, 0x8a,
+ 0x1a, 0x09, 0xb8, 0xed, 0x04, 0xb9, 0xe4, 0xb1, 0x56, 0x49, 0xee, 0x29,
+ 0x02, 0xbf, 0xd1, 0x32, 0x9d, 0x3d, 0xe1, 0xe3, 0x06, 0xda, 0x08, 0x54,
+ 0x1e, 0xb8, 0xa7, 0xdb, 0xde, 0x95, 0xea, 0xae, 0xe2, 0xbf, 0x19, 0xeb,
+ 0x52, 0x06, 0x55, 0xcc, 0x6a, 0x1e, 0x1c, 0x3b, 0x2c, 0xea, 0x26, 0xdc,
+ 0x9c, 0x22, 0x9c, 0x77, 0x4f, 0x6b, 0x07, 0x89, 0xb2, 0x37, 0x50, 0x21,
+ 0x35, 0x58, 0xb7, 0x0f, 0x72, 0x67, 0xf6, 0x27, 0x8e, 0x40, 0x0c, 0x32,
+ 0xc5, 0xe8, 0xba, 0x26, 0xd1, 0x9f, 0x1d, 0xeb, 0xd9, 0xe8, 0xde, 0xaa,
+ 0xd4, 0x2c, 0x04, 0x59, 0xb0, 0x35, 0x83, 0x30, 0xd6, 0x2a, 0x4c, 0xb4,
+ 0xeb, 0x96, 0x45, 0x8d, 0x3c, 0xbb, 0x66, 0xab, 0x8a, 0x99, 0x66, 0xdd,
+ 0x65, 0xaf, 0x41, 0x37, 0x47, 0x46, 0x65, 0x45, 0xf6, 0x93, 0x90, 0x32,
+ 0x0f, 0xb0, 0x08, 0x8c, 0x31, 0x8d, 0x08, 0xa0, 0x00, 0xef, 0x02, 0x00,
+ 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0e, 0x00,
+ 0x01, 0x10, 0x14, 0x00, 0x18, 0x01, 0x10, 0xcc, 0x73, 0x44, 0x1b, 0xd3,
+ 0x03, 0x3a, 0xa5, 0x04, 0x81, 0xe9, 0x48, 0x5d, 0xbc, 0x98, 0x80, 0x16,
+ 0x20, 0x19, 0x04, 0x89, 0x47, 0xf6, 0x6e, 0x76, 0xa8, 0xef, 0xb0, 0x1e,
+ 0xdd, 0xa0, 0x2f, 0x66, 0x1f, 0x55, 0xdb, 0x6a, 0xd8, 0xcc, 0x29, 0x48,
+ 0x0c, 0x19, 0x1e, 0x33, 0x14, 0x0d, 0x90, 0xfb, 0xb1, 0x68, 0x3f, 0xba,
+ 0xf1, 0xd8, 0x60, 0x01, 0x4d, 0x20, 0xe5, 0x71, 0xef, 0x3a, 0x09, 0xbd,
+ 0x0f, 0xf9, 0x3f, 0x05, 0x96, 0xa7, 0xa3, 0x07, 0x9a, 0xbb, 0x64, 0x91,
+ 0x2b, 0x01, 0x4e, 0xf4, 0x5d, 0x79, 0xfe, 0xc7, 0x13, 0xb0, 0xc0, 0xe5,
+ 0xf2, 0x10, 0x1f, 0xf1, 0xd1, 0x87, 0x7d, 0xc5, 0x99, 0x39, 0x28, 0x94,
+ 0xd0, 0xbd, 0x01, 0x52, 0x7f, 0xed, 0x1e, 0x20, 0x9e, 0x9e, 0xd8, 0xd7,
+ 0xda, 0x11, 0x2c, 0x4e, 0x7c, 0xf1, 0x0c, 0xb2, 0xab, 0xf0, 0x2e, 0x4c,
+ 0x88, 0x73, 0xa7, 0xf7, 0x62, 0xe6, 0x8b, 0xa9, 0xda, 0xd8, 0x92, 0x74,
+ 0x9d, 0xd4, 0xde, 0x2c, 0xc6, 0x92, 0x11, 0xbc, 0x37, 0xed, 0xfb, 0xf7,
+ 0x37, 0x23, 0xdf, 0xbc, 0x9a, 0xb4, 0x66, 0x60, 0xf0, 0x61, 0x07, 0xe7,
+ 0x6e, 0xef, 0xd0, 0x46, 0xc7, 0xf7, 0xf6, 0x0a, 0x87, 0xae, 0xc0, 0xa2,
+ 0x62, 0xca, 0xe2, 0x73, 0x9d, 0xc0, 0x02, 0x37, 0x0d, 0xb0, 0x4a, 0xb6,
+ 0x6a, 0x30, 0x3a, 0x6a, 0x0d, 0x44, 0x90, 0xfb, 0xb0, 0xf8, 0x91, 0xc0,
+ 0xf5, 0x88, 0xef, 0x15, 0x63, 0xf2, 0xb4, 0x15, 0x47, 0xcf, 0x79, 0x50,
+ 0xe3, 0xa7, 0x89, 0x43, 0xa3, 0x32, 0x2a, 0x3c, 0x7c, 0xc0, 0x04, 0xde,
+ 0x90, 0xd3, 0x18, 0x06, 0x3e, 0x83, 0x26, 0xdd, 0x24, 0x92, 0x1b, 0xd2,
+ 0x86, 0x4c, 0xd2, 0xbe, 0x2a, 0x04, 0x3a, 0x30, 0x65, 0x1f, 0x72, 0x57,
+ 0xe2, 0x2b, 0xbb, 0x3e, 0xce, 0x1c, 0xe2, 0xbe, 0x10, 0x0e, 0x7a, 0xe7,
+ 0x22, 0x75, 0x0d, 0x2b, 0xc7, 0xd7, 0xde, 0xf7, 0x27, 0x55, 0x03, 0x0d,
+ 0x1d, 0xc2, 0x00, 0x76, 0xb4, 0x9e, 0xb2, 0xac, 0xc7, 0xde, 0xd3, 0xd9,
+ 0xad, 0x3a, 0x88, 0x9c, 0xfa, 0xd0, 0xc3, 0x50, 0x5e, 0xa1, 0xab, 0x56,
+ 0xc0, 0x51, 0xbe, 0xef, 0xd6, 0xcb, 0x88, 0x5e, 0x71, 0x2c, 0xed, 0xfd,
+ 0x44, 0x20, 0xd2, 0x51, 0xc5, 0xd3, 0xb9, 0x7f, 0xdd, 0x59, 0xef, 0xdd,
+ 0x18, 0xe4, 0x95, 0x8c, 0xd4, 0xe5, 0x63, 0x88, 0x20, 0x5b, 0xbe, 0xd0,
+ 0x42, 0x1f, 0xda, 0x8c, 0x24, 0xc7, 0x4f, 0x82, 0x21, 0xf2, 0xdd, 0xd3,
+ 0xb3, 0xfa, 0xfc, 0xaf, 0xe7, 0x09, 0x3d, 0x27, 0x7e, 0x1b, 0xb0, 0x68,
+ 0xad, 0xb1, 0x79, 0x3e, 0x75, 0xc7, 0xdf, 0x2b, 0x44, 0xb4, 0x36, 0xe2,
+ 0xe9, 0x85, 0xc3, 0x47, 0x24, 0x0e, 0x68, 0xf8, 0x1b, 0x55, 0x10, 0x9b,
+ 0x38, 0x21, 0x44, 0xd9, 0xd9, 0x23, 0x04, 0xf3, 0xfa, 0x18, 0x4c, 0xad,
+ 0xea, 0x5b, 0xce, 0x70, 0xfc, 0x24, 0x61, 0x7d, 0xd1, 0xec, 0xc4, 0x50,
+ 0x52, 0x6a, 0x28, 0xc7, 0x57, 0x20, 0x9a, 0x94, 0xce, 0x76, 0xb6, 0x9c,
+ 0xc8, 0x91, 0x5c, 0x32, 0x4d, 0x47, 0x78, 0xa1, 0x6f, 0xab, 0xde, 0xfa,
+ 0xa1, 0x71, 0xc2, 0x8f, 0x11, 0x53, 0x6a, 0x60, 0x2c, 0xde, 0x8e, 0x19,
+ 0x90, 0x13, 0x7e, 0x2c, 0x70, 0xd9, 0x52, 0x66, 0x4f, 0x2d, 0xcd, 0x35,
+ 0x02, 0x9c, 0xaf, 0x9b, 0x40, 0xec, 0xa0, 0xcb, 0x90, 0xe0, 0xf9, 0x1d,
+ 0x06, 0xc8, 0x51, 0x95, 0x21, 0xf4, 0x65, 0xc2, 0x61, 0xab, 0x13, 0x99,
+ 0xc6, 0xd8, 0x7f, 0x27, 0xa7, 0x4d, 0xcb, 0xcb, 0xdc, 0x92, 0xda, 0x50,
+ 0x7c, 0x71, 0x78, 0x39, 0xd9, 0x22, 0xb7, 0xfa, 0xbb, 0x53, 0xff, 0x13,
+ 0x9a, 0x33, 0x92, 0xb7, 0xfb, 0x7c, 0xbd, 0x03, 0x9a, 0x24, 0x20, 0x5b,
+ 0xd2, 0xe4, 0x0e, 0xbe, 0x42, 0xec, 0x11, 0x39, 0x30, 0x93, 0xc6, 0x19,
+ 0xde, 0x97, 0x5a, 0x84, 0x70, 0x2c, 0xa5, 0x41, 0x6b, 0x62, 0xe7, 0xd6,
+ 0xba, 0xc2, 0x08, 0xc4, 0xf0, 0xaf, 0x77, 0x45, 0xb8, 0x9f, 0xde, 0x44,
+ 0x6c, 0x99, 0xa5, 0xad, 0xe3, 0xe6, 0x43, 0x91, 0xd7, 0xbf, 0xd3, 0x3f,
+ 0xed, 0x4a, 0xe2, 0xf4, 0xcb, 0x24, 0x30, 0x68, 0xa6, 0x73, 0x9c, 0xb3,
+ 0xf9, 0x87, 0x1d, 0x47, 0xa2, 0x99, 0x8f, 0x6d, 0xce, 0xe2, 0x64, 0x88,
+ 0xfe, 0x2e, 0x8d, 0xdd, 0x5f, 0x1d, 0xbf, 0x8f, 0x96, 0x82, 0x38, 0x78,
+ 0x9a, 0xdb, 0x6d, 0x0c, 0x35, 0x1c, 0x32, 0x5b, 0xd4, 0x13, 0x89, 0x93,
+ 0xf2, 0xf3, 0x89, 0x53, 0x2b, 0x15, 0x57, 0xb3, 0xc3, 0x09, 0xdd, 0x1d,
+ 0x1a, 0x1c, 0x8f, 0x87, 0x74, 0x7e, 0xe6, 0x24, 0xf2, 0xfd, 0x72, 0x96,
+ 0x37, 0x1b, 0x37, 0x71, 0xa6, 0x7e, 0x5c, 0xd8, 0x6f, 0x1c, 0xbf, 0x90,
+ 0x4f, 0xae, 0xc1, 0xca, 0x28, 0x26, 0xd7, 0xc6, 0x04, 0xd1, 0xca, 0x31,
+ 0x43, 0xaf, 0xe7, 0x73, 0x65, 0xd6, 0xc8, 0x15, 0x9f, 0x44, 0x7c, 0x71,
+ 0x47, 0x73, 0x6c, 0xd7, 0x79, 0x4c, 0x9f, 0x6b, 0x21, 0x38, 0xbd, 0x82,
+ 0xfd, 0x99, 0x49, 0xcf, 0xc2, 0x70, 0xee, 0xbf, 0x3e, 0x26, 0x70, 0xcb,
+ 0x65, 0x52, 0x97, 0x6f, 0xa0, 0x60, 0x6f, 0xba, 0x35, 0x32, 0xe3, 0xd0,
+ 0x02, 0xb1, 0x68, 0xa2, 0xb4, 0xb2, 0x37, 0x7c, 0x87, 0x41, 0x0a, 0x8e,
+ 0x5b, 0x58, 0xfc, 0x87, 0xd5, 0xed, 0x39, 0x20, 0x7e, 0x72, 0xfb, 0xfb,
+ 0xd3, 0xba, 0xbb, 0x08, 0x06, 0x1d, 0xb7, 0xa7, 0x78, 0x28, 0x3e, 0xb3,
+ 0xf2, 0x6b, 0x7a, 0x00, 0x41, 0x07, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x12, 0x00, 0x06, 0x10, 0x10, 0x00, 0x1e,
+ 0xaa, 0xb0, 0x6a, 0x64, 0x10, 0x49, 0x81, 0x07, 0x01, 0x28, 0x05, 0x47,
+ 0xaf, 0xbb, 0x89, 0x2e, 0xe1, 0x56, 0xca, 0xd8, 0x56, 0xc2, 0xc9, 0x85,
+ 0x6b, 0xd9, 0xc5, 0x58, 0xa5, 0x6e, 0xee, 0x19, 0x34, 0x28, 0x42, 0xf1,
+ 0x8a, 0x98, 0x59, 0xd8, 0x87, 0xec, 0xd3, 0x99, 0x79, 0x49, 0x93, 0x8f,
+ 0x46, 0x68, 0x14, 0xac, 0x16, 0x1f, 0x8d, 0xad, 0xb6, 0x32, 0xd1, 0xf2,
+ 0xcc, 0x6c, 0xbd, 0x01, 0x86, 0x92, 0x45, 0x85, 0xde, 0x97, 0xfa, 0x09,
+ 0x8a, 0xd8, 0x1f, 0xb0, 0x71, 0x4e, 0x1e, 0x36, 0x23, 0x7e, 0x77, 0xdf,
+ 0xe2, 0x62, 0x50, 0xd2, 0x70, 0xef, 0x5f, 0xdb, 0x00, 0x0d, 0x5f, 0xb7,
+ 0xe6, 0xc1, 0x28, 0x0d, 0xe7, 0xb9, 0xdd, 0xc1, 0x53, 0xb5, 0x46, 0x23,
+ 0xe7, 0x95, 0x52, 0x4d, 0x24, 0x80, 0x6b, 0x00, 0xb6, 0x6f, 0x0e, 0x44,
+ 0x59, 0x7e, 0x32, 0xe2, 0x06, 0x92, 0x8e, 0x07, 0x10, 0xf7, 0xf5, 0xf7,
+ 0xe3, 0x14, 0x4e, 0x08, 0xbb, 0x1b, 0xf0, 0x4b, 0x29, 0xb6, 0xd7, 0x46,
+ 0xdb, 0xd6, 0x65, 0xa3, 0xe3, 0xd4, 0x5f, 0x56, 0x89, 0x44, 0x23, 0xd9,
+ 0x67, 0x50, 0x87, 0xd1, 0x4b, 0xca, 0x17, 0x61, 0xe6, 0xd5, 0x32, 0x1a,
+ 0xb2, 0xb4, 0xdc, 0x5a, 0x2f, 0x0f, 0x90, 0xd7, 0x4d, 0xcf, 0xcb, 0x09,
+ 0xde, 0xbc, 0x8e, 0x0f, 0xf8, 0xd5, 0x92, 0x01, 0xc5, 0xa7, 0x45, 0x9d,
+ 0x29, 0x52, 0xa7, 0x8f, 0x80, 0x41, 0xeb, 0xdf, 0x6f, 0xd6, 0xfb, 0x82,
+ 0xf6, 0x97, 0x77, 0xe7, 0x37, 0xaf, 0x9d, 0x5a, 0xd5, 0x97, 0xb1, 0x77,
+ 0x33, 0xd3, 0x06, 0xb0, 0xf6, 0x65, 0x90, 0x80, 0x10, 0xc4, 0xbb, 0xfd,
+ 0x48, 0x85, 0x59, 0xa3, 0xb5, 0x16, 0xbe, 0x76, 0xad, 0xe0, 0x47, 0xc9,
+ 0x26, 0x96, 0x88, 0xcd, 0x63, 0x69, 0x38, 0x50, 0xf0, 0x2e, 0x93, 0xb6,
+ 0x9c, 0x38, 0xa4, 0xd9, 0x4c, 0x5b, 0x20, 0x5b, 0x1d, 0x88, 0x61, 0x85,
+ 0xd6, 0xf5, 0x57, 0x98, 0x7e, 0xc0, 0xaa, 0xd8, 0x9f, 0x61, 0x5d, 0x2d,
+ 0xd4, 0xcf, 0xb2, 0x7f, 0x82, 0xb7, 0xdf, 0x39, 0x5d, 0x1d, 0x37, 0x16,
+ 0x61, 0xd5, 0x26, 0xe5, 0xd0, 0xf7, 0x39, 0x3f, 0x20, 0x86, 0xfa, 0x97,
+ 0x0c, 0x18, 0x61, 0xb8, 0xbf, 0xaa, 0x76, 0xcc, 0x60, 0xcf, 0xb8, 0x4a,
+ 0x78, 0xd2, 0x36, 0x49, 0x21, 0x60, 0x28, 0x75, 0xd5, 0xf2, 0x81, 0xff,
+ 0x1b, 0x49, 0x65, 0x09, 0x51, 0xd5, 0x25, 0x44, 0x65, 0xc3, 0x1b, 0x45,
+ 0xc4, 0x88, 0xa8, 0x62, 0xa2, 0xff, 0xd4, 0xf2, 0x83, 0xa6, 0x71, 0x98,
+ 0xe5, 0x34, 0x5f, 0x16, 0x23, 0xe1, 0x97, 0x2b, 0xcc, 0x6b, 0xb8, 0xdd,
+ 0x15, 0xca, 0xbb, 0x30, 0x58, 0xf3, 0x24, 0x62, 0xdf, 0xbb, 0x23, 0xe7,
+ 0xe4, 0x1b, 0xf8, 0x09, 0x42, 0xc7, 0x71, 0xba, 0x89, 0x3a, 0xa6, 0x55,
+ 0x01, 0x0b, 0x05, 0xc4, 0xc9, 0x62, 0x6c, 0x9c, 0x25, 0x83, 0x13, 0x41,
+ 0x17, 0xdd, 0x75, 0x18, 0x4d, 0x83, 0xa8, 0x4c, 0xc2, 0x2c, 0x57, 0xfc,
+ 0x6d, 0xd5, 0x9b, 0x3f, 0xbf, 0xeb, 0x45, 0xe6, 0xd6, 0x29, 0xd8, 0xf4,
+ 0x84, 0x80, 0x60, 0xd0, 0x24, 0x6e, 0x4e, 0x17, 0x20, 0x46, 0xbc, 0x9a,
+ 0x9f, 0x93, 0xb8, 0x70, 0x1d, 0x9b, 0x8d, 0x7b, 0x81, 0xd8, 0xda, 0x4d,
+ 0x13, 0x0e, 0xc6, 0x8d, 0xe8, 0x8e, 0x85, 0x87, 0x69, 0xd3, 0xdf, 0xc2,
+ 0x6d, 0x0e, 0xb9, 0xaf, 0x2a, 0x64, 0x5a, 0x82, 0xea, 0x37, 0x7d, 0x57,
+ 0xb3, 0x50, 0x6e, 0x4e, 0x22, 0xcd, 0xac, 0xec, 0x6c, 0xb1, 0xce, 0xce,
+ 0xac, 0x15, 0x91, 0x01, 0x93, 0x6e, 0x57, 0x23, 0x5c, 0x41, 0xf3, 0xda,
+ 0x9b, 0xa5, 0xa7, 0xcb, 0xf5, 0x32, 0x5b, 0x76, 0xe4, 0x79, 0x46, 0x59,
+ 0xd2, 0x97, 0xbe, 0x47, 0x42, 0xd1, 0x36, 0x44, 0x2d, 0x87, 0xbd, 0xbd,
+ 0x18, 0x40, 0x4d, 0x2b, 0xc2, 0xdf, 0x53, 0x5d, 0xbf, 0xa2, 0x9b, 0x24,
+ 0x4f, 0x81, 0x0a, 0x68, 0xe6, 0xec, 0x1f, 0xac, 0x05, 0x04, 0x51, 0x69,
+ 0x82, 0x1b, 0x2b, 0xd6, 0x9b, 0xaf, 0x55, 0x30, 0x8b, 0xe5, 0xf3, 0xdd,
+ 0x38, 0x68, 0x3b, 0xfa, 0xd7, 0x37, 0xe5, 0x15, 0x21, 0x95, 0xdd, 0xe1,
+ 0x3d, 0x25, 0x2b, 0x11, 0xcb, 0x0a, 0xb8, 0xc8, 0xe0, 0x3d, 0xb9, 0xd6,
+ 0x76, 0x37, 0x7f, 0x06, 0x17, 0x2e, 0x4e, 0x32, 0x08, 0xe2, 0xd8, 0xe3,
+ 0xdd, 0xc1, 0x6b, 0x77, 0x19, 0xad, 0xe7, 0x1b, 0xc4, 0xd2, 0x2a, 0xbd,
+ 0x61, 0xff, 0x91, 0x9d, 0xed, 0xc0, 0x27, 0x81, 0x99, 0x82, 0xe4, 0x4d,
+ 0xd6, 0x55, 0x51, 0x97, 0x08, 0xff, 0xbe, 0xa5, 0x21, 0xe4, 0x32, 0x17,
+ 0x54, 0x69, 0xa9, 0xe5, 0xfb, 0x20, 0xdf, 0xd3, 0x3a, 0xa1, 0x09, 0x9b,
+ 0x7a, 0x2a, 0x77, 0xeb, 0xbc, 0x43, 0x99, 0xa9, 0x70, 0xd0, 0x68, 0x6b,
+ 0xf5, 0xaf, 0x05, 0x17, 0x27, 0x77, 0x41, 0xfb, 0xd5, 0x4a, 0x96, 0xd0,
+ 0xa1, 0xac, 0xee, 0x32, 0xd4, 0xff, 0x0a, 0x83, 0x4b, 0x8e, 0xb3, 0xe8,
+ 0x6f, 0x47, 0xc5, 0x89, 0xb6, 0x15, 0x31, 0xa2, 0x39, 0x2e, 0x9d, 0x71,
+ 0x31, 0x76, 0xb8, 0x34, 0x0f, 0x4a, 0x3f, 0x29, 0x6d, 0xb8, 0xec, 0x56,
+ 0x76, 0x0c, 0xcd, 0x12, 0xa4, 0xf5, 0x77, 0x1d, 0x25, 0xd0, 0x33, 0x57,
+ 0xc4, 0xfb, 0x57, 0x2c, 0xa0, 0x05, 0x45, 0xed, 0x2e, 0xc9, 0x1d, 0xe4,
+ 0xe4, 0xbc, 0xc1, 0xfa, 0xcc, 0x19, 0x7a, 0x4d, 0x04, 0xb4, 0xbc, 0x1b,
+ 0xea, 0x38, 0xdc, 0xb1, 0x07, 0xf8, 0x5a, 0xed, 0xef, 0x08, 0x79, 0x3e,
+ 0xd9, 0x04, 0x1a, 0xff, 0xb6, 0x9e, 0x01, 0x0c, 0x57, 0x34, 0x86, 0x31,
+ 0x8a, 0xd3, 0x30, 0x1c, 0x58, 0x1f, 0xaa, 0xe5, 0x3e, 0xc2, 0x98, 0xcb,
+ 0x44, 0x50, 0x62, 0x6d, 0x40, 0xb4, 0x51, 0x07, 0x6a, 0x7d, 0xc0, 0x10,
+ 0x9b, 0x9e, 0x87, 0xe7, 0x35, 0x52, 0x3f, 0x09, 0x11, 0x48, 0xcb, 0xeb,
+ 0xf6, 0x56, 0x7f, 0x01, 0x9e, 0x05, 0x1c, 0x75, 0x8d, 0x51, 0x63, 0x4c,
+ 0x17, 0xbb, 0x38, 0x66, 0x22, 0x1b, 0x4c, 0x57, 0x9d, 0x24, 0x45, 0x78,
+ 0x5b, 0xcc, 0x1a, 0xd5, 0x40, 0xfc, 0x25, 0xc0, 0x2e, 0x10, 0xd9, 0x06,
+ 0xfe, 0xfc, 0xc8, 0x71, 0xc7, 0xea, 0x40, 0x5b, 0xf9, 0xe9, 0xc7, 0xba,
+ 0x1e, 0xf3, 0x5b, 0x3e, 0xbf, 0x65, 0xce, 0x9b, 0xcc, 0x06, 0xd6, 0xa7,
+ 0x10, 0x23, 0xd4, 0x59, 0x02, 0x5d, 0x83, 0x07, 0xd1, 0xae, 0x5a, 0xa2,
+ 0x10, 0xab, 0xdb, 0xca, 0x52, 0x2e, 0x8c, 0x9d, 0x8e, 0x02, 0x6d, 0x78,
+ 0xfd, 0x4f, 0xef, 0xf6, 0x10, 0x1a, 0x03, 0x6d, 0x37, 0xac, 0x31, 0x42,
+ 0x9d, 0x27, 0x1f, 0x28, 0x2a, 0x7b, 0x63, 0x25, 0x4e, 0x18, 0x09, 0x06,
+ 0xcf, 0xcb, 0xa6, 0x4a, 0xb9, 0x6c, 0x96, 0xa9, 0xa5, 0x3c, 0x9a, 0xb9,
+ 0xfe, 0x1c, 0xb1, 0x4c, 0x09, 0x4a, 0x73, 0xa0, 0x87, 0x62, 0xe4, 0xd7,
+ 0xae, 0xda, 0x5d, 0x31, 0x48, 0x87, 0x26, 0x2f, 0x5d, 0xaa, 0xc7, 0xa5,
+ 0xac, 0x4d, 0xc4, 0x2e, 0x46, 0x56, 0x9b, 0x2c, 0xc3, 0x01, 0xdf, 0x67,
+ 0x21, 0xad, 0x27, 0x51, 0x13, 0x67, 0x0e, 0xbd, 0x1c, 0x83, 0xc4, 0xc2,
+ 0x36, 0x3b, 0x85, 0x87, 0x75, 0x7f, 0x6f, 0xfa, 0x1b, 0x81, 0x2b, 0x2e,
+ 0x24, 0xc2, 0xf6, 0xc0, 0xb3, 0x90, 0x80, 0xe5, 0x78, 0x07, 0x43, 0xe9,
+ 0x44, 0xd8, 0xfc, 0x5b, 0x54, 0x40, 0xde, 0xe1, 0x65, 0xab, 0xcf, 0x01,
+ 0x29, 0x54, 0x47, 0x2c, 0xbe, 0x0d, 0x68, 0x4c, 0xe6, 0xed, 0xa3, 0x0e,
+ 0xb4, 0xde, 0xcd, 0x51, 0xb5, 0xcb, 0x2e, 0x35, 0xeb, 0xfe, 0xeb, 0x89,
+ 0xc1, 0x15, 0xd5, 0xad, 0xe1, 0x09, 0x57, 0x73, 0x59, 0xb1, 0x85, 0x57,
+ 0x76, 0x40, 0x20, 0x02, 0x40, 0x71, 0xdc, 0x2d, 0x69, 0x94, 0x0a, 0x0f,
+ 0x82, 0xa8, 0xaf, 0x7a, 0x6c, 0x19, 0x98, 0x3f, 0xbb, 0x8d, 0x39, 0xcf,
+ 0xb8, 0x29, 0x1c, 0xfb, 0x63, 0xc6, 0x19, 0xc1, 0x57, 0xe4, 0xfd, 0x34,
+ 0xe2, 0x12, 0x73, 0xac, 0x38, 0x4f, 0xfc, 0xfb, 0x0b, 0x7b, 0x74, 0x01,
+ 0xad, 0xb0, 0x77, 0x23, 0x5d, 0x2f, 0xd2, 0xbe, 0xe6, 0x67, 0x0e, 0x34,
+ 0x8d, 0x57, 0xa2, 0x41, 0x8d, 0x85, 0xdf, 0x73, 0x25, 0x74, 0xcb, 0xad,
+ 0x41, 0x36, 0xdb, 0xd5, 0x26, 0x2b, 0x4a, 0x1e, 0x07, 0xbe, 0x20, 0x13,
+ 0x75, 0xd0, 0x08, 0xa4, 0x63, 0x56, 0x78, 0x7b, 0x13, 0x7c, 0xdd, 0x7d,
+ 0xac, 0x1d, 0x1f, 0x34, 0x44, 0x32, 0xca, 0x92, 0xbe, 0xfb, 0x99, 0xd3,
+ 0xfb, 0xd0, 0x4c, 0x2b, 0x75, 0x3e, 0x5d, 0xc3, 0x13, 0x89, 0x57, 0xab,
+ 0xda, 0x7d, 0xb2, 0xd6, 0x54, 0xf3, 0x54, 0xb9, 0xdd, 0xb3, 0x4a, 0x02,
+ 0x1d, 0x7b, 0xa8, 0xdc, 0x37, 0x4c, 0x50, 0x87, 0x4f, 0xea, 0x98, 0x69,
+ 0x65, 0x7b, 0x69, 0x5a, 0x9b, 0x1c, 0x66, 0x73, 0x25, 0xdc, 0xb0, 0xab,
+ 0x7e, 0xff, 0xb5, 0x7e, 0x13, 0xa0, 0x27, 0x4f, 0x92, 0xf3, 0xdc, 0xfc,
+ 0x60, 0x37, 0xc9, 0x71, 0x68, 0xa1, 0x5f, 0x04, 0x12, 0xe5, 0xe8, 0x41,
+ 0xa3, 0x60, 0x70, 0x1b, 0x42, 0x7d, 0x00, 0x9f, 0xcb, 0xf1, 0x94, 0xd1,
+ 0x38, 0x45, 0xc8, 0x9d, 0xfb, 0xa7, 0xfe, 0xeb, 0x6f, 0x72, 0xe9, 0xd5,
+ 0x47, 0x81, 0x4a, 0x6b, 0x76, 0xe2, 0x79, 0xa6, 0x6f, 0x52, 0xe9, 0xd7,
+ 0x6e, 0x4c, 0x27, 0x0c, 0xd3, 0x61, 0xf2, 0x0b, 0x5b, 0xfe, 0x91, 0x5b,
+ 0x08, 0xb3, 0xa1, 0x06, 0x04, 0x5a, 0xe2, 0xac, 0x4d, 0xec, 0xd5, 0x35,
+ 0x89, 0x33, 0x54, 0xfe, 0x34, 0xcb, 0x36, 0xd6, 0x89, 0x2d, 0x70, 0x47,
+ 0x9d, 0xea, 0x02, 0x26, 0xc9, 0xce, 0xba, 0x98, 0xa8, 0xa4, 0x8b, 0x7f,
+ 0x25, 0x69, 0x2e, 0x08, 0x73, 0x33, 0x3d, 0x0a, 0x7b, 0x54, 0xf0, 0xf7,
+ 0x64, 0xc9, 0x45, 0x3f, 0x52, 0xfb, 0x17, 0x92, 0x5f, 0xed, 0x97, 0xea,
+ 0xf4, 0x54, 0x6d, 0xa4, 0x07, 0x36, 0xa1, 0x53, 0x40, 0xf8, 0xd2, 0xd4,
+ 0x38, 0xda, 0x09, 0x5e, 0x48, 0xd1, 0x4d, 0xaa, 0x57, 0x69, 0x0d, 0xce,
+ 0xf3, 0x67, 0x93, 0x81, 0x7d, 0xc1, 0xcc, 0x16, 0xd9, 0x8e, 0x5e, 0x5f,
+ 0xb5, 0xdc, 0xe8, 0xad, 0xa7, 0xbe, 0xb9, 0x21, 0xf3, 0x56, 0xe9, 0x41,
+ 0x26, 0x0c, 0x70, 0xa2, 0x48, 0xcf, 0x20, 0x7a, 0xe3, 0x5a, 0xe4, 0x14,
+ 0x11, 0x41, 0xbb, 0xa6, 0x23, 0x3f, 0xc4, 0x8f, 0x16, 0xb0, 0x55, 0xd5,
+ 0x58, 0x6b, 0xb2, 0x9b, 0xcf, 0x6f, 0x07, 0x36, 0xe5, 0xb8, 0x04, 0x1b,
+ 0x7b, 0x93, 0xaa, 0xd3, 0x4a, 0x11, 0xbb, 0x07, 0x06, 0x3f, 0x6a, 0x6b,
+ 0x1b, 0x09, 0x28, 0x14, 0x79, 0x2b, 0x58, 0xbe, 0x65, 0x71, 0xf1, 0xb9,
+ 0x33, 0x68, 0xbc, 0x00, 0x78, 0xc2, 0xc8, 0x48, 0xc2, 0xfa, 0x03, 0x3f,
+ 0x7f, 0xf0, 0xd3, 0x16, 0x9b, 0x6b, 0x47, 0xae, 0x74, 0xd5, 0xa4, 0xef,
+ 0x3c, 0xf9, 0xe6, 0x7d, 0x5d, 0x86, 0xc6, 0xc2, 0xc1, 0x84, 0x92, 0xa9,
+ 0x12, 0x33, 0x13, 0x6c, 0x71, 0xde, 0x00, 0x66, 0x15, 0x27, 0xe3, 0x42,
+ 0xd5, 0x79, 0xa1, 0x82, 0x4a, 0xdd, 0xe1, 0x3a, 0x4f, 0x0f, 0x44, 0x35,
+ 0xff, 0x73, 0x60, 0x01, 0xb6, 0xfd, 0x88, 0x15, 0xe4, 0x1f, 0x0a, 0x9d,
+ 0x1c, 0x2b, 0x12, 0x14, 0xbd, 0x00, 0x0a, 0x8f, 0x4b, 0x6c, 0x13, 0x6b,
+ 0x7b, 0x16, 0x4e, 0x9d, 0x2f, 0x8c, 0xb1, 0xaf, 0xe3, 0x69, 0xf0, 0xd0,
+ 0xf5, 0xc6, 0xbf, 0xc1, 0xeb, 0x4a, 0x3b, 0x19, 0x2a, 0x3f, 0x2f, 0xbf,
+ 0xc1, 0xf4, 0x31, 0x1d, 0x0e, 0xbb, 0xba, 0x90, 0x92, 0x4c, 0x82, 0x19,
+ 0x87, 0x0b, 0x6b, 0x9d, 0x53, 0xb3, 0x67, 0x23, 0xae, 0xee, 0xa4, 0x24,
+ 0x93, 0x20, 0x86, 0x61, 0xc2, 0xda, 0xe7, 0x54, 0xec, 0xd9, 0xc8, 0xeb,
+ 0xbb, 0xa9, 0x09, 0x97, 0x11, 0x70, 0x12, 0x08, 0x7f, 0x50, 0xcf, 0x65,
+ 0xeb, 0x2e, 0x32, 0x4d, 0x35, 0x50, 0x14, 0x36, 0xca, 0x89, 0x8f, 0x4e,
+ 0x23, 0x57, 0xeb, 0xe5, 0xe6, 0x60, 0x45, 0xc6, 0xcb, 0xba, 0x66, 0x5a,
+ 0xc2, 0x71, 0x0a, 0x59, 0x18, 0x65, 0x90, 0xca, 0x78, 0x20, 0xe1, 0x33,
+ 0x05, 0x6d, 0x1d, 0x28, 0x1e, 0x69, 0x87, 0x2a, 0x9a, 0xf2, 0xa0, 0xbc,
+ 0xe1, 0xb9, 0x56, 0x2a, 0xd8, 0x93, 0xdc, 0x05, 0xb4, 0x77, 0xde, 0x23,
+ 0x2d, 0x3d, 0xe4, 0x28, 0x25, 0xe4, 0x69, 0x25, 0xb5, 0xa5, 0x69, 0xae,
+ 0x96, 0x24, 0xc7, 0x7c, 0x94, 0x80, 0x1a, 0x48, 0x6d, 0x8b, 0xa7, 0x03,
+ 0x73, 0x2c, 0x60, 0x63, 0xc9, 0x88, 0xa8, 0xe5, 0xec, 0x1c, 0x1a, 0x35,
+ 0x9b, 0x95, 0x09, 0x5a, 0xc4, 0x97, 0xa1, 0x34, 0x28, 0xd6, 0x42, 0xd3,
+ 0x72, 0x9d, 0x0f, 0x7b, 0x34, 0x14, 0x2f, 0xa5, 0x71, 0x52, 0xd8, 0xdb,
+ 0xa5, 0x8b, 0x37, 0x4e, 0x41, 0x09, 0x35, 0xd2, 0x38, 0xd3, 0x0d, 0xe7,
+ 0xdf, 0x78, 0xb5, 0x21, 0x89, 0x0d, 0x04, 0x4e, 0x5d, 0x8c, 0x81, 0x9e,
+ 0xe9, 0x37, 0xff, 0x5a, 0x19, 0x30, 0x1f, 0xa4, 0x5e, 0xef, 0xaf, 0xaf,
+ 0x72, 0xa0, 0xfe, 0x20, 0x45, 0x46, 0x01, 0x6c, 0x7a, 0x27, 0xe2, 0xa6,
+ 0xde, 0x0a, 0x76, 0x88, 0x0e, 0x4a, 0x0e, 0x8d, 0x6a, 0xa7, 0xe0, 0xb9,
+ 0x84, 0xaf, 0xa7, 0xf2, 0xf9, 0x48, 0xf8, 0x31, 0x24, 0xc0, 0x58, 0xcc,
+ 0x7d, 0xfb, 0xe8, 0xf6, 0x8f, 0x7f, 0xb2, 0x58, 0x5d, 0xd9, 0xf6, 0x7e,
+ 0xc5, 0x3f, 0x19, 0xb5, 0x3c, 0x4b, 0x4b, 0x97, 0x07, 0xe2, 0x0b, 0x32,
+ 0x3c, 0xa5, 0x8d, 0x8f, 0x8a, 0xc3, 0x8c, 0xb7, 0xad, 0x05, 0x8f, 0x53,
+ 0x6f, 0xf0, 0x29, 0xd9, 0x82, 0x84, 0x66, 0x6a, 0x36, 0x08, 0x25, 0xa8,
+ 0x0b, 0xfd, 0x4d, 0xbf, 0xbf, 0xef, 0xd3, 0x5e, 0x73, 0xc5, 0x48, 0x85,
+ 0xad, 0x3b, 0x22, 0x09, 0x14, 0x04, 0x12, 0x87, 0x88, 0xc5, 0x97, 0xd4,
+ 0x00, 0x4d, 0x04, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xb1, 0x11, 0x00, 0x05, 0x10, 0x10, 0x00, 0x1e, 0xcc, 0xbf, 0x4b,
+ 0x73, 0x80, 0x66, 0xc3, 0xee, 0xb4, 0x7c, 0x2c, 0xb0, 0xbe, 0x99, 0x8c,
+ 0xcb, 0xc5, 0x47, 0x90, 0xd7, 0x2d, 0x18, 0xcd, 0xdb, 0x13, 0x17, 0xff,
+ 0x30, 0x86, 0x57, 0xe2, 0x71, 0x09, 0x4e, 0x5a, 0xec, 0x53, 0x94, 0x6f,
+ 0xd0, 0xa7, 0x4d, 0xde, 0x95, 0x20, 0xd8, 0x3c, 0xb8, 0x27, 0x31, 0x34,
+ 0x67, 0xe1, 0x69, 0x56, 0x16, 0xf4, 0xe8, 0x96, 0xbf, 0x5d, 0xac, 0xfe,
+ 0xe1, 0x3c, 0xb0, 0x16, 0xc8, 0xe5, 0xdf, 0xc5, 0xbd, 0x69, 0x7e, 0xcf,
+ 0x2e, 0x4d, 0x44, 0xf6, 0x58, 0x96, 0xf8, 0x02, 0x10, 0x11, 0xe6, 0x7c,
+ 0xb6, 0x1d, 0xd6, 0xd0, 0x21, 0xae, 0x42, 0x76, 0xff, 0x40, 0xc1, 0x8b,
+ 0x5d, 0x97, 0xa4, 0x62, 0x52, 0xd2, 0x21, 0x5d, 0xff, 0x1f, 0x98, 0x61,
+ 0x0f, 0x5f, 0x6b, 0x85, 0xac, 0x01, 0xd4, 0xcd, 0x02, 0xda, 0x78, 0xa9,
+ 0xff, 0x86, 0x67, 0x17, 0x0e, 0x61, 0xa1, 0x2f, 0xbe, 0x00, 0x72, 0xa1,
+ 0x40, 0x51, 0x39, 0x5d, 0x95, 0x50, 0xe1, 0x7f, 0x97, 0xc7, 0xd6, 0x79,
+ 0xfa, 0x91, 0x04, 0x8b, 0xa9, 0xc5, 0x53, 0x8b, 0x41, 0xaf, 0x67, 0x0d,
+ 0x84, 0xe2, 0x6e, 0xc7, 0xa0, 0x46, 0x4b, 0x0b, 0x99, 0xa5, 0x6d, 0xe0,
+ 0xd6, 0xe6, 0x34, 0xb1, 0xde, 0x37, 0xbf, 0x91, 0x60, 0x41, 0xda, 0xbe,
+ 0xd7, 0xb9, 0x1c, 0x7a, 0xb8, 0x7d, 0xb6, 0xa6, 0xd1, 0xe2, 0x77, 0x45,
+ 0x01, 0x55, 0x64, 0x71, 0x71, 0xde, 0xc0, 0xec, 0x90, 0x6e, 0xc3, 0xfd,
+ 0xf2, 0x51, 0x3d, 0xfe, 0x5f, 0xbc, 0x0c, 0xe8, 0xa8, 0xd0, 0x78, 0x20,
+ 0x7d, 0x22, 0x28, 0xc9, 0x51, 0x1d, 0xed, 0x4c, 0xd1, 0x2a, 0x1a, 0xf1,
+ 0x0c, 0x71, 0xd2, 0x1f, 0x98, 0x08, 0xfd, 0x54, 0xb8, 0x3c, 0xee, 0xbc,
+ 0x76, 0x0a, 0x7b, 0x43, 0xfc, 0x1c, 0xa4, 0x9b, 0xa4, 0x0a, 0x89, 0xb3,
+ 0xff, 0xc6, 0x74, 0x45, 0x3c, 0xbc, 0x49, 0x3f, 0x02, 0xf2, 0x56, 0x14,
+ 0xe9, 0x23, 0xf0, 0xa3, 0xb4, 0xa2, 0xd6, 0xd2, 0xb7, 0x28, 0x41, 0xae,
+ 0xe1, 0x58, 0xdc, 0x10, 0x5a, 0x70, 0x63, 0xd2, 0x51, 0xf4, 0xd1, 0x4b,
+ 0x9c, 0x7b, 0x12, 0x7b, 0x15, 0xe0, 0xa9, 0xa3, 0x73, 0x16, 0x84, 0xfb,
+ 0xce, 0x85, 0x89, 0x11, 0x2d, 0x08, 0xf8, 0x1a, 0xad, 0x25, 0xbf, 0xf9,
+ 0x0c, 0xd5, 0xcb, 0xa3, 0x08, 0x04, 0x99, 0xaa, 0x3a, 0xcd, 0x79, 0x74,
+ 0xd2, 0xae, 0xa7, 0x5e, 0xb2, 0x3d, 0xbd, 0x03, 0x79, 0x88, 0x6d, 0x87,
+ 0x8e, 0xa1, 0xda, 0xd2, 0x1b, 0xeb, 0xb5, 0x82, 0x5c, 0x3a, 0x7c, 0x22,
+ 0x4a, 0x5f, 0x83, 0xde, 0x07, 0x45, 0xd9, 0x9b, 0xd2, 0x57, 0x79, 0x24,
+ 0xa6, 0x84, 0xdf, 0x04, 0xae, 0x43, 0x93, 0x3a, 0xad, 0x73, 0xea, 0x31,
+ 0x27, 0xf8, 0xdb, 0xbf, 0x17, 0x8b, 0xe9, 0xbd, 0x5b, 0xb1, 0xc1, 0x0e,
+ 0x62, 0xe2, 0x1d, 0x94, 0x20, 0x30, 0x7d, 0x87, 0x9b, 0x91, 0xa8, 0x4a,
+ 0x09, 0x2c, 0xa7, 0xa3, 0x14, 0x71, 0x79, 0x15, 0xbf, 0x79, 0xc7, 0xaf,
+ 0xa4, 0xff, 0x6d, 0xc4, 0x2a, 0x5c, 0x41, 0x99, 0x4a, 0x23, 0x90, 0x55,
+ 0x04, 0x73, 0x64, 0x56, 0xc5, 0x09, 0xef, 0x1e, 0x9f, 0x08, 0xbb, 0xd5,
+ 0x8b, 0x39, 0xff, 0xa2, 0xc4, 0x3c, 0xca, 0x09, 0xb3, 0xe6, 0x33, 0x41,
+ 0x2e, 0xea, 0x39, 0xd4, 0xed, 0x68, 0x65, 0xe9, 0x79, 0xc3, 0xc1, 0x1b,
+ 0x04, 0x89, 0x2e, 0xb0, 0x31, 0x58, 0x33, 0x64, 0xab, 0x4a, 0x2c, 0x8c,
+ 0xdd, 0xeb, 0x2d, 0x68, 0x44, 0xad, 0x37, 0xb3, 0x4a, 0xc7, 0x6c, 0xcc,
+ 0x7a, 0x0b, 0x58, 0x71, 0xf2, 0x1b, 0x64, 0xf8, 0xb3, 0xa6, 0x12, 0xba,
+ 0xa1, 0x6d, 0xaa, 0xd4, 0x14, 0x20, 0x34, 0x10, 0x45, 0x0f, 0xe9, 0x60,
+ 0x02, 0x0f, 0xd4, 0x28, 0x33, 0x26, 0xe1, 0x74, 0x56, 0x9d, 0xa1, 0xea,
+ 0x1c, 0x37, 0xea, 0x1c, 0xcc, 0xd7, 0xeb, 0xd5, 0xde, 0xdb, 0x78, 0xae,
+ 0x85, 0x64, 0x3a, 0xc8, 0x94, 0x23, 0x2a, 0x99, 0x3a, 0xed, 0xe3, 0x2d,
+ 0x0d, 0x60, 0x38, 0xc9, 0x74, 0x29, 0x68, 0x9e, 0xb0, 0xba, 0x1a, 0x58,
+ 0xb1, 0x83, 0x4e, 0x59, 0x8a, 0x7c, 0x47, 0xa5, 0xcb, 0x0a, 0xa7, 0x17,
+ 0x71, 0x8e, 0xc6, 0x3d, 0xd1, 0x01, 0x58, 0xbe, 0x31, 0x03, 0x12, 0x88,
+ 0x43, 0xf2, 0x2c, 0x89, 0x67, 0x00, 0xd6, 0xa5, 0x42, 0x7f, 0x4e, 0x11,
+ 0x51, 0x47, 0x37, 0xe6, 0x13, 0x27, 0x29, 0xbe, 0x00, 0x4f, 0xb9, 0x30,
+ 0x88, 0xc4, 0xbc, 0xa2, 0x80, 0xdf, 0xa1, 0x05, 0xa3, 0xe0, 0xc9, 0x6e,
+ 0x2c, 0xe3, 0x71, 0x1f, 0x17, 0xe2, 0x4b, 0x07, 0xc4, 0x89, 0xcf, 0x90,
+ 0xbf, 0xa7, 0xe0, 0x71, 0x08, 0x27, 0x13, 0x34, 0x1c, 0xbb, 0xf3, 0x70,
+ 0xd8, 0x28, 0x3d, 0xaa, 0x07, 0x5b, 0x90, 0x42, 0xe2, 0x22, 0xde, 0x89,
+ 0xf5, 0x94, 0x7b, 0x2d, 0xee, 0x10, 0x9c, 0xad, 0x4a, 0xd9, 0x6f, 0xc5,
+ 0xbd, 0x70, 0x9a, 0xac, 0x23, 0x88, 0x14, 0x64, 0x19, 0xf5, 0xa4, 0x02,
+ 0x08, 0x7e, 0xa9, 0xe0, 0xa0, 0xe7, 0xe3, 0x66, 0xdf, 0xa4, 0xa7, 0xc0,
+ 0x11, 0xf1, 0x4a, 0xa4, 0x7c, 0x02, 0xd2, 0xf6, 0x1b, 0xf8, 0xeb, 0xa6,
+ 0x04, 0xb0, 0xd0, 0xae, 0x70, 0x95, 0x6b, 0x78, 0x78, 0xe8, 0xb0, 0x3c,
+ 0x5b, 0xde, 0x68, 0x68, 0x67, 0xd1, 0xd6, 0xb1, 0x3e, 0x1e, 0xaa, 0xa7,
+ 0xd4, 0xdf, 0xa1, 0xbb, 0xb9, 0xe9, 0xe9, 0x1d, 0x73, 0x7d, 0x06, 0x9a,
+ 0x2f, 0xde, 0x79, 0x61, 0x10, 0xec, 0x99, 0x75, 0xca, 0x9d, 0x00, 0xe6,
+ 0x37, 0xb1, 0x50, 0xc6, 0x33, 0x0f, 0x49, 0x71, 0x31, 0xa1, 0xb9, 0xb2,
+ 0xf1, 0xe2, 0x6b, 0x86, 0x64, 0xd6, 0x0f, 0xf6, 0xe1, 0x69, 0x8a, 0xb3,
+ 0x4e, 0xa0, 0x40, 0x5c, 0xae, 0xe6, 0xab, 0x81, 0x8b, 0x8b, 0xfc, 0x2f,
+ 0xcb, 0x09, 0x38, 0x7d, 0x50, 0xc4, 0x26, 0x13, 0xe8, 0xd6, 0xfb, 0x51,
+ 0x81, 0x7f, 0x0c, 0x0e, 0xda, 0x35, 0x0c, 0xd7, 0x27, 0xb9, 0x83, 0xe0,
+ 0x62, 0x9c, 0x86, 0xa4, 0x9d, 0xbb, 0x8e, 0xd4, 0x5b, 0x43, 0x99, 0x56,
+ 0xf3, 0x9e, 0x0d, 0x11, 0x7f, 0x80, 0x04, 0x98, 0xc3, 0xc6, 0x61, 0xba,
+ 0xa8, 0x49, 0x04, 0x94, 0xbf, 0x60, 0x21, 0x9f, 0x50, 0x70, 0x6d, 0x61,
+ 0x90, 0xc3, 0x85, 0x18, 0x4d, 0xe7, 0xc3, 0x1b, 0x8c, 0x7c, 0x44, 0x9e,
+ 0x5e, 0xb5, 0x4c, 0x60, 0xba, 0xb4, 0xee, 0x0e, 0x3c, 0xbb, 0x8b, 0x00,
+ 0x93, 0x1d, 0x40, 0xd7, 0x7a, 0x51, 0x69, 0xf1, 0xd3, 0xe0, 0xd6, 0x22,
+ 0x4a, 0x70, 0xa6, 0x16, 0x12, 0x0f, 0x5a, 0x57, 0x59, 0xc8, 0x1d, 0x6c,
+ 0x65, 0xdd, 0xcb, 0xd3, 0xa4, 0xff, 0xf6, 0x4f, 0x9c, 0x35, 0xba, 0xf8,
+ 0x25, 0x5c, 0x9e, 0x07, 0x8a, 0xf1, 0x5e, 0x0e, 0xbc, 0xf4, 0xcf, 0x16,
+ 0x83, 0x40, 0xdf, 0x89, 0x83, 0xdf, 0xbb, 0xe7, 0x99, 0x7f, 0x37, 0x4a,
+ 0x38, 0x40, 0x69, 0xb0, 0x9e, 0xf9, 0x3b, 0xa9, 0xa9, 0x28, 0xcd, 0x9a,
+ 0x75, 0x26, 0x96, 0xfa, 0x93, 0x92, 0x97, 0x62, 0x15, 0xfe, 0x7b, 0x5d,
+ 0xd6, 0xf4, 0x72, 0xb1, 0xc3, 0xab, 0xd0, 0x95, 0xd3, 0xe7, 0x15, 0x96,
+ 0x21, 0xd4, 0x51, 0x7b, 0xda, 0x1c, 0x06, 0x55, 0x89, 0x4b, 0xe4, 0xb8,
+ 0x45, 0x32, 0xf4, 0x62, 0x7a, 0xe9, 0xe4, 0x6b, 0xf5, 0x90, 0xb6, 0xdf,
+ 0x9a, 0x4e, 0xa7, 0x22, 0x68, 0xdb, 0xac, 0x1d, 0x17, 0x6a, 0x95, 0xb7,
+ 0x40, 0x3c, 0xce, 0xe0, 0xcb, 0x47, 0x9a, 0xa5, 0x65, 0x0a, 0xd2, 0x27,
+ 0x32, 0x9c, 0xae, 0x83, 0x1a, 0x69, 0x88, 0x8d, 0x3e, 0xd5, 0x02, 0xb0,
+ 0xde, 0x2c, 0x08, 0x26, 0xaa, 0xdf, 0xee, 0x32, 0x94, 0x98, 0x10, 0x02,
+ 0xb5, 0x2a, 0xc4, 0x40, 0x20, 0x20, 0xd2, 0xe6, 0x0c, 0x24, 0xea, 0xda,
+ 0x0a, 0xa9, 0xbc, 0xcf, 0xc8, 0x44, 0x46, 0x1d, 0x57, 0xfe, 0x08, 0x3f,
+ 0x38, 0xc6, 0xc9, 0xa9, 0x79, 0x8d, 0xd9, 0xf3, 0x1f, 0x59, 0x46, 0xe7,
+ 0xec, 0x25, 0xc9, 0xa3, 0x12, 0xf4, 0x38, 0x8e, 0xf2, 0x02, 0x8a, 0xf2,
+ 0xd5, 0xb6, 0xb7, 0xf6, 0xdb, 0x92, 0x04, 0xe8, 0xc0, 0x60, 0x94, 0x03,
+ 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11,
+ 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0x43, 0x17, 0xff, 0xff, 0xf0,
+ 0x27, 0xf4, 0x2d, 0xda, 0x8c, 0xab, 0x6e, 0xda, 0xc7, 0x09, 0x41, 0x32,
+ 0x1b, 0x93, 0x5d, 0xf1, 0x44, 0x0d, 0xd2, 0x70, 0x0d, 0xf1, 0x79, 0x7c,
+ 0xb2, 0xd5, 0x34, 0x2d, 0x75, 0x95, 0xed, 0x01, 0x1a, 0xa6, 0x71, 0x36,
+ 0xaf, 0xce, 0x9c, 0xbd, 0x41, 0xe3, 0x03, 0x66, 0x24, 0x6b, 0x21, 0xd4,
+ 0xc6, 0x44, 0xde, 0xd1, 0x5c, 0x2f, 0x2e, 0x5c, 0xb1, 0x7f, 0xc6, 0x3d,
+ 0x61, 0xc2, 0x6c, 0xda, 0x18, 0x60, 0x15, 0xf9, 0x81, 0x37, 0xfe, 0x05,
+ 0x12, 0x04, 0xe4, 0xb5, 0xb5, 0xaf, 0x14, 0x61, 0x82, 0x79, 0xf9, 0xf5,
+ 0x72, 0x03, 0x18, 0x00, 0x04, 0xcb, 0x67, 0x04, 0xd7, 0x51, 0x6a, 0xf2,
+ 0x6f, 0x7a, 0x47, 0x9f, 0xe0, 0xe5, 0x40, 0x61, 0xea, 0xd2, 0x3b, 0x9a,
+ 0x78, 0x21, 0x05, 0x5a, 0xc3, 0x42, 0x3f, 0x5d, 0x87, 0x07, 0xfb, 0x15,
+ 0x0a, 0xc9, 0x21, 0x31, 0x00, 0xce, 0xd8, 0xa3, 0x65, 0x42, 0xda, 0x46,
+ 0xd7, 0x35, 0x2a, 0x4c, 0x40, 0x2b, 0x19, 0xcf, 0xe2, 0x96, 0x76, 0x08,
+ 0xda, 0x46, 0x61, 0xce, 0x0d, 0xc5, 0x15, 0x92, 0x62, 0x29, 0x6d, 0x76,
+ 0x7a, 0x01, 0xd6, 0xb2, 0x6a, 0x77, 0x65, 0x4e, 0x37, 0x43, 0x2f, 0x15,
+ 0x2b, 0xce, 0x4d, 0xc9, 0xff, 0xbd, 0x31, 0x1b, 0xa3, 0x39, 0x8e, 0x67,
+ 0x82, 0xbe, 0xc0, 0x42, 0x94, 0x75, 0x6a, 0x85, 0xb8, 0x75, 0x4c, 0x2a,
+ 0x0b, 0xf1, 0xb5, 0x19, 0x5a, 0xd4, 0xb8, 0x7f, 0xfb, 0x68, 0x63, 0xb3,
+ 0x5e, 0x26, 0xdd, 0x5f, 0xa6, 0x4a, 0x95, 0xb9, 0x4d, 0x99, 0x83, 0xdd,
+ 0x4b, 0xef, 0x44, 0xe6, 0x03, 0xac, 0x09, 0xbf, 0xd1, 0x41, 0xb1, 0x55,
+ 0x1e, 0xcd, 0xe7, 0x40, 0x46, 0x37, 0xf8, 0x57, 0x70, 0x59, 0x0c, 0x5c,
+ 0x4e, 0x94, 0x64, 0x89, 0x6d, 0x16, 0xaf, 0x6d, 0x65, 0x3e, 0xa8, 0x4a,
+ 0x9d, 0xbb, 0xd9, 0x7e, 0xa1, 0x08, 0xa1, 0x9f, 0xda, 0x8a, 0x85, 0x94,
+ 0x48, 0x23, 0x3e, 0x66, 0xa1, 0xc8, 0xec, 0x1b, 0x68, 0x33, 0xdf, 0x37,
+ 0x68, 0xf3, 0x2c, 0x5d, 0x15, 0x75, 0xda, 0xba, 0x24, 0xdc, 0xc0, 0x86,
+ 0x65, 0xd0, 0xf0, 0x16, 0xd7, 0x53, 0x09, 0x26, 0xe6, 0x9f, 0x48, 0x9b,
+ 0xb2, 0x8a, 0x99, 0x37, 0xaf, 0xc9, 0xa6, 0xe6, 0xa1, 0x6f, 0x43, 0xb0,
+ 0xef, 0x2c, 0x2f, 0xfe, 0x66, 0x9d, 0x1a, 0x58, 0x5d, 0xf3, 0x62, 0x7d,
+ 0x77, 0x5f, 0x08, 0x9e, 0x5f, 0xe8, 0xae, 0x9e, 0x33, 0x6e, 0x65, 0x62,
+ 0x23, 0x8e, 0x06, 0x79, 0x6d, 0x66, 0xe5, 0x77, 0xd0, 0x0e, 0x63, 0x96,
+ 0x96, 0x82, 0x0d, 0x68, 0x07, 0xb6, 0xdb, 0x44, 0xc1, 0xd4, 0xe7, 0xec,
+ 0x90, 0xd6, 0x07, 0x99, 0x2c, 0xa0, 0xa7, 0x0e, 0x6b, 0x4d, 0x20, 0xf7,
+ 0x36, 0x28, 0x2e, 0x0e, 0xc7, 0x12, 0xb1, 0x89, 0x8b, 0x03, 0x16, 0x54,
+ 0xe3, 0xa8, 0xbd, 0x33, 0xb9, 0x76, 0x01, 0x89, 0x77, 0x93, 0xc5, 0xb5,
+ 0xa8, 0xd4, 0x43, 0xb1, 0xdc, 0x4d, 0xcc, 0x7d, 0x6e, 0xab, 0x5a, 0xe3,
+ 0x19, 0x8e, 0x69, 0xfd, 0x69, 0x7c, 0xbb, 0xb2, 0x5f, 0xb5, 0x72, 0x3d,
+ 0xdc, 0xf9, 0x82, 0x1f, 0x8a, 0x43, 0x8c, 0x56, 0xcb, 0x33, 0x31, 0x6b,
+ 0xf8, 0x30, 0x0a, 0xf4, 0xa8, 0x56, 0xeb, 0x18, 0xab, 0x21, 0xd5, 0x1f,
+ 0xdf, 0x39, 0xc9, 0xb0, 0xf2, 0x23, 0x57, 0xd0, 0xb0, 0x26, 0x73, 0x44,
+ 0x33, 0xab, 0x38, 0xa9, 0xfa, 0xfe, 0x50, 0x4c, 0xeb, 0x17, 0x37, 0x47,
+ 0xae, 0x9b, 0x04, 0x02, 0xbe, 0x55, 0x6b, 0xc9, 0xea, 0x0b, 0x53, 0xb5,
+ 0xfa, 0xc3, 0x52, 0x69, 0xef, 0x56, 0x0c, 0x3f, 0xf5, 0x2d, 0xee, 0x7e,
+ 0xc6, 0xb7, 0xe6, 0x3d, 0x7a, 0x8e, 0xaf, 0xba, 0xd3, 0xed, 0x5f, 0x4f,
+ 0x9b, 0x62, 0x0e, 0x80, 0x05, 0x73, 0x96, 0x4b, 0xd0, 0x8f, 0x90, 0x5f,
+ 0x38, 0x64, 0xbd, 0x08, 0xd5, 0x04, 0xd0, 0x33, 0xe5, 0x28, 0x08, 0x5a,
+ 0x32, 0xfc, 0xf0, 0x9b, 0x4b, 0xf5, 0xa1, 0x67, 0x5f, 0x6c, 0x63, 0xbf,
+ 0xb6, 0xc5, 0xe9, 0x4f, 0xab, 0x93, 0x32, 0xe9, 0xa9, 0xbd, 0xb5, 0x24,
+ 0x17, 0x75, 0xf0, 0x9e, 0x04, 0x4c, 0x3b, 0xa7, 0xf4, 0xf1, 0x5b, 0xb6,
+ 0x1c, 0x56, 0xd1, 0xa9, 0x69, 0xaf, 0x2f, 0xf9, 0x53, 0xa8, 0x5d, 0x4a,
+ 0xf0, 0x23, 0xb8, 0x29, 0x5a, 0x3c, 0x1b, 0xcb, 0xa8, 0x10, 0xd3, 0x53,
+ 0xfa, 0x71, 0x59, 0xae, 0x81, 0x60, 0x66, 0x59, 0xaf, 0x61, 0xa1, 0x3f,
+ 0x24, 0x9d, 0x02, 0x1d, 0x8a, 0xf8, 0x84, 0x5a, 0x56, 0x53, 0x1b, 0xc6,
+ 0xc8, 0xdc, 0x01, 0x0f, 0x0c, 0xd6, 0xf9, 0xa4, 0x81, 0xcc, 0x30, 0x38,
+ 0x5f, 0x91, 0x8a, 0xeb, 0xeb, 0xb9, 0x7a, 0x00, 0x2c, 0xc0, 0x42, 0xd8,
+ 0x58, 0x83, 0x19, 0x2c, 0x3b, 0x81, 0x55, 0xf4, 0x68, 0x23, 0x79, 0xdb,
+ 0x92, 0x8e, 0xf6, 0xa8, 0x70, 0x65, 0x97, 0xf0, 0x4d, 0xce, 0x1e, 0x17,
+ 0xcf, 0x78, 0xe4, 0xcc, 0x1f, 0x7e, 0xa2, 0x18, 0xb7, 0xcb, 0x4b, 0x39,
+ 0x9f, 0x94, 0x50, 0xe7, 0x54, 0x04, 0xd4, 0xf2, 0x4c, 0x3a, 0xf4, 0x06,
+ 0xe6, 0xd3, 0x8a, 0x23, 0x53, 0x7d, 0xc8, 0x68, 0x6f, 0x20, 0x34, 0x7a,
+ 0x2d, 0xfa, 0x02, 0x74, 0x27, 0x22, 0xc2, 0x9d, 0xb0, 0xcb, 0x57, 0x05,
+ 0xa3, 0xac, 0xb3, 0x97, 0x6c, 0x79, 0x70, 0xff, 0xb2, 0x67, 0x56, 0xdb,
+ 0x43, 0x3f, 0x97, 0x0e, 0xa0, 0x35, 0x67, 0x05, 0xd2, 0x17, 0x53, 0x76,
+ 0x3f, 0x3e, 0x47, 0x8b, 0x89, 0x0b, 0x1a, 0xe6, 0x26, 0x73, 0xab, 0x16,
+ 0xc9, 0x04, 0x53, 0x0b, 0x25, 0x3e, 0xe8, 0x56, 0x76, 0x89, 0x2d, 0x5b,
+ 0xa2, 0xd7, 0x77, 0x5e, 0x42, 0x5d, 0x2f, 0x39, 0x97, 0x34, 0xc8, 0x81,
+ 0x30, 0x4e, 0xb0, 0xe5, 0x96, 0xd6, 0x44, 0x2a, 0x96, 0x71, 0xb7, 0xf0,
+ 0xca, 0x3c, 0x52, 0x21, 0xc4, 0x69, 0xa6, 0x3c, 0x7b, 0x26, 0xf5, 0xfb,
+ 0x69, 0xe3, 0xfd, 0x7a, 0x9b, 0xf1, 0x30, 0x34, 0x05, 0xca, 0x27, 0xd2,
+ 0x34, 0x71, 0x5f, 0xd0, 0x19, 0x8c, 0x78, 0x0b, 0xa4, 0xdb, 0x88, 0x6b,
+ 0xc2, 0x33, 0xe2, 0x00, 0x06, 0xbc, 0xbf, 0x51, 0x13, 0xed, 0x8d, 0x9b,
+ 0x03, 0xb8, 0xe7, 0xb0, 0x41, 0xf6, 0xb2, 0x0e, 0xab, 0x7d, 0x5c, 0xdb,
+ 0x63, 0x9a, 0xbd, 0xd5, 0x2b, 0x6e, 0x80, 0x79, 0x9d, 0xc5, 0x11, 0x03,
+ 0xed, 0x3f, 0x74, 0xa8, 0x00, 0xe8, 0xb9, 0x09, 0x45, 0x03, 0x86, 0x33,
+ 0x5d, 0x80, 0x77, 0xd1, 0x25, 0xb0, 0xba, 0xe5, 0xea, 0x0d, 0x37, 0x77,
+ 0xf0, 0x66, 0x2e, 0x61, 0x03, 0xa6, 0xed, 0x97, 0x42, 0xc7, 0x11, 0xec,
+ 0xf3, 0xac, 0x70, 0xb8, 0x56, 0xeb, 0x74, 0xeb, 0xff, 0x33, 0x50, 0x47,
+ 0x6f, 0x20, 0x71, 0x03, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xb1, 0x0e, 0x00, 0x04, 0x10, 0x10, 0x00, 0x1e, 0xe7, 0x40,
+ 0x0e, 0x72, 0x15, 0xfa, 0xa0, 0x77, 0x63, 0x50, 0xd9, 0xd0, 0x83, 0xe1,
+ 0xb2, 0x8e, 0x8c, 0xb0, 0xca, 0x07, 0x15, 0xa3, 0x16, 0xb1, 0xa5, 0xe0,
+ 0x1b, 0xce, 0x62, 0xbc, 0x47, 0x35, 0x0f, 0x6c, 0x88, 0x8a, 0x37, 0x1a,
+ 0xbc, 0xc1, 0x08, 0xca, 0x6d, 0xcc, 0x9f, 0x06, 0x18, 0x96, 0x89, 0xc0,
+ 0xc7, 0x18, 0x6c, 0x1d, 0x32, 0x68, 0x94, 0x70, 0xe4, 0x47, 0xb0, 0x48,
+ 0x7f, 0x40, 0xda, 0x9c, 0x3e, 0xb3, 0xc2, 0xb3, 0x0f, 0xc9, 0x7f, 0xf6,
+ 0xa0, 0x5b, 0x43, 0x2c, 0xcb, 0x84, 0xeb, 0xcf, 0xca, 0x45, 0x17, 0xa0,
+ 0x60, 0x45, 0x79, 0x10, 0x44, 0x4d, 0xff, 0x7a, 0xf3, 0x32, 0x50, 0x3c,
+ 0x3a, 0xa2, 0x17, 0x81, 0x1d, 0xe1, 0xdb, 0xdc, 0xf7, 0xb9, 0xf1, 0x2a,
+ 0x6d, 0x00, 0xa3, 0x73, 0xfa, 0xf9, 0xf5, 0xa9, 0xd7, 0x6e, 0x0f, 0x4e,
+ 0x76, 0x6d, 0x04, 0x8e, 0xf6, 0x7e, 0xec, 0x97, 0x7c, 0x6c, 0x64, 0x1f,
+ 0x14, 0x1a, 0x6e, 0x73, 0xbb, 0x11, 0x9c, 0x59, 0x31, 0x9e, 0x4c, 0xb0,
+ 0x9d, 0xb6, 0xf4, 0xb1, 0x87, 0xc5, 0x15, 0xb9, 0xd7, 0xed, 0xf0, 0xf0,
+ 0x97, 0x5e, 0x8c, 0xde, 0xbd, 0xbf, 0x31, 0x16, 0x9b, 0x14, 0x74, 0xb0,
+ 0x2d, 0xe1, 0xd6, 0x13, 0xc8, 0xd9, 0xe3, 0x47, 0x06, 0x7d, 0xce, 0xbe,
+ 0x2d, 0x07, 0x00, 0xde, 0x41, 0x67, 0x00, 0x08, 0xbb, 0xc6, 0x4c, 0x91,
+ 0xe8, 0xcc, 0xb7, 0x43, 0xbf, 0xf3, 0x60, 0x58, 0xa8, 0x5f, 0xca, 0x0f,
+ 0xd0, 0x16, 0x69, 0x45, 0x53, 0xf8, 0xdf, 0xab, 0x9c, 0x85, 0x43, 0x74,
+ 0x42, 0x04, 0x41, 0xad, 0x52, 0xfe, 0x13, 0x4f, 0xb5, 0x09, 0xa4, 0x93,
+ 0x1b, 0x60, 0x02, 0xcb, 0xf1, 0x56, 0x34, 0xf3, 0xac, 0x28, 0x46, 0x44,
+ 0x4c, 0xee, 0x4c, 0xb4, 0xfc, 0x6f, 0x89, 0xc7, 0xd0, 0x8b, 0x4e, 0xf2,
+ 0xce, 0x96, 0xfa, 0xa6, 0x26, 0x06, 0x60, 0x20, 0x8a, 0xf1, 0xf2, 0x8d,
+ 0x4f, 0xf9, 0x30, 0xb8, 0xaf, 0x43, 0xe8, 0xca, 0xa5, 0x3e, 0xe5, 0xe8,
+ 0xe1, 0x3a, 0x5a, 0x59, 0x8c, 0x3a, 0xc7, 0xda, 0x0a, 0xd1, 0xf1, 0x5e,
+ 0x56, 0xe0, 0x4f, 0x5d, 0xd8, 0xb5, 0x3c, 0x6c, 0xfe, 0xe3, 0xe3, 0x57,
+ 0x39, 0x95, 0x5a, 0xa8, 0xc3, 0x63, 0x7e, 0x62, 0x2a, 0xec, 0xfc, 0x20,
+ 0x65, 0x4b, 0x18, 0x7b, 0x91, 0xfb, 0x55, 0xd1, 0xc5, 0x8f, 0x20, 0x15,
+ 0xba, 0x1c, 0xcc, 0xcf, 0xa7, 0xd5, 0x36, 0x4b, 0x13, 0x85, 0xb1, 0x3e,
+ 0x7e, 0x72, 0x2b, 0xf4, 0x84, 0xef, 0xe8, 0x60, 0xf0, 0xef, 0xe0, 0xc8,
+ 0xe2, 0x00, 0x7f, 0x8f, 0xe5, 0x41, 0xda, 0xdb, 0xe2, 0x76, 0x1b, 0xf3,
+ 0xf1, 0xbc, 0x0a, 0x05, 0xa0, 0xa1, 0xc3, 0x0d, 0xd9, 0x31, 0x7b, 0x86,
+ 0xe9, 0xa0, 0x10, 0x09, 0xa6, 0x1c, 0x8f, 0xa6, 0xc0, 0x64, 0x26, 0xf7,
+ 0xee, 0xed, 0x2e, 0xd1, 0x4a, 0xf7, 0x5c, 0x9c, 0x52, 0x43, 0xed, 0x36,
+ 0x3a, 0x0b, 0xfa, 0xda, 0xf1, 0x81, 0x6d, 0x5a, 0x11, 0xb1, 0x18, 0xab,
+ 0xe4, 0x0d, 0x6f, 0x77, 0x85, 0xc6, 0x04, 0x46, 0xd6, 0x83, 0xb3, 0xee,
+ 0x55, 0xd4, 0x6e, 0x27, 0x77, 0x59, 0xd3, 0x5a, 0x0b, 0x1a, 0xe0, 0x7f,
+ 0xcd, 0xa2, 0xe6, 0xdd, 0x76, 0xee, 0x10, 0xb0, 0x85, 0xa6, 0x24, 0x8c,
+ 0x42, 0xfa, 0x20, 0x1b, 0x80, 0xe9, 0x57, 0x86, 0xc4, 0x78, 0x99, 0x9a,
+ 0xb9, 0xcd, 0x20, 0x32, 0x73, 0x32, 0xfd, 0xef, 0xd8, 0x6c, 0xbe, 0x1d,
+ 0xd4, 0xcd, 0x56, 0x67, 0x4b, 0x8b, 0x5b, 0x17, 0x19, 0x60, 0xf5, 0x32,
+ 0x29, 0x60, 0x05, 0x55, 0xf7, 0x2e, 0x0c, 0xe9, 0xa2, 0xde, 0x56, 0x89,
+ 0xf4, 0x8d, 0x83, 0x76, 0x84, 0x32, 0x35, 0xed, 0xf8, 0xa6, 0x24, 0xd8,
+ 0x74, 0x06, 0xdd, 0xa8, 0xcd, 0xd1, 0xcf, 0x53, 0x2f, 0xd4, 0x64, 0x10,
+ 0x08, 0xa3, 0xf2, 0x85, 0xb5, 0x0d, 0xfb, 0xe7, 0x18, 0x16, 0x63, 0xe2,
+ 0x77, 0xe9, 0x7f, 0xd8, 0x12, 0x45, 0x55, 0x54, 0x8c, 0x05, 0xae, 0xae,
+ 0xa4, 0x9c, 0x88, 0xd1, 0x95, 0x8a, 0x38, 0x80, 0x77, 0xd6, 0xea, 0x49,
+ 0x80, 0x37, 0x59, 0x10, 0x17, 0xa2, 0x87, 0xbf, 0xc3, 0xac, 0x8e, 0xf3,
+ 0xb4, 0x4f, 0x89, 0x52, 0x8a, 0x9b, 0xca, 0x3d, 0xbd, 0x66, 0x82, 0xfb,
+ 0x39, 0x8f, 0x14, 0x51, 0xbd, 0x69, 0x95, 0xfd, 0x41, 0xda, 0x96, 0xde,
+ 0xb9, 0x9a, 0x63, 0xa7, 0xc2, 0x0d, 0x88, 0x34, 0xd1, 0xe6, 0x71, 0xd6,
+ 0xe1, 0x70, 0x28, 0xb8, 0x75, 0xbd, 0xc3, 0xb7, 0x36, 0x7f, 0x10, 0x95,
+ 0x87, 0x95, 0x24, 0x26, 0x2a, 0xb5, 0x52, 0x9e, 0xe4, 0xe6, 0xff, 0xc5,
+ 0x3c, 0xfa, 0x6e, 0x73, 0xfd, 0xfc, 0x14, 0x0d, 0xbd, 0x4f, 0x09, 0x8f,
+ 0x16, 0xbc, 0x67, 0x75, 0x86, 0xa1, 0xfe, 0xa0, 0x2d, 0x81, 0xd2, 0x94,
+ 0xdb, 0x31, 0x2c, 0xdc, 0x97, 0xc8, 0x89, 0xc6, 0xd7, 0x85, 0xb8, 0x1d,
+ 0xd9, 0xf7, 0xc9, 0xa4, 0xac, 0x53, 0x09, 0x61, 0x57, 0x62, 0x4f, 0x56,
+ 0x89, 0x28, 0xd1, 0x34, 0xd6, 0xab, 0x1f, 0x55, 0x64, 0x9b, 0xd6, 0x6c,
+ 0x7c, 0x39, 0x10, 0xd2, 0xb4, 0x52, 0x2e, 0xf6, 0x93, 0x0d, 0xdd, 0xd9,
+ 0x62, 0x41, 0xbe, 0xca, 0x2e, 0x1f, 0x96, 0x5f, 0xbc, 0x91, 0xac, 0x61,
+ 0xb5, 0x2e, 0xbc, 0xe2, 0xc4, 0xab, 0xeb, 0x8b, 0x81, 0xcf, 0xdc, 0x21,
+ 0x54, 0xda, 0x5b, 0x26, 0x41, 0x10, 0x9f, 0x68, 0x0f, 0x49, 0x2e, 0xf4,
+ 0xca, 0xea, 0xa3, 0xe3, 0xfa, 0xd4, 0x58, 0x01, 0x01, 0x1b, 0xb5, 0x08,
+ 0xb2, 0xc5, 0x06, 0x8c, 0x70, 0x91, 0x52, 0x82, 0xd6, 0xe0, 0x7c, 0xa7,
+ 0xa3, 0x06, 0xc3, 0x0c, 0x2c, 0x55, 0xaf, 0x47, 0x11, 0xca, 0x62, 0x68,
+ 0x6a, 0xaa, 0xb6, 0xae, 0xc9, 0xfd, 0xbc, 0x5a, 0xcd, 0x52, 0x25, 0xf8,
+ 0x2b, 0x89, 0x1a, 0xa6, 0x51, 0x71, 0x2b, 0x98, 0x3f, 0x68, 0x8d, 0x34,
+ 0xd3, 0xf2, 0x94, 0xe1, 0x86, 0xec, 0xff, 0xaf, 0xf2, 0x3c, 0x18, 0x96,
+ 0x28, 0x14, 0x0d, 0x88, 0x67, 0xc7, 0x2d, 0x55, 0x9c, 0xc2, 0xbc, 0x91,
+ 0x33, 0x79, 0xa0, 0x41, 0x8a, 0xfc, 0x08, 0x3f, 0x3b, 0xc6, 0x76, 0x2f,
+ 0x18, 0x35, 0x96, 0x09, 0x40, 0xeb, 0x77, 0x5f, 0x0f, 0x5a, 0x6c, 0x0e,
+ 0x34, 0xe9, 0xd3, 0xea, 0xf2, 0xce, 0xc9, 0x0c, 0x8c, 0x34, 0x49, 0xb4,
+ 0x79, 0x80, 0x74, 0x24, 0x5f, 0xb5, 0xdb, 0xb5, 0x14, 0xfc, 0x0d, 0xeb,
+ 0x40, 0xc7, 0x0f, 0x94, 0xbe, 0xb0, 0x00, 0xbe, 0x02, 0x00, 0x00, 0x5e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0f, 0x00, 0x04, 0x10,
+ 0x10, 0x14, 0x62, 0x32, 0x74, 0xb2, 0xde, 0xcb, 0x15, 0xf4, 0xd7, 0x2b,
+ 0x84, 0x66, 0xef, 0x5d, 0xf4, 0xcd, 0xac, 0x2c, 0xf8, 0x10, 0x84, 0xa8,
+ 0x76, 0xc8, 0x5d, 0xb2, 0x72, 0xd0, 0x95, 0xff, 0x35, 0xa8, 0xad, 0x9e,
+ 0x05, 0x60, 0xa7, 0x01, 0x90, 0xa0, 0x9b, 0x53, 0x75, 0x00, 0x3c, 0xac,
+ 0xfc, 0x72, 0x51, 0x69, 0x4b, 0x35, 0x97, 0xa3, 0x06, 0xa3, 0x53, 0xf5,
+ 0xbb, 0xfa, 0x86, 0xc9, 0x2b, 0xf4, 0xe7, 0xd2, 0xb1, 0xfa, 0x69, 0x51,
+ 0x21, 0xe6, 0xb3, 0xbb, 0x6c, 0xdf, 0xa1, 0x3e, 0x15, 0x8a, 0x95, 0x4b,
+ 0x2b, 0x08, 0xae, 0x3f, 0xfd, 0x09, 0xa0, 0x29, 0x87, 0xb7, 0x00, 0x0d,
+ 0x41, 0x57, 0xbe, 0x24, 0x4f, 0x11, 0x69, 0x0f, 0x22, 0xcd, 0x1e, 0xe3,
+ 0x11, 0x56, 0xd6, 0x3d, 0xae, 0x2d, 0xa9, 0xa8, 0x69, 0xa5, 0xbf, 0x5d,
+ 0x32, 0x9e, 0x21, 0xf3, 0x00, 0x37, 0x7a, 0xee, 0x51, 0xe9, 0x7b, 0x31,
+ 0xc0, 0x70, 0x5c, 0xab, 0x7d, 0x6f, 0x16, 0xbd, 0xd7, 0xf1, 0x60, 0x54,
+ 0xdc, 0x13, 0xac, 0xdc, 0xf6, 0x30, 0x27, 0x0a, 0x8b, 0x71, 0x36, 0x32,
+ 0x8f, 0xf0, 0x0d, 0xa4, 0x31, 0xcb, 0xa8, 0x9d, 0xb2, 0x34, 0x41, 0xb6,
+ 0x98, 0x78, 0x19, 0xe1, 0x5c, 0x74, 0x31, 0x86, 0x85, 0x15, 0xa9, 0xc5,
+ 0x7e, 0x24, 0xae, 0xf1, 0x4d, 0x8c, 0x61, 0xbb, 0xb6, 0xfb, 0x9f, 0x04,
+ 0x36, 0xe7, 0x76, 0xd1, 0xd7, 0x03, 0xf4, 0x56, 0x96, 0xd2, 0x1c, 0x1b,
+ 0xd1, 0x12, 0x49, 0xaa, 0xfe, 0x58, 0xff, 0x15, 0x63, 0x26, 0xb5, 0x54,
+ 0x9c, 0xc5, 0x3f, 0x8c, 0x05, 0xb0, 0xea, 0x8a, 0xe2, 0x1e, 0xe5, 0x3f,
+ 0x24, 0xfd, 0x56, 0xb7, 0x35, 0x01, 0xba, 0x35, 0x6b, 0x56, 0xf0, 0x96,
+ 0xe5, 0x14, 0x39, 0x40, 0x9e, 0xe9, 0xcd, 0x9c, 0x7e, 0x81, 0x6c, 0x7f,
+ 0x5d, 0x14, 0x9d, 0xa7, 0x81, 0xc0, 0x2a, 0x14, 0x53, 0xd5, 0x56, 0x44,
+ 0xcd, 0x46, 0xeb, 0x6b, 0x70, 0x32, 0x86, 0x18, 0x52, 0xba, 0x92, 0xbc,
+ 0x1f, 0xd8, 0x3b, 0x0c, 0x20, 0x38, 0x6d, 0xb7, 0xa6, 0x84, 0x89, 0x5c,
+ 0x5d, 0xb3, 0xda, 0xce, 0x69, 0xa9, 0x48, 0x4a, 0xf3, 0x2a, 0x77, 0xf4,
+ 0xd8, 0x36, 0xd5, 0x7c, 0x41, 0xc6, 0xc8, 0xf2, 0x12, 0x6c, 0x66, 0x21,
+ 0x19, 0x2b, 0x23, 0x62, 0xed, 0x54, 0xbe, 0x2c, 0x0d, 0x99, 0x33, 0x31,
+ 0xb6, 0x26, 0x45, 0xb4, 0x06, 0x02, 0x78, 0xe3, 0x36, 0x21, 0x29, 0x31,
+ 0x1f, 0xcd, 0xf4, 0xa5, 0x8a, 0xf8, 0x2a, 0x0f, 0x23, 0xf4, 0x76, 0xa7,
+ 0x15, 0xf4, 0x7b, 0x75, 0x57, 0x2c, 0x2a, 0xda, 0xd9, 0x06, 0x71, 0x46,
+ 0x27, 0x1f, 0xe8, 0x33, 0xaa, 0xfe, 0x45, 0xb2, 0x8c, 0xd6, 0x99, 0x34,
+ 0xa9, 0xb5, 0xdf, 0x4b, 0xd5, 0x16, 0x02, 0x58, 0x33, 0xeb, 0x88, 0xbf,
+ 0x75, 0xf7, 0x7f, 0x57, 0xbb, 0xf2, 0x10, 0x23, 0x14, 0x15, 0xbd, 0x5c,
+ 0xb8, 0x28, 0x13, 0x6c, 0x13, 0xe0, 0xd5, 0xe8, 0x43, 0x3d, 0xe3, 0x34,
+ 0x93, 0xae, 0x16, 0xea, 0x86, 0x59, 0xf2, 0xd4, 0x4c, 0xbf, 0xdd, 0xb4,
+ 0x32, 0xc5, 0x11, 0x66, 0xcc, 0x7c, 0xe3, 0x12, 0x08, 0x97, 0x3a, 0x3a,
+ 0xe3, 0x98, 0x66, 0xb6, 0x24, 0x93, 0xb2, 0x18, 0x77, 0x0c, 0xc6, 0xb5,
+ 0xb2, 0x73, 0xae, 0xb4, 0x03, 0x48, 0x85, 0x40, 0x40, 0x2d, 0x74, 0xb6,
+ 0x64, 0x76, 0xc2, 0x02, 0xfa, 0x3d, 0x60, 0x67, 0x8b, 0xf0, 0xe3, 0xe0,
+ 0x44, 0xeb, 0x99, 0x97, 0xd4, 0xa6, 0x8a, 0x5a, 0xb5, 0xc9, 0x39, 0xb1,
+ 0xf5, 0x77, 0x28, 0xe7, 0xbc, 0x8f, 0x81, 0x9b, 0xed, 0xce, 0x30, 0x00,
+ 0x1e, 0xc3, 0x6c, 0x56, 0x33, 0x74, 0x0f, 0x14, 0x49, 0xdc, 0xb1, 0x56,
+ 0x68, 0xa0, 0x4b, 0xf3, 0x71, 0x24, 0x7e, 0x17, 0x56, 0x3b, 0xd9, 0x8c,
+ 0x3e, 0xa4, 0x84, 0xa0, 0xa8, 0xb4, 0x79, 0x96, 0x9b, 0x8b, 0x38, 0x77,
+ 0x2e, 0x37, 0x4b, 0x92, 0x11, 0xc1, 0xcb, 0x4e, 0x60, 0x67, 0x36, 0x79,
+ 0x98, 0x61, 0xe2, 0x2c, 0xb0, 0xfa, 0x22, 0xcc, 0xd7, 0xd1, 0x35, 0x2a,
+ 0xae, 0x68, 0xe7, 0x5c, 0x7b, 0xd8, 0xe1, 0x43, 0xf2, 0xf6, 0xe2, 0x07,
+ 0xd0, 0x85, 0x16, 0x4c, 0xc1, 0xd3, 0x23, 0x38, 0x84, 0x86, 0xff, 0x9e,
+ 0x1d, 0x60, 0x85, 0xf5, 0x65, 0x6e, 0xde, 0xbe, 0x48, 0xd7, 0xc0, 0xe6,
+ 0xd1, 0x9c, 0x10, 0x93, 0x2a, 0xd7, 0x09, 0xc8, 0x22, 0x07, 0xad, 0x8a,
+ 0x7d, 0xb2, 0xf0, 0x27, 0xd0, 0x83, 0x59, 0xd2, 0xc0, 0x95, 0xad, 0xd9,
+ 0x5c, 0x5d, 0x5e, 0xe4, 0x81, 0xfc, 0xf1, 0xdc, 0xc2, 0xdc, 0x0d, 0x6e,
+ 0x3c, 0x9f, 0x4f, 0x2c, 0x3c, 0x21, 0xb2, 0x69, 0x61, 0x6d, 0xa6, 0xd5,
+ 0x27, 0x3f, 0x2c, 0x69, 0x6c, 0x58, 0xd9, 0xdf, 0xd3, 0xfd, 0xaf, 0xb1,
+ 0x2d, 0x5d, 0x7a, 0x19, 0xa4, 0x75, 0x46, 0x3c, 0x27, 0x86, 0x21, 0x5b,
+ 0xba, 0xf8, 0x79, 0x1e, 0x40, 0x19, 0x77, 0xf1, 0x65, 0xe9, 0x68, 0x50,
+ 0xc5, 0x38, 0x0d, 0xfe, 0x05, 0x90, 0x38, 0x5a, 0xf3, 0x8d, 0x09, 0x21,
+ 0x87, 0xcd, 0xc6, 0x23, 0x19, 0x01, 0x09, 0x97, 0x53, 0x92, 0xf1, 0xee,
+ 0x70, 0xbc, 0x03, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x31, 0x0f, 0x00, 0x03, 0x10, 0x10, 0x00, 0x18, 0xec, 0x37, 0x03,
+ 0x0c, 0x48, 0xc8, 0x08, 0x6c, 0x15, 0xc6, 0xc7, 0xbf, 0xe6, 0x42, 0x95,
+ 0xb6, 0xd0, 0xe4, 0xc1, 0x94, 0xe5, 0x1b, 0x50, 0x5a, 0xde, 0x10, 0xf7,
+ 0x45, 0xeb, 0x9c, 0x88, 0xeb, 0xa0, 0x84, 0xfd, 0xd3, 0xc5, 0xdb, 0x21,
+ 0xda, 0xc6, 0xe4, 0x12, 0x19, 0xcd, 0xb1, 0xd6, 0xba, 0xb0, 0x7d, 0x49,
+ 0x6e, 0x56, 0xe9, 0x0a, 0x59, 0x9d, 0xc1, 0xfe, 0x23, 0x4b, 0x92, 0xe7,
+ 0xf4, 0x1d, 0x6f, 0xb1, 0x9d, 0xf4, 0x2c, 0x12, 0xc9, 0x90, 0x71, 0x93,
+ 0xaf, 0x5b, 0x61, 0x5e, 0x09, 0x99, 0x70, 0x13, 0x0f, 0xa9, 0x7f, 0x00,
+ 0x02, 0xbe, 0x87, 0x73, 0x4f, 0xf9, 0x94, 0x4f, 0xd8, 0x47, 0x81, 0x3a,
+ 0x61, 0x6d, 0xff, 0x95, 0xf0, 0xc7, 0xaa, 0x13, 0x71, 0x6c, 0xf2, 0x07,
+ 0xb7, 0x33, 0xc5, 0xb6, 0xc0, 0x37, 0x7a, 0xed, 0x25, 0xca, 0x9d, 0x25,
+ 0x09, 0x70, 0xe5, 0x1a, 0xf6, 0x48, 0x9f, 0xb1, 0x67, 0x7a, 0x52, 0x13,
+ 0x24, 0x1d, 0x5b, 0x01, 0x6d, 0xa3, 0x55, 0xdc, 0x40, 0x14, 0x5b, 0xf9,
+ 0x85, 0x85, 0x29, 0xb2, 0x11, 0x15, 0xc4, 0x65, 0x0e, 0xe2, 0x36, 0x3b,
+ 0xf8, 0x3f, 0x3f, 0x06, 0x70, 0x82, 0x1e, 0x76, 0x3b, 0x4a, 0x54, 0x51,
+ 0xbb, 0x35, 0x67, 0xc0, 0xf2, 0x78, 0xe5, 0x10, 0x0f, 0x40, 0x6c, 0xe4,
+ 0xa0, 0x21, 0x4c, 0xf4, 0xcb, 0x5e, 0x39, 0x28, 0x82, 0x21, 0xe6, 0xb8,
+ 0x84, 0x80, 0xe4, 0xee, 0x99, 0xef, 0xa0, 0xcf, 0x7b, 0xcd, 0xf6, 0x4d,
+ 0x7a, 0x80, 0xd0, 0xb0, 0x73, 0x5b, 0x3e, 0x7f, 0x28, 0xcb, 0x6b, 0xf9,
+ 0x9c, 0xd2, 0xa7, 0xe6, 0x70, 0xd2, 0xed, 0xc1, 0x7c, 0xcb, 0x02, 0x3c,
+ 0x76, 0x81, 0x6f, 0x4b, 0xa4, 0xbb, 0x6a, 0x22, 0xc6, 0xf2, 0xb4, 0x1d,
+ 0x0d, 0x7d, 0x49, 0x00, 0x23, 0x36, 0xb8, 0xb4, 0xbc, 0x10, 0x0c, 0x58,
+ 0x3b, 0xea, 0x72, 0x26, 0x67, 0x81, 0x2c, 0x23, 0x69, 0x18, 0x42, 0xac,
+ 0x40, 0xee, 0x00, 0xeb, 0xcf, 0xc8, 0x1a, 0x01, 0x93, 0x85, 0x49, 0x3c,
+ 0x7b, 0x4d, 0x8f, 0x5b, 0x92, 0x23, 0x4c, 0x30, 0xea, 0xd4, 0xb8, 0x65,
+ 0x34, 0xaf, 0x49, 0xee, 0xab, 0x92, 0x1f, 0x33, 0xa2, 0x28, 0x61, 0xd6,
+ 0xb6, 0xa6, 0xe9, 0x8b, 0x92, 0xda, 0x90, 0x2f, 0x38, 0x90, 0x19, 0xef,
+ 0x39, 0x9c, 0xa2, 0xb2, 0x1a, 0x8f, 0x65, 0x2b, 0xdc, 0x6a, 0x4e, 0x75,
+ 0x7f, 0xf0, 0x31, 0x37, 0x0c, 0x38, 0xaf, 0x92, 0x6a, 0xe4, 0x94, 0xe1,
+ 0x1f, 0xcd, 0x36, 0x61, 0x08, 0xcc, 0x20, 0xf8, 0xec, 0x9d, 0xb1, 0x3e,
+ 0xd4, 0xf0, 0x48, 0x5a, 0xa1, 0x72, 0xd7, 0x6e, 0x87, 0x09, 0xb1, 0x04,
+ 0xc1, 0x55, 0x2c, 0x10, 0xad, 0x9c, 0xe3, 0x26, 0xf1, 0x2a, 0x53, 0x99,
+ 0xe9, 0x92, 0x66, 0x05, 0x9f, 0x92, 0x0a, 0x0f, 0x4a, 0x10, 0x04, 0x3a,
+ 0x57, 0x4c, 0x48, 0xb3, 0x7d, 0x7b, 0x02, 0x47, 0x93, 0x4f, 0x09, 0x90,
+ 0xa0, 0xc7, 0xac, 0x83, 0x03, 0x28, 0x1a, 0xa6, 0x7f, 0xc6, 0xc9, 0x8b,
+ 0x87, 0x19, 0x9e, 0x18, 0xdb, 0xe1, 0x04, 0x94, 0x23, 0xee, 0xa1, 0x0c,
+ 0x11, 0x32, 0xc8, 0x20, 0xda, 0x6b, 0x83, 0x30, 0xd7, 0x9f, 0x8a, 0x0b,
+ 0xe9, 0x64, 0x88, 0xee, 0xc0, 0x95, 0x7a, 0xb2, 0x76, 0x27, 0x8f, 0x31,
+ 0xf7, 0xed, 0xe5, 0x0d, 0x43, 0xca, 0xea, 0xe6, 0x41, 0x62, 0xc3, 0x2c,
+ 0x39, 0x28, 0x09, 0x16, 0x60, 0x60, 0x87, 0x81, 0x48, 0x0e, 0x59, 0x91,
+ 0x79, 0x0c, 0x34, 0x07, 0x8d, 0xab, 0x5d, 0xfe, 0x8f, 0xf9, 0x85, 0x33,
+ 0x6a, 0xfc, 0x45, 0x50, 0xee, 0x37, 0x7b, 0x73, 0xa9, 0xd1, 0xd0, 0x64,
+ 0x30, 0x25, 0xac, 0xbc, 0xc3, 0x4c, 0x4b, 0x0d, 0xe6, 0x27, 0xdc, 0xa7,
+ 0xad, 0x1f, 0xcb, 0x5e, 0x23, 0x93, 0x16, 0xba, 0xfc, 0x79, 0xea, 0xfb,
+ 0xab, 0x07, 0x79, 0x4e, 0xa4, 0xdb, 0xbe, 0x10, 0x81, 0x7c, 0xa0, 0x38,
+ 0x28, 0xc2, 0xa6, 0x41, 0x69, 0x24, 0x2d, 0xc6, 0x0f, 0x59, 0x54, 0x9b,
+ 0x7c, 0x93, 0x20, 0x0d, 0x72, 0xca, 0x2d, 0x56, 0x81, 0xe0, 0xd3, 0xe6,
+ 0x10, 0x97, 0xef, 0xd5, 0x75, 0x15, 0x3f, 0xe6, 0x75, 0xa8, 0xd1, 0xd9,
+ 0x93, 0x67, 0xa3, 0x4d, 0xfb, 0x38, 0x7e, 0x41, 0xb7, 0x4e, 0xd7, 0xfe,
+ 0x47, 0x2e, 0xf0, 0x01, 0x15, 0xae, 0xe8, 0x8b, 0xe9, 0x88, 0x57, 0x1e,
+ 0xbd, 0x98, 0x3f, 0x6e, 0xe8, 0xdc, 0xc1, 0x9b, 0x05, 0xb0, 0xe0, 0x93,
+ 0xa0, 0x26, 0xa3, 0x0f, 0x7a, 0xc6, 0xaf, 0x8c, 0x29, 0x4e, 0xd6, 0xa5,
+ 0x69, 0xcd, 0xd5, 0xaf, 0x9e, 0x54, 0x75, 0xb0, 0x58, 0xa4, 0x97, 0x94,
+ 0x0b, 0x55, 0x31, 0xeb, 0x02, 0x59, 0x0b, 0x12, 0x43, 0xb6, 0xac, 0x36,
+ 0xea, 0x5c, 0x05, 0x72, 0x61, 0x19, 0xe8, 0xb5, 0x2f, 0x6e, 0x1f, 0xcf,
+ 0x8b, 0x05, 0xd3, 0x5b, 0x95, 0x48, 0xe5, 0x98, 0x69, 0x18, 0x5e, 0x15,
+ 0xb2, 0x58, 0xb4, 0xce, 0x37, 0xc6, 0x4e, 0x9e, 0x6e, 0xfd, 0x53, 0x36,
+ 0xbd, 0x22, 0xb4, 0x49, 0xb7, 0x6f, 0x60, 0x9f, 0x8e, 0x66, 0x47, 0x77,
+ 0x5e, 0x01, 0x1c, 0xd0, 0x93, 0x8e, 0x5b, 0x01, 0x6b, 0xb8, 0x26, 0xc7,
+ 0x1a, 0x2f, 0xae, 0x17, 0xe4, 0x14, 0x1e, 0x9e, 0x8b, 0x3a, 0x70, 0x84,
+ 0xa9, 0xf8, 0x08, 0xa4, 0x30, 0xd8, 0xe2, 0xa8, 0xd1, 0xdb, 0x24, 0x64,
+ 0xe0, 0x1a, 0x1e, 0x9c, 0xc8, 0xae, 0xbd, 0x8f, 0x0b, 0x71, 0x85, 0xc1,
+ 0x6e, 0x38, 0xe9, 0xd4, 0xea, 0x9e, 0x9e, 0x52, 0x3b, 0x7a, 0x51, 0x08,
+ 0xf9, 0x60, 0xd0, 0xc0, 0x31, 0xc9, 0xdb, 0x8a, 0x37, 0x96, 0x2f, 0x63,
+ 0x92, 0x8f, 0x1a, 0x28, 0xc3, 0xd3, 0x71, 0x75, 0x2b, 0xe9, 0xab, 0x23,
+ 0xc7, 0x4b, 0xe0, 0x73, 0x5a, 0xa0, 0xd1, 0x7d, 0x1b, 0x77, 0x09, 0x2b,
+ 0x32, 0xab, 0x94, 0x69, 0x64, 0xd7, 0x1d, 0xf9, 0x0a, 0x84, 0x29, 0x72,
+ 0x1e, 0xbc, 0x7d, 0x12, 0xbf, 0xfb, 0x0c, 0x65, 0x3f, 0xa0, 0xe5, 0xf2,
+ 0x0b, 0x92, 0xb0, 0x0d, 0x2f, 0xc0, 0xd7, 0x2d, 0x65, 0x85, 0x9b, 0xf0,
+ 0xa8, 0xb5, 0x62, 0x9e, 0x65, 0x06, 0x78, 0xdb, 0xb9, 0xfa, 0xe3, 0xf6,
+ 0x59, 0xbe, 0x5e, 0xa9, 0x3a, 0xac, 0x0e, 0xba, 0x49, 0x79, 0xa1, 0xdb,
+ 0x5b, 0x0b, 0x19, 0x0e, 0xc5, 0xee, 0xed, 0x5b, 0xbb, 0xdb, 0x6c, 0x8c,
+ 0x5e, 0xfb, 0x57, 0x53, 0x0c, 0x05, 0xee, 0x9a, 0x89, 0x82, 0xd3, 0x12,
+ 0x8b, 0xae, 0xb6, 0xe5, 0xbd, 0xf3, 0x5a, 0xb0, 0x09, 0x8b, 0x6e, 0x57,
+ 0x37, 0xb1, 0xad, 0xc4, 0xee, 0x97, 0x18, 0x66, 0xf1, 0x2b, 0xfe, 0x12,
+ 0x5a, 0x7f, 0xb8, 0x33, 0xc1, 0x67, 0x00, 0x10, 0x55, 0x0e, 0xc3, 0x7e,
+ 0x38, 0xbe, 0xd5, 0x59, 0x1a, 0xe9, 0x1d, 0x80, 0x88, 0x5b, 0xeb, 0x4e,
+ 0xdd, 0x81, 0x2b, 0x43, 0x79, 0x81, 0x86, 0xcd, 0xfa, 0x91, 0xa2, 0x51,
+ 0x4e, 0x55, 0x7c, 0x5a, 0xed, 0x60, 0x7b, 0x12, 0x46, 0x91, 0xdd, 0xa5,
+ 0x83, 0x12, 0x9b, 0xae, 0xbc, 0x81, 0x41, 0x32, 0x00, 0x2a, 0x03, 0x00,
+ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x10, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0x3a, 0x4f, 0x23, 0x41, 0xfa, 0x4c,
+ 0x6e, 0xe3, 0x50, 0x1f, 0x68, 0xf0, 0x23, 0xf7, 0xac, 0x1a, 0xe2, 0xb4,
+ 0xe2, 0x2e, 0x03, 0xf7, 0x61, 0x87, 0x13, 0x8a, 0xca, 0x77, 0x43, 0x12,
+ 0x1d, 0x7c, 0x5c, 0x24, 0x25, 0x04, 0x27, 0x6b, 0x23, 0x80, 0xbf, 0xa5,
+ 0x8a, 0x18, 0x6f, 0xa0, 0x4e, 0x53, 0x2e, 0x94, 0xce, 0x1d, 0xaa, 0x3c,
+ 0xa2, 0x75, 0x19, 0x00, 0xe2, 0xcf, 0x84, 0x0d, 0xe8, 0xb6, 0x0c, 0xc9,
+ 0x4e, 0x18, 0x1c, 0x1a, 0x88, 0xe3, 0x2e, 0x04, 0x00, 0x6f, 0xa4, 0x51,
+ 0x47, 0xc6, 0x11, 0xae, 0xe8, 0xd7, 0x5a, 0x60, 0xb1, 0xe0, 0x46, 0x6e,
+ 0x75, 0xdd, 0xf7, 0x1e, 0x26, 0x68, 0x09, 0x56, 0xc6, 0xde, 0x8b, 0xc7,
+ 0xa8, 0x5d, 0x5e, 0x4b, 0xfc, 0x40, 0xa2, 0xb5, 0xd5, 0xa1, 0x58, 0x56,
+ 0x8a, 0x8b, 0x0a, 0xc2, 0x65, 0xcb, 0x91, 0x72, 0x90, 0x6a, 0x80, 0x37,
+ 0x7a, 0xed, 0xf9, 0xcd, 0xa7, 0x0c, 0xd1, 0x19, 0x2a, 0x1e, 0xef, 0x86,
+ 0x8c, 0x1f, 0x9a, 0xcb, 0x2c, 0xfa, 0x38, 0xe8, 0xc5, 0xb1, 0xd2, 0xbe,
+ 0x09, 0xbc, 0xad, 0xbc, 0x05, 0x4f, 0x47, 0xc0, 0xaf, 0xb5, 0x7f, 0xfd,
+ 0x93, 0x4f, 0xbf, 0xbc, 0x1a, 0xde, 0x5f, 0xb3, 0x7e, 0x14, 0x7c, 0xb3,
+ 0x39, 0xeb, 0x7d, 0x3a, 0xf1, 0x9f, 0x29, 0xb3, 0xa1, 0xbd, 0xda, 0xc0,
+ 0x07, 0x27, 0x6e, 0xeb, 0xb3, 0x8a, 0xf9, 0xd4, 0x1a, 0x7f, 0x36, 0xe5,
+ 0x36, 0xfb, 0xeb, 0x08, 0xd3, 0xe1, 0xd4, 0xd2, 0x4c, 0x18, 0x6f, 0x09,
+ 0x78, 0x2d, 0x57, 0x45, 0x40, 0xda, 0xba, 0x48, 0x8c, 0x78, 0xbe, 0x94,
+ 0xbd, 0xef, 0x96, 0x44, 0x02, 0x5f, 0xcb, 0xc2, 0xa5, 0x32, 0xce, 0x92,
+ 0x80, 0x16, 0x8d, 0x25, 0xf8, 0xa2, 0x3d, 0xae, 0xc2, 0x27, 0x7e, 0x0c,
+ 0xf7, 0x1b, 0xd0, 0x76, 0xe2, 0x7f, 0x30, 0x32, 0x11, 0xa1, 0x78, 0x2d,
+ 0x4f, 0xc8, 0x7e, 0xfa, 0x99, 0xd4, 0x06, 0xea, 0x90, 0x12, 0x09, 0x93,
+ 0xa5, 0x6a, 0xd8, 0x8d, 0xbb, 0xe9, 0xea, 0x66, 0x38, 0x1c, 0x43, 0xe7,
+ 0x67, 0x90, 0x4c, 0x66, 0x22, 0x8e, 0x61, 0xbb, 0x6b, 0xd1, 0x7f, 0x7a,
+ 0x4d, 0x33, 0x1b, 0x8f, 0x34, 0x55, 0x79, 0xa1, 0xb2, 0xb5, 0x1a, 0x14,
+ 0xdc, 0x89, 0x0e, 0xca, 0xe0, 0x8f, 0x6d, 0x5a, 0x5f, 0x14, 0x79, 0xe9,
+ 0x51, 0xe0, 0xf0, 0xd3, 0x2c, 0xfd, 0xe2, 0x71, 0x7f, 0x7d, 0x60, 0xe0,
+ 0x22, 0x1d, 0x25, 0x0a, 0x60, 0x96, 0x09, 0xac, 0x9b, 0x99, 0xb2, 0xbe,
+ 0x22, 0xb9, 0x17, 0xbb, 0x38, 0x15, 0xdf, 0x26, 0x0e, 0xa0, 0xcd, 0x8a,
+ 0xdc, 0x91, 0x7d, 0xea, 0x6b, 0xbf, 0xe9, 0x69, 0x2a, 0xb5, 0x43, 0x88,
+ 0xa7, 0x41, 0x77, 0xb5, 0x93, 0xba, 0xb2, 0x6b, 0x2c, 0x13, 0x99, 0x37,
+ 0x14, 0xe3, 0x29, 0xc0, 0x8e, 0x1c, 0x00, 0x4d, 0x90, 0x77, 0xfe, 0x1d,
+ 0x48, 0x14, 0xc1, 0x2b, 0x99, 0x27, 0x43, 0x03, 0x93, 0x8f, 0x24, 0xef,
+ 0x2f, 0x31, 0x70, 0x60, 0x95, 0x48, 0x53, 0xc7, 0x20, 0x10, 0x7f, 0x36,
+ 0x26, 0x52, 0xfc, 0x94, 0xd3, 0x6d, 0x37, 0x3a, 0x9c, 0x6a, 0xc9, 0x2e,
+ 0x9c, 0xb8, 0x09, 0xeb, 0xbc, 0xa1, 0xd3, 0xd4, 0x1a, 0x0b, 0xaa, 0x34,
+ 0xbc, 0x40, 0xb9, 0xee, 0xa8, 0x26, 0x96, 0x14, 0xa2, 0x1e, 0x52, 0x75,
+ 0xac, 0x4e, 0xcf, 0x29, 0xfe, 0xde, 0x61, 0x28, 0xf1, 0x1b, 0x75, 0xd0,
+ 0x25, 0x4e, 0x62, 0x1a, 0xc7, 0xa5, 0x59, 0xd2, 0x30, 0x9e, 0xf0, 0x4d,
+ 0xf1, 0x56, 0x49, 0x9b, 0xec, 0xde, 0x49, 0x11, 0x0f, 0xe8, 0xaa, 0x89,
+ 0xfe, 0x37, 0x94, 0x0d, 0xe8, 0x01, 0xc2, 0xbe, 0x88, 0x12, 0x97, 0x37,
+ 0x59, 0xf8, 0x7f, 0x47, 0x12, 0x38, 0x2f, 0x44, 0xe1, 0xa6, 0xa5, 0x58,
+ 0x10, 0x50, 0x55, 0x6f, 0xd6, 0x04, 0x00, 0x16, 0x31, 0x67, 0x4a, 0x2c,
+ 0x0e, 0xe1, 0x8c, 0xfc, 0x99, 0xee, 0xeb, 0x57, 0xdb, 0xd0, 0xf2, 0x91,
+ 0xea, 0xb1, 0x7b, 0x9f, 0x7f, 0xf0, 0xec, 0xbe, 0x94, 0x13, 0xd0, 0xfc,
+ 0x4e, 0x65, 0x06, 0x10, 0xbd, 0xdf, 0xcb, 0x63, 0xaa, 0x25, 0xf9, 0xab,
+ 0x10, 0x1d, 0x65, 0xd9, 0x22, 0xd8, 0x93, 0xc5, 0x55, 0xc4, 0x67, 0x21,
+ 0x8a, 0x30, 0x05, 0x8f, 0x08, 0x8a, 0x4a, 0x70, 0xae, 0xfb, 0xf7, 0x4d,
+ 0x80, 0xc7, 0xb9, 0xf4, 0x98, 0xf4, 0x70, 0x27, 0x72, 0xfb, 0x5a, 0xe0,
+ 0x1e, 0x88, 0xf8, 0x6b, 0x86, 0xf1, 0xca, 0x7e, 0xea, 0xf5, 0x0f, 0x0d,
+ 0x95, 0x45, 0xee, 0x44, 0x64, 0xee, 0x52, 0xa0, 0x00, 0x7d, 0xa8, 0x03,
+ 0xcc, 0x20, 0xde, 0x0f, 0x3c, 0x92, 0xbd, 0x9f, 0x31, 0x95, 0x69, 0x1d,
+ 0x98, 0xc1, 0xda, 0x18, 0xf3, 0x9f, 0x30, 0xd0, 0x68, 0xae, 0x50, 0x8d,
+ 0x6c, 0xf5, 0x69, 0xb0, 0xe3, 0x1b, 0x63, 0x00, 0x5d, 0xb9, 0x01, 0x87,
+ 0x7f, 0xee, 0xac, 0x1e, 0x0b, 0x99, 0xf0, 0x43, 0xf3, 0xb1, 0x9b, 0x8c,
+ 0x34, 0xd9, 0x5b, 0x13, 0x7e, 0x5b, 0x7a, 0xda, 0xef, 0x7b, 0x7b, 0x30,
+ 0x32, 0xe9, 0xff, 0x65, 0xb8, 0x3f, 0x4b, 0x92, 0xb6, 0x7c, 0xc1, 0xcf,
+ 0x4f, 0xd1, 0x25, 0x35, 0x4b, 0x73, 0x42, 0xb4, 0x64, 0x02, 0x38, 0x58,
+ 0x46, 0xbe, 0x3b, 0xe4, 0x4e, 0xec, 0x24, 0x94, 0xf7, 0x73, 0xca, 0x88,
+ 0xa9, 0x59, 0x66, 0x5f, 0xbc, 0xae, 0xb6, 0xf0, 0xc5, 0x85, 0x1e, 0x3a,
+ 0xd0, 0x8d, 0x02, 0x4b, 0x84, 0x3e, 0x11, 0x6b, 0xd1, 0x93, 0x59, 0xa7,
+ 0xfb, 0x12, 0xac, 0x50, 0x23, 0x35, 0xda, 0x06, 0x58, 0x32, 0xc9, 0x5b,
+ 0x72, 0xde, 0xfd, 0x45, 0x3f, 0x0b, 0xf0, 0xbd, 0x28, 0x43, 0xf3, 0x1f,
+ 0x06, 0x83, 0x98, 0x18, 0x85, 0x6e, 0xeb, 0xe0, 0x05, 0xa8, 0x95, 0xc2,
+ 0xae, 0x4f, 0x4d, 0x60, 0x25, 0x31, 0xd8, 0xde, 0x69, 0xac, 0x70, 0xf1,
+ 0xc8, 0x92, 0x36, 0x62, 0xed, 0x2c, 0x18, 0x94, 0xdd, 0x75, 0xe4, 0x0a,
+ 0x09, 0x90, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00,
+ 0x1f, 0xd8, 0xbf, 0xe7, 0xe9, 0x02, 0xff, 0xb0, 0x15, 0xa3, 0xc7, 0x3c,
+ 0xe4, 0x8e, 0x43, 0x9b, 0xbf, 0xbe, 0xae, 0xa3, 0x6b, 0xfb, 0x46, 0x09,
+ 0x18, 0x80, 0x21, 0x5c, 0x96, 0x87, 0x3c, 0xf1, 0x47, 0xc1, 0x84, 0x7c,
+ 0x36, 0xa8, 0xc0, 0x8a, 0x5b, 0x79, 0x02, 0x27, 0xde, 0x61, 0x81, 0xed,
+ 0x28, 0xda, 0xdb, 0x85, 0xf3, 0xc0, 0x09, 0xe6, 0x6c, 0x2a, 0x7a, 0xac,
+ 0x13, 0xd7, 0x25, 0xc4, 0x18, 0xeb, 0x8b, 0x3a, 0x85, 0xb3, 0x67, 0xac,
+ 0x80, 0x59, 0xc4, 0xe5, 0x0c, 0x00, 0x51, 0xdf, 0xaa, 0x7a, 0xb5, 0x52,
+ 0xcf, 0xaa, 0xd3, 0xf0, 0xeb, 0x94, 0xc3, 0x51, 0x69, 0x62, 0xf1, 0x05,
+ 0xbf, 0x34, 0x3b, 0x10, 0xce, 0x0a, 0x0c, 0x72, 0x40, 0xed, 0x1e, 0x16,
+ 0xcd, 0xe8, 0xbb, 0xe0, 0x37, 0x7a, 0xed, 0x25, 0xcd, 0xa7, 0x0c, 0xd1,
+ 0x19, 0x2a, 0x1e, 0xef, 0x86, 0x91, 0x00, 0xad, 0xa7, 0x0b, 0x4c, 0x5b,
+ 0x47, 0x1a, 0x8d, 0x56, 0x1c, 0x26, 0x46, 0x0a, 0x37, 0x98, 0xfc, 0x4e,
+ 0x41, 0x40, 0xe6, 0x87, 0x91, 0x1b, 0xa6, 0x96, 0xbc, 0xb5, 0xfb, 0x1e,
+ 0xef, 0xdd, 0xc0, 0xfd, 0x20, 0x7e, 0x1f, 0xf7, 0xb1, 0x3c, 0x3c, 0x39,
+ 0x3b, 0x77, 0x56, 0xca, 0x78, 0x19, 0x4b, 0x9c, 0x2d, 0x68, 0x78, 0xf7,
+ 0xed, 0xf7, 0x09, 0xfa, 0x36, 0x40, 0xbc, 0x35, 0x38, 0xb7, 0x51, 0x21,
+ 0xfc, 0xa9, 0x22, 0x65, 0x43, 0xbf, 0x28, 0x16, 0xd2, 0x7a, 0x55, 0x8c,
+ 0xf0, 0xeb, 0xad, 0x2b, 0xd2, 0xcd, 0x7f, 0xef, 0x9f, 0xcc, 0x8f, 0x24,
+ 0x2a, 0xe6, 0xda, 0x83, 0x82, 0x02, 0x5b, 0x5d, 0x2f, 0x75, 0xad, 0xb9,
+ 0xaf, 0xaa, 0xcc, 0xb8, 0x56, 0x39, 0x9c, 0x9e, 0x1c, 0x8d, 0x59, 0x73,
+ 0x8e, 0xe7, 0x3d, 0xe1, 0x03, 0x4c, 0x0b, 0x81, 0x05, 0xe8, 0x59, 0xb2,
+ 0x9b, 0xca, 0xa7, 0xd6, 0x44, 0x7b, 0x2f, 0x26, 0x6b, 0xfd, 0x32, 0x67,
+ 0x0f, 0xf2, 0xe6, 0xd9, 0xa1, 0x4c, 0x75, 0xbf, 0x0a, 0x3a, 0x99, 0xc2,
+ 0xa3, 0xc7, 0xb8, 0x4d, 0x22, 0x0d, 0x8a, 0x17, 0xdd, 0x78, 0x34, 0x34,
+ 0x8f, 0xad, 0x22, 0x2e, 0x29, 0xc6, 0xb2, 0x37, 0x4f, 0x43, 0x35, 0x74,
+ 0xc7, 0x75, 0x48, 0x26, 0x53, 0xc7, 0xcf, 0x4c, 0x47, 0x0e, 0x28, 0x22,
+ 0x7a, 0x86, 0x0d, 0x53, 0x46, 0x34, 0xfa, 0x1d, 0x43, 0xe6, 0x1c, 0x72,
+ 0x4f, 0xef, 0xf0, 0x7a, 0x5f, 0xb4, 0x8d, 0xec, 0x55, 0x15, 0x04, 0x2d,
+ 0x8e, 0xf5, 0x5e, 0x11, 0xdc, 0xb1, 0x68, 0xa0, 0xdc, 0x37, 0x1f, 0x50,
+ 0x2c, 0x42, 0xd9, 0x11, 0xae, 0x1a, 0x80, 0xc3, 0xb6, 0x66, 0x13, 0x1e,
+ 0xed, 0x9d, 0xe0, 0x9a, 0x41, 0x02, 0x3d, 0xf2, 0x18, 0x49, 0xff, 0x9e,
+ 0x6a, 0x96, 0x3e, 0x09, 0x11, 0x2e, 0xc4, 0x07, 0x85, 0x4d, 0xfc, 0xca,
+ 0x66, 0x57, 0x5a, 0x0b, 0x67, 0x91, 0xfa, 0x58, 0x76, 0xa3, 0x92, 0x49,
+ 0x5a, 0x36, 0xaa, 0x23, 0x50, 0x1e, 0xc8, 0xe4, 0x39, 0xaa, 0x76, 0xcd,
+ 0x75, 0x38, 0x15, 0x77, 0x3b, 0x0a, 0x83, 0x6e, 0xd1, 0x3b, 0xb7, 0x3c,
+ 0x53, 0x62, 0x38, 0x42, 0x33, 0x6f, 0xab, 0x84, 0x12, 0x15, 0xaa, 0xdb,
+ 0xa4, 0xf3, 0x7e, 0xce, 0x5c, 0x9c, 0x9c, 0x1f, 0x2f, 0x6b, 0xfb, 0x97,
+ 0x6e, 0x75, 0x23, 0xcb, 0x61, 0x5d, 0xda, 0xf7, 0xf8, 0x5d, 0xb4, 0xe8,
+ 0x94, 0x7d, 0xe4, 0xc1, 0xef, 0x91, 0x87, 0x39, 0x5b, 0xdc, 0x4c, 0xdf,
+ 0xa0, 0xd9, 0x88, 0x5f, 0xd5, 0xe3, 0xc3, 0xd6, 0xbd, 0xac, 0xc7, 0x01,
+ 0x5e, 0x41, 0x49, 0x96, 0xef, 0x88, 0xae, 0x66, 0xba, 0xd9, 0x41, 0x54,
+ 0x31, 0xd0, 0x99, 0x9d, 0xfe, 0x91, 0x4e, 0x5a, 0x73, 0x2b, 0x42, 0xd7,
+ 0x55, 0x8f, 0x86, 0xee, 0xa4, 0x07, 0x48, 0xa6, 0x6f, 0x71, 0x0c, 0x2b,
+ 0x7c, 0x53, 0x22, 0x9c, 0x3c, 0x9d, 0xd6, 0x69, 0x98, 0xc8, 0xaa, 0x11,
+ 0x98, 0x64, 0xb3, 0xb6, 0xfc, 0x73, 0xf0, 0x52, 0x64, 0xcf, 0xac, 0x53,
+ 0x9f, 0xed, 0x04, 0x68, 0xc7, 0x4b, 0x27, 0x68, 0xd7, 0xd1, 0xd8, 0xa5,
+ 0xf2, 0x05, 0xf5, 0xa1, 0xda, 0x0e, 0x9f, 0xc2, 0x70, 0x30, 0x7f, 0x1a,
+ 0x2b, 0xa8, 0xa9, 0xed, 0x1b, 0xec, 0x6b, 0xc5, 0xb3, 0xb8, 0x2a, 0x2e,
+ 0x8b, 0x52, 0x22, 0x2b, 0x14, 0x19, 0xbb, 0x59, 0x98, 0x10, 0xa6, 0x51,
+ 0x78, 0x2b, 0x19, 0xc9, 0xc7, 0xb5, 0xb7, 0x6c, 0xde, 0xf1, 0xc2, 0x4f,
+ 0x0d, 0x0e, 0xb0, 0xe4, 0x85, 0x50, 0x0e, 0x37, 0xe6, 0xc5, 0xe1, 0x6f,
+ 0x3d, 0xd1, 0xfc, 0x0e, 0x1f, 0xe2, 0xcc, 0x34, 0x53, 0xb8, 0x6f, 0x3f,
+ 0x50, 0xdb, 0xac, 0x5e, 0xe4, 0x9a, 0x69, 0xa4, 0x29, 0xd8, 0x35, 0xb6,
+ 0xb4, 0x18, 0x61, 0xe6, 0x2f, 0x3a, 0x4b, 0x96, 0xbc, 0x4f, 0xdf, 0xb4,
+ 0xc6, 0xfa, 0xe0, 0x7e, 0x01, 0xd1, 0x55, 0xb5, 0xb1, 0xdc, 0xa0, 0x68,
+ 0x71, 0x01, 0x34, 0x36, 0xf4, 0x0c, 0xd3, 0x21, 0xc1, 0xfa, 0x44, 0x48,
+ 0xf6, 0x04, 0xd4, 0x06, 0x8f, 0xe1, 0x61, 0xcc, 0x3b, 0x74, 0x69, 0x47,
+ 0xb8, 0x64, 0x46, 0x3d, 0xfc, 0xe1, 0x34, 0x16, 0x6e, 0xf3, 0x69, 0xa7,
+ 0x0f, 0x25, 0xb0, 0x62, 0xd2, 0x4d, 0xaa, 0x57, 0xcf, 0x21, 0x52, 0xbd,
+ 0xfa, 0x8a, 0x7e, 0x17, 0x95, 0x77, 0xae, 0x71, 0x6c, 0x63, 0xc7, 0xb0,
+ 0x25, 0x68, 0x6f, 0x30, 0x23, 0xdb, 0x4d, 0x60, 0x25, 0x31, 0xd8, 0xde,
+ 0x69, 0xac, 0x70, 0xf1, 0xc8, 0x92, 0x34, 0x8e, 0xed, 0x2c, 0x18, 0x98,
+ 0x2d, 0x75, 0xe4, 0x0a, 0x09, 0x90, 0x00, 0x16, 0x03, 0x00, 0x00, 0x62,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0f, 0x00, 0x01, 0x10,
+ 0x10, 0x00, 0x18, 0x2c, 0x3f, 0xbb, 0x8f, 0x33, 0x1b, 0xe3, 0x80, 0xb5,
+ 0xce, 0x22, 0x97, 0x65, 0xd4, 0xe6, 0x63, 0x5c, 0x19, 0x9f, 0x9f, 0x2c,
+ 0xa9, 0xea, 0x3c, 0x12, 0xd2, 0x88, 0x81, 0x04, 0x76, 0x72, 0x7d, 0x3c,
+ 0xa3, 0x19, 0x09, 0xcd, 0xdb, 0x8f, 0xab, 0x2e, 0x0b, 0xec, 0x79, 0x7c,
+ 0x69, 0xcf, 0xb4, 0x43, 0x99, 0x88, 0x06, 0xca, 0xf7, 0x33, 0x26, 0xa5,
+ 0x9b, 0xec, 0x8f, 0xf1, 0xbf, 0x02, 0xa9, 0xc6, 0xbf, 0xe5, 0x36, 0x2b,
+ 0x83, 0x46, 0x8b, 0x15, 0x09, 0x19, 0x12, 0x1a, 0xf5, 0x96, 0xf4, 0x00,
+ 0x04, 0xcd, 0x4d, 0x29, 0x4c, 0xdb, 0x7e, 0x31, 0x76, 0xe5, 0x6b, 0xcf,
+ 0x01, 0xc0, 0x47, 0xcd, 0x33, 0xbe, 0x1b, 0x2e, 0x57, 0x07, 0x52, 0x95,
+ 0xee, 0x00, 0x21, 0x00, 0xae, 0xf1, 0x9a, 0x3f, 0xf1, 0x12, 0x4c, 0x58,
+ 0x7a, 0xa4, 0x38, 0x37, 0x7a, 0xed, 0xfb, 0x28, 0xcd, 0x85, 0xd1, 0xd4,
+ 0xdc, 0xa3, 0x41, 0x0f, 0x3b, 0x2b, 0xd6, 0x04, 0x4c, 0x7c, 0xfc, 0x38,
+ 0x07, 0x72, 0x88, 0xde, 0x09, 0xdb, 0x62, 0xec, 0x54, 0x8a, 0x37, 0x97,
+ 0x63, 0x4e, 0x03, 0xb7, 0xa8, 0x16, 0x56, 0xbe, 0x31, 0xf4, 0xb1, 0xbb,
+ 0xab, 0xc6, 0x60, 0x03, 0xfd, 0xf1, 0x8b, 0x23, 0xe2, 0x99, 0x6e, 0x7d,
+ 0x81, 0x03, 0xbf, 0xc1, 0x45, 0xe3, 0x08, 0xea, 0x5e, 0x64, 0x15, 0x8c,
+ 0x81, 0x34, 0x86, 0xae, 0x6b, 0x50, 0x8b, 0x7e, 0x99, 0x1e, 0x69, 0x6b,
+ 0x29, 0x40, 0x7e, 0x81, 0xf9, 0x65, 0xe2, 0x7c, 0x0c, 0x37, 0x14, 0x8b,
+ 0xef, 0xba, 0x5f, 0x4e, 0xad, 0xad, 0xd7, 0xd2, 0x10, 0x13, 0xf3, 0xda,
+ 0x47, 0xbc, 0x4f, 0x75, 0x25, 0x4d, 0xee, 0xa3, 0x86, 0x08, 0x12, 0xb4,
+ 0xaa, 0xf6, 0x8f, 0x14, 0xd7, 0x04, 0xb5, 0x83, 0x87, 0x76, 0x6c, 0x7b,
+ 0x19, 0x52, 0x73, 0x6a, 0x73, 0xef, 0xb8, 0xc4, 0x0c, 0xab, 0xa5, 0xd2,
+ 0xea, 0xaf, 0x1b, 0xc3, 0x71, 0xa3, 0x42, 0xd7, 0xe5, 0x6c, 0x4c, 0xdd,
+ 0xb6, 0x0a, 0x63, 0x3c, 0xf6, 0x6c, 0xf0, 0xb9, 0x39, 0x5b, 0xd3, 0xdd,
+ 0xd8, 0x2b, 0xf8, 0xfd, 0x3b, 0x61, 0xf4, 0x80, 0xf6, 0xeb, 0x9b, 0xc0,
+ 0x10, 0xd3, 0x94, 0xd3, 0x26, 0x57, 0x86, 0xf4, 0x3d, 0xdc, 0xa7, 0x73,
+ 0x66, 0x4f, 0x82, 0xdc, 0xc6, 0x2f, 0xf5, 0x85, 0xa7, 0xcd, 0x61, 0x94,
+ 0x58, 0xd6, 0x12, 0x9b, 0x7c, 0xb7, 0x38, 0xfb, 0xbf, 0x5c, 0xc3, 0x07,
+ 0x5b, 0xc2, 0xef, 0x2b, 0x59, 0x45, 0x59, 0x53, 0xd3, 0xb1, 0xf6, 0x82,
+ 0x95, 0xbf, 0xbb, 0x01, 0x19, 0x4c, 0xda, 0x7a, 0x2a, 0xe1, 0x1d, 0x80,
+ 0xf3, 0xd3, 0xb0, 0x0b, 0x0b, 0x4e, 0x4e, 0x39, 0x7a, 0xd2, 0xc8, 0x12,
+ 0xe3, 0xb3, 0x4c, 0x6a, 0x4f, 0xbc, 0x19, 0x83, 0x60, 0x99, 0x9f, 0x4a,
+ 0x52, 0x83, 0x27, 0x80, 0xdd, 0x40, 0x78, 0x4a, 0xf7, 0x68, 0x24, 0x38,
+ 0x2e, 0x91, 0x91, 0xae, 0x91, 0x5e, 0x22, 0x57, 0x9a, 0xd0, 0x8c, 0x8b,
+ 0x2d, 0x55, 0x17, 0x63, 0x56, 0x3b, 0x13, 0x34, 0x95, 0x5f, 0x5b, 0xb6,
+ 0x6d, 0x2b, 0xce, 0x41, 0x5f, 0xac, 0x10, 0x2c, 0x1d, 0x0e, 0xb0, 0xe6,
+ 0x22, 0x3f, 0x60, 0x49, 0x4d, 0x45, 0xcd, 0x9d, 0x54, 0xdd, 0x0d, 0x21,
+ 0xce, 0x2b, 0xf8, 0xf5, 0xd4, 0x2a, 0x64, 0x18, 0x9c, 0xc3, 0x78, 0x58,
+ 0xbe, 0x40, 0x63, 0x1d, 0x54, 0xc8, 0x8d, 0x3f, 0xa3, 0xe2, 0xec, 0xdf,
+ 0x39, 0x62, 0x72, 0x07, 0xd6, 0xac, 0x27, 0x08, 0xaf, 0x55, 0x21, 0x1e,
+ 0x7e, 0x7b, 0x82, 0xe5, 0xe8, 0xae, 0x01, 0x06, 0x67, 0x97, 0xdc, 0x83,
+ 0x1e, 0xdf, 0x80, 0xc4, 0xb2, 0xed, 0xa6, 0xa6, 0xf4, 0xfb, 0x99, 0xbc,
+ 0xea, 0x18, 0x04, 0x78, 0x6d, 0xec, 0x99, 0x9c, 0xa3, 0x91, 0x9c, 0xde,
+ 0x7c, 0x0e, 0x41, 0xf8, 0x67, 0xcd, 0x05, 0xae, 0xd8, 0x85, 0x48, 0x58,
+ 0x5d, 0x20, 0x0b, 0x14, 0x14, 0xcd, 0x13, 0xae, 0x41, 0x8a, 0x88, 0xaa,
+ 0x57, 0x01, 0xc0, 0x07, 0x61, 0xba, 0x1a, 0x90, 0xcb, 0x9b, 0x7a, 0x49,
+ 0x13, 0xa6, 0x99, 0x36, 0xed, 0xa2, 0x58, 0x4f, 0x9b, 0xd2, 0x62, 0xec,
+ 0x5d, 0x28, 0x01, 0x6b, 0x7d, 0x6f, 0xdc, 0x9e, 0x52, 0x4c, 0xb4, 0x77,
+ 0xac, 0x10, 0x1e, 0x4e, 0xc2, 0xaf, 0xf6, 0x25, 0xbd, 0xf6, 0xf8, 0x4d,
+ 0xa2, 0x8c, 0xc0, 0xdf, 0x03, 0x23, 0x34, 0x5c, 0x5c, 0x66, 0x66, 0x57,
+ 0xa8, 0x01, 0x0f, 0x11, 0x7e, 0xb4, 0x85, 0x8d, 0xd9, 0x65, 0x13, 0xb8,
+ 0xb0, 0x11, 0x3a, 0xc7, 0x28, 0xeb, 0xc1, 0x79, 0x60, 0xa0, 0x06, 0x39,
+ 0xbd, 0x66, 0xa7, 0xc4, 0x70, 0x1f, 0x1d, 0x45, 0xfe, 0x1d, 0x3a, 0x61,
+ 0x7c, 0xb1, 0xd6, 0x84, 0xcc, 0x68, 0xa2, 0xd7, 0x4b, 0xfd, 0x14, 0xa9,
+ 0x03, 0xfe, 0xb6, 0x7b, 0x0e, 0xc6, 0xe4, 0x2e, 0x6f, 0x0e, 0xaa, 0x5c,
+ 0x29, 0x76, 0x4f, 0x2c, 0xb8, 0xb4, 0xdb, 0xb9, 0xce, 0x90, 0xf6, 0x49,
+ 0x14, 0xb7, 0x3e, 0x94, 0x9e, 0x6d, 0x94, 0xf4, 0x4b, 0xd1, 0xde, 0xf4,
+ 0xf7, 0x3d, 0x3c, 0xff, 0x9e, 0xd6, 0x81, 0x1f, 0x3f, 0xf9, 0x97, 0x25,
+ 0x8d, 0xd8, 0xca, 0xa2, 0xf3, 0x51, 0x1c, 0x5f, 0x2f, 0xce, 0xd0, 0x7e,
+ 0xa0, 0x39, 0x96, 0x6f, 0x12, 0x77, 0xc1, 0x12, 0x58, 0x44, 0x71, 0x70,
+ 0xeb, 0x6a, 0x8c, 0xc0, 0xdf, 0x44, 0xd0, 0xc3, 0xb9, 0x7e, 0x5b, 0x6f,
+ 0x7c, 0x1a, 0x26, 0x7d, 0x44, 0x13, 0xa0, 0x8f, 0x44, 0x7d, 0xad, 0xb9,
+ 0x6f, 0x7e, 0xae, 0xf1, 0xf7, 0x95, 0x78, 0x33, 0x11, 0x5b, 0xdb, 0xd4,
+ 0x0f, 0xc8, 0xf9, 0x58, 0x57, 0xb5, 0x2e, 0xdb, 0xf5, 0xa4, 0xda, 0xa7,
+ 0x4f, 0x90, 0x38, 0x4c, 0xa2, 0x76, 0x62, 0xed, 0x2c, 0x31, 0xbe, 0x22,
+ 0x49, 0x2f, 0x27, 0xa4, 0x80, 0x5a, 0x03, 0x00, 0x00, 0x63, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0d, 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x18, 0xec, 0xfd, 0x00, 0x65, 0x5f, 0xb4, 0xb2, 0xb6, 0x51, 0xb7, 0x70,
+ 0xc0, 0xce, 0x25, 0xf7, 0x11, 0x95, 0x15, 0x18, 0xe6, 0x94, 0x03, 0x7d,
+ 0x39, 0x0a, 0xd3, 0x9c, 0x10, 0x9d, 0x32, 0xea, 0x10, 0x72, 0x98, 0x9f,
+ 0xd8, 0x78, 0x8f, 0xcb, 0x2c, 0x13, 0xb5, 0xa3, 0x3d, 0x95, 0x3e, 0xcf,
+ 0xb0, 0xef, 0x6e, 0x68, 0xf4, 0x74, 0xcb, 0x96, 0x1c, 0x1c, 0x3c, 0x62,
+ 0xd4, 0x16, 0x1a, 0x7d, 0x89, 0xa3, 0xb5, 0x64, 0x9b, 0x99, 0xfd, 0xe9,
+ 0xb1, 0x82, 0xaa, 0x94, 0xc1, 0x3a, 0x59, 0xc3, 0x2d, 0x40, 0x2f, 0x5b,
+ 0x28, 0x91, 0xff, 0x4a, 0x63, 0x0e, 0x34, 0x3b, 0xba, 0x23, 0x72, 0x20,
+ 0x66, 0x11, 0x45, 0x83, 0xae, 0xca, 0xc1, 0x88, 0x8b, 0xea, 0xe4, 0x37,
+ 0x7a, 0xed, 0x35, 0x57, 0x34, 0xe5, 0x7b, 0x31, 0x35, 0xdc, 0x2e, 0x1e,
+ 0xc5, 0x17, 0xb3, 0xf1, 0xb2, 0xad, 0xf5, 0xbb, 0xd9, 0xe8, 0xd8, 0xb1,
+ 0x23, 0xec, 0xe4, 0x38, 0xde, 0xb2, 0xb3, 0x12, 0x9e, 0x78, 0xe8, 0xf9,
+ 0xf6, 0xb6, 0x87, 0xf6, 0x59, 0xaf, 0x25, 0x67, 0x49, 0xee, 0xe8, 0x38,
+ 0x81, 0x11, 0x7d, 0x23, 0x84, 0xf7, 0xcd, 0x48, 0x21, 0xe8, 0x22, 0x9c,
+ 0xe7, 0xf7, 0x2f, 0x7e, 0xc5, 0x7c, 0x03, 0x22, 0x14, 0x45, 0x9e, 0x3c,
+ 0x15, 0x4a, 0x04, 0x42, 0x02, 0x3b, 0x9e, 0x96, 0x38, 0x3e, 0x6b, 0x5d,
+ 0x4c, 0x8a, 0x95, 0x48, 0xf8, 0x43, 0x1e, 0x79, 0xdf, 0x3a, 0x4d, 0xbd,
+ 0xbc, 0x0e, 0xdf, 0xc0, 0xd1, 0x97, 0x9a, 0x59, 0xa9, 0x41, 0x5c, 0xf1,
+ 0xc2, 0xcb, 0x12, 0x08, 0xbf, 0xa4, 0x8f, 0xa1, 0x5b, 0xef, 0x65, 0x6d,
+ 0x8c, 0x41, 0xf5, 0x31, 0x10, 0x33, 0xbe, 0x1a, 0xfc, 0x0b, 0x39, 0x94,
+ 0x76, 0xf3, 0xbc, 0x13, 0x35, 0x78, 0xca, 0xed, 0x9b, 0x11, 0xcb, 0xe3,
+ 0x18, 0x4f, 0x6e, 0x27, 0xf7, 0xf4, 0x5c, 0x40, 0x71, 0x41, 0x89, 0x93,
+ 0x15, 0x7c, 0xf8, 0xec, 0xd8, 0x1c, 0x0d, 0xe7, 0x21, 0xae, 0x40, 0xae,
+ 0xad, 0x67, 0x42, 0x6e, 0x99, 0x07, 0xe5, 0x6c, 0x4e, 0x64, 0xae, 0x98,
+ 0x2f, 0x22, 0xfb, 0x80, 0x76, 0xe1, 0x83, 0xee, 0xfc, 0xce, 0x80, 0x3c,
+ 0x7f, 0x4e, 0x72, 0x9a, 0xa7, 0x55, 0x6d, 0x85, 0xf6, 0x8e, 0xc4, 0x26,
+ 0x82, 0x6c, 0xb3, 0x28, 0x13, 0x07, 0xd9, 0x9d, 0x06, 0x8a, 0x2f, 0x19,
+ 0x8b, 0x88, 0x09, 0xcb, 0xc0, 0xaf, 0xa7, 0xd2, 0xbd, 0xb0, 0xc5, 0x5e,
+ 0x84, 0x57, 0x97, 0x49, 0x2e, 0xc2, 0x1f, 0x32, 0x38, 0x9c, 0x3f, 0x55,
+ 0x07, 0x93, 0x32, 0x36, 0xae, 0xf8, 0x02, 0xe4, 0x1c, 0x0f, 0xeb, 0xab,
+ 0x8a, 0x94, 0x4e, 0x63, 0xd5, 0x38, 0x53, 0x83, 0xe7, 0xfd, 0x86, 0x7b,
+ 0x22, 0x0b, 0x5d, 0x5c, 0x7c, 0x8d, 0xdf, 0xff, 0x44, 0xb3, 0x9f, 0x57,
+ 0xd3, 0x8b, 0x6e, 0x98, 0xe1, 0xf8, 0x1e, 0x26, 0xb8, 0x61, 0x3e, 0x95,
+ 0xb2, 0xa9, 0x0f, 0xb0, 0x1f, 0x54, 0x6c, 0x03, 0xd9, 0x4a, 0x57, 0x46,
+ 0x55, 0xa1, 0x61, 0x13, 0xbc, 0x1f, 0xf6, 0xff, 0x1c, 0xe5, 0xc9, 0x46,
+ 0x19, 0x0e, 0x45, 0x9d, 0xd9, 0xd8, 0x31, 0xce, 0xa8, 0x7c, 0xb6, 0x95,
+ 0x13, 0x01, 0x76, 0x24, 0x81, 0xbc, 0x65, 0xe1, 0xea, 0xe6, 0x73, 0x30,
+ 0xa1, 0x9d, 0xed, 0x94, 0x76, 0x71, 0x8a, 0x45, 0x07, 0x32, 0x96, 0x43,
+ 0x8a, 0xf2, 0x50, 0x63, 0x7d, 0x88, 0x1b, 0x7f, 0x3d, 0xea, 0x32, 0x9d,
+ 0xa1, 0x2c, 0x6c, 0x5b, 0x7c, 0xd0, 0xeb, 0xa6, 0xee, 0x46, 0xf1, 0x04,
+ 0x8b, 0x34, 0x84, 0xca, 0x93, 0x52, 0x66, 0x06, 0x8e, 0x1a, 0xeb, 0x5e,
+ 0x6a, 0x02, 0xd3, 0xe4, 0x54, 0xf8, 0x3a, 0xba, 0xf7, 0x57, 0x6c, 0xbf,
+ 0x06, 0x5e, 0x1f, 0x2d, 0xea, 0x55, 0x8f, 0xdb, 0x72, 0x18, 0x0f, 0x1a,
+ 0x69, 0x48, 0xbf, 0x91, 0x09, 0xec, 0x8e, 0xb0, 0xd3, 0x59, 0x6e, 0x5e,
+ 0x85, 0x2b, 0x2b, 0xfa, 0x05, 0x37, 0x27, 0x14, 0x67, 0x17, 0x4e, 0x73,
+ 0x20, 0x00, 0xb9, 0x1b, 0x46, 0xdd, 0xce, 0x9f, 0x45, 0x63, 0x7b, 0xad,
+ 0xa7, 0x21, 0xe0, 0xd7, 0xd3, 0x0d, 0x9b, 0xc1, 0x83, 0xb4, 0xef, 0x8d,
+ 0x0f, 0x8d, 0x16, 0xb4, 0x50, 0x96, 0x61, 0xf5, 0xfc, 0x13, 0x22, 0x24,
+ 0x36, 0x60, 0x7a, 0x4a, 0x37, 0xb9, 0x72, 0xc6, 0x9e, 0xac, 0xab, 0x32,
+ 0xfd, 0xb2, 0x75, 0x7e, 0xce, 0x37, 0x39, 0x82, 0x68, 0xa4, 0x4b, 0xd5,
+ 0xf3, 0x76, 0x2b, 0x73, 0xb6, 0x5d, 0x59, 0xee, 0x36, 0xc1, 0x08, 0x39,
+ 0x4b, 0x74, 0xbf, 0x52, 0x68, 0x42, 0xc1, 0xc7, 0x36, 0xbf, 0xdd, 0x6b,
+ 0x23, 0x09, 0x53, 0x3d, 0xfd, 0xcc, 0xad, 0x2f, 0xbd, 0x40, 0x99, 0xc6,
+ 0x84, 0x85, 0x63, 0xb0, 0xa1, 0x75, 0x1f, 0x5a, 0xc1, 0x33, 0x40, 0x5d,
+ 0x67, 0xfa, 0xe9, 0xb4, 0x69, 0xdd, 0x50, 0x42, 0x52, 0x61, 0x7f, 0x92,
+ 0x40, 0x17, 0xa1, 0x28, 0x34, 0xdb, 0x62, 0x60, 0xf3, 0xa9, 0xf2, 0xa9,
+ 0x0d, 0x64, 0xfb, 0x2a, 0x33, 0x01, 0xcf, 0xb7, 0x56, 0xae, 0x7b, 0xb4,
+ 0x7a, 0x80, 0x46, 0xac, 0x2b, 0x44, 0x32, 0x62, 0x8c, 0xbe, 0xe8, 0x3b,
+ 0x4f, 0xef, 0x0a, 0x9d, 0xa9, 0x01, 0xaf, 0xa9, 0x44, 0xeb, 0x83, 0x4b,
+ 0xe1, 0x31, 0x22, 0x72, 0xdc, 0x62, 0xb5, 0xce, 0xa6, 0xed, 0x00, 0x5f,
+ 0xc4, 0xa0, 0x38, 0x99, 0x35, 0xea, 0x92, 0xc7, 0x35, 0x93, 0x06, 0x4c,
+ 0xc2, 0xa7, 0xdf, 0xf0, 0xbe, 0x3b, 0x46, 0xb4, 0xe6, 0x0f, 0x60, 0xa8,
+ 0x55, 0x13, 0x58, 0x80, 0xbe, 0x29, 0xe4, 0xe6, 0xdf, 0x70, 0x7a, 0x33,
+ 0x32, 0xb8, 0xf8, 0xcf, 0xb4, 0xb8, 0xd6, 0x73, 0xdb, 0xf5, 0x0a, 0xf3,
+ 0x61, 0x6f, 0x31, 0xdd, 0xff, 0x9a, 0xb3, 0xba, 0x4c, 0xe0, 0xf9, 0xd2,
+ 0x0f, 0xcd, 0x4b, 0x42, 0x2a, 0x6d, 0x28, 0x80, 0xb0, 0x31, 0xe6, 0x9a,
+ 0x31, 0xc8, 0xce, 0x02, 0xa4, 0xc9, 0xb7, 0x8e, 0xd6, 0xc0, 0xed, 0x97,
+ 0xc9, 0xbb, 0x9b, 0xc4, 0x00, 0xae, 0xfb, 0x7f, 0x6e, 0x97, 0x98, 0x06,
+ 0x3f, 0x1f, 0xf6, 0x34, 0x55, 0x4d, 0x8f, 0x95, 0x95, 0x41, 0x5a, 0xa9,
+ 0x28, 0x28, 0x59, 0xcd, 0x51, 0xe6, 0x08, 0xbf, 0xc3, 0xa6, 0xc6, 0x8b,
+ 0xf6, 0xbb, 0x71, 0xc0, 0xcd, 0x65, 0x70, 0x2e, 0xcf, 0xcb, 0x00, 0xfc,
+ 0x08, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51,
+ 0x46, 0x00, 0x30, 0x11, 0x98, 0x00, 0x18, 0x01, 0x49, 0x0f, 0xf2, 0x3f,
+ 0x7f, 0xfe, 0xcd, 0x7f, 0xa4, 0x7b, 0xef, 0xf1, 0x11, 0xfb, 0xc3, 0xee,
+ 0xfd, 0xd7, 0xff, 0xef, 0xfb, 0x37, 0xb8, 0x6f, 0xaf, 0xfe, 0xe9, 0x3f,
+ 0xff, 0xfd, 0x1d, 0x7f, 0xd5, 0x7f, 0xff, 0xf6, 0x82, 0xfd, 0x7f, 0xff,
+ 0xfa, 0xee, 0xff, 0xff, 0xf9, 0x9a, 0xf7, 0xff, 0xd1, 0xaf, 0x9f, 0xfe,
+ 0x6e, 0x0f, 0xde, 0xbe, 0xef, 0xff, 0x71, 0x3f, 0xd1, 0xdf, 0xff, 0xfd,
+ 0xa6, 0xff, 0xf7, 0xff, 0xff, 0xe9, 0x87, 0xf6, 0x8f, 0xff, 0x5e, 0xd2,
+ 0x7f, 0xbf, 0x3e, 0x9f, 0xf1, 0xe4, 0xd7, 0x9e, 0x0e, 0xb8, 0x34, 0xd8,
+ 0x9f, 0x4a, 0xe8, 0x64, 0xb7, 0x9d, 0xdf, 0x1b, 0xcc, 0xbc, 0x8e, 0x3c,
+ 0xe6, 0xc7, 0x46, 0xeb, 0xf2, 0x90, 0x38, 0xa9, 0x7b, 0xe5, 0x1f, 0x8d,
+ 0xcd, 0xe7, 0x42, 0x48, 0xb9, 0x52, 0xe4, 0xf4, 0x85, 0x27, 0x3d, 0xa7,
+ 0xdf, 0x38, 0xae, 0x7b, 0x4f, 0x42, 0x16, 0x6b, 0x34, 0x6a, 0xe6, 0x26,
+ 0xfd, 0xa6, 0x59, 0x45, 0x91, 0xfb, 0x67, 0xe3, 0x6e, 0xfc, 0x66, 0x00,
+ 0x4d, 0x19, 0x11, 0x43, 0x6a, 0x62, 0x2d, 0x06, 0x4c, 0x63, 0xf6, 0xd3,
+ 0xf4, 0x79, 0xec, 0x6b, 0x72, 0x09, 0xef, 0xe7, 0x6e, 0x01, 0x1f, 0xc6,
+ 0xbd, 0xe3, 0xe2, 0x67, 0xf9, 0xd1, 0x48, 0x30, 0x4e, 0xc0, 0xca, 0x34,
+ 0xcb, 0x4c, 0x7e, 0x0e, 0x5b, 0x18, 0xaf, 0x72, 0x16, 0x4a, 0x38, 0x38,
+ 0xfe, 0x94, 0x71, 0x8b, 0x62, 0xc9, 0xea, 0xfa, 0xd3, 0xb4, 0xf1, 0x6f,
+ 0x84, 0x2f, 0x87, 0x34, 0x2d, 0xef, 0x9d, 0xe3, 0x4d, 0x00, 0x62, 0x41,
+ 0xd4, 0xe5, 0x00, 0x5c, 0x0b, 0xc6, 0x94, 0x00, 0x39, 0x1c, 0xeb, 0x67,
+ 0x59, 0xd3, 0xcc, 0x36, 0x15, 0xcf, 0x28, 0x8d, 0xbc, 0xd4, 0x77, 0xdf,
+ 0x1f, 0xeb, 0x9a, 0xe3, 0xc4, 0xef, 0x46, 0x23, 0xbf, 0x20, 0x1e, 0x66,
+ 0xea, 0x32, 0xec, 0xbd, 0xd4, 0x33, 0xa0, 0xe4, 0x7b, 0xef, 0x4a, 0x64,
+ 0x9e, 0x47, 0x89, 0x09, 0x29, 0x50, 0x83, 0xf0, 0x89, 0x55, 0x38, 0x04,
+ 0xa5, 0x01, 0x9c, 0x1c, 0xcc, 0xc1, 0x27, 0x57, 0x35, 0x2e, 0x46, 0x51,
+ 0xe3, 0xff, 0x59, 0xd7, 0x35, 0x2e, 0x46, 0x51, 0xe3, 0xff, 0x59, 0xd1,
+ 0x9b, 0x8d, 0x08, 0x4d, 0x4a, 0x5b, 0xb9, 0x4f, 0x01, 0x8d, 0x5f, 0x64,
+ 0x2f, 0x22, 0x34, 0x67, 0x4e, 0xc0, 0x4a, 0x7b, 0xe1, 0x66, 0xcf, 0x1b,
+ 0x38, 0xfd, 0x57, 0xf5, 0xaf, 0x43, 0x1c, 0xf2, 0x26, 0x00, 0xd1, 0x78,
+ 0xac, 0xf2, 0x6c, 0xd5, 0x49, 0xc1, 0xdc, 0x08, 0xe1, 0xf9, 0x9d, 0xf8,
+ 0xcf, 0xe7, 0x0a, 0x66, 0xa3, 0x50, 0xf1, 0x3e, 0xaa, 0x61, 0xfc, 0xb2,
+ 0x69, 0x79, 0xd4, 0xb9, 0x81, 0xc1, 0x57, 0x39, 0x45, 0x28, 0x60, 0x33,
+ 0x04, 0x0b, 0xaa, 0x16, 0x3d, 0x9e, 0xd9, 0xfe, 0xb8, 0x40, 0x5a, 0x8f,
+ 0xa1, 0x8e, 0x1d, 0x50, 0x47, 0xce, 0xb6, 0x91, 0x75, 0x0b, 0xcc, 0x1f,
+ 0x85, 0x4a, 0xf2, 0x8e, 0x48, 0xe0, 0x61, 0x59, 0xae, 0x0f, 0x7e, 0xaa,
+ 0xb0, 0x21, 0x25, 0xd1, 0x9b, 0x82, 0x1e, 0xb1, 0x69, 0x8c, 0x6e, 0x7f,
+ 0x02, 0x0e, 0x29, 0xc5, 0x28, 0x1f, 0x17, 0x79, 0xfc, 0x2e, 0x63, 0xaa,
+ 0x01, 0xde, 0x20, 0x89, 0xd3, 0x33, 0x18, 0x61, 0xa4, 0x06, 0x3c, 0x5e,
+ 0x4b, 0x6a, 0x65, 0xb9, 0x9e, 0x64, 0xe9, 0x52, 0xda, 0xe3, 0x6a, 0xb7,
+ 0x97, 0x7e, 0xe0, 0x4d, 0xb1, 0x0d, 0x3d, 0x16, 0xd7, 0xff, 0xf7, 0xf0,
+ 0x91, 0xd2, 0x97, 0xf6, 0x38, 0xf9, 0x68, 0xa3, 0xed, 0x6d, 0x02, 0x36,
+ 0x23, 0x35, 0xd1, 0x0c, 0xbe, 0xed, 0x77, 0x00, 0xb0, 0xc0, 0x13, 0x00,
+ 0x03, 0xc7, 0xcf, 0xf0, 0x00, 0x13, 0x40, 0xc6, 0x6d, 0x00, 0x20, 0x3f,
+ 0x3c, 0x00, 0x2c, 0xb8, 0x6e, 0x00, 0x12, 0x71, 0xb1, 0x79, 0x00, 0x33,
+ 0x5a, 0x49, 0x00, 0x0c, 0xa6, 0xa3, 0x40, 0x02, 0x6d, 0xab, 0xbc, 0x80,
+ 0x3d, 0x85, 0xf8, 0x1a, 0x1d, 0xe4, 0x00, 0x25, 0x3d, 0x00, 0x01, 0xd1,
+ 0x62, 0xc8, 0xf5, 0xf3, 0xd3, 0x10, 0x0d, 0xdc, 0x68, 0x37, 0x17, 0x40,
+ 0x41, 0x37, 0x98, 0x52, 0x93, 0x85, 0x3f, 0x15, 0x9a, 0x36, 0x52, 0xe6,
+ 0xef, 0xc1, 0x25, 0x5c, 0xbc, 0x0d, 0x3e, 0x34, 0xc9, 0x68, 0x64, 0xfa,
+ 0xee, 0x9e, 0x81, 0x58, 0x60, 0x98, 0x11, 0xac, 0xde, 0x33, 0x5b, 0xbe,
+ 0xc1, 0x1c, 0xe1, 0x5c, 0x43, 0x26, 0x47, 0x05, 0x35, 0xd6, 0x3b, 0x89,
+ 0x18, 0x9a, 0x95, 0xe0, 0x3a, 0x3b, 0x4d, 0x3b, 0x0d, 0xed, 0x89, 0x94,
+ 0x0f, 0x60, 0xbf, 0xa8, 0x56, 0x43, 0xd5, 0x9d, 0x2f, 0xcc, 0x27, 0x8b,
+ 0x87, 0x69, 0xde, 0x9a, 0xaf, 0xf4, 0xd9, 0x7d, 0x73, 0x19, 0x82, 0x7d,
+ 0x78, 0x6b, 0x01, 0xb6, 0xa1, 0x50, 0x3a, 0x3f, 0x47, 0x88, 0xa9, 0x17,
+ 0x67, 0xa5, 0xa1, 0x5b, 0x19, 0x30, 0x6e, 0x6d, 0xa4, 0xe5, 0x9e, 0x8c,
+ 0x7f, 0x9d, 0x4a, 0xf7, 0xc7, 0xfb, 0xc3, 0x8f, 0xd5, 0xf3, 0xe5, 0xf5,
+ 0xcb, 0xaf, 0xc5, 0xc6, 0x0f, 0x15, 0x92, 0x1c, 0xb9, 0xa3, 0x20, 0x43,
+ 0xa5, 0xf8, 0x23, 0x55, 0x04, 0x1d, 0x41, 0xcb, 0x54, 0x46, 0x2e, 0x82,
+ 0xbf, 0x2d, 0xc4, 0x05, 0xd6, 0xaa, 0x37, 0xbe, 0xeb, 0xe7, 0xaa, 0xab,
+ 0x47, 0x26, 0x5c, 0x89, 0x55, 0xd0, 0x96, 0xda, 0x3f, 0x32, 0x6c, 0xe5,
+ 0x32, 0x62, 0x02, 0x62, 0x7b, 0xbd, 0xc5, 0xda, 0x9e, 0x2f, 0xbf, 0x08,
+ 0x82, 0x2c, 0xbd, 0x5e, 0xee, 0x87, 0xda, 0x96, 0xf2, 0x5c, 0xd1, 0x10,
+ 0x64, 0x23, 0x61, 0xfd, 0x21, 0x13, 0xdb, 0x1e, 0xc1, 0x7e, 0xf9, 0xda,
+ 0xd5, 0x30, 0xe7, 0xa7, 0x83, 0x87, 0xfe, 0x07, 0x95, 0x57, 0x18, 0x85,
+ 0x53, 0x00, 0x78, 0xbd, 0x2d, 0x1d, 0xf5, 0x3d, 0x1e, 0xff, 0x1e, 0x37,
+ 0x67, 0x26, 0xad, 0x5e, 0x6c, 0x82, 0x06, 0xb2, 0x9f, 0xb7, 0x51, 0x5b,
+ 0xba, 0xd3, 0x23, 0xaf, 0x45, 0x59, 0xc7, 0x54, 0xd9, 0x20, 0x0e, 0x35,
+ 0xd6, 0xa8, 0x61, 0xf6, 0xf8, 0x15, 0x56, 0xb1, 0xc0, 0x09, 0xb1, 0x34,
+ 0x74, 0x10, 0x2e, 0xb0, 0x52, 0x56, 0x5e, 0x50, 0xf0, 0x1d, 0x80, 0xef,
+ 0x4c, 0xa1, 0x4b, 0xef, 0x7a, 0x98, 0xca, 0x4f, 0x1e, 0xbe, 0x6a, 0x2e,
+ 0x34, 0x4e, 0xd9, 0xac, 0xbf, 0xa3, 0x4f, 0xc6, 0xf7, 0x05, 0xe7, 0x5d,
+ 0x92, 0xc3, 0x6b, 0x5c, 0x0a, 0xaa, 0x43, 0xc7, 0x92, 0xd6, 0xf6, 0x9c,
+ 0x72, 0xc7, 0xad, 0x6b, 0x19, 0xdf, 0xc2, 0xb4, 0xed, 0x80, 0xc2, 0x9a,
+ 0x9d, 0x37, 0xd2, 0xf9, 0xb3, 0xf0, 0xb6, 0x2c, 0xf7, 0x81, 0x35, 0xcc,
+ 0x46, 0x45, 0x17, 0x27, 0x7a, 0xb5, 0x46, 0x2d, 0x98, 0xba, 0xe0, 0xa3,
+ 0x9f, 0x6c, 0x70, 0x58, 0x45, 0x0a, 0x4e, 0x50, 0x76, 0x3b, 0x01, 0x87,
+ 0x03, 0x1d, 0xed, 0x61, 0xd9, 0x59, 0xa5, 0xea, 0x87, 0x7e, 0xfe, 0x93,
+ 0x31, 0x21, 0xc4, 0xb5, 0x00, 0xba, 0xf9, 0x0b, 0xb4, 0x6d, 0xbc, 0xb3,
+ 0x54, 0x8e, 0x5f, 0x9c, 0xbc, 0xda, 0x44, 0xd4, 0x0d, 0x00, 0x0f, 0x21,
+ 0x63, 0x6d, 0x3d, 0x5d, 0x17, 0x06, 0xbc, 0x13, 0xa2, 0x24, 0x6d, 0x8a,
+ 0xde, 0x83, 0x50, 0x5d, 0x12, 0x2b, 0xf0, 0x88, 0x1f, 0x91, 0xc3, 0xef,
+ 0xed, 0x8c, 0x09, 0xbd, 0xdb, 0xdf, 0xda, 0xe8, 0x9c, 0x1d, 0x41, 0x7a,
+ 0x80, 0x9d, 0x5a, 0xbc, 0x70, 0xd4, 0x57, 0xa5, 0x43, 0xbf, 0x44, 0x6a,
+ 0x70, 0x1d, 0xa4, 0x38, 0xe6, 0x37, 0x78, 0xf8, 0x13, 0xac, 0x52, 0x00,
+ 0xcf, 0x45, 0x10, 0x23, 0x62, 0x03, 0x65, 0xe5, 0x1d, 0xf1, 0x5a, 0xc7,
+ 0xf5, 0x21, 0x06, 0x44, 0x61, 0x69, 0x46, 0x4f, 0x4d, 0x14, 0x4e, 0xf3,
+ 0x59, 0x61, 0xfb, 0x66, 0x31, 0x73, 0x4a, 0x46, 0x23, 0x9a, 0x7e, 0x39,
+ 0xf0, 0x81, 0xa1, 0xb5, 0xc7, 0x2a, 0xf6, 0x5d, 0x1b, 0x97, 0x4e, 0xc8,
+ 0x12, 0x12, 0x5e, 0x9c, 0x02, 0x2b, 0x7e, 0xe8, 0xa6, 0xaf, 0xc7, 0xab,
+ 0x8e, 0xac, 0xe1, 0xf1, 0xbf, 0xac, 0xe8, 0x9e, 0xba, 0x61, 0x4d, 0xcc,
+ 0x2c, 0x96, 0x59, 0x63, 0x79, 0x3d, 0xb9, 0x5c, 0x36, 0x2d, 0x8f, 0xcb,
+ 0x15, 0x47, 0x22, 0xf3, 0x95, 0x48, 0x9b, 0x1c, 0xcc, 0xf9, 0x47, 0xca,
+ 0xfa, 0xf8, 0x17, 0x61, 0x4f, 0xc3, 0x2d, 0x85, 0x9f, 0x33, 0x0e, 0x8b,
+ 0xd7, 0xd5, 0x21, 0xd8, 0xb0, 0x57, 0x64, 0xfe, 0xda, 0x44, 0x0a, 0x8c,
+ 0x12, 0x02, 0x23, 0x54, 0x94, 0xf6, 0x57, 0x89, 0xc5, 0x29, 0x75, 0xd7,
+ 0x25, 0x8d, 0x43, 0xa9, 0x44, 0x22, 0x8f, 0x18, 0x1d, 0xca, 0x4b, 0xd0,
+ 0x50, 0x75, 0x60, 0x18, 0x30, 0x95, 0xf5, 0xa8, 0xe6, 0x4b, 0x73, 0x7f,
+ 0x58, 0xf1, 0x1b, 0x56, 0xe0, 0xf9, 0xb0, 0xa3, 0x71, 0xf1, 0x40, 0xa5,
+ 0x7c, 0xf0, 0x7b, 0x80, 0x93, 0xd7, 0xce, 0x96, 0x88, 0x59, 0x58, 0xb8,
+ 0x6f, 0x75, 0x34, 0xe4, 0x5f, 0x71, 0xe9, 0xcc, 0xad, 0xcf, 0x2c, 0x8c,
+ 0x18, 0xdc, 0x2b, 0x42, 0x71, 0xbc, 0x17, 0x1f, 0xc3, 0x34, 0x63, 0x85,
+ 0x4a, 0x3d, 0x4a, 0x72, 0xc6, 0xa3, 0x06, 0x54, 0xeb, 0x52, 0xf9, 0x37,
+ 0xa7, 0xa3, 0xc8, 0x72, 0x31, 0x28, 0x5c, 0x79, 0x87, 0xa5, 0xd2, 0x82,
+ 0x3d, 0xe0, 0x56, 0x40, 0x3b, 0x1a, 0x28, 0x8d, 0xcb, 0xcc, 0x92, 0x69,
+ 0x41, 0x2e, 0x23, 0xc1, 0x33, 0xb2, 0xef, 0x9f, 0xa5, 0x1d, 0xb3, 0x06,
+ 0x4a, 0x14, 0xbc, 0xb3, 0x79, 0x7c, 0xc1, 0x24, 0x3d, 0x65, 0x7e, 0xd2,
+ 0x16, 0x09, 0xe9, 0xe9, 0xd8, 0x73, 0x19, 0x86, 0x72, 0x47, 0x26, 0x3b,
+ 0xec, 0x84, 0x49, 0xb4, 0x33, 0x82, 0x3c, 0xa4, 0x87, 0x6e, 0x14, 0x80,
+ 0xfb, 0x77, 0xa8, 0x24, 0xea, 0x5b, 0xe4, 0x22, 0x65, 0xd4, 0x33, 0xae,
+ 0x94, 0x7d, 0xfd, 0x1d, 0xfb, 0xc4, 0x73, 0xed, 0xa7, 0xda, 0x2e, 0x67,
+ 0x1d, 0x66, 0x11, 0xb0, 0x07, 0x4b, 0x5c, 0x79, 0x3e, 0x14, 0xad, 0xee,
+ 0x86, 0xc9, 0xcb, 0x37, 0x8d, 0xab, 0x76, 0xc5, 0x8a, 0x86, 0x4c, 0x0b,
+ 0x80, 0xe1, 0xc3, 0x8f, 0xc4, 0x0a, 0x84, 0x12, 0xc7, 0xd8, 0x5b, 0x40,
+ 0xe9, 0x8d, 0x97, 0x5a, 0x15, 0x51, 0x39, 0x5f, 0xa3, 0xbd, 0x2c, 0xa8,
+ 0xcd, 0xe4, 0x89, 0xd5, 0x5f, 0x1d, 0x61, 0x20, 0x89, 0x63, 0xc0, 0xfe,
+ 0x3f, 0xe7, 0xe4, 0x28, 0x60, 0x48, 0x15, 0x52, 0x9f, 0xe0, 0x16, 0x23,
+ 0x7c, 0x3f, 0xff, 0x23, 0xc3, 0x2a, 0xe0, 0x76, 0x6e, 0xa0, 0xbc, 0xd8,
+ 0x2e, 0x6c, 0x09, 0x12, 0x78, 0xdf, 0xec, 0xb3, 0x0d, 0x5f, 0xd8, 0x19,
+ 0xb4, 0xa7, 0x93, 0xe0, 0x0a, 0xc8, 0x3f, 0xa2, 0x19, 0xa7, 0x63, 0xb3,
+ 0xab, 0x11, 0x85, 0xeb, 0xa8, 0x8b, 0x52, 0x38, 0xe8, 0x9a, 0xe7, 0xe2,
+ 0x6a, 0x98, 0x6d, 0x4a, 0x84, 0x90, 0xce, 0x39, 0x11, 0xcd, 0xc7, 0x69,
+ 0xc7, 0xa9, 0x13, 0x81, 0x74, 0xe6, 0x0d, 0x36, 0x81, 0xc9, 0x29, 0x3c,
+ 0x17, 0x5c, 0xee, 0x2f, 0xf3, 0xbc, 0x3d, 0xb5, 0x60, 0x08, 0xf3, 0x93,
+ 0xa5, 0xfb, 0x63, 0xd4, 0x49, 0xd5, 0xef, 0x5f, 0x25, 0xa1, 0x33, 0x0f,
+ 0xd9, 0x50, 0x8c, 0x06, 0xe1, 0xd8, 0x19, 0xe6, 0xe6, 0x0f, 0xc0, 0xab,
+ 0xcb, 0x18, 0x27, 0x52, 0xfe, 0x59, 0x8f, 0xa5, 0xac, 0x92, 0x9e, 0xea,
+ 0xdc, 0xef, 0xcf, 0xa8, 0x75, 0x06, 0x63, 0xc4, 0x3a, 0x81, 0x84, 0xf1,
+ 0x77, 0x16, 0x52, 0xd0, 0x2f, 0xd1, 0x4f, 0x2c, 0xd7, 0x4c, 0x51, 0x64,
+ 0xbc, 0x47, 0xef, 0x15, 0x2f, 0x29, 0x27, 0xb0, 0xba, 0x60, 0x44, 0x1c,
+ 0x2e, 0xbc, 0x80, 0x30, 0x14, 0x8a, 0x41, 0x32, 0x4f, 0xf9, 0x58, 0xc6,
+ 0x19, 0xca, 0x5f, 0x34, 0x00, 0xd2, 0xb7, 0x41, 0xcf, 0xc6, 0x2a, 0xab,
+ 0xc9, 0xad, 0x2a, 0x02, 0x38, 0xe9, 0xef, 0x09, 0x5c, 0x53, 0x1b, 0x51,
+ 0xa0, 0xb6, 0x6c, 0x44, 0x7b, 0xf3, 0x20, 0xd4, 0xa2, 0x2f, 0xd8, 0xcf,
+ 0x81, 0xbf, 0xb4, 0x1b, 0x71, 0xc6, 0x92, 0x24, 0x8b, 0x6b, 0x91, 0x0e,
+ 0x0b, 0x76, 0xf0, 0x9c, 0x39, 0x3d, 0x75, 0xc6, 0x51, 0x97, 0xb1, 0x51,
+ 0x84, 0x32, 0xb5, 0xbd, 0x77, 0x6b, 0xb9, 0x8b, 0x21, 0xe9, 0xdc, 0xa9,
+ 0xe7, 0xe5, 0xf3, 0x1d, 0xbd, 0x31, 0x0c, 0xde, 0xfa, 0x67, 0x1d, 0xd4,
+ 0xd3, 0x2d, 0x1e, 0x6a, 0x05, 0xa7, 0x22, 0x56, 0x28, 0x66, 0x8f, 0x6a,
+ 0x27, 0x5f, 0xcf, 0x3e, 0x2f, 0x8a, 0x18, 0x89, 0x46, 0x86, 0x82, 0x27,
+ 0xff, 0x62, 0x84, 0xa3, 0x8e, 0x2f, 0x92, 0xb5, 0x6a, 0xd3, 0xc6, 0x95,
+ 0x73, 0xa6, 0x5e, 0xd9, 0xa1, 0x32, 0x49, 0xfa, 0x01, 0x6b, 0xd2, 0x04,
+ 0xac, 0x28, 0x9a, 0xee, 0x8a, 0x09, 0xc5, 0x37, 0xb7, 0xc2, 0x22, 0xdf,
+ 0xa3, 0xaf, 0xf7, 0x8a, 0x4e, 0xa3, 0x80, 0xf9, 0x12, 0xc3, 0x50, 0x6b,
+ 0x8a, 0x6e, 0x1b, 0xd6, 0x10, 0xa6, 0xdd, 0x15, 0xbc, 0x0f, 0xd8, 0xf5,
+ 0xad, 0x1d, 0x51, 0x49, 0x78, 0xed, 0x8b, 0xad, 0xa3, 0x17, 0x8b, 0x55,
+ 0xaa, 0xee, 0x8e, 0x7a, 0x19, 0xdf, 0x6a, 0x0d, 0x71, 0x2f, 0xfb, 0xd1,
+ 0x08, 0x53, 0x6d, 0xb4, 0x07, 0x21, 0x80, 0xd7, 0x19, 0xf3, 0x10, 0xfd,
+ 0xb8, 0x03, 0xce, 0x3b, 0x2f, 0x49, 0x8f, 0xd4, 0x56, 0x7a, 0x74, 0xe8,
+ 0xc5, 0x79, 0xa5, 0x8b, 0x1a, 0x35, 0x26, 0x2c, 0xdc, 0xb3, 0xb1, 0x85,
+ 0x24, 0xc6, 0xd9, 0x3d, 0xd8, 0x6f, 0xe6, 0xa9, 0x52, 0x32, 0xe4, 0xc8,
+ 0x61, 0x8e, 0x2f, 0x5f, 0x3e, 0x39, 0x47, 0x29, 0xed, 0x26, 0xdb, 0x26,
+ 0xd4, 0xce, 0x7d, 0x12, 0x82, 0x38, 0x02, 0x97, 0x89, 0x0f, 0x1d, 0xd1,
+ 0xef, 0xd6, 0x54, 0xc5, 0x82, 0xe9, 0x32, 0xc8, 0x61, 0x8e, 0x2f, 0x5f,
+ 0x3d, 0x67, 0x7c, 0x99, 0x86, 0xa4, 0x41, 0x50, 0xc8, 0xbd, 0x37, 0x7a,
+ 0x36, 0x39, 0xc7, 0x25, 0x6c, 0x2a, 0xa6, 0xa5, 0x5d, 0x90, 0xf3, 0x48,
+ 0x33, 0x98, 0xcc, 0x01, 0xeb, 0xf9, 0x3a, 0xfd, 0x1e, 0xa6, 0x6c, 0xe4,
+ 0xc7, 0xe8, 0x66, 0x47, 0xbe, 0xa7, 0x21, 0xf1, 0x79, 0x98, 0x77, 0x1f,
+ 0xea, 0x6e, 0x7b, 0x44, 0x0a, 0xbb, 0x56, 0xbd, 0x22, 0xf1, 0x3b, 0xde,
+ 0x3b, 0x05, 0x33, 0xe2, 0xff, 0x35, 0x9f, 0xdd, 0xb5, 0xba, 0xbd, 0x79,
+ 0xf5, 0xee, 0x0d, 0x65, 0xaa, 0x47, 0x08, 0xaf, 0x7b, 0x8b, 0x46, 0xca,
+ 0xe2, 0xa7, 0xf6, 0x58, 0x6d, 0x50, 0x83, 0x38, 0x37, 0x52, 0x32, 0xd6,
+ 0xfd, 0x4c, 0xc8, 0xb9, 0x23, 0x43, 0x0c, 0x28, 0x21, 0x94, 0x85, 0xff,
+ 0x15, 0xa7, 0x36, 0x83, 0xe1, 0x8d, 0x25, 0x25, 0xe7, 0x62, 0xf7, 0x34,
+ 0x37, 0x23, 0x9c, 0x59, 0x99, 0xf3, 0x6c, 0x7c, 0x43, 0xca, 0xca, 0x13,
+ 0x1e, 0x8b, 0xf8, 0x59, 0x71, 0x6d, 0x4d, 0x62, 0x0a, 0xc6, 0x80, 0xae,
+ 0xbd, 0xe6, 0x5a, 0xd4, 0x86, 0xe4, 0x39, 0x07, 0xb1, 0x7a, 0x91, 0xd7,
+ 0x69, 0xf3, 0x59, 0x77, 0xfa, 0xcd, 0x59, 0xa7, 0x89, 0x19, 0xf9, 0x55,
+ 0x3a, 0x5e, 0xd2, 0x31, 0xc2, 0x07, 0xe1, 0x01, 0x71, 0x5a, 0x43, 0x79,
+ 0xb1, 0xbf, 0x68, 0x4b, 0xcd, 0xd6, 0xad, 0xc7, 0x0a, 0xd4, 0x23, 0x7a,
+ 0x8a, 0x89, 0xf6, 0xb4, 0xb0, 0xef, 0xf9, 0x74, 0x89, 0xd0, 0xb4, 0xec,
+ 0x84, 0xf9, 0xf5, 0x83, 0x60, 0x6d, 0xd4, 0x71, 0x1c, 0x30, 0x40, 0x8e,
+ 0xa7, 0xb3, 0x68, 0x9d, 0x7d, 0xb0, 0x67, 0x93, 0xb1, 0x18, 0x22, 0x63,
+ 0x14, 0xaa, 0x40, 0xae, 0xf8, 0x92, 0xec, 0x28, 0xc8, 0xaa, 0x15, 0x1a,
+ 0x77, 0x04, 0x78, 0x39, 0x84, 0xfc, 0x04, 0xa1, 0xeb, 0x35, 0x14, 0x2e,
+ 0x7f, 0x06, 0xd7, 0x92, 0x8b, 0x02, 0x7b, 0xad, 0x9b, 0x69, 0x16, 0x4e,
+ 0x13, 0xb9, 0xe9, 0x80, 0x5d, 0xa6, 0x50, 0x9b, 0x69, 0x16, 0x4e, 0x13,
+ 0xb9, 0xe9, 0x80, 0x5d, 0xa6, 0x50, 0x9b, 0x69, 0x16, 0x4e, 0x13, 0xb9,
+ 0xe9, 0x80, 0x86, 0x18, 0x53, 0x04, 0xbe, 0x91, 0x55, 0x63, 0x93, 0xe9,
+ 0x53, 0x92, 0xa3, 0x89, 0xdf, 0xa8, 0x0f, 0xad, 0xde, 0x26, 0x9a, 0x64,
+ 0x4b, 0x1a, 0x69, 0x48, 0x58, 0x18, 0xd6, 0x4a, 0x84, 0x2f, 0x61, 0xe6,
+ 0x2a, 0x95, 0x9d, 0xfd, 0xe9, 0x19, 0x51, 0x63, 0xf6, 0x03, 0xf8, 0x96,
+ 0x75, 0x70, 0x76, 0x85, 0x84, 0x85, 0xf6, 0xb9, 0x20, 0x01, 0xfc, 0xf4,
+ 0x10, 0x3d, 0xae, 0x1d, 0x41, 0x78, 0xfa, 0xda, 0xc0, 0xdf, 0x21, 0xc0,
+ 0x9f, 0xc7, 0x65, 0x16, 0x81, 0x4b, 0xd7, 0x7f, 0xa7, 0x9a, 0x92, 0xc8,
+ 0x20, 0x0a, 0x9e, 0xff, 0x38, 0x1f, 0xf9, 0x20, 0x2f, 0xb8, 0xd4, 0x48,
+ 0x49, 0x12, 0x20, 0xbe, 0xa3, 0xe4, 0x4e, 0x2d, 0x7c, 0x7e, 0xc4, 0xba,
+ 0x01, 0xdc, 0x97, 0x16, 0x41, 0x21, 0xc6, 0xb1, 0x75, 0x6c, 0x96, 0x1c,
+ 0xee, 0xe6, 0x1a, 0x4d, 0xaa, 0x3e, 0xf2, 0xe8, 0x17, 0xf8, 0x7c, 0x54,
+ 0x9c, 0x61, 0xf0, 0xbd, 0x7b, 0x2d, 0xc4, 0x19, 0x27, 0x68, 0x76, 0xd3,
+ 0x02, 0xba, 0xc0, 0xa5, 0x30, 0x3c, 0x1a, 0x3c, 0x39, 0x74, 0x07, 0x5c,
+ 0x83, 0x93, 0x02, 0x09, 0xce, 0x00, 0x00, 0xb8, 0x03, 0x00, 0x00, 0x65,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x1e, 0x00, 0x06, 0x10,
+ 0x50, 0x00, 0x1a, 0xde, 0xa8, 0x30, 0x3c, 0x9c, 0xc1, 0x12, 0x33, 0xbd,
+ 0x57, 0x74, 0x77, 0xa7, 0xe2, 0x26, 0xbc, 0x1c, 0x3b, 0xad, 0x6b, 0x9d,
+ 0x3f, 0x7d, 0xff, 0xcb, 0xe5, 0x8b, 0xea, 0x2f, 0xfa, 0x9e, 0xe4, 0xdf,
+ 0xd3, 0xbf, 0xb5, 0x7f, 0xb9, 0xf5, 0x60, 0x7e, 0xeb, 0x01, 0xef, 0x92,
+ 0xf6, 0x54, 0xe2, 0xf1, 0xeb, 0x63, 0x74, 0x65, 0x1a, 0xbd, 0x8b, 0x90,
+ 0x0b, 0x11, 0xc4, 0xaa, 0x31, 0xbb, 0x6c, 0x94, 0x5d, 0x63, 0xe4, 0x10,
+ 0x2a, 0xe9, 0x63, 0x3a, 0x26, 0xc6, 0x11, 0xe4, 0x71, 0x80, 0x53, 0x03,
+ 0x46, 0xea, 0x64, 0x69, 0x97, 0x85, 0xac, 0x14, 0x7b, 0x5c, 0xe6, 0xa4,
+ 0x5f, 0x60, 0xc8, 0x06, 0xcc, 0x37, 0xb9, 0x45, 0xbc, 0xd2, 0x23, 0x01,
+ 0xfd, 0x92, 0x71, 0xfc, 0x4d, 0x6d, 0x3a, 0x4c, 0xc3, 0x47, 0xe5, 0x74,
+ 0xf5, 0x53, 0x8d, 0x17, 0x6c, 0xbe, 0xac, 0x3d, 0x17, 0xbf, 0x5c, 0xb6,
+ 0x51, 0x88, 0x9b, 0x80, 0x96, 0x80, 0x5f, 0x34, 0xc4, 0x73, 0xa9, 0x28,
+ 0x1f, 0xc4, 0x92, 0x4c, 0xa4, 0x17, 0x26, 0x0a, 0x81, 0x18, 0xd5, 0x8b,
+ 0x25, 0x95, 0xb2, 0xf7, 0x07, 0x4a, 0x17, 0x69, 0x68, 0x49, 0xb8, 0x00,
+ 0x3e, 0x80, 0x70, 0x02, 0x8b, 0xac, 0x00, 0x1a, 0x13, 0xb8, 0x01, 0x08,
+ 0xdc, 0x80, 0x0b, 0x5d, 0x80, 0x00, 0x77, 0x48, 0xa0, 0x05, 0x17, 0x58,
+ 0x00, 0x34, 0x27, 0x70, 0x02, 0x11, 0xb9, 0x00, 0x16, 0xbb, 0x00, 0x00,
+ 0x0c, 0xfa, 0xb0, 0x01, 0x73, 0xb0, 0x00, 0x0e, 0xe9, 0x14, 0x00, 0x09,
+ 0x13, 0xb8, 0x00, 0x0e, 0xba, 0xc0, 0x78, 0xa6, 0xeb, 0x00, 0x01, 0x72,
+ 0x2a, 0x73, 0xe0, 0xcd, 0x4d, 0x46, 0xae, 0x02, 0x76, 0xf6, 0x10, 0x00,
+ 0x44, 0xdd, 0x46, 0xb2, 0x22, 0x66, 0xbe, 0x81, 0x68, 0xa6, 0x33, 0x67,
+ 0x29, 0xa2, 0x75, 0xee, 0xb9, 0xfa, 0x92, 0x9f, 0xf2, 0xc4, 0xbe, 0x62,
+ 0x82, 0x1e, 0x5c, 0xbd, 0xa5, 0xb5, 0x7d, 0x47, 0x29, 0x4a, 0x41, 0xb4,
+ 0xc2, 0x9e, 0x7a, 0xd0, 0xf4, 0xb1, 0xa4, 0xa4, 0xa1, 0x3a, 0xa7, 0x40,
+ 0x46, 0xdc, 0x6c, 0xbd, 0xb5, 0xaf, 0xbd, 0xfc, 0x85, 0x64, 0xcc, 0x46,
+ 0xb4, 0xc5, 0x5d, 0xbf, 0x62, 0x47, 0xaa, 0xd7, 0xe1, 0x1b, 0x4d, 0x36,
+ 0xad, 0x94, 0x97, 0x1f, 0x4c, 0xa0, 0x96, 0x15, 0x30, 0x22, 0x7b, 0x06,
+ 0xbd, 0x97, 0xf9, 0xd2, 0x82, 0xc1, 0x32, 0xc8, 0x5d, 0x8a, 0x2c, 0x21,
+ 0x28, 0x73, 0xfd, 0x9b, 0x30, 0x7e, 0xff, 0xd1, 0xac, 0x8a, 0xce, 0x43,
+ 0xbd, 0xcb, 0x9b, 0x2c, 0x1f, 0xfa, 0xdc, 0x39, 0xcb, 0xc6, 0x35, 0xb7,
+ 0xd4, 0x06, 0x15, 0x66, 0x63, 0x24, 0xba, 0xd3, 0x76, 0x41, 0x02, 0xe5,
+ 0xd9, 0x14, 0x78, 0x53, 0xe9, 0xa9, 0x12, 0xa1, 0x1e, 0x10, 0x47, 0xbd,
+ 0x84, 0x17, 0xcc, 0xa3, 0xc4, 0xe3, 0xe7, 0x27, 0x50, 0xa1, 0x23, 0x7b,
+ 0x60, 0xb6, 0xfa, 0x4c, 0x70, 0x28, 0xff, 0x3d, 0x4b, 0x42, 0x5c, 0x14,
+ 0x54, 0xdf, 0x04, 0x3f, 0x99, 0xeb, 0x96, 0xef, 0x95, 0x61, 0x71, 0xe7,
+ 0xd2, 0xfe, 0xb0, 0x1f, 0x86, 0x48, 0x18, 0x91, 0x6a, 0xf5, 0x3e, 0x3e,
+ 0x64, 0x4c, 0xb3, 0x0f, 0x32, 0xbc, 0xf4, 0x77, 0x73, 0x46, 0xd3, 0x52,
+ 0x3f, 0xde, 0xde, 0x23, 0xa0, 0x4b, 0xb7, 0xc0, 0x6b, 0x44, 0x20, 0xc4,
+ 0x63, 0xbe, 0xe4, 0xa9, 0x64, 0x11, 0xbc, 0x98, 0x4e, 0xd9, 0x8f, 0x24,
+ 0xca, 0x9c, 0x77, 0xe2, 0xe8, 0xa5, 0x69, 0x5a, 0xde, 0x65, 0xab, 0x7d,
+ 0x11, 0x3d, 0x13, 0x06, 0x55, 0xdd, 0xfd, 0x6c, 0xe2, 0xea, 0x0b, 0xff,
+ 0xfb, 0x05, 0x27, 0x88, 0xa6, 0xd8, 0x91, 0x72, 0x44, 0x34, 0xba, 0xeb,
+ 0x65, 0x8b, 0xb7, 0x32, 0x18, 0xda, 0xa2, 0x47, 0xec, 0xf2, 0xec, 0x62,
+ 0x2e, 0x53, 0x6d, 0x11, 0x65, 0xe0, 0x8f, 0x32, 0x3a, 0x50, 0xaf, 0x52,
+ 0x80, 0x92, 0x9b, 0x70, 0x68, 0x74, 0xb5, 0xd9, 0xff, 0x19, 0x9f, 0xb9,
+ 0x55, 0x1e, 0x97, 0x3c, 0xf0, 0x58, 0x30, 0x99, 0x28, 0xa3, 0x10, 0xce,
+ 0x88, 0xc1, 0x12, 0xbd, 0x3c, 0x38, 0x18, 0x45, 0x84, 0x99, 0x52, 0x60,
+ 0x71, 0x3b, 0xc0, 0xec, 0xf0, 0x3e, 0x83, 0x81, 0xb7, 0x7b, 0x07, 0x3b,
+ 0xc2, 0xec, 0xab, 0xdf, 0x28, 0x7c, 0x70, 0x0d, 0x19, 0x8d, 0x93, 0x21,
+ 0xdb, 0xf9, 0x6c, 0x26, 0x2d, 0x47, 0x15, 0x28, 0x4f, 0xad, 0x74, 0x78,
+ 0x29, 0x06, 0x5d, 0xcb, 0x12, 0xf6, 0x9a, 0x14, 0xa1, 0x97, 0x6c, 0x6d,
+ 0x4e, 0x83, 0x22, 0xc9, 0x52, 0x3e, 0xb7, 0xa6, 0x7c, 0xb1, 0x18, 0x7b,
+ 0x43, 0xd8, 0x46, 0x60, 0xa7, 0x16, 0x2a, 0x06, 0x93, 0xdd, 0xb2, 0xcc,
+ 0x65, 0x40, 0xd5, 0x11, 0xd6, 0x00, 0xc5, 0xdd, 0xa9, 0xd2, 0xc3, 0x1c,
+ 0xed, 0xcb, 0xd4, 0xce, 0xbe, 0xfc, 0x98, 0x86, 0xab, 0xcf, 0x78, 0x0c,
+ 0xe7, 0xd7, 0x30, 0xc1, 0x36, 0x05, 0xfc, 0xef, 0x1b, 0xa4, 0xb9, 0x18,
+ 0xdf, 0xc5, 0x70, 0xdf, 0x4f, 0x73, 0xbd, 0x53, 0x62, 0x3f, 0x47, 0x7c,
+ 0xd2, 0x85, 0xca, 0x28, 0x59, 0xfc, 0x22, 0x82, 0x50, 0x87, 0xdc, 0xa2,
+ 0x80, 0x39, 0x91, 0xf4, 0xf3, 0x2a, 0xa5, 0x1a, 0xae, 0x89, 0x2c, 0x08,
+ 0x0b, 0x89, 0x89, 0x0e, 0xfd, 0xc7, 0x67, 0x35, 0x47, 0x2e, 0x32, 0xb5,
+ 0x24, 0x4c, 0xd6, 0x6d, 0x45, 0x98, 0x2f, 0x73, 0xa2, 0xb0, 0x6a, 0x51,
+ 0x92, 0x35, 0x4a, 0x1a, 0x7c, 0x45, 0x76, 0x64, 0x67, 0x1e, 0xe7, 0x49,
+ 0x5b, 0x27, 0xf5, 0x25, 0x5e, 0x01, 0x9a, 0xa8, 0x74, 0x5d, 0x51, 0xd7,
+ 0xb1, 0xa5, 0xfe, 0xbd, 0x63, 0xc9, 0xe3, 0x8d, 0xf4, 0x10, 0x79, 0x0d,
+ 0xb7, 0x87, 0x98, 0x9f, 0x46, 0xfc, 0x05, 0x56, 0x06, 0x26, 0x49, 0x05,
+ 0x05, 0xf6, 0x64, 0x6c, 0xb5, 0x3a, 0xe8, 0x49, 0xe3, 0xd1, 0xd7, 0x28,
+ 0x3f, 0xd9, 0xa3, 0x99, 0xd1, 0x4c, 0x94, 0x77, 0xa9, 0xa1, 0xbb, 0x91,
+ 0x7d, 0x49, 0x63, 0xa4, 0x9d, 0x73, 0xac, 0x7e, 0x1b, 0xd2, 0xb9, 0x76,
+ 0x87, 0x8b, 0x43, 0x35, 0x64, 0x30, 0x37, 0x82, 0x41, 0x82, 0x8e, 0x3e,
+ 0xdd, 0x07, 0x3b, 0xcc, 0x58, 0x79, 0xf5, 0xee, 0x55, 0x6b, 0xbb, 0x58,
+ 0x41, 0xf1, 0xd6, 0xf3, 0x5b, 0x71, 0xf5, 0xa0, 0x07, 0xcc, 0x13, 0xa4,
+ 0xe4, 0x1e, 0xb6, 0x81, 0x2f, 0x40, 0xab, 0x23, 0x50, 0x07, 0x25, 0x2b,
+ 0x77, 0x21, 0x43, 0xfb, 0x37, 0xf8, 0xe8, 0xa2, 0xe9, 0x93, 0xd0, 0xff,
+ 0xb4, 0xff, 0x56, 0x23, 0x1c, 0xd4, 0x57, 0x19, 0xc4, 0xfd, 0xa7, 0x60,
+ 0x59, 0xd2, 0xc5, 0x78, 0x86, 0xa9, 0x5f, 0xb3, 0xd6, 0x42, 0x3f, 0x4b,
+ 0x4a, 0x17, 0xc3, 0xcd, 0xcb, 0xd8, 0xcc, 0xb2, 0x20, 0x8c, 0xc6, 0x39,
+ 0x04, 0xbf, 0xf7, 0x9c, 0x78, 0xbe, 0xb0, 0xfa, 0x8d, 0x66, 0x10, 0x49,
+ 0x3e, 0x21, 0xbc, 0x44, 0xdc, 0x2f, 0x10, 0x7e, 0xca, 0xf1, 0x53, 0x87,
+ 0x85, 0xde, 0x9f, 0xef, 0xe5, 0x95, 0xe6, 0xed, 0x10, 0x0d, 0x00, 0x54,
+ 0x04, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1,
+ 0x20, 0x00, 0x05, 0x10, 0x20, 0x00, 0x1b, 0xf2, 0xf0, 0x0a, 0xe8, 0xe9,
+ 0x71, 0xe3, 0xf3, 0xcd, 0x53, 0xcc, 0x1c, 0xc5, 0xa0, 0xe7, 0xe6, 0xf6,
+ 0x52, 0x70, 0x6b, 0xf9, 0x66, 0x32, 0x6f, 0x41, 0x45, 0x60, 0x3c, 0xa5,
+ 0xb9, 0xc2, 0xdf, 0x1f, 0xf0, 0xc1, 0x27, 0x2d, 0x31, 0x0a, 0x32, 0x52,
+ 0xba, 0xdc, 0xe6, 0x9e, 0x7a, 0xba, 0xf8, 0xfb, 0xc5, 0x68, 0x58, 0xdc,
+ 0xc1, 0x3d, 0x82, 0xc9, 0x3a, 0x50, 0x25, 0xe1, 0x09, 0x67, 0x22, 0xcb,
+ 0x3d, 0xdd, 0xbe, 0x2f, 0xec, 0x38, 0x8c, 0xad, 0x29, 0x92, 0x66, 0x50,
+ 0x61, 0x2b, 0x4a, 0x62, 0xa5, 0x58, 0x6e, 0x21, 0x00, 0x09, 0xad, 0x0c,
+ 0x76, 0x23, 0x68, 0xe5, 0xd1, 0x6f, 0x5c, 0x6c, 0x64, 0xff, 0x5f, 0x2e,
+ 0x7d, 0xf1, 0xdb, 0x59, 0x58, 0x37, 0x32, 0x20, 0xd7, 0x35, 0x2e, 0xc2,
+ 0x8a, 0x4b, 0x05, 0x8c, 0x8e, 0xe9, 0x61, 0x60, 0x40, 0xd7, 0xe7, 0xf3,
+ 0xc8, 0x36, 0x17, 0xc8, 0x9d, 0x5b, 0x05, 0xc2, 0xd7, 0x7b, 0x9a, 0x28,
+ 0xf7, 0x81, 0xe6, 0x3b, 0x5d, 0xf1, 0x60, 0x5a, 0x82, 0xce, 0x1e, 0x3e,
+ 0xdc, 0x42, 0xe3, 0x9f, 0x1e, 0xbb, 0xb0, 0xb3, 0xb3, 0x45, 0xf0, 0xa1,
+ 0x89, 0xc4, 0x6b, 0x14, 0x39, 0x7b, 0x18, 0x6c, 0x75, 0xdc, 0x7c, 0x7b,
+ 0x54, 0x37, 0x20, 0x03, 0x77, 0x60, 0x00, 0x23, 0x61, 0x40, 0x01, 0x67,
+ 0xd5, 0x80, 0x0d, 0xdd, 0x80, 0x00, 0x8d, 0x85, 0x00, 0x05, 0x9f, 0x56,
+ 0x00, 0x37, 0x76, 0x00, 0x02, 0x36, 0x14, 0x00, 0x16, 0x7d, 0x58, 0x00,
+ 0xdd, 0xd8, 0x00, 0x00, 0x91, 0x3b, 0x80, 0x14, 0x0d, 0xc8, 0x00, 0xdd,
+ 0xd8, 0x00, 0x00, 0x91, 0x3b, 0x80, 0x14, 0x0d, 0xc8, 0x00, 0x0d, 0xdb,
+ 0xb0, 0x10, 0x03, 0xb1, 0xec, 0x32, 0x07, 0x57, 0x60, 0xe5, 0x10, 0xd1,
+ 0xf5, 0xdb, 0x64, 0x3e, 0xc0, 0x40, 0x2c, 0xe0, 0xd4, 0xf7, 0x72, 0x8f,
+ 0x70, 0x5f, 0xa2, 0x3e, 0x5f, 0x89, 0xa4, 0x2a, 0x86, 0x70, 0xde, 0x41,
+ 0xe2, 0x06, 0x7d, 0x62, 0x83, 0xd1, 0x89, 0xf1, 0xa7, 0x10, 0x69, 0x30,
+ 0xcb, 0x10, 0x30, 0xc2, 0xdd, 0x8d, 0x6c, 0x94, 0x50, 0x5f, 0x3b, 0x42,
+ 0x09, 0x07, 0x6e, 0x7a, 0x18, 0x13, 0x25, 0x54, 0x2c, 0xc7, 0x2f, 0x06,
+ 0xde, 0x29, 0xf1, 0xdb, 0xbf, 0xc7, 0xe5, 0xb0, 0xe1, 0x4d, 0xda, 0x88,
+ 0x9a, 0xca, 0x23, 0x76, 0xaa, 0x7b, 0x35, 0xea, 0x4c, 0x24, 0x50, 0xb2,
+ 0xef, 0x4e, 0xc8, 0x3a, 0x8e, 0xaf, 0x8a, 0xfe, 0xd5, 0x40, 0xed, 0x9a,
+ 0xce, 0x0b, 0xab, 0x7e, 0xb2, 0xde, 0x31, 0x7e, 0xa3, 0x91, 0xce, 0x4a,
+ 0x95, 0x68, 0x78, 0x5f, 0xc4, 0x99, 0xcd, 0x38, 0x03, 0x0b, 0x83, 0x47,
+ 0x2e, 0x68, 0xf9, 0xb9, 0x06, 0x38, 0xbe, 0xfc, 0x9f, 0x70, 0x13, 0x0e,
+ 0x10, 0xda, 0x61, 0x3e, 0x3f, 0x4a, 0x75, 0x5d, 0x99, 0x80, 0x15, 0x8a,
+ 0x43, 0x96, 0x40, 0x15, 0x57, 0xfb, 0x82, 0x3a, 0xa4, 0xbb, 0xe0, 0xe1,
+ 0xc7, 0x91, 0xc6, 0x11, 0x5c, 0x9e, 0x16, 0x96, 0x88, 0x21, 0xab, 0x7c,
+ 0xc1, 0xeb, 0x2e, 0x1d, 0x92, 0x21, 0x27, 0xdc, 0x5a, 0xc9, 0x8f, 0xf7,
+ 0x78, 0x61, 0x99, 0x75, 0x08, 0xbf, 0x00, 0x51, 0xa9, 0xa3, 0x86, 0xd5,
+ 0xba, 0x1a, 0x68, 0xa1, 0x99, 0x6b, 0x8e, 0x37, 0x11, 0x24, 0x2c, 0x86,
+ 0xef, 0x69, 0x23, 0xcf, 0x0f, 0x21, 0x36, 0x9b, 0x7b, 0xf6, 0xf0, 0xa4,
+ 0xf9, 0x49, 0x9d, 0xe1, 0x4e, 0x2c, 0x32, 0x61, 0xb5, 0x28, 0x71, 0x31,
+ 0xcc, 0x59, 0xf6, 0x3d, 0xda, 0x61, 0x03, 0x41, 0xa6, 0xf0, 0x0a, 0x20,
+ 0x44, 0xe8, 0x0e, 0x18, 0xf9, 0xab, 0x9c, 0xb0, 0x34, 0x2f, 0x6f, 0x8c,
+ 0x30, 0xcf, 0x10, 0x7c, 0x29, 0xc5, 0x93, 0xae, 0x26, 0x1c, 0x96, 0xc7,
+ 0xd5, 0x72, 0x08, 0x6c, 0x13, 0x6e, 0x9b, 0x7e, 0x4b, 0x85, 0x14, 0x72,
+ 0x0b, 0x8b, 0xa0, 0xc9, 0x4d, 0x52, 0x45, 0xf0, 0x35, 0xf9, 0xa5, 0x68,
+ 0xbb, 0x86, 0x00, 0x2c, 0x73, 0xc9, 0xad, 0xe4, 0xad, 0x2f, 0xa7, 0x5c,
+ 0xb3, 0x9d, 0xc3, 0xde, 0x7c, 0xfd, 0x96, 0x9e, 0x11, 0xfb, 0x8a, 0x22,
+ 0x74, 0x3b, 0xdf, 0xf5, 0x33, 0xe5, 0x26, 0x52, 0xb9, 0x02, 0xb2, 0x22,
+ 0xb1, 0x2c, 0xc8, 0x84, 0x6c, 0x36, 0x88, 0x32, 0x00, 0x88, 0x8b, 0xba,
+ 0x75, 0xec, 0x28, 0xa2, 0xdd, 0x3b, 0xb6, 0x9d, 0xac, 0xbb, 0xb2, 0xfb,
+ 0x1c, 0x77, 0x75, 0x3e, 0x91, 0x9e, 0x75, 0xbf, 0x71, 0x16, 0x5c, 0xb6,
+ 0xfe, 0xf4, 0xe4, 0xb7, 0x03, 0x75, 0x0f, 0xf2, 0x9d, 0xa4, 0x9a, 0x23,
+ 0xf0, 0xc8, 0x99, 0xa3, 0x0e, 0x44, 0x58, 0x01, 0xbf, 0x04, 0x11, 0x58,
+ 0x8f, 0x3f, 0x34, 0x97, 0xf1, 0xcf, 0xe3, 0xbd, 0x5e, 0x22, 0x7f, 0x52,
+ 0x49, 0x3f, 0xfe, 0x5a, 0x79, 0x21, 0xaf, 0xb5, 0x3c, 0x23, 0x5a, 0x12,
+ 0xdc, 0x48, 0x29, 0x30, 0xa5, 0xa8, 0xec, 0x0a, 0xf8, 0x70, 0xeb, 0xeb,
+ 0x0c, 0x79, 0xd3, 0x4f, 0x55, 0xc9, 0xb5, 0x86, 0xca, 0x29, 0x91, 0x2e,
+ 0x78, 0x92, 0x9e, 0xce, 0x3f, 0x3a, 0xf3, 0x04, 0xaa, 0x21, 0xb6, 0x33,
+ 0xca, 0x64, 0x0f, 0xa1, 0x65, 0x35, 0x3d, 0xd9, 0x1b, 0xb7, 0x83, 0xb7,
+ 0x1f, 0x31, 0x14, 0xae, 0x80, 0x13, 0xd6, 0x83, 0x87, 0xc4, 0x53, 0x1f,
+ 0xd4, 0xcd, 0x8e, 0x78, 0x5c, 0xb3, 0x47, 0x9c, 0x40, 0x91, 0xde, 0x0b,
+ 0x1f, 0x6e, 0xb9, 0x61, 0xd2, 0x83, 0x01, 0x3e, 0x7d, 0xd1, 0x84, 0x03,
+ 0x4a, 0x75, 0x6c, 0x9c, 0x0a, 0xe1, 0x9d, 0xb1, 0x15, 0x12, 0x43, 0x15,
+ 0x64, 0x69, 0xf2, 0xb9, 0x06, 0x05, 0x9a, 0xc4, 0x26, 0x2a, 0xca, 0xf6,
+ 0x5b, 0xfe, 0xcb, 0xde, 0x8f, 0x0e, 0x91, 0x45, 0xe1, 0x80, 0x78, 0x68,
+ 0x4c, 0xb9, 0xdf, 0xc2, 0x56, 0x7d, 0xca, 0x2a, 0xa6, 0xe4, 0x37, 0xcc,
+ 0xeb, 0x4e, 0x70, 0xf8, 0x5e, 0xb7, 0xfa, 0x4d, 0xe7, 0x7a, 0xd0, 0x61,
+ 0x63, 0x8f, 0x27, 0xd7, 0x76, 0x5f, 0xf3, 0xb5, 0x92, 0xb7, 0xbe, 0x31,
+ 0x03, 0x48, 0x53, 0x21, 0xeb, 0x66, 0x4b, 0x74, 0xc9, 0x48, 0xd3, 0x34,
+ 0xee, 0x02, 0x13, 0xbc, 0x09, 0x2f, 0x97, 0x9f, 0xc1, 0xb0, 0x0e, 0x3f,
+ 0x8e, 0x7d, 0xca, 0x1f, 0x98, 0x99, 0x26, 0x65, 0x34, 0x41, 0xdc, 0x3e,
+ 0x54, 0x49, 0x69, 0x9d, 0xbc, 0x0e, 0xfa, 0x79, 0x0e, 0xb8, 0x0a, 0x36,
+ 0xaa, 0xd0, 0x26, 0x75, 0xc4, 0xfe, 0x02, 0x7e, 0x15, 0x43, 0xcc, 0x24,
+ 0x5d, 0x79, 0xab, 0xa9, 0x67, 0xfe, 0xde, 0xab, 0x36, 0xa2, 0xbf, 0x09,
+ 0xae, 0x9d, 0x81, 0xbe, 0xc4, 0xf0, 0x06, 0x34, 0x28, 0x6f, 0xb0, 0xd2,
+ 0x28, 0x33, 0xe1, 0x99, 0xcd, 0x16, 0x1b, 0x38, 0xda, 0xb8, 0x97, 0x9a,
+ 0xf1, 0x74, 0x06, 0xcb, 0x8b, 0x6f, 0x24, 0x00, 0xb5, 0x94, 0x9c, 0xf8,
+ 0x77, 0xe3, 0x56, 0x1e, 0xd1, 0x24, 0x3f, 0x58, 0xca, 0xd6, 0x2d, 0x4f,
+ 0xbc, 0x3a, 0x38, 0x1c, 0x8d, 0x71, 0x0e, 0xb2, 0xb9, 0x3e, 0x54, 0x94,
+ 0xcd, 0x2d, 0x22, 0x89, 0xdc, 0x8c, 0xdd, 0x30, 0x3e, 0xcc, 0x4f, 0x92,
+ 0x0f, 0x58, 0x49, 0x3d, 0x29, 0xed, 0xca, 0xc4, 0xe5, 0x8a, 0x00, 0x0c,
+ 0xb6, 0xf7, 0x77, 0x0c, 0x94, 0xd4, 0xc1, 0xd6, 0x3b, 0x6b, 0xdd, 0x94,
+ 0x43, 0x73, 0xcf, 0x24, 0x8c, 0xd9, 0xd3, 0xbd, 0x1d, 0x32, 0x79, 0x1c,
+ 0x83, 0x63, 0xb4, 0x25, 0x0d, 0xff, 0xf2, 0xec, 0xdb, 0x34, 0x50, 0x8a,
+ 0x2b, 0xb3, 0x6f, 0x49, 0x18, 0x1e, 0xfa, 0x2e, 0x97, 0xbf, 0x8f, 0x2f,
+ 0xa7, 0xf7, 0x69, 0xe4, 0x3f, 0x11, 0x69, 0x18, 0x89, 0x18, 0x2a, 0x5f,
+ 0xa2, 0xe1, 0x0d, 0x44, 0xf2, 0x0d, 0x75, 0x14, 0x9f, 0xe8, 0x07, 0x96,
+ 0xef, 0xad, 0xbd, 0x98, 0xd5, 0xac, 0x5c, 0x70, 0xe6, 0x34, 0xc5, 0xa1,
+ 0xf5, 0xac, 0xaf, 0xe7, 0x07, 0x69, 0xcb, 0xc6, 0x33, 0x9b, 0x6c, 0x83,
+ 0x13, 0xee, 0x5c, 0x2e, 0x72, 0x1c, 0xb9, 0x60, 0x42, 0x79, 0x9e, 0x6a,
+ 0xc2, 0x43, 0x91, 0x8f, 0xde, 0xf1, 0xcb, 0xf9, 0x7b, 0xe1, 0x3c, 0xa8,
+ 0x94, 0xac, 0xdd, 0x61, 0x81, 0x4a, 0x5c, 0x71, 0x48, 0x63, 0x3e, 0x2d,
+ 0x28, 0x70, 0x00, 0x64, 0x04, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb1, 0x16, 0x00, 0x04, 0x10, 0x1c, 0x00, 0x18, 0x01,
+ 0x44, 0x83, 0x49, 0x27, 0xe2, 0x59, 0x4a, 0xba, 0xc1, 0xfd, 0xc2, 0xba,
+ 0x86, 0x3f, 0xbc, 0x9e, 0xd1, 0x73, 0x3b, 0xfe, 0xfb, 0x09, 0x06, 0x9d,
+ 0x33, 0x37, 0x49, 0x2e, 0x91, 0x99, 0x95, 0xb5, 0x55, 0xc1, 0x4f, 0x86,
+ 0x8f, 0xbb, 0xff, 0x03, 0xab, 0xf9, 0xc7, 0xc9, 0x64, 0xdd, 0x0a, 0xf2,
+ 0x99, 0x20, 0x72, 0x93, 0xc0, 0xfc, 0x0c, 0xf6, 0xaa, 0xe8, 0x99, 0xaf,
+ 0xce, 0x65, 0x1c, 0xd2, 0xca, 0x13, 0x3b, 0x1e, 0x29, 0xa5, 0xf1, 0xb6,
+ 0x6f, 0x4c, 0x97, 0x92, 0x81, 0x0f, 0x77, 0x7c, 0xc2, 0x9c, 0xd2, 0x74,
+ 0x71, 0x33, 0xdd, 0x78, 0xa9, 0xbe, 0xf0, 0xf0, 0x92, 0xb1, 0x3b, 0x05,
+ 0x00, 0x29, 0xa4, 0x9f, 0x2f, 0x9b, 0x11, 0xe0, 0x6a, 0xc7, 0x79, 0x8f,
+ 0x9f, 0x88, 0xf4, 0x50, 0x66, 0x57, 0x12, 0x54, 0x9f, 0x77, 0xe2, 0x44,
+ 0x62, 0x00, 0x89, 0x5d, 0xc6, 0xc1, 0x32, 0xd3, 0xd7, 0xef, 0xa1, 0x66,
+ 0x7b, 0x41, 0x8e, 0xa1, 0xb0, 0x96, 0x38, 0xd1, 0xf1, 0x27, 0x2a, 0xae,
+ 0x6e, 0x78, 0xc8, 0x03, 0xbb, 0xbb, 0xbb, 0xbb, 0xbc, 0x11, 0xba, 0x5b,
+ 0x46, 0xd7, 0x05, 0x5f, 0xe8, 0x27, 0x6c, 0xc0, 0x4e, 0x11, 0x2e, 0xfb,
+ 0xf6, 0xb0, 0x4c, 0x80, 0x4e, 0xf5, 0x80, 0x41, 0x61, 0x43, 0xee, 0xd6,
+ 0x15, 0xae, 0xbd, 0xfc, 0x1d, 0xcb, 0x1c, 0xd6, 0xe1, 0xcd, 0x9e, 0x1d,
+ 0xf0, 0x70, 0xe8, 0x4b, 0x4a, 0x3f, 0x7a, 0xe8, 0xc7, 0x28, 0x7b, 0xed,
+ 0x40, 0xb0, 0xf5, 0x42, 0xda, 0xbc, 0xe3, 0xd3, 0x94, 0x74, 0x89, 0xeb,
+ 0xad, 0x37, 0xad, 0x30, 0xce, 0x46, 0x7a, 0xaf, 0x4c, 0xab, 0xa4, 0x39,
+ 0x09, 0x52, 0x55, 0xe9, 0xda, 0xbf, 0x9d, 0x8d, 0xb3, 0x8d, 0xb0, 0x14,
+ 0x21, 0xdd, 0x00, 0x22, 0x6c, 0x99, 0x7b, 0x19, 0x34, 0x39, 0xd9, 0xbf,
+ 0x18, 0xd2, 0x53, 0xbd, 0x05, 0xc8, 0x96, 0xe5, 0x4c, 0xf5, 0xff, 0xc7,
+ 0x23, 0x28, 0xff, 0x1b, 0xda, 0xe1, 0xeb, 0x61, 0x3c, 0x38, 0xf0, 0xa8,
+ 0x1c, 0x1d, 0x11, 0xe9, 0xbe, 0x56, 0x5d, 0xb9, 0x50, 0xe3, 0xc9, 0x03,
+ 0xbf, 0xf4, 0x48, 0xf6, 0x88, 0x46, 0x89, 0x1e, 0x3f, 0x04, 0x1b, 0xc4,
+ 0x24, 0xa8, 0xd8, 0x6d, 0x5f, 0x09, 0xab, 0x8d, 0xac, 0x02, 0xf4, 0x31,
+ 0xf3, 0xae, 0xfd, 0x59, 0x52, 0x30, 0x81, 0xfd, 0xd0, 0x07, 0xb3, 0xc3,
+ 0x32, 0x13, 0xa8, 0xe9, 0xfe, 0xf4, 0x32, 0x9e, 0x4d, 0xc8, 0x0b, 0xf7,
+ 0x6d, 0x4c, 0xe2, 0xea, 0x88, 0x77, 0x73, 0x06, 0x03, 0xc1, 0x65, 0x22,
+ 0xfe, 0x42, 0xe8, 0xc9, 0x6d, 0xca, 0xc8, 0x7b, 0x77, 0xef, 0xa9, 0xbe,
+ 0x8f, 0xb4, 0x90, 0x12, 0xa4, 0xb5, 0x2f, 0x23, 0x64, 0xc7, 0x91, 0x1e,
+ 0x1c, 0x77, 0x33, 0xab, 0xce, 0x2f, 0xb1, 0x34, 0x8f, 0xfb, 0x9a, 0xf7,
+ 0xb6, 0x9e, 0x5e, 0x18, 0x63, 0x10, 0x97, 0x7e, 0xca, 0xf6, 0xe6, 0x90,
+ 0x1a, 0x71, 0x24, 0xa9, 0x40, 0xf6, 0x45, 0x3c, 0xa9, 0xcc, 0xc3, 0x32,
+ 0x6c, 0x88, 0x73, 0xff, 0x77, 0xfe, 0x16, 0x34, 0xb5, 0xad, 0x13, 0x3b,
+ 0x6d, 0x64, 0x9f, 0x3d, 0x96, 0xf8, 0x92, 0xdb, 0xe8, 0xb2, 0x6a, 0xe2,
+ 0x67, 0x1a, 0x42, 0xc3, 0x79, 0xb3, 0xa1, 0x2a, 0x88, 0x13, 0xcc, 0x3a,
+ 0xe2, 0xc8, 0x39, 0x94, 0xdf, 0x2c, 0x53, 0x21, 0xb2, 0x84, 0x18, 0x83,
+ 0x56, 0x1d, 0x11, 0x81, 0xb1, 0xd2, 0xfe, 0x64, 0x45, 0xb9, 0xc1, 0x9b,
+ 0xae, 0x12, 0xa4, 0x49, 0xa4, 0xa3, 0xa8, 0x29, 0xb5, 0xd5, 0xd1, 0xed,
+ 0x8f, 0xc7, 0x5d, 0xc6, 0x5d, 0x43, 0xe7, 0x74, 0x20, 0xae, 0x22, 0x2e,
+ 0x0d, 0xa2, 0xcf, 0x4f, 0x4d, 0x31, 0x61, 0xf7, 0xda, 0xf9, 0x8c, 0x13,
+ 0x0c, 0x3d, 0xfa, 0xc7, 0xc5, 0xa7, 0x5a, 0x2e, 0x1e, 0x04, 0x9c, 0x05,
+ 0xc3, 0x5d, 0xf0, 0xa7, 0x9d, 0xd1, 0x09, 0xd5, 0x91, 0x50, 0xcc, 0x8e,
+ 0x1e, 0x38, 0x74, 0x62, 0x77, 0x86, 0x78, 0x54, 0xf8, 0x8e, 0x36, 0xf2,
+ 0x87, 0x75, 0x5c, 0xf1, 0x6c, 0x72, 0xc0, 0x7d, 0xc1, 0xf3, 0xcb, 0x22,
+ 0x82, 0xd4, 0x62, 0x6d, 0xad, 0xca, 0x22, 0xd4, 0x4a, 0xd0, 0xdb, 0x48,
+ 0x62, 0x2b, 0x37, 0x54, 0xdb, 0x2a, 0xa8, 0x36, 0x72, 0x18, 0x38, 0xca,
+ 0xbf, 0x88, 0xac, 0x3c, 0x3c, 0xa2, 0x27, 0xc2, 0x0b, 0x79, 0xc2, 0xc6,
+ 0x8d, 0xb9, 0xaf, 0xba, 0x8d, 0x09, 0xe1, 0x60, 0x0a, 0xdf, 0xaf, 0xff,
+ 0x55, 0x31, 0xc5, 0x7b, 0x4b, 0x8b, 0x33, 0x33, 0x14, 0x34, 0x7a, 0x1f,
+ 0x60, 0x8b, 0x0b, 0xf9, 0x97, 0x35, 0x58, 0x10, 0x3a, 0xf3, 0x14, 0x01,
+ 0xfd, 0x21, 0xc8, 0xdb, 0xa3, 0x4d, 0xcf, 0x8e, 0xd0, 0x1c, 0x32, 0x4d,
+ 0x79, 0xc4, 0xf2, 0x89, 0xbe, 0x71, 0x7c, 0x73, 0xf5, 0x93, 0x08, 0x21,
+ 0x40, 0xc1, 0x6d, 0x15, 0x0f, 0x8b, 0xe1, 0x67, 0x70, 0xa2, 0xd0, 0x3f,
+ 0x51, 0xc6, 0x48, 0x32, 0x17, 0x59, 0x3b, 0xa3, 0x7f, 0x19, 0xb0, 0x15,
+ 0x61, 0x4b, 0xf0, 0xdb, 0x86, 0x3a, 0xb0, 0x0e, 0xfe, 0xca, 0x66, 0xa8,
+ 0xeb, 0xc2, 0x59, 0x93, 0x5e, 0x70, 0x37, 0xbe, 0xdf, 0x69, 0xc4, 0x79,
+ 0xe9, 0xd5, 0xc9, 0xc0, 0x20, 0x7a, 0x9a, 0x70, 0x3b, 0xbd, 0xb0, 0xa7,
+ 0x6c, 0x67, 0x41, 0x54, 0x5d, 0xbb, 0xe7, 0x1f, 0x8b, 0xbf, 0xcc, 0x93,
+ 0x9a, 0xac, 0xb2, 0xef, 0x65, 0x4a, 0xf5, 0xbb, 0x29, 0x22, 0x24, 0x6c,
+ 0x96, 0xc0, 0x66, 0x46, 0x15, 0x33, 0x89, 0x7d, 0x76, 0xa2, 0xa5, 0x73,
+ 0xed, 0x91, 0xa8, 0x49, 0x1b, 0x98, 0x75, 0xd5, 0x5a, 0xb3, 0x00, 0xb3,
+ 0x5c, 0x0f, 0x42, 0x46, 0xb2, 0xbe, 0x85, 0x7e, 0x53, 0x71, 0xd3, 0x28,
+ 0xaf, 0xf5, 0x9f, 0x91, 0x84, 0x03, 0xe5, 0xf9, 0x90, 0x90, 0xa1, 0x37,
+ 0xf8, 0x35, 0xdb, 0x4a, 0x19, 0x61, 0xc7, 0x0a, 0xbb, 0x6a, 0xa8, 0x23,
+ 0xa9, 0x2f, 0xf1, 0xef, 0x10, 0x94, 0x45, 0xed, 0x4b, 0x2a, 0xe2, 0xd3,
+ 0xea, 0x78, 0x40, 0x63, 0x69, 0xcb, 0xb3, 0xf9, 0x9c, 0x45, 0x7c, 0x23,
+ 0x48, 0x7d, 0x29, 0x99, 0x64, 0x65, 0x28, 0x02, 0x6c, 0x52, 0xc1, 0x06,
+ 0xa5, 0x27, 0x71, 0x15, 0x22, 0x51, 0x22, 0xa9, 0x06, 0x3c, 0x6e, 0x77,
+ 0xe9, 0xe6, 0xe6, 0x1f, 0xa1, 0x31, 0x6a, 0x6f, 0x67, 0x03, 0xe3, 0x9a,
+ 0x69, 0xf7, 0xdb, 0x41, 0x86, 0x23, 0x74, 0xfd, 0x27, 0x61, 0xdd, 0xcf,
+ 0x5e, 0x3e, 0x39, 0x0c, 0xf4, 0xe1, 0x94, 0x25, 0x9c, 0xff, 0x1f, 0xf2,
+ 0xb4, 0xd2, 0x9d, 0x2b, 0xd3, 0x82, 0xeb, 0xc5, 0xbb, 0x8d, 0x81, 0x44,
+ 0x78, 0x5b, 0xb1, 0x50, 0xa1, 0x71, 0x6b, 0xf0, 0xbf, 0xf8, 0xf9, 0x4f,
+ 0xbe, 0x2a, 0x96, 0x0b, 0xe4, 0xa8, 0x60, 0xbf, 0x24, 0x2b, 0x52, 0x26,
+ 0xdc, 0x84, 0xde, 0x1c, 0xd7, 0x90, 0x7e, 0x12, 0x16, 0x70, 0xe9, 0xd3,
+ 0x0e, 0x2f, 0x38, 0x7a, 0xee, 0x26, 0xd2, 0xe1, 0xfb, 0x09, 0x91, 0x62,
+ 0xf2, 0x08, 0x26, 0x70, 0x10, 0x11, 0xb9, 0x90, 0x78, 0x77, 0x1d, 0x87,
+ 0x85, 0xd3, 0x89, 0x46, 0x98, 0xac, 0xa7, 0xef, 0x5a, 0xa8, 0x6e, 0x32,
+ 0x4a, 0x70, 0xd0, 0x17, 0xf2, 0x25, 0x9d, 0x40, 0x20, 0x9c, 0xf6, 0x99,
+ 0xc0, 0x60, 0x62, 0x98, 0x13, 0x53, 0x0a, 0x7d, 0x3a, 0x13, 0xf9, 0x1e,
+ 0x23, 0x20, 0x09, 0xa9, 0x6c, 0x9a, 0x72, 0x5f, 0xba, 0x25, 0x85, 0xf6,
+ 0x5a, 0x4c, 0xb9, 0x06, 0x52, 0x8f, 0xa7, 0xd0, 0x26, 0x09, 0xf4, 0x14,
+ 0xfe, 0x6b, 0x67, 0x48, 0x34, 0xac, 0xfc, 0x34, 0x14, 0x40, 0xba, 0xea,
+ 0xa3, 0x63, 0x25, 0xa2, 0xbe, 0xfb, 0x0c, 0x9f, 0xde, 0x65, 0x0f, 0x75,
+ 0x1a, 0x0d, 0x24, 0xa5, 0xab, 0x1c, 0x5b, 0x45, 0xb6, 0x2a, 0x5b, 0xd1,
+ 0x6a, 0x97, 0x4f, 0x5b, 0x2b, 0x55, 0x5b, 0x06, 0xfa, 0x03, 0x91, 0xcc,
+ 0x31, 0x18, 0xfa, 0xef, 0x88, 0xbf, 0xd6, 0x27, 0x23, 0x56, 0x93, 0xa1,
+ 0x00, 0xf5, 0x76, 0x07, 0x08, 0xbb, 0x40, 0xf1, 0x35, 0xb7, 0xc2, 0xf7,
+ 0xca, 0x4e, 0x1d, 0x79, 0x04, 0xc6, 0x04, 0x89, 0xf1, 0x1a, 0x9e, 0x16,
+ 0x11, 0xb8, 0x02, 0xb7, 0x08, 0x32, 0x0a, 0x00, 0x20, 0xb7, 0xb6, 0x62,
+ 0x64, 0x68, 0x53, 0x35, 0xee, 0x58, 0xd0, 0x44, 0x91, 0x00, 0x00, 0x62,
+ 0x04, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31,
+ 0x1b, 0x00, 0x00, 0x10, 0x14, 0x14, 0x7b, 0x55, 0xb5, 0xc6, 0xfb, 0x8a,
+ 0x40, 0x29, 0x5d, 0xdc, 0xd5, 0x7e, 0xe6, 0xe3, 0x69, 0x39, 0xd1, 0x6e,
+ 0x14, 0x29, 0x99, 0xbd, 0x49, 0xe1, 0xd9, 0xbd, 0x81, 0xfa, 0xc9, 0x76,
+ 0x0d, 0x2c, 0x42, 0xf2, 0x91, 0xc0, 0x09, 0xf5, 0xe3, 0xed, 0x9d, 0x2e,
+ 0xc0, 0xd7, 0x91, 0x2a, 0x17, 0xb6, 0x57, 0x42, 0x27, 0xd1, 0x88, 0xa0,
+ 0x49, 0x4a, 0x8d, 0x3d, 0x4b, 0x00, 0xd7, 0x89, 0xf0, 0xaa, 0x39, 0x5f,
+ 0x7e, 0x32, 0xb5, 0x81, 0xc0, 0x3a, 0xa7, 0x22, 0x58, 0xb9, 0x22, 0x31,
+ 0x34, 0x88, 0x62, 0x9a, 0xc7, 0x3a, 0x12, 0xa7, 0x77, 0x66, 0x46, 0x1a,
+ 0xab, 0xdd, 0xe1, 0x66, 0x8d, 0x65, 0xd1, 0x7a, 0x00, 0x12, 0xba, 0xe0,
+ 0xfd, 0xf8, 0xf0, 0xa5, 0xfe, 0x1e, 0x80, 0x77, 0x73, 0x5e, 0x33, 0x65,
+ 0x71, 0x76, 0x8e, 0xd0, 0x72, 0x51, 0x23, 0xd9, 0xb7, 0x4a, 0x70, 0x67,
+ 0xd6, 0xc6, 0x3b, 0x3d, 0x75, 0xb7, 0x2f, 0xba, 0xa4, 0x4d, 0x6a, 0xb3,
+ 0x5d, 0x50, 0x69, 0x11, 0x64, 0x07, 0xf3, 0x3f, 0x08, 0x03, 0x88, 0x3e,
+ 0x27, 0xbb, 0x02, 0xc0, 0x1d, 0x3f, 0x51, 0xc2, 0xa5, 0x0b, 0x77, 0x74,
+ 0xb0, 0xe5, 0x4c, 0xe8, 0x00, 0x73, 0x7c, 0x52, 0xbd, 0xf9, 0x14, 0xe3,
+ 0x63, 0x4d, 0xf6, 0x1f, 0xa2, 0xfc, 0xc8, 0xe2, 0xb3, 0x46, 0xad, 0x62,
+ 0xc6, 0x8d, 0x1a, 0xc5, 0x9b, 0x64, 0xea, 0x6e, 0xea, 0x6f, 0x05, 0x6c,
+ 0x3b, 0x0d, 0x06, 0x7e, 0x5a, 0x6b, 0x5b, 0x42, 0x77, 0xea, 0xcc, 0xb4,
+ 0x22, 0x9a, 0x00, 0x9f, 0xa3, 0x3c, 0x0a, 0x2b, 0xc0, 0x04, 0x81, 0xd4,
+ 0xe3, 0xbd, 0x46, 0x3a, 0xd8, 0xb9, 0x33, 0x6a, 0x62, 0x26, 0xb5, 0xf0,
+ 0x7f, 0x6f, 0xfe, 0x92, 0x87, 0xf0, 0xb1, 0xed, 0x35, 0x02, 0x4d, 0xe2,
+ 0xd4, 0x87, 0x5b, 0x37, 0xd5, 0xb5, 0xdd, 0x16, 0x7e, 0xe7, 0xe8, 0x85,
+ 0xa9, 0x6e, 0x49, 0x24, 0x93, 0xab, 0xfd, 0x01, 0xa1, 0xb2, 0xea, 0x21,
+ 0x45, 0xee, 0xa2, 0x1d, 0x4c, 0x40, 0xce, 0x00, 0xa9, 0xed, 0xa1, 0xa9,
+ 0x22, 0x89, 0x46, 0x1a, 0x73, 0xd2, 0xfe, 0x1a, 0x59, 0xd3, 0x69, 0x04,
+ 0x91, 0xd0, 0x2e, 0x92, 0x4d, 0x0f, 0x08, 0x69, 0x89, 0xd6, 0xd3, 0x61,
+ 0x01, 0x50, 0x3b, 0xc7, 0x0e, 0xd6, 0xc8, 0xb3, 0xe3, 0x77, 0x61, 0x25,
+ 0x6e, 0xd4, 0x71, 0xe3, 0x2e, 0x10, 0x20, 0xe5, 0x7b, 0xbe, 0xbc, 0x4f,
+ 0x76, 0x67, 0x8f, 0xdb, 0x83, 0x15, 0x49, 0xb3, 0x51, 0xe3, 0x12, 0xe8,
+ 0x11, 0x23, 0xc3, 0xe0, 0xed, 0xbe, 0xbc, 0x0c, 0xca, 0x0e, 0xb0, 0xe7,
+ 0x5a, 0x3d, 0xea, 0xfa, 0x80, 0x18, 0x84, 0xc7, 0x03, 0xff, 0x11, 0xe4,
+ 0x09, 0x39, 0x18, 0xde, 0x79, 0x79, 0xe5, 0x26, 0x74, 0xd0, 0x47, 0x81,
+ 0x79, 0x6d, 0x10, 0xa3, 0xa9, 0xf3, 0x02, 0xca, 0xd6, 0x84, 0xd0, 0x64,
+ 0xb9, 0x6f, 0xb8, 0x5f, 0xd2, 0xbe, 0x2e, 0x94, 0xa0, 0x4b, 0x13, 0x1d,
+ 0x8e, 0x04, 0x53, 0xb3, 0x9d, 0x0d, 0xf7, 0x51, 0xb6, 0xe9, 0xb4, 0x88,
+ 0xd8, 0x24, 0x4a, 0xe4, 0xbf, 0x1b, 0x2d, 0x89, 0x87, 0x36, 0x7a, 0xf7,
+ 0x06, 0xe2, 0x6f, 0x2d, 0x30, 0x7b, 0x16, 0x2b, 0xa8, 0x60, 0xdb, 0x56,
+ 0x38, 0x0c, 0xe4, 0x9e, 0xaa, 0xcd, 0xd8, 0xe0, 0x00, 0x0b, 0x7a, 0x76,
+ 0xd0, 0x99, 0x3c, 0x2e, 0xa6, 0x65, 0x14, 0xf5, 0x90, 0x12, 0x10, 0xc1,
+ 0x73, 0x23, 0x36, 0xc2, 0xc8, 0x14, 0xdc, 0xb6, 0xf3, 0x95, 0x0a, 0x6c,
+ 0xc7, 0x9b, 0xcc, 0x8c, 0x4e, 0xc7, 0x79, 0xea, 0x17, 0xc3, 0x1e, 0x6c,
+ 0x2c, 0x4a, 0xa8, 0x5f, 0xfb, 0xf3, 0xca, 0xee, 0xd2, 0xb3, 0x19, 0xfe,
+ 0xfe, 0xeb, 0xfc, 0x55, 0x50, 0xcf, 0xfe, 0xec, 0xbe, 0x78, 0x9d, 0xd7,
+ 0x3b, 0x76, 0xa3, 0xae, 0xbf, 0x60, 0x01, 0xfa, 0x5a, 0xf6, 0xab, 0x7f,
+ 0xeb, 0x10, 0x9e, 0x9f, 0x52, 0x65, 0xae, 0xce, 0xa7, 0x99, 0xde, 0xdb,
+ 0xa2, 0xea, 0x5d, 0x00, 0x0a, 0x81, 0x7b, 0xed, 0xf9, 0xfd, 0xcc, 0x90,
+ 0x33, 0xf6, 0x77, 0x84, 0x4f, 0xdb, 0xea, 0x67, 0x43, 0xc0, 0xaf, 0x0b,
+ 0x43, 0x32, 0xc4, 0x71, 0x8f, 0x7f, 0xf8, 0x0d, 0xbd, 0xf0, 0x9c, 0x77,
+ 0x80, 0x78, 0xc0, 0x08, 0xbc, 0x6b, 0xfd, 0x92, 0x58, 0x6d, 0x97, 0xf2,
+ 0x87, 0x00, 0x72, 0xab, 0x98, 0xd9, 0xb1, 0xe3, 0x3b, 0x39, 0xe6, 0x85,
+ 0xdc, 0xb5, 0x1d, 0xa1, 0xda, 0x71, 0x9b, 0x4d, 0x8e, 0xd3, 0x5f, 0xd6,
+ 0xab, 0x9f, 0xce, 0x93, 0x93, 0x6e, 0x9a, 0x5b, 0x8c, 0x59, 0x38, 0xe0,
+ 0x89, 0x29, 0xc5, 0x62, 0xe8, 0xd6, 0xa9, 0x4a, 0xfa, 0x2a, 0xbb, 0xc7,
+ 0x29, 0xa8, 0x55, 0xd8, 0x40, 0x7c, 0xb7, 0xad, 0x4d, 0x6c, 0xc2, 0x41,
+ 0x14, 0xe2, 0xcb, 0x32, 0x6c, 0xf3, 0x58, 0x8e, 0x34, 0x5d, 0x31, 0xdf,
+ 0x54, 0xf2, 0x9c, 0xa7, 0xb5, 0x96, 0xf9, 0x31, 0xfd, 0xb1, 0x63, 0xc7,
+ 0xfb, 0xd7, 0xfc, 0xaa, 0xee, 0x71, 0xb3, 0xf1, 0x3c, 0x11, 0x1f, 0x82,
+ 0x3e, 0x54, 0x4a, 0xe9, 0x4c, 0x04, 0x56, 0xf9, 0x86, 0xc7, 0x55, 0x07,
+ 0xaf, 0xf5, 0x01, 0xf8, 0x29, 0x04, 0x73, 0xc1, 0x6e, 0xbc, 0xd9, 0x52,
+ 0x73, 0x4f, 0x62, 0x6a, 0x8e, 0x47, 0xa5, 0x13, 0xa6, 0x69, 0xe5, 0xf7,
+ 0x43, 0xa7, 0x51, 0xe8, 0xf1, 0x7e, 0x5e, 0xc6, 0xa8, 0x33, 0x30, 0xee,
+ 0x3c, 0x64, 0xa1, 0x47, 0xac, 0xe8, 0x00, 0x20, 0xca, 0xe8, 0x5e, 0xa6,
+ 0x1d, 0xd9, 0xf9, 0x71, 0x02, 0xdc, 0x17, 0xa6, 0xd1, 0x7b, 0xd2, 0x22,
+ 0xb6, 0x9d, 0x96, 0xa3, 0x73, 0xe9, 0x58, 0x79, 0x74, 0x43, 0xee, 0xc0,
+ 0x73, 0xe2, 0xb5, 0xa5, 0xb1, 0x5e, 0x31, 0x6c, 0xa6, 0xf7, 0x74, 0x86,
+ 0x3c, 0xa6, 0xd9, 0x64, 0x51, 0x0b, 0xdd, 0xfd, 0x7e, 0xdf, 0x76, 0x82,
+ 0x6f, 0xd4, 0x0d, 0x6f, 0x7e, 0x4f, 0x9b, 0xc3, 0xb4, 0xef, 0xcd, 0x57,
+ 0xab, 0x4c, 0x46, 0x82, 0x05, 0x5b, 0x10, 0x6e, 0xd3, 0x22, 0x6c, 0x50,
+ 0x29, 0xea, 0xe8, 0xfa, 0xed, 0xc4, 0xf5, 0x06, 0xb1, 0x35, 0xf1, 0x35,
+ 0xca, 0xcc, 0xed, 0x78, 0x5b, 0x0a, 0xc8, 0x0f, 0x37, 0x7f, 0xfd, 0x38,
+ 0xf7, 0x63, 0x7f, 0x26, 0x42, 0x06, 0x44, 0x1a, 0x53, 0x0c, 0x66, 0xc0,
+ 0x70, 0x2b, 0xda, 0xd3, 0xb8, 0x36, 0x28, 0xd2, 0xd5, 0x6f, 0xa2, 0xc7,
+ 0x50, 0x54, 0x2a, 0x40, 0xd7, 0xb5, 0xab, 0x61, 0x19, 0x67, 0x20, 0x78,
+ 0xfc, 0xb6, 0xca, 0x6f, 0x47, 0x04, 0xaf, 0x5a, 0x5e, 0x6d, 0x6a, 0xa3,
+ 0xd3, 0xf0, 0xc6, 0xeb, 0x4d, 0xc6, 0x11, 0x40, 0xb9, 0x12, 0xf3, 0xed,
+ 0x68, 0x9e, 0x1b, 0xea, 0x5f, 0x8b, 0xcb, 0xf5, 0x84, 0x8f, 0x07, 0x93,
+ 0x7a, 0x9e, 0x4c, 0x1a, 0x0f, 0xd9, 0xd6, 0x12, 0x20, 0xd4, 0xae, 0xed,
+ 0x03, 0x47, 0xf1, 0xb3, 0x45, 0xa8, 0x35, 0x1a, 0x4f, 0x33, 0x04, 0xf0,
+ 0x07, 0x2d, 0xeb, 0xe9, 0x50, 0x9c, 0xd1, 0xef, 0x12, 0xce, 0x16, 0x2d,
+ 0x3c, 0x41, 0xc0, 0x49, 0x4a, 0xd4, 0x89, 0xcd, 0x40, 0xe0, 0x24, 0xa5,
+ 0x89, 0xd8, 0x21, 0x38, 0xea, 0xcc, 0x43, 0xff, 0x87, 0x10, 0x53, 0x6d,
+ 0x40, 0x4c, 0x82, 0x0f, 0x20, 0x93, 0x74, 0x2c, 0x20, 0x41, 0xaf, 0x4d,
+ 0xfd, 0xb1, 0x13, 0xb8, 0x90, 0xf6, 0x5c, 0x13, 0x82, 0x05, 0x77, 0x22,
+ 0xf0, 0x58, 0x03, 0xec, 0x49, 0x7e, 0x96, 0x3a, 0x03, 0x63, 0x25, 0x59,
+ 0x9c, 0x8d, 0xc1, 0x31, 0xf3, 0xc6, 0xda, 0x81, 0xb7, 0x05, 0xfe, 0xbd,
+ 0xb8, 0x73, 0x25, 0x68, 0x59, 0x44, 0x81, 0xd0, 0x5a, 0xcc, 0x8c, 0x4a,
+ 0x49, 0x74, 0x51, 0x69, 0x20, 0xc2, 0x90, 0xe3, 0x93, 0x2a, 0xa9, 0xb6,
+ 0xa3, 0x36, 0x64, 0x3d, 0xf5, 0x7b, 0x1e, 0xba, 0x19, 0x0c, 0xa6, 0x63,
+ 0xa5, 0xff, 0xd2, 0xbe, 0xaf, 0x63, 0xd7, 0x43, 0x21, 0x94, 0xcc, 0x74,
+ 0xbf, 0xfa, 0x57, 0xd5, 0xec, 0x7a, 0xe8, 0x64, 0x32, 0x99, 0x83, 0x15,
+ 0x43, 0x8e, 0x4c, 0xaa, 0xa6, 0xda, 0x8c, 0xd9, 0x90, 0xf7, 0xbf, 0x53,
+ 0xf4, 0x20, 0x46, 0xe6, 0xc8, 0x21, 0xb8, 0x6c, 0x7f, 0xea, 0xa8, 0xf7,
+ 0x6d, 0xe9, 0xcb, 0x51, 0x4d, 0xc2, 0x94, 0x72, 0xf6, 0xff, 0xe2, 0x50,
+ 0x96, 0xe1, 0x0e, 0xe8, 0x00, 0x82, 0x04, 0x00, 0x00, 0x69, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x12, 0x00, 0x04, 0x10, 0x18, 0x00,
+ 0x1e, 0xe7, 0xab, 0x9c, 0x01, 0x36, 0x4b, 0x63, 0x37, 0x82, 0xaf, 0x04,
+ 0xfc, 0xa0, 0x70, 0xb4, 0x78, 0x34, 0xe9, 0x23, 0xf8, 0xa9, 0x3e, 0x57,
+ 0xf8, 0xe6, 0xc1, 0x31, 0x16, 0x66, 0x30, 0xad, 0x9a, 0x9e, 0x02, 0x6e,
+ 0x6e, 0xe7, 0x32, 0x59, 0x2d, 0xc7, 0x02, 0x33, 0x68, 0x12, 0xa3, 0xbd,
+ 0xc0, 0xf5, 0xaa, 0x83, 0xbb, 0x19, 0x05, 0x11, 0xcb, 0x25, 0x43, 0x87,
+ 0x3d, 0xb1, 0x07, 0x40, 0xad, 0x80, 0x9b, 0x57, 0x13, 0xbd, 0x18, 0x35,
+ 0x92, 0x10, 0x11, 0x48, 0x93, 0xcb, 0x6b, 0xb4, 0x1e, 0x04, 0xea, 0x30,
+ 0xdb, 0x93, 0x03, 0x8a, 0x17, 0x68, 0x04, 0x40, 0x34, 0x2e, 0xe3, 0x13,
+ 0x9d, 0x19, 0x0a, 0xb4, 0x9d, 0xb1, 0xa6, 0x0e, 0xfe, 0xb9, 0x31, 0x28,
+ 0x7f, 0xff, 0xb5, 0x0a, 0xb5, 0x59, 0xe3, 0x93, 0x10, 0x00, 0x6e, 0x3c,
+ 0xb8, 0x11, 0xc2, 0x5d, 0x51, 0xef, 0x83, 0xc8, 0x41, 0x6e, 0x82, 0x67,
+ 0x0f, 0x47, 0x30, 0xba, 0xf1, 0x58, 0x8f, 0x94, 0x6e, 0x00, 0xa5, 0x00,
+ 0x4a, 0x6b, 0x09, 0x29, 0x37, 0x08, 0xda, 0x56, 0x00, 0xa3, 0x39, 0x60,
+ 0x7f, 0x44, 0x4f, 0x70, 0xa4, 0x44, 0x1e, 0xa1, 0x9c, 0x76, 0xce, 0xdc,
+ 0x8b, 0xf4, 0x58, 0x02, 0xf1, 0x26, 0x90, 0xc9, 0x3a, 0x18, 0xbf, 0x33,
+ 0xb0, 0x40, 0xd5, 0x79, 0xfc, 0xc3, 0xa3, 0x60, 0xba, 0x05, 0x6c, 0x66,
+ 0x09, 0x42, 0xd5, 0xec, 0x78, 0x44, 0x7c, 0x02, 0x8c, 0x19, 0x20, 0x8a,
+ 0x7d, 0xbd, 0x76, 0x68, 0x06, 0x0f, 0x3b, 0xde, 0x5f, 0xe4, 0x6d, 0xc0,
+ 0x3d, 0xc8, 0x4c, 0xb4, 0x46, 0x5c, 0x56, 0xe8, 0x39, 0xce, 0x17, 0x1d,
+ 0x62, 0x73, 0xd4, 0x85, 0xb5, 0x80, 0x17, 0x6f, 0xec, 0x22, 0x16, 0x7e,
+ 0x7c, 0xe2, 0x0c, 0xa9, 0x99, 0x6b, 0x43, 0xed, 0xb2, 0x7b, 0xbf, 0x52,
+ 0xb1, 0x6f, 0xe3, 0x7b, 0x6a, 0xd0, 0x0a, 0xe4, 0x8f, 0x42, 0x27, 0x3a,
+ 0xf1, 0xb5, 0x00, 0xe0, 0x03, 0xd4, 0xc5, 0xca, 0x30, 0x00, 0x06, 0x94,
+ 0x48, 0xdc, 0x5d, 0x36, 0x56, 0x91, 0x01, 0xe1, 0x82, 0x6d, 0x8a, 0xa1,
+ 0x60, 0xf8, 0x1d, 0x37, 0xd2, 0x0e, 0xf7, 0x34, 0xe4, 0x8a, 0x28, 0xbe,
+ 0xaf, 0x75, 0xba, 0xc0, 0x53, 0xec, 0xcb, 0x61, 0xf3, 0x18, 0xfd, 0x5d,
+ 0x6c, 0x99, 0xc8, 0x01, 0xe6, 0x4f, 0x46, 0x11, 0xaa, 0x17, 0x1c, 0xb9,
+ 0xbd, 0x52, 0x48, 0x97, 0x4a, 0xaa, 0x1e, 0xa2, 0x78, 0x6f, 0xbf, 0x13,
+ 0x53, 0xd3, 0xfd, 0x07, 0xd5, 0xc0, 0xe7, 0xc4, 0x2e, 0x8c, 0xfa, 0x29,
+ 0x22, 0xfd, 0xa2, 0x5c, 0xc3, 0xd6, 0xb8, 0x5a, 0xc1, 0xcd, 0x61, 0x9b,
+ 0xe7, 0x2b, 0x8a, 0xe5, 0x94, 0x20, 0x3e, 0x9f, 0x29, 0x85, 0x3c, 0xd0,
+ 0x27, 0x6a, 0xe6, 0x8a, 0x50, 0x27, 0x2e, 0xaf, 0x49, 0x13, 0x37, 0xf7,
+ 0x8d, 0x1b, 0x20, 0x3d, 0x21, 0xbd, 0x72, 0x4b, 0x38, 0x9c, 0xba, 0x0c,
+ 0x20, 0xe7, 0xdd, 0x79, 0x1e, 0xad, 0x3b, 0xd4, 0xb0, 0x8b, 0xbb, 0xa9,
+ 0xda, 0x63, 0x23, 0xcf, 0xe6, 0xdc, 0x0f, 0xe3, 0xdb, 0x00, 0x9b, 0x40,
+ 0x29, 0xc9, 0x5d, 0x2a, 0x1f, 0xf8, 0xf3, 0xab, 0xaf, 0xda, 0xde, 0xed,
+ 0xcd, 0x1c, 0xe7, 0xef, 0x67, 0xd9, 0x53, 0xfe, 0x92, 0x20, 0xd3, 0x5c,
+ 0xd9, 0x2b, 0xfd, 0x56, 0xd9, 0xd9, 0x92, 0xfc, 0x19, 0x9a, 0x26, 0xf6,
+ 0xf4, 0x93, 0x47, 0x6d, 0x81, 0x1e, 0x36, 0x53, 0x01, 0x83, 0x94, 0x6c,
+ 0x87, 0xee, 0x8d, 0xda, 0x65, 0xfa, 0x75, 0x43, 0x20, 0xfd, 0xa8, 0xa0,
+ 0x43, 0x5a, 0x37, 0x91, 0xc7, 0x85, 0x42, 0x43, 0x13, 0xca, 0x58, 0x8c,
+ 0x3b, 0xb2, 0x37, 0x12, 0x35, 0xb3, 0x06, 0x8f, 0x51, 0xae, 0x00, 0xe8,
+ 0xfb, 0x34, 0x8a, 0xa8, 0x91, 0x3f, 0x36, 0x49, 0xec, 0x93, 0xde, 0x54,
+ 0xb6, 0xd1, 0xd2, 0xc4, 0x65, 0x9d, 0xe2, 0x38, 0x5f, 0x62, 0x01, 0xcd,
+ 0xdc, 0x60, 0xe2, 0x3f, 0xe9, 0xae, 0xd6, 0xc8, 0xad, 0xcd, 0x97, 0xbe,
+ 0x19, 0xc4, 0x8f, 0x89, 0x36, 0xc9, 0x77, 0x6a, 0x6b, 0xd7, 0x49, 0x28,
+ 0x9b, 0xf2, 0x58, 0x6e, 0x03, 0xc7, 0xff, 0x68, 0x1e, 0x92, 0x37, 0xad,
+ 0xce, 0x7b, 0xef, 0xcd, 0xcb, 0x08, 0x4f, 0x36, 0x70, 0x5f, 0xe2, 0x48,
+ 0xe8, 0x00, 0x23, 0x81, 0x94, 0x6b, 0xc3, 0x83, 0x36, 0xf2, 0x00, 0xd0,
+ 0x88, 0x81, 0x1e, 0xc7, 0x17, 0xa5, 0x26, 0x92, 0x76, 0x7a, 0x04, 0x16,
+ 0x78, 0x5b, 0x79, 0x0f, 0x71, 0xc5, 0x34, 0x5b, 0xc9, 0xb2, 0x35, 0x83,
+ 0x3b, 0x12, 0x8c, 0xcf, 0x91, 0x36, 0xd5, 0x2e, 0x6e, 0x5a, 0xcf, 0x9b,
+ 0xd0, 0x0e, 0x9e, 0xed, 0x34, 0x35, 0x05, 0xe7, 0x50, 0x67, 0x71, 0x3c,
+ 0xb9, 0x9b, 0x7e, 0x27, 0xf7, 0x71, 0xad, 0x46, 0x74, 0xc6, 0x42, 0x00,
+ 0x25, 0x20, 0x84, 0x04, 0xad, 0x25, 0x2b, 0xf0, 0x15, 0x3e, 0x9f, 0x8c,
+ 0x0d, 0xcb, 0xd3, 0xc3, 0x1f, 0xe1, 0x55, 0xd1, 0x4e, 0x1b, 0x0b, 0x91,
+ 0x66, 0x57, 0x68, 0xcb, 0x65, 0x52, 0xad, 0x31, 0x17, 0xea, 0x92, 0xcd,
+ 0xba, 0xb1, 0xe5, 0x11, 0xe8, 0xc2, 0x3b, 0x41, 0x43, 0x0e, 0xde, 0xab,
+ 0xad, 0xb9, 0x10, 0xe2, 0x13, 0x21, 0x2c, 0x9b, 0x88, 0xea, 0x50, 0x97,
+ 0x19, 0x4b, 0x86, 0xba, 0x52, 0xeb, 0x62, 0x3a, 0x29, 0x72, 0x3e, 0xb5,
+ 0x7f, 0x8c, 0xf7, 0xa5, 0x35, 0xf3, 0xb0, 0xfb, 0x74, 0x36, 0xd0, 0x2b,
+ 0xf5, 0x2f, 0x07, 0x9b, 0x99, 0xee, 0x84, 0x4c, 0xe9, 0xd7, 0xf0, 0xe5,
+ 0x59, 0x64, 0xf0, 0x1a, 0x76, 0x12, 0x9d, 0x01, 0xd7, 0xb5, 0xb2, 0xf3,
+ 0x1d, 0xf8, 0xe3, 0x8f, 0x4c, 0xe7, 0x1f, 0xe1, 0xf5, 0xf2, 0xe0, 0x84,
+ 0xd5, 0xbd, 0x80, 0x00, 0x34, 0xff, 0xda, 0x77, 0xad, 0x7f, 0x03, 0xa9,
+ 0xf0, 0x9d, 0x58, 0xdf, 0x8e, 0xc7, 0x6f, 0x10, 0x2b, 0x60, 0xa2, 0xc0,
+ 0x06, 0x86, 0x9e, 0x96, 0x5b, 0xc1, 0xa3, 0x4f, 0xf2, 0x75, 0x9e, 0xa1,
+ 0xf6, 0xad, 0xb8, 0xdf, 0xe9, 0x2c, 0x68, 0x82, 0x67, 0x7b, 0xe6, 0xc8,
+ 0x15, 0x9d, 0x08, 0xea, 0xc7, 0x8e, 0xa9, 0x5a, 0x14, 0x70, 0x07, 0xfd,
+ 0x01, 0x48, 0x53, 0x9e, 0x51, 0xa0, 0x29, 0x9d, 0x5c, 0xa5, 0x71, 0x33,
+ 0xe3, 0xb3, 0x13, 0x77, 0x13, 0xf5, 0xf7, 0xd3, 0x8b, 0xf3, 0x56, 0xaf,
+ 0xd4, 0xb9, 0x4b, 0x73, 0x03, 0x8c, 0x7f, 0x40, 0x76, 0x74, 0x17, 0x70,
+ 0xa9, 0x28, 0x06, 0x4f, 0x56, 0xc1, 0xc4, 0x1a, 0x28, 0x8a, 0x81, 0xdf,
+ 0xd3, 0x16, 0x1e, 0x80, 0xcd, 0x55, 0xcc, 0x65, 0x32, 0xa7, 0xff, 0xee,
+ 0x1c, 0x14, 0x3c, 0x94, 0x41, 0x20, 0x17, 0xb2, 0x39, 0x2a, 0x0e, 0x3b,
+ 0xc3, 0x7b, 0xa5, 0xc1, 0xa3, 0x3d, 0xe9, 0x08, 0xff, 0x51, 0xe5, 0x99,
+ 0x35, 0x70, 0xe0, 0xdb, 0x61, 0x08, 0x14, 0x73, 0x4c, 0xce, 0xbf, 0x1d,
+ 0x54, 0x45, 0x67, 0xe9, 0x6c, 0x0d, 0x5f, 0xac, 0x86, 0x43, 0xbc, 0xaf,
+ 0x74, 0x14, 0x41, 0xb0, 0xb9, 0xd5, 0x18, 0xcb, 0x42, 0x94, 0x5a, 0xc0,
+ 0x38, 0x17, 0x86, 0x2e, 0x08, 0x24, 0xb4, 0xfc, 0x07, 0xff, 0x2b, 0xd6,
+ 0x73, 0x88, 0xdb, 0x90, 0xeb, 0x23, 0x42, 0xb5, 0xef, 0xcb, 0xb5, 0x5b,
+ 0xc2, 0x39, 0x4a, 0x45, 0xfa, 0xdc, 0x77, 0x2c, 0xd7, 0x4e, 0x69, 0xa9,
+ 0x27, 0xe2, 0x09, 0x91, 0x6f, 0xd1, 0x52, 0xa2, 0x5e, 0x4d, 0xdd, 0xba,
+ 0x71, 0xc1, 0x8c, 0x80, 0x15, 0x5a, 0x9b, 0x40, 0xe8, 0x85, 0x95, 0xb3,
+ 0x08, 0x3e, 0x56, 0x71, 0xb2, 0x92, 0x28, 0x81, 0x57, 0x57, 0x72, 0x1e,
+ 0x44, 0xfd, 0x87, 0x88, 0xc8, 0x70, 0x48, 0x71, 0x49, 0xfe, 0x07, 0x85,
+ 0x74, 0x59, 0x55, 0x19, 0x08, 0x03, 0x7f, 0x02, 0x6d, 0x23, 0xcd, 0x19,
+ 0x36, 0x9b, 0xf2, 0xc2, 0x08, 0xfa, 0x16, 0xa4, 0x8d, 0x4f, 0xff, 0xa7,
+ 0x01, 0x0d, 0xad, 0x61, 0x54, 0x32, 0x01, 0xf3, 0x87, 0x7c, 0x77, 0xd0,
+ 0x28, 0x02, 0x07, 0xa0, 0x81, 0x03, 0x3e, 0x7e, 0xf7, 0x84, 0x66, 0x2b,
+ 0x1b, 0xd7, 0xdc, 0x62, 0x80, 0x3b, 0x3e, 0xb9, 0xe8, 0x12, 0xa6, 0xec,
+ 0x0f, 0xaa, 0xab, 0x30, 0xf5, 0x18, 0xe2, 0x03, 0x69, 0x62, 0xb4, 0x60,
+ 0x34, 0xdd, 0xf4, 0x36, 0xfe, 0x52, 0x56, 0x7d, 0x35, 0x20, 0x15, 0xf4,
+ 0x9c, 0xed, 0x12, 0xdc, 0x6b, 0x74, 0xa0, 0x85, 0x60, 0x45, 0xfb, 0xd4,
+ 0x44, 0x87, 0xdd, 0x91, 0xb0, 0x88, 0xa5, 0x49, 0xb1, 0xf1, 0xcf, 0x11,
+ 0x40, 0xf9, 0x74, 0x84, 0x71, 0x40, 0x00, 0x8f, 0x04, 0x00, 0x00, 0x6a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x11, 0x00, 0x00, 0x10,
+ 0x10, 0x00, 0x1e, 0xcc, 0x80, 0xc5, 0x54, 0xdd, 0xf8, 0x68, 0x22, 0xca,
+ 0xbc, 0x48, 0xaa, 0x24, 0x21, 0x48, 0x23, 0xb7, 0x1e, 0x46, 0x65, 0x91,
+ 0x0e, 0x44, 0xf3, 0x52, 0x73, 0x65, 0x3d, 0xb8, 0xd1, 0xad, 0x9e, 0xcd,
+ 0xe6, 0xef, 0xd9, 0xbd, 0xbe, 0x99, 0x9d, 0x8b, 0x8b, 0xfb, 0xb1, 0x98,
+ 0x7a, 0x7e, 0x7c, 0x82, 0x1b, 0x7d, 0x49, 0x45, 0xed, 0xe6, 0xf4, 0x44,
+ 0x61, 0xd3, 0xd4, 0x88, 0x58, 0x54, 0xeb, 0x50, 0x27, 0x42, 0x9b, 0x6c,
+ 0x51, 0xf1, 0xbd, 0x80, 0x48, 0xa5, 0xef, 0x69, 0x09, 0xae, 0x90, 0xf7,
+ 0x12, 0x15, 0xb5, 0xba, 0x88, 0x04, 0x72, 0x14, 0x07, 0x32, 0x00, 0xed,
+ 0x7e, 0x82, 0xbd, 0x0e, 0x75, 0xfe, 0x14, 0x77, 0xbe, 0xd4, 0xf0, 0x00,
+ 0x43, 0xc1, 0xd5, 0x20, 0x04, 0x56, 0x0b, 0xf0, 0xa6, 0x6a, 0xa9, 0x85,
+ 0xd7, 0x33, 0x9c, 0x26, 0x66, 0x48, 0x5a, 0x32, 0xdd, 0xce, 0x45, 0xb6,
+ 0x6a, 0x6f, 0xd4, 0x95, 0x18, 0xe5, 0x70, 0x6c, 0x28, 0x7b, 0xa5, 0xc8,
+ 0xaa, 0x64, 0xca, 0x2d, 0x82, 0xf0, 0xe8, 0x8f, 0x3e, 0x2a, 0x2c, 0xc5,
+ 0xe7, 0x23, 0x89, 0xe9, 0x2b, 0x4c, 0xc7, 0x3c, 0x3b, 0x28, 0x52, 0xf5,
+ 0x66, 0x34, 0x0e, 0x37, 0x86, 0x5b, 0xb9, 0x9e, 0x12, 0x05, 0xf0, 0xc5,
+ 0x57, 0x3a, 0xc8, 0xc1, 0xf4, 0xa4, 0xef, 0xfb, 0x38, 0x64, 0x03, 0xa4,
+ 0xbb, 0xff, 0xb7, 0x3e, 0x97, 0x5d, 0x76, 0xd2, 0x16, 0x56, 0x61, 0xdb,
+ 0xa1, 0x72, 0xa3, 0x3d, 0xae, 0x80, 0xa6, 0xfb, 0xdc, 0x4d, 0x1d, 0x0b,
+ 0x73, 0x05, 0x8b, 0x65, 0xcf, 0x42, 0xc6, 0x1c, 0x09, 0x8b, 0xed, 0x77,
+ 0xe5, 0x82, 0xd9, 0x09, 0x50, 0xdb, 0x23, 0x89, 0x9b, 0xfe, 0x1e, 0x58,
+ 0xec, 0xd8, 0x96, 0xaa, 0x69, 0x25, 0x6a, 0x91, 0x6d, 0x7a, 0xd4, 0x10,
+ 0x16, 0x34, 0x0c, 0xb4, 0x3f, 0x97, 0x0a, 0xac, 0x95, 0x0c, 0xf4, 0x57,
+ 0x46, 0xb0, 0x4e, 0xd8, 0x7c, 0x6c, 0xd2, 0x8b, 0xb6, 0x3b, 0x95, 0x2d,
+ 0xf3, 0xdc, 0x2a, 0x89, 0x88, 0x85, 0xd8, 0xde, 0x3e, 0x8e, 0xe8, 0x7b,
+ 0x35, 0xbd, 0xdf, 0xed, 0x47, 0xf9, 0xaa, 0xdc, 0x08, 0x1e, 0x91, 0x76,
+ 0x6a, 0x05, 0x0f, 0x71, 0x1e, 0x9f, 0x5d, 0x53, 0x55, 0x62, 0xbc, 0x11,
+ 0x58, 0x24, 0x6a, 0xf4, 0x47, 0x3c, 0xb0, 0x1f, 0xaf, 0x50, 0x2d, 0x13,
+ 0xd0, 0x9b, 0x41, 0x99, 0x5e, 0x78, 0x7b, 0x49, 0x1c, 0xfe, 0x2e, 0x73,
+ 0x03, 0x13, 0xe6, 0xa7, 0xaf, 0xcd, 0xc7, 0x90, 0x04, 0x92, 0x41, 0x52,
+ 0x63, 0xa2, 0x1a, 0xcf, 0x2a, 0x6f, 0xc0, 0xc6, 0x9a, 0xf7, 0xb4, 0x76,
+ 0xbf, 0xe6, 0xc0, 0x16, 0x57, 0x2d, 0x09, 0x03, 0x9c, 0x7d, 0x7a, 0xbe,
+ 0x78, 0xc6, 0xef, 0x6a, 0x95, 0x23, 0xa8, 0xe1, 0xf7, 0x59, 0x62, 0x02,
+ 0xca, 0xd3, 0x32, 0x18, 0x81, 0x24, 0x64, 0xe3, 0xe6, 0xf4, 0x91, 0x50,
+ 0x8f, 0x25, 0xfd, 0xdf, 0x0c, 0xe0, 0xb8, 0x03, 0x74, 0x3a, 0x34, 0xa7,
+ 0x7d, 0x4d, 0xca, 0x1e, 0xe2, 0xe6, 0x9a, 0xa3, 0x7d, 0x91, 0xaf, 0x07,
+ 0x42, 0x5e, 0xf4, 0xb7, 0x6c, 0x1b, 0xb9, 0xf1, 0xdc, 0x40, 0x5a, 0xcc,
+ 0xd2, 0x1d, 0x33, 0xe7, 0x4e, 0x04, 0xff, 0xbe, 0x8c, 0x4d, 0xa7, 0x8c,
+ 0xa4, 0xf2, 0x94, 0x34, 0xd4, 0xf3, 0xd4, 0x81, 0x77, 0x8c, 0x3a, 0x8d,
+ 0x03, 0x85, 0x3b, 0xfe, 0xe9, 0x32, 0xe9, 0x9d, 0x90, 0x10, 0x6e, 0x8c,
+ 0xd0, 0x9d, 0x3b, 0xb6, 0x23, 0x39, 0x04, 0x86, 0xfe, 0x37, 0x83, 0x92,
+ 0x07, 0x1c, 0x3c, 0xf2, 0xc6, 0x0c, 0x8a, 0x6b, 0x01, 0xb7, 0x9d, 0x06,
+ 0xef, 0xf7, 0x75, 0xd9, 0x7a, 0x3d, 0x75, 0xb1, 0x63, 0xa6, 0xcc, 0x39,
+ 0x9b, 0x3c, 0x08, 0x89, 0x8a, 0x4c, 0x93, 0x34, 0xf2, 0x13, 0xba, 0x3c,
+ 0x55, 0xc1, 0x0e, 0xe9, 0xb8, 0x63, 0xd9, 0x54, 0x33, 0xba, 0xac, 0xc0,
+ 0xbb, 0xbd, 0xe9, 0xc5, 0x7f, 0xb4, 0x1d, 0x93, 0xe2, 0x8b, 0x99, 0x51,
+ 0xcc, 0x54, 0xbb, 0x2b, 0x26, 0x5e, 0xe2, 0x81, 0xa4, 0x96, 0x2c, 0x59,
+ 0x89, 0x2e, 0xf2, 0x17, 0xcd, 0x82, 0x19, 0x08, 0x6e, 0x75, 0xb2, 0x57,
+ 0x46, 0xf7, 0xf7, 0xec, 0xfd, 0x8c, 0x1b, 0x65, 0x8d, 0xb5, 0x7a, 0x54,
+ 0x65, 0x65, 0x37, 0x72, 0xa8, 0xab, 0x18, 0x67, 0x42, 0x09, 0x05, 0x4f,
+ 0x99, 0x01, 0xd7, 0x79, 0x1b, 0xad, 0xa8, 0x1b, 0x55, 0x41, 0xc2, 0x53,
+ 0xbc, 0x07, 0x12, 0xc1, 0x0f, 0x9f, 0x18, 0xee, 0x73, 0x1e, 0xb4, 0x23,
+ 0x06, 0x78, 0x80, 0x34, 0x54, 0x10, 0xb4, 0xc6, 0x66, 0x3e, 0xa4, 0x70,
+ 0xa9, 0x8d, 0x6d, 0xac, 0x7e, 0xe9, 0xc1, 0xf5, 0x46, 0x7d, 0x53, 0x95,
+ 0x5f, 0x62, 0x9a, 0x4e, 0xf6, 0xa3, 0x29, 0x2e, 0x77, 0x07, 0xed, 0x57,
+ 0x14, 0x8b, 0x3a, 0x57, 0xd7, 0x3c, 0x61, 0x4a, 0xa6, 0xd4, 0xc0, 0x41,
+ 0xf1, 0x71, 0xcc, 0xea, 0x96, 0x35, 0x24, 0x16, 0x86, 0x95, 0x30, 0x07,
+ 0x25, 0xcf, 0xcf, 0x2c, 0x4a, 0x42, 0xaa, 0x8b, 0x59, 0x00, 0x85, 0x0d,
+ 0x4a, 0x9e, 0xa9, 0x4b, 0x4e, 0x96, 0xe2, 0xb9, 0x08, 0x89, 0x62, 0x0e,
+ 0x84, 0x96, 0x4e, 0x56, 0x3d, 0x5d, 0x87, 0xe9, 0xd3, 0x7f, 0xf4, 0xfb,
+ 0x3d, 0x98, 0xb1, 0x08, 0x28, 0x11, 0x62, 0xd7, 0x88, 0x88, 0x27, 0x33,
+ 0x3b, 0xd0, 0x9c, 0xd3, 0x0d, 0xe0, 0x8e, 0x36, 0x22, 0x55, 0xe6, 0x4f,
+ 0xea, 0xfa, 0x54, 0xbb, 0x96, 0x6b, 0xdc, 0x6a, 0xfd, 0xe0, 0x9d, 0xbe,
+ 0xd2, 0x3d, 0x48, 0x72, 0xd9, 0xaf, 0x3e, 0x97, 0x59, 0xcb, 0xda, 0x02,
+ 0xd9, 0x50, 0x18, 0xfa, 0xc8, 0x39, 0x9a, 0x9c, 0xd2, 0x74, 0x16, 0x2d,
+ 0x87, 0x01, 0x4b, 0x56, 0x3a, 0x09, 0xea, 0xb2, 0xf8, 0x17, 0x10, 0x94,
+ 0x57, 0x99, 0x2c, 0xf2, 0x04, 0xd6, 0x16, 0x8c, 0xdc, 0x29, 0x9e, 0x97,
+ 0x2e, 0x91, 0xf5, 0x53, 0xdf, 0x1f, 0x0e, 0xf5, 0xd5, 0xc7, 0x45, 0xa3,
+ 0x4d, 0x5c, 0xce, 0x4e, 0xd9, 0xf4, 0x38, 0x74, 0x51, 0x86, 0xbb, 0x1d,
+ 0xd6, 0x5e, 0x9a, 0x62, 0x13, 0x95, 0xa8, 0xf0, 0x08, 0x81, 0x94, 0xce,
+ 0x9d, 0x9c, 0x62, 0x06, 0x59, 0x42, 0x2c, 0x1b, 0x9b, 0x57, 0x9f, 0x6f,
+ 0x61, 0xf0, 0x71, 0xe3, 0xcd, 0x26, 0x1f, 0x68, 0x2d, 0x2e, 0xd4, 0x53,
+ 0x53, 0xdb, 0x09, 0x2e, 0x1c, 0x8f, 0x9e, 0x9e, 0xe1, 0x95, 0x02, 0xbe,
+ 0xac, 0x43, 0x97, 0x71, 0x62, 0x94, 0x66, 0x20, 0xf9, 0xa0, 0x16, 0xc2,
+ 0xbe, 0xf9, 0x94, 0x2c, 0x4d, 0x86, 0xdd, 0xa2, 0xf8, 0xa6, 0xfa, 0x42,
+ 0x4c, 0xca, 0x5e, 0xf7, 0xec, 0x07, 0xf2, 0x29, 0x46, 0x43, 0x09, 0xae,
+ 0xff, 0xdf, 0xc2, 0xf6, 0x97, 0x4c, 0x42, 0x40, 0xa9, 0xdd, 0x01, 0x05,
+ 0xfb, 0xc5, 0x52, 0xca, 0xe0, 0xfe, 0xd7, 0x29, 0xbb, 0x71, 0x8c, 0xe2,
+ 0x29, 0x0a, 0x5a, 0x06, 0xa5, 0xc7, 0xb1, 0x10, 0x0e, 0x0a, 0x7a, 0xa1,
+ 0x84, 0x2a, 0x9b, 0xba, 0x35, 0x54, 0x20, 0x11, 0x3e, 0x8d, 0x95, 0x56,
+ 0x1d, 0x1f, 0x44, 0x68, 0xa8, 0xe5, 0xf7, 0x0e, 0x6a, 0x83, 0x92, 0x91,
+ 0x03, 0xa2, 0x1d, 0x23, 0xc2, 0xd2, 0xa0, 0xe3, 0xdb, 0xfe, 0x30, 0xd4,
+ 0x42, 0x00, 0x01, 0x6c, 0x2e, 0x0b, 0xcc, 0x98, 0x0c, 0x1f, 0xfb, 0x27,
+ 0x48, 0x18, 0x03, 0x14, 0x52, 0x9b, 0x38, 0xe7, 0x41, 0xa8, 0xf1, 0x7e,
+ 0x8a, 0x4e, 0xab, 0x51, 0xd3, 0xfe, 0xad, 0x5b, 0x5b, 0x4d, 0x9f, 0x43,
+ 0xd7, 0x4a, 0xf2, 0x8d, 0xa6, 0x62, 0x68, 0xb1, 0x3b, 0xc4, 0x74, 0x6f,
+ 0xb1, 0x9b, 0xb2, 0x68, 0xc4, 0x37, 0x09, 0xf8, 0xa8, 0xd6, 0xfe, 0x02,
+ 0x96, 0xa6, 0x86, 0x75, 0x3a, 0xaa, 0x52, 0x02, 0xa0, 0xb9, 0xe3, 0xbb,
+ 0x8a, 0xde, 0x5a, 0x08, 0x8b, 0xdb, 0xf4, 0xcf, 0x75, 0x0c, 0xdd, 0x16,
+ 0xe5, 0x0c, 0x14, 0x25, 0x97, 0x01, 0x72, 0x4d, 0x04, 0x2e, 0x3c, 0x6c,
+ 0x9c, 0x6b, 0xab, 0x80, 0xf1, 0x8e, 0xfe, 0xae, 0x05, 0x16, 0xfa, 0xb7,
+ 0xb5, 0x6e, 0x22, 0xc3, 0xdb, 0x5f, 0x22, 0xae, 0x9e, 0x02, 0xb9, 0x85,
+ 0x54, 0x05, 0x46, 0x5a, 0x55, 0xc0, 0x9f, 0x31, 0x8b, 0xe2, 0x36, 0xa1,
+ 0x10, 0x00, 0xa4, 0x29, 0xc1, 0xe9, 0xbd, 0x76, 0x79, 0xa1, 0xc6, 0xf8,
+ 0x5f, 0x3e, 0xd6, 0xbc, 0xa6, 0xe7, 0x31, 0x55, 0xbe, 0xb7, 0x0b, 0x16,
+ 0x9f, 0x32, 0x12, 0x86, 0x21, 0x90, 0xbc, 0x33, 0x45, 0x13, 0x7e, 0x08,
+ 0x90, 0x20, 0xb0, 0xe1, 0xdc, 0x37, 0x59, 0x23, 0x85, 0x1f, 0xcd, 0x93,
+ 0xca, 0x46, 0x85, 0xe0, 0xbf, 0x7d, 0xf9, 0x07, 0x40, 0x00, 0xfc, 0x02,
+ 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0f,
+ 0x00, 0x05, 0x10, 0x10, 0x00, 0x1c, 0x2d, 0x90, 0x32, 0xd9, 0xd4, 0x12,
+ 0x5b, 0x96, 0xfe, 0x49, 0xf3, 0xa2, 0x42, 0xe1, 0xe1, 0x65, 0x41, 0xf0,
+ 0x3a, 0x20, 0x8f, 0x0c, 0x74, 0xc0, 0x22, 0xda, 0x82, 0xd4, 0x4a, 0xed,
+ 0x5f, 0x25, 0xe0, 0x56, 0x29, 0x1b, 0x9e, 0xc2, 0x44, 0xeb, 0x59, 0x70,
+ 0xf8, 0x84, 0x5b, 0xff, 0xcf, 0xcd, 0xa1, 0x43, 0xda, 0x81, 0x33, 0x4f,
+ 0x04, 0x00, 0x42, 0xdf, 0x84, 0x6e, 0xc9, 0x85, 0x55, 0x17, 0x01, 0xad,
+ 0xed, 0x80, 0xab, 0x07, 0x8c, 0x7e, 0x25, 0x65, 0x14, 0x30, 0xfd, 0x48,
+ 0xc5, 0xa2, 0x9c, 0xfb, 0xa5, 0xd2, 0x22, 0xa0, 0x6c, 0x2e, 0x71, 0x4a,
+ 0xae, 0xd0, 0xb0, 0x13, 0x59, 0x78, 0x4f, 0xa0, 0x21, 0xfb, 0x20, 0x41,
+ 0x13, 0xdf, 0xb3, 0x07, 0x58, 0xb1, 0xb9, 0xfb, 0x7e, 0x18, 0xc9, 0xd6,
+ 0xe2, 0x8c, 0x17, 0x80, 0xa3, 0x6e, 0xa6, 0x04, 0xb8, 0x75, 0xfd, 0xcb,
+ 0x0f, 0xcb, 0xc3, 0x92, 0xfc, 0xb3, 0x16, 0xa5, 0x4d, 0x50, 0xd0, 0x14,
+ 0xa1, 0x20, 0x98, 0xd6, 0x77, 0xf9, 0x90, 0xa1, 0x31, 0xdf, 0x20, 0x70,
+ 0x1f, 0x0d, 0x7c, 0xf8, 0x5d, 0xaa, 0x42, 0xcf, 0xfc, 0x0a, 0x22, 0xd4,
+ 0x35, 0x6b, 0x11, 0x35, 0x4b, 0x7b, 0x30, 0x40, 0xbe, 0x09, 0x6b, 0x4c,
+ 0x7e, 0x71, 0x87, 0x69, 0x03, 0x62, 0xa3, 0x44, 0x92, 0x44, 0x6a, 0xed,
+ 0x50, 0xeb, 0xa8, 0x25, 0x0a, 0x90, 0x0c, 0x57, 0xa4, 0xe2, 0xcd, 0x25,
+ 0xac, 0xb3, 0xd0, 0x30, 0xee, 0x08, 0x9f, 0x2a, 0x57, 0x22, 0x43, 0x3c,
+ 0xce, 0x33, 0xd3, 0xb7, 0x2f, 0x71, 0x0e, 0x1b, 0xb4, 0x22, 0xc2, 0x95,
+ 0x24, 0xe5, 0x82, 0xd4, 0xe3, 0xc2, 0xd0, 0xfb, 0xa3, 0x26, 0xab, 0x55,
+ 0x6f, 0x90, 0x65, 0x98, 0xa8, 0x3f, 0x16, 0x25, 0x48, 0x2d, 0x40, 0x1f,
+ 0xbd, 0x3f, 0x02, 0xa2, 0x00, 0x95, 0x89, 0x4b, 0x0d, 0x2a, 0xed, 0xc7,
+ 0x6f, 0x45, 0x04, 0xbd, 0x7d, 0xaa, 0x77, 0x9c, 0xb7, 0x9e, 0x72, 0x8a,
+ 0xcb, 0x0f, 0xb1, 0xe5, 0xef, 0x42, 0x46, 0xe0, 0xe4, 0xf0, 0xc6, 0x10,
+ 0x9a, 0x39, 0x36, 0x3d, 0x14, 0xd4, 0x5b, 0x0f, 0x0b, 0x6c, 0x31, 0x64,
+ 0xa6, 0x19, 0xd0, 0x1c, 0xb9, 0x09, 0xd6, 0xf1, 0x1a, 0xfa, 0x91, 0x5d,
+ 0xf1, 0xeb, 0xf0, 0xdf, 0x52, 0xf0, 0x65, 0xce, 0x49, 0xb0, 0xba, 0x38,
+ 0x34, 0xd8, 0x9d, 0x33, 0xee, 0x8e, 0x04, 0x3a, 0x41, 0xfd, 0xcc, 0xc3,
+ 0x94, 0xdf, 0xe0, 0x4f, 0x29, 0x38, 0x1d, 0x0c, 0x63, 0x54, 0xa7, 0x6f,
+ 0xe1, 0x17, 0x1e, 0xc5, 0x66, 0x71, 0x13, 0x55, 0x76, 0xd8, 0xcd, 0x9f,
+ 0x91, 0x3a, 0x50, 0xf8, 0xda, 0xdd, 0xfa, 0xf0, 0x47, 0x7c, 0x1f, 0x38,
+ 0x35, 0xf9, 0x3d, 0xbb, 0xba, 0x35, 0x9e, 0x49, 0x43, 0x61, 0x3f, 0x57,
+ 0x3c, 0x68, 0x85, 0x2e, 0x78, 0xd7, 0x60, 0x83, 0x87, 0xc1, 0xed, 0x89,
+ 0xa7, 0x9d, 0xd4, 0x5f, 0x6f, 0xe3, 0xda, 0x71, 0x61, 0x31, 0xa0, 0x05,
+ 0x17, 0x88, 0x00, 0xe7, 0x0c, 0x60, 0x96, 0x97, 0xd3, 0x9f, 0xef, 0x7e,
+ 0xb4, 0x83, 0xfc, 0xaf, 0x4b, 0xd5, 0x0f, 0xcb, 0x4e, 0x6a, 0x0b, 0xcd,
+ 0x5d, 0xd2, 0x8d, 0xb7, 0xf0, 0x91, 0x19, 0x23, 0x49, 0x93, 0x40, 0x8c,
+ 0xc3, 0x9a, 0x3b, 0x16, 0x36, 0x7a, 0x51, 0xf3, 0xbc, 0x7f, 0x68, 0xfb,
+ 0x78, 0x24, 0x23, 0xec, 0xdb, 0xe5, 0xc7, 0x6e, 0xe8, 0x5c, 0x34, 0xb2,
+ 0xa9, 0xb4, 0x0a, 0xf9, 0x8f, 0x6a, 0xc0, 0x33, 0xad, 0xbc, 0xfc, 0x10,
+ 0x28, 0xe4, 0xdc, 0xf6, 0x15, 0x4c, 0x6f, 0x5b, 0x46, 0xe6, 0x38, 0x12,
+ 0x15, 0x3f, 0x4b, 0x29, 0x92, 0x00, 0x1d, 0x4e, 0x27, 0xd1, 0xed, 0x3e,
+ 0x8b, 0x8c, 0xdc, 0x78, 0x2a, 0xa4, 0xdb, 0x59, 0x5e, 0x55, 0x00, 0x3b,
+ 0xa6, 0x2f, 0x2b, 0xc4, 0xb0, 0x5c, 0xda, 0xc9, 0x3c, 0xd3, 0x9a, 0x5f,
+ 0x98, 0xef, 0xe9, 0x2d, 0xc1, 0x00, 0xab, 0xd8, 0xbd, 0xdb, 0x61, 0xfe,
+ 0xcd, 0x58, 0xc6, 0x99, 0xcf, 0xea, 0xbc, 0x61, 0x21, 0x2a, 0xf8, 0xe9,
+ 0xe2, 0xc4, 0x45, 0xc7, 0x63, 0x58, 0x4c, 0x14, 0x97, 0x10, 0xee, 0x0e,
+ 0xc1, 0xd0, 0x81, 0x9d, 0x05, 0xa8, 0x76, 0x37, 0xd6, 0xfe, 0xe5, 0x18,
+ 0xb4, 0x8c, 0x6a, 0xe6, 0x0f, 0xd6, 0xdd, 0xa0, 0x17, 0x67, 0xd9, 0x4f,
+ 0x96, 0xc2, 0x88, 0x00, 0x5d, 0x68, 0x24, 0x46, 0x4b, 0x71, 0xed, 0x68,
+ 0xaf, 0xe9, 0xe6, 0x06, 0x50, 0xa1, 0xb0, 0x2e, 0x81, 0x2f, 0x77, 0x99,
+ 0x1c, 0x80, 0x0c, 0xe0, 0xd9, 0xb2, 0x8d, 0xc1, 0x1a, 0x08, 0x3a, 0x52,
+ 0xd0, 0xb1, 0xd5, 0x28, 0x4d, 0x7f, 0x49, 0xe1, 0x06, 0x6c, 0x38, 0xb0,
+ 0xe4, 0x2a, 0x09, 0xe9, 0x63, 0x8e, 0x32, 0x1b, 0x42, 0xdf, 0xe6, 0x7c,
+ 0x57, 0x81, 0x0c, 0x4c, 0x2a, 0x2c, 0x98, 0xc0, 0x3d, 0xf3, 0xdf, 0xc0,
+ 0x7d, 0x44, 0x6e, 0xec, 0x16, 0xa4, 0x00, 0x9e, 0x88, 0x34, 0x53, 0x97,
+ 0x28, 0xea, 0x66, 0xfe, 0x14, 0x68, 0x69, 0x65, 0x75, 0xde, 0x02, 0x87,
+ 0x0e, 0x10, 0x70, 0xde, 0x17, 0x85, 0x55, 0x98, 0x73, 0x8e, 0xf3, 0x01,
+ 0xf4, 0xa0, 0x9a, 0x18, 0x0c, 0x2d, 0xcd, 0x91, 0x9e, 0xa3, 0x47, 0x42,
+ 0x5d, 0xa0, 0x5d, 0x77, 0xf4, 0xc4, 0x4f, 0xc2, 0x7b, 0xfe, 0xf2, 0xc4,
+ 0x0b, 0xd4, 0x54, 0x93, 0x79, 0xbb, 0x6a, 0xe9, 0xfa, 0xb1, 0x89, 0xe8,
+ 0xd2, 0x71, 0xb9, 0x47, 0x1d, 0x95, 0x1b, 0x8e, 0xff, 0x1e, 0x36, 0x75,
+ 0x27, 0x3d, 0xc4, 0x74, 0x0b, 0x08, 0x85, 0xa9, 0xd7, 0x16, 0xee, 0x21,
+ 0x5e, 0x4f, 0xce, 0xf5, 0xd8, 0x00, 0x7e, 0x03, 0x00, 0x00, 0x6c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0f, 0x00, 0x00, 0x10, 0x10,
+ 0x00, 0x1a, 0xab, 0xc4, 0x0c, 0x34, 0x9c, 0xe8, 0x78, 0x5f, 0x60, 0x03,
+ 0x16, 0xe8, 0x67, 0xa2, 0x13, 0xd7, 0x14, 0x12, 0x39, 0x95, 0x4e, 0xc9,
+ 0x24, 0xbd, 0xa2, 0x4b, 0x03, 0xdf, 0xfe, 0xdc, 0x4f, 0x6d, 0x8f, 0x30,
+ 0x5e, 0xa0, 0x0e, 0x9b, 0x10, 0xb4, 0xdd, 0xba, 0x18, 0xc0, 0x55, 0x4e,
+ 0x6c, 0x1b, 0xa7, 0x06, 0xa3, 0x46, 0x5f, 0x0c, 0x80, 0xa9, 0x47, 0x4e,
+ 0xe2, 0xe3, 0x7f, 0x4e, 0x99, 0x02, 0x86, 0x7d, 0xb7, 0x57, 0x91, 0x7e,
+ 0xde, 0xc0, 0x32, 0xa5, 0x5d, 0x46, 0x93, 0xa0, 0xfa, 0x51, 0xc8, 0x36,
+ 0xae, 0x60, 0x5f, 0x1d, 0x3c, 0x2d, 0x59, 0x12, 0xfb, 0x22, 0xea, 0x6d,
+ 0x8c, 0x20, 0x4d, 0x4e, 0xfd, 0xfd, 0xb0, 0x32, 0x4e, 0x9c, 0xee, 0x6c,
+ 0xf6, 0xb3, 0x3e, 0x8b, 0xcc, 0x66, 0x76, 0x8d, 0x42, 0xa3, 0x6e, 0xa6,
+ 0x04, 0xa8, 0xd5, 0xfd, 0xd2, 0xb4, 0x1c, 0x35, 0x15, 0x59, 0xeb, 0x37,
+ 0xa4, 0x62, 0x84, 0xd5, 0x09, 0xd1, 0x69, 0xe1, 0xae, 0xc7, 0x72, 0x70,
+ 0x78, 0xc4, 0x9f, 0xec, 0x79, 0x77, 0xb1, 0xef, 0x89, 0x8f, 0xae, 0xe3,
+ 0x4f, 0xef, 0xd2, 0x48, 0x68, 0x0b, 0x79, 0xf1, 0xa5, 0x71, 0x76, 0xc7,
+ 0x41, 0xc6, 0x59, 0x27, 0x61, 0xb9, 0x55, 0x99, 0x26, 0x54, 0xb0, 0xe6,
+ 0x4b, 0x08, 0x4a, 0x31, 0x0d, 0xcc, 0x3d, 0x79, 0x09, 0xdd, 0x9d, 0x0d,
+ 0x45, 0x99, 0x51, 0x3a, 0xfb, 0x53, 0x5f, 0xbf, 0x67, 0xac, 0x22, 0x9a,
+ 0x99, 0xa9, 0xfe, 0xbc, 0xa7, 0xb1, 0x1d, 0xbf, 0xb1, 0x9d, 0x61, 0xb7,
+ 0x42, 0x77, 0xf9, 0xa3, 0xce, 0xb6, 0xe1, 0x03, 0xb9, 0xc2, 0x71, 0x31,
+ 0x47, 0xb3, 0x65, 0xc6, 0x67, 0x31, 0xc2, 0x88, 0x34, 0xc5, 0x7c, 0xaa,
+ 0xaf, 0x0f, 0x68, 0xbc, 0x29, 0x52, 0x5c, 0xd9, 0x99, 0x63, 0x8c, 0x4e,
+ 0xda, 0x33, 0x2a, 0xda, 0x31, 0x11, 0xdb, 0x68, 0xcf, 0xac, 0x09, 0xd1,
+ 0x74, 0xb2, 0x61, 0x74, 0x66, 0x0f, 0x3a, 0xaf, 0x5f, 0x31, 0x83, 0x3d,
+ 0x6b, 0x9a, 0x83, 0x52, 0xda, 0x26, 0x97, 0x48, 0x37, 0x50, 0xb4, 0xb5,
+ 0x0f, 0x5a, 0x30, 0xf4, 0x6a, 0x1e, 0x83, 0x22, 0xfd, 0x32, 0x0b, 0x32,
+ 0x1a, 0x69, 0xfb, 0x03, 0xcf, 0xd8, 0x58, 0x2e, 0x4c, 0x26, 0xfd, 0x5e,
+ 0x74, 0x87, 0x35, 0xad, 0x7a, 0x25, 0x1f, 0x81, 0xe4, 0x06, 0xb2, 0xa0,
+ 0xbe, 0x51, 0x40, 0xf7, 0x24, 0xe9, 0xfb, 0xec, 0xca, 0x23, 0x88, 0xbf,
+ 0x11, 0xa4, 0x36, 0x7e, 0x10, 0x72, 0x2d, 0xf3, 0x1b, 0xa1, 0x41, 0x55,
+ 0x95, 0x49, 0x9b, 0x06, 0x8b, 0x49, 0x72, 0xaa, 0x36, 0x73, 0x73, 0x1e,
+ 0x24, 0x45, 0x52, 0x28, 0xe7, 0xdb, 0xfb, 0x3b, 0x38, 0x9d, 0x4f, 0x7b,
+ 0x2f, 0x9d, 0x47, 0x98, 0xf5, 0x42, 0x0d, 0x1f, 0xed, 0x4e, 0x99, 0x90,
+ 0xe4, 0xfd, 0x48, 0xa2, 0x7a, 0xdb, 0xd5, 0xd7, 0x81, 0xca, 0x38, 0x4c,
+ 0x71, 0x2a, 0x91, 0x2a, 0x11, 0x4b, 0x75, 0x72, 0x10, 0xba, 0xd5, 0xe0,
+ 0x73, 0x2f, 0x0d, 0x9c, 0xeb, 0x1b, 0x3c, 0xd0, 0x26, 0x45, 0x7b, 0x54,
+ 0xcb, 0x9a, 0x83, 0x31, 0x7e, 0xf6, 0x46, 0x33, 0x86, 0xeb, 0x63, 0xf2,
+ 0xb3, 0x74, 0x7b, 0x89, 0xe9, 0xd9, 0xb1, 0xaa, 0x6d, 0x88, 0xa9, 0x20,
+ 0x4d, 0xbc, 0x94, 0x8e, 0xcd, 0xbf, 0xed, 0x98, 0xa7, 0xec, 0xef, 0x0c,
+ 0x51, 0xa7, 0xdb, 0xaa, 0xe0, 0x10, 0xe1, 0xe6, 0x6d, 0x90, 0xda, 0x14,
+ 0x6d, 0x0b, 0x1f, 0xe7, 0x40, 0x58, 0xaa, 0x8c, 0x3f, 0x72, 0x73, 0x70,
+ 0x28, 0x6f, 0xad, 0xd4, 0xe7, 0x7e, 0xb4, 0xba, 0xa3, 0x88, 0x63, 0x80,
+ 0x97, 0x05, 0x13, 0xbe, 0xeb, 0xb5, 0xe3, 0xb1, 0x20, 0x6a, 0x43, 0xb1,
+ 0xde, 0x12, 0xfd, 0xd8, 0xc5, 0xe2, 0x07, 0xe9, 0xd5, 0x1d, 0x5a, 0xdd,
+ 0x03, 0x12, 0x9f, 0xab, 0xfa, 0x48, 0x2e, 0x98, 0xc5, 0xed, 0x59, 0xf7,
+ 0x2d, 0x2e, 0x17, 0x98, 0x80, 0x7c, 0x26, 0x15, 0x2b, 0x7b, 0x92, 0x2c,
+ 0x84, 0xe3, 0xa8, 0x69, 0x0f, 0x42, 0x03, 0xe3, 0xba, 0x88, 0xff, 0xdb,
+ 0x0b, 0xba, 0xf5, 0xc1, 0x8a, 0xfb, 0x91, 0x85, 0xa4, 0x91, 0x0b, 0xab,
+ 0x8f, 0xaf, 0xdf, 0xec, 0x98, 0x7a, 0x4a, 0x22, 0x67, 0xab, 0x34, 0x7d,
+ 0x4c, 0x7f, 0x69, 0x3f, 0xda, 0xfe, 0x2d, 0x74, 0xe1, 0x36, 0x9f, 0x59,
+ 0x60, 0x64, 0xdb, 0x9e, 0xcb, 0xe4, 0x70, 0x1c, 0xc5, 0xb4, 0xa0, 0xbc,
+ 0x15, 0x93, 0xbb, 0xc5, 0xd5, 0x21, 0x02, 0x23, 0x5e, 0x5e, 0xf5, 0x39,
+ 0x0e, 0xfd, 0x8f, 0x35, 0x68, 0xfc, 0x75, 0xd8, 0x26, 0x2d, 0x7c, 0x2d,
+ 0xd9, 0x59, 0xae, 0x3d, 0x43, 0x22, 0x22, 0x4f, 0x1d, 0xa5, 0x3c, 0x80,
+ 0x2b, 0x8a, 0x48, 0x84, 0x96, 0xec, 0xad, 0x77, 0xd3, 0xcf, 0x44, 0x9a,
+ 0x29, 0x94, 0xb5, 0x68, 0xfd, 0xf7, 0x83, 0x7e, 0xde, 0x7f, 0x74, 0xbf,
+ 0x68, 0xf6, 0x82, 0xab, 0x13, 0x00, 0x0b, 0xe1, 0x04, 0xd8, 0x6d, 0x6f,
+ 0x6d, 0x4b, 0xf6, 0xe9, 0x28, 0x70, 0xa5, 0xa0, 0x67, 0x51, 0xe9, 0x3a,
+ 0x37, 0x49, 0xd0, 0xfc, 0x27, 0x5b, 0xd3, 0xad, 0xe9, 0x2c, 0x33, 0x49,
+ 0xa0, 0x40, 0x5e, 0xa6, 0xbd, 0x1c, 0x94, 0xe6, 0x69, 0xe8, 0x3a, 0x11,
+ 0x55, 0x51, 0x4a, 0x07, 0x77, 0x75, 0x69, 0xa8, 0xc8, 0x1c, 0xab, 0x85,
+ 0x22, 0x7c, 0x9f, 0x41, 0xe3, 0xec, 0x40, 0x0e, 0x8b, 0xfe, 0x5a, 0x92,
+ 0xb2, 0xb9, 0xc8, 0x8f, 0x8a, 0x3e, 0x46, 0x79, 0x3d, 0xfa, 0x08, 0xef,
+ 0x59, 0x7b, 0x3a, 0xbc, 0x04, 0xa7, 0xd1, 0x79, 0x02, 0xec, 0x37, 0xb1,
+ 0x9e, 0x2a, 0x2b, 0x71, 0x7d, 0x86, 0x99, 0xe6, 0xdb, 0xa4, 0x6b, 0xee,
+ 0xaf, 0x6e, 0xb0, 0x9e, 0x9a, 0x2c, 0xe8, 0xb1, 0xc8, 0x5f, 0x3f, 0xbf,
+ 0xea, 0x43, 0xda, 0x8f, 0xbe, 0x8e, 0x93, 0xc3, 0x71, 0x13, 0x0e, 0xb4,
+ 0x70, 0x3f, 0x82, 0x45, 0x96, 0xd4, 0xdf, 0xb0, 0x15, 0xfb, 0x62, 0x55,
+ 0x45, 0xcb, 0x7f, 0xe8, 0x51, 0xa9, 0xc3, 0x8f, 0x67, 0x7f, 0x11, 0xb3,
+ 0x97, 0x6c, 0x32, 0x3c, 0x9f, 0x65, 0xac, 0x1a, 0x47, 0x7c, 0x5a, 0x2a,
+ 0x59, 0x2b, 0xdb, 0x43, 0xac, 0x57, 0xfa, 0xe8, 0xcd, 0x56, 0xc9, 0x1c,
+ 0xb0, 0x26, 0xd3, 0x43, 0x9d, 0xe1, 0xbd, 0xbe, 0x09, 0x05, 0x01, 0xf9,
+ 0xf7, 0x94, 0xff, 0x81, 0x88, 0x1b, 0x9f, 0x51, 0x55, 0xfb, 0x99, 0xca,
+ 0x11, 0xad, 0x9c, 0xf2, 0x02, 0xa9, 0x3d, 0x27, 0x81, 0xda, 0x73, 0x72,
+ 0xc2, 0x17, 0xcf, 0xb5, 0xc5, 0xac, 0x74, 0x46, 0xec, 0x67, 0x88, 0x00,
+ 0x09, 0x03, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x0e, 0x00, 0x04, 0x10, 0x10, 0x00, 0x1e, 0xe1, 0xd4, 0x00, 0x09,
+ 0x0d, 0xea, 0xb7, 0xa4, 0xba, 0xad, 0xa8, 0xe4, 0x10, 0x14, 0xb7, 0xae,
+ 0xfa, 0xff, 0x58, 0x30, 0xba, 0xde, 0xd6, 0x9b, 0xb3, 0xa4, 0xf1, 0x45,
+ 0x78, 0x1f, 0xad, 0x35, 0x0e, 0xa5, 0x1c, 0x76, 0x3c, 0x9c, 0x38, 0x47,
+ 0x4d, 0x26, 0x5e, 0x52, 0x84, 0x23, 0x19, 0x60, 0xfe, 0xd8, 0x3c, 0x52,
+ 0x08, 0xd3, 0x33, 0x6a, 0x89, 0x3f, 0x9d, 0x8f, 0x4c, 0xe5, 0x96, 0x69,
+ 0xe5, 0xad, 0xbe, 0x3e, 0x2a, 0x3c, 0xa2, 0xc8, 0xf7, 0xdc, 0x31, 0x46,
+ 0x90, 0x02, 0x77, 0x5e, 0x91, 0x6a, 0x63, 0x5a, 0x0d, 0x93, 0xbe, 0x0e,
+ 0x1c, 0x31, 0x48, 0xa8, 0xee, 0x21, 0x77, 0xb7, 0xe4, 0x2c, 0x92, 0xca,
+ 0x54, 0x2a, 0xf3, 0x62, 0x83, 0x78, 0x0b, 0x9b, 0x0f, 0x5b, 0x87, 0x00,
+ 0xa3, 0x74, 0xbc, 0x5a, 0x32, 0xa5, 0x53, 0xbb, 0x68, 0x5e, 0xef, 0x4c,
+ 0x95, 0x9a, 0x39, 0xa2, 0xef, 0x6a, 0x9a, 0x6f, 0x6f, 0xfd, 0x09, 0x41,
+ 0x65, 0xc4, 0xf2, 0x3b, 0xad, 0x53, 0x9a, 0x84, 0xd6, 0x57, 0x6f, 0x38,
+ 0x59, 0xa8, 0x22, 0x18, 0x53, 0xdf, 0xdc, 0x89, 0x13, 0x1d, 0xcb, 0x44,
+ 0x9d, 0x4d, 0x1d, 0x42, 0xf6, 0xd4, 0x54, 0x3f, 0x75, 0x50, 0xaf, 0x99,
+ 0xb0, 0x12, 0x07, 0x67, 0x37, 0xbe, 0x5d, 0x6c, 0x27, 0x5d, 0x89, 0x97,
+ 0x47, 0xbf, 0xbb, 0xfb, 0x57, 0xe0, 0x75, 0x52, 0x03, 0x13, 0x59, 0x12,
+ 0xe2, 0xd8, 0x86, 0x48, 0x16, 0x73, 0x5a, 0x67, 0x8a, 0xcd, 0x14, 0xa7,
+ 0x63, 0x33, 0x39, 0x98, 0x83, 0x0e, 0x60, 0x9b, 0x2f, 0xf7, 0x77, 0xb8,
+ 0xc7, 0x07, 0x78, 0x21, 0x71, 0xee, 0x61, 0xf7, 0x03, 0xfd, 0x93, 0xa9,
+ 0xf3, 0xbe, 0x1f, 0x8a, 0xf2, 0x75, 0x3e, 0x81, 0xde, 0xf1, 0x12, 0x43,
+ 0x7d, 0x9f, 0x1e, 0xc8, 0xfc, 0x0e, 0x4d, 0x98, 0x72, 0xcc, 0x07, 0x0f,
+ 0xa8, 0x95, 0x3b, 0xdc, 0x33, 0x43, 0xfe, 0x26, 0x08, 0xf3, 0x3d, 0x36,
+ 0xf6, 0xa9, 0x9c, 0x18, 0x46, 0xef, 0x38, 0x6d, 0x29, 0xa2, 0xa4, 0x31,
+ 0x12, 0xe3, 0xfc, 0xa6, 0x99, 0xe7, 0xf4, 0x78, 0x46, 0xe8, 0xc4, 0x44,
+ 0xee, 0x7d, 0xeb, 0x01, 0x14, 0xd6, 0xcc, 0xa4, 0x85, 0x2a, 0xbe, 0x28,
+ 0x03, 0xec, 0xee, 0xe6, 0xff, 0x38, 0xad, 0x3e, 0x84, 0xcc, 0x7e, 0x6e,
+ 0xdc, 0xdb, 0x80, 0x11, 0x28, 0x75, 0xa2, 0x2a, 0x7a, 0x07, 0x33, 0x6d,
+ 0xc2, 0x93, 0x92, 0xf3, 0x3c, 0xa1, 0x38, 0xdd, 0x1d, 0x5c, 0xd2, 0xeb,
+ 0x03, 0x17, 0x8a, 0x7a, 0x63, 0x30, 0xc2, 0x06, 0xec, 0x06, 0x9c, 0x56,
+ 0x2e, 0x08, 0x83, 0x84, 0xa3, 0x46, 0xd1, 0xe3, 0x1f, 0x1f, 0xf8, 0x3c,
+ 0xe0, 0xca, 0x39, 0x13, 0x41, 0xda, 0xd8, 0x28, 0x6a, 0x03, 0x4a, 0x96,
+ 0x12, 0xe8, 0x7b, 0x8b, 0xe4, 0x96, 0x76, 0x27, 0xb8, 0xbf, 0xae, 0x5b,
+ 0x1b, 0x31, 0xda, 0xe6, 0x74, 0x6d, 0x54, 0x97, 0xa5, 0xb4, 0xc9, 0xdc,
+ 0xaf, 0x17, 0x43, 0x7c, 0x38, 0x09, 0x99, 0x1a, 0x27, 0xf1, 0xb3, 0x07,
+ 0x84, 0x11, 0xe3, 0xa3, 0x2e, 0x85, 0x32, 0xcd, 0x61, 0xa6, 0xf5, 0xb6,
+ 0x29, 0xbd, 0x5b, 0x77, 0x68, 0xbe, 0x2b, 0x75, 0xfb, 0xd9, 0x82, 0x6c,
+ 0x09, 0xa2, 0x0d, 0x92, 0x57, 0x9a, 0xed, 0x90, 0x8d, 0x2b, 0xe2, 0xf1,
+ 0xf6, 0xcc, 0xc0, 0x3c, 0xde, 0x5d, 0x25, 0x73, 0xc3, 0x0f, 0x39, 0x2d,
+ 0x35, 0x23, 0xc6, 0x49, 0x0b, 0xc6, 0xef, 0x6b, 0x4a, 0xd4, 0xbe, 0x0a,
+ 0x74, 0x69, 0x3c, 0x27, 0x34, 0xa0, 0x49, 0xfe, 0x8e, 0xfc, 0xba, 0x80,
+ 0x29, 0x65, 0xc7, 0x12, 0x81, 0x0a, 0xa3, 0xb7, 0x41, 0x33, 0x61, 0x74,
+ 0xc7, 0x79, 0xc7, 0xa2, 0x6b, 0x2b, 0x7a, 0x04, 0x9f, 0x1b, 0x0e, 0x1c,
+ 0xfe, 0x19, 0xcc, 0x8f, 0xd7, 0xbd, 0xdb, 0x72, 0x84, 0x4b, 0xde, 0x8f,
+ 0x40, 0xa8, 0x94, 0x80, 0x5d, 0x33, 0xec, 0xb2, 0x3b, 0x95, 0x70, 0xc4,
+ 0x86, 0x28, 0x4f, 0xe7, 0x6b, 0x8c, 0xa9, 0x12, 0xcf, 0x8e, 0x87, 0xb9,
+ 0x43, 0x85, 0x67, 0x39, 0xd5, 0x08, 0xe1, 0x85, 0x26, 0x5f, 0xc2, 0x0e,
+ 0x65, 0x62, 0x99, 0x9a, 0xc9, 0x1e, 0xb5, 0x84, 0xf4, 0x93, 0x25, 0x62,
+ 0xda, 0xbd, 0xbc, 0x4f, 0xd7, 0x5c, 0x35, 0xda, 0x61, 0x7f, 0xd1, 0x80,
+ 0x2f, 0x64, 0x37, 0xf2, 0x53, 0xb0, 0x03, 0x93, 0x16, 0x8b, 0xc7, 0xac,
+ 0x61, 0x70, 0x89, 0x0b, 0x5f, 0x4a, 0x8f, 0xd4, 0x51, 0x64, 0x16, 0x8c,
+ 0x0c, 0x18, 0x3c, 0x3d, 0xdd, 0x92, 0x83, 0x3a, 0x0e, 0x65, 0xfb, 0x5a,
+ 0xe1, 0xc7, 0xd1, 0xb0, 0xc0, 0xc5, 0xde, 0x91, 0x8c, 0x8a, 0xdd, 0xa3,
+ 0xd0, 0x8c, 0x0a, 0x98, 0x34, 0x11, 0x4a, 0x5b, 0x27, 0xc4, 0x1a, 0x30,
+ 0xa9, 0xc5, 0xf0, 0x9c, 0xe1, 0x0e, 0x77, 0xb8, 0xc8, 0xe9, 0x6e, 0x1d,
+ 0x78, 0x07, 0x6c, 0x29, 0x6b, 0x8b, 0x1c, 0x93, 0x14, 0x67, 0x05, 0x98,
+ 0xfd, 0xab, 0x70, 0x29, 0x09, 0x56, 0x08, 0x15, 0x6e, 0xfb, 0x1a, 0x02,
+ 0x11, 0xa3, 0x27, 0x9c, 0x69, 0x84, 0x63, 0x21, 0x60, 0xbd, 0x4c, 0xe0,
+ 0xaa, 0xec, 0x4b, 0x84, 0xf4, 0x72, 0x76, 0xac, 0xea, 0x0b, 0x08, 0xf9,
+ 0x4f, 0xb2, 0xd1, 0xae, 0x83, 0x8d, 0x31, 0xf2, 0xe0, 0x7d, 0x80, 0x68,
+ 0x62, 0x61, 0x42, 0xc1, 0xbe, 0x33, 0x7b, 0xf4, 0x71, 0x29, 0x0a, 0xf6,
+ 0xe0, 0x52, 0x9a, 0x4f, 0xea, 0xa7, 0x6d, 0xff, 0xf7, 0x5c, 0x17, 0x2f,
+ 0x39, 0x78, 0x3d, 0x44, 0xbd, 0x17, 0x7a, 0x3a, 0xdd, 0x7f, 0x47, 0x51,
+ 0x61, 0x99, 0x3c, 0x23, 0x6f, 0x57, 0x10, 0xfc, 0x89, 0x6b, 0xf6, 0xcb,
+ 0xa6, 0xca, 0xd9, 0x52, 0xce, 0x51, 0x66, 0xe8, 0x00, 0x44, 0x04, 0x00,
+ 0x00, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x14, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0xec, 0xf8, 0xc4, 0xcd, 0x04, 0x9e,
+ 0x0f, 0x30, 0xd8, 0xa0, 0x65, 0x33, 0x20, 0x13, 0x06, 0x8b, 0xae, 0x44,
+ 0x30, 0xb3, 0xf5, 0xd7, 0xb5, 0x17, 0x6e, 0x57, 0x0a, 0x29, 0xad, 0xa5,
+ 0xe0, 0x13, 0xeb, 0x0a, 0x88, 0x20, 0x91, 0x71, 0x91, 0x25, 0xbf, 0x5a,
+ 0x4f, 0xd6, 0xbf, 0x76, 0xb3, 0x52, 0x0f, 0x45, 0x69, 0x92, 0x65, 0x85,
+ 0x45, 0x0c, 0x1b, 0xdb, 0x2b, 0xbb, 0x8b, 0x84, 0xd5, 0xe2, 0x9e, 0x64,
+ 0x36, 0x53, 0x5b, 0x35, 0xcd, 0xec, 0x6c, 0x12, 0x36, 0x60, 0xa0, 0x40,
+ 0xe8, 0xa2, 0x3c, 0x33, 0xcd, 0x28, 0xd6, 0xf1, 0x54, 0x14, 0x92, 0x41,
+ 0xeb, 0xa0, 0x68, 0x46, 0xba, 0x7a, 0xc0, 0xb1, 0xcf, 0x8d, 0xb8, 0xce,
+ 0x1f, 0x8c, 0x43, 0xc4, 0x75, 0x73, 0x6a, 0x2f, 0x87, 0x8d, 0x78, 0x04,
+ 0x36, 0xc3, 0x43, 0x18, 0xab, 0xb3, 0x46, 0xb6, 0x38, 0x36, 0x59, 0xd2,
+ 0xb0, 0x23, 0x11, 0x4f, 0xf4, 0xf5, 0x1c, 0x01, 0x62, 0x46, 0xb2, 0xfc,
+ 0xf6, 0x5f, 0x85, 0x9f, 0x39, 0xb0, 0x2f, 0xaa, 0x51, 0x6a, 0x88, 0x62,
+ 0x7a, 0x84, 0x5a, 0x7f, 0x37, 0xb5, 0x15, 0xb0, 0xdf, 0x60, 0xa3, 0x74,
+ 0xbc, 0x5a, 0x13, 0x65, 0x53, 0xbb, 0x7e, 0x5d, 0x67, 0x4c, 0x95, 0x9a,
+ 0x39, 0xa2, 0xf0, 0x16, 0x99, 0xe1, 0xd1, 0xba, 0x91, 0x37, 0xe7, 0x5a,
+ 0xe2, 0x64, 0x0e, 0xe0, 0x78, 0xb5, 0x6d, 0x09, 0xa5, 0x67, 0x96, 0xb9,
+ 0x47, 0x55, 0x95, 0xd0, 0xab, 0x15, 0x6f, 0x18, 0x9c, 0xa5, 0x7d, 0x82,
+ 0x54, 0x34, 0x4c, 0xa9, 0xa9, 0x26, 0x11, 0x3c, 0x8d, 0xb3, 0xa9, 0x8e,
+ 0xee, 0x93, 0x1e, 0x25, 0x84, 0x38, 0xc4, 0x15, 0xff, 0x81, 0x52, 0xcb,
+ 0xb1, 0xf9, 0x2b, 0x8c, 0xd9, 0x0d, 0xa8, 0xb5, 0xba, 0xfe, 0x10, 0xff,
+ 0xa7, 0x3e, 0xc9, 0x37, 0x26, 0x4e, 0x7f, 0x31, 0x30, 0xf1, 0xea, 0xc4,
+ 0x82, 0x4c, 0xc9, 0x08, 0x78, 0xff, 0x1c, 0x0e, 0xd2, 0xaa, 0xf3, 0x9f,
+ 0xb2, 0x58, 0x1a, 0xeb, 0xc4, 0xdb, 0x9a, 0xc3, 0x64, 0xe6, 0xe8, 0x8e,
+ 0xab, 0xe6, 0xc5, 0xc4, 0xf7, 0x47, 0x44, 0xa5, 0x2b, 0xa5, 0x79, 0xcd,
+ 0xee, 0xc6, 0xaa, 0x93, 0xd4, 0x1d, 0xc1, 0x96, 0x64, 0x91, 0x46, 0x4f,
+ 0x7b, 0x03, 0xfa, 0x87, 0xe4, 0x12, 0xf2, 0x47, 0xef, 0xbd, 0x33, 0xed,
+ 0xb1, 0xb5, 0x53, 0xd5, 0xaa, 0x74, 0x92, 0xd2, 0xb2, 0xb5, 0xc3, 0xed,
+ 0x4d, 0x89, 0x35, 0xa9, 0xf6, 0xcc, 0xc9, 0x41, 0x9f, 0x23, 0xd2, 0xbb,
+ 0xea, 0x51, 0xc3, 0x7f, 0x4d, 0x5e, 0x20, 0x5f, 0xd1, 0x02, 0xf4, 0x77,
+ 0x1b, 0x3f, 0x35, 0xcb, 0x56, 0x8e, 0x74, 0x1e, 0x1a, 0xea, 0xb6, 0x84,
+ 0x77, 0x10, 0x61, 0xce, 0x6f, 0xf8, 0x4a, 0xaf, 0x4b, 0x17, 0xc0, 0xd4,
+ 0xcc, 0xfe, 0x8e, 0x99, 0x35, 0xf9, 0x25, 0x85, 0x34, 0x71, 0xaf, 0xf2,
+ 0xb2, 0x5b, 0x1f, 0x7d, 0x50, 0xba, 0xbd, 0x6d, 0xd3, 0x2c, 0x54, 0xbc,
+ 0xd8, 0x4e, 0xd6, 0x64, 0xb3, 0x10, 0x71, 0xa8, 0xac, 0xb3, 0xbf, 0x9b,
+ 0x55, 0xfd, 0xca, 0x66, 0x59, 0xad, 0xaf, 0x6b, 0xa8, 0x00, 0x6a, 0x2e,
+ 0x68, 0xf2, 0x39, 0xc0, 0x41, 0x92, 0xbe, 0x7e, 0xa9, 0xc1, 0xb3, 0x85,
+ 0xba, 0x89, 0x35, 0x39, 0x0b, 0x14, 0x6b, 0x22, 0xa6, 0x49, 0xd2, 0xf5,
+ 0x37, 0x94, 0x1e, 0x30, 0x6c, 0x8d, 0xb5, 0x71, 0xd2, 0xbb, 0x00, 0x75,
+ 0x3c, 0x81, 0x59, 0x52, 0x29, 0x7d, 0x18, 0x71, 0x70, 0x0f, 0xfc, 0x58,
+ 0xc5, 0xb1, 0x93, 0xfe, 0x16, 0x2a, 0x26, 0x61, 0x7f, 0x1b, 0x44, 0x91,
+ 0x65, 0xd8, 0x67, 0xc6, 0x32, 0xcf, 0x63, 0xe3, 0x9a, 0x86, 0x4e, 0x07,
+ 0xe7, 0xe0, 0x1c, 0x61, 0xcd, 0x24, 0xf9, 0x65, 0x4a, 0xd3, 0x74, 0x6f,
+ 0x8b, 0x51, 0x97, 0xfd, 0xda, 0xe1, 0x75, 0xfc, 0x7f, 0x43, 0x03, 0xdf,
+ 0x49, 0x39, 0xc1, 0x85, 0x4d, 0xc1, 0xb9, 0x7e, 0x30, 0xfa, 0x08, 0x78,
+ 0xc3, 0x2d, 0xfe, 0x08, 0xbb, 0x1f, 0x95, 0x49, 0x78, 0x7e, 0x40, 0x4f,
+ 0xc8, 0x0c, 0xc0, 0x0b, 0x4a, 0x6b, 0x1c, 0x4c, 0x4b, 0xa7, 0x1c, 0x09,
+ 0xa7, 0x55, 0x59, 0xc5, 0x60, 0xfc, 0x43, 0x8f, 0x69, 0x70, 0x88, 0xf7,
+ 0x5d, 0x66, 0x01, 0x74, 0x26, 0x6e, 0x1a, 0x4c, 0xde, 0xf6, 0x83, 0x63,
+ 0x10, 0xa8, 0x86, 0x06, 0x10, 0x0a, 0x5d, 0x25, 0xf2, 0x56, 0x17, 0x29,
+ 0x40, 0x40, 0x95, 0xf3, 0xea, 0x09, 0x34, 0xde, 0x3b, 0x46, 0x07, 0x79,
+ 0xd3, 0x11, 0x70, 0x5f, 0x24, 0xaf, 0x9e, 0xc4, 0xe7, 0xc2, 0xb7, 0x51,
+ 0x3f, 0x5e, 0x02, 0x58, 0xef, 0x99, 0x4f, 0xde, 0xec, 0xdb, 0x77, 0x3e,
+ 0xf5, 0x5b, 0xd1, 0x6c, 0xf4, 0x1b, 0xee, 0xb3, 0xb3, 0x58, 0xfa, 0x76,
+ 0x5e, 0xe6, 0x15, 0x3d, 0xd3, 0x2f, 0x0c, 0x31, 0xab, 0xc5, 0x11, 0xc6,
+ 0x34, 0x06, 0x99, 0x11, 0x4c, 0x9d, 0x49, 0x66, 0xa0, 0xf4, 0x9a, 0x3c,
+ 0x1f, 0x2f, 0xf8, 0xdb, 0xb5, 0x0d, 0x7c, 0xb1, 0xb3, 0xb2, 0x8b, 0x26,
+ 0x8b, 0x08, 0x32, 0x1e, 0x6b, 0x9d, 0x53, 0xfa, 0xde, 0xa5, 0x17, 0xd6,
+ 0x74, 0xde, 0xab, 0x95, 0xbd, 0xa9, 0xb5, 0xaa, 0x2d, 0x31, 0x31, 0x84,
+ 0x0b, 0xcc, 0xe5, 0x27, 0x8c, 0x5e, 0x02, 0x8c, 0x50, 0x08, 0xf1, 0x68,
+ 0x2d, 0xad, 0xc3, 0x40, 0x59, 0x1f, 0x35, 0xe7, 0xe5, 0x41, 0xd5, 0xc3,
+ 0x5f, 0x03, 0x74, 0xe7, 0x6d, 0xae, 0x2c, 0xb6, 0x3d, 0x5c, 0xfd, 0x95,
+ 0x54, 0xe7, 0x94, 0xd4, 0x0b, 0x6b, 0x5c, 0xb3, 0xe5, 0x93, 0xcd, 0x03,
+ 0x67, 0x2d, 0x4b, 0x21, 0xe0, 0x11, 0x9f, 0xf7, 0x3f, 0xe4, 0xf6, 0x0a,
+ 0xd9, 0xa2, 0xe4, 0x57, 0x92, 0xd1, 0xbf, 0xc1, 0x73, 0xac, 0xa7, 0x81,
+ 0x63, 0x15, 0x52, 0xe4, 0xe7, 0xc5, 0xa6, 0x47, 0x72, 0x79, 0x04, 0x65,
+ 0x61, 0x25, 0x8e, 0x7c, 0x0e, 0xe0, 0x2d, 0x11, 0xb4, 0x92, 0xa0, 0xce,
+ 0x5c, 0x46, 0xf1, 0x90, 0x1a, 0x9a, 0x23, 0xde, 0xe8, 0x34, 0x03, 0x86,
+ 0x23, 0x97, 0x89, 0x7e, 0x95, 0xc6, 0xf5, 0x56, 0x35, 0xad, 0x22, 0x48,
+ 0xb9, 0xa4, 0x88, 0x33, 0x09, 0x9b, 0xc6, 0x64, 0x57, 0x07, 0x75, 0x72,
+ 0x23, 0xbc, 0xea, 0xd8, 0x91, 0xf9, 0x42, 0xac, 0xe5, 0x3b, 0x15, 0x3b,
+ 0x4e, 0xeb, 0xfd, 0x33, 0xdb, 0x79, 0x07, 0x5f, 0x34, 0x3f, 0x44, 0x44,
+ 0x2e, 0x31, 0x18, 0xad, 0x9d, 0xf4, 0x46, 0xe6, 0xf8, 0xa0, 0x8d, 0x5d,
+ 0x5b, 0x2a, 0x72, 0xe2, 0x83, 0x27, 0x5d, 0x88, 0x90, 0x0e, 0x0d, 0x7b,
+ 0x48, 0xa8, 0x55, 0x4c, 0x37, 0x18, 0x66, 0x70, 0x68, 0x27, 0xf6, 0xc5,
+ 0x8d, 0xf3, 0x10, 0xfd, 0xa3, 0x7e, 0xc2, 0xfb, 0x60, 0x49, 0x99, 0xca,
+ 0x4d, 0xd6, 0xd8, 0xcd, 0x7d, 0x76, 0xe8, 0x39, 0xce, 0x8c, 0xa1, 0x8f,
+ 0xcd, 0x69, 0xf5, 0x0f, 0xf2, 0x56, 0x80, 0x7c, 0x1b, 0xde, 0xe8, 0xf0,
+ 0x1b, 0x7f, 0x46, 0xde, 0x6d, 0xcb, 0xbc, 0x94, 0x51, 0xc6, 0x01, 0x7d,
+ 0x39, 0x4e, 0xe3, 0xf0, 0x59, 0xd7, 0x9c, 0xe9, 0xef, 0xd8, 0x84, 0x38,
+ 0x7f, 0x98, 0xfe, 0x1c, 0x89, 0x50, 0x30, 0x8a, 0x63, 0xe3, 0x33, 0x66,
+ 0xb1, 0x0c, 0xce, 0xb7, 0xdb, 0x39, 0xbf, 0xe9, 0x00, 0x5f, 0x89, 0x49,
+ 0xdf, 0xe9, 0x4a, 0x5f, 0x48, 0xca, 0xec, 0xd5, 0x8e, 0x1d, 0xe6, 0x4d,
+ 0x11, 0xde, 0x9b, 0x33, 0xee, 0x0c, 0x1a, 0x09, 0x8e, 0xc9, 0x99, 0x76,
+ 0x53, 0x5d, 0x1b, 0x62, 0xfa, 0x3b, 0x1e, 0xe7, 0x0d, 0xfe, 0x3f, 0xac,
+ 0x9d, 0x27, 0xfc, 0x6a, 0xb8, 0x58, 0x13, 0x76, 0xe1, 0x5d, 0xdd, 0x0d,
+ 0x61, 0x5e, 0x5f, 0x65, 0xb2, 0xda, 0x5b, 0x61, 0xf5, 0x57, 0xe7, 0x62,
+ 0xb9, 0xbd, 0x45, 0x26, 0xcc, 0x1f, 0xfb, 0xbf, 0xe0, 0xd2, 0x4b, 0x37,
+ 0xde, 0x82, 0x14, 0x6c, 0xff, 0xa4, 0xa6, 0xa1, 0x59, 0x1c, 0x44, 0x07,
+ 0x39, 0x4c, 0xcd, 0xa0, 0xb5, 0x2f, 0x31, 0x17, 0x45, 0x8e, 0x40, 0xe5,
+ 0xf3, 0xf9, 0xc9, 0xfd, 0x7c, 0x14, 0xbe, 0xb7, 0xc0, 0xb8, 0x03, 0x00,
+ 0x00, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x10, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0x6c, 0x0a, 0xcf, 0xef, 0xe6, 0x79,
+ 0x09, 0xdb, 0x71, 0x83, 0x33, 0xc0, 0xe8, 0x00, 0x2c, 0xe2, 0xde, 0xae,
+ 0x3f, 0xb7, 0xd7, 0x77, 0xd1, 0xc7, 0xa8, 0x18, 0xc5, 0xbb, 0x51, 0x20,
+ 0xa0, 0x90, 0x0c, 0xa6, 0x56, 0x24, 0xfd, 0x60, 0x1d, 0x0c, 0x86, 0xd4,
+ 0x77, 0xdc, 0xc6, 0x45, 0x95, 0x79, 0xa0, 0xa6, 0x16, 0x05, 0xea, 0x91,
+ 0xd0, 0x67, 0xb3, 0x51, 0x91, 0xb1, 0x20, 0xfe, 0xc1, 0xc5, 0x61, 0x63,
+ 0x1c, 0x9c, 0x45, 0x56, 0xa0, 0x9e, 0x8f, 0x1f, 0x5c, 0x15, 0x96, 0x05,
+ 0x8c, 0xed, 0x31, 0x87, 0xa5, 0x4e, 0xf2, 0x24, 0xe4, 0xdb, 0xc5, 0x66,
+ 0x43, 0x52, 0xda, 0x07, 0xeb, 0xc7, 0xb5, 0xf6, 0xfe, 0xe6, 0x23, 0x81,
+ 0x1d, 0x0c, 0x18, 0x63, 0x2c, 0x56, 0x2e, 0x05, 0xc5, 0xf0, 0x5f, 0xb7,
+ 0xdf, 0x7c, 0x60, 0xab, 0x25, 0x49, 0xcd, 0xcc, 0x12, 0x7e, 0x00, 0xa3,
+ 0x74, 0xbc, 0x5a, 0x32, 0xa5, 0x53, 0xbb, 0x68, 0x5e, 0xef, 0x4c, 0x95,
+ 0x9a, 0x39, 0xa2, 0xee, 0x7b, 0x3c, 0xca, 0xed, 0x1d, 0x09, 0x48, 0xd0,
+ 0x51, 0xc9, 0xca, 0x53, 0x87, 0xf8, 0x82, 0xdd, 0xba, 0xef, 0x8f, 0x56,
+ 0xc8, 0xfa, 0x34, 0xc7, 0x52, 0x4c, 0x0a, 0x4c, 0xa3, 0x7c, 0x24, 0xdd,
+ 0xb4, 0x08, 0xcf, 0xa2, 0x7d, 0x0d, 0x90, 0x0b, 0x83, 0x79, 0xc3, 0xa5,
+ 0xcd, 0x6f, 0xbd, 0x77, 0x78, 0xd9, 0xa5, 0xe2, 0xc6, 0xe7, 0xdc, 0x21,
+ 0xbf, 0x2d, 0x08, 0xcb, 0x6d, 0xfc, 0xa5, 0x8d, 0x18, 0xab, 0x9b, 0x7f,
+ 0x8a, 0xc6, 0x30, 0x5b, 0x3a, 0x61, 0xc1, 0x45, 0x0b, 0xd4, 0x2c, 0x6a,
+ 0x59, 0x3f, 0xf2, 0x9e, 0xf1, 0xca, 0xd9, 0x01, 0x70, 0x94, 0x65, 0x86,
+ 0xf0, 0xe6, 0xba, 0xb9, 0xf2, 0xad, 0xe8, 0x60, 0x92, 0x6d, 0x31, 0xf9,
+ 0xaa, 0x20, 0x96, 0x4e, 0xc4, 0xd6, 0x49, 0x24, 0xc4, 0xa1, 0xa2, 0x65,
+ 0xd1, 0xcd, 0x6d, 0xd8, 0xe7, 0x6a, 0x9c, 0xcc, 0xf4, 0x6b, 0x78, 0xae,
+ 0x4a, 0xce, 0x48, 0xd7, 0xc4, 0x11, 0xce, 0xd1, 0x01, 0xbe, 0xb3, 0xc4,
+ 0x09, 0xa1, 0x27, 0x3d, 0xcd, 0xa4, 0x86, 0x74, 0x31, 0x2c, 0xc3, 0x43,
+ 0xdb, 0xd4, 0x66, 0xf0, 0x5f, 0xdd, 0x17, 0x8e, 0x1f, 0xff, 0x31, 0x9d,
+ 0xd3, 0xec, 0x88, 0x17, 0xae, 0xe5, 0xc4, 0x39, 0x5d, 0xca, 0x3b, 0xdb,
+ 0xc7, 0xe9, 0x7f, 0xab, 0x3e, 0xe2, 0x67, 0x05, 0x59, 0xef, 0x94, 0xd3,
+ 0x57, 0xc6, 0x1d, 0x76, 0x1f, 0x23, 0x46, 0x26, 0xca, 0xfd, 0x1c, 0x45,
+ 0x1c, 0xfd, 0x1d, 0x0c, 0x31, 0xf3, 0x40, 0x2b, 0x24, 0x8e, 0xd3, 0xb6,
+ 0x2a, 0x58, 0xd3, 0x98, 0xf4, 0x93, 0x7f, 0xf0, 0x9a, 0xf8, 0x91, 0x34,
+ 0x2f, 0x36, 0xf9, 0x9b, 0xf4, 0x53, 0xcb, 0x46, 0x7a, 0x55, 0x63, 0x67,
+ 0xbc, 0xb2, 0xb9, 0xe6, 0x9c, 0xe8, 0x69, 0x42, 0x03, 0xeb, 0x01, 0x71,
+ 0x6e, 0xd4, 0x2b, 0x4a, 0xed, 0xc4, 0x00, 0xab, 0x7e, 0x38, 0xed, 0x5d,
+ 0x9e, 0x98, 0x7d, 0x35, 0xf7, 0x02, 0x14, 0x18, 0x88, 0x53, 0x7c, 0x49,
+ 0x8d, 0x81, 0xc1, 0xa0, 0x0e, 0xc1, 0x2f, 0x99, 0xfc, 0xbc, 0x12, 0xd6,
+ 0x27, 0x68, 0xb2, 0x82, 0xdd, 0x6f, 0xdd, 0x5d, 0xb6, 0x23, 0x2d, 0xcd,
+ 0xaf, 0xa9, 0xc1, 0xf4, 0xaf, 0xbb, 0x0b, 0xbc, 0x6a, 0x4e, 0x15, 0x2e,
+ 0xc8, 0x9e, 0xf3, 0x26, 0xba, 0x24, 0x87, 0x8c, 0x08, 0x15, 0x01, 0x1e,
+ 0x02, 0xf3, 0x06, 0x84, 0x14, 0x05, 0x95, 0x9b, 0x00, 0x48, 0x31, 0xb8,
+ 0xae, 0xf9, 0x27, 0xdb, 0x3a, 0xc6, 0xed, 0xc9, 0xe3, 0xf7, 0xc4, 0xd7,
+ 0x4c, 0xa5, 0xa2, 0xcb, 0x67, 0xe5, 0x1a, 0xa8, 0x4c, 0x71, 0x21, 0xcb,
+ 0x38, 0xde, 0x49, 0x15, 0xb0, 0x09, 0x30, 0x1c, 0x1c, 0x47, 0x35, 0x98,
+ 0x19, 0xd5, 0x91, 0x60, 0x81, 0x49, 0xf5, 0x9f, 0x5e, 0xc0, 0x46, 0x0f,
+ 0xdf, 0x63, 0xe4, 0xd8, 0xcb, 0x74, 0x70, 0xc9, 0xe4, 0x14, 0x58, 0x33,
+ 0x15, 0x0f, 0x23, 0x5f, 0x86, 0xbc, 0xe4, 0xe2, 0xd6, 0xff, 0x6d, 0xf9,
+ 0x64, 0x1f, 0xf9, 0x83, 0x28, 0xa7, 0x89, 0x77, 0x60, 0xd5, 0xe7, 0xef,
+ 0x58, 0x49, 0x5f, 0xcd, 0x33, 0x9d, 0x06, 0x41, 0x79, 0xd5, 0x93, 0x62,
+ 0x64, 0x64, 0xc4, 0x30, 0x9f, 0xcd, 0x18, 0x5a, 0x1e, 0xd1, 0xf7, 0x8d,
+ 0xa9, 0xa2, 0x93, 0x85, 0xd1, 0xfa, 0xfb, 0x44, 0x58, 0xa2, 0xfa, 0xec,
+ 0x8e, 0xb5, 0xe8, 0xde, 0x2e, 0xc6, 0x30, 0x85, 0x9e, 0xb9, 0xa5, 0x76,
+ 0x37, 0xe4, 0xea, 0x57, 0x20, 0xc4, 0x94, 0xae, 0x96, 0x51, 0xad, 0x47,
+ 0xc5, 0x0b, 0x5f, 0x5b, 0xec, 0x8b, 0x12, 0x25, 0x5f, 0x6e, 0x0f, 0x7b,
+ 0xcd, 0x29, 0x86, 0xce, 0xaa, 0xd4, 0x55, 0x2e, 0xb6, 0x21, 0x5e, 0xa2,
+ 0x80, 0x2c, 0x25, 0x8a, 0x27, 0x2c, 0x18, 0x28, 0xe0, 0xc4, 0xca, 0xa9,
+ 0x80, 0xf6, 0x47, 0x71, 0xc7, 0x6c, 0xf2, 0x39, 0xb1, 0xed, 0x7b, 0x7e,
+ 0x4e, 0x7b, 0x76, 0xbd, 0xbd, 0x77, 0xf0, 0xf2, 0x14, 0xe9, 0xf6, 0x55,
+ 0x26, 0xa6, 0xab, 0xbd, 0xfd, 0x53, 0x9d, 0x9f, 0x1d, 0xb4, 0x25, 0x5f,
+ 0x50, 0x2a, 0x47, 0x97, 0x6a, 0xa6, 0xc7, 0x21, 0x67, 0xaf, 0xc7, 0x03,
+ 0xb5, 0x69, 0x77, 0x67, 0x99, 0x90, 0x1b, 0x1f, 0x6a, 0xb9, 0x4d, 0x95,
+ 0xf7, 0x65, 0x54, 0x3d, 0x4f, 0x0f, 0x18, 0xc3, 0xa1, 0x6d, 0x55, 0xda,
+ 0x42, 0xdd, 0xf6, 0x93, 0x1c, 0x1c, 0x50, 0x7e, 0xb3, 0xa4, 0x93, 0x08,
+ 0x5c, 0xc0, 0xf5, 0x26, 0x7d, 0x5f, 0xff, 0xd0, 0x85, 0x7a, 0xed, 0x47,
+ 0xa2, 0xc9, 0x17, 0x05, 0xb4, 0xbc, 0x73, 0xf9, 0x35, 0xb5, 0x0e, 0x41,
+ 0x40, 0xaf, 0x97, 0xab, 0x23, 0x82, 0x89, 0x0b, 0x02, 0x71, 0xd4, 0x7e,
+ 0x9b, 0x95, 0xd0, 0x9c, 0x68, 0x02, 0xdf, 0x15, 0x0c, 0xff, 0x82, 0x8f,
+ 0x06, 0x85, 0x5b, 0x67, 0x28, 0x70, 0x60, 0xbb, 0xc6, 0x71, 0x0a, 0x09,
+ 0x2f, 0x2f, 0x40, 0xa0, 0x19, 0x5d, 0xe9, 0x94, 0x43, 0x6b, 0x57, 0xc8,
+ 0x0d, 0xc4, 0x1a, 0x48, 0x82, 0x91, 0x52, 0xbb, 0x52, 0xe1, 0x32, 0x20,
+ 0x38, 0x17, 0xd1, 0x82, 0x07, 0x2f, 0xdc, 0xb0, 0xc5, 0x0b, 0x6c, 0x0c,
+ 0x55, 0x3d, 0x6b, 0xda, 0xd6, 0xd9, 0x3e, 0xd4, 0xd2, 0xa9, 0x1c, 0xf9,
+ 0x0b, 0xef, 0x48, 0x2d, 0x01, 0xd4, 0x2e, 0x5f, 0xe5, 0xe3, 0x3e, 0x62,
+ 0xc8, 0x9e, 0x1e, 0xe0, 0xbc, 0xbd, 0x70, 0xf9, 0xc2, 0x93, 0xfb, 0x9c,
+ 0xfe, 0xd2, 0xf7, 0x06, 0xe9, 0x1a, 0x21, 0x1f, 0x65, 0x25, 0x85, 0xf2,
+ 0x59, 0xc0, 0x7e, 0x0c, 0xd0, 0x38, 0xf8, 0xd0, 0xbc, 0x5b, 0xc0, 0x59,
+ 0xbf, 0x3e, 0xd7, 0x1b, 0x24, 0x42, 0x1f, 0x23, 0x61, 0x9c, 0xfb, 0x72,
+ 0x90, 0x5c, 0x8c, 0xb9, 0xb2, 0x0b, 0x7a, 0x12, 0x3c, 0xf8, 0xe2, 0x99,
+ 0x25, 0x98, 0x3c, 0xb1, 0xdc, 0x5a, 0xc1, 0x39, 0x8e, 0x1c, 0xb9, 0xb3,
+ 0xb8, 0xeb, 0xf6, 0xcb, 0xa6, 0xca, 0xd9, 0x52, 0xce, 0x51, 0x66, 0xe8,
+ 0x00, 0xd2, 0x02, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xd1, 0x0e, 0x00, 0x03, 0x10, 0x10, 0x00, 0x18, 0x00, 0x1e, 0x40,
+ 0xd7, 0x9f, 0xe8, 0xda, 0x18, 0x26, 0x83, 0x4d, 0xd8, 0xed, 0xe7, 0xb5,
+ 0x3d, 0x83, 0x5c, 0xd5, 0xb9, 0x54, 0xd4, 0xd6, 0x88, 0x32, 0x30, 0x6d,
+ 0xe0, 0x95, 0xf3, 0xd3, 0xd8, 0x2b, 0xd5, 0x18, 0xda, 0x32, 0xe3, 0x39,
+ 0xf8, 0xb3, 0xbc, 0x8d, 0x67, 0x27, 0x2f, 0x61, 0xc6, 0xe0, 0x2c, 0xad,
+ 0xd1, 0x7f, 0x18, 0x71, 0xbd, 0xa0, 0x57, 0x2c, 0x2e, 0xc4, 0x84, 0x5b,
+ 0x7e, 0xc2, 0x1d, 0xa4, 0x6d, 0xdd, 0x98, 0x1c, 0x7d, 0x4a, 0x01, 0x1a,
+ 0x7d, 0xe1, 0x24, 0x85, 0xd2, 0xd1, 0x9d, 0x87, 0x9a, 0xfa, 0x7d, 0x52,
+ 0x06, 0x19, 0x7b, 0xc7, 0xb1, 0x96, 0x3e, 0xff, 0xff, 0xbb, 0xc0, 0x32,
+ 0x42, 0x1a, 0x82, 0xf1, 0xe0, 0xd5, 0xe0, 0x10, 0x76, 0x2e, 0x85, 0x41,
+ 0xea, 0x00, 0xa3, 0x74, 0xbc, 0x5a, 0x13, 0x65, 0x53, 0xbb, 0x7e, 0x5d,
+ 0x67, 0x4c, 0x95, 0x9a, 0x39, 0xa2, 0xef, 0xd0, 0xaf, 0x37, 0x24, 0x89,
+ 0xd0, 0x01, 0x15, 0x05, 0x60, 0x87, 0xc0, 0x34, 0x76, 0xdf, 0x36, 0xd4,
+ 0xeb, 0x64, 0xad, 0x8a, 0x60, 0x29, 0x48, 0xb1, 0x75, 0x50, 0x2d, 0x44,
+ 0xad, 0xab, 0x67, 0x80, 0x20, 0x2f, 0x1d, 0xf8, 0xd3, 0xd0, 0xb8, 0xee,
+ 0x4d, 0x88, 0x2c, 0x92, 0xe5, 0x5c, 0x28, 0x98, 0x05, 0x7c, 0x1c, 0xf3,
+ 0xe7, 0x25, 0x6c, 0x1c, 0x85, 0x03, 0x40, 0xea, 0x4c, 0xc3, 0x40, 0xd5,
+ 0x9e, 0x28, 0x50, 0x5b, 0xb2, 0xe0, 0x44, 0xbd, 0x89, 0x9d, 0x75, 0xfb,
+ 0x1c, 0x2a, 0x8e, 0x47, 0xbe, 0x1a, 0x35, 0x1e, 0x06, 0xa0, 0xcb, 0xe4,
+ 0x7f, 0x7d, 0x2c, 0x48, 0x1c, 0x3f, 0x1f, 0xe4, 0x92, 0xec, 0xfe, 0x3e,
+ 0x28, 0x71, 0x48, 0x3c, 0x1a, 0x37, 0xf3, 0x99, 0x00, 0xcd, 0x60, 0xa3,
+ 0x25, 0x9d, 0xfa, 0xec, 0x60, 0x65, 0xac, 0x69, 0xce, 0x9e, 0x20, 0x21,
+ 0xa7, 0x86, 0x75, 0xef, 0x68, 0xee, 0xc4, 0x55, 0xb0, 0xed, 0xfa, 0x2e,
+ 0xad, 0x30, 0xdf, 0x83, 0x38, 0x9c, 0xc7, 0x30, 0xfe, 0x5c, 0x5d, 0x1d,
+ 0x43, 0x14, 0xc2, 0xfd, 0xb7, 0xff, 0x3f, 0xed, 0xd3, 0xfd, 0x43, 0x2b,
+ 0x4b, 0xe1, 0x22, 0x08, 0x3e, 0x43, 0xb8, 0xda, 0x8c, 0x44, 0x89, 0xec,
+ 0xc0, 0xec, 0x0f, 0xf8, 0xd3, 0x31, 0x79, 0x60, 0xe2, 0xa7, 0xe8, 0x5d,
+ 0xf8, 0xfc, 0x72, 0xf8, 0x11, 0x32, 0x3d, 0xb3, 0x7e, 0xf6, 0x41, 0xea,
+ 0xfd, 0xfa, 0x32, 0xb9, 0xed, 0x94, 0xd2, 0xfd, 0x3a, 0xb2, 0xaf, 0x3b,
+ 0x17, 0x15, 0x68, 0x30, 0xac, 0x46, 0x5d, 0xda, 0x5d, 0xca, 0x09, 0xd3,
+ 0x43, 0x24, 0xf7, 0x17, 0x7f, 0x48, 0xe8, 0xaa, 0x82, 0x3f, 0xfd, 0xc9,
+ 0x5f, 0x02, 0x1c, 0xb7, 0x0f, 0x01, 0xae, 0xa7, 0xb2, 0x71, 0xd0, 0xfb,
+ 0x14, 0x53, 0xdc, 0xf1, 0x5d, 0x72, 0x28, 0xad, 0xd5, 0x11, 0x26, 0x7a,
+ 0x5d, 0xba, 0x4f, 0xc3, 0xbc, 0xc5, 0xce, 0xc1, 0x60, 0x9d, 0x79, 0xad,
+ 0x6b, 0x73, 0x5b, 0x42, 0x3f, 0x43, 0x67, 0x50, 0x4b, 0x20, 0xd4, 0xf9,
+ 0x29, 0x7f, 0x6c, 0x18, 0xd8, 0x41, 0x78, 0x72, 0xc1, 0x80, 0x34, 0x2a,
+ 0x46, 0xda, 0x57, 0x11, 0xb7, 0x52, 0x0a, 0x33, 0xb1, 0xc5, 0x22, 0x89,
+ 0x37, 0xbe, 0x0a, 0x38, 0x79, 0xb9, 0x07, 0x6f, 0x76, 0xbd, 0x1e, 0xf5,
+ 0x28, 0xb6, 0x9f, 0x0e, 0x13, 0x46, 0xf9, 0x9b, 0xbf, 0xa8, 0x10, 0x56,
+ 0x5c, 0x44, 0xc9, 0x4a, 0x76, 0xd0, 0x7f, 0xc4, 0x9f, 0x61, 0x2a, 0x84,
+ 0x2d, 0x56, 0xbe, 0xe0, 0x72, 0xe8, 0xf2, 0x69, 0xa2, 0xe4, 0x92, 0x21,
+ 0x8d, 0xde, 0x2c, 0x73, 0xfd, 0xfa, 0x34, 0x8c, 0x72, 0xc8, 0x42, 0x75,
+ 0xd3, 0x2f, 0x45, 0xea, 0xe0, 0x09, 0xf7, 0x2b, 0x1f, 0x4f, 0xc9, 0x60,
+ 0x99, 0x62, 0x87, 0x26, 0x05, 0x6b, 0x67, 0xdc, 0xab, 0xe6, 0x54, 0xea,
+ 0x4e, 0xa3, 0x6a, 0x90, 0x3c, 0xb6, 0x3d, 0xc0, 0xf3, 0x45, 0xe4, 0x31,
+ 0x89, 0xc7, 0x27, 0x20, 0xdd, 0x8d, 0x1e, 0x14, 0x58, 0x7a, 0x0f, 0xbc,
+ 0xf1, 0x5d, 0xf8, 0x43, 0x75, 0x7f, 0x25, 0x26, 0x61, 0xf4, 0x7e, 0x17,
+ 0x0f, 0xe5, 0x81, 0x1f, 0x4a, 0x6c, 0x44, 0x9f, 0xe3, 0x64, 0x26, 0x6e,
+ 0x97, 0x25, 0xdc, 0xc6, 0x9d, 0xae, 0x48, 0x0a, 0x45, 0xb9, 0x06, 0x01,
+ 0xe9, 0x47, 0x97, 0xb2, 0x7a, 0xd0, 0xfc, 0x77, 0x17, 0x3a, 0x6b, 0x16,
+ 0xfc, 0xe1, 0xea, 0xfd, 0x6b, 0x84, 0x84, 0x8f, 0xcf, 0x14, 0x85, 0x4f,
+ 0xf2, 0x2f, 0x7a, 0x75, 0x3d, 0xe5, 0xc2, 0xd9, 0x79, 0x8f, 0x9e, 0x78,
+ 0x5f, 0x49, 0xab, 0xcc, 0x38, 0x1a, 0x24, 0x64, 0x11, 0x80, 0xb2, 0xf1,
+ 0xb3, 0x43, 0x4c, 0xae, 0xdc, 0x9d, 0x85, 0x2c, 0x1f, 0xd7, 0xc4, 0xe9,
+ 0xc3, 0xb0, 0x83, 0x1e, 0x3c, 0x69, 0xf3, 0x72, 0x89, 0x5d, 0x93, 0x27,
+ 0xb1, 0xd5, 0xdd, 0x44, 0x6c, 0x1c, 0x83, 0x70, 0x2f, 0x7b, 0xfe, 0x2c,
+ 0xfa, 0xd7, 0xe9, 0x56, 0x17, 0xe5, 0xb8, 0x2e, 0x86, 0x5f, 0x9f, 0x82,
+ 0xde, 0xa6, 0x19, 0xed, 0x7d, 0xc4, 0xd8, 0x96, 0xcd, 0x41, 0x03, 0x79,
+ 0xb3, 0x2c, 0xa3, 0xca, 0xf9, 0x7b, 0xe4, 0xdb, 0x82, 0xbd, 0xa6, 0x62,
+ 0x0d, 0x8f, 0x3b, 0x2f, 0xee, 0x91, 0x26, 0xca, 0xd9, 0x51, 0xa2, 0x51,
+ 0x66, 0xe8, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x71, 0x0c, 0x00, 0x03, 0x10, 0x10, 0x00, 0x18, 0x00,
+ 0x1e, 0x58, 0xbf, 0xd0, 0x18, 0xd6, 0x18, 0x4b, 0xdc, 0x53, 0x88, 0x85,
+ 0x24, 0xf6, 0xb2, 0x78, 0xa2, 0xd0, 0xe5, 0x67, 0x9b, 0xd2, 0x69, 0xf7,
+ 0xa8, 0x4b, 0xab, 0xcf, 0xa5, 0x40, 0x70, 0x13, 0x32, 0xab, 0x3d, 0x67,
+ 0x76, 0xf3, 0xc7, 0xa3, 0x00, 0x93, 0xc9, 0x00, 0x08, 0xa2, 0x50, 0x85,
+ 0x44, 0x9d, 0x2c, 0xe1, 0x30, 0x72, 0x76, 0x77, 0x1c, 0x20, 0xd8, 0xf0,
+ 0x60, 0xca, 0x54, 0x00, 0x29, 0xe3, 0x59, 0x9b, 0x3f, 0xba, 0xb8, 0x1b,
+ 0x87, 0x25, 0x68, 0x81, 0xb2, 0xa3, 0x2c, 0xc1, 0xa5, 0xbe, 0x17, 0x94,
+ 0xda, 0xa3, 0xe9, 0xeb, 0xa0, 0x9d, 0xf5, 0xe6, 0x00, 0xa3, 0x74, 0xbc,
+ 0x5a, 0x32, 0xa5, 0x53, 0xf2, 0x0a, 0x33, 0xe6, 0x21, 0xb5, 0xbd, 0x3b,
+ 0x34, 0x85, 0x99, 0x76, 0xda, 0x55, 0x52, 0xc6, 0x77, 0x24, 0xd3, 0x61,
+ 0x36, 0xb6, 0x5a, 0xd4, 0x1f, 0x9d, 0xaa, 0x57, 0xd1, 0xd7, 0x08, 0x50,
+ 0xeb, 0xbe, 0xd7, 0x2e, 0x2d, 0xb6, 0xd3, 0xfe, 0xcb, 0x1f, 0x98, 0xcf,
+ 0xad, 0xcc, 0xe0, 0xe4, 0xa3, 0xb7, 0xf8, 0x04, 0x54, 0xb9, 0xd4, 0x80,
+ 0x20, 0x1b, 0xd6, 0x3c, 0xc2, 0x18, 0x7f, 0x17, 0x76, 0x64, 0xe9, 0x99,
+ 0x15, 0x34, 0x14, 0xb3, 0x35, 0x2e, 0x63, 0x19, 0xfe, 0x04, 0xb5, 0x29,
+ 0x53, 0xdc, 0x6d, 0x34, 0x53, 0xd6, 0x74, 0x61, 0x38, 0x10, 0x68, 0xe3,
+ 0xa2, 0x7e, 0x20, 0x47, 0x9d, 0xb0, 0x3d, 0xce, 0xb6, 0xbe, 0xfe, 0x34,
+ 0xc6, 0x13, 0x61, 0xf5, 0xec, 0x52, 0xbb, 0xe5, 0x03, 0x82, 0x91, 0x0a,
+ 0x46, 0xe3, 0x58, 0x88, 0xfa, 0x43, 0x91, 0x7d, 0xa4, 0x70, 0x63, 0xc4,
+ 0xab, 0x2f, 0xc2, 0xf2, 0x30, 0xb1, 0x3f, 0x39, 0x74, 0x3c, 0xa4, 0x51,
+ 0x7f, 0x21, 0xc2, 0xc2, 0x11, 0x10, 0x22, 0x3f, 0xbe, 0xf6, 0x84, 0xeb,
+ 0x91, 0xb1, 0xa7, 0xd1, 0xf8, 0x64, 0x0b, 0x4d, 0x2e, 0x27, 0x7b, 0x3c,
+ 0xb6, 0x38, 0xfd, 0x2c, 0x07, 0x46, 0x21, 0xc2, 0x3c, 0x6a, 0x5e, 0x56,
+ 0x93, 0x87, 0x9e, 0x69, 0x09, 0x15, 0xd1, 0x47, 0x85, 0x4e, 0x8c, 0x78,
+ 0x1b, 0x2d, 0xd3, 0x9f, 0xb2, 0xad, 0x8d, 0xa0, 0x7e, 0x49, 0xf5, 0x0f,
+ 0xce, 0x24, 0x91, 0xe3, 0x8f, 0xae, 0x4d, 0xf5, 0x69, 0x17, 0x75, 0x7b,
+ 0xde, 0x38, 0x16, 0x8e, 0x8d, 0xce, 0x18, 0x24, 0xdc, 0xb7, 0x9b, 0xf1,
+ 0xfe, 0x8b, 0x0f, 0x02, 0x37, 0x01, 0x0b, 0x4b, 0xa5, 0xf0, 0xd8, 0x3c,
+ 0x2f, 0xca, 0x67, 0xc2, 0x85, 0xad, 0xfa, 0x0a, 0xd7, 0x09, 0x3e, 0x59,
+ 0xee, 0x8b, 0xac, 0x8b, 0x32, 0xf4, 0xed, 0xbd, 0x47, 0x6a, 0x63, 0x4e,
+ 0x43, 0x65, 0x82, 0x85, 0x23, 0xbd, 0xb3, 0xb7, 0xdd, 0x78, 0xdb, 0x61,
+ 0x84, 0x4f, 0x4a, 0xaf, 0xdb, 0x18, 0xfe, 0xd8, 0xfe, 0x7e, 0xf5, 0x84,
+ 0x95, 0xfc, 0xd3, 0x3a, 0x20, 0x96, 0x9b, 0x96, 0x93, 0xa5, 0xaa, 0x1d,
+ 0xed, 0x1c, 0x14, 0x66, 0xcd, 0xc7, 0xf7, 0x60, 0x69, 0x9f, 0x84, 0x4c,
+ 0xa6, 0xd1, 0x9d, 0xe2, 0x58, 0x98, 0x87, 0x3b, 0xf8, 0x28, 0x6a, 0x0b,
+ 0x7a, 0xe8, 0x26, 0x7d, 0xec, 0xf4, 0x5d, 0xa4, 0xe2, 0xf9, 0x4b, 0x89,
+ 0xeb, 0x70, 0x4d, 0xd1, 0x7a, 0xcb, 0xad, 0x7b, 0x55, 0x23, 0x3f, 0x0a,
+ 0x38, 0xcb, 0xb9, 0xb9, 0x6f, 0xe5, 0x7b, 0x95, 0x45, 0xe1, 0x0b, 0xcc,
+ 0x09, 0x0f, 0x2c, 0x1a, 0xca, 0x4f, 0x68, 0xba, 0x9a, 0xf6, 0xd2, 0xba,
+ 0xf7, 0x19, 0x1c, 0x89, 0x9c, 0xe7, 0x1c, 0xcb, 0xa7, 0x4d, 0x7b, 0x8c,
+ 0x8b, 0xe3, 0x1c, 0x31, 0x08, 0xcc, 0x09, 0x05, 0xfc, 0x6d, 0xcb, 0xde,
+ 0x58, 0xbf, 0xfb, 0xa8, 0x57, 0x54, 0x90, 0xc0, 0xff, 0x37, 0x43, 0x50,
+ 0x39, 0x48, 0xd9, 0x0a, 0x08, 0xf5, 0x23, 0xcb, 0xbf, 0x14, 0xa7, 0xf4,
+ 0x24, 0xb4, 0xb4, 0x15, 0x7f, 0x46, 0xa6, 0xcb, 0xbd, 0x89, 0xe0, 0x93,
+ 0x7f, 0xa7, 0x70, 0xec, 0x2a, 0x1c, 0x4c, 0xe2, 0x47, 0x45, 0xbd, 0x42,
+ 0xff, 0xa0, 0x0c, 0xb4, 0x3d, 0xcc, 0x19, 0x5b, 0xe3, 0xf9, 0xd8, 0xa6,
+ 0x1b, 0x9c, 0x9f, 0x30, 0x00, 0x45, 0x6c, 0x66, 0xb6, 0xe0, 0x2d, 0x5c,
+ 0xf1, 0x5d, 0x23, 0x62, 0x2d, 0x3d, 0xaa, 0xe5, 0x19, 0x0c, 0xd1, 0x33,
+ 0x1e, 0xfe, 0x8e, 0x8b, 0xca, 0x05, 0xcc, 0x76, 0xc4, 0xcc, 0xe7, 0x49,
+ 0xf9, 0xcb, 0x00, 0xb4, 0xdd, 0x0e, 0x98, 0x40, 0xc0, 0x2e, 0xef, 0xee,
+ 0x61, 0x4f, 0xba, 0x9a, 0x29, 0x98, 0x76, 0xd0, 0x86, 0xcb, 0xce, 0x68,
+ 0x4b, 0xfc, 0x86, 0x59, 0x2b, 0x47, 0x35, 0x6e, 0x48, 0xb9, 0x7a, 0x5d,
+ 0x02, 0x71, 0xf2, 0x18, 0x2a, 0xdd, 0x40, 0x83, 0xed, 0x02, 0x08, 0xf9,
+ 0x25, 0xa6, 0xba, 0xb6, 0x02, 0x8c, 0xdc, 0x2b, 0x3d, 0xa5, 0x8a, 0x39,
+ 0xbe, 0xb3, 0x8d, 0xa3, 0xfd, 0x97, 0x4d, 0x95, 0xb2, 0xa5, 0x9c, 0xa2,
+ 0xcd, 0xd0, 0x00, 0x99, 0x02, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x0e, 0x00, 0x04, 0x10, 0x10, 0x14, 0x6c, 0x9a,
+ 0xb1, 0xc0, 0x35, 0x31, 0xf0, 0x23, 0xce, 0xaa, 0x00, 0x4b, 0xcc, 0xb5,
+ 0x87, 0x86, 0x00, 0x15, 0x09, 0xae, 0x4a, 0xaf, 0x8e, 0xf7, 0xe3, 0x8e,
+ 0x27, 0x68, 0xde, 0x06, 0xff, 0x9c, 0xcd, 0x25, 0x77, 0x51, 0x2c, 0xcb,
+ 0x81, 0xe9, 0x44, 0x66, 0x93, 0x67, 0xfc, 0x43, 0x03, 0xef, 0x8f, 0x74,
+ 0x44, 0x08, 0x65, 0xc1, 0x91, 0xd9, 0x20, 0xa1, 0x3b, 0x3e, 0x26, 0xde,
+ 0xd0, 0xa6, 0x2a, 0x87, 0x14, 0x0c, 0x35, 0xa1, 0x30, 0xff, 0x80, 0x87,
+ 0xf4, 0xc6, 0x2e, 0x21, 0x13, 0x6a, 0x3f, 0x06, 0x86, 0x1b, 0x14, 0xd9,
+ 0xcd, 0x7f, 0x64, 0xf8, 0x71, 0xd8, 0x91, 0x6e, 0x9f, 0xea, 0xfe, 0x3b,
+ 0x80, 0x79, 0x8b, 0x81, 0xa7, 0x70, 0x17, 0x36, 0x33, 0x80, 0x21, 0xae,
+ 0x85, 0x80, 0xa3, 0x74, 0xbc, 0x5a, 0x11, 0x3d, 0x4c, 0x24, 0x9a, 0x0d,
+ 0x85, 0x2f, 0x58, 0xf5, 0xc8, 0x5f, 0x46, 0x87, 0x99, 0xa8, 0x63, 0xee,
+ 0x69, 0x93, 0x41, 0x55, 0x02, 0x5c, 0x2b, 0x95, 0x39, 0xb5, 0x77, 0xbb,
+ 0xc7, 0xd9, 0x87, 0xf5, 0x67, 0x25, 0x5d, 0x38, 0x5d, 0xcd, 0x95, 0x13,
+ 0x55, 0x4c, 0x2e, 0x5e, 0x9a, 0xfd, 0x41, 0xbb, 0x4f, 0x4f, 0x46, 0x9f,
+ 0x76, 0x67, 0x50, 0xcc, 0x31, 0xa5, 0xac, 0xba, 0xd5, 0x39, 0x2e, 0x86,
+ 0x4a, 0xd8, 0x35, 0xec, 0x4f, 0xd1, 0x6d, 0x5d, 0x09, 0xf5, 0x98, 0x32,
+ 0x49, 0xc5, 0xff, 0x74, 0xc1, 0xd5, 0xdf, 0x91, 0xb0, 0xd6, 0x6e, 0x87,
+ 0x73, 0xa7, 0x33, 0x2b, 0x2d, 0xc2, 0x63, 0xc3, 0xa5, 0x72, 0x4c, 0x33,
+ 0x15, 0x42, 0xbc, 0xa0, 0xf0, 0xd3, 0x67, 0xb5, 0x4e, 0xfa, 0x49, 0x8f,
+ 0x7d, 0xe8, 0xd5, 0x8e, 0x79, 0x0d, 0x2e, 0xfd, 0xfe, 0x84, 0x7a, 0x99,
+ 0x2b, 0x9b, 0x39, 0x5d, 0xea, 0x34, 0x3c, 0x6c, 0xea, 0xc4, 0xa2, 0xa9,
+ 0xa7, 0xf0, 0xc5, 0xab, 0x47, 0x9e, 0x30, 0xbc, 0x85, 0x49, 0x34, 0x98,
+ 0x3c, 0xa8, 0x64, 0x0d, 0xa1, 0x82, 0x63, 0x27, 0x81, 0x90, 0x43, 0x87,
+ 0x0a, 0xc3, 0xad, 0xe9, 0xab, 0xa3, 0xa1, 0x0f, 0xb9, 0x79, 0x48, 0xda,
+ 0x25, 0x6b, 0x3b, 0xd1, 0x50, 0xcd, 0xf4, 0x7d, 0xda, 0xed, 0x2e, 0xd3,
+ 0x4f, 0x0c, 0x5f, 0x0d, 0x41, 0xdf, 0xeb, 0xcd, 0xa1, 0xc3, 0x4f, 0xdd,
+ 0x79, 0xbc, 0x76, 0x40, 0x2f, 0x5b, 0x2b, 0xab, 0xea, 0x88, 0xce, 0x85,
+ 0x04, 0x3d, 0xed, 0x93, 0xa9, 0xa6, 0xdd, 0xb3, 0xf0, 0x6d, 0x2b, 0xff,
+ 0xdb, 0x49, 0xd7, 0x7b, 0x63, 0xe7, 0xb0, 0x94, 0x2e, 0xda, 0xcc, 0x27,
+ 0x5d, 0x31, 0xd2, 0x8b, 0xf0, 0x88, 0x3e, 0x38, 0x28, 0xcf, 0x52, 0x57,
+ 0xff, 0x6a, 0xad, 0x19, 0xa7, 0x21, 0x6d, 0x55, 0x70, 0xbe, 0xd3, 0x5d,
+ 0x37, 0x51, 0xdf, 0xe1, 0x14, 0x19, 0xde, 0x91, 0xc7, 0x9a, 0x8d, 0x23,
+ 0x54, 0x0f, 0xfa, 0xe9, 0xf8, 0x40, 0x02, 0x26, 0x8d, 0x95, 0xbd, 0xa9,
+ 0xb5, 0xac, 0x5f, 0xb2, 0xce, 0x1a, 0xff, 0xf2, 0x69, 0x1f, 0x3b, 0x6f,
+ 0x3e, 0x27, 0xd6, 0x99, 0x66, 0x12, 0xaf, 0x9d, 0xdd, 0xe3, 0x2e, 0xa7,
+ 0xe9, 0x25, 0xe9, 0xb4, 0x24, 0xf6, 0x55, 0x8c, 0x7d, 0xb3, 0xcc, 0x6e,
+ 0xd0, 0x47, 0x61, 0xf3, 0x25, 0x57, 0x04, 0x9c, 0xd2, 0x7f, 0x82, 0xde,
+ 0x55, 0xb1, 0x73, 0xc5, 0x5f, 0xcb, 0x11, 0x2d, 0x58, 0x2d, 0xbf, 0x56,
+ 0x0e, 0x01, 0x7e, 0x3c, 0x79, 0xc5, 0xc0, 0x99, 0xac, 0x04, 0x91, 0x75,
+ 0x9c, 0x27, 0x75, 0xeb, 0xe7, 0x4c, 0x6b, 0xbb, 0x86, 0x66, 0xd7, 0x7a,
+ 0x49, 0x6a, 0xed, 0x7b, 0xb1, 0x3a, 0x01, 0x98, 0xc9, 0x55, 0xbe, 0xb6,
+ 0x89, 0xc0, 0x31, 0xc6, 0x49, 0x23, 0xb7, 0x47, 0x18, 0x3e, 0xfd, 0xcb,
+ 0x37, 0xe8, 0xcb, 0x56, 0xb1, 0x35, 0xa1, 0xac, 0x29, 0xdb, 0xb4, 0x3a,
+ 0xe0, 0xae, 0x4c, 0xe4, 0x7a, 0x1a, 0xad, 0x0f, 0xdd, 0xff, 0xfe, 0x90,
+ 0xc0, 0x2a, 0xdf, 0x22, 0x59, 0x97, 0xf5, 0x7a, 0x89, 0x34, 0x68, 0x1d,
+ 0x9e, 0x7c, 0x88, 0xba, 0xc3, 0xd3, 0x93, 0x61, 0x93, 0x9a, 0xcd, 0xda,
+ 0x24, 0x4a, 0xfe, 0x69, 0x9a, 0xc9, 0x84, 0xa2, 0xa1, 0x68, 0x2c, 0x10,
+ 0x91, 0x4a, 0xb7, 0x8e, 0xc6, 0x36, 0x40, 0xbb, 0xb8, 0x1a, 0x75, 0xed,
+ 0x0e, 0x53, 0x34, 0x00, 0xe9, 0x0b, 0x2d, 0xd8, 0xe5, 0x63, 0x26, 0x5a,
+ 0xd4, 0x59, 0x0d, 0x46, 0x6b, 0xf1, 0x65, 0x10, 0x33, 0x16, 0x78, 0x70,
+ 0x65, 0x18, 0xce, 0x22, 0x38, 0x7b, 0xf9, 0xa2, 0x49, 0x38, 0x3c, 0x2a,
+ 0x58, 0x17, 0x9a, 0x3f, 0x05, 0x79, 0xa9, 0x7e, 0x98, 0xfd, 0x92, 0xf8,
+ 0x45, 0x97, 0x4e, 0x25, 0xb0, 0xaa, 0x30, 0x09, 0x22, 0x72, 0xd0, 0xca,
+ 0x24, 0x93, 0xc2, 0x36, 0xf5, 0x71, 0x0f, 0xc8, 0x96, 0xbf, 0x69, 0x12,
+ 0x6c, 0xad, 0x95, 0x18, 0x5b, 0xc4, 0x43, 0xa0, 0x1c, 0x03, 0x00, 0x00,
+ 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x01,
+ 0x10, 0x10, 0x00, 0x18, 0x00, 0x1e, 0x40, 0xd7, 0xd0, 0x18, 0xda, 0x18,
+ 0x27, 0x69, 0x7c, 0xe9, 0xea, 0xf2, 0xda, 0xba, 0xae, 0x1f, 0xb8, 0x48,
+ 0x5a, 0x23, 0x0b, 0x6e, 0x5f, 0x1b, 0x4b, 0xf4, 0xeb, 0x7f, 0x88, 0x17,
+ 0x28, 0x4b, 0xe3, 0x5b, 0x2c, 0x1e, 0xfe, 0x46, 0xed, 0x3b, 0x74, 0x94,
+ 0xfc, 0x7e, 0x6e, 0x4e, 0xe5, 0x08, 0x2a, 0x5a, 0x31, 0xc9, 0xeb, 0x3f,
+ 0xd9, 0x2d, 0x33, 0x84, 0xcf, 0xf0, 0x2e, 0xcf, 0x3f, 0x38, 0x7a, 0xc9,
+ 0x24, 0x52, 0x07, 0x33, 0x4d, 0xe6, 0x8f, 0xf5, 0xde, 0x78, 0x05, 0x87,
+ 0x80, 0x66, 0xfd, 0xb8, 0xda, 0xbc, 0xc7, 0x0c, 0x2e, 0x07, 0x4c, 0x4a,
+ 0x47, 0xc4, 0xff, 0xd3, 0x86, 0x00, 0x07, 0x26, 0x83, 0x53, 0x4a, 0xf6,
+ 0x57, 0xea, 0x18, 0xf5, 0x94, 0x41, 0xab, 0xe8, 0x00, 0xa3, 0x74, 0xbc,
+ 0x5a, 0x23, 0xfd, 0x4c, 0x25, 0x02, 0xa5, 0x34, 0x0d, 0xe8, 0x0c, 0x67,
+ 0xeb, 0x46, 0x88, 0xcf, 0x71, 0x70, 0x13, 0x7b, 0xac, 0x38, 0xaf, 0x18,
+ 0xb9, 0x2b, 0xb7, 0x73, 0x1c, 0xe7, 0xee, 0xff, 0xf3, 0x8c, 0x64, 0x21,
+ 0x99, 0x54, 0x24, 0x63, 0xec, 0xbb, 0x57, 0x5f, 0xd1, 0x1b, 0xbb, 0xfd,
+ 0x6f, 0x0e, 0xc0, 0x7b, 0x37, 0x93, 0x5b, 0xbf, 0xfb, 0x6c, 0x94, 0xa7,
+ 0x0e, 0x7a, 0x2d, 0x67, 0xe0, 0x70, 0x30, 0x79, 0x85, 0x29, 0x51, 0x10,
+ 0x4a, 0x00, 0x54, 0xb3, 0xed, 0x9d, 0xf3, 0x34, 0x71, 0xb0, 0xea, 0x17,
+ 0x3c, 0xf9, 0xe8, 0x59, 0x63, 0x08, 0x38, 0x9a, 0x42, 0x2a, 0x49, 0x8d,
+ 0x14, 0xf6, 0x2c, 0xa0, 0xe5, 0xce, 0x4c, 0xff, 0x84, 0x26, 0x8b, 0x7a,
+ 0x31, 0x1e, 0x84, 0x71, 0x54, 0xef, 0x4d, 0xbf, 0x7c, 0x5e, 0xdd, 0x05,
+ 0xc0, 0x4b, 0x63, 0x54, 0x62, 0x3f, 0x28, 0xa1, 0xd4, 0x3d, 0xe8, 0xde,
+ 0x52, 0x1d, 0x90, 0xe9, 0x25, 0xb2, 0x2b, 0x50, 0x4f, 0xfa, 0xff, 0x47,
+ 0x88, 0x7f, 0x83, 0xf6, 0x29, 0x40, 0x2d, 0x37, 0x69, 0x41, 0x2d, 0xc6,
+ 0x0a, 0x78, 0xbb, 0x49, 0x5d, 0xe4, 0xe1, 0x26, 0xb2, 0xb4, 0x25, 0xbd,
+ 0x6a, 0xb5, 0x77, 0x7d, 0xf9, 0x28, 0xa0, 0xbe, 0xa4, 0x68, 0xfd, 0x61,
+ 0x06, 0x07, 0x9b, 0x6e, 0x30, 0xde, 0x53, 0x48, 0xfe, 0x50, 0xcf, 0x6f,
+ 0x2b, 0xef, 0x87, 0x91, 0xec, 0xeb, 0x67, 0x6d, 0xe3, 0x47, 0x84, 0x61,
+ 0x1e, 0xab, 0x1d, 0x48, 0x35, 0x02, 0x80, 0xdf, 0x00, 0x1f, 0xbe, 0xea,
+ 0xd8, 0x42, 0xf3, 0xe6, 0x0e, 0x13, 0x05, 0xa9, 0x2c, 0xe2, 0xba, 0x89,
+ 0xbb, 0x97, 0xf5, 0xac, 0xef, 0x22, 0x23, 0x73, 0x4a, 0x78, 0xcc, 0x40,
+ 0x56, 0x19, 0xa4, 0xd3, 0x54, 0xdb, 0x80, 0x04, 0x4c, 0x50, 0xd9, 0x22,
+ 0xed, 0x6c, 0xa5, 0xdd, 0x99, 0xe2, 0xe1, 0x35, 0x72, 0xd8, 0xbf, 0x04,
+ 0x23, 0x32, 0x1f, 0xde, 0x3e, 0x93, 0xab, 0x3c, 0x7f, 0x53, 0x08, 0x9c,
+ 0x43, 0x52, 0x19, 0x5a, 0x1c, 0x47, 0x8d, 0xbd, 0xb3, 0xab, 0x54, 0x4a,
+ 0xe1, 0x29, 0x15, 0xb0, 0xd0, 0xb0, 0x60, 0x11, 0xa2, 0xb6, 0x06, 0x85,
+ 0x6c, 0xc9, 0xc7, 0xd7, 0x8a, 0xc4, 0x14, 0x94, 0x97, 0x69, 0x65, 0xb1,
+ 0x11, 0xf1, 0x52, 0x88, 0x13, 0xd6, 0x43, 0x56, 0xaa, 0x2b, 0xb8, 0x03,
+ 0x03, 0xb1, 0x70, 0xed, 0x9c, 0xae, 0xcc, 0x04, 0x4f, 0xfe, 0xf7, 0xd7,
+ 0x07, 0x29, 0x34, 0x90, 0xc2, 0x93, 0x60, 0xf6, 0x6d, 0xfa, 0xf9, 0x97,
+ 0x37, 0x59, 0x96, 0x26, 0x8a, 0xad, 0x0a, 0x3d, 0xe9, 0xc1, 0x63, 0xc0,
+ 0xae, 0x8c, 0x45, 0xcc, 0xa0, 0xf8, 0xe0, 0x81, 0xdc, 0xdc, 0x53, 0xbb,
+ 0xa8, 0x8b, 0x0d, 0xf1, 0xc0, 0xb2, 0xf2, 0x34, 0xec, 0x24, 0x93, 0xf7,
+ 0x20, 0x45, 0xa3, 0xb4, 0xdc, 0x69, 0x54, 0x56, 0x5e, 0x46, 0x05, 0xa6,
+ 0x61, 0xa7, 0x75, 0x86, 0x94, 0xe0, 0xf6, 0x23, 0x92, 0xab, 0xf9, 0x19,
+ 0x56, 0xc7, 0xf5, 0xac, 0xe0, 0xae, 0xe5, 0xeb, 0xcd, 0x11, 0x55, 0x09,
+ 0x54, 0x0d, 0xcd, 0xe9, 0x92, 0xc5, 0x0e, 0x52, 0x45, 0x74, 0x12, 0xbb,
+ 0x0c, 0xbf, 0xe3, 0x43, 0xe6, 0x2a, 0x30, 0x5e, 0x46, 0xd2, 0x5a, 0xd3,
+ 0x2d, 0xc4, 0x09, 0xbe, 0x1e, 0x0f, 0x0c, 0xb8, 0x2c, 0x5f, 0x68, 0xe1,
+ 0x8d, 0x6e, 0x4f, 0x7c, 0x3e, 0xcc, 0x3f, 0x13, 0x9b, 0xef, 0xcc, 0x8f,
+ 0x6a, 0x1b, 0xfa, 0x93, 0x8b, 0x56, 0x25, 0xac, 0x64, 0x6a, 0x24, 0xff,
+ 0x22, 0xee, 0x43, 0xc7, 0x45, 0x31, 0x83, 0x14, 0x1c, 0x08, 0x72, 0xfe,
+ 0xd0, 0xcc, 0x92, 0xbf, 0x87, 0xe8, 0xd4, 0x5c, 0xda, 0x86, 0xa7, 0x04,
+ 0x6c, 0x8f, 0x52, 0x8d, 0x20, 0x9d, 0x5d, 0x53, 0x47, 0x37, 0x9c, 0xf8,
+ 0xfb, 0x27, 0x1e, 0x7a, 0x35, 0x8b, 0x89, 0xdd, 0xa0, 0xd3, 0x15, 0x2b,
+ 0x7b, 0x49, 0x68, 0x5e, 0x37, 0xfa, 0x90, 0x83, 0xd0, 0xe7, 0x78, 0x3b,
+ 0x5c, 0x27, 0xb9, 0x65, 0x10, 0xdd, 0x6b, 0x97, 0xfc, 0xf5, 0xca, 0x55,
+ 0xf6, 0x22, 0xfc, 0xcc, 0x87, 0x29, 0x02, 0x64, 0x33, 0xd1, 0x0c, 0xd1,
+ 0x39, 0x4c, 0xb4, 0x85, 0xb6, 0x5e, 0x83, 0x65, 0x7e, 0xa5, 0x1e, 0xa9,
+ 0xe7, 0x5c, 0x1b, 0x0a, 0x0b, 0x44, 0x40, 0xad, 0x1f, 0x2b, 0x3e, 0x72,
+ 0x0f, 0x20, 0x26, 0xb4, 0xe1, 0xf2, 0x67, 0x06, 0x56, 0x1e, 0xcf, 0xa5,
+ 0x05, 0xe6, 0xa0, 0x73, 0x38, 0x6c, 0xa1, 0x24, 0xd5, 0x84, 0xc7, 0x5f,
+ 0xe0, 0x8a, 0xbb, 0xfb, 0x36, 0x0e, 0x8a, 0xd8, 0x93, 0x78, 0x23, 0x2c,
+ 0xce, 0xe8, 0x11, 0x53, 0xab, 0x12, 0x27, 0xf5, 0xa6, 0x05, 0x0c, 0x62,
+ 0x34, 0x90, 0xdc, 0xfc, 0xd3, 0xc1, 0x5f, 0x07, 0xeb, 0x18, 0x26, 0x83,
+ 0x48, 0x23, 0xae, 0x5f, 0xb0, 0x95, 0x76, 0x92, 0x85, 0x9d, 0x01, 0x50,
+ 0xe4, 0x7f, 0xb2, 0xe9, 0xb2, 0xb6, 0x54, 0x8e, 0xef, 0x11, 0x0e, 0x80,
+ 0x03, 0x03, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x0e, 0x00, 0x04, 0x10, 0x10, 0x00, 0x18, 0xca, 0x01, 0x00, 0x25,
+ 0xb6, 0x31, 0x0d, 0xe2, 0xcc, 0x1c, 0x32, 0xa3, 0x3d, 0x44, 0x7c, 0x7d,
+ 0xc7, 0xcb, 0x8d, 0xc8, 0x7f, 0x3f, 0xca, 0xc2, 0x24, 0x1b, 0xad, 0x16,
+ 0x59, 0xc4, 0xda, 0x5e, 0x3f, 0xfd, 0xc1, 0x63, 0xc8, 0x58, 0x3c, 0x6f,
+ 0xd6, 0x8d, 0xfe, 0xb4, 0x81, 0x4a, 0x42, 0x63, 0x52, 0x93, 0x01, 0x99,
+ 0xee, 0xa6, 0xc8, 0x03, 0x69, 0xd2, 0xcc, 0xf9, 0x89, 0xfa, 0x40, 0xdf,
+ 0xc1, 0x4b, 0xb7, 0x34, 0x8e, 0x86, 0x14, 0x1a, 0x1c, 0x87, 0xe7, 0xb1,
+ 0xdb, 0xe0, 0x06, 0xbd, 0xa4, 0x60, 0x83, 0xeb, 0x8a, 0x71, 0xd1, 0x5b,
+ 0x2e, 0x50, 0xe5, 0x10, 0x8a, 0x07, 0x80, 0x6d, 0x1d, 0xc6, 0x82, 0xca,
+ 0x96, 0x9f, 0xe6, 0xd5, 0xc9, 0xc1, 0x25, 0x11, 0xb7, 0x06, 0x4c, 0x00,
+ 0xa3, 0x74, 0xbc, 0x5a, 0x11, 0x3d, 0x4c, 0x24, 0x9a, 0x0d, 0x85, 0x2f,
+ 0x58, 0xf5, 0xc8, 0x56, 0xbc, 0xe4, 0x64, 0x18, 0xb4, 0x76, 0xda, 0xf4,
+ 0x72, 0x4c, 0x5d, 0x1d, 0xc8, 0x4a, 0xd0, 0x0f, 0x58, 0xad, 0x12, 0xba,
+ 0xe9, 0x2a, 0x21, 0xa3, 0xa2, 0x99, 0x3c, 0xd3, 0x59, 0x85, 0x15, 0x62,
+ 0xe0, 0x7e, 0xbb, 0xa7, 0xcb, 0x46, 0x70, 0x58, 0xd2, 0xee, 0xd4, 0x3f,
+ 0xbc, 0x9d, 0x38, 0x5a, 0x02, 0x42, 0x1c, 0x7e, 0x54, 0xea, 0xc2, 0xca,
+ 0xef, 0xd6, 0x5c, 0xbe, 0xa8, 0x71, 0x37, 0x2b, 0xdd, 0x4f, 0x0a, 0x91,
+ 0x66, 0x85, 0x04, 0xef, 0x6b, 0x98, 0x04, 0x3c, 0xb3, 0xb1, 0x63, 0xcf,
+ 0x47, 0x05, 0xf7, 0xc0, 0x62, 0x3b, 0xcd, 0x2b, 0x26, 0x8d, 0x60, 0xab,
+ 0x7c, 0xc2, 0x53, 0x4b, 0x11, 0x4c, 0x64, 0x2d, 0xa6, 0xbf, 0xaf, 0x2f,
+ 0x39, 0x8f, 0x39, 0x41, 0x6a, 0x30, 0xc2, 0x5d, 0x69, 0x00, 0x21, 0xaf,
+ 0xe0, 0x6c, 0x39, 0x02, 0x4c, 0x03, 0xf1, 0x3f, 0xed, 0x9a, 0xaf, 0x80,
+ 0xd6, 0x4a, 0x55, 0xae, 0x54, 0x83, 0x1b, 0x51, 0x35, 0xb5, 0x5b, 0x88,
+ 0x0f, 0x37, 0xbb, 0x6f, 0x9e, 0x84, 0xdc, 0xe4, 0x04, 0x30, 0x3b, 0x3d,
+ 0x30, 0xa5, 0x94, 0xc1, 0xa0, 0x79, 0xf2, 0x88, 0x11, 0xaa, 0x34, 0x7e,
+ 0xa5, 0xdf, 0xfa, 0x84, 0x40, 0x21, 0x96, 0x5c, 0xa6, 0xa2, 0x3a, 0x25,
+ 0x34, 0x83, 0x2e, 0x1b, 0x78, 0x3a, 0xa0, 0x2f, 0x03, 0xe8, 0xe6, 0x9c,
+ 0x22, 0xda, 0x75, 0x2e, 0xe7, 0x74, 0xb6, 0x47, 0xec, 0x93, 0x44, 0xe0,
+ 0xa8, 0x5a, 0x17, 0x4d, 0x65, 0x23, 0x75, 0x47, 0x50, 0x20, 0x66, 0xde,
+ 0x9c, 0x24, 0xcc, 0x7f, 0x7e, 0xb1, 0xe6, 0x61, 0x43, 0x35, 0xf5, 0x27,
+ 0x35, 0x4b, 0xb1, 0x4d, 0xd4, 0xf3, 0x3f, 0x24, 0x10, 0x82, 0x55, 0xcb,
+ 0xff, 0x59, 0x50, 0x8d, 0x6b, 0x56, 0x88, 0x6b, 0x00, 0xf6, 0x9e, 0xcb,
+ 0xd1, 0xbd, 0x7a, 0xc3, 0xf6, 0x67, 0xf0, 0xc0, 0xd2, 0xd6, 0x8e, 0x57,
+ 0x75, 0x8f, 0xc8, 0x41, 0xfe, 0xbc, 0xf7, 0xf1, 0x75, 0x04, 0x3a, 0xec,
+ 0x85, 0x50, 0x71, 0x8e, 0x98, 0xa0, 0x6b, 0xd1, 0x78, 0x94, 0x5f, 0x54,
+ 0x54, 0x1b, 0x30, 0xd6, 0x31, 0x01, 0x3d, 0x76, 0xf3, 0xca, 0x1c, 0xef,
+ 0xa7, 0xa7, 0x05, 0x8e, 0xf4, 0x96, 0xc7, 0x6d, 0xdd, 0x7f, 0x26, 0xb6,
+ 0x3e, 0xd2, 0xd0, 0xfe, 0x7c, 0x69, 0x3e, 0xd7, 0xbd, 0xe1, 0xe1, 0xbb,
+ 0x21, 0xe0, 0xf2, 0x23, 0xb6, 0xae, 0xe0, 0x97, 0xd0, 0x38, 0x49, 0xdb,
+ 0x41, 0x24, 0xe2, 0x3e, 0x92, 0x44, 0x94, 0x90, 0x95, 0x3c, 0x29, 0x16,
+ 0xfb, 0xbc, 0x6d, 0xa0, 0xf0, 0x42, 0x88, 0x5f, 0x36, 0x89, 0xd3, 0xe1,
+ 0xe0, 0x7e, 0x09, 0x72, 0xc4, 0x89, 0x66, 0xa8, 0xa0, 0x65, 0x21, 0x23,
+ 0x75, 0xa4, 0x38, 0xc2, 0x65, 0x8b, 0x50, 0x18, 0xfd, 0x2a, 0x5e, 0x83,
+ 0x88, 0x48, 0x15, 0xfd, 0xa2, 0x2e, 0x87, 0x39, 0x00, 0xee, 0xad, 0xbb,
+ 0xfe, 0xfe, 0x2f, 0x66, 0x88, 0x8d, 0xdb, 0xbf, 0x3b, 0x4d, 0x4a, 0xd0,
+ 0x69, 0x98, 0xf5, 0xc0, 0x84, 0x0e, 0xb8, 0x2a, 0xd1, 0xec, 0x8e, 0x45,
+ 0xea, 0xf6, 0x58, 0xee, 0x84, 0x93, 0x0e, 0xad, 0xe0, 0xec, 0x2e, 0xbb,
+ 0xf3, 0x53, 0xfb, 0x79, 0xcf, 0xe3, 0x73, 0x6e, 0xa1, 0x20, 0x36, 0x47,
+ 0xed, 0x22, 0x7a, 0x63, 0xe5, 0x87, 0x17, 0xb4, 0x2e, 0xf3, 0x78, 0xb2,
+ 0x94, 0x0c, 0x00, 0x25, 0x27, 0xe1, 0x76, 0x62, 0xd4, 0xd5, 0x3c, 0x4f,
+ 0xaf, 0x63, 0x35, 0x9d, 0x78, 0xe9, 0x4f, 0x8c, 0xc8, 0x88, 0xc5, 0x1f,
+ 0x8e, 0x33, 0x02, 0x3e, 0xff, 0xee, 0xde, 0x97, 0x19, 0x8e, 0x52, 0x41,
+ 0x93, 0x8e, 0x59, 0x75, 0xdb, 0xb8, 0x7d, 0xed, 0x91, 0xed, 0xff, 0x40,
+ 0x0c, 0x4b, 0xca, 0x01, 0x04, 0x82, 0x2f, 0x73, 0x1b, 0x24, 0xdb, 0x06,
+ 0xd0, 0xf0, 0x7a, 0x14, 0xd2, 0x3c, 0x0e, 0xc8, 0x80, 0x18, 0x12, 0x41,
+ 0x6e, 0x0c, 0x6d, 0xa7, 0xad, 0x33, 0x08, 0x31, 0x9f, 0xff, 0x2d, 0xf9,
+ 0xcc, 0x45, 0xb6, 0x8f, 0x2c, 0x32, 0x5c, 0x5b, 0xc8, 0x9c, 0xeb, 0x0d,
+ 0xcb, 0x93, 0xff, 0xec, 0xe6, 0x69, 0x2d, 0xec, 0x59, 0xa7, 0x84, 0x1a,
+ 0x6d, 0xaf, 0xf2, 0xe5, 0x30, 0xec, 0x65, 0x55, 0x82, 0xd9, 0x96, 0x8f,
+ 0x30, 0x23, 0x62, 0x5d, 0x8c, 0x3d, 0x30, 0x5f, 0xf0, 0x55, 0x65, 0x28,
+ 0x1d, 0x65, 0x5e, 0xb2, 0xf0, 0x91, 0xd4, 0x66, 0x0a, 0x41, 0xae, 0xca,
+ 0x2e, 0x69, 0x17, 0x39, 0xd9, 0xee, 0xe1, 0xed, 0x69, 0x6c, 0xd7, 0x62,
+ 0xb2, 0xda, 0xa5, 0x1c, 0xa6, 0x07, 0x81, 0x8b, 0xe8, 0xac, 0xc3, 0x5e,
+ 0xaf, 0xa2, 0x77, 0x1d, 0x7e, 0xd2, 0x24, 0xd9, 0x5b, 0x2a, 0x30, 0xb7,
+ 0x88, 0x87, 0x40, 0xf9, 0x02, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x0e, 0x00, 0x04, 0x10, 0x10, 0x00, 0x18, 0xec,
+ 0xfd, 0x00, 0x5f, 0x5b, 0x1a, 0x3f, 0x35, 0x90, 0x3a, 0xa3, 0x56, 0x2c,
+ 0xc6, 0x9e, 0x2e, 0x0c, 0x85, 0x70, 0x77, 0x66, 0x5d, 0x81, 0xf5, 0xe2,
+ 0x05, 0x22, 0xa4, 0x3e, 0xfa, 0xb7, 0x72, 0xbf, 0xd8, 0x68, 0x7e, 0x53,
+ 0xb7, 0xa6, 0x56, 0x3d, 0x8c, 0xe1, 0x08, 0x9b, 0x73, 0x6c, 0xb2, 0x1d,
+ 0x4e, 0xe9, 0x9e, 0x63, 0xc2, 0x86, 0x26, 0xbe, 0xd2, 0x1c, 0x3b, 0xa2,
+ 0xca, 0xba, 0x71, 0xb5, 0xc2, 0xcd, 0x1c, 0x8b, 0x56, 0x03, 0x05, 0x47,
+ 0x08, 0xe0, 0x65, 0x41, 0xb6, 0x6e, 0xfc, 0x30, 0x35, 0x13, 0x09, 0x70,
+ 0xee, 0x4a, 0x91, 0x8a, 0x08, 0x40, 0x93, 0x99, 0x7d, 0x10, 0x25, 0x61,
+ 0x3d, 0xe1, 0xbb, 0x11, 0x33, 0x87, 0x76, 0xa9, 0x7a, 0xba, 0x65, 0xbd,
+ 0xc7, 0x50, 0xa3, 0x74, 0xbc, 0x5a, 0x33, 0x47, 0x19, 0x38, 0x63, 0x27,
+ 0x90, 0x76, 0x09, 0xd2, 0x01, 0x1c, 0xd6, 0x9b, 0x9a, 0x38, 0x30, 0x90,
+ 0x7c, 0xf0, 0x37, 0xb3, 0xbe, 0x9c, 0x66, 0xc6, 0xc5, 0xd6, 0x49, 0x6a,
+ 0x79, 0xf5, 0x6b, 0x64, 0xdc, 0x8b, 0xff, 0xdf, 0xca, 0x5d, 0x28, 0x32,
+ 0xb3, 0x04, 0x51, 0xfe, 0x96, 0xa2, 0xc5, 0x12, 0x3e, 0x78, 0xc0, 0x96,
+ 0x49, 0x0c, 0x61, 0x90, 0xa5, 0x0c, 0x16, 0xa2, 0x98, 0x17, 0xb1, 0xf8,
+ 0x6c, 0xa3, 0xc4, 0x43, 0x39, 0xed, 0x29, 0xe3, 0xe1, 0xdb, 0xcd, 0xd3,
+ 0xe8, 0x18, 0xe8, 0x97, 0x44, 0xee, 0xaa, 0xca, 0xef, 0x0d, 0x69, 0xf8,
+ 0x9f, 0x91, 0x84, 0x0c, 0x43, 0x45, 0x48, 0xa3, 0x98, 0x39, 0x4f, 0xfe,
+ 0x35, 0xaf, 0x1f, 0x10, 0x96, 0xfa, 0xda, 0x15, 0x57, 0x74, 0x3c, 0x32,
+ 0x4e, 0x25, 0x14, 0x9a, 0xe0, 0xdb, 0x6a, 0x57, 0xae, 0xab, 0xdb, 0x7e,
+ 0xa6, 0xd1, 0x71, 0xfd, 0x87, 0xe5, 0x01, 0xbe, 0x58, 0x68, 0x4c, 0x72,
+ 0x54, 0x84, 0x3b, 0x00, 0x4c, 0x80, 0x42, 0xcb, 0x49, 0x4a, 0x18, 0x7b,
+ 0xe7, 0xdf, 0x17, 0x04, 0xc6, 0x49, 0x0b, 0x23, 0xbf, 0x7a, 0x5a, 0x32,
+ 0x85, 0xed, 0xbb, 0x65, 0xe2, 0x41, 0x3c, 0xcf, 0x44, 0x50, 0xd5, 0xd0,
+ 0xbc, 0x8c, 0xcc, 0xbd, 0xa5, 0x8a, 0xa3, 0x0d, 0xb3, 0x74, 0x34, 0x4d,
+ 0x3b, 0x9b, 0x05, 0x61, 0x16, 0x55, 0x2b, 0x0d, 0xbd, 0x4b, 0xcb, 0xdf,
+ 0xb9, 0x14, 0xf7, 0xdd, 0xa3, 0x3e, 0xf3, 0x1b, 0x8b, 0x6f, 0x41, 0xfe,
+ 0x81, 0x7f, 0x35, 0x89, 0x6a, 0x25, 0x24, 0xd2, 0x6f, 0x05, 0x5a, 0x76,
+ 0x9d, 0xb3, 0x95, 0xa9, 0x80, 0x4f, 0x67, 0x69, 0xbe, 0x8d, 0x0f, 0x51,
+ 0xa5, 0xd6, 0x03, 0xac, 0xa0, 0x18, 0x54, 0x82, 0xc0, 0x1a, 0xa6, 0x89,
+ 0x5a, 0x7b, 0xc4, 0x7b, 0x21, 0x6a, 0xce, 0xab, 0xed, 0xbe, 0xb6, 0xe1,
+ 0xa9, 0x81, 0x10, 0xb8, 0x57, 0x46, 0x50, 0x32, 0x3c, 0xe6, 0x7b, 0x9a,
+ 0x93, 0xa6, 0x83, 0xdd, 0x29, 0xdc, 0x9c, 0x13, 0x5a, 0x50, 0x20, 0xed,
+ 0x63, 0x57, 0xd4, 0x62, 0xcc, 0x60, 0x55, 0x29, 0x9c, 0xb7, 0xa9, 0x5e,
+ 0x4e, 0x74, 0x39, 0xdf, 0x4f, 0x4e, 0x0b, 0x3a, 0xea, 0x31, 0x00, 0x29,
+ 0x58, 0x0b, 0xf6, 0x57, 0xdd, 0xde, 0xdb, 0xd4, 0x67, 0x43, 0x9d, 0x8f,
+ 0x4f, 0x69, 0x6b, 0xb2, 0x8c, 0xa6, 0xf1, 0xfe, 0xdb, 0x54, 0xec, 0x13,
+ 0xde, 0x07, 0x14, 0x6e, 0xaa, 0x12, 0x59, 0xa6, 0x5a, 0x05, 0x9a, 0x87,
+ 0x17, 0xea, 0x5f, 0x4b, 0xc6, 0x0c, 0x0e, 0x49, 0xcb, 0x05, 0xee, 0x90,
+ 0xbd, 0x22, 0xaf, 0xc4, 0x7a, 0x6b, 0x5e, 0xa4, 0x0f, 0x80, 0x6b, 0x8e,
+ 0x16, 0x27, 0xf0, 0x64, 0xbb, 0x03, 0x1d, 0x7c, 0x30, 0x1f, 0xbd, 0x97,
+ 0xc8, 0xe4, 0xa5, 0x15, 0xb8, 0x01, 0x4c, 0x6f, 0xb8, 0x4f, 0x6c, 0x08,
+ 0x96, 0xb7, 0x78, 0xcf, 0x14, 0xa8, 0xd2, 0x72, 0x7b, 0x7d, 0xde, 0x5f,
+ 0x72, 0xd9, 0x65, 0x64, 0x3c, 0x27, 0x53, 0x22, 0x99, 0xcf, 0x5f, 0xf0,
+ 0xc7, 0x13, 0x6e, 0x0f, 0x5c, 0x84, 0xca, 0x70, 0xe6, 0xe0, 0xfc, 0x94,
+ 0xd9, 0xbd, 0x39, 0x09, 0x3a, 0xcf, 0x1d, 0xd1, 0xd3, 0xab, 0x41, 0x41,
+ 0x91, 0x33, 0x97, 0xc4, 0x31, 0x1f, 0xb6, 0xa4, 0xe0, 0x71, 0x32, 0xe0,
+ 0xc0, 0x19, 0xf6, 0xfe, 0x59, 0xd0, 0x5c, 0x8b, 0x93, 0x32, 0x27, 0xa0,
+ 0x7d, 0x91, 0x05, 0x9e, 0xe2, 0x89, 0xa5, 0xd5, 0x2f, 0xf0, 0x01, 0x54,
+ 0xd8, 0x40, 0x61, 0x60, 0x5c, 0x2e, 0x1f, 0x03, 0x15, 0x9a, 0xaf, 0x7b,
+ 0xc6, 0x6a, 0x23, 0x99, 0x78, 0x11, 0x51, 0xb3, 0x2f, 0x62, 0xe2, 0x1e,
+ 0x9e, 0x46, 0xa9, 0xf6, 0xb4, 0x62, 0xa5, 0x49, 0x71, 0x1d, 0x9a, 0x50,
+ 0xc7, 0x0c, 0x37, 0x33, 0x6c, 0x98, 0xb8, 0xc3, 0x05, 0xc8, 0xb8, 0x03,
+ 0xd8, 0x53, 0x1a, 0xb1, 0x3a, 0x24, 0x90, 0x8c, 0xea, 0xf5, 0xf6, 0xcb,
+ 0xe1, 0xa6, 0xc8, 0x0c, 0x0c, 0xf3, 0xf4, 0xa9, 0x2f, 0x2e, 0x62, 0x1d,
+ 0xe0, 0xcd, 0x1d, 0x96, 0x28, 0x82, 0x80, 0x6d, 0xa5, 0xeb, 0x1c, 0x5b,
+ 0x4c, 0x70, 0x03, 0x55, 0x9d, 0x82, 0x65, 0xc0, 0x79, 0x0b, 0x61, 0xfe,
+ 0xa7, 0x74, 0xf5, 0x5d, 0x1c, 0x43, 0xd9, 0x9f, 0x87, 0xeb, 0x75, 0x41,
+ 0x94, 0xcb, 0xb1, 0xa1, 0xd2, 0x9a, 0x83, 0x8b, 0x12, 0x32, 0x08, 0xef,
+ 0x8d, 0x95, 0x11, 0xf1, 0xa3, 0x26, 0x60, 0xb2, 0x24, 0xb0, 0x50, 0x38,
+ 0x2b, 0x01, 0x11, 0xaf, 0xab, 0x1a, 0xbf, 0x9e, 0xf1, 0x76, 0xbd, 0xf7,
+ 0x16, 0xb0, 0x4e, 0x63, 0x87, 0x2e, 0x6c, 0xee, 0x3a, 0xfd, 0xb2, 0xe9,
+ 0xb2, 0xb6, 0x54, 0xb5, 0x94, 0x59, 0xba, 0x00, 0x7e, 0x03, 0x00, 0x00,
+ 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0f, 0x00, 0x00,
+ 0x10, 0x10, 0x00, 0x18, 0x8a, 0xa9, 0x05, 0x13, 0xe0, 0x5f, 0x7c, 0x13,
+ 0x03, 0x85, 0x50, 0x4d, 0xe7, 0x1a, 0x64, 0x4e, 0x70, 0xc0, 0xd7, 0x5b,
+ 0xdc, 0x9c, 0xf9, 0xc8, 0xce, 0x67, 0xc2, 0x63, 0x7c, 0x7f, 0x67, 0x15,
+ 0x6e, 0x48, 0x07, 0x26, 0x97, 0xdd, 0xc8, 0xc0, 0xbd, 0x70, 0xe9, 0x6e,
+ 0xfd, 0xb5, 0x46, 0x4a, 0xca, 0x60, 0x3b, 0x73, 0xc0, 0x60, 0xca, 0x7f,
+ 0xc5, 0x62, 0xc1, 0x87, 0x99, 0xe0, 0x89, 0x6b, 0xed, 0xc7, 0x26, 0x63,
+ 0xc0, 0x31, 0xdf, 0x20, 0x11, 0xb5, 0x24, 0xee, 0x81, 0x04, 0x54, 0x5f,
+ 0xfe, 0xec, 0x1d, 0x82, 0x35, 0xb9, 0x0d, 0x27, 0x22, 0x93, 0x15, 0xd6,
+ 0xe7, 0x4d, 0x00, 0x12, 0x6e, 0xf0, 0xda, 0x1c, 0x01, 0x76, 0x16, 0xa8,
+ 0x1c, 0xe2, 0xc0, 0x2e, 0x4b, 0xa1, 0x05, 0x19, 0xc4, 0x6d, 0x4d, 0x9e,
+ 0x74, 0x42, 0x11, 0x9d, 0x60, 0x77, 0xd2, 0xc2, 0xce, 0xcd, 0xa2, 0x02,
+ 0x64, 0x6d, 0x35, 0x85, 0x9a, 0x39, 0xa2, 0xef, 0xff, 0x1b, 0x22, 0xe9,
+ 0x3c, 0xd7, 0x69, 0xa8, 0xe4, 0x6d, 0x2e, 0x3a, 0x91, 0x1b, 0xfd, 0x70,
+ 0x5a, 0x30, 0x93, 0xf1, 0x7e, 0x56, 0x77, 0x2f, 0xee, 0xf3, 0x38, 0x45,
+ 0x8e, 0x3a, 0xfc, 0xf9, 0x2f, 0xe8, 0xdc, 0x03, 0xcc, 0x9f, 0x52, 0x0f,
+ 0x1c, 0x8e, 0xfd, 0x83, 0x4f, 0x7c, 0x37, 0xb2, 0xd3, 0x21, 0xfd, 0xcc,
+ 0x65, 0xd9, 0x8c, 0x71, 0x1c, 0x1e, 0x5a, 0x35, 0x04, 0x46, 0xd5, 0xd8,
+ 0x30, 0xa6, 0x87, 0xd9, 0x3f, 0x65, 0xce, 0xbd, 0x7e, 0x76, 0x81, 0x02,
+ 0xe4, 0x70, 0x6d, 0x03, 0x0c, 0xc5, 0x29, 0x69, 0xe2, 0x91, 0x7f, 0x86,
+ 0x35, 0x3b, 0xed, 0xa6, 0x73, 0x72, 0xb0, 0x6f, 0xef, 0x9d, 0xef, 0xe6,
+ 0x40, 0xc9, 0x92, 0xc1, 0x30, 0xcc, 0x7a, 0x34, 0xfd, 0xcc, 0x68, 0x7f,
+ 0x8a, 0xad, 0xf4, 0xfe, 0x4f, 0x4f, 0x8e, 0x5d, 0x3d, 0xc2, 0x4c, 0xf9,
+ 0x17, 0x08, 0xd9, 0x10, 0x08, 0x47, 0x2e, 0xb2, 0x18, 0x1f, 0x02, 0x97,
+ 0xbc, 0xb2, 0x32, 0x1f, 0x9a, 0xf1, 0x26, 0xc9, 0x75, 0xee, 0xb2, 0x3a,
+ 0xb5, 0xe3, 0x83, 0x89, 0x5f, 0xe8, 0xd4, 0xe6, 0x26, 0x95, 0xef, 0x3a,
+ 0x8e, 0xb7, 0x10, 0x78, 0x3d, 0x1d, 0x11, 0x1d, 0xdf, 0xe2, 0x82, 0x90,
+ 0x61, 0x03, 0x37, 0xff, 0xfa, 0x86, 0x51, 0x35, 0x82, 0xc9, 0x62, 0xc6,
+ 0xac, 0x5c, 0x0c, 0x73, 0xa7, 0xfa, 0x83, 0x33, 0xad, 0x83, 0x18, 0x28,
+ 0x19, 0xc1, 0x58, 0xe6, 0x39, 0xea, 0x86, 0x7c, 0xd2, 0xdc, 0x40, 0x66,
+ 0xd6, 0x9c, 0x2d, 0x9e, 0xcd, 0x6e, 0x5f, 0x31, 0x51, 0x81, 0x91, 0x2d,
+ 0xd5, 0x7f, 0x57, 0xd7, 0x72, 0xf3, 0x77, 0xdc, 0x02, 0xf4, 0xe1, 0xba,
+ 0xe9, 0x6a, 0x5e, 0x15, 0x84, 0xde, 0x2b, 0x16, 0x5f, 0x4c, 0x90, 0x85,
+ 0xcd, 0xc2, 0x1b, 0x71, 0x3a, 0x94, 0x28, 0xf7, 0x26, 0x1a, 0xfa, 0x61,
+ 0x3f, 0x58, 0xcb, 0x3e, 0xf8, 0x90, 0x1e, 0x5b, 0x39, 0xe6, 0x8b, 0xcd,
+ 0x4d, 0x16, 0xb2, 0x4c, 0x71, 0x51, 0xb8, 0x5f, 0x3a, 0x9d, 0xb3, 0x49,
+ 0xa5, 0x53, 0xa9, 0x19, 0x4e, 0x0e, 0xe5, 0x91, 0xad, 0xd8, 0x76, 0x5f,
+ 0x6e, 0xed, 0x46, 0x65, 0x42, 0xfe, 0xf6, 0x70, 0x88, 0x2b, 0x63, 0x30,
+ 0x6f, 0x9f, 0xcc, 0xd9, 0x1f, 0x69, 0x09, 0xb3, 0xf7, 0x82, 0x0c, 0x1b,
+ 0x9e, 0xd5, 0x78, 0x38, 0x90, 0x22, 0x2a, 0xe3, 0x4a, 0x58, 0xde, 0x71,
+ 0x56, 0x87, 0xbf, 0xf7, 0x80, 0xda, 0x6f, 0xb3, 0xd9, 0x3f, 0xf2, 0x2d,
+ 0xfd, 0x6c, 0xfb, 0x5f, 0x9b, 0x31, 0xc6, 0x97, 0xca, 0xad, 0xb6, 0x8c,
+ 0xf0, 0x28, 0x6e, 0x7b, 0x49, 0xed, 0x55, 0xb6, 0xb5, 0x7f, 0x71, 0xb2,
+ 0x18, 0x04, 0x41, 0x9f, 0x57, 0x48, 0xf8, 0xfd, 0xd3, 0xed, 0x37, 0x6d,
+ 0xd7, 0xdc, 0x1c, 0x5e, 0x53, 0x7e, 0x5a, 0x21, 0xef, 0xa1, 0xad, 0xbf,
+ 0x3d, 0x4c, 0xa0, 0x08, 0x2d, 0xde, 0x2b, 0x70, 0x8c, 0x12, 0x2f, 0x90,
+ 0x12, 0xca, 0x6d, 0x50, 0xdd, 0xb9, 0xa6, 0x0d, 0x17, 0x57, 0xb0, 0x47,
+ 0x5b, 0xf0, 0xee, 0xdb, 0x14, 0x21, 0xfa, 0x0a, 0xf6, 0x06, 0x57, 0x81,
+ 0x54, 0x9f, 0xde, 0xfc, 0x47, 0x57, 0x2c, 0x1c, 0x3d, 0x4f, 0xf6, 0x17,
+ 0xd8, 0x92, 0xc7, 0x9b, 0xe0, 0x71, 0x43, 0x34, 0xdc, 0xeb, 0x34, 0xaa,
+ 0x83, 0x67, 0x1f, 0x03, 0x10, 0x03, 0x81, 0xc6, 0xd5, 0x52, 0x9c, 0xe9,
+ 0x46, 0x82, 0x8d, 0x00, 0x05, 0x3e, 0x47, 0x9f, 0x08, 0x68, 0x18, 0x72,
+ 0xfb, 0x5c, 0x81, 0xb0, 0xe2, 0x25, 0x9d, 0xd5, 0x05, 0x85, 0x5f, 0xaa,
+ 0x39, 0xa1, 0xdf, 0xda, 0x46, 0x18, 0xb5, 0xc6, 0xf2, 0xa8, 0x06, 0xe3,
+ 0x82, 0x95, 0xd2, 0x33, 0x3e, 0x16, 0x2d, 0x9e, 0xac, 0x1f, 0x4c, 0xd7,
+ 0x64, 0x7d, 0xbe, 0x40, 0x3a, 0x51, 0x13, 0x5e, 0x9b, 0x93, 0x28, 0x67,
+ 0x9b, 0x7f, 0x34, 0xdb, 0xfa, 0x55, 0x4d, 0x24, 0x11, 0xe2, 0x18, 0xff,
+ 0x31, 0xf6, 0x6f, 0xbb, 0x0e, 0x42, 0xa9, 0x86, 0x0f, 0xd1, 0xe5, 0x89,
+ 0x96, 0x1f, 0x20, 0xaa, 0xe3, 0xc8, 0x1b, 0x25, 0xa6, 0xc1, 0x89, 0x61,
+ 0xf1, 0xb4, 0x22, 0x9c, 0x85, 0x6e, 0xb6, 0xa1, 0x34, 0x0b, 0xe3, 0x37,
+ 0xad, 0x27, 0x2a, 0xd5, 0x99, 0xc8, 0x4e, 0x0e, 0x65, 0xf2, 0xd9, 0xb2,
+ 0x5d, 0x37, 0x87, 0xb3, 0xb3, 0x8d, 0xf4, 0xaa, 0xe1, 0x0f, 0x0a, 0x19,
+ 0x09, 0x97, 0x4a, 0xda, 0x8c, 0x5a, 0x76, 0xf8, 0xb0, 0xec, 0x8f, 0x32,
+ 0xa6, 0xa7, 0x60, 0xdf, 0x02, 0xb6, 0x7f, 0x6d, 0xa6, 0x05, 0x2e, 0x2a,
+ 0xa5, 0x02, 0xcb, 0x8b, 0x85, 0x9e, 0x6c, 0xde, 0x88, 0xb9, 0xe2, 0x35,
+ 0xba, 0x0a, 0x05, 0x7f, 0x2e, 0x8d, 0x56, 0xfc, 0xc3, 0x33, 0x11, 0x3f,
+ 0x1c, 0x8d, 0x6a, 0x5d, 0xae, 0xaa, 0x0c, 0x52, 0xf6, 0xfc, 0xd0, 0x84,
+ 0x2b, 0x5c, 0x65, 0xe6, 0x00, 0xa9, 0x73, 0x14, 0x4d, 0x43, 0x79, 0x1f,
+ 0xaf, 0xc3, 0xe2, 0x85, 0xc7, 0xa8, 0x68, 0xdb, 0xb6, 0x6d, 0x87, 0xe2,
+ 0xf7, 0xe2, 0x69, 0xce, 0xaa, 0xc8, 0x0e, 0x23, 0x35, 0x78, 0xc0, 0x2f,
+ 0x2e, 0x97, 0x8a, 0x9d, 0xd2, 0x26, 0x0e, 0xa3, 0xa4, 0x52, 0x8e, 0x3d,
+ 0xb4, 0xc4, 0x8b, 0x47, 0xa0, 0x95, 0x31, 0x04, 0xbe, 0x8d, 0x46, 0x46,
+ 0x44, 0xdc, 0xd6, 0x37, 0x62, 0xf9, 0xcf, 0x26, 0xf0, 0x84, 0xfc, 0x7a,
+ 0x9e, 0x39, 0xec, 0xfe, 0xc6, 0x8e, 0x53, 0x50, 0x4a, 0xd5, 0xe2, 0x77,
+ 0xbb, 0x50, 0x1d, 0x5f, 0xdd, 0x22, 0x4d, 0x95, 0x0f, 0xa2, 0x99, 0xb0,
+ 0xa9, 0x80, 0xce, 0x02, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x11, 0x0e, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0x1e,
+ 0x40, 0xa7, 0xe7, 0xe8, 0xd6, 0x13, 0xad, 0xd3, 0x5d, 0x3b, 0xb9, 0xb5,
+ 0x7d, 0x9b, 0x93, 0x37, 0x91, 0x24, 0x13, 0xd2, 0xf3, 0xb0, 0x8a, 0x9a,
+ 0xc6, 0xb6, 0x8d, 0x8f, 0x65, 0xd6, 0xdb, 0x73, 0x7d, 0x09, 0xe8, 0x5e,
+ 0x5e, 0x20, 0xb7, 0x34, 0x61, 0xe0, 0x82, 0x7c, 0x1c, 0xf8, 0x6b, 0x34,
+ 0x48, 0xe9, 0x62, 0xe1, 0x00, 0x70, 0x68, 0x01, 0x87, 0x2d, 0x1d, 0xfb,
+ 0x90, 0x49, 0x79, 0x6c, 0x58, 0xa9, 0x5e, 0xa0, 0xad, 0x10, 0xe0, 0x85,
+ 0x4c, 0x2d, 0xc7, 0x0d, 0xdd, 0xd1, 0xcb, 0xf0, 0x0f, 0xb0, 0xb7, 0xe1,
+ 0x66, 0x80, 0x19, 0xce, 0x69, 0x84, 0x95, 0xc3, 0xd3, 0xf1, 0x2e, 0x09,
+ 0xed, 0x3b, 0x73, 0xc9, 0xfe, 0xb3, 0x6d, 0x47, 0x20, 0x77, 0xd2, 0xc2,
+ 0xce, 0xfa, 0x92, 0x02, 0x17, 0x2b, 0x8b, 0x66, 0xbf, 0x86, 0x89, 0xff,
+ 0xda, 0x62, 0xa8, 0xbe, 0x13, 0x77, 0xb4, 0xf0, 0x0e, 0x01, 0xcd, 0x5e,
+ 0x29, 0xc3, 0x03, 0x94, 0x13, 0x7e, 0xb5, 0xee, 0x98, 0x21, 0xf4, 0xa8,
+ 0xf6, 0x27, 0x5a, 0x89, 0xbb, 0x0e, 0xbe, 0x8f, 0x11, 0x9d, 0x4c, 0x32,
+ 0x1f, 0x88, 0xed, 0x16, 0xbe, 0xd3, 0x7f, 0x37, 0x5e, 0x12, 0x27, 0x77,
+ 0xf2, 0xb3, 0xa8, 0x9c, 0xed, 0x1b, 0x6f, 0xfe, 0xa0, 0xbe, 0xd3, 0xcc,
+ 0xbc, 0x85, 0x37, 0x9f, 0xf3, 0x72, 0x88, 0x37, 0x09, 0xda, 0xbd, 0x26,
+ 0xac, 0x26, 0x2b, 0xd9, 0xa7, 0x0e, 0x56, 0x89, 0x30, 0xa7, 0x1c, 0xfa,
+ 0x93, 0xf4, 0x39, 0x89, 0x45, 0xdb, 0x05, 0xc5, 0x52, 0xff, 0xc1, 0x1c,
+ 0xe8, 0xf5, 0x7e, 0x2d, 0xe1, 0x14, 0x27, 0x77, 0x00, 0x00, 0xf1, 0x0a,
+ 0xca, 0x2a, 0x6f, 0x80, 0xde, 0x11, 0x4d, 0x42, 0x2c, 0xd8, 0x10, 0x44,
+ 0x11, 0x18, 0x7a, 0x46, 0xc2, 0x18, 0xdd, 0x50, 0xeb, 0xc3, 0x3d, 0x84,
+ 0xc7, 0xb4, 0xb8, 0xcf, 0x7f, 0x84, 0x73, 0x25, 0x68, 0x2c, 0xc4, 0x0c,
+ 0x28, 0x7f, 0x3a, 0x56, 0xad, 0x37, 0x96, 0x5d, 0x7e, 0xdd, 0x93, 0xc3,
+ 0x6e, 0x8b, 0xb6, 0x51, 0xb0, 0x88, 0x0c, 0x39, 0x1f, 0x00, 0x5f, 0x6f,
+ 0xd2, 0x62, 0x13, 0xe1, 0x89, 0x37, 0x0c, 0x6b, 0x2a, 0xc3, 0x17, 0x8e,
+ 0xf9, 0x58, 0xe0, 0xf8, 0x17, 0xdf, 0xbb, 0xba, 0xf8, 0x96, 0xc1, 0x89,
+ 0x96, 0x9f, 0xba, 0xea, 0xf0, 0xf7, 0xec, 0x2a, 0x7b, 0x01, 0xe2, 0x37,
+ 0x2e, 0x75, 0x01, 0xbe, 0x0a, 0xfb, 0x2a, 0x9e, 0x01, 0xda, 0x12, 0x54,
+ 0xe9, 0x6d, 0xb1, 0xc3, 0x53, 0x6b, 0x4e, 0xc3, 0x2d, 0x7c, 0x3c, 0x1f,
+ 0xe6, 0x6b, 0xda, 0xc1, 0x21, 0xdd, 0xd4, 0x11, 0x11, 0x79, 0x75, 0x83,
+ 0x17, 0xe4, 0x8f, 0x38, 0x7b, 0x18, 0xb2, 0xca, 0xba, 0x81, 0x89, 0x58,
+ 0x90, 0x64, 0x82, 0xae, 0x42, 0xad, 0x53, 0xf1, 0x1c, 0x74, 0x32, 0x9d,
+ 0x27, 0xae, 0x91, 0xfe, 0xd3, 0x38, 0x2e, 0x5e, 0x24, 0x93, 0x1e, 0xac,
+ 0x73, 0x4a, 0xd0, 0x49, 0xe4, 0x5b, 0x3c, 0x36, 0x4d, 0x03, 0xc7, 0xa3,
+ 0xe1, 0x65, 0x72, 0x87, 0xbb, 0x9a, 0xb4, 0x2f, 0x2f, 0x87, 0x52, 0x15,
+ 0x3b, 0x53, 0x06, 0x7f, 0xfd, 0x2a, 0x28, 0xfa, 0x86, 0xb2, 0x8a, 0xe2,
+ 0xe9, 0x29, 0xe9, 0xc1, 0xdf, 0x15, 0x7b, 0xde, 0x90, 0x26, 0x6f, 0xf6,
+ 0x8d, 0x72, 0xb0, 0x3f, 0xa3, 0x90, 0x4c, 0xed, 0x6e, 0xc2, 0x9f, 0x67,
+ 0x02, 0xc7, 0xee, 0xd2, 0xc0, 0x91, 0x28, 0xc2, 0x01, 0xa4, 0x99, 0x75,
+ 0xa3, 0x93, 0xef, 0xd3, 0xa0, 0xb5, 0xa3, 0xaf, 0x3b, 0xbe, 0x7a, 0xcd,
+ 0xd0, 0x9a, 0xfe, 0x04, 0x85, 0xa2, 0x4c, 0xe1, 0x02, 0xed, 0x2d, 0xf2,
+ 0x18, 0x86, 0xae, 0x18, 0x65, 0x18, 0x80, 0xcc, 0xf0, 0x8c, 0x15, 0xf6,
+ 0x7d, 0xa5, 0x4e, 0x48, 0xee, 0x28, 0x92, 0x9c, 0x7c, 0x6c, 0x20, 0x3f,
+ 0x54, 0x44, 0xdf, 0x68, 0x53, 0x29, 0x4d, 0x42, 0xa7, 0xa8, 0x51, 0x1e,
+ 0x56, 0x33, 0xb4, 0xda, 0x1c, 0x83, 0x69, 0x69, 0x17, 0x8e, 0x0e, 0x98,
+ 0x50, 0x2e, 0x5f, 0x18, 0x09, 0x06, 0x20, 0x57, 0xae, 0x20, 0x71, 0xc5,
+ 0xee, 0x58, 0xfd, 0xa0, 0x14, 0x62, 0x59, 0x6a, 0x01, 0xaf, 0x18, 0x35,
+ 0xee, 0x52, 0xe6, 0xfb, 0x5f, 0xaa, 0x3f, 0x71, 0x51, 0x35, 0x6f, 0xd9,
+ 0xdc, 0x67, 0xa7, 0xa1, 0xc9, 0x8e, 0xd5, 0x7c, 0x8a, 0x87, 0x87, 0xbb,
+ 0xae, 0xe2, 0xf4, 0x00, 0xc4, 0x4d, 0x42, 0xed, 0xeb, 0xe4, 0x1a, 0x15,
+ 0xe5, 0x21, 0x34, 0xf4, 0xec, 0xf6, 0x36, 0xb9, 0x10, 0x21, 0x05, 0xbf,
+ 0x9c, 0x32, 0xc8, 0xa3, 0x01, 0x47, 0x11, 0x42, 0x38, 0xa8, 0xde, 0xfc,
+ 0x82, 0x21, 0x0d, 0xf7, 0x0d, 0x7a, 0xdb, 0x84, 0x1e, 0x9d, 0x64, 0x1f,
+ 0x6f, 0x49, 0x7b, 0xb8, 0x86, 0xdd, 0xd3, 0x7d, 0xc3, 0x65, 0xbf, 0x55,
+ 0x5e, 0xd8, 0x7e, 0xe8, 0xa6, 0xa9, 0xef, 0x71, 0x31, 0x8b, 0x50, 0x9e,
+ 0xb6, 0x72, 0x6d, 0x58, 0x76, 0xa0, 0xb2, 0xd4, 0xb4, 0xae, 0xd0, 0xd9,
+ 0x29, 0x98, 0x92, 0x53, 0xe3, 0x77, 0x9a, 0xe4, 0x37, 0xde, 0x83, 0xb1,
+ 0x08, 0xce, 0x9b, 0xff, 0x89, 0xb9, 0x0e, 0xc2, 0x95, 0xf7, 0xa5, 0x2c,
+ 0xa5, 0xfb, 0x65, 0xd3, 0x65, 0x43, 0xe9, 0xa4, 0x6c, 0x2a, 0x60, 0x00,
+ 0x2f, 0x04, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x91, 0x12, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0xab, 0xb2, 0x00,
+ 0xe1, 0x0a, 0xb4, 0x06, 0x53, 0x31, 0xe1, 0x30, 0xc7, 0xaf, 0xb5, 0xf1,
+ 0xff, 0xfd, 0x50, 0x03, 0x1a, 0x2e, 0x29, 0xb0, 0xec, 0x82, 0x04, 0x73,
+ 0xd7, 0xcb, 0xa5, 0x5a, 0x5c, 0x87, 0xf0, 0x02, 0x93, 0xdb, 0xbb, 0xb6,
+ 0xed, 0x46, 0x29, 0xb5, 0x05, 0xee, 0x63, 0x48, 0x75, 0x1a, 0xd4, 0x40,
+ 0x84, 0xf9, 0xe0, 0x94, 0x96, 0x3c, 0x3c, 0x0b, 0x92, 0xef, 0x05, 0x40,
+ 0x1d, 0xaa, 0xfa, 0xd3, 0x30, 0x01, 0x1c, 0x62, 0x06, 0xe1, 0x44, 0x78,
+ 0x82, 0xb5, 0xb3, 0xd3, 0x5e, 0xd3, 0x4a, 0x62, 0xe9, 0x9f, 0x82, 0x1f,
+ 0x13, 0x0d, 0xb0, 0x42, 0x61, 0xa9, 0x26, 0x93, 0x80, 0x99, 0xe1, 0x58,
+ 0xb9, 0xcf, 0xdf, 0x0f, 0x00, 0x68, 0x5b, 0x47, 0x3a, 0xca, 0x69, 0xc0,
+ 0x99, 0x78, 0xc0, 0x00, 0x03, 0x43, 0x23, 0xae, 0x34, 0x80, 0x2e, 0xce,
+ 0x70, 0x3b, 0xff, 0x70, 0x77, 0x0e, 0xe6, 0xe8, 0xed, 0xcc, 0xc3, 0x83,
+ 0x23, 0xb2, 0x4c, 0x32, 0xcc, 0x3f, 0x80, 0x77, 0xd2, 0xc2, 0xce, 0xcd,
+ 0xa2, 0x02, 0x17, 0x35, 0x28, 0xda, 0x6b, 0x0b, 0x34, 0x73, 0x45, 0xdd,
+ 0x0a, 0x65, 0xad, 0x93, 0x55, 0xa6, 0x53, 0x44, 0x38, 0x69, 0x99, 0xfd,
+ 0xf9, 0x48, 0x05, 0x93, 0x6f, 0xe4, 0xd0, 0x6a, 0x6e, 0x60, 0x5f, 0xa7,
+ 0xb5, 0xbd, 0x18, 0x4f, 0x0a, 0xb2, 0x2a, 0x02, 0xa9, 0x5e, 0xfc, 0x64,
+ 0xd0, 0xb4, 0xb6, 0x81, 0x6a, 0xf7, 0x65, 0xee, 0xad, 0xdd, 0xd1, 0x5d,
+ 0xf3, 0xe6, 0xe1, 0x91, 0x75, 0xab, 0xd9, 0x24, 0x7c, 0x9c, 0xf8, 0x2c,
+ 0x27, 0x5b, 0x0c, 0x1d, 0xb5, 0x28, 0xa9, 0xc5, 0x09, 0x3e, 0x9d, 0x85,
+ 0xc3, 0x66, 0xdc, 0x5c, 0xd3, 0x07, 0xd9, 0x0d, 0xbc, 0x39, 0xe7, 0x04,
+ 0x20, 0x37, 0xee, 0x86, 0xdd, 0xf2, 0x5b, 0xdb, 0x3e, 0xf2, 0xfe, 0x7e,
+ 0xd3, 0xd0, 0x2a, 0x44, 0x47, 0x27, 0x43, 0xd0, 0x48, 0x4e, 0x87, 0x39,
+ 0x16, 0x29, 0x75, 0xef, 0x20, 0x30, 0xdb, 0xa2, 0x71, 0xab, 0x08, 0x82,
+ 0x31, 0x6f, 0xaf, 0xfe, 0x39, 0xe1, 0xb4, 0xef, 0xd1, 0xf8, 0x7a, 0x4e,
+ 0xf1, 0x18, 0x34, 0xde, 0x4f, 0xfe, 0x2a, 0x94, 0xdd, 0x96, 0xb2, 0xf1,
+ 0x5c, 0xa8, 0x94, 0x8a, 0x9e, 0x5b, 0x0a, 0x3d, 0xfb, 0x44, 0x13, 0x8a,
+ 0x03, 0xf0, 0xc1, 0x1f, 0x26, 0x0f, 0x2d, 0xe8, 0x24, 0xe9, 0xa2, 0x91,
+ 0x03, 0x3c, 0x14, 0x30, 0xef, 0x2d, 0xa0, 0xc9, 0x54, 0x57, 0xa4, 0x68,
+ 0xe7, 0x61, 0xe8, 0x04, 0x84, 0xc2, 0xa5, 0x4e, 0x78, 0xbd, 0xb5, 0x0d,
+ 0x20, 0xca, 0xae, 0x75, 0x39, 0xcc, 0x45, 0xbe, 0x28, 0xbb, 0x46, 0xc4,
+ 0x3e, 0x41, 0xff, 0xff, 0x6a, 0x14, 0xc7, 0x70, 0x5f, 0xa8, 0x45, 0x4e,
+ 0xc9, 0x77, 0xdd, 0x2c, 0x33, 0x29, 0x33, 0xca, 0x51, 0x1d, 0xe9, 0x06,
+ 0xb7, 0xff, 0xb6, 0xc8, 0xab, 0xe3, 0x42, 0xe9, 0xe2, 0xa6, 0xbb, 0xbd,
+ 0xd3, 0x0e, 0x0b, 0x99, 0x5e, 0x49, 0xa2, 0x78, 0xd6, 0xa0, 0x1e, 0x28,
+ 0xec, 0x21, 0x50, 0xb1, 0x38, 0xcc, 0x5e, 0x73, 0xf5, 0x46, 0x71, 0x98,
+ 0xca, 0xc8, 0xb5, 0xfb, 0x37, 0x46, 0x68, 0xc6, 0x7c, 0xfa, 0x9b, 0x5e,
+ 0x4d, 0x0e, 0x6a, 0xb5, 0xdd, 0x15, 0xd7, 0xdd, 0x48, 0xfc, 0xee, 0x15,
+ 0xc4, 0x9d, 0xec, 0xce, 0x64, 0xce, 0x6a, 0x9d, 0x50, 0x6a, 0x44, 0x10,
+ 0x97, 0xca, 0xe8, 0xeb, 0x35, 0xa9, 0xf3, 0xd0, 0x16, 0xd2, 0x5f, 0x5d,
+ 0x9a, 0x40, 0x2c, 0x22, 0xee, 0xfd, 0xe9, 0x3f, 0x10, 0x00, 0xac, 0x9a,
+ 0xab, 0x7d, 0xff, 0xb3, 0x00, 0xa6, 0x2b, 0x7a, 0x62, 0x31, 0xfd, 0xe4,
+ 0x0b, 0x43, 0xa0, 0xd2, 0xd1, 0x2e, 0x89, 0x80, 0xc5, 0x5e, 0x9e, 0x60,
+ 0x00, 0xb7, 0x4e, 0x39, 0x9c, 0x20, 0x86, 0xd1, 0xf8, 0x91, 0xc1, 0xe7,
+ 0x50, 0xe6, 0xab, 0xf3, 0x0f, 0x37, 0xcf, 0x98, 0x72, 0x4e, 0xb1, 0xd5,
+ 0x23, 0x0a, 0x43, 0x65, 0x62, 0xc7, 0x2a, 0x59, 0xf9, 0xcb, 0x51, 0xc4,
+ 0x6d, 0x99, 0xeb, 0xf7, 0xce, 0xb3, 0xaa, 0x56, 0x92, 0x10, 0x7f, 0x88,
+ 0xf1, 0x9b, 0xb8, 0x4c, 0x5f, 0x08, 0x96, 0x40, 0xb6, 0x73, 0x10, 0xd3,
+ 0x23, 0x60, 0xc8, 0xfd, 0xad, 0x60, 0x28, 0xe6, 0x2c, 0xac, 0x76, 0x8f,
+ 0xe3, 0xd3, 0x78, 0x0b, 0x4e, 0x6d, 0xb2, 0xb4, 0xa2, 0xe9, 0x2b, 0xbc,
+ 0xb1, 0x3c, 0x8e, 0x04, 0xd8, 0x10, 0x78, 0xe4, 0x2f, 0x0f, 0x8a, 0x14,
+ 0x83, 0xb0, 0xa8, 0x04, 0x3d, 0x2f, 0x23, 0x52, 0x63, 0x5f, 0x93, 0x9f,
+ 0x83, 0x75, 0x25, 0x57, 0x6c, 0x41, 0x20, 0x3f, 0x2f, 0xdb, 0xc1, 0xb2,
+ 0xf6, 0xa2, 0x6b, 0x92, 0xc0, 0x93, 0x75, 0x58, 0x9a, 0xa4, 0x8f, 0x24,
+ 0x9c, 0xd2, 0x1a, 0x6d, 0xfe, 0x25, 0xfa, 0xaa, 0x2f, 0xa8, 0x59, 0x18,
+ 0x96, 0x27, 0x91, 0x31, 0xbb, 0x83, 0xbd, 0x6c, 0xb1, 0x19, 0x96, 0xcf,
+ 0xec, 0xee, 0x2a, 0x03, 0x72, 0x32, 0xd4, 0x46, 0x16, 0x79, 0xe0, 0x5a,
+ 0x4a, 0xf4, 0x2b, 0xca, 0xb8, 0xa7, 0xde, 0x39, 0x46, 0x47, 0x74, 0xb2,
+ 0xe7, 0x40, 0xcb, 0xd8, 0x5f, 0x0f, 0x8a, 0x90, 0x53, 0x67, 0x00, 0x1d,
+ 0xbe, 0x6c, 0xc7, 0x91, 0x79, 0x9b, 0x88, 0x6f, 0x53, 0xc4, 0xee, 0xfa,
+ 0xd1, 0x03, 0xbe, 0xe0, 0xd7, 0x97, 0xa0, 0xe1, 0x91, 0x26, 0x17, 0xa1,
+ 0x86, 0xb2, 0x95, 0xb9, 0x0d, 0x76, 0x5f, 0x09, 0x66, 0x70, 0xc1, 0xdd,
+ 0x03, 0x67, 0x21, 0x7d, 0x71, 0x2e, 0xa3, 0x22, 0x97, 0x76, 0x2f, 0x70,
+ 0x76, 0x48, 0xb4, 0x26, 0xbb, 0x6f, 0xee, 0x64, 0xcd, 0x3f, 0x6f, 0xbc,
+ 0xb7, 0x49, 0x1f, 0xa7, 0x09, 0xe7, 0xa6, 0x9c, 0x01, 0x62, 0x8f, 0x6e,
+ 0x27, 0xa8, 0x3b, 0x07, 0x8d, 0xcd, 0x2b, 0x74, 0xd6, 0x3a, 0x78, 0xc0,
+ 0x0b, 0x8e, 0xbc, 0x8b, 0xe1, 0xe2, 0x36, 0xf8, 0x15, 0xb7, 0xd0, 0xe8,
+ 0x0d, 0xe3, 0xc5, 0x45, 0xa1, 0x34, 0x42, 0xa0, 0x56, 0xc6, 0x7e, 0xf8,
+ 0xa1, 0xc0, 0x63, 0x0f, 0xb9, 0x69, 0x96, 0x47, 0x79, 0x99, 0x76, 0xd8,
+ 0xee, 0x35, 0x4b, 0x54, 0xb5, 0xc3, 0x27, 0xcb, 0x3a, 0x35, 0x02, 0x83,
+ 0xc8, 0x63, 0x96, 0x9b, 0x4e, 0xea, 0x5d, 0x50, 0xd3, 0xa6, 0xf0, 0xe7,
+ 0x48, 0x4b, 0xe4, 0x89, 0x9e, 0x09, 0x61, 0x5c, 0xd4, 0x2b, 0x55, 0x6b,
+ 0x4a, 0x45, 0x87, 0x5d, 0xee, 0xbe, 0x92, 0xd6, 0x9b, 0xe2, 0x78, 0x58,
+ 0x0a, 0x81, 0x9d, 0x19, 0xcf, 0x77, 0x61, 0xf8, 0x6a, 0xcb, 0x91, 0x06,
+ 0x8d, 0x1a, 0x31, 0x37, 0x6b, 0xdb, 0xdf, 0xb4, 0xd0, 0xa6, 0xb9, 0x33,
+ 0x15, 0x2d, 0x75, 0x05, 0x36, 0xad, 0xd0, 0x7f, 0xf2, 0x0e, 0x8a, 0x44,
+ 0x46, 0xad, 0x16, 0x79, 0x5b, 0x0c, 0xd2, 0x93, 0x18, 0x37, 0x14, 0x1c,
+ 0xe1, 0x25, 0x63, 0xe5, 0xd2, 0xdd, 0x1b, 0x91, 0x8e, 0x17, 0x1a, 0x53,
+ 0x2a, 0xa6, 0x93, 0x11, 0x0e, 0xda, 0xd4, 0xfd, 0xbf, 0x73, 0x8d, 0x8e,
+ 0xff, 0x5e, 0x29, 0x0f, 0xca, 0xac, 0x64, 0x5e, 0xe9, 0xbe, 0x3f, 0x67,
+ 0x4b, 0x29, 0xda, 0xb9, 0x93, 0xe9, 0xc0, 0x32, 0x53, 0x22, 0x2d, 0xc3,
+ 0x44, 0x39, 0x9c, 0x9a, 0x60, 0x84, 0xa7, 0xcf, 0xa3, 0x9b, 0x89, 0xa4,
+ 0x91, 0x09, 0x05, 0xfa, 0x24, 0xdc, 0xca, 0x37, 0x96, 0x37, 0x11, 0x51,
+ 0x6d, 0x2c, 0x25, 0x22, 0x21, 0x9d, 0x49, 0xbc, 0x45, 0x32, 0xdc, 0x30,
+ 0x9c, 0xd3, 0x39, 0x3c, 0x44, 0xc5, 0x98, 0xd4, 0xed, 0x40, 0x03, 0x47,
+ 0x9e, 0x74, 0x23, 0x25, 0x18, 0x3d, 0xb0, 0x4a, 0x3d, 0xad, 0x4a, 0x8f,
+ 0xf8, 0x5c, 0x83, 0x7b, 0x66, 0x4d, 0xc9, 0x6d, 0x18, 0x0c, 0x63, 0x8c,
+ 0xc0, 0x0c, 0x7e, 0x2b, 0x0a, 0x39, 0x4b, 0xf1, 0x37, 0x21, 0xd8, 0x52,
+ 0xbe, 0xf4, 0xa5, 0x94, 0xbf, 0x69, 0x12, 0x6c, 0xa8, 0x7d, 0x14, 0xcd,
+ 0x85, 0x4c, 0x00, 0x57, 0x03, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x71, 0x0f, 0x00, 0x02, 0x10, 0x10, 0x00, 0x18, 0x90,
+ 0x21, 0x05, 0x28, 0x34, 0x8b, 0xec, 0x15, 0x04, 0x42, 0x67, 0xde, 0x20,
+ 0xbc, 0xfd, 0x5a, 0x6b, 0x6b, 0xf9, 0x97, 0xd3, 0xf2, 0x54, 0xd2, 0xda,
+ 0x2f, 0xc2, 0x7a, 0x04, 0xc6, 0x88, 0x9c, 0x22, 0x42, 0x69, 0xf5, 0x97,
+ 0x19, 0x05, 0x2e, 0xcb, 0x22, 0x58, 0x50, 0xd7, 0xcc, 0x0d, 0x40, 0x19,
+ 0xda, 0xbf, 0x97, 0x67, 0x4b, 0x69, 0xfc, 0xc3, 0x05, 0xa8, 0xa2, 0x7f,
+ 0x33, 0x46, 0x86, 0xba, 0x38, 0x9c, 0x82, 0xcb, 0xbf, 0x83, 0x4e, 0xfc,
+ 0x03, 0x08, 0x01, 0x6b, 0x3f, 0xc3, 0xff, 0x76, 0x3d, 0xb2, 0x1b, 0x87,
+ 0xaa, 0xb1, 0xb3, 0x1a, 0x02, 0x4b, 0x1a, 0x9f, 0x82, 0x07, 0xd6, 0x94,
+ 0x24, 0xa0, 0x4a, 0xfe, 0x47, 0xe6, 0x20, 0xda, 0x85, 0x27, 0x78, 0x65,
+ 0x14, 0x09, 0x87, 0xbc, 0x50, 0xce, 0x3b, 0x39, 0x70, 0x97, 0x5e, 0x73,
+ 0xee, 0xb2, 0xe3, 0x73, 0xb4, 0xa8, 0xa3, 0x60, 0x8b, 0x3a, 0x60, 0x23,
+ 0x55, 0x0e, 0xeb, 0xca, 0x21, 0xdf, 0x75, 0xfb, 0x10, 0xad, 0x80, 0x52,
+ 0x51, 0x2e, 0xc7, 0x73, 0xf8, 0x83, 0xd4, 0x83, 0xe5, 0x50, 0x5a, 0x54,
+ 0x50, 0x77, 0xb5, 0xa0, 0x91, 0xf2, 0xea, 0xd6, 0x55, 0xee, 0x4b, 0x80,
+ 0x9a, 0xfb, 0x75, 0xe4, 0xe3, 0x0d, 0x33, 0x4a, 0x86, 0x4c, 0x50, 0x1b,
+ 0xbe, 0xcd, 0xb1, 0x32, 0xae, 0x29, 0x36, 0xae, 0x3c, 0xd9, 0x88, 0x77,
+ 0xce, 0xcc, 0x6d, 0x14, 0xa8, 0x9b, 0xbd, 0xc4, 0x28, 0xc3, 0x2a, 0x0d,
+ 0x73, 0x33, 0xc9, 0x8e, 0xc9, 0x85, 0x77, 0x63, 0xdb, 0x90, 0x51, 0xd4,
+ 0x75, 0x74, 0x41, 0x8f, 0x19, 0x11, 0xb3, 0x2e, 0xf2, 0xb3, 0x51, 0xb4,
+ 0xd9, 0xa0, 0xcd, 0x21, 0x24, 0x97, 0x4a, 0x05, 0x93, 0x47, 0xbf, 0x29,
+ 0x9c, 0x55, 0x75, 0xf0, 0x6f, 0x61, 0xc1, 0xfa, 0x67, 0x8d, 0x35, 0x84,
+ 0x2a, 0x38, 0xb2, 0xe4, 0x5a, 0xd6, 0x23, 0x32, 0x73, 0xbe, 0xe4, 0xf7,
+ 0x89, 0x8c, 0x35, 0x7f, 0xe9, 0x97, 0x28, 0xeb, 0x67, 0xba, 0x9d, 0x5c,
+ 0x7d, 0x2c, 0x1f, 0x11, 0x0d, 0x34, 0xe8, 0x29, 0x3f, 0x02, 0x7b, 0x8d,
+ 0x10, 0xfc, 0x34, 0x3e, 0xd7, 0xcb, 0x37, 0x6f, 0xef, 0xd8, 0x53, 0x75,
+ 0x26, 0xe9, 0x3a, 0xd1, 0xf0, 0xcc, 0xbe, 0x5e, 0x61, 0x0c, 0x91, 0x77,
+ 0x7a, 0x80, 0x1a, 0xf0, 0xda, 0x1c, 0xad, 0x2f, 0xcf, 0xe4, 0x20, 0xa1,
+ 0x7a, 0x9c, 0xfa, 0x12, 0x11, 0x9e, 0x49, 0xdd, 0x40, 0x51, 0x4c, 0x44,
+ 0x7a, 0xea, 0x42, 0xd8, 0x66, 0x8c, 0xaa, 0x2a, 0x38, 0x68, 0x5a, 0x49,
+ 0xcc, 0xcf, 0x87, 0xc5, 0x91, 0xab, 0x72, 0x8e, 0x8a, 0x45, 0x5f, 0xd8,
+ 0x6e, 0xe6, 0x91, 0x7c, 0xa6, 0xe0, 0x92, 0xd7, 0xba, 0xfd, 0x39, 0x30,
+ 0xc4, 0x56, 0xeb, 0x07, 0x2c, 0x84, 0xa8, 0x06, 0xf8, 0x68, 0x0e, 0x79,
+ 0x16, 0x67, 0x22, 0xae, 0x55, 0x42, 0x43, 0x3e, 0x2a, 0xec, 0x11, 0x30,
+ 0x86, 0xb7, 0x32, 0x46, 0xdf, 0xb9, 0x8d, 0x16, 0x4f, 0x06, 0x01, 0x46,
+ 0x09, 0x79, 0x76, 0x23, 0xb0, 0xb8, 0x5b, 0x5d, 0xdb, 0x7c, 0x9c, 0xd1,
+ 0xde, 0xf0, 0xda, 0xcb, 0x14, 0xbc, 0xb0, 0x3a, 0xa0, 0x6f, 0xcc, 0xdd,
+ 0x70, 0xb1, 0x23, 0xcc, 0x15, 0x55, 0x85, 0xee, 0x3a, 0xae, 0x7f, 0xb8,
+ 0x0f, 0x06, 0x05, 0xec, 0x51, 0x6d, 0xbf, 0x43, 0xc4, 0x4f, 0x51, 0x88,
+ 0x64, 0xc9, 0x43, 0x1a, 0xff, 0x30, 0xb7, 0x1b, 0x62, 0x41, 0x7e, 0xc3,
+ 0x7e, 0x15, 0xcb, 0xac, 0xaf, 0x36, 0xb4, 0x5b, 0xdf, 0x6d, 0x37, 0x44,
+ 0x45, 0xe8, 0x00, 0xa4, 0x37, 0x48, 0xc4, 0xcf, 0xee, 0xaf, 0xb4, 0x15,
+ 0x20, 0x9b, 0xb8, 0xd0, 0xf9, 0x15, 0x15, 0xfd, 0xb9, 0x5c, 0xd1, 0x6f,
+ 0x09, 0x22, 0x29, 0xcc, 0x4d, 0xa1, 0x99, 0x66, 0x3a, 0x03, 0x0c, 0xda,
+ 0x26, 0x67, 0xb8, 0x37, 0x98, 0x35, 0x67, 0x61, 0xd1, 0xfe, 0x9a, 0x34,
+ 0xaf, 0xf8, 0x9e, 0x6e, 0xf8, 0xe4, 0x90, 0xcb, 0x4b, 0xa5, 0x9d, 0x6b,
+ 0xdf, 0x32, 0x09, 0x3a, 0xde, 0xb7, 0x8c, 0xfb, 0x31, 0x4c, 0x49, 0x65,
+ 0x66, 0xf2, 0x07, 0x6e, 0x44, 0x6f, 0x99, 0x60, 0x93, 0xf7, 0x03, 0x2f,
+ 0xce, 0xdf, 0x28, 0x5a, 0x1e, 0x0f, 0x24, 0xa2, 0xcf, 0xb2, 0x89, 0xed,
+ 0x2b, 0x73, 0x65, 0x21, 0x5f, 0x7c, 0x7a, 0xc9, 0x29, 0xe2, 0x4c, 0xfc,
+ 0x81, 0xb7, 0x10, 0x6a, 0x4a, 0x9c, 0xc6, 0x29, 0x21, 0xce, 0xc4, 0xc3,
+ 0x3b, 0x03, 0xb0, 0x1f, 0xbe, 0x88, 0x70, 0x95, 0x51, 0x16, 0x66, 0xb8,
+ 0x3c, 0x86, 0x62, 0x32, 0x94, 0x9e, 0x4c, 0x0f, 0x92, 0x76, 0xa2, 0xed,
+ 0xfd, 0x75, 0x60, 0xc4, 0x21, 0x1d, 0x04, 0x36, 0x3b, 0x64, 0xec, 0xac,
+ 0x3e, 0xae, 0x29, 0x05, 0xca, 0x22, 0x5b, 0xd9, 0xcb, 0xa2, 0x1c, 0x79,
+ 0x4a, 0x55, 0x7b, 0x86, 0x6f, 0x02, 0xb4, 0x04, 0xb6, 0x3e, 0xbb, 0xd8,
+ 0x2c, 0x9f, 0x1f, 0x5f, 0x24, 0xec, 0xe3, 0x31, 0xdc, 0x61, 0xad, 0x49,
+ 0xaf, 0x3c, 0xb9, 0xed, 0xc7, 0x88, 0x28, 0x75, 0x95, 0x38, 0x3a, 0x0e,
+ 0x48, 0xea, 0x33, 0xc5, 0xf7, 0xb5, 0xb8, 0xc9, 0xa8, 0x84, 0x91, 0xf8,
+ 0xc7, 0x46, 0x8b, 0x78, 0x68, 0x49, 0x66, 0xaa, 0x09, 0xff, 0xfe, 0xce,
+ 0xfe, 0x3f, 0x28, 0x96, 0xa6, 0x70, 0x1d, 0x7c, 0xac, 0x37, 0xca, 0xc9,
+ 0xf7, 0x3c, 0xad, 0x3e, 0x3d, 0xfd, 0x75, 0x2b, 0x8d, 0x92, 0xc5, 0x24,
+ 0x33, 0xe5, 0xe6, 0xc8, 0x90, 0x73, 0x2c, 0x79, 0xa1, 0x4f, 0x6d, 0x60,
+ 0x81, 0xdf, 0xa0, 0x86, 0x84, 0x3b, 0xb5, 0x00, 0x18, 0x2b, 0x85, 0xe5,
+ 0xf5, 0x39, 0xc2, 0x2f, 0x62, 0xf4, 0x78, 0xa0, 0x76, 0x2c, 0x17, 0x86,
+ 0x69, 0x24, 0x93, 0x4b, 0x58, 0x9a, 0x0e, 0x7d, 0x18, 0xc5, 0x95, 0xc9,
+ 0x24, 0xb2, 0x94, 0xbb, 0xe8, 0x70, 0x2a, 0xc4, 0xdf, 0x70, 0xaa, 0x23,
+ 0xd0, 0x32, 0xa9, 0xdb, 0xd7, 0x22, 0xc9, 0xde, 0x4b, 0x34, 0xa8, 0x21,
+ 0x76, 0xba, 0x48, 0xd4, 0x57, 0x3b, 0xd4, 0x2d, 0x9b, 0x7e, 0xc2, 0x00,
+ 0x4d, 0x4b, 0x6e, 0xbb, 0xac, 0x3a, 0x93, 0x61, 0x33, 0x8b, 0x19, 0xb4,
+ 0x16, 0x8e, 0xaa, 0x08, 0x92, 0x15, 0x97, 0xed, 0x97, 0x4d, 0x95, 0x88,
+ 0x6f, 0xfc, 0xa4, 0xbd, 0x3c, 0x00, 0x2a, 0x03, 0x00, 0x00, 0x7a, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x01, 0x10, 0x10,
+ 0x00, 0x18, 0x00, 0x1d, 0xf8, 0xbf, 0x87, 0xe8, 0xca, 0x17, 0x5c, 0xef,
+ 0xdd, 0xaa, 0xc3, 0x5d, 0xec, 0xc7, 0x9f, 0xe2, 0x1e, 0xa4, 0x99, 0x77,
+ 0x0f, 0x4b, 0xbb, 0x8d, 0x6b, 0xa4, 0xb3, 0xc8, 0x33, 0x14, 0x6d, 0xd7,
+ 0xd1, 0xb0, 0xfa, 0x69, 0xb1, 0x52, 0xa8, 0x88, 0x73, 0xa5, 0xc0, 0x6f,
+ 0xbd, 0x7f, 0x07, 0xa9, 0x86, 0xc9, 0xcd, 0xd2, 0x9d, 0x00, 0x03, 0xbe,
+ 0x3d, 0x1e, 0x08, 0x07, 0xfa, 0x25, 0x09, 0x80, 0xda, 0xb1, 0x59, 0x0e,
+ 0xe6, 0x1c, 0x17, 0x5e, 0x20, 0x01, 0x9d, 0x11, 0xe9, 0xa5, 0xbc, 0x04,
+ 0xe7, 0x28, 0xa2, 0xea, 0xac, 0xcd, 0x0a, 0x9f, 0xa4, 0x80, 0xb9, 0x5b,
+ 0xf6, 0x3e, 0xe4, 0x90, 0x1b, 0xc3, 0xdb, 0x40, 0x0c, 0x9a, 0x00, 0x8e,
+ 0x2f, 0x10, 0xb5, 0x2b, 0xd2, 0xac, 0x80, 0x97, 0x5e, 0x73, 0xee, 0x93,
+ 0x23, 0x73, 0x7c, 0xd5, 0x6e, 0x8a, 0x36, 0x08, 0xb3, 0xa6, 0x02, 0x34,
+ 0xd8, 0x8a, 0x44, 0xd4, 0x59, 0x6a, 0x0d, 0x7f, 0x8d, 0xa8, 0x13, 0xa2,
+ 0xaa, 0x51, 0x46, 0x1a, 0xfa, 0x8e, 0x91, 0x86, 0xa6, 0xc2, 0xea, 0x62,
+ 0x47, 0x24, 0xca, 0x27, 0x58, 0xbe, 0xb5, 0x10, 0x52, 0xba, 0x2f, 0x94,
+ 0x90, 0x65, 0x4f, 0xdb, 0x8d, 0xde, 0x6f, 0x2e, 0x8a, 0xac, 0x95, 0x09,
+ 0xe5, 0x20, 0x89, 0xbe, 0xf5, 0xa8, 0x85, 0xc9, 0x21, 0x3b, 0x5c, 0xc1,
+ 0x08, 0x8d, 0x7f, 0xa4, 0xa1, 0x39, 0x82, 0x8c, 0x23, 0x5f, 0xcb, 0x28,
+ 0xc5, 0x31, 0x02, 0xde, 0x6e, 0x92, 0xa7, 0x16, 0xc0, 0x50, 0xd1, 0xb4,
+ 0x24, 0x62, 0x01, 0x4e, 0xbb, 0xfe, 0xe6, 0x0d, 0x4f, 0xdc, 0x3a, 0xbd,
+ 0xcb, 0x64, 0x5b, 0x2a, 0x34, 0x99, 0x1e, 0x67, 0x52, 0x15, 0x7b, 0x0b,
+ 0x73, 0x79, 0x6c, 0xc9, 0x30, 0x6a, 0xc6, 0xe2, 0x7f, 0xce, 0xb3, 0x32,
+ 0x2f, 0xce, 0x1f, 0x8e, 0xcf, 0x29, 0x9c, 0x93, 0x3a, 0x6a, 0x89, 0x52,
+ 0xc6, 0xbd, 0x60, 0x4c, 0x7f, 0x6b, 0xe2, 0x05, 0x90, 0x14, 0x08, 0x64,
+ 0x24, 0xf7, 0xef, 0xe4, 0x08, 0xe8, 0xd0, 0x23, 0x60, 0x19, 0x11, 0xba,
+ 0x72, 0x16, 0x99, 0x15, 0x17, 0x08, 0xf4, 0xc6, 0x35, 0xbb, 0x19, 0x1c,
+ 0xde, 0xfa, 0x00, 0x9e, 0x2c, 0x4c, 0x5d, 0xbd, 0xe0, 0x12, 0x3f, 0xca,
+ 0xef, 0xfb, 0xf3, 0x7c, 0x4e, 0xc9, 0x10, 0xc9, 0x0e, 0x3f, 0x93, 0x29,
+ 0x17, 0x43, 0x8a, 0x6b, 0x6f, 0xc0, 0xff, 0x66, 0x04, 0x73, 0x60, 0x38,
+ 0x25, 0xbb, 0x73, 0xd9, 0xb7, 0xe7, 0xf4, 0x9b, 0x83, 0x99, 0x32, 0x62,
+ 0x8a, 0x74, 0x7b, 0x4c, 0x33, 0xb1, 0x19, 0x9d, 0xe4, 0xd7, 0x25, 0x48,
+ 0x96, 0x81, 0xc5, 0x67, 0xeb, 0x2e, 0x64, 0x74, 0x60, 0x3d, 0x92, 0x9a,
+ 0x6b, 0x3d, 0xce, 0xf6, 0xb3, 0xf8, 0x4d, 0x1c, 0x35, 0xf2, 0x0a, 0x0a,
+ 0x6a, 0xb4, 0x67, 0x82, 0xba, 0x65, 0x94, 0xdc, 0x8d, 0xb1, 0xff, 0x1c,
+ 0x86, 0x53, 0xc9, 0xb3, 0x6d, 0x8e, 0x41, 0x74, 0xc7, 0x5f, 0x52, 0x9b,
+ 0xb8, 0xd7, 0xb6, 0x49, 0x81, 0x5c, 0xe6, 0xcd, 0x29, 0x94, 0xf9, 0xff,
+ 0xcf, 0x59, 0x29, 0x9c, 0x07, 0x12, 0xe7, 0x0e, 0xa9, 0x30, 0x7f, 0xf6,
+ 0xa9, 0xc2, 0x87, 0x94, 0xfa, 0x7a, 0x75, 0x3f, 0x16, 0xf0, 0xf6, 0xc9,
+ 0x60, 0x29, 0x6a, 0x8d, 0x9c, 0x1a, 0xca, 0xe6, 0x65, 0x70, 0x18, 0xcc,
+ 0x16, 0x8d, 0xd0, 0xc6, 0x09, 0xc7, 0x54, 0xd0, 0x79, 0x07, 0x76, 0x45,
+ 0xfe, 0x04, 0xff, 0xfa, 0x80, 0xdd, 0xfa, 0xde, 0x94, 0xb0, 0x5b, 0x6c,
+ 0xbe, 0xc9, 0x3d, 0x08, 0x4f, 0xb1, 0x36, 0x5b, 0xd5, 0xa6, 0x83, 0x99,
+ 0x99, 0xe3, 0x86, 0xe6, 0x8a, 0xa1, 0xe9, 0xfa, 0xad, 0x7c, 0x76, 0x08,
+ 0xea, 0xe6, 0x40, 0x37, 0x25, 0xcb, 0x25, 0x33, 0x8f, 0x1d, 0x7a, 0xb5,
+ 0x0d, 0xea, 0x9a, 0xe9, 0xa3, 0x4f, 0xbb, 0x71, 0xda, 0x1b, 0xcc, 0xe0,
+ 0x37, 0x98, 0x2f, 0xd6, 0x35, 0x28, 0xef, 0x10, 0x9b, 0xee, 0x29, 0xa0,
+ 0x80, 0xf6, 0x76, 0x0f, 0x74, 0x7d, 0x5f, 0x95, 0x47, 0x56, 0x2b, 0xc1,
+ 0x97, 0x78, 0xdd, 0x52, 0x13, 0x61, 0x35, 0xe5, 0x4c, 0xbe, 0x3a, 0x8c,
+ 0x7a, 0x10, 0x7e, 0x63, 0x0c, 0xe3, 0xaf, 0xd7, 0xdd, 0x78, 0x2e, 0xcf,
+ 0xa4, 0xaf, 0xfc, 0x89, 0xb9, 0xc6, 0xfd, 0x29, 0x54, 0x37, 0x79, 0xfd,
+ 0xf3, 0xe9, 0x5e, 0x69, 0xfc, 0x61, 0x7a, 0xcc, 0x8b, 0x71, 0x8f, 0x21,
+ 0x61, 0xf9, 0xe3, 0x30, 0xda, 0x43, 0x94, 0x41, 0xc4, 0x07, 0x14, 0x8f,
+ 0x9e, 0x9c, 0x1b, 0x7a, 0xcc, 0x1f, 0x88, 0x08, 0x99, 0xbe, 0x10, 0x1a,
+ 0x42, 0x5f, 0x14, 0x9b, 0xae, 0x6b, 0x6f, 0x87, 0x09, 0xe5, 0x45, 0x55,
+ 0xd2, 0x5d, 0x07, 0x09, 0x6f, 0x9d, 0xf8, 0x25, 0xd6, 0xf3, 0x17, 0x3e,
+ 0x30, 0x9f, 0x69, 0x1d, 0x12, 0x32, 0xa9, 0xbf, 0xf2, 0xbc, 0xa2, 0x6c,
+ 0x97, 0x60, 0x3a, 0x98, 0x2e, 0x17, 0x4f, 0x6d, 0x22, 0x3b, 0x57, 0xa0,
+ 0x12, 0x21, 0xb7, 0xdf, 0x5a, 0xdb, 0xb0, 0x2b, 0xd1, 0x73, 0xbf, 0xa5,
+ 0xd6, 0x59, 0x03, 0xf0, 0x09, 0xcd, 0xc3, 0xe1, 0x90, 0x3f, 0xc9, 0x36,
+ 0x19, 0xda, 0xaf, 0x80, 0x75, 0xb8, 0xc6, 0xc7, 0x08, 0x41, 0xdc, 0xa8,
+ 0x42, 0xbc, 0x97, 0x77, 0x82, 0x5f, 0xfc, 0xb4, 0xcc, 0xf1, 0x92, 0x5f,
+ 0x8e, 0x55, 0x7e, 0x77, 0x7a, 0x20, 0x66, 0x5c, 0x04, 0x39, 0x21, 0x5c,
+ 0xe0, 0x2c, 0xf3, 0x93, 0x53, 0x4a, 0x5e, 0x5f, 0x54, 0x9b, 0xf0, 0x4a,
+ 0x57, 0x4f, 0xc7, 0x22, 0x1e, 0x81, 0xa3, 0x27, 0x3c, 0x07, 0x73, 0x58,
+ 0xb1, 0x9a, 0xeb, 0x9d, 0x54, 0xae, 0xd5, 0x2c, 0xea, 0x45, 0x60, 0x64,
+ 0x0c, 0x2a, 0x47, 0x1f, 0xe5, 0x31, 0xe7, 0x48, 0xd6, 0x8d, 0xd6, 0xaf,
+ 0x4d, 0xef, 0x68, 0xdb, 0x5c, 0xc0, 0xcb, 0x9b, 0xc3, 0x7b, 0x7f, 0x8f,
+ 0xb5, 0x7e, 0xd2, 0x24, 0xd9, 0x58, 0x86, 0xd2, 0xda, 0x4b, 0xd3, 0xc0,
+ 0x03, 0x04, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x91, 0x0f, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0xcc, 0x13, 0x7f,
+ 0x35, 0xe2, 0xfa, 0xed, 0x6f, 0x43, 0xa3, 0x06, 0xc0, 0xe9, 0x55, 0x82,
+ 0x20, 0xb8, 0xf5, 0x9d, 0x3d, 0x27, 0xa8, 0x35, 0x42, 0xea, 0x8a, 0x32,
+ 0x7f, 0x1a, 0xfd, 0x6e, 0xd9, 0xb4, 0xc0, 0x34, 0x05, 0x39, 0x5e, 0x08,
+ 0x35, 0x8e, 0x85, 0x49, 0x89, 0xa5, 0x14, 0x64, 0x7c, 0xc0, 0x01, 0xaf,
+ 0x28, 0xed, 0x4f, 0x31, 0xfc, 0xf3, 0xa5, 0x9d, 0x72, 0x6d, 0x0f, 0x74,
+ 0x8d, 0x5b, 0x28, 0xcb, 0x38, 0xf8, 0x1e, 0x00, 0x00, 0x4b, 0xe4, 0xb4,
+ 0x37, 0xcd, 0xb0, 0x46, 0xd9, 0x53, 0x4e, 0x3b, 0xc0, 0x64, 0xc0, 0x08,
+ 0xda, 0xc4, 0xbb, 0xbc, 0xfd, 0x8b, 0x9c, 0x5f, 0x4a, 0x8e, 0xf1, 0xcb,
+ 0xe5, 0xca, 0x5b, 0x5b, 0x5c, 0xb8, 0x4a, 0x86, 0xe3, 0xad, 0xcb, 0x30,
+ 0x74, 0x0b, 0x5f, 0x51, 0x29, 0xad, 0x00, 0x97, 0x5e, 0x73, 0xee, 0xb2,
+ 0xe3, 0x73, 0xb4, 0xa8, 0xa3, 0x60, 0x8b, 0x3a, 0x60, 0x23, 0x55, 0x43,
+ 0x2b, 0x57, 0x95, 0x04, 0x5c, 0x5a, 0x5a, 0x02, 0x06, 0x4b, 0xe4, 0x2f,
+ 0x59, 0x66, 0xe2, 0x66, 0xa9, 0x4a, 0x54, 0x50, 0x29, 0xba, 0xce, 0xb1,
+ 0xfa, 0x3b, 0x1e, 0x6a, 0x0b, 0x8f, 0xa0, 0xca, 0x4c, 0x36, 0x82, 0x83,
+ 0xbd, 0x6d, 0x8d, 0xd8, 0xdd, 0xe9, 0xcb, 0xf8, 0xe2, 0xe4, 0x50, 0x2d,
+ 0xb3, 0xd1, 0x10, 0xc9, 0x4d, 0x89, 0xa4, 0x75, 0x2d, 0xf9, 0x4b, 0xca,
+ 0xfd, 0xcf, 0xb7, 0x5d, 0x6d, 0xd9, 0x15, 0x3f, 0x55, 0x3f, 0x0a, 0x4c,
+ 0xc8, 0xeb, 0x14, 0x0b, 0x45, 0x7c, 0x97, 0x02, 0xfe, 0x65, 0xd9, 0x8b,
+ 0xa5, 0x40, 0x8c, 0x19, 0xea, 0x37, 0x35, 0x98, 0x87, 0xed, 0x81, 0x0d,
+ 0xdd, 0x27, 0x04, 0x7c, 0xc1, 0xdf, 0xd6, 0x47, 0xb0, 0xc3, 0x8f, 0xa0,
+ 0xd0, 0x50, 0x2b, 0x94, 0x87, 0xad, 0xdf, 0x77, 0xff, 0x71, 0x1a, 0x87,
+ 0x64, 0x8d, 0xba, 0x5b, 0xcb, 0x55, 0xfd, 0xb8, 0xf4, 0x80, 0xa0, 0xb8,
+ 0xbc, 0x9f, 0xcf, 0x6f, 0x93, 0x6a, 0xa6, 0x5d, 0x75, 0xa3, 0xf2, 0x9a,
+ 0x52, 0xc0, 0x36, 0xf3, 0x70, 0x3a, 0x9c, 0xc7, 0x24, 0x3e, 0x8c, 0x52,
+ 0xe8, 0x12, 0xf4, 0xfc, 0x7f, 0x71, 0x66, 0x97, 0x81, 0x70, 0x2e, 0x6d,
+ 0xb4, 0x43, 0x53, 0x1e, 0xf9, 0xfb, 0xe4, 0x72, 0x90, 0x5d, 0x55, 0xb2,
+ 0xcb, 0x1e, 0x45, 0x75, 0x2b, 0xce, 0x6b, 0xcf, 0xc5, 0xeb, 0x2b, 0x04,
+ 0x0d, 0xdf, 0x50, 0x8f, 0x72, 0xd7, 0x3d, 0x06, 0x47, 0xba, 0xfd, 0xfa,
+ 0xb7, 0x09, 0x1e, 0xe0, 0x36, 0x77, 0x70, 0xf5, 0xd7, 0xea, 0x43, 0xd9,
+ 0x49, 0x74, 0xa6, 0x81, 0x99, 0xee, 0x4a, 0x55, 0xfe, 0x7b, 0x8d, 0x2c,
+ 0x94, 0x83, 0x0c, 0x17, 0xe1, 0x2d, 0xd0, 0x2f, 0xab, 0xcf, 0x35, 0xb4,
+ 0xff, 0xe6, 0x51, 0xe5, 0x71, 0x78, 0xa3, 0xca, 0x02, 0xe1, 0xce, 0x60,
+ 0x37, 0xa0, 0xb5, 0xfa, 0x8f, 0xa9, 0xa9, 0xde, 0x93, 0x45, 0x42, 0x22,
+ 0x89, 0xd1, 0xad, 0xbc, 0xb3, 0x2c, 0x45, 0x32, 0x0f, 0xae, 0x3b, 0xe4,
+ 0xfe, 0xb0, 0x7e, 0xf4, 0x74, 0x19, 0x36, 0x96, 0x82, 0x30, 0x4d, 0xd3,
+ 0xa9, 0xcc, 0x88, 0x8b, 0x87, 0xbe, 0x65, 0xad, 0x2c, 0xe5, 0x0c, 0x17,
+ 0x3a, 0xe6, 0x02, 0x53, 0x88, 0x69, 0xef, 0x8c, 0x37, 0xbc, 0x6a, 0x85,
+ 0x4e, 0x39, 0x90, 0x03, 0x3d, 0x08, 0x0f, 0xee, 0x71, 0x25, 0x5d, 0x9f,
+ 0xfe, 0x46, 0x3b, 0x0a, 0x13, 0x56, 0x0d, 0xa4, 0x84, 0x9e, 0x11, 0x43,
+ 0xcd, 0x69, 0x8b, 0xff, 0xcb, 0xa8, 0xc1, 0xdd, 0xaa, 0xeb, 0xc7, 0x2b,
+ 0x0f, 0x4a, 0x10, 0xe7, 0xff, 0x49, 0x06, 0x93, 0x61, 0xe6, 0x72, 0xef,
+ 0xe7, 0xc6, 0x4a, 0xfa, 0x50, 0xe4, 0xc0, 0x85, 0x06, 0x91, 0x6a, 0x77,
+ 0xaf, 0xcf, 0xae, 0x2b, 0xc9, 0x96, 0x3b, 0x12, 0xe8, 0x7e, 0x07, 0x5c,
+ 0x27, 0x22, 0xd0, 0x09, 0x27, 0xa0, 0x46, 0x0c, 0xfe, 0xb5, 0x43, 0x3b,
+ 0x1b, 0x71, 0x37, 0x27, 0x86, 0x0d, 0xad, 0x05, 0x17, 0x33, 0x25, 0x49,
+ 0xb8, 0xd5, 0xf2, 0x96, 0x47, 0x6d, 0x9f, 0x2d, 0x0f, 0x87, 0xb6, 0xe7,
+ 0xbf, 0xe9, 0x3b, 0x10, 0x35, 0xdd, 0x46, 0xe7, 0x03, 0xde, 0x31, 0x5a,
+ 0x68, 0x39, 0x02, 0xb3, 0x26, 0x9b, 0xf5, 0x00, 0xba, 0x94, 0x51, 0x68,
+ 0x34, 0xf3, 0x68, 0xdf, 0x06, 0x4d, 0xf9, 0xfc, 0x17, 0xec, 0x7c, 0xa3,
+ 0x99, 0x00, 0x5f, 0x9c, 0xd9, 0x23, 0xc3, 0x5a, 0xff, 0x96, 0x64, 0x08,
+ 0x4f, 0x82, 0x4c, 0xfa, 0x27, 0x02, 0xf3, 0x1f, 0x6f, 0xc0, 0xd7, 0xa8,
+ 0x21, 0x81, 0x4a, 0x75, 0xad, 0xea, 0x7d, 0x96, 0x1a, 0xa7, 0x95, 0x08,
+ 0xe8, 0x9f, 0x6a, 0x34, 0x86, 0xcb, 0xf2, 0x15, 0xaa, 0xb3, 0x1c, 0x56,
+ 0x4b, 0xe7, 0xb5, 0x23, 0x81, 0x9d, 0x9b, 0xca, 0xf2, 0xf8, 0xe8, 0x2e,
+ 0x41, 0x92, 0x6c, 0x3a, 0xfa, 0xc9, 0x3a, 0x30, 0x2f, 0xd2, 0x08, 0xc4,
+ 0xe6, 0x80, 0xd1, 0x59, 0xf7, 0x7d, 0x76, 0xa7, 0x33, 0xa8, 0xdc, 0x9e,
+ 0xde, 0x6e, 0x00, 0xa4, 0x69, 0xb4, 0x6c, 0x54, 0x4f, 0x18, 0xcb, 0x2a,
+ 0xdf, 0x33, 0xa5, 0x0a, 0x3d, 0x84, 0xa2, 0x7b, 0xca, 0xd3, 0xf8, 0xb1,
+ 0xe7, 0x1c, 0x9d, 0x5d, 0xa2, 0x70, 0x27, 0x8b, 0x8f, 0x26, 0x81, 0x43,
+ 0xc7, 0xab, 0x31, 0x95, 0x7a, 0x78, 0x83, 0x04, 0xf5, 0x71, 0x6b, 0x64,
+ 0xfc, 0xd9, 0x68, 0x33, 0x63, 0x97, 0xc2, 0x91, 0x16, 0x06, 0xad, 0x2b,
+ 0x96, 0xfe, 0xac, 0xcc, 0xa1, 0xf5, 0x8b, 0x01, 0x01, 0xe5, 0xcc, 0x6b,
+ 0xa7, 0x48, 0x2c, 0x58, 0x66, 0x2a, 0xd1, 0x8e, 0xa7, 0x3b, 0xbf, 0x91,
+ 0xfb, 0x22, 0x8b, 0xc3, 0x9f, 0x53, 0x1f, 0x80, 0x35, 0xe7, 0x03, 0x8a,
+ 0x2b, 0xd3, 0xfd, 0xf6, 0x29, 0x5c, 0x09, 0x9e, 0x61, 0x3b, 0x73, 0xd3,
+ 0x2a, 0x36, 0x07, 0xd6, 0x13, 0xb3, 0xe7, 0x4a, 0xd8, 0x08, 0x76, 0x74,
+ 0xe2, 0x2c, 0x1e, 0x7d, 0xd7, 0x48, 0xec, 0xa1, 0x08, 0x97, 0xf3, 0x20,
+ 0xd2, 0x44, 0xec, 0x96, 0xce, 0xa0, 0x95, 0x3f, 0xaa, 0x49, 0xdf, 0x92,
+ 0x49, 0x05, 0x47, 0xb8, 0xdf, 0x04, 0xe2, 0x92, 0xfd, 0xc4, 0x7c, 0x52,
+ 0x2b, 0x8f, 0x82, 0x02, 0x10, 0xa3, 0xe6, 0x1c, 0x8c, 0x9d, 0x7e, 0x55,
+ 0x31, 0xfd, 0x16, 0x36, 0x8a, 0x91, 0xc8, 0x86, 0xcc, 0x9e, 0x5b, 0x53,
+ 0x36, 0x9e, 0x7c, 0xc2, 0x21, 0x01, 0xd6, 0xab, 0x46, 0x4f, 0xd1, 0xea,
+ 0x41, 0x3d, 0xfb, 0x92, 0x25, 0xbd, 0xec, 0xa1, 0xbd, 0x77, 0x42, 0x89,
+ 0xd1, 0x55, 0x0c, 0x55, 0x74, 0x39, 0xc4, 0xb8, 0x2b, 0x2a, 0xd9, 0x00,
+ 0xa7, 0xb8, 0xf6, 0xad, 0x6c, 0xa2, 0x2d, 0x60, 0x27, 0x1f, 0xac, 0x1d,
+ 0x2d, 0x9c, 0x1c, 0xd3, 0x9e, 0x85, 0xe4, 0xc8, 0xce, 0x4c, 0x9e, 0x5e,
+ 0xf9, 0x1d, 0x3a, 0x6a, 0xa1, 0x9b, 0xb4, 0xb5, 0x92, 0x24, 0x72, 0xa8,
+ 0x50, 0xe7, 0x2b, 0x2e, 0xef, 0x99, 0x01, 0x72, 0xbd, 0xf8, 0x1f, 0xbf,
+ 0xd3, 0x24, 0x5f, 0x45, 0x3d, 0x7e, 0x66, 0xfa, 0x92, 0x2f, 0x43, 0xd1,
+ 0x88, 0xf8, 0x27, 0x51, 0x4d, 0x38, 0x3c, 0xef, 0xdf, 0xa5, 0x74, 0x4b,
+ 0xc9, 0x21, 0x67, 0x82, 0x04, 0xa8, 0x23, 0x2e, 0x2c, 0xe6, 0x4a, 0x05,
+ 0x7b, 0xdd, 0xb4, 0xc8, 0x6c, 0x83, 0x37, 0xcf, 0x44, 0x08, 0xe9, 0xec,
+ 0xb8, 0x81, 0x3d, 0xb0, 0x6f, 0x31, 0x34, 0x08, 0x0c, 0x1d, 0xec, 0xc5,
+ 0xb1, 0x07, 0xc6, 0x2a, 0x7d, 0x4a, 0x4e, 0x97, 0xed, 0x97, 0x4d, 0x95,
+ 0x88, 0x6f, 0xfc, 0xa4, 0xbd, 0x3c, 0x00, 0x16, 0x03, 0x00, 0x00, 0x7c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x10, 0x00, 0x00, 0x10,
+ 0x10, 0x14, 0x6c, 0xb9, 0xbf, 0x3f, 0xde, 0x20, 0x2b, 0x7d, 0xff, 0x8f,
+ 0x94, 0x80, 0x3a, 0xa3, 0x89, 0xdc, 0x47, 0x62, 0x85, 0x2b, 0x43, 0x84,
+ 0x16, 0x8c, 0x07, 0x86, 0x1a, 0xd3, 0x8a, 0xf0, 0x2d, 0xc8, 0x47, 0x0b,
+ 0xbf, 0xff, 0xb9, 0xb8, 0x9d, 0xe2, 0x8d, 0x9b, 0x58, 0x69, 0x09, 0x67,
+ 0x56, 0xd8, 0x5a, 0x57, 0x63, 0xed, 0x51, 0xd8, 0xcf, 0x02, 0xe5, 0xfe,
+ 0xce, 0x39, 0xb4, 0xfa, 0x86, 0x5a, 0x1a, 0xc3, 0xd7, 0x8c, 0x7a, 0x7f,
+ 0xe8, 0xdb, 0x88, 0x14, 0xfc, 0xb9, 0x3e, 0xdf, 0x59, 0x02, 0xab, 0x9b,
+ 0x51, 0xe5, 0x4f, 0x17, 0x6f, 0xb6, 0x92, 0x68, 0x93, 0xf5, 0x1a, 0x77,
+ 0xc3, 0xb8, 0x45, 0x05, 0xac, 0x07, 0x22, 0x15, 0x3e, 0x52, 0xa0, 0x8c,
+ 0x20, 0x79, 0x91, 0x0b, 0x1f, 0x67, 0xdf, 0x67, 0x32, 0x31, 0x64, 0xf5,
+ 0x5d, 0x4a, 0xa1, 0x4c, 0x06, 0xd0, 0x4d, 0x46, 0x20, 0x24, 0xa2, 0x40,
+ 0x97, 0x5c, 0x15, 0x6d, 0x8a, 0x94, 0x1d, 0x57, 0x6d, 0x7b, 0xfd, 0xb1,
+ 0x3f, 0xb0, 0x89, 0xb3, 0x9f, 0x41, 0xa6, 0x5a, 0x1c, 0x20, 0xaa, 0x06,
+ 0x5b, 0x61, 0x5b, 0x88, 0xad, 0x07, 0x2d, 0x02, 0x84, 0xda, 0xa0, 0x5a,
+ 0xe4, 0x40, 0x55, 0x38, 0x18, 0xa0, 0x3c, 0x0e, 0xfc, 0x87, 0xcb, 0xfb,
+ 0x65, 0x03, 0x19, 0x45, 0xd3, 0xba, 0x9c, 0x11, 0x67, 0x0f, 0xc1, 0xc2,
+ 0x7d, 0x4a, 0x55, 0x96, 0xa6, 0xbf, 0x5f, 0x81, 0x02, 0xa4, 0xfd, 0xd4,
+ 0xbe, 0xb4, 0xc2, 0x41, 0x7d, 0x94, 0x98, 0xaa, 0x8e, 0x00, 0x79, 0x8a,
+ 0x2e, 0x31, 0xc5, 0x5b, 0x88, 0x71, 0xf0, 0xad, 0x50, 0x1b, 0x88, 0x81,
+ 0xef, 0xd1, 0xb3, 0xad, 0x8d, 0xf5, 0x27, 0x5b, 0x2b, 0x0c, 0x38, 0xd0,
+ 0xe0, 0xae, 0x9f, 0xe0, 0x0f, 0xa4, 0x89, 0xeb, 0x8e, 0x73, 0x68, 0xf0,
+ 0x07, 0x22, 0xad, 0x6d, 0x35, 0x0e, 0x51, 0x31, 0x36, 0x1e, 0xa5, 0x72,
+ 0x6a, 0xc2, 0x83, 0xd6, 0x71, 0x5d, 0xee, 0x97, 0xf4, 0x7e, 0xc9, 0xa6,
+ 0xe0, 0xec, 0x67, 0x1c, 0x99, 0xb7, 0x61, 0x19, 0x4f, 0xdc, 0x33, 0xec,
+ 0x71, 0x54, 0x74, 0xb3, 0x74, 0x1b, 0xa4, 0xdd, 0xd4, 0x29, 0x06, 0x11,
+ 0xbb, 0x11, 0x98, 0x96, 0x5a, 0x57, 0x66, 0xc4, 0xaf, 0x92, 0xd4, 0x1f,
+ 0xbe, 0xea, 0x1a, 0x17, 0x1c, 0xf4, 0xae, 0x1c, 0x6f, 0xb2, 0x86, 0xde,
+ 0x77, 0x1a, 0x0f, 0xa6, 0x10, 0x88, 0xc1, 0x8a, 0x77, 0x8a, 0x24, 0x3c,
+ 0x9e, 0xff, 0x72, 0x0a, 0x73, 0x8f, 0x67, 0x5f, 0x7f, 0xb4, 0x75, 0xb8,
+ 0x9b, 0xef, 0x4a, 0xcd, 0x45, 0xce, 0x32, 0x1f, 0xf7, 0xf3, 0x1f, 0x67,
+ 0xbb, 0x1a, 0x41, 0x07, 0x6e, 0xfe, 0x5f, 0xe6, 0x18, 0xe6, 0xc4, 0x41,
+ 0xb5, 0xea, 0xd5, 0x84, 0x0a, 0x36, 0x8c, 0xb7, 0xce, 0x68, 0x2c, 0x0e,
+ 0x4b, 0xdd, 0x56, 0x74, 0xf8, 0x3d, 0xa8, 0xf7, 0x21, 0x60, 0xa7, 0xf8,
+ 0x62, 0x0a, 0x33, 0x1b, 0x1f, 0x36, 0x76, 0xec, 0x19, 0x89, 0xb8, 0x54,
+ 0xae, 0x5c, 0xf0, 0xb0, 0x55, 0xe4, 0xf0, 0xcc, 0xc3, 0x00, 0x24, 0x82,
+ 0x46, 0xc5, 0x41, 0x8e, 0x56, 0x44, 0x10, 0x18, 0xd7, 0xfd, 0x17, 0x81,
+ 0xbb, 0x4d, 0x85, 0x27, 0x4d, 0x95, 0xb0, 0x9a, 0x6a, 0x04, 0xc2, 0x65,
+ 0x1c, 0xd8, 0xdb, 0xa7, 0xb4, 0xca, 0x18, 0xa1, 0x82, 0xc1, 0x2d, 0xec,
+ 0x3f, 0x34, 0x14, 0xd9, 0x46, 0xc8, 0xba, 0x38, 0xcd, 0x48, 0x09, 0x6b,
+ 0x71, 0xe3, 0xcb, 0x5d, 0x82, 0x08, 0x4e, 0x1a, 0x48, 0x43, 0xbd, 0x40,
+ 0xe3, 0x84, 0xfd, 0xf4, 0xf1, 0xe3, 0xd6, 0x73, 0xa7, 0x95, 0x9d, 0xfa,
+ 0xc0, 0x5d, 0x61, 0xc4, 0x70, 0x3f, 0x3f, 0x86, 0x3f, 0xb4, 0xf2, 0xdd,
+ 0x1d, 0x42, 0x4b, 0xa7, 0x90, 0x1b, 0xa4, 0xc0, 0x8b, 0xe1, 0xce, 0x59,
+ 0xf7, 0xb0, 0x8e, 0x36, 0xc9, 0xce, 0xc6, 0x59, 0x34, 0x94, 0x67, 0x7c,
+ 0x98, 0xa1, 0xeb, 0x31, 0xc2, 0x9c, 0x2b, 0x0e, 0x2d, 0x10, 0x9a, 0x62,
+ 0x78, 0x2c, 0x96, 0x9b, 0x68, 0xcc, 0x96, 0x2c, 0x8a, 0x2f, 0x0c, 0x61,
+ 0xbe, 0x0d, 0x57, 0xcf, 0x62, 0xb2, 0x8e, 0x87, 0xa3, 0xc7, 0x6e, 0xf1,
+ 0xb7, 0xb1, 0x16, 0x32, 0x3e, 0x34, 0xc5, 0x52, 0x40, 0x7a, 0xc4, 0x6d,
+ 0x75, 0x19, 0x5e, 0x14, 0xf7, 0x6b, 0xe1, 0xbe, 0x12, 0x2f, 0x3b, 0xf7,
+ 0x64, 0x3a, 0xae, 0x35, 0xf4, 0x37, 0x11, 0x44, 0x9f, 0x77, 0x12, 0x61,
+ 0x00, 0xde, 0x1a, 0xfd, 0x0b, 0xd9, 0xf9, 0x1f, 0xf4, 0x3c, 0x02, 0x77,
+ 0xaa, 0xa0, 0x89, 0x52, 0x26, 0x8a, 0x0e, 0x8d, 0xa9, 0x4f, 0xe5, 0xf1,
+ 0x55, 0x3c, 0x73, 0x0a, 0x4a, 0xba, 0x4e, 0x5f, 0x89, 0x2c, 0x59, 0x27,
+ 0x7c, 0xf8, 0x05, 0x23, 0x3f, 0x4b, 0x52, 0x52, 0x27, 0xb8, 0xd4, 0x5a,
+ 0xe5, 0x21, 0x14, 0xe8, 0xec, 0xce, 0x58, 0x5c, 0x0a, 0x59, 0x29, 0x7a,
+ 0x80, 0x43, 0xa5, 0x23, 0xd1, 0xe0, 0xff, 0x4a, 0xbb, 0xa0, 0x3b, 0xe1,
+ 0x55, 0x93, 0x8e, 0x44, 0x80, 0xf3, 0x9b, 0x42, 0x1e, 0x77, 0x57, 0x33,
+ 0x49, 0xd9, 0xb7, 0x0b, 0x30, 0x63, 0xd3, 0x73, 0x09, 0xb5, 0xbd, 0xa7,
+ 0x4d, 0x2c, 0x41, 0xd7, 0xd6, 0x70, 0x87, 0x1d, 0x4f, 0x6b, 0xab, 0xb0,
+ 0xfc, 0x34, 0x91, 0x36, 0x04, 0x44, 0xb9, 0xed, 0xb0, 0x71, 0x18, 0x8a,
+ 0xb2, 0xd5, 0xf9, 0x40, 0xa6, 0xfa, 0x30, 0x6d, 0xee, 0x30, 0xb7, 0x57,
+ 0x04, 0xd8, 0x7d, 0x7b, 0xa2, 0xc7, 0x1f, 0x65, 0x69, 0x2c, 0x16, 0x2b,
+ 0x19, 0x29, 0x2d, 0x0a, 0x0a, 0x58, 0xfc, 0xb4, 0xfa, 0x86, 0x74, 0x22,
+ 0x80, 0x6a, 0x52, 0x7f, 0xb5, 0xa6, 0x30, 0x6d, 0x7a, 0x5a, 0x01, 0xec,
+ 0xdb, 0x3b, 0xa0, 0xec, 0xea, 0xda, 0x07, 0x2f, 0x9f, 0xcd, 0xc7, 0x25,
+ 0x5b, 0x9c, 0x92, 0x26, 0x00, 0x90, 0x06, 0x00, 0x00, 0x7d, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x40, 0x00, 0x33, 0x11, 0xc8, 0x00,
+ 0x1b, 0x80, 0x6f, 0x55, 0x00, 0x6a, 0x83, 0x74, 0xc5, 0xf1, 0x87, 0x8f,
+ 0xff, 0xbe, 0xa7, 0x9f, 0xff, 0xf0, 0xfc, 0x91, 0xf5, 0xa7, 0xff, 0xff,
+ 0x2a, 0xdf, 0x94, 0xbf, 0xe7, 0xfe, 0xbf, 0xd6, 0x9e, 0xcf, 0x3d, 0x22,
+ 0x3f, 0xd9, 0xff, 0xff, 0xf6, 0x96, 0x5f, 0x9f, 0x30, 0xff, 0xff, 0xf9,
+ 0x51, 0xf7, 0xff, 0xbb, 0xff, 0x9b, 0xff, 0xbb, 0x97, 0xb3, 0x5f, 0xf8,
+ 0x2f, 0xfb, 0x3e, 0xb3, 0x7f, 0xfd, 0x7a, 0x8c, 0xfb, 0xf3, 0xda, 0x3a,
+ 0x07, 0x7e, 0xf3, 0x2e, 0x13, 0x7f, 0x06, 0x66, 0x1b, 0x3d, 0xc1, 0xce,
+ 0x4d, 0x02, 0x6f, 0x2d, 0x57, 0xa2, 0xff, 0xec, 0xd1, 0x4a, 0x36, 0x95,
+ 0x01, 0x84, 0x89, 0x5e, 0xfa, 0xbe, 0x9b, 0x8f, 0x25, 0x76, 0xa4, 0x0d,
+ 0xb3, 0x58, 0x40, 0x4f, 0x26, 0x2f, 0xea, 0x6e, 0xb5, 0x80, 0xb4, 0x89,
+ 0x51, 0x38, 0xba, 0x19, 0x9a, 0xdb, 0xde, 0x2d, 0xf7, 0x30, 0x74, 0x16,
+ 0x3b, 0x85, 0x63, 0x79, 0x5c, 0x77, 0xbc, 0x3d, 0x34, 0x41, 0xd3, 0x84,
+ 0x52, 0x3a, 0x17, 0xcd, 0x98, 0xca, 0xdc, 0xaf, 0x1a, 0x48, 0x14, 0x73,
+ 0x2e, 0xf1, 0xb3, 0x12, 0xbd, 0x6a, 0xd3, 0x54, 0x2f, 0x91, 0x88, 0x43,
+ 0x13, 0xb9, 0x28, 0xe7, 0xa8, 0xe4, 0xae, 0x38, 0x87, 0x19, 0xf0, 0x1c,
+ 0xfa, 0xb7, 0x28, 0x9c, 0xf4, 0xda, 0x81, 0x17, 0x1e, 0x6f, 0xc1, 0xeb,
+ 0x00, 0x18, 0x5f, 0x4b, 0xe0, 0x02, 0x3d, 0x4b, 0xfe, 0xe6, 0xaa, 0x7b,
+ 0x10, 0x43, 0x3a, 0x6e, 0x30, 0xe3, 0x54, 0x4b, 0x76, 0x40, 0xe1, 0xe9,
+ 0xa8, 0xc7, 0xfb, 0xf8, 0xe7, 0xed, 0x01, 0x25, 0xc2, 0x1f, 0x6e, 0xd4,
+ 0x0f, 0x4f, 0x76, 0xd0, 0x2f, 0x77, 0xa1, 0xc9, 0x50, 0xfd, 0x03, 0xd0,
+ 0x75, 0x5b, 0x2f, 0x1c, 0x46, 0x27, 0x57, 0x84, 0x51, 0x66, 0x84, 0x6c,
+ 0x96, 0x40, 0x69, 0xb0, 0x54, 0x78, 0x2f, 0xa9, 0x6c, 0x0e, 0x60, 0xf1,
+ 0x41, 0x5a, 0x53, 0xcc, 0x15, 0x4e, 0xcd, 0x78, 0xfc, 0x0a, 0xf5, 0x7c,
+ 0x02, 0x9c, 0x9f, 0x83, 0xaf, 0x84, 0x79, 0xd4, 0x2d, 0x6f, 0x1d, 0xd9,
+ 0x53, 0xf4, 0xfb, 0x21, 0xf0, 0x0e, 0x4c, 0xdd, 0x21, 0xc8, 0x36, 0x97,
+ 0x53, 0x84, 0x0b, 0x68, 0xcd, 0xaf, 0x33, 0xfb, 0xfb, 0xb3, 0x63, 0x62,
+ 0x67, 0xf3, 0xfc, 0xd4, 0xc1, 0xa4, 0x86, 0x2f, 0x4e, 0x25, 0x7b, 0x0b,
+ 0x07, 0x59, 0x49, 0x81, 0xf5, 0xec, 0xb7, 0x18, 0xc2, 0x53, 0xb6, 0x1d,
+ 0xfb, 0xc8, 0x17, 0x5b, 0xcd, 0xa2, 0x71, 0xf9, 0xe9, 0x60, 0xef, 0xac,
+ 0x9a, 0x2c, 0x15, 0xad, 0xb3, 0x8e, 0x30, 0xe7, 0x61, 0xce, 0x03, 0x17,
+ 0x72, 0x63, 0xd4, 0x08, 0xa1, 0x2b, 0x69, 0x6f, 0x88, 0xa7, 0x49, 0x54,
+ 0x17, 0x35, 0x3b, 0x4e, 0x93, 0x85, 0x57, 0x14, 0x4c, 0x7e, 0x3a, 0x37,
+ 0xa9, 0x63, 0x7e, 0x24, 0x2a, 0x8b, 0x41, 0xbd, 0xca, 0xab, 0xad, 0x87,
+ 0x10, 0x4e, 0x28, 0x75, 0x9c, 0x19, 0x40, 0x79, 0xb1, 0x4e, 0xab, 0x8c,
+ 0xf5, 0x0c, 0x90, 0x7f, 0x62, 0x71, 0x74, 0x9a, 0x11, 0x2c, 0x15, 0x49,
+ 0x8b, 0xa4, 0xd0, 0xe0, 0x37, 0xf5, 0x87, 0xe9, 0x61, 0xd9, 0xc7, 0xa0,
+ 0x51, 0xfc, 0x6b, 0xd6, 0x11, 0x03, 0xca, 0x46, 0xd1, 0x88, 0x3f, 0x49,
+ 0xf5, 0xf0, 0xb6, 0xcb, 0xd0, 0xbe, 0x28, 0x95, 0x40, 0x01, 0x96, 0x30,
+ 0x00, 0x03, 0x2f, 0xb8, 0x00, 0x10, 0x96, 0x0c, 0x18, 0x30, 0x65, 0x05,
+ 0x10, 0x00, 0x9e, 0x42, 0x00, 0x00, 0x47, 0xa2, 0x00, 0x01, 0x62, 0x08,
+ 0x00, 0x3c, 0xfc, 0xc0, 0x04, 0x26, 0x08, 0x00, 0x48, 0x41, 0x00, 0x04,
+ 0xdc, 0x94, 0x00, 0x0f, 0x94, 0xc8, 0x00, 0x1c, 0xa3, 0x90, 0x7a, 0x20,
+ 0x0a, 0x40, 0x03, 0x4a, 0x3c, 0xc0, 0x2f, 0x55, 0xd3, 0xf2, 0x62, 0x4d,
+ 0x83, 0x94, 0x5c, 0x84, 0x74, 0xa1, 0xb7, 0xcd, 0xa7, 0x85, 0xf7, 0x96,
+ 0x07, 0x42, 0x92, 0xd6, 0x0a, 0x5a, 0x2b, 0xdd, 0xfe, 0x90, 0xf1, 0xd9,
+ 0xf7, 0xb0, 0x67, 0x08, 0x74, 0x66, 0xa4, 0x7c, 0x02, 0xbc, 0xaf, 0x46,
+ 0xdd, 0xd8, 0x27, 0xb2, 0x0c, 0xa9, 0x68, 0xcc, 0xac, 0xe9, 0x7c, 0x8c,
+ 0x2b, 0x0b, 0xb8, 0x7d, 0xa4, 0x57, 0x35, 0x6b, 0x72, 0x31, 0x08, 0x86,
+ 0x95, 0x5d, 0x56, 0x61, 0x4f, 0xfd, 0xf0, 0xee, 0x6a, 0xd8, 0x31, 0xcd,
+ 0x81, 0x8a, 0x01, 0x61, 0x70, 0x1f, 0x3c, 0xd8, 0x9f, 0x7f, 0x9c, 0xc6,
+ 0xd9, 0x76, 0xe6, 0xe0, 0xe1, 0xfb, 0x0b, 0xc0, 0x51, 0xf8, 0x69, 0x6a,
+ 0xd4, 0x84, 0xd6, 0xcf, 0xb5, 0x8f, 0x48, 0x90, 0x07, 0xdf, 0x89, 0x55,
+ 0xda, 0xad, 0x82, 0xf2, 0x05, 0x6a, 0x9e, 0x9b, 0x2f, 0x1b, 0x2a, 0x09,
+ 0x27, 0x50, 0xf1, 0x81, 0xc6, 0x29, 0x04, 0x5b, 0x83, 0xfe, 0x07, 0xc8,
+ 0x5e, 0xce, 0x53, 0x71, 0x57, 0x2c, 0xc6, 0x75, 0x55, 0x48, 0x1d, 0xdb,
+ 0x3a, 0xfa, 0xcb, 0x07, 0x6c, 0x44, 0x0b, 0xfe, 0xae, 0x8d, 0x49, 0x72,
+ 0xce, 0x11, 0xd6, 0xc5, 0x8b, 0x92, 0xe6, 0x66, 0x8e, 0xb2, 0x0f, 0xb2,
+ 0x4f, 0xde, 0xad, 0x1f, 0x4e, 0x16, 0x90, 0x2d, 0x46, 0x1a, 0x6c, 0x40,
+ 0x6a, 0x6f, 0x60, 0x4b, 0xa1, 0xe2, 0x1f, 0xe4, 0x10, 0xf2, 0x84, 0x27,
+ 0xb7, 0x29, 0xc9, 0x60, 0x6c, 0xa8, 0x26, 0x9a, 0x31, 0xef, 0xbd, 0x62,
+ 0x2e, 0x3a, 0xc7, 0x63, 0xfb, 0xec, 0x2f, 0x8b, 0xa4, 0x39, 0x0c, 0xe7,
+ 0x3b, 0x68, 0xcd, 0x23, 0xf7, 0x13, 0x17, 0x94, 0xd7, 0x09, 0x9e, 0xea,
+ 0xe1, 0x4b, 0x4a, 0x86, 0xca, 0x2d, 0x6a, 0x79, 0xdb, 0xff, 0x11, 0x3f,
+ 0x59, 0x7b, 0xf1, 0x87, 0x8e, 0xa1, 0x5d, 0xe1, 0x68, 0x61, 0x57, 0x3f,
+ 0xf8, 0xc8, 0x5e, 0x00, 0x5d, 0x01, 0x91, 0xfb, 0x3e, 0x58, 0xf8, 0x63,
+ 0x2b, 0x48, 0x9e, 0xad, 0x0a, 0xe9, 0x85, 0xa1, 0x85, 0x5c, 0xdd, 0xe8,
+ 0x8c, 0x9e, 0x6a, 0xf3, 0x5d, 0xb0, 0xc5, 0xd5, 0x0f, 0x62, 0x03, 0xef,
+ 0x46, 0x1e, 0xa2, 0xd3, 0x48, 0xdc, 0x95, 0x6a, 0xcd, 0xb0, 0x35, 0x5c,
+ 0x72, 0x88, 0x70, 0x10, 0x74, 0x38, 0xe0, 0x0b, 0x07, 0xe6, 0x9e, 0x53,
+ 0xd8, 0xdb, 0x00, 0x47, 0xd4, 0xe9, 0x90, 0xe2, 0xc7, 0x0c, 0x70, 0x0b,
+ 0x96, 0xb5, 0x31, 0x2e, 0x8f, 0xfd, 0x32, 0x5d, 0xb7, 0xfe, 0x22, 0x7e,
+ 0xb2, 0xf7, 0xe3, 0x0e, 0xf9, 0x3f, 0x17, 0x3b, 0x04, 0x2b, 0xf3, 0x2e,
+ 0xdf, 0xdc, 0xcf, 0xdc, 0xcf, 0xec, 0x35, 0x52, 0x3c, 0x1f, 0x47, 0x0d,
+ 0x31, 0x4f, 0x56, 0xf7, 0xcb, 0x53, 0xaf, 0xe7, 0x4f, 0x6c, 0xe4, 0x61,
+ 0x88, 0x4a, 0x15, 0x97, 0x31, 0x91, 0x93, 0x85, 0xa8, 0x79, 0xa7, 0x6d,
+ 0xd6, 0xfd, 0xc3, 0xf1, 0x07, 0xa5, 0x26, 0x45, 0xa4, 0x83, 0x4d, 0x8a,
+ 0x5a, 0xa5, 0x52, 0x93, 0x52, 0xd8, 0x98, 0x06, 0x78, 0x6f, 0x1c, 0x28,
+ 0x06, 0x65, 0x7e, 0xec, 0xa2, 0xa8, 0xbd, 0x51, 0x1e, 0x97, 0x58, 0xae,
+ 0xa0, 0x83, 0x89, 0x1b, 0xc4, 0x63, 0x66, 0x72, 0x75, 0x26, 0x8a, 0xe6,
+ 0xd8, 0xa0, 0x61, 0x1a, 0x72, 0x5e, 0x70, 0xca, 0xcf, 0x4c, 0x79, 0x18,
+ 0xa1, 0x5e, 0x83, 0x68, 0xef, 0xe3, 0xf1, 0xe5, 0x24, 0xe1, 0x7c, 0xad,
+ 0x51, 0x58, 0xa0, 0x61, 0x1a, 0x56, 0x2e, 0xd1, 0x56, 0x08, 0x98, 0x6c,
+ 0xf9, 0xfe, 0x6e, 0xaa, 0x22, 0xc7, 0x01, 0x94, 0xb3, 0x85, 0xba, 0x8f,
+ 0x90, 0x4d, 0xb7, 0x48, 0xee, 0xbe, 0xd8, 0x87, 0x81, 0x15, 0xa2, 0x52,
+ 0xae, 0xb7, 0x2a, 0x1d, 0x7c, 0x57, 0xa8, 0xd0, 0x9f, 0x11, 0xd4, 0xac,
+ 0x96, 0x67, 0x78, 0xf7, 0x91, 0x18, 0x50, 0x93, 0x83, 0x04, 0x25, 0x5d,
+ 0x6e, 0x58, 0x0b, 0xf4, 0x41, 0x82, 0xc8, 0x9c, 0xd1, 0x7a, 0xe9, 0x3f,
+ 0x1e, 0x66, 0xfa, 0x6f, 0xab, 0xd7, 0x29, 0x89, 0x95, 0x03, 0xb5, 0x00,
+ 0x0a, 0x6d, 0xfb, 0x78, 0x71, 0xdd, 0x9e, 0x56, 0x32, 0x87, 0x12, 0x9e,
+ 0xaf, 0x17, 0x34, 0x5d, 0x3d, 0xed, 0x3e, 0x49, 0x8e, 0x00, 0xe2, 0x5a,
+ 0x4f, 0x4e, 0x2c, 0x56, 0x32, 0x87, 0x14, 0x22, 0x36, 0xe0, 0xdc, 0xec,
+ 0xa7, 0x80, 0xa5, 0xe2, 0x2e, 0xfb, 0xae, 0xed, 0xa7, 0x1f, 0x14, 0xb6,
+ 0xb0, 0x71, 0x58, 0x15, 0xd9, 0x32, 0x03, 0xd4, 0xb0, 0x31, 0xd6, 0x59,
+ 0xd9, 0x09, 0x1f, 0xad, 0xbf, 0xcb, 0xe8, 0x8a, 0x6a, 0x46, 0x2e, 0xb0,
+ 0x2e, 0x4d, 0xd4, 0xd3, 0xad, 0x9a, 0xae, 0xd9, 0x67, 0xe6, 0xd9, 0x45,
+ 0x16, 0xd9, 0x75, 0x83, 0x86, 0x8c, 0x36, 0x9f, 0x38, 0x14, 0x4c, 0xf8,
+ 0x6b, 0x15, 0x81, 0x8c, 0x13, 0xd3, 0xfa, 0x1c, 0x68, 0x07, 0xf5, 0x3d,
+ 0x2b, 0x3e, 0x68, 0x06, 0xf8, 0xb1, 0x20, 0x63, 0x6f, 0x5d, 0x29, 0x2b,
+ 0xfb, 0xca, 0x54, 0x1e, 0xb4, 0x0d, 0xce, 0x37, 0x1a, 0x01, 0x00, 0xa8,
+ 0x47, 0x5b, 0x91, 0xe4, 0x6d, 0x3a, 0x3a, 0x20, 0xb0, 0x18, 0xe8, 0xee,
+ 0xfc, 0xe2, 0xaa, 0x56, 0xe1, 0xc8, 0x75, 0x17, 0x2e, 0xcc, 0xe6, 0x08,
+ 0x68, 0x8a, 0xf2, 0xb2, 0x72, 0x01, 0x21, 0xdd, 0xae, 0x61, 0x5e, 0x1b,
+ 0xde, 0x5a, 0xe7, 0x7c, 0xcf, 0xfb, 0xd1, 0x49, 0x7b, 0x33, 0xc3, 0x9a,
+ 0x7e, 0x0b, 0x2d, 0x04, 0xf0, 0x83, 0x77, 0x59, 0x42, 0x0f, 0x71, 0xc1,
+ 0x81, 0x0a, 0x3b, 0xd0, 0x46, 0xab, 0x70, 0x04, 0x44, 0xce, 0x56, 0xc4,
+ 0x63, 0x83, 0xd9, 0x3b, 0x90, 0x4f, 0x00, 0xe2, 0x73, 0xb8, 0x71, 0x89,
+ 0x35, 0x7b, 0x43, 0x79, 0x6b, 0x8e, 0xb1, 0xff, 0x56, 0x69, 0xec, 0xd1,
+ 0x5e, 0xe3, 0x77, 0xba, 0x3b, 0xd0, 0xf3, 0xe8, 0xdd, 0xd6, 0x50, 0xb1,
+ 0xf7, 0x49, 0xe5, 0x5f, 0x1b, 0xb8, 0x66, 0x04, 0x62, 0xe1, 0x76, 0x62,
+ 0xe7, 0xac, 0x8f, 0x45, 0xb0, 0x28, 0x5d, 0x27, 0xc5, 0x19, 0x78, 0x89,
+ 0x8c, 0x04, 0xf0, 0xb4, 0xc8, 0xe8, 0x30, 0x79, 0x05, 0xd5, 0xb4, 0x5c,
+ 0xf4, 0xfa, 0x08, 0x82, 0x13, 0x02, 0x3a, 0x43, 0x85, 0x57, 0x68, 0x88,
+ 0xa3, 0xb4, 0x59, 0x70, 0xfd, 0x5e, 0x53, 0xd2, 0xbe, 0xa8, 0xaf, 0x48,
+ 0xfa, 0xa3, 0xe6, 0x1c, 0xf8, 0xa4, 0x38, 0x14, 0x5b, 0x07, 0x9e, 0xf4,
+ 0xcf, 0x7e, 0x15, 0x9c, 0x04, 0x79, 0x61, 0x66, 0xe3, 0x45, 0xa8, 0x46,
+ 0x4d, 0xf1, 0x9b, 0xe9, 0x57, 0xf7, 0xa7, 0x62, 0xf3, 0xbe, 0xd8, 0x71,
+ 0x1c, 0x95, 0x2b, 0x63, 0x26, 0xcf, 0x6d, 0xaf, 0x38, 0x50, 0x77, 0xf4,
+ 0xdc, 0x2d, 0x6e, 0x2b, 0x50, 0x60, 0xc7, 0xa0, 0xb2, 0x87, 0xa5, 0xb3,
+ 0xa5, 0x84, 0xd2, 0x8d, 0x4f, 0x68, 0x9c, 0x16, 0x7d, 0xd2, 0x1e, 0x2a,
+ 0x12, 0xd8, 0x51, 0x8e, 0x8c, 0x31, 0x37, 0x6d, 0x77, 0xc8, 0x82, 0xa4,
+ 0xe2, 0x79, 0x41, 0xf6, 0xfb, 0x88, 0xdf, 0x5d, 0xdb, 0x07, 0xa7, 0x97,
+ 0x6f, 0xd7, 0xa0, 0xa4, 0xe5, 0x94, 0x2b, 0x13, 0xb7, 0x19, 0x47, 0x38,
+ 0xca, 0xe9, 0x8a, 0xd3, 0xdd, 0x9f, 0x26, 0x24, 0x91, 0x68, 0x99, 0xee,
+ 0x16, 0xeb, 0x5d, 0x76, 0x31, 0x1e, 0xc0, 0xc4, 0x6e, 0xc9, 0x09, 0xa3,
+ 0xd4, 0x94, 0xbe, 0x2c, 0x75, 0x3b, 0x14, 0xf6, 0xde, 0x39, 0xb4, 0x28,
+ 0x73, 0x6b, 0x04, 0xe0, 0xec, 0x8b, 0xa8, 0xea, 0x57, 0x12, 0xba, 0x99,
+ 0xe9, 0xd9, 0x82, 0x8e, 0xc0, 0x5a, 0x2f, 0x2c, 0x93, 0x32, 0x2a, 0x34,
+ 0x08, 0xa9, 0x0c, 0x7f, 0x0b, 0x93, 0xb9, 0x7d, 0x5d, 0x3b, 0xd5, 0xe2,
+ 0x25, 0x25, 0xa7, 0x21, 0x86, 0x15, 0x41, 0x53, 0x2f, 0xcd, 0x0f, 0xee,
+ 0x9f, 0x3e, 0x4b, 0x96, 0x7e, 0x00, 0x7e, 0x5c, 0x81, 0xaf, 0x0a, 0x25,
+ 0x11, 0x5b, 0xd7, 0xad, 0x2e, 0xf2, 0x32, 0x60, 0xf6, 0x5f, 0x07, 0x4e,
+ 0x16, 0x52, 0xda, 0x07, 0x46, 0x92, 0x3c, 0x16, 0xcd, 0xe3, 0x90, 0x17,
+ 0x47, 0xec, 0x10, 0x46, 0xb6, 0xf7, 0xb3, 0xf4, 0x72, 0x45, 0x54, 0xfe,
+ 0x0c, 0x02, 0xc3, 0x43, 0x43, 0xfe, 0x63, 0x4f, 0x05, 0x74, 0x8c, 0xe0,
+ 0x8c, 0x06, 0xab, 0xae, 0x52, 0x6f, 0x7d, 0x1a, 0x2e, 0xdf, 0x59, 0x45,
+ 0x64, 0x2c, 0xbd, 0x84, 0x7f, 0x25, 0xe1, 0x86, 0xe0, 0x36, 0x33, 0x42,
+ 0xad, 0x3d, 0xa6, 0x29, 0xf5, 0xf9, 0x7b, 0x56, 0xc0, 0x4f, 0x48, 0x7d,
+ 0x31, 0x39, 0xde, 0x98, 0x4e, 0x0f, 0x16, 0xbd, 0x85, 0x26, 0x1c, 0x1e,
+ 0x2d, 0x7b, 0x0a, 0x4c, 0x38, 0x3c, 0x5a, 0xf6, 0x11, 0x7a, 0x16, 0xea,
+ 0xf3, 0x50, 0xa3, 0x00, 0x00, 0xcd, 0x04, 0x00, 0x00, 0x7e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x1a, 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x1b, 0xa8, 0x08, 0x16, 0x08, 0x5f, 0xf7, 0xf3, 0xfe, 0x3d, 0x8e, 0xf9,
+ 0x60, 0x9d, 0x77, 0xae, 0x5e, 0x81, 0x8f, 0xf3, 0x7f, 0xe8, 0xda, 0xf6,
+ 0xfc, 0x60, 0x3e, 0x59, 0xda, 0x35, 0xdc, 0x57, 0xcd, 0x25, 0xc8, 0x03,
+ 0xfc, 0xbb, 0xf9, 0xef, 0xab, 0xc7, 0xf5, 0x1e, 0x3d, 0x3e, 0x7a, 0xf6,
+ 0x08, 0x81, 0xce, 0x85, 0xde, 0x9a, 0xe8, 0xdc, 0x91, 0xb0, 0x76, 0x4d,
+ 0x07, 0x18, 0xc0, 0xfa, 0x23, 0x0e, 0x84, 0x07, 0x09, 0x47, 0x56, 0xdf,
+ 0x17, 0x18, 0x63, 0xa2, 0x70, 0xb9, 0x97, 0x8c, 0x78, 0x9f, 0x2f, 0xf3,
+ 0x4e, 0x13, 0x52, 0x9b, 0xb8, 0x4d, 0x3a, 0xba, 0xd5, 0x26, 0x9c, 0x31,
+ 0x2f, 0xf7, 0x49, 0x26, 0x54, 0x27, 0x73, 0xb5, 0x04, 0x14, 0x85, 0xef,
+ 0x67, 0x11, 0x15, 0xa1, 0x01, 0x6a, 0xa6, 0xfc, 0xac, 0x0c, 0x51, 0x1d,
+ 0x64, 0x1b, 0x07, 0x82, 0x6f, 0xfc, 0x56, 0xa6, 0xe8, 0x12, 0x63, 0x6d,
+ 0xc5, 0x57, 0x8e, 0x5d, 0x65, 0x01, 0x4e, 0x02, 0x19, 0xcf, 0x36, 0x79,
+ 0x8e, 0x5d, 0xd4, 0x89, 0x98, 0x01, 0x0d, 0xe5, 0x2b, 0x7c, 0x7a, 0xc1,
+ 0xe2, 0x49, 0x25, 0x1a, 0x0d, 0x20, 0x13, 0x81, 0x2a, 0xd7, 0xdd, 0x37,
+ 0xb7, 0xcd, 0xd6, 0x60, 0x6f, 0xc0, 0xe1, 0x80, 0xe9, 0x95, 0xfc, 0xe6,
+ 0x03, 0xde, 0x25, 0xaa, 0x3e, 0x81, 0xbd, 0x3c, 0x99, 0xdf, 0x90, 0x39,
+ 0x8b, 0x37, 0xba, 0x71, 0x2c, 0x63, 0xce, 0x1c, 0x87, 0x71, 0x7c, 0xec,
+ 0x8d, 0xf9, 0x98, 0x0f, 0x3e, 0x80, 0x8b, 0xd7, 0x23, 0x56, 0x97, 0x2f,
+ 0x10, 0x5a, 0xe4, 0xeb, 0x6e, 0xc8, 0x97, 0xa1, 0x35, 0xd4, 0x49, 0x09,
+ 0x75, 0xb4, 0xb1, 0x66, 0x0f, 0xfa, 0x5e, 0x64, 0x28, 0x55, 0xf7, 0x81,
+ 0x30, 0xc5, 0x6e, 0x23, 0xac, 0xd3, 0x80, 0x84, 0x5c, 0x39, 0xd7, 0x96,
+ 0xd3, 0xc6, 0x1a, 0xda, 0xac, 0xa0, 0x09, 0xf8, 0x9d, 0xb1, 0x4e, 0x3b,
+ 0x7b, 0x05, 0x40, 0x2a, 0x74, 0x20, 0x46, 0x92, 0x63, 0x8f, 0x91, 0xf9,
+ 0x01, 0x67, 0xd0, 0xec, 0x30, 0x9c, 0x79, 0xeb, 0x5b, 0xd1, 0x5c, 0x02,
+ 0x8e, 0x66, 0x87, 0x79, 0xc7, 0x37, 0xbc, 0xea, 0xe8, 0x8c, 0xff, 0x53,
+ 0x08, 0x2e, 0xff, 0x47, 0x8c, 0xba, 0x18, 0x86, 0xc7, 0x07, 0xbe, 0xc9,
+ 0xb3, 0x85, 0xed, 0x3b, 0x89, 0x32, 0x6e, 0x9f, 0xfc, 0x41, 0x26, 0x68,
+ 0x6b, 0x6e, 0x6e, 0x54, 0x44, 0x33, 0x7b, 0x1b, 0x6c, 0x17, 0x97, 0x3f,
+ 0xc1, 0x7f, 0xf0, 0x37, 0x67, 0xd7, 0x29, 0x55, 0xfc, 0x59, 0x97, 0xcb,
+ 0xaf, 0xa0, 0x92, 0x21, 0x5e, 0x06, 0x5d, 0x68, 0x70, 0x5a, 0xe6, 0x2e,
+ 0x56, 0xf9, 0x63, 0xb3, 0x3f, 0xdf, 0x3f, 0x65, 0x47, 0xde, 0xd8, 0xc4,
+ 0x71, 0x45, 0x36, 0x66, 0xd9, 0x3d, 0xb5, 0xbd, 0x8a, 0x99, 0xa9, 0xf9,
+ 0x84, 0x01, 0x53, 0x90, 0xa1, 0x8a, 0x85, 0x04, 0x71, 0xcc, 0x13, 0x60,
+ 0x85, 0x9e, 0x2d, 0x32, 0x79, 0xf1, 0xe5, 0x23, 0x73, 0x1e, 0x2f, 0x1d,
+ 0x38, 0xe0, 0xa1, 0xfa, 0x93, 0x5d, 0xd7, 0x42, 0x42, 0x00, 0xcf, 0x69,
+ 0x9a, 0x5c, 0x79, 0xbe, 0x73, 0x24, 0x46, 0x68, 0x2c, 0xd4, 0x91, 0x97,
+ 0x92, 0x47, 0xbc, 0x9a, 0x68, 0x39, 0x2d, 0xbd, 0xab, 0x66, 0xbb, 0xfe,
+ 0xb8, 0x0f, 0xfe, 0x64, 0xda, 0x8c, 0xbd, 0x6e, 0x77, 0x4d, 0xd9, 0xe4,
+ 0x9a, 0x11, 0xb8, 0xa5, 0x61, 0x21, 0x1c, 0xf9, 0x89, 0x84, 0xee, 0x19,
+ 0x24, 0xf3, 0x9a, 0x91, 0x9e, 0x9c, 0x67, 0x2c, 0xbd, 0x25, 0x7a, 0xcc,
+ 0x97, 0xa7, 0xdf, 0x90, 0xf3, 0xec, 0x58, 0x13, 0xc6, 0x9e, 0xa1, 0xc0,
+ 0xe7, 0x18, 0x37, 0x4b, 0x06, 0xe8, 0x4f, 0xcc, 0xeb, 0xf9, 0x67, 0x4d,
+ 0x10, 0x54, 0xc2, 0xb5, 0x7d, 0x1f, 0xb6, 0x70, 0x95, 0xd3, 0xdf, 0x2a,
+ 0xc0, 0xa8, 0x79, 0x90, 0x53, 0xfd, 0xda, 0xb1, 0xa8, 0x60, 0x18, 0x6a,
+ 0x86, 0xf3, 0xb8, 0x6b, 0xef, 0x7d, 0x40, 0xe0, 0x16, 0x39, 0xef, 0x5a,
+ 0x84, 0xe1, 0x22, 0x41, 0xa3, 0xed, 0x8c, 0xba, 0xb5, 0xa6, 0x60, 0xe0,
+ 0x08, 0xe6, 0x48, 0x78, 0xe3, 0x15, 0xa7, 0x7b, 0x0b, 0xb6, 0x08, 0xe6,
+ 0xc2, 0x2d, 0xbf, 0xdc, 0x4f, 0xfe, 0xfd, 0x7b, 0x24, 0x77, 0x70, 0xaa,
+ 0xf9, 0x08, 0x84, 0x59, 0x5c, 0x25, 0x1c, 0x95, 0xe5, 0xa8, 0x67, 0x61,
+ 0x4f, 0xe4, 0x49, 0x71, 0xdf, 0xdc, 0x86, 0xbc, 0xe8, 0xe9, 0x50, 0xa6,
+ 0x08, 0xe8, 0xbb, 0x16, 0x0a, 0x26, 0x85, 0xc5, 0xba, 0xa8, 0xb8, 0x27,
+ 0xbe, 0x23, 0xe7, 0x7c, 0xf5, 0x44, 0x0b, 0x07, 0x21, 0x27, 0xdc, 0xfa,
+ 0xc1, 0x02, 0x89, 0x7f, 0xb2, 0x1f, 0xa6, 0xf9, 0x99, 0xc8, 0x34, 0x1a,
+ 0xc5, 0x96, 0xdf, 0x4d, 0x75, 0xdd, 0x37, 0x78, 0x45, 0x6e, 0x30, 0x0c,
+ 0xaf, 0xcc, 0x6f, 0x29, 0xdb, 0x91, 0xd9, 0xd7, 0x37, 0x67, 0x98, 0xdc,
+ 0xb3, 0xa8, 0x71, 0xcf, 0x7b, 0x18, 0x56, 0xba, 0x7f, 0xcf, 0xa3, 0x01,
+ 0x36, 0xf1, 0x22, 0x34, 0x28, 0xc4, 0x7d, 0xd8, 0xb9, 0xf7, 0x59, 0xd5,
+ 0x30, 0xa6, 0xe5, 0x1b, 0x34, 0x8d, 0xb0, 0xfb, 0xe7, 0x73, 0x70, 0xfa,
+ 0x6e, 0xb2, 0x6c, 0x02, 0xb3, 0x8f, 0xd0, 0x44, 0xc4, 0x0b, 0x66, 0xa2,
+ 0x11, 0x2a, 0xf2, 0x55, 0x41, 0x76, 0x4e, 0xf3, 0x2a, 0xf1, 0xf5, 0x24,
+ 0xc9, 0x05, 0xd4, 0x8c, 0x4c, 0x41, 0x0c, 0x06, 0x25, 0x2a, 0x74, 0x2f,
+ 0x62, 0x4d, 0xd7, 0x3f, 0xc9, 0x69, 0xa2, 0xd3, 0x08, 0xdd, 0xb9, 0xf4,
+ 0xb0, 0x70, 0xac, 0x30, 0x85, 0x11, 0x8a, 0x4d, 0x61, 0x8c, 0x7c, 0x6b,
+ 0x1a, 0xb1, 0xee, 0xdf, 0x44, 0xb8, 0x9d, 0x39, 0xd7, 0x1f, 0xb7, 0x61,
+ 0x05, 0xb8, 0x8f, 0xf2, 0x09, 0xa8, 0xc3, 0x6f, 0xab, 0xdd, 0x01, 0x63,
+ 0x13, 0xed, 0xec, 0x21, 0x89, 0x0d, 0x68, 0xc6, 0xbb, 0x67, 0xde, 0xd8,
+ 0xbc, 0x8d, 0x98, 0x0a, 0xf9, 0xf5, 0x07, 0x59, 0x68, 0xb9, 0x19, 0x7e,
+ 0x36, 0x77, 0x25, 0x14, 0x50, 0x7d, 0xfa, 0xb6, 0xb9, 0x3b, 0xb2, 0x06,
+ 0x3c, 0x50, 0xf1, 0xb9, 0x71, 0x64, 0xad, 0x00, 0xcf, 0xa2, 0xf8, 0xe4,
+ 0xf9, 0x01, 0x38, 0x4e, 0xdf, 0x3c, 0x9c, 0x7f, 0xad, 0xfe, 0x49, 0x50,
+ 0x94, 0x9f, 0x1f, 0xe1, 0xaa, 0x56, 0x76, 0x0b, 0xb1, 0x91, 0x36, 0x42,
+ 0x59, 0x27, 0xf7, 0xe3, 0x93, 0x3a, 0xb5, 0xe8, 0xbf, 0x15, 0x3d, 0x76,
+ 0x8f, 0xbb, 0x1f, 0x15, 0x62, 0x81, 0x26, 0x8d, 0x95, 0x6b, 0xe6, 0x2a,
+ 0x2b, 0xaa, 0xa0, 0xa2, 0x1f, 0xdd, 0xe6, 0xc4, 0x34, 0x93, 0x2b, 0xc4,
+ 0x29, 0x5e, 0x09, 0x2d, 0x85, 0x42, 0x16, 0x40, 0x41, 0x04, 0xe2, 0xc5,
+ 0xa7, 0xc9, 0xe2, 0x0b, 0x27, 0x26, 0x82, 0xf2, 0x03, 0x13, 0xc3, 0x1f,
+ 0xad, 0x96, 0xcd, 0x48, 0x4a, 0x91, 0xa0, 0x53, 0x48, 0x58, 0x69, 0xa1,
+ 0xad, 0xe3, 0x4e, 0xbc, 0x61, 0xbb, 0xd9, 0x0f, 0x89, 0x15, 0xc3, 0x02,
+ 0x58, 0xfe, 0x22, 0xab, 0x20, 0xa8, 0xe1, 0xb0, 0xaa, 0xe0, 0xec, 0xf1,
+ 0xc5, 0x0a, 0xa4, 0xf2, 0x9b, 0x60, 0x19, 0xac, 0xf8, 0x35, 0xe3, 0xe0,
+ 0xcb, 0xfc, 0x5c, 0xc2, 0xdc, 0xaa, 0x4c, 0xc6, 0xd6, 0x6f, 0x7c, 0x83,
+ 0x24, 0x8d, 0xf6, 0x43, 0x6b, 0x1c, 0xec, 0x4a, 0xe0, 0xb4, 0xce, 0x3a,
+ 0x32, 0x28, 0x60, 0xe9, 0x74, 0xbe, 0x3b, 0xa1, 0x7a, 0x59, 0x1d, 0xe9,
+ 0xfe, 0xab, 0x0e, 0x7c, 0xa8, 0x05, 0x53, 0x28, 0xff, 0x27, 0xa1, 0x67,
+ 0xcf, 0xbe, 0xb4, 0x06, 0x5a, 0x0b, 0xe8, 0x4d, 0xc7, 0xd7, 0x06, 0x65,
+ 0xef, 0x8b, 0xaa, 0x55, 0xec, 0x38, 0xb9, 0x58, 0x29, 0x30, 0xf9, 0xea,
+ 0xf8, 0x10, 0x00, 0xc9, 0x4e, 0x02, 0x12, 0x3b, 0x16, 0x59, 0x13, 0xeb,
+ 0x52, 0xee, 0xc7, 0x38, 0x2a, 0xeb, 0x7b, 0x33, 0x71, 0x71, 0x3f, 0xf6,
+ 0x9d, 0xd7, 0x23, 0xe3, 0x85, 0xd6, 0x98, 0x99, 0x66, 0x59, 0xe6, 0xc1,
+ 0x37, 0xc8, 0xc8, 0x81, 0x3b, 0x5a, 0x57, 0x86, 0x16, 0x42, 0x0c, 0xbd,
+ 0xd8, 0xa8, 0x36, 0xf9, 0x96, 0x75, 0x1a, 0x33, 0xca, 0x67, 0x93, 0xc4,
+ 0xca, 0x55, 0xdd, 0x12, 0xeb, 0x45, 0x8f, 0xc4, 0x30, 0x32, 0xff, 0x3e,
+ 0x0b, 0x2c, 0xeb, 0x87, 0x34, 0x8b, 0x87, 0xdc, 0xbc, 0x2c, 0xb7, 0x06,
+ 0x1b, 0x2c, 0x52, 0xbf, 0x01, 0x93, 0x9c, 0xc0, 0xdb, 0xa1, 0x55, 0xfe,
+ 0x4c, 0x13, 0xfc, 0xb5, 0x9e, 0x52, 0xf9, 0x85, 0xe6, 0x56, 0xe2, 0x06,
+ 0x81, 0xf8, 0x55, 0xd9, 0x5b, 0x88, 0xad, 0xe9, 0x81, 0xd7, 0xa4, 0xa0,
+ 0x76, 0x09, 0x8d, 0x42, 0xc4, 0xef, 0x2b, 0xdc, 0xfc, 0xab, 0x25, 0x5d,
+ 0x07, 0x40, 0x28, 0xb7, 0x7f, 0x57, 0x95, 0x17, 0x74, 0xad, 0xbb, 0xfd,
+ 0x4a, 0xe0, 0x84, 0x88, 0x09, 0xf5, 0x66, 0xa5, 0x91, 0x99, 0x49, 0x42,
+ 0x75, 0xc1, 0xfc, 0x41, 0x80, 0x49, 0x48, 0x10, 0xdf, 0xdd, 0x5a, 0xe3,
+ 0xd8, 0xd2, 0x54, 0x0d, 0x4a, 0xd1, 0xbf, 0x2a, 0x8b, 0x57, 0xe1, 0x83,
+ 0x79, 0x80, 0x5d, 0x46, 0x5d, 0x36, 0x49, 0x31, 0xca, 0x40, 0x1d, 0x03,
+ 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x10,
+ 0x00, 0x01, 0x10, 0x10, 0x00, 0x18, 0x22, 0x58, 0x07, 0x1c, 0x65, 0x77,
+ 0x9b, 0x79, 0x7b, 0xae, 0x02, 0x89, 0x17, 0x24, 0x28, 0x73, 0xf0, 0x9a,
+ 0xfb, 0xdb, 0xf6, 0xa9, 0x8d, 0x26, 0x0c, 0x70, 0x62, 0x0b, 0x06, 0x44,
+ 0x1e, 0xc4, 0x9c, 0x6a, 0xa5, 0x3d, 0x21, 0xae, 0xe4, 0x77, 0xf8, 0x9a,
+ 0xdb, 0xfe, 0xec, 0xfc, 0xa8, 0xf8, 0x19, 0x4b, 0x24, 0x0a, 0xc3, 0xcc,
+ 0x46, 0x23, 0x38, 0xaf, 0x55, 0x38, 0x8f, 0x08, 0xf7, 0xfd, 0x6b, 0x3a,
+ 0x8a, 0x68, 0x7f, 0x2b, 0x0d, 0x33, 0x61, 0xe2, 0x1f, 0xf0, 0x62, 0x9d,
+ 0x8c, 0x08, 0x24, 0x06, 0xce, 0xcc, 0x90, 0xb9, 0xac, 0x14, 0xf0, 0x2b,
+ 0x17, 0x7d, 0xe1, 0xe1, 0x22, 0x75, 0xb4, 0x81, 0xb8, 0x54, 0xc7, 0x4a,
+ 0xa5, 0xad, 0xba, 0x03, 0xd4, 0xcf, 0xeb, 0x9a, 0x5e, 0xae, 0x0a, 0x6d,
+ 0x26, 0x5c, 0x10, 0x6c, 0x9f, 0xe4, 0x77, 0xf4, 0x59, 0x54, 0xad, 0xd6,
+ 0x00, 0x91, 0x89, 0xdc, 0xd1, 0x03, 0xc1, 0x24, 0x49, 0x37, 0xfe, 0xb4,
+ 0x14, 0x21, 0xd4, 0x0e, 0x55, 0x2d, 0x93, 0xf6, 0x30, 0x61, 0xea, 0xdf,
+ 0xa7, 0x26, 0x6a, 0x3f, 0xb0, 0x3c, 0x20, 0x77, 0xd4, 0x31, 0x2c, 0xb7,
+ 0xe0, 0x13, 0x5a, 0xf7, 0x23, 0xb1, 0x30, 0x04, 0x27, 0x82, 0x41, 0x53,
+ 0x5a, 0x0d, 0x1d, 0xff, 0x2f, 0x2a, 0x80, 0x3b, 0xe9, 0x60, 0x7c, 0x19,
+ 0x7a, 0x9d, 0x22, 0xbf, 0xe6, 0x52, 0x91, 0x6c, 0x98, 0xed, 0xdd, 0x5e,
+ 0x62, 0x12, 0x16, 0x80, 0x95, 0x58, 0x2f, 0x56, 0xc3, 0x56, 0x6a, 0x19,
+ 0x9a, 0xc1, 0xed, 0x61, 0x4b, 0x8c, 0x41, 0x93, 0xb1, 0xb7, 0x72, 0x84,
+ 0x73, 0x4f, 0x8a, 0xcb, 0xec, 0x9e, 0xfd, 0x61, 0x69, 0xae, 0x61, 0x16,
+ 0x33, 0x6a, 0xeb, 0xfe, 0x09, 0xbc, 0xb6, 0x6e, 0xcd, 0x25, 0x2f, 0x1b,
+ 0xde, 0xa5, 0x91, 0x27, 0xb4, 0x6e, 0x24, 0xf4, 0x92, 0x4c, 0x05, 0x67,
+ 0x85, 0xd4, 0xb0, 0xde, 0x92, 0x5d, 0xed, 0x65, 0x7a, 0x35, 0x74, 0x85,
+ 0x8a, 0x68, 0xbd, 0x0e, 0xfe, 0xdc, 0x41, 0x9c, 0x92, 0x49, 0x51, 0x8e,
+ 0x66, 0x3a, 0xc6, 0x07, 0xd3, 0x3a, 0xeb, 0x06, 0xf3, 0x1b, 0x96, 0x75,
+ 0xd6, 0xb7, 0x6b, 0x71, 0x74, 0x3c, 0xce, 0x79, 0x9e, 0x58, 0x39, 0x6c,
+ 0x33, 0x7d, 0x5f, 0xbb, 0xb1, 0x5c, 0xcc, 0xd0, 0xd5, 0xac, 0x44, 0x51,
+ 0xb3, 0x59, 0x07, 0x71, 0x43, 0xdd, 0xa7, 0xba, 0x40, 0x50, 0xd6, 0x27,
+ 0xed, 0x1f, 0x13, 0xb4, 0xf4, 0x73, 0x93, 0x75, 0x95, 0xa6, 0xed, 0xb6,
+ 0xbf, 0xd4, 0x3d, 0xf4, 0xea, 0x55, 0xc3, 0xb5, 0xcc, 0xf2, 0xd2, 0x6e,
+ 0x00, 0x76, 0xe3, 0x57, 0x13, 0x58, 0x19, 0xe8, 0x09, 0xa2, 0x30, 0x3d,
+ 0x86, 0x04, 0x6e, 0x0e, 0x6d, 0xff, 0x83, 0x3e, 0x62, 0xb3, 0x0e, 0x1f,
+ 0xfb, 0xee, 0xe3, 0x50, 0x6d, 0x03, 0xcf, 0xa8, 0x2d, 0x8a, 0x38, 0xd0,
+ 0x6d, 0xfd, 0x9d, 0x28, 0xb5, 0x83, 0x3d, 0x18, 0x31, 0x24, 0x28, 0xeb,
+ 0x34, 0xb9, 0xaa, 0xe2, 0xda, 0x25, 0x44, 0x2e, 0x89, 0x55, 0x17, 0x64,
+ 0x21, 0xa4, 0xe9, 0x01, 0x0d, 0xd8, 0x69, 0xbb, 0xb0, 0xa8, 0x91, 0x30,
+ 0xc3, 0x4e, 0xcb, 0x14, 0xf4, 0x17, 0xb3, 0xca, 0x53, 0x0f, 0x4b, 0x79,
+ 0x6f, 0xaf, 0xb3, 0xd6, 0x5f, 0x02, 0x0c, 0xfc, 0x0a, 0xd7, 0xa0, 0xcd,
+ 0x66, 0xc4, 0xcf, 0x02, 0xab, 0x63, 0x2e, 0x10, 0xb3, 0x15, 0xe6, 0x96,
+ 0xd1, 0x81, 0xfa, 0xb5, 0xb4, 0x9f, 0xd9, 0x33, 0x34, 0x13, 0x68, 0x2e,
+ 0xf7, 0x8d, 0x34, 0x77, 0xea, 0x58, 0xb7, 0x48, 0x2c, 0xc3, 0xa5, 0x0b,
+ 0xc3, 0x7a, 0x79, 0x6a, 0xa5, 0x34, 0x82, 0x1f, 0x69, 0x66, 0xbb, 0xdc,
+ 0x41, 0x32, 0x64, 0xa9, 0xe3, 0x1e, 0x9c, 0x7b, 0x51, 0xc3, 0x04, 0xab,
+ 0x1b, 0x02, 0x46, 0xa6, 0xba, 0xa9, 0xd8, 0x93, 0x03, 0x70, 0xed, 0xb5,
+ 0x37, 0x0d, 0xc8, 0x6b, 0xdb, 0x11, 0xb5, 0x58, 0xc2, 0x4a, 0x6f, 0x46,
+ 0x76, 0x47, 0x4b, 0x18, 0x86, 0x6d, 0x0d, 0x7f, 0xf4, 0xda, 0x59, 0xf9,
+ 0xd7, 0x81, 0xfb, 0xee, 0xd3, 0x4c, 0x1d, 0x99, 0x10, 0x16, 0x1f, 0xdb,
+ 0x44, 0x74, 0x4a, 0xb1, 0x83, 0xf5, 0xa2, 0x26, 0xd2, 0x90, 0xfb, 0x5e,
+ 0x81, 0xd0, 0xbc, 0x4e, 0xd4, 0x19, 0x0d, 0x36, 0xb6, 0xf3, 0x79, 0x61,
+ 0x63, 0x45, 0x57, 0xbf, 0x81, 0xa4, 0x66, 0xff, 0xd6, 0xc2, 0x54, 0xc6,
+ 0x48, 0x2b, 0x54, 0x40, 0xe5, 0x99, 0x6b, 0x4a, 0x9f, 0x09, 0x87, 0xd1,
+ 0x66, 0x5c, 0xe4, 0x25, 0xd2, 0x09, 0x9c, 0x2e, 0x95, 0x46, 0x39, 0x59,
+ 0x96, 0x02, 0xe7, 0x34, 0xaa, 0xd9, 0xef, 0x66, 0xcd, 0xf5, 0x90, 0xf4,
+ 0x47, 0x74, 0x37, 0xc2, 0xba, 0x7a, 0xaa, 0x8d, 0xe5, 0x39, 0x88, 0xae,
+ 0xfd, 0xd2, 0x67, 0xfc, 0xd8, 0xde, 0x19, 0xed, 0x3f, 0xd9, 0xc3, 0x9d,
+ 0x08, 0xc3, 0xa2, 0x6a, 0xdd, 0xc3, 0x7a, 0xd5, 0xd7, 0x54, 0xab, 0x21,
+ 0x40, 0xe5, 0x8c, 0x23, 0x08, 0xf2, 0x44, 0x28, 0x41, 0x20, 0x32, 0xdc,
+ 0x74, 0x36, 0x2d, 0x30, 0xdd, 0xad, 0xa5, 0x6d, 0xab, 0x0b, 0xc3, 0x59,
+ 0x1b, 0xe8, 0x22, 0xfe, 0xcd, 0x83, 0xb1, 0x00, 0xdd, 0x2b, 0x90, 0x17,
+ 0xd0, 0xe5, 0x08, 0x56, 0x9c, 0xbb, 0xf5, 0xee, 0x9e, 0x62, 0x79, 0x0a,
+ 0xd7, 0x67, 0x22, 0x62, 0x04, 0x7b, 0x31, 0x57, 0x73, 0x75, 0x3b, 0x6d,
+ 0xf7, 0xd4, 0x38, 0x90, 0xdf, 0x28, 0x85, 0x23, 0x80, 0x98, 0x04, 0xa6,
+ 0xed, 0x28, 0x6d, 0x9f, 0x22, 0x9d, 0x96, 0x11, 0x85, 0x13, 0xbd, 0xca,
+ 0xf2, 0xff, 0xad, 0x55, 0x82, 0x2e, 0x6e, 0x1c, 0x12, 0x27, 0x8f, 0xc9,
+ 0x98, 0x3c, 0x1d, 0xf8, 0x31, 0x54, 0x33, 0xec, 0x27, 0xca, 0x68, 0x6a,
+ 0x56, 0x8e, 0x5d, 0x0c, 0xbc, 0x36, 0xea, 0x3f, 0xd9, 0x74, 0xd9, 0x24,
+ 0xc6, 0xf7, 0x00, 0x2b, 0x12, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x90, 0x60, 0x00, 0x9d, 0x01, 0x2a, 0x40, 0x01, 0xf0,
+ 0x00, 0x03, 0xc7, 0x08, 0x85, 0x85, 0x88, 0x85, 0x84, 0x88, 0x11, 0x02,
+ 0x22, 0x46, 0xb0, 0x85, 0xf0, 0x07, 0x60, 0x33, 0x90, 0x7e, 0x37, 0x70,
+ 0xa0, 0x90, 0xcf, 0xf8, 0x0f, 0xdc, 0xd6, 0xff, 0xfe, 0x70, 0x0f, 0xf8,
+ 0x0f, 0xe0, 0x39, 0x60, 0x3f, 0xc0, 0x7f, 0x80, 0xff, 0xff, 0xf6, 0xff,
+ 0xea, 0xff, 0xd3, 0x49, 0xf1, 0x47, 0xf2, 0x7f, 0xc2, 0x5f, 0xcf, 0x9f,
+ 0x61, 0xdf, 0xa8, 0x7f, 0x4b, 0xfc, 0x45, 0xfc, 0x5c, 0xee, 0x4f, 0xf2,
+ 0xf7, 0xb6, 0x1e, 0xa2, 0xdf, 0xd2, 0x7c, 0xa0, 0x7b, 0xd0, 0xdd, 0x87,
+ 0x6e, 0x8f, 0xb7, 0x7e, 0x41, 0x7a, 0x2d, 0xfc, 0xaf, 0xf0, 0xc7, 0xcd,
+ 0x1f, 0x8e, 0xdf, 0xd6, 0xfa, 0x82, 0xfa, 0x8b, 0xfc, 0x47, 0xf5, 0xff,
+ 0x75, 0x0e, 0xb9, 0x76, 0x8a, 0xd9, 0x1f, 0xf6, 0x7e, 0xa0, 0xbe, 0xb5,
+ 0xfc, 0xbf, 0xfb, 0xbf, 0xf7, 0xdf, 0xd8, 0xaf, 0xef, 0xdf, 0x0f, 0x5e,
+ 0x65, 0xfd, 0x67, 0xfa, 0xe7, 0xec, 0x27, 0xf2, 0x5f, 0xff, 0xff, 0xfe,
+ 0x3e, 0x89, 0xfa, 0xd9, 0xfe, 0xeb, 0xdc, 0x07, 0xf9, 0x97, 0xf3, 0x2f,
+ 0xf6, 0x9e, 0xb8, 0x7f, 0x76, 0xff, 0x4d, 0xfa, 0x03, 0xe6, 0x61, 0xe7,
+ 0x5e, 0xc0, 0x5f, 0xca, 0x7f, 0x9f, 0x7f, 0x84, 0xff, 0x2b, 0xfb, 0xdf,
+ 0xff, 0x9f, 0xe1, 0xff, 0xfa, 0x2f, 0xf1, 0xbf, 0xe3, 0x3f, 0x72, 0xbd,
+ 0xa9, 0xfd, 0x1d, 0xff, 0x73, 0xfc, 0xc7, 0xc0, 0xe7, 0xea, 0x27, 0xfb,
+ 0x9f, 0xee, 0x7f, 0xe6, 0x7f, 0x69, 0xbe, 0x6c, 0xbd, 0x69, 0xfe, 0xd6,
+ 0x7f, 0xef, 0xf7, 0x60, 0xfd, 0x5e, 0xb5, 0xb6, 0x4a, 0x0a, 0xd5, 0x31,
+ 0x02, 0xf6, 0xbe, 0x35, 0x69, 0xe8, 0x31, 0x34, 0xb4, 0xd4, 0x4b, 0xcf,
+ 0x82, 0x1b, 0xa0, 0xa3, 0x91, 0xed, 0x72, 0xc4, 0xdc, 0x58, 0x9d, 0x71,
+ 0x3d, 0x6e, 0xa0, 0x3d, 0x40, 0xf7, 0x2e, 0x9e, 0x24, 0x11, 0xfc, 0x0f,
+ 0x88, 0xfc, 0xb1, 0xfe, 0xd7, 0xef, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0xd4, 0xe2, 0xb7, 0x6d, 0x9d, 0x15, 0x9d, 0x0b, 0xb0, 0x59, 0x7b,
+ 0x07, 0x84, 0x63, 0xc3, 0x70, 0xa0, 0x2c, 0xb4, 0x9a, 0xee, 0x5a, 0x20,
+ 0x20, 0x19, 0xcf, 0x73, 0xaa, 0x27, 0xae, 0x21, 0xa9, 0x89, 0x17, 0x20,
+ 0x1d, 0xb7, 0x70, 0x8c, 0xf3, 0xa9, 0x0a, 0x62, 0x6d, 0xc2, 0x38, 0xf9,
+ 0x5e, 0xd9, 0x9c, 0xbb, 0xb2, 0x64, 0x0f, 0x0f, 0x1f, 0xd8, 0x96, 0xe6,
+ 0x2c, 0x18, 0xdb, 0x2f, 0x97, 0xe7, 0x98, 0xdf, 0xde, 0xc0, 0xba, 0x73,
+ 0x2b, 0x47, 0xff, 0x8a, 0xfa, 0x6d, 0xf4, 0xf1, 0xf5, 0xd5, 0x68, 0x54,
+ 0x7c, 0xbe, 0x0e, 0x38, 0x45, 0xfb, 0x42, 0xf6, 0x7a, 0x92, 0x22, 0x88,
+ 0xc6, 0xd9, 0x24, 0x83, 0xb8, 0x20, 0x44, 0x01, 0xd2, 0x61, 0x47, 0x64,
+ 0x04, 0x01, 0xae, 0x0d, 0x63, 0xf9, 0x8a, 0x56, 0x8d, 0xab, 0xf0, 0xd9,
+ 0xbf, 0xa9, 0xa3, 0xb6, 0xd0, 0xbd, 0x6d, 0x92, 0x1d, 0x20, 0xfc, 0x3f,
+ 0xbf, 0xb7, 0x9f, 0xe0, 0x54, 0xc0, 0x39, 0xcb, 0x66, 0x12, 0xcb, 0x6e,
+ 0xf1, 0x26, 0x3a, 0x77, 0xb5, 0xc2, 0x13, 0x70, 0x1e, 0x26, 0xc7, 0xe9,
+ 0x77, 0x19, 0xb9, 0x77, 0xba, 0xa8, 0x10, 0xb5, 0x57, 0xd4, 0xdb, 0x94,
+ 0x7b, 0x69, 0x08, 0x77, 0xee, 0xbe, 0xf8, 0x61, 0x1b, 0x0f, 0xc8, 0xe3,
+ 0x1b, 0x42, 0xb5, 0x18, 0x22, 0x6a, 0xf8, 0x10, 0x67, 0x15, 0xe9, 0x93,
+ 0x89, 0x74, 0x4e, 0x41, 0x5a, 0x02, 0x1f, 0x2c, 0xef, 0x04, 0x5a, 0x02,
+ 0x30, 0x63, 0x51, 0x4d, 0x8e, 0x49, 0x6f, 0x20, 0x87, 0x63, 0x80, 0x02,
+ 0x58, 0x22, 0x99, 0x2b, 0x67, 0xdd, 0x64, 0x74, 0x73, 0xd3, 0x99, 0x8e,
+ 0x25, 0x8d, 0xac, 0x8e, 0x34, 0x28, 0x61, 0xfa, 0x38, 0x0b, 0x63, 0x90,
+ 0xc6, 0x64, 0xad, 0xa6, 0x06, 0x4e, 0x7a, 0x73, 0xd3, 0x35, 0x93, 0x70,
+ 0x6f, 0x15, 0x47, 0x07, 0x76, 0xad, 0xf1, 0xd8, 0xc6, 0x64, 0xad, 0xa6,
+ 0x06, 0x4e, 0x7a, 0x73, 0xd3, 0x2a, 0xa8, 0x4f, 0x19, 0xf8, 0x37, 0xbe,
+ 0x3c, 0xa0, 0xcb, 0xf4, 0xee, 0xcb, 0x68, 0x4f, 0xba, 0x6b, 0xcb, 0x9b,
+ 0x27, 0x3d, 0x39, 0xe9, 0xcc, 0xb0, 0x4d, 0xba, 0x18, 0xe1, 0x35, 0xfb,
+ 0x7d, 0x3d, 0x4b, 0xa3, 0x86, 0xfd, 0xa6, 0x45, 0x32, 0x52, 0x4a, 0x31,
+ 0x01, 0x88, 0x0c, 0x40, 0x50, 0xb5, 0x53, 0x7f, 0x39, 0xc8, 0xe0, 0xf8,
+ 0xa1, 0xfc, 0x52, 0x10, 0xf8, 0xdf, 0x55, 0x06, 0xec, 0x80, 0x09, 0x73,
+ 0xb8, 0x67, 0x86, 0xdb, 0x23, 0xc4, 0x5e, 0x59, 0x8a, 0x00, 0xab, 0xd0,
+ 0xa7, 0x28, 0xc4, 0x06, 0x20, 0x31, 0x01, 0x88, 0x0c, 0x40, 0x50, 0x68,
+ 0x9e, 0xef, 0x9e, 0xc4, 0x1d, 0xb1, 0x58, 0x56, 0x34, 0xf8, 0x37, 0x5f,
+ 0x8b, 0x61, 0x16, 0x99, 0x53, 0xc7, 0x35, 0xa7, 0xad, 0x3d, 0x69, 0xeb,
+ 0x4f, 0x58, 0x18, 0x62, 0xf0, 0x4c, 0xfd, 0x59, 0x8e, 0x99, 0xbc, 0x6f,
+ 0x6e, 0x1c, 0x7a, 0xc4, 0x3d, 0xa4, 0xb3, 0xb3, 0x10, 0x00, 0x02, 0xbd,
+ 0xb5, 0x9f, 0x81, 0x89, 0xad, 0xa7, 0x3f, 0xb1, 0x38, 0x7d, 0xf1, 0xde,
+ 0x0e, 0x52, 0xbd, 0x93, 0x75, 0xce, 0xb4, 0x6e, 0x09, 0xd2, 0x21, 0x71,
+ 0xe6, 0xbc, 0x8a, 0xc5, 0x88, 0x58, 0xec, 0xb3, 0x20, 0x88, 0xc5, 0xf5,
+ 0xf1, 0x5b, 0xf7, 0x4a, 0xf3, 0x4f, 0x17, 0x34, 0xb5, 0xc7, 0xbb, 0x25,
+ 0x31, 0x18, 0xbe, 0xbe, 0x2b, 0x7e, 0xe7, 0x0f, 0xad, 0x1f, 0x73, 0x57,
+ 0x78, 0x2e, 0x7d, 0x13, 0xcc, 0xb6, 0x4f, 0xca, 0xbd, 0x24, 0x98, 0xae,
+ 0x22, 0x05, 0x25, 0x12, 0x9c, 0x87, 0x48, 0x68, 0xce, 0xca, 0x6f, 0x05,
+ 0xd0, 0x4e, 0x13, 0x00, 0x00, 0xfd, 0xfb, 0x6f, 0x62, 0x33, 0x43, 0x83,
+ 0x4c, 0x4f, 0x73, 0x1d, 0x74, 0xf7, 0x3b, 0xbf, 0x45, 0x1c, 0xdc, 0x7b,
+ 0xd4, 0x2d, 0xa7, 0xf3, 0x34, 0xb2, 0xc6, 0x1f, 0x24, 0x13, 0x79, 0x3d,
+ 0x90, 0x6c, 0xce, 0x25, 0x21, 0x81, 0xa5, 0x35, 0xaf, 0xb7, 0xff, 0x27,
+ 0x7e, 0x2d, 0xfc, 0xbb, 0x92, 0xfa, 0x8c, 0x67, 0x88, 0x6c, 0x66, 0x80,
+ 0x75, 0xfc, 0xdd, 0x8c, 0x59, 0x52, 0x42, 0x80, 0x50, 0xd8, 0x7b, 0x18,
+ 0xc2, 0xe5, 0xb7, 0xca, 0x84, 0x38, 0xc7, 0x71, 0xef, 0x78, 0x35, 0x43,
+ 0x31, 0xd0, 0x7e, 0xbd, 0xd3, 0x48, 0xdb, 0x61, 0xba, 0xca, 0xb2, 0x03,
+ 0x17, 0x85, 0x80, 0x8d, 0x56, 0xf7, 0x94, 0xa3, 0x38, 0x69, 0xeb, 0xdf,
+ 0x04, 0x17, 0x79, 0x49, 0x10, 0x0f, 0x28, 0x07, 0x90, 0x8d, 0xa7, 0x9a,
+ 0x63, 0x6f, 0xbe, 0x37, 0xd6, 0x6f, 0x13, 0x70, 0x28, 0xbd, 0x7a, 0x72,
+ 0x61, 0xbc, 0xe8, 0xa2, 0x0d, 0xba, 0xdf, 0x0c, 0x8b, 0xd5, 0x76, 0x83,
+ 0xcc, 0xc5, 0xc6, 0x1f, 0xbf, 0xf9, 0x07, 0xa0, 0xfa, 0x12, 0xfa, 0x23,
+ 0x9b, 0x6e, 0x37, 0x53, 0xb1, 0x1e, 0x53, 0xe9, 0x83, 0x0f, 0x8f, 0x9a,
+ 0xd5, 0xc3, 0xf0, 0x93, 0x06, 0x25, 0x45, 0x41, 0x62, 0x16, 0x03, 0x85,
+ 0x7d, 0x84, 0xa3, 0x05, 0xc4, 0x7e, 0x71, 0xba, 0x4d, 0x68, 0x92, 0xcf,
+ 0xd3, 0xd6, 0xef, 0x03, 0x9e, 0x46, 0x74, 0xa6, 0x66, 0x44, 0x73, 0x09,
+ 0xb5, 0xfc, 0xa7, 0x09, 0x4e, 0x7d, 0x1b, 0xc1, 0xa9, 0x28, 0x66, 0x0b,
+ 0x0c, 0x98, 0x2e, 0xf3, 0xe7, 0x25, 0x8d, 0x56, 0xe7, 0x99, 0x4f, 0x67,
+ 0xd6, 0xf3, 0x30, 0x79, 0xd2, 0x08, 0x17, 0xbc, 0x3d, 0x92, 0xf7, 0xc2,
+ 0x55, 0x8b, 0x8c, 0x0f, 0xc5, 0xbd, 0xd6, 0x0c, 0x20, 0x98, 0xa8, 0x61,
+ 0xf4, 0x60, 0xc3, 0x33, 0x34, 0x94, 0x9f, 0x6e, 0x74, 0xde, 0xb1, 0x59,
+ 0xfb, 0x5f, 0xab, 0xc7, 0x3c, 0xe5, 0x98, 0x2f, 0xaa, 0xd2, 0x59, 0xfa,
+ 0x7a, 0xe2, 0x23, 0x39, 0xb7, 0x65, 0x22, 0x36, 0x16, 0x0a, 0xf4, 0x64,
+ 0xc9, 0x90, 0x30, 0x48, 0x3b, 0x63, 0xf0, 0x8e, 0xc9, 0xa9, 0x56, 0x6b,
+ 0x73, 0xa2, 0x67, 0xe7, 0x8b, 0x13, 0x1d, 0x1a, 0x8b, 0xf2, 0xca, 0x95,
+ 0xe5, 0x09, 0xbd, 0xd8, 0x17, 0x9e, 0x7c, 0xeb, 0x90, 0x4a, 0xfa, 0xf1,
+ 0x61, 0x34, 0xf6, 0xd5, 0x8b, 0x25, 0x5a, 0xfb, 0x25, 0xf2, 0x91, 0xd8,
+ 0xac, 0xbc, 0x43, 0x36, 0xd7, 0xf3, 0x15, 0x8e, 0xcd, 0x5c, 0x23, 0x88,
+ 0x65, 0xbf, 0x95, 0xf6, 0x66, 0xb5, 0x32, 0xd3, 0x9b, 0x7a, 0xe3, 0x2a,
+ 0x67, 0x6c, 0x5b, 0xb7, 0x33, 0x8b, 0x5d, 0x8f, 0xec, 0x5d, 0x06, 0x34,
+ 0xfd, 0x20, 0xc4, 0xb9, 0x52, 0x61, 0x3e, 0xd1, 0x59, 0x7f, 0x4a, 0xd9,
+ 0xc7, 0x06, 0x25, 0x15, 0xfa, 0x54, 0x86, 0x89, 0x53, 0xa6, 0xf9, 0xaa,
+ 0x81, 0x09, 0xf0, 0x00, 0x76, 0xf9, 0xda, 0x62, 0x94, 0xd8, 0xa3, 0xa9,
+ 0x08, 0xde, 0x4d, 0xc5, 0x58, 0xb8, 0x6f, 0x90, 0xe0, 0x24, 0xc6, 0x81,
+ 0xeb, 0x09, 0xbd, 0x81, 0xd8, 0x14, 0xc4, 0x98, 0x2e, 0xfc, 0x29, 0x8c,
+ 0xaa, 0x6a, 0xda, 0xf7, 0x75, 0xfa, 0xe3, 0x9e, 0x74, 0xa8, 0x7a, 0xa2,
+ 0xb0, 0xb0, 0x7e, 0xe3, 0xb2, 0x56, 0xca, 0x3e, 0x5c, 0xbd, 0xb9, 0xe1,
+ 0xed, 0x9f, 0x87, 0x29, 0xa9, 0x04, 0xf3, 0x46, 0xfa, 0x89, 0x42, 0x82,
+ 0x2a, 0xd0, 0x12, 0x6f, 0x5d, 0xa3, 0x97, 0xc2, 0xe6, 0x5e, 0xfc, 0xf8,
+ 0x6a, 0x5a, 0x57, 0x5b, 0xde, 0x6e, 0xf1, 0x37, 0xc4, 0x39, 0xdf, 0xb7,
+ 0xe7, 0x0a, 0xd7, 0x9b, 0xdd, 0xca, 0x6e, 0xf1, 0x67, 0x03, 0x94, 0xee,
+ 0x73, 0xfc, 0xc5, 0xf0, 0x8c, 0x5b, 0xe3, 0xe1, 0x9e, 0x59, 0xdb, 0x93,
+ 0x0e, 0x0a, 0xc9, 0xba, 0xf8, 0xf1, 0xf8, 0x42, 0x88, 0x32, 0x77, 0xe4,
+ 0x73, 0xac, 0x65, 0x5a, 0xf9, 0x89, 0xf9, 0x38, 0xcf, 0x3b, 0x00, 0xaf,
+ 0x90, 0x67, 0xff, 0xe0, 0x28, 0x44, 0x9d, 0xf6, 0xde, 0x82, 0x73, 0xf6,
+ 0x1d, 0xac, 0x4b, 0xcb, 0x53, 0x75, 0x4c, 0x53, 0x56, 0x7e, 0x0d, 0xfe,
+ 0x9f, 0xdf, 0x95, 0x17, 0x7e, 0x3f, 0x0f, 0x90, 0xde, 0x45, 0xb6, 0xf6,
+ 0x9d, 0xbc, 0xf8, 0xf8, 0x48, 0xb3, 0x93, 0x47, 0x79, 0xc2, 0xab, 0x8a,
+ 0x78, 0xa4, 0xaa, 0x62, 0xf4, 0x0e, 0x06, 0xc1, 0x2a, 0x90, 0x59, 0x11,
+ 0x9b, 0xdf, 0xd0, 0xc1, 0x5e, 0xfe, 0x70, 0xe7, 0x91, 0xac, 0x2d, 0x3b,
+ 0xd7, 0x5f, 0x0a, 0xaf, 0x7a, 0xb8, 0x44, 0x81, 0x65, 0x41, 0x07, 0xb0,
+ 0xb1, 0x31, 0xb8, 0x97, 0x27, 0xe8, 0x45, 0xaf, 0x1c, 0xbc, 0x30, 0x59,
+ 0x74, 0x40, 0x95, 0x48, 0x50, 0x32, 0x2b, 0x29, 0xdb, 0xb6, 0x4a, 0xf1,
+ 0xa1, 0x86, 0xb4, 0x28, 0x23, 0xbd, 0xe4, 0x0d, 0x83, 0x8a, 0x16, 0x37,
+ 0xcf, 0x9b, 0x59, 0x31, 0x97, 0x3a, 0xd4, 0xd4, 0x8a, 0xfc, 0x4d, 0xd2,
+ 0x7f, 0x2d, 0xb1, 0x6f, 0x1a, 0x97, 0x06, 0xd8, 0x3a, 0xfd, 0xf1, 0x34,
+ 0x38, 0x56, 0xb2, 0x62, 0x8d, 0x7e, 0x95, 0x21, 0xa2, 0x54, 0xe9, 0xbe,
+ 0x6a, 0x9f, 0x63, 0xf0, 0x46, 0x9c, 0x5b, 0xb0, 0x38, 0xcd, 0x6a, 0x81,
+ 0x85, 0x29, 0x12, 0x2f, 0xf3, 0x48, 0x09, 0xb2, 0xce, 0x96, 0xe4, 0xa4,
+ 0xec, 0x94, 0x05, 0x41, 0x84, 0xaf, 0x47, 0xd9, 0xd5, 0x15, 0xfd, 0x24,
+ 0xef, 0xe3, 0xdf, 0x15, 0x7d, 0x6b, 0x66, 0xa5, 0x08, 0x7b, 0xd8, 0x5c,
+ 0x08, 0x5d, 0x0b, 0xea, 0xac, 0xfc, 0xb9, 0xc2, 0xdd, 0x7f, 0x7e, 0x47,
+ 0x76, 0xca, 0xc9, 0x2c, 0xf0, 0xe5, 0xd1, 0x80, 0x42, 0x3b, 0x85, 0xaa,
+ 0x41, 0x28, 0x81, 0xfd, 0xfc, 0x33, 0x05, 0xde, 0xeb, 0x25, 0xe9, 0x5c,
+ 0xbd, 0xb3, 0x91, 0x51, 0xea, 0xf3, 0x89, 0xdf, 0x44, 0xff, 0x84, 0xef,
+ 0x06, 0xa8, 0x65, 0xa7, 0x1d, 0xba, 0x84, 0x5f, 0x80, 0x9b, 0xa4, 0xec,
+ 0x80, 0xaa, 0x4b, 0x82, 0x46, 0x7e, 0x8a, 0x7d, 0x60, 0xbe, 0x00, 0x10,
+ 0x6c, 0xc8, 0xb4, 0xb5, 0x0b, 0x65, 0xeb, 0xef, 0x0d, 0x9d, 0x0f, 0x23,
+ 0xc5, 0x2e, 0x4d, 0x06, 0xc8, 0x5b, 0xad, 0x17, 0x3b, 0xf6, 0xfc, 0x46,
+ 0x72, 0xdf, 0x3f, 0xc8, 0x6d, 0xef, 0xec, 0xac, 0x2c, 0xc7, 0x4b, 0xf1,
+ 0xec, 0x1c, 0x9f, 0xf7, 0x18, 0xe2, 0x2a, 0x7e, 0xa1, 0x69, 0xfd, 0xaa,
+ 0xae, 0x40, 0x91, 0x8d, 0x16, 0x0b, 0x32, 0x5c, 0x07, 0x1f, 0x83, 0x5e,
+ 0xaf, 0x77, 0xb0, 0x3d, 0x61, 0x5a, 0x3f, 0x6b, 0xf6, 0xcb, 0xc5, 0x9c,
+ 0x0e, 0x54, 0x7b, 0x18, 0x8f, 0xd6, 0xbb, 0xf9, 0x46, 0x9e, 0x6c, 0x3b,
+ 0x9f, 0xd5, 0xf7, 0x5a, 0xbe, 0x31, 0xa8, 0x3f, 0x54, 0x91, 0x94, 0x2b,
+ 0x49, 0x6d, 0xcf, 0x60, 0xe4, 0x2b, 0xf6, 0xcb, 0xc1, 0x0c, 0x16, 0xc3,
+ 0xa0, 0x46, 0xf0, 0x61, 0x94, 0x08, 0x08, 0xcc, 0x88, 0x6a, 0x9d, 0x39,
+ 0x31, 0x9c, 0x1c, 0x16, 0x33, 0x81, 0xc2, 0x45, 0xee, 0x41, 0xd0, 0x23,
+ 0x78, 0x30, 0xca, 0x04, 0x04, 0x66, 0x44, 0x35, 0x4e, 0x9c, 0x98, 0xce,
+ 0x0e, 0x0b, 0x19, 0xc0, 0xe1, 0x22, 0xf7, 0x20, 0xe8, 0x11, 0xbc, 0x18,
+ 0x65, 0x02, 0x02, 0x33, 0x22, 0x1a, 0xa7, 0x4e, 0x4c, 0x67, 0x07, 0x05,
+ 0x8c, 0xe0, 0x70, 0x91, 0x7b, 0x90, 0x74, 0x08, 0xde, 0x0c, 0x32, 0x81,
+ 0x01, 0x19, 0x91, 0x0d, 0x53, 0xa7, 0x26, 0x33, 0x83, 0x82, 0xc6, 0x70,
+ 0x38, 0x48, 0xbd, 0xc8, 0x3a, 0x04, 0x6f, 0x06, 0x1b, 0x71, 0xb0, 0x15,
+ 0x53, 0x70, 0xe5, 0x02, 0x5a, 0x03, 0x7f, 0xda, 0x2c, 0x72, 0x6e, 0xbe,
+ 0xd2, 0xa6, 0xd2, 0x1d, 0x9c, 0xa0, 0xe8, 0x0a, 0x3b, 0x0d, 0x1f, 0x68,
+ 0xea, 0xa5, 0x9d, 0x34, 0x8a, 0x1a, 0xb9, 0xff, 0x3e, 0xcc, 0xe3, 0x29,
+ 0x29, 0x59, 0x61, 0x12, 0x1d, 0x2e, 0x0f, 0xb5, 0xf6, 0xa8, 0x39, 0x65,
+ 0x0e, 0xb8, 0xcd, 0xe5, 0xa9, 0x7d, 0x3a, 0x83, 0xb5, 0xc3, 0xb7, 0xa5,
+ 0x2b, 0xdb, 0xeb, 0x0e, 0x09, 0x8f, 0x28, 0x1e, 0x83, 0x89, 0xd7, 0xfd,
+ 0x69, 0x06, 0xd8, 0x3f, 0x91, 0x17, 0x36, 0x42, 0xa6, 0x2e, 0x6e, 0x39,
+ 0x12, 0x5a, 0x2f, 0x06, 0x1c, 0x0f, 0xaf, 0x97, 0xf5, 0xb0, 0x89, 0x01,
+ 0x11, 0xd4, 0x37, 0x0d, 0xa4, 0xf6, 0x0b, 0x5c, 0x8a, 0xfb, 0x99, 0x99,
+ 0x4a, 0x6e, 0x8a, 0x10, 0xf1, 0xf3, 0x59, 0x85, 0x45, 0xaf, 0x9e, 0x8d,
+ 0x4a, 0x13, 0xd3, 0xad, 0x67, 0x6c, 0x32, 0x11, 0xbe, 0x3e, 0x6f, 0xf5,
+ 0xcf, 0x2e, 0x81, 0x65, 0xb9, 0x79, 0x14, 0x06, 0xc6, 0x8b, 0x00, 0x8a,
+ 0x6b, 0xc2, 0x2b, 0x10, 0x98, 0xae, 0x4f, 0x27, 0x15, 0x0f, 0xf7, 0x1d,
+ 0x49, 0xe0, 0x50, 0x1f, 0x9f, 0xa0, 0xd9, 0x22, 0xd9, 0x3e, 0xfa, 0xce,
+ 0x59, 0x5f, 0x46, 0x9d, 0x33, 0x8a, 0x7b, 0xb6, 0x9c, 0xd3, 0xa6, 0x7d,
+ 0x5c, 0xd5, 0xed, 0xa8, 0x0d, 0x97, 0xec, 0x93, 0x33, 0xa4, 0xbc, 0x2e,
+ 0x32, 0x01, 0x07, 0xb6, 0x4a, 0xbd, 0x05, 0xdd, 0x8f, 0xdd, 0xad, 0xce,
+ 0x39, 0x59, 0xe4, 0x9b, 0x4d, 0x4f, 0xac, 0x78, 0x21, 0xb7, 0x27, 0x47,
+ 0x8e, 0xc6, 0x0d, 0x95, 0xa9, 0x4d, 0x58, 0x32, 0x57, 0xb9, 0x96, 0x63,
+ 0xc0, 0x93, 0x19, 0x3c, 0x45, 0x3c, 0xa6, 0x1e, 0xe8, 0x60, 0x92, 0x16,
+ 0x78, 0x61, 0x40, 0x24, 0xea, 0x3b, 0x16, 0xa7, 0x46, 0x67, 0xa1, 0x66,
+ 0x4f, 0xcd, 0x87, 0xb1, 0xe2, 0xf8, 0xad, 0xa4, 0x03, 0x02, 0xd4, 0xf1,
+ 0x2c, 0x1c, 0x84, 0xe0, 0x46, 0xfb, 0x12, 0xf9, 0x07, 0xb0, 0x93, 0xa7,
+ 0xc4, 0xfc, 0xf7, 0xb9, 0x94, 0xaf, 0x51, 0xad, 0x93, 0xaa, 0xc9, 0x8e,
+ 0x1a, 0xf0, 0x1a, 0x76, 0x8b, 0x16, 0xc9, 0x0d, 0xab, 0xf9, 0xc9, 0x53,
+ 0x57, 0x63, 0x04, 0xbf, 0x8a, 0xa4, 0xc3, 0xe4, 0x0f, 0xa3, 0x17, 0x84,
+ 0xda, 0x27, 0x92, 0x66, 0x01, 0xe8, 0xf0, 0x80, 0xeb, 0x3b, 0x6e, 0x47,
+ 0x74, 0x4a, 0xea, 0xda, 0x22, 0xd4, 0x71, 0x30, 0x7d, 0x51, 0xcc, 0xff,
+ 0x0f, 0x24, 0x50, 0xf7, 0x04, 0x2b, 0x15, 0x4c, 0x3b, 0x48, 0xe7, 0xde,
+ 0xf2, 0xad, 0x4d, 0x08, 0x93, 0xc7, 0x2b, 0x42, 0xd2, 0x26, 0xb8, 0xdc,
+ 0x0f, 0xbf, 0x15, 0xc5, 0xde, 0x70, 0x01, 0x9e, 0x1a, 0xcf, 0x3b, 0xe1,
+ 0xe5, 0xae, 0x31, 0x7e, 0x8f, 0x58, 0x06, 0x23, 0x4b, 0x14, 0xb3, 0xc1,
+ 0xc8, 0xbe, 0x65, 0x6a, 0x76, 0x7c, 0x90, 0xb9, 0xf0, 0x30, 0x24, 0x67,
+ 0x1b, 0x84, 0x03, 0xf6, 0x2c, 0xbe, 0x46, 0xc9, 0x68, 0x2a, 0x51, 0x33,
+ 0xc1, 0x47, 0xba, 0xa7, 0x75, 0x58, 0x25, 0xe1, 0xc9, 0xc1, 0x9b, 0xb3,
+ 0x66, 0xad, 0x08, 0x7e, 0x3f, 0x67, 0x4c, 0x57, 0xc6, 0x4e, 0x88, 0xfe,
+ 0xfa, 0xcc, 0xb5, 0xad, 0x5b, 0xe3, 0x58, 0xf8, 0xd1, 0xdb, 0xa4, 0x5d,
+ 0xa4, 0x48, 0x29, 0xb9, 0xaf, 0x9b, 0x78, 0x66, 0x71, 0x46, 0xa2, 0xd8,
+ 0x37, 0xb2, 0x8a, 0xab, 0xa6, 0x28, 0xd1, 0xde, 0x19, 0xbf, 0x8d, 0x22,
+ 0x63, 0x17, 0xeb, 0xc5, 0xbb, 0x30, 0x52, 0xbc, 0x4a, 0x2b, 0xea, 0x5e,
+ 0xe7, 0x44, 0x59, 0x0e, 0x18, 0x6f, 0xcf, 0xf6, 0x6f, 0x4d, 0x5c, 0xc9,
+ 0x82, 0x10, 0xc7, 0x67, 0xc3, 0x39, 0xf6, 0xcd, 0x9e, 0x31, 0x40, 0x62,
+ 0xab, 0x37, 0xe6, 0x45, 0x1e, 0x76, 0x18, 0x77, 0x96, 0xaf, 0xab, 0x26,
+ 0x74, 0xec, 0x57, 0x3f, 0x75, 0x8a, 0x69, 0xef, 0x0a, 0x22, 0xcc, 0xb1,
+ 0xcd, 0x2e, 0x26, 0x06, 0x6d, 0x33, 0x3a, 0x66, 0x92, 0x02, 0x0a, 0xfc,
+ 0x50, 0x82, 0x78, 0x7d, 0xd3, 0xdd, 0x04, 0x2f, 0xdf, 0x6d, 0xb1, 0x84,
+ 0xd7, 0xd8, 0x99, 0x84, 0xcd, 0x66, 0xcf, 0x40, 0x23, 0xe5, 0xea, 0x62,
+ 0xef, 0x9a, 0xc1, 0x38, 0xf6, 0x39, 0x60, 0x5a, 0x1e, 0x97, 0xca, 0x2f,
+ 0x49, 0x4e, 0x84, 0xf2, 0x8f, 0x7c, 0x40, 0x57, 0xaf, 0xe0, 0xb5, 0x29,
+ 0x94, 0x9e, 0xb6, 0x67, 0x4c, 0xc1, 0xa5, 0x58, 0x92, 0x70, 0xcf, 0x6b,
+ 0x39, 0x45, 0x46, 0x40, 0x89, 0x62, 0x31, 0x59, 0xb1, 0xdf, 0xad, 0x49,
+ 0xc4, 0xe3, 0xe7, 0x12, 0x66, 0xa7, 0x5e, 0x53, 0x67, 0x0b, 0x08, 0x27,
+ 0xb5, 0x2c, 0x93, 0x34, 0x70, 0xfe, 0x12, 0xb1, 0x0f, 0xf5, 0xc9, 0x65,
+ 0x03, 0x8c, 0x28, 0x39, 0xa8, 0x9e, 0x84, 0xf5, 0xca, 0x17, 0x93, 0xcc,
+ 0xcd, 0xa7, 0xf7, 0xf0, 0xcd, 0x98, 0x94, 0x4d, 0x69, 0xa2, 0xd5, 0xc5,
+ 0xb4, 0x75, 0x90, 0xb2, 0x5e, 0xd6, 0xe3, 0xa5, 0xa9, 0xbb, 0xd4, 0xdb,
+ 0x69, 0x83, 0xd9, 0x5e, 0x2e, 0xb3, 0xb2, 0xf8, 0xa9, 0x67, 0xd8, 0x86,
+ 0xdd, 0x8c, 0x98, 0x42, 0x08, 0x3d, 0x20, 0xfc, 0x7f, 0x7f, 0x3a, 0xc7,
+ 0x9a, 0x8f, 0x2e, 0x2b, 0x3e, 0xf9, 0xcf, 0x4d, 0x9d, 0x1f, 0xaf, 0xbd,
+ 0xd2, 0x99, 0x06, 0x74, 0x7a, 0xdd, 0x14, 0x91, 0x83, 0xf4, 0x41, 0x80,
+ 0x13, 0x45, 0x8c, 0xbf, 0x45, 0x50, 0x7d, 0x0a, 0x59, 0x4f, 0x74, 0xce,
+ 0xfe, 0x16, 0x57, 0x52, 0x17, 0xee, 0xaa, 0xea, 0x62, 0xba, 0x7d, 0x10,
+ 0xc8, 0xb8, 0xed, 0x1a, 0x92, 0x9a, 0xd2, 0xe8, 0x6e, 0x5b, 0x1f, 0xd2,
+ 0xf0, 0x4f, 0xb9, 0x55, 0xf1, 0xea, 0x75, 0xdb, 0xb3, 0xa1, 0xdc, 0x4d,
+ 0xac, 0x0c, 0x62, 0x94, 0xfa, 0xb0, 0x4c, 0x48, 0x8d, 0xff, 0xcd, 0xac,
+ 0x72, 0x26, 0xf3, 0x3b, 0x29, 0x2e, 0xc0, 0xac, 0xcc, 0x84, 0x0e, 0x57,
+ 0x66, 0xe0, 0x44, 0x1f, 0xa9, 0xfe, 0x79, 0xd7, 0x59, 0xad, 0x24, 0x8c,
+ 0x7d, 0x07, 0x48, 0xa7, 0x1b, 0x23, 0x69, 0x0f, 0x32, 0xc5, 0x7c, 0xcb,
+ 0xb5, 0x80, 0xfd, 0x6b, 0x1f, 0x97, 0xb6, 0x6d, 0x58, 0xb5, 0xb9, 0x7c,
+ 0x4b, 0x31, 0xd8, 0xd2, 0x6b, 0xce, 0xa6, 0x3d, 0xa9, 0x19, 0xb6, 0xd4,
+ 0x74, 0x9d, 0x2a, 0x47, 0x13, 0x23, 0x44, 0x09, 0xf6, 0x7b, 0xd6, 0xc1,
+ 0x67, 0x0b, 0x00, 0xd2, 0x2c, 0x58, 0xae, 0xc5, 0xe7, 0x6a, 0xea, 0x3d,
+ 0xcd, 0x3a, 0xf0, 0xd5, 0x08, 0x42, 0x38, 0xf1, 0xd3, 0xa2, 0xa0, 0x67,
+ 0x27, 0xa7, 0xbc, 0xa7, 0x6e, 0x3b, 0x6c, 0x39, 0xf9, 0x60, 0x2e, 0x1d,
+ 0x6e, 0x94, 0x2f, 0xd6, 0x50, 0xcf, 0xa8, 0x7b, 0x2a, 0x5d, 0x78, 0xbe,
+ 0xac, 0x6d, 0x1d, 0xf5, 0x9c, 0xb3, 0x53, 0x83, 0x2d, 0x7d, 0x47, 0xc3,
+ 0x42, 0xa9, 0x55, 0x3f, 0x92, 0x5d, 0xb5, 0x4f, 0x06, 0x08, 0x2d, 0xb2,
+ 0x88, 0x70, 0x8e, 0xa4, 0x8d, 0x75, 0xb2, 0x59, 0xd5, 0x98, 0xb2, 0x1e,
+ 0x0d, 0x19, 0xd2, 0xe0, 0x4b, 0xea, 0x8b, 0x53, 0x83, 0x00, 0x18, 0xee,
+ 0x19, 0x4c, 0xde, 0xd9, 0x2f, 0x36, 0x6d, 0xb4, 0x55, 0x7a, 0x8c, 0xd4,
+ 0xb7, 0x22, 0x4d, 0xdc, 0x08, 0x00, 0xd6, 0x17, 0xb1, 0x58, 0xbc, 0x66,
+ 0x9c, 0x90, 0x1e, 0xdf, 0x65, 0x3d, 0x58, 0xb1, 0x4e, 0xa3, 0x6b, 0x60,
+ 0xde, 0x47, 0xdb, 0x42, 0xe4, 0x1f, 0x86, 0x71, 0x07, 0xfe, 0x4e, 0x85,
+ 0xed, 0x50, 0x50, 0x0f, 0x2c, 0xfe, 0x08, 0xaa, 0xfb, 0x97, 0xec, 0x6c,
+ 0x54, 0xd5, 0xdc, 0x98, 0x13, 0xea, 0x02, 0x50, 0x83, 0x78, 0x1f, 0xef,
+ 0x3b, 0xfc, 0x9e, 0x8f, 0x02, 0x73, 0x15, 0xb7, 0x10, 0x98, 0x09, 0x25,
+ 0x09, 0x5d, 0xf1, 0xab, 0x09, 0xeb, 0xf8, 0x9f, 0x07, 0x06, 0xa7, 0xc5,
+ 0x3d, 0x51, 0xf9, 0xff, 0x2d, 0x1c, 0x2a, 0x89, 0x3f, 0x6d, 0xed, 0x93,
+ 0xad, 0x92, 0x01, 0x0e, 0xb5, 0xb1, 0xf8, 0xec, 0x6b, 0xd4, 0xac, 0x52,
+ 0x27, 0xe2, 0x13, 0xa0, 0x17, 0x71, 0x00, 0xd2, 0x19, 0x9c, 0x9b, 0x5c,
+ 0x1f, 0xae, 0xcf, 0x5e, 0xcc, 0x78, 0x5c, 0xbb, 0x9e, 0x4a, 0x20, 0x63,
+ 0x3f, 0xdd, 0x70, 0xbc, 0x9d, 0xfa, 0x11, 0xc0, 0x5e, 0x8a, 0x42, 0x3e,
+ 0xd3, 0x20, 0xe2, 0x55, 0xc0, 0x53, 0x8d, 0xb9, 0x15, 0x37, 0xe3, 0x29,
+ 0x8f, 0xbf, 0x1b, 0x37, 0xcd, 0x6d, 0x64, 0xce, 0xfb, 0x1c, 0xda, 0xe9,
+ 0x11, 0x4c, 0x57, 0x27, 0xfa, 0x00, 0xc4, 0x4c, 0xd1, 0x9c, 0x45, 0x0d,
+ 0xc4, 0xf5, 0xc1, 0xa6, 0x5e, 0x55, 0x4f, 0x48, 0x88, 0xba, 0x80, 0x77,
+ 0xe7, 0x82, 0x3a, 0x6b, 0x7f, 0x1c, 0x6d, 0xa8, 0x16, 0x8c, 0xcf, 0xcb,
+ 0x00, 0xb4, 0x3f, 0x4b, 0x8a, 0xec, 0x4d, 0x58, 0x80, 0xeb, 0x10, 0xbf,
+ 0x7f, 0x8b, 0xd3, 0xe4, 0xa4, 0xea, 0x1b, 0x8c, 0x8d, 0x42, 0xa1, 0xbe,
+ 0xdc, 0xc7, 0x18, 0xd1, 0x5a, 0x9c, 0xfb, 0x75, 0xee, 0x3f, 0x2c, 0xbe,
+ 0x1c, 0x2e, 0xa8, 0x19, 0xd5, 0xe2, 0x92, 0x7c, 0x4d, 0x45, 0x43, 0xc1,
+ 0x58, 0x6e, 0x22, 0xe1, 0x1d, 0x48, 0xc1, 0x13, 0xbf, 0x69, 0x6b, 0xe1,
+ 0xe5, 0x35, 0x9b, 0x6a, 0x13, 0xdc, 0xfc, 0xd2, 0x07, 0x70, 0x06, 0xc5,
+ 0xb8, 0xf4, 0xc9, 0xc1, 0x28, 0x97, 0x87, 0x51, 0xd1, 0x65, 0xf4, 0xe3,
+ 0x19, 0x0e, 0x06, 0xa5, 0x69, 0x3c, 0xf9, 0xfd, 0x75, 0x27, 0x8f, 0xfc,
+ 0xf4, 0x94, 0x3f, 0x96, 0x20, 0x28, 0x6a, 0x8c, 0x20, 0x4b, 0x50, 0xb0,
+ 0xc9, 0x84, 0x29, 0xb2, 0x47, 0x69, 0x9b, 0xab, 0x67, 0x65, 0x5a, 0xf0,
+ 0x39, 0xd4, 0xeb, 0x40, 0x96, 0xa3, 0x37, 0xc3, 0xcf, 0xb1, 0x4e, 0x6d,
+ 0x0f, 0x07, 0xe9, 0x73, 0x8e, 0x06, 0xd0, 0x68, 0xff, 0x95, 0xe3, 0x6a,
+ 0x74, 0xb8, 0xf6, 0x1e, 0x8b, 0xec, 0x95, 0xba, 0x62, 0x8e, 0x53, 0xf4,
+ 0xed, 0x20, 0x6e, 0x54, 0xad, 0xc8, 0xa7, 0x86, 0x29, 0xeb, 0x4e, 0x52,
+ 0x0b, 0x86, 0x5a, 0xa8, 0x7c, 0x41, 0xb7, 0xaa, 0x9d, 0x33, 0xd2, 0xb1,
+ 0x90, 0x39, 0x8d, 0xe7, 0xf7, 0x08, 0xc2, 0xb6, 0xc0, 0xae, 0xc3, 0xcf,
+ 0x23, 0x11, 0x33, 0x0d, 0x8f, 0xe1, 0x52, 0x1f, 0xa6, 0x0d, 0xf3, 0x70,
+ 0xcd, 0x4f, 0x39, 0x41, 0x43, 0x15, 0x86, 0xb6, 0xe3, 0xa9, 0x35, 0x28,
+ 0x79, 0x27, 0x8e, 0x6b, 0x53, 0x6f, 0x5f, 0x4d, 0x0a, 0x89, 0x88, 0x20,
+ 0x66, 0x0b, 0x29, 0x23, 0xe7, 0xfd, 0xd2, 0x4d, 0x8d, 0x45, 0x89, 0x9b,
+ 0xfb, 0x79, 0xc7, 0x21, 0xbb, 0x61, 0x44, 0xbd, 0x38, 0x4f, 0x63, 0xb8,
+ 0x9c, 0x93, 0xf6, 0x34, 0x7a, 0x69, 0x9a, 0x72, 0x84, 0x4a, 0x21, 0x21,
+ 0x06, 0x11, 0x86, 0xb4, 0x51, 0x17, 0x1d, 0x99, 0x5c, 0x8b, 0x89, 0xe7,
+ 0xe5, 0xb6, 0x89, 0x7b, 0xf1, 0x9a, 0x01, 0x60, 0x1b, 0xdb, 0x8d, 0x32,
+ 0xfb, 0xfb, 0xc7, 0x01, 0x2b, 0x67, 0x6d, 0xb1, 0x82, 0xba, 0x21, 0x12,
+ 0x9b, 0xc3, 0xbc, 0x2f, 0xc2, 0x99, 0xf1, 0xcc, 0x05, 0x1a, 0x99, 0xc7,
+ 0x97, 0xeb, 0xbe, 0xbd, 0x33, 0x11, 0xce, 0xcd, 0xa0, 0x85, 0x38, 0xf5,
+ 0xdd, 0x58, 0x92, 0xb9, 0xde, 0xff, 0x24, 0x82, 0xcb, 0x34, 0xdc, 0x90,
+ 0xe6, 0xf4, 0x57, 0x51, 0xe9, 0x4f, 0x60, 0xb5, 0xb4, 0x55, 0xce, 0xa5,
+ 0xa1, 0xdc, 0x8b, 0xc2, 0x6f, 0xe6, 0x58, 0x80, 0xc9, 0xcf, 0xe7, 0x7a,
+ 0xc7, 0xae, 0x6c, 0xf4, 0x93, 0xff, 0x40, 0x60, 0x66, 0x59, 0xd3, 0x02,
+ 0x25, 0x23, 0xd6, 0xa5, 0x3d, 0x2d, 0x7e, 0xbe, 0x34, 0x9e, 0x0e, 0x84,
+ 0xbb, 0x34, 0xad, 0xf1, 0x57, 0x0a, 0x4c, 0x13, 0xff, 0x7c, 0xbb, 0x86,
+ 0xb2, 0x4a, 0x36, 0xcd, 0xe7, 0xd6, 0xfd, 0x2b, 0xd9, 0x45, 0x26, 0xd5,
+ 0xdd, 0x33, 0x9a, 0x58, 0xe5, 0xef, 0x67, 0x7d, 0xa1, 0x4c, 0x7a, 0x91,
+ 0xd7, 0x0b, 0xe6, 0xdb, 0x35, 0x20, 0x66, 0xe4, 0xee, 0x00, 0x0c, 0x17,
+ 0x52, 0x33, 0xb1, 0xce, 0xb4, 0x5e, 0xbc, 0x7c, 0x1c, 0xe1, 0x14, 0x23,
+ 0xc8, 0x28, 0x15, 0x7b, 0xa9, 0xba, 0x77, 0x1d, 0x41, 0xfb, 0x1d, 0x17,
+ 0x98, 0xd9, 0x36, 0x30, 0x4f, 0xe7, 0x05, 0x8e, 0xc6, 0x02, 0xa7, 0x8f,
+ 0xce, 0xc4, 0xbc, 0x30, 0xd8, 0xf2, 0xa8, 0x36, 0x3d, 0xa6, 0xd4, 0x29,
+ 0x94, 0x56, 0xeb, 0x96, 0x05, 0x9b, 0xdd, 0xa7, 0x5a, 0x3e, 0x48, 0x83,
+ 0x86, 0xa9, 0x56, 0x86, 0x89, 0x80, 0x0f, 0x46, 0x3f, 0x97, 0xbb, 0xd9,
+ 0x0a, 0x99, 0xb1, 0x40, 0x27, 0xab, 0x71, 0x69, 0xde, 0xf3, 0xec, 0xc8,
+ 0x5f, 0x8b, 0x08, 0xce, 0x9a, 0x85, 0x41, 0xe5, 0x57, 0x65, 0x74, 0xf5,
+ 0x62, 0x42, 0x1b, 0x64, 0x8a, 0x90, 0xfa, 0xaf, 0x35, 0x28, 0x25, 0xea,
+ 0x43, 0xae, 0xbe, 0xc3, 0xc8, 0x09, 0xb7, 0xb3, 0x74, 0x6a, 0xff, 0xf2,
+ 0x93, 0x61, 0xf0, 0x21, 0x00, 0x49, 0xa6, 0x7e, 0xa8, 0x46, 0x44, 0x7e,
+ 0xf4, 0x0a, 0xa7, 0xba, 0x2c, 0xd4, 0x02, 0x28, 0x09, 0xb1, 0x30, 0x0e,
+ 0x86, 0xef, 0x8f, 0x92, 0xdd, 0xdf, 0xa9, 0x3d, 0x61, 0x46, 0x5a, 0xf8,
+ 0x89, 0xf2, 0xb8, 0x23, 0xe7, 0x75, 0x57, 0xf0, 0xe1, 0xde, 0xc5, 0x02,
+ 0xe6, 0xc2, 0x96, 0xcc, 0x39, 0x07, 0x42, 0xed, 0x41, 0x2b, 0x32, 0x25,
+ 0x77, 0x28, 0x3a, 0x02, 0x8e, 0xc0, 0x67, 0xaa, 0x07, 0xf3, 0xf8, 0x92,
+ 0x0c, 0x6f, 0xf4, 0x99, 0xde, 0x05, 0xf0, 0x80, 0x8a, 0x6f, 0x99, 0x25,
+ 0xf0, 0xb8, 0x9d, 0xa6, 0x9f, 0x28, 0x5c, 0x94, 0x71, 0x23, 0x28, 0x98,
+ 0x06, 0xb3, 0x67, 0x2c, 0xe8, 0xd3, 0xa6, 0x6e, 0x61, 0xc8, 0x3a, 0x17,
+ 0x6a, 0x09, 0x59, 0x91, 0x2b, 0xb9, 0x41, 0xd0, 0x14, 0x76, 0x09, 0xe5,
+ 0x64, 0xa7, 0xc3, 0x4b, 0x56, 0xed, 0xbe, 0x55, 0xbe, 0x29, 0xd7, 0xcb,
+ 0xc6, 0x19, 0xc8, 0x6e, 0x7b, 0xe1, 0x0a, 0x32, 0x3b, 0xd1, 0x13, 0x50,
+ 0x06, 0xd1, 0xff, 0x7c, 0xde, 0x8f, 0x39, 0xc0, 0x39, 0xf7, 0x7a, 0xf4,
+ 0x27, 0x17, 0x98, 0x69, 0x5e, 0xe6, 0x51, 0x73, 0x2c, 0x40, 0xe6, 0x37,
+ 0x9f, 0xdc, 0x23, 0x0a, 0xdb, 0x02, 0xc3, 0x4d, 0x69, 0x06, 0x9d, 0xd5,
+ 0x71, 0x57, 0xd0, 0xbe, 0x11, 0x80, 0x72, 0xcd, 0xbf, 0x0a, 0xf1, 0xe5,
+ 0xb7, 0xfb, 0x62, 0x4c, 0x58, 0x2b, 0x34, 0x69, 0xb2, 0x9b, 0xe3, 0xeb,
+ 0x9e, 0x81, 0xee, 0xae, 0x08, 0x72, 0xf9, 0xb0, 0x98, 0x9c, 0x9d, 0x42,
+ 0xc6, 0xea, 0x83, 0x88, 0x62, 0x63, 0x03, 0x41, 0xef, 0xa3, 0xf4, 0x8e,
+ 0xaa, 0xce, 0x12, 0xff, 0x81, 0x8b, 0x76, 0x3d, 0x11, 0x32, 0xcf, 0x8b,
+ 0x3c, 0xed, 0xad, 0x28, 0xba, 0xc3, 0x77, 0xab, 0x13, 0xd3, 0xbc, 0xa1,
+ 0x9f, 0xab, 0x8f, 0xa1, 0x17, 0x8a, 0x53, 0x2d, 0x20, 0x99, 0x63, 0x29,
+ 0xfe, 0x34, 0xa9, 0xf5, 0xb3, 0x70, 0x66, 0x7d, 0xf2, 0x72, 0x64, 0xff,
+ 0x5d, 0x0c, 0x26, 0xd1, 0x31, 0xf8, 0x74, 0x70, 0xcc, 0x8f, 0xd9, 0xa9,
+ 0x7b, 0x4c, 0x13, 0xcc, 0x28, 0xde, 0xe9, 0xa7, 0x56, 0x1f, 0x5f, 0x16,
+ 0x54, 0xe4, 0x48, 0xe2, 0x79, 0xb6, 0x97, 0xfc, 0x70, 0x43, 0xf1, 0x58,
+ 0xf8, 0x35, 0xe8, 0xc1, 0x5d, 0x18, 0xf8, 0x0b, 0x85, 0x99, 0x74, 0x8e,
+ 0xa7, 0xd6, 0xcd, 0xc1, 0x99, 0xf7, 0xc9, 0xc2, 0x9e, 0x93, 0x52, 0x73,
+ 0xb1, 0x25, 0xf4, 0xfc, 0x51, 0x7f, 0x72, 0xe3, 0x71, 0x2e, 0x74, 0x8c,
+ 0xd9, 0xfe, 0xba, 0x18, 0x4d, 0x6e, 0xb6, 0x83, 0x83, 0x3a, 0x2a, 0x76,
+ 0x8f, 0x87, 0x51, 0xcb, 0x69, 0xf5, 0xb3, 0x73, 0x3d, 0x30, 0x09, 0xe3,
+ 0x14, 0x6f, 0x4f, 0x82, 0xf5, 0x3b, 0xb4, 0x29, 0xf5, 0xb3, 0x70, 0x66,
+ 0x7d, 0xf2, 0x72, 0x65, 0x37, 0x86, 0x65, 0xd9, 0x89, 0x5d, 0x2f, 0xe4,
+ 0xac, 0xb3, 0x84, 0x69, 0x57, 0x5e, 0x34, 0xdc, 0xcf, 0x73, 0x8c, 0x46,
+ 0x3b, 0xc5, 0x84, 0x56, 0x6b, 0xdf, 0x26, 0x3f, 0xe2, 0x61, 0x5d, 0x3b,
+ 0xdc, 0xd6, 0x0e, 0xf3, 0xdf, 0xa5, 0x59, 0x0c, 0x10, 0x0d, 0xf3, 0x7b,
+ 0xe3, 0xe1, 0x84, 0xf6, 0x71, 0x98, 0xe0, 0x84, 0xfb, 0xb9, 0x92, 0x7b,
+ 0x05, 0xab, 0x2f, 0xb1, 0x82, 0x01, 0xbe, 0x6f, 0x7c, 0x7c, 0x30, 0x9e,
+ 0xcc, 0x58, 0xd2, 0x19, 0x92, 0xca, 0x64, 0x19, 0xc3, 0x42, 0x64, 0x2f,
+ 0xce, 0x80, 0x30, 0xde, 0x02, 0xe0, 0x14, 0x99, 0x14, 0xee, 0x9e, 0x31,
+ 0xa9, 0xf4, 0x4d, 0xc3, 0xa6, 0x30, 0xc2, 0x48, 0xeb, 0x00, 0xe0, 0x7b,
+ 0xe2, 0x54, 0x33, 0xcf, 0xf7, 0x58, 0xb0, 0x08, 0x77, 0x3d, 0x2f, 0xdf,
+ 0xc2, 0x47, 0xef, 0xdf, 0x0e, 0x3d, 0x61, 0xed, 0x1f, 0x2e, 0xc8, 0xc4,
+ 0x37, 0x26, 0xa5, 0x11, 0x92, 0x23, 0x83, 0xe8, 0xc1, 0x25, 0x42, 0x27,
+ 0x23, 0xb4, 0x47, 0x06, 0xa4, 0xa7, 0x26, 0x74, 0x13, 0x0f, 0xbc, 0xbc,
+ 0xb9, 0x05, 0x2c, 0xfa, 0xa9, 0x76, 0xa2, 0x24, 0x5a, 0x8f, 0x92, 0x49,
+ 0xd5, 0xb7, 0x82, 0x2a, 0x6e, 0x8e, 0xc1, 0x50, 0xc4, 0x1f, 0xe0, 0xeb,
+ 0xb1, 0x68, 0xe5, 0xea, 0x89, 0xf6, 0xa2, 0xe4, 0x33, 0x3e, 0xf9, 0x38,
+ 0xa3, 0xe0, 0x1e, 0x03, 0x05, 0xeb, 0x8c, 0x30, 0xf4, 0xa2, 0x38, 0x1b,
+ 0x14, 0x71, 0x9f, 0x90, 0x50, 0x50, 0xc5, 0x34, 0x90, 0x32, 0x7c, 0xca,
+ 0x9e, 0x26, 0x9e, 0x3e, 0x00, 0x22, 0x50, 0xe7, 0xdb, 0x32, 0x4e, 0x70,
+ 0xbb, 0x05, 0x68, 0x8e, 0xaf, 0xc8, 0x82, 0xdc, 0x57, 0x90, 0xcb, 0x24,
+ 0xf0, 0xd1, 0x92, 0x2b, 0x00, 0x8e, 0xf7, 0xfb, 0x0f, 0x38, 0xc4, 0xa0,
+ 0xab, 0x0c, 0xa2, 0xa9, 0x01, 0x66, 0x51, 0x52, 0x2f, 0x6b, 0x53, 0x29,
+ 0x8c, 0xf3, 0x8a, 0xc1, 0x54, 0xed, 0x39, 0x48, 0xf7, 0x89, 0x9d, 0x68,
+ 0x86, 0x5c, 0xf9, 0x95, 0x3b, 0x15, 0x23, 0x46, 0xc7, 0x9e, 0x35, 0x4e,
+ 0x66, 0x65, 0x60, 0xb3, 0x4e, 0x2b, 0x64, 0x5a, 0xdd, 0xcd, 0x52, 0xae,
+ 0xa3, 0x0e, 0x4e, 0xef, 0x1b, 0xc1, 0x28, 0xbc, 0x4f, 0x8a, 0x7f, 0x53,
+ 0x78, 0xbe, 0x74, 0x86, 0x2c, 0xf8, 0x67, 0x59, 0xc3, 0x9b, 0xd2, 0xdf,
+ 0xd9, 0x9d, 0xa2, 0x35, 0xba, 0xdf, 0x28, 0x4f, 0x06, 0x5e, 0xca, 0x67,
+ 0xd1, 0xc7, 0x69, 0x24, 0x94, 0x8c, 0xda, 0x3d, 0xfb, 0xf8, 0xaa, 0x85,
+ 0xe0, 0xb3, 0x68, 0x76, 0xf0, 0x8e, 0xa0, 0xb6, 0x57, 0x73, 0x43, 0xe5,
+ 0x9d, 0xa0, 0x4b, 0xa6, 0xaa, 0x57, 0x38, 0x5f, 0x2c, 0x3a, 0xbb, 0xe4,
+ 0xb6, 0x24, 0x5c, 0xad, 0x8d, 0x2e, 0x33, 0x63, 0x74, 0xd2, 0xde, 0x31,
+ 0xe9, 0x02, 0xf9, 0xdb, 0x95, 0x82, 0x22, 0xdd, 0x4a, 0x13, 0x88, 0x10,
+ 0x57, 0x21, 0x8a, 0x6c, 0xb5, 0x64, 0x53, 0xc8, 0x78, 0x0b, 0x55, 0x3f,
+ 0x4f, 0x07, 0xbd, 0xde, 0x72, 0x08, 0xc6, 0x90, 0x41, 0x34, 0x28, 0xaa,
+ 0xdc, 0xb9, 0x63, 0x13, 0x8b, 0x6e, 0xe6, 0x65, 0x31, 0x53, 0xf0, 0xde,
+ 0xc2, 0x64, 0x86, 0xb5, 0x98, 0x7a, 0xc4, 0x82, 0x97, 0xb8, 0xd4, 0x14,
+ 0xeb, 0xe0, 0x0b, 0xe9, 0x3c, 0x4f, 0x29, 0x8f, 0xad, 0x8e, 0x9d, 0x2a,
+ 0x1e, 0xa9, 0x5e, 0x6d, 0x70, 0x58, 0x64, 0xd3, 0xee, 0x50, 0xb6, 0x9b,
+ 0xb2, 0xa3, 0xa9, 0x97, 0xc7, 0x74, 0x9c, 0x25, 0x87, 0x84, 0x77, 0x4a,
+ 0x5c, 0xb6, 0xbc, 0xd7, 0x1d, 0x80, 0x37, 0x84, 0x7e, 0x82, 0x03, 0x3b,
+ 0xec, 0x54, 0x83, 0x61, 0xb2, 0xc7, 0x50, 0x4b, 0x4a, 0xd5, 0x61, 0x14,
+ 0xc9, 0xad, 0xb2, 0x4d, 0x20, 0x9c, 0xd0, 0x67, 0xcb, 0xd4, 0x26, 0xcb,
+ 0x28, 0x3f, 0x23, 0xc2, 0x27, 0xa8, 0x0b, 0x89, 0x9d, 0xf7, 0x4d, 0x24,
+ 0xdd, 0x96, 0x8c, 0xea, 0xa0, 0xe4, 0x1d, 0x0b, 0x47, 0x7d, 0x67, 0x2c,
+ 0xd4, 0xe7, 0xeb, 0xa1, 0x84, 0xda, 0x26, 0x59, 0xf3, 0x02, 0xff, 0xd1,
+ 0xce, 0x32, 0x08, 0x5a, 0xe9, 0xeb, 0x08, 0x0e, 0x6a, 0x05, 0xbc, 0x5c,
+ 0x67, 0x7b, 0x73, 0x0b, 0xce, 0xd9, 0xcd, 0x4d, 0x61, 0x01, 0xcd, 0xb0,
+ 0x83, 0x28, 0xc6, 0xdc, 0x52, 0xc6, 0x0f, 0xf1, 0x9d, 0x8e, 0x2d, 0xa8,
+ 0xbe, 0xea, 0xdc, 0xc2, 0xf3, 0xb6, 0x8e, 0x58, 0x6c, 0x4a, 0x91, 0x92,
+ 0x66, 0xb8, 0xb9, 0xfa, 0xd3, 0xd6, 0x10, 0x1c, 0xd2, 0xf8, 0x67, 0x20,
+ 0x56, 0x0a, 0xf3, 0x0b, 0xce, 0xd9, 0xc6, 0x4c, 0x85, 0xa0, 0xcf, 0xc4,
+ 0x6f, 0x17, 0x19, 0xdc, 0x25, 0xf0, 0x77, 0x7b, 0x2a, 0x60, 0xe1, 0xb0,
+ 0xf5, 0x9d, 0x2c, 0x60, 0xff, 0x19, 0xd8, 0x59, 0xc8, 0x15, 0x80, 0x9c,
+ 0xe9, 0x61, 0xe3, 0x3b, 0x0b, 0x39, 0x02, 0xb0, 0x13, 0x9d, 0x2c, 0x3c,
+ 0x67, 0x61, 0x67, 0x20, 0x56, 0x02, 0x73, 0xa5, 0x87, 0x8c, 0xec, 0x2c,
+ 0xe4, 0x0a, 0xc0, 0x2b, 0xcc, 0x2f, 0x3b, 0x68, 0xe0, 0xe1, 0xb0, 0xf5,
+ 0x98, 0x7c, 0xfb, 0x28, 0xc6, 0xe2, 0x51, 0x72, 0x49, 0xfd, 0xd1, 0x9c,
+ 0x5c, 0x92, 0x7f, 0x8c, 0xcc, 0x79, 0xcf, 0x8e, 0xa2, 0xff, 0x90, 0xdf,
+ 0xfe, 0x4a, 0x34, 0x6f, 0xba, 0xce, 0xe5, 0x2c, 0x60, 0xff, 0x19, 0xea,
+ 0x47, 0xed, 0xa8, 0xbe, 0xf0, 0xb8, 0x32, 0x8c, 0x6e, 0x45, 0x48, 0x1a,
+ 0x88, 0xe3, 0x0d, 0xe8, 0xd3, 0xa6, 0x6e, 0x61, 0xc8, 0x3a, 0x24, 0x50,
+ 0x65, 0x18, 0xdc, 0x4c, 0x23, 0x51, 0x1c, 0x6d, 0xfe, 0x80, 0x3a, 0x03,
+ 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x11,
+ 0x00, 0x09, 0x10, 0x64, 0x00, 0x1e, 0xda, 0x1b, 0x17, 0x44, 0x3d, 0x94,
+ 0xef, 0x25, 0xee, 0x70, 0x7e, 0xd9, 0xee, 0x4a, 0xc6, 0x5e, 0xdc, 0x18,
+ 0x05, 0x83, 0xc7, 0x3c, 0x73, 0xc7, 0x8c, 0x7b, 0xca, 0x2c, 0x14, 0x2c,
+ 0x16, 0x60, 0x69, 0x06, 0x30, 0x86, 0x58, 0x5e, 0x06, 0xaa, 0x2e, 0x7c,
+ 0x39, 0x4d, 0x84, 0xd0, 0xb5, 0xd9, 0xe1, 0x25, 0x5c, 0x5d, 0xbc, 0xfb,
+ 0x35, 0xb2, 0x2a, 0x80, 0x7a, 0x48, 0x5e, 0xfc, 0x96, 0x3a, 0x36, 0x54,
+ 0x41, 0xbd, 0x74, 0x40, 0x10, 0x63, 0xdd, 0xc9, 0xef, 0x1f, 0xd5, 0xcb,
+ 0xae, 0x08, 0x39, 0x64, 0x9c, 0xab, 0x98, 0x9a, 0x48, 0x3d, 0xfb, 0x0e,
+ 0x60, 0x76, 0x60, 0x6d, 0xb3, 0x1a, 0x00, 0x54, 0x81, 0x74, 0x93, 0x10,
+ 0x21, 0xe7, 0x74, 0xad, 0xf6, 0xa6, 0xcb, 0x1c, 0xbb, 0x87, 0x7c, 0x64,
+ 0xad, 0xd1, 0xec, 0xa1, 0x84, 0x6a, 0x91, 0xb3, 0x19, 0xd1, 0x83, 0x91,
+ 0xfd, 0xd1, 0xd2, 0x09, 0xfc, 0x00, 0x26, 0xd0, 0x9b, 0x2a, 0x34, 0xd9,
+ 0x08, 0x6c, 0x2b, 0x89, 0xb1, 0xb5, 0xc6, 0x8e, 0xd8, 0xd9, 0xd5, 0xfc,
+ 0x0a, 0x49, 0x40, 0xf4, 0x0e, 0xd0, 0xae, 0x7b, 0x9a, 0x84, 0x46, 0x69,
+ 0x69, 0x44, 0x11, 0x12, 0x02, 0x99, 0x56, 0xe2, 0x8f, 0x4c, 0x97, 0x6a,
+ 0x51, 0x94, 0xde, 0x41, 0x1d, 0x4c, 0x45, 0xe8, 0x91, 0x47, 0xbf, 0x61,
+ 0x29, 0xf4, 0x18, 0x9d, 0xda, 0x4f, 0xc0, 0x4e, 0x37, 0x1b, 0x8e, 0x01,
+ 0xad, 0x46, 0x76, 0xd4, 0x10, 0x1d, 0x65, 0x4b, 0xfa, 0x19, 0x44, 0xa8,
+ 0xd8, 0x8f, 0x5e, 0x80, 0xb5, 0x47, 0x9c, 0x57, 0x1e, 0x40, 0x23, 0x60,
+ 0xb3, 0xbb, 0xbc, 0x4a, 0x17, 0x5c, 0x83, 0x83, 0x21, 0x7d, 0xe3, 0x3d,
+ 0x43, 0x21, 0xdd, 0xd9, 0x96, 0xdd, 0x22, 0xbf, 0x1d, 0x39, 0x05, 0xa1,
+ 0xfe, 0x4e, 0x56, 0xd5, 0xe1, 0x23, 0x6f, 0xee, 0x62, 0xa4, 0x8a, 0x6d,
+ 0x29, 0xd0, 0xdf, 0xd3, 0xb7, 0x0c, 0x29, 0xe7, 0x7f, 0x3d, 0xaf, 0x25,
+ 0xf2, 0x8f, 0xf7, 0x91, 0x09, 0x87, 0x3d, 0x7c, 0x64, 0x56, 0xb1, 0xe8,
+ 0x17, 0x5d, 0x94, 0x67, 0xc9, 0x80, 0xff, 0xa6, 0xca, 0xce, 0x87, 0x5a,
+ 0x7c, 0xc5, 0xed, 0xe6, 0x97, 0xac, 0xef, 0x4c, 0x0e, 0x67, 0xf4, 0xed,
+ 0x8a, 0x2c, 0x2f, 0xca, 0x1e, 0x27, 0x3c, 0x1d, 0x10, 0xe0, 0x22, 0x0d,
+ 0xbf, 0x09, 0x46, 0xf7, 0xca, 0xde, 0x4f, 0xdf, 0xf8, 0xa4, 0x2a, 0x35,
+ 0x3d, 0x8a, 0xb5, 0x9a, 0x89, 0x88, 0xb1, 0x76, 0xe7, 0xe5, 0x3a, 0x72,
+ 0xd1, 0x76, 0xa8, 0x84, 0x9b, 0xb2, 0x5a, 0x7f, 0xf2, 0x3b, 0x8f, 0x7c,
+ 0x39, 0x16, 0x8f, 0x54, 0x6b, 0x0d, 0x48, 0x5d, 0x41, 0xef, 0xfc, 0x53,
+ 0x60, 0x26, 0x41, 0xdb, 0xe4, 0x35, 0x05, 0x41, 0xab, 0xe4, 0xc1, 0x5d,
+ 0x11, 0x6b, 0x94, 0x4f, 0xf8, 0xcf, 0xc4, 0x1f, 0xc3, 0x91, 0xd7, 0xa1,
+ 0xf7, 0x4a, 0x10, 0x23, 0xa4, 0x69, 0x65, 0x6f, 0xc3, 0x79, 0xe6, 0xd2,
+ 0x30, 0xce, 0x18, 0x6a, 0x68, 0x10, 0x28, 0x7b, 0x98, 0x89, 0x87, 0x8e,
+ 0x45, 0x5b, 0x6b, 0x58, 0xf6, 0x5f, 0x8c, 0x20, 0xdd, 0xe5, 0x6f, 0x23,
+ 0x0a, 0xc6, 0xf8, 0xa7, 0x12, 0xf5, 0xc8, 0xa2, 0xbb, 0xe2, 0xa6, 0x6f,
+ 0x97, 0xde, 0x2f, 0x51, 0x8c, 0x4d, 0x92, 0x31, 0xad, 0x21, 0x75, 0x94,
+ 0x95, 0x0f, 0x2e, 0x4d, 0x55, 0x2f, 0xa9, 0xd2, 0xdd, 0x89, 0xc5, 0x05,
+ 0xa5, 0x01, 0x81, 0x0f, 0xb1, 0xdc, 0x90, 0x22, 0x1b, 0xed, 0xf5, 0xf0,
+ 0xb3, 0x1e, 0x10, 0x4f, 0x7e, 0xc0, 0x9b, 0x7c, 0xf4, 0x8d, 0xf0, 0xc8,
+ 0x3b, 0xe9, 0xef, 0x2f, 0x65, 0xfb, 0x65, 0x12, 0xda, 0xa8, 0x2e, 0xeb,
+ 0x8c, 0x88, 0x1a, 0xf7, 0xb4, 0xf9, 0xe1, 0x8b, 0xdd, 0xea, 0x2d, 0x4c,
+ 0x1d, 0x39, 0x82, 0x92, 0x2b, 0x41, 0x86, 0xee, 0x77, 0x75, 0x3c, 0x87,
+ 0xc2, 0x5c, 0x48, 0x26, 0x0b, 0x49, 0xf8, 0xda, 0x3c, 0xc9, 0x55, 0x3e,
+ 0x48, 0xf0, 0x76, 0xb4, 0x8e, 0x74, 0xca, 0x49, 0x87, 0xd9, 0x41, 0xde,
+ 0x02, 0xf2, 0x60, 0x07, 0x0d, 0xd4, 0xdb, 0x88, 0xf4, 0x74, 0x18, 0xb5,
+ 0x87, 0xcd, 0x0c, 0x0a, 0xc3, 0x1f, 0xb1, 0x5b, 0x25, 0x7b, 0x1e, 0x1f,
+ 0x2e, 0x0f, 0x78, 0xb6, 0xa1, 0x8c, 0xd5, 0x32, 0x83, 0x57, 0xa2, 0xa3,
+ 0x3c, 0xf2, 0xd4, 0xf7, 0xcb, 0xcb, 0x6c, 0x73, 0x43, 0x8c, 0x5a, 0xb3,
+ 0x6b, 0x34, 0xe5, 0x06, 0x98, 0x06, 0x6d, 0x9e, 0x28, 0x9e, 0x76, 0xf9,
+ 0x07, 0x36, 0xd0, 0x6f, 0xcc, 0xb3, 0xc1, 0xa9, 0xbe, 0xe9, 0x66, 0x1c,
+ 0xe9, 0x1c, 0xc1, 0x2b, 0xdd, 0x3f, 0xba, 0xe2, 0xaf, 0xfb, 0x57, 0x47,
+ 0x59, 0x04, 0xe9, 0xbd, 0x30, 0xfc, 0x52, 0x7f, 0x65, 0x07, 0xad, 0x10,
+ 0xca, 0x82, 0x7f, 0x97, 0xe7, 0xa4, 0x20, 0x06, 0x2f, 0xb3, 0x41, 0x6f,
+ 0xb0, 0x3c, 0xf1, 0xb1, 0x57, 0x7d, 0x12, 0x90, 0xfe, 0x3e, 0x7a, 0x45,
+ 0x24, 0x42, 0xe1, 0x4b, 0x30, 0xdf, 0x45, 0xb4, 0x86, 0x32, 0x5f, 0x2a,
+ 0x65, 0x4d, 0x17, 0xdf, 0xe7, 0x6c, 0xe0, 0xa0, 0x89, 0x68, 0x36, 0x52,
+ 0x86, 0xf6, 0x29, 0x6d, 0x15, 0x9f, 0xf9, 0xb3, 0xc7, 0x5b, 0x8c, 0x40,
+ 0x04, 0xfb, 0x87, 0xeb, 0x1b, 0xb2, 0x37, 0xf4, 0xbd, 0xbf, 0x92, 0x12,
+ 0xab, 0x7b, 0x01, 0x5b, 0xc0, 0x84, 0x24, 0x5d, 0xd4, 0x29, 0xfb, 0xbc,
+ 0xda, 0x06, 0xcb, 0xec, 0x25, 0x35, 0x4c, 0x15, 0x78, 0x4b, 0x94, 0xc8,
+ 0x1d, 0x7c, 0xe3, 0x40, 0xef, 0xc1, 0x24, 0x03, 0x88, 0xc7, 0x9c, 0x39,
+ 0x9f, 0x30, 0x00, 0x12, 0xa5, 0x2c, 0x5f, 0xbf, 0xed, 0x45, 0x10, 0xba,
+ 0xec, 0x06, 0x83, 0x40, 0x1b, 0x0d, 0x84, 0x3b, 0x1b, 0xf7, 0xc8, 0xe0,
+ 0x08, 0x12, 0x87, 0xdc, 0x3d, 0xb2, 0xe7, 0x1a, 0x70, 0xeb, 0xbf, 0x20,
+ 0xa4, 0x2d, 0x0d, 0xce, 0x2e, 0xd6, 0xfe, 0x91, 0xdb, 0x47, 0x70, 0xc9,
+ 0x46, 0x70, 0x58, 0xa7, 0xf7, 0xfa, 0xcd, 0xa4, 0x3a, 0xcd, 0xe4, 0x42,
+ 0xf5, 0x27, 0xa9, 0x3d, 0x49, 0xea, 0x10, 0x00, 0x43, 0x02, 0x00, 0x00,
+ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0f, 0x00, 0x0c,
+ 0x10, 0x60, 0x00, 0x18, 0x00, 0xc0, 0xa2, 0x10, 0xcc, 0xb6, 0x97, 0xf7,
+ 0x5b, 0xf1, 0x0f, 0x33, 0xc0, 0xcd, 0xa4, 0x48, 0x89, 0x13, 0xf2, 0x07,
+ 0xe6, 0x09, 0x31, 0x27, 0xfc, 0xb9, 0xd3, 0xe0, 0x61, 0x07, 0x74, 0x90,
+ 0x1e, 0x8c, 0x54, 0x9f, 0xae, 0xf9, 0x65, 0xa8, 0xe6, 0x96, 0xdc, 0x46,
+ 0x1a, 0x80, 0xba, 0x88, 0x31, 0x84, 0xf4, 0xce, 0xba, 0xe8, 0x11, 0xe4,
+ 0x6a, 0xc5, 0xe5, 0xeb, 0x19, 0x3b, 0x63, 0xce, 0x07, 0xdf, 0x22, 0xc9,
+ 0xac, 0x94, 0x8f, 0x00, 0x96, 0xf0, 0x8e, 0x94, 0xcc, 0x3a, 0x0b, 0x0e,
+ 0x15, 0x67, 0xf5, 0x5a, 0xe3, 0x09, 0x2c, 0x6e, 0xfa, 0xd8, 0x07, 0xe3,
+ 0xb6, 0xac, 0xaa, 0xb6, 0x60, 0x82, 0x48, 0x4b, 0x0e, 0x78, 0x07, 0x3f,
+ 0x6d, 0x7f, 0xf1, 0xa4, 0xd2, 0x2d, 0x72, 0x49, 0x76, 0xe2, 0x00, 0x38,
+ 0xd0, 0xba, 0x1e, 0x0f, 0x01, 0x25, 0x90, 0xae, 0xf7, 0xa4, 0x7f, 0xfd,
+ 0x74, 0xee, 0x11, 0x0b, 0x60, 0x21, 0xc9, 0xcf, 0x3e, 0xc4, 0x3e, 0xeb,
+ 0xa3, 0xad, 0xc7, 0xc1, 0x34, 0x01, 0xcc, 0x53, 0x31, 0x5a, 0x31, 0x7d,
+ 0x7d, 0x33, 0xe7, 0x72, 0x29, 0xd2, 0x2c, 0xb9, 0x2b, 0xd8, 0x23, 0xf3,
+ 0xd8, 0x02, 0xe4, 0xa0, 0x3e, 0x48, 0x86, 0x8a, 0xb0, 0xee, 0x0c, 0x59,
+ 0x78, 0x41, 0x0d, 0xc7, 0x0d, 0x60, 0x04, 0xfe, 0x6a, 0xcf, 0x68, 0x1a,
+ 0xbc, 0x5b, 0xcb, 0xad, 0x86, 0xdd, 0xdb, 0xe9, 0xda, 0x5e, 0xb2, 0x6f,
+ 0x1b, 0x11, 0xdc, 0x31, 0x49, 0x16, 0xc4, 0x1e, 0xa5, 0x84, 0x2e, 0xe5,
+ 0x4e, 0xde, 0xec, 0x4c, 0xf6, 0xb9, 0x8a, 0x84, 0xf9, 0x40, 0x12, 0xc9,
+ 0xd9, 0xe3, 0x8a, 0xb6, 0x7c, 0xfb, 0xb0, 0x8d, 0xf2, 0x91, 0x89, 0x07,
+ 0xa4, 0xba, 0x8d, 0xed, 0xf4, 0xb4, 0xe0, 0x64, 0xd1, 0x01, 0xf4, 0x93,
+ 0x8b, 0xe5, 0xf0, 0xf7, 0xbd, 0x1b, 0xa6, 0x16, 0x8d, 0xb7, 0xe9, 0x54,
+ 0xd3, 0x2b, 0x7d, 0x99, 0xfe, 0x57, 0x94, 0xbb, 0xe5, 0x9e, 0x50, 0x88,
+ 0x82, 0xbd, 0x8f, 0x60, 0x5d, 0x41, 0x80, 0x08, 0xf4, 0x00, 0xd4, 0x0f,
+ 0xdf, 0xfb, 0x0f, 0x60, 0x96, 0x18, 0x89, 0x99, 0x11, 0xcf, 0x9e, 0xdd,
+ 0x6f, 0xa3, 0x47, 0x3b, 0xe3, 0xa3, 0xfe, 0xeb, 0xd4, 0xfd, 0x15, 0xf8,
+ 0x65, 0x2b, 0x76, 0xfe, 0x80, 0x3f, 0xe0, 0xe2, 0x6b, 0xab, 0xd0, 0x12,
+ 0x2a, 0xcc, 0x64, 0x2b, 0x81, 0xb6, 0xe8, 0xf7, 0xc9, 0xb6, 0x19, 0xcd,
+ 0x9b, 0x36, 0x8a, 0xa6, 0xf8, 0x5f, 0xbf, 0x8e, 0x2f, 0xef, 0x9f, 0x1f,
+ 0x3a, 0xae, 0x18, 0xe6, 0xd8, 0x02, 0x6d, 0x1f, 0xf0, 0x2d, 0xd3, 0x46,
+ 0xd4, 0x43, 0xfa, 0x98, 0x20, 0xb9, 0xca, 0x38, 0x08, 0x3f, 0x8c, 0xd3,
+ 0x74, 0x6c, 0x10, 0xbc, 0x27, 0xdd, 0xa5, 0x5f, 0x1c, 0x65, 0x97, 0xd6,
+ 0x38, 0xd5, 0x31, 0x8a, 0xc5, 0xf0, 0x42, 0x6f, 0x78, 0x8c, 0x55, 0x92,
+ 0x9b, 0xba, 0x71, 0x7d, 0x59, 0xb7, 0xc0, 0x78, 0x2e, 0x23, 0xee, 0x45,
+ 0xbe, 0x6b, 0x2d, 0x23, 0x09, 0x7d, 0xd0, 0x3c, 0x3a, 0x5e, 0x7a, 0xf0,
+ 0x6b, 0x70, 0xef, 0x43, 0x4c, 0x85, 0xed, 0xb9, 0x74, 0x00, 0xe6, 0x9a,
+ 0xbb, 0x11, 0x45, 0x32, 0xd4, 0xdd, 0x96, 0x53, 0x6a, 0xda, 0x32, 0x24,
+ 0x3d, 0x93, 0x92, 0x18, 0x13, 0x40, 0xf2, 0x06, 0xeb, 0x4e, 0x7a, 0xf6,
+ 0x39, 0x9d, 0x34, 0x07, 0x23, 0xea, 0x38, 0xec, 0x99, 0x78, 0xde, 0x02,
+ 0xb9, 0x00, 0x6b, 0xeb, 0x22, 0xc7, 0x0d, 0x71, 0xaa, 0x60, 0xba, 0xbe,
+ 0x73, 0xba, 0x6a, 0x56, 0x35, 0xd3, 0x75, 0x4a, 0x3f, 0x6d, 0x14, 0x6f,
+ 0xdc, 0x54, 0x2c, 0xf0, 0x6a, 0xdc, 0xd0, 0x11, 0x4e, 0x53, 0x54, 0xde,
+ 0xa5, 0xac, 0xc5, 0x4f, 0x6f, 0xd5, 0x54, 0x98, 0x00, 0x59, 0xb2, 0x4d,
+ 0x0e, 0x1e, 0xad, 0xdb, 0x8a, 0x0e, 0xe1, 0x8e, 0x01, 0x32, 0xf9, 0x20,
+ 0x65, 0x67, 0x1e, 0xdd, 0x25, 0x2f, 0x99, 0x22, 0xcd, 0xa1, 0x2d, 0x8b,
+ 0x16, 0x10, 0x41, 0xa1, 0xba, 0xab, 0xbe, 0x25, 0x43, 0xd9, 0x1e, 0x14,
+ 0x46, 0x2d, 0xe3, 0x12, 0xb7, 0x74, 0xf2, 0x48, 0xcc, 0x2a, 0xd8, 0x7d,
+ 0x87, 0x09, 0x98, 0xf8, 0x31, 0x64, 0x97, 0x94, 0xd0, 0x19, 0xd0, 0x5e,
+ 0x02, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1,
+ 0x0e, 0x00, 0x08, 0x10, 0x54, 0x00, 0x1e, 0xc0, 0x90, 0xb9, 0xc5, 0xef,
+ 0xff, 0xf5, 0x88, 0xfe, 0xd7, 0xa5, 0xe2, 0x8f, 0xf7, 0x00, 0xb3, 0xff,
+ 0xa0, 0xaa, 0xdf, 0x62, 0x14, 0x35, 0xa7, 0x4b, 0x05, 0xb6, 0xfb, 0xb4,
+ 0xc6, 0x9c, 0x12, 0x4f, 0xea, 0xeb, 0xf7, 0xd5, 0xfc, 0x04, 0xfd, 0x5a,
+ 0xac, 0x88, 0xec, 0x0b, 0x6b, 0x56, 0x74, 0x24, 0x15, 0x48, 0x89, 0x4d,
+ 0xa2, 0xf6, 0x93, 0x61, 0xde, 0x0c, 0x28, 0x8b, 0xff, 0xa4, 0x1c, 0x79,
+ 0x3e, 0xfb, 0x14, 0xea, 0x3b, 0xf8, 0x6a, 0x84, 0xf7, 0xd6, 0xc1, 0x28,
+ 0x05, 0xb0, 0x10, 0x45, 0xab, 0x91, 0xb2, 0x0a, 0x61, 0x58, 0x00, 0x1d,
+ 0x8e, 0xbe, 0x6d, 0x3a, 0xda, 0x01, 0x49, 0xca, 0x0c, 0x1c, 0x41, 0xa2,
+ 0x98, 0x44, 0x51, 0xfc, 0x6a, 0x74, 0x58, 0xf4, 0xad, 0x1e, 0x80, 0x28,
+ 0x68, 0xff, 0x88, 0x3a, 0x37, 0xdc, 0x8c, 0x6a, 0x87, 0x00, 0x74, 0xf3,
+ 0xec, 0xf5, 0xc8, 0x54, 0x25, 0x20, 0xf3, 0xa9, 0x36, 0x96, 0xc3, 0x42,
+ 0xba, 0x65, 0x04, 0xa3, 0x80, 0x71, 0x56, 0x16, 0xd8, 0x7e, 0xd2, 0x0b,
+ 0x50, 0x30, 0xe1, 0x18, 0x21, 0x10, 0xaa, 0xc2, 0x70, 0x11, 0x06, 0x07,
+ 0xe9, 0x09, 0xd7, 0x9d, 0x1d, 0x02, 0x1b, 0xe4, 0xd2, 0xd6, 0xc5, 0x6e,
+ 0x12, 0x94, 0x86, 0x7c, 0xd9, 0xdb, 0xe2, 0x56, 0x82, 0xfd, 0xbe, 0x82,
+ 0x48, 0x6a, 0x0d, 0x92, 0x23, 0x99, 0x78, 0xed, 0xd2, 0x7a, 0xfd, 0x55,
+ 0xd2, 0xdb, 0xb0, 0xe3, 0x67, 0x5d, 0x02, 0x27, 0xd2, 0x32, 0xe2, 0x32,
+ 0x1e, 0x24, 0xae, 0x80, 0x82, 0x4f, 0x6f, 0x28, 0x83, 0xb1, 0x1b, 0x22,
+ 0x83, 0xc7, 0x4a, 0x74, 0xa9, 0x7a, 0x00, 0xec, 0x84, 0xf1, 0x47, 0xf3,
+ 0x99, 0x22, 0x25, 0x21, 0x12, 0xc7, 0x5d, 0x28, 0x0e, 0x0f, 0x8f, 0xed,
+ 0xc0, 0x0d, 0xf8, 0x8b, 0x4d, 0x48, 0x41, 0x51, 0x4a, 0x25, 0x1f, 0xec,
+ 0x32, 0x00, 0x75, 0x5d, 0x82, 0xdc, 0xa1, 0x58, 0x2e, 0x39, 0xfa, 0x05,
+ 0x33, 0xda, 0xfd, 0x66, 0xfc, 0x5b, 0x10, 0xa7, 0x22, 0xf6, 0x5b, 0xd6,
+ 0x39, 0xa8, 0xf1, 0xa2, 0x00, 0xfa, 0xe4, 0x91, 0x43, 0x63, 0x86, 0x70,
+ 0x0b, 0xf6, 0x17, 0xb2, 0x4b, 0x7c, 0x82, 0x16, 0x0c, 0x6e, 0x41, 0x24,
+ 0x6a, 0x8c, 0x66, 0xbc, 0xe8, 0x24, 0xdc, 0x9f, 0x43, 0x64, 0xa1, 0x1f,
+ 0x8d, 0xb9, 0x33, 0x6b, 0x1e, 0x92, 0x29, 0x6f, 0xcd, 0xdb, 0xfa, 0x4d,
+ 0xe5, 0xc5, 0x3e, 0x29, 0xf0, 0x07, 0x02, 0xc1, 0x6c, 0xb0, 0xfa, 0x4c,
+ 0xb8, 0xeb, 0x9d, 0x4f, 0x13, 0x86, 0x56, 0x58, 0x54, 0x6c, 0xa4, 0x40,
+ 0x90, 0x78, 0x58, 0xfd, 0xc8, 0x24, 0x3b, 0xbc, 0x08, 0x5d, 0xb6, 0x1c,
+ 0x05, 0x94, 0xab, 0x7f, 0x4f, 0x19, 0x9c, 0xd1, 0x7b, 0xac, 0xdc, 0xa5,
+ 0xe7, 0xc2, 0xf9, 0x2a, 0x88, 0xfa, 0xe2, 0xb8, 0x08, 0xcd, 0x98, 0xeb,
+ 0xc0, 0x4b, 0xf9, 0x44, 0x7f, 0xae, 0x9d, 0x2b, 0xa7, 0x20, 0xa1, 0x00,
+ 0x6c, 0xeb, 0xed, 0xad, 0xc2, 0x04, 0xb1, 0xc9, 0x25, 0xe1, 0x6d, 0xec,
+ 0x29, 0x78, 0xca, 0x79, 0xa3, 0xa2, 0xe5, 0x90, 0x61, 0x4b, 0x2f, 0x30,
+ 0x00, 0x97, 0x57, 0x83, 0xd8, 0x60, 0x61, 0xf4, 0x76, 0x5e, 0x2f, 0xad,
+ 0x92, 0x1f, 0xe1, 0x3f, 0x89, 0xca, 0x77, 0x6e, 0x28, 0xb4, 0x56, 0x34,
+ 0x64, 0x8a, 0xe0, 0x85, 0x40, 0x4c, 0x3f, 0x85, 0xa4, 0xe4, 0xe7, 0x49,
+ 0x35, 0xc8, 0x25, 0x78, 0x30, 0xf6, 0x40, 0xeb, 0xd8, 0x39, 0x76, 0xdd,
+ 0x9b, 0xcb, 0x84, 0xd8, 0x0c, 0xc0, 0xd0, 0x20, 0xf3, 0x62, 0xaa, 0x92,
+ 0x69, 0x2f, 0x49, 0x59, 0x81, 0x62, 0x54, 0xe0, 0x6d, 0x8a, 0x02, 0xc8,
+ 0x91, 0x68, 0xb5, 0x01, 0x0e, 0x2a, 0x6f, 0x35, 0x6a, 0x0a, 0x22, 0x22,
+ 0x1b, 0xf1, 0x7a, 0x28, 0x0e, 0x85, 0x99, 0x35, 0x47, 0xde, 0x50, 0xa6,
+ 0xa7, 0xef, 0xf8, 0x78, 0x68, 0x21, 0x98, 0xa0, 0x65, 0xdb, 0x64, 0x8c,
+ 0xa1, 0x32, 0x40, 0xc9, 0x98, 0xc8, 0x5b, 0xb3, 0x9c, 0x27, 0x79, 0x6f,
+ 0xd6, 0xc6, 0xc4, 0x04, 0x55, 0x39, 0xda, 0x10, 0x40, 0xde, 0x70, 0xba,
+ 0x29, 0x76, 0x25, 0x35, 0xee, 0x57, 0x9e, 0x1a, 0xa9, 0xdf, 0x4a, 0x43,
+ 0x7c, 0x05, 0xc6, 0x89, 0x5c, 0x8b, 0xcc, 0x35, 0x70, 0x77, 0x00, 0x8a,
+ 0x76, 0xc0, 0x72, 0xb6, 0x23, 0x46, 0x02, 0xdd, 0xa7, 0x51, 0xbc, 0xf2,
+ 0x34, 0xad, 0xc4, 0xf0, 0x00, 0x21, 0x02, 0x00, 0x00, 0x84, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0e, 0x00, 0x0a, 0x10, 0x4c, 0x00,
+ 0x1b, 0xb5, 0xb8, 0xa5, 0xe1, 0x33, 0x1d, 0x58, 0x85, 0x99, 0x09, 0x3e,
+ 0x4e, 0xd1, 0x18, 0x92, 0x40, 0x49, 0x8e, 0x69, 0x2b, 0x75, 0x33, 0x2b,
+ 0x8a, 0xa8, 0xd1, 0xb3, 0x6b, 0x3d, 0xa5, 0x50, 0x31, 0x51, 0x1a, 0xfd,
+ 0x92, 0xe3, 0x71, 0x3f, 0x66, 0x6e, 0x7f, 0xd3, 0x6f, 0xf1, 0x3a, 0xa8,
+ 0x8b, 0xb9, 0x35, 0x41, 0x7e, 0xbc, 0xfb, 0x12, 0x94, 0xfc, 0x24, 0x04,
+ 0x1d, 0xc8, 0xd2, 0x47, 0xf9, 0xce, 0xf2, 0x70, 0x10, 0x4c, 0xb7, 0x43,
+ 0xe0, 0x3b, 0xc7, 0x67, 0xb0, 0x02, 0x3f, 0x4f, 0x0a, 0xfb, 0x8a, 0x1e,
+ 0x46, 0x0a, 0xc4, 0xc8, 0x2f, 0x94, 0x22, 0x1d, 0x15, 0xb0, 0x07, 0xad,
+ 0x1a, 0x41, 0xbd, 0x43, 0xa1, 0xeb, 0x11, 0x8d, 0x48, 0xa0, 0xac, 0x42,
+ 0x56, 0x03, 0x52, 0x00, 0x3c, 0xa0, 0xd5, 0x0c, 0x73, 0xff, 0x96, 0xe4,
+ 0xbc, 0x74, 0x12, 0x8c, 0x08, 0xef, 0xcc, 0xdb, 0x86, 0x36, 0x5b, 0xef,
+ 0x6a, 0x13, 0x3c, 0x56, 0x1b, 0xd9, 0x4e, 0xb7, 0xb1, 0xb6, 0x53, 0x96,
+ 0x51, 0xa0, 0x55, 0x23, 0x9b, 0xad, 0xef, 0x28, 0x70, 0x7d, 0x83, 0x6c,
+ 0x1c, 0xf0, 0x90, 0x60, 0xdf, 0xb0, 0x90, 0x38, 0x53, 0xe1, 0x71, 0x31,
+ 0xe5, 0xd8, 0x89, 0xa5, 0x75, 0xbd, 0x97, 0x35, 0x3e, 0x51, 0xff, 0xb2,
+ 0xd4, 0x6b, 0x29, 0xea, 0x81, 0x30, 0x58, 0x3e, 0x39, 0x05, 0x53, 0xe6,
+ 0x57, 0xb7, 0x83, 0xa2, 0x7c, 0x09, 0xc2, 0x6c, 0x60, 0x9b, 0x17, 0x26,
+ 0xd9, 0xa7, 0xa1, 0x37, 0x80, 0xa5, 0xe0, 0x83, 0xd8, 0xa0, 0x8c, 0x81,
+ 0x62, 0x70, 0x39, 0x9b, 0x17, 0xe1, 0x26, 0xac, 0xf5, 0x46, 0x7f, 0x07,
+ 0xbb, 0xbc, 0x6d, 0xdc, 0xaa, 0x05, 0x63, 0xcc, 0xba, 0xa7, 0x2a, 0xba,
+ 0x82, 0xbe, 0x85, 0x26, 0xd9, 0x39, 0xcc, 0x3e, 0x9e, 0x22, 0xe6, 0xe3,
+ 0xea, 0xf6, 0xeb, 0x44, 0x95, 0x9c, 0xdf, 0xe3, 0xf7, 0x82, 0xfb, 0xb1,
+ 0xf7, 0xcd, 0x83, 0x6e, 0xfd, 0xf3, 0x18, 0x1f, 0xcf, 0xbb, 0x02, 0x64,
+ 0xcc, 0x54, 0xee, 0x08, 0xc2, 0xf4, 0x3c, 0xd8, 0xe2, 0x50, 0x91, 0xca,
+ 0x8f, 0x4c, 0x10, 0xbb, 0xf6, 0xb4, 0x4c, 0x62, 0x65, 0xf8, 0xb9, 0x60,
+ 0xcc, 0x0e, 0x92, 0x7c, 0x49, 0xa4, 0xea, 0x78, 0x19, 0x4e, 0x09, 0x93,
+ 0x6b, 0x92, 0x60, 0xf2, 0x3d, 0x3c, 0x0a, 0x88, 0xa8, 0x63, 0x7c, 0x31,
+ 0x9c, 0x9f, 0x3e, 0x7f, 0x87, 0x42, 0x8f, 0xb8, 0xc8, 0x71, 0x93, 0x65,
+ 0xa3, 0xe1, 0x39, 0x11, 0x5d, 0xba, 0x5f, 0xae, 0x06, 0x81, 0x98, 0x36,
+ 0x8d, 0x0e, 0x0c, 0xfb, 0x34, 0x11, 0x5d, 0x92, 0x43, 0x63, 0xea, 0x80,
+ 0xa1, 0x3b, 0x06, 0xcf, 0xe8, 0xd8, 0x27, 0x74, 0x2b, 0x76, 0x08, 0xb1,
+ 0x93, 0xeb, 0xeb, 0x30, 0x9a, 0x6d, 0x4f, 0xa7, 0x03, 0x9a, 0xfe, 0x1f,
+ 0xe6, 0x76, 0xec, 0xf0, 0x2a, 0x9a, 0x23, 0xe0, 0xf9, 0x37, 0xe0, 0x49,
+ 0x2f, 0xef, 0x2b, 0x75, 0x45, 0xa1, 0x8a, 0xab, 0x00, 0x71, 0xb9, 0xe0,
+ 0x22, 0x7a, 0xb3, 0xbe, 0x18, 0x82, 0xa0, 0xa7, 0x7a, 0x48, 0xfa, 0x9e,
+ 0xc5, 0xe3, 0xfa, 0x3d, 0x0a, 0xe1, 0x1d, 0xc6, 0x9a, 0x6f, 0xb6, 0x61,
+ 0x69, 0x18, 0xe1, 0x0c, 0x59, 0xac, 0x00, 0x38, 0xea, 0x18, 0xaf, 0xfd,
+ 0xff, 0xeb, 0xfe, 0x52, 0xd7, 0x9b, 0x1d, 0xa2, 0xd0, 0xda, 0x89, 0x87,
+ 0xd2, 0xf1, 0x21, 0x2c, 0xb1, 0x2b, 0xe4, 0xa1, 0xa3, 0x86, 0xea, 0xee,
+ 0xc1, 0x9b, 0xee, 0xcc, 0x34, 0xb8, 0x27, 0xa0, 0x79, 0x95, 0x6f, 0x67,
+ 0x19, 0x6b, 0x54, 0xbc, 0xcf, 0x25, 0x31, 0xb8, 0x9c, 0x60, 0x1c, 0x1f,
+ 0xbe, 0x9d, 0xea, 0x9c, 0x54, 0x12, 0x14, 0x3d, 0xda, 0x76, 0x5f, 0x49,
+ 0xa0, 0xa7, 0xf9, 0x81, 0xfc, 0xf5, 0xf1, 0xa8, 0x60, 0xe2, 0xd2, 0x0f,
+ 0xdd, 0x42, 0x4e, 0x96, 0x1b, 0x87, 0x5d, 0xd1, 0x84, 0x54, 0x9b, 0x52,
+ 0xe5, 0x04, 0x62, 0xe5, 0x9f, 0xec, 0x8f, 0x3f, 0xe0, 0x00, 0xca, 0x07,
+ 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x14,
+ 0x00, 0x07, 0x10, 0x28, 0x00, 0x1c, 0x08, 0xfc, 0x0f, 0x1d, 0x32, 0xbb,
+ 0x2c, 0x93, 0x3b, 0x90, 0xa6, 0x67, 0x14, 0x1e, 0xf2, 0xb2, 0x2a, 0x2e,
+ 0xe3, 0x0e, 0x58, 0xd3, 0x9f, 0x63, 0x0a, 0x6e, 0x51, 0x37, 0xd5, 0x4a,
+ 0xa4, 0x1c, 0x2b, 0x28, 0x73, 0xea, 0xe1, 0xd1, 0x08, 0x59, 0x7f, 0xdf,
+ 0x82, 0xfc, 0xe3, 0xcc, 0x05, 0x43, 0x93, 0xca, 0x2c, 0x26, 0xc2, 0xa7,
+ 0x8f, 0x1e, 0x3c, 0xa2, 0x80, 0x19, 0x50, 0x5b, 0xda, 0x97, 0xdf, 0x3d,
+ 0xff, 0x19, 0xf2, 0x81, 0x08, 0xe8, 0xc5, 0x1b, 0x1c, 0x00, 0x5e, 0x8b,
+ 0x3a, 0x0e, 0xba, 0x93, 0xe7, 0xf2, 0x39, 0x0e, 0x78, 0xf1, 0xa1, 0xc3,
+ 0x91, 0xb1, 0x74, 0xc6, 0x0b, 0x8d, 0x44, 0xb5, 0x9e, 0xfe, 0x27, 0x37,
+ 0x12, 0x4b, 0xc4, 0xac, 0x14, 0xa0, 0x52, 0xb0, 0xbf, 0x70, 0xf3, 0x21,
+ 0xea, 0xba, 0x8d, 0x27, 0x33, 0x5e, 0x25, 0x15, 0xe5, 0xdf, 0x2f, 0x8a,
+ 0xe0, 0xab, 0x52, 0xac, 0x5d, 0x5b, 0xca, 0xea, 0x20, 0x5b, 0x78, 0x66,
+ 0xc5, 0x01, 0x7e, 0x3b, 0x1d, 0x7e, 0x88, 0xa0, 0x1c, 0xd1, 0x49, 0xd7,
+ 0xd0, 0xc1, 0x98, 0x70, 0xaa, 0xd0, 0x9f, 0x90, 0xe0, 0xd0, 0xa8, 0xaf,
+ 0x2b, 0x09, 0x8e, 0xfa, 0x83, 0xab, 0x55, 0x12, 0xa2, 0xce, 0x87, 0x9d,
+ 0x83, 0xf3, 0x5a, 0xf9, 0x46, 0xa8, 0xed, 0xe2, 0xc5, 0x3e, 0x04, 0x54,
+ 0x8b, 0xd1, 0x93, 0xee, 0x3c, 0xff, 0x65, 0xdc, 0x94, 0x51, 0x1d, 0xf1,
+ 0x9b, 0xeb, 0xef, 0x70, 0x77, 0x26, 0x4f, 0xf2, 0xbf, 0xc8, 0x38, 0x50,
+ 0xff, 0xac, 0x60, 0x65, 0x0b, 0xec, 0xbc, 0xaf, 0x0d, 0xa1, 0x4a, 0xfb,
+ 0x9f, 0xc8, 0xe8, 0xa5, 0x3d, 0xec, 0xd3, 0x31, 0xa3, 0xf1, 0x74, 0x94,
+ 0xd7, 0x1b, 0x05, 0x59, 0xb0, 0x65, 0x30, 0xe1, 0x34, 0x48, 0x1d, 0xbe,
+ 0x98, 0xd4, 0x03, 0x06, 0xe1, 0xeb, 0xe7, 0x6b, 0x67, 0x5a, 0x6b, 0x6a,
+ 0x46, 0x54, 0xca, 0x7f, 0x55, 0x08, 0xc4, 0x2c, 0x37, 0xf9, 0x9b, 0x4d,
+ 0x72, 0x68, 0xe6, 0xc1, 0x43, 0x4d, 0x3b, 0x87, 0x66, 0xfc, 0xde, 0x87,
+ 0xdc, 0x14, 0x7b, 0x8e, 0x33, 0x8e, 0x91, 0xc0, 0x30, 0xdd, 0x1b, 0x9d,
+ 0xc9, 0x81, 0x8e, 0x57, 0x3d, 0x1a, 0x8a, 0x30, 0xed, 0xa4, 0x03, 0xe6,
+ 0x44, 0xcb, 0xae, 0x89, 0x54, 0x64, 0x51, 0xc3, 0xdb, 0xc4, 0x11, 0x4a,
+ 0xc8, 0x0d, 0x6d, 0x4f, 0x97, 0xe5, 0x0b, 0x94, 0xbd, 0x77, 0x38, 0x29,
+ 0x0d, 0x4c, 0x20, 0x47, 0x9a, 0xa9, 0x1f, 0x22, 0xd0, 0x4f, 0xda, 0xb6,
+ 0x9b, 0xa6, 0xa6, 0x65, 0xa3, 0x9d, 0x57, 0x33, 0x8f, 0x03, 0x5a, 0x62,
+ 0x82, 0x8d, 0x41, 0xa2, 0x1f, 0xd6, 0x0b, 0xd2, 0x5b, 0x72, 0x58, 0xde,
+ 0x7b, 0x8c, 0xd9, 0x25, 0x79, 0x16, 0x82, 0x7d, 0x15, 0x1c, 0x4f, 0x66,
+ 0xc9, 0x38, 0x1a, 0x89, 0x63, 0x78, 0x2c, 0x25, 0x65, 0x8b, 0x12, 0x53,
+ 0x44, 0x4a, 0xd0, 0xab, 0x19, 0x6b, 0x8b, 0x02, 0xfd, 0x46, 0x69, 0x97,
+ 0x4f, 0xc9, 0xc2, 0x69, 0x12, 0x73, 0xff, 0x7e, 0xd6, 0x80, 0x8a, 0x6f,
+ 0x67, 0xa7, 0x07, 0xb8, 0xe1, 0xea, 0x99, 0x79, 0x87, 0x8b, 0x9a, 0x5c,
+ 0x2a, 0x21, 0xd6, 0xa5, 0xbe, 0xbe, 0x34, 0xc1, 0xf3, 0xcb, 0x7e, 0x5e,
+ 0x83, 0xf4, 0x89, 0x9b, 0xd5, 0xe8, 0x63, 0x2d, 0x7e, 0xed, 0xc7, 0x23,
+ 0x31, 0x27, 0x75, 0xde, 0x86, 0x95, 0x20, 0xe7, 0x43, 0x42, 0x18, 0x05,
+ 0x70, 0x1e, 0xba, 0x31, 0xab, 0x06, 0x40, 0x7f, 0xdb, 0x20, 0x35, 0xd9,
+ 0x97, 0x5b, 0x66, 0x7a, 0x32, 0xeb, 0x6c, 0xcf, 0x46, 0x5a, 0x51, 0xce,
+ 0xa4, 0x15, 0x60, 0xf2, 0x68, 0xf4, 0xef, 0x47, 0x8f, 0xe4, 0xb5, 0xef,
+ 0x73, 0x7e, 0x36, 0xb8, 0x30, 0x76, 0x57, 0x5e, 0x2d, 0xc4, 0x98, 0x1c,
+ 0x5e, 0x05, 0xd2, 0xb8, 0x83, 0xd6, 0x51, 0xfc, 0x06, 0xb9, 0x29, 0x9e,
+ 0xed, 0x1c, 0xc5, 0x8a, 0x4a, 0x50, 0xd7, 0x22, 0xb7, 0xb2, 0xe0, 0x2f,
+ 0x1c, 0xa2, 0x7d, 0x9c, 0x7a, 0xb6, 0x7e, 0x9f, 0xae, 0x36, 0xa0, 0x81,
+ 0x2c, 0x19, 0x54, 0x12, 0xb2, 0x61, 0x2d, 0x5e, 0xea, 0x4f, 0xca, 0x6f,
+ 0xa6, 0xdb, 0x5b, 0x7a, 0xf2, 0xe7, 0xe8, 0xf3, 0x82, 0x70, 0xd1, 0x7d,
+ 0xfe, 0x5e, 0xf3, 0x99, 0xfc, 0x4c, 0x3f, 0xfa, 0x57, 0xe7, 0xd6, 0x7d,
+ 0x35, 0x0a, 0x14, 0x65, 0xb8, 0xc3, 0x0d, 0x5d, 0xcf, 0x44, 0x28, 0xa3,
+ 0x70, 0x46, 0x25, 0x94, 0x23, 0x6f, 0x04, 0xc1, 0x17, 0x01, 0xa3, 0x5d,
+ 0xe3, 0xc0, 0x8e, 0xfc, 0xf1, 0xf5, 0x73, 0xfc, 0x78, 0x61, 0xee, 0xdb,
+ 0xb1, 0xaa, 0x74, 0x0e, 0xf5, 0x90, 0x93, 0xda, 0x6e, 0x6f, 0x9a, 0xb7,
+ 0x81, 0xeb, 0x2c, 0xe9, 0xfb, 0x29, 0x23, 0xe7, 0xcc, 0x36, 0x77, 0x00,
+ 0xe2, 0xc3, 0x57, 0x77, 0xf9, 0xf3, 0x37, 0x36, 0xc2, 0x8b, 0xb9, 0x45,
+ 0xbc, 0x48, 0x99, 0xb5, 0xbc, 0xe0, 0x7b, 0xf6, 0xe4, 0xa8, 0x1e, 0x82,
+ 0xe6, 0x1e, 0x60, 0x48, 0xa8, 0x00, 0x02, 0x41, 0xf9, 0x49, 0xfd, 0x40,
+ 0x0f, 0x16, 0x3e, 0xc0, 0x55, 0x82, 0x19, 0xe4, 0xbe, 0x21, 0xbb, 0x81,
+ 0xd4, 0x5f, 0x01, 0xf2, 0xf6, 0xd5, 0x47, 0xf6, 0x21, 0x5a, 0xac, 0x63,
+ 0xd0, 0x85, 0x3c, 0x40, 0xd0, 0x64, 0x90, 0x8a, 0x17, 0x07, 0x97, 0x32,
+ 0x33, 0x38, 0x41, 0x73, 0xd1, 0x35, 0x91, 0xfe, 0x9f, 0xc0, 0x69, 0xc2,
+ 0xe2, 0x13, 0x58, 0x8d, 0x59, 0x6b, 0xe1, 0x41, 0x64, 0xff, 0x6d, 0x15,
+ 0x29, 0x58, 0xab, 0x9d, 0xae, 0x24, 0x93, 0x2d, 0x8f, 0x15, 0xe0, 0x0c,
+ 0x23, 0xc0, 0x52, 0x84, 0x51, 0x89, 0xa4, 0xdd, 0xa4, 0xc9, 0xbd, 0x38,
+ 0x26, 0x3f, 0xed, 0x51, 0x0e, 0x4f, 0xd5, 0xd6, 0xde, 0x3f, 0x83, 0x31,
+ 0x83, 0x73, 0x21, 0x82, 0xa8, 0xd8, 0x42, 0x50, 0xf2, 0xfe, 0x6c, 0x60,
+ 0x94, 0x99, 0xf8, 0x20, 0x08, 0x32, 0x5d, 0xe6, 0x71, 0x69, 0xcb, 0xc0,
+ 0x0a, 0xe6, 0x66, 0x3d, 0x78, 0x43, 0xb4, 0xff, 0x5d, 0xd7, 0xc6, 0xc7,
+ 0x95, 0x36, 0xe5, 0x38, 0xd8, 0xb5, 0xf0, 0xb8, 0x61, 0x2d, 0x38, 0x7d,
+ 0xe5, 0xd7, 0x84, 0xd4, 0xde, 0x24, 0x31, 0x1d, 0x46, 0x99, 0x04, 0x82,
+ 0x86, 0x55, 0x8e, 0x6c, 0xab, 0xef, 0x1b, 0x2b, 0x84, 0x91, 0xfe, 0x53,
+ 0x85, 0xff, 0x8d, 0x54, 0x04, 0x83, 0x8a, 0x6c, 0x06, 0xf4, 0x6d, 0xd6,
+ 0xc5, 0x9c, 0x6d, 0xe8, 0x1c, 0x62, 0xfd, 0xc4, 0x4b, 0xa3, 0x46, 0xe1,
+ 0x6d, 0x95, 0xfa, 0x56, 0xa9, 0x20, 0x2d, 0x17, 0x71, 0x64, 0xd2, 0xfc,
+ 0x2b, 0x9d, 0xc8, 0x2f, 0xa0, 0x26, 0xdf, 0x3f, 0xfe, 0x37, 0x80, 0xa8,
+ 0xe8, 0xc4, 0xd3, 0xae, 0xc7, 0xc2, 0xa5, 0xaa, 0xbc, 0x32, 0x80, 0x20,
+ 0x2d, 0xdb, 0xce, 0xdc, 0x05, 0x1c, 0xdd, 0xff, 0x41, 0x55, 0x79, 0x5c,
+ 0x3d, 0xfb, 0xa6, 0xa9, 0x05, 0x08, 0x09, 0x8f, 0xf5, 0x2a, 0x35, 0x7a,
+ 0xe9, 0x9a, 0x2f, 0x9b, 0x7a, 0xd7, 0x0f, 0xe7, 0x16, 0x10, 0x35, 0x93,
+ 0xdb, 0x99, 0x40, 0xf3, 0xef, 0x00, 0xeb, 0x6b, 0x0a, 0xbf, 0xc4, 0x42,
+ 0x98, 0xf6, 0xea, 0xf9, 0xca, 0x93, 0x27, 0xf3, 0xd4, 0x19, 0x48, 0x54,
+ 0x1d, 0xbb, 0x25, 0xfe, 0xd3, 0xf5, 0xee, 0x99, 0xf9, 0x46, 0xbe, 0xd0,
+ 0xf5, 0xe1, 0x75, 0xcd, 0x6b, 0x1e, 0x0b, 0x10, 0x41, 0x87, 0x57, 0x35,
+ 0x2a, 0x2c, 0x25, 0xe9, 0x71, 0x9b, 0xd3, 0x5e, 0x9b, 0x3a, 0xc3, 0x05,
+ 0xe1, 0x2b, 0xb2, 0x44, 0x65, 0x0b, 0xe1, 0x24, 0x0b, 0x4c, 0x75, 0xe5,
+ 0x2e, 0x5c, 0x14, 0xcb, 0x5e, 0x01, 0x4e, 0x84, 0xc4, 0xbc, 0xfe, 0xdd,
+ 0xdd, 0x27, 0xcd, 0x5b, 0x31, 0x51, 0x02, 0x25, 0xe1, 0xed, 0x08, 0x59,
+ 0xb6, 0x09, 0xd9, 0x55, 0x18, 0xf7, 0x23, 0xb8, 0x3c, 0x99, 0x9e, 0x62,
+ 0x65, 0xf5, 0x22, 0x21, 0x79, 0x69, 0x4b, 0x99, 0x8e, 0x1e, 0x32, 0xf8,
+ 0x45, 0x68, 0xa9, 0x21, 0x4c, 0x23, 0xd0, 0xad, 0xe7, 0x36, 0x6a, 0xa6,
+ 0x12, 0x7f, 0x02, 0xf4, 0x98, 0xaa, 0x3d, 0xbc, 0x2e, 0xd1, 0x00, 0x95,
+ 0x0b, 0x9b, 0xae, 0xcf, 0x94, 0x3b, 0xc5, 0xc4, 0x7b, 0xc6, 0xfb, 0x9e,
+ 0x01, 0x6f, 0x78, 0xe5, 0x0f, 0x98, 0xee, 0xd9, 0xbd, 0xea, 0xda, 0xb2,
+ 0x44, 0x3b, 0x33, 0x59, 0xbe, 0x5a, 0x10, 0x77, 0x13, 0x74, 0x23, 0x85,
+ 0xfc, 0x59, 0x30, 0xe4, 0x37, 0x10, 0xc6, 0x63, 0xbf, 0x18, 0xbf, 0x35,
+ 0x12, 0x41, 0x9b, 0x3e, 0x33, 0x26, 0xdd, 0x8e, 0xd0, 0xa8, 0x0c, 0x74,
+ 0xca, 0xaf, 0x34, 0x4a, 0xa4, 0x17, 0x8f, 0x41, 0xba, 0x56, 0x3d, 0xd5,
+ 0xce, 0xe0, 0xfa, 0x7a, 0x9a, 0x85, 0x38, 0x48, 0x13, 0xb8, 0x4a, 0x97,
+ 0x83, 0x6a, 0xcf, 0x15, 0xb9, 0xa8, 0x5b, 0x76, 0xa7, 0x58, 0x19, 0xb4,
+ 0x0a, 0xb3, 0xe6, 0x44, 0x02, 0x70, 0x1f, 0xf6, 0x97, 0x2d, 0x01, 0xb5,
+ 0xd2, 0x4a, 0x74, 0x07, 0xe8, 0x4c, 0x87, 0x2b, 0x57, 0x48, 0xed, 0xd6,
+ 0x65, 0x70, 0x0f, 0xcd, 0xa6, 0x06, 0x7c, 0x1b, 0x9e, 0x05, 0xb6, 0x71,
+ 0xff, 0x38, 0x01, 0x6b, 0x72, 0x9c, 0x03, 0xd5, 0x27, 0x7a, 0xc2, 0x23,
+ 0xfd, 0xa9, 0x5e, 0xc7, 0x47, 0x31, 0xe2, 0x4e, 0x0e, 0x1f, 0x91, 0x10,
+ 0x90, 0x0c, 0x84, 0x0c, 0x60, 0xd3, 0x03, 0x62, 0x24, 0x50, 0xee, 0x07,
+ 0xd0, 0x12, 0x5f, 0x97, 0xf5, 0x6f, 0x3c, 0x98, 0xd9, 0x6d, 0xaa, 0x68,
+ 0x8b, 0x2a, 0x3e, 0x06, 0xe5, 0xac, 0x9b, 0xe6, 0x30, 0xf2, 0xa3, 0x46,
+ 0xdb, 0x89, 0x31, 0xbf, 0xda, 0xef, 0x16, 0x44, 0x74, 0x9b, 0x49, 0x23,
+ 0x15, 0xdc, 0x19, 0xf6, 0xd3, 0x55, 0x4d, 0xc6, 0x09, 0x34, 0x60, 0xf6,
+ 0x3a, 0x05, 0x8c, 0x9a, 0xb7, 0x04, 0x85, 0xb2, 0x50, 0x64, 0xf4, 0x4a,
+ 0xb0, 0x80, 0xc6, 0x7e, 0x71, 0xa9, 0x23, 0x4d, 0x76, 0x4b, 0x20, 0x73,
+ 0x60, 0xbc, 0x67, 0x04, 0x4f, 0x1c, 0xbe, 0xb8, 0x60, 0xc5, 0x43, 0x22,
+ 0x7b, 0x9c, 0xfa, 0xb5, 0xd6, 0x2e, 0x08, 0xfd, 0x87, 0x5b, 0xcd, 0xdb,
+ 0x0a, 0xe7, 0xd5, 0x42, 0xdc, 0xfb, 0x75, 0xc2, 0x12, 0xc7, 0xa3, 0xc0,
+ 0x44, 0x62, 0x78, 0x0d, 0x4b, 0xdf, 0xe6, 0xb2, 0x47, 0xdd, 0xaa, 0x65,
+ 0x84, 0x25, 0x41, 0x2f, 0xd2, 0x33, 0xc2, 0xbf, 0x21, 0xee, 0x06, 0x3d,
+ 0xd0, 0xaf, 0x0f, 0x2d, 0xb7, 0xbd, 0x6b, 0x28, 0x0c, 0xdb, 0x87, 0xfd,
+ 0xc6, 0xc8, 0xe3, 0x4d, 0xb9, 0x48, 0x25, 0xac, 0xde, 0x01, 0xf2, 0x1c,
+ 0x45, 0x14, 0xc7, 0x7a, 0xea, 0x1c, 0x53, 0xb8, 0x2c, 0x24, 0xf7, 0x92,
+ 0xce, 0x37, 0xa4, 0xf9, 0x4c, 0x13, 0xf9, 0x28, 0xe3, 0xe0, 0x3b, 0x9b,
+ 0x66, 0x6c, 0xbc, 0x2d, 0x72, 0x10, 0xa9, 0x46, 0xe7, 0xbd, 0xfb, 0xbf,
+ 0x15, 0xdb, 0x70, 0x59, 0x91, 0xac, 0x0a, 0x4a, 0xab, 0x45, 0x04, 0x22,
+ 0x50, 0x82, 0x82, 0x82, 0xbb, 0xd0, 0x90, 0xbb, 0xcb, 0xb1, 0x7f, 0x3f,
+ 0x9c, 0xfe, 0x2a, 0x3d, 0xbb, 0xcc, 0x73, 0x17, 0x04, 0xe4, 0x9a, 0x9e,
+ 0x90, 0x74, 0x12, 0xb3, 0xcb, 0x65, 0xb7, 0x88, 0xfc, 0xfd, 0xda, 0xe0,
+ 0xbd, 0x4e, 0xab, 0x24, 0x89, 0x6c, 0xe4, 0xc9, 0xce, 0x2b, 0xda, 0x25,
+ 0x9f, 0x1b, 0x6d, 0x50, 0x78, 0x6b, 0xf2, 0xeb, 0x9c, 0x30, 0x8f, 0x33,
+ 0x9b, 0x4f, 0xbd, 0xc0, 0xc7, 0x81, 0x17, 0x67, 0xfe, 0x25, 0x48, 0x5a,
+ 0x64, 0xe5, 0xed, 0xa1, 0x18, 0x70, 0x8f, 0xa1, 0x93, 0xac, 0x26, 0xcb,
+ 0xdc, 0x1e, 0xa5, 0x7f, 0x42, 0xf0, 0xff, 0xea, 0x29, 0x6f, 0xee, 0xac,
+ 0x9c, 0x02, 0x71, 0xd7, 0xde, 0x87, 0x20, 0x64, 0x34, 0xd9, 0xb9, 0xb9,
+ 0x12, 0x9e, 0xbf, 0xc4, 0xeb, 0x1f, 0x39, 0x37, 0x07, 0xd4, 0xfb, 0xec,
+ 0xe1, 0x00, 0xa8, 0xa8, 0x6c, 0xef, 0x6f, 0x4b, 0x5f, 0xe8, 0x4a, 0x15,
+ 0xb9, 0x8f, 0xbf, 0xe0, 0x5e, 0x9c, 0xca, 0xe9, 0xb1, 0x2e, 0xbb, 0xae,
+ 0x4e, 0x7d, 0x99, 0xe6, 0xad, 0x56, 0xbe, 0xbb, 0x71, 0xe0, 0x3d, 0x06,
+ 0x84, 0x5a, 0x90, 0xda, 0x41, 0x4e, 0x70, 0x90, 0x12, 0xf6, 0x01, 0xcc,
+ 0x64, 0x79, 0xf0, 0x1e, 0x86, 0xb2, 0x17, 0xce, 0x3b, 0x3a, 0x92, 0x0c,
+ 0xc9, 0x88, 0xfd, 0xe5, 0xc6, 0x34, 0xc0, 0xed, 0xc5, 0x69, 0xec, 0xa0,
+ 0x2f, 0xfc, 0x93, 0xe2, 0x14, 0x4e, 0x14, 0xe3, 0x12, 0x05, 0x22, 0x63,
+ 0x5e, 0xdf, 0x79, 0xc4, 0xbb, 0x60, 0x70, 0x5b, 0x74, 0x93, 0xd8, 0xb5,
+ 0xaa, 0xe5, 0x98, 0x6a, 0x0e, 0x54, 0x01, 0xb5, 0x0d, 0xe6, 0x8b, 0xa2,
+ 0x94, 0xc0, 0x8e, 0xcb, 0xdf, 0x14, 0xcb, 0x80, 0x25, 0xba, 0xa0, 0x71,
+ 0xaf, 0xe6, 0x58, 0xda, 0x36, 0x20, 0x82, 0x62, 0x97, 0x23, 0x8b, 0xb7,
+ 0xa1, 0x7f, 0x28, 0x8b, 0x4f, 0xe5, 0xd3, 0xf6, 0x14, 0x3f, 0x26, 0x96,
+ 0x2b, 0xd6, 0x57, 0x25, 0x90, 0xfc, 0xb4, 0xad, 0x46, 0x5f, 0xc4, 0x42,
+ 0x78, 0xb7, 0x0a, 0x00, 0xfb, 0xe4, 0xdd, 0xa7, 0xf8, 0x1d, 0x27, 0x10,
+ 0xce, 0x6e, 0xd7, 0xc7, 0x68, 0x51, 0x6e, 0x41, 0x35, 0x6f, 0x82, 0x0a,
+ 0x77, 0xf1, 0xe0, 0xa9, 0xa5, 0x44, 0xa7, 0x94, 0xd4, 0xd6, 0xd1, 0xca,
+ 0x6a, 0x8d, 0x42, 0x49, 0xb2, 0x45, 0x90, 0xac, 0xde, 0xa6, 0x07, 0xee,
+ 0x5b, 0x21, 0x0e, 0x9f, 0xf9, 0xd5, 0x76, 0xd4, 0x42, 0x0b, 0xd2, 0x29,
+ 0xce, 0x6c, 0x5b, 0x14, 0x45, 0xc8, 0x06, 0x6f, 0x68, 0xaf, 0x29, 0x21,
+ 0xfb, 0x30, 0x4e, 0x3c, 0xc7, 0x20, 0x04, 0x13, 0xf9, 0xd9, 0xdb, 0xf3,
+ 0xa4, 0x2c, 0xd8, 0x20, 0x12, 0x3d, 0x9f, 0x1b, 0x02, 0xcd, 0x76, 0x27,
+ 0x90, 0x65, 0x0a, 0xd9, 0x73, 0x6f, 0x5c, 0xaf, 0xe6, 0x93, 0x32, 0x44,
+ 0xaf, 0xd5, 0x3a, 0x45, 0xa3, 0x8a, 0x6b, 0x34, 0xb1, 0xec, 0x94, 0x77,
+ 0x27, 0xa8, 0x01, 0x18, 0x6b, 0xae, 0x30, 0xc4, 0x3b, 0xdd, 0x1a, 0x52,
+ 0x07, 0x31, 0x7f, 0xf7, 0xe6, 0xe6, 0x56, 0x3e, 0x86, 0xd6, 0x02, 0xf1,
+ 0xd9, 0x04, 0x02, 0x33, 0x99, 0x7a, 0xbf, 0xf8, 0xc6, 0x44, 0xfb, 0x34,
+ 0x96, 0x7b, 0xd2, 0x25, 0xad, 0x36, 0xb4, 0xc9, 0x75, 0xea, 0x8b, 0x96,
+ 0xea, 0x51, 0x97, 0x16, 0xf4, 0x13, 0xc8, 0xa2, 0x47, 0x37, 0x02, 0x09,
+ 0x30, 0x9a, 0x84, 0x84, 0x88, 0xf7, 0x59, 0xd8, 0x86, 0xc4, 0x32, 0x7e,
+ 0xcc, 0xd1, 0x27, 0xf7, 0x1c, 0x08, 0x45, 0x85, 0x9a, 0x45, 0x40, 0xc2,
+ 0x60, 0x78, 0x7e, 0xc7, 0x05, 0x3c, 0x86, 0x10, 0x34, 0xf2, 0x87, 0x77,
+ 0x40, 0x08, 0x18, 0x96, 0x66, 0xdc, 0xe2, 0x41, 0xa7, 0xcd, 0xc9, 0xcd,
+ 0x37, 0x91, 0xeb, 0xdc, 0x3f, 0xc2, 0x40, 0x75, 0xa1, 0x1d, 0x60, 0xe4,
+ 0x58, 0x12, 0x23, 0xda, 0xa2, 0x2e, 0x73, 0x3f, 0x98, 0x0c, 0xe9, 0x00,
+ 0xa5, 0x02, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x71, 0x11, 0x00, 0x01, 0x10, 0x24, 0x00, 0x1e, 0xd9, 0xdd, 0xd1, 0x7f,
+ 0x85, 0x80, 0x39, 0x42, 0x28, 0xef, 0xd6, 0x01, 0x54, 0x56, 0xf5, 0xdb,
+ 0x2f, 0x33, 0x34, 0x44, 0x75, 0xc5, 0xe6, 0x4f, 0x25, 0x20, 0xb8, 0x95,
+ 0x05, 0x08, 0x8d, 0x68, 0xb9, 0xa0, 0xd5, 0x7d, 0x01, 0x1b, 0x22, 0x5c,
+ 0x85, 0x42, 0xc0, 0x03, 0xd5, 0xfa, 0x65, 0xf2, 0xf1, 0xe2, 0x2a, 0x93,
+ 0x3d, 0x72, 0x41, 0xd4, 0xfa, 0x43, 0x52, 0x38, 0x34, 0xe9, 0x79, 0x61,
+ 0x4c, 0x5c, 0x8e, 0x09, 0x17, 0xd0, 0xe4, 0xd2, 0x11, 0xee, 0xa7, 0x68,
+ 0xc6, 0x78, 0xb4, 0x06, 0x64, 0x1d, 0x62, 0x2e, 0x17, 0x92, 0x51, 0xe1,
+ 0xe6, 0x73, 0x72, 0xbd, 0x0e, 0x50, 0x45, 0xe4, 0x03, 0x03, 0x7c, 0x82,
+ 0x76, 0xb7, 0x5b, 0x9b, 0x5e, 0x48, 0x9e, 0xbe, 0x2a, 0x01, 0x99, 0x4c,
+ 0x71, 0x48, 0x26, 0xaa, 0xa8, 0xe3, 0xdd, 0x7d, 0xcc, 0xdc, 0x3c, 0x05,
+ 0x60, 0x4d, 0x12, 0x40, 0xee, 0x8d, 0xa5, 0x07, 0x43, 0x60, 0xa8, 0xee,
+ 0x69, 0x6a, 0x09, 0x5e, 0xb1, 0xa2, 0xc8, 0xe2, 0x3f, 0xf6, 0x68, 0x95,
+ 0xf2, 0x5c, 0xac, 0x81, 0x83, 0xbb, 0x61, 0x00, 0xec, 0xa1, 0x82, 0x24,
+ 0xd1, 0x4b, 0xec, 0xd9, 0x4b, 0xa5, 0x5f, 0xfe, 0x20, 0xbf, 0x06, 0x26,
+ 0xb8, 0x3c, 0xf9, 0x37, 0x1d, 0xef, 0x0c, 0x0c, 0xbc, 0x7c, 0xb4, 0x36,
+ 0x21, 0xa7, 0x5f, 0x42, 0x7a, 0xac, 0x4c, 0x4b, 0x20, 0x0a, 0x6c, 0x79,
+ 0x1f, 0x01, 0x9d, 0x3f, 0x30, 0x65, 0x81, 0x4e, 0x57, 0x67, 0xc4, 0xad,
+ 0x5c, 0xc4, 0xd0, 0x3d, 0xb1, 0xe6, 0x30, 0x39, 0x18, 0xa7, 0x43, 0xeb,
+ 0x7e, 0x7e, 0x07, 0xb6, 0x1e, 0x6f, 0x5e, 0x51, 0xa8, 0x34, 0x0a, 0x25,
+ 0xe4, 0x08, 0xc4, 0x68, 0xf2, 0xa4, 0x38, 0xa6, 0x16, 0x96, 0xb5, 0x0c,
+ 0xb1, 0x2a, 0x0a, 0x13, 0x8a, 0x29, 0x93, 0x2c, 0x98, 0x57, 0x95, 0xff,
+ 0xa4, 0x1f, 0x07, 0x6c, 0xf3, 0x6b, 0x46, 0xba, 0x33, 0xda, 0x54, 0x23,
+ 0x88, 0x36, 0x8e, 0xa7, 0x2c, 0xbb, 0x52, 0xeb, 0x7f, 0x1a, 0xdc, 0xc9,
+ 0x7e, 0x1c, 0xbe, 0x11, 0xa0, 0x49, 0x67, 0xc7, 0xea, 0xf9, 0x35, 0xd3,
+ 0x1e, 0x27, 0xed, 0xcf, 0x28, 0x56, 0x17, 0x65, 0xf3, 0xae, 0x95, 0x08,
+ 0xef, 0x8d, 0x5d, 0xde, 0x11, 0xda, 0x50, 0x32, 0xf1, 0x3f, 0xab, 0xd4,
+ 0x1b, 0xfb, 0xdc, 0x5e, 0xa3, 0x98, 0x6e, 0xf4, 0x85, 0x10, 0x8a, 0xf8,
+ 0x6e, 0xa8, 0xe2, 0x26, 0xdd, 0xb9, 0xa2, 0x57, 0x3e, 0x26, 0xb5, 0x3a,
+ 0x43, 0xbf, 0x3c, 0xc5, 0x2e, 0x06, 0x85, 0xc9, 0x45, 0x73, 0x42, 0x7b,
+ 0x30, 0x15, 0x7f, 0x71, 0xe2, 0xf1, 0xd4, 0x90, 0x6b, 0xcc, 0xcf, 0x2f,
+ 0x90, 0xe1, 0xf9, 0xa2, 0x64, 0xc4, 0xbc, 0xcc, 0x9f, 0x4f, 0x50, 0xd7,
+ 0xb6, 0x29, 0xd5, 0xf9, 0x65, 0xdf, 0xa7, 0x1b, 0x5f, 0xc1, 0x1a, 0xe1,
+ 0xe4, 0x71, 0x85, 0xf0, 0xfc, 0xee, 0xe0, 0xaf, 0xb5, 0xac, 0x55, 0x95,
+ 0x9e, 0x69, 0xdf, 0x35, 0x1e, 0x50, 0x05, 0x2e, 0x37, 0x1b, 0xd9, 0x74,
+ 0x92, 0x07, 0x85, 0xfe, 0xf9, 0xbb, 0x0f, 0x2a, 0xbb, 0x49, 0xe9, 0xac,
+ 0x48, 0x2a, 0xaa, 0x84, 0x81, 0xf6, 0x35, 0x76, 0x47, 0xc3, 0x10, 0xfa,
+ 0x7c, 0x12, 0x7e, 0xb4, 0x00, 0xff, 0x68, 0x93, 0xf6, 0xe1, 0x79, 0x52,
+ 0xcc, 0x35, 0x03, 0xe0, 0x1f, 0x0b, 0x2c, 0x2f, 0x80, 0x33, 0x3f, 0xbb,
+ 0xc5, 0x4d, 0x7b, 0x64, 0x01, 0xbc, 0x5b, 0xff, 0x7d, 0x20, 0xa6, 0x00,
+ 0x8a, 0x93, 0x59, 0x36, 0xb6, 0xb0, 0xdb, 0x69, 0x18, 0x6b, 0xe5, 0x53,
+ 0x96, 0x3c, 0xf0, 0xa3, 0xf7, 0x20, 0xea, 0x1b, 0xc7, 0xc2, 0x07, 0xe4,
+ 0xde, 0xab, 0xd2, 0x2f, 0xeb, 0x75, 0xed, 0x96, 0x0c, 0xd8, 0xc3, 0x7d,
+ 0xc5, 0x03, 0x5b, 0x49, 0x29, 0x07, 0x80, 0x61, 0x66, 0x70, 0xc4, 0xaf,
+ 0xea, 0xf1, 0x5d, 0x86, 0x9f, 0x50, 0x47, 0x21, 0xc5, 0x1a, 0x74, 0x1e,
+ 0x49, 0x05, 0x9f, 0x73, 0x33, 0xf7, 0xa2, 0x06, 0x38, 0x76, 0x6e, 0x04,
+ 0x11, 0x24, 0x8d, 0xeb, 0x95, 0x94, 0x9d, 0xc0, 0xcf, 0x67, 0xa6, 0x74,
+ 0x1b, 0x09, 0x64, 0x5a, 0xa4, 0x60, 0x98, 0x27, 0x33, 0x4b, 0xce, 0x42,
+ 0x67, 0x7c, 0x2c, 0xe6, 0xfa, 0xd9, 0xe5, 0x36, 0x00, 0xce, 0x3c, 0x87,
+ 0x1c, 0x0d, 0xe3, 0xe7, 0xe4, 0x9f, 0x73, 0xc0, 0xb7, 0x7d, 0xbf, 0xa5,
+ 0x72, 0xb6, 0x29, 0xce, 0x98, 0xe7, 0x6b, 0x6d, 0x2d, 0xca, 0x96, 0x96,
+ 0x24, 0x5c, 0xa9, 0xc7, 0xca, 0xed, 0xeb, 0x36, 0x1c, 0x05, 0x23, 0x75,
+ 0xbd, 0x10, 0x92, 0x75, 0xf6, 0xb4, 0x04, 0xd3, 0x8a, 0xf9, 0xcc, 0x12,
+ 0xf2, 0xea, 0x96, 0x7e, 0xc1, 0x0d, 0x6b, 0x4f, 0x12, 0xfc, 0x9d, 0xb2,
+ 0x8e, 0x86, 0x75, 0x39, 0xda, 0x0a, 0x0b, 0xc7, 0x24, 0x72, 0xf8, 0x9d,
+ 0x1f, 0xc6, 0xf5, 0x27, 0xd1, 0x13, 0x97, 0xfd, 0x23, 0xb2, 0x82, 0x2a,
+ 0xc0, 0x2c, 0xa4, 0xb7, 0x00, 0x17, 0x06, 0x00, 0x00, 0x87, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x1a, 0x00, 0x05, 0x10, 0x18, 0x14,
+ 0x7b, 0x21, 0x36, 0xcc, 0xbe, 0xc8, 0x9b, 0x41, 0xc4, 0xef, 0x28, 0x93,
+ 0x06, 0xff, 0x7d, 0x14, 0xa6, 0xa0, 0x14, 0x14, 0x17, 0xff, 0x13, 0xb3,
+ 0x7b, 0xde, 0xff, 0x79, 0x95, 0x2d, 0x7c, 0x7c, 0x57, 0xd1, 0x01, 0x85,
+ 0x01, 0xa9, 0x47, 0x8d, 0x79, 0xdf, 0x9b, 0xf2, 0x61, 0x25, 0x2d, 0xcb,
+ 0x2b, 0x2c, 0xb0, 0x98, 0xf2, 0x54, 0x3a, 0x7c, 0x7f, 0xa1, 0x34, 0x88,
+ 0x91, 0xd0, 0x73, 0x51, 0x16, 0x90, 0xd4, 0xc5, 0x3d, 0x53, 0x9c, 0x2d,
+ 0xf9, 0x97, 0x84, 0xf6, 0xa8, 0xb1, 0xa5, 0x6e, 0x1f, 0x88, 0xfe, 0x03,
+ 0x82, 0x29, 0xfc, 0xb3, 0x30, 0xb5, 0x58, 0xa4, 0xb5, 0xb7, 0x25, 0x97,
+ 0xf3, 0xb0, 0x13, 0x6a, 0xe5, 0x87, 0xf5, 0x4c, 0x20, 0x62, 0x06, 0xf1,
+ 0x3d, 0x59, 0x2b, 0xb0, 0x94, 0xe7, 0x1d, 0x7c, 0xb9, 0xfe, 0xe2, 0x79,
+ 0x46, 0x94, 0x59, 0x3a, 0xa9, 0xc7, 0x02, 0x4c, 0xf4, 0x57, 0xd1, 0x1e,
+ 0xb3, 0x25, 0xd7, 0x37, 0x71, 0x22, 0xf8, 0x73, 0xc5, 0xae, 0xb0, 0x23,
+ 0x91, 0xfc, 0x84, 0xdc, 0xd0, 0x0e, 0x76, 0x25, 0xd9, 0xb0, 0xc2, 0x09,
+ 0x43, 0x94, 0x6f, 0xd7, 0xa0, 0x60, 0xab, 0xf9, 0x22, 0xaa, 0x8c, 0xd7,
+ 0x79, 0xd0, 0x17, 0xd8, 0x23, 0xfc, 0xbd, 0x3f, 0x7b, 0xd1, 0xaf, 0x10,
+ 0x79, 0x5b, 0xf1, 0xa8, 0x92, 0xa6, 0xdd, 0xd3, 0xa6, 0x5b, 0xfa, 0xa6,
+ 0x26, 0x92, 0xe6, 0x31, 0x7d, 0xb7, 0x54, 0xc3, 0xd3, 0xfe, 0xe6, 0x18,
+ 0xc2, 0x0d, 0x23, 0x81, 0x80, 0xb2, 0xe7, 0xf6, 0x9b, 0x96, 0xe0, 0xaf,
+ 0xe6, 0x69, 0x5b, 0x81, 0xbe, 0x10, 0xa3, 0x8b, 0xb0, 0x14, 0xfc, 0x5a,
+ 0xf5, 0xd6, 0xcd, 0xc6, 0xe3, 0x4d, 0x94, 0x4d, 0xe8, 0x21, 0x5e, 0x11,
+ 0xcb, 0x1a, 0x18, 0x02, 0x98, 0x65, 0xc2, 0x72, 0x17, 0x79, 0x55, 0x3e,
+ 0xd3, 0x23, 0x68, 0x05, 0x02, 0xdf, 0x57, 0x69, 0x87, 0x48, 0x44, 0xd8,
+ 0xd1, 0xbe, 0xa8, 0x28, 0x8b, 0xef, 0x10, 0x6d, 0x8e, 0xc4, 0xeb, 0x9b,
+ 0x99, 0xf0, 0x85, 0x2b, 0xac, 0xde, 0xd8, 0xce, 0x1e, 0x70, 0x48, 0x98,
+ 0x60, 0x3d, 0x52, 0xed, 0x4c, 0x65, 0x7e, 0xcd, 0x84, 0x5e, 0x7d, 0x10,
+ 0x54, 0x87, 0xb1, 0xf3, 0x2b, 0x8e, 0x8b, 0xa3, 0xd8, 0x8e, 0x73, 0xf7,
+ 0x18, 0x9f, 0x9b, 0xb7, 0xe0, 0x0f, 0x9a, 0x22, 0x01, 0xb6, 0xc9, 0xd5,
+ 0x01, 0xd8, 0x84, 0xb1, 0xf9, 0x9b, 0xdb, 0x85, 0xc0, 0x6f, 0x19, 0xe7,
+ 0x94, 0x5f, 0xeb, 0x2f, 0x29, 0xab, 0x73, 0x27, 0xa7, 0x81, 0xee, 0xfa,
+ 0x3b, 0x2d, 0x2f, 0x6f, 0xe0, 0xd8, 0x2f, 0xd6, 0xb6, 0x25, 0x6f, 0x90,
+ 0x93, 0x72, 0xc8, 0x8b, 0xb8, 0x82, 0xe4, 0x27, 0x76, 0x2d, 0x62, 0x9e,
+ 0x9b, 0x7f, 0xa1, 0xc1, 0xab, 0xcf, 0x12, 0x4e, 0xd5, 0x25, 0x1e, 0xd5,
+ 0x4f, 0xe6, 0x80, 0x58, 0x69, 0x28, 0x7c, 0x40, 0x18, 0xd4, 0x12, 0xb6,
+ 0xd5, 0xa2, 0x84, 0x05, 0xfa, 0x0b, 0x1c, 0x63, 0x2a, 0x69, 0x8b, 0x66,
+ 0x99, 0xa8, 0xa7, 0xf8, 0x50, 0x5b, 0x93, 0xa1, 0x14, 0x27, 0x91, 0x6b,
+ 0x15, 0x0c, 0xc7, 0xc7, 0xa7, 0x08, 0x11, 0xf8, 0x9a, 0x5e, 0xa2, 0x8a,
+ 0x87, 0xc4, 0x17, 0x03, 0x5e, 0x01, 0xcc, 0x4f, 0xd2, 0x8d, 0x8a, 0x6d,
+ 0x01, 0x4c, 0x57, 0x61, 0xf5, 0x70, 0xf2, 0x11, 0xa1, 0x9c, 0x55, 0xc6,
+ 0xed, 0xc5, 0xed, 0x2b, 0x11, 0xa7, 0x09, 0x6f, 0xad, 0xf6, 0x88, 0x0a,
+ 0xa2, 0x4e, 0x6b, 0x42, 0x5b, 0xbb, 0x1b, 0x78, 0x4c, 0x83, 0xc0, 0xef,
+ 0x65, 0x76, 0xed, 0xa7, 0x16, 0x14, 0x68, 0x3b, 0xa4, 0xec, 0xb3, 0xf7,
+ 0xe1, 0x23, 0x7f, 0x98, 0xd1, 0xfd, 0x51, 0x2b, 0x4e, 0x81, 0x2a, 0x91,
+ 0xbb, 0x80, 0x1a, 0x90, 0xa0, 0x41, 0xc1, 0x97, 0xf2, 0x09, 0xcd, 0xe1,
+ 0x0b, 0xc2, 0x2e, 0xcf, 0x9a, 0xf0, 0x19, 0x39, 0x8f, 0x20, 0x8d, 0xf6,
+ 0x41, 0x72, 0xc1, 0xd0, 0x0f, 0xfa, 0x3d, 0xf7, 0x62, 0x60, 0x2a, 0x39,
+ 0xe7, 0x77, 0xcf, 0xa9, 0xfa, 0x2c, 0x7b, 0x13, 0x36, 0x63, 0x3b, 0xaa,
+ 0x1d, 0x8e, 0x3a, 0x30, 0xe7, 0x21, 0x95, 0x58, 0x2a, 0xa1, 0xb8, 0x8f,
+ 0x1f, 0xfe, 0x46, 0x2d, 0x70, 0xb7, 0xb4, 0xdf, 0x65, 0x6d, 0x20, 0x04,
+ 0x13, 0x6b, 0xfe, 0x67, 0xb6, 0xf5, 0x43, 0xbf, 0xfc, 0x19, 0xcd, 0x9f,
+ 0xd4, 0xc8, 0xaf, 0x11, 0x91, 0x67, 0x2c, 0x24, 0x61, 0x74, 0x9e, 0xc6,
+ 0x86, 0xc1, 0xa3, 0xa7, 0xdb, 0x6a, 0x4d, 0xb5, 0x02, 0xec, 0xf4, 0x64,
+ 0x20, 0x65, 0xb6, 0x4f, 0xea, 0x04, 0x35, 0xee, 0xee, 0xf8, 0x99, 0x28,
+ 0x47, 0x14, 0x00, 0xb5, 0x1b, 0xf2, 0xaf, 0x57, 0xe9, 0x42, 0x76, 0x94,
+ 0x14, 0xe6, 0x41, 0x99, 0x17, 0x6f, 0x83, 0x55, 0x1c, 0xd1, 0x17, 0xbe,
+ 0xb7, 0x18, 0x90, 0xe7, 0x3e, 0x7c, 0xff, 0xfe, 0xff, 0xa0, 0xf4, 0xf4,
+ 0xc5, 0x47, 0x36, 0x4b, 0x99, 0x17, 0x55, 0x4a, 0x8e, 0x50, 0x83, 0xcc,
+ 0x4f, 0xd8, 0xfb, 0xe0, 0xa5, 0xeb, 0x4c, 0x58, 0xc3, 0x84, 0xa4, 0x96,
+ 0x20, 0x31, 0x07, 0x4f, 0x02, 0x3e, 0x15, 0x22, 0x6f, 0x87, 0xca, 0x3d,
+ 0xe5, 0x64, 0x11, 0x93, 0xf8, 0x2f, 0x7d, 0x7c, 0xf0, 0xf3, 0x06, 0xc1,
+ 0x7c, 0x4f, 0xa8, 0x36, 0xb1, 0x80, 0x3b, 0xc6, 0xbc, 0xc8, 0x70, 0x1f,
+ 0x4a, 0x00, 0xa4, 0x21, 0x15, 0xa6, 0x6c, 0x06, 0x0d, 0xec, 0x31, 0x73,
+ 0xfb, 0x89, 0x92, 0x01, 0xec, 0x7d, 0x34, 0xce, 0x68, 0x2c, 0x31, 0x94,
+ 0x40, 0x7a, 0x6f, 0x25, 0x86, 0xca, 0xd9, 0x23, 0x9f, 0xd4, 0x4e, 0x47,
+ 0xfc, 0xc5, 0xab, 0x65, 0xd4, 0x23, 0xd3, 0xe3, 0xe9, 0x7d, 0x4a, 0x4d,
+ 0xd9, 0x1d, 0x32, 0xaa, 0x0c, 0xe3, 0x87, 0x97, 0x3a, 0xae, 0x06, 0x33,
+ 0x5f, 0x0b, 0x9f, 0xb0, 0xab, 0x0f, 0xa6, 0xa3, 0x6f, 0x8c, 0xa0, 0x33,
+ 0x27, 0xc0, 0xde, 0x7f, 0x6f, 0x86, 0x12, 0x62, 0x01, 0xdd, 0x0c, 0xf4,
+ 0x4c, 0x16, 0xce, 0x50, 0x03, 0x75, 0x68, 0x5c, 0x6c, 0x27, 0xc9, 0x9e,
+ 0x98, 0x9c, 0x0a, 0x02, 0xe0, 0x67, 0x6d, 0x33, 0x2b, 0xd3, 0x36, 0x9c,
+ 0x1a, 0x5f, 0xbf, 0x84, 0x85, 0x88, 0xca, 0xa7, 0x04, 0xaf, 0xdc, 0x60,
+ 0xbe, 0xe9, 0xa5, 0xea, 0xd8, 0xa8, 0xd5, 0x18, 0x7c, 0x48, 0x7d, 0x6a,
+ 0x72, 0x0c, 0xfd, 0xb5, 0x7d, 0x8e, 0x22, 0x79, 0xb6, 0x47, 0x7c, 0x12,
+ 0x8d, 0x1e, 0x45, 0x81, 0xe8, 0xb2, 0x19, 0xd8, 0x9b, 0x21, 0x23, 0xca,
+ 0x60, 0x51, 0xf6, 0x73, 0xd0, 0xdd, 0x1c, 0x3f, 0x9d, 0x28, 0x94, 0x98,
+ 0x87, 0xe8, 0xe9, 0xfd, 0x04, 0x54, 0x2a, 0x5e, 0xb6, 0x49, 0xb4, 0xc4,
+ 0x6b, 0x86, 0x2b, 0xa5, 0xb5, 0x86, 0x8b, 0x9a, 0xdc, 0x55, 0xf9, 0xd2,
+ 0xe6, 0xbf, 0xe3, 0x32, 0xd7, 0xcb, 0x85, 0x01, 0x66, 0x5a, 0x6d, 0x84,
+ 0xac, 0x88, 0x4d, 0x50, 0x73, 0x60, 0x6b, 0xc2, 0x53, 0xec, 0xf0, 0x4c,
+ 0xfe, 0x73, 0x25, 0x29, 0xc9, 0xdb, 0x67, 0x14, 0x2e, 0xb9, 0xa9, 0x1d,
+ 0xad, 0x59, 0x76, 0xe6, 0xe7, 0x3e, 0x51, 0xe2, 0xaf, 0x89, 0x4b, 0xaf,
+ 0x91, 0xc0, 0x64, 0x97, 0xf4, 0x80, 0xf6, 0xa0, 0xbf, 0x1b, 0xcd, 0xaa,
+ 0x28, 0xbf, 0x36, 0xb9, 0xf4, 0x36, 0xe2, 0xf0, 0xce, 0xe3, 0xcf, 0xe6,
+ 0x2b, 0x84, 0xb4, 0x61, 0x62, 0x18, 0x13, 0xae, 0x1c, 0x55, 0x45, 0x60,
+ 0x51, 0x5c, 0x01, 0xf3, 0xd4, 0x14, 0x5c, 0x72, 0xff, 0xf8, 0xb7, 0x33,
+ 0xe1, 0xb1, 0xc4, 0xf8, 0xf7, 0x49, 0xfb, 0x5d, 0x2f, 0x9b, 0xbd, 0xec,
+ 0xb2, 0x4d, 0x3e, 0x32, 0xa5, 0x51, 0xb2, 0xe6, 0xb1, 0x5d, 0x2f, 0x76,
+ 0x52, 0x8c, 0xe8, 0x13, 0x77, 0xa9, 0xa1, 0x62, 0x2c, 0x4c, 0xcd, 0xff,
+ 0xf0, 0x1e, 0xc9, 0xb9, 0xc4, 0xb5, 0x5d, 0x48, 0xf0, 0x1e, 0x60, 0x6d,
+ 0x2c, 0x47, 0xfd, 0x42, 0xd4, 0x39, 0xe3, 0x85, 0xe5, 0x84, 0x18, 0x3b,
+ 0x29, 0x51, 0x83, 0x1e, 0x1b, 0x1c, 0xfd, 0x15, 0x92, 0xb8, 0xc8, 0xe1,
+ 0xac, 0xcf, 0xb7, 0x87, 0xdb, 0xd6, 0xc1, 0x4a, 0xca, 0xc8, 0x18, 0x59,
+ 0x71, 0xe5, 0xc3, 0xd8, 0xde, 0xaf, 0xf8, 0xb9, 0x6f, 0x43, 0xd7, 0x2b,
+ 0xb8, 0x3d, 0xa5, 0x93, 0x57, 0x8e, 0x49, 0x55, 0xe5, 0x9b, 0x30, 0x61,
+ 0x41, 0xae, 0xf5, 0xfa, 0x51, 0x9c, 0xe0, 0xae, 0x2c, 0xd5, 0xe3, 0xb7,
+ 0x05, 0x60, 0x6a, 0xa8, 0x5e, 0xfc, 0x89, 0x8e, 0xe5, 0xcc, 0xd3, 0xa0,
+ 0xd3, 0xa6, 0x27, 0xdc, 0x9e, 0xa9, 0xb9, 0xdc, 0x21, 0x36, 0x17, 0x57,
+ 0xe4, 0x33, 0x31, 0x0a, 0x37, 0x37, 0x03, 0x94, 0x0c, 0x45, 0x94, 0xfc,
+ 0xdf, 0x5a, 0x55, 0x73, 0x58, 0xea, 0xd4, 0x8e, 0x26, 0xaa, 0x3e, 0x9f,
+ 0x80, 0x4e, 0x23, 0x42, 0x56, 0x2e, 0xa0, 0xe7, 0x24, 0xb5, 0x1e, 0x1d,
+ 0x68, 0xab, 0xd0, 0x6f, 0xd4, 0x2a, 0x2a, 0x14, 0xc7, 0xac, 0xe4, 0x1f,
+ 0x84, 0x7a, 0x67, 0x6c, 0xfa, 0xda, 0x19, 0xc5, 0x63, 0xff, 0x87, 0xdf,
+ 0x0b, 0x46, 0x6d, 0x76, 0xeb, 0x1d, 0x80, 0x90, 0x08, 0x50, 0x9b, 0xd6,
+ 0x29, 0x11, 0xe2, 0x84, 0xef, 0x51, 0x78, 0xaf, 0xe0, 0x71, 0xe3, 0xb8,
+ 0x4b, 0x9e, 0x44, 0xcf, 0xa1, 0xc8, 0xb0, 0x09, 0x0a, 0x4d, 0x16, 0x8e,
+ 0xef, 0xee, 0x20, 0xd0, 0x7a, 0xf9, 0xf3, 0x17, 0xc3, 0x84, 0x0d, 0x20,
+ 0x0f, 0x2a, 0xa3, 0x26, 0xe9, 0x96, 0x99, 0xf2, 0x96, 0xc3, 0x64, 0x02,
+ 0x81, 0x7c, 0xcf, 0xd4, 0x67, 0x40, 0x36, 0x50, 0xaf, 0x36, 0x3e, 0xf4,
+ 0xfb, 0x64, 0x83, 0x68, 0x81, 0x70, 0x7f, 0xb0, 0xed, 0x70, 0x84, 0x77,
+ 0x71, 0x88, 0x3e, 0x5c, 0x99, 0xa5, 0x8c, 0xba, 0x75, 0x40, 0x2f, 0x32,
+ 0x59, 0x86, 0xfc, 0xef, 0x3a, 0x88, 0x5b, 0x48, 0x95, 0x48, 0x95, 0x99,
+ 0xbd, 0x31, 0x88, 0x64, 0x23, 0x33, 0x35, 0x33, 0x34, 0xb1, 0xd4, 0x25,
+ 0xc6, 0x52, 0x96, 0x18, 0x26, 0x43, 0x0c, 0xe0, 0xb3, 0x6e, 0x3d, 0xff,
+ 0xe9, 0xd1, 0x34, 0xef, 0x5d, 0xb1, 0x93, 0x70, 0xf4, 0x01, 0xa4, 0xd8,
+ 0xf8, 0xaa, 0x15, 0xe3, 0xd1, 0x2b, 0x42, 0x6d, 0x89, 0x18, 0xed, 0x49,
+ 0x68, 0x41, 0xe8, 0x10, 0x85, 0xbf, 0x46, 0xdd, 0xfd, 0xea, 0xb9, 0xae,
+ 0x5a, 0x70, 0x0e, 0xe9, 0x55, 0xbd, 0x23, 0xd5, 0x5a, 0x8a, 0xe0, 0x9d,
+ 0xe1, 0x59, 0x20, 0x91, 0x89, 0xe5, 0x74, 0xa2, 0x24, 0x07, 0x5d, 0x7f,
+ 0x75, 0x89, 0x98, 0xe9, 0xae, 0x2c, 0xfe, 0x26, 0x36, 0xf6, 0x18, 0x46,
+ 0x5b, 0x3a, 0x68, 0x7b, 0x07, 0x6b, 0xe9, 0xe5, 0x49, 0x8c, 0xad, 0x5b,
+ 0xec, 0x44, 0x73, 0x1a, 0x31, 0x39, 0x3b, 0xe1, 0x20, 0xfe, 0xb2, 0xe0,
+ 0x9d, 0x4b, 0x56, 0xe4, 0x7c, 0x4a, 0x8b, 0xc3, 0x18, 0x74, 0xf4, 0xa2,
+ 0xc5, 0x3b, 0xc6, 0x20, 0xd6, 0xa7, 0x0b, 0x40, 0x2a, 0x53, 0x23, 0xbc,
+ 0x2b, 0x56, 0x44, 0xea, 0x25, 0xc3, 0x44, 0x0c, 0x69, 0x1f, 0x47, 0x5b,
+ 0x25, 0xa1, 0xc6, 0xc5, 0x98, 0x5e, 0x9c, 0x95, 0x04, 0x0b, 0x53, 0x44,
+ 0xd8, 0x81, 0x59, 0x76, 0xc4, 0x8f, 0x7e, 0xf1, 0x33, 0x07, 0xf3, 0x16,
+ 0xb4, 0x07, 0x99, 0xbd, 0xbb, 0xa1, 0xd8, 0x9f, 0xb2, 0xbc, 0x0e, 0xc0,
+ 0xac, 0xcc, 0x5a, 0x7b, 0x53, 0x9f, 0x70, 0xa3, 0x09, 0x00, 0x60, 0xce,
+ 0x14, 0x0d, 0x03, 0x20, 0x4f, 0x13, 0xe2, 0x52, 0x24, 0x2c, 0xed, 0xc2,
+ 0x5a, 0xee, 0x00, 0x96, 0xbb, 0x7a, 0xf1, 0x89, 0xd6, 0xab, 0xab, 0xe3,
+ 0xaa, 0x94, 0x2c, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x71, 0x0e, 0x00, 0x01, 0x10, 0x20, 0x00, 0x1e,
+ 0xee, 0x0c, 0x90, 0x64, 0x01, 0xe7, 0x1c, 0x5f, 0xd2, 0x3d, 0x5c, 0x53,
+ 0xfe, 0x55, 0xe5, 0x3f, 0xbe, 0xfc, 0x95, 0x82, 0x81, 0x02, 0xcd, 0xd1,
+ 0x96, 0xa2, 0x19, 0x78, 0xc2, 0xee, 0x82, 0x82, 0xca, 0x02, 0x99, 0x1e,
+ 0x41, 0x93, 0xda, 0xc5, 0xc8, 0xdb, 0xf8, 0x7e, 0x64, 0x27, 0xc9, 0x9b,
+ 0x89, 0x56, 0x3b, 0x99, 0xee, 0x36, 0xfa, 0x81, 0xeb, 0x3f, 0xa0, 0xb8,
+ 0x79, 0x6d, 0x98, 0x05, 0x8c, 0xed, 0x31, 0x82, 0xd0, 0x11, 0x74, 0x23,
+ 0x3b, 0x00, 0x24, 0x23, 0xe6, 0xba, 0xc2, 0x37, 0x61, 0x76, 0xfe, 0xe6,
+ 0x23, 0x8f, 0xb6, 0x13, 0x76, 0xbd, 0xb1, 0x32, 0xcf, 0x45, 0x68, 0x7f,
+ 0xb4, 0x80, 0x60, 0xf7, 0xe3, 0x02, 0x4b, 0xf6, 0xcb, 0x91, 0x8b, 0x0e,
+ 0xdd, 0xe0, 0xdf, 0xcf, 0xe8, 0x3b, 0xbc, 0xf4, 0x40, 0xe5, 0xab, 0x1c,
+ 0xf0, 0x41, 0x32, 0x92, 0xa1, 0xa7, 0x3f, 0x46, 0xc4, 0xd1, 0xba, 0x76,
+ 0xb7, 0xd3, 0xc5, 0x43, 0x04, 0xb5, 0x5b, 0x32, 0xdf, 0xac, 0x78, 0x0b,
+ 0xfb, 0x6f, 0xcb, 0x30, 0x14, 0x17, 0xb5, 0xd0, 0xbb, 0x1f, 0x20, 0x14,
+ 0xd3, 0x57, 0x2c, 0x3d, 0x49, 0xa9, 0x01, 0xe5, 0xfe, 0x58, 0x75, 0xab,
+ 0xb9, 0x04, 0x99, 0xa4, 0x00, 0x60, 0xca, 0xca, 0x6b, 0xa1, 0xe1, 0x4f,
+ 0xde, 0x41, 0x00, 0xa4, 0xba, 0x3a, 0x7a, 0x90, 0x9d, 0xa1, 0x93, 0x4f,
+ 0xc3, 0x76, 0xe5, 0x24, 0xbe, 0x86, 0x4c, 0x5e, 0xa2, 0x79, 0xd0, 0xcb,
+ 0xbd, 0xa4, 0xb3, 0x47, 0x54, 0x48, 0x4f, 0x1a, 0xbc, 0xbd, 0x30, 0x77,
+ 0x79, 0x16, 0x40, 0x48, 0x5e, 0x1a, 0xbf, 0x4f, 0xae, 0xc5, 0x68, 0xa4,
+ 0x7c, 0xc5, 0x65, 0xa1, 0x97, 0x9a, 0xa1, 0x07, 0x69, 0xee, 0xad, 0xfe,
+ 0x4d, 0xb9, 0x0f, 0xf9, 0xfe, 0x8e, 0x98, 0x82, 0x3f, 0x20, 0x1f, 0x47,
+ 0x54, 0xf5, 0xd9, 0xe3, 0x79, 0x5a, 0xe7, 0x07, 0x36, 0xf0, 0x8a, 0x2f,
+ 0xf6, 0xa4, 0x6b, 0xd0, 0xbb, 0xff, 0x9e, 0x1b, 0x5c, 0xfd, 0x74, 0x25,
+ 0xa9, 0x04, 0x1b, 0x37, 0xe0, 0xbe, 0x23, 0xc3, 0x48, 0xec, 0x14, 0xf5,
+ 0x27, 0x3f, 0x70, 0xd3, 0x2f, 0x42, 0x2e, 0xaa, 0x9f, 0x89, 0x66, 0xa6,
+ 0x03, 0xb4, 0xd2, 0x11, 0xa6, 0x01, 0xeb, 0x7f, 0xa1, 0xa9, 0x7b, 0x3d,
+ 0xa2, 0xac, 0xb9, 0x7e, 0x8e, 0xff, 0xce, 0x6e, 0x5f, 0x45, 0xd8, 0x18,
+ 0x5e, 0x58, 0x1e, 0xb7, 0xd2, 0xae, 0x21, 0x09, 0xfd, 0xb8, 0x17, 0x92,
+ 0x1a, 0xab, 0xfd, 0x1f, 0x9c, 0xcc, 0x56, 0xc2, 0x7c, 0xf2, 0x7e, 0x27,
+ 0x6b, 0xe9, 0xdd, 0x79, 0xfe, 0xfe, 0x50, 0xbf, 0x8e, 0xfa, 0x69, 0x38,
+ 0xba, 0x41, 0xd8, 0xee, 0x2b, 0x8a, 0x76, 0x83, 0xc6, 0x89, 0x3f, 0x09,
+ 0x8b, 0x33, 0xa6, 0xde, 0x2a, 0x8d, 0xb2, 0x9d, 0x67, 0x17, 0x1d, 0xf4,
+ 0x2a, 0xe3, 0xd2, 0xe2, 0x84, 0x22, 0xf8, 0x7f, 0xd5, 0xfb, 0x72, 0x67,
+ 0x16, 0xa0, 0x8d, 0x07, 0x16, 0xd2, 0xde, 0xa7, 0x40, 0x9b, 0xe9, 0xe7,
+ 0x39, 0x05, 0x66, 0x3c, 0xd0, 0xbc, 0x9b, 0x7e, 0x34, 0x14, 0x6c, 0x42,
+ 0xba, 0xdf, 0x4c, 0x05, 0x53, 0x9c, 0x52, 0xa1, 0x60, 0xbf, 0x73, 0xa2,
+ 0x24, 0xe7, 0x95, 0x15, 0x7f, 0x28, 0xa5, 0x16, 0x25, 0xd7, 0xa4, 0x4f,
+ 0xa5, 0xc9, 0xe2, 0x76, 0x0f, 0xd9, 0x78, 0xa6, 0xe1, 0xda, 0xa3, 0x1a,
+ 0x0c, 0xb2, 0xc3, 0xcd, 0xa0, 0x9c, 0x84, 0x8f, 0x41, 0xee, 0xe7, 0xcb,
+ 0xec, 0x95, 0x03, 0xde, 0xc3, 0x3d, 0x19, 0x04, 0x5f, 0xcf, 0x8e, 0x13,
+ 0x7e, 0xd2, 0xe8, 0x94, 0x05, 0x3f, 0x47, 0x27, 0x18, 0xfc, 0x89, 0xe9,
+ 0xd3, 0xdc, 0x59, 0x30, 0x4d, 0x8a, 0x85, 0x74, 0x94, 0x88, 0xef, 0x81,
+ 0x97, 0xa8, 0x1a, 0x78, 0x3b, 0x8a, 0xb3, 0x5e, 0x24, 0x07, 0x0f, 0x72,
+ 0x66, 0x54, 0x5d, 0x07, 0x11, 0xf7, 0x30, 0x1b, 0x53, 0x95, 0x7a, 0xd5,
+ 0x14, 0x9d, 0xb0, 0x3a, 0x98, 0xcc, 0x6a, 0x03, 0xaf, 0xb4, 0x8e, 0x0e,
+ 0x36, 0x7c, 0xaf, 0x42, 0x61, 0xd1, 0xe4, 0x31, 0xe6, 0x16, 0x72, 0x9f,
+ 0x79, 0x3a, 0xaf, 0x93, 0x3f, 0x83, 0xe1, 0x0c, 0x33, 0x51, 0xfe, 0x05,
+ 0x33, 0xf3, 0xff, 0x07, 0x5a, 0x77, 0x8b, 0x9f, 0x6e, 0x51, 0x60, 0x7e,
+ 0x87, 0xfe, 0xe3, 0x95, 0xdb, 0xef, 0x4b, 0x85, 0x51, 0x5c, 0x6f, 0xb3,
+ 0xaa, 0x75, 0x6b, 0xde, 0xd1, 0xdf, 0xbf, 0x3a, 0x35, 0xa0, 0x67, 0xff,
+ 0xc4, 0x2f, 0x47, 0x34, 0xf8, 0xd8, 0xb4, 0x89, 0x37, 0xee, 0xb2, 0x40,
+ 0x29, 0xaa, 0x3a, 0xfc, 0xea, 0x69, 0x94, 0x96, 0x49, 0xc6, 0xa8, 0x20,
+ 0x72, 0x9b, 0xb6, 0xcd, 0x39, 0x19, 0xb1, 0xb7, 0xfd, 0x1f, 0x34, 0x28,
+ 0x81, 0xbc, 0xa5, 0x4a, 0x69, 0x16, 0xd9, 0x46, 0x6c, 0x24, 0xf8, 0x12,
+ 0x49, 0xa8, 0xdd, 0xe3, 0xaf, 0x14, 0x9c, 0x3b, 0x57, 0xb8, 0xc3, 0x94,
+ 0x43, 0xe6, 0x50, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0d, 0x00, 0x03, 0x10, 0x20, 0x00, 0x18,
+ 0x00, 0x3d, 0x5f, 0x3d, 0x17, 0x3e, 0xbf, 0xdf, 0x70, 0xe3, 0x0c, 0x15,
+ 0x6a, 0x05, 0x88, 0x4c, 0xfe, 0xf5, 0xd3, 0x2e, 0xcc, 0x93, 0xbe, 0xa3,
+ 0x64, 0xb8, 0x7f, 0x72, 0x6b, 0x34, 0xe9, 0x02, 0x28, 0x13, 0xfd, 0x77,
+ 0x19, 0x29, 0x82, 0x7e, 0x86, 0x53, 0x2b, 0xaf, 0x7f, 0xfe, 0x78, 0x18,
+ 0xbe, 0x44, 0x8b, 0x14, 0x6d, 0x73, 0xc3, 0x55, 0xcb, 0x19, 0x0c, 0x37,
+ 0xca, 0x98, 0x9a, 0xa9, 0x48, 0x24, 0x75, 0x40, 0x0d, 0xa4, 0xdb, 0xef,
+ 0x01, 0x46, 0x40, 0x7d, 0xa8, 0x24, 0x8b, 0x53, 0x67, 0x21, 0x31, 0xe8,
+ 0xfe, 0x57, 0x33, 0xbf, 0x7a, 0xf0, 0xab, 0xb0, 0xdd, 0x38, 0x02, 0xac,
+ 0xb8, 0x5d, 0x0c, 0xed, 0xea, 0x75, 0x27, 0x54, 0x14, 0x1c, 0xdf, 0x40,
+ 0xc8, 0x3f, 0x8c, 0xdb, 0x8e, 0xf8, 0x59, 0x8c, 0x23, 0xf2, 0x30, 0x2d,
+ 0x09, 0xd3, 0x04, 0xe3, 0x6f, 0xa4, 0x70, 0x06, 0x27, 0xc3, 0x79, 0x60,
+ 0xe8, 0x69, 0x5e, 0x56, 0xbe, 0xbc, 0xe9, 0xc9, 0x95, 0x18, 0xf0, 0x99,
+ 0x3a, 0xb7, 0x23, 0xaa, 0xb6, 0x99, 0x66, 0x4a, 0x03, 0x71, 0x92, 0xf5,
+ 0x2a, 0xd2, 0xd3, 0xb9, 0x5c, 0x86, 0x52, 0x57, 0xd0, 0xe2, 0x4e, 0x60,
+ 0x33, 0xee, 0xe9, 0xfe, 0x65, 0x12, 0x29, 0xf8, 0x58, 0xab, 0xbb, 0x01,
+ 0x61, 0x35, 0x5b, 0xd4, 0x13, 0x9e, 0xf0, 0xd6, 0x0f, 0x68, 0x18, 0x40,
+ 0x9a, 0x30, 0xbb, 0xee, 0x7c, 0x78, 0xf9, 0xcb, 0x13, 0x7e, 0xe2, 0x1e,
+ 0x46, 0xba, 0x31, 0xee, 0xb0, 0x42, 0xa5, 0x59, 0xaf, 0xf3, 0xf6, 0x1e,
+ 0xc8, 0xaa, 0xb4, 0x02, 0x1c, 0x68, 0xbb, 0xa2, 0xac, 0x08, 0x29, 0x6e,
+ 0x7e, 0xe7, 0xaa, 0x23, 0x38, 0x68, 0xc3, 0x54, 0x6f, 0xc6, 0xce, 0x66,
+ 0x96, 0xb4, 0x64, 0x4d, 0x7c, 0x0a, 0xfd, 0x85, 0xa9, 0x25, 0x18, 0x07,
+ 0xa1, 0x51, 0x4a, 0xf1, 0x3c, 0xc8, 0x44, 0xb2, 0x66, 0x23, 0x43, 0xd4,
+ 0xe6, 0x3c, 0x79, 0x22, 0x41, 0x1f, 0x36, 0x3d, 0x54, 0xd6, 0xb0, 0xcf,
+ 0x09, 0x05, 0xee, 0xe3, 0x60, 0x6c, 0xe8, 0x83, 0xaf, 0x96, 0xba, 0xa3,
+ 0x02, 0xa3, 0xa6, 0x58, 0x5e, 0xe5, 0xe2, 0x3f, 0x3e, 0x97, 0x28, 0x67,
+ 0xa6, 0xa8, 0xb6, 0x58, 0x08, 0xdf, 0x89, 0x2e, 0xc1, 0x80, 0x1f, 0x5a,
+ 0xb6, 0xe6, 0xb2, 0x43, 0xee, 0xaa, 0x1c, 0xfe, 0x62, 0x69, 0x6d, 0x90,
+ 0x2d, 0xca, 0x09, 0xcc, 0x69, 0xfc, 0x0f, 0xff, 0x5a, 0x15, 0x4c, 0x04,
+ 0xd7, 0xca, 0x8e, 0xd2, 0x5c, 0xa6, 0x6c, 0xa0, 0x77, 0xf9, 0x39, 0x8a,
+ 0x7c, 0x73, 0xd6, 0xe8, 0xbc, 0x21, 0x2f, 0x1d, 0xd9, 0xf3, 0x8c, 0x3c,
+ 0x10, 0xa2, 0x90, 0xad, 0xba, 0x8c, 0xb6, 0xb1, 0x6b, 0x92, 0x49, 0xa3,
+ 0x67, 0xf3, 0x1a, 0xa2, 0xb2, 0x22, 0x90, 0xce, 0x76, 0x2a, 0xed, 0x57,
+ 0x15, 0xfe, 0xc7, 0xd7, 0xc4, 0xf6, 0x95, 0x7c, 0xee, 0xb3, 0x1b, 0xf1,
+ 0xc2, 0x3e, 0x88, 0xfe, 0x2f, 0x2d, 0x90, 0x3f, 0x16, 0xb2, 0xe1, 0x32,
+ 0xd3, 0x2e, 0xb6, 0x7f, 0xe0, 0x01, 0xf0, 0xf2, 0xfe, 0x7d, 0xea, 0x45,
+ 0x6d, 0x3a, 0x96, 0x96, 0x44, 0x0f, 0xc4, 0x93, 0x0d, 0x13, 0xa9, 0x99,
+ 0x64, 0x34, 0x97, 0x04, 0x19, 0x12, 0x85, 0x1c, 0xae, 0xf0, 0x00, 0x79,
+ 0xdc, 0x86, 0x20, 0xeb, 0x60, 0x00, 0x10, 0xc4, 0xb8, 0x42, 0x4c, 0x86,
+ 0x63, 0x4d, 0x4d, 0x2f, 0xf2, 0x82, 0xc0, 0x7c, 0x40, 0x19, 0x79, 0x05,
+ 0xa6, 0x7d, 0x11, 0x0f, 0xc1, 0xa2, 0x3b, 0xb3, 0xdd, 0xa1, 0xe5, 0x54,
+ 0xd7, 0x86, 0x18, 0xc4, 0x4a, 0xb2, 0x7d, 0x88, 0x2a, 0xb8, 0x4c, 0xd9,
+ 0xcc, 0x3b, 0xf1, 0x15, 0x42, 0x5e, 0x85, 0x7c, 0xd2, 0xd0, 0x73, 0x81,
+ 0x35, 0x15, 0xaf, 0x9a, 0xcf, 0xcb, 0x65, 0xcb, 0x97, 0xe2, 0x3c, 0x38,
+ 0x36, 0x4a, 0x38, 0x38, 0xc9, 0x87, 0xe0, 0xa7, 0x85, 0x46, 0x71, 0xbd,
+ 0x38, 0x6d, 0xf3, 0x87, 0x67, 0xd9, 0x40, 0x70, 0xe9, 0xea, 0xb6, 0x31,
+ 0xe9, 0x86, 0x2f, 0x28, 0x1d, 0x5c, 0xff, 0x76, 0xf6, 0x54, 0x3f, 0xc6,
+ 0xc4, 0xc8, 0xa2, 0xf2, 0x86, 0x7c, 0x60, 0x36, 0xd8, 0x00, 0x71, 0x02,
+ 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0e,
+ 0x00, 0x03, 0x10, 0x1c, 0x00, 0x1e, 0xe0, 0x76, 0x3c, 0x2c, 0x74, 0x12,
+ 0x01, 0xad, 0xcb, 0xfb, 0x6b, 0xed, 0x77, 0x00, 0xa7, 0x00, 0x06, 0xae,
+ 0x56, 0x5c, 0xc0, 0x5f, 0xc5, 0x66, 0x5e, 0xc2, 0x84, 0xda, 0x7a, 0x2b,
+ 0x2f, 0xc8, 0x08, 0x8e, 0x44, 0x2d, 0xa8, 0x9b, 0xa7, 0x82, 0x6c, 0x05,
+ 0x02, 0x7f, 0x41, 0x76, 0xba, 0x2e, 0xf8, 0x8a, 0xb8, 0xce, 0xff, 0x30,
+ 0x93, 0x14, 0xa6, 0x1f, 0x6f, 0x0d, 0xee, 0x1e, 0x64, 0xf8, 0xa6, 0x3f,
+ 0x41, 0xb4, 0x3d, 0x49, 0x41, 0x6b, 0x30, 0xb0, 0xe4, 0x89, 0x0a, 0x2a,
+ 0xe2, 0x92, 0xcc, 0x59, 0xa1, 0x84, 0x45, 0x34, 0x8e, 0x90, 0xbf, 0xf6,
+ 0x73, 0x70, 0x0d, 0x7d, 0x75, 0xdd, 0x04, 0x21, 0xba, 0x33, 0x50, 0x66,
+ 0xab, 0xdb, 0x31, 0x89, 0x5e, 0x9c, 0x6f, 0xe3, 0x60, 0x33, 0xf2, 0x57,
+ 0x3f, 0xde, 0xb9, 0x6d, 0x93, 0xa2, 0x9b, 0xb9, 0x4f, 0xc0, 0x43, 0xb2,
+ 0x20, 0x5d, 0x05, 0x3f, 0x4f, 0xbb, 0x79, 0x73, 0x7b, 0x38, 0x82, 0xd2,
+ 0x39, 0xdb, 0xc2, 0x52, 0x74, 0xca, 0xb4, 0x4c, 0x07, 0x4e, 0xc0, 0x32,
+ 0x1d, 0x81, 0xa8, 0x0f, 0xe5, 0x3a, 0x7a, 0x38, 0xa5, 0xc7, 0x81, 0xa0,
+ 0xeb, 0xfe, 0x01, 0xb5, 0x9d, 0x02, 0x56, 0xbf, 0xcd, 0x7c, 0x8c, 0x30,
+ 0x0f, 0xd6, 0xb2, 0xf5, 0xef, 0x20, 0xe9, 0x7d, 0x02, 0xec, 0xbe, 0xec,
+ 0xf8, 0x56, 0xff, 0x3a, 0xf7, 0x40, 0xf7, 0x24, 0xf8, 0x30, 0x8a, 0xe1,
+ 0xba, 0x1b, 0xc4, 0x4d, 0x5e, 0x7a, 0xfc, 0xaf, 0x3e, 0xd6, 0xa3, 0x25,
+ 0x90, 0xbf, 0x95, 0x51, 0xd0, 0xaf, 0xa4, 0x3e, 0xe4, 0x7b, 0xdb, 0xb8,
+ 0xc4, 0x3c, 0x6d, 0xd4, 0x90, 0x01, 0x43, 0xd8, 0x85, 0x03, 0x57, 0xfa,
+ 0xf6, 0x18, 0xac, 0x74, 0x71, 0x1b, 0xea, 0x0e, 0x06, 0xa9, 0x12, 0x74,
+ 0xc1, 0x14, 0xef, 0x31, 0x18, 0xdb, 0x3e, 0x60, 0x14, 0x07, 0xad, 0xb4,
+ 0x41, 0xea, 0x63, 0xea, 0xe2, 0xf1, 0x98, 0xf9, 0x51, 0xc2, 0x49, 0xa6,
+ 0x24, 0xbe, 0x42, 0x2b, 0xc3, 0xf7, 0x1a, 0xa2, 0x95, 0x8a, 0x7d, 0xca,
+ 0xe5, 0x38, 0x26, 0x8a, 0xea, 0x85, 0xf1, 0xf0, 0x79, 0x10, 0x4b, 0x19,
+ 0xc0, 0x96, 0xe2, 0x23, 0x68, 0xbe, 0x78, 0xd9, 0x99, 0x2d, 0xa9, 0x30,
+ 0x50, 0xf9, 0x0a, 0x92, 0x2b, 0xe7, 0x9f, 0x0a, 0x24, 0x47, 0xfe, 0x6c,
+ 0xc2, 0x53, 0x71, 0xda, 0xf8, 0x7f, 0x1b, 0x48, 0x53, 0x48, 0x6c, 0x09,
+ 0xeb, 0xcd, 0x19, 0xc3, 0x7d, 0x96, 0x25, 0x31, 0x1e, 0xdb, 0xc9, 0xb2,
+ 0xe9, 0x06, 0x3b, 0x65, 0xb8, 0x6a, 0x02, 0x0e, 0xf2, 0xb1, 0x3f, 0x54,
+ 0x3f, 0x1c, 0xd2, 0xa2, 0xde, 0xcc, 0x91, 0x28, 0x11, 0x27, 0xed, 0x8a,
+ 0x62, 0x51, 0x1c, 0x6b, 0xe0, 0xb1, 0xc8, 0xf0, 0x77, 0x8a, 0x0a, 0x3d,
+ 0x13, 0x33, 0x6e, 0xd6, 0x5a, 0xe9, 0xbf, 0x1c, 0x96, 0x7c, 0xb7, 0xd5,
+ 0x81, 0xea, 0xfa, 0x35, 0xc8, 0x67, 0x03, 0x98, 0xa3, 0x5a, 0xd9, 0x65,
+ 0x69, 0xb9, 0x6b, 0x6d, 0x90, 0xbe, 0x4e, 0x9f, 0x43, 0x3b, 0x17, 0x8a,
+ 0xef, 0xf7, 0x07, 0x10, 0x77, 0xf5, 0x02, 0x52, 0xe2, 0x7c, 0x0c, 0x69,
+ 0xc3, 0xb3, 0xdc, 0x5e, 0xbe, 0x97, 0x02, 0x91, 0x7d, 0xa8, 0xfc, 0x1a,
+ 0xfd, 0xc1, 0x9d, 0x3b, 0xf3, 0x8c, 0x5e, 0xd0, 0xb4, 0xf3, 0x77, 0xb7,
+ 0x08, 0xd0, 0xa6, 0x05, 0xbc, 0xe8, 0x15, 0x4d, 0xbe, 0xee, 0x42, 0x04,
+ 0xc4, 0x50, 0x99, 0x87, 0xfd, 0x5b, 0xb1, 0x42, 0x46, 0xeb, 0x1a, 0xb3,
+ 0xeb, 0xff, 0x52, 0xdf, 0x59, 0xe3, 0x0b, 0xb9, 0xd6, 0xf7, 0x88, 0xca,
+ 0x94, 0x14, 0x05, 0x10, 0xfc, 0x9c, 0xd2, 0x75, 0x30, 0xc5, 0x01, 0x95,
+ 0x4c, 0xf3, 0x3f, 0x15, 0x56, 0x03, 0x2c, 0x00, 0x88, 0x67, 0x94, 0x0e,
+ 0x01, 0x63, 0xd4, 0x28, 0xb4, 0xfe, 0x0a, 0xec, 0xde, 0xb9, 0xe3, 0xe6,
+ 0x84, 0x98, 0xec, 0xc6, 0x4a, 0xa0, 0x56, 0xfb, 0x03, 0xb0, 0xd7, 0xd8,
+ 0x66, 0x07, 0x92, 0xae, 0x0b, 0x88, 0x5f, 0x62, 0x42, 0xd6, 0x4c, 0xe9,
+ 0xdd, 0xab, 0x9b, 0x18, 0x99, 0x3d, 0x8f, 0xde, 0x85, 0xee, 0xca, 0xb1,
+ 0x5d, 0x4c, 0xd6, 0xb4, 0xb1, 0xc7, 0x8d, 0x48, 0x43, 0x4e, 0x7c, 0x78,
+ 0x33, 0x0d, 0x74, 0xfd, 0xa4, 0xed, 0xf7, 0xdb, 0x6b, 0xdc, 0x9c, 0x52,
+ 0x4b, 0x2e, 0xe3, 0xd7, 0x34, 0xb9, 0x94, 0x97, 0x4b, 0x0f, 0xc3, 0x8f,
+ 0xc4, 0x83, 0x74, 0x3b, 0x7b, 0xb1, 0x60, 0x83, 0x70, 0xa1, 0xec, 0x86,
+ 0x7c, 0x8b, 0x71, 0x56, 0x24, 0xe5, 0xeb, 0x78, 0xae, 0xe0, 0x00, 0xfb,
+ 0x02, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91,
+ 0x0e, 0x00, 0x03, 0x10, 0x18, 0x00, 0x18, 0x22, 0x30, 0x06, 0xdd, 0x5a,
+ 0x86, 0x2e, 0x02, 0xfb, 0xb2, 0x52, 0x81, 0x33, 0x5c, 0x7f, 0xb1, 0x9b,
+ 0xb7, 0x46, 0xd8, 0x81, 0x2a, 0x43, 0xab, 0xb9, 0xee, 0xdd, 0xee, 0x53,
+ 0xef, 0xbb, 0xc0, 0x79, 0x09, 0xa5, 0xbb, 0x6d, 0xe0, 0xf2, 0xb6, 0x5f,
+ 0x5e, 0x74, 0x3d, 0xab, 0xac, 0xd8, 0x95, 0x21, 0x64, 0x81, 0xac, 0xfb,
+ 0x2a, 0x09, 0x75, 0x10, 0x15, 0xc6, 0x80, 0xb2, 0x82, 0x5e, 0xec, 0x5d,
+ 0xeb, 0x6f, 0x27, 0xee, 0xf0, 0xc1, 0x99, 0xd0, 0x66, 0xae, 0x95, 0x9e,
+ 0xe2, 0x70, 0x36, 0x1a, 0x19, 0xbe, 0xb2, 0xe8, 0x57, 0xd3, 0xe0, 0x2b,
+ 0x93, 0xf9, 0x88, 0xbe, 0x42, 0x03, 0xff, 0xf0, 0xb0, 0xe5, 0x7a, 0x35,
+ 0x17, 0xa0, 0xae, 0xfa, 0xe1, 0xf5, 0xc0, 0x0e, 0xd8, 0x00, 0x84, 0x28,
+ 0x4c, 0xb4, 0x1f, 0x58, 0xf5, 0x76, 0xca, 0x2d, 0xe0, 0x04, 0xc3, 0x3e,
+ 0xa8, 0x94, 0x3e, 0xba, 0x92, 0xdf, 0x41, 0x95, 0x58, 0x00, 0x25, 0xd1,
+ 0x80, 0x8b, 0xf2, 0xc1, 0xa6, 0x3d, 0x18, 0x09, 0xb9, 0xe6, 0xfe, 0x53,
+ 0x1b, 0xb8, 0x46, 0x48, 0xe3, 0x77, 0xb6, 0x1e, 0xee, 0x96, 0x72, 0xb0,
+ 0xf5, 0xff, 0x67, 0x7e, 0x02, 0x53, 0xf9, 0x11, 0x6e, 0x7e, 0x79, 0x87,
+ 0x79, 0x31, 0xc5, 0xee, 0xc8, 0xcb, 0xeb, 0x49, 0xea, 0x6c, 0xc1, 0x8f,
+ 0xac, 0x7c, 0xef, 0x53, 0x76, 0x14, 0x83, 0x99, 0x46, 0x8d, 0x97, 0x4c,
+ 0x0a, 0x2b, 0xee, 0x55, 0x8f, 0x95, 0xe8, 0xfa, 0x75, 0xd3, 0x76, 0x32,
+ 0x81, 0x85, 0xb8, 0x33, 0xb4, 0xe1, 0xd5, 0x69, 0xb8, 0xf3, 0x98, 0x8f,
+ 0x69, 0xb9, 0x65, 0x34, 0xb8, 0x8e, 0xfa, 0x96, 0xfa, 0xc4, 0x8c, 0x49,
+ 0x97, 0x7d, 0x46, 0xe0, 0x27, 0x4d, 0x86, 0x01, 0xf7, 0xe7, 0x68, 0xcf,
+ 0xd3, 0x30, 0x58, 0x26, 0x62, 0x0b, 0xa6, 0xb8, 0x80, 0xfc, 0xfa, 0x72,
+ 0xc4, 0xbf, 0x32, 0x6d, 0xf7, 0xfa, 0xcf, 0xa4, 0x2e, 0xc8, 0x39, 0x7a,
+ 0x62, 0xae, 0xff, 0xec, 0x47, 0x71, 0x7f, 0x84, 0xe6, 0x5a, 0x6a, 0x0c,
+ 0xf9, 0xbf, 0xe2, 0xf2, 0xa0, 0x90, 0x7e, 0x55, 0xe9, 0x24, 0xbb, 0x00,
+ 0x48, 0x6b, 0xda, 0x9c, 0x95, 0xa5, 0x55, 0x1e, 0xc5, 0xb9, 0xf4, 0xf4,
+ 0x3f, 0xb5, 0x6e, 0xd3, 0x21, 0x31, 0x34, 0xf4, 0x03, 0x2c, 0xba, 0x97,
+ 0x02, 0x5d, 0xe5, 0xa6, 0x4b, 0x86, 0xf7, 0xb2, 0xfe, 0x0f, 0x4a, 0x3f,
+ 0xfe, 0x10, 0xf9, 0xb0, 0x06, 0xc1, 0x78, 0xc7, 0xaa, 0x5a, 0xce, 0x34,
+ 0xb8, 0x1d, 0xa3, 0x06, 0x54, 0x7c, 0xd4, 0xe3, 0x17, 0x2e, 0xbc, 0xd3,
+ 0x7e, 0x0a, 0xfa, 0x36, 0x36, 0x66, 0xc9, 0x1c, 0xf8, 0xba, 0x82, 0x07,
+ 0xc1, 0xad, 0x75, 0xb2, 0x43, 0xe5, 0x4a, 0x40, 0xd3, 0xd5, 0xbd, 0x71,
+ 0xb4, 0xbb, 0x31, 0x61, 0xe9, 0x93, 0x03, 0xad, 0x7b, 0xbb, 0xbd, 0x81,
+ 0x0c, 0x00, 0x55, 0xea, 0xdc, 0x98, 0x94, 0x26, 0x34, 0xe8, 0xad, 0x1f,
+ 0x0f, 0x86, 0x5d, 0xec, 0xca, 0xfe, 0x42, 0x51, 0xa8, 0x38, 0x5f, 0x6f,
+ 0xad, 0x9a, 0x15, 0x82, 0xa9, 0x2c, 0x46, 0x9e, 0x3c, 0x2d, 0x9a, 0xb8,
+ 0xda, 0xc6, 0x1f, 0x35, 0x97, 0x6a, 0xf4, 0xd1, 0x2f, 0x43, 0xfa, 0x6a,
+ 0x70, 0xe8, 0xd7, 0x67, 0x46, 0xd2, 0x82, 0xc5, 0x6f, 0x4d, 0x3d, 0x40,
+ 0xaa, 0x55, 0x61, 0x18, 0xf5, 0xb2, 0xe0, 0x49, 0xf4, 0x71, 0xcb, 0xef,
+ 0x43, 0x8e, 0x0e, 0x5e, 0x7b, 0x94, 0xe6, 0x69, 0x95, 0xf8, 0xf4, 0x4a,
+ 0x91, 0xd7, 0x27, 0x48, 0xc1, 0xaf, 0xd7, 0xbe, 0x7c, 0x2e, 0x41, 0xe0,
+ 0xcd, 0x6c, 0x38, 0x16, 0xea, 0x52, 0x5d, 0xca, 0xb8, 0x59, 0xfe, 0x3e,
+ 0x8e, 0xb2, 0x65, 0xb7, 0x9e, 0x4e, 0xcb, 0xf7, 0x9d, 0xb2, 0x73, 0x92,
+ 0xb4, 0xb2, 0xde, 0xf2, 0x77, 0x1d, 0x5a, 0xaf, 0xc2, 0x7d, 0xe5, 0x91,
+ 0x79, 0x30, 0xc3, 0x92, 0xcc, 0x5c, 0x92, 0x98, 0x0f, 0x01, 0xce, 0xd2,
+ 0xfa, 0x84, 0xa7, 0x76, 0x54, 0x77, 0x21, 0x44, 0x40, 0xa8, 0xec, 0x65,
+ 0xe3, 0x30, 0xe8, 0xcd, 0x7a, 0x14, 0x8b, 0xf0, 0x78, 0xc4, 0xfe, 0x2b,
+ 0x45, 0x4a, 0x09, 0xac, 0xc7, 0xe8, 0x35, 0x8b, 0xae, 0xe7, 0x13, 0xe2,
+ 0x20, 0xcc, 0x8d, 0x54, 0x9b, 0xa2, 0xb5, 0x50, 0xb8, 0x50, 0x56, 0xbc,
+ 0x3b, 0xe0, 0x11, 0x42, 0x28, 0x6e, 0x03, 0xee, 0x9d, 0xb0, 0x7d, 0xe9,
+ 0xde, 0x6d, 0xba, 0xba, 0x9a, 0xba, 0x50, 0x77, 0x06, 0x28, 0xad, 0xdf,
+ 0x3d, 0xa1, 0x05, 0xac, 0x40, 0x65, 0x8e, 0x18, 0x42, 0xe2, 0xe9, 0xf8,
+ 0x64, 0xef, 0xe1, 0x4f, 0xca, 0xa5, 0xcb, 0x9b, 0x9f, 0x83, 0x3a, 0x9e,
+ 0x30, 0x89, 0xa7, 0x1a, 0xc9, 0x6a, 0xb4, 0x38, 0xf6, 0xb9, 0x06, 0x96,
+ 0x72, 0xcd, 0xf4, 0xa1, 0x32, 0xcf, 0xd1, 0xf2, 0xb8, 0xc6, 0x9d, 0xd6,
+ 0xbb, 0xcd, 0xdc, 0x39, 0x8e, 0x7f, 0x78, 0x52, 0x2d, 0x91, 0x6d, 0x12,
+ 0x2f, 0x2a, 0x4f, 0x7b, 0x3b, 0xb3, 0xfd, 0x27, 0x48, 0x48, 0x25, 0xd6,
+ 0xee, 0x92, 0x2b, 0x6b, 0xf3, 0x51, 0xdf, 0xc0, 0x04, 0x92, 0x0c, 0xe7,
+ 0x9d, 0xf9, 0x70, 0x8c, 0x2d, 0x00, 0xea, 0x38, 0x72, 0x09, 0xfb, 0x61,
+ 0xa3, 0xd7, 0xa7, 0x3c, 0x91, 0xa2, 0xb0, 0x8b, 0x6c, 0x02, 0x92, 0xef,
+ 0xf8, 0x80, 0x05, 0x95, 0xf1, 0xc7, 0x50, 0x11, 0xdc, 0x4a, 0x07, 0xc6,
+ 0x28, 0xac, 0xb8, 0x33, 0x71, 0xd2, 0xfc, 0xf4, 0xa6, 0x1e, 0x95, 0x4f,
+ 0x2f, 0xf6, 0x59, 0x10, 0x0e, 0x88, 0x1f, 0xcc, 0x87, 0xda, 0xe2, 0xac,
+ 0x39, 0x6c, 0xa2, 0x28, 0x50, 0x00, 0xf6, 0x05, 0x00, 0x00, 0x8c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x15, 0x00, 0x06, 0x10, 0x14,
+ 0x00, 0x1e, 0xb2, 0x72, 0x50, 0x1d, 0xec, 0x1c, 0x9b, 0x66, 0x6d, 0x4e,
+ 0x2a, 0x1c, 0x80, 0xb5, 0x3f, 0x8e, 0x0a, 0x06, 0x5b, 0x57, 0xef, 0x3c,
+ 0xb2, 0x3f, 0x6c, 0xd1, 0xee, 0x33, 0xa9, 0x3b, 0x2b, 0x09, 0xe1, 0xaa,
+ 0x64, 0xdd, 0xe3, 0x61, 0x1c, 0xa2, 0xb9, 0xff, 0xd3, 0x8a, 0x85, 0x9f,
+ 0xef, 0x17, 0x2a, 0xca, 0xfd, 0x45, 0x8d, 0x22, 0xaa, 0x30, 0x0b, 0x65,
+ 0xf4, 0xd1, 0xa8, 0x7f, 0xd3, 0x42, 0x0c, 0x8e, 0x8e, 0x0e, 0x5c, 0x68,
+ 0xeb, 0x12, 0xa6, 0xdc, 0x70, 0x37, 0x02, 0xca, 0xf6, 0x90, 0x77, 0x2c,
+ 0x53, 0xf3, 0x90, 0xe3, 0x05, 0x9d, 0xa7, 0x80, 0xbd, 0x97, 0x18, 0x98,
+ 0x4a, 0x17, 0xa7, 0xa0, 0x54, 0xc7, 0x5e, 0x7d, 0xa7, 0x7d, 0x19, 0xf0,
+ 0x73, 0x67, 0x88, 0xe3, 0x64, 0x4f, 0x44, 0x98, 0x5e, 0xb0, 0x40, 0x1f,
+ 0x68, 0xe9, 0x48, 0xf5, 0x4c, 0xa2, 0x71, 0x7c, 0xcb, 0x2c, 0x63, 0x53,
+ 0x4a, 0xe0, 0x4d, 0xef, 0x3d, 0x93, 0x78, 0x51, 0xcd, 0x39, 0x08, 0x70,
+ 0xcb, 0x41, 0x16, 0xc0, 0x00, 0x22, 0xdb, 0x32, 0x27, 0x73, 0xeb, 0x82,
+ 0xa3, 0x9c, 0xfc, 0xbc, 0x6e, 0x30, 0x8f, 0x65, 0xfa, 0x8a, 0x13, 0xe1,
+ 0xf7, 0xba, 0xa8, 0x3a, 0x3e, 0x20, 0x7e, 0xb4, 0x44, 0x37, 0xe8, 0x9a,
+ 0x28, 0xc7, 0x6b, 0x57, 0x25, 0x61, 0x76, 0xeb, 0xeb, 0xa9, 0xd1, 0x22,
+ 0x5d, 0x1c, 0x98, 0xae, 0xe4, 0xc2, 0xc6, 0xc7, 0x13, 0xc6, 0x60, 0x5f,
+ 0x1e, 0xad, 0xe9, 0x70, 0x6d, 0xc9, 0x24, 0xaa, 0x5f, 0x24, 0xad, 0xaf,
+ 0x25, 0x7a, 0xa2, 0xb4, 0x79, 0xd3, 0xf3, 0xcc, 0x7f, 0x51, 0xcf, 0x16,
+ 0xfc, 0xcf, 0x66, 0x66, 0x31, 0x70, 0xd2, 0x3b, 0x03, 0x76, 0x9b, 0x5e,
+ 0xa3, 0xb0, 0x8a, 0xde, 0xc5, 0x72, 0x3d, 0x58, 0xf5, 0x6f, 0x48, 0xeb,
+ 0x02, 0xef, 0x49, 0xf5, 0x76, 0x5e, 0x31, 0xab, 0x71, 0xda, 0x31, 0xce,
+ 0xeb, 0x21, 0xc1, 0x8b, 0x90, 0x1d, 0x46, 0x60, 0x9d, 0x3e, 0xd3, 0x32,
+ 0x49, 0xbf, 0xc4, 0xbd, 0xb0, 0x2f, 0xd7, 0x87, 0xf0, 0xfd, 0xee, 0xad,
+ 0x08, 0xff, 0x0b, 0x99, 0x00, 0x8a, 0x83, 0xab, 0x8c, 0x3c, 0x6c, 0x13,
+ 0x74, 0xd3, 0x81, 0x77, 0x0d, 0x27, 0xaa, 0xf8, 0xb4, 0x16, 0xb1, 0xda,
+ 0x7e, 0xbd, 0x5f, 0xfe, 0x1d, 0xbc, 0xa3, 0xe3, 0xf3, 0x1c, 0x56, 0x43,
+ 0xd4, 0xab, 0xb8, 0x83, 0xdc, 0xab, 0xbb, 0xaa, 0xaa, 0xe3, 0xf2, 0xf2,
+ 0xe7, 0x96, 0xfb, 0xb0, 0xb8, 0x19, 0xdb, 0x14, 0x7e, 0x75, 0x73, 0x28,
+ 0xff, 0xdc, 0x1f, 0x2c, 0x30, 0x7c, 0xb3, 0xe8, 0x0d, 0x49, 0x4f, 0x0d,
+ 0x59, 0xa2, 0xbd, 0x80, 0xac, 0xbe, 0xa6, 0x48, 0x90, 0xba, 0x69, 0xdf,
+ 0xda, 0x9a, 0x81, 0xaa, 0x7f, 0x1b, 0xc2, 0x7a, 0x60, 0xda, 0xea, 0x47,
+ 0xab, 0xb8, 0x33, 0xf5, 0xaf, 0x3f, 0x90, 0xba, 0x1b, 0x34, 0xc0, 0xa6,
+ 0xa0, 0x54, 0x9a, 0x1e, 0x9b, 0x83, 0x47, 0x7d, 0x43, 0xfb, 0x6d, 0xfd,
+ 0x10, 0x6d, 0x38, 0x7f, 0x44, 0x94, 0x2b, 0xdc, 0x7d, 0x59, 0xed, 0x00,
+ 0x6b, 0xc9, 0x71, 0x95, 0x8a, 0xdf, 0xdf, 0xc1, 0xc9, 0xb6, 0x1f, 0x36,
+ 0x8b, 0xc4, 0x84, 0xa9, 0x80, 0x4e, 0xf4, 0x0c, 0xe1, 0x3c, 0x76, 0x07,
+ 0xcb, 0xf1, 0x6c, 0x72, 0xcf, 0x9e, 0xa6, 0xa5, 0xd6, 0x70, 0xa0, 0x6b,
+ 0x5b, 0x4a, 0xb8, 0xeb, 0x7f, 0x50, 0x79, 0x3f, 0xdb, 0x7e, 0x3c, 0xc0,
+ 0x71, 0xe4, 0x81, 0x7c, 0x9b, 0x24, 0x69, 0x2a, 0x80, 0x75, 0x33, 0x2d,
+ 0xef, 0x0d, 0xb8, 0xc7, 0x31, 0x54, 0xca, 0x3a, 0x3f, 0xda, 0x66, 0xab,
+ 0x9f, 0x53, 0x1e, 0xfd, 0xed, 0xf6, 0xd1, 0x8b, 0x9e, 0x42, 0x97, 0x48,
+ 0xaa, 0x75, 0xaa, 0x27, 0x7f, 0xf3, 0x9e, 0x2f, 0xda, 0x78, 0x4f, 0xd7,
+ 0x55, 0x51, 0xff, 0x74, 0x54, 0xe6, 0xbc, 0x6c, 0x12, 0x18, 0xe6, 0x88,
+ 0x8b, 0x8f, 0x57, 0xcb, 0x94, 0x7c, 0xda, 0xcd, 0xfe, 0xfe, 0x99, 0xf5,
+ 0xb5, 0x67, 0xb6, 0x2b, 0x72, 0xdb, 0x7e, 0x98, 0xb0, 0xff, 0xb2, 0x98,
+ 0x75, 0xf3, 0x1d, 0xfc, 0x1b, 0x9a, 0x25, 0x5e, 0x96, 0xff, 0x42, 0xfa,
+ 0xbd, 0x7a, 0x7b, 0xd4, 0x12, 0x51, 0x17, 0x65, 0x0f, 0x69, 0x3a, 0x10,
+ 0xf2, 0x02, 0x7d, 0x69, 0x0f, 0x42, 0x52, 0x91, 0xb8, 0x3f, 0xa0, 0x48,
+ 0xea, 0x7b, 0xda, 0x64, 0xc5, 0x2e, 0x05, 0x1f, 0x9a, 0x85, 0x28, 0x48,
+ 0x06, 0xac, 0x96, 0xd7, 0xb9, 0x01, 0x76, 0x16, 0x5a, 0xb1, 0x1d, 0x48,
+ 0x8f, 0xf4, 0xde, 0xeb, 0x65, 0x47, 0xdf, 0xba, 0xdf, 0x1d, 0xec, 0xf5,
+ 0x64, 0x91, 0xba, 0x62, 0x85, 0xc3, 0xde, 0x8a, 0x73, 0xdd, 0x7f, 0xc0,
+ 0xc7, 0x85, 0x19, 0x10, 0x95, 0x08, 0xfe, 0x59, 0x47, 0x84, 0x0e, 0x94,
+ 0x13, 0x1c, 0x79, 0xa2, 0x3f, 0x63, 0xc2, 0xb5, 0x58, 0x62, 0x78, 0xc9,
+ 0xee, 0x22, 0xe9, 0xc8, 0x70, 0x3b, 0x76, 0xc9, 0x79, 0xe3, 0xf8, 0x8c,
+ 0xb8, 0x6d, 0x4a, 0x33, 0x00, 0xb6, 0x67, 0xb7, 0xe2, 0x2e, 0x2d, 0x47,
+ 0x6c, 0x9d, 0x92, 0x8a, 0xc4, 0x14, 0xd3, 0x66, 0x83, 0xcf, 0x74, 0x38,
+ 0x19, 0x71, 0x55, 0xf6, 0x43, 0x4c, 0x08, 0xcf, 0xc3, 0x51, 0xb3, 0xbe,
+ 0xc1, 0x54, 0x75, 0xd0, 0xd7, 0xa7, 0xe7, 0x10, 0x68, 0x5f, 0x6a, 0x4a,
+ 0x46, 0x8c, 0x22, 0x54, 0x7e, 0xdf, 0x58, 0xd6, 0x61, 0x1f, 0x60, 0xe9,
+ 0xe2, 0x1c, 0xb5, 0xa5, 0x49, 0xdf, 0x50, 0x7f, 0xf8, 0xb8, 0xc0, 0xea,
+ 0x28, 0x46, 0xca, 0x79, 0x65, 0x6b, 0xb0, 0x96, 0xf6, 0xb0, 0xd3, 0x9f,
+ 0x10, 0xb2, 0xfd, 0xa2, 0xe0, 0xaa, 0x2d, 0x1e, 0xda, 0xf9, 0x31, 0x0d,
+ 0x82, 0x60, 0xfb, 0xe9, 0x7e, 0x62, 0x2a, 0x11, 0x41, 0x82, 0x06, 0xe4,
+ 0xe2, 0x0d, 0x2e, 0x68, 0x2e, 0x3b, 0xc2, 0xf2, 0x7f, 0x9e, 0xf7, 0x99,
+ 0x99, 0xd3, 0xc2, 0xe6, 0x64, 0x72, 0x50, 0x5b, 0x38, 0x3f, 0xed, 0x2e,
+ 0x2a, 0x48, 0xad, 0x10, 0x3b, 0x8f, 0x56, 0xd1, 0xc3, 0xd8, 0xe3, 0x08,
+ 0x04, 0x6b, 0xb7, 0x8f, 0x45, 0x0c, 0x94, 0xd3, 0xde, 0x4c, 0x53, 0x5a,
+ 0xf0, 0x4e, 0xc8, 0xef, 0xa2, 0x49, 0xd8, 0x25, 0x31, 0xa5, 0x0e, 0x42,
+ 0x95, 0x2b, 0xc2, 0x4f, 0x4c, 0x1a, 0x79, 0x6c, 0xcf, 0xed, 0x29, 0xe3,
+ 0x73, 0xb4, 0x99, 0x34, 0x24, 0x85, 0xa4, 0xd6, 0x53, 0x32, 0xa2, 0x5f,
+ 0x16, 0xa3, 0x43, 0xf2, 0x8d, 0x1a, 0x95, 0x60, 0xf1, 0xa4, 0x57, 0x58,
+ 0x48, 0x57, 0x78, 0x6a, 0x2a, 0xa1, 0xf6, 0x3e, 0x57, 0xc2, 0x39, 0xc6,
+ 0x50, 0xea, 0x6a, 0x2e, 0xe3, 0x65, 0x1b, 0x27, 0xa0, 0x6b, 0x85, 0xe1,
+ 0x7e, 0xb8, 0x42, 0xc6, 0x09, 0x6d, 0x54, 0x90, 0x6a, 0x0e, 0x77, 0xbb,
+ 0x9c, 0xf6, 0x74, 0xa3, 0x31, 0xd7, 0x02, 0x70, 0x80, 0x20, 0x8b, 0xc5,
+ 0x25, 0x64, 0x08, 0x77, 0xf0, 0xff, 0xb0, 0x54, 0x1a, 0xfb, 0xc9, 0xf0,
+ 0x3b, 0x55, 0x7b, 0xbb, 0x45, 0xf5, 0x3b, 0x5e, 0x23, 0x29, 0x41, 0x70,
+ 0x18, 0x6f, 0x5a, 0xab, 0x93, 0x03, 0x1c, 0x51, 0x0c, 0x15, 0xfc, 0xfc,
+ 0xb5, 0xe9, 0x89, 0x6f, 0x92, 0x19, 0x70, 0x04, 0xb4, 0xef, 0xb9, 0x3b,
+ 0xec, 0x59, 0x79, 0xe8, 0x09, 0xb1, 0x13, 0xa3, 0xda, 0x3a, 0xbb, 0xdd,
+ 0x98, 0x2c, 0xdc, 0x41, 0x87, 0x0e, 0xf6, 0x0d, 0x2e, 0xe4, 0x82, 0x6b,
+ 0xb7, 0xa6, 0x74, 0xcd, 0x28, 0xe7, 0xa5, 0x37, 0x24, 0x4c, 0x93, 0xdb,
+ 0xad, 0xcb, 0xa1, 0x18, 0xb6, 0x56, 0x2a, 0xf3, 0x1a, 0x07, 0x7c, 0xcf,
+ 0xe7, 0x13, 0x83, 0x7b, 0xd3, 0x2e, 0xa5, 0xb0, 0x0f, 0xb7, 0xae, 0xea,
+ 0xd7, 0x77, 0xef, 0x38, 0xdc, 0x5c, 0xcc, 0xd1, 0x77, 0xbe, 0x1c, 0xb7,
+ 0xae, 0xf4, 0x3c, 0xef, 0x61, 0x86, 0x61, 0xbc, 0xd0, 0xf2, 0xc8, 0x87,
+ 0x10, 0x54, 0x65, 0x1f, 0xf5, 0x2a, 0x1e, 0x98, 0x86, 0x11, 0x7f, 0x26,
+ 0xbb, 0x6f, 0x6b, 0xd4, 0xb2, 0x7f, 0xab, 0x12, 0x2e, 0x4a, 0x55, 0x2f,
+ 0x1a, 0x2c, 0x96, 0x1b, 0x12, 0x0a, 0xd2, 0xcd, 0x08, 0x9c, 0x13, 0x4d,
+ 0x6f, 0xf4, 0xfc, 0xba, 0x75, 0x54, 0xe7, 0x20, 0x76, 0x1f, 0xf8, 0xbc,
+ 0xc7, 0x4e, 0x39, 0x8f, 0xeb, 0x21, 0x84, 0x97, 0xcb, 0x5b, 0xf7, 0xf1,
+ 0xed, 0x20, 0x45, 0xee, 0xa9, 0x36, 0x98, 0xfb, 0x62, 0xb0, 0x70, 0xf8,
+ 0xfc, 0x8e, 0x09, 0xa0, 0x3f, 0xcf, 0x91, 0x5f, 0x2e, 0xb4, 0x66, 0xc9,
+ 0x7d, 0x75, 0x19, 0xa2, 0xa0, 0x3a, 0x98, 0x9e, 0xce, 0x76, 0x37, 0x38,
+ 0xa9, 0x39, 0xe6, 0x7f, 0x9d, 0x52, 0x31, 0x85, 0xa6, 0xcf, 0x1c, 0x33,
+ 0xd5, 0x6e, 0x3d, 0x6d, 0x5a, 0xe6, 0x2c, 0x8a, 0x6d, 0x49, 0x4b, 0x6b,
+ 0x8b, 0x72, 0x50, 0x7d, 0x1c, 0x40, 0x4c, 0x9f, 0x31, 0x9b, 0x80, 0x87,
+ 0x77, 0xaa, 0xbb, 0xe8, 0x4f, 0x76, 0x65, 0x7c, 0x8b, 0xc6, 0x24, 0xbb,
+ 0x08, 0x52, 0xc7, 0x1c, 0x86, 0x89, 0xe7, 0x52, 0x5f, 0x10, 0x99, 0x88,
+ 0xc1, 0x3e, 0x4d, 0xa3, 0x8a, 0x95, 0x6a, 0x89, 0x1f, 0xc8, 0xc1, 0x52,
+ 0xd4, 0x3c, 0x38, 0xb8, 0x20, 0x2e, 0xe3, 0x33, 0xa0, 0xb1, 0xa9, 0xe8,
+ 0x16, 0x8e, 0xa1, 0x2a, 0x93, 0xdc, 0xaf, 0x26, 0x5d, 0xc9, 0xa2, 0x9f,
+ 0x8f, 0x80, 0xfa, 0xf4, 0x6e, 0x6c, 0xfc, 0x02, 0x56, 0x67, 0x93, 0xf2,
+ 0x14, 0x43, 0x5d, 0x5e, 0x7f, 0x4c, 0xa9, 0x03, 0xc0, 0x8d, 0xa6, 0xc5,
+ 0xa7, 0x97, 0x04, 0xef, 0xf8, 0x31, 0x1b, 0x7d, 0xe1, 0xb0, 0x01, 0x5c,
+ 0x99, 0x85, 0x5b, 0x08, 0xc5, 0x6c, 0x58, 0xce, 0x9f, 0x56, 0x99, 0x72,
+ 0x8b, 0xdf, 0x8f, 0x6f, 0x95, 0xcc, 0xcb, 0xba, 0x1f, 0xeb, 0x97, 0x55,
+ 0x87, 0x55, 0xe7, 0x1b, 0xd9, 0x00, 0x69, 0xa7, 0x47, 0x03, 0xc1, 0xb8,
+ 0xcf, 0x14, 0xc9, 0x2d, 0x23, 0x90, 0x83, 0x46, 0x33, 0xb0, 0x64, 0x37,
+ 0x59, 0xd1, 0x39, 0xac, 0x0a, 0x61, 0xfd, 0x21, 0xd1, 0xed, 0x5b, 0x29,
+ 0xe4, 0x5a, 0x4a, 0x59, 0x4c, 0xc4, 0x4e, 0xd0, 0x0b, 0xb4, 0x8d, 0x6b,
+ 0xc3, 0x25, 0x09, 0xc1, 0x5d, 0x69, 0x23, 0x48, 0xf7, 0xe3, 0x61, 0x3a,
+ 0xdf, 0xcd, 0xbd, 0x0b, 0x61, 0x5c, 0x18, 0x25, 0x20, 0x5a, 0xe5, 0x35,
+ 0xce, 0x8b, 0x84, 0xed, 0xca, 0x39, 0xb3, 0x0b, 0xf4, 0x85, 0x8a, 0x82,
+ 0xa0, 0xef, 0x9b, 0x9c, 0xa2, 0x64, 0xa5, 0x1e, 0x65, 0x40, 0xae, 0x74,
+ 0x80, 0x43, 0xde, 0xfc, 0x26, 0xa7, 0x4e, 0x94, 0x86, 0x1b, 0x40, 0x1a,
+ 0xd8, 0xc0, 0x66, 0xdc, 0x3c, 0x61, 0x0c, 0xd7, 0xf9, 0x80, 0x37, 0x76,
+ 0x8f, 0x9f, 0xad, 0x61, 0x99, 0x24, 0xbf, 0xba, 0x4a, 0x91, 0x47, 0xed,
+ 0x8b, 0x8c, 0x5c, 0x5f, 0x81, 0x68, 0xd4, 0x5f, 0x34, 0x71, 0x43, 0x5c,
+ 0x01, 0xfd, 0xe1, 0xed, 0xb0, 0x63, 0x44, 0xd0, 0x84, 0xeb, 0x11, 0xb8,
+ 0xe0, 0xde, 0x25, 0xbc, 0xe8, 0x80, 0x86, 0xd8, 0x19, 0x76, 0xd3, 0xf8,
+ 0xbb, 0x3b, 0x88, 0xbe, 0xaf, 0xdd, 0x88, 0xec, 0x64, 0x1d, 0x42, 0x74,
+ 0x6c, 0xc1, 0xfb, 0x51, 0x87, 0xc2, 0x61, 0x46, 0xd1, 0x95, 0x64, 0x08,
+ 0xdd, 0x8f, 0x07, 0x6a, 0x1d, 0x36, 0x63, 0x47, 0x79, 0xed, 0x37, 0x64,
+ 0x9f, 0x54, 0x2f, 0x6a, 0x09, 0x02, 0x00, 0x00, 0x58, 0x06, 0x00, 0x00,
+ 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x11, 0x00, 0x04,
+ 0x10, 0x10, 0x00, 0x1c, 0x0a, 0x67, 0x8f, 0x20, 0xdc, 0x70, 0x27, 0xa2,
+ 0xcf, 0x52, 0x20, 0x23, 0x11, 0x64, 0xc8, 0x71, 0x74, 0x6d, 0x0f, 0xff,
+ 0x55, 0x55, 0x55, 0x60, 0xb9, 0x84, 0x37, 0x92, 0xe0, 0x04, 0x1a, 0x58,
+ 0x37, 0xe2, 0x0b, 0xd8, 0x10, 0x54, 0x64, 0x80, 0x6d, 0x8e, 0xde, 0x8c,
+ 0xbf, 0x83, 0xc9, 0x55, 0x98, 0xd7, 0x97, 0xe4, 0x9f, 0x87, 0xb6, 0x73,
+ 0x30, 0xdf, 0x3f, 0xa4, 0xe1, 0x7d, 0xd5, 0x90, 0xa8, 0x1c, 0x04, 0x9c,
+ 0xf1, 0xc8, 0xde, 0x44, 0x6a, 0x56, 0xf7, 0xc2, 0x17, 0x19, 0x9e, 0x6b,
+ 0x4b, 0x15, 0x4e, 0xa6, 0xce, 0xbf, 0xa8, 0x68, 0xa2, 0x15, 0xe6, 0xbc,
+ 0x44, 0x22, 0x25, 0x4a, 0xbd, 0x60, 0x04, 0xa1, 0xa1, 0x00, 0x52, 0x01,
+ 0xb5, 0xf3, 0x66, 0xa8, 0x68, 0x58, 0xed, 0x00, 0x03, 0x41, 0xe0, 0x62,
+ 0xb5, 0xa7, 0xc8, 0x45, 0x1d, 0x05, 0x00, 0x6a, 0x98, 0x91, 0x35, 0xbf,
+ 0x2a, 0xbe, 0x00, 0x96, 0xa0, 0x78, 0xd0, 0x6a, 0xcf, 0x1d, 0xfd, 0xaf,
+ 0xcd, 0x3c, 0x98, 0xa3, 0xa3, 0xa4, 0xa9, 0x38, 0xab, 0x87, 0xcd, 0x99,
+ 0x40, 0x90, 0x22, 0xda, 0x7f, 0x43, 0xa6, 0x28, 0xe7, 0x3c, 0x06, 0xce,
+ 0x83, 0x13, 0x27, 0x67, 0x39, 0xf6, 0x73, 0x59, 0x9d, 0x67, 0x58, 0x7f,
+ 0x3c, 0xce, 0xbe, 0xd2, 0xf9, 0xe7, 0x12, 0x15, 0x0b, 0x20, 0xde, 0xe8,
+ 0x56, 0x99, 0xbc, 0xab, 0xa4, 0xc7, 0x70, 0x6f, 0x0c, 0x90, 0x26, 0xfa,
+ 0xf4, 0x4f, 0xf3, 0x8a, 0xb7, 0xb9, 0xca, 0xe9, 0xdf, 0x54, 0x61, 0x5e,
+ 0x97, 0xa0, 0x20, 0xe5, 0x4f, 0x13, 0xaf, 0xc9, 0xe2, 0x2a, 0x21, 0xc7,
+ 0x21, 0x0f, 0x8a, 0xd0, 0xa8, 0x53, 0xcf, 0x67, 0xe7, 0x4f, 0x6c, 0x71,
+ 0x62, 0x2f, 0x97, 0xa3, 0x26, 0xbb, 0x7e, 0x09, 0x2a, 0xad, 0x0d, 0x1b,
+ 0x43, 0x1f, 0xc6, 0xfa, 0xa9, 0x29, 0xca, 0x9e, 0xa7, 0xb9, 0x8f, 0x55,
+ 0xcc, 0x35, 0x31, 0x09, 0x19, 0x9d, 0x15, 0x7d, 0xe1, 0x73, 0x5d, 0xf8,
+ 0x38, 0xbc, 0x89, 0xbc, 0xc1, 0x4a, 0xda, 0x6c, 0x55, 0x39, 0xf7, 0xc8,
+ 0x22, 0x8a, 0x0c, 0x9d, 0xbd, 0x47, 0xe9, 0x7b, 0xf0, 0x52, 0xf7, 0xe0,
+ 0xa5, 0xef, 0xc1, 0x4b, 0xe2, 0xe2, 0x1b, 0x0a, 0xd5, 0x96, 0x64, 0x1f,
+ 0x0e, 0xdf, 0x88, 0x21, 0x7c, 0x5f, 0xc1, 0x2a, 0x1e, 0xc5, 0x81, 0x87,
+ 0xb4, 0xec, 0xd5, 0x61, 0xc6, 0x78, 0xc2, 0xf9, 0xc6, 0xfe, 0xae, 0x6e,
+ 0x84, 0x29, 0x85, 0x11, 0xb3, 0x89, 0x29, 0x2a, 0x1c, 0x10, 0x46, 0x44,
+ 0xb1, 0x50, 0x76, 0x3e, 0xf1, 0x00, 0xe0, 0x4f, 0xab, 0x43, 0xd4, 0x4a,
+ 0x16, 0x68, 0x16, 0xef, 0x18, 0x0f, 0x63, 0x5a, 0x88, 0x51, 0x0f, 0x63,
+ 0x0b, 0x84, 0x4a, 0x5b, 0x61, 0x6f, 0xb5, 0x7d, 0xf8, 0x00, 0xc0, 0x15,
+ 0x29, 0xa9, 0x84, 0xbf, 0x69, 0xdd, 0x63, 0xf7, 0xdc, 0x88, 0x6b, 0x78,
+ 0x9a, 0xb1, 0x5f, 0x14, 0xff, 0xa0, 0x6a, 0x80, 0x28, 0x4f, 0x13, 0x0d,
+ 0xf3, 0x65, 0xe6, 0x0b, 0xe9, 0xad, 0x3d, 0xec, 0xb9, 0x9f, 0x63, 0x63,
+ 0x49, 0xc9, 0x5f, 0xf2, 0xae, 0x7e, 0x86, 0x5a, 0x5c, 0xdd, 0x3d, 0xcb,
+ 0x8f, 0x8b, 0x7a, 0x20, 0x14, 0x4e, 0xc7, 0x34, 0x67, 0xd7, 0xc9, 0xa0,
+ 0xf6, 0xd4, 0xfa, 0x86, 0x5c, 0xbb, 0x41, 0xb6, 0x04, 0x5a, 0x66, 0x4c,
+ 0x8f, 0x07, 0xd6, 0x94, 0x35, 0xe5, 0x07, 0x6a, 0xa9, 0x83, 0x95, 0xae,
+ 0xc5, 0xf2, 0x50, 0x99, 0x9d, 0x40, 0x8e, 0x1e, 0x3b, 0x02, 0xd1, 0x10,
+ 0x75, 0xd8, 0x5f, 0x15, 0xf1, 0x4e, 0x75, 0x49, 0xf9, 0x07, 0x51, 0x21,
+ 0xff, 0xe0, 0x7a, 0xb7, 0xfe, 0xdc, 0x56, 0xdf, 0xb0, 0x04, 0x1b, 0x9b,
+ 0xa0, 0x98, 0xea, 0xf7, 0x22, 0x34, 0xc2, 0xd7, 0xbb, 0x54, 0xec, 0xcc,
+ 0x4d, 0x49, 0x65, 0x24, 0xd1, 0x0e, 0xbf, 0x18, 0xb0, 0xcf, 0xfe, 0x4a,
+ 0x1b, 0x9d, 0x1e, 0x80, 0x92, 0x03, 0x32, 0x0b, 0xfb, 0xaf, 0x25, 0xe6,
+ 0x81, 0x03, 0x9d, 0xd4, 0x85, 0x92, 0x62, 0xf0, 0x49, 0xfc, 0xd7, 0x00,
+ 0xce, 0xe6, 0x9e, 0x98, 0xd0, 0x34, 0xf5, 0x58, 0x82, 0x1e, 0x13, 0x2b,
+ 0x5c, 0x2a, 0xa8, 0x9c, 0xf2, 0x35, 0x54, 0xe9, 0x5d, 0xe4, 0x4c, 0x8a,
+ 0xd9, 0x4e, 0xc9, 0xf8, 0x78, 0xa9, 0xcc, 0xcf, 0xbc, 0xff, 0xee, 0x8d,
+ 0xfc, 0x3b, 0x85, 0xe1, 0x8d, 0x12, 0x87, 0x51, 0x61, 0xac, 0x65, 0x85,
+ 0x93, 0xb9, 0x77, 0x17, 0x68, 0xb9, 0x21, 0x6e, 0xc7, 0x87, 0x6f, 0x35,
+ 0x8f, 0xe4, 0xa2, 0x35, 0xb3, 0xa7, 0x5c, 0x52, 0xf1, 0x4a, 0x4b, 0xfc,
+ 0x07, 0xee, 0x18, 0x50, 0x09, 0x35, 0x86, 0xae, 0x0a, 0x45, 0xdf, 0x0d,
+ 0x49, 0xe1, 0xf6, 0xae, 0x63, 0xaa, 0xd8, 0xe4, 0x08, 0x61, 0x96, 0x5b,
+ 0xe6, 0x85, 0xa7, 0x62, 0x70, 0xa7, 0x3d, 0xad, 0x48, 0x1c, 0x00, 0x9b,
+ 0x1f, 0xcb, 0xe6, 0x9c, 0xef, 0xe4, 0x56, 0x10, 0x14, 0xa5, 0xbb, 0x4c,
+ 0x20, 0xfe, 0x97, 0xb4, 0x54, 0xd7, 0x69, 0x15, 0x00, 0x53, 0x4f, 0x20,
+ 0x83, 0x32, 0xe9, 0xd3, 0xd0, 0x2c, 0xc7, 0x7c, 0x83, 0xbd, 0x4e, 0xad,
+ 0xa4, 0x16, 0xb4, 0x2b, 0x94, 0x19, 0x4c, 0x2b, 0xcd, 0x54, 0xdd, 0xf4,
+ 0x15, 0xa9, 0x9f, 0x5d, 0x90, 0xd7, 0xd0, 0xed, 0x7d, 0x75, 0x92, 0x86,
+ 0x9d, 0xe2, 0xa7, 0xe1, 0x1b, 0xb2, 0x4e, 0xb3, 0x1d, 0xcd, 0xc2, 0xc2,
+ 0xca, 0xe5, 0x03, 0xcb, 0x2b, 0xdb, 0xee, 0x98, 0xdc, 0xbf, 0x88, 0xbc,
+ 0xe9, 0x2e, 0xa4, 0x1d, 0xa9, 0x91, 0xe9, 0x57, 0xe2, 0x39, 0x83, 0x0f,
+ 0x85, 0x5e, 0xb5, 0xfb, 0x2c, 0xb4, 0x8f, 0x92, 0x9d, 0x07, 0x28, 0x13,
+ 0xef, 0x15, 0x54, 0xf1, 0xc2, 0x3f, 0x2c, 0x9c, 0xf8, 0x9f, 0xf8, 0x30,
+ 0x7d, 0x8a, 0xc3, 0xb3, 0xb8, 0x00, 0xe7, 0xc3, 0xc2, 0xd6, 0x2b, 0x0a,
+ 0x6f, 0xc2, 0xe8, 0x0e, 0xb6, 0xad, 0x85, 0x4d, 0x16, 0x4f, 0xf4, 0x7e,
+ 0xbe, 0xcb, 0x03, 0xbc, 0xf0, 0x1e, 0xf0, 0x69, 0x67, 0x7e, 0x53, 0xdd,
+ 0xee, 0x75, 0xc8, 0x06, 0xfb, 0x66, 0x8b, 0xf2, 0x52, 0xf1, 0x29, 0xef,
+ 0x83, 0x74, 0x89, 0x04, 0x1d, 0xa0, 0x3d, 0xdf, 0xbf, 0x88, 0x0c, 0x4a,
+ 0xe3, 0xcc, 0x45, 0xc1, 0xb2, 0x9b, 0x2b, 0x63, 0x07, 0xff, 0x8c, 0xa2,
+ 0x97, 0x98, 0xab, 0xcb, 0x49, 0x74, 0x89, 0x5b, 0xd2, 0x59, 0xf2, 0xc9,
+ 0x54, 0x02, 0x20, 0x0a, 0x2f, 0xdd, 0xf7, 0x19, 0x2a, 0x90, 0x96, 0x64,
+ 0xc4, 0xd9, 0xd0, 0xbc, 0xb8, 0x76, 0x8a, 0x30, 0x17, 0xd7, 0xa0, 0x8c,
+ 0xb7, 0x94, 0x77, 0xbd, 0x2b, 0xe9, 0x26, 0x8c, 0x65, 0x2e, 0xb6, 0xcd,
+ 0x4a, 0xd8, 0x5d, 0xa4, 0xbb, 0x1d, 0x0f, 0x92, 0x01, 0x1c, 0xf4, 0x5d,
+ 0x52, 0x11, 0x0d, 0x33, 0xd1, 0x68, 0xd4, 0x18, 0xfa, 0xb6, 0x8e, 0xc2,
+ 0xd2, 0xbe, 0x81, 0x64, 0x01, 0x93, 0x33, 0x38, 0x9d, 0xfb, 0x63, 0x0b,
+ 0x9a, 0xe3, 0xb5, 0x4a, 0x79, 0x16, 0x1c, 0x5b, 0x76, 0x5d, 0x04, 0x38,
+ 0xbd, 0xb2, 0xcf, 0xfd, 0x08, 0xc3, 0xac, 0x7d, 0x9c, 0x68, 0xaa, 0x32,
+ 0x4d, 0xfe, 0xc7, 0x38, 0x1f, 0x5e, 0x23, 0x8e, 0x6f, 0x32, 0x24, 0xa7,
+ 0x84, 0xef, 0x1b, 0xe9, 0x23, 0xcb, 0xcb, 0x72, 0x46, 0xf2, 0xd2, 0xc8,
+ 0x6f, 0x2d, 0x8f, 0xa1, 0x00, 0xc8, 0xa0, 0xaf, 0xd1, 0xc7, 0x4a, 0xa7,
+ 0xc6, 0xcd, 0x07, 0x7b, 0xa1, 0xbf, 0x93, 0x92, 0x2f, 0xd4, 0xe1, 0x4b,
+ 0x03, 0xe4, 0xbd, 0x7b, 0x8b, 0x29, 0xdb, 0x51, 0xed, 0x0d, 0xca, 0x48,
+ 0x75, 0x09, 0xe9, 0xc0, 0x00, 0x41, 0xf0, 0x45, 0x10, 0x32, 0x90, 0x2b,
+ 0xf0, 0x53, 0x43, 0xe5, 0x00, 0x18, 0x7f, 0x9e, 0xfe, 0xef, 0xd8, 0x8c,
+ 0x76, 0xc5, 0x95, 0x9f, 0xe1, 0x82, 0x76, 0xda, 0xdb, 0x25, 0x30, 0x69,
+ 0x38, 0x4b, 0x53, 0xbe, 0x80, 0x78, 0xb4, 0x53, 0xb3, 0x85, 0x45, 0x36,
+ 0x8e, 0x85, 0x3c, 0x0c, 0x81, 0xf5, 0x6a, 0x6d, 0x97, 0x5e, 0x14, 0x6e,
+ 0x0f, 0x56, 0xea, 0xe9, 0x15, 0xb6, 0x06, 0x58, 0xfa, 0x43, 0x7d, 0x4c,
+ 0xce, 0xc7, 0x18, 0x3b, 0x33, 0xd6, 0x0d, 0x7b, 0xb6, 0x89, 0x4f, 0x38,
+ 0x92, 0x0a, 0x95, 0x19, 0x72, 0x30, 0xa0, 0x28, 0x02, 0x45, 0xdf, 0x5b,
+ 0xcc, 0x2a, 0xda, 0x91, 0xf0, 0xf8, 0x5a, 0x4d, 0x8e, 0xf6, 0x55, 0xb9,
+ 0x62, 0x2e, 0x0d, 0x6b, 0x42, 0xc6, 0x56, 0xa4, 0xb9, 0xed, 0x91, 0x32,
+ 0xc6, 0xe5, 0xea, 0x3d, 0xf7, 0x06, 0xf2, 0xb5, 0x1e, 0xf1, 0x3b, 0xf9,
+ 0x43, 0x79, 0x5c, 0x76, 0x53, 0x80, 0xee, 0x97, 0xee, 0x5c, 0x00, 0x0d,
+ 0x75, 0x8b, 0x61, 0xce, 0x32, 0x15, 0xde, 0x55, 0x12, 0x07, 0x45, 0x25,
+ 0xc6, 0x67, 0xb1, 0xe6, 0x6f, 0x16, 0x98, 0xb6, 0xed, 0x70, 0x0d, 0x48,
+ 0x5b, 0x32, 0x82, 0x00, 0x65, 0xdd, 0xc9, 0x81, 0xe7, 0x14, 0xb8, 0xa1,
+ 0x5c, 0x12, 0x06, 0x8e, 0xb1, 0xfb, 0xf4, 0x0f, 0x12, 0x60, 0x29, 0x89,
+ 0x7e, 0x6e, 0x9d, 0xf4, 0x8d, 0xc6, 0xd3, 0x53, 0x42, 0x26, 0xf9, 0x87,
+ 0x42, 0x22, 0x29, 0xfe, 0x81, 0x78, 0x29, 0x69, 0x36, 0x6e, 0xf6, 0xbd,
+ 0x88, 0xb5, 0x4e, 0xa1, 0x8b, 0x6a, 0x14, 0xcb, 0x59, 0x6d, 0x15, 0x03,
+ 0xc9, 0xd3, 0xa6, 0x63, 0xe8, 0x4f, 0x8e, 0xd0, 0x1e, 0x58, 0xf8, 0xa3,
+ 0x9e, 0x69, 0x93, 0x73, 0x6a, 0x2f, 0x55, 0x17, 0x28, 0x92, 0x71, 0x91,
+ 0x88, 0xdc, 0x7f, 0x45, 0x2f, 0x24, 0x8a, 0xb9, 0x35, 0x04, 0x8f, 0x8c,
+ 0x30, 0x00, 0x9c, 0x2d, 0xb3, 0xfa, 0x4f, 0xd4, 0xd8, 0x8a, 0x17, 0xe7,
+ 0x8f, 0x3d, 0xe4, 0x04, 0xbb, 0xf8, 0x3b, 0x46, 0x17, 0x7f, 0xf7, 0xde,
+ 0x69, 0x5e, 0x09, 0xe4, 0xc0, 0xa2, 0x84, 0xfd, 0x40, 0x0a, 0x97, 0x46,
+ 0xf8, 0x31, 0xee, 0x45, 0xf6, 0x21, 0xce, 0x92, 0xa0, 0x04, 0x5c, 0x1d,
+ 0x71, 0x34, 0x0f, 0x1d, 0xfc, 0xc2, 0xe7, 0xa6, 0x5d, 0x85, 0xd0, 0x8c,
+ 0x18, 0x13, 0x20, 0x48, 0xe1, 0x38, 0x38, 0xa7, 0x3f, 0xd1, 0x61, 0x27,
+ 0xf7, 0xa1, 0x8a, 0x88, 0x85, 0x27, 0xbd, 0x79, 0x8d, 0x0f, 0x0c, 0xaa,
+ 0xf6, 0x17, 0x86, 0x09, 0xa4, 0x93, 0xcc, 0x7c, 0x20, 0xd1, 0xc9, 0x9a,
+ 0xcf, 0x5a, 0xb2, 0xda, 0x6e, 0x17, 0x3b, 0x70, 0x93, 0x71, 0xaa, 0x90,
+ 0x47, 0xea, 0x8b, 0x41, 0x9a, 0x86, 0x0e, 0x9a, 0x81, 0x0c, 0x05, 0x7b,
+ 0xea, 0xed, 0x73, 0xd3, 0x76, 0x6e, 0xa9, 0xd8, 0x6c, 0x4a, 0x2b, 0x67,
+ 0xd9, 0xf9, 0x65, 0x85, 0xf9, 0x65, 0x85, 0xf9, 0x5a, 0x85, 0xf9, 0x4a,
+ 0x9e, 0xd5, 0x48, 0x23, 0xf5, 0x45, 0xa0, 0xcd, 0x43, 0x07, 0x4d, 0x40,
+ 0x86, 0x02, 0xdb, 0x55, 0x08, 0x26, 0x39, 0xca, 0x0b, 0xe3, 0x84, 0xd9,
+ 0xdf, 0x33, 0x6d, 0x6c, 0xa3, 0xb9, 0xb2, 0xd4, 0x0d, 0x56, 0x48, 0x34,
+ 0xa6, 0x5d, 0x73, 0xff, 0x88, 0xc4, 0x95, 0x2b, 0xc8, 0xc4, 0x8b, 0x6e,
+ 0x60, 0x20, 0xa3, 0x38, 0x04, 0xd5, 0x71, 0x62, 0x16, 0x81, 0xa8, 0x9a,
+ 0x42, 0x46, 0xbf, 0x7c, 0xd0, 0xc0, 0xc4, 0x7e, 0x27, 0x45, 0xff, 0x4e,
+ 0x35, 0x17, 0xe8, 0x51, 0x3b, 0x0f, 0x7a, 0x67, 0x6c, 0xab, 0xc7, 0x08,
+ 0x26, 0x67, 0xca, 0x99, 0x76, 0xb7, 0xb7, 0x21, 0xf7, 0xc3, 0x5d, 0x64,
+ 0x0d, 0xed, 0xca, 0xa5, 0x81, 0xf9, 0x01, 0x66, 0x53, 0x77, 0x51, 0x4a,
+ 0xbc, 0x18, 0xfd, 0x79, 0xd6, 0x78, 0x72, 0xa5, 0x97, 0x6c, 0xea, 0x65,
+ 0x49, 0x68, 0x4f, 0x47, 0x78, 0xcb, 0x22, 0x04, 0x86, 0x52, 0x24, 0xb0,
+ 0x38, 0xb4, 0x2f, 0x22, 0x42, 0x74, 0xb3, 0x4f, 0xa5, 0xb2, 0x22, 0x97,
+ 0x48, 0x5d, 0xe9, 0x95, 0xf1, 0xf9, 0x08, 0xd2, 0x94, 0x08, 0x22, 0xc1,
+ 0x65, 0x2d, 0x07, 0xe2, 0xd3, 0x01, 0x24, 0x82, 0xc7, 0xde, 0x1f, 0xe9,
+ 0x3a, 0xf5, 0xb6, 0x5d, 0x3b, 0x33, 0xc2, 0xca, 0x16, 0xa3, 0x6f, 0x4f,
+ 0xcd, 0x39, 0xd8, 0xa0, 0xc2, 0xc8, 0x5d, 0x91, 0x27, 0xc3, 0x44, 0x80,
+ 0x3c, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf1, 0x0c, 0x00, 0x01, 0x10, 0x28, 0x00, 0x18, 0x01, 0x5e, 0x4e, 0x65,
+ 0xe0, 0x84, 0xd9, 0x69, 0x88, 0x84, 0xb9, 0x73, 0x63, 0x33, 0xdc, 0xa3,
+ 0xbd, 0xfc, 0x95, 0x43, 0x63, 0x24, 0xf9, 0xe3, 0x2e, 0xdd, 0x83, 0x2e,
+ 0x31, 0x09, 0x6b, 0x85, 0x7e, 0xb5, 0xcb, 0x65, 0x3a, 0x7c, 0x16, 0x55,
+ 0x06, 0x29, 0xf2, 0xc8, 0xbe, 0x34, 0xf5, 0x80, 0x10, 0xc2, 0x08, 0x05,
+ 0xad, 0x8f, 0x77, 0x43, 0xfd, 0x80, 0x43, 0x18, 0xac, 0xb4, 0x2b, 0x92,
+ 0x74, 0x4e, 0x2d, 0xcf, 0xee, 0x39, 0x84, 0x08, 0x49, 0x20, 0x00, 0xe4,
+ 0xc0, 0x68, 0x1c, 0xdb, 0x01, 0xf7, 0x87, 0xfa, 0xc0, 0x10, 0x41, 0x91,
+ 0xd3, 0xb9, 0x57, 0x26, 0x76, 0xd9, 0x92, 0xdd, 0x45, 0xa0, 0x33, 0x21,
+ 0x0f, 0x43, 0x8f, 0x39, 0xa4, 0xc9, 0x44, 0x08, 0xe1, 0x79, 0xf2, 0x14,
+ 0x64, 0xfd, 0x5e, 0x81, 0x7f, 0xf9, 0xba, 0x84, 0xf0, 0x5c, 0x40, 0x7a,
+ 0x72, 0x81, 0xdd, 0xda, 0x57, 0xed, 0xd7, 0x4b, 0x2c, 0x28, 0x52, 0x0b,
+ 0xef, 0x6a, 0x20, 0x8a, 0x8f, 0xa8, 0xd4, 0x49, 0xe4, 0x22, 0x6e, 0x47,
+ 0xdd, 0xc4, 0xda, 0x89, 0x24, 0x03, 0x23, 0x05, 0x3c, 0x26, 0xa0, 0xc8,
+ 0x83, 0x5d, 0xc1, 0x16, 0x78, 0x68, 0x74, 0x85, 0x2b, 0xd7, 0x6a, 0xe3,
+ 0xc9, 0x0c, 0x67, 0x0a, 0xea, 0x2b, 0xa6, 0x9c, 0x33, 0xdd, 0x16, 0x91,
+ 0x69, 0x7c, 0x77, 0x2b, 0x7c, 0x20, 0x16, 0x7d, 0x80, 0xd2, 0x0b, 0x81,
+ 0x25, 0x7d, 0x45, 0xb7, 0x00, 0xcb, 0xd8, 0x34, 0xf9, 0x94, 0x5f, 0xc4,
+ 0xbe, 0x9c, 0x93, 0x5b, 0x05, 0x17, 0x05, 0x38, 0x8b, 0xe4, 0xaf, 0x20,
+ 0x75, 0x59, 0x88, 0x34, 0xff, 0x06, 0x20, 0x68, 0x9d, 0x1b, 0xf0, 0xfc,
+ 0x97, 0x0b, 0x57, 0x77, 0x32, 0x75, 0xdc, 0x40, 0xac, 0xd5, 0xc6, 0x04,
+ 0x25, 0xa1, 0xc5, 0x66, 0xb6, 0x6b, 0x03, 0x2c, 0x34, 0xfc, 0x77, 0xea,
+ 0x66, 0x36, 0x65, 0x7d, 0xe5, 0x6a, 0x37, 0x9f, 0xf9, 0x85, 0xea, 0x8c,
+ 0xe4, 0x9f, 0x25, 0x8e, 0xcc, 0xa5, 0x38, 0x9b, 0x4c, 0x0f, 0x2f, 0x2c,
+ 0xce, 0x12, 0x23, 0x0b, 0x49, 0xe2, 0xf6, 0xdd, 0x2d, 0xf9, 0xf8, 0x45,
+ 0xa9, 0xc2, 0xe5, 0xff, 0x36, 0x46, 0x64, 0xcd, 0x97, 0xaa, 0xff, 0xc1,
+ 0xbd, 0xb9, 0x17, 0x32, 0x7b, 0x5a, 0xd9, 0xbf, 0x31, 0x40, 0x40, 0xec,
+ 0x8d, 0x59, 0xf4, 0x83, 0x85, 0xd7, 0x21, 0x02, 0xd2, 0xbd, 0x20, 0xa7,
+ 0xb3, 0x98, 0x26, 0xcc, 0xd8, 0xa7, 0xe6, 0xbb, 0xfa, 0x84, 0x81, 0xd9,
+ 0x1a, 0xf7, 0xd1, 0xb5, 0x1a, 0xc4, 0xba, 0xc8, 0x18, 0xdc, 0xe2, 0xaf,
+ 0xd6, 0xf2, 0xd1, 0x03, 0xfb, 0x2a, 0xb3, 0x5a, 0x65, 0xec, 0x11, 0xfd,
+ 0xba, 0xac, 0xcd, 0xdc, 0x97, 0xba, 0x2f, 0x33, 0x53, 0xe5, 0xa7, 0x07,
+ 0x9f, 0x8c, 0x39, 0x89, 0xdb, 0x0f, 0x59, 0xae, 0xf3, 0xe7, 0x3f, 0xc2,
+ 0xa3, 0x79, 0x73, 0xf0, 0x72, 0x9d, 0x3b, 0xd8, 0x28, 0x9a, 0x8e, 0x2c,
+ 0x14, 0xeb, 0xcb, 0xbe, 0xbb, 0x42, 0x16, 0x27, 0x5b, 0xb3, 0x04, 0x5d,
+ 0x5b, 0xa2, 0xa3, 0x86, 0xb6, 0x29, 0xdb, 0xc7, 0x53, 0xae, 0x68, 0xe5,
+ 0x15, 0x1e, 0x78, 0xd6, 0x28, 0xcc, 0x58, 0x40, 0x6f, 0x74, 0xea, 0xd5,
+ 0x79, 0x92, 0x35, 0xad, 0x4c, 0x56, 0x9b, 0x0e, 0xec, 0xed, 0xb8, 0x80,
+ 0xad, 0x87, 0xce, 0xe1, 0x6c, 0xb2, 0x15, 0xbd, 0x85, 0xe0, 0xdd, 0x4e,
+ 0x62, 0xcf, 0x66, 0xfa, 0x0c, 0x83, 0xf5, 0x0b, 0xab, 0x73, 0x78, 0x44,
+ 0x52, 0x80, 0xca, 0xb1, 0x54, 0xe0, 0x78, 0x8c, 0x96, 0xc4, 0x60, 0x53,
+ 0xbe, 0xec, 0xc6, 0xed, 0xb8, 0xbc, 0xd1, 0xd3, 0xe7, 0x79, 0x82, 0x41,
+ 0x8f, 0xe4, 0x4f, 0xdd, 0x6e, 0x62, 0x73, 0xd9, 0x4c, 0x5d, 0x2b, 0x25,
+ 0xdd, 0xae, 0x11, 0xf5, 0xa0, 0xf8, 0x18, 0x60, 0x0c, 0xd8, 0x81, 0x30,
+ 0x5b, 0x40, 0xf6, 0xd6, 0x53, 0xc2, 0xe0, 0x3d, 0x05, 0x88, 0x6b, 0x04,
+ 0x63, 0x43, 0x64, 0xbb, 0x05, 0x63, 0xeb, 0x0a, 0x69, 0x89, 0x7e, 0x17,
+ 0xb7, 0xd0, 0xb1, 0xe8, 0x36, 0x43, 0xa3, 0xca, 0x6e, 0xff, 0x6a, 0xc9,
+ 0xe9, 0x51, 0x91, 0xa0, 0x0a, 0x14, 0x8c, 0x00, 0x4c, 0x02, 0x00, 0x00,
+ 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0d, 0x00, 0x05,
+ 0x10, 0x24, 0x00, 0x1e, 0xe7, 0x40, 0x1b, 0x24, 0x2e, 0x2c, 0x8e, 0x9f,
+ 0x23, 0x13, 0x18, 0x16, 0x1c, 0x0a, 0xac, 0x73, 0xa7, 0xa7, 0x3d, 0x04,
+ 0x19, 0xc6, 0x3e, 0xea, 0x90, 0xd4, 0xab, 0xfe, 0xf7, 0x2c, 0x4f, 0xa9,
+ 0x00, 0xbb, 0xe6, 0xca, 0x7f, 0x4f, 0x86, 0xb4, 0x4f, 0xaa, 0x84, 0x0f,
+ 0x0e, 0x24, 0x49, 0x1d, 0x54, 0xfc, 0xfb, 0xad, 0x1b, 0xa3, 0x71, 0xeb,
+ 0x35, 0x36, 0xa9, 0xe4, 0xef, 0xb0, 0x0d, 0xab, 0x1d, 0xfe, 0xd3, 0x9f,
+ 0x01, 0xdd, 0x6b, 0xff, 0xe3, 0xda, 0x2b, 0xbc, 0xd9, 0xec, 0xc0, 0xa9,
+ 0xb8, 0xe1, 0x2e, 0xb5, 0xa5, 0x68, 0xb8, 0x80, 0x0e, 0x22, 0xa2, 0x1c,
+ 0x51, 0x03, 0x9f, 0xee, 0xca, 0x54, 0xdd, 0x30, 0x4b, 0x80, 0x2f, 0x62,
+ 0xca, 0xa3, 0xbe, 0xbf, 0xc9, 0xdb, 0x46, 0xc7, 0x28, 0x06, 0x2b, 0xb5,
+ 0x8f, 0xb7, 0x9d, 0x81, 0xdf, 0xd6, 0xe3, 0x79, 0x09, 0x20, 0xa4, 0xca,
+ 0x15, 0x19, 0xe4, 0x03, 0x7f, 0x36, 0xed, 0x76, 0xd1, 0x57, 0x95, 0x39,
+ 0xc0, 0x61, 0x6e, 0x7e, 0x38, 0xc6, 0xe1, 0x19, 0x5e, 0x63, 0xf8, 0xf0,
+ 0xe1, 0x23, 0x4c, 0xb1, 0xa6, 0xb0, 0x4a, 0xdc, 0x2d, 0x5f, 0xd5, 0xab,
+ 0x47, 0x07, 0x3e, 0x9c, 0xf3, 0x7a, 0x09, 0xe0, 0xc4, 0xda, 0x7f, 0x7f,
+ 0xa4, 0xd9, 0x77, 0x7b, 0xb2, 0xe2, 0xb7, 0xb8, 0x80, 0xcc, 0x05, 0xe7,
+ 0x40, 0x2a, 0x25, 0xbe, 0x6a, 0x45, 0x07, 0x56, 0x92, 0x70, 0x02, 0xd0,
+ 0xaa, 0x00, 0x0f, 0xed, 0x13, 0x0b, 0xc6, 0xf1, 0x1b, 0x19, 0x67, 0xaa,
+ 0xc6, 0x3a, 0xfe, 0x35, 0xf4, 0x85, 0x03, 0xad, 0x50, 0xd1, 0x8d, 0x39,
+ 0x2f, 0x44, 0x59, 0x3c, 0x47, 0xe1, 0x94, 0xae, 0x71, 0xbf, 0xe6, 0x8a,
+ 0xd9, 0x32, 0xbc, 0xc8, 0x4d, 0xfd, 0xa2, 0x69, 0x98, 0xf9, 0xcb, 0x7e,
+ 0x1a, 0xa1, 0x0b, 0x66, 0xff, 0xca, 0x53, 0xdd, 0x82, 0xe6, 0x3a, 0x33,
+ 0x21, 0xd9, 0x93, 0xd4, 0xaa, 0xa0, 0xee, 0x5e, 0xea, 0xbc, 0x67, 0xc5,
+ 0x1b, 0x80, 0x41, 0x18, 0xea, 0xca, 0x8c, 0x76, 0x0a, 0x0e, 0x7f, 0x2c,
+ 0xe2, 0x45, 0xe3, 0x6d, 0x04, 0xb4, 0xfb, 0x31, 0xb0, 0x70, 0xa7, 0x5b,
+ 0x1e, 0x81, 0x0b, 0xf1, 0x4f, 0x4e, 0xd1, 0x1a, 0x32, 0x5a, 0xed, 0x17,
+ 0xb5, 0x56, 0xda, 0x2b, 0xfb, 0x0e, 0x7a, 0x32, 0x44, 0xdd, 0x6e, 0xea,
+ 0xf9, 0xf1, 0x6b, 0x2f, 0xd4, 0x60, 0x8a, 0xc8, 0x5f, 0x3e, 0xaf, 0xcb,
+ 0x70, 0x39, 0xcf, 0x5a, 0x37, 0x7e, 0x67, 0xfd, 0x78, 0xbb, 0x96, 0xcb,
+ 0x5d, 0x95, 0x73, 0xb2, 0x93, 0xf4, 0x38, 0x97, 0x47, 0x52, 0x61, 0xed,
+ 0x7f, 0x63, 0x3f, 0xc3, 0x95, 0x93, 0xcd, 0x1c, 0x04, 0x8a, 0x92, 0xc2,
+ 0xa5, 0xb7, 0x72, 0xa6, 0xd6, 0x02, 0x10, 0xa3, 0x0c, 0x00, 0x9c, 0x34,
+ 0x31, 0xc8, 0xbb, 0x94, 0xdd, 0xe6, 0x2a, 0x6c, 0x9b, 0x45, 0xd7, 0xb4,
+ 0x61, 0x15, 0x77, 0x29, 0x72, 0xc8, 0x4b, 0x56, 0x71, 0xc5, 0xf1, 0x15,
+ 0x96, 0xb0, 0xa2, 0x92, 0x0a, 0x3a, 0x12, 0xc3, 0x64, 0xab, 0x66, 0x44,
+ 0xd3, 0xd1, 0x75, 0x40, 0x47, 0x61, 0x6a, 0x3a, 0xf6, 0x4b, 0x51, 0x7e,
+ 0x23, 0x91, 0xc2, 0xde, 0xa2, 0x5c, 0xde, 0xe2, 0x26, 0x8d, 0xda, 0x7f,
+ 0xe7, 0x82, 0x90, 0x98, 0xd3, 0x12, 0xe5, 0xab, 0x64, 0xf0, 0xc9, 0xe1,
+ 0x4a, 0x4b, 0x37, 0xa1, 0x1c, 0xfb, 0x36, 0x64, 0x72, 0x41, 0x0e, 0xa4,
+ 0x42, 0xd7, 0x6d, 0x2e, 0x4e, 0xe8, 0x9f, 0xf0, 0x6d, 0x57, 0x91, 0xc9,
+ 0x52, 0xd1, 0x43, 0x9d, 0x6a, 0x49, 0x2b, 0x14, 0x8b, 0x61, 0x94, 0x17,
+ 0xf6, 0xcc, 0x0f, 0x23, 0x94, 0x46, 0xe4, 0xbb, 0x66, 0x7a, 0x23, 0x68,
+ 0x99, 0x93, 0xed, 0xc8, 0x4a, 0x95, 0xd3, 0x95, 0x27, 0x1d, 0x5f, 0x79,
+ 0x60, 0x18, 0xe0, 0x10, 0x0b, 0xfd, 0xae, 0x1e, 0x50, 0x81, 0x24, 0xd2,
+ 0x4d, 0x99, 0x08, 0xa3, 0x22, 0xdc, 0xf9, 0x2e, 0xb8, 0x25, 0xca, 0x18,
+ 0xff, 0xca, 0xab, 0xd1, 0x69, 0xc7, 0x17, 0xfd, 0xee, 0xa3, 0x6b, 0x40,
+ 0x56, 0xfc, 0xa8, 0x91, 0x01, 0x90, 0xcb, 0x4f, 0x69, 0x91, 0xa2, 0x70,
+ 0xf4, 0x0d, 0xc0, 0xa5, 0xda, 0xce, 0x2c, 0xfb, 0x0b, 0x23, 0xb6, 0x35,
+ 0x37, 0x5f, 0x8a, 0x9d, 0xfd, 0xaf, 0x18, 0x00, 0xac, 0x03, 0x00, 0x00,
+ 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x06,
+ 0x10, 0x10, 0x00, 0x1e, 0xce, 0xe8, 0xa8, 0x23, 0xd8, 0x4b, 0xf0, 0xc0,
+ 0x63, 0x97, 0xfb, 0x04, 0xc6, 0x3b, 0x6f, 0x4b, 0x4b, 0x9e, 0x17, 0xbd,
+ 0x82, 0x8a, 0xb9, 0x9e, 0xd3, 0x1d, 0x66, 0x3b, 0x9b, 0x8b, 0x1d, 0xa9,
+ 0x2e, 0x38, 0xba, 0x5c, 0xc5, 0x32, 0x0b, 0xa0, 0x33, 0x6d, 0xe6, 0x0b,
+ 0xc4, 0x94, 0x16, 0x3f, 0x81, 0x6b, 0xe9, 0x16, 0x3c, 0x59, 0x91, 0xb6,
+ 0x2c, 0x47, 0x7d, 0xc8, 0xe4, 0x92, 0xb8, 0x7b, 0x2c, 0x06, 0x14, 0xcc,
+ 0xc9, 0xa0, 0x1f, 0xdd, 0xca, 0x90, 0x1b, 0xb3, 0xa3, 0x47, 0x58, 0x13,
+ 0x42, 0x5d, 0xdf, 0xf6, 0x50, 0xbf, 0x1c, 0xc2, 0x4f, 0xae, 0xb4, 0x05,
+ 0x30, 0xf9, 0xa0, 0x82, 0xb6, 0x53, 0xe9, 0xfc, 0x4e, 0x56, 0x8b, 0x2b,
+ 0x81, 0x0c, 0xb6, 0x67, 0x48, 0x47, 0x7f, 0xae, 0xb4, 0xfb, 0x02, 0x8a,
+ 0xd1, 0xbe, 0x15, 0x05, 0x38, 0x2e, 0xfe, 0x59, 0x00, 0xaa, 0x6f, 0x60,
+ 0xec, 0xb7, 0x7d, 0x51, 0x77, 0x3f, 0xb9, 0x4f, 0x34, 0x2a, 0x89, 0xd2,
+ 0x33, 0x33, 0x62, 0xaa, 0x9f, 0x9f, 0xfd, 0x74, 0x7b, 0xc5, 0xa6, 0x5b,
+ 0x29, 0xb0, 0x72, 0xad, 0xc0, 0xb7, 0x0f, 0x44, 0xa7, 0x92, 0x31, 0xe6,
+ 0x90, 0x15, 0x1c, 0xc1, 0x83, 0xbe, 0x93, 0x47, 0x33, 0x96, 0x6a, 0x00,
+ 0x55, 0xcf, 0x4f, 0x90, 0x05, 0x56, 0x40, 0xb6, 0x50, 0x98, 0x35, 0x59,
+ 0x51, 0x0f, 0x8a, 0x2f, 0xf1, 0x40, 0xd1, 0xc1, 0x8b, 0x7b, 0x31, 0x24,
+ 0xb0, 0xcc, 0xc5, 0x83, 0x38, 0xc8, 0xeb, 0x07, 0x7e, 0x21, 0x3c, 0x61,
+ 0x72, 0xc3, 0xbc, 0xf1, 0x06, 0x0c, 0x8e, 0x2b, 0x65, 0xf5, 0x61, 0x56,
+ 0x15, 0x48, 0xdb, 0x72, 0xa8, 0xd7, 0xde, 0x26, 0x27, 0xa6, 0x37, 0x1d,
+ 0xe4, 0xca, 0x31, 0x48, 0x23, 0x09, 0x08, 0xe7, 0x2a, 0xb0, 0x02, 0x10,
+ 0x36, 0xa4, 0x81, 0xed, 0x75, 0x7b, 0x5f, 0x43, 0x52, 0x40, 0x51, 0xcc,
+ 0x7f, 0x28, 0xd1, 0x27, 0x27, 0xec, 0xb0, 0xee, 0x1a, 0xf7, 0x33, 0xc1,
+ 0x2c, 0x0f, 0xed, 0x4a, 0xf9, 0x28, 0x4b, 0x62, 0x89, 0xfd, 0xc7, 0xbe,
+ 0xf6, 0x8e, 0x74, 0x2d, 0xbf, 0x2f, 0xbc, 0x6a, 0xd6, 0xec, 0x5b, 0x28,
+ 0xab, 0xd8, 0x27, 0x20, 0x6b, 0x98, 0xc6, 0x25, 0x0d, 0x18, 0xc4, 0x4c,
+ 0x84, 0x0c, 0x1f, 0x68, 0xa5, 0xbc, 0xf8, 0x61, 0x81, 0x83, 0x7d, 0x9e,
+ 0x93, 0x0d, 0x6b, 0xb5, 0x88, 0x7c, 0x70, 0xa4, 0x6e, 0x8b, 0x56, 0xec,
+ 0x37, 0x01, 0xf8, 0x87, 0xb6, 0xec, 0x8d, 0xd2, 0xb1, 0x94, 0xf0, 0x9f,
+ 0x84, 0xa0, 0xe4, 0x4e, 0x1f, 0x7c, 0x7b, 0x86, 0x9a, 0x19, 0x07, 0x20,
+ 0xe4, 0x6b, 0xac, 0x6f, 0x9d, 0xb6, 0xb3, 0x60, 0x64, 0xf3, 0xe6, 0x78,
+ 0x0b, 0x64, 0xc6, 0x8c, 0x79, 0xe1, 0x97, 0x6a, 0x6c, 0xff, 0x97, 0xf9,
+ 0x7b, 0x5b, 0xf9, 0x5c, 0xe5, 0x49, 0x1c, 0x81, 0xb0, 0x96, 0x37, 0x18,
+ 0x1a, 0x71, 0xff, 0x07, 0x12, 0x68, 0xab, 0x09, 0xff, 0xdf, 0x89, 0x70,
+ 0xb1, 0x60, 0x39, 0x82, 0x75, 0x3e, 0xd9, 0xe8, 0x35, 0x18, 0x3e, 0x24,
+ 0xee, 0xd6, 0xf1, 0x98, 0xfb, 0x93, 0xda, 0x3e, 0x0b, 0x0d, 0xe2, 0x22,
+ 0x9b, 0xa1, 0x2e, 0x98, 0x7f, 0x5d, 0x5c, 0x90, 0x3d, 0x4f, 0xc5, 0xbb,
+ 0xd4, 0xef, 0xf4, 0x64, 0x0e, 0x28, 0x4b, 0x4d, 0xe8, 0x2c, 0x26, 0x1a,
+ 0x8e, 0x01, 0x7c, 0x73, 0xdc, 0x50, 0x03, 0x0b, 0xe2, 0x86, 0x62, 0x48,
+ 0x66, 0x74, 0xc6, 0xb4, 0x67, 0x1d, 0x50, 0x6e, 0x02, 0xc7, 0xc2, 0xd9,
+ 0x8f, 0x74, 0x71, 0x89, 0x6f, 0xb3, 0xc9, 0x8f, 0x8c, 0x7b, 0x5a, 0xb5,
+ 0x41, 0xa3, 0x2f, 0x26, 0x51, 0xd4, 0xb3, 0x3f, 0x45, 0x5e, 0x2f, 0x53,
+ 0x5c, 0xa7, 0xf5, 0xfc, 0x90, 0x3c, 0x90, 0x4f, 0x08, 0xdd, 0xd4, 0x14,
+ 0x3f, 0x37, 0x92, 0x02, 0xa5, 0xaa, 0x01, 0x46, 0x9f, 0x2c, 0xec, 0x2c,
+ 0x8a, 0xd8, 0x8a, 0x22, 0x1d, 0xcf, 0x50, 0x66, 0x4f, 0x93, 0x89, 0xe2,
+ 0x87, 0x6c, 0x61, 0x9b, 0x88, 0x1a, 0x09, 0x73, 0x77, 0x38, 0x6e, 0xb4,
+ 0xd2, 0x28, 0xd5, 0x2c, 0xa3, 0xb1, 0xe0, 0x01, 0xe1, 0x89, 0x85, 0x57,
+ 0x0f, 0x23, 0xea, 0xb4, 0x92, 0x02, 0x5f, 0x7e, 0x6d, 0x39, 0x28, 0x22,
+ 0xd8, 0xb4, 0xb5, 0xed, 0xb3, 0xba, 0x7f, 0x09, 0xc7, 0x83, 0xd9, 0xcf,
+ 0x05, 0x00, 0x87, 0x55, 0x9a, 0xfc, 0xdd, 0xbf, 0x6c, 0xc2, 0x6a, 0x15,
+ 0x4e, 0x5e, 0x34, 0xbe, 0xbf, 0x12, 0x5d, 0xfd, 0x05, 0xcb, 0x4a, 0x1f,
+ 0xe0, 0x2f, 0x11, 0x3a, 0x82, 0xfe, 0x74, 0xc9, 0xcf, 0xd9, 0x1e, 0x3c,
+ 0xa1, 0xc2, 0x15, 0xe1, 0x20, 0x62, 0x2d, 0x09, 0x3d, 0xa1, 0x4a, 0x4f,
+ 0xe4, 0x2c, 0xbd, 0x41, 0xd5, 0x94, 0x73, 0x71, 0xfb, 0xf2, 0x8f, 0x32,
+ 0xca, 0xff, 0x4a, 0xb5, 0xf9, 0x26, 0x34, 0x1b, 0x1d, 0x0c, 0xf6, 0x07,
+ 0xeb, 0xfc, 0x6a, 0x91, 0x52, 0x42, 0x2f, 0xd8, 0x36, 0xd6, 0xe1, 0x87,
+ 0xba, 0x79, 0x3a, 0x11, 0x44, 0xb1, 0xe5, 0x08, 0xec, 0x80, 0x0e, 0x02,
+ 0x2f, 0xa0, 0x49, 0x6e, 0x3d, 0xd9, 0x3e, 0x8a, 0x71, 0x6e, 0x42, 0x24,
+ 0x31, 0x8c, 0x9d, 0x70, 0xc6, 0x08, 0x58, 0x7e, 0x87, 0x80, 0xfa, 0xca,
+ 0x91, 0x10, 0x58, 0x86, 0xbf, 0x6f, 0xe1, 0x26, 0xa4, 0xf8, 0xbd, 0xbd,
+ 0xcc, 0xb5, 0xd1, 0xc2, 0xc2, 0x64, 0x68, 0x81, 0x8c, 0x6d, 0xf4, 0x6c,
+ 0x73, 0xab, 0xc3, 0x3e, 0xe8, 0x90, 0xfc, 0xc6, 0xa6, 0x3e, 0x8e, 0x44,
+ 0xff, 0x6f, 0x48, 0x60, 0x65, 0x28, 0x77, 0x1c, 0xab, 0x50, 0xe0, 0x0e,
+ 0xf8, 0xda, 0x96, 0x7b, 0xf0, 0x15, 0xfb, 0x51, 0x8c, 0xd0, 0x06, 0x03,
+ 0xbf, 0xf1, 0xb4, 0xd6, 0x1d, 0x5f, 0x86, 0x27, 0x6b, 0x97, 0x59, 0xf9,
+ 0x7e, 0x4f, 0xd3, 0x35, 0xf8, 0x1e, 0x3a, 0xb7, 0x84, 0x19, 0x6b, 0xa9,
+ 0xaa, 0xc5, 0x06, 0x58, 0x6e, 0x30, 0x46, 0xd3, 0xdb, 0x65, 0xdd, 0xb3,
+ 0x6b, 0x0f, 0x2b, 0x0f, 0x18, 0xae, 0xad, 0x98, 0x50, 0x2a, 0xa2, 0xa9,
+ 0xb9, 0x31, 0xcf, 0x38, 0x2d, 0xb8, 0x65, 0xa3, 0xbc, 0x26, 0x0b, 0x54,
+ 0x2f, 0xb1, 0x91, 0xb9, 0xcb, 0x62, 0x31, 0x7a, 0xfe, 0xb5, 0x38, 0x25,
+ 0xde, 0x5c, 0x9f, 0x06, 0xff, 0xcb, 0xd0, 0x51, 0x20, 0x81, 0xfc, 0xf1,
+ 0x67, 0xab, 0x8e, 0x7d, 0xea, 0xff, 0xf8, 0xea, 0x88, 0x6f, 0x2a, 0x62,
+ 0x09, 0x15, 0xea, 0xce, 0x32, 0x50, 0x61, 0x5a, 0xda, 0x6d, 0xd0, 0x76,
+ 0xf4, 0xad, 0x6b, 0x8c, 0x44, 0x61, 0x8c, 0xf4, 0x78, 0x43, 0x4e, 0x96,
+ 0x2e, 0x16, 0x05, 0xf8, 0xde, 0x00, 0xb2, 0x45, 0x63, 0x68, 0x34, 0x51,
+ 0xf9, 0xd8, 0x4a, 0x54, 0xdf, 0x7e, 0xfb, 0x5c, 0x75, 0xe2, 0x50, 0x55,
+ 0x17, 0x39, 0x8f, 0xe4, 0x13, 0xf7, 0xf8, 0xac, 0xe7, 0xe0, 0x9f, 0x48,
+ 0x37, 0xcc, 0x0d, 0x9c, 0x2d, 0x56, 0xc3, 0x12, 0x42, 0xc5, 0xc0, 0x00,
+ 0x38, 0x03, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x11, 0x00, 0x01, 0x10, 0x14, 0x14, 0x7b, 0xa5, 0xc2, 0x7b, 0x91,
+ 0xb9, 0x31, 0xb0, 0x17, 0xac, 0x76, 0x2d, 0x8f, 0x17, 0x72, 0x32, 0x14,
+ 0xdb, 0x1d, 0x01, 0x6b, 0x90, 0xee, 0x4b, 0x51, 0x4d, 0x92, 0x59, 0x06,
+ 0xc4, 0xbf, 0xf0, 0xc0, 0x60, 0x7e, 0x87, 0xf6, 0xf5, 0x35, 0xdf, 0xa1,
+ 0xfc, 0xf7, 0x7f, 0xdb, 0x57, 0xb8, 0x8c, 0x10, 0x60, 0x64, 0x99, 0x07,
+ 0x39, 0xbb, 0xfe, 0x70, 0x82, 0xcc, 0xa8, 0x85, 0x26, 0x63, 0xf9, 0x8a,
+ 0xec, 0x01, 0x34, 0xd7, 0x66, 0xb6, 0x66, 0xac, 0x76, 0x58, 0xef, 0x48,
+ 0xdf, 0x16, 0xfd, 0x4c, 0xd6, 0x45, 0x0a, 0xad, 0xbb, 0xa2, 0x7d, 0xbc,
+ 0x0b, 0x91, 0x44, 0xae, 0x01, 0xf7, 0xe1, 0x06, 0x02, 0x30, 0x7c, 0x69,
+ 0xc4, 0xbb, 0x24, 0x00, 0x00, 0xbf, 0xac, 0xed, 0x5d, 0x7b, 0x47, 0x69,
+ 0xd4, 0x20, 0xb6, 0x49, 0x26, 0x37, 0xe3, 0x9a, 0xe1, 0x25, 0xb5, 0x9f,
+ 0xb5, 0x0f, 0xed, 0x09, 0xfd, 0x10, 0xe7, 0x75, 0x8c, 0x09, 0x36, 0x00,
+ 0x7c, 0xd2, 0x06, 0x8c, 0x26, 0x6b, 0x72, 0x23, 0x30, 0xf1, 0xd3, 0x8a,
+ 0xa6, 0x08, 0x86, 0x25, 0x89, 0x1a, 0x44, 0xda, 0xeb, 0x5c, 0x15, 0x36,
+ 0x1a, 0xb0, 0x2b, 0x03, 0xad, 0x00, 0x18, 0xf0, 0xff, 0xb8, 0x44, 0xb6,
+ 0x75, 0x6f, 0x03, 0x19, 0x57, 0x5a, 0x24, 0xe3, 0xc6, 0x10, 0xf4, 0x68,
+ 0xb6, 0xfb, 0xa1, 0xec, 0xf2, 0x83, 0xbc, 0x67, 0x86, 0x17, 0x0d, 0x54,
+ 0xd4, 0xcb, 0xdb, 0x0b, 0xa7, 0x1e, 0xff, 0x3e, 0xb3, 0x1a, 0x0e, 0x84,
+ 0x8b, 0x3f, 0x91, 0x4d, 0xfe, 0x0c, 0x36, 0x05, 0x63, 0xd1, 0xcd, 0x3a,
+ 0x15, 0x47, 0x5c, 0x53, 0xb6, 0x24, 0xd3, 0xc3, 0x81, 0xb5, 0xcc, 0x5a,
+ 0x56, 0xdd, 0xaf, 0x4c, 0x0d, 0x37, 0xec, 0x8e, 0xc7, 0x8b, 0x35, 0xdd,
+ 0x33, 0xe1, 0xed, 0xe4, 0xcc, 0x5b, 0xaa, 0x7c, 0x5c, 0xbf, 0x63, 0x58,
+ 0x9a, 0x49, 0xdc, 0xad, 0x5d, 0x0b, 0xba, 0x8f, 0x84, 0x31, 0x09, 0x6e,
+ 0x0b, 0x77, 0xde, 0xfb, 0x91, 0x65, 0xe5, 0x25, 0x6c, 0xfa, 0x4e, 0x0f,
+ 0x42, 0x8d, 0xd0, 0x1d, 0xb9, 0xa7, 0x2a, 0x7a, 0x24, 0xca, 0xba, 0xc6,
+ 0xe0, 0x5f, 0x21, 0xf0, 0x4e, 0x21, 0xf0, 0xb9, 0x3e, 0x3d, 0x59, 0xc4,
+ 0xd5, 0x9e, 0x1c, 0x3f, 0x7b, 0xe5, 0x73, 0xa7, 0x5e, 0x5d, 0x96, 0xf4,
+ 0x9c, 0xfe, 0xa4, 0x9b, 0x07, 0x06, 0xcc, 0x3f, 0x95, 0xfc, 0xe1, 0xa8,
+ 0x51, 0x37, 0x2a, 0x3a, 0xe8, 0x10, 0x87, 0xa9, 0xda, 0x6a, 0x43, 0xdb,
+ 0x7d, 0x1d, 0x19, 0x9a, 0x38, 0xe2, 0x8d, 0x7e, 0x7a, 0xe7, 0x50, 0x12,
+ 0xe3, 0xe0, 0xe3, 0x1d, 0x41, 0x15, 0x78, 0x80, 0x1b, 0x79, 0x4a, 0x50,
+ 0xb9, 0x1e, 0x67, 0xbb, 0x2b, 0x69, 0xb5, 0x18, 0x9e, 0xfb, 0xd2, 0x32,
+ 0x29, 0x81, 0x26, 0xc8, 0x1f, 0x52, 0xf8, 0xe0, 0xb7, 0x29, 0x34, 0x23,
+ 0xa3, 0x03, 0x19, 0x3c, 0xf6, 0x35, 0x65, 0xc4, 0xd8, 0xbd, 0x3f, 0x11,
+ 0x65, 0x67, 0x88, 0x88, 0x0a, 0xae, 0x36, 0x97, 0x6c, 0x66, 0x79, 0x85,
+ 0x2f, 0x0f, 0x26, 0x97, 0xb2, 0x54, 0xa6, 0x01, 0xf4, 0xcd, 0x10, 0x01,
+ 0x42, 0x0d, 0x30, 0x62, 0x93, 0xac, 0xfa, 0xed, 0xad, 0xd4, 0x27, 0xd4,
+ 0xb8, 0xb9, 0x29, 0x54, 0xab, 0xfb, 0xe3, 0x3e, 0x91, 0xb9, 0xc6, 0x6e,
+ 0x8a, 0xb7, 0xfb, 0x50, 0x88, 0x93, 0xdc, 0x46, 0x44, 0x80, 0x5c, 0x47,
+ 0xe6, 0xcd, 0x9a, 0x0c, 0xef, 0x90, 0xdd, 0x8e, 0xcd, 0x5b, 0x1c, 0x77,
+ 0x32, 0x31, 0xd6, 0x4f, 0x4d, 0x5b, 0x43, 0x67, 0xd7, 0x14, 0x9c, 0x05,
+ 0xb9, 0x54, 0x92, 0x99, 0xaf, 0xcd, 0x76, 0xb4, 0x93, 0xdc, 0xe2, 0x2b,
+ 0xdd, 0xcd, 0x0d, 0x07, 0xef, 0x24, 0x7e, 0x98, 0xa1, 0x18, 0x87, 0x9f,
+ 0xbb, 0x97, 0x25, 0x51, 0xa0, 0xba, 0x3d, 0x1f, 0xad, 0x5f, 0x03, 0x71,
+ 0x36, 0xa8, 0x5a, 0x8d, 0x4c, 0xcf, 0x55, 0xc1, 0xaa, 0x47, 0x4e, 0x64,
+ 0x9b, 0x45, 0xbe, 0xe4, 0x92, 0xad, 0x31, 0x91, 0x5c, 0x3e, 0x8b, 0xc6,
+ 0xf2, 0x73, 0x9c, 0x75, 0x5e, 0x69, 0xf0, 0xe5, 0xba, 0xeb, 0x2f, 0x52,
+ 0x29, 0x07, 0x9a, 0x02, 0x3e, 0x10, 0x0e, 0xc3, 0xe1, 0xb6, 0x7f, 0xc8,
+ 0xde, 0x7e, 0x14, 0x7b, 0x31, 0x4a, 0x26, 0x24, 0x29, 0xac, 0xb0, 0x59,
+ 0xc0, 0x4a, 0xc8, 0xce, 0x95, 0xf7, 0x6c, 0xf6, 0x49, 0xf5, 0x21, 0x7a,
+ 0x4b, 0xad, 0x86, 0xf8, 0xd9, 0x72, 0xe1, 0x97, 0x9d, 0x5f, 0x6f, 0x31,
+ 0x56, 0x45, 0x31, 0xf6, 0xb1, 0x3a, 0x7b, 0xcd, 0x60, 0x8f, 0xe2, 0xa6,
+ 0x0d, 0x6a, 0x41, 0xfb, 0xe4, 0x57, 0x18, 0x0f, 0xcd, 0xd0, 0xf3, 0x92,
+ 0x71, 0x87, 0x10, 0x0d, 0xbb, 0x3c, 0x6e, 0x65, 0xe3, 0x7d, 0x43, 0xde,
+ 0x59, 0x29, 0x8f, 0xee, 0x5a, 0xe9, 0xa5, 0x1d, 0x5e, 0x4b, 0x3f, 0xc1,
+ 0xe9, 0x66, 0xc1, 0x36, 0x9f, 0x4a, 0xd7, 0xba, 0xd9, 0xe5, 0x6d, 0xe1,
+ 0x63, 0x3d, 0x9a, 0xee, 0x32, 0x51, 0x2a, 0x74, 0xe4, 0xe0, 0xbd, 0x28,
+ 0x7f, 0x4e, 0xdd, 0xe3, 0x85, 0xfe, 0x07, 0xb7, 0x57, 0x7c, 0xdf, 0x34,
+ 0xeb, 0x94, 0x7f, 0x46, 0xaa, 0x90, 0x8f, 0xb3, 0x11, 0x0b, 0x50, 0x36,
+ 0xea, 0x03, 0x83, 0x34, 0xb2, 0x5b, 0xad, 0x9a, 0xff, 0x1d, 0xf9, 0xe1,
+ 0x41, 0x88, 0x0d, 0x29, 0xe1, 0x21, 0xf7, 0x94, 0xaf, 0x68, 0xaf, 0x23,
+ 0x95, 0x57, 0x70, 0xe9, 0xbd, 0x4c, 0x69, 0x01, 0xd8, 0xeb, 0xb2, 0xb6,
+ 0x42, 0xa2, 0xc6, 0xd2, 0x17, 0xef, 0x43, 0x87, 0x49, 0x09, 0xb3, 0xe7,
+ 0x2e, 0x60, 0x2f, 0xe9, 0x5f, 0x0e, 0x58, 0xf5, 0xb2, 0x06, 0xcc, 0xb8,
+ 0x43, 0x11, 0x5d, 0x3f, 0x58, 0x19, 0xb9, 0x86, 0x26, 0xe7, 0x26, 0xdf,
+ 0x6e, 0xe5, 0x05, 0x9b, 0xe4, 0xba, 0x24, 0xcd, 0x98, 0xb7, 0x29, 0x30,
+ 0x7c, 0x8f, 0x48, 0x52, 0xce, 0x4e, 0x21, 0x9b, 0x7f, 0x5f, 0x28, 0x96,
+ 0x6c, 0xa2, 0x25, 0x55, 0x52, 0x9e, 0xd4, 0x72, 0xd1, 0x3c, 0xa8, 0x80,
+ 0x69, 0xa3, 0xc4, 0x70, 0x0a, 0x97, 0x7a, 0x00, 0xb3, 0x03, 0x00, 0x00,
+ 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x10, 0x00, 0x00,
+ 0x10, 0x10, 0x00, 0x1e, 0xda, 0xc1, 0xfd, 0x07, 0xf8, 0x0e, 0xc4, 0x3f,
+ 0x52, 0xb1, 0xe0, 0x37, 0x8a, 0x71, 0xc3, 0xdd, 0x99, 0x50, 0x09, 0xcc,
+ 0x60, 0xc7, 0xa2, 0xd3, 0x5f, 0x85, 0x83, 0x29, 0x30, 0x0c, 0x99, 0xc8,
+ 0x38, 0x44, 0x9f, 0xca, 0x57, 0x10, 0xf4, 0xcf, 0x6c, 0x23, 0x1f, 0x02,
+ 0x0e, 0x16, 0x09, 0x5b, 0xfe, 0x2a, 0x6e, 0x26, 0x65, 0xe1, 0xfc, 0x37,
+ 0x3d, 0x82, 0x68, 0xd1, 0x37, 0x65, 0xef, 0x72, 0x10, 0xec, 0xd7, 0xe1,
+ 0x88, 0xc7, 0x49, 0x2d, 0xc4, 0x1c, 0x66, 0x0d, 0x44, 0x73, 0x3e, 0x7b,
+ 0x26, 0x82, 0x0b, 0x07, 0x3d, 0xd2, 0xf8, 0xb5, 0xb0, 0x1b, 0xef, 0xcb,
+ 0xa5, 0x95, 0x65, 0xd0, 0x83, 0x90, 0x6b, 0xfa, 0x1e, 0xc0, 0x68, 0x01,
+ 0xb8, 0x74, 0x28, 0x19, 0xe8, 0x36, 0x04, 0xdb, 0x6b, 0x34, 0x7f, 0xa8,
+ 0x2c, 0x89, 0xce, 0xcc, 0x55, 0x97, 0x0b, 0xa4, 0x24, 0x5b, 0xee, 0xa0,
+ 0x80, 0xcd, 0x6f, 0x3a, 0xd7, 0x2d, 0x9f, 0x50, 0xf1, 0x68, 0xd1, 0x84,
+ 0xc3, 0x9d, 0x6c, 0x54, 0x80, 0x1d, 0x34, 0x32, 0x10, 0xd0, 0x91, 0x18,
+ 0x28, 0x16, 0x56, 0x9e, 0x7c, 0xfb, 0xeb, 0xa9, 0x4d, 0x33, 0xa6, 0x29,
+ 0x14, 0xe8, 0x01, 0xd1, 0xa2, 0xd9, 0x9c, 0x4e, 0xc8, 0x66, 0xfc, 0x52,
+ 0x01, 0xfb, 0x2f, 0xce, 0x92, 0xf8, 0xb1, 0xe4, 0x57, 0x07, 0x24, 0x52,
+ 0x59, 0xff, 0x29, 0xa4, 0xe3, 0xfb, 0x9f, 0xc3, 0x12, 0xe8, 0x59, 0x08,
+ 0xb9, 0x8b, 0x51, 0x6c, 0x93, 0x63, 0x07, 0xfc, 0xa0, 0x2b, 0xd7, 0x65,
+ 0x7e, 0xe8, 0x12, 0xcb, 0x6e, 0x6d, 0x98, 0x4e, 0x71, 0x95, 0xf3, 0x96,
+ 0xfa, 0x74, 0xdb, 0x02, 0x02, 0xd4, 0xc4, 0x4c, 0x1a, 0xb6, 0x0d, 0x2e,
+ 0x72, 0xb3, 0x74, 0x8a, 0xee, 0x23, 0xb9, 0x4c, 0x80, 0xfe, 0x12, 0xcd,
+ 0x92, 0x0a, 0xf7, 0xf4, 0x7a, 0x76, 0x19, 0x4e, 0xa2, 0x15, 0x62, 0xc9,
+ 0x46, 0x37, 0x01, 0xf4, 0x00, 0x26, 0x51, 0x6f, 0x26, 0xd2, 0x97, 0x5c,
+ 0x9e, 0xee, 0x7a, 0x40, 0x34, 0x47, 0x01, 0x0d, 0xd7, 0x63, 0x4c, 0x82,
+ 0x72, 0x31, 0x8e, 0x52, 0x5d, 0x52, 0x0a, 0x04, 0xb8, 0xda, 0xfd, 0xc9,
+ 0xd8, 0xf9, 0xca, 0x2f, 0xf3, 0x22, 0x16, 0x26, 0x25, 0xfc, 0xa8, 0x59,
+ 0x41, 0x43, 0xc0, 0xfc, 0xd7, 0x1d, 0xf0, 0xb8, 0xf9, 0x11, 0xe0, 0xb0,
+ 0x9b, 0x2a, 0x23, 0xf9, 0x2f, 0x31, 0x93, 0xf3, 0xe6, 0xd0, 0x3d, 0x5e,
+ 0x3d, 0x87, 0xf4, 0x35, 0xc8, 0xd7, 0xaa, 0x9b, 0x27, 0x5a, 0x74, 0x98,
+ 0x37, 0xff, 0x5b, 0xb4, 0x7b, 0x52, 0xb3, 0x9b, 0xb3, 0x22, 0xf9, 0x6e,
+ 0x79, 0x87, 0x53, 0x61, 0xfb, 0xed, 0x2e, 0x82, 0x7f, 0xfc, 0xc2, 0x78,
+ 0x90, 0x68, 0xcb, 0xdb, 0x54, 0x1a, 0xf2, 0x26, 0xb9, 0xbf, 0x43, 0xb0,
+ 0x3a, 0xfe, 0xc7, 0x7b, 0x08, 0x79, 0xf7, 0x3a, 0x60, 0xa3, 0xa5, 0x58,
+ 0xdc, 0x3d, 0x0b, 0x4c, 0xdc, 0x67, 0x95, 0xfa, 0xff, 0x6e, 0x2c, 0xa0,
+ 0x8d, 0xcb, 0xeb, 0x8d, 0x37, 0x06, 0x6e, 0x50, 0x42, 0x18, 0xc1, 0x20,
+ 0x61, 0xa7, 0x57, 0x1b, 0xfe, 0x88, 0xe0, 0x71, 0x1d, 0x97, 0x5a, 0x44,
+ 0x1e, 0xff, 0xff, 0xdc, 0xd9, 0xf4, 0xbc, 0xb3, 0x57, 0xf5, 0xd8, 0x3c,
+ 0x67, 0xee, 0x91, 0xfa, 0x54, 0xbe, 0xea, 0x31, 0xf1, 0x9c, 0x87, 0x7d,
+ 0xc8, 0x62, 0xdf, 0x8b, 0xd8, 0xa4, 0x47, 0x92, 0x67, 0x01, 0xe0, 0xb0,
+ 0x30, 0x4c, 0xcc, 0x60, 0x2f, 0x09, 0xb9, 0xf4, 0x1b, 0x18, 0xc8, 0x06,
+ 0xa2, 0xeb, 0xf9, 0x45, 0x68, 0x03, 0xde, 0xbc, 0x5f, 0xd8, 0x33, 0xf6,
+ 0x8c, 0xb0, 0x74, 0x3d, 0x0a, 0x88, 0x86, 0xf2, 0xe0, 0x0a, 0xab, 0xe9,
+ 0xfb, 0x99, 0x4f, 0xc6, 0x95, 0x4f, 0xef, 0x41, 0x75, 0xc2, 0x25, 0x2c,
+ 0xac, 0x0d, 0x34, 0x06, 0x23, 0x7d, 0xa9, 0x75, 0x1a, 0xaf, 0x69, 0xc3,
+ 0x2c, 0xc4, 0x89, 0x0a, 0x84, 0x07, 0x38, 0xfb, 0x8b, 0x0a, 0xfa, 0x66,
+ 0x22, 0x9b, 0x93, 0x13, 0x41, 0xb9, 0x06, 0x5e, 0xf3, 0x19, 0x37, 0x62,
+ 0x76, 0x17, 0xa2, 0xdb, 0x4a, 0xae, 0xbe, 0xc6, 0x2d, 0xc0, 0x80, 0x7e,
+ 0xc2, 0x7d, 0xd3, 0xa6, 0x16, 0xc5, 0x6d, 0x8b, 0xdc, 0x44, 0x97, 0x44,
+ 0x8f, 0x34, 0xec, 0xf4, 0x12, 0xb6, 0x31, 0x0d, 0x56, 0xd7, 0x68, 0xf3,
+ 0xb8, 0x8c, 0xd0, 0xc8, 0x5c, 0x1f, 0x1e, 0xea, 0x11, 0x96, 0xc5, 0x48,
+ 0x0f, 0xb4, 0xea, 0x31, 0xa2, 0x8c, 0x02, 0x37, 0xc3, 0x5e, 0x90, 0x26,
+ 0xcc, 0xa2, 0x34, 0xa0, 0xf8, 0x6f, 0x97, 0x53, 0x3f, 0x7a, 0x3d, 0x30,
+ 0x51, 0x12, 0x36, 0xb3, 0xeb, 0xed, 0xdd, 0xb3, 0x40, 0x00, 0xd1, 0xd5,
+ 0xfc, 0x83, 0x70, 0xb4, 0x66, 0x63, 0xbe, 0x1d, 0xe3, 0x8d, 0x8a, 0x51,
+ 0x19, 0x7c, 0xbc, 0x07, 0x0e, 0xa0, 0x74, 0xda, 0x9d, 0x45, 0xbc, 0xe1,
+ 0x87, 0x73, 0x52, 0x9f, 0x78, 0x27, 0x67, 0xae, 0xe6, 0xfc, 0x6b, 0xc0,
+ 0x8c, 0xfc, 0x44, 0x89, 0xb9, 0xfd, 0x18, 0xa2, 0x69, 0x67, 0xc8, 0x1c,
+ 0x0d, 0x31, 0xf9, 0x02, 0x8a, 0x0a, 0x19, 0xfe, 0x82, 0x06, 0x55, 0x40,
+ 0x8d, 0xac, 0xdc, 0x1f, 0xfe, 0x5a, 0x2e, 0x8d, 0x66, 0xf9, 0x81, 0x28,
+ 0xf0, 0x7b, 0x2d, 0x96, 0xd1, 0x09, 0xc6, 0x0a, 0x52, 0x0b, 0x1d, 0xf5,
+ 0x44, 0x51, 0x64, 0x21, 0x20, 0x34, 0xa5, 0xf7, 0x46, 0x72, 0xf6, 0xdd,
+ 0x33, 0xa0, 0xdb, 0xf8, 0x57, 0xb2, 0x55, 0xe4, 0xff, 0xd5, 0xe2, 0x4b,
+ 0x05, 0x8c, 0x06, 0x06, 0xb1, 0x3f, 0x9b, 0x65, 0x75, 0xcc, 0xd7, 0x18,
+ 0x6e, 0xd4, 0x57, 0x26, 0x2a, 0xaa, 0xef, 0x31, 0x0a, 0x45, 0x9d, 0x01,
+ 0x8f, 0x62, 0x85, 0xfe, 0x34, 0x2e, 0x08, 0x74, 0x24, 0x18, 0x30, 0x0f,
+ 0xf0, 0x4d, 0x8b, 0x05, 0xbc, 0xf0, 0xe0, 0x23, 0xe1, 0xdb, 0x37, 0x08,
+ 0xba, 0x17, 0xe6, 0x3f, 0xd9, 0x26, 0xab, 0xc7, 0x82, 0x0f, 0xcf, 0xea,
+ 0xba, 0xbf, 0xca, 0x20, 0x6d, 0xb6, 0x88, 0xfa, 0xe9, 0xb3, 0xa8, 0x03,
+ 0x75, 0x14, 0xda, 0x0f, 0xf5, 0x77, 0x26, 0x34, 0x2f, 0x73, 0x86, 0x41,
+ 0x70, 0x86, 0x15, 0xc5, 0x9d, 0x44, 0x65, 0x5e, 0x87, 0x58, 0x2e, 0xd3,
+ 0xdd, 0xdf, 0x3c, 0xfe, 0x1f, 0xbe, 0x80, 0xbb, 0x54, 0xf7, 0x7e, 0x2c,
+ 0x16, 0x39, 0x9d, 0x0e, 0xac, 0x90, 0x39, 0xbf, 0xcb, 0x1d, 0xbe, 0x0d,
+ 0x46, 0x57, 0x39, 0x95, 0x7f, 0xc4, 0x70, 0x6c, 0xe3, 0x96, 0xa8, 0x75,
+ 0x88, 0x63, 0x16, 0x49, 0x56, 0xaa, 0x50, 0x1d, 0x54, 0xa8, 0xab, 0x9b,
+ 0xb2, 0x26, 0xee, 0xac, 0x18, 0x95, 0xd3, 0xa6, 0xd9, 0x73, 0x82, 0xc3,
+ 0x8b, 0x28, 0xce, 0x28, 0xec, 0x43, 0x0c, 0x76, 0xb5, 0xea, 0x09, 0xf0,
+ 0xcc, 0xff, 0xfd, 0x74, 0x21, 0xec, 0x47, 0x17, 0x02, 0xa5, 0xbe, 0x3b,
+ 0xde, 0x7b, 0xea, 0x49, 0x5e, 0x5f, 0xaa, 0x78, 0x0f, 0x9e, 0x1a, 0x58,
+ 0x53, 0x9c, 0x9f, 0xd7, 0x34, 0x6e, 0x00, 0x09, 0x03, 0x00, 0x00, 0x93,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0f, 0x00, 0x04, 0x10,
+ 0x10, 0x00, 0x18, 0x00, 0xb7, 0x40, 0x61, 0x10, 0x72, 0xc7, 0x44, 0xa3,
+ 0x78, 0xbb, 0xcc, 0x07, 0xe9, 0x34, 0x2a, 0x7a, 0xd7, 0xee, 0x71, 0x3f,
+ 0xa6, 0xbe, 0x0f, 0x1a, 0x40, 0x70, 0xed, 0x52, 0x90, 0x71, 0x7a, 0x1b,
+ 0xd5, 0xec, 0xd6, 0x1a, 0xd4, 0x58, 0x57, 0x90, 0x0d, 0xc0, 0x88, 0xd2,
+ 0xac, 0xa1, 0xd2, 0x16, 0xc5, 0x91, 0x9a, 0xf7, 0xd1, 0xd8, 0xf4, 0xd3,
+ 0x20, 0x16, 0x42, 0x60, 0x62, 0x3b, 0x36, 0x9d, 0x21, 0xcf, 0xae, 0xca,
+ 0x59, 0xb5, 0x60, 0xc7, 0x2c, 0x80, 0x5b, 0xdc, 0x5a, 0x50, 0x01, 0x33,
+ 0x6d, 0x78, 0xd4, 0x60, 0x01, 0x0c, 0x7e, 0x61, 0x41, 0x10, 0xc4, 0xb2,
+ 0xf2, 0x95, 0x8c, 0x3b, 0x7c, 0x50, 0xb2, 0x07, 0x78, 0x91, 0x79, 0xd1,
+ 0xcb, 0x6d, 0xfa, 0xd1, 0xf5, 0x82, 0xc3, 0x2f, 0x0b, 0x87, 0xb6, 0x66,
+ 0x64, 0xa9, 0x00, 0x4f, 0x97, 0xe1, 0x82, 0xed, 0x9b, 0x4f, 0x61, 0xf9,
+ 0xca, 0xf4, 0x52, 0xc9, 0xd7, 0x68, 0x9c, 0x5e, 0xd7, 0x6f, 0xee, 0x3f,
+ 0x9b, 0x82, 0x42, 0x96, 0x7c, 0xff, 0x8a, 0xa8, 0x22, 0x59, 0xca, 0x5e,
+ 0xe5, 0x51, 0x7e, 0x0c, 0xab, 0xef, 0xa8, 0x47, 0xb6, 0x25, 0x1f, 0x7d,
+ 0x05, 0xd8, 0xb4, 0x09, 0xf7, 0x60, 0x22, 0xaa, 0xdd, 0x26, 0x4e, 0x58,
+ 0x90, 0x06, 0xfa, 0x34, 0x13, 0xcd, 0xb1, 0x9d, 0xc1, 0x2c, 0xc9, 0x41,
+ 0x68, 0x6c, 0x29, 0x47, 0x0a, 0x26, 0x03, 0x58, 0x85, 0x05, 0xa6, 0x52,
+ 0xed, 0x9b, 0xdd, 0xfb, 0x66, 0xc6, 0xf4, 0x67, 0x72, 0x3b, 0x6b, 0x11,
+ 0xcf, 0xc3, 0xef, 0xf1, 0x23, 0x42, 0xf1, 0xf9, 0x90, 0x37, 0x75, 0x76,
+ 0x8b, 0xc4, 0x12, 0x02, 0xa6, 0x02, 0xca, 0x6d, 0x0a, 0x41, 0x58, 0x32,
+ 0x9a, 0x5a, 0xa5, 0x55, 0xd3, 0xa8, 0xaf, 0x08, 0xaa, 0x69, 0x87, 0xeb,
+ 0x8f, 0x6a, 0x5d, 0xec, 0x57, 0xe8, 0x7b, 0xa5, 0xe0, 0xef, 0x9a, 0x1b,
+ 0xbc, 0x2e, 0xc7, 0x0e, 0x6f, 0x1a, 0x8d, 0x3e, 0x4a, 0x93, 0x4c, 0x4d,
+ 0x7e, 0x00, 0xca, 0x1e, 0x54, 0xc9, 0x7e, 0x82, 0xaf, 0x27, 0x1a, 0x5f,
+ 0x10, 0x47, 0xa3, 0xd7, 0x9f, 0x9d, 0x7a, 0x59, 0xe8, 0x22, 0x69, 0x98,
+ 0x6e, 0xde, 0x94, 0xf4, 0xdf, 0x4b, 0xaf, 0x61, 0x6f, 0xef, 0xd5, 0x4e,
+ 0x8b, 0xe2, 0x46, 0xff, 0xec, 0x72, 0x7b, 0x6b, 0x25, 0xe9, 0xbe, 0xa5,
+ 0xd2, 0x5e, 0x34, 0x52, 0xd1, 0x47, 0x5e, 0xff, 0x9c, 0x7d, 0x3f, 0xe0,
+ 0x06, 0x2f, 0xa3, 0x49, 0x33, 0x7f, 0x0e, 0xf7, 0xf7, 0xc8, 0x60, 0x91,
+ 0x8c, 0x56, 0x19, 0x60, 0xc7, 0x03, 0x22, 0x1c, 0x1a, 0x3d, 0x09, 0x61,
+ 0x96, 0xe7, 0x61, 0x11, 0x0e, 0x1e, 0xa9, 0xbf, 0x80, 0xe9, 0x73, 0x75,
+ 0x79, 0xc3, 0x87, 0x67, 0x24, 0x8f, 0x1e, 0x9b, 0x2b, 0x88, 0xb2, 0x22,
+ 0x64, 0x3b, 0x00, 0x02, 0xff, 0xad, 0x52, 0x68, 0xdb, 0x76, 0x30, 0x22,
+ 0x30, 0x20, 0x13, 0x0f, 0xd7, 0x77, 0xec, 0x3a, 0x4a, 0x73, 0x74, 0xef,
+ 0x47, 0xc0, 0xe4, 0x25, 0x76, 0x24, 0x86, 0xff, 0xf5, 0xee, 0x4e, 0xe1,
+ 0xc1, 0xce, 0x1b, 0x6f, 0xf3, 0xc5, 0xfa, 0x95, 0x7c, 0x9b, 0xd2, 0xd6,
+ 0x2f, 0xfd, 0x45, 0x17, 0x8e, 0xf0, 0xd3, 0xec, 0xc6, 0x24, 0x66, 0x8c,
+ 0x52, 0xad, 0x32, 0xfc, 0x4f, 0xd2, 0xbe, 0x93, 0xa0, 0x0e, 0xfb, 0xbc,
+ 0xaf, 0x68, 0xe9, 0xdd, 0xa2, 0x21, 0x74, 0x19, 0xb8, 0xa4, 0x08, 0x4b,
+ 0x1b, 0xab, 0xb5, 0x54, 0xe5, 0x20, 0xdc, 0xc8, 0x5e, 0xe7, 0x41, 0x92,
+ 0xcb, 0x8d, 0x86, 0xfe, 0x5a, 0xb4, 0xc8, 0xe2, 0x68, 0x75, 0x8d, 0x16,
+ 0x75, 0x51, 0x13, 0xa7, 0x0d, 0x12, 0x6a, 0x93, 0x09, 0x64, 0x64, 0xf8,
+ 0x85, 0x93, 0xf7, 0x92, 0x38, 0x99, 0xa9, 0x09, 0x1f, 0x98, 0x00, 0xcd,
+ 0xa3, 0xcd, 0x9a, 0xe5, 0xd2, 0x58, 0x50, 0xf3, 0x21, 0xcb, 0x1b, 0x5b,
+ 0x6b, 0xf8, 0xf1, 0x2c, 0x71, 0x91, 0x30, 0xfc, 0x00, 0x68, 0x36, 0x32,
+ 0xe9, 0xf6, 0x76, 0xfa, 0xc8, 0x40, 0xf0, 0x49, 0x64, 0x73, 0xd0, 0xff,
+ 0x76, 0xaf, 0x77, 0xb7, 0x27, 0x11, 0x15, 0xf6, 0xd3, 0x8c, 0x03, 0xb0,
+ 0xfc, 0xa3, 0xee, 0x4b, 0xa0, 0xf6, 0xd1, 0xc4, 0x63, 0x52, 0x74, 0x64,
+ 0xfa, 0xc5, 0xeb, 0xeb, 0xc4, 0x77, 0x7c, 0xa1, 0xb3, 0xd0, 0x20, 0xb4,
+ 0x21, 0x65, 0x70, 0x29, 0x17, 0xf9, 0x24, 0xe1, 0xd1, 0x9f, 0xe6, 0x50,
+ 0x15, 0x51, 0xb5, 0x13, 0x20, 0x81, 0xd3, 0xad, 0x07, 0x72, 0x2e, 0xb6,
+ 0x0c, 0x06, 0x5e, 0x80, 0x84, 0xae, 0x2b, 0x98, 0x13, 0x1d, 0x5e, 0x9b,
+ 0x0e, 0x4f, 0x3d, 0xed, 0xb4, 0x04, 0xc5, 0x54, 0xbc, 0xa4, 0xf1, 0x3d,
+ 0x0a, 0x30, 0xb6, 0x9c, 0xd4, 0x78, 0x2d, 0xd2, 0xe2, 0xd2, 0x33, 0x39,
+ 0x80, 0xb5, 0x1e, 0x96, 0xce, 0xcd, 0x69, 0x2a, 0xcc, 0xe1, 0xed, 0x62,
+ 0x02, 0xc0, 0x4f, 0xd2, 0x6d, 0xd6, 0xe6, 0xc4, 0x26, 0x57, 0xbc, 0x3d,
+ 0x90, 0x5b, 0xb8, 0xa2, 0xa6, 0xfb, 0x85, 0x6e, 0x36, 0xa2, 0xd0, 0xc0,
+ 0xbb, 0xb2, 0x03, 0x7f, 0x7f, 0x1e, 0xb7, 0x79, 0x02, 0x26, 0xc2, 0x85,
+ 0xcd, 0x82, 0x92, 0xf6, 0xa2, 0x89, 0xa7, 0xf7, 0x2e, 0xe5, 0xda, 0x28,
+ 0x01, 0x2e, 0xd5, 0x71, 0xc8, 0xb9, 0xff, 0xfc, 0x4a, 0x1f, 0x0d, 0xe0,
+ 0xb1, 0x5f, 0x3c, 0xd3, 0x93, 0xdb, 0x95, 0xea, 0xe8, 0x5a, 0xa8, 0xf4,
+ 0x35, 0xa8, 0x13, 0xf4, 0xbb, 0x34, 0x6e, 0x4f, 0xf3, 0x78, 0xb9, 0x40,
+ 0xc0, 0xb3, 0xa7, 0xe2, 0x4b, 0x4c, 0x31, 0x12, 0xec, 0x8c, 0xdb, 0x1c,
+ 0x23, 0x76, 0x0d, 0x3d, 0x46, 0x7e, 0x67, 0xc8, 0x7f, 0x3f, 0xa2, 0x16,
+ 0x84, 0x44, 0xd0, 0x00, 0x2d, 0x03, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x0e, 0x00, 0x00, 0x10, 0x10, 0x00, 0x1e,
+ 0xe7, 0x48, 0xaa, 0x20, 0x72, 0xa1, 0xba, 0xcf, 0xc4, 0xf4, 0x53, 0x1a,
+ 0xb8, 0x2f, 0x07, 0x53, 0xce, 0xb6, 0x6c, 0xd4, 0x57, 0x0c, 0x52, 0xa0,
+ 0x2a, 0x60, 0x96, 0xcb, 0x23, 0x20, 0xe0, 0x1a, 0x49, 0x72, 0xbe, 0x93,
+ 0xd3, 0xb1, 0xf8, 0xb0, 0x3b, 0xa0, 0xcd, 0x02, 0x44, 0xa4, 0x76, 0x09,
+ 0x57, 0xd8, 0x8e, 0x24, 0x08, 0x58, 0x9d, 0x28, 0x5f, 0xc1, 0xc7, 0xf1,
+ 0x2b, 0x5b, 0x1e, 0xff, 0x1c, 0xb4, 0x28, 0x87, 0x33, 0xd0, 0x02, 0x5c,
+ 0x99, 0xf0, 0x06, 0xa0, 0x6f, 0x4a, 0xa2, 0xcb, 0x9d, 0x89, 0xca, 0x20,
+ 0x6f, 0xfb, 0xa9, 0xe1, 0x81, 0xff, 0xb7, 0x4b, 0x65, 0xb4, 0x0a, 0x7d,
+ 0xe4, 0x82, 0x85, 0x02, 0xdf, 0x4e, 0x64, 0xea, 0xb1, 0xf4, 0x00, 0x6b,
+ 0xc6, 0x2f, 0xb2, 0xbd, 0xde, 0x23, 0xad, 0xa9, 0x0a, 0xe4, 0x62, 0xdf,
+ 0xd3, 0x98, 0xbc, 0xd0, 0x7b, 0xc4, 0x3a, 0xc3, 0x44, 0xbe, 0x8c, 0x22,
+ 0xd3, 0x13, 0xa6, 0x0e, 0xcc, 0x53, 0x3a, 0x9d, 0xc3, 0x21, 0x4d, 0x67,
+ 0xa8, 0x86, 0x0b, 0x58, 0xfb, 0x0c, 0x15, 0xeb, 0xda, 0xf8, 0x92, 0xdb,
+ 0x3b, 0xe9, 0xdd, 0x5f, 0x27, 0xd3, 0x1e, 0xaa, 0x99, 0xf7, 0x8c, 0xcc,
+ 0xa6, 0xb7, 0x3d, 0x7a, 0x44, 0x62, 0xff, 0xfe, 0x99, 0x9e, 0xfd, 0x97,
+ 0xb3, 0x96, 0x4e, 0x74, 0xa7, 0x95, 0xdb, 0xb1, 0x9b, 0xac, 0x39, 0x1b,
+ 0x1a, 0x4a, 0x70, 0x25, 0xff, 0xfa, 0x9c, 0xdc, 0x36, 0xe1, 0x3f, 0x56,
+ 0x3f, 0xb3, 0x26, 0xcb, 0x12, 0xd7, 0xff, 0x91, 0x3c, 0x4a, 0x47, 0x29,
+ 0x60, 0xa7, 0xba, 0xb0, 0x92, 0xf6, 0x29, 0x6e, 0x4d, 0x32, 0x08, 0x9d,
+ 0x20, 0xb6, 0x31, 0xbe, 0xa8, 0x31, 0xbe, 0xac, 0x48, 0x6c, 0x02, 0x1a,
+ 0xb4, 0x65, 0x6a, 0x7f, 0x38, 0x63, 0xef, 0x0a, 0x0d, 0x30, 0x72, 0x38,
+ 0xe0, 0x70, 0x30, 0x95, 0x23, 0xfe, 0x97, 0x75, 0x9a, 0x42, 0x51, 0x2f,
+ 0xc7, 0x0c, 0xac, 0x29, 0x54, 0xd3, 0xae, 0x10, 0x16, 0x9c, 0x41, 0xfe,
+ 0xe0, 0xce, 0x21, 0x03, 0xb1, 0x05, 0xd2, 0xcd, 0x1d, 0x89, 0x23, 0xd9,
+ 0xf3, 0xe4, 0x3f, 0x43, 0x94, 0x65, 0x11, 0x4b, 0x2f, 0x16, 0x37, 0x43,
+ 0xf6, 0x80, 0xcd, 0xab, 0xe5, 0x8b, 0x7f, 0xec, 0xbf, 0xd4, 0xbf, 0x52,
+ 0x26, 0xb2, 0x2a, 0x62, 0xd8, 0x05, 0x43, 0xa3, 0xc4, 0x17, 0xba, 0x57,
+ 0x41, 0x37, 0xf0, 0x76, 0x47, 0x25, 0xba, 0x1d, 0xc9, 0x3b, 0x6f, 0x79,
+ 0xbd, 0x41, 0xa3, 0x31, 0xd9, 0x0b, 0xf5, 0xee, 0xef, 0xfc, 0xd7, 0x41,
+ 0xbc, 0xa1, 0x75, 0xcf, 0xb5, 0xa8, 0xcd, 0xf7, 0xd1, 0xf5, 0xe4, 0x86,
+ 0x70, 0x2b, 0x05, 0xf7, 0x10, 0xfb, 0x55, 0x74, 0xf6, 0xff, 0x43, 0x2d,
+ 0x7b, 0xbb, 0x39, 0xa5, 0x8d, 0xc3, 0x0b, 0xd0, 0xfa, 0x98, 0xe5, 0xb8,
+ 0x52, 0x7f, 0xbb, 0x8d, 0xe2, 0x10, 0xc8, 0x48, 0x4a, 0x2e, 0x4d, 0xf6,
+ 0xd7, 0xfb, 0xb8, 0xde, 0x1e, 0x3c, 0x8d, 0xa4, 0x52, 0x08, 0x6f, 0x7f,
+ 0x38, 0xf8, 0x45, 0x16, 0x4e, 0x7f, 0xd1, 0x0f, 0xe8, 0x37, 0x54, 0xe4,
+ 0x34, 0x70, 0xa2, 0x3f, 0xfe, 0xa3, 0x3e, 0xb8, 0x84, 0xd9, 0x24, 0x01,
+ 0xab, 0x39, 0x61, 0xe3, 0xde, 0x53, 0x98, 0xd9, 0xd4, 0x8a, 0x0b, 0x50,
+ 0x2f, 0xac, 0x63, 0x13, 0xdd, 0x56, 0xf2, 0x12, 0x8a, 0x13, 0x4a, 0x58,
+ 0x4e, 0x31, 0x21, 0xa2, 0xbe, 0xae, 0x89, 0xe6, 0xc5, 0x6a, 0xab, 0x13,
+ 0x43, 0x78, 0x3c, 0x76, 0xd7, 0x37, 0x2d, 0x4a, 0x67, 0x0b, 0x43, 0x18,
+ 0x07, 0x25, 0xd7, 0x17, 0x05, 0x74, 0x59, 0xb9, 0xef, 0x3a, 0x4b, 0x42,
+ 0x65, 0xbf, 0xf7, 0x8e, 0x71, 0x7f, 0x36, 0xd9, 0x46, 0x8d, 0x1b, 0x4d,
+ 0x3c, 0xb1, 0x4f, 0x4f, 0xea, 0xcd, 0x8e, 0xb8, 0x03, 0x86, 0xdb, 0xf3,
+ 0x41, 0xa5, 0x9a, 0x70, 0xe9, 0xf5, 0x81, 0xb0, 0x29, 0x36, 0xbf, 0x30,
+ 0x5a, 0xf8, 0x74, 0xe2, 0xd2, 0xc4, 0x30, 0xa9, 0xba, 0x78, 0xcd, 0xc0,
+ 0x21, 0xe1, 0x7d, 0xff, 0x0e, 0x46, 0xad, 0xb6, 0xac, 0xcf, 0xa9, 0x42,
+ 0x45, 0xac, 0x5c, 0x66, 0x9b, 0x75, 0xf7, 0xc2, 0x4c, 0xbf, 0x39, 0x52,
+ 0x4c, 0x8b, 0xd7, 0x4a, 0xe9, 0xde, 0x98, 0x00, 0x70, 0x94, 0xa9, 0xc3,
+ 0xe5, 0xf3, 0x07, 0xaf, 0xa0, 0x8d, 0xf1, 0x93, 0xf6, 0x6e, 0x8c, 0x7a,
+ 0xdf, 0x14, 0x70, 0xf2, 0xc3, 0x0b, 0x07, 0xc1, 0x80, 0xe9, 0x56, 0x1f,
+ 0xda, 0xfa, 0x52, 0x9c, 0x5c, 0x85, 0x69, 0x66, 0xf0, 0x99, 0xbb, 0x24,
+ 0x86, 0xd2, 0xae, 0xa8, 0xdf, 0x5c, 0xf9, 0xa0, 0x5c, 0x4c, 0x1b, 0xc3,
+ 0xbb, 0x37, 0x3b, 0xa3, 0xaf, 0xf8, 0x78, 0x2b, 0xab, 0xac, 0x86, 0xb3,
+ 0xf3, 0x8d, 0xa5, 0xec, 0x0d, 0xe6, 0x6a, 0x3a, 0xb5, 0x5e, 0x9c, 0xf1,
+ 0xe2, 0xcb, 0xb2, 0xa5, 0x6e, 0xe9, 0x04, 0x9b, 0x5f, 0x5a, 0x40, 0x4b,
+ 0xea, 0xe3, 0xa7, 0xf0, 0x40, 0x18, 0x56, 0x4b, 0x12, 0xcf, 0xac, 0x90,
+ 0x7c, 0x53, 0x19, 0xbd, 0xa3, 0x9b, 0xdd, 0x0b, 0x3b, 0xe2, 0x0f, 0x99,
+ 0x86, 0x56, 0xa5, 0x5e, 0xcb, 0xd6, 0x19, 0x11, 0xdb, 0xf5, 0xf1, 0x91,
+ 0x45, 0xbc, 0x38, 0x3c, 0x47, 0x09, 0x55, 0xff, 0x44, 0x66, 0x07, 0xe2,
+ 0x2c, 0xed, 0x69, 0x40, 0x90, 0x4b, 0x44, 0x48, 0xde, 0xcd, 0x02, 0xe7,
+ 0x6e, 0x3e, 0x3a, 0x02, 0x09, 0x20, 0x62, 0x91, 0x5c, 0xb0, 0x9d, 0x53,
+ 0xde, 0xad, 0xa5, 0x7e, 0xae, 0x83, 0xcf, 0xb4, 0x14, 0xb4, 0x32, 0xac,
+ 0x59, 0x2c, 0x37, 0x3f, 0xcd, 0x05, 0x37, 0x53, 0xbc, 0x48, 0x97, 0xfd,
+ 0x58, 0x05, 0xd1, 0x2e, 0x3f, 0x80, 0x64, 0x22, 0xc7, 0x82, 0x46, 0x67,
+ 0x79, 0x15, 0x7d, 0x22, 0xca, 0x1c, 0x95, 0xc8, 0xd6, 0x53, 0x6f, 0xc8,
+ 0xa1, 0x9c, 0x66, 0x0a, 0xd8, 0x71, 0x1c, 0x92, 0x8f, 0xfb, 0xb0, 0xea,
+ 0x40, 0x2f, 0x6d, 0xb8, 0x76, 0xde, 0x99, 0x7e, 0xbd, 0x95, 0x80, 0x68,
+ 0x00, 0xb0, 0x03, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x91, 0x10, 0x00, 0x01, 0x10, 0x10, 0x00, 0x1e, 0xdd, 0x6b, 0xa3,
+ 0xbb, 0x20, 0x35, 0xc4, 0x2b, 0x23, 0x7b, 0xf4, 0x38, 0xe2, 0xa4, 0xce,
+ 0x91, 0x53, 0x0b, 0x5d, 0x54, 0x15, 0xfc, 0xfd, 0x11, 0x62, 0x76, 0x52,
+ 0x55, 0xa2, 0xd4, 0xa9, 0x9e, 0xac, 0xaf, 0xee, 0x50, 0xba, 0x8b, 0xee,
+ 0xf7, 0x31, 0xe0, 0x09, 0x36, 0x2d, 0xd6, 0xd4, 0x68, 0xd8, 0x06, 0x12,
+ 0x02, 0x77, 0x43, 0x56, 0x85, 0xdb, 0x8d, 0x26, 0x18, 0x39, 0x3f, 0xe7,
+ 0x00, 0x98, 0xe0, 0x9a, 0x8e, 0xe2, 0x95, 0xe7, 0xb0, 0x5a, 0xc9, 0x6e,
+ 0xe6, 0x8c, 0xbf, 0xf7, 0x8d, 0x7c, 0x5c, 0x99, 0xeb, 0xd4, 0xc8, 0xb6,
+ 0x3d, 0xe1, 0x31, 0xa0, 0x1a, 0x73, 0x81, 0xe6, 0x15, 0x8c, 0xe6, 0x2a,
+ 0x5a, 0xdf, 0xc3, 0x70, 0x4a, 0xb6, 0x7e, 0x27, 0x0b, 0x87, 0xcd, 0xc5,
+ 0xa0, 0x95, 0x2b, 0xff, 0x9b, 0x10, 0x0c, 0x4b, 0xc0, 0x5c, 0x27, 0x88,
+ 0xc1, 0x56, 0xd3, 0xbe, 0x54, 0x03, 0x3f, 0x0e, 0xb0, 0x58, 0x66, 0x06,
+ 0x14, 0x3d, 0x60, 0xb1, 0xdb, 0x54, 0xa5, 0x72, 0x9a, 0x1c, 0xa8, 0x14,
+ 0xba, 0x1a, 0x79, 0x6b, 0x28, 0xfe, 0x85, 0x98, 0x13, 0xb4, 0x4b, 0x8e,
+ 0xb8, 0x70, 0x07, 0x0a, 0x25, 0xa3, 0x50, 0x5e, 0x4c, 0x27, 0x9f, 0x0b,
+ 0x09, 0x44, 0x58, 0xa8, 0x75, 0x38, 0xbb, 0x29, 0x25, 0xf2, 0x27, 0x0e,
+ 0x2b, 0xae, 0x09, 0x1b, 0xe2, 0x24, 0xc6, 0xe8, 0xd6, 0x71, 0xa0, 0xf4,
+ 0x2d, 0x8c, 0x30, 0x54, 0xe4, 0x60, 0x8c, 0xc3, 0xe2, 0x69, 0xff, 0xf4,
+ 0x07, 0xd6, 0xfe, 0x8c, 0xd5, 0x2c, 0x0f, 0x0e, 0xb4, 0x7d, 0x5c, 0x7b,
+ 0xb7, 0x3a, 0xa0, 0xb6, 0xd3, 0xf2, 0x21, 0xfa, 0xcb, 0x2c, 0xb2, 0x9c,
+ 0xf6, 0x20, 0xac, 0x7d, 0x42, 0x79, 0x1b, 0xd2, 0xe4, 0x4f, 0x1e, 0xca,
+ 0x96, 0xf5, 0x64, 0x80, 0xfd, 0x48, 0x96, 0xdb, 0xa0, 0x7d, 0x76, 0x1b,
+ 0x3c, 0xd1, 0xa3, 0xcc, 0xaf, 0x78, 0x99, 0xcb, 0x6b, 0x95, 0x3d, 0xd4,
+ 0x56, 0xe2, 0x3c, 0x1b, 0xba, 0x8f, 0xaa, 0xdc, 0x4e, 0x8d, 0x4d, 0x58,
+ 0x70, 0x3d, 0x22, 0x0e, 0x7c, 0xfc, 0x99, 0x80, 0x5c, 0x1d, 0x9a, 0xed,
+ 0x7b, 0xb4, 0x5c, 0xa9, 0xa7, 0x00, 0x93, 0x8f, 0x10, 0x13, 0x80, 0xf1,
+ 0x80, 0x95, 0xc7, 0x05, 0xd1, 0x86, 0x23, 0x93, 0xf7, 0xca, 0xa5, 0x0b,
+ 0xd0, 0xfd, 0xaf, 0xb9, 0xeb, 0xe5, 0x93, 0xbf, 0x3e, 0x38, 0xdc, 0xa2,
+ 0xdf, 0xda, 0x2f, 0x16, 0x50, 0x35, 0x37, 0x55, 0xc7, 0xd8, 0xc5, 0x00,
+ 0xa7, 0xfa, 0x44, 0x88, 0xea, 0xbc, 0x7f, 0x78, 0xc5, 0x09, 0xfb, 0xb5,
+ 0x07, 0xeb, 0xec, 0x57, 0x3c, 0x60, 0x68, 0x20, 0x5b, 0x1b, 0x85, 0xe5,
+ 0x7f, 0x3c, 0x6f, 0xf9, 0x96, 0x42, 0x1b, 0x96, 0x9e, 0x73, 0x09, 0x16,
+ 0xee, 0x26, 0xc0, 0x8f, 0xcb, 0xc9, 0x84, 0x96, 0x3f, 0xdf, 0xce, 0x74,
+ 0x13, 0xf2, 0xa6, 0x39, 0xa2, 0x94, 0x7f, 0x1a, 0x12, 0xaa, 0xe6, 0x84,
+ 0xe1, 0x1c, 0xb5, 0x2c, 0xad, 0x7f, 0xc9, 0x0f, 0xd2, 0xf9, 0x0b, 0xf9,
+ 0xba, 0x8b, 0x1d, 0x86, 0xcf, 0x49, 0xcb, 0xfb, 0xa6, 0xa7, 0x02, 0x3c,
+ 0x8f, 0x9d, 0xab, 0xe4, 0x48, 0xa3, 0x55, 0xa6, 0x68, 0x04, 0x5e, 0x4c,
+ 0x89, 0x86, 0x0e, 0xe5, 0xed, 0xb3, 0x8a, 0xec, 0x86, 0x6b, 0xe8, 0xf6,
+ 0xf7, 0x3c, 0xb8, 0x56, 0x86, 0xa3, 0x66, 0x7b, 0xfe, 0x6f, 0xf9, 0xa2,
+ 0x2d, 0xf4, 0xa2, 0xec, 0x95, 0xfe, 0x56, 0xa7, 0xc9, 0xc9, 0x64, 0xcf,
+ 0xc5, 0xec, 0x18, 0x37, 0xc4, 0xe2, 0xfc, 0xc0, 0x28, 0x47, 0x88, 0xca,
+ 0x2d, 0xb4, 0xd1, 0x50, 0x42, 0x14, 0xdc, 0xfc, 0x22, 0xbf, 0x83, 0xc0,
+ 0x25, 0xb9, 0x4b, 0x89, 0xfb, 0xcb, 0xcc, 0x27, 0x68, 0x27, 0x83, 0x8f,
+ 0x52, 0xda, 0x93, 0x32, 0xec, 0xe8, 0x0c, 0xfa, 0x81, 0x38, 0xea, 0x93,
+ 0x8b, 0x6a, 0x7a, 0x93, 0x3e, 0x12, 0x0d, 0x9c, 0x25, 0x3b, 0x52, 0x73,
+ 0x2d, 0xfa, 0x9a, 0xfe, 0x2c, 0x8d, 0x60, 0x1f, 0x7f, 0xf4, 0xcf, 0x8e,
+ 0x4a, 0x09, 0xfb, 0x55, 0xc8, 0x15, 0xb7, 0x1e, 0x57, 0x36, 0x98, 0xda,
+ 0x99, 0xc4, 0xd0, 0x71, 0x25, 0x74, 0x89, 0x68, 0xfd, 0x53, 0x9c, 0xba,
+ 0x9e, 0xd9, 0xf5, 0xf6, 0x94, 0xc2, 0x6e, 0x87, 0xb3, 0x99, 0x5c, 0x98,
+ 0x6c, 0x36, 0xa7, 0x54, 0xb6, 0x16, 0xdb, 0x43, 0x00, 0xc4, 0x6a, 0xdf,
+ 0xfe, 0xda, 0x81, 0xb0, 0xf8, 0xb6, 0x22, 0xa8, 0x64, 0xe7, 0x8a, 0x2d,
+ 0x4b, 0x33, 0xfb, 0x17, 0x13, 0xdb, 0xf9, 0xd8, 0xdb, 0x63, 0x2a, 0xbe,
+ 0x8f, 0xd3, 0x77, 0x71, 0x76, 0xd4, 0xf4, 0x4b, 0xff, 0xa2, 0x2a, 0x22,
+ 0xee, 0xaa, 0xd2, 0x7c, 0x4d, 0x4e, 0x0f, 0x33, 0xb4, 0x81, 0x59, 0x9d,
+ 0x03, 0x66, 0xc4, 0x5f, 0xd5, 0x60, 0x57, 0xe0, 0x34, 0x98, 0x61, 0xc8,
+ 0xcc, 0x53, 0x02, 0x0e, 0xd2, 0x68, 0x0d, 0xe8, 0xfc, 0xd9, 0xe2, 0x05,
+ 0xa9, 0xa7, 0xbe, 0x5e, 0x19, 0xde, 0xcb, 0x09, 0x3e, 0x8e, 0xb0, 0x0d,
+ 0x35, 0x65, 0xf1, 0x06, 0xb0, 0x93, 0x10, 0x3a, 0xdb, 0x6c, 0x84, 0x91,
+ 0xef, 0x12, 0xf4, 0x65, 0x32, 0x5e, 0x40, 0x85, 0x29, 0xac, 0x6d, 0x55,
+ 0xdd, 0x2f, 0x3b, 0x08, 0xac, 0x96, 0xb9, 0xd1, 0x37, 0x9e, 0x1b, 0xed,
+ 0x80, 0x10, 0x9e, 0x89, 0xc3, 0x08, 0x01, 0x05, 0x7e, 0xe1, 0x9e, 0x66,
+ 0xe1, 0x35, 0xad, 0xc7, 0xbf, 0xb9, 0xf4, 0x95, 0x1f, 0xbc, 0x7b, 0x1f,
+ 0xc0, 0x8d, 0xce, 0xef, 0x43, 0xbc, 0x88, 0x85, 0x97, 0xda, 0xfe, 0x38,
+ 0xb8, 0x21, 0x51, 0x65, 0x35, 0xd1, 0x07, 0xff, 0xf5, 0xcc, 0x35, 0x82,
+ 0x23, 0x4b, 0x24, 0x2c, 0xa5, 0xb8, 0x4c, 0xfe, 0xff, 0xdf, 0x04, 0xca,
+ 0xf8, 0xb3, 0x78, 0x0f, 0x96, 0x1b, 0x72, 0x72, 0x19, 0x11, 0x35, 0x54,
+ 0xf7, 0xc1, 0x89, 0x77, 0x2d, 0x52, 0x55, 0x49, 0x7f, 0xfc, 0xad, 0x6c,
+ 0xaa, 0x9e, 0x6b, 0xde, 0xb6, 0x8e, 0x06, 0x1a, 0x03, 0x69, 0x68, 0x93,
+ 0x64, 0x2f, 0xff, 0x8a, 0x69, 0xdb, 0xba, 0xa6, 0x09, 0xd2, 0x09, 0x07,
+ 0xb5, 0xe1, 0x93, 0x32, 0xff, 0xf9, 0x2b, 0x0b, 0xee, 0x18, 0x16, 0x15,
+ 0x64, 0xc9, 0x46, 0x10, 0xe8, 0x59, 0x25, 0x9b, 0x6e, 0x0a, 0x6e, 0x3a,
+ 0xc7, 0xb5, 0x27, 0x1d, 0x49, 0x0c, 0xfb, 0x6e, 0x7c, 0xfe, 0xde, 0x2a,
+ 0x20, 0x70, 0x06, 0x57, 0x49, 0xfc, 0xdc, 0x2b, 0xab, 0x1c, 0x0d, 0xc8,
+ 0x80, 0x14, 0xe5, 0x5d, 0xe7, 0xe8, 0x4e, 0xe2, 0x17, 0xfe, 0x9c, 0x5b,
+ 0x69, 0xcd, 0xac, 0xaf, 0x9d, 0x86, 0xff, 0x15, 0x8e, 0x89, 0xc4, 0xfb,
+ 0x91, 0xe3, 0x61, 0x1d, 0xcf, 0xbb, 0xfc, 0x01, 0x9c, 0x3c, 0x7c, 0xa8,
+ 0x67, 0x74, 0x32, 0x05, 0xf0, 0xc4, 0x0b, 0x8f, 0x7e, 0x6c, 0xf2, 0xc7,
+ 0x21, 0x08, 0x60, 0xa3, 0x97, 0x80, 0x89, 0xd8, 0x72, 0x27, 0xd0, 0x83,
+ 0xa7, 0x42, 0x60, 0x9f, 0xd0, 0xb5, 0x7a, 0x58, 0x00, 0x18, 0x07, 0x00,
+ 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x43, 0x00,
+ 0x31, 0x11, 0xd0, 0x00, 0x1a, 0xd8, 0x24, 0x10, 0x6c, 0xfd, 0xfb, 0xfe,
+ 0x9f, 0xf3, 0xff, 0xd0, 0x9f, 0x47, 0x3f, 0x84, 0xf7, 0xdf, 0xcf, 0xff,
+ 0xc4, 0xa3, 0x6b, 0xff, 0xff, 0xe9, 0xe7, 0x72, 0x6f, 0xf3, 0x3c, 0xee,
+ 0xbf, 0xeb, 0xfa, 0xd5, 0x2f, 0xff, 0x87, 0xff, 0x22, 0xbf, 0xa7, 0xff,
+ 0xff, 0xff, 0x0b, 0xc6, 0x67, 0x33, 0xdf, 0xf9, 0x3c, 0x6c, 0x7e, 0x9d,
+ 0xea, 0x73, 0xfa, 0x23, 0xff, 0xff, 0xff, 0xff, 0x7a, 0xbf, 0xff, 0xbd,
+ 0x26, 0xfd, 0xdf, 0xed, 0xc9, 0x0b, 0x22, 0x44, 0x68, 0xc8, 0x80, 0x7d,
+ 0x02, 0x6e, 0x2a, 0x14, 0x2f, 0x9f, 0x61, 0x8b, 0x69, 0x27, 0x01, 0xb2,
+ 0xcb, 0x6c, 0x15, 0xd8, 0x9b, 0x20, 0x7e, 0xae, 0x0f, 0x59, 0xea, 0xb9,
+ 0x48, 0xb0, 0xe1, 0xec, 0xed, 0xd0, 0x09, 0x5d, 0x6b, 0x31, 0xcf, 0x59,
+ 0x6f, 0xed, 0xd1, 0x9c, 0x85, 0x5b, 0xc6, 0x7b, 0xdc, 0xba, 0xde, 0x43,
+ 0xdc, 0x78, 0xfa, 0x29, 0x30, 0x97, 0xb4, 0x75, 0x31, 0xde, 0x4c, 0xdc,
+ 0x59, 0x67, 0x02, 0x11, 0xb8, 0x15, 0xbd, 0xfe, 0x3e, 0x70, 0x04, 0x24,
+ 0xe2, 0xd2, 0x5c, 0x4a, 0x06, 0xad, 0xcc, 0x74, 0x2a, 0x85, 0xb4, 0xa7,
+ 0xbc, 0x85, 0x4b, 0x27, 0xcc, 0xef, 0x44, 0x54, 0xa4, 0x78, 0x91, 0xcc,
+ 0xf8, 0x67, 0xdd, 0xb2, 0x5b, 0x4d, 0xc6, 0xf7, 0xed, 0x8e, 0x5f, 0x95,
+ 0x25, 0xe2, 0x0a, 0x78, 0xef, 0x83, 0x0d, 0x2a, 0x56, 0xf9, 0x84, 0xfe,
+ 0xc0, 0x0e, 0x17, 0x65, 0xd3, 0xd7, 0x3c, 0x67, 0xa9, 0x7b, 0xca, 0x3d,
+ 0xd6, 0x0e, 0x99, 0x6d, 0xcd, 0xa6, 0x7b, 0xc0, 0x98, 0xb3, 0x46, 0x1b,
+ 0x3f, 0x3b, 0x63, 0x04, 0xae, 0x6e, 0x74, 0xb9, 0xdd, 0x19, 0x9f, 0x68,
+ 0x96, 0xe7, 0xdd, 0xb1, 0x2c, 0xd2, 0x98, 0x30, 0xbc, 0x6d, 0xf4, 0x23,
+ 0x89, 0xff, 0xa3, 0xf5, 0x4e, 0xbd, 0x56, 0x96, 0xa5, 0xc2, 0x72, 0xc9,
+ 0x82, 0x22, 0xca, 0x8d, 0x5d, 0xd8, 0xfa, 0x8e, 0x10, 0x2a, 0x0c, 0x23,
+ 0x7c, 0x2e, 0x1d, 0xd9, 0x35, 0xda, 0x4a, 0x3d, 0x95, 0x68, 0x28, 0xb2,
+ 0xc4, 0x44, 0x17, 0x0d, 0x6f, 0x88, 0x2c, 0x6b, 0x9c, 0xe2, 0x5a, 0xba,
+ 0x29, 0xa8, 0x84, 0x87, 0xd8, 0xbc, 0x75, 0xbe, 0x09, 0x1d, 0xc3, 0x5f,
+ 0x33, 0xe1, 0x77, 0x27, 0xdb, 0x5c, 0x1e, 0x2d, 0x72, 0x37, 0xea, 0xa9,
+ 0xf3, 0xa7, 0x7d, 0x38, 0x8e, 0x50, 0xd0, 0x16, 0x5c, 0xd5, 0x7f, 0x59,
+ 0x2b, 0xb3, 0x19, 0x0a, 0xcb, 0x35, 0xf1, 0xd8, 0x02, 0xee, 0xb1, 0xfc,
+ 0xea, 0xfc, 0x81, 0xec, 0x68, 0xf8, 0x28, 0x52, 0x44, 0x12, 0x4d, 0xb4,
+ 0x1f, 0x69, 0x84, 0x55, 0x2e, 0x94, 0xa8, 0x3f, 0x72, 0x77, 0x89, 0x29,
+ 0x19, 0x03, 0xff, 0xcc, 0x5e, 0xb7, 0x1a, 0xbd, 0x36, 0x55, 0x9f, 0xa6,
+ 0x3f, 0x57, 0x81, 0x68, 0x61, 0x8c, 0xf3, 0x7b, 0x52, 0x38, 0x87, 0xff,
+ 0x61, 0x44, 0x46, 0x70, 0x38, 0x67, 0xef, 0x28, 0x37, 0x10, 0x13, 0xe5,
+ 0x1b, 0x4b, 0x77, 0x0a, 0x73, 0xe9, 0xa5, 0xcd, 0xcb, 0x3a, 0x13, 0xec,
+ 0x91, 0x83, 0x10, 0x59, 0xd5, 0x3d, 0x2c, 0x19, 0xb0, 0xa5, 0xa4, 0x97,
+ 0xdd, 0x9d, 0x6b, 0x24, 0x43, 0x2d, 0x85, 0xcd, 0x83, 0x73, 0x48, 0xac,
+ 0xfd, 0x38, 0x36, 0x48, 0x17, 0x5b, 0xc0, 0xda, 0xb6, 0xab, 0xa4, 0x5c,
+ 0x75, 0xb7, 0xa5, 0xc0, 0x02, 0x8a, 0x96, 0x9d, 0x00, 0x08, 0x76, 0x8a,
+ 0xc8, 0x00, 0x2d, 0x6b, 0x1e, 0x74, 0x80, 0x0d, 0x3f, 0xac, 0x0d, 0x60,
+ 0x03, 0xe7, 0xa0, 0x1d, 0xe0, 0x01, 0x27, 0x1c, 0xc5, 0x90, 0x00, 0x4e,
+ 0x6c, 0x0e, 0x60, 0x01, 0xaf, 0xc3, 0x70, 0x00, 0x7c, 0x5b, 0x78, 0x00,
+ 0x23, 0xcf, 0x5b, 0x00, 0x01, 0x7f, 0xff, 0x68, 0x00, 0x4d, 0xcb, 0x78,
+ 0x80, 0x0e, 0xe4, 0x32, 0x28, 0x00, 0x64, 0x29, 0x92, 0x43, 0x42, 0xf9,
+ 0xeb, 0x82, 0xd7, 0x6b, 0x66, 0x65, 0x13, 0x00, 0xae, 0x08, 0xee, 0xed,
+ 0xd9, 0xc4, 0x97, 0xc5, 0xeb, 0xd0, 0x0c, 0x8e, 0x5f, 0xbf, 0x13, 0xdb,
+ 0x04, 0xd1, 0xd5, 0xe6, 0x05, 0x79, 0x85, 0x5f, 0xe0, 0xf6, 0x0b, 0xcb,
+ 0xd8, 0x55, 0xde, 0xd2, 0xce, 0xa9, 0x00, 0x55, 0x8b, 0xed, 0xaa, 0x32,
+ 0xb2, 0x71, 0x1c, 0x46, 0xb9, 0xcd, 0x1a, 0x02, 0x31, 0x28, 0x9f, 0x99,
+ 0xf1, 0x61, 0x73, 0x5c, 0xa6, 0x5a, 0xcf, 0x67, 0x49, 0x3b, 0x4c, 0xa4,
+ 0x54, 0x24, 0x9c, 0x44, 0xbf, 0xff, 0x39, 0x1e, 0x1c, 0x4f, 0x8b, 0xbc,
+ 0x89, 0x6e, 0x44, 0xee, 0xb0, 0x74, 0x4a, 0xdf, 0x96, 0x67, 0xc1, 0x4e,
+ 0xb2, 0x94, 0xa7, 0x4c, 0x9c, 0x46, 0xe1, 0x44, 0x88, 0x62, 0x12, 0xa9,
+ 0x52, 0x88, 0x89, 0x68, 0x24, 0x5f, 0xb0, 0xbf, 0x6b, 0x6c, 0xa5, 0xca,
+ 0x83, 0x1e, 0x3b, 0x77, 0x0b, 0x27, 0x85, 0x46, 0x39, 0x62, 0xfb, 0xc7,
+ 0xea, 0x43, 0x85, 0x91, 0x03, 0x71, 0x3d, 0x6c, 0x35, 0xe3, 0x0e, 0x71,
+ 0x61, 0xaf, 0x96, 0x8e, 0x9f, 0xfe, 0xe7, 0xb4, 0x0d, 0xda, 0x04, 0xbf,
+ 0x9b, 0x81, 0x41, 0x31, 0xe7, 0x8d, 0xe7, 0x6c, 0xd4, 0x5e, 0xe5, 0x30,
+ 0x30, 0xa5, 0x90, 0xb3, 0x5a, 0xfa, 0x3f, 0x01, 0x8a, 0x37, 0xc5, 0xc6,
+ 0x44, 0x05, 0xb3, 0x04, 0x92, 0xb5, 0x36, 0xa4, 0xf3, 0xc6, 0x2d, 0xab,
+ 0x7c, 0x32, 0xfe, 0xf5, 0xb6, 0x97, 0x6f, 0xda, 0x82, 0x98, 0xbe, 0x82,
+ 0x1c, 0xaf, 0xb2, 0x65, 0xdd, 0x9e, 0x7c, 0x58, 0xf3, 0xd6, 0x35, 0xca,
+ 0xa0, 0x60, 0x4b, 0x18, 0x98, 0x59, 0x28, 0xd3, 0x52, 0xf6, 0x57, 0x98,
+ 0xae, 0xb7, 0xbf, 0x47, 0x60, 0x83, 0x67, 0xca, 0x62, 0x5d, 0x7d, 0x12,
+ 0x0b, 0xcd, 0x14, 0x03, 0xd4, 0x7c, 0x05, 0xae, 0xf3, 0x2e, 0x70, 0x40,
+ 0x82, 0x5f, 0x1c, 0x46, 0x11, 0xff, 0xc9, 0x86, 0x50, 0x6a, 0x6d, 0x2c,
+ 0x6b, 0x16, 0x2b, 0x00, 0x41, 0xd5, 0x75, 0xb8, 0x38, 0xb9, 0x11, 0x21,
+ 0x9c, 0xdf, 0xef, 0xc0, 0x40, 0x57, 0x63, 0x7d, 0x6e, 0xc3, 0x7c, 0xef,
+ 0x26, 0x20, 0x68, 0x05, 0x2d, 0x8f, 0xaf, 0x11, 0x4e, 0xbc, 0xb4, 0x72,
+ 0xbc, 0x9d, 0xed, 0x36, 0x43, 0xcc, 0x74, 0x27, 0x0d, 0xe5, 0xd9, 0x4c,
+ 0xff, 0x36, 0x8e, 0x1b, 0x66, 0xec, 0x61, 0xfc, 0x4b, 0x27, 0x6c, 0x16,
+ 0x6b, 0x40, 0x92, 0x6c, 0xd6, 0x39, 0x6b, 0xb8, 0x1b, 0x4a, 0x6b, 0x48,
+ 0xac, 0xde, 0x90, 0x75, 0x51, 0x1e, 0x30, 0x70, 0xf0, 0xca, 0x10, 0xb9,
+ 0x95, 0x75, 0xa0, 0x9b, 0x37, 0x2f, 0x2e, 0xfa, 0xdf, 0x85, 0xa0, 0xe4,
+ 0x05, 0xbf, 0x3c, 0x5a, 0xbb, 0x4d, 0xa7, 0x23, 0xd3, 0xfa, 0xf2, 0x5e,
+ 0xcf, 0xd4, 0x02, 0x6f, 0x78, 0xf1, 0x9b, 0xf1, 0xae, 0x35, 0x2e, 0xfa,
+ 0xdf, 0x85, 0xa0, 0xe4, 0x05, 0xbf, 0x6c, 0x82, 0x30, 0x1b, 0xb8, 0xce,
+ 0xe4, 0x7b, 0x53, 0x07, 0xbd, 0x77, 0xfa, 0x59, 0x0f, 0x22, 0x0a, 0xda,
+ 0x4b, 0x57, 0x07, 0x86, 0x78, 0xb7, 0xcc, 0x41, 0xc8, 0x0b, 0x7e, 0xd9,
+ 0x04, 0x60, 0x37, 0x71, 0x9d, 0xc8, 0xf6, 0xa6, 0x0f, 0x7a, 0xf5, 0xd3,
+ 0x7e, 0xca, 0xa5, 0xa9, 0x45, 0x94, 0x6c, 0xea, 0x20, 0xdb, 0x86, 0x44,
+ 0x58, 0x7b, 0x76, 0xcd, 0xe2, 0x20, 0x1a, 0xcb, 0xe2, 0x65, 0x27, 0x1d,
+ 0xeb, 0x95, 0x01, 0xcf, 0x99, 0xc7, 0x0d, 0x65, 0x43, 0x85, 0xb7, 0x31,
+ 0x2f, 0xff, 0x13, 0xbf, 0x6b, 0x52, 0xd0, 0xff, 0x68, 0x03, 0x21, 0xbb,
+ 0xab, 0xe5, 0x29, 0xe8, 0xdc, 0x6d, 0x25, 0x03, 0x3a, 0x6c, 0x46, 0x3e,
+ 0xe7, 0x23, 0xbc, 0xa8, 0x70, 0xb6, 0xe6, 0x2a, 0xa6, 0x20, 0x2b, 0xfb,
+ 0x98, 0xdc, 0x50, 0x1f, 0x58, 0x8e, 0x35, 0xdc, 0xe6, 0xdd, 0xa2, 0xa6,
+ 0x79, 0xd4, 0xe6, 0xd2, 0xf7, 0x92, 0x33, 0xd8, 0x45, 0x60, 0x75, 0xa5,
+ 0xce, 0x4f, 0xbc, 0x9a, 0xe9, 0x3f, 0xba, 0xe1, 0x95, 0xf6, 0xba, 0x35,
+ 0x76, 0x48, 0x41, 0x78, 0x9f, 0x86, 0x60, 0x6f, 0xe2, 0x74, 0x29, 0x91,
+ 0x30, 0x46, 0x2e, 0x43, 0x4b, 0x61, 0x36, 0x46, 0x5e, 0x72, 0x8f, 0x0a,
+ 0xd0, 0xc8, 0x14, 0x43, 0xac, 0x3f, 0x00, 0x06, 0x72, 0x06, 0x8b, 0x66,
+ 0x81, 0x07, 0xbf, 0xfb, 0xa7, 0x7d, 0x70, 0x8b, 0x85, 0x1e, 0x21, 0x59,
+ 0x65, 0x5d, 0xd5, 0x3f, 0x53, 0x5d, 0xbc, 0x48, 0x1c, 0xad, 0x88, 0xfb,
+ 0xd0, 0x0b, 0x1e, 0x3a, 0x74, 0xac, 0xc1, 0x34, 0xcd, 0x08, 0x45, 0x7e,
+ 0x72, 0xba, 0x4c, 0x64, 0xf1, 0x6d, 0xa1, 0xf8, 0x4a, 0x8c, 0xa4, 0x8d,
+ 0xa6, 0xc4, 0xfe, 0x88, 0x18, 0x20, 0xca, 0xe7, 0x46, 0xa0, 0x5b, 0x1e,
+ 0x80, 0xc5, 0xa2, 0xe8, 0x58, 0x42, 0x02, 0xf1, 0x4a, 0xa0, 0xfd, 0x26,
+ 0xb5, 0xba, 0x12, 0xa7, 0x47, 0xb8, 0x80, 0x9d, 0x64, 0xa8, 0xf1, 0x53,
+ 0x21, 0xf4, 0x31, 0x82, 0x0c, 0xaa, 0xb2, 0xbd, 0x4e, 0x80, 0x17, 0x6e,
+ 0x3c, 0xf6, 0xe3, 0x05, 0x7e, 0x7f, 0x2d, 0xcd, 0xec, 0xfb, 0xd2, 0x87,
+ 0x57, 0xe1, 0x94, 0x9c, 0xa5, 0xfa, 0x38, 0xa0, 0x8f, 0xfc, 0x21, 0x6f,
+ 0x25, 0x4d, 0xec, 0x74, 0x4a, 0xd7, 0x2d, 0x3c, 0x64, 0x2f, 0xf3, 0x8e,
+ 0x2c, 0xa9, 0xaa, 0xf3, 0x44, 0x12, 0x2e, 0x3c, 0x97, 0x88, 0xc8, 0xd1,
+ 0x6d, 0xe8, 0x39, 0x37, 0xce, 0x2a, 0x78, 0x54, 0x52, 0x16, 0x99, 0xa8,
+ 0xfc, 0xec, 0xe8, 0xc7, 0x95, 0xb0, 0xbd, 0xea, 0x4c, 0x35, 0xfc, 0x3c,
+ 0x70, 0x05, 0x76, 0x8d, 0x31, 0x78, 0xcb, 0xf6, 0x81, 0xce, 0x7b, 0xba,
+ 0xd6, 0x21, 0x94, 0x98, 0x43, 0x6a, 0xcc, 0xcf, 0x0b, 0x7e, 0xab, 0xe1,
+ 0xc8, 0xe6, 0x50, 0x77, 0x37, 0xe9, 0x38, 0x9d, 0x00, 0x51, 0xa9, 0xe3,
+ 0xbb, 0x0f, 0x7b, 0x74, 0x0d, 0x70, 0xcd, 0x5e, 0xff, 0x5e, 0x65, 0xcb,
+ 0xd4, 0x57, 0xc9, 0x07, 0x82, 0x0a, 0xf3, 0x88, 0xd2, 0x26, 0x48, 0xf5,
+ 0x55, 0x57, 0x5f, 0x7e, 0x0b, 0x9e, 0xdc, 0xb0, 0x39, 0x67, 0xb2, 0x49,
+ 0xb9, 0x2c, 0x34, 0x95, 0x5b, 0x39, 0xff, 0xdd, 0xb0, 0x30, 0x86, 0x1e,
+ 0x57, 0xb7, 0x20, 0xac, 0x34, 0x2f, 0x4c, 0x1b, 0x6c, 0x58, 0x1a, 0x0f,
+ 0xc0, 0x2f, 0x50, 0x8e, 0x0d, 0x25, 0xf3, 0x9b, 0x2e, 0x86, 0x9a, 0x18,
+ 0xf0, 0x03, 0x39, 0xc6, 0x44, 0x50, 0x95, 0xdb, 0xb2, 0xd6, 0x89, 0x54,
+ 0x8d, 0xcf, 0x61, 0x0f, 0x0e, 0xfe, 0x75, 0x6e, 0x80, 0x4f, 0x60, 0x12,
+ 0x00, 0x6b, 0x82, 0x78, 0x40, 0xdd, 0x94, 0xd3, 0x27, 0x73, 0xd5, 0xc4,
+ 0xc3, 0xdc, 0xf8, 0x2a, 0x15, 0x2d, 0x3c, 0x38, 0xf5, 0xc6, 0xe7, 0x5c,
+ 0x50, 0x1e, 0x89, 0xb4, 0x43, 0xf9, 0x76, 0x66, 0x64, 0xe4, 0x2f, 0x73,
+ 0x93, 0xb4, 0x99, 0xe8, 0xc3, 0x02, 0xef, 0x99, 0x98, 0x8e, 0x21, 0x7d,
+ 0xf8, 0xa7, 0x90, 0x9a, 0x9d, 0xf2, 0x19, 0x0c, 0x0c, 0x66, 0xf1, 0x24,
+ 0xe1, 0x8c, 0x47, 0xb9, 0x52, 0x85, 0x6d, 0xb0, 0x92, 0x14, 0xcd, 0x6e,
+ 0x45, 0x48, 0x65, 0x9b, 0x0e, 0xda, 0x8f, 0x1b, 0x64, 0x75, 0x45, 0xeb,
+ 0x21, 0xe3, 0x01, 0x06, 0xd5, 0x2c, 0xa3, 0xf2, 0x61, 0x0f, 0xf2, 0xb8,
+ 0xa3, 0xdd, 0x27, 0x22, 0xf6, 0x32, 0xbf, 0x9f, 0xd1, 0x94, 0x27, 0xd1,
+ 0xc7, 0x52, 0xe9, 0x78, 0x9f, 0x7c, 0x6b, 0x07, 0x3c, 0x31, 0xf4, 0x62,
+ 0x1f, 0x91, 0xc4, 0x4f, 0x77, 0x88, 0x00, 0x34, 0xe4, 0x9f, 0x6c, 0x93,
+ 0x4f, 0x3f, 0xd9, 0x85, 0x65, 0xd4, 0x65, 0x57, 0xa3, 0x94, 0x86, 0xc2,
+ 0xa8, 0x56, 0x6e, 0x04, 0x46, 0xce, 0xaa, 0x85, 0x72, 0x4a, 0xe0, 0xda,
+ 0x88, 0xd4, 0x6c, 0x8f, 0xb2, 0x73, 0xe3, 0xe8, 0x02, 0xd1, 0x6d, 0xde,
+ 0x41, 0xe2, 0x20, 0x9b, 0x18, 0xa6, 0xc5, 0x56, 0x79, 0x28, 0xe0, 0xb5,
+ 0x41, 0xbd, 0xf6, 0x37, 0x12, 0x7e, 0x6c, 0x99, 0xb3, 0x60, 0x30, 0xb6,
+ 0x9e, 0x3d, 0xd0, 0x8c, 0x5f, 0xc4, 0x9c, 0x07, 0xc6, 0x53, 0xa6, 0xa6,
+ 0xfe, 0xc5, 0x47, 0x99, 0xb2, 0xcd, 0x86, 0x9b, 0xca, 0x15, 0x60, 0x80,
+ 0x76, 0x31, 0x2f, 0xc4, 0xad, 0x22, 0xc9, 0xb4, 0x4e, 0x17, 0x60, 0x47,
+ 0x28, 0xd5, 0x88, 0x35, 0xb4, 0x7d, 0x74, 0x1d, 0x2c, 0xdb, 0x2c, 0x96,
+ 0xc3, 0x1d, 0x27, 0x66, 0xbb, 0xd6, 0x80, 0x47, 0x5c, 0xc4, 0xb6, 0x7d,
+ 0x19, 0xc1, 0x20, 0xfc, 0xc8, 0x93, 0x20, 0x90, 0x75, 0xc5, 0x9b, 0x2f,
+ 0xd7, 0x06, 0x26, 0x32, 0x7a, 0xe7, 0x7f, 0x21, 0x12, 0x37, 0x72, 0x81,
+ 0xc7, 0xdc, 0xfa, 0x7b, 0x06, 0x00, 0x38, 0x17, 0x5a, 0x06, 0x85, 0xee,
+ 0xbb, 0xdf, 0x79, 0xa6, 0x0a, 0x4e, 0xde, 0xd7, 0xc3, 0xcb, 0x55, 0x52,
+ 0x9e, 0xbc, 0x82, 0x07, 0x2a, 0xc1, 0x65, 0xfc, 0x9a, 0x7f, 0x15, 0x0f,
+ 0x5e, 0x8b, 0xf4, 0x03, 0xd2, 0x5e, 0xa9, 0x62, 0xb0, 0x7c, 0x7d, 0xd4,
+ 0xc3, 0xce, 0xc2, 0xe5, 0x1d, 0xe8, 0x9e, 0x76, 0x08, 0xf1, 0xb8, 0x3b,
+ 0x0a, 0xa3, 0xb6, 0x02, 0x60, 0x88, 0xc8, 0xea, 0x6e, 0x61, 0xc1, 0x44,
+ 0xc9, 0x19, 0x1d, 0x4d, 0xcc, 0x38, 0x28, 0x9b, 0x83, 0x91, 0x14, 0x28,
+ 0x90, 0x15, 0x1a, 0xf7, 0x85, 0x80, 0xe3, 0x63, 0xe4, 0x55, 0x2b, 0x98,
+ 0x71, 0xd1, 0x36, 0x11, 0x83, 0xf9, 0x41, 0x8a, 0x3f, 0xb6, 0x3c, 0x32,
+ 0x73, 0x0e, 0x02, 0xb3, 0x7c, 0xca, 0x4f, 0xe9, 0x4b, 0x59, 0x22, 0x6f,
+ 0x2e, 0x5e, 0xf3, 0xfa, 0x73, 0x02, 0xa0, 0x69, 0x3f, 0x92, 0xa2, 0xc4,
+ 0x00, 0x31, 0x04, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x31, 0x26, 0x00, 0x06, 0x10, 0x44, 0x00, 0x1c, 0x8d, 0x05, 0x41,
+ 0x30, 0x13, 0x35, 0x03, 0x51, 0x1b, 0x02, 0x1a, 0x60, 0x20, 0x3c, 0xe6,
+ 0xac, 0x6f, 0xff, 0x1b, 0xe5, 0x26, 0xf2, 0xf7, 0xf4, 0x2d, 0x6c, 0xdd,
+ 0xfa, 0xfb, 0x61, 0xf6, 0x04, 0xdf, 0x8e, 0xf6, 0x80, 0xfe, 0x67, 0xfc,
+ 0xaf, 0xe6, 0x9f, 0xfa, 0xff, 0x70, 0xdf, 0x46, 0x7b, 0x0b, 0xfe, 0x5a,
+ 0xbc, 0xa0, 0x4f, 0xdb, 0x7b, 0x55, 0xd9, 0x75, 0xf5, 0x82, 0x73, 0xaf,
+ 0xb0, 0x8e, 0x75, 0xca, 0x06, 0x46, 0xd1, 0x81, 0xdb, 0xf2, 0x3a, 0xb0,
+ 0xf7, 0x20, 0x11, 0x2f, 0xbc, 0x35, 0xb8, 0x81, 0xdb, 0x95, 0x6d, 0x3c,
+ 0xb7, 0xee, 0xef, 0x70, 0x10, 0x15, 0x90, 0xe7, 0x62, 0xd8, 0x36, 0x5d,
+ 0x57, 0x44, 0xaa, 0x06, 0x88, 0xde, 0xde, 0xf9, 0x29, 0xc8, 0x16, 0x9e,
+ 0xf2, 0x0a, 0xfa, 0xd4, 0x5c, 0xd2, 0xbe, 0x6d, 0xd3, 0xe1, 0x43, 0x3e,
+ 0x43, 0x9b, 0xd5, 0x1a, 0x15, 0xfc, 0xf0, 0x6d, 0xec, 0xdd, 0x68, 0x07,
+ 0xba, 0xda, 0x9f, 0x93, 0x2f, 0x98, 0xd8, 0xf1, 0x65, 0xeb, 0x06, 0x00,
+ 0x11, 0xab, 0x89, 0x56, 0x91, 0x26, 0x5f, 0x70, 0x6d, 0x0c, 0x70, 0x47,
+ 0x3e, 0x40, 0xad, 0x23, 0x99, 0x79, 0xef, 0xce, 0x59, 0xc8, 0xd4, 0x53,
+ 0x41, 0x37, 0x52, 0x73, 0x66, 0x47, 0x4c, 0xd9, 0xba, 0x6f, 0x4a, 0x39,
+ 0xe8, 0x6d, 0xa9, 0x08, 0x80, 0x3d, 0x7b, 0x96, 0xa7, 0x62, 0x11, 0x46,
+ 0xdd, 0xb2, 0x9a, 0x0d, 0xc2, 0xee, 0x9d, 0xd0, 0x0a, 0x54, 0xd7, 0xdb,
+ 0x90, 0x8c, 0x5a, 0x2e, 0xb0, 0x24, 0xe5, 0x29, 0x47, 0x09, 0xd5, 0x12,
+ 0x51, 0xc2, 0x75, 0x44, 0x94, 0x70, 0x9d, 0x51, 0x25, 0x1c, 0x27, 0x54,
+ 0x49, 0x47, 0x09, 0xd5, 0x12, 0x51, 0xc2, 0x75, 0x44, 0x94, 0x70, 0x9d,
+ 0x51, 0x25, 0x1c, 0x27, 0x54, 0x49, 0x47, 0x09, 0xd4, 0x69, 0xf4, 0x33,
+ 0xc6, 0xa2, 0x23, 0x72, 0x0f, 0xfb, 0x27, 0xd5, 0x84, 0x13, 0x04, 0x1d,
+ 0x80, 0x29, 0xdd, 0x2b, 0x49, 0xd5, 0x47, 0x77, 0x17, 0x58, 0x12, 0x71,
+ 0xa7, 0xad, 0x80, 0x06, 0x0b, 0xf7, 0xc4, 0x62, 0x06, 0x2e, 0xc6, 0xba,
+ 0x68, 0x32, 0xd2, 0xbf, 0x5d, 0x28, 0xa5, 0x7d, 0x50, 0x4d, 0x9a, 0x28,
+ 0x90, 0x36, 0x8f, 0xdc, 0x8c, 0x54, 0x33, 0xfb, 0x0f, 0xf8, 0x2e, 0xb3,
+ 0xd6, 0xd3, 0xfa, 0x0a, 0xe6, 0x81, 0x0f, 0xfa, 0x8a, 0xc3, 0x4e, 0x6a,
+ 0x1c, 0xc0, 0x07, 0x5b, 0xe6, 0xea, 0x25, 0x81, 0x16, 0xd4, 0xfc, 0x57,
+ 0x99, 0x4e, 0x61, 0x04, 0xe5, 0xda, 0x37, 0xd2, 0x26, 0x90, 0x28, 0xa3,
+ 0xe4, 0x63, 0xcd, 0x7f, 0xf0, 0x3c, 0xa6, 0xb3, 0x71, 0x6f, 0x9d, 0x06,
+ 0xd2, 0x74, 0xc9, 0xfa, 0x05, 0xc3, 0xdb, 0xc5, 0x9c, 0xf9, 0x3d, 0xba,
+ 0x2a, 0x3b, 0x57, 0xac, 0xab, 0x8c, 0xa4, 0xc3, 0xbf, 0xf9, 0xe4, 0x2a,
+ 0x4f, 0xc0, 0x31, 0x1d, 0x19, 0x89, 0x96, 0x50, 0x6c, 0x83, 0x4b, 0x24,
+ 0x31, 0xd3, 0x52, 0xb9, 0xd3, 0x0b, 0xb3, 0x65, 0x76, 0xad, 0xdd, 0x63,
+ 0x69, 0xd9, 0x8a, 0x40, 0x69, 0x99, 0x2c, 0x1c, 0xb9, 0xd4, 0x47, 0x23,
+ 0xda, 0x91, 0x40, 0xc6, 0x9c, 0x8f, 0x58, 0x28, 0xa6, 0x72, 0xfb, 0x36,
+ 0x41, 0x99, 0xab, 0x2c, 0x9b, 0xf5, 0x06, 0xf3, 0x9f, 0x4b, 0x4d, 0xa5,
+ 0xb0, 0xc6, 0x81, 0xfe, 0x19, 0x4d, 0xef, 0x8a, 0x80, 0xca, 0x20, 0xce,
+ 0xa2, 0xac, 0x77, 0xb7, 0x86, 0xf6, 0xf3, 0xd3, 0x36, 0x9d, 0x68, 0xe0,
+ 0x5a, 0x82, 0x75, 0xd5, 0xca, 0x64, 0xd4, 0x34, 0xd4, 0xfd, 0x07, 0x58,
+ 0x8e, 0xd6, 0xd4, 0xf0, 0xf9, 0xa7, 0xff, 0x4e, 0x7a, 0x7b, 0x6e, 0xaf,
+ 0x9c, 0x0b, 0x28, 0xf3, 0x39, 0x96, 0x45, 0x8f, 0xb9, 0x85, 0x3e, 0x61,
+ 0x5e, 0xa4, 0x53, 0x19, 0x46, 0x8b, 0xb7, 0x73, 0x79, 0xf0, 0x06, 0xe6,
+ 0x2b, 0xdc, 0x48, 0x77, 0x73, 0xd4, 0x7e, 0x60, 0xb3, 0x0e, 0x8f, 0x3d,
+ 0x68, 0xdf, 0x89, 0xb3, 0x56, 0xaa, 0x43, 0x88, 0x7f, 0x17, 0x1c, 0x9c,
+ 0xa9, 0xba, 0xd2, 0x0b, 0x27, 0x18, 0xa3, 0x13, 0xbe, 0x39, 0x63, 0xb2,
+ 0x94, 0xb6, 0xa3, 0xdc, 0x17, 0xa2, 0x15, 0xd5, 0x4f, 0x69, 0x23, 0xe3,
+ 0x47, 0x76, 0x47, 0x6b, 0x67, 0xc9, 0xb0, 0x49, 0xf4, 0xba, 0x19, 0x0f,
+ 0xec, 0x13, 0xf7, 0x19, 0x79, 0xa4, 0x6b, 0x6a, 0xa8, 0xde, 0x04, 0x51,
+ 0x98, 0xe8, 0x11, 0x16, 0xd7, 0x4e, 0x21, 0x3b, 0x23, 0xd9, 0xa9, 0x4e,
+ 0xaa, 0x9d, 0xb3, 0x43, 0xf0, 0x47, 0xc3, 0x17, 0x8c, 0xb4, 0xf1, 0xc7,
+ 0xd3, 0x3e, 0xd2, 0xb2, 0xf3, 0xc5, 0x03, 0x6d, 0xba, 0x7b, 0xa1, 0xb4,
+ 0xcc, 0x51, 0xb7, 0xd1, 0xad, 0x40, 0x73, 0xb6, 0xe6, 0x42, 0x5f, 0x66,
+ 0xbe, 0x15, 0x0d, 0xef, 0xeb, 0x47, 0xf8, 0xb2, 0xf0, 0x0f, 0x52, 0xb7,
+ 0x20, 0x64, 0x2e, 0x04, 0xf9, 0xbf, 0x9d, 0xac, 0x0c, 0x39, 0x2d, 0x0d,
+ 0xde, 0xe2, 0xa8, 0x47, 0x93, 0xd5, 0x4a, 0x3c, 0x76, 0xfa, 0x77, 0xc5,
+ 0x09, 0x91, 0x7e, 0x35, 0x72, 0x74, 0x0c, 0x09, 0xa1, 0x36, 0x12, 0x48,
+ 0xbc, 0x1d, 0xf5, 0x21, 0xbd, 0x51, 0xb5, 0xd2, 0x6f, 0x10, 0x38, 0x8e,
+ 0x93, 0x90, 0x2f, 0xf6, 0x57, 0xea, 0x60, 0x28, 0x22, 0x97, 0x62, 0x24,
+ 0x22, 0xd3, 0x41, 0x50, 0xc7, 0x1e, 0x89, 0x53, 0xd0, 0xe0, 0x70, 0x25,
+ 0xc0, 0x2a, 0xe6, 0x79, 0x1a, 0x2b, 0xf6, 0x8a, 0x29, 0xfb, 0x4c, 0x2a,
+ 0x03, 0xef, 0x17, 0x12, 0xcb, 0xee, 0xa5, 0xbf, 0x22, 0x3d, 0x0f, 0x1d,
+ 0x3a, 0x6e, 0x84, 0xeb, 0x53, 0x74, 0x9a, 0xdc, 0x87, 0xa0, 0xfb, 0x17,
+ 0x7d, 0x2f, 0x30, 0x1e, 0x35, 0x72, 0x0d, 0x97, 0xf8, 0xf0, 0xa1, 0xe9,
+ 0xd7, 0x73, 0xfc, 0x76, 0x65, 0xdd, 0xeb, 0x5b, 0xd5, 0x91, 0x57, 0xb3,
+ 0xda, 0xcd, 0xf0, 0xef, 0x85, 0xd4, 0xc4, 0xbd, 0x3f, 0x7e, 0x0a, 0xfe,
+ 0x43, 0x66, 0x21, 0xcb, 0x90, 0xb7, 0x8e, 0xc6, 0xbf, 0x80, 0x5c, 0xbe,
+ 0x16, 0x46, 0xfc, 0x5c, 0x89, 0x04, 0xb3, 0x28, 0xed, 0x7d, 0xb0, 0x47,
+ 0x60, 0x0b, 0x59, 0x5e, 0x05, 0xd3, 0x7e, 0x7b, 0x12, 0x32, 0x2a, 0xc7,
+ 0x05, 0x73, 0xf4, 0x0e, 0x2e, 0x5b, 0xda, 0xf8, 0x76, 0xe2, 0x50, 0x20,
+ 0x6d, 0x98, 0x69, 0x64, 0x4b, 0xc7, 0xaa, 0x31, 0x37, 0x6e, 0x3f, 0xbd,
+ 0xa1, 0x88, 0x74, 0x91, 0x1e, 0xce, 0x21, 0x50, 0x6a, 0xc4, 0x44, 0x76,
+ 0x7b, 0x55, 0xa1, 0x5e, 0x85, 0xf7, 0xed, 0xe2, 0x37, 0x03, 0xc3, 0x7a,
+ 0x43, 0x2c, 0x36, 0x24, 0x8b, 0x1c, 0xe7, 0x17, 0xbd, 0x51, 0x8d, 0xcf,
+ 0x6d, 0x12, 0xaa, 0x75, 0x07, 0x71, 0x0a, 0xff, 0x79, 0x83, 0x1f, 0x6a,
+ 0x00, 0x79, 0x09, 0x6b, 0xdb, 0x27, 0x41, 0x0a, 0x79, 0xb9, 0x6f, 0x25,
+ 0x9f, 0x83, 0x8c, 0x4e, 0xda, 0xc8, 0x97, 0x29, 0x97, 0xed, 0x17, 0x95,
+ 0xea, 0x0a, 0x3d, 0x18, 0xac, 0xec, 0x4d, 0x6c, 0xb8, 0x1f, 0xf7, 0xb4,
+ 0x66, 0x15, 0x7d, 0xca, 0x0c, 0xf8, 0xe7, 0xcb, 0xe4, 0x1c, 0xc6, 0xc7,
+ 0x9a, 0xfc, 0x0f, 0x7d, 0xd5, 0x9e, 0x71, 0x4b, 0xbe, 0xc4, 0x6c, 0x91,
+ 0xd7, 0x5a, 0x40, 0xb8, 0x4f, 0x75, 0x43, 0xfd, 0x22, 0x6b, 0x27, 0x9b,
+ 0x98, 0x5f, 0xc0, 0xf3, 0x9f, 0x9e, 0x72, 0xa9, 0x66, 0xa1, 0x5a, 0xc0,
+ 0x64, 0x7a, 0xd6, 0xff, 0xbe, 0xc3, 0xd0, 0xc7, 0xea, 0xcd, 0xe8, 0xb2,
+ 0x9b, 0xef, 0x24, 0xce, 0x9c, 0x8c, 0x8a, 0x95, 0xc1, 0x50, 0x9d, 0xc2,
+ 0x0b, 0x53, 0xaf, 0xa1, 0x96, 0x81, 0x1e, 0x93, 0xfd, 0xb7, 0x7e, 0xff,
+ 0xeb, 0xa9, 0xf7, 0x23, 0xfb, 0x99, 0x63, 0x25, 0x87, 0xf7, 0x8e, 0x46,
+ 0x62, 0x8e, 0xab, 0x02, 0x82, 0x8f, 0x56, 0xbe, 0x05, 0x47, 0xd3, 0x77,
+ 0xde, 0x33, 0xd9, 0x70, 0x4e, 0x1d, 0x5c, 0x6b, 0xa3, 0x20, 0x06, 0x52,
+ 0x22, 0x13, 0xc4, 0xba, 0x80, 0x00, 0x0d, 0x04, 0x00, 0x00, 0x98, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x14, 0x00, 0x03, 0x10, 0x20,
+ 0x00, 0x1c, 0x00, 0xbe, 0xb7, 0x6a, 0xff, 0xe1, 0xfe, 0x27, 0x8d, 0x7b,
+ 0xa3, 0xa0, 0x07, 0x46, 0xd7, 0xac, 0x9e, 0x68, 0x14, 0xc1, 0x8d, 0xe4,
+ 0x6e, 0x87, 0xf8, 0x34, 0x2a, 0xde, 0x4c, 0x47, 0xc5, 0x59, 0x12, 0x33,
+ 0xf5, 0x37, 0x28, 0xea, 0xa3, 0xc3, 0xc1, 0x51, 0x5e, 0xe7, 0xf0, 0x6a,
+ 0x42, 0x5a, 0x54, 0xa9, 0xb2, 0x3e, 0x2f, 0x78, 0x0e, 0xea, 0x93, 0x94,
+ 0x52, 0xf8, 0xed, 0x6a, 0x67, 0xe9, 0x6d, 0x27, 0x91, 0xe6, 0xd0, 0x67,
+ 0x15, 0xed, 0x5d, 0x12, 0x4a, 0x4b, 0x74, 0x23, 0x8e, 0x8a, 0x0c, 0xd1,
+ 0xbc, 0x7a, 0xea, 0x59, 0x83, 0x81, 0xc1, 0x2f, 0x4a, 0x99, 0x22, 0x33,
+ 0xf2, 0xcf, 0x50, 0x80, 0x7a, 0x44, 0xc0, 0xa3, 0x9e, 0x2e, 0x9c, 0xb1,
+ 0x26, 0xf9, 0x7b, 0x1e, 0x62, 0x80, 0xf0, 0xb9, 0x64, 0xc6, 0x8b, 0x7a,
+ 0x6c, 0xdc, 0xfe, 0xd2, 0x18, 0x5e, 0x82, 0x6e, 0x0a, 0xae, 0x17, 0xd9,
+ 0xc0, 0x02, 0x89, 0x26, 0x42, 0x58, 0xe9, 0x53, 0xa1, 0x4c, 0x84, 0xb1,
+ 0xe2, 0x72, 0xae, 0xe2, 0x20, 0xc5, 0x43, 0x11, 0xcb, 0x9a, 0x2c, 0xfe,
+ 0xdc, 0xa1, 0x92, 0xe5, 0xa2, 0xb8, 0xb2, 0xed, 0x24, 0xcc, 0x1f, 0x7e,
+ 0x1f, 0x4a, 0xd9, 0x62, 0xa4, 0x06, 0x19, 0xa6, 0x14, 0x03, 0xe2, 0xe0,
+ 0xb4, 0x3a, 0xd4, 0x5f, 0xd7, 0x77, 0xbe, 0x03, 0xf5, 0xdb, 0xd9, 0x2f,
+ 0xe7, 0x11, 0x95, 0x10, 0xb0, 0x10, 0x82, 0x27, 0xca, 0xdf, 0xf2, 0xe4,
+ 0x48, 0x15, 0x2e, 0xee, 0xd9, 0xa1, 0x0c, 0x1b, 0x0e, 0x94, 0x8f, 0x60,
+ 0x8f, 0xd8, 0xa6, 0xbe, 0xed, 0x64, 0x07, 0x2c, 0xa7, 0xb9, 0x7c, 0x78,
+ 0x85, 0x95, 0x95, 0xdd, 0xfb, 0xaa, 0x63, 0x9d, 0xb5, 0x0d, 0x52, 0x7f,
+ 0x1d, 0x07, 0xf8, 0x92, 0x78, 0x47, 0xe4, 0xa9, 0xd1, 0x25, 0x02, 0x47,
+ 0x26, 0x1b, 0x6d, 0x83, 0x88, 0x1c, 0xf6, 0x01, 0xf6, 0x0f, 0xac, 0xe6,
+ 0x41, 0x1f, 0x58, 0x11, 0xd3, 0x83, 0xb9, 0x17, 0xd8, 0x99, 0x32, 0x88,
+ 0x29, 0xce, 0x29, 0xd8, 0xe8, 0x6d, 0xf9, 0x61, 0xd3, 0x06, 0x74, 0xe2,
+ 0xa1, 0xd6, 0x89, 0x0e, 0xf1, 0x09, 0xb0, 0xc6, 0xcd, 0xa3, 0x71, 0x6e,
+ 0x42, 0xb7, 0x88, 0xdf, 0x87, 0xc6, 0xe7, 0x9d, 0x4d, 0x27, 0x17, 0xb1,
+ 0xa6, 0x7c, 0x32, 0xc7, 0x1c, 0xf4, 0x75, 0x48, 0x5d, 0x84, 0xbb, 0x99,
+ 0x37, 0x1f, 0xb5, 0xb4, 0x3c, 0xab, 0xf8, 0x46, 0x2e, 0xb5, 0x05, 0x54,
+ 0x94, 0x28, 0x88, 0x4b, 0x1a, 0x88, 0x9c, 0xb7, 0x27, 0xab, 0x0d, 0xba,
+ 0x8d, 0x2c, 0x6f, 0xd6, 0xfd, 0xf4, 0xab, 0x27, 0x0a, 0xb8, 0x9a, 0x9e,
+ 0x2d, 0xb4, 0x7a, 0x2e, 0x23, 0x5f, 0x0f, 0x35, 0xc3, 0x43, 0xfd, 0x9e,
+ 0x64, 0x04, 0x1b, 0x55, 0x6f, 0x3c, 0xb1, 0x86, 0xdf, 0x4e, 0x2c, 0x5e,
+ 0x97, 0x9d, 0x78, 0xab, 0xa4, 0xa1, 0x70, 0x75, 0x65, 0x92, 0x9c, 0xbc,
+ 0x96, 0x66, 0x2e, 0x33, 0x95, 0x54, 0xdb, 0xcb, 0x8f, 0x53, 0x1c, 0x74,
+ 0x49, 0x34, 0x2e, 0x7c, 0x4d, 0x59, 0x03, 0x3e, 0xf2, 0x25, 0xd0, 0xf0,
+ 0xc2, 0xc0, 0x7b, 0xfe, 0xcb, 0x9a, 0x76, 0x13, 0xc5, 0x33, 0x0e, 0x00,
+ 0x76, 0x66, 0x69, 0xf9, 0x45, 0x53, 0xae, 0x0e, 0xc7, 0xe1, 0xde, 0x56,
+ 0x31, 0x3e, 0x80, 0xb4, 0xda, 0x4a, 0x63, 0x3c, 0x4f, 0x25, 0x58, 0x6f,
+ 0x5c, 0x27, 0xd9, 0xed, 0xbc, 0x9f, 0xca, 0xb3, 0xd0, 0xfa, 0x78, 0xb0,
+ 0x9d, 0xe4, 0xf3, 0x85, 0x4c, 0x1d, 0xc3, 0x1e, 0x06, 0x0b, 0xf9, 0x53,
+ 0xab, 0x9e, 0xa8, 0xf1, 0xd3, 0x68, 0x79, 0x0b, 0xad, 0xcc, 0xd9, 0x35,
+ 0x5d, 0xeb, 0xdb, 0x83, 0x65, 0x99, 0xbe, 0xf2, 0xb1, 0x77, 0x1e, 0xdf,
+ 0x18, 0x19, 0x5a, 0x62, 0x12, 0x77, 0xe8, 0xb7, 0x06, 0xef, 0xd2, 0x9e,
+ 0xcb, 0x2d, 0xbe, 0x16, 0x8b, 0x20, 0xae, 0x07, 0xfc, 0xde, 0xdf, 0xe9,
+ 0x67, 0x32, 0xbb, 0xbb, 0xb4, 0xea, 0x5b, 0xb4, 0x5e, 0xe8, 0x29, 0x5d,
+ 0xf2, 0x12, 0x61, 0xd3, 0xb7, 0x8b, 0xc0, 0xfe, 0x7d, 0x62, 0x5d, 0x79,
+ 0x56, 0xbb, 0xbb, 0x23, 0xff, 0xe2, 0x1e, 0xb4, 0x69, 0xe6, 0x41, 0xb9,
+ 0x54, 0xb6, 0xf7, 0xbe, 0x32, 0x3a, 0x0c, 0x9c, 0x7d, 0xd3, 0xdc, 0x4b,
+ 0x46, 0x3b, 0x48, 0xd5, 0x38, 0x8c, 0x52, 0x1f, 0x08, 0xaa, 0xa8, 0x4e,
+ 0x05, 0xc4, 0xf1, 0x8d, 0x54, 0x80, 0xc0, 0xba, 0x4f, 0x3e, 0xd5, 0x96,
+ 0x3c, 0x44, 0xd8, 0x43, 0xff, 0xce, 0x39, 0x20, 0x35, 0x5f, 0x6b, 0x79,
+ 0x71, 0x06, 0x28, 0x5a, 0x45, 0x03, 0xa0, 0xa2, 0x36, 0xe3, 0xc7, 0x94,
+ 0xfd, 0x88, 0x3f, 0x49, 0x26, 0x8b, 0x40, 0x58, 0x30, 0xc9, 0x1d, 0xc1,
+ 0xa9, 0x3a, 0x46, 0xae, 0x38, 0xf6, 0xcd, 0x45, 0xaf, 0xce, 0xd7, 0xa2,
+ 0x36, 0x9a, 0xf6, 0xad, 0xf7, 0x1a, 0xfe, 0xba, 0xad, 0xbf, 0x8a, 0xc0,
+ 0xb5, 0xd8, 0x1a, 0x01, 0xba, 0x71, 0xf1, 0x2c, 0x93, 0x90, 0xb4, 0xa1,
+ 0xc3, 0xfd, 0x4b, 0x48, 0x39, 0x03, 0x7a, 0x55, 0x79, 0x8f, 0x58, 0xab,
+ 0xea, 0x23, 0x7e, 0xda, 0x02, 0xde, 0xe6, 0x00, 0x56, 0xf3, 0xc6, 0x07,
+ 0x92, 0x92, 0xda, 0xd3, 0x24, 0x79, 0x38, 0xe3, 0x2a, 0x2c, 0x8f, 0x98,
+ 0x9e, 0x8e, 0x4c, 0x24, 0x92, 0x58, 0x37, 0x17, 0xed, 0xe6, 0x13, 0x9b,
+ 0xe2, 0x66, 0x4b, 0x87, 0x47, 0x90, 0xa4, 0x25, 0xc9, 0x92, 0xeb, 0xc3,
+ 0xf0, 0xba, 0x1b, 0x32, 0xca, 0x2d, 0x47, 0xfe, 0x43, 0xf8, 0xb8, 0x39,
+ 0xd2, 0x6f, 0x6f, 0x89, 0x75, 0xfe, 0xd6, 0x05, 0x1b, 0x3b, 0x5f, 0xd3,
+ 0xf4, 0x4e, 0x13, 0x76, 0x19, 0x37, 0x62, 0x10, 0xd9, 0xb3, 0x23, 0xc6,
+ 0x61, 0x0d, 0x23, 0x14, 0xc1, 0xf4, 0xd7, 0x38, 0x9f, 0x48, 0x39, 0x32,
+ 0x8d, 0xe7, 0x32, 0x78, 0xea, 0x99, 0xf0, 0x9e, 0xf7, 0x2b, 0xf3, 0x38,
+ 0x5e, 0x23, 0xee, 0x69, 0x69, 0xb6, 0x44, 0xf5, 0x83, 0x4a, 0xc3, 0x2c,
+ 0x6d, 0x54, 0x2b, 0xdf, 0x49, 0xb3, 0x89, 0x8d, 0xee, 0xee, 0xcd, 0xed,
+ 0x7a, 0xab, 0xd5, 0xfd, 0x7c, 0x2a, 0xe8, 0x11, 0x59, 0x42, 0x50, 0x83,
+ 0x45, 0xd1, 0xa6, 0x07, 0x15, 0x76, 0x4c, 0x6d, 0x7e, 0x9a, 0xc6, 0x8f,
+ 0xc7, 0xeb, 0x3b, 0xf2, 0xa0, 0xdd, 0x3b, 0xe2, 0x6c, 0x32, 0xe2, 0x4b,
+ 0xd2, 0x96, 0x5d, 0x98, 0x5f, 0x23, 0xf1, 0xcf, 0xa9, 0x4c, 0x0f, 0x4f,
+ 0xe7, 0xcb, 0xbf, 0x6b, 0xc4, 0x24, 0x97, 0x85, 0xf3, 0xc5, 0x90, 0x2d,
+ 0x1f, 0x58, 0xea, 0x47, 0xec, 0x0e, 0xf4, 0xfc, 0x2b, 0x0b, 0xa6, 0x66,
+ 0xde, 0x37, 0x09, 0x9e, 0xf9, 0x71, 0x6e, 0x36, 0x42, 0x42, 0x55, 0x0a,
+ 0xed, 0x11, 0x79, 0x43, 0x27, 0xee, 0x10, 0x86, 0x61, 0x49, 0x63, 0x95,
+ 0x1e, 0x3e, 0xef, 0x02, 0xee, 0x11, 0xf1, 0x47, 0x7b, 0x69, 0xc2, 0x0a,
+ 0x83, 0x81, 0xb0, 0xb2, 0x6b, 0x9d, 0x42, 0xd9, 0x4d, 0x7b, 0x16, 0x2f,
+ 0xc0, 0xb3, 0x03, 0x7f, 0x04, 0xce, 0x67, 0xf7, 0x2b, 0x27, 0xdf, 0x92,
+ 0xa7, 0xe7, 0xb7, 0x2c, 0x25, 0xf7, 0x04, 0x15, 0x6f, 0x72, 0x52, 0xfd,
+ 0xb3, 0x0d, 0x5f, 0x80, 0x00, 0xe5, 0x84, 0xbe, 0xe0, 0x82, 0xad, 0xee,
+ 0x4a, 0x5f, 0xb6, 0x61, 0xab, 0xf0, 0x00, 0x1c, 0xb0, 0x97, 0xdc, 0x10,
+ 0x55, 0xbd, 0xc9, 0x4b, 0xd3, 0xdf, 0xee, 0x21, 0x7f, 0xfb, 0x24, 0x76,
+ 0xb9, 0xcb, 0x05, 0x13, 0x25, 0xe8, 0xcd, 0xa3, 0x87, 0xaf, 0x4e, 0x69,
+ 0xaf, 0x96, 0x5b, 0x21, 0x0e, 0x4a, 0x96, 0xa2, 0x8b, 0x91, 0xa0, 0x5c,
+ 0xca, 0x7f, 0x79, 0x2f, 0x62, 0xaa, 0x8b, 0x64, 0xad, 0xe8, 0x00, 0xdf,
+ 0x03, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31,
+ 0x15, 0x00, 0x02, 0x10, 0x20, 0x00, 0x18, 0x01, 0x60, 0xd7, 0xff, 0x0e,
+ 0xd6, 0xd4, 0xf9, 0x6b, 0xac, 0x67, 0x1f, 0x08, 0x9e, 0xe0, 0x1e, 0x14,
+ 0x9f, 0x54, 0xcf, 0xd4, 0xbe, 0xec, 0x1b, 0xb6, 0x7c, 0x39, 0x29, 0x50,
+ 0x58, 0x08, 0x37, 0xa8, 0x12, 0x80, 0xde, 0x19, 0x89, 0xe4, 0x16, 0x5a,
+ 0xc4, 0x92, 0x28, 0xed, 0xc8, 0x06, 0xfe, 0x31, 0xe4, 0x0f, 0xf6, 0x39,
+ 0xbd, 0xca, 0x5c, 0xa8, 0x45, 0x39, 0x42, 0x75, 0x09, 0x9a, 0xd7, 0xab,
+ 0x1e, 0x81, 0x8d, 0xc2, 0x81, 0x1a, 0x8d, 0x42, 0x8c, 0x48, 0x41, 0x1e,
+ 0x16, 0xae, 0x83, 0x6f, 0x86, 0x3d, 0xa5, 0xb3, 0xcf, 0xd7, 0xd4, 0x78,
+ 0x1d, 0x75, 0x30, 0x99, 0x32, 0xac, 0x0d, 0x70, 0x08, 0x0c, 0x51, 0xcc,
+ 0xb7, 0xa8, 0x0b, 0xf5, 0xda, 0xbc, 0x65, 0x45, 0x2a, 0x4c, 0x3e, 0x00,
+ 0xb3, 0x03, 0xe1, 0xd8, 0x47, 0xa2, 0x7e, 0xdd, 0xc7, 0x88, 0x43, 0x1a,
+ 0x1d, 0x2a, 0xf6, 0xa5, 0x6b, 0x8d, 0x28, 0xab, 0x6b, 0x63, 0x17, 0xd9,
+ 0x38, 0x20, 0x8b, 0xbf, 0xb0, 0x6f, 0x71, 0xc1, 0x5f, 0xda, 0x1a, 0x16,
+ 0xd8, 0x6d, 0xca, 0xa0, 0xaf, 0xe8, 0x4c, 0x7f, 0x31, 0x5b, 0x4b, 0x2d,
+ 0xa3, 0x26, 0x00, 0xed, 0x24, 0x74, 0xa7, 0xa6, 0xc2, 0xfa, 0xfd, 0x6a,
+ 0x0a, 0x2c, 0x6c, 0xdb, 0xbd, 0x78, 0x9c, 0x10, 0xf9, 0x64, 0xd5, 0xa8,
+ 0x97, 0x7f, 0x11, 0xb8, 0x38, 0x33, 0x09, 0x04, 0x0d, 0x49, 0xd6, 0x40,
+ 0x71, 0xd7, 0x05, 0x9d, 0xbb, 0xe7, 0x37, 0x96, 0x59, 0xaa, 0x0d, 0x66,
+ 0x1a, 0xa8, 0x49, 0x76, 0x3e, 0xf8, 0x3d, 0x84, 0x87, 0x41, 0x23, 0x89,
+ 0x19, 0x99, 0x88, 0x59, 0x64, 0xe0, 0x0d, 0x60, 0x0c, 0xbe, 0xe4, 0xb2,
+ 0xd2, 0x6d, 0xa3, 0xbc, 0x76, 0x5b, 0x36, 0x07, 0xb0, 0x53, 0x82, 0x58,
+ 0x51, 0xe0, 0xce, 0xb6, 0x1b, 0x0f, 0x26, 0x30, 0xae, 0xc0, 0xdb, 0x32,
+ 0x11, 0xd8, 0x77, 0x17, 0xc1, 0x10, 0x5b, 0x92, 0x57, 0xf7, 0x51, 0x3d,
+ 0x75, 0x4e, 0x7c, 0x4b, 0x59, 0x0c, 0xe0, 0xb9, 0x63, 0xf2, 0x21, 0x89,
+ 0x9a, 0xbf, 0xf9, 0x4a, 0x04, 0xc6, 0xbb, 0x46, 0xbc, 0xff, 0xab, 0xb1,
+ 0x4b, 0x83, 0xb7, 0x0b, 0xd3, 0x8d, 0xe8, 0xcd, 0x71, 0x69, 0xd6, 0x2e,
+ 0x2c, 0x54, 0xcb, 0x03, 0xdd, 0x6a, 0xe5, 0x12, 0xf9, 0xfe, 0x8c, 0x49,
+ 0x65, 0xea, 0x9a, 0x00, 0xb5, 0xf9, 0x14, 0x0d, 0x1c, 0x9e, 0x01, 0x04,
+ 0x57, 0x6c, 0x32, 0x8c, 0x3c, 0xe1, 0x36, 0x83, 0x61, 0xc6, 0x65, 0x07,
+ 0x12, 0xde, 0x38, 0x71, 0x7b, 0x81, 0x94, 0x6f, 0x04, 0x32, 0xbd, 0x77,
+ 0xb6, 0xc9, 0x9f, 0x22, 0xf2, 0xed, 0x56, 0x9f, 0xe2, 0x02, 0xd4, 0xf2,
+ 0x0c, 0x05, 0x3d, 0xf9, 0xa9, 0x5a, 0xfa, 0x75, 0xae, 0xe5, 0x3f, 0xcb,
+ 0x4d, 0xb7, 0x85, 0xe5, 0x59, 0xc4, 0xbe, 0x6a, 0xb1, 0x30, 0x8e, 0x0c,
+ 0x19, 0xa3, 0x80, 0x7e, 0xca, 0xca, 0x52, 0x1a, 0xdf, 0x6f, 0xd7, 0x34,
+ 0x2e, 0x34, 0xdb, 0xae, 0x02, 0x54, 0xc7, 0x3e, 0x79, 0x27, 0x4f, 0xfd,
+ 0xdc, 0xe7, 0x43, 0x1c, 0x76, 0xf6, 0x6b, 0x57, 0x78, 0xe9, 0xcc, 0x73,
+ 0x59, 0x2a, 0x6f, 0x1c, 0xd4, 0x5b, 0xbd, 0xe9, 0xd9, 0x39, 0x2b, 0x44,
+ 0x23, 0x74, 0xb0, 0xaf, 0x3e, 0x8e, 0x01, 0xf1, 0x3f, 0x8e, 0x9e, 0x3b,
+ 0x34, 0x7b, 0xf7, 0xcb, 0x09, 0x6a, 0x4e, 0x74, 0x9d, 0xce, 0x9b, 0xe5,
+ 0xfc, 0xa5, 0x9f, 0x86, 0x01, 0x1e, 0xec, 0x4e, 0xe2, 0xb1, 0x68, 0x5c,
+ 0x36, 0xbe, 0x90, 0x38, 0x1f, 0x60, 0xa1, 0xc8, 0x11, 0xcc, 0x22, 0x7e,
+ 0x3f, 0xfe, 0x33, 0xc3, 0xb3, 0xa6, 0x91, 0x53, 0x66, 0x6a, 0x7a, 0xd8,
+ 0x23, 0x42, 0xd2, 0x58, 0xfc, 0xd8, 0x52, 0xb9, 0x0f, 0x30, 0x47, 0x80,
+ 0x65, 0xec, 0xde, 0x92, 0xd2, 0x32, 0x36, 0xd6, 0xb0, 0xf1, 0x3f, 0xcc,
+ 0xda, 0x5f, 0xbe, 0xd9, 0xc8, 0x6b, 0x9d, 0x22, 0xd8, 0x09, 0x51, 0xae,
+ 0xaf, 0xf9, 0xaa, 0x81, 0x1c, 0xc2, 0x77, 0xa5, 0xf9, 0xfd, 0xdc, 0xaa,
+ 0xbb, 0x7d, 0xe1, 0x5f, 0x1d, 0x1a, 0x86, 0x2a, 0x47, 0x42, 0xce, 0x3b,
+ 0xa2, 0x22, 0x36, 0xee, 0x79, 0x99, 0x25, 0xdb, 0x9c, 0x80, 0x36, 0xb5,
+ 0x81, 0x93, 0xe7, 0x99, 0x59, 0x33, 0x7e, 0x88, 0xab, 0x3b, 0x77, 0x4c,
+ 0xca, 0xbe, 0x3f, 0xa8, 0xbe, 0xb4, 0x7a, 0x1f, 0x17, 0xa6, 0xdd, 0xef,
+ 0x47, 0xe2, 0xb5, 0xc8, 0x0d, 0xc7, 0x6a, 0xa2, 0xab, 0x54, 0xce, 0x7b,
+ 0xc4, 0x95, 0xc7, 0xc2, 0x56, 0x6c, 0x90, 0xfe, 0x40, 0xa1, 0x8b, 0x65,
+ 0x50, 0xc5, 0xec, 0xdf, 0x5d, 0x78, 0x72, 0xc1, 0x4e, 0xe7, 0x5c, 0x50,
+ 0x23, 0x1e, 0xe7, 0xf0, 0xba, 0x61, 0x13, 0xd6, 0xbf, 0x73, 0x6e, 0x4a,
+ 0x11, 0x8a, 0x40, 0xcb, 0xf0, 0x47, 0x4c, 0x61, 0xc7, 0x73, 0x09, 0xb1,
+ 0xf3, 0x7e, 0x1e, 0xfd, 0xdc, 0x86, 0xaf, 0xa1, 0xb6, 0x24, 0xc2, 0x53,
+ 0x05, 0x51, 0x77, 0x3a, 0x0c, 0x19, 0xd3, 0x39, 0xf4, 0xe9, 0x06, 0x4c,
+ 0x98, 0xda, 0xf4, 0x87, 0xd1, 0x74, 0x6c, 0xdc, 0x43, 0xcc, 0x47, 0x61,
+ 0xe0, 0xdd, 0x1c, 0x22, 0x52, 0x3f, 0x59, 0xaf, 0xbb, 0xa5, 0xa2, 0xb9,
+ 0x27, 0x57, 0x9c, 0x62, 0xd8, 0xce, 0xee, 0xb1, 0x62, 0x06, 0x04, 0x4a,
+ 0x77, 0x77, 0x25, 0xb7, 0x71, 0x1b, 0x41, 0xb0, 0xee, 0x7f, 0x57, 0x33,
+ 0xc4, 0x28, 0x45, 0x5c, 0xc0, 0x85, 0x59, 0x3f, 0xdf, 0xad, 0x1f, 0x7c,
+ 0x70, 0xad, 0xaf, 0x51, 0x73, 0x04, 0x28, 0x87, 0x95, 0xfb, 0x1b, 0x91,
+ 0xeb, 0xc7, 0xfb, 0x04, 0x34, 0x9c, 0x93, 0x18, 0x1b, 0xe9, 0x0a, 0x72,
+ 0x33, 0x0f, 0x8d, 0x8f, 0x54, 0xf3, 0xe1, 0xac, 0xe5, 0x34, 0x99, 0xac,
+ 0x42, 0xf0, 0x48, 0xcc, 0xd6, 0x61, 0x0b, 0xdd, 0x50, 0x16, 0xb5, 0x4d,
+ 0x0d, 0xd9, 0x61, 0x48, 0x48, 0xf6, 0x1d, 0x45, 0xb5, 0xd6, 0xa0, 0x54,
+ 0x7c, 0x0d, 0x9d, 0x65, 0x5e, 0x05, 0x35, 0x46, 0x02, 0x64, 0x9c, 0xb5,
+ 0x1f, 0x9e, 0x22, 0x94, 0xef, 0x7c, 0xc8, 0x00, 0x88, 0x4b, 0x24, 0xfe,
+ 0x09, 0x9b, 0x5c, 0x1a, 0x47, 0x42, 0xe2, 0x37, 0x1a, 0xea, 0x7a, 0x4e,
+ 0xd1, 0x21, 0x9c, 0x81, 0xd3, 0xe2, 0xb1, 0xca, 0xa9, 0xf6, 0x62, 0x70,
+ 0xb4, 0xf8, 0xae, 0x84, 0x53, 0x34, 0x0a, 0x8b, 0x9b, 0x73, 0x0d, 0x35,
+ 0xf6, 0xe6, 0x30, 0x66, 0xdd, 0x80, 0x77, 0x56, 0xfe, 0xc6, 0x64, 0x39,
+ 0x0d, 0xc3, 0x62, 0x35, 0x29, 0x6c, 0x95, 0x48, 0x6c, 0xe8, 0xe1, 0xa0,
+ 0xdd, 0xe8, 0xfb, 0xc6, 0xe2, 0x1f, 0xd2, 0x6b, 0x94, 0x12, 0x4a, 0xbb,
+ 0x07, 0xbe, 0x24, 0x1c, 0x74, 0x1d, 0x0a, 0xb3, 0x3e, 0x1b, 0xe6, 0x62,
+ 0x1f, 0x2c, 0x5c, 0x40, 0x92, 0x06, 0xce, 0xbd, 0x3c, 0xbf, 0x81, 0x1b,
+ 0x41, 0x2b, 0xdc, 0xf7, 0x24, 0x32, 0x7a, 0x47, 0x1f, 0xeb, 0x8e, 0xb0,
+ 0xea, 0x66, 0x91, 0xa2, 0x88, 0x1e, 0x42, 0x1e, 0xc0, 0x0e, 0x8b, 0x4d,
+ 0xa1, 0x16, 0x92, 0xc6, 0x29, 0x36, 0x01, 0x5f, 0x57, 0x6c, 0xd9, 0x4f,
+ 0xc0, 0x75, 0xfd, 0xed, 0x4a, 0xd1, 0x06, 0x33, 0x43, 0xf7, 0x98, 0x0e,
+ 0xf3, 0xf0, 0xa7, 0x59, 0xd0, 0x22, 0x00, 0x2a, 0xfb, 0xe8, 0x2d, 0xf4,
+ 0x54, 0x80, 0x67, 0xbd, 0x24, 0xc0, 0x0f, 0x06, 0x00, 0x00, 0x9a, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x1c, 0x00, 0x00, 0x10, 0x10,
+ 0x00, 0x1e, 0xcc, 0x4b, 0x46, 0xce, 0x0a, 0xd6, 0x66, 0x9d, 0xec, 0xbc,
+ 0x52, 0x07, 0x48, 0x09, 0xac, 0x7a, 0x52, 0x82, 0x19, 0x16, 0x59, 0xfc,
+ 0xbf, 0x96, 0x59, 0xda, 0x42, 0xcc, 0xe4, 0xd6, 0x7b, 0xed, 0x94, 0xf0,
+ 0xe0, 0xb6, 0xd6, 0xd6, 0x70, 0x36, 0x29, 0x61, 0x4c, 0x38, 0xa1, 0xc8,
+ 0xcc, 0x06, 0x95, 0xe2, 0xdf, 0x59, 0x73, 0x37, 0xbf, 0xc8, 0x9d, 0x95,
+ 0x3c, 0x08, 0xb2, 0x9e, 0x0f, 0x8a, 0xb2, 0x85, 0x1f, 0x62, 0x83, 0x4e,
+ 0x15, 0x47, 0xbd, 0xc1, 0xa4, 0x13, 0xce, 0x4f, 0xed, 0x04, 0xdc, 0x0f,
+ 0x79, 0xb7, 0x3e, 0x91, 0xdb, 0x1c, 0x2c, 0x9c, 0x70, 0x0c, 0x48, 0x65,
+ 0xd6, 0xff, 0x5d, 0x3d, 0xfc, 0x8a, 0x80, 0x25, 0x97, 0xbe, 0x23, 0xe4,
+ 0x20, 0xc0, 0x04, 0xc4, 0x22, 0x08, 0x0f, 0xe4, 0x0c, 0x44, 0x4f, 0x46,
+ 0x1e, 0x38, 0xa5, 0xd0, 0x0a, 0x84, 0x54, 0x3c, 0xa5, 0xe5, 0x47, 0x37,
+ 0x1a, 0x6c, 0x7d, 0xff, 0xff, 0x77, 0xb5, 0x69, 0xea, 0xaa, 0x6a, 0x40,
+ 0x6f, 0x7d, 0xe5, 0x3d, 0x7c, 0xec, 0x61, 0x5f, 0x9e, 0xe9, 0xb4, 0x75,
+ 0x54, 0xd3, 0x20, 0xd4, 0x48, 0x77, 0x42, 0xac, 0x49, 0x25, 0xbf, 0x22,
+ 0x02, 0x46, 0xaa, 0xf3, 0x77, 0xbf, 0x76, 0xe6, 0xd8, 0x81, 0xc6, 0x50,
+ 0x10, 0x4e, 0xe2, 0xe5, 0x9f, 0x57, 0x4f, 0x51, 0xce, 0xdd, 0xb9, 0xb6,
+ 0x20, 0x71, 0x94, 0x04, 0x13, 0xb8, 0xc0, 0x38, 0x48, 0x7d, 0xa3, 0xd1,
+ 0xee, 0x75, 0x34, 0xe3, 0x6f, 0xcb, 0x67, 0x29, 0xfd, 0x31, 0x7f, 0x98,
+ 0x2b, 0x75, 0xc2, 0x0d, 0xc0, 0x7d, 0x40, 0xdd, 0x3e, 0x63, 0x35, 0x31,
+ 0x29, 0x6f, 0xc6, 0xfa, 0xf4, 0xfe, 0x57, 0x38, 0xeb, 0xdf, 0x9f, 0x97,
+ 0x8b, 0xe6, 0x7a, 0xb4, 0x1e, 0x77, 0x8a, 0x05, 0x32, 0xed, 0xf9, 0x6c,
+ 0x0f, 0xf1, 0x54, 0x96, 0x54, 0x9e, 0x47, 0x05, 0x05, 0x19, 0xc0, 0xc3,
+ 0xc0, 0x8d, 0xd8, 0x50, 0x3a, 0xf2, 0xc2, 0xb3, 0x6b, 0x6b, 0x39, 0xe2,
+ 0x3e, 0xe1, 0x93, 0x61, 0xdf, 0x71, 0x2c, 0xb5, 0x36, 0x2e, 0x28, 0x67,
+ 0x4b, 0x26, 0x2c, 0x84, 0xf2, 0x0c, 0x88, 0xf3, 0xbd, 0x8a, 0x08, 0xbf,
+ 0xfa, 0x68, 0x0a, 0x38, 0x34, 0x8c, 0x4d, 0xa7, 0xb6, 0x1e, 0xac, 0xb7,
+ 0x96, 0x98, 0xb4, 0x9a, 0xce, 0xad, 0x27, 0x82, 0x91, 0x3b, 0x2b, 0x46,
+ 0x55, 0x4d, 0x70, 0x26, 0x09, 0xb5, 0xfd, 0x57, 0x1d, 0x2b, 0x5c, 0x27,
+ 0xe0, 0xb8, 0x66, 0x0c, 0x2a, 0x78, 0xd5, 0x89, 0x3f, 0x16, 0xda, 0xff,
+ 0xc0, 0x28, 0x11, 0xe1, 0x91, 0x8c, 0x60, 0xf0, 0xcb, 0x00, 0x3e, 0x91,
+ 0xef, 0xb2, 0x39, 0x60, 0x57, 0xaa, 0x65, 0x17, 0x28, 0x23, 0x2d, 0x90,
+ 0x10, 0x48, 0x4a, 0xbe, 0xe5, 0x8a, 0xdc, 0x3f, 0xd1, 0xed, 0x05, 0x5e,
+ 0x32, 0x03, 0x0f, 0x55, 0xba, 0x60, 0xce, 0xc0, 0x75, 0xc4, 0x80, 0xd3,
+ 0xd9, 0xc2, 0x88, 0x43, 0xd9, 0xe0, 0x23, 0xb7, 0xaa, 0x04, 0xa1, 0xfe,
+ 0x06, 0xad, 0xe8, 0x2e, 0x99, 0x34, 0x24, 0xe7, 0x8c, 0xb3, 0x73, 0x8d,
+ 0x76, 0x52, 0xd0, 0x10, 0xdb, 0x4a, 0x73, 0x69, 0xa0, 0xdc, 0x1a, 0x73,
+ 0x8d, 0x33, 0xee, 0xa0, 0xa4, 0x46, 0xb9, 0x67, 0x3e, 0xd5, 0x70, 0x4a,
+ 0xb6, 0xf9, 0xe2, 0x77, 0x2c, 0x88, 0x97, 0x26, 0xdf, 0x21, 0xac, 0x5c,
+ 0x0e, 0x4a, 0xe4, 0xa9, 0x84, 0x91, 0x72, 0xbf, 0xb4, 0xa8, 0x92, 0xdd,
+ 0xfb, 0x98, 0xf6, 0x18, 0x7c, 0x90, 0x20, 0x74, 0xff, 0x68, 0x09, 0x40,
+ 0x69, 0xd4, 0x9b, 0x39, 0x00, 0xf5, 0x93, 0x6c, 0x76, 0x3a, 0x39, 0x59,
+ 0x32, 0x9b, 0x9a, 0x55, 0x56, 0x8d, 0x5a, 0x93, 0x82, 0xf8, 0x99, 0x28,
+ 0xba, 0x51, 0xf3, 0x5b, 0xf4, 0xa2, 0x09, 0xd6, 0xe4, 0x60, 0x20, 0xb7,
+ 0x95, 0x30, 0x7b, 0x11, 0x6c, 0x6c, 0x28, 0x67, 0x36, 0x20, 0x41, 0xe4,
+ 0xed, 0x08, 0xf3, 0xd1, 0x14, 0xfa, 0xd8, 0xf7, 0x1c, 0xb9, 0x93, 0x5f,
+ 0xba, 0x00, 0xfd, 0xcf, 0x64, 0x6e, 0x50, 0x19, 0x54, 0x9f, 0x1a, 0x9f,
+ 0x34, 0xc6, 0x11, 0x22, 0xb1, 0xd9, 0x4b, 0x25, 0xe4, 0x78, 0x70, 0xc6,
+ 0x72, 0x8d, 0x7e, 0x9e, 0xe9, 0xf9, 0x85, 0x0c, 0x39, 0xd9, 0x3b, 0x9a,
+ 0xe0, 0x99, 0xf7, 0xaa, 0x6a, 0xd8, 0xd1, 0x77, 0xd0, 0x31, 0xc5, 0x77,
+ 0x9b, 0xcf, 0xa6, 0xbf, 0x89, 0xca, 0x3b, 0xa7, 0x0a, 0x7f, 0x2a, 0x20,
+ 0xfd, 0x04, 0x6a, 0x90, 0x87, 0xad, 0x91, 0xdf, 0xcc, 0x1b, 0xe6, 0x1e,
+ 0xcd, 0x17, 0x56, 0x94, 0xae, 0x89, 0x66, 0xa7, 0x26, 0x4c, 0xbe, 0x90,
+ 0x57, 0xac, 0x52, 0xca, 0x8b, 0x90, 0x10, 0xea, 0x8f, 0xbf, 0x3c, 0x5e,
+ 0x77, 0x6b, 0x4f, 0xc1, 0xd2, 0x7a, 0x21, 0x81, 0x80, 0xe7, 0xf1, 0x13,
+ 0x31, 0x37, 0x15, 0x5f, 0x03, 0xd3, 0xfa, 0xe3, 0x84, 0x16, 0xa4, 0xe5,
+ 0xdf, 0xdf, 0x55, 0x4e, 0x3f, 0x86, 0xaf, 0x4f, 0x04, 0x01, 0x55, 0x35,
+ 0xbc, 0x30, 0x6f, 0xd4, 0xe0, 0x79, 0x91, 0xb7, 0xc5, 0xac, 0x87, 0xd5,
+ 0x1d, 0x88, 0x87, 0x3c, 0x65, 0x26, 0x08, 0xab, 0x22, 0xf2, 0x3d, 0x61,
+ 0xfa, 0x71, 0x1c, 0x8f, 0x39, 0x89, 0x9b, 0x4c, 0x98, 0x01, 0x6f, 0x73,
+ 0x69, 0xdc, 0x46, 0xbb, 0x8a, 0x8e, 0x9d, 0x07, 0x4c, 0xf8, 0x50, 0x33,
+ 0xef, 0xbe, 0x17, 0xab, 0xbf, 0xc1, 0xdc, 0xab, 0x87, 0x99, 0x3a, 0x17,
+ 0xa9, 0x3f, 0x2d, 0x58, 0xd8, 0x4e, 0xa2, 0xf6, 0x3f, 0x59, 0x0f, 0x76,
+ 0x17, 0x87, 0x0f, 0x62, 0xb5, 0x71, 0xef, 0xf6, 0x22, 0xec, 0x05, 0x15,
+ 0x89, 0x64, 0xfb, 0x4c, 0x5e, 0x53, 0x77, 0xef, 0x69, 0x01, 0xd5, 0xdb,
+ 0x55, 0xaf, 0x56, 0x10, 0xc7, 0xc0, 0x3e, 0x5a, 0x4f, 0x88, 0xa9, 0x80,
+ 0xfa, 0x50, 0x94, 0x25, 0x44, 0xee, 0x58, 0x32, 0xff, 0x36, 0x59, 0x8a,
+ 0x87, 0x40, 0x6c, 0x93, 0x07, 0x34, 0x8e, 0x66, 0xad, 0x94, 0x2a, 0x00,
+ 0x9c, 0x68, 0xb0, 0x8f, 0xc1, 0x3c, 0x07, 0x3c, 0x30, 0xd2, 0x7e, 0xf1,
+ 0x7f, 0xb6, 0x7b, 0x5a, 0x71, 0x21, 0x54, 0x08, 0x27, 0xa8, 0x1f, 0x4d,
+ 0x2e, 0x9f, 0x45, 0xf8, 0xac, 0xe1, 0xf1, 0x8d, 0xcb, 0xc7, 0x64, 0x48,
+ 0x9f, 0x6d, 0x8c, 0xd2, 0xb9, 0x14, 0x25, 0x26, 0xa0, 0xbd, 0x0c, 0xc1,
+ 0x14, 0xe1, 0x63, 0xbb, 0xb1, 0x43, 0x26, 0x4f, 0x7d, 0x77, 0xd8, 0x87,
+ 0x2b, 0x32, 0xe4, 0xcf, 0x28, 0x5f, 0x7e, 0x2f, 0xe4, 0xfc, 0xb5, 0xa2,
+ 0x62, 0x46, 0xb1, 0x86, 0x12, 0x0b, 0xa1, 0x69, 0xf7, 0xfa, 0x94, 0x4e,
+ 0x90, 0x13, 0xd9, 0x15, 0x04, 0xf7, 0x58, 0x4c, 0xee, 0x63, 0xcf, 0x4a,
+ 0x9e, 0x9a, 0xf6, 0xfa, 0xed, 0x7c, 0xf0, 0xe8, 0xdf, 0xda, 0x32, 0x71,
+ 0x4f, 0x40, 0x4b, 0xa3, 0xd0, 0x19, 0x74, 0x1e, 0xce, 0x59, 0x07, 0xc7,
+ 0x0a, 0x1d, 0xf1, 0xdd, 0x9a, 0x9a, 0x37, 0xc0, 0x7f, 0xbe, 0x33, 0x7e,
+ 0x40, 0x65, 0x81, 0x06, 0x62, 0xff, 0xee, 0xaf, 0x10, 0xee, 0xd7, 0xf2,
+ 0x35, 0xc0, 0x37, 0xcb, 0x71, 0xdc, 0xc8, 0xbe, 0x8d, 0x5a, 0xea, 0x07,
+ 0xeb, 0x90, 0x49, 0xa5, 0x2d, 0xcf, 0x8b, 0xb1, 0x29, 0x3c, 0xf0, 0x46,
+ 0xe3, 0x12, 0x6d, 0xf9, 0x05, 0xf3, 0xc0, 0x8d, 0xbe, 0xbf, 0x1c, 0x01,
+ 0x38, 0xa6, 0xfc, 0x41, 0x77, 0x9a, 0x90, 0xb3, 0x6f, 0xd9, 0xf0, 0x34,
+ 0xbb, 0xb0, 0x04, 0xc7, 0x66, 0x6c, 0xa7, 0x10, 0x13, 0x26, 0x65, 0x9f,
+ 0x7d, 0xda, 0x74, 0xff, 0x77, 0xde, 0xac, 0x03, 0x9f, 0xdb, 0x7c, 0x1c,
+ 0x18, 0x14, 0x3a, 0x0f, 0x4c, 0x1c, 0xd0, 0xd6, 0xd8, 0x2b, 0xed, 0x62,
+ 0x8b, 0x6f, 0xd0, 0x6b, 0x97, 0xeb, 0x4a, 0x7c, 0xa8, 0x98, 0xd6, 0x6e,
+ 0xdb, 0x97, 0xa9, 0xa3, 0x74, 0x67, 0x7a, 0x6a, 0xf4, 0x40, 0xb0, 0x89,
+ 0x9d, 0xb5, 0xd6, 0x32, 0x61, 0xce, 0xff, 0x78, 0x3e, 0x10, 0x23, 0xc6,
+ 0x8d, 0x9e, 0xdc, 0x31, 0x34, 0x8e, 0x36, 0xc5, 0xfb, 0xc6, 0x86, 0x10,
+ 0x23, 0x79, 0xe4, 0x50, 0x7b, 0x9c, 0xbb, 0xe3, 0x2e, 0x0c, 0x05, 0x76,
+ 0x0a, 0xd0, 0xc2, 0xaf, 0x3e, 0x55, 0x4f, 0xb4, 0x30, 0xfd, 0x4f, 0x74,
+ 0x60, 0xbb, 0xca, 0x0b, 0x6d, 0x11, 0xac, 0xda, 0x5d, 0x5c, 0xa0, 0xd1,
+ 0xe4, 0x54, 0xf8, 0x1a, 0x98, 0x92, 0xb2, 0x70, 0x8d, 0xa3, 0x3f, 0x43,
+ 0xcb, 0x07, 0xad, 0xb2, 0x7d, 0x6d, 0x72, 0xd6, 0x44, 0x15, 0x64, 0x61,
+ 0x24, 0x42, 0xfe, 0x1b, 0x0b, 0x9c, 0xc8, 0x9b, 0xb3, 0x59, 0x0a, 0x5e,
+ 0xf5, 0x41, 0xc0, 0x1a, 0x19, 0xae, 0x10, 0x75, 0x87, 0x2a, 0x69, 0x8a,
+ 0x65, 0x0c, 0x5b, 0x49, 0x1b, 0x23, 0x1e, 0xc3, 0x17, 0xbe, 0x04, 0xf7,
+ 0x89, 0x4a, 0x92, 0x19, 0xf0, 0x00, 0x40, 0xbf, 0x39, 0xd9, 0xe5, 0x88,
+ 0x69, 0xc0, 0xcd, 0xba, 0x88, 0xef, 0xff, 0xd5, 0xd5, 0x8b, 0x4b, 0xbb,
+ 0x30, 0xf1, 0x8f, 0xd2, 0x0d, 0x26, 0x5d, 0xa7, 0xd3, 0xba, 0x24, 0xed,
+ 0x53, 0xf8, 0x81, 0x94, 0xce, 0x39, 0xba, 0x5d, 0x9c, 0xbf, 0xb9, 0xd6,
+ 0x52, 0x11, 0xb5, 0xfd, 0x53, 0x2c, 0xb9, 0xf0, 0x0a, 0x64, 0x94, 0x79,
+ 0xba, 0x9d, 0x23, 0x19, 0xa0, 0x58, 0x00, 0x8a, 0xf5, 0x12, 0x14, 0x8e,
+ 0xd5, 0x1c, 0xbd, 0x2b, 0x04, 0xd7, 0x9c, 0x7e, 0xd4, 0xd6, 0xff, 0x31,
+ 0x69, 0x73, 0x04, 0x5d, 0xa4, 0xbf, 0x4b, 0xa6, 0x50, 0x40, 0x2c, 0xcc,
+ 0xe2, 0x6e, 0xbb, 0x2b, 0xff, 0x61, 0xcb, 0x9c, 0x20, 0x80, 0x97, 0x2a,
+ 0x13, 0xe4, 0x0b, 0xeb, 0x27, 0xdc, 0xe1, 0xd6, 0x49, 0x90, 0x52, 0xa9,
+ 0x0d, 0x20, 0x04, 0x4f, 0x2d, 0xf1, 0xb1, 0x31, 0x62, 0x23, 0xc5, 0xf6,
+ 0x71, 0x72, 0x3e, 0xb8, 0xe8, 0xe6, 0x37, 0xb7, 0xde, 0xdb, 0xf2, 0xbf,
+ 0xeb, 0x84, 0x61, 0xe1, 0xb7, 0x12, 0xfe, 0x66, 0xa6, 0x8b, 0x57, 0x7b,
+ 0x92, 0x47, 0x73, 0x07, 0x7c, 0x4b, 0xcf, 0x32, 0x32, 0x95, 0xff, 0xb4,
+ 0x21, 0x67, 0x5e, 0x7d, 0x0e, 0x9f, 0x6a, 0x27, 0x41, 0xcf, 0xcf, 0xb8,
+ 0x44, 0x56, 0xc6, 0xd1, 0xd5, 0xd9, 0x50, 0xb1, 0xfd, 0x9c, 0xfa, 0x8f,
+ 0xe9, 0xfc, 0x3b, 0x49, 0x3a, 0x04, 0xc7, 0x67, 0xdc, 0xcd, 0xc4, 0x48,
+ 0xdb, 0xdd, 0xb4, 0x03, 0x5d, 0xe6, 0xef, 0xa2, 0x2d, 0xad, 0x5a, 0xea,
+ 0x53, 0xed, 0xa7, 0xf1, 0x04, 0x79, 0xed, 0x0f, 0x24, 0xb5, 0x7e, 0x3a,
+ 0x7e, 0xfa, 0x12, 0x65, 0x5d, 0x4f, 0x3a, 0x7e, 0xfa, 0x12, 0x75, 0x07,
+ 0x22, 0x62, 0xcd, 0xe3, 0x29, 0x66, 0xe3, 0xd4, 0xc2, 0x4e, 0xa1, 0xd7,
+ 0xb8, 0x71, 0x6a, 0x23, 0xb6, 0x3f, 0x35, 0x8c, 0x09, 0xd4, 0x3a, 0xfa,
+ 0x12, 0x29, 0x57, 0xf2, 0x02, 0xcd, 0xe3, 0x21, 0x25, 0xd5, 0xba, 0xfd,
+ 0xa8, 0x5c, 0x64, 0x33, 0xd9, 0xbc, 0x65, 0x2c, 0xdc, 0x7a, 0x98, 0x49,
+ 0xd4, 0x3a, 0xf7, 0x0e, 0x2d, 0x44, 0x76, 0xc7, 0xe6, 0xb1, 0x81, 0x3a,
+ 0x87, 0x5f, 0x42, 0x45, 0x42, 0xa9, 0x72, 0x25, 0x5d, 0xd9, 0x86, 0xe7,
+ 0x36, 0xc3, 0x3d, 0x81, 0x02, 0xab, 0x5f, 0x2f, 0x6e, 0xc7, 0xd7, 0xe0,
+ 0x85, 0x63, 0xef, 0xba, 0xd5, 0xa4, 0x22, 0x76, 0x65, 0xb2, 0x65, 0xef,
+ 0x60, 0xd7, 0xbf, 0x74, 0xe0, 0x2f, 0x87, 0x28, 0x8e, 0x0c, 0x32, 0x6f,
+ 0x30, 0x24, 0x6e, 0x73, 0xa9, 0x80, 0x66, 0x6a, 0xd7, 0xed, 0xf7, 0x65,
+ 0xc3, 0x52, 0x20, 0xb2, 0xf7, 0x06, 0xd7, 0x00, 0x00, 0x11, 0x05, 0x00,
+ 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x1c, 0x00,
+ 0x01, 0x10, 0x14, 0x14, 0x7b, 0x95, 0xf0, 0xd4, 0x6c, 0x0a, 0x8a, 0x51,
+ 0x39, 0xf5, 0x72, 0x8b, 0xd2, 0x1a, 0xf0, 0x8d, 0xfa, 0x03, 0xfe, 0x6b,
+ 0x0b, 0xff, 0xcd, 0x9f, 0x2a, 0xef, 0xe4, 0x07, 0x34, 0x67, 0x85, 0x1f,
+ 0xf2, 0x3e, 0x75, 0x8f, 0xd8, 0xa8, 0x41, 0x63, 0xa1, 0xa6, 0x1d, 0x54,
+ 0xfb, 0x72, 0x1e, 0x6c, 0xcd, 0x26, 0x42, 0xa7, 0xfc, 0x41, 0xb3, 0xd8,
+ 0xe9, 0x90, 0x60, 0x19, 0x37, 0xea, 0x6b, 0x56, 0xfa, 0xfe, 0x78, 0xc2,
+ 0x6b, 0x50, 0x93, 0x62, 0xcc, 0x75, 0xd3, 0x06, 0xdd, 0x7e, 0xbc, 0x5f,
+ 0x43, 0x0f, 0xf1, 0x9d, 0x7d, 0xbd, 0x76, 0xca, 0x0a, 0xf4, 0x2d, 0x02,
+ 0xe5, 0x02, 0x39, 0xc3, 0x7d, 0x19, 0x38, 0x01, 0xd1, 0x29, 0x10, 0x91,
+ 0xa8, 0x5b, 0x26, 0x9a, 0xb4, 0x4e, 0xa9, 0x49, 0xc4, 0xcb, 0xbf, 0x9a,
+ 0xd4, 0xa5, 0xe0, 0xc0, 0x9e, 0x88, 0x00, 0x0b, 0x56, 0xcc, 0x4b, 0x4e,
+ 0x24, 0xd0, 0xfb, 0x0b, 0x8c, 0x4a, 0xf6, 0x86, 0xd4, 0x05, 0x1f, 0x92,
+ 0x41, 0x88, 0x7f, 0xff, 0xf3, 0xa8, 0x57, 0x18, 0x2f, 0xe6, 0x7f, 0xa7,
+ 0x6a, 0x3b, 0xe5, 0xf0, 0xdc, 0x7e, 0xe9, 0xc0, 0x3e, 0x05, 0x41, 0xee,
+ 0x7c, 0x5b, 0xa5, 0xdc, 0x2e, 0x02, 0x5c, 0x3d, 0x0d, 0xf4, 0x78, 0x14,
+ 0x12, 0x7e, 0xbd, 0xf8, 0xa7, 0x9b, 0x9b, 0xce, 0xd0, 0xf5, 0x18, 0x34,
+ 0xca, 0x28, 0x72, 0x2b, 0xca, 0x0f, 0x51, 0xa1, 0x51, 0x0f, 0x6a, 0x12,
+ 0x0a, 0x64, 0x99, 0xc1, 0xa6, 0x19, 0x72, 0xf8, 0xb7, 0xd7, 0xb0, 0x41,
+ 0xcb, 0x20, 0x29, 0x8e, 0xdc, 0x9f, 0x4a, 0x1c, 0x00, 0x8b, 0xab, 0x0c,
+ 0x80, 0xa2, 0xb4, 0x61, 0x03, 0x04, 0xb5, 0x92, 0xfd, 0x68, 0x00, 0xbf,
+ 0xf7, 0x52, 0x81, 0x99, 0x13, 0x10, 0xe8, 0x9a, 0xf1, 0x75, 0x52, 0x5b,
+ 0xef, 0x01, 0x19, 0x72, 0xa4, 0xf3, 0xe0, 0x0b, 0x64, 0xcf, 0x82, 0x04,
+ 0x6b, 0xea, 0x92, 0x76, 0x7e, 0xe1, 0x82, 0xde, 0x20, 0x4d, 0x76, 0x2d,
+ 0x2e, 0x38, 0x92, 0xe2, 0x58, 0x2e, 0x54, 0xdf, 0xa9, 0x15, 0x14, 0x76,
+ 0x15, 0x0e, 0x03, 0xe3, 0x23, 0xd3, 0xfe, 0x69, 0xcd, 0xe9, 0x58, 0x80,
+ 0x51, 0x47, 0x5a, 0xb2, 0xe8, 0xf0, 0x31, 0xb2, 0x65, 0x32, 0x3f, 0xfc,
+ 0x8c, 0xe3, 0xef, 0xfd, 0xf2, 0x49, 0x8d, 0xdc, 0x7b, 0x54, 0xfe, 0x27,
+ 0x4e, 0x8e, 0x44, 0x33, 0xcd, 0x99, 0x03, 0xa6, 0x7f, 0x72, 0xee, 0x9f,
+ 0x49, 0x02, 0x07, 0xb7, 0xd7, 0x15, 0x2a, 0x13, 0x33, 0x2b, 0xc1, 0x81,
+ 0x7b, 0x4d, 0x79, 0xef, 0x38, 0x3f, 0x83, 0x86, 0xcb, 0x49, 0xdc, 0x14,
+ 0x74, 0x68, 0xb9, 0x29, 0xe0, 0xc3, 0xef, 0xa6, 0xf3, 0x3f, 0x13, 0x6d,
+ 0x83, 0x74, 0x45, 0x53, 0x58, 0x2d, 0x60, 0x37, 0xa4, 0xdc, 0x09, 0xcc,
+ 0xa2, 0x93, 0xf8, 0x09, 0x37, 0xdd, 0xd5, 0x74, 0xa3, 0x2f, 0xdf, 0x8b,
+ 0xcc, 0x11, 0x8c, 0x3d, 0xfd, 0xd0, 0x15, 0xea, 0xac, 0x7a, 0xeb, 0x15,
+ 0xde, 0x34, 0x08, 0x4d, 0x8b, 0x7c, 0xc1, 0xe2, 0x60, 0x1e, 0x25, 0xf4,
+ 0x06, 0x81, 0xf4, 0xa9, 0xa6, 0x25, 0x26, 0x91, 0x98, 0x97, 0xf9, 0xa1,
+ 0xbe, 0xb4, 0x4d, 0xd5, 0x75, 0xdd, 0xb7, 0x39, 0xb5, 0x01, 0x37, 0x93,
+ 0x5e, 0x12, 0xd6, 0xd8, 0xfa, 0x70, 0xfa, 0xb2, 0x4d, 0xac, 0xd9, 0x24,
+ 0xb8, 0xda, 0x6f, 0x11, 0x59, 0x55, 0xae, 0xec, 0xd8, 0xc7, 0x5c, 0xb0,
+ 0x6a, 0x60, 0x86, 0xf8, 0x16, 0x31, 0x42, 0xc9, 0x9a, 0xb1, 0x35, 0xcf,
+ 0x27, 0x56, 0x23, 0x75, 0x2e, 0x89, 0x25, 0xee, 0xca, 0x24, 0x90, 0x4d,
+ 0x73, 0x56, 0x8d, 0x26, 0x3f, 0x38, 0xfc, 0x9d, 0xa0, 0x4f, 0xa2, 0xa9,
+ 0x08, 0xbf, 0x25, 0x48, 0x92, 0xe6, 0xe9, 0x5f, 0xbf, 0xd6, 0x39, 0xf3,
+ 0xfb, 0x05, 0xbe, 0x2a, 0x8a, 0xc1, 0xcc, 0x0f, 0x02, 0x9e, 0xed, 0x1b,
+ 0xdb, 0x10, 0x08, 0xf1, 0xf5, 0x8c, 0x69, 0xaa, 0xaf, 0x59, 0xb3, 0x4e,
+ 0x9b, 0x72, 0xbe, 0x46, 0xd4, 0x7c, 0x5d, 0x8e, 0x67, 0x76, 0xea, 0xa4,
+ 0x1f, 0xf8, 0x3e, 0xee, 0x23, 0x7f, 0x70, 0xda, 0xa4, 0x7e, 0x17, 0xc3,
+ 0x49, 0xca, 0xaa, 0xa5, 0xfe, 0x96, 0x42, 0xe9, 0xa7, 0xe0, 0x55, 0xdd,
+ 0x16, 0x2e, 0xd0, 0xed, 0x67, 0x7e, 0xb5, 0x29, 0x34, 0x8c, 0x43, 0x1b,
+ 0xde, 0x1c, 0x8c, 0x65, 0x6b, 0x4d, 0x72, 0x86, 0xa7, 0xa5, 0x81, 0xc9,
+ 0x02, 0x57, 0xfd, 0x06, 0x39, 0xe0, 0x37, 0x49, 0xeb, 0xd5, 0xa0, 0x06,
+ 0x23, 0x90, 0xc5, 0xd4, 0x7e, 0x93, 0xfe, 0x21, 0x49, 0x30, 0x23, 0x73,
+ 0x0f, 0x30, 0xe1, 0x2f, 0x3b, 0x0b, 0x3f, 0x8d, 0xfb, 0x74, 0xfa, 0x77,
+ 0x71, 0x95, 0x18, 0x61, 0xfb, 0x8f, 0xff, 0x2d, 0xc6, 0xcf, 0xff, 0xaa,
+ 0xb9, 0x1b, 0xe4, 0xf3, 0x1f, 0x77, 0xca, 0x7a, 0x2f, 0x81, 0x72, 0x24,
+ 0x3c, 0xe8, 0x63, 0xf2, 0xb0, 0xf1, 0xd1, 0x4f, 0xc1, 0xe0, 0xf5, 0x2c,
+ 0x7b, 0x64, 0x70, 0x5d, 0xa8, 0xe2, 0x63, 0xe9, 0x4f, 0x15, 0x3a, 0xbe,
+ 0x4b, 0x30, 0xca, 0x64, 0xd1, 0x01, 0x5e, 0x20, 0x26, 0xc5, 0x40, 0x83,
+ 0x1b, 0xef, 0xe9, 0xdf, 0x9c, 0x23, 0x9b, 0x7c, 0xf8, 0x39, 0xd8, 0x0b,
+ 0x3a, 0x2c, 0x75, 0xc8, 0x5b, 0xb4, 0x7b, 0xfa, 0xa4, 0x67, 0x93, 0x8b,
+ 0x15, 0x8a, 0x5a, 0xd0, 0xca, 0x7a, 0x5b, 0x44, 0x4c, 0xfe, 0xc6, 0xda,
+ 0x5a, 0x8e, 0xe3, 0x92, 0x6a, 0xdb, 0xee, 0x65, 0x89, 0x0e, 0xd4, 0x39,
+ 0x5a, 0x9f, 0x45, 0x2e, 0x51, 0x6e, 0xd9, 0xf7, 0x69, 0x8b, 0x3d, 0x77,
+ 0x81, 0xa3, 0x71, 0xf6, 0x04, 0x58, 0x19, 0xec, 0x27, 0x70, 0x49, 0x16,
+ 0x49, 0xf3, 0xc5, 0xf4, 0x7e, 0x07, 0x4d, 0xcc, 0x4b, 0xe5, 0xd2, 0xe4,
+ 0xee, 0xe6, 0xf5, 0x78, 0xba, 0xf9, 0xa6, 0x5d, 0xb1, 0xae, 0xe7, 0xd0,
+ 0xcd, 0x90, 0x7e, 0x00, 0x0d, 0x27, 0x91, 0x79, 0x29, 0xd9, 0x60, 0xe4,
+ 0x47, 0x87, 0x89, 0xfc, 0x5f, 0x73, 0xd1, 0xb5, 0x8f, 0xee, 0xe7, 0xee,
+ 0x33, 0x9c, 0x68, 0x92, 0xe9, 0x88, 0xc6, 0x80, 0x98, 0x0e, 0xb4, 0xff,
+ 0x13, 0xbe, 0x15, 0xcc, 0xd5, 0x99, 0xdf, 0x21, 0xcd, 0x96, 0x9d, 0xfd,
+ 0x3a, 0x1d, 0x0a, 0xd1, 0xe6, 0xd9, 0x92, 0xa3, 0x0a, 0xfe, 0xbb, 0x7d,
+ 0xb3, 0x3e, 0xd6, 0x73, 0xd1, 0x37, 0x45, 0xfb, 0x5e, 0xcf, 0x58, 0x8d,
+ 0x47, 0x82, 0x64, 0x47, 0xc1, 0xaf, 0x72, 0x0f, 0x62, 0xf4, 0xbc, 0x1d,
+ 0x9f, 0x6d, 0xc7, 0x49, 0x29, 0x99, 0xda, 0xb4, 0x10, 0x55, 0xe8, 0x3d,
+ 0x87, 0x96, 0x66, 0x96, 0x4b, 0x10, 0xbf, 0x24, 0x59, 0x28, 0xdd, 0x65,
+ 0xf3, 0x47, 0x25, 0xb5, 0xc6, 0xb5, 0x91, 0x41, 0x85, 0xba, 0xd2, 0x2f,
+ 0x82, 0xf6, 0x5b, 0xec, 0x71, 0x54, 0xc0, 0xd5, 0xb1, 0x49, 0x56, 0x20,
+ 0x0e, 0x3a, 0xa4, 0xdf, 0xec, 0x30, 0x5b, 0xcb, 0x8a, 0x5a, 0xdf, 0x1f,
+ 0x48, 0x34, 0x82, 0x07, 0x06, 0xc8, 0x2e, 0x32, 0x2d, 0x2e, 0xae, 0x9f,
+ 0x3f, 0x3a, 0xf8, 0x56, 0x1d, 0x86, 0xfe, 0xad, 0x27, 0xd1, 0x8f, 0x0f,
+ 0x91, 0xbf, 0xae, 0xd6, 0xf7, 0x06, 0xa6, 0x2d, 0xb4, 0xb9, 0xe8, 0x99,
+ 0xf0, 0x18, 0xcf, 0x43, 0xb1, 0x61, 0x35, 0xda, 0x80, 0x76, 0x62, 0xe2,
+ 0x8d, 0xc5, 0x01, 0x45, 0x25, 0x3c, 0xe0, 0xf9, 0x9d, 0xbc, 0x6c, 0x4e,
+ 0x56, 0x08, 0x04, 0x62, 0x8a, 0x3b, 0x84, 0x41, 0x38, 0x51, 0x3d, 0xa3,
+ 0xd6, 0x59, 0xcd, 0xff, 0xdb, 0x4b, 0xfd, 0x98, 0xe1, 0x92, 0x34, 0x0a,
+ 0x02, 0x6e, 0xc3, 0x19, 0x7c, 0x8a, 0xe9, 0x23, 0x65, 0xcc, 0x1a, 0xae,
+ 0xe7, 0xbf, 0x60, 0xe1, 0xfe, 0xce, 0x3c, 0xd1, 0x0d, 0x74, 0x46, 0xb3,
+ 0x31, 0x43, 0x4f, 0x5b, 0xa7, 0x5e, 0x04, 0xcf, 0x98, 0x24, 0xbd, 0xf3,
+ 0x6f, 0x35, 0x6a, 0xe6, 0xe3, 0xef, 0x9d, 0xe4, 0xa9, 0x63, 0xd6, 0x12,
+ 0x94, 0xee, 0xda, 0xf0, 0x90, 0x31, 0xde, 0xda, 0xcf, 0x96, 0x29, 0xf5,
+ 0x86, 0x31, 0x79, 0x8b, 0xf2, 0x5e, 0x3e, 0x1d, 0x04, 0xbb, 0xf0, 0x8b,
+ 0x8c, 0xe6, 0xfc, 0x62, 0x59, 0x27, 0xe5, 0xc8, 0xeb, 0x13, 0x7b, 0x11,
+ 0x26, 0xdf, 0xa2, 0x7f, 0xe3, 0x32, 0x83, 0xb2, 0x27, 0xd4, 0x8a, 0xea,
+ 0xd8, 0x5f, 0xfa, 0xe7, 0xf7, 0x79, 0xce, 0x1f, 0xd8, 0xac, 0xcf, 0xb0,
+ 0x9c, 0x71, 0x3e, 0x16, 0x7e, 0xae, 0x2c, 0x0a, 0xb2, 0x24, 0x98, 0xeb,
+ 0x3e, 0x17, 0x83, 0x2d, 0x3c, 0x06, 0x8c, 0x1e, 0x81, 0x04, 0x16, 0x8d,
+ 0x21, 0x10, 0x56, 0xcc, 0xda, 0x6e, 0x93, 0x0e, 0x01, 0xf1, 0x2b, 0xa6,
+ 0xba, 0x75, 0x67, 0xc5, 0xdb, 0x0d, 0x8e, 0xf5, 0xa0, 0xc8, 0x5a, 0x2e,
+ 0xfc, 0xa5, 0x05, 0x02, 0xaa, 0xb1, 0x06, 0x5d, 0x75, 0xe8, 0x93, 0x71,
+ 0x89, 0x32, 0x02, 0x48, 0x81, 0x98, 0xfa, 0x33, 0x38, 0xe3, 0xbb, 0x78,
+ 0x0f, 0x53, 0xa4, 0x28, 0x98, 0xcb, 0x3c, 0xbc, 0x18, 0x75, 0x10, 0x12,
+ 0x3a, 0x0c, 0x31, 0xf5, 0x38, 0x2d, 0x80, 0xc9, 0x15, 0xac, 0x1c, 0xb4,
+ 0x2b, 0x35, 0x2c, 0xab, 0x34, 0x31, 0x18, 0xe1, 0x9f, 0xa9, 0x0a, 0x21,
+ 0xca, 0x16, 0x08, 0x86, 0xd9, 0x96, 0xe4, 0xfd, 0x66, 0x31, 0x65, 0x4e,
+ 0x00, 0x09, 0x35, 0x41, 0xf3, 0xe7, 0x3a, 0x8c, 0x05, 0x09, 0x88, 0xae,
+ 0x41, 0x5c, 0xd0, 0x5d, 0x10, 0x7e, 0x52, 0x2b, 0x34, 0x67, 0x16, 0xeb,
+ 0x21, 0x7c, 0x0d, 0x80, 0x93, 0x38, 0xa0, 0x9e, 0x6b, 0xca, 0x8b, 0xb4,
+ 0x10, 0xf7, 0xec, 0x80, 0x99, 0xd1, 0xf4, 0x76, 0xad, 0x00, 0x34, 0x02,
+ 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0c,
+ 0x00, 0x01, 0x10, 0x20, 0x00, 0x18, 0x01, 0x5c, 0x03, 0xb2, 0x20, 0x5e,
+ 0xbc, 0x02, 0xa8, 0x57, 0x77, 0xfd, 0xeb, 0x0d, 0x91, 0x67, 0xfb, 0x53,
+ 0xad, 0xea, 0x65, 0xef, 0x02, 0xe0, 0x6a, 0x79, 0xbd, 0xa4, 0xdc, 0x89,
+ 0x7c, 0xfb, 0xcf, 0x40, 0x8b, 0xa1, 0x0a, 0xd8, 0x33, 0x58, 0x92, 0xd7,
+ 0x35, 0x0c, 0x52, 0x84, 0x41, 0x95, 0x43, 0x0f, 0x5f, 0xc4, 0x32, 0x14,
+ 0x52, 0x02, 0xbe, 0xb8, 0x1c, 0x98, 0x4e, 0xae, 0x08, 0x47, 0xd2, 0xca,
+ 0x04, 0xc0, 0x1c, 0x66, 0x10, 0x66, 0x74, 0xb1, 0xfc, 0x37, 0xba, 0x53,
+ 0xc3, 0x80, 0x11, 0x2c, 0xdd, 0x00, 0x00, 0xb3, 0x34, 0xdb, 0xcf, 0x38,
+ 0x5f, 0x3c, 0xb7, 0x22, 0x50, 0x4c, 0x90, 0xed, 0x67, 0x35, 0xa8, 0x6c,
+ 0xb3, 0x11, 0x31, 0x26, 0xb2, 0xaa, 0xf2, 0x6b, 0x25, 0xb4, 0xe1, 0xc9,
+ 0x51, 0xfd, 0x13, 0xc6, 0xb8, 0x28, 0x3c, 0xf6, 0xce, 0x30, 0xc4, 0xdd,
+ 0x6c, 0x0a, 0x3d, 0x04, 0xdc, 0xbf, 0x83, 0x90, 0xe4, 0x4a, 0x8d, 0x41,
+ 0x55, 0x5b, 0x86, 0x3e, 0xb8, 0x9b, 0x6a, 0x99, 0xef, 0xaf, 0x08, 0xb3,
+ 0x90, 0x7a, 0x1a, 0xa6, 0xef, 0x70, 0x46, 0x2a, 0x63, 0x75, 0x62, 0x75,
+ 0xf7, 0xcd, 0x9e, 0x30, 0xe7, 0x68, 0x49, 0x3c, 0xcc, 0xdd, 0x87, 0x52,
+ 0x86, 0x00, 0xeb, 0x7c, 0x91, 0x67, 0xd9, 0xd6, 0x50, 0xb6, 0xeb, 0x1f,
+ 0x0e, 0xd8, 0x53, 0x85, 0x4c, 0xe7, 0xb7, 0x08, 0x70, 0x1b, 0x6f, 0xd9,
+ 0x78, 0x25, 0x56, 0x38, 0x54, 0xc9, 0x6e, 0xf7, 0x6f, 0x0d, 0x36, 0x33,
+ 0xc2, 0xfd, 0x84, 0xed, 0xdb, 0x0e, 0xa6, 0x11, 0xe9, 0x2a, 0xcf, 0x85,
+ 0x72, 0x59, 0x04, 0x78, 0x52, 0xd5, 0xf3, 0xb4, 0xea, 0x0a, 0x26, 0x56,
+ 0xbd, 0xf8, 0xdd, 0x7b, 0xd7, 0xf8, 0xeb, 0x44, 0x83, 0x46, 0x68, 0xa7,
+ 0x62, 0x7c, 0x5b, 0xae, 0xd9, 0x93, 0x98, 0x3e, 0x24, 0x65, 0x91, 0x4a,
+ 0x78, 0x7e, 0xca, 0x69, 0x2c, 0xc9, 0x22, 0xe7, 0x11, 0x98, 0x12, 0x0f,
+ 0xa6, 0xda, 0x87, 0xe2, 0x59, 0x75, 0x43, 0x62, 0x24, 0x44, 0x41, 0xd7,
+ 0x23, 0xed, 0x82, 0xf8, 0x44, 0xec, 0xe1, 0xb8, 0xa0, 0x74, 0x33, 0xef,
+ 0xa8, 0x2a, 0x70, 0x98, 0x17, 0xe6, 0x9f, 0x1e, 0x89, 0x12, 0x0c, 0x03,
+ 0xff, 0xfb, 0x57, 0x61, 0xe3, 0x72, 0xa2, 0x1f, 0x1c, 0x99, 0xd1, 0x41,
+ 0x01, 0xcc, 0xbc, 0x0e, 0x25, 0xeb, 0x46, 0x44, 0xfc, 0x7c, 0xfd, 0x39,
+ 0x89, 0xb7, 0x90, 0x3d, 0x1a, 0x1b, 0xe1, 0x0d, 0xbd, 0x8e, 0x50, 0xed,
+ 0x4d, 0x31, 0xc6, 0x76, 0x4a, 0x9f, 0x83, 0x7d, 0x32, 0x77, 0x48, 0x03,
+ 0xb4, 0x3e, 0x2f, 0x2d, 0xe1, 0x1b, 0xe5, 0x2b, 0x8f, 0x9e, 0x85, 0x9b,
+ 0x7a, 0x84, 0xce, 0xf3, 0x73, 0x2a, 0x8b, 0x36, 0x3a, 0x0e, 0x63, 0xf3,
+ 0xd3, 0xc0, 0xb4, 0x5b, 0x1c, 0x8c, 0x01, 0xb7, 0x84, 0x5f, 0x60, 0x7e,
+ 0xde, 0xcc, 0xae, 0xfb, 0x76, 0x05, 0x96, 0xbc, 0x05, 0x7e, 0x28, 0x11,
+ 0xba, 0xb6, 0x1a, 0x97, 0xfc, 0xf1, 0xe0, 0xa9, 0x36, 0x34, 0xc9, 0x10,
+ 0x10, 0x37, 0x7e, 0xa3, 0x1b, 0x09, 0x8d, 0x54, 0xe7, 0x5b, 0x4f, 0x5a,
+ 0xa3, 0xc1, 0xd1, 0xd7, 0x39, 0x7d, 0x8e, 0x37, 0x91, 0x0e, 0x3e, 0x32,
+ 0xb4, 0x6a, 0x07, 0xad, 0x3f, 0xde, 0xe0, 0x0e, 0x36, 0xa7, 0xdd, 0xb9,
+ 0xce, 0x40, 0x47, 0x5a, 0x74, 0x76, 0xee, 0xe6, 0x73, 0x50, 0x40, 0x52,
+ 0x2e, 0x33, 0x9f, 0x09, 0x51, 0xca, 0x3f, 0x9b, 0x4b, 0x5f, 0xa9, 0xf8,
+ 0xf5, 0x88, 0x44, 0xba, 0xb3, 0x57, 0x54, 0x5c, 0x63, 0x68, 0x05, 0xc7,
+ 0xcf, 0xbf, 0xf6, 0x6c, 0x69, 0x56, 0x43, 0x4e, 0x41, 0x17, 0xc2, 0x75,
+ 0x88, 0xf7, 0x00, 0xae, 0xf6, 0x94, 0x53, 0x3f, 0xef, 0x3a, 0xcb, 0x36,
+ 0xa2, 0xc4, 0xc3, 0x58, 0x68, 0x68, 0x8e, 0x95, 0x7f, 0xdb, 0xfa, 0xb2,
+ 0xe0, 0x7a, 0xff, 0xb2, 0x00, 0x8c, 0xb8, 0x4c, 0x76, 0x13, 0xb6, 0xcf,
+ 0xbf, 0x74, 0x01, 0xdf, 0xf5, 0xee, 0xa8, 0x6e, 0x7a, 0x9a, 0xa9, 0xfc,
+ 0x19, 0x51, 0x87, 0xb6, 0x41, 0xb4, 0x49, 0xaf, 0x08, 0x00, 0x8a, 0x02,
+ 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e,
+ 0x00, 0x01, 0x10, 0x14, 0x00, 0x1c, 0x2f, 0x55, 0xd3, 0x47, 0x78, 0x0a,
+ 0xe0, 0xaf, 0x18, 0xe3, 0x91, 0x02, 0x02, 0xfa, 0x04, 0xa6, 0x61, 0x7d,
+ 0x76, 0x06, 0xcb, 0xcc, 0x43, 0x16, 0xf6, 0x5b, 0xb0, 0x37, 0xe8, 0xa6,
+ 0xc0, 0x03, 0x6c, 0xdc, 0x90, 0xe3, 0xb1, 0x5a, 0xca, 0x59, 0x80, 0x3b,
+ 0x32, 0x62, 0x63, 0xed, 0xeb, 0xbd, 0xf8, 0xda, 0xd9, 0x03, 0xc5, 0xd3,
+ 0x3c, 0xa6, 0x8e, 0x00, 0xcd, 0x64, 0x88, 0xb1, 0xde, 0xcc, 0xc4, 0x21,
+ 0xc4, 0x14, 0x67, 0xae, 0xe3, 0xc3, 0x01, 0xbf, 0xa3, 0x5c, 0xaa, 0xc0,
+ 0x0b, 0x01, 0x74, 0xf4, 0xb0, 0x16, 0x7f, 0xd4, 0x54, 0x0d, 0x70, 0x2f,
+ 0xda, 0xa5, 0x4b, 0xf9, 0x88, 0x77, 0x77, 0x25, 0x2d, 0x4c, 0xd3, 0x88,
+ 0x17, 0xe3, 0x12, 0x16, 0x2d, 0x00, 0x9d, 0xe1, 0x2b, 0xee, 0x92, 0xe5,
+ 0x6c, 0xcc, 0x24, 0xce, 0x80, 0x34, 0x5a, 0x82, 0xcf, 0x81, 0xc3, 0xff,
+ 0xe1, 0x76, 0x83, 0xff, 0x9f, 0x7f, 0x2e, 0xf4, 0xdb, 0x85, 0xd8, 0xc1,
+ 0x93, 0x18, 0x2d, 0xd3, 0x4a, 0x42, 0x9e, 0x34, 0xc0, 0xbe, 0x19, 0x84,
+ 0x81, 0xb0, 0xc3, 0xa5, 0x34, 0x18, 0x5f, 0x87, 0x52, 0xb9, 0x1a, 0x47,
+ 0x12, 0xff, 0x7b, 0x14, 0xee, 0xa2, 0x46, 0xb6, 0x4c, 0x51, 0x7f, 0xfe,
+ 0x73, 0x80, 0x12, 0x9b, 0x2c, 0x97, 0x89, 0x57, 0x39, 0x61, 0xce, 0xaf,
+ 0x87, 0x42, 0xa8, 0x30, 0xa2, 0x13, 0x0b, 0x02, 0xcb, 0x12, 0x27, 0x4e,
+ 0xf1, 0x25, 0x7f, 0x72, 0xc1, 0xbb, 0x8b, 0x51, 0xf9, 0x4b, 0x06, 0x2e,
+ 0x33, 0x2d, 0xa6, 0x78, 0xca, 0x39, 0x63, 0xc4, 0xb7, 0x20, 0x65, 0x07,
+ 0x77, 0xa7, 0x9d, 0x3b, 0xfa, 0x4f, 0x91, 0xf9, 0x3f, 0x49, 0x55, 0x4b,
+ 0x03, 0xa2, 0xfa, 0x27, 0x6e, 0xb8, 0xcb, 0x5e, 0x91, 0x89, 0x58, 0x55,
+ 0x3b, 0xff, 0x1b, 0xd9, 0x03, 0x6e, 0xc4, 0x72, 0x33, 0x80, 0x50, 0xfc,
+ 0xa3, 0xd4, 0x29, 0x78, 0xdb, 0xc8, 0xe2, 0x03, 0x14, 0xce, 0x9f, 0x17,
+ 0xa0, 0xa9, 0x94, 0x64, 0xca, 0x01, 0x07, 0xa5, 0x84, 0x62, 0x38, 0xab,
+ 0x03, 0xbd, 0xa7, 0xd6, 0x20, 0xca, 0xee, 0x27, 0x12, 0x33, 0x38, 0x0b,
+ 0x22, 0xa6, 0x50, 0x38, 0x74, 0xac, 0xf3, 0x28, 0x2c, 0x9d, 0x9a, 0x22,
+ 0x2e, 0x5f, 0xbd, 0x34, 0xa3, 0xc8, 0x9c, 0x44, 0xbc, 0xd6, 0xba, 0x98,
+ 0xe5, 0x2b, 0x14, 0xdb, 0xc2, 0x1b, 0x5c, 0x7e, 0x6d, 0x56, 0x66, 0x10,
+ 0x05, 0xf7, 0xf1, 0x3a, 0x81, 0x68, 0x9c, 0x1e, 0x25, 0xbf, 0xa7, 0x85,
+ 0x97, 0xe2, 0x59, 0x2c, 0xda, 0x9c, 0x3d, 0xdf, 0xfb, 0x68, 0x56, 0xc8,
+ 0x58, 0x3d, 0x31, 0x25, 0x3d, 0x1c, 0x68, 0xc1, 0xbf, 0x93, 0x15, 0x34,
+ 0xef, 0x89, 0x35, 0x6a, 0x46, 0xda, 0xe3, 0xde, 0xdb, 0x7d, 0xe0, 0x8f,
+ 0x77, 0x06, 0xfc, 0x5c, 0x5e, 0x82, 0xfc, 0xa0, 0x68, 0x52, 0x94, 0x54,
+ 0xb8, 0x3f, 0x13, 0xd9, 0xd0, 0x4a, 0x9b, 0xf6, 0x31, 0xb5, 0xc9, 0x46,
+ 0x2c, 0x5f, 0x4a, 0x5e, 0x46, 0xa6, 0x09, 0x33, 0x22, 0xe0, 0x40, 0xe7,
+ 0xde, 0xa5, 0x4d, 0x6f, 0x7f, 0x93, 0xc5, 0x04, 0x38, 0xd6, 0x03, 0xbc,
+ 0xc2, 0xc5, 0xb5, 0x73, 0x50, 0x99, 0xd3, 0x33, 0x76, 0x05, 0x11, 0xfb,
+ 0x5e, 0xb6, 0x31, 0xf1, 0x01, 0xda, 0x48, 0x52, 0x61, 0xc0, 0x96, 0x6c,
+ 0x2a, 0x66, 0x07, 0xe7, 0xd8, 0x03, 0x7f, 0x68, 0xb7, 0x8c, 0xbf, 0xc8,
+ 0x40, 0x19, 0x07, 0x31, 0xe0, 0x62, 0x72, 0x7e, 0x1e, 0xbe, 0x58, 0x56,
+ 0x9e, 0xe2, 0x67, 0xef, 0x4c, 0x8a, 0x29, 0xe0, 0x7b, 0x91, 0x8e, 0x66,
+ 0x1d, 0x13, 0xb3, 0xbc, 0xe5, 0x18, 0xc9, 0x7a, 0xe9, 0x30, 0xf5, 0x1e,
+ 0x11, 0xfb, 0x40, 0x7c, 0xd1, 0x8e, 0xb7, 0xc9, 0xd9, 0xa3, 0x8e, 0x7a,
+ 0xaa, 0x13, 0x7f, 0x16, 0xc6, 0x64, 0x1a, 0x09, 0xd9, 0x42, 0x13, 0xeb,
+ 0x4e, 0x52, 0x3d, 0x03, 0xcc, 0x11, 0xa4, 0x23, 0xbe, 0xa8, 0xe5, 0x3e,
+ 0x95, 0xb9, 0x8c, 0x08, 0x96, 0x31, 0xd2, 0xf8, 0xc8, 0x3e, 0x08, 0xac,
+ 0xbd, 0x8b, 0xc8, 0x1a, 0x18, 0x0c, 0x25, 0x11, 0x0c, 0x2c, 0x16, 0x40,
+ 0x82, 0x05, 0x15, 0xe0, 0x97, 0xf2, 0x97, 0x8e, 0x97, 0xf7, 0xf6, 0x6d,
+ 0x0d, 0x18, 0x8a, 0x69, 0xed, 0x8d, 0xb7, 0x5a, 0xb7, 0xc3, 0x1d, 0xcb,
+ 0x52, 0x84, 0xf5, 0xef, 0x61, 0x15, 0x38, 0xb2, 0x0f, 0xf8, 0x62, 0xd2,
+ 0x86, 0x58, 0x0f, 0xe0, 0x3f, 0x3a, 0xa5, 0x9a, 0x02, 0xbc, 0x08, 0xe7,
+ 0x17, 0x07, 0x23, 0x7d, 0xcd, 0xfd, 0x01, 0x95, 0xe8, 0x63, 0x94, 0x86,
+ 0xb5, 0x78, 0x60, 0xa8, 0x3b, 0x19, 0x82, 0xd5, 0xf2, 0xa7, 0xf3, 0x79,
+ 0x0f, 0x70, 0x57, 0x14, 0xc0, 0x4f, 0x70, 0xe1, 0x20, 0xff, 0xdb, 0x00,
+ 0x06, 0x04, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x1e, 0xd7, 0x16, 0xf8, 0x60,
+ 0x14, 0xfe, 0x01, 0x54, 0x85, 0xea, 0x5d, 0xb0, 0x0b, 0xfc, 0xda, 0x3b,
+ 0x71, 0xea, 0x79, 0xa3, 0xa5, 0x75, 0xff, 0xbf, 0x4e, 0x90, 0xfc, 0x43,
+ 0xf4, 0x8c, 0x26, 0x6b, 0xdf, 0x63, 0x6a, 0xd2, 0x12, 0xbe, 0x6b, 0x8e,
+ 0x2a, 0x29, 0x3c, 0x43, 0xb4, 0xa9, 0xc1, 0xe2, 0x5c, 0xfc, 0x9d, 0x62,
+ 0xa4, 0x31, 0x9c, 0x18, 0x71, 0x61, 0x39, 0x82, 0x56, 0x77, 0x40, 0xf4,
+ 0x8d, 0xd8, 0x2b, 0x51, 0xcc, 0xe0, 0x7c, 0xa7, 0xb4, 0x76, 0x37, 0x6c,
+ 0xe6, 0xd0, 0xda, 0xfa, 0xba, 0x95, 0x8e, 0xdd, 0xaf, 0x4c, 0x9c, 0xb5,
+ 0x61, 0xc8, 0x87, 0xd0, 0x01, 0x06, 0x47, 0x0b, 0x59, 0x1c, 0xa3, 0x6a,
+ 0x05, 0x61, 0xeb, 0x6c, 0xc1, 0x5b, 0x5e, 0xe7, 0xfc, 0xbf, 0x00, 0x0d,
+ 0x09, 0x07, 0x15, 0xe7, 0x35, 0x7f, 0xa9, 0x95, 0x38, 0x4c, 0xec, 0xb3,
+ 0xed, 0x2f, 0xa5, 0x40, 0x13, 0xff, 0x32, 0xa3, 0x77, 0x44, 0xf3, 0xe1,
+ 0xc9, 0x50, 0x09, 0x56, 0xa1, 0x66, 0x5f, 0x12, 0x66, 0x2f, 0x19, 0x71,
+ 0xe8, 0xd2, 0x95, 0x07, 0x7f, 0x69, 0x8a, 0x80, 0x5d, 0xbf, 0x67, 0x67,
+ 0x82, 0x3d, 0x4c, 0x93, 0xba, 0x4d, 0xc5, 0x20, 0x55, 0xb7, 0xee, 0x35,
+ 0x37, 0x1b, 0x7b, 0x7d, 0x03, 0xca, 0xdb, 0xbe, 0x40, 0x42, 0xb2, 0xa1,
+ 0xc7, 0x77, 0x81, 0x41, 0x8f, 0x4f, 0x79, 0x27, 0x14, 0xcb, 0x78, 0xc3,
+ 0x31, 0xe8, 0x15, 0x3c, 0x00, 0x34, 0xf6, 0xca, 0x25, 0x74, 0xf3, 0x32,
+ 0x0d, 0xd0, 0xc8, 0x43, 0xbf, 0xce, 0x46, 0xd4, 0x6b, 0x12, 0x14, 0xcf,
+ 0xd6, 0x97, 0xe6, 0x87, 0xd0, 0x40, 0xac, 0xb3, 0x2a, 0x0e, 0x97, 0x7c,
+ 0x19, 0x5d, 0x5c, 0x69, 0x9b, 0x72, 0xc7, 0x2e, 0x08, 0x4f, 0x5f, 0x2f,
+ 0xfe, 0x1e, 0x86, 0x6d, 0xa0, 0x5d, 0x8e, 0xbc, 0x0e, 0x13, 0x69, 0xa2,
+ 0xf8, 0x0d, 0x0c, 0x62, 0x06, 0x4a, 0x50, 0xd0, 0xb5, 0x37, 0x96, 0x3f,
+ 0x42, 0xec, 0x80, 0xbc, 0x4f, 0xa6, 0xd4, 0xb6, 0x35, 0x1a, 0xd2, 0xd9,
+ 0xb5, 0x29, 0xad, 0xdf, 0xfd, 0xc6, 0x63, 0x83, 0x7a, 0x26, 0xb3, 0x83,
+ 0x27, 0xe3, 0x09, 0x16, 0x28, 0x2f, 0xa1, 0xb4, 0xba, 0x36, 0x39, 0x5a,
+ 0x3f, 0x35, 0x31, 0xe5, 0x50, 0x9d, 0xf8, 0xa2, 0x26, 0x1f, 0x1b, 0x62,
+ 0x5e, 0xe4, 0x55, 0x99, 0xc9, 0xdd, 0xe2, 0x6f, 0x92, 0xc4, 0x69, 0x16,
+ 0x95, 0xe6, 0x59, 0x04, 0xac, 0xf7, 0x89, 0x91, 0x03, 0xcd, 0xa9, 0xc2,
+ 0xc5, 0x72, 0x33, 0xf0, 0x53, 0x78, 0xd6, 0x9e, 0x28, 0x95, 0xf7, 0xed,
+ 0x82, 0x6c, 0xb1, 0xf2, 0x44, 0x6b, 0xbc, 0x72, 0xcd, 0x60, 0x9e, 0x70,
+ 0xca, 0xda, 0xc7, 0x60, 0x57, 0x89, 0x5b, 0xd4, 0x85, 0x7d, 0x78, 0xf6,
+ 0xb6, 0x91, 0x68, 0xcf, 0x61, 0x48, 0xc7, 0xcd, 0x50, 0x28, 0x92, 0x1a,
+ 0x8c, 0xe6, 0x2e, 0x5d, 0xf6, 0xef, 0x90, 0xae, 0xa8, 0x8a, 0xc6, 0xa9,
+ 0x4b, 0xc4, 0x6d, 0x1e, 0xe9, 0xbd, 0x96, 0x84, 0x4c, 0x51, 0xbf, 0xef,
+ 0xa2, 0xaf, 0xc0, 0xd1, 0xdd, 0xe4, 0x0a, 0xe3, 0xdc, 0xe7, 0xe1, 0xcd,
+ 0xca, 0x7b, 0x13, 0xa6, 0xc1, 0x56, 0xda, 0x67, 0x61, 0x2b, 0xcb, 0xb0,
+ 0xb6, 0x68, 0x8e, 0x98, 0x2a, 0x39, 0xf1, 0xe2, 0x44, 0xf1, 0x1c, 0xf3,
+ 0xc2, 0x5c, 0x23, 0xf5, 0xac, 0x29, 0x2e, 0xa6, 0x2c, 0xc0, 0x8a, 0xb7,
+ 0xa2, 0x67, 0xea, 0x85, 0x49, 0xa6, 0xb2, 0xc5, 0x15, 0xdc, 0x9d, 0x7e,
+ 0xaa, 0x1a, 0x85, 0xcc, 0xfb, 0x67, 0x57, 0x4f, 0xfe, 0x44, 0x1c, 0x11,
+ 0x88, 0x5e, 0xaf, 0xfe, 0x91, 0x57, 0x22, 0x58, 0xb4, 0xfc, 0x0b, 0x00,
+ 0xf8, 0x36, 0x6b, 0x98, 0xf7, 0x9c, 0x19, 0x48, 0xd6, 0xbc, 0xdc, 0x4f,
+ 0xa6, 0x35, 0x55, 0x99, 0x3c, 0x36, 0xef, 0xb6, 0x81, 0x8f, 0x4e, 0xd9,
+ 0xcf, 0x70, 0xae, 0x2f, 0x78, 0x02, 0x75, 0x77, 0x97, 0x1e, 0x67, 0xe6,
+ 0x2b, 0x15, 0xfe, 0xdd, 0xe3, 0x54, 0x56, 0x50, 0x29, 0x9d, 0xbe, 0x12,
+ 0xa4, 0xfb, 0x79, 0x4d, 0x61, 0x07, 0x0a, 0xfa, 0x04, 0x91, 0x14, 0x60,
+ 0x9c, 0xf7, 0x94, 0x76, 0x92, 0x67, 0xd2, 0xca, 0x0b, 0xa8, 0x29, 0x97,
+ 0x29, 0xca, 0x3f, 0xdb, 0x89, 0x77, 0x9e, 0x0b, 0xe6, 0xfb, 0x97, 0x36,
+ 0x3f, 0x00, 0xfe, 0xdc, 0x4b, 0xc5, 0x24, 0x73, 0xe6, 0xb9, 0xca, 0x9f,
+ 0x7e, 0xef, 0x50, 0x77, 0x28, 0xf4, 0x83, 0x03, 0xd2, 0x0b, 0xee, 0xfb,
+ 0x1a, 0x4b, 0xe2, 0x55, 0x58, 0xd9, 0x29, 0x70, 0x62, 0xee, 0xc8, 0x89,
+ 0x47, 0x7c, 0xd1, 0xb5, 0x48, 0xe4, 0x5f, 0x60, 0x39, 0x14, 0xf6, 0x3d,
+ 0x9c, 0xc7, 0x32, 0xee, 0x4b, 0x31, 0x6c, 0x07, 0x71, 0x7a, 0xb4, 0x64,
+ 0xc1, 0x3f, 0xfd, 0xe0, 0xb3, 0x93, 0xe6, 0x9c, 0x2c, 0x70, 0x0e, 0x5f,
+ 0xc7, 0x7f, 0x70, 0x19, 0x6d, 0x90, 0x1b, 0xa7, 0xc1, 0xdd, 0x3d, 0x64,
+ 0xcb, 0xdb, 0xb8, 0xf1, 0xa9, 0x05, 0x2e, 0x60, 0x12, 0x49, 0x76, 0x5c,
+ 0xef, 0x4d, 0x5b, 0x4f, 0xca, 0x24, 0x1e, 0x39, 0xe4, 0x62, 0x4f, 0x5e,
+ 0xfb, 0x05, 0x74, 0x88, 0x5f, 0x24, 0xf5, 0x8c, 0x1e, 0x82, 0x36, 0x1e,
+ 0x83, 0x9b, 0xaf, 0x29, 0xd5, 0x9b, 0x57, 0xd0, 0x50, 0x6c, 0xa6, 0x69,
+ 0xd4, 0xf4, 0x3f, 0x4a, 0xaf, 0xe0, 0xda, 0x1d, 0xb5, 0xc5, 0x98, 0x15,
+ 0x2a, 0xc3, 0x09, 0x1c, 0xe4, 0x12, 0x36, 0xfd, 0xc3, 0x2a, 0xdc, 0x42,
+ 0x3d, 0xaa, 0x9c, 0xc9, 0x86, 0x65, 0x4a, 0x4c, 0x8b, 0xc6, 0x4c, 0x59,
+ 0x6a, 0x18, 0x1e, 0x23, 0xb0, 0xc5, 0x61, 0x37, 0x4a, 0x41, 0x20, 0xda,
+ 0x83, 0x72, 0xe5, 0xd3, 0x73, 0x78, 0x6c, 0x31, 0x8d, 0xaa, 0x87, 0xe2,
+ 0x7f, 0xa1, 0xd1, 0xe8, 0x31, 0x1e, 0x0a, 0x08, 0x7e, 0x61, 0xcf, 0xa5,
+ 0x6d, 0x0e, 0xff, 0x9c, 0xfe, 0xfd, 0xf9, 0x6b, 0x81, 0x2a, 0x49, 0x9f,
+ 0xd2, 0x17, 0x7e, 0x90, 0x5e, 0x28, 0x44, 0x19, 0xad, 0x84, 0x14, 0xfd,
+ 0x6e, 0x11, 0xe1, 0x59, 0xf2, 0x9c, 0xff, 0x74, 0x2f, 0x9e, 0xb7, 0x53,
+ 0xb3, 0x1c, 0xb0, 0x95, 0x0b, 0xe1, 0xc5, 0x53, 0xb6, 0x75, 0x51, 0x53,
+ 0x2f, 0x40, 0x6f, 0xd1, 0xdd, 0xa8, 0x82, 0x51, 0x6f, 0xef, 0x57, 0x66,
+ 0x35, 0x15, 0x1d, 0xb1, 0xae, 0x9c, 0x8c, 0x52, 0x73, 0xff, 0xae, 0x2c,
+ 0x91, 0xbf, 0x0f, 0x55, 0x28, 0x33, 0x38, 0x88, 0xb8, 0xee, 0xae, 0x3c,
+ 0x79, 0x10, 0x20, 0xc6, 0x70, 0xae, 0xf2, 0x5d, 0x2b, 0xe8, 0xd9, 0x30,
+ 0x2c, 0x67, 0xbd, 0x43, 0x55, 0x80, 0x9f, 0xa2, 0x5e, 0x48, 0xba, 0x61,
+ 0xb3, 0xe9, 0x44, 0xac, 0xf7, 0xbf, 0x2d, 0xf6, 0x86, 0x39, 0x26, 0x9c,
+ 0xe8, 0x55, 0x97, 0x88, 0xe5, 0x64, 0xf9, 0xa2, 0x0c, 0x11, 0xdc, 0x34,
+ 0x44, 0x64, 0xd5, 0x72, 0xb5, 0x85, 0xa7, 0xeb, 0xc5, 0x54, 0xfa, 0x2c,
+ 0x8d, 0x15, 0xe3, 0xc1, 0x60, 0x30, 0x88, 0x31, 0xfc, 0x28, 0x1d, 0xfa,
+ 0xf0, 0x2a, 0x07, 0x1a, 0x27, 0xa5, 0xc0, 0xa0, 0xc6, 0xf7, 0x37, 0xaa,
+ 0x8f, 0x1e, 0x1a, 0xd2, 0x10, 0xf3, 0xed, 0xc1, 0x67, 0x17, 0xa6, 0x54,
+ 0x87, 0xfd, 0x21, 0xba, 0x6e, 0xf5, 0x31, 0x37, 0x0c, 0x3a, 0xbd, 0x99,
+ 0x26, 0x49, 0xc0, 0xa8, 0x2b, 0xe7, 0x17, 0xe3, 0x9a, 0x47, 0x09, 0x3a,
+ 0x3f, 0x66, 0x09, 0xfd, 0x5a, 0x94, 0x6d, 0xb7, 0x85, 0x07, 0xf3, 0xe9,
+ 0x45, 0x07, 0x56, 0x62, 0xc7, 0x3b, 0x84, 0x8e, 0x1b, 0x46, 0xd2, 0x17,
+ 0x70, 0xf4, 0xd8, 0x70, 0xb3, 0x58, 0xb6, 0x3e, 0x21, 0x00, 0x25, 0x03,
+ 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x10,
+ 0x00, 0x05, 0x10, 0x10, 0x00, 0x18, 0x01, 0x05, 0x24, 0x7f, 0x01, 0x7d,
+ 0x53, 0x39, 0xa0, 0xa4, 0xde, 0xe1, 0xe8, 0x65, 0xb2, 0xe2, 0xfd, 0x0a,
+ 0x9a, 0xdf, 0x50, 0x69, 0x24, 0x33, 0x26, 0x9e, 0xb6, 0x3a, 0x2a, 0xe7,
+ 0x49, 0x0a, 0x28, 0xab, 0xeb, 0xda, 0x2b, 0x10, 0xf3, 0x3b, 0xd3, 0x58,
+ 0x30, 0xbd, 0xe7, 0x8e, 0x0d, 0x9b, 0x3b, 0xb1, 0x19, 0xba, 0x0c, 0xb8,
+ 0xd6, 0x92, 0xf9, 0xe9, 0x8c, 0x40, 0x83, 0xb2, 0xe9, 0xf0, 0x44, 0x85,
+ 0x60, 0x7f, 0xc5, 0x67, 0x64, 0x00, 0x05, 0x11, 0xc1, 0x5e, 0xb8, 0x00,
+ 0x55, 0xd1, 0x65, 0xd4, 0x7c, 0x75, 0x54, 0xce, 0x00, 0xfe, 0xf1, 0x7b,
+ 0x65, 0x51, 0xd8, 0xa5, 0x5c, 0x47, 0xd8, 0x84, 0x0d, 0xaf, 0x59, 0x06,
+ 0x41, 0x1c, 0xb0, 0x33, 0x43, 0x80, 0xc5, 0x21, 0x5b, 0x27, 0xad, 0x5f,
+ 0xe0, 0x54, 0xdf, 0x9c, 0x78, 0xcc, 0x15, 0x97, 0x5d, 0x70, 0x14, 0x10,
+ 0xc9, 0x5c, 0x77, 0x44, 0xf3, 0xe0, 0xe7, 0x42, 0x2e, 0xe9, 0x72, 0x31,
+ 0x06, 0xa8, 0xba, 0x0d, 0x91, 0x7f, 0xd8, 0x85, 0x9e, 0x87, 0xb1, 0x37,
+ 0xcb, 0x1b, 0x56, 0xf3, 0xb0, 0xee, 0x6e, 0x0a, 0xe5, 0x11, 0x29, 0x9f,
+ 0x34, 0xc3, 0xd3, 0xc8, 0x94, 0x34, 0x84, 0xe0, 0x5e, 0x8d, 0x72, 0x35,
+ 0xa5, 0x35, 0xc5, 0xcc, 0x62, 0x76, 0x20, 0x6f, 0xd4, 0x48, 0x2a, 0x9d,
+ 0x4e, 0xa9, 0x22, 0x06, 0xce, 0x09, 0xc7, 0x3d, 0xfe, 0xe3, 0x5b, 0x53,
+ 0xd5, 0xdd, 0x75, 0x5b, 0xcf, 0x70, 0x3d, 0x38, 0xdb, 0xef, 0x12, 0xd4,
+ 0xe2, 0x69, 0x14, 0x26, 0x3f, 0x53, 0x85, 0x8a, 0xd4, 0x9f, 0x42, 0xe0,
+ 0x61, 0x30, 0x7f, 0x97, 0xbb, 0x23, 0x24, 0x9d, 0x75, 0x15, 0x6b, 0xbf,
+ 0x53, 0x29, 0xb5, 0x87, 0x40, 0x7a, 0x0e, 0x87, 0xdd, 0x73, 0xfe, 0xf6,
+ 0x3d, 0x49, 0x25, 0xc8, 0x83, 0xd0, 0xb8, 0x7e, 0x0e, 0x3a, 0x2f, 0xcf,
+ 0x9b, 0x0c, 0x22, 0x1f, 0x56, 0xca, 0x5b, 0xfb, 0x93, 0xaa, 0xc5, 0x05,
+ 0xcd, 0x8f, 0x04, 0x51, 0x71, 0xa1, 0x4a, 0x37, 0xf9, 0xae, 0xa6, 0xec,
+ 0x1c, 0x3d, 0xa6, 0x29, 0x26, 0x48, 0x50, 0x58, 0xb8, 0xca, 0x6e, 0x0d,
+ 0xa7, 0x47, 0xd0, 0xc4, 0x8b, 0x83, 0x45, 0xbe, 0xea, 0x18, 0x7e, 0xc5,
+ 0xe0, 0x68, 0xef, 0xad, 0x5e, 0xfd, 0x05, 0x87, 0xa3, 0xad, 0x76, 0xb3,
+ 0xf2, 0x4f, 0x20, 0xc8, 0x16, 0x05, 0x29, 0x6b, 0x58, 0x8e, 0xa1, 0xe1,
+ 0x4e, 0x44, 0x63, 0x22, 0x05, 0x79, 0x77, 0x9a, 0x31, 0xde, 0x87, 0xfd,
+ 0x48, 0x2a, 0xcb, 0x08, 0xa7, 0xc1, 0xe7, 0x2f, 0x81, 0xc3, 0x51, 0x75,
+ 0x31, 0x53, 0x50, 0x4c, 0x08, 0x1d, 0x98, 0x4b, 0x80, 0x75, 0xb0, 0x7a,
+ 0xb0, 0xac, 0x6f, 0xff, 0x11, 0x8b, 0xf4, 0x8b, 0xd8, 0x91, 0x3a, 0x55,
+ 0xe8, 0xe9, 0xa1, 0x82, 0x03, 0x71, 0x53, 0x8e, 0x22, 0x8c, 0xdd, 0xec,
+ 0x08, 0xf5, 0x1f, 0x61, 0xa1, 0xa5, 0x8c, 0xa8, 0x87, 0x91, 0xa0, 0x64,
+ 0x9e, 0x34, 0xb8, 0x15, 0x02, 0x0f, 0x31, 0xba, 0x70, 0x79, 0xa7, 0xb8,
+ 0x98, 0xbc, 0x44, 0xd0, 0xd2, 0xb0, 0x16, 0x0d, 0xb9, 0x70, 0xe4, 0x90,
+ 0x85, 0x8f, 0x9e, 0x81, 0x01, 0x86, 0x93, 0x20, 0xb2, 0x1c, 0x95, 0xf4,
+ 0xef, 0x9f, 0x42, 0xad, 0x16, 0x9e, 0x4b, 0xd9, 0xdd, 0x77, 0xcf, 0x8c,
+ 0x78, 0x76, 0x8e, 0x25, 0xef, 0xc4, 0xb1, 0xe4, 0xe8, 0x82, 0x1d, 0xaa,
+ 0x72, 0xed, 0xac, 0x58, 0xc9, 0x68, 0x63, 0x51, 0x87, 0x77, 0x69, 0x9c,
+ 0x23, 0x4d, 0x84, 0x1d, 0x26, 0xb4, 0xc2, 0x49, 0xd4, 0xa5, 0x62, 0x16,
+ 0xd5, 0x57, 0x94, 0xf1, 0x6e, 0xdb, 0xd2, 0xfd, 0x12, 0x5b, 0xc3, 0x4b,
+ 0x5c, 0x27, 0x44, 0x4f, 0xdb, 0xc0, 0xfd, 0xb7, 0xb6, 0xce, 0xbc, 0xd1,
+ 0xce, 0xe6, 0xa5, 0x01, 0xdd, 0x07, 0x2d, 0x15, 0x46, 0xe1, 0x0d, 0x2a,
+ 0x54, 0x2b, 0x7d, 0x31, 0x20, 0x97, 0x19, 0x91, 0x49, 0xab, 0x08, 0x63,
+ 0x51, 0xad, 0xe4, 0x28, 0xcc, 0xf6, 0x92, 0x1b, 0x4f, 0x64, 0xcd, 0xf1,
+ 0x5b, 0x80, 0x4e, 0x63, 0x8b, 0x54, 0xbe, 0x38, 0x34, 0xcc, 0x21, 0x6a,
+ 0xf2, 0x6b, 0x64, 0x74, 0x81, 0x62, 0xe1, 0x2c, 0x3c, 0x1a, 0x22, 0x32,
+ 0x84, 0xe2, 0x99, 0x7c, 0x1b, 0xc0, 0x2f, 0x22, 0x37, 0xe0, 0x83, 0xa0,
+ 0x00, 0xc1, 0x6b, 0x3c, 0xae, 0x08, 0x8d, 0x54, 0x7d, 0x1c, 0x24, 0x5a,
+ 0x8d, 0x67, 0xe5, 0x37, 0x38, 0x9f, 0xe9, 0xf0, 0xa9, 0x91, 0x3c, 0x75,
+ 0x3d, 0xec, 0x3b, 0xfa, 0x38, 0x65, 0x29, 0x8d, 0xfb, 0x9e, 0x62, 0x00,
+ 0xbb, 0x7e, 0x74, 0x37, 0x31, 0x49, 0x98, 0x86, 0xab, 0x5a, 0xa6, 0x6b,
+ 0x8b, 0xec, 0xbe, 0x20, 0x84, 0x00, 0x5e, 0xaf, 0x9e, 0xea, 0xa0, 0x3b,
+ 0x8c, 0xdb, 0xc5, 0x52, 0x00, 0x02, 0x0c, 0x72, 0x95, 0xb2, 0x30, 0xa7,
+ 0x7b, 0x3e, 0x91, 0x01, 0xac, 0xe9, 0xae, 0x32, 0x1c, 0x8a, 0x0b, 0x00,
+ 0x2a, 0x7c, 0xa6, 0x84, 0x64, 0xa5, 0x21, 0xdb, 0x2c, 0xe9, 0xee, 0x87,
+ 0x35, 0x2b, 0x36, 0xfa, 0xcc, 0x75, 0xf9, 0x1f, 0x61, 0x82, 0x10, 0x44,
+ 0x0a, 0xe6, 0xcc, 0x44, 0x32, 0xe0, 0x0a, 0xa7, 0xa9, 0x8f, 0x78, 0xf1,
+ 0xa5, 0x91, 0x69, 0x34, 0xd6, 0xa7, 0x94, 0x42, 0xe2, 0xc8, 0xc0, 0xe5,
+ 0xcf, 0xc2, 0xba, 0xb9, 0x17, 0x7d, 0x33, 0xe1, 0xd8, 0x75, 0xa9, 0x5b,
+ 0xec, 0x65, 0x7d, 0x73, 0xf9, 0xb2, 0xcb, 0x25, 0xb9, 0x89, 0x1a, 0x6c,
+ 0xaf, 0x81, 0x2e, 0x2e, 0x2c, 0x62, 0xd3, 0x78, 0x58, 0x1b, 0xd6, 0xee,
+ 0x35, 0x60, 0x8a, 0xc2, 0x9c, 0xf3, 0xe4, 0x0a, 0xcb, 0xa1, 0x0a, 0x31,
+ 0xd1, 0x8a, 0x7d, 0x8b, 0xf3, 0x36, 0x70, 0xbe, 0x6d, 0x69, 0xbb, 0xef,
+ 0xea, 0xa2, 0x30, 0xa9, 0xb8, 0xaf, 0xe6, 0x59, 0x62, 0xd6, 0xef, 0xdb,
+ 0x8b, 0x65, 0x7d, 0x18, 0x0b, 0x7f, 0x37, 0x53, 0x55, 0xd0, 0x00, 0xb5,
+ 0x04, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1,
+ 0x17, 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x01, 0x15, 0xa4, 0x80, 0xae,
+ 0x63, 0x42, 0x88, 0xb0, 0xe7, 0xbf, 0x0f, 0x7a, 0x1b, 0xe1, 0xdc, 0x25,
+ 0x69, 0xe6, 0x4c, 0x01, 0xb1, 0xcf, 0x0a, 0x4b, 0x70, 0x62, 0xe4, 0x27,
+ 0x13, 0x5d, 0x01, 0x0e, 0x5b, 0x07, 0x80, 0x42, 0x0f, 0x71, 0x99, 0x55,
+ 0x80, 0xe7, 0x8c, 0xd4, 0x8f, 0x22, 0xd1, 0x0c, 0x86, 0x8b, 0x09, 0x11,
+ 0x03, 0xf1, 0x09, 0xea, 0x95, 0xc2, 0x1d, 0x2a, 0x97, 0x28, 0xcc, 0xb7,
+ 0x35, 0xef, 0x3f, 0xbd, 0x52, 0x09, 0xdd, 0xc9, 0xdd, 0xa2, 0x81, 0x50,
+ 0x4e, 0x66, 0x4a, 0x6f, 0x02, 0xbf, 0xb6, 0xf7, 0x0e, 0x00, 0x99, 0x0c,
+ 0x74, 0xf0, 0x53, 0x2d, 0x07, 0xe5, 0xc8, 0xb8, 0xc1, 0xe3, 0xf6, 0xf7,
+ 0xb7, 0xd4, 0xee, 0xc9, 0x9b, 0x5a, 0xc4, 0x98, 0xd0, 0x1d, 0xbd, 0x77,
+ 0x7c, 0x5f, 0xd4, 0x18, 0x56, 0x1b, 0x98, 0x12, 0x89, 0x0b, 0xa8, 0xd9,
+ 0xd1, 0x21, 0x42, 0xed, 0xa9, 0x7f, 0xaf, 0x6b, 0xdc, 0x90, 0xaa, 0x22,
+ 0xda, 0xa1, 0xac, 0xc8, 0xd2, 0x90, 0x21, 0x3c, 0xa9, 0xc8, 0x7c, 0x27,
+ 0x60, 0x78, 0xd5, 0x04, 0xf0, 0x1c, 0x3a, 0x33, 0x7e, 0x48, 0x10, 0x2e,
+ 0xc2, 0x3a, 0xa8, 0x00, 0x16, 0x43, 0xbc, 0x4f, 0x4d, 0x33, 0xda, 0x74,
+ 0xc4, 0x76, 0x4d, 0x1c, 0x29, 0xda, 0xdb, 0x3f, 0x9e, 0x4f, 0x24, 0x00,
+ 0x13, 0xff, 0x32, 0xb1, 0xbc, 0xda, 0xb9, 0xbe, 0x78, 0x01, 0x7d, 0xcb,
+ 0xdc, 0xbc, 0xf7, 0xe2, 0x95, 0x32, 0x1c, 0xa0, 0xae, 0x92, 0x91, 0xc7,
+ 0xaa, 0xd5, 0xbe, 0x3c, 0xa9, 0x7b, 0xac, 0x8d, 0xc1, 0xc2, 0xfc, 0x34,
+ 0xb1, 0x04, 0x81, 0x12, 0x12, 0xc0, 0xca, 0xeb, 0xfd, 0xbf, 0xa4, 0x35,
+ 0x20, 0x97, 0xbf, 0x73, 0x77, 0x0c, 0xb9, 0xc2, 0x87, 0xee, 0xab, 0xf6,
+ 0x5d, 0x27, 0x26, 0xbb, 0x1f, 0x3e, 0x48, 0xf5, 0x5e, 0x4e, 0x92, 0xca,
+ 0x15, 0xb7, 0x46, 0x9a, 0x48, 0x7b, 0x11, 0xcc, 0xb1, 0x4c, 0xe3, 0xae,
+ 0xaa, 0x52, 0xb3, 0x7e, 0xd9, 0x3b, 0xae, 0xa3, 0x02, 0x3a, 0x3f, 0xda,
+ 0xf8, 0x6f, 0x09, 0x28, 0x78, 0xad, 0x3c, 0x7f, 0x85, 0xf5, 0x9b, 0xfc,
+ 0xf2, 0x0b, 0x41, 0x3d, 0x6b, 0xd1, 0xb7, 0x81, 0x52, 0x42, 0x2e, 0x6b,
+ 0xac, 0x09, 0xea, 0x72, 0xbb, 0x3c, 0xaf, 0xe0, 0x5c, 0x6d, 0x48, 0x66,
+ 0x22, 0x79, 0xa7, 0x98, 0x1e, 0x4e, 0xc6, 0x54, 0x17, 0xb4, 0x23, 0xad,
+ 0x44, 0xf4, 0x2c, 0xc2, 0x5e, 0xd7, 0x49, 0xa5, 0x4e, 0x36, 0x6f, 0xc5,
+ 0x69, 0x6c, 0x27, 0xbe, 0xc3, 0x0c, 0x6c, 0x07, 0xb1, 0x40, 0xb7, 0xf1,
+ 0x48, 0x4d, 0xc1, 0xfd, 0xe5, 0x51, 0x1c, 0xf1, 0x99, 0x2d, 0xa2, 0x1f,
+ 0xff, 0xef, 0xb3, 0xf7, 0x31, 0x2f, 0x26, 0xae, 0xe3, 0xda, 0xc4, 0x71,
+ 0xe3, 0x95, 0x7d, 0x9e, 0xff, 0xf8, 0xa9, 0x34, 0xdd, 0x09, 0xe4, 0x75,
+ 0xb6, 0xf4, 0xba, 0x2c, 0x3a, 0x6a, 0xb7, 0x3b, 0x8a, 0xff, 0x63, 0xc1,
+ 0x29, 0x82, 0x15, 0xe4, 0xde, 0xb8, 0x08, 0x4d, 0x3c, 0xd4, 0x3c, 0x0f,
+ 0xfe, 0xe8, 0xbd, 0xbc, 0x42, 0xd9, 0x7a, 0xf2, 0x54, 0xf4, 0xfe, 0x70,
+ 0xc1, 0x12, 0x17, 0x88, 0x26, 0x02, 0xc0, 0x00, 0x27, 0xc3, 0x9e, 0xd9,
+ 0xbb, 0xdb, 0x7a, 0x1a, 0x75, 0x30, 0x93, 0xef, 0x73, 0xe7, 0xea, 0xd5,
+ 0xfb, 0x54, 0xf5, 0x9e, 0xbb, 0x7a, 0xe7, 0xb6, 0x30, 0x44, 0x77, 0x70,
+ 0xc3, 0x9f, 0x58, 0xd7, 0xaf, 0xbd, 0xcd, 0xa2, 0x3e, 0x69, 0x94, 0xe8,
+ 0x2f, 0x77, 0xb1, 0x17, 0xc5, 0x36, 0x75, 0xee, 0x2d, 0x3c, 0x21, 0x1d,
+ 0x1c, 0x3c, 0xfb, 0xa6, 0x0b, 0x1c, 0x15, 0x21, 0x72, 0xee, 0x55, 0xb1,
+ 0x48, 0x40, 0xbb, 0x19, 0x0c, 0x48, 0x0a, 0x1e, 0x1a, 0xbe, 0x92, 0x0a,
+ 0xb6, 0x13, 0x1e, 0xfe, 0x53, 0xea, 0x61, 0x72, 0xe8, 0x89, 0x92, 0x57,
+ 0xeb, 0x4a, 0x38, 0xb0, 0x0c, 0x4c, 0xfd, 0x42, 0x18, 0x0d, 0x9a, 0x23,
+ 0x43, 0x6c, 0xf5, 0xa0, 0xb2, 0x52, 0xf3, 0xda, 0xee, 0x1e, 0x98, 0x83,
+ 0x5a, 0x3b, 0x16, 0x8a, 0xed, 0xec, 0x5f, 0x64, 0xcb, 0xd6, 0x86, 0x01,
+ 0x5a, 0x6c, 0x3d, 0xe6, 0xa4, 0x5a, 0xf2, 0x1e, 0x41, 0x9a, 0x23, 0x7b,
+ 0x54, 0xad, 0xcc, 0xde, 0xd2, 0x4e, 0x87, 0xfc, 0x47, 0xd9, 0xbf, 0x63,
+ 0x0d, 0x60, 0xbb, 0xbf, 0x0a, 0xcc, 0x99, 0x5b, 0xa3, 0x2e, 0xd8, 0xc0,
+ 0x55, 0x34, 0x67, 0xec, 0xe5, 0xe8, 0xb7, 0xb7, 0xb6, 0x8f, 0x88, 0x71,
+ 0x2f, 0x31, 0xad, 0x52, 0x8e, 0xa4, 0xeb, 0x17, 0x2d, 0x29, 0xcc, 0x38,
+ 0x5d, 0xa2, 0x3f, 0xef, 0xc0, 0xbc, 0xfa, 0xed, 0xd2, 0xb4, 0x4a, 0xf9,
+ 0xda, 0x57, 0x51, 0x18, 0xd2, 0x82, 0x52, 0xde, 0x70, 0x34, 0x44, 0x3c,
+ 0x90, 0xcb, 0xa0, 0x7a, 0xd8, 0x25, 0xff, 0x59, 0x79, 0x7c, 0x1f, 0x3c,
+ 0x36, 0x4a, 0x9c, 0x48, 0xae, 0x4e, 0xe9, 0xaa, 0xd0, 0x21, 0xb3, 0xc5,
+ 0x85, 0x1f, 0x43, 0x81, 0x59, 0xd9, 0x8f, 0xfd, 0x0f, 0x96, 0xd2, 0x0b,
+ 0x55, 0x16, 0x59, 0xd2, 0x6e, 0x3c, 0x2e, 0xd3, 0x76, 0xfa, 0xda, 0x2a,
+ 0xaf, 0x46, 0x08, 0x4e, 0x5a, 0x3d, 0x5e, 0x30, 0x44, 0x39, 0x38, 0x47,
+ 0xcb, 0x9e, 0xc7, 0x83, 0x56, 0x0e, 0x51, 0xb0, 0xca, 0x6a, 0x5f, 0x80,
+ 0x89, 0x9f, 0x14, 0xf1, 0xdf, 0xe1, 0x28, 0xf5, 0xf1, 0x00, 0xab, 0x84,
+ 0x15, 0x48, 0x5b, 0xd2, 0xd1, 0xa6, 0xf1, 0xcd, 0x62, 0x3d, 0x75, 0x21,
+ 0xbc, 0x78, 0x9e, 0xae, 0x96, 0x1e, 0x4c, 0x81, 0x6f, 0xdb, 0x10, 0xb0,
+ 0xb2, 0x05, 0x89, 0x37, 0xef, 0x0a, 0x89, 0x27, 0x3f, 0x5d, 0x85, 0x21,
+ 0x9d, 0x26, 0x73, 0xe4, 0x4e, 0x81, 0x65, 0x7c, 0x92, 0x84, 0x06, 0xf3,
+ 0xb8, 0x15, 0x45, 0x3c, 0x6d, 0x85, 0x07, 0x83, 0x78, 0x7a, 0x17, 0xdf,
+ 0xa6, 0x16, 0x26, 0x93, 0xcd, 0xe9, 0x66, 0x3b, 0x1b, 0x7d, 0xe2, 0xd8,
+ 0xd8, 0x05, 0xfb, 0x54, 0xdc, 0xc1, 0x1f, 0xba, 0xc5, 0x59, 0x15, 0xca,
+ 0x74, 0x95, 0xbb, 0x4b, 0x59, 0xb7, 0x59, 0x26, 0xb8, 0xc4, 0x99, 0xd4,
+ 0x23, 0x6c, 0xb2, 0x6f, 0x0c, 0x9c, 0x13, 0xf5, 0xa8, 0x2b, 0x54, 0x9d,
+ 0xf5, 0x2c, 0x30, 0xa3, 0x98, 0xfe, 0x45, 0x87, 0x96, 0x43, 0x4f, 0x65,
+ 0x01, 0x7f, 0x59, 0x1e, 0xaf, 0xab, 0xbf, 0xd4, 0x20, 0x72, 0x35, 0xf5,
+ 0x73, 0xe4, 0x6e, 0xce, 0x81, 0x43, 0x8f, 0xef, 0x31, 0xb8, 0x64, 0xbf,
+ 0x30, 0x9e, 0x3c, 0xf2, 0x32, 0x75, 0x0a, 0x36, 0xc4, 0x03, 0xe8, 0xbc,
+ 0xd3, 0x0a, 0xc8, 0xc0, 0x8b, 0x69, 0x19, 0xf2, 0xcc, 0xb9, 0x72, 0x29,
+ 0x57, 0xef, 0x0c, 0x36, 0x96, 0x1b, 0x99, 0xd3, 0x55, 0x5a, 0x5e, 0x3d,
+ 0xce, 0x26, 0x44, 0xb6, 0x67, 0xb9, 0x7d, 0x55, 0xe0, 0xbb, 0x11, 0x8a,
+ 0x74, 0xbc, 0xa3, 0xb9, 0x38, 0xdb, 0xeb, 0xf6, 0xdf, 0x77, 0x48, 0x17,
+ 0xf5, 0x59, 0xf2, 0xa8, 0xd6, 0x58, 0xb8, 0x49, 0x04, 0x94, 0xe2, 0xc7,
+ 0xcb, 0x08, 0xd8, 0x45, 0xbc, 0x81, 0xcd, 0x3f, 0x43, 0x49, 0x7e, 0xf1,
+ 0x1a, 0x20, 0x72, 0x33, 0xc4, 0x55, 0xb7, 0xf6, 0x72, 0x3c, 0xf2, 0x6c,
+ 0x49, 0x20, 0x64, 0x39, 0x46, 0x4c, 0x69, 0x50, 0x59, 0x4f, 0x97, 0xb6,
+ 0x53, 0x9f, 0x64, 0x12, 0xa3, 0xc2, 0xc3, 0xa3, 0xe1, 0xbd, 0xd8, 0x18,
+ 0xcd, 0x2a, 0x80, 0x45, 0x7e, 0x3f, 0x7c, 0x75, 0x87, 0xc6, 0xf9, 0x16,
+ 0x54, 0x9b, 0xc7, 0x4b, 0x76, 0x49, 0xcf, 0xe2, 0xc2, 0x51, 0x64, 0xa4,
+ 0xed, 0xc7, 0xbe, 0x27, 0x2e, 0x78, 0xcb, 0x1a, 0xfa, 0x4b, 0x12, 0x55,
+ 0xb0, 0x63, 0x22, 0xb8, 0xa8, 0x99, 0xef, 0x16, 0x9c, 0xd2, 0x14, 0xc2,
+ 0x4d, 0x6d, 0x2b, 0xbb, 0x94, 0x98, 0x6b, 0x68, 0xd8, 0x03, 0x5d, 0xd5,
+ 0xc6, 0xed, 0x8f, 0x95, 0x92, 0x12, 0xbe, 0xd6, 0x77, 0x5f, 0x17, 0xe9,
+ 0x8c, 0x92, 0xf1, 0x64, 0x5f, 0x6e, 0xe5, 0x17, 0x71, 0x49, 0x68, 0x0b,
+ 0xe4, 0xf0, 0x0d, 0xea, 0x32, 0xe4, 0x55, 0x9d, 0x62, 0xba, 0x79, 0xec,
+ 0xd3, 0xf6, 0xe0, 0xae, 0x4c, 0x28, 0x53, 0x4d, 0x7c, 0x4f, 0x0a, 0x83,
+ 0xab, 0x78, 0xdc, 0x12, 0x92, 0x7f, 0x34, 0xc9, 0xd4, 0x8f, 0x8d, 0x20,
+ 0xdd, 0xab, 0x48, 0x51, 0x5e, 0xc8, 0x42, 0xee, 0x96, 0x4a, 0x72, 0xf0,
+ 0xf0, 0xee, 0x17, 0x7a, 0x18, 0x03, 0x96, 0xa9, 0x9a, 0xa4, 0xf5, 0x51,
+ 0xef, 0xa1, 0xc6, 0x32, 0x84, 0x13, 0x46, 0xb2, 0x5b, 0x57, 0x19, 0x40,
+ 0x19, 0x43, 0x34, 0xc5, 0xaa, 0x4d, 0x24, 0x24, 0xea, 0x1f, 0xf1, 0x86,
+ 0x86, 0xc2, 0x70, 0x8d, 0xb8, 0x06, 0x27, 0xdc, 0xaf, 0x2b, 0x32, 0x75,
+ 0x45, 0xfa, 0xa3, 0xe2, 0xaf, 0xac, 0x61, 0x6b, 0x47, 0xf0, 0xca, 0xf1,
+ 0xf2, 0x0c, 0xe5, 0xd7, 0xd2, 0x2f, 0x89, 0x23, 0x9a, 0x83, 0xc7, 0x48,
+ 0x17, 0x92, 0xa0, 0x00, 0xbe, 0x03, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x91, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, 0x1e,
+ 0xe9, 0x70, 0x7f, 0x47, 0x45, 0x80, 0xf1, 0x62, 0x3c, 0xcf, 0x5a, 0x41,
+ 0xd2, 0x4b, 0x28, 0x36, 0xd3, 0xb9, 0x8b, 0x6e, 0x85, 0xbd, 0x55, 0xdb,
+ 0x2a, 0x2a, 0x21, 0x2e, 0x08, 0x00, 0x1a, 0x88, 0x9b, 0x0e, 0xc7, 0x32,
+ 0xc1, 0x8b, 0x24, 0xd2, 0xd5, 0x57, 0x82, 0xe5, 0x8b, 0x34, 0x46, 0x24,
+ 0xb1, 0xfa, 0xb6, 0xe2, 0x82, 0x4d, 0x00, 0x99, 0x1f, 0x27, 0x7a, 0xb7,
+ 0x28, 0x9b, 0x13, 0x1d, 0x31, 0x0a, 0xc7, 0xcb, 0xd9, 0xad, 0x97, 0x2b,
+ 0x59, 0xcf, 0x19, 0xf7, 0x51, 0x22, 0x58, 0x4c, 0x42, 0x9e, 0x48, 0x9b,
+ 0x8b, 0x44, 0xf4, 0xc5, 0x99, 0x69, 0x52, 0x0c, 0x89, 0xd8, 0x58, 0x87,
+ 0x5d, 0x3f, 0x4e, 0x4d, 0xd4, 0x3e, 0x69, 0xb5, 0xb4, 0x17, 0x09, 0xf3,
+ 0x4c, 0x87, 0x4f, 0xc4, 0xe4, 0xc2, 0x08, 0xa3, 0x56, 0xd0, 0xb6, 0xb3,
+ 0xa8, 0x01, 0xc9, 0x8b, 0xa8, 0x89, 0x18, 0x1f, 0xb8, 0x79, 0x2b, 0xb4,
+ 0x9e, 0xa7, 0x4c, 0x81, 0x13, 0xd9, 0x36, 0x5d, 0x02, 0xbb, 0x8e, 0xba,
+ 0xaa, 0x59, 0x8d, 0x86, 0x97, 0xd1, 0xda, 0x7b, 0x47, 0x5b, 0x33, 0xbc,
+ 0x9f, 0x2a, 0xeb, 0x60, 0x3f, 0x14, 0xb1, 0xfd, 0xdc, 0xe2, 0xfe, 0x7a,
+ 0x26, 0x20, 0xc0, 0xcf, 0x0a, 0x0a, 0x28, 0x6b, 0x72, 0x4a, 0x4b, 0xe1,
+ 0x9f, 0xe3, 0xe7, 0xfe, 0xc9, 0xaf, 0x6c, 0xa2, 0x48, 0x58, 0x42, 0xb6,
+ 0x2f, 0x90, 0x88, 0xf4, 0x30, 0xa3, 0x4d, 0x1b, 0xdc, 0xfe, 0x83, 0x26,
+ 0x3b, 0x38, 0xd5, 0xa9, 0x1b, 0x06, 0x64, 0x76, 0x86, 0x28, 0x3c, 0x91,
+ 0x20, 0xf9, 0x6c, 0x76, 0x66, 0x8d, 0xb5, 0xf6, 0xdd, 0x5d, 0xfc, 0x7c,
+ 0x4a, 0xca, 0x05, 0xac, 0xa1, 0xba, 0x85, 0x84, 0xef, 0x11, 0x9f, 0x47,
+ 0xf7, 0x34, 0x90, 0x72, 0xc5, 0x16, 0xf8, 0x01, 0xd0, 0x11, 0x0b, 0x8a,
+ 0xdc, 0x12, 0xb0, 0xcf, 0x4a, 0xce, 0xca, 0x2d, 0x92, 0x13, 0x69, 0x9e,
+ 0x74, 0xfe, 0xcc, 0x80, 0x36, 0xe8, 0xd2, 0x2a, 0x5b, 0x5c, 0x91, 0xb6,
+ 0xe9, 0x59, 0xd1, 0xad, 0xb3, 0x36, 0x4f, 0x02, 0xcc, 0xdb, 0x71, 0xef,
+ 0x85, 0xaf, 0xe5, 0x1e, 0xb4, 0x3e, 0xa4, 0x99, 0x10, 0x36, 0x41, 0xa7,
+ 0xb2, 0xb0, 0xe4, 0x11, 0x35, 0x1c, 0x96, 0x34, 0x10, 0x62, 0x23, 0x73,
+ 0xfd, 0x38, 0xaa, 0xe5, 0xd4, 0x95, 0x35, 0xa7, 0x61, 0xe4, 0x51, 0xb9,
+ 0x85, 0x86, 0xe2, 0x80, 0x1f, 0x27, 0x2d, 0x26, 0x72, 0x9e, 0x58, 0x4f,
+ 0xe5, 0xb2, 0xf0, 0x02, 0x8e, 0xc7, 0x3f, 0xe2, 0x35, 0xa6, 0xe0, 0x34,
+ 0x14, 0x03, 0x01, 0xa1, 0xa2, 0xc2, 0x03, 0x1d, 0x93, 0x48, 0x08, 0xf8,
+ 0xf7, 0x4c, 0x8a, 0x16, 0xdd, 0x59, 0x3f, 0xca, 0xb4, 0xbd, 0x8e, 0x43,
+ 0x93, 0xe0, 0x66, 0xd9, 0xe8, 0x65, 0xc7, 0x06, 0xe9, 0x3c, 0xec, 0x29,
+ 0xe7, 0x25, 0xb8, 0xba, 0x6f, 0x12, 0xe9, 0x25, 0xa7, 0xa3, 0x2a, 0x3b,
+ 0x71, 0x20, 0x95, 0xbc, 0xb5, 0x0b, 0x4f, 0x76, 0x65, 0x27, 0x7d, 0xc0,
+ 0x68, 0x69, 0x78, 0xe6, 0x12, 0xa2, 0xfb, 0x4e, 0x02, 0x61, 0xc9, 0x0e,
+ 0xd6, 0xb6, 0xaa, 0x2a, 0x5c, 0xae, 0xa5, 0x8a, 0x12, 0x65, 0x35, 0x9f,
+ 0x7a, 0x87, 0x47, 0x3d, 0xd4, 0x70, 0x01, 0x90, 0xda, 0x4a, 0xc0, 0x51,
+ 0x62, 0x2d, 0xc9, 0x83, 0x54, 0x10, 0xb7, 0x26, 0x3e, 0x07, 0x2d, 0x78,
+ 0xf5, 0x17, 0x19, 0x18, 0x58, 0x9e, 0x0a, 0xc8, 0xc8, 0xef, 0xcf, 0xe5,
+ 0x6c, 0xf4, 0x4b, 0xbf, 0x6a, 0x11, 0xa4, 0x70, 0x85, 0x56, 0x13, 0x25,
+ 0xe3, 0x75, 0xd6, 0xda, 0xde, 0xf3, 0x22, 0x0e, 0x70, 0x51, 0x16, 0x74,
+ 0x76, 0xd5, 0x92, 0x36, 0xbd, 0x5c, 0x7e, 0x3d, 0x96, 0xd3, 0x03, 0x2f,
+ 0x4c, 0x5b, 0x55, 0x9a, 0x4f, 0x81, 0x05, 0x3d, 0xa2, 0x80, 0x0a, 0xc6,
+ 0xe4, 0xea, 0xb0, 0x06, 0x9e, 0x07, 0x16, 0x1d, 0x11, 0xba, 0x20, 0xdc,
+ 0x10, 0x3f, 0x70, 0xc0, 0x45, 0xf1, 0x2c, 0xea, 0x03, 0xae, 0x51, 0xa5,
+ 0x61, 0xc4, 0x7b, 0xa3, 0xcb, 0x45, 0xad, 0xc7, 0xc9, 0xb0, 0xc3, 0x67,
+ 0x31, 0x76, 0x26, 0x9b, 0x39, 0xfc, 0xac, 0x45, 0x28, 0x82, 0x8d, 0x6f,
+ 0xbc, 0x94, 0xcc, 0x55, 0xe4, 0x4d, 0x6f, 0xed, 0xe9, 0x40, 0xbb, 0x08,
+ 0x5a, 0xd2, 0x01, 0xd8, 0x2e, 0x31, 0xe3, 0x55, 0x86, 0x42, 0x51, 0x8a,
+ 0xff, 0x53, 0x36, 0xcf, 0x56, 0x2f, 0xe9, 0x24, 0xc8, 0x46, 0xb1, 0xd3,
+ 0xbf, 0x61, 0xb3, 0xda, 0xf1, 0x2d, 0x2a, 0x20, 0x29, 0xaf, 0x9a, 0x54,
+ 0xed, 0x85, 0xe0, 0x78, 0x5b, 0x8c, 0x44, 0x13, 0xc6, 0x1e, 0x86, 0xb1,
+ 0xf4, 0xab, 0x13, 0x92, 0xf8, 0x19, 0x29, 0x4e, 0x3c, 0x47, 0x2d, 0x6b,
+ 0xd5, 0xf8, 0x7b, 0xb4, 0x51, 0x10, 0xe3, 0x8d, 0x9c, 0x44, 0xaf, 0x88,
+ 0xde, 0x7a, 0x06, 0x8a, 0x4c, 0x2d, 0x43, 0x04, 0x6e, 0x44, 0x2c, 0xda,
+ 0x79, 0x16, 0x73, 0xc4, 0xd6, 0xd1, 0x3a, 0x2a, 0x4c, 0x7b, 0x6a, 0x1a,
+ 0x5b, 0xe0, 0x32, 0x15, 0xe3, 0x42, 0x43, 0xf8, 0x21, 0xb3, 0x92, 0x6e,
+ 0x88, 0xf2, 0x78, 0x18, 0x5b, 0x7c, 0x4b, 0xf2, 0x53, 0xdb, 0xa2, 0x07,
+ 0x00, 0x96, 0x3a, 0xb9, 0xd8, 0x0f, 0x26, 0x3d, 0xdc, 0x0e, 0x00, 0x2f,
+ 0xc0, 0xa3, 0x83, 0xac, 0xf4, 0x7b, 0x1e, 0xdb, 0xf8, 0x27, 0x5d, 0x0a,
+ 0xb0, 0x26, 0x86, 0xcd, 0xfd, 0x93, 0x5a, 0x8c, 0xbb, 0xa4, 0xd0, 0x8f,
+ 0xf4, 0x86, 0xd4, 0xb5, 0x4c, 0xd9, 0xf5, 0x41, 0xf9, 0x67, 0xd3, 0xd7,
+ 0x6e, 0x75, 0xec, 0xb5, 0x49, 0xc3, 0xc0, 0x1a, 0x49, 0x3b, 0x32, 0x84,
+ 0xb3, 0x0b, 0x38, 0x38, 0xc7, 0x32, 0xb1, 0x72, 0x28, 0xd2, 0x74, 0x3f,
+ 0x66, 0xff, 0x60, 0x81, 0x72, 0xe5, 0x50, 0x25, 0x81, 0xd9, 0x1a, 0xc3,
+ 0xcd, 0x01, 0xff, 0xeb, 0x8e, 0xd0, 0xc3, 0x6e, 0x3a, 0xff, 0x5a, 0xfe,
+ 0x46, 0xbf, 0xaa, 0x4a, 0x92, 0xdf, 0x20, 0xc6, 0x2e, 0xff, 0x2a, 0xe2,
+ 0x4c, 0x95, 0xce, 0xff, 0x6d, 0x70, 0x74, 0xc3, 0x6a, 0xdb, 0xc4, 0x40,
+ 0xb7, 0x86, 0xb0, 0x52, 0x68, 0x4d, 0xc4, 0xa3, 0xd0, 0x7c, 0x57, 0xb8,
+ 0xc3, 0x29, 0x6e, 0x78, 0x26, 0x73, 0xbd, 0x7c, 0xed, 0xec, 0xb0, 0xa9,
+ 0xa6, 0x7c, 0x54, 0x8e, 0x2e, 0x46, 0x50, 0x2d, 0xa7, 0xcf, 0x98, 0xa6,
+ 0x9f, 0x5d, 0xf1, 0xe1, 0x84, 0x02, 0x80, 0xe4, 0xbb, 0x06, 0x4a, 0x33,
+ 0xc3, 0x7f, 0x93, 0x74, 0xc3, 0x4d, 0xb8, 0x82, 0x6e, 0x22, 0x2b, 0xf0,
+ 0xfa, 0x3a, 0xcc, 0x7a, 0xbc, 0x33, 0x87, 0x03, 0xf0, 0xe6, 0xdf, 0x55,
+ 0xa9, 0xa1, 0xdd, 0x9b, 0x85, 0xd7, 0xf0, 0xc6, 0x08, 0x98, 0xfb, 0x40,
+ 0x15, 0x67, 0xcd, 0xef, 0xcd, 0x61, 0x82, 0x1d, 0xef, 0x18, 0x9b, 0x5e,
+ 0x20, 0x21, 0xf4, 0xe0, 0x3a, 0xd9, 0xf8, 0x1d, 0xe9, 0x1d, 0xef, 0x8f,
+ 0x1d, 0x93, 0x4f, 0x07, 0x36, 0xf4, 0x7f, 0xe1, 0xe0, 0xcd, 0x60, 0xb1,
+ 0x69, 0xd4, 0x7d, 0xc8, 0xf0, 0xe7, 0x6c, 0x7a, 0x8a, 0x14, 0xce, 0x8a,
+ 0x38, 0x00, 0xfe, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x51, 0x0e, 0x00, 0x02, 0x10, 0x10, 0x00, 0x1e, 0xe2, 0xe0,
+ 0x0d, 0x9b, 0x20, 0xba, 0xa0, 0x62, 0x8e, 0x1e, 0x9e, 0x4a, 0x5d, 0xb5,
+ 0x68, 0x59, 0x4b, 0xd1, 0x81, 0x9f, 0x32, 0xa9, 0x72, 0xcc, 0x6a, 0x69,
+ 0x3c, 0x4e, 0x63, 0x6a, 0xcc, 0xf5, 0x41, 0xda, 0x94, 0xba, 0x65, 0x05,
+ 0x91, 0x68, 0xd6, 0x6f, 0xe0, 0x3f, 0x05, 0x4c, 0xce, 0x79, 0xe3, 0xf2,
+ 0xca, 0x81, 0x6d, 0x34, 0x77, 0xeb, 0x03, 0x1c, 0x33, 0xae, 0xac, 0x3e,
+ 0x30, 0x06, 0x42, 0xff, 0x73, 0xf5, 0x21, 0x6c, 0x3d, 0xce, 0xaf, 0x56,
+ 0x63, 0x15, 0xd8, 0x5c, 0x03, 0x5f, 0x75, 0x33, 0x58, 0x8a, 0x31, 0x61,
+ 0x39, 0x44, 0x40, 0xb8, 0x17, 0xef, 0x7f, 0x40, 0x02, 0x63, 0x8d, 0x97,
+ 0x46, 0x7c, 0xe5, 0xcd, 0x7f, 0x3f, 0x01, 0x4d, 0xc7, 0x58, 0x70, 0x1b,
+ 0x07, 0xe6, 0x72, 0xe9, 0x67, 0x61, 0x25, 0x18, 0xe7, 0x53, 0xbf, 0xb6,
+ 0xd5, 0x09, 0x63, 0xbc, 0x0b, 0x70, 0x70, 0x50, 0xbb, 0x92, 0xfc, 0x9a,
+ 0xe6, 0xea, 0xfb, 0x74, 0xdf, 0x94, 0x15, 0x21, 0xe9, 0xca, 0x99, 0x0a,
+ 0x4e, 0xf5, 0x4c, 0x07, 0xff, 0xbe, 0x62, 0xb5, 0xaf, 0x46, 0x6c, 0xae,
+ 0x38, 0x1b, 0xb9, 0x80, 0x62, 0x79, 0x1b, 0xba, 0x82, 0x92, 0xc8, 0x30,
+ 0xfa, 0x8d, 0xea, 0x55, 0xf4, 0xa1, 0x71, 0xaa, 0x4a, 0x40, 0x68, 0xe9,
+ 0x8b, 0xa8, 0x84, 0xeb, 0x16, 0x52, 0x21, 0xdf, 0x89, 0xd6, 0x00, 0x58,
+ 0x80, 0x21, 0xa6, 0x41, 0xa0, 0xc0, 0xe9, 0xae, 0xe6, 0x61, 0x90, 0xd5,
+ 0xa1, 0x6e, 0xc1, 0x6c, 0xba, 0x0b, 0x72, 0x4f, 0xf4, 0x05, 0x2f, 0x1e,
+ 0x22, 0x6d, 0xbf, 0xc4, 0xdf, 0xd0, 0x24, 0x3f, 0xf1, 0xa1, 0xf5, 0x98,
+ 0x6b, 0xfc, 0x9a, 0x8f, 0x93, 0xc4, 0x95, 0x5f, 0x66, 0x70, 0xe2, 0x63,
+ 0xe4, 0x88, 0x5e, 0x6f, 0xfd, 0x6a, 0xe9, 0xf7, 0xb7, 0x7c, 0xd5, 0x63,
+ 0x45, 0x79, 0xfe, 0x27, 0xbd, 0x15, 0x50, 0xd3, 0x21, 0x2c, 0xa4, 0x8d,
+ 0x42, 0x89, 0x1c, 0x98, 0x8d, 0x1d, 0x08, 0xc5, 0x15, 0xdc, 0x05, 0x9f,
+ 0xc8, 0x28, 0xb1, 0x05, 0x4e, 0x7d, 0x89, 0xcf, 0x3b, 0xeb, 0x18, 0x8f,
+ 0x02, 0x08, 0xa7, 0xbe, 0x52, 0xe3, 0xeb, 0xaa, 0xb4, 0x37, 0xc1, 0xbc,
+ 0x95, 0xc0, 0x9b, 0x11, 0xb9, 0x06, 0xb2, 0x5b, 0x94, 0x64, 0xa4, 0xd8,
+ 0x7e, 0xe1, 0x74, 0xe9, 0xc0, 0x61, 0x14, 0x2d, 0x48, 0x91, 0x91, 0x30,
+ 0x07, 0x17, 0x62, 0x16, 0x26, 0xfe, 0xd1, 0xfc, 0xb8, 0x0c, 0xc6, 0x4e,
+ 0xbb, 0x1a, 0x81, 0xa7, 0x1a, 0x08, 0x37, 0xad, 0x6f, 0x7f, 0xa4, 0x2c,
+ 0x21, 0xd1, 0x09, 0x5b, 0x81, 0xae, 0xac, 0xc2, 0xeb, 0x2a, 0x71, 0x5f,
+ 0x12, 0x97, 0x11, 0x17, 0x3e, 0x91, 0x57, 0x29, 0xdd, 0xf2, 0x5e, 0x2e,
+ 0xe2, 0xc5, 0x9e, 0x77, 0x53, 0x70, 0x2f, 0xdf, 0x65, 0x53, 0x6a, 0x88,
+ 0x0f, 0x30, 0xf5, 0x89, 0x01, 0x6a, 0x9c, 0xbc, 0xe3, 0x16, 0xb4, 0x01,
+ 0x79, 0xd0, 0xf7, 0x77, 0x86, 0x51, 0xef, 0x52, 0x9a, 0xde, 0xc7, 0x98,
+ 0xc8, 0xc7, 0x31, 0x76, 0x62, 0x97, 0xff, 0x58, 0xd4, 0xf0, 0xa8, 0x82,
+ 0x90, 0xd2, 0xca, 0x63, 0x68, 0x41, 0x81, 0x57, 0x1c, 0x0e, 0x9f, 0x52,
+ 0xec, 0x67, 0x16, 0x7a, 0xe3, 0x65, 0x33, 0x48, 0x6f, 0x60, 0xb2, 0x85,
+ 0x7e, 0x21, 0x7b, 0xd3, 0x0b, 0xb1, 0xd1, 0x63, 0x59, 0x88, 0x2f, 0x7b,
+ 0xe4, 0x37, 0xdb, 0x77, 0xba, 0x70, 0xc3, 0x76, 0x88, 0x59, 0x80, 0x79,
+ 0xe9, 0x2f, 0xab, 0x86, 0x89, 0xbe, 0x37, 0x2c, 0x28, 0xf5, 0xed, 0x25,
+ 0x33, 0x3a, 0xb8, 0xa6, 0x7c, 0xd2, 0xbd, 0x12, 0xe1, 0x68, 0x5a, 0xf8,
+ 0xf2, 0x3c, 0xd5, 0x55, 0x5d, 0x7e, 0xde, 0xb5, 0xf7, 0x0f, 0x55, 0xd8,
+ 0xb0, 0xe9, 0xc2, 0xdc, 0xf5, 0x72, 0xce, 0x57, 0x89, 0x0e, 0x1b, 0x74,
+ 0x8d, 0x1c, 0x6e, 0xd0, 0xa7, 0x45, 0x4b, 0x96, 0x54, 0x8e, 0x9e, 0x46,
+ 0x1e, 0x36, 0x2d, 0xa0, 0x5b, 0x34, 0x2b, 0x76, 0x49, 0x65, 0x48, 0xc3,
+ 0x5c, 0x23, 0x7d, 0x02, 0x58, 0xc3, 0xf6, 0xf0, 0x0e, 0xb4, 0xa0, 0x52,
+ 0x42, 0x6b, 0x01, 0x25, 0x05, 0x6a, 0x57, 0xd6, 0x06, 0xc1, 0xfb, 0xf8,
+ 0xe2, 0x72, 0x83, 0x3b, 0x5a, 0x6f, 0x21, 0x16, 0x5b, 0x08, 0xc2, 0xf9,
+ 0x08, 0x46, 0x25, 0x10, 0xeb, 0xef, 0x4e, 0xb0, 0x03, 0xcc, 0xd5, 0x91,
+ 0x00, 0x74, 0x5a, 0x6f, 0xa8, 0xfa, 0x6c, 0xfe, 0x4e, 0x39, 0x84, 0x5c,
+ 0xb3, 0x9b, 0xe3, 0x04, 0x3d, 0xa5, 0x34, 0x8b, 0x2f, 0x34, 0x2a, 0x3b,
+ 0xa4, 0x15, 0x84, 0x0b, 0xf3, 0xaa, 0xdb, 0xec, 0x12, 0xf7, 0xa6, 0x71,
+ 0xbf, 0xc8, 0x14, 0xea, 0x44, 0x6c, 0x10, 0x22, 0x04, 0x71, 0xb7, 0x1f,
+ 0x19, 0x9d, 0x78, 0xd0, 0x88, 0x01, 0xdc, 0x46, 0x88, 0xbc, 0x1e, 0x62,
+ 0x73, 0x72, 0x53, 0x18, 0x4d, 0x69, 0xc8, 0x00, 0xfc, 0x81, 0x91, 0x3c,
+ 0x7f, 0x47, 0x9a, 0x3d, 0x78, 0x3c, 0x85, 0xda, 0x72, 0x3a, 0x55, 0xc0,
+ 0xfb, 0xd7, 0xdb, 0x9b, 0xf4, 0x09, 0x33, 0x2b, 0x4f, 0x94, 0x21, 0x12,
+ 0x8e, 0xad, 0x39, 0xae, 0xe5, 0x14, 0x6b, 0x7e, 0x61, 0x10, 0xa4, 0xe9,
+ 0x1c, 0x8f, 0x81, 0x3a, 0x50, 0xcc, 0x30, 0xa5, 0x35, 0xf9, 0xfe, 0x58,
+ 0x80, 0x5f, 0x66, 0x3c, 0x2d, 0x75, 0xec, 0xaf, 0x3c, 0x3f, 0x92, 0x94,
+ 0x62, 0x99, 0x3f, 0x9e, 0x89, 0x45, 0x31, 0xb7, 0xa3, 0x37, 0xd9, 0xff,
+ 0x39, 0xce, 0x98, 0xd5, 0xd4, 0x82, 0xa9, 0x9e, 0xd4, 0x8b, 0x2f, 0x60,
+ 0x0b, 0x0b, 0xcc, 0x26, 0x70, 0xc9, 0xff, 0x9e, 0x6a, 0x6f, 0xb5, 0x00,
+ 0x93, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x0b, 0x00, 0x03, 0x10, 0x10, 0x00, 0x18, 0x00, 0x41, 0x1d, 0x3b,
+ 0x82, 0x4c, 0x68, 0x41, 0x9a, 0x97, 0x88, 0xe6, 0x09, 0xd6, 0x6b, 0xd5,
+ 0x33, 0x67, 0x1b, 0x05, 0xd9, 0xd2, 0x37, 0x8e, 0xe5, 0xaf, 0x25, 0x4f,
+ 0xa6, 0xb8, 0x46, 0x41, 0x83, 0xe4, 0x5b, 0xe8, 0x50, 0x6e, 0x82, 0x14,
+ 0x05, 0x09, 0xe1, 0x5e, 0x74, 0x8b, 0x30, 0x3e, 0x20, 0x3b, 0xb7, 0x82,
+ 0xa4, 0x14, 0x2e, 0x70, 0xb0, 0x14, 0x1f, 0x72, 0xed, 0x98, 0x26, 0x44,
+ 0x8c, 0x07, 0xce, 0x93, 0x16, 0xe9, 0x5d, 0x83, 0xf4, 0x79, 0x6c, 0x2b,
+ 0x79, 0xa4, 0x65, 0xc8, 0xad, 0x19, 0xf2, 0x1b, 0x15, 0x59, 0x41, 0xe9,
+ 0x67, 0x62, 0xaa, 0x65, 0xa4, 0xf9, 0x75, 0x2d, 0xb4, 0x54, 0x64, 0x6a,
+ 0xa0, 0x22, 0x96, 0xc2, 0x83, 0x3b, 0x7a, 0x1d, 0x4c, 0x7e, 0x72, 0xad,
+ 0x40, 0x99, 0x43, 0x41, 0xe7, 0xa7, 0x74, 0x7d, 0xc4, 0xf9, 0xbc, 0x30,
+ 0x22, 0x5c, 0xeb, 0xaf, 0x42, 0xd3, 0x64, 0xc0, 0xd9, 0xe0, 0x4b, 0xc6,
+ 0x1d, 0x28, 0x13, 0x6e, 0x97, 0x95, 0x66, 0xf7, 0xe4, 0x8e, 0x69, 0x69,
+ 0x2e, 0x14, 0xb1, 0x6e, 0x57, 0x4f, 0x52, 0xa3, 0x59, 0x99, 0x25, 0x12,
+ 0x1a, 0x87, 0x79, 0x73, 0xc1, 0x12, 0xc6, 0x85, 0x5f, 0xae, 0x38, 0x10,
+ 0xdb, 0xbf, 0xee, 0xae, 0x62, 0x3b, 0x30, 0xcb, 0xbf, 0x83, 0x76, 0xc0,
+ 0x28, 0x29, 0x5b, 0xec, 0x2b, 0x79, 0x26, 0xc2, 0xbc, 0xec, 0xc0, 0x9b,
+ 0x8f, 0xd9, 0xe4, 0xb4, 0x8e, 0x43, 0x1e, 0x35, 0x8f, 0x36, 0xb4, 0x52,
+ 0x71, 0x58, 0x9d, 0x45, 0x35, 0x67, 0xbd, 0xfb, 0xde, 0x9b, 0x92, 0x24,
+ 0xe9, 0x3c, 0x67, 0xc6, 0xcc, 0xc3, 0xf4, 0x84, 0x65, 0xcb, 0xba, 0x53,
+ 0x43, 0x2a, 0x76, 0x5b, 0x80, 0xb8, 0xd1, 0x08, 0x43, 0xb6, 0x41, 0x49,
+ 0xc0, 0x1d, 0xb2, 0x81, 0x0d, 0xe5, 0x51, 0xc2, 0x64, 0xc3, 0x54, 0x6b,
+ 0xc2, 0xff, 0xf9, 0x57, 0xf8, 0x39, 0xa9, 0x2e, 0x43, 0x95, 0x2b, 0x47,
+ 0x76, 0x04, 0x7e, 0xad, 0xda, 0x4f, 0x7b, 0xfd, 0x01, 0x83, 0x9e, 0x54,
+ 0x07, 0x66, 0xc9, 0xaa, 0x58, 0xaa, 0xe8, 0x4c, 0x45, 0xa7, 0x5e, 0xcb,
+ 0x91, 0x89, 0xc4, 0xa6, 0xa4, 0x02, 0x8e, 0xbe, 0x5f, 0xfc, 0x98, 0x4a,
+ 0x88, 0xf8, 0x3f, 0x77, 0x7f, 0xa8, 0xe9, 0xf1, 0x2f, 0xaf, 0x9f, 0x94,
+ 0x6c, 0xe1, 0x32, 0x64, 0x8a, 0x3c, 0x3b, 0x07, 0x6a, 0xa9, 0x90, 0xe0,
+ 0x2c, 0xe5, 0x8e, 0x84, 0xf5, 0x2a, 0xf0, 0xdd, 0xd9, 0x7a, 0x3d, 0x11,
+ 0xfe, 0x03, 0x11, 0xae, 0xe3, 0x81, 0x22, 0x7b, 0xaa, 0xbf, 0x1f, 0x96,
+ 0xc0, 0x79, 0x94, 0x9b, 0x2d, 0x18, 0x38, 0xc3, 0x12, 0x8f, 0x92, 0x0d,
+ 0xac, 0xd7, 0x7c, 0xdd, 0xb8, 0x6c, 0xc0, 0x72, 0xc1, 0x7d, 0x6e, 0x7a,
+ 0xfe, 0xe6, 0x26, 0xe1, 0x6e, 0xa6, 0xb1, 0xa3, 0xda, 0xb8, 0x6c, 0x6c,
+ 0xf4, 0xb3, 0x50, 0xe1, 0xf7, 0xeb, 0x14, 0xbe, 0xb1, 0x29, 0x64, 0x46,
+ 0x7c, 0xce, 0x60, 0xe8, 0xbd, 0x2f, 0x13, 0xdc, 0x64, 0xe7, 0xb7, 0x13,
+ 0xcd, 0x6a, 0x44, 0xc0, 0x97, 0xa8, 0x53, 0xf9, 0xc7, 0x68, 0x86, 0x98,
+ 0xe1, 0x9c, 0x78, 0xcd, 0x69, 0x79, 0x45, 0x73, 0x22, 0xfa, 0x87, 0xde,
+ 0xed, 0x33, 0xd6, 0xbc, 0x15, 0x75, 0xbe, 0xc3, 0x5d, 0x42, 0x08, 0xf4,
+ 0xea, 0x6a, 0x7d, 0x79, 0x86, 0xf0, 0x27, 0x0c, 0x33, 0xeb, 0x48, 0xb5,
+ 0x83, 0x9f, 0xc5, 0x37, 0xc7, 0xdb, 0x82, 0xbd, 0x5d, 0x6d, 0x81, 0x12,
+ 0xdc, 0x5e, 0xd7, 0x21, 0x07, 0x5f, 0x66, 0x44, 0xc5, 0x2e, 0x67, 0xaf,
+ 0x1d, 0x24, 0x7a, 0x1c, 0x7e, 0x09, 0x0f, 0x90, 0x4e, 0x75, 0x24, 0x2a,
+ 0x52, 0x41, 0x57, 0x24, 0x4b, 0x94, 0x5e, 0xfd, 0x00, 0x26, 0xbe, 0x47,
+ 0x34, 0xd7, 0x3d, 0xc3, 0x6b, 0x67, 0x26, 0x4f, 0x8b, 0xd4, 0x69, 0xb0,
+ 0xeb, 0x55, 0xa7, 0xa4, 0x0f, 0x29, 0x2f, 0x31, 0xba, 0xd5, 0x4c, 0xe2,
+ 0xfa, 0x63, 0x91, 0xef, 0xf7, 0x84, 0x3c, 0xa8, 0xf1, 0x23, 0xe4, 0x57,
+ 0x45, 0x84, 0x2a, 0x03, 0xe4, 0x6d, 0x6a, 0xd5, 0x9a, 0x88, 0x05, 0x4e,
+ 0x0d, 0xfc, 0xfb, 0x90, 0x9f, 0x9b, 0x30, 0xb1, 0x42, 0x6b, 0x11, 0x83,
+ 0x0c, 0x54, 0x69, 0x87, 0xb9, 0x39, 0x43, 0x97, 0x69, 0xa5, 0xe8, 0x71,
+ 0xdf, 0x6f, 0x95, 0x07, 0xdc, 0x2b, 0x63, 0xac, 0x65, 0xad, 0xf9, 0x3a,
+ 0x9b, 0xc2, 0xac, 0x48, 0x43, 0xf5, 0xf5, 0xbc, 0x3a, 0xb6, 0x8a, 0xb2,
+ 0xfd, 0x2a, 0xd6, 0xeb, 0x85, 0x39, 0x54, 0x69, 0x15, 0x30, 0x34, 0x88,
+ 0xd7, 0xc7, 0x89, 0xb7, 0x18, 0x4e, 0x25, 0x09, 0x33, 0x26, 0x21, 0x5d,
+ 0x97, 0x17, 0xe7, 0x4a, 0xe8, 0x25, 0xee, 0x4e, 0x95, 0xf8, 0xf1, 0x41,
+ 0xa8, 0x92, 0xfd, 0x31, 0xd4, 0x0b, 0xad, 0x48, 0xc9, 0x10, 0x00, 0xb9,
+ 0x02, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51,
+ 0x0e, 0x00, 0x01, 0x10, 0x10, 0x00, 0x18, 0x00, 0x4f, 0x7f, 0xf1, 0xb8,
+ 0x3a, 0x45, 0x39, 0xe8, 0x41, 0x92, 0xa2, 0x7e, 0xe2, 0xa8, 0x13, 0x78,
+ 0x6a, 0x27, 0xc4, 0x62, 0x8a, 0xb2, 0x4e, 0xe2, 0x4a, 0xa9, 0x45, 0x7b,
+ 0x7e, 0x99, 0x16, 0x96, 0x5b, 0xaf, 0x3c, 0xdd, 0xaf, 0x56, 0xd9, 0xbc,
+ 0x5a, 0x78, 0x5b, 0x55, 0xb8, 0xa2, 0xe3, 0x0e, 0xfd, 0x4c, 0xf3, 0x81,
+ 0x96, 0xb2, 0x27, 0x9f, 0x21, 0x23, 0xf7, 0xea, 0x67, 0x34, 0x91, 0xb9,
+ 0xe9, 0x92, 0x7b, 0x02, 0x1f, 0x7e, 0xd1, 0xd6, 0x96, 0x8e, 0x21, 0xdc,
+ 0x10, 0xea, 0x87, 0x41, 0x12, 0x0c, 0x52, 0xae, 0x6f, 0x17, 0x30, 0x6f,
+ 0x29, 0x1b, 0xc7, 0x80, 0x14, 0xd9, 0x0e, 0x8f, 0x84, 0xd6, 0x5d, 0xb9,
+ 0x49, 0xe1, 0x88, 0x61, 0x22, 0x6d, 0x42, 0x00, 0x1b, 0x07, 0xe6, 0x72,
+ 0xe9, 0x68, 0xa3, 0xea, 0xb7, 0x7f, 0x6d, 0xaa, 0x19, 0x0d, 0x9f, 0x52,
+ 0xb8, 0x44, 0x4a, 0x99, 0x1c, 0xeb, 0x3f, 0x46, 0xfb, 0x70, 0xa4, 0xea,
+ 0xda, 0xe7, 0x1e, 0xbc, 0x79, 0x5e, 0xff, 0xe8, 0x14, 0x20, 0x02, 0xa7,
+ 0xc6, 0x2b, 0xca, 0xfc, 0xd1, 0xaa, 0x13, 0x63, 0x8c, 0x54, 0x7b, 0x17,
+ 0xc6, 0x93, 0x90, 0xb9, 0xfc, 0x12, 0x7d, 0x20, 0xc0, 0xbf, 0xc0, 0x9b,
+ 0x67, 0x50, 0xa3, 0xf9, 0xda, 0x12, 0x0a, 0xc5, 0x59, 0x03, 0xc6, 0x9e,
+ 0x97, 0xef, 0xe7, 0x5f, 0x83, 0x39, 0xeb, 0x43, 0xb3, 0x59, 0x80, 0x85,
+ 0x35, 0x62, 0x79, 0x60, 0x49, 0x70, 0xbf, 0x58, 0xf3, 0x30, 0xcb, 0x1a,
+ 0xbf, 0x0a, 0x82, 0x70, 0x83, 0x56, 0x49, 0x9e, 0x70, 0xd5, 0x90, 0x5a,
+ 0x6c, 0x22, 0x7c, 0x02, 0x10, 0x33, 0x02, 0x24, 0x46, 0x1a, 0xcf, 0x08,
+ 0x80, 0x69, 0xad, 0xb5, 0x5e, 0x30, 0x5e, 0x6c, 0xfd, 0x42, 0xff, 0x5a,
+ 0x5f, 0x1c, 0x94, 0xb0, 0x56, 0x6f, 0xfa, 0xb5, 0xb0, 0x6f, 0x6c, 0xab,
+ 0x61, 0xcb, 0x1e, 0x35, 0x5a, 0x49, 0x8f, 0xb1, 0x9e, 0x0f, 0x13, 0xa7,
+ 0xc1, 0x71, 0xb2, 0xad, 0x30, 0x0e, 0xc7, 0x5a, 0xc7, 0xe3, 0x3d, 0xe4,
+ 0xed, 0x54, 0xff, 0x4b, 0x2b, 0xb3, 0xd0, 0x21, 0x97, 0x3b, 0x73, 0x81,
+ 0xdc, 0xfe, 0xa1, 0x5b, 0xd0, 0x51, 0xa8, 0x73, 0xa7, 0xff, 0xd3, 0xaf,
+ 0x51, 0x0e, 0xfa, 0x66, 0x08, 0x14, 0x8f, 0x91, 0x70, 0x1a, 0xa3, 0xaa,
+ 0xed, 0xd6, 0x77, 0x3f, 0x86, 0xab, 0xc1, 0x29, 0x4a, 0x72, 0xa2, 0x2b,
+ 0x81, 0x22, 0xbe, 0xa8, 0x7b, 0xa2, 0x51, 0x3d, 0xd7, 0x1a, 0x7f, 0xdf,
+ 0xfe, 0x34, 0xa2, 0xbe, 0x8c, 0xe8, 0x78, 0x80, 0x0f, 0x0b, 0x2d, 0x2f,
+ 0x8c, 0x2d, 0xad, 0x83, 0xc0, 0x5c, 0x91, 0x3a, 0xc5, 0xd7, 0x98, 0xf8,
+ 0x96, 0x5c, 0xf5, 0x1c, 0x2a, 0x0d, 0xab, 0x15, 0xc4, 0x75, 0x01, 0xa1,
+ 0x6a, 0xb0, 0xc2, 0xd0, 0x28, 0x82, 0x0b, 0x29, 0xb1, 0x89, 0x19, 0x63,
+ 0xea, 0xc6, 0xa1, 0x5c, 0x01, 0x87, 0xe8, 0x04, 0x12, 0x5d, 0x2d, 0x21,
+ 0xe2, 0xe4, 0xfc, 0x91, 0xc9, 0x72, 0x46, 0x6a, 0x66, 0x9d, 0x7f, 0x5a,
+ 0xeb, 0x3b, 0x95, 0xe0, 0x80, 0x43, 0xb5, 0xd5, 0x1c, 0x8f, 0x4b, 0x0c,
+ 0x42, 0x0e, 0x3a, 0x8d, 0x2f, 0x35, 0xf5, 0x01, 0x27, 0x81, 0x12, 0x81,
+ 0xbc, 0x1f, 0xa9, 0x7f, 0x88, 0x82, 0x58, 0x14, 0x31, 0xb3, 0x12, 0x5c,
+ 0x42, 0x99, 0xf1, 0xdb, 0x1f, 0xb0, 0xd9, 0xe4, 0xdd, 0x81, 0x74, 0xf7,
+ 0x73, 0xc1, 0x0f, 0xdc, 0xa5, 0xaf, 0x9e, 0x5e, 0x27, 0xed, 0xdf, 0x01,
+ 0x48, 0x5c, 0x5f, 0xf8, 0x9e, 0x4c, 0x52, 0x66, 0x24, 0xd6, 0xff, 0xe7,
+ 0xf6, 0x74, 0x4c, 0x08, 0x5b, 0x78, 0xf2, 0xa6, 0x85, 0x0a, 0xca, 0xf1,
+ 0x1a, 0xd2, 0x0b, 0xf0, 0x99, 0x90, 0x6d, 0x44, 0x74, 0x14, 0x7b, 0x54,
+ 0x50, 0x0d, 0xd8, 0xc2, 0x8b, 0x66, 0xf1, 0xaa, 0xf7, 0x65, 0xa7, 0x7c,
+ 0x24, 0x01, 0xd4, 0xaf, 0xd8, 0x5b, 0x6b, 0x4d, 0x7a, 0xb4, 0xbe, 0xa2,
+ 0xda, 0x9b, 0x9a, 0x4d, 0x59, 0x69, 0x6b, 0xff, 0xa5, 0x44, 0xaf, 0x4b,
+ 0x79, 0xa3, 0x1a, 0xf3, 0x75, 0x41, 0x5a, 0xb2, 0x78, 0xbb, 0xc4, 0x01,
+ 0x70, 0x72, 0xd0, 0xe5, 0xb6, 0x59, 0x92, 0x5e, 0xd3, 0x22, 0x83, 0x39,
+ 0x1c, 0x8b, 0x13, 0x2e, 0xa2, 0xc0, 0x91, 0xa3, 0x36, 0x04, 0x9c, 0xff,
+ 0x0e, 0x55, 0x75, 0xe2, 0xbc, 0x76, 0xf6, 0x6b, 0xd2, 0x8b, 0x82, 0x19,
+ 0x03, 0x43, 0xdd, 0xa2, 0x47, 0xc3, 0xbb, 0x71, 0xef, 0xf2, 0x91, 0x18,
+ 0x32, 0x7c, 0xd9, 0x85, 0xeb, 0x1f, 0xa0, 0x00, 0xd8, 0xc9, 0xb2, 0x9d,
+ 0x66, 0xbb, 0x66, 0x03, 0x47, 0xcb, 0x14, 0x5d, 0x81, 0x90, 0x07, 0x13,
+ 0xdd, 0x78, 0x49, 0x9a, 0xe9, 0xe2, 0x97, 0xfb, 0x81, 0xec, 0x42, 0x84,
+ 0x38, 0xf8, 0x62, 0x20, 0x7d, 0xb9, 0x08, 0xa5, 0x3b, 0x95, 0xba, 0x83,
+ 0xea, 0x7a, 0xc2, 0x55, 0xf9, 0xce, 0x24, 0x86, 0x4a, 0x34, 0xc0, 0x24,
+ 0x62, 0x13, 0x17, 0xe7, 0x4a, 0xe8, 0x25, 0xee, 0x4e, 0x96, 0x04, 0x8e,
+ 0x81, 0x61, 0xb4, 0xbe, 0xd5, 0x3f, 0xd2, 0xf3, 0x41, 0x3c, 0x60, 0x00,
+ 0xec, 0x02, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x91, 0x0d, 0x00, 0x03, 0x10, 0x10, 0x14, 0x60, 0x03, 0x34, 0x61, 0x30,
+ 0x84, 0xb3, 0x61, 0x16, 0xa2, 0x60, 0xbb, 0x02, 0x02, 0x94, 0x59, 0xf9,
+ 0xd0, 0x6d, 0xc9, 0x7b, 0xfe, 0x00, 0x05, 0xe0, 0x63, 0xfd, 0x11, 0x36,
+ 0x53, 0xee, 0x7f, 0x89, 0x03, 0xd7, 0xa4, 0x8f, 0x23, 0xa1, 0x7e, 0xc1,
+ 0x05, 0x3f, 0x68, 0xcd, 0xb5, 0xa1, 0x2e, 0x11, 0x60, 0x73, 0x12, 0xda,
+ 0x53, 0xff, 0xfa, 0x82, 0x05, 0xbc, 0x83, 0x00, 0x1e, 0x83, 0xf0, 0x6c,
+ 0xcd, 0xf0, 0x31, 0xeb, 0x5b, 0x6a, 0x0b, 0xf7, 0xfe, 0x75, 0x73, 0x49,
+ 0xfe, 0x74, 0x40, 0x74, 0xa0, 0x07, 0x33, 0x3d, 0xf8, 0x00, 0x00, 0x18,
+ 0xc5, 0x7f, 0xdb, 0xd4, 0xca, 0x62, 0x02, 0x9d, 0x81, 0xd8, 0x0e, 0x86,
+ 0xc6, 0x7a, 0x00, 0x1b, 0x15, 0x59, 0x41, 0xe9, 0x68, 0x9a, 0x70, 0xf9,
+ 0x26, 0x6f, 0x30, 0xce, 0x3b, 0x0b, 0x5f, 0x89, 0xd5, 0x56, 0x6c, 0xf5,
+ 0x21, 0xf6, 0xb0, 0x4f, 0xb2, 0x3a, 0x3a, 0x6e, 0xdc, 0x17, 0xdc, 0x3b,
+ 0xf6, 0x56, 0x1b, 0x8b, 0xbf, 0x83, 0x7f, 0xd2, 0x54, 0x6f, 0xd1, 0xed,
+ 0x0b, 0xc0, 0x0c, 0xac, 0xae, 0xd5, 0xed, 0x23, 0x6b, 0xf9, 0x05, 0xd3,
+ 0x5b, 0x0d, 0xa0, 0xea, 0xa8, 0xf3, 0x32, 0xef, 0x72, 0x44, 0x57, 0xe5,
+ 0x25, 0x28, 0xdb, 0xa7, 0x61, 0x2a, 0x7a, 0x83, 0xf4, 0x34, 0xb9, 0x04,
+ 0xa3, 0xd3, 0xb8, 0x7b, 0x15, 0xe3, 0x21, 0xde, 0xe8, 0x85, 0x1f, 0xd9,
+ 0x21, 0x23, 0xb1, 0x20, 0xe3, 0x42, 0xab, 0x66, 0x7a, 0x8c, 0x7d, 0x2a,
+ 0x2a, 0x98, 0xa8, 0x03, 0x89, 0x62, 0x48, 0x8b, 0x40, 0x15, 0x9f, 0x2d,
+ 0x0e, 0xf2, 0xe5, 0x53, 0x8b, 0x4d, 0x5c, 0x23, 0xa3, 0x64, 0x0d, 0xc6,
+ 0xc5, 0x4e, 0xdd, 0x4b, 0x90, 0x9c, 0x82, 0xd6, 0xa8, 0xd3, 0xb8, 0x47,
+ 0x1e, 0x6c, 0xc2, 0x50, 0xa8, 0x36, 0xb7, 0x5f, 0xdb, 0xa1, 0x55, 0x6a,
+ 0x05, 0xa7, 0x33, 0xca, 0x20, 0x6a, 0x78, 0x36, 0xb7, 0x2f, 0x87, 0x59,
+ 0xd0, 0x58, 0x48, 0xf8, 0xcf, 0x79, 0x42, 0xaa, 0x2c, 0xae, 0x00, 0xf3,
+ 0x03, 0x31, 0x48, 0xc5, 0xdf, 0x32, 0x57, 0x9a, 0xff, 0x25, 0x6c, 0xae,
+ 0xbb, 0xeb, 0x58, 0xd5, 0x28, 0x06, 0xa1, 0x50, 0x26, 0x23, 0x5f, 0x2a,
+ 0x36, 0xca, 0xc6, 0xcf, 0x04, 0x6d, 0x88, 0xf9, 0xdc, 0x34, 0x7d, 0x58,
+ 0xda, 0x8b, 0x20, 0x6f, 0xa5, 0xe4, 0xac, 0xbf, 0x96, 0x09, 0x87, 0xcf,
+ 0x51, 0x59, 0x24, 0xfc, 0xc2, 0x84, 0xba, 0x7b, 0xa7, 0xef, 0xc2, 0xf1,
+ 0x51, 0x33, 0x62, 0xaf, 0x9f, 0x14, 0xbc, 0x4e, 0xb2, 0xd3, 0x60, 0xc4,
+ 0x9f, 0xf9, 0x65, 0x5a, 0xd0, 0x71, 0xa7, 0x9b, 0xb6, 0x91, 0xc3, 0xec,
+ 0x26, 0x65, 0x02, 0x9d, 0xde, 0x85, 0x38, 0x9f, 0x76, 0x1e, 0x6c, 0xdc,
+ 0x34, 0x2b, 0xb1, 0x67, 0x75, 0x68, 0xd7, 0x91, 0x01, 0xf9, 0x94, 0x37,
+ 0x53, 0x97, 0x0b, 0x7b, 0xb3, 0x5d, 0x05, 0x16, 0x3f, 0xdd, 0x0e, 0x57,
+ 0x44, 0xdb, 0xcf, 0x9f, 0x5b, 0xd3, 0x32, 0x70, 0x35, 0x18, 0xbb, 0x6b,
+ 0xba, 0xde, 0x86, 0x06, 0x18, 0xd2, 0x81, 0xf6, 0x46, 0x6a, 0x80, 0x07,
+ 0xd3, 0xea, 0x32, 0xe0, 0x56, 0xdd, 0xa7, 0x88, 0xac, 0x70, 0xc1, 0x19,
+ 0x30, 0x57, 0x94, 0xe4, 0x4b, 0xff, 0x3f, 0x16, 0x6e, 0xe2, 0x3b, 0xd4,
+ 0x92, 0xe8, 0xd2, 0xfc, 0x7a, 0x2f, 0x6c, 0x3d, 0x37, 0x81, 0xeb, 0xef,
+ 0x36, 0x30, 0x76, 0x79, 0xf9, 0xd2, 0x45, 0x7e, 0x53, 0xaa, 0xb6, 0x95,
+ 0x71, 0x33, 0xfe, 0xe2, 0xea, 0x7d, 0x51, 0x4e, 0x1d, 0x44, 0xe3, 0xf8,
+ 0xa3, 0x3b, 0x0c, 0xbf, 0x54, 0x57, 0xd7, 0x7e, 0xc2, 0xdb, 0x27, 0x79,
+ 0x64, 0x2c, 0xbc, 0x59, 0xd1, 0xdc, 0xb5, 0xc3, 0x77, 0x88, 0x7e, 0x5f,
+ 0x82, 0x44, 0x2a, 0xef, 0x5d, 0x6c, 0x2f, 0xca, 0xaa, 0xf9, 0xd0, 0xae,
+ 0x5f, 0xe3, 0x22, 0xe3, 0xd6, 0xf0, 0x1e, 0x99, 0xe1, 0x2b, 0xa2, 0xc6,
+ 0x07, 0x89, 0x22, 0x92, 0xd1, 0x1d, 0xe1, 0x36, 0x46, 0x77, 0x56, 0x79,
+ 0x66, 0xd5, 0x45, 0xeb, 0x89, 0x28, 0x83, 0x31, 0xd2, 0x70, 0x4f, 0xac,
+ 0xdc, 0x05, 0x6a, 0xe5, 0xc0, 0x7c, 0xd9, 0x2c, 0xa5, 0x04, 0x48, 0xf9,
+ 0x4c, 0xb5, 0x4c, 0x2d, 0x68, 0x1f, 0x6b, 0xfc, 0x98, 0xfc, 0x7b, 0x03,
+ 0xd3, 0x59, 0xcd, 0x55, 0xb7, 0xa5, 0xe6, 0xdf, 0x82, 0x4a, 0xd3, 0x0b,
+ 0x06, 0x88, 0xc8, 0xba, 0x98, 0xbe, 0x23, 0x59, 0x5d, 0x9e, 0xa9, 0x0c,
+ 0x47, 0x5f, 0xae, 0xaf, 0x15, 0x8d, 0x56, 0xe1, 0xf7, 0xc0, 0x4d, 0x15,
+ 0x8a, 0xc9, 0x1b, 0x29, 0x43, 0x21, 0xa1, 0x97, 0x86, 0x2e, 0xa9, 0x5b,
+ 0xa6, 0x8a, 0xbc, 0x1a, 0xd4, 0xb4, 0x3e, 0xc7, 0xd1, 0xb3, 0x0f, 0x87,
+ 0x59, 0x79, 0xce, 0x40, 0x35, 0x69, 0xef, 0xba, 0xf3, 0xa2, 0xa4, 0xb9,
+ 0xb8, 0x87, 0x1c, 0x9a, 0x10, 0xae, 0x1f, 0x1f, 0xfd, 0x93, 0x59, 0x30,
+ 0xd5, 0x54, 0x11, 0x18, 0x0e, 0x59, 0x58, 0x04, 0x1c, 0x22, 0x06, 0x03,
+ 0x37, 0x8a, 0x67, 0x25, 0xf7, 0x51, 0x78, 0xb4, 0xf6, 0x49, 0x99, 0x01,
+ 0x24, 0xf1, 0x9f, 0xf3, 0x2e, 0x7b, 0x6b, 0x83, 0x4c, 0x9a, 0xc9, 0xc5,
+ 0x27, 0xc0, 0xec, 0xce, 0x02, 0x87, 0xb4, 0x9d, 0x7d, 0x47, 0x65, 0x13,
+ 0x6b, 0x0f, 0xfd, 0x72, 0xe7, 0xc6, 0x77, 0x5d, 0xaa, 0x8a, 0x17, 0xc1,
+ 0x03, 0x4c, 0x0d, 0x3c, 0xdc, 0x0d, 0x44, 0x97, 0xe9, 0x8e, 0xa0, 0x5d,
+ 0x6a, 0x46, 0x48, 0x80, 0x42, 0x03, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x01, 0x10, 0x10, 0x00, 0x18,
+ 0x00, 0x41, 0xe9, 0xf9, 0x16, 0x3f, 0xa2, 0x2a, 0xe8, 0xb4, 0x5b, 0x53,
+ 0x0b, 0x15, 0x74, 0xb7, 0x38, 0x39, 0x62, 0x44, 0x33, 0xe9, 0x74, 0x9f,
+ 0xe2, 0xc2, 0xf3, 0xe9, 0x14, 0x05, 0x72, 0xde, 0x42, 0xb7, 0xe0, 0x6f,
+ 0x36, 0x1d, 0xcd, 0xf8, 0x07, 0x79, 0x02, 0xa6, 0x07, 0xf6, 0x3f, 0x88,
+ 0xed, 0x5d, 0x0e, 0x5e, 0xb8, 0x66, 0x8a, 0x62, 0x49, 0x20, 0x00, 0x45,
+ 0xeb, 0x38, 0x50, 0x11, 0x97, 0xb5, 0xb0, 0x4a, 0x0e, 0x23, 0x39, 0x28,
+ 0x2a, 0x13, 0x6a, 0x7c, 0x71, 0x74, 0x8c, 0x08, 0x01, 0x62, 0x83, 0xcb,
+ 0x5e, 0x0a, 0x84, 0x1a, 0xab, 0xaa, 0x8e, 0x6a, 0x27, 0xb4, 0xa0, 0xff,
+ 0xcb, 0xda, 0x40, 0x23, 0xdc, 0xd0, 0xa6, 0x7b, 0xf0, 0xbd, 0x80, 0x0a,
+ 0x2f, 0xcc, 0x7a, 0x11, 0x10, 0x26, 0xe1, 0xed, 0xb2, 0x6b, 0xae, 0xaf,
+ 0x46, 0x07, 0x90, 0x1b, 0x07, 0xe6, 0x72, 0xe9, 0x67, 0xb2, 0x1e, 0xe5,
+ 0xa7, 0x9c, 0xb3, 0x26, 0x0d, 0x41, 0x55, 0x4a, 0xb9, 0x7d, 0x4e, 0xaa,
+ 0x85, 0x39, 0xf6, 0x39, 0x89, 0xc0, 0xee, 0xe2, 0xfe, 0xe3, 0x78, 0x2a,
+ 0x78, 0xb3, 0xc6, 0x25, 0x22, 0xe6, 0x97, 0x32, 0xb5, 0x75, 0x85, 0x2a,
+ 0x13, 0x5f, 0xe5, 0x12, 0xaa, 0x75, 0xf9, 0x33, 0x22, 0x4f, 0x0e, 0x31,
+ 0x19, 0x20, 0xd1, 0x5b, 0x0c, 0xba, 0x95, 0x43, 0x74, 0xd5, 0x5a, 0xb4,
+ 0x6f, 0xb9, 0xd2, 0x5e, 0x91, 0xb6, 0x3e, 0x46, 0x8f, 0x52, 0xb2, 0x69,
+ 0x64, 0x5d, 0xc3, 0x9c, 0x2b, 0x3b, 0x97, 0x24, 0xba, 0x2d, 0x3b, 0x5e,
+ 0x16, 0x41, 0xa2, 0xb8, 0x83, 0x5a, 0x24, 0x89, 0x56, 0xbd, 0xfe, 0x17,
+ 0xc2, 0x4b, 0x10, 0x1d, 0x08, 0x6e, 0x95, 0x65, 0xe9, 0xaa, 0xce, 0xa6,
+ 0x5a, 0x6c, 0x79, 0xd0, 0x31, 0x75, 0xcc, 0x17, 0x50, 0xda, 0x93, 0x16,
+ 0xb9, 0xfd, 0x3e, 0x5c, 0xa4, 0x03, 0xd7, 0x4f, 0x26, 0xf5, 0xaa, 0x93,
+ 0xe6, 0x99, 0x40, 0x3b, 0xb5, 0xda, 0x2e, 0xcb, 0x8c, 0xea, 0xb7, 0x41,
+ 0xfa, 0x5c, 0x5d, 0x1e, 0x2c, 0xe4, 0x57, 0xfb, 0xf4, 0xe4, 0x54, 0x7f,
+ 0x3e, 0x72, 0xad, 0x63, 0x59, 0x87, 0x80, 0xd3, 0xac, 0x43, 0x0a, 0x9f,
+ 0x05, 0x57, 0xf1, 0x16, 0xf4, 0x5b, 0x3e, 0x4f, 0x28, 0x79, 0x7d, 0x9e,
+ 0x65, 0x83, 0x1a, 0x72, 0x68, 0xb4, 0xdb, 0xcd, 0x56, 0x84, 0x4f, 0x5d,
+ 0x9d, 0x69, 0xef, 0x40, 0xb3, 0xfc, 0xc2, 0x12, 0xd0, 0x16, 0xa1, 0xd9,
+ 0x56, 0x36, 0x44, 0x99, 0x62, 0xbe, 0x31, 0xa4, 0xa6, 0xaf, 0xd7, 0xba,
+ 0x72, 0xa8, 0x90, 0x74, 0xf7, 0x86, 0x72, 0x76, 0x05, 0x16, 0x2d, 0x33,
+ 0x20, 0xb3, 0x09, 0x01, 0x4f, 0xac, 0x33, 0x37, 0xc5, 0xd0, 0x96, 0x83,
+ 0x16, 0x1a, 0xd1, 0x8d, 0x80, 0x01, 0x23, 0xdd, 0x59, 0x56, 0x79, 0x24,
+ 0x08, 0x04, 0x2f, 0x58, 0x5e, 0x56, 0x78, 0x92, 0x7b, 0xd8, 0xcf, 0x29,
+ 0x17, 0xff, 0xaa, 0x67, 0xe3, 0x7e, 0x1e, 0xb7, 0xb1, 0x85, 0x56, 0xa0,
+ 0x54, 0x79, 0xbb, 0x63, 0x83, 0xd2, 0xe1, 0xdd, 0x8c, 0x95, 0xe9, 0xac,
+ 0x76, 0xe9, 0xb2, 0x30, 0x5f, 0xb3, 0xf2, 0x4f, 0xec, 0x8a, 0xb2, 0x42,
+ 0x29, 0x8f, 0xa5, 0xa5, 0xd2, 0x34, 0xaf, 0xbc, 0x8b, 0x8a, 0x65, 0x5e,
+ 0xcd, 0x2a, 0xc8, 0xe0, 0x93, 0x5c, 0x1e, 0xe8, 0x96, 0x99, 0xf0, 0x91,
+ 0xed, 0xc2, 0x5a, 0xe4, 0x00, 0x15, 0x7d, 0x43, 0xea, 0x51, 0xf2, 0xd0,
+ 0x53, 0x3e, 0x69, 0x8c, 0x16, 0x37, 0xf6, 0xe0, 0xcd, 0xd2, 0x1c, 0xed,
+ 0x4a, 0x8e, 0xa8, 0xe4, 0xa1, 0x97, 0xbf, 0x9a, 0x64, 0x58, 0x3b, 0x33,
+ 0x39, 0xb7, 0x50, 0x6f, 0xe2, 0x94, 0x46, 0x45, 0x05, 0x27, 0xe6, 0x85,
+ 0xc4, 0x58, 0xec, 0x6c, 0xe4, 0xea, 0x69, 0xb4, 0x24, 0x52, 0x7b, 0xd8,
+ 0xd7, 0xb0, 0x36, 0x43, 0x8e, 0xf2, 0x7e, 0xb7, 0xb7, 0x6d, 0xe3, 0xf4,
+ 0x36, 0x55, 0xa5, 0x72, 0xa2, 0xaa, 0x52, 0xc0, 0xf0, 0xb6, 0x8f, 0x01,
+ 0x6d, 0xfe, 0x62, 0x1d, 0x7c, 0x66, 0xe1, 0xc3, 0x15, 0xc2, 0xe3, 0x34,
+ 0x05, 0x55, 0x5f, 0x5b, 0x95, 0x65, 0x5e, 0x82, 0x2e, 0x22, 0x54, 0x87,
+ 0x6b, 0x9f, 0xb7, 0x18, 0xd2, 0x66, 0x16, 0xae, 0x0f, 0xf5, 0x3f, 0x67,
+ 0xce, 0xaf, 0xe4, 0x4e, 0xb3, 0x32, 0xab, 0x38, 0x4e, 0x40, 0x6b, 0xfd,
+ 0x9d, 0x23, 0xb9, 0x77, 0x1e, 0x28, 0x16, 0x18, 0x2f, 0xfc, 0xbf, 0x7a,
+ 0x30, 0xfb, 0x9b, 0x67, 0xce, 0x30, 0xfb, 0xf6, 0x06, 0x52, 0x66, 0x42,
+ 0x92, 0x11, 0x27, 0x92, 0x3f, 0xc6, 0xf8, 0x80, 0xc7, 0x14, 0xb0, 0xef,
+ 0xc2, 0x0d, 0x89, 0x03, 0xe3, 0xae, 0x58, 0x3e, 0x0b, 0x19, 0x7e, 0xe5,
+ 0xfe, 0x60, 0xfb, 0xfd, 0x17, 0x3e, 0x8a, 0x28, 0x25, 0x5b, 0xe3, 0xc0,
+ 0xc1, 0x35, 0xc1, 0xc4, 0x3e, 0x21, 0xa8, 0xd5, 0x5f, 0x7a, 0x65, 0x56,
+ 0xac, 0xdc, 0x03, 0xfd, 0x8e, 0x4d, 0x75, 0x99, 0x2d, 0x17, 0xfe, 0xc4,
+ 0x23, 0xce, 0x28, 0xba, 0x6b, 0xfd, 0x00, 0x20, 0xaa, 0xae, 0xe4, 0x8d,
+ 0xb9, 0xdb, 0xce, 0x1a, 0x7d, 0x4f, 0xbf, 0x34, 0xf2, 0xf6, 0xf2, 0xdc,
+ 0x32, 0xed, 0x3b, 0x05, 0x6e, 0x85, 0x69, 0x7a, 0xd0, 0xe0, 0x54, 0xc3,
+ 0x02, 0x83, 0xdf, 0xae, 0xac, 0x7b, 0xe4, 0xc6, 0x0f, 0xfc, 0x03, 0xcf,
+ 0xb3, 0x0a, 0x7a, 0x75, 0x48, 0x55, 0xcf, 0x6b, 0x10, 0x4f, 0x3e, 0xee,
+ 0x40, 0xfc, 0xf3, 0x1d, 0xd3, 0xde, 0xe4, 0x3b, 0xac, 0x80, 0xba, 0x5a,
+ 0xac, 0xf9, 0xc2, 0x47, 0x7f, 0x44, 0x7e, 0x9a, 0x95, 0x84, 0x15, 0xb8,
+ 0x8e, 0x27, 0x5a, 0xd4, 0x4b, 0x8a, 0x92, 0xa8, 0x19, 0x75, 0xa3, 0x42,
+ 0x84, 0x3e, 0xd7, 0x56, 0x78, 0x20, 0xa3, 0x3d, 0x58, 0xdb, 0x83, 0xb9,
+ 0xdd, 0x54, 0xe9, 0x7c, 0x09, 0x54, 0xa6, 0x83, 0x27, 0x68, 0x25, 0xdd,
+ 0x94, 0xd0, 0x55, 0x4c, 0x45, 0x03, 0x3e, 0xac, 0xca, 0xc4, 0x8b, 0x98,
+ 0x78, 0xf3, 0x55, 0xe5, 0xde, 0x20, 0xa1, 0x51, 0x2c, 0x26, 0x7d, 0x79,
+ 0x84, 0xce, 0x19, 0x3f, 0xf3, 0xcd, 0x4d, 0xf6, 0xa0, 0x00, 0xea, 0x02,
+ 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0e,
+ 0x00, 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0x1d, 0xf8, 0x8f, 0x9f, 0xe8,
+ 0xcb, 0x43, 0x9b, 0x5a, 0xd5, 0x47, 0x5b, 0x3b, 0xcf, 0xa1, 0x68, 0xd8,
+ 0x04, 0x13, 0x07, 0x94, 0xd4, 0x48, 0x58, 0xf9, 0x7e, 0x9f, 0x2b, 0x48,
+ 0x40, 0x5e, 0xec, 0x97, 0x43, 0x8d, 0x94, 0x24, 0xd8, 0xc9, 0xba, 0x09,
+ 0x05, 0xd4, 0xd5, 0xc7, 0x63, 0xc4, 0x3e, 0x20, 0x16, 0x3e, 0xa2, 0x10,
+ 0x8a, 0x10, 0xcc, 0xac, 0x8a, 0xef, 0x08, 0x63, 0x15, 0x96, 0x81, 0x7e,
+ 0x46, 0xdf, 0xfa, 0x57, 0x4c, 0xad, 0x7e, 0x46, 0xc0, 0x55, 0x65, 0xc0,
+ 0x04, 0xfe, 0xba, 0xb4, 0x6e, 0xde, 0x81, 0xe9, 0x39, 0x16, 0xf4, 0x05,
+ 0x89, 0x64, 0x47, 0x0c, 0x99, 0xfb, 0x00, 0x68, 0x80, 0x04, 0xfd, 0x21,
+ 0x9a, 0x5b, 0xb8, 0x90, 0xe8, 0x1b, 0x15, 0x59, 0x41, 0xe9, 0x67, 0xb1,
+ 0x6f, 0xd6, 0xe6, 0x0a, 0xe7, 0xac, 0x94, 0x55, 0x7e, 0x5b, 0x59, 0xf4,
+ 0x4d, 0x4f, 0x3b, 0x96, 0xe6, 0x86, 0xff, 0xe3, 0x7f, 0x15, 0x81, 0x73,
+ 0x89, 0xeb, 0xa7, 0x18, 0x02, 0x9a, 0x81, 0xaa, 0x40, 0x06, 0xb9, 0xe9,
+ 0xf2, 0xb5, 0xc6, 0xb9, 0x76, 0x2d, 0xf1, 0x72, 0x45, 0xe4, 0xf1, 0x54,
+ 0x6c, 0x5e, 0x91, 0x5e, 0x57, 0xde, 0xc6, 0xf1, 0x27, 0x91, 0xef, 0xc3,
+ 0xdc, 0x51, 0x66, 0x2f, 0x99, 0x73, 0xc4, 0xf7, 0x0b, 0x8c, 0x4c, 0x95,
+ 0xd5, 0x0e, 0xb6, 0x09, 0xc2, 0x27, 0x75, 0xc9, 0x2d, 0x0d, 0x91, 0xa0,
+ 0xbb, 0x4c, 0x5a, 0x0b, 0x2c, 0x4b, 0xfc, 0xbb, 0xad, 0xf2, 0x84, 0x0f,
+ 0xbe, 0x0a, 0x29, 0x6f, 0x7a, 0x8f, 0x96, 0x38, 0x2c, 0x56, 0xe4, 0xe0,
+ 0xb1, 0xdd, 0xc0, 0x9e, 0x03, 0x0a, 0xfd, 0x6c, 0x97, 0xd3, 0x74, 0xf4,
+ 0xf8, 0xcf, 0x86, 0x5d, 0x60, 0x34, 0x79, 0xfa, 0x68, 0x8a, 0x41, 0xd6,
+ 0xe9, 0x59, 0x3a, 0x81, 0x51, 0x27, 0x7e, 0xc1, 0x46, 0x3d, 0x1e, 0xa0,
+ 0x59, 0x69, 0x66, 0x07, 0xde, 0xe5, 0xe9, 0xf8, 0x80, 0x1b, 0x80, 0x0b,
+ 0x98, 0xf3, 0x91, 0x92, 0x16, 0x6d, 0x46, 0xd2, 0xba, 0x2d, 0xde, 0x96,
+ 0x67, 0x2b, 0x97, 0xce, 0xb3, 0x39, 0x58, 0x2f, 0xcf, 0xab, 0x6d, 0x47,
+ 0x1f, 0x94, 0x4f, 0xe2, 0x43, 0x77, 0x09, 0xb3, 0xff, 0xfe, 0xa0, 0x2d,
+ 0x8d, 0x79, 0x92, 0x34, 0xf0, 0xdf, 0x81, 0xc8, 0x0c, 0x8a, 0xfa, 0xee,
+ 0xcb, 0xf7, 0xd6, 0x1b, 0x47, 0xa5, 0xd9, 0x4d, 0x20, 0xba, 0xcc, 0x99,
+ 0x0f, 0x99, 0x06, 0xbb, 0x9b, 0x2f, 0xb2, 0xd6, 0x65, 0xd9, 0x6b, 0x1b,
+ 0xb8, 0xf9, 0xcc, 0x51, 0x3f, 0x33, 0x15, 0x01, 0x3b, 0xfd, 0x5c, 0x8a,
+ 0x57, 0xee, 0x87, 0xcc, 0x30, 0xfd, 0x1a, 0xcb, 0xe1, 0x02, 0xe0, 0xe1,
+ 0x1e, 0xca, 0x95, 0x62, 0xf3, 0xa0, 0xc8, 0x8b, 0xea, 0x76, 0x0a, 0x11,
+ 0x34, 0x4c, 0x68, 0x2f, 0x01, 0xb0, 0xbe, 0xd1, 0xe0, 0x42, 0xc8, 0x93,
+ 0x17, 0x27, 0xe4, 0x8e, 0x4b, 0x92, 0x30, 0xf9, 0xb4, 0x77, 0x96, 0xfc,
+ 0x40, 0x5e, 0x73, 0xde, 0x10, 0x8f, 0xa1, 0x52, 0xf4, 0xaf, 0x9b, 0xc2,
+ 0xe5, 0x01, 0x54, 0x6f, 0x44, 0xe7, 0xb6, 0x3f, 0x6a, 0xa4, 0xab, 0xad,
+ 0x38, 0x4c, 0xfd, 0x23, 0xba, 0xac, 0x4b, 0x42, 0x82, 0xef, 0x0d, 0x58,
+ 0x1e, 0x67, 0xdb, 0x03, 0x56, 0xe1, 0x05, 0x07, 0x4f, 0xf1, 0x72, 0x38,
+ 0x08, 0x64, 0x92, 0x2f, 0x17, 0x0e, 0x43, 0x83, 0xfd, 0x83, 0xe4, 0x66,
+ 0xc0, 0x42, 0xa3, 0x40, 0x51, 0xee, 0xb3, 0xad, 0xf8, 0xe0, 0x83, 0x0d,
+ 0xd3, 0xfa, 0x30, 0x73, 0x64, 0xdf, 0x5f, 0x9a, 0xee, 0xd4, 0xcf, 0x2d,
+ 0x96, 0xb4, 0x16, 0x62, 0x6d, 0x1e, 0x15, 0xbe, 0x4e, 0xce, 0xdc, 0xd4,
+ 0x13, 0xc3, 0x98, 0x7a, 0xd8, 0x9c, 0xf7, 0x65, 0xdd, 0xf5, 0xd8, 0xdb,
+ 0x10, 0x90, 0xd5, 0xd9, 0x72, 0x5c, 0x29, 0x07, 0x84, 0x34, 0x37, 0x4a,
+ 0xa7, 0xe5, 0x55, 0x6d, 0xde, 0x76, 0xd9, 0x11, 0xd6, 0xaa, 0x7d, 0xb3,
+ 0xcf, 0x0a, 0xd1, 0x04, 0x9f, 0xe7, 0xa1, 0xef, 0xc4, 0x52, 0x63, 0x3e,
+ 0x64, 0x02, 0xbb, 0xfe, 0xbc, 0xf0, 0xac, 0x5e, 0x6a, 0xf2, 0xb9, 0x37,
+ 0xd4, 0x02, 0x93, 0x32, 0xca, 0x1d, 0xf0, 0x89, 0x70, 0x5b, 0xa9, 0xf0,
+ 0xa5, 0xea, 0xc0, 0x27, 0x1f, 0xff, 0x06, 0x5c, 0x2b, 0x4c, 0x3c, 0x33,
+ 0xca, 0x91, 0x74, 0xff, 0xb7, 0x04, 0xf2, 0xdf, 0x28, 0xe5, 0x53, 0x98,
+ 0x44, 0x00, 0x6a, 0xf6, 0x42, 0xbf, 0x60, 0xb3, 0x7a, 0x50, 0x8f, 0xca,
+ 0x4d, 0x9b, 0xe2, 0x1c, 0xac, 0xfe, 0x90, 0x64, 0x7b, 0x72, 0x4f, 0xbc,
+ 0xd3, 0xa2, 0xad, 0xed, 0x7f, 0x04, 0x98, 0xff, 0x6c, 0x8b, 0xf5, 0x4b,
+ 0xaa, 0x52, 0x59, 0xd6, 0x19, 0xe6, 0x45, 0xb1, 0x25, 0xdf, 0xfe, 0x0e,
+ 0x4b, 0xab, 0xf4, 0x23, 0xb9, 0x95, 0x73, 0x1d, 0x12, 0x91, 0x23, 0x4d,
+ 0x96, 0x20, 0xcd, 0xde, 0xe9, 0x6a, 0xf3, 0x27, 0x27, 0x87, 0xbb, 0xae,
+ 0x02, 0x77, 0x92, 0x79, 0x2e, 0x37, 0x3e, 0x2a, 0x70, 0x4e, 0xbc, 0xd6,
+ 0xba, 0x48, 0x45, 0x08, 0x3c, 0x75, 0xd1, 0xd3, 0x9a, 0x3d, 0x67, 0xbc,
+ 0xf9, 0x59, 0x58, 0xbb, 0xfa, 0x06, 0x4e, 0xa0, 0x56, 0xcf, 0xae, 0xed,
+ 0x04, 0x59, 0x8f, 0x23, 0x98, 0xd7, 0x6c, 0xd0, 0x93, 0x41, 0x84, 0x6f,
+ 0xe7, 0x39, 0xc7, 0xcd, 0xb6, 0x4b, 0xc5, 0xc7, 0x25, 0x60, 0xc4, 0xa6,
+ 0x01, 0x31, 0x6a, 0x1e, 0x6d, 0xfa, 0x43, 0x64, 0x86, 0x9f, 0xb5, 0x00,
+ 0x75, 0x03, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x51, 0x10, 0x00, 0x01, 0x10, 0x10, 0x00, 0x18, 0x00, 0x8b, 0x40, 0x36,
+ 0xd5, 0x33, 0xa7, 0xd5, 0x82, 0x27, 0x53, 0x42, 0x73, 0x84, 0x41, 0x5e,
+ 0xa6, 0xc7, 0x31, 0xc6, 0xd6, 0x72, 0x93, 0x92, 0x11, 0x36, 0xa5, 0xc9,
+ 0x82, 0x15, 0x51, 0x5b, 0x1b, 0x57, 0xaf, 0x02, 0x68, 0xe6, 0xa1, 0x9f,
+ 0x60, 0x2d, 0xd9, 0xb0, 0xc5, 0xe9, 0xc2, 0x6d, 0xa1, 0x30, 0xea, 0x87,
+ 0x6b, 0x06, 0xa3, 0x30, 0x50, 0x6f, 0xe4, 0xb5, 0x6c, 0xdc, 0xd8, 0x05,
+ 0xb0, 0x1f, 0x88, 0x7c, 0x1b, 0x50, 0x2b, 0x7f, 0xef, 0x0d, 0xaa, 0xdb,
+ 0xf7, 0x60, 0x23, 0xc9, 0xff, 0x84, 0x00, 0x7e, 0x13, 0x6e, 0x89, 0x62,
+ 0x60, 0x04, 0x25, 0x32, 0x56, 0xbb, 0xf7, 0x5f, 0x0f, 0xe5, 0xc3, 0x4d,
+ 0xf2, 0x80, 0xe2, 0xf9, 0x15, 0xcd, 0x74, 0x80, 0x95, 0xba, 0xe2, 0x16,
+ 0xbf, 0x05, 0x17, 0x36, 0x4b, 0x0c, 0x52, 0x5e, 0xce, 0xc9, 0x95, 0x5b,
+ 0xe4, 0x1b, 0x07, 0xe6, 0x72, 0xe9, 0x67, 0xb1, 0x6f, 0xd6, 0xe6, 0x0a,
+ 0xe7, 0xac, 0x98, 0x70, 0xeb, 0x8a, 0x62, 0xe1, 0xf0, 0xe2, 0x09, 0xf2,
+ 0x6a, 0xa7, 0xff, 0xae, 0x4d, 0xfb, 0xfb, 0x0d, 0x68, 0xca, 0x9b, 0xdb,
+ 0xaf, 0x6a, 0x13, 0x82, 0x4d, 0x26, 0x3c, 0xe5, 0xb7, 0x20, 0x5f, 0x2c,
+ 0xad, 0x12, 0x21, 0xfa, 0x44, 0x45, 0x46, 0xd4, 0xf8, 0xc5, 0x79, 0x60,
+ 0x2f, 0x24, 0x1e, 0x3b, 0x7f, 0x16, 0xe5, 0x85, 0x0a, 0x54, 0xed, 0xe3,
+ 0x88, 0xcc, 0xff, 0x6a, 0x75, 0x04, 0x13, 0xfb, 0x29, 0xf8, 0x04, 0x4e,
+ 0x1a, 0xe0, 0x6f, 0x40, 0x18, 0x09, 0x7d, 0x68, 0x27, 0x13, 0x52, 0xb4,
+ 0x12, 0x89, 0xf7, 0x89, 0x1d, 0x69, 0x98, 0x3f, 0x7c, 0x7f, 0x3d, 0x73,
+ 0x39, 0x96, 0x05, 0x59, 0x5d, 0xb4, 0x3f, 0xd9, 0x01, 0x8d, 0xbd, 0xa4,
+ 0x98, 0xed, 0x45, 0x10, 0xbd, 0x07, 0xe5, 0x8b, 0x71, 0x0e, 0x97, 0x52,
+ 0x5c, 0x80, 0x46, 0xa0, 0x5f, 0x89, 0xa5, 0xfa, 0xea, 0x52, 0x82, 0x6d,
+ 0x9e, 0x8a, 0x90, 0x97, 0x0e, 0xdf, 0x30, 0x9e, 0x1b, 0x11, 0xed, 0xc8,
+ 0xa6, 0x5a, 0x3b, 0x48, 0x92, 0x9a, 0xbc, 0xb8, 0xfd, 0xdc, 0x0a, 0xeb,
+ 0xb0, 0xb4, 0x84, 0xc9, 0xce, 0x21, 0x24, 0x60, 0x0e, 0x46, 0x8c, 0xe1,
+ 0x60, 0x1c, 0xbc, 0x64, 0x2d, 0x0c, 0x64, 0x71, 0x0d, 0x0e, 0x3d, 0xe8,
+ 0x52, 0x7c, 0x8b, 0xe0, 0x0d, 0xce, 0x35, 0x29, 0x9b, 0x02, 0xdd, 0x11,
+ 0x8e, 0x1a, 0xc7, 0x37, 0x81, 0xb0, 0x1a, 0xde, 0x43, 0xcf, 0xab, 0x65,
+ 0x6e, 0xff, 0x79, 0x06, 0x98, 0xc3, 0xd2, 0x9e, 0x29, 0xec, 0x88, 0xbe,
+ 0x8a, 0xfa, 0x96, 0xd3, 0xe7, 0x87, 0x26, 0xa9, 0x60, 0x88, 0x27, 0xee,
+ 0xf9, 0x3b, 0x2f, 0x86, 0x13, 0xdc, 0xa7, 0xc3, 0xd5, 0xfd, 0xc9, 0x92,
+ 0xd3, 0x99, 0xa0, 0x69, 0xc8, 0xb8, 0xab, 0x02, 0x35, 0xd2, 0x60, 0x99,
+ 0x6d, 0xe6, 0x9f, 0xf3, 0x08, 0x7d, 0x45, 0x41, 0xba, 0xbb, 0x71, 0x1f,
+ 0x95, 0x41, 0x30, 0xc9, 0x14, 0xcb, 0xe8, 0x54, 0xcc, 0xd1, 0xb9, 0x95,
+ 0x64, 0xa2, 0xe1, 0xc9, 0x2f, 0xd8, 0x26, 0x04, 0xc7, 0xe9, 0x43, 0x38,
+ 0x0e, 0xa4, 0x67, 0x61, 0xc7, 0xfc, 0x6f, 0x17, 0xbc, 0x6a, 0xc4, 0x5b,
+ 0xe9, 0xbc, 0x6f, 0x17, 0xc2, 0x82, 0x1e, 0x14, 0xea, 0x9c, 0x74, 0xde,
+ 0x50, 0x45, 0xea, 0x0e, 0x7d, 0x1d, 0xe9, 0xd8, 0xb3, 0x6c, 0xe3, 0x03,
+ 0x4c, 0x6a, 0x0e, 0x7d, 0x17, 0x09, 0xe8, 0xf1, 0x3d, 0x7f, 0x8e, 0xdf,
+ 0x02, 0xd4, 0xf2, 0x73, 0xba, 0x2d, 0x90, 0x08, 0x1e, 0xcd, 0x8b, 0x6b,
+ 0xf6, 0xda, 0x21, 0x32, 0x80, 0x4a, 0x9d, 0xe9, 0xa6, 0xed, 0xac, 0x1d,
+ 0x27, 0xab, 0xb7, 0x43, 0x13, 0x2e, 0xea, 0x15, 0xaf, 0xe5, 0xc3, 0xe9,
+ 0x7f, 0xfd, 0x0f, 0x1d, 0x9a, 0x3f, 0x8d, 0x7c, 0xb4, 0x9e, 0xb0, 0xb0,
+ 0xdb, 0x8c, 0xd0, 0xeb, 0x04, 0x5b, 0x97, 0x0f, 0x62, 0xa9, 0x11, 0xb5,
+ 0xaa, 0xde, 0x38, 0x43, 0xb3, 0x77, 0x24, 0x51, 0xe3, 0x5a, 0xb6, 0xcf,
+ 0x22, 0xdf, 0x33, 0xca, 0x89, 0xd1, 0x96, 0x09, 0xc8, 0x77, 0x6b, 0x0c,
+ 0xe8, 0x06, 0xdf, 0x71, 0xb1, 0x2e, 0x5a, 0x5c, 0xc1, 0x53, 0xc4, 0xd0,
+ 0xaf, 0xed, 0xfc, 0x21, 0x03, 0x83, 0xc4, 0xa9, 0x9d, 0x02, 0x7f, 0x96,
+ 0x39, 0xb4, 0x00, 0xb7, 0x54, 0x1b, 0x17, 0x82, 0xf2, 0x4d, 0x06, 0xfb,
+ 0xde, 0x4c, 0x7b, 0x3b, 0x03, 0x9b, 0x73, 0xe3, 0x08, 0x66, 0xd9, 0x6e,
+ 0x0f, 0xfc, 0x75, 0x72, 0xf2, 0xaa, 0x2b, 0x27, 0x51, 0xa7, 0xeb, 0x07,
+ 0x23, 0x35, 0x48, 0x41, 0x18, 0x28, 0x19, 0x6d, 0xc7, 0xc4, 0x9e, 0x3a,
+ 0xf5, 0x05, 0x8f, 0x3c, 0xe8, 0xda, 0x96, 0x0e, 0xb6, 0x54, 0xe4, 0xea,
+ 0x18, 0xa5, 0xb7, 0xb8, 0xda, 0xf3, 0x57, 0x72, 0x36, 0x0d, 0xbe, 0xd5,
+ 0x30, 0xae, 0x53, 0x4b, 0xd3, 0xe3, 0xd7, 0x66, 0x6f, 0x16, 0xd1, 0x54,
+ 0x82, 0x94, 0x72, 0x82, 0x8d, 0xd5, 0xc9, 0xd9, 0xd7, 0x8c, 0x9b, 0x88,
+ 0x34, 0x88, 0x13, 0x43, 0xfe, 0x1b, 0xe4, 0x15, 0xa5, 0xb1, 0x5d, 0xad,
+ 0x7a, 0x26, 0xb2, 0x4f, 0x03, 0xfe, 0xfd, 0xb2, 0xf6, 0x59, 0x66, 0xac,
+ 0xe1, 0x0f, 0xe3, 0xc4, 0x04, 0x46, 0x54, 0x5f, 0xf6, 0x43, 0x58, 0x81,
+ 0x29, 0x28, 0xdb, 0x42, 0x61, 0x7d, 0xcb, 0xb6, 0xa0, 0x48, 0xc4, 0xd7,
+ 0xd2, 0x98, 0xed, 0x07, 0x55, 0xf5, 0x59, 0xcb, 0x0b, 0x2c, 0x9d, 0x56,
+ 0x5e, 0x91, 0x66, 0x72, 0xb5, 0xd3, 0xe0, 0xb9, 0x12, 0x19, 0x43, 0x3a,
+ 0x2a, 0xe6, 0x04, 0x42, 0x89, 0x3f, 0xaa, 0x55, 0xe2, 0x0a, 0x96, 0x2f,
+ 0x8e, 0xb6, 0x89, 0x7e, 0x19, 0x20, 0x9b, 0x6d, 0x6d, 0xb1, 0xa6, 0x06,
+ 0xbf, 0x72, 0xe7, 0x42, 0xdd, 0xe1, 0xba, 0x30, 0x15, 0x6f, 0xec, 0xfe,
+ 0xf9, 0x1c, 0xc5, 0x7f, 0x50, 0x66, 0x94, 0xa2, 0xec, 0x26, 0x84, 0x40,
+ 0x52, 0x3d, 0x8f, 0x0d, 0x15, 0xa9, 0xf2, 0x21, 0xea, 0x51, 0xf9, 0x3a,
+ 0xc1, 0xc3, 0x8c, 0xd0, 0x9b, 0xcf, 0x34, 0x13, 0xb9, 0xec, 0x04, 0x44,
+ 0x16, 0xc9, 0x29, 0x58, 0xa0, 0x77, 0xd1, 0x52, 0x8c, 0x15, 0x9d, 0x55,
+ 0xb6, 0x31, 0xca, 0x00, 0x29, 0xe6, 0xb1, 0xd9, 0x40, 0x43, 0x55, 0x6f,
+ 0x5e, 0x8b, 0xc1, 0xf0, 0xde, 0xdc, 0x98, 0x9f, 0x63, 0x89, 0x38, 0x6c,
+ 0xf4, 0xb0, 0xb8, 0x0c, 0x17, 0x5a, 0x6a, 0xbd, 0x7a, 0x2f, 0x80, 0xae,
+ 0x79, 0x2a, 0x12, 0xae, 0x58, 0x0e, 0x41, 0x27, 0x80, 0x37, 0x03, 0x00,
+ 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0f, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x18, 0x00, 0xc1, 0x80, 0xe9, 0xc0, 0xc6, 0x9f,
+ 0x80, 0xd7, 0x27, 0x9a, 0x9e, 0xbe, 0xe3, 0x0e, 0x34, 0xf4, 0x6b, 0x48,
+ 0x3f, 0x5b, 0x35, 0x7b, 0x0a, 0xa4, 0x5c, 0xf7, 0x4f, 0x2a, 0xde, 0xaf,
+ 0x3c, 0xe2, 0x7c, 0x98, 0x1e, 0x9c, 0xd8, 0xa7, 0x39, 0x45, 0x2f, 0x48,
+ 0x9f, 0x25, 0xa4, 0xfb, 0x7e, 0xbe, 0x34, 0x45, 0x75, 0xa9, 0x8f, 0x88,
+ 0x67, 0x72, 0xa7, 0x18, 0xa3, 0x71, 0xe5, 0x47, 0x63, 0x06, 0x04, 0x6f,
+ 0xe5, 0xe5, 0xb1, 0xba, 0xc5, 0x29, 0x52, 0x03, 0x82, 0x15, 0xb9, 0xa4,
+ 0x01, 0x83, 0xe5, 0xc7, 0x83, 0x60, 0x4e, 0x22, 0x76, 0x61, 0xf6, 0x03,
+ 0xa6, 0x14, 0x4b, 0xd0, 0x30, 0x96, 0xca, 0xf4, 0x19, 0x5f, 0xd6, 0xa5,
+ 0x0c, 0x45, 0x67, 0xbb, 0xe5, 0xbd, 0x41, 0x19, 0xde, 0x9a, 0xb7, 0x86,
+ 0x5a, 0xd9, 0x8f, 0x21, 0x05, 0x38, 0x1b, 0x15, 0x59, 0x41, 0xe9, 0x68,
+ 0xa4, 0x05, 0xce, 0xc1, 0x67, 0x84, 0x88, 0x6f, 0x94, 0x5c, 0x39, 0x18,
+ 0x25, 0xbb, 0x4b, 0x9e, 0x42, 0xab, 0xbe, 0x3e, 0xcd, 0x82, 0x38, 0x41,
+ 0x9b, 0x58, 0x77, 0x9f, 0xfc, 0xaa, 0x43, 0xf8, 0x93, 0x2f, 0xcd, 0xcc,
+ 0x8b, 0x9e, 0x62, 0xf8, 0x2c, 0x32, 0x39, 0xc4, 0xfb, 0x3d, 0xcc, 0xcb,
+ 0x96, 0x42, 0x6a, 0x1c, 0x29, 0x52, 0x6e, 0x73, 0x25, 0x40, 0x3c, 0xe4,
+ 0x07, 0x22, 0xb2, 0x6a, 0x22, 0x9c, 0xad, 0xf3, 0x42, 0x3c, 0x17, 0xa2,
+ 0x03, 0x12, 0x7c, 0x3f, 0x0f, 0x53, 0x7f, 0x88, 0x35, 0x4f, 0x1c, 0x42,
+ 0x1f, 0xff, 0xfe, 0x2d, 0xcb, 0x20, 0x73, 0x17, 0x14, 0x87, 0x35, 0x6f,
+ 0x1e, 0x16, 0x86, 0x8f, 0x10, 0x9a, 0xe3, 0x2d, 0xc0, 0xa7, 0x21, 0x9c,
+ 0x12, 0x74, 0x65, 0x5b, 0x35, 0xc2, 0x52, 0x2d, 0xb8, 0xc7, 0x46, 0x86,
+ 0x18, 0x5b, 0xcf, 0xb7, 0x3f, 0xf1, 0xdf, 0x19, 0xf1, 0x8a, 0xf0, 0x68,
+ 0x11, 0x35, 0x9e, 0xb5, 0x4f, 0xc0, 0xe0, 0x9d, 0xc5, 0x93, 0xa8, 0x10,
+ 0x43, 0x04, 0x83, 0xc2, 0x16, 0x02, 0xfa, 0xcf, 0x8f, 0x6d, 0xfe, 0xf7,
+ 0x3f, 0xdd, 0xb8, 0x9f, 0x7a, 0xb6, 0xf9, 0x80, 0x31, 0xb5, 0xed, 0xa9,
+ 0xfc, 0x0e, 0x91, 0x62, 0x4d, 0x3d, 0x96, 0xc0, 0xb1, 0xec, 0x9d, 0xf8,
+ 0x43, 0xae, 0xfc, 0x5f, 0x4d, 0x9d, 0x91, 0x05, 0xef, 0x19, 0x90, 0x78,
+ 0xf7, 0x61, 0xbe, 0xcf, 0x25, 0x94, 0x29, 0x9e, 0x16, 0xb7, 0xd9, 0x98,
+ 0x1e, 0x0f, 0x65, 0x5a, 0xa9, 0xa9, 0x54, 0x79, 0x55, 0x43, 0x1e, 0x1b,
+ 0xf8, 0xc9, 0xf2, 0x0d, 0x10, 0x36, 0x2f, 0x26, 0x53, 0x97, 0x8b, 0x91,
+ 0x0f, 0xf4, 0x36, 0xc4, 0x38, 0x40, 0x32, 0x49, 0xb6, 0x32, 0x8d, 0xef,
+ 0x75, 0x47, 0xeb, 0x31, 0x06, 0x19, 0xcc, 0x23, 0x44, 0x46, 0xd1, 0x93,
+ 0xce, 0x9b, 0x72, 0xa1, 0xff, 0x5c, 0xaa, 0xf2, 0x8d, 0x06, 0x3e, 0x5c,
+ 0x69, 0xa1, 0xa1, 0xdb, 0x90, 0xa5, 0x29, 0x56, 0x17, 0x4e, 0x16, 0x82,
+ 0xb1, 0x83, 0x04, 0x5b, 0x54, 0x07, 0xa8, 0xac, 0xbd, 0xa2, 0x2c, 0xdf,
+ 0xdd, 0xfa, 0x15, 0x03, 0x3e, 0xcf, 0x36, 0xa4, 0xad, 0x78, 0x58, 0x00,
+ 0xc3, 0x4c, 0x2e, 0x2a, 0xd9, 0xc3, 0xcf, 0x00, 0x28, 0x39, 0xcc, 0x1d,
+ 0x09, 0x50, 0xf9, 0x41, 0xc2, 0x96, 0x88, 0xe5, 0x6c, 0xfd, 0x91, 0xba,
+ 0x0e, 0xc1, 0xc6, 0x34, 0x8c, 0xef, 0xad, 0x4d, 0x79, 0xb4, 0x92, 0x22,
+ 0xf9, 0xa3, 0x5b, 0xb9, 0xac, 0x66, 0x48, 0xd2, 0xec, 0xb0, 0x9d, 0x6e,
+ 0x03, 0x75, 0x8b, 0xee, 0xf4, 0x6c, 0xf9, 0xd7, 0x81, 0xfc, 0xc4, 0x0d,
+ 0xed, 0x80, 0xa8, 0x30, 0x59, 0xd6, 0x41, 0xe2, 0x67, 0x00, 0xf6, 0xfe,
+ 0x98, 0x1c, 0x14, 0xf8, 0x07, 0x33, 0xda, 0xd0, 0x9a, 0xf6, 0x35, 0x49,
+ 0x59, 0x9b, 0x72, 0xbd, 0xc6, 0x13, 0x96, 0x2f, 0x9d, 0x19, 0x05, 0x22,
+ 0x65, 0x0c, 0x5f, 0x63, 0xbb, 0x56, 0x46, 0xd2, 0x5e, 0xdf, 0x6b, 0xb2,
+ 0x85, 0x20, 0x70, 0xb8, 0x30, 0xb7, 0x1a, 0xda, 0x1e, 0x8e, 0x00, 0x55,
+ 0x3d, 0xeb, 0x24, 0xa7, 0x39, 0x9d, 0x07, 0xec, 0x1a, 0xef, 0xce, 0x73,
+ 0x23, 0x26, 0x50, 0xbf, 0x43, 0x53, 0x06, 0xb8, 0x8b, 0xe1, 0x3a, 0x05,
+ 0x72, 0x50, 0xcd, 0x21, 0xc4, 0x25, 0x75, 0x0f, 0x98, 0x0f, 0x56, 0x24,
+ 0xa1, 0x99, 0xd3, 0x77, 0x3b, 0x66, 0xe9, 0xed, 0x77, 0x49, 0x77, 0x37,
+ 0x56, 0x38, 0x8a, 0xef, 0xd4, 0xc2, 0x36, 0xcb, 0x8f, 0x4e, 0x2f, 0xda,
+ 0xa3, 0xcf, 0x14, 0x80, 0xc1, 0xd3, 0x93, 0x36, 0x42, 0xec, 0x17, 0x41,
+ 0xef, 0x44, 0xf6, 0xde, 0x94, 0xa3, 0x0f, 0x81, 0xcf, 0x5e, 0x2d, 0xe4,
+ 0x6a, 0x65, 0xb9, 0x54, 0xf3, 0xcb, 0x59, 0x1a, 0x65, 0xe9, 0x0d, 0xec,
+ 0x25, 0xa0, 0x1c, 0x27, 0x4b, 0xbb, 0x8e, 0x2f, 0x13, 0xa6, 0xfc, 0xce,
+ 0xfe, 0x7d, 0xc1, 0xd0, 0x8e, 0xc6, 0x9b, 0xc3, 0x5f, 0x50, 0xe5, 0x07,
+ 0x60, 0xcb, 0xe4, 0xb6, 0x2a, 0xe2, 0x29, 0xb4, 0xf0, 0xab, 0x41, 0x08,
+ 0xdd, 0x13, 0x47, 0x03, 0x0b, 0x3c, 0x71, 0xce, 0x61, 0x01, 0x88, 0x10,
+ 0xea, 0x66, 0xb4, 0x4f, 0xbc, 0x71, 0xa8, 0x01, 0x27, 0x4e, 0x4b, 0xfb,
+ 0x46, 0x30, 0xbb, 0x7f, 0x43, 0xcc, 0xdc, 0xca, 0x8c, 0x99, 0x58, 0xd1,
+ 0x37, 0x70, 0x44, 0x69, 0x1f, 0xf3, 0xf8, 0x38, 0x5e, 0x91, 0xae, 0x03,
+ 0xe6, 0x28, 0x34, 0xc2, 0xfe, 0x94, 0x88, 0x82, 0x8b, 0xf5, 0xff, 0x36,
+ 0xb0, 0x8d, 0xda, 0xba, 0x4f, 0x7e, 0x1e, 0x23, 0xcc, 0x39, 0xdf, 0xbf,
+ 0xb1, 0x59, 0x23, 0x47, 0x4d, 0x2c, 0xc4, 0xf4, 0x15, 0x42, 0x60, 0xf5,
+ 0x57, 0x55, 0x88, 0x9e, 0x83, 0xcb, 0x0c, 0x50, 0xe5, 0xed, 0x2e, 0x4b,
+ 0x1f, 0x58, 0xdb, 0xb5, 0x46, 0x14, 0xbc, 0xab, 0xce, 0x11, 0xb1, 0xe3,
+ 0x39, 0x5f, 0x50, 0x3f, 0xb9, 0xdd, 0xbe, 0x2a, 0x0c, 0xdf, 0xfa, 0x64,
+ 0x5d, 0x1a, 0xb9, 0x95, 0x0f, 0x50, 0xb5, 0x0f, 0x36, 0xfd, 0x21, 0xb2,
+ 0x43, 0x4f, 0xda, 0x80, 0x2d, 0x03, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x12, 0x00, 0x04, 0x10, 0x28, 0x00, 0x18,
+ 0xeb, 0xce, 0x00, 0xdd, 0x7e, 0xe1, 0xcf, 0x77, 0x23, 0x5f, 0x27, 0x96,
+ 0x1b, 0x42, 0xdb, 0xaa, 0x2b, 0xd4, 0x7c, 0xc0, 0xa7, 0x79, 0xd3, 0xec,
+ 0xe0, 0x1f, 0x31, 0x83, 0xc3, 0xa1, 0xb4, 0xa3, 0x81, 0x84, 0xbe, 0x5b,
+ 0x49, 0x7e, 0x18, 0x6b, 0x4f, 0x9e, 0x78, 0x44, 0x68, 0x1c, 0xef, 0x18,
+ 0x77, 0x9f, 0xf8, 0xb1, 0xff, 0x15, 0x63, 0x14, 0x1e, 0x57, 0xb6, 0x6a,
+ 0xa7, 0x7f, 0x39, 0xab, 0x58, 0x01, 0x8e, 0x1b, 0xe7, 0xa9, 0x11, 0x35,
+ 0xe1, 0x1f, 0x00, 0x2a, 0x45, 0xc9, 0xfa, 0x3a, 0xa5, 0x88, 0xf5, 0xcd,
+ 0xc8, 0xe8, 0xf7, 0x49, 0x0d, 0x4c, 0xda, 0x2f, 0x33, 0x22, 0x05, 0x86,
+ 0x33, 0xfa, 0x62, 0xe0, 0x6f, 0xfd, 0xbd, 0xd2, 0xff, 0x4b, 0x5b, 0xa3,
+ 0x7e, 0x43, 0xb6, 0x13, 0x2b, 0x7d, 0xe0, 0x20, 0x70, 0x00, 0x00, 0xfd,
+ 0x95, 0x89, 0x34, 0x03, 0x86, 0x0a, 0xad, 0x46, 0xe8, 0xd3, 0xd0, 0xda,
+ 0x67, 0x78, 0x0c, 0xd3, 0xea, 0x07, 0x80, 0x3b, 0x51, 0xbc, 0xc5, 0x4b,
+ 0x17, 0xd3, 0x2e, 0x1f, 0xb4, 0x60, 0x2e, 0xd5, 0xf1, 0x33, 0xb0, 0x4a,
+ 0x5d, 0xf0, 0x28, 0x3c, 0xfb, 0xa4, 0xf5, 0xbf, 0xb7, 0x62, 0xa8, 0x93,
+ 0xfa, 0xe2, 0x8c, 0xb2, 0x37, 0xdd, 0x9b, 0x03, 0x04, 0xe8, 0x85, 0x4a,
+ 0xe7, 0xa6, 0x5a, 0xa1, 0xa5, 0x8b, 0xe8, 0x38, 0x90, 0x97, 0xfe, 0x8b,
+ 0xd5, 0xa0, 0xea, 0x45, 0x80, 0x8d, 0x77, 0x82, 0x07, 0x24, 0x66, 0x30,
+ 0xa5, 0x48, 0x5c, 0x67, 0xd6, 0x4a, 0x8b, 0xc3, 0xc5, 0xc4, 0xba, 0x90,
+ 0x92, 0x1d, 0x24, 0x93, 0xab, 0x72, 0x6e, 0x13, 0x92, 0x23, 0x0c, 0xd0,
+ 0xee, 0x85, 0xfd, 0x76, 0xa4, 0x1e, 0xba, 0x47, 0x42, 0x08, 0x39, 0x2e,
+ 0x49, 0xf0, 0xc2, 0xb0, 0x7b, 0x6c, 0x3a, 0x6a, 0xd6, 0xb8, 0xe3, 0x99,
+ 0x2e, 0x2e, 0x95, 0x48, 0xbf, 0x9f, 0x8c, 0xec, 0x8c, 0x8d, 0x83, 0x0b,
+ 0xc1, 0xb2, 0x67, 0x7a, 0xaa, 0x3d, 0x8e, 0xfb, 0x70, 0x83, 0x1a, 0xaa,
+ 0x73, 0x55, 0x36, 0x40, 0x7d, 0xd9, 0xc3, 0xcf, 0xaa, 0xdf, 0x92, 0xbf,
+ 0xff, 0xea, 0x05, 0x66, 0x97, 0x20, 0xb8, 0x7e, 0xd9, 0xa7, 0x7c, 0x74,
+ 0x52, 0xd9, 0x0f, 0xd4, 0xe7, 0x23, 0x5e, 0x83, 0x3f, 0xa6, 0x30, 0xab,
+ 0xcf, 0x8e, 0xeb, 0x83, 0xc5, 0xaf, 0x07, 0xb7, 0x3e, 0x92, 0xc7, 0x3c,
+ 0x21, 0xe2, 0xdb, 0xa9, 0xe1, 0xfe, 0xb3, 0x13, 0x6a, 0xd6, 0xf8, 0x73,
+ 0x95, 0x71, 0x86, 0x10, 0x5e, 0xd6, 0x57, 0x55, 0x88, 0xb3, 0x94, 0x0f,
+ 0x47, 0x70, 0x8f, 0xfa, 0x05, 0x3c, 0xc0, 0xe2, 0xaa, 0xf9, 0xb0, 0xb0,
+ 0x4d, 0x77, 0x36, 0x01, 0x6f, 0x7c, 0x75, 0x66, 0x43, 0xca, 0x92, 0xef,
+ 0xa0, 0x6b, 0x86, 0x3d, 0xe0, 0xf3, 0x48, 0x39, 0xc1, 0x0b, 0xe3, 0x74,
+ 0xf8, 0x0b, 0xd0, 0x81, 0xe0, 0x90, 0x41, 0x2e, 0x86, 0xa9, 0x84, 0xd7,
+ 0xa6, 0x99, 0xd5, 0x85, 0x48, 0x11, 0x59, 0x9e, 0xdf, 0xd2, 0xb0, 0xb7,
+ 0xbf, 0x17, 0xf9, 0x5d, 0xf9, 0x5d, 0x34, 0x63, 0xf8, 0x90, 0xbf, 0x60,
+ 0x87, 0x06, 0xc6, 0x49, 0x4a, 0xd7, 0xc2, 0x2a, 0xd0, 0x03, 0xfc, 0x32,
+ 0x81, 0x49, 0x69, 0xa3, 0x31, 0xa0, 0xf6, 0xa3, 0xbe, 0x91, 0xd8, 0x07,
+ 0xce, 0xa2, 0x83, 0xf4, 0x3c, 0x1c, 0x93, 0xff, 0x8e, 0x8c, 0x53, 0xee,
+ 0xf8, 0xa9, 0x0d, 0x2c, 0xf0, 0xb9, 0x43, 0xe7, 0x11, 0xeb, 0x47, 0x3d,
+ 0x18, 0xf3, 0x02, 0xb2, 0x12, 0x39, 0x0f, 0x6a, 0xf5, 0x54, 0xff, 0xa1,
+ 0x69, 0x5e, 0xe5, 0x85, 0x0c, 0xbd, 0x7c, 0xa8, 0xf3, 0xe2, 0x07, 0xb9,
+ 0x31, 0x98, 0xdf, 0x5c, 0xd2, 0xe4, 0x5d, 0x3f, 0x37, 0x32, 0x08, 0x65,
+ 0x40, 0x9b, 0x30, 0xd8, 0x78, 0x87, 0x2b, 0xee, 0xdc, 0x8d, 0x0c, 0x0e,
+ 0x64, 0x69, 0xb3, 0x30, 0x07, 0x76, 0xf2, 0xcc, 0x76, 0x5f, 0xfd, 0xd1,
+ 0x0d, 0x66, 0xb2, 0x87, 0x44, 0x43, 0xb7, 0x5d, 0x22, 0x5d, 0x01, 0x5e,
+ 0xc0, 0xb8, 0x1e, 0xe1, 0xb8, 0xa6, 0xc4, 0xea, 0xe6, 0x38, 0x02, 0x91,
+ 0xc1, 0x53, 0x28, 0x70, 0x3a, 0xc8, 0xa0, 0x79, 0xde, 0xd1, 0x76, 0xb8,
+ 0xe8, 0xb0, 0xf7, 0xe8, 0xc2, 0x61, 0x96, 0x91, 0x0b, 0x3b, 0x33, 0xcf,
+ 0x5d, 0xf2, 0x33, 0x3b, 0x16, 0x81, 0x4c, 0xbf, 0x9a, 0x8f, 0x31, 0x57,
+ 0x4e, 0x89, 0xd8, 0xd5, 0x17, 0x86, 0xef, 0xa8, 0x16, 0xc9, 0x93, 0xab,
+ 0xfa, 0x2b, 0xa2, 0xf4, 0xd2, 0xaf, 0xd4, 0xb2, 0x81, 0xd3, 0xd6, 0xf6,
+ 0xf1, 0xc6, 0xdc, 0xb6, 0x1d, 0xe5, 0x32, 0x30, 0x5a, 0x20, 0xdd, 0x40,
+ 0x41, 0xd9, 0x0e, 0xa6, 0xfb, 0x01, 0x07, 0x02, 0xbe, 0x7f, 0x74, 0x94,
+ 0xaa, 0x37, 0xbc, 0x62, 0x22, 0xd9, 0x99, 0x36, 0xb2, 0xc2, 0x87, 0x19,
+ 0xd6, 0x18, 0x4c, 0xa9, 0x70, 0x49, 0x45, 0x91, 0x62, 0xd0, 0xad, 0xc5,
+ 0x25, 0x2e, 0xc7, 0xeb, 0x22, 0x9b, 0x2f, 0xf9, 0x56, 0x96, 0x7a, 0xd1,
+ 0x32, 0x17, 0x9a, 0x29, 0x78, 0x17, 0xb4, 0x24, 0x74, 0x7f, 0x14, 0x82,
+ 0xd1, 0x41, 0xb9, 0xf3, 0x8b, 0x7a, 0x22, 0xb3, 0x78, 0xfd, 0x34, 0xf4,
+ 0xf5, 0xd6, 0x65, 0xbc, 0x76, 0x3b, 0x38, 0x59, 0x33, 0x66, 0xdc, 0xcb,
+ 0xb6, 0x3d, 0x82, 0x41, 0x1c, 0x18, 0xc7, 0x86, 0x74, 0xb9, 0x78, 0x39,
+ 0x1d, 0x9b, 0x45, 0x8f, 0x4b, 0x93, 0x4a, 0x44, 0x90, 0x49, 0xcd, 0x7a,
+ 0x24, 0xa9, 0xa1, 0xa0, 0x50, 0x5b, 0x2a, 0x6d, 0x64, 0x6e, 0x47, 0xec,
+ 0xfc, 0xf7, 0xce, 0xc6, 0xb7, 0xb3, 0x81, 0x3c, 0x1a, 0x51, 0x37, 0x84,
+ 0x1a, 0x55, 0x08, 0xdc, 0xab, 0xcb, 0xfb, 0x49, 0xc7, 0x57, 0x33, 0x90,
+ 0xb7, 0xcc, 0xc7, 0x67, 0x3e, 0xf4, 0xf3, 0xf0, 0x41, 0x32, 0x2b, 0x05,
+ 0x22, 0x80, 0x86, 0xe1, 0x4d, 0x45, 0x9f, 0x30, 0x7b, 0x92, 0xff, 0xf6,
+ 0xed, 0xba, 0xc9, 0x73, 0x18, 0x43, 0x8b, 0xae, 0xd7, 0x6e, 0x9e, 0x50,
+ 0x00, 0xfb, 0x01, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x31, 0x0d, 0x00, 0x03, 0x10, 0x28, 0x00, 0x18, 0x00, 0x41, 0x5e,
+ 0xf5, 0x8e, 0x39, 0x84, 0xd8, 0x16, 0xcc, 0x75, 0xb3, 0x06, 0x91, 0xea,
+ 0x98, 0xd1, 0x71, 0x00, 0x86, 0x88, 0xd2, 0xda, 0x33, 0xaf, 0xcd, 0x91,
+ 0xa7, 0x07, 0x2c, 0x0e, 0x7a, 0x6f, 0xcb, 0xdf, 0xbb, 0xb9, 0x11, 0x46,
+ 0xaa, 0xb9, 0x0a, 0x20, 0x87, 0xc5, 0xdf, 0x4e, 0xa2, 0x8a, 0xbb, 0x4c,
+ 0x6b, 0x90, 0x91, 0x3a, 0xe5, 0x56, 0x1a, 0xe4, 0xa2, 0x31, 0xac, 0xa2,
+ 0xac, 0x42, 0x47, 0x2d, 0x5a, 0x39, 0x58, 0x2c, 0xb7, 0x2e, 0xb7, 0x2e,
+ 0x99, 0x78, 0x0d, 0xf7, 0x8a, 0x41, 0x7c, 0x9f, 0x26, 0x17, 0xf2, 0x0d,
+ 0xc3, 0x00, 0x4d, 0x53, 0x20, 0x31, 0x45, 0x92, 0xb2, 0xe5, 0xb7, 0x81,
+ 0x44, 0x3b, 0x71, 0x41, 0xdf, 0x30, 0x21, 0xa4, 0x43, 0x70, 0xec, 0xbd,
+ 0x73, 0xd6, 0xbf, 0x55, 0xb4, 0x24, 0xd6, 0x61, 0x4d, 0x56, 0x89, 0x33,
+ 0xdb, 0x69, 0x22, 0x71, 0xb9, 0xd1, 0x92, 0x71, 0x0f, 0xfb, 0xb5, 0x7d,
+ 0x62, 0xc6, 0x6c, 0x02, 0x24, 0x7f, 0x57, 0x57, 0x1b, 0xa7, 0x73, 0xa9,
+ 0x63, 0x33, 0xe1, 0x56, 0xfc, 0x38, 0xfe, 0xd0, 0xab, 0x4a, 0x24, 0x99,
+ 0xce, 0x77, 0x46, 0x01, 0xf0, 0xc6, 0x0c, 0x33, 0xe5, 0xcd, 0xa7, 0xdf,
+ 0x4c, 0xbd, 0x19, 0xec, 0xbb, 0xd6, 0x71, 0x00, 0xf3, 0x2e, 0x32, 0xf6,
+ 0x20, 0xb9, 0xb0, 0x95, 0xe1, 0xb8, 0xae, 0x77, 0x72, 0x43, 0x36, 0xf2,
+ 0x2e, 0x1e, 0x70, 0xa2, 0xdc, 0x65, 0x03, 0x5e, 0x73, 0x40, 0x92, 0x01,
+ 0xc3, 0xb0, 0x7a, 0x9d, 0x5f, 0x0d, 0x6e, 0x16, 0xfb, 0xf7, 0xe7, 0xaa,
+ 0xb2, 0xba, 0xfb, 0x34, 0x37, 0x43, 0x78, 0x46, 0x71, 0xa8, 0x63, 0xa4,
+ 0xf0, 0xc3, 0xc9, 0x8b, 0x9e, 0x0b, 0xc6, 0xcd, 0xa6, 0xaa, 0xc6, 0x07,
+ 0x63, 0x4c, 0x3f, 0x15, 0x72, 0xe1, 0x67, 0xe8, 0x5e, 0xd2, 0xd3, 0x18,
+ 0xc9, 0x9e, 0x38, 0x5f, 0x4c, 0xf9, 0xbf, 0xb2, 0x67, 0x54, 0x56, 0x63,
+ 0x84, 0x4d, 0xdf, 0x06, 0xd8, 0x51, 0xe9, 0x13, 0x1b, 0x44, 0x78, 0x44,
+ 0x64, 0xc1, 0x04, 0x24, 0x66, 0x0a, 0x22, 0x66, 0x1c, 0x06, 0xc6, 0xec,
+ 0x7a, 0xb3, 0x52, 0x29, 0x38, 0x16, 0xbd, 0x4c, 0xb5, 0xf5, 0xd1, 0x66,
+ 0xb0, 0x12, 0xea, 0xa2, 0x48, 0x6f, 0xa5, 0x39, 0xde, 0x78, 0x4c, 0x84,
+ 0x17, 0xee, 0x0c, 0x0e, 0xf9, 0x0e, 0xba, 0x41, 0x1a, 0x56, 0x46, 0x0e,
+ 0xaa, 0xd7, 0xfc, 0x4e, 0x5a, 0x7b, 0x91, 0xb0, 0x24, 0x6e, 0xfd, 0x2a,
+ 0xe9, 0xa9, 0x94, 0xa3, 0x3b, 0xcf, 0xe0, 0xa4, 0x98, 0x76, 0xd7, 0xf2,
+ 0xcf, 0x1b, 0x5e, 0x6b, 0x62, 0x36, 0x27, 0x91, 0x44, 0x56, 0xe4, 0x36,
+ 0x04, 0xc4, 0xb7, 0x62, 0x6c, 0xa6, 0x37, 0x5f, 0x2f, 0x05, 0x5c, 0x14,
+ 0x6a, 0x1c, 0x87, 0x65, 0x88, 0xa5, 0x65, 0xa0, 0x91, 0x41, 0xd9, 0xae,
+ 0x59, 0xe7, 0xf4, 0x30, 0x65, 0xec, 0x1c, 0x71, 0x66, 0xc0, 0xaf, 0x6f,
+ 0x8c, 0x63, 0xa8, 0x81, 0xbf, 0x26, 0xb2, 0x8e, 0xea, 0x29, 0xac, 0x5f,
+ 0xb9, 0x4c, 0x3b, 0x58, 0xae, 0xc6, 0xc3, 0xf3, 0xe7, 0xd8, 0xdf, 0x33,
+ 0xea, 0xe8, 0xf4, 0x8b, 0x02, 0xb2, 0xc0, 0x24, 0x89, 0x95, 0xf8, 0x45,
+ 0xc0, 0x05, 0x10, 0x07, 0xfb, 0x87, 0x6c, 0x27, 0xb5, 0xc2, 0x1e, 0x55,
+ 0x82, 0x55, 0x14, 0x49, 0xae, 0x0f, 0x7b, 0x73, 0x1a, 0x3f, 0x3f, 0x1e,
+ 0x60, 0xb2, 0x38, 0x20, 0x53, 0x7e, 0x6b, 0xd9, 0x10, 0x2d, 0x9e, 0xc6,
+ 0xd5, 0xaa, 0xc1, 0xe2, 0x7f, 0xf9, 0x5b, 0x26, 0x53, 0xa8, 0xa9, 0xe0,
+ 0xbe, 0x13, 0x79, 0x82, 0xb6, 0xc8, 0xcf, 0xa2, 0xcd, 0xe6, 0x93, 0x2a,
+ 0x9c, 0x0e, 0x10, 0x00, 0x44, 0x02, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x91, 0x0c, 0x00, 0x01, 0x10, 0x28, 0x00, 0x18,
+ 0x00, 0x42, 0x97, 0xb2, 0xdc, 0x48, 0xd0, 0xd1, 0xcc, 0x3a, 0x6d, 0xfb,
+ 0xbf, 0x71, 0x90, 0x9d, 0xbe, 0xc4, 0x45, 0xff, 0xa3, 0x77, 0xfa, 0xfe,
+ 0xe7, 0x0e, 0x00, 0x96, 0xa4, 0x13, 0xbd, 0xce, 0x56, 0x9e, 0x32, 0x5d,
+ 0xac, 0x45, 0x48, 0x50, 0xcf, 0x95, 0x72, 0x1c, 0x86, 0xfe, 0x8b, 0xa4,
+ 0x9d, 0x28, 0x5f, 0x00, 0xd5, 0x2a, 0xb5, 0x04, 0x18, 0xf0, 0x0f, 0x3f,
+ 0xc3, 0x60, 0x65, 0xe0, 0x00, 0x08, 0x0f, 0xb9, 0x8d, 0xb8, 0x00, 0x10,
+ 0xd7, 0x0d, 0x18, 0x51, 0xba, 0x5c, 0x7b, 0x61, 0x7b, 0x81, 0x00, 0x0c,
+ 0x9b, 0x10, 0x73, 0x97, 0x15, 0x5f, 0xb4, 0x3d, 0x4a, 0xb0, 0x00, 0x3b,
+ 0x54, 0xce, 0x9e, 0x03, 0x5d, 0x5a, 0x9f, 0xf0, 0x21, 0xf8, 0xaf, 0xd7,
+ 0x2b, 0xb4, 0x83, 0xeb, 0xe7, 0x63, 0x45, 0x24, 0x14, 0x6b, 0xb7, 0x57,
+ 0x67, 0x91, 0xe8, 0x20, 0xc5, 0x0a, 0x74, 0x7a, 0x3a, 0x38, 0x7f, 0xda,
+ 0x36, 0x77, 0x83, 0xb1, 0x6f, 0x42, 0xde, 0x60, 0xc0, 0x3e, 0x20, 0xab,
+ 0x8d, 0xf5, 0xc3, 0xb5, 0x7e, 0xc4, 0xd0, 0xf2, 0x6c, 0xf4, 0x41, 0xda,
+ 0xa5, 0xcd, 0xe4, 0x37, 0x8e, 0x1f, 0xca, 0xf1, 0x57, 0xe1, 0x4a, 0xb9,
+ 0xf2, 0xaf, 0xc7, 0xe3, 0x4a, 0x32, 0x87, 0x0b, 0xf6, 0x3f, 0x40, 0x20,
+ 0xa2, 0x45, 0x87, 0x44, 0xbb, 0x2a, 0x7c, 0xdc, 0x29, 0x32, 0x08, 0x83,
+ 0xca, 0x50, 0x25, 0x0b, 0xa1, 0x4d, 0x1a, 0x41, 0x10, 0xed, 0x50, 0x5d,
+ 0x9e, 0xb4, 0x7d, 0x3f, 0xd3, 0xf2, 0xb7, 0x5a, 0x59, 0x3b, 0xe7, 0x63,
+ 0xeb, 0x0a, 0xeb, 0xff, 0x89, 0x09, 0xc5, 0x22, 0x55, 0x70, 0xec, 0xc5,
+ 0x8a, 0xc2, 0xff, 0xc4, 0x38, 0x4b, 0x51, 0x7e, 0x44, 0x35, 0xb7, 0x57,
+ 0xfb, 0x97, 0xa1, 0x79, 0x9b, 0xab, 0x3b, 0xb4, 0x81, 0xe9, 0xc0, 0x33,
+ 0x85, 0x28, 0x54, 0xb8, 0xcd, 0xac, 0x89, 0x54, 0x70, 0x92, 0x7d, 0x32,
+ 0x28, 0xbd, 0x55, 0x43, 0xaf, 0x2f, 0xe0, 0x93, 0x7b, 0x68, 0xcc, 0xa7,
+ 0x2e, 0x80, 0x68, 0x5c, 0xa4, 0xc0, 0x0e, 0xdc, 0x00, 0x85, 0x2f, 0x14,
+ 0x6a, 0x89, 0xef, 0x1f, 0xae, 0x99, 0x82, 0x67, 0x7b, 0xc7, 0x8b, 0x96,
+ 0xa0, 0x97, 0xda, 0x50, 0x59, 0x5c, 0x46, 0x23, 0x5c, 0x90, 0x7c, 0x36,
+ 0x04, 0x02, 0x67, 0x62, 0xb8, 0x69, 0xec, 0xc4, 0x8f, 0xfd, 0x79, 0x33,
+ 0x99, 0x4f, 0x84, 0x97, 0xb7, 0x4e, 0x84, 0x13, 0x1c, 0x7e, 0xb4, 0x8f,
+ 0x97, 0xcb, 0x8a, 0x51, 0x88, 0xaa, 0x4b, 0x21, 0x33, 0x2b, 0x4d, 0x5b,
+ 0xb7, 0xc4, 0x37, 0x54, 0x41, 0x82, 0xdb, 0xa7, 0x53, 0xd0, 0x4f, 0xb4,
+ 0xa7, 0xd5, 0x55, 0x0d, 0x57, 0xaa, 0xed, 0x86, 0x0d, 0xae, 0x95, 0x99,
+ 0xa6, 0xd1, 0x4d, 0xb8, 0x2c, 0xd6, 0x09, 0x41, 0xdd, 0x25, 0x00, 0x94,
+ 0xf4, 0x25, 0x45, 0xeb, 0x85, 0xc3, 0x7c, 0xcf, 0x67, 0x7b, 0x4c, 0xb2,
+ 0x1c, 0x84, 0x39, 0x92, 0xf4, 0xfe, 0x2a, 0x71, 0x99, 0x24, 0xf7, 0xb9,
+ 0x77, 0x67, 0x74, 0xa4, 0x4b, 0x2f, 0x72, 0x69, 0x98, 0x67, 0x79, 0x73,
+ 0x6f, 0x1e, 0x9b, 0x91, 0xcb, 0x78, 0x3f, 0x77, 0x84, 0xeb, 0x3c, 0x73,
+ 0x9d, 0xa3, 0x88, 0xef, 0x33, 0x46, 0x3b, 0x6a, 0x35, 0x56, 0x88, 0xdb,
+ 0x73, 0xa1, 0x7a, 0x47, 0xcc, 0xef, 0x40, 0x4b, 0xaf, 0xcb, 0x89, 0xd2,
+ 0x71, 0xab, 0x19, 0xfd, 0x08, 0x33, 0x5b, 0x32, 0x1b, 0x41, 0xed, 0x5b,
+ 0xa4, 0x9d, 0x03, 0xec, 0x1c, 0x9e, 0x32, 0xc1, 0xdd, 0x8e, 0x4d, 0x74,
+ 0x5f, 0x9d, 0x2f, 0x78, 0x73, 0x4a, 0x96, 0xc5, 0xae, 0xbe, 0xa9, 0x88,
+ 0xfd, 0x93, 0x6a, 0x07, 0xf9, 0x56, 0x44, 0xf5, 0x81, 0xc9, 0x13, 0xed,
+ 0x72, 0x95, 0xb0, 0xe8, 0x8a, 0x23, 0x09, 0x46, 0x0a, 0x9b, 0x36, 0x81,
+ 0xe2, 0x00, 0x6d, 0x54, 0x2f, 0x3a, 0x4b, 0x10, 0xf2, 0xcd, 0x79, 0x13,
+ 0x82, 0xde, 0x02, 0x52, 0x05, 0xb5, 0x9b, 0x3d, 0x31, 0x8a, 0xbf, 0xfc,
+ 0x64, 0x63, 0x5b, 0x1f, 0x4b, 0x65, 0x0a, 0xdc, 0xf7, 0xce, 0x86, 0x6e,
+ 0x8e, 0x65, 0xc7, 0x63, 0x80, 0x08, 0x65, 0x89, 0x55, 0xa5, 0x9a, 0x70,
+ 0x84, 0xb2, 0x53, 0x0d, 0xb6, 0xd9, 0xe8, 0x00, 0xbe, 0x02, 0x00, 0x00,
+ 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0e, 0x00, 0x03,
+ 0x10, 0x28, 0x00, 0x19, 0x78, 0x06, 0xa9, 0xec, 0x11, 0x90, 0x11, 0xea,
+ 0xdf, 0x5e, 0x31, 0x34, 0x79, 0x2a, 0xdd, 0xc8, 0x7b, 0x25, 0x25, 0xcf,
+ 0x2c, 0x90, 0x10, 0x3b, 0xd5, 0x8e, 0xe7, 0x37, 0x10, 0xe6, 0x22, 0xc9,
+ 0x19, 0x12, 0xf5, 0x8d, 0x16, 0x8b, 0xd1, 0x54, 0x02, 0x18, 0x97, 0x26,
+ 0x6b, 0xb1, 0x5e, 0x00, 0xf6, 0xd5, 0xe3, 0xd7, 0xbf, 0xe7, 0x36, 0x5d,
+ 0x0f, 0xe7, 0x75, 0x2b, 0xb1, 0x70, 0x4e, 0x94, 0x37, 0xa2, 0xa7, 0x58,
+ 0x0d, 0x06, 0x6f, 0x76, 0x64, 0x8b, 0x3c, 0x50, 0x08, 0xcd, 0x00, 0x04,
+ 0xc2, 0xc1, 0xd7, 0x0c, 0xf3, 0x50, 0x53, 0xdd, 0xdb, 0x0c, 0x06, 0x4c,
+ 0x00, 0x74, 0xd2, 0xed, 0x52, 0x4e, 0x7d, 0xa9, 0xa6, 0xcd, 0x3f, 0x10,
+ 0xb4, 0x41, 0x81, 0x4f, 0x68, 0x3b, 0x2e, 0x89, 0x5f, 0x08, 0x58, 0x67,
+ 0xdc, 0x45, 0x46, 0x5c, 0xbc, 0xc4, 0xd5, 0x73, 0xc3, 0xbb, 0x9d, 0x04,
+ 0x56, 0xd2, 0x10, 0xe3, 0xfc, 0x7c, 0x5b, 0x5b, 0x3f, 0x09, 0xb5, 0x45,
+ 0x51, 0xec, 0x3f, 0x44, 0x80, 0xea, 0xf6, 0xd4, 0x69, 0x24, 0x10, 0xf1,
+ 0xac, 0xcb, 0x3b, 0xeb, 0x10, 0xac, 0x8a, 0xb1, 0x67, 0x73, 0x77, 0x18,
+ 0x1d, 0x7e, 0x4d, 0x6f, 0x69, 0xee, 0x40, 0xa5, 0xaf, 0x0e, 0x30, 0xb5,
+ 0xde, 0x75, 0x31, 0x2b, 0x0d, 0x7b, 0xc1, 0xff, 0xd0, 0x4b, 0x59, 0x56,
+ 0xce, 0xd1, 0x86, 0xde, 0xb4, 0x75, 0xdf, 0xff, 0xae, 0xc5, 0xe1, 0xdd,
+ 0xda, 0xbe, 0xef, 0x12, 0x75, 0xfb, 0x40, 0xb5, 0x47, 0xf0, 0xee, 0x79,
+ 0x55, 0xbf, 0x97, 0xfe, 0x03, 0xc9, 0x4f, 0xb1, 0xbf, 0x4a, 0x63, 0x0e,
+ 0x17, 0xd3, 0x30, 0x69, 0xb3, 0x8e, 0x00, 0x40, 0xcf, 0xd6, 0xf8, 0x72,
+ 0x31, 0x09, 0x30, 0xd7, 0x00, 0x6a, 0x89, 0x81, 0xf3, 0x04, 0xb8, 0xd7,
+ 0x61, 0x66, 0xde, 0xe3, 0xde, 0xfd, 0x11, 0xc4, 0x13, 0xd3, 0x4b, 0x39,
+ 0x29, 0x7c, 0xa1, 0x66, 0x98, 0x43, 0xf8, 0x06, 0xf3, 0x9e, 0xfd, 0xd2,
+ 0xe9, 0xa8, 0xbd, 0x8a, 0x65, 0x75, 0xe0, 0x4d, 0x73, 0x20, 0xb5, 0xf6,
+ 0xd0, 0x96, 0xbe, 0x54, 0xe6, 0xfa, 0xf0, 0x8f, 0x07, 0x49, 0x19, 0xd3,
+ 0xa7, 0x28, 0xa0, 0x6a, 0x8d, 0x47, 0x2f, 0x9f, 0x31, 0xe5, 0x64, 0xc5,
+ 0xbc, 0x46, 0xee, 0x32, 0x2d, 0x7d, 0xd3, 0xa8, 0xe7, 0x42, 0x43, 0x90,
+ 0x5d, 0x2c, 0xed, 0x14, 0x34, 0x06, 0xe4, 0x7e, 0x8b, 0x69, 0xc8, 0xba,
+ 0x93, 0x20, 0x55, 0xa1, 0xa2, 0xe1, 0x11, 0xc9, 0x37, 0x53, 0x38, 0xf8,
+ 0x7f, 0x35, 0x57, 0xf3, 0x17, 0x6b, 0x95, 0x75, 0xc4, 0x57, 0x07, 0x71,
+ 0x04, 0x2f, 0x44, 0xeb, 0xb3, 0xb6, 0xbe, 0x9b, 0xe0, 0x2e, 0x04, 0x64,
+ 0x0a, 0x9d, 0xe8, 0xce, 0xea, 0x5a, 0x19, 0xcf, 0xb0, 0xc0, 0xd4, 0xfc,
+ 0x70, 0x24, 0x12, 0xb1, 0x6c, 0x3d, 0xe3, 0x4f, 0x10, 0x1f, 0x1a, 0xf2,
+ 0x34, 0x1a, 0x3f, 0xda, 0xe6, 0xc0, 0x3a, 0xfa, 0x91, 0xb5, 0xae, 0x73,
+ 0x70, 0x25, 0xc0, 0x2f, 0xf1, 0xc3, 0x3c, 0x68, 0xe1, 0x6c, 0x07, 0x9b,
+ 0x2a, 0x03, 0xd0, 0x55, 0xf0, 0x3c, 0x69, 0xf4, 0x58, 0xda, 0xee, 0x30,
+ 0x46, 0xda, 0x09, 0xc3, 0xf9, 0x87, 0x1c, 0x7e, 0xf9, 0x5f, 0x1d, 0x1d,
+ 0x75, 0xcf, 0xc6, 0x6f, 0x70, 0x33, 0xb7, 0x8c, 0xc8, 0x51, 0x3b, 0x9a,
+ 0x06, 0x16, 0x99, 0x16, 0x22, 0xa0, 0x34, 0xf3, 0xb2, 0x7a, 0xfc, 0xbc,
+ 0xc6, 0x96, 0xe6, 0xc2, 0xea, 0xfa, 0xbd, 0xd3, 0x24, 0xf0, 0x68, 0xb7,
+ 0x8e, 0x7a, 0x0f, 0x6a, 0x44, 0x31, 0xf2, 0x4c, 0xab, 0xeb, 0x68, 0xc2,
+ 0x78, 0xa7, 0x17, 0x38, 0x99, 0x2c, 0x10, 0xda, 0xca, 0xbf, 0x69, 0xe9,
+ 0x8a, 0x17, 0x2e, 0x93, 0x72, 0x59, 0x56, 0xdf, 0x37, 0x0e, 0xae, 0x37,
+ 0x11, 0xca, 0x24, 0x59, 0xbd, 0x69, 0x49, 0x61, 0x09, 0xdf, 0x74, 0x91,
+ 0xf4, 0x52, 0x21, 0xc8, 0x5b, 0x3e, 0x0f, 0x9e, 0x8e, 0x0f, 0x37, 0xc8,
+ 0x48, 0xa5, 0xf5, 0x85, 0xa7, 0x7b, 0xf2, 0xbb, 0x3c, 0x7f, 0x4a, 0xa0,
+ 0xb8, 0xdf, 0xe2, 0xad, 0x83, 0x92, 0xc5, 0x0e, 0xa9, 0x2b, 0xdc, 0x0c,
+ 0xeb, 0xa6, 0x9e, 0x80, 0x5a, 0x6b, 0x9d, 0x88, 0xab, 0x53, 0xcd, 0x96,
+ 0xe6, 0x13, 0xc2, 0x7a, 0x0d, 0xd8, 0xd4, 0x94, 0xcb, 0xeb, 0x78, 0xb7,
+ 0x95, 0x50, 0x1e, 0xcd, 0x08, 0xee, 0x2f, 0x1a, 0xb2, 0x4b, 0x37, 0xa7,
+ 0x2a, 0x14, 0xbf, 0x05, 0x7f, 0xbe, 0x6a, 0xc5, 0x49, 0x1e, 0x2b, 0x33,
+ 0xcd, 0x58, 0x39, 0xc1, 0x45, 0xb1, 0xd4, 0xde, 0xf2, 0x98, 0x39, 0x5a,
+ 0xcc, 0x7f, 0xd9, 0xb7, 0xd0, 0xac, 0x9c, 0x57, 0x97, 0x67, 0xb3, 0xf0,
+ 0x5f, 0x5c, 0xd4, 0x6a, 0xb7, 0x74, 0x97, 0xb9, 0x06, 0x15, 0x9e, 0x92,
+ 0x78, 0x3a, 0xcc, 0x16, 0x4a, 0x56, 0x14, 0xc7, 0x6e, 0x66, 0x98, 0x01,
+ 0x15, 0xa5, 0xce, 0x47, 0x2e, 0xee, 0x86, 0x9e, 0xb0, 0x11, 0x6c, 0x8a,
+ 0x62, 0x7a, 0xa0, 0x97, 0x47, 0x60, 0x2f, 0x03, 0x0c, 0x02, 0xb6, 0x86,
+ 0x6d, 0xf0, 0x1b, 0xaf, 0x69, 0x17, 0xb7, 0xd4, 0xef, 0xfc, 0x24, 0x45,
+ 0x10, 0x00, 0x78, 0x02, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xd1, 0x0d, 0x00, 0x02, 0x10, 0x24, 0x00, 0x18, 0x00, 0xcc,
+ 0x37, 0xd6, 0x02, 0xc6, 0x95, 0xfe, 0x1b, 0xf1, 0xe3, 0xf7, 0xff, 0xdc,
+ 0x21, 0x63, 0xd4, 0xfb, 0xc0, 0x29, 0xfe, 0xcb, 0x05, 0x03, 0x05, 0xb5,
+ 0xef, 0x4e, 0x06, 0x5f, 0x13, 0x62, 0x64, 0xeb, 0x2c, 0xfc, 0xa7, 0xe1,
+ 0x00, 0xf6, 0xe3, 0x89, 0x93, 0xd4, 0x5d, 0x45, 0x10, 0x3d, 0x79, 0x4d,
+ 0x44, 0x68, 0x26, 0xee, 0x82, 0x44, 0x23, 0x07, 0xc3, 0x38, 0x0a, 0x91,
+ 0xc8, 0x92, 0xbd, 0x2e, 0xab, 0xb1, 0x99, 0x70, 0xf5, 0x02, 0x21, 0xd6,
+ 0xfc, 0x02, 0xd0, 0x5b, 0x2b, 0x0d, 0x40, 0x67, 0x94, 0xa9, 0x1e, 0x52,
+ 0x7c, 0xd1, 0x23, 0x0a, 0x36, 0xbf, 0x00, 0x23, 0xa4, 0x35, 0x98, 0x7c,
+ 0x7b, 0x4e, 0xfb, 0x94, 0xea, 0x91, 0x40, 0x3b, 0x51, 0xc3, 0x64, 0x6f,
+ 0x4a, 0x62, 0x1b, 0x0b, 0xa6, 0x2f, 0x0b, 0x10, 0xdc, 0x4b, 0x35, 0x91,
+ 0xce, 0xe6, 0x2c, 0xe1, 0x33, 0x0e, 0x85, 0x82, 0xbe, 0x82, 0xaf, 0xa1,
+ 0x82, 0xf1, 0x47, 0xd0, 0x02, 0x7f, 0xd3, 0x6d, 0x0a, 0xb2, 0x41, 0xb7,
+ 0xb8, 0x7b, 0x55, 0x95, 0x1d, 0x67, 0x05, 0x9f, 0xb8, 0xe7, 0x5e, 0x2e,
+ 0xd9, 0x5a, 0x95, 0xe5, 0xf6, 0x37, 0xd4, 0xc6, 0x9e, 0x66, 0x7f, 0xf4,
+ 0xaf, 0xcf, 0x8f, 0x58, 0xd6, 0xe8, 0x3c, 0xdf, 0xdc, 0xd9, 0xea, 0x60,
+ 0x3c, 0xc7, 0x77, 0x73, 0x14, 0x66, 0x66, 0xc6, 0x8e, 0x70, 0x18, 0x3a,
+ 0xf4, 0x09, 0xf3, 0x23, 0x87, 0xab, 0x21, 0x2c, 0xd5, 0xa5, 0x50, 0x7c,
+ 0x65, 0x4b, 0x63, 0x61, 0x62, 0x6d, 0x6f, 0x4d, 0xf5, 0x02, 0x4b, 0x7c,
+ 0xc2, 0xcd, 0xc3, 0x19, 0xe4, 0xd4, 0x46, 0xf5, 0x24, 0xa5, 0xa0, 0x4b,
+ 0xb8, 0x82, 0xee, 0x3b, 0x9f, 0x5e, 0x47, 0xcc, 0x51, 0x8c, 0x32, 0x4a,
+ 0x7d, 0xa0, 0x35, 0x63, 0x00, 0xd6, 0x03, 0x78, 0x0f, 0x76, 0x2d, 0x17,
+ 0xee, 0x70, 0x67, 0x91, 0x4c, 0xcc, 0x7f, 0x5f, 0x16, 0x45, 0x28, 0x09,
+ 0x02, 0xdc, 0x3e, 0x39, 0x30, 0x0a, 0x48, 0xba, 0x36, 0x9b, 0x9b, 0x73,
+ 0x78, 0x50, 0x4b, 0xcf, 0x2b, 0x19, 0xd3, 0x3d, 0x90, 0x11, 0xcb, 0xf3,
+ 0x56, 0x2d, 0x04, 0x1d, 0xe1, 0x3b, 0xf2, 0xdf, 0x47, 0xb7, 0x7c, 0xdb,
+ 0x5d, 0xae, 0x0b, 0x4f, 0xd8, 0x1f, 0x4e, 0x0a, 0x88, 0xe5, 0xfc, 0x21,
+ 0xd8, 0x71, 0xe9, 0xfb, 0x1f, 0x5a, 0x70, 0xe7, 0xf8, 0xc0, 0x62, 0x48,
+ 0xbc, 0x15, 0x09, 0xb5, 0xe1, 0xb9, 0x48, 0xfb, 0xec, 0x6c, 0xc5, 0x18,
+ 0x21, 0x1e, 0x16, 0x2c, 0xed, 0x0b, 0xf6, 0x7d, 0x41, 0x1b, 0xf3, 0xd6,
+ 0x12, 0x5a, 0xe4, 0xc6, 0x39, 0x5b, 0x7c, 0x76, 0x22, 0x27, 0x51, 0x32,
+ 0x8a, 0x01, 0x6e, 0x71, 0xff, 0xab, 0x36, 0x9f, 0xe4, 0xd6, 0xa0, 0x64,
+ 0x41, 0x0c, 0x18, 0xad, 0xcf, 0x3f, 0x11, 0xc1, 0x29, 0x2c, 0xcb, 0x5b,
+ 0x0b, 0x29, 0xba, 0x9a, 0x33, 0xd3, 0x35, 0x60, 0x0c, 0x26, 0x67, 0xcf,
+ 0x40, 0x22, 0x2a, 0x50, 0x05, 0x2e, 0xe7, 0x30, 0x08, 0xdc, 0x45, 0x78,
+ 0x27, 0xd6, 0xf1, 0xbc, 0xa7, 0x43, 0x80, 0xf0, 0x3f, 0x08, 0xa3, 0x16,
+ 0xa0, 0x62, 0x2e, 0x4b, 0xb0, 0x90, 0x91, 0xac, 0x43, 0xb1, 0xa7, 0x54,
+ 0x5c, 0x57, 0xb5, 0x08, 0xe5, 0x5d, 0x28, 0x11, 0x19, 0xce, 0xcf, 0xbf,
+ 0xdd, 0x4e, 0xac, 0xc0, 0x65, 0xd3, 0x70, 0x2b, 0x07, 0x0e, 0x6c, 0xce,
+ 0xd0, 0x8c, 0xca, 0x24, 0x13, 0x53, 0xa7, 0x80, 0x2c, 0x46, 0xed, 0xc5,
+ 0xf4, 0x5d, 0xb0, 0x3f, 0x77, 0x4d, 0x2e, 0xab, 0x92, 0x4c, 0xc6, 0x00,
+ 0xda, 0x85, 0x89, 0x55, 0xf5, 0xb8, 0x65, 0x6f, 0x45, 0x30, 0x3c, 0xe2,
+ 0xd6, 0x85, 0x20, 0x4c, 0x39, 0x32, 0x3e, 0x1d, 0xab, 0x22, 0x2a, 0x2a,
+ 0x06, 0xc5, 0xbd, 0x48, 0x88, 0x63, 0xee, 0x20, 0xad, 0x86, 0xc7, 0x39,
+ 0xb5, 0x85, 0x16, 0x97, 0x45, 0xfa, 0xae, 0x6a, 0x9f, 0xa6, 0xe2, 0xb0,
+ 0xba, 0x6c, 0x33, 0x52, 0x3a, 0xfe, 0x9a, 0x6f, 0xac, 0x0a, 0xab, 0x67,
+ 0x8e, 0x13, 0x0f, 0xe5, 0x4d, 0x70, 0x8f, 0x95, 0xd9, 0x1c, 0x95, 0x6a,
+ 0xbd, 0xe0, 0x49, 0x4d, 0x7f, 0x50, 0x1d, 0x6a, 0x0a, 0xd9, 0x6b, 0x0a,
+ 0x9d, 0x7e, 0x95, 0x40, 0x2c, 0xbb, 0x91, 0xc2, 0x57, 0xe3, 0x75, 0xb6,
+ 0xd8, 0x6d, 0x00, 0x26, 0x73, 0x5c, 0x80, 0xed, 0x37, 0x9d, 0xd7, 0x5b,
+ 0x84, 0x8c, 0x31, 0xf3, 0xc8, 0x94, 0x18, 0x1d, 0x48, 0xd8, 0x22, 0xfb,
+ 0x5b, 0xff, 0x83, 0x70, 0x08, 0x69, 0xc0, 0xd3, 0xf4, 0x61, 0x8b, 0xbc,
+ 0x9d, 0xd6, 0x69, 0xb4, 0x89, 0x13, 0xf5, 0x7c, 0x0c, 0xc0, 0xd6, 0x14,
+ 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x5b,
+ 0x00, 0x02, 0x10, 0x40, 0x14, 0x60, 0x05, 0x80, 0x67, 0xf3, 0xaf, 0x82,
+ 0x2f, 0x62, 0x9f, 0x9e, 0xff, 0x4d, 0xfe, 0x9d, 0xfa, 0xbf, 0xfb, 0xb1,
+ 0xe6, 0x5f, 0xbb, 0xff, 0x83, 0x47, 0xc5, 0x5f, 0x72, 0x3f, 0x93, 0x7c,
+ 0x4d, 0xfe, 0xcd, 0xf8, 0xb5, 0xff, 0x6b, 0xf7, 0xff, 0xde, 0xcb, 0xf3,
+ 0x27, 0xf7, 0xff, 0xd6, 0xdf, 0xd3, 0x3f, 0x52, 0xfb, 0xaf, 0xf7, 0x51,
+ 0xfe, 0x3b, 0xfd, 0xb3, 0xf5, 0x7b, 0xf5, 0xa3, 0xff, 0xff, 0x9a, 0xf6,
+ 0xba, 0x0f, 0xf5, 0x5f, 0xcd, 0x7f, 0x7a, 0x3d, 0x94, 0xfc, 0xcb, 0xf5,
+ 0x93, 0xf3, 0x37, 0xfd, 0x0f, 0xca, 0x3e, 0xca, 0xbf, 0x08, 0xbf, 0x56,
+ 0x7f, 0xa7, 0x7e, 0x1e, 0xff, 0xc9, 0xfd, 0xff, 0xea, 0x68, 0xe5, 0xcf,
+ 0xdb, 0x77, 0xd8, 0x7f, 0xe2, 0x0f, 0xc8, 0x2f, 0xd9, 0x4f, 0xff, 0xff,
+ 0xfb, 0xbf, 0x19, 0x3f, 0x48, 0xff, 0x7b, 0xf6, 0xc9, 0xfb, 0xff, 0xf1,
+ 0x37, 0xe6, 0x0f, 0xc7, 0x4f, 0xcf, 0xff, 0xff, 0xff, 0xa1, 0xbf, 0xa4,
+ 0x9f, 0xa6, 0x9f, 0x8b, 0x1f, 0xbd, 0xdf, 0x5d, 0xfe, 0x8b, 0x7e, 0x82,
+ 0xdf, 0xf6, 0x7f, 0x93, 0x7e, 0xff, 0xd0, 0xe0, 0xe5, 0xa0, 0xcf, 0x31,
+ 0xf8, 0x7f, 0xf6, 0xff, 0xdb, 0xed, 0x43, 0x08, 0xff, 0x35, 0xd2, 0x08,
+ 0x4d, 0x09, 0xa1, 0x58, 0xed, 0x75, 0x35, 0x16, 0x3c, 0x70, 0xeb, 0x5b,
+ 0x58, 0x3c, 0xbc, 0x0b, 0xbb, 0xd3, 0xe6, 0x5c, 0x48, 0x4f, 0x85, 0xdb,
+ 0xbb, 0x5e, 0x6b, 0xd8, 0x3d, 0xdc, 0xe7, 0x2b, 0xbb, 0xed, 0xc0, 0xe1,
+ 0xec, 0x27, 0x23, 0xe2, 0xbf, 0x2c, 0x7e, 0x97, 0xa8, 0xb9, 0xcd, 0x13,
+ 0xda, 0xd4, 0x12, 0x3a, 0x9f, 0xc1, 0xde, 0xda, 0x78, 0x76, 0xe3, 0x79,
+ 0x00, 0xec, 0xf8, 0xb0, 0x06, 0xcb, 0x0c, 0x7e, 0x85, 0xb0, 0xe9, 0x33,
+ 0x5f, 0xa6, 0x69, 0x45, 0x87, 0xa5, 0x9f, 0x9f, 0x3d, 0x46, 0x61, 0xc8,
+ 0x9a, 0x8b, 0x08, 0xdc, 0x18, 0x63, 0xf3, 0x99, 0x9f, 0x34, 0xf0, 0x56,
+ 0xbf, 0xe6, 0xc0, 0xd6, 0x5e, 0xe0, 0xae, 0xe6, 0x18, 0xae, 0x35, 0xb0,
+ 0x24, 0x3f, 0x43, 0x5f, 0x88, 0x44, 0x5f, 0xd0, 0x8d, 0xb8, 0xed, 0xe6,
+ 0x48, 0x00, 0x36, 0x6a, 0xe5, 0xbc, 0x87, 0xec, 0xdc, 0xf9, 0x5d, 0xd4,
+ 0xe5, 0x6b, 0x2c, 0x37, 0xd5, 0x86, 0xe5, 0xe3, 0x5c, 0xb6, 0x69, 0x33,
+ 0xf8, 0xf2, 0x4d, 0xc6, 0x44, 0x1e, 0xa7, 0xfb, 0xed, 0xb0, 0x76, 0xec,
+ 0xe5, 0x5f, 0x6d, 0x97, 0x6d, 0xd0, 0x67, 0x81, 0xf4, 0xf6, 0x24, 0xf1,
+ 0x8b, 0xf7, 0x1a, 0xfa, 0x1c, 0xd2, 0x08, 0xe5, 0xa6, 0xa8, 0x87, 0xbb,
+ 0x36, 0x0c, 0x03, 0x8f, 0x75, 0x19, 0xc7, 0x74, 0x9c, 0x4c, 0x07, 0x1e,
+ 0xe8, 0x2e, 0x3e, 0x1e, 0xfc, 0xda, 0x5b, 0x01, 0x5e, 0x16, 0xfa, 0x4e,
+ 0x26, 0x03, 0x8f, 0x7c, 0x77, 0xe6, 0x35, 0x36, 0x70, 0x9b, 0x8e, 0x76,
+ 0x92, 0x70, 0x4e, 0xc2, 0xf0, 0x89, 0x29, 0x3e, 0xb2, 0x54, 0x82, 0x68,
+ 0x54, 0xab, 0xae, 0xf7, 0x43, 0x15, 0xe0, 0x5d, 0xf9, 0x76, 0x01, 0x14,
+ 0x61, 0x92, 0xbe, 0x7d, 0x89, 0x13, 0x5a, 0x20, 0xf7, 0xe4, 0x65, 0x2f,
+ 0x2b, 0x9b, 0x3e, 0xf9, 0x1e, 0xa9, 0x3a, 0x7e, 0x53, 0x80, 0xd2, 0xbf,
+ 0x8a, 0xcd, 0x41, 0xfd, 0xf6, 0xab, 0x53, 0x1f, 0x49, 0xd1, 0xfd, 0x00,
+ 0xa0, 0x58, 0xd1, 0xa9, 0x71, 0xad, 0xe1, 0xa4, 0x3d, 0x6c, 0x05, 0x03,
+ 0x49, 0xeb, 0xed, 0x4a, 0x34, 0x5e, 0x10, 0x92, 0xba, 0xeb, 0x5d, 0xb4,
+ 0xdd, 0x79, 0xf0, 0x74, 0x6e, 0x18, 0x0c, 0x9a, 0xac, 0x58, 0x60, 0x04,
+ 0x59, 0x94, 0x70, 0x69, 0xe8, 0x50, 0x39, 0x0d, 0xd9, 0x12, 0xdc, 0x5c,
+ 0x2a, 0xfd, 0xd0, 0xdf, 0x3d, 0xe1, 0x89, 0xf9, 0x24, 0x70, 0x0c, 0x29,
+ 0x86, 0xde, 0x9d, 0x9f, 0x76, 0xf8, 0x82, 0x46, 0x37, 0x4a, 0x55, 0x92,
+ 0x06, 0x3c, 0x48, 0x35, 0x22, 0x8e, 0x97, 0x3f, 0x90, 0x38, 0x1b, 0xb7,
+ 0xf1, 0xe8, 0x11, 0xda, 0x24, 0xab, 0x53, 0x67, 0xa7, 0x05, 0x1f, 0x0d,
+ 0x35, 0xa9, 0x3a, 0x1e, 0xe7, 0xa3, 0x07, 0x02, 0x61, 0xd8, 0xb0, 0x0d,
+ 0xa8, 0x5c, 0x6b, 0xde, 0x50, 0x0c, 0xcd, 0xab, 0x26, 0x1c, 0x00, 0x0a,
+ 0x83, 0x40, 0x8b, 0xf8, 0x80, 0x7a, 0xcd, 0x10, 0x3b, 0x7e, 0xda, 0xfd,
+ 0x8c, 0xf5, 0x8e, 0xa8, 0x79, 0x84, 0x8a, 0x7f, 0xdb, 0x2c, 0x45, 0xbb,
+ 0x71, 0x2f, 0x01, 0xca, 0x20, 0x09, 0xe2, 0x29, 0xe9, 0xdd, 0x10, 0x7f,
+ 0xcc, 0x4f, 0xe7, 0x7d, 0xe6, 0x2f, 0x0b, 0xd2, 0x98, 0x3b, 0x0b, 0xf8,
+ 0xac, 0x32, 0x57, 0x89, 0xe0, 0x58, 0x6c, 0x8f, 0xbd, 0xa0, 0x3e, 0xbb,
+ 0xe1, 0xdf, 0x56, 0xcd, 0x45, 0x34, 0x12, 0xec, 0x54, 0xa0, 0x59, 0xc5,
+ 0xb0, 0xa4, 0x11, 0x07, 0x11, 0x04, 0xd1, 0xc4, 0xb4, 0xe3, 0xe7, 0x2e,
+ 0xe3, 0x9e, 0x8c, 0x81, 0xc0, 0x02, 0x2d, 0xa2, 0xc4, 0xe0, 0x02, 0xd3,
+ 0x8f, 0x9c, 0xbb, 0x8e, 0x7b, 0x0f, 0x3b, 0x5e, 0x26, 0xa9, 0xdd, 0x0e,
+ 0x53, 0x95, 0x34, 0x97, 0x68, 0x01, 0x2d, 0x82, 0x50, 0x00, 0x07, 0x10,
+ 0xc8, 0xc8, 0x00, 0x67, 0x9f, 0x32, 0x70, 0x0a, 0x9a, 0x4b, 0xb4, 0x00,
+ 0x9e, 0xed, 0x10, 0x0e, 0x21, 0xc6, 0x61, 0x93, 0xdb, 0xcb, 0x16, 0xb2,
+ 0x86, 0x51, 0x49, 0x4b, 0xa4, 0x93, 0x78, 0x25, 0x80, 0x2c, 0x29, 0x02,
+ 0x7d, 0xb6, 0x6a, 0xd4, 0x6e, 0xf6, 0xcb, 0x63, 0x39, 0x3f, 0x0e, 0xbc,
+ 0xaa, 0x14, 0x4a, 0x23, 0x6c, 0xa1, 0x16, 0x3f, 0x20, 0xe4, 0xf0, 0x5e,
+ 0xe8, 0xf2, 0x54, 0xdc, 0xcb, 0x29, 0xf7, 0x9d, 0xf2, 0x87, 0x3c, 0x92,
+ 0xd9, 0x63, 0x81, 0x45, 0x2c, 0x50, 0x04, 0xeb, 0x2e, 0x83, 0x55, 0x16,
+ 0xb3, 0xaf, 0x87, 0xda, 0x1e, 0xbc, 0xbe, 0x5e, 0xf2, 0xea, 0xca, 0xcc,
+ 0xfa, 0x2f, 0xb1, 0x94, 0x79, 0xa4, 0x9a, 0xf0, 0x0c, 0xb6, 0xd0, 0x31,
+ 0xb2, 0x69, 0x27, 0xc7, 0xb3, 0x86, 0x27, 0x32, 0xd3, 0x7f, 0x85, 0x43,
+ 0x70, 0xc8, 0x7d, 0x79, 0xe1, 0x95, 0x6b, 0x08, 0x73, 0x60, 0xd7, 0xc6,
+ 0x1b, 0xfc, 0x25, 0x46, 0x61, 0xe5, 0x42, 0x94, 0x7a, 0x2a, 0xa3, 0xc1,
+ 0xb5, 0xa6, 0x87, 0xbd, 0x36, 0xb0, 0x2e, 0xd1, 0x38, 0xf0, 0x86, 0xf1,
+ 0xa0, 0x9e, 0xbb, 0x0e, 0x4a, 0x36, 0x4d, 0x84, 0x49, 0x1b, 0x10, 0xf6,
+ 0x75, 0x4a, 0x7c, 0x91, 0xfd, 0x59, 0x87, 0x0a, 0x4b, 0x84, 0xa8, 0x5a,
+ 0x90, 0xaa, 0x36, 0xc0, 0x7b, 0xea, 0x8b, 0xed, 0x7b, 0xa3, 0xe4, 0xd0,
+ 0x11, 0x02, 0x8a, 0xf1, 0xb0, 0x96, 0x70, 0xcf, 0x21, 0x92, 0x9e, 0x40,
+ 0x9e, 0x5a, 0x26, 0x92, 0xf5, 0x88, 0x2d, 0x0a, 0xac, 0xaf, 0x94, 0xd9,
+ 0x9b, 0x1a, 0x37, 0xcf, 0x91, 0x23, 0x2d, 0x41, 0x7c, 0x41, 0x12, 0x1c,
+ 0x44, 0x6a, 0xd5, 0x08, 0x18, 0xd6, 0x02, 0x57, 0xd5, 0x02, 0xb0, 0xc0,
+ 0x40, 0xc1, 0x31, 0xc5, 0x9d, 0x57, 0x83, 0xe8, 0x3f, 0x3b, 0x00, 0x1f,
+ 0x2e, 0x8b, 0x9f, 0xa2, 0x38, 0x2d, 0x00, 0x36, 0x89, 0x37, 0xd4, 0x11,
+ 0xf8, 0x69, 0xf5, 0xa7, 0x2d, 0xfe, 0xaa, 0x54, 0x28, 0x94, 0x62, 0xa7,
+ 0x60, 0xdd, 0xee, 0x6b, 0x24, 0x89, 0xdc, 0x8e, 0x5b, 0x79, 0x25, 0x4e,
+ 0x5e, 0xc8, 0xe6, 0x11, 0x54, 0xf0, 0x17, 0x0c, 0x30, 0xc4, 0xa8, 0x3f,
+ 0x10, 0x2b, 0xff, 0x58, 0x1a, 0x5c, 0x94, 0x51, 0xb3, 0x57, 0xd8, 0x5d,
+ 0x55, 0x1c, 0x03, 0xf0, 0x9e, 0xee, 0x80, 0x37, 0x93, 0x64, 0x36, 0xdf,
+ 0x0a, 0x10, 0xf0, 0xb7, 0xae, 0x6d, 0x86, 0xf9, 0x6c, 0x5c, 0x37, 0x51,
+ 0xbe, 0x4f, 0x2e, 0xa5, 0xa7, 0x47, 0x70, 0xaa, 0x23, 0x02, 0x2c, 0x79,
+ 0x93, 0xe6, 0x1a, 0xc1, 0xb6, 0x14, 0x46, 0xeb, 0x7b, 0xa3, 0x9e, 0xff,
+ 0xa6, 0xfa, 0x85, 0x9b, 0x70, 0x65, 0x93, 0x46, 0x76, 0xa8, 0x2f, 0x13,
+ 0x05, 0x61, 0x50, 0x90, 0x65, 0x65, 0x5b, 0xb1, 0xc5, 0x5e, 0xec, 0x87,
+ 0x62, 0x88, 0x1d, 0xc2, 0x44, 0xc3, 0xf3, 0x8c, 0x41, 0x21, 0xb8, 0x8d,
+ 0x68, 0x13, 0x74, 0x5f, 0x34, 0xcf, 0x16, 0xc2, 0xa3, 0x14, 0xfc, 0xe5,
+ 0xf5, 0x0e, 0x13, 0x7f, 0x1b, 0xf6, 0x75, 0x56, 0x3b, 0xa6, 0x68, 0xe9,
+ 0x3d, 0xd9, 0x47, 0x71, 0xed, 0x99, 0xd3, 0x19, 0xc7, 0x48, 0x8b, 0x4b,
+ 0x64, 0x01, 0xf1, 0xeb, 0xde, 0x1f, 0xde, 0xdc, 0xf4, 0xfd, 0x61, 0xa9,
+ 0xb9, 0x6e, 0xd6, 0xb1, 0x30, 0xaf, 0x30, 0xa7, 0x21, 0x7c, 0x08, 0xea,
+ 0xb1, 0xd3, 0x75, 0x9a, 0x47, 0x1a, 0xd7, 0xb3, 0x55, 0x7d, 0x56, 0xcd,
+ 0x03, 0x43, 0x3c, 0xf8, 0x09, 0xb3, 0x4c, 0x1d, 0x1c, 0x47, 0x9a, 0xa7,
+ 0xd9, 0x37, 0xb4, 0x6f, 0xe3, 0xa4, 0x10, 0x4e, 0xc1, 0x67, 0x32, 0xef,
+ 0xf3, 0xa4, 0x79, 0xae, 0xf8, 0xb7, 0xdc, 0x7d, 0x6b, 0xef, 0xf5, 0xc1,
+ 0x0c, 0xce, 0x3a, 0xbb, 0x05, 0x4e, 0xd0, 0x9b, 0xf0, 0xc9, 0x91, 0x96,
+ 0xdb, 0xec, 0x6b, 0x29, 0xd0, 0x3b, 0x7c, 0xd7, 0x08, 0xc8, 0x58, 0x44,
+ 0xee, 0xe6, 0x4e, 0x18, 0x6e, 0x54, 0x2a, 0x0d, 0xed, 0xf8, 0x45, 0x29,
+ 0x44, 0x64, 0x3c, 0xcc, 0x47, 0xf4, 0x7c, 0xd8, 0xba, 0xee, 0x55, 0xe2,
+ 0x83, 0x0f, 0x0e, 0x1a, 0xba, 0xd1, 0x8b, 0x10, 0xc3, 0x32, 0x5c, 0xed,
+ 0xda, 0x40, 0x78, 0xe5, 0x51, 0x15, 0xd6, 0x0c, 0xd7, 0x51, 0x94, 0x3d,
+ 0xca, 0xd0, 0xd2, 0xaf, 0x3d, 0x5b, 0x36, 0x12, 0x04, 0x24, 0x2f, 0xd0,
+ 0xb7, 0x0b, 0xd1, 0x07, 0x76, 0x99, 0x8f, 0xc8, 0xd8, 0x8f, 0x25, 0xa0,
+ 0xb0, 0x6c, 0xc1, 0x61, 0xd0, 0xf2, 0xeb, 0x45, 0x0c, 0x5e, 0x1a, 0x24,
+ 0xd6, 0x74, 0x56, 0x21, 0x0c, 0x74, 0x02, 0xba, 0xc0, 0x64, 0x20, 0xb3,
+ 0x71, 0x6f, 0xbe, 0x60, 0x92, 0xb8, 0x4d, 0x67, 0x97, 0x8d, 0x6e, 0x04,
+ 0x7b, 0xdd, 0x87, 0xca, 0x52, 0x7e, 0x2c, 0x6f, 0x20, 0x05, 0xba, 0x07,
+ 0x3f, 0x2f, 0x69, 0x49, 0x76, 0x1c, 0xfd, 0x7b, 0x84, 0xcf, 0x1b, 0xa3,
+ 0x09, 0xb0, 0xbe, 0x5a, 0x95, 0xdb, 0x61, 0xc6, 0xed, 0x68, 0xe1, 0x12,
+ 0xa2, 0x3c, 0x88, 0x2e, 0x06, 0x24, 0x94, 0xf0, 0xf8, 0xf9, 0x09, 0xe4,
+ 0x2a, 0x18, 0x0b, 0x00, 0xfb, 0xa8, 0x65, 0x9e, 0x9a, 0x2c, 0xc9, 0x93,
+ 0x6e, 0x8e, 0x15, 0x6d, 0x38, 0xac, 0xd1, 0x2b, 0xa5, 0xbe, 0x1e, 0xd5,
+ 0xf4, 0x5c, 0x7c, 0xf9, 0x4d, 0x0a, 0xae, 0x87, 0x73, 0x67, 0x52, 0xa3,
+ 0xea, 0x31, 0x9f, 0xfd, 0x0b, 0xe6, 0x88, 0x85, 0x8d, 0x91, 0x99, 0x98,
+ 0x85, 0xfe, 0x1e, 0x19, 0x8f, 0x0d, 0xa7, 0x63, 0x97, 0xdd, 0xeb, 0xeb,
+ 0xa6, 0xc6, 0xc5, 0x61, 0x24, 0x40, 0x52, 0xe6, 0x41, 0xe1, 0x39, 0x9a,
+ 0x4d, 0x07, 0x30, 0x99, 0x9a, 0x2b, 0x83, 0x0e, 0x4a, 0x80, 0xc2, 0xd8,
+ 0x68, 0x71, 0xd1, 0x08, 0x22, 0xa3, 0x6b, 0x57, 0x05, 0x70, 0x67, 0x1b,
+ 0xad, 0x19, 0x87, 0xaf, 0xcb, 0xb4, 0x7e, 0x8e, 0xcc, 0xc6, 0xa2, 0xec,
+ 0xfc, 0xae, 0xa7, 0x4e, 0xd4, 0x59, 0xaf, 0xaa, 0x1e, 0x68, 0xf8, 0x49,
+ 0x1f, 0x7e, 0xa4, 0xc0, 0xe7, 0x9f, 0x00, 0xed, 0x1b, 0x2d, 0x07, 0xd6,
+ 0x68, 0xa9, 0xf5, 0x5b, 0xaa, 0x35, 0x9c, 0x1e, 0xe6, 0x70, 0x63, 0x8d,
+ 0x8a, 0x57, 0x87, 0x15, 0x6c, 0x17, 0xa8, 0x9f, 0xec, 0x4a, 0x3c, 0xcd,
+ 0x4b, 0x75, 0x7d, 0xc6, 0x4c, 0x4a, 0xcb, 0x3f, 0x3e, 0xca, 0xd1, 0xb2,
+ 0x0d, 0xd6, 0x08, 0xcc, 0x61, 0xc0, 0xcc, 0x46, 0xc1, 0x64, 0xb5, 0xa8,
+ 0x3f, 0x59, 0xb1, 0xf4, 0x3f, 0xf2, 0x6e, 0xd1, 0x76, 0xeb, 0x06, 0x41,
+ 0x74, 0xb0, 0xce, 0x7e, 0x71, 0xea, 0x08, 0x21, 0xce, 0x7b, 0x4b, 0xa4,
+ 0xfb, 0x0a, 0x76, 0xea, 0x1d, 0x3f, 0xb5, 0x69, 0xbe, 0x5e, 0x06, 0x7a,
+ 0xd5, 0x09, 0x4f, 0x16, 0x9e, 0x68, 0x79, 0xc9, 0xb8, 0x8d, 0xf2, 0x69,
+ 0x5f, 0x84, 0x62, 0xb0, 0xf3, 0x8f, 0x94, 0x49, 0x96, 0x9c, 0x8c, 0x96,
+ 0x86, 0xa7, 0xeb, 0x45, 0xdb, 0x28, 0x1f, 0xcb, 0xf6, 0xf1, 0xe2, 0xa6,
+ 0xe3, 0xfc, 0x98, 0x71, 0x95, 0x36, 0x22, 0x46, 0x87, 0xa5, 0xbe, 0xfc,
+ 0x75, 0x91, 0x55, 0x11, 0x8e, 0xc4, 0xf1, 0xd8, 0xb4, 0x50, 0xf0, 0xd5,
+ 0x81, 0xfd, 0x2d, 0xf3, 0x2d, 0x83, 0x68, 0x75, 0x66, 0xd1, 0xc6, 0x21,
+ 0x48, 0x51, 0x15, 0x00, 0xde, 0x89, 0x10, 0xcb, 0x9b, 0x83, 0xdc, 0xac,
+ 0xa1, 0x3e, 0x56, 0x9a, 0x09, 0x48, 0xb9, 0x46, 0xf2, 0xfa, 0xf1, 0x8c,
+ 0x5b, 0xc9, 0x4f, 0x1d, 0xce, 0xb1, 0x5b, 0x11, 0xe7, 0x27, 0x33, 0xc8,
+ 0x8e, 0x77, 0x6e, 0xaf, 0x71, 0xf7, 0x8e, 0x11, 0xb5, 0x53, 0x60, 0x92,
+ 0x36, 0x6c, 0x7b, 0x87, 0x02, 0xef, 0xe6, 0x5a, 0xad, 0xd0, 0x92, 0x2b,
+ 0xdb, 0xb8, 0xfe, 0x81, 0xc6, 0x5c, 0x39, 0xaf, 0xea, 0x31, 0x38, 0xda,
+ 0x94, 0x94, 0x4f, 0xbb, 0x45, 0xaa, 0xf1, 0xb8, 0x29, 0x2d, 0xac, 0x20,
+ 0x32, 0x63, 0xea, 0x6c, 0xda, 0x8d, 0xa2, 0x91, 0xa1, 0xf0, 0xaa, 0xeb,
+ 0x43, 0x79, 0x53, 0xad, 0xdd, 0x50, 0xfb, 0x99, 0x05, 0x96, 0xc5, 0x5b,
+ 0x24, 0xc3, 0x8c, 0xc9, 0xa9, 0xf1, 0x17, 0x62, 0x6e, 0xd4, 0x90, 0x34,
+ 0xc9, 0x37, 0x99, 0xd7, 0xd1, 0x49, 0x87, 0x27, 0x31, 0xe5, 0xb7, 0x8e,
+ 0xdc, 0xc8, 0xa7, 0xb9, 0x79, 0x33, 0xf4, 0xd3, 0xee, 0x00, 0xf3, 0x8d,
+ 0xd8, 0xe6, 0x8e, 0x52, 0x1a, 0xd6, 0x78, 0x01, 0x61, 0xf9, 0xf3, 0x85,
+ 0x83, 0xdf, 0x59, 0x19, 0xec, 0x68, 0x5e, 0x15, 0x92, 0x44, 0xaa, 0xc6,
+ 0xa6, 0xe1, 0xc6, 0x09, 0x86, 0xa2, 0xe8, 0x07, 0x01, 0x50, 0x58, 0x34,
+ 0x9a, 0xf2, 0xff, 0x0b, 0xd7, 0x4f, 0xfb, 0x72, 0xed, 0x6d, 0xda, 0x0b,
+ 0x62, 0xad, 0xc7, 0x3a, 0xdb, 0x32, 0x6d, 0xe3, 0x47, 0x3f, 0x38, 0x19,
+ 0x8f, 0x55, 0xb1, 0xf2, 0xe7, 0x7d, 0x75, 0x48, 0xb8, 0x75, 0xf7, 0xdc,
+ 0x9d, 0xb6, 0xeb, 0x28, 0x91, 0x44, 0x45, 0x76, 0xe0, 0x3d, 0x2f, 0xa5,
+ 0x79, 0xce, 0x5a, 0xc3, 0x86, 0x5c, 0x15, 0x3e, 0xb8, 0xc0, 0x46, 0xc6,
+ 0xde, 0xbc, 0xdd, 0x5d, 0x22, 0x2b, 0x67, 0x34, 0x92, 0x84, 0x78, 0xf5,
+ 0x5a, 0x2b, 0x51, 0xf8, 0xa4, 0xe5, 0x27, 0xfe, 0xaf, 0x34, 0x89, 0x1b,
+ 0xfe, 0x9d, 0x17, 0x7e, 0x74, 0xc6, 0x6c, 0x6b, 0xb2, 0xdb, 0x24, 0x1e,
+ 0x33, 0xad, 0x68, 0xe3, 0x3c, 0x79, 0x54, 0xef, 0xa5, 0x39, 0x71, 0xa2,
+ 0xb6, 0x73, 0xb7, 0x7d, 0x45, 0xec, 0xa0, 0xee, 0x9b, 0x92, 0x11, 0xfe,
+ 0x3e, 0x72, 0xef, 0x3a, 0x0b, 0x3b, 0x28, 0xd8, 0xa9, 0xed, 0xef, 0xd1,
+ 0x1e, 0x5a, 0x10, 0xbf, 0xb1, 0x14, 0x44, 0xf9, 0x05, 0xdd, 0x7c, 0xbb,
+ 0xa0, 0x4c, 0x69, 0x19, 0x55, 0x8d, 0x4d, 0xc3, 0x8c, 0x13, 0x0d, 0x45,
+ 0xd0, 0x0e, 0x02, 0xa0, 0xd1, 0xc8, 0x88, 0xff, 0x44, 0xe7, 0x12, 0x6e,
+ 0xcc, 0xcc, 0x2e, 0xe3, 0x8c, 0x83, 0xb4, 0x59, 0x77, 0x2f, 0x4c, 0xc9,
+ 0xa9, 0xc7, 0x79, 0x9f, 0xc2, 0xce, 0xca, 0x6e, 0x3b, 0x4f, 0x9f, 0x67,
+ 0x29, 0x43, 0x8d, 0x4c, 0x5b, 0x84, 0xc7, 0x2e, 0xf5, 0x76, 0x68, 0xaa,
+ 0x55, 0x5b, 0x2c, 0x58, 0x3e, 0xa0, 0x85, 0x75, 0xcb, 0x73, 0x5a, 0xcf,
+ 0xbe, 0x97, 0xbe, 0x8e, 0x95, 0x80, 0x58, 0x03, 0xec, 0xa9, 0x23, 0xe9,
+ 0xe5, 0x5c, 0x9a, 0xf8, 0x55, 0xa1, 0x82, 0x53, 0x50, 0xac, 0x64, 0x98,
+ 0x68, 0x99, 0x47, 0x86, 0x58, 0xeb, 0xe9, 0xc6, 0x78, 0x7a, 0x47, 0x4e,
+ 0xb1, 0xf3, 0xbc, 0x05, 0x45, 0x26, 0xd5, 0x49, 0xcc, 0x0d, 0xff, 0x7d,
+ 0x27, 0xb4, 0xce, 0x1c, 0x0a, 0x50, 0x7e, 0x98, 0xa4, 0xee, 0x0f, 0xe9,
+ 0x9d, 0x0f, 0x9d, 0xe0, 0x3b, 0xbe, 0xe1, 0x04, 0x2c, 0xfa, 0x37, 0xc6,
+ 0x04, 0xf9, 0x0d, 0x30, 0x96, 0xb8, 0xa0, 0x95, 0xd6, 0x2f, 0x4e, 0x74,
+ 0x0e, 0x63, 0x8d, 0xbe, 0x38, 0x84, 0x83, 0x9a, 0x4d, 0xa6, 0x38, 0xcf,
+ 0x3f, 0x03, 0x75, 0x07, 0xb7, 0xac, 0xf0, 0xce, 0xa1, 0xf5, 0x03, 0xc8,
+ 0xec, 0x5c, 0x30, 0x4a, 0x6a, 0x15, 0x8c, 0x93, 0x0d, 0x13, 0x28, 0xf0,
+ 0xcb, 0x1d, 0x7d, 0x38, 0xcf, 0x0f, 0x48, 0xe9, 0xd6, 0x3e, 0x6f, 0xe2,
+ 0x11, 0xa7, 0x85, 0x11, 0xb1, 0x9b, 0x18, 0x7a, 0x54, 0x3c, 0x4e, 0xf7,
+ 0xb6, 0x6a, 0x9f, 0xde, 0xd7, 0x07, 0xf4, 0xce, 0x87, 0xce, 0xf0, 0x1f,
+ 0x0a, 0x87, 0x79, 0xae, 0xf3, 0xc4, 0x68, 0xb7, 0x8f, 0xd9, 0xd4, 0x63,
+ 0xe6, 0x29, 0x97, 0xc1, 0xd2, 0xaf, 0x59, 0x6e, 0x3b, 0xa1, 0xb0, 0x16,
+ 0xaf, 0xc2, 0x29, 0xbb, 0xd6, 0x70, 0xa7, 0xe9, 0xd0, 0x9e, 0xe2, 0xd0,
+ 0x3b, 0xd6, 0xa5, 0x35, 0x61, 0x16, 0x7e, 0x93, 0x2c, 0xb0, 0xed, 0x24,
+ 0xa1, 0x1c, 0x96, 0x1d, 0x99, 0x25, 0xaf, 0x91, 0x35, 0xbd, 0x7a, 0x35,
+ 0xe5, 0xfe, 0x17, 0xae, 0x9f, 0xf7, 0x82, 0x98, 0xe2, 0xc6, 0x09, 0xcb,
+ 0xde, 0xf7, 0x4c, 0xc7, 0x0e, 0x0d, 0x4e, 0x25, 0x83, 0x90, 0x0e, 0x2c,
+ 0xb9, 0x9b, 0xd4, 0x85, 0x52, 0x88, 0x38, 0xf1, 0x14, 0x5e, 0xb3, 0x7a,
+ 0x47, 0xac, 0x13, 0x76, 0x39, 0x55, 0x40, 0x34, 0x51, 0xb4, 0x96, 0x78,
+ 0x00, 0xdd, 0x02, 0xc6, 0x12, 0x5b, 0x4f, 0x4d, 0xde, 0x26, 0x4d, 0xde,
+ 0xb3, 0x85, 0x3f, 0x4e, 0x84, 0xf7, 0x16, 0x81, 0xde, 0xb5, 0x29, 0xab,
+ 0x08, 0xb3, 0xf4, 0x99, 0x65, 0x87, 0xc8, 0xbb, 0xb7, 0xaf, 0x6e, 0xee,
+ 0x27, 0xe5, 0xbe, 0xd0, 0x79, 0xde, 0xd3, 0x4f, 0x10, 0xbd, 0x99, 0x8b,
+ 0xdb, 0x7c, 0xd4, 0x33, 0x2c, 0x1c, 0xd0, 0x79, 0xa1, 0x62, 0x8b, 0x26,
+ 0xf1, 0x5e, 0x73, 0x71, 0xa2, 0x72, 0x6e, 0x15, 0xb5, 0xa0, 0x72, 0xa1,
+ 0x3c, 0x05, 0x95, 0x89, 0x30, 0x48, 0xb5, 0xad, 0xfc, 0xb5, 0xaa, 0xb2,
+ 0xae, 0xb0, 0x91, 0x3e, 0x43, 0xec, 0x2b, 0xe3, 0x65, 0x15, 0x77, 0x53,
+ 0xbd, 0x9f, 0xd2, 0x2e, 0x32, 0x3a, 0x4b, 0xe4, 0x41, 0x1a, 0xbe, 0xc8,
+ 0xe1, 0xbb, 0x45, 0xe3, 0x67, 0x8c, 0x99, 0x6e, 0xbf, 0x39, 0x57, 0x1a,
+ 0x05, 0xa9, 0xcb, 0x2b, 0x38, 0xe0, 0x4b, 0xda, 0x33, 0x2a, 0xa7, 0xa6,
+ 0xa8, 0x99, 0x68, 0x78, 0xb8, 0x8e, 0xf5, 0xb9, 0x61, 0xdb, 0x59, 0x83,
+ 0x88, 0x7f, 0x73, 0x8a, 0x31, 0x27, 0x1d, 0x87, 0x2f, 0xe8, 0xf2, 0x78,
+ 0xf2, 0xb1, 0x96, 0xb4, 0xd0, 0x7e, 0x64, 0xe4, 0x93, 0x3b, 0x4b, 0x11,
+ 0x90, 0x5b, 0xd0, 0xf8, 0xd3, 0x91, 0x89, 0x5f, 0x14, 0x67, 0x1b, 0x95,
+ 0x6d, 0x7c, 0x33, 0xe1, 0x04, 0xf6, 0x5f, 0x2e, 0xf6, 0x17, 0xee, 0x8f,
+ 0x05, 0x5c, 0x08, 0x1f, 0x57, 0x88, 0x12, 0x95, 0x9e, 0x7c, 0x7a, 0x2d,
+ 0xe1, 0x2f, 0x1f, 0x81, 0x27, 0xd9, 0x2a, 0xef, 0x5b, 0x0c, 0xb5, 0x9c,
+ 0x34, 0x8b, 0x82, 0x55, 0x8e, 0x2c, 0xe5, 0x4f, 0xb3, 0xee, 0x14, 0xec,
+ 0xe8, 0x05, 0x5b, 0x96, 0x1d, 0xb5, 0x98, 0x38, 0x67, 0xda, 0x67, 0x09,
+ 0x86, 0xc6, 0x6e, 0x09, 0x26, 0x8a, 0x53, 0x32, 0x85, 0xc6, 0x24, 0xde,
+ 0x14, 0x95, 0xd1, 0x46, 0x0c, 0x74, 0xbd, 0xb6, 0x01, 0x26, 0xd6, 0xbd,
+ 0x31, 0x70, 0xa1, 0xf8, 0x29, 0xfb, 0x5a, 0x3e, 0x2d, 0xc5, 0xb0, 0x87,
+ 0xfd, 0x6e, 0x4d, 0xcc, 0x2e, 0xfa, 0x8d, 0xed, 0x6e, 0xa3, 0x82, 0xd9,
+ 0x01, 0xc1, 0xa8, 0xe8, 0x59, 0x66, 0x83, 0x4c, 0x40, 0x3f, 0xc9, 0xc8,
+ 0xa1, 0x67, 0x0c, 0x5f, 0xcc, 0xdc, 0x62, 0x70, 0x66, 0x51, 0x80, 0x4d,
+ 0x3d, 0xb8, 0x0e, 0xad, 0x68, 0x74, 0x9d, 0xcd, 0xd5, 0xe3, 0x7c, 0x3a,
+ 0xac, 0x63, 0x46, 0x8e, 0xfd, 0x47, 0x66, 0x92, 0xde, 0x1e, 0x6f, 0x48,
+ 0x1a, 0xef, 0x06, 0x72, 0x56, 0x39, 0x73, 0x1c, 0x4a, 0x62, 0xa4, 0x18,
+ 0x3e, 0x4a, 0xec, 0xe3, 0x7a, 0x43, 0x43, 0xeb, 0x2a, 0xcb, 0x76, 0x99,
+ 0xbb, 0xd7, 0x56, 0x7b, 0x2f, 0x97, 0x7b, 0x26, 0xcf, 0x58, 0x45, 0x13,
+ 0xca, 0x6c, 0x9b, 0x33, 0x1c, 0x57, 0xc1, 0x9e, 0xc3, 0xfe, 0x2e, 0xf2,
+ 0x92, 0x1a, 0x56, 0x5c, 0xbf, 0xc9, 0x1a, 0xec, 0x6d, 0x2a, 0x18, 0xc7,
+ 0x9c, 0x46, 0xb7, 0x02, 0xe4, 0x76, 0x88, 0x98, 0xe7, 0x22, 0x80, 0x8a,
+ 0x2e, 0x9f, 0x99, 0x00, 0x8f, 0x5b, 0x51, 0x53, 0x86, 0x1d, 0x80, 0x69,
+ 0xe0, 0x1f, 0x78, 0x58, 0x5c, 0xfe, 0x2f, 0x26, 0x05, 0xf6, 0x75, 0x33,
+ 0xf3, 0x57, 0x92, 0xb3, 0x7d, 0xe0, 0xb6, 0x05, 0xd2, 0x53, 0xa6, 0x2e,
+ 0x8f, 0x8b, 0xc7, 0x8a, 0x79, 0xcf, 0x25, 0x52, 0x69, 0x2a, 0x4a, 0xc5,
+ 0x09, 0x40, 0xbd, 0x28, 0xd0, 0xd0, 0x9d, 0x10, 0x95, 0x82, 0x04, 0x2f,
+ 0x2f, 0x13, 0x71, 0xbe, 0x91, 0x7c, 0xa9, 0xc1, 0x74, 0xd8, 0xf3, 0xa0,
+ 0xec, 0xff, 0xe8, 0x39, 0xf2, 0x9c, 0x3b, 0x62, 0x81, 0xdd, 0xbd, 0x0f,
+ 0x8a, 0xb5, 0xda, 0x60, 0xe1, 0x9e, 0xa8, 0x39, 0xa5, 0xd6, 0xf6, 0xc5,
+ 0x45, 0x1b, 0x04, 0x70, 0xca, 0xa1, 0xc4, 0x21, 0x2a, 0xb0, 0x3f, 0xf2,
+ 0x18, 0x68, 0x6a, 0x67, 0x77, 0xa9, 0x68, 0xfe, 0x86, 0x18, 0xfa, 0x2c,
+ 0x41, 0x77, 0xc0, 0xf3, 0x7e, 0x34, 0xcc, 0xb0, 0x38, 0xe7, 0xef, 0x7a,
+ 0xda, 0x1b, 0xda, 0x12, 0x0f, 0x08, 0xc6, 0x28, 0xe9, 0x23, 0x13, 0x1e,
+ 0x4a, 0x98, 0x51, 0x57, 0xad, 0x53, 0x57, 0x3d, 0x9c, 0xc3, 0x61, 0x41,
+ 0xed, 0x66, 0x86, 0x1b, 0x2a, 0x8c, 0x81, 0x1e, 0x4d, 0xbb, 0x3a, 0x7b,
+ 0xad, 0x62, 0xb5, 0x24, 0x7d, 0x3f, 0x74, 0xcc, 0x5d, 0x7d, 0x40, 0x71,
+ 0xe6, 0xbd, 0x76, 0x64, 0x2b, 0xe1, 0x79, 0x9b, 0xc8, 0x80, 0x71, 0xb8,
+ 0xd4, 0x64, 0x6d, 0xde, 0xaa, 0xcf, 0xf3, 0xc0, 0x99, 0x2c, 0x5e, 0x42,
+ 0xcd, 0x13, 0x17, 0x57, 0x57, 0x0d, 0xde, 0xf7, 0xfd, 0x3f, 0x9f, 0x33,
+ 0x7c, 0xaf, 0x08, 0x2f, 0xb9, 0xe9, 0x71, 0x79, 0x29, 0x1c, 0x0e, 0x4f,
+ 0x12, 0x1e, 0xa4, 0xda, 0x05, 0xb0, 0x83, 0x41, 0x37, 0x81, 0x0d, 0x83,
+ 0x24, 0x5d, 0x6d, 0x0c, 0x9d, 0x4b, 0xb1, 0x3d, 0x79, 0xe7, 0x1a, 0x47,
+ 0xc3, 0xda, 0x87, 0xa2, 0xde, 0x68, 0x12, 0x5e, 0x1b, 0x5e, 0xf6, 0x76,
+ 0x0b, 0x08, 0xef, 0x3b, 0xbe, 0xa2, 0x9d, 0x7c, 0xd1, 0x1b, 0x71, 0x3f,
+ 0xf9, 0x90, 0x8d, 0xc5, 0xc9, 0x59, 0xd5, 0xa6, 0x80, 0x56, 0x95, 0x62,
+ 0x2e, 0x45, 0xaa, 0x14, 0x66, 0x02, 0x5d, 0xe8, 0xe0, 0x0d, 0xdc, 0xeb,
+ 0x91, 0x32, 0x44, 0xac, 0xe3, 0xcd, 0xea, 0x97, 0x72, 0xea, 0x58, 0xcb,
+ 0xdc, 0x8b, 0x31, 0x78, 0x1b, 0x5d, 0x56, 0x8f, 0xbe, 0xcb, 0x35, 0x30,
+ 0x95, 0x0f, 0x7b, 0xb7, 0x93, 0x69, 0x3e, 0x1a, 0x05, 0xe9, 0x18, 0x77,
+ 0x8a, 0xcb, 0x00, 0x77, 0x92, 0x21, 0xf0, 0xa8, 0xb7, 0xf6, 0x06, 0x5e,
+ 0x94, 0x23, 0x3c, 0x02, 0xdd, 0x5f, 0x7c, 0xae, 0x77, 0x93, 0x5a, 0xa9,
+ 0xc7, 0xf2, 0x39, 0x05, 0xb6, 0x0b, 0x52, 0xd0, 0x0b, 0x49, 0x8c, 0x8e,
+ 0x5c, 0xf5, 0x35, 0xd5, 0xa2, 0xca, 0x46, 0xf8, 0xdc, 0x4c, 0x91, 0x2b,
+ 0x38, 0xf3, 0x7a, 0xa5, 0xdc, 0xc3, 0x45, 0xfb, 0xfc, 0x28, 0x71, 0x08,
+ 0xdf, 0x2b, 0x92, 0x02, 0xef, 0x01, 0xa2, 0xa7, 0x39, 0xe3, 0x54, 0xc8,
+ 0x57, 0xea, 0x0a, 0x61, 0xda, 0x1e, 0x55, 0x6a, 0x9f, 0x2e, 0xd3, 0xf0,
+ 0x58, 0xf1, 0x07, 0xed, 0xd5, 0xab, 0x44, 0xb6, 0xa2, 0x55, 0xe4, 0xbf,
+ 0xce, 0x3a, 0xc1, 0xc9, 0x20, 0xa4, 0x1f, 0x8a, 0x49, 0xdc, 0xb2, 0x41,
+ 0xd9, 0x5e, 0xa8, 0x36, 0xf1, 0x5a, 0x55, 0x88, 0xb9, 0x18, 0x7a, 0x60,
+ 0xaa, 0x58, 0xbd, 0x9b, 0x46, 0x82, 0x03, 0x55, 0xdb, 0x74, 0xdd, 0x53,
+ 0x49, 0x92, 0xd0, 0xd8, 0x0b, 0xf4, 0xc6, 0x36, 0xfd, 0xa4, 0x7e, 0xde,
+ 0xdf, 0x55, 0xcb, 0x10, 0xfd, 0x18, 0xfd, 0xce, 0x77, 0xaf, 0xa3, 0xb8,
+ 0x74, 0xce, 0xb3, 0xe9, 0x04, 0x16, 0x85, 0xbd, 0x84, 0x90, 0x74, 0xac,
+ 0x85, 0x2a, 0x3c, 0x4e, 0xb7, 0xd2, 0xca, 0xec, 0x0b, 0x9a, 0xba, 0xf5,
+ 0x56, 0xca, 0x32, 0xdc, 0xf5, 0x64, 0xd4, 0xa7, 0x64, 0x2b, 0x29, 0x07,
+ 0x2f, 0x91, 0x92, 0x4a, 0x76, 0x6f, 0xda, 0x04, 0x8a, 0xd4, 0x56, 0x05,
+ 0xef, 0xa3, 0xee, 0x92, 0x92, 0x1a, 0x13, 0x7f, 0xa2, 0x08, 0x1f, 0xd9,
+ 0x39, 0x95, 0x90, 0xb9, 0x72, 0x27, 0x8c, 0xe2, 0x36, 0xcf, 0xf1, 0x2b,
+ 0x14, 0xf7, 0x2c, 0x95, 0xfe, 0xe6, 0x9f, 0x60, 0x77, 0x94, 0x2d, 0x7d,
+ 0xa9, 0x05, 0x16, 0x44, 0xb9, 0x85, 0x28, 0x62, 0xcf, 0xa6, 0x3f, 0xc6,
+ 0xc7, 0x46, 0x9a, 0x88, 0x2a, 0x14, 0x90, 0x7d, 0x56, 0xc9, 0x57, 0x13,
+ 0x17, 0x89, 0xd6, 0xfa, 0x29, 0x3b, 0x8b, 0xe7, 0xae, 0xd6, 0xa3, 0x95,
+ 0x9a, 0xd7, 0x18, 0x7b, 0x8a, 0x3b, 0x71, 0x72, 0x58, 0x31, 0xd0, 0xec,
+ 0xd1, 0x94, 0xb6, 0x98, 0xec, 0x83, 0x8a, 0x48, 0x94, 0x65, 0xd1, 0x64,
+ 0xf9, 0x3a, 0xc5, 0xfe, 0x54, 0x47, 0xc0, 0xa8, 0x2e, 0x08, 0xc5, 0x0f,
+ 0x77, 0xae, 0x0b, 0xeb, 0xdb, 0xfb, 0x90, 0x29, 0x82, 0x85, 0x19, 0x49,
+ 0x4d, 0x27, 0x53, 0xad, 0xf5, 0xf4, 0x14, 0x2d, 0xa9, 0x16, 0xb9, 0xed,
+ 0x40, 0xee, 0x6a, 0x16, 0xd1, 0x2a, 0xb3, 0xe9, 0x15, 0xd8, 0x97, 0x1f,
+ 0x38, 0x87, 0xe1, 0x40, 0x89, 0xc5, 0x6a, 0x57, 0xf9, 0x37, 0x53, 0x5b,
+ 0x3c, 0x41, 0x2c, 0xde, 0x8d, 0xc5, 0xeb, 0x8c, 0xc1, 0x83, 0xff, 0xb3,
+ 0x2a, 0x6e, 0x96, 0x05, 0x3e, 0xa1, 0x95, 0x0f, 0x76, 0x47, 0x83, 0xf2,
+ 0xd7, 0xd8, 0x93, 0xc3, 0x2b, 0x45, 0x2a, 0xfe, 0xc9, 0xd0, 0x27, 0xc9,
+ 0xd6, 0xbf, 0x59, 0x56, 0x72, 0xb8, 0xff, 0x92, 0xce, 0x24, 0xed, 0x97,
+ 0xe6, 0xf1, 0x70, 0x38, 0x44, 0xe2, 0xc0, 0x53, 0x42, 0xd7, 0xdf, 0x91,
+ 0x9d, 0xb2, 0x22, 0xd8, 0x6b, 0x85, 0x37, 0x02, 0xa9, 0xa3, 0xf8, 0x5e,
+ 0x37, 0x68, 0xa3, 0x2d, 0xc5, 0x64, 0x19, 0xc4, 0x4b, 0xf4, 0xed, 0x8a,
+ 0x78, 0x1e, 0x90, 0x34, 0xb7, 0xf8, 0x18, 0xba, 0x48, 0xd7, 0xd3, 0x97,
+ 0xc9, 0xb1, 0x8f, 0xcf, 0x83, 0xe8, 0x30, 0x91, 0x30, 0x19, 0x71, 0xb5,
+ 0xe5, 0x4f, 0x7b, 0x44, 0x23, 0x54, 0x25, 0xbd, 0x59, 0x07, 0x9b, 0x3a,
+ 0x95, 0x6b, 0x1d, 0x68, 0x06, 0xb3, 0x9f, 0x1f, 0x90, 0xc3, 0xc8, 0x2d,
+ 0x46, 0xad, 0xaa, 0xd2, 0x0f, 0x0a, 0xaf, 0xc1, 0x1c, 0xbe, 0xff, 0xa2,
+ 0x4b, 0xbd, 0x94, 0x31, 0x67, 0xf0, 0xdf, 0x54, 0xac, 0x5a, 0x9f, 0x1c,
+ 0x73, 0x5c, 0x46, 0xc0, 0x59, 0x1c, 0x6f, 0x23, 0x14, 0xb0, 0xb3, 0xf1,
+ 0x54, 0x7e, 0xf6, 0xf4, 0xd1, 0xb8, 0xa7, 0x6f, 0x46, 0xcb, 0x8c, 0xec,
+ 0xc5, 0x7a, 0x10, 0xe2, 0xe7, 0xae, 0x50, 0xf4, 0x42, 0x07, 0x45, 0x94,
+ 0xbd, 0xfd, 0x32, 0xc3, 0xcb, 0xdb, 0xab, 0xe5, 0x74, 0xf0, 0x70, 0xa9,
+ 0x0b, 0xbc, 0x2d, 0x7d, 0xcb, 0xfe, 0x3e, 0x1a, 0xd8, 0x2f, 0x14, 0x7f,
+ 0xb7, 0x7d, 0x3b, 0x72, 0xd7, 0xa1, 0xa7, 0xd1, 0x2a, 0xe4, 0xd6, 0x39,
+ 0xd0, 0x70, 0xc2, 0x64, 0x72, 0x5a, 0x4a, 0x93, 0x34, 0x3e, 0x9b, 0xf3,
+ 0xb0, 0xfe, 0x3b, 0xf0, 0xb3, 0x81, 0xf0, 0x2f, 0x2d, 0xb1, 0x60, 0x2b,
+ 0xba, 0x36, 0x92, 0x09, 0xdb, 0x2a, 0x84, 0xec, 0x3d, 0x3f, 0x4f, 0x3c,
+ 0x19, 0xd5, 0x49, 0xdf, 0xe3, 0xae, 0x62, 0xea, 0xee, 0x97, 0x1e, 0x95,
+ 0x85, 0xea, 0xc3, 0xb7, 0x3d, 0x0d, 0x76, 0xe7, 0x72, 0xcc, 0x77, 0xd9,
+ 0xbb, 0x0f, 0x3c, 0x58, 0x97, 0x7c, 0x16, 0x7f, 0x6c, 0x3a, 0x18, 0x06,
+ 0xb7, 0xff, 0x11, 0x98, 0xb7, 0x31, 0x76, 0xca, 0x95, 0xf6, 0x02, 0x53,
+ 0xf6, 0xc1, 0x26, 0xcf, 0x3c, 0x9e, 0x20, 0xb1, 0x09, 0x32, 0xf5, 0x06,
+ 0xa4, 0xcb, 0xba, 0x52, 0x40, 0xb6, 0x77, 0xf1, 0xc9, 0xc8, 0x39, 0x72,
+ 0x32, 0xe0, 0x7e, 0x20, 0xe9, 0xb6, 0x3b, 0xe0, 0x34, 0xc6, 0xc0, 0x10,
+ 0xd4, 0xe4, 0x52, 0xad, 0x5c, 0x57, 0xdc, 0x80, 0x12, 0xb5, 0x97, 0x61,
+ 0x17, 0x72, 0x0d, 0x1d, 0xbd, 0x5e, 0xa8, 0x73, 0x35, 0x45, 0xc0, 0x1a,
+ 0x55, 0x06, 0x74, 0x4e, 0x96, 0x95, 0xf8, 0xed, 0x58, 0xdd, 0xf1, 0x75,
+ 0x51, 0x3e, 0xf1, 0x6e, 0xfc, 0x51, 0xa2, 0x3c, 0x92, 0x4c, 0xb6, 0xd2,
+ 0x18, 0x91, 0x11, 0xb8, 0xa7, 0xcb, 0xb1, 0x25, 0xe0, 0x52, 0xd7, 0x23,
+ 0x39, 0xc0, 0x82, 0xb4, 0xa3, 0x8c, 0x9a, 0x00, 0x10, 0xc4, 0x34, 0x32,
+ 0xeb, 0x37, 0x88, 0x4b, 0x29, 0x6c, 0xda, 0x85, 0x8e, 0x74, 0x1c, 0x30,
+ 0x99, 0x1c, 0x96, 0xb4, 0x5a, 0xb3, 0xbe, 0xe3, 0x58, 0xfb, 0x0f, 0xcf,
+ 0x55, 0x8d, 0x71, 0xed, 0x16, 0x94, 0x7e, 0x44, 0xf5, 0xde, 0x61, 0x32,
+ 0x74, 0x6b, 0x8f, 0x0c, 0x53, 0xef, 0x1c, 0xc4, 0xf8, 0x4f, 0xcd, 0x3c,
+ 0x89, 0x8b, 0x6c, 0x20, 0x6e, 0xc0, 0x04, 0x8d, 0xd3, 0x7f, 0xb9, 0x03,
+ 0x39, 0xdb, 0xfa, 0x59, 0xeb, 0x44, 0x05, 0xb0, 0x11, 0xbf, 0x84, 0x9e,
+ 0xcf, 0x16, 0x17, 0x60, 0x5f, 0xcb, 0x1e, 0x70, 0xe9, 0x24, 0xab, 0x5b,
+ 0x9e, 0xf4, 0x80, 0xc7, 0xe5, 0x48, 0x87, 0xd2, 0xcc, 0xd5, 0x21, 0xd1,
+ 0xc3, 0xe5, 0x77, 0xf6, 0x30, 0x82, 0xca, 0xfc, 0x1d, 0x4f, 0xe3, 0xd8,
+ 0x3c, 0x64, 0xcc, 0x08, 0x70, 0x12, 0xe4, 0x86, 0xad, 0xb7, 0x03, 0x63,
+ 0x21, 0xc9, 0x27, 0x0e, 0x21, 0x51, 0x4c, 0x5f, 0xab, 0x48, 0x9f, 0x5d,
+ 0x61, 0xba, 0x3a, 0x56, 0x07, 0x01, 0xf0, 0x6a, 0x7e, 0xe4, 0x0c, 0xe7,
+ 0x6f, 0xe9, 0x67, 0xad, 0x10, 0x16, 0xc0, 0x46, 0xfe, 0x01, 0xf5, 0xde,
+ 0x6c, 0xca, 0xc9, 0x76, 0xb1, 0xb1, 0xd5, 0xa0, 0x0c, 0x83, 0x91, 0x03,
+ 0x01, 0xf5, 0x6a, 0x7a, 0x11, 0x7d, 0x05, 0xd3, 0xdc, 0xaf, 0x4b, 0x00,
+ 0x31, 0x33, 0x51, 0x7a, 0x98, 0x47, 0x1c, 0xb9, 0x8d, 0x31, 0xcd, 0x5a,
+ 0x62, 0x0b, 0x54, 0xd3, 0x8d, 0x23, 0x4a, 0x80, 0xb6, 0xe6, 0x1d, 0xce,
+ 0xcf, 0x8a, 0x39, 0x51, 0x49, 0x33, 0x2b, 0x0a, 0x7e, 0x78, 0x43, 0x6c,
+ 0x6d, 0xaf, 0xf1, 0x36, 0x91, 0xba, 0x6f, 0xf7, 0x20, 0x67, 0x3b, 0x7f,
+ 0x4b, 0x3d, 0x68, 0x80, 0xb6, 0x02, 0x37, 0xf0, 0x7c, 0x4c, 0xf2, 0x84,
+ 0x2b, 0x6f, 0x43, 0xe0, 0xf9, 0xb4, 0xe7, 0x8d, 0xad, 0x96, 0x34, 0xd5,
+ 0xb9, 0xef, 0x48, 0x0c, 0x7e, 0x54, 0x88, 0x7d, 0x2e, 0x35, 0x68, 0x0c,
+ 0x4f, 0x67, 0xc6, 0x0a, 0xab, 0xdd, 0x71, 0x39, 0xd0, 0x87, 0x36, 0x13,
+ 0x13, 0x7a, 0x5a, 0xd5, 0x70, 0xb5, 0x7c, 0x2a, 0xeb, 0x99, 0xfa, 0x0b,
+ 0xbd, 0x2b, 0x51, 0x78, 0x5b, 0x49, 0xab, 0x73, 0x33, 0x6d, 0x83, 0xcb,
+ 0xaa, 0xc5, 0xbe, 0x50, 0xcd, 0x4d, 0xb7, 0xf3, 0x78, 0xbd, 0x4b, 0x35,
+ 0x7a, 0xc9, 0x64, 0x7a, 0x51, 0x68, 0x6f, 0xd0, 0x37, 0x72, 0x35, 0x1a,
+ 0xce, 0xfa, 0x6f, 0xe1, 0x24, 0x14, 0xa0, 0x01, 0xb2, 0x7c, 0x5c, 0x62,
+ 0x0b, 0xf6, 0x6a, 0x62, 0x9f, 0xfa, 0x14, 0x72, 0x53, 0x01, 0xf8, 0xb0,
+ 0xfd, 0x70, 0x53, 0x3c, 0xf0, 0x9b, 0xb7, 0xbc, 0x6d, 0xeb, 0x24, 0x4a,
+ 0xc3, 0x7d, 0x13, 0x8f, 0x7e, 0xbb, 0x63, 0xbc, 0xf6, 0x6d, 0x0e, 0xe4,
+ 0x71, 0xa0, 0x3f, 0xb8, 0x29, 0x64, 0x4c, 0x8b, 0xd3, 0xc9, 0xb5, 0x75,
+ 0xa2, 0x46, 0x69, 0x72, 0x10, 0xf9, 0x12, 0x0d, 0x5c, 0xa9, 0xa3, 0x5d,
+ 0x75, 0xb2, 0xae, 0x24, 0x98, 0x6b, 0x8c, 0x16, 0x24, 0xb3, 0xa7, 0xb0,
+ 0xf4, 0x57, 0x9a, 0x09, 0xe4, 0x5b, 0xcf, 0xd1, 0x99, 0x99, 0xf4, 0x72,
+ 0xa8, 0xd1, 0x54, 0x07, 0xc0, 0xc2, 0xdc, 0x98, 0xf7, 0x91, 0x1a, 0x22,
+ 0xf7, 0x53, 0xf3, 0xb6, 0x95, 0x02, 0x08, 0x8b, 0xac, 0x45, 0xd7, 0xa8,
+ 0xb8, 0xe7, 0xdd, 0x36, 0x19, 0xbd, 0x65, 0x08, 0xb9, 0x8d, 0x87, 0x0e,
+ 0xfa, 0x2f, 0x1a, 0x0b, 0x3e, 0x7d, 0x05, 0x6f, 0x70, 0x76, 0xbd, 0x87,
+ 0x74, 0x2e, 0x4f, 0xb2, 0x7d, 0xd9, 0xec, 0xa1, 0xca, 0x3e, 0x0f, 0x9a,
+ 0xdd, 0xa8, 0x51, 0x8c, 0xbb, 0xbb, 0x94, 0xb0, 0x43, 0x31, 0xd9, 0x3b,
+ 0xba, 0x12, 0xb1, 0x76, 0xdf, 0xdc, 0x5f, 0x51, 0x8e, 0xd0, 0x7a, 0x39,
+ 0xfc, 0x94, 0xda, 0xa1, 0xd4, 0xdd, 0x6c, 0xb5, 0xad, 0x70, 0x96, 0x46,
+ 0xdb, 0xd7, 0x64, 0xab, 0x4e, 0x96, 0xc8, 0x4c, 0xc6, 0xf2, 0x36, 0x39,
+ 0x9b, 0xdb, 0x4c, 0x2e, 0x13, 0xad, 0x4e, 0xe3, 0x13, 0x1b, 0x27, 0xdc,
+ 0xd5, 0xd8, 0x4b, 0x79, 0x26, 0x8c, 0x5c, 0xe9, 0x95, 0xaa, 0x0e, 0x95,
+ 0x4e, 0x19, 0xd2, 0x11, 0x06, 0xe2, 0x0e, 0x20, 0x80, 0x10, 0x0b, 0x1a,
+ 0x3f, 0x3c, 0xb8, 0x4d, 0x0f, 0xf0, 0xdc, 0xef, 0x5d, 0xd3, 0x99, 0x89,
+ 0xe2, 0x32, 0xef, 0xe8, 0x34, 0x17, 0xf7, 0x77, 0x10, 0xce, 0x8a, 0xd8,
+ 0xad, 0x82, 0x49, 0xe8, 0x98, 0xe1, 0x57, 0x98, 0x0f, 0x15, 0x22, 0x87,
+ 0xa1, 0x5c, 0xcc, 0x35, 0x3e, 0x9f, 0xa6, 0x04, 0xab, 0xaf, 0xe5, 0xe9,
+ 0x72, 0x03, 0xc9, 0x24, 0xf3, 0x5a, 0x8c, 0x0a, 0x73, 0x84, 0x1f, 0x91,
+ 0x20, 0x9b, 0x3a, 0x0c, 0x36, 0xf8, 0x8c, 0x5b, 0xd5, 0xf9, 0x29, 0xfe,
+ 0x4b, 0x12, 0x7e, 0x66, 0xfc, 0x8f, 0x1e, 0xfd, 0x3c, 0xd4, 0x49, 0x64,
+ 0xe8, 0x71, 0x2c, 0x6a, 0xb8, 0xb0, 0x1c, 0xbc, 0x60, 0x58, 0x2c, 0xb0,
+ 0x54, 0x27, 0xe5, 0x01, 0xd7, 0x1b, 0xe8, 0x7e, 0x06, 0x5f, 0xb4, 0x9f,
+ 0xcc, 0x95, 0x21, 0xc3, 0x78, 0xf3, 0xe7, 0x0d, 0xd1, 0x62, 0xe5, 0x01,
+ 0x66, 0x0f, 0xae, 0xab, 0xcf, 0x46, 0xe0, 0x08, 0xb7, 0xdd, 0x64, 0x1a,
+ 0x7c, 0x62, 0x23, 0x6e, 0x5e, 0x97, 0x67, 0x6a, 0xf4, 0xbc, 0x45, 0xd7,
+ 0xba, 0x0a, 0x73, 0x84, 0x38, 0xcc, 0xfd, 0x50, 0x7f, 0x4c, 0x85, 0x69,
+ 0x7b, 0xbd, 0xeb, 0xa3, 0xad, 0x50, 0x4f, 0x8d, 0xf7, 0x74, 0x1b, 0x7c,
+ 0xdc, 0x18, 0x1e, 0x39, 0x26, 0x8e, 0x22, 0xb8, 0x6e, 0x0f, 0xc4, 0x25,
+ 0xdc, 0x09, 0x4f, 0xae, 0x4f, 0x4f, 0xf7, 0x14, 0x0e, 0x5e, 0x16, 0x28,
+ 0xe9, 0x06, 0x5d, 0x31, 0x49, 0x6b, 0xc0, 0x1b, 0xc5, 0x6c, 0x13, 0x24,
+ 0xd8, 0xa8, 0xce, 0x83, 0xc1, 0xbb, 0xff, 0x74, 0xdb, 0x34, 0x2b, 0x2c,
+ 0x20, 0x99, 0xc7, 0xd8, 0xd6, 0x37, 0xba, 0xfc, 0x7a, 0x9b, 0xf4, 0xca,
+ 0x49, 0x05, 0xd4, 0x24, 0xaf, 0x3c, 0x53, 0x02, 0x5b, 0xe4, 0xaa, 0x75,
+ 0x03, 0xf6, 0xbf, 0x1d, 0x4b, 0xab, 0x15, 0xee, 0xba, 0xb9, 0xc3, 0x64,
+ 0xc5, 0x82, 0x18, 0x17, 0x66, 0x4e, 0x2a, 0x20, 0x9d, 0x96, 0x5f, 0xf3,
+ 0x83, 0x7b, 0x02, 0x4e, 0xe8, 0xb6, 0xbe, 0x75, 0x98, 0xec, 0x48, 0x30,
+ 0x89, 0x92, 0xfb, 0x94, 0x5a, 0xfc, 0xc4, 0xbd, 0xfc, 0x19, 0xe6, 0xd6,
+ 0x22, 0x58, 0xca, 0x5b, 0x77, 0xa9, 0x2a, 0xb5, 0x35, 0x4a, 0x8d, 0x53,
+ 0x44, 0x9d, 0x3a, 0x7c, 0x8e, 0xcb, 0x2d, 0xff, 0xba, 0x3a, 0xd4, 0x4d,
+ 0xd4, 0xe7, 0x60, 0xae, 0x39, 0xea, 0x2d, 0x29, 0xc9, 0x28, 0x90, 0x4d,
+ 0xf1, 0x7e, 0x76, 0x7a, 0x6c, 0x31, 0xaf, 0x20, 0x3a, 0x0d, 0x61, 0x8f,
+ 0x15, 0xc3, 0x0c, 0xb7, 0x6e, 0xc0, 0x3c, 0x00, 0x2e, 0xf3, 0x4a, 0xb8,
+ 0x8d, 0x3e, 0x69, 0xef, 0xe0, 0xec, 0x78, 0xe8, 0x48, 0x09, 0xe6, 0x64,
+ 0x5f, 0xad, 0xf1, 0x34, 0x21, 0xa5, 0xee, 0x5c, 0xe8, 0xc1, 0x4f, 0x73,
+ 0x24, 0x6d, 0x14, 0x8f, 0x5c, 0x25, 0xbb, 0x75, 0xcc, 0x9d, 0xbb, 0x51,
+ 0x5f, 0xc7, 0xca, 0x55, 0x00, 0x55, 0x76, 0x28, 0xf0, 0xb4, 0xc7, 0x98,
+ 0x75, 0xc1, 0x8f, 0x29, 0xce, 0xb0, 0x6d, 0x0e, 0x61, 0x68, 0x91, 0x93,
+ 0xa9, 0xc7, 0x38, 0x4b, 0x9e, 0x54, 0x10, 0xd7, 0x38, 0x34, 0x20, 0xf1,
+ 0x36, 0xde, 0x39, 0x7d, 0xa0, 0x5a, 0xcc, 0x6e, 0x55, 0x82, 0x24, 0xb6,
+ 0x1f, 0x78, 0xec, 0xce, 0x83, 0x5f, 0xf8, 0xac, 0x3e, 0xe2, 0x2f, 0xe2,
+ 0xba, 0x93, 0xdf, 0x10, 0x64, 0x59, 0x6b, 0x7c, 0x4d, 0x03, 0x50, 0xd9,
+ 0x05, 0xa9, 0xc6, 0x6a, 0x47, 0x71, 0x58, 0x88, 0xc9, 0xd6, 0x84, 0x06,
+ 0xeb, 0xba, 0xa6, 0x93, 0xa3, 0x7b, 0x35, 0xa5, 0xd8, 0xe2, 0x80, 0x2a,
+ 0x68, 0xbd, 0x8e, 0x1c, 0x8e, 0x89, 0x23, 0xae, 0x68, 0x62, 0x6b, 0x06,
+ 0xd0, 0xe6, 0x16, 0x89, 0x19, 0x3a, 0x9c, 0x73, 0x84, 0xb9, 0xe5, 0x41,
+ 0x44, 0xe1, 0x87, 0x28, 0x93, 0x16, 0xe3, 0x0d, 0xad, 0xdf, 0x4d, 0x7f,
+ 0x96, 0x84, 0x0a, 0xed, 0x89, 0x60, 0xeb, 0xd1, 0xa7, 0xa5, 0xb0, 0xb7,
+ 0xfb, 0x6f, 0x16, 0xbf, 0xe2, 0x9f, 0x20, 0xbe, 0x0c, 0x2b, 0xc4, 0x37,
+ 0x1b, 0xe2, 0xeb, 0x09, 0xc7, 0x7b, 0x17, 0x31, 0x8c, 0x1b, 0x33, 0x45,
+ 0x80, 0xa6, 0xe7, 0xe8, 0x69, 0x6e, 0xe7, 0x8e, 0x5b, 0xae, 0xd2, 0xc4,
+ 0x86, 0x07, 0xb5, 0xaf, 0x0e, 0xa8, 0x38, 0x82, 0xa7, 0x0e, 0x93, 0x3b,
+ 0xd3, 0x92, 0x3a, 0xe6, 0x86, 0x26, 0xb0, 0x6e, 0x44, 0x5d, 0x97, 0x4f,
+ 0x56, 0x9d, 0x42, 0xa1, 0x61, 0xdf, 0xc8, 0x5c, 0x77, 0xd6, 0xb5, 0x3b,
+ 0x98, 0xc8, 0xea, 0x22, 0x9d, 0x68, 0xe8, 0x3a, 0xb1, 0x5f, 0x9d, 0x83,
+ 0xa0, 0x88, 0x00, 0xf7, 0x33, 0xdc, 0x23, 0xff, 0xc6, 0x23, 0x4e, 0xfe,
+ 0x6a, 0x13, 0xa1, 0x39, 0x7c, 0x9c, 0xd8, 0xee, 0x24, 0x85, 0x06, 0x05,
+ 0xe4, 0x02, 0x34, 0x1a, 0x22, 0xdc, 0x58, 0xd8, 0x97, 0x44, 0x37, 0xc3,
+ 0x8d, 0x95, 0x71, 0x14, 0xec, 0x40, 0x07, 0xb9, 0x9e, 0xe9, 0x38, 0xba,
+ 0xa9, 0xea, 0xe2, 0xc9, 0x5f, 0xd7, 0x18, 0xb1, 0x7d, 0x74, 0x67, 0xd0,
+ 0x9b, 0xfe, 0x4e, 0xfe, 0x88, 0x44, 0xb0, 0xf1, 0x19, 0xd9, 0x1c, 0x3c,
+ 0x94, 0x9c, 0x7d, 0x95, 0xc2, 0x85, 0xc7, 0x09, 0x1d, 0x97, 0xd5, 0xea,
+ 0xf7, 0x05, 0x28, 0x8c, 0x3e, 0x28, 0x73, 0x33, 0x48, 0x1d, 0xb5, 0xda,
+ 0x2d, 0x38, 0xdc, 0xff, 0x76, 0x62, 0x68, 0xd6, 0xd6, 0x44, 0xbd, 0x00,
+ 0x87, 0xdf, 0x07, 0xdc, 0x59, 0x6a, 0x93, 0xfc, 0x4a, 0x43, 0xfe, 0x03,
+ 0x9a, 0x5a, 0x96, 0xa2, 0xe2, 0xa7, 0xf9, 0xd6, 0xb7, 0xaa, 0x48, 0x9b,
+ 0xd0, 0x9d, 0x89, 0x7a, 0x01, 0x0f, 0xc2, 0x31, 0xa4, 0x69, 0xe6, 0xaf,
+ 0x69, 0x01, 0x7e, 0x25, 0xcc, 0xd1, 0x0d, 0x79, 0x2e, 0x82, 0x03, 0x49,
+ 0xab, 0x85, 0x4f, 0x0c, 0xf9, 0xe9, 0x8b, 0x83, 0xf5, 0x28, 0x6a, 0xb7,
+ 0x5d, 0xdc, 0xf0, 0x3a, 0x92, 0xb2, 0xd2, 0x56, 0x95, 0x45, 0xe4, 0xba,
+ 0xaa, 0x7a, 0xdd, 0x70, 0x23, 0x9c, 0x00, 0x57, 0x31, 0xea, 0xe0, 0xed,
+ 0x23, 0xf8, 0xd8, 0x49, 0x41, 0xc7, 0xfc, 0x22, 0xa8, 0x9b, 0x4c, 0x2a,
+ 0xb6, 0x94, 0x6d, 0x16, 0x0f, 0xc7, 0xc0, 0xf8, 0xd2, 0x2d, 0x0e, 0x72,
+ 0xa9, 0xdc, 0x57, 0x14, 0xe8, 0xf3, 0xf0, 0x02, 0x4e, 0xac, 0xef, 0x74,
+ 0x29, 0xa3, 0x7d, 0x7e, 0x7f, 0x03, 0x69, 0xd4, 0x15, 0x49, 0x35, 0xa0,
+ 0xc9, 0x75, 0xf1, 0x1a, 0x34, 0xc7, 0xfc, 0xc4, 0x12, 0x4c, 0x45, 0xc6,
+ 0xcb, 0xb8, 0xa8, 0x77, 0xcb, 0x83, 0x9c, 0xcc, 0xb6, 0x47, 0x2c, 0x33,
+ 0xe3, 0x85, 0x31, 0xe7, 0x37, 0x90, 0xac, 0x46, 0x77, 0xeb, 0x3a, 0x7c,
+ 0x0f, 0x15, 0x0e, 0x23, 0x8d, 0x9e, 0x8c, 0xd3, 0xbf, 0x60, 0x1f, 0xd9,
+ 0x42, 0x00, 0xf2, 0xdf, 0x9b, 0x0d, 0x95, 0x74, 0x40, 0x68, 0xe8, 0xb1,
+ 0x17, 0x38, 0x59, 0x40, 0x38, 0x02, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x31, 0x11, 0x00, 0x06, 0x10, 0x44, 0x00, 0x19,
+ 0x7b, 0x02, 0xb1, 0x54, 0x03, 0x72, 0x1b, 0x91, 0xed, 0xcc, 0x7a, 0xa7,
+ 0xb1, 0xb1, 0x28, 0xa7, 0x94, 0x64, 0x94, 0x9f, 0x7b, 0x5d, 0xfd, 0x02,
+ 0x95, 0x6c, 0x32, 0x08, 0x2b, 0x13, 0x9b, 0xe3, 0xb3, 0x4c, 0x18, 0x72,
+ 0x63, 0x3d, 0x34, 0x0a, 0x74, 0x84, 0xee, 0xa5, 0xfc, 0xda, 0x10, 0x32,
+ 0xca, 0x3a, 0xec, 0x80, 0x2a, 0x2f, 0xb6, 0x4e, 0x5f, 0x04, 0x65, 0x00,
+ 0x9c, 0xae, 0x72, 0x90, 0xc9, 0x75, 0xf9, 0xaf, 0x24, 0x78, 0xe4, 0xda,
+ 0x05, 0xa0, 0x81, 0x88, 0x1d, 0xa9, 0x0f, 0xac, 0xa1, 0x40, 0x1d, 0x63,
+ 0x43, 0x7d, 0xe3, 0x7e, 0xc9, 0x17, 0x6f, 0x48, 0x56, 0x00, 0x5d, 0x77,
+ 0xcf, 0xbb, 0x27, 0x30, 0x98, 0x6f, 0x54, 0x6a, 0x93, 0x78, 0xb0, 0x19,
+ 0x7c, 0x0d, 0xa4, 0x06, 0xbf, 0xe9, 0xa9, 0xa5, 0xf5, 0x34, 0xbe, 0x6b,
+ 0x01, 0x97, 0xc4, 0x32, 0xf6, 0xaf, 0x7e, 0xe7, 0x81, 0xd9, 0x68, 0x60,
+ 0x33, 0x41, 0x06, 0x90, 0x31, 0x4f, 0x3b, 0x73, 0x0c, 0x79, 0x94, 0xbf,
+ 0x0b, 0x3c, 0x8c, 0x67, 0x0a, 0x90, 0x5a, 0x66, 0x73, 0x53, 0xda, 0x6d,
+ 0xfc, 0xde, 0xf4, 0x19, 0x48, 0xc2, 0x36, 0xe3, 0x04, 0xbf, 0x3f, 0xb7,
+ 0x8a, 0x3c, 0xcc, 0x4e, 0x49, 0x20, 0xf5, 0x52, 0x5f, 0xea, 0x26, 0xf8,
+ 0x37, 0x42, 0x0f, 0x40, 0x71, 0x6a, 0x7b, 0xe8, 0x7e, 0x0d, 0x99, 0x0f,
+ 0xb8, 0xb5, 0x93, 0xe4, 0xb4, 0x4d, 0x1e, 0xa2, 0x50, 0x85, 0xea, 0xa0,
+ 0xb4, 0x89, 0x48, 0xa7, 0x53, 0xa7, 0x6f, 0x4a, 0xc1, 0xa1, 0xdd, 0x56,
+ 0xa8, 0x2a, 0x50, 0x23, 0x91, 0x6a, 0x54, 0x33, 0x3a, 0x7d, 0x6d, 0x65,
+ 0xae, 0xdc, 0xcc, 0x7c, 0x3b, 0x78, 0x7f, 0x44, 0x8f, 0x02, 0x44, 0xe2,
+ 0x56, 0x0e, 0x70, 0xcf, 0xc0, 0xa3, 0xb9, 0xef, 0x91, 0x7e, 0x5f, 0xec,
+ 0x4f, 0x1a, 0x09, 0x1e, 0xbb, 0xab, 0x56, 0x34, 0x5d, 0x8b, 0x06, 0x67,
+ 0x48, 0x6c, 0xcb, 0x55, 0x26, 0xc9, 0x08, 0x1a, 0xc4, 0x90, 0xe5, 0xb7,
+ 0xa2, 0xe2, 0xce, 0xf5, 0x44, 0xda, 0x68, 0xc7, 0xb3, 0x1b, 0x53, 0x40,
+ 0x6c, 0x3f, 0xd9, 0x47, 0xfb, 0x63, 0x8a, 0x8e, 0xcd, 0xef, 0x09, 0xc7,
+ 0x32, 0x95, 0xc6, 0x9f, 0x0b, 0x5d, 0x1e, 0x84, 0xaf, 0x7e, 0xa3, 0x70,
+ 0x67, 0xad, 0x88, 0xf1, 0x5e, 0xac, 0x15, 0x41, 0x5e, 0x03, 0x4e, 0xdb,
+ 0xf4, 0xbb, 0xf3, 0x62, 0xa3, 0xb7, 0xb4, 0x2a, 0x02, 0x51, 0xc1, 0xae,
+ 0x53, 0x34, 0xba, 0xe6, 0x60, 0x01, 0xf1, 0x06, 0x3a, 0xed, 0xc0, 0xb1,
+ 0xbc, 0x58, 0x81, 0x78, 0x3b, 0xb6, 0x1e, 0x5e, 0x60, 0x7e, 0x6f, 0x7c,
+ 0x2b, 0x46, 0xaa, 0xed, 0xc0, 0x97, 0xca, 0x15, 0x91, 0x5a, 0x0e, 0x3a,
+ 0x72, 0xa9, 0xfb, 0x14, 0x36, 0x4b, 0x72, 0xd6, 0xa7, 0xf3, 0x9e, 0xdb,
+ 0xd1, 0xbb, 0x1c, 0x8c, 0xeb, 0xe5, 0xe2, 0x9c, 0xd5, 0xf0, 0x1d, 0xca,
+ 0xae, 0xf1, 0x1e, 0x7f, 0x17, 0xe2, 0x9c, 0x55, 0xe6, 0x59, 0xdc, 0x3e,
+ 0x94, 0x83, 0x8e, 0x68, 0x47, 0x78, 0x8d, 0xbb, 0x45, 0xa2, 0x31, 0x27,
+ 0x15, 0x58, 0xa0, 0x8c, 0x10, 0x72, 0x56, 0x4c, 0x1c, 0x22, 0xb4, 0xf7,
+ 0x52, 0x8e, 0x91, 0x22, 0xce, 0xc0, 0xae, 0x4d, 0x19, 0xa8, 0x37, 0xc1,
+ 0xcf, 0x1f, 0x4e, 0x77, 0x10, 0x2e, 0xb5, 0x9c, 0xd0, 0x90, 0x30, 0x95,
+ 0x70, 0x5f, 0xda, 0x6f, 0xd9, 0xd9, 0xed, 0x60, 0xa9, 0xf3, 0x7c, 0x0c,
+ 0x44, 0x22, 0x6d, 0x23, 0x2d, 0x7e, 0x10, 0xd6, 0x9f, 0x3e, 0x2e, 0xba,
+ 0x20, 0x66, 0x6f, 0xdd, 0x14, 0xfa, 0x34, 0x04, 0xdb, 0x4e, 0x2e, 0xae,
+ 0x77, 0x88, 0x47, 0x3c, 0xcf, 0xe9, 0x05, 0x24, 0x98, 0x95, 0x45, 0xf6,
+ 0x8f, 0x41, 0x98, 0xa4, 0xa4, 0xcd, 0x91, 0xa4, 0x85, 0xb5, 0xad, 0x88,
+ 0x9b, 0x7b, 0xdd, 0xf6, 0xae, 0xd5, 0xec, 0xbb, 0xec, 0x41, 0x9b, 0x70,
+ 0x35, 0xf6, 0x00, 0x56, 0xa4, 0x56, 0x29, 0x32, 0x7f, 0xb7, 0x80, 0xb8,
+ 0x1e, 0x49, 0xb0, 0x29, 0x50, 0x97, 0xba, 0x41, 0x5b, 0x4c, 0xc7, 0x0e,
+ 0xae, 0x5d, 0x5e, 0x6f, 0x16, 0x2f, 0x78, 0x00, 0xee, 0x01, 0x00, 0x00,
+ 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0a, 0x00, 0x03,
+ 0x10, 0x44, 0x00, 0x18, 0x00, 0x19, 0xc0, 0x5f, 0x57, 0xe8, 0x3b, 0x48,
+ 0x4b, 0x11, 0xca, 0x73, 0xe4, 0x95, 0x06, 0xd3, 0xfd, 0x10, 0x5a, 0x16,
+ 0xf6, 0x25, 0x93, 0x0e, 0x26, 0xb4, 0xac, 0xb3, 0x71, 0xe5, 0xac, 0xa2,
+ 0x71, 0x97, 0xe7, 0x62, 0x21, 0xc1, 0xfc, 0x3d, 0x8a, 0x9c, 0x64, 0x01,
+ 0x3c, 0x54, 0xc0, 0x01, 0x13, 0x4c, 0x9c, 0xb1, 0x2f, 0x42, 0xfe, 0xd7,
+ 0xe2, 0x3b, 0x70, 0x20, 0x1a, 0x43, 0xf2, 0x3b, 0x09, 0x07, 0x76, 0x36,
+ 0xb8, 0x41, 0xee, 0xda, 0x60, 0x4a, 0x74, 0x7e, 0xba, 0xf5, 0xbd, 0x40,
+ 0x33, 0xd3, 0x46, 0x6d, 0x06, 0x0e, 0xc7, 0xe7, 0x5b, 0xc1, 0x18, 0x04,
+ 0x61, 0xd6, 0x7c, 0x6b, 0x22, 0x46, 0x43, 0x2f, 0xac, 0xee, 0x63, 0x83,
+ 0x44, 0x9b, 0x94, 0x15, 0x1c, 0x86, 0xa5, 0xfa, 0xdf, 0xe4, 0xe7, 0xbf,
+ 0x2e, 0x80, 0xb6, 0x7f, 0x74, 0x7e, 0x4c, 0x64, 0x4a, 0x2a, 0x1f, 0xf0,
+ 0x8d, 0x2d, 0x02, 0xe6, 0x0a, 0x57, 0xfe, 0xae, 0x80, 0x23, 0xac, 0x9d,
+ 0xfa, 0x3b, 0xd6, 0x86, 0x8b, 0x1f, 0x7f, 0x51, 0x5f, 0x01, 0xab, 0xcf,
+ 0xc6, 0x34, 0xa8, 0xc2, 0x17, 0xa0, 0xea, 0xfd, 0x87, 0xaf, 0x61, 0x00,
+ 0x9d, 0x73, 0xa3, 0x7d, 0xf8, 0xcb, 0xe8, 0x0f, 0x9b, 0x0d, 0xb6, 0x0a,
+ 0x27, 0x6a, 0x74, 0x8c, 0x67, 0xf7, 0x50, 0xda, 0x63, 0x6b, 0x90, 0xbe,
+ 0x6b, 0xb1, 0x82, 0x4b, 0x2d, 0xb2, 0xf4, 0x09, 0x3a, 0xe4, 0xb5, 0xdd,
+ 0xc7, 0x5b, 0x82, 0x85, 0x28, 0xa0, 0xb0, 0xf8, 0x79, 0x2f, 0xc6, 0x0c,
+ 0xb5, 0x5b, 0xbf, 0x6b, 0xf8, 0xa4, 0xcc, 0x2b, 0x6c, 0x97, 0xf7, 0x54,
+ 0x62, 0xb3, 0x0a, 0x2e, 0x40, 0xb4, 0x9b, 0x06, 0xec, 0xde, 0x10, 0xbc,
+ 0x22, 0xf4, 0x11, 0xec, 0xae, 0x24, 0x35, 0xaf, 0x6a, 0x27, 0x87, 0xb3,
+ 0x16, 0xaa, 0x64, 0x7f, 0x39, 0x2d, 0xee, 0x3c, 0xbe, 0x84, 0xee, 0x49,
+ 0x6a, 0xd8, 0xec, 0xe1, 0x28, 0xc8, 0x99, 0x87, 0x77, 0x71, 0xdb, 0x45,
+ 0x9f, 0x3c, 0xe5, 0xac, 0x8a, 0x5e, 0xe6, 0x0e, 0x18, 0xfd, 0xc1, 0x38,
+ 0x22, 0xc7, 0x0f, 0xfd, 0x56, 0x8c, 0x49, 0x19, 0xbf, 0xc4, 0x0b, 0x6d,
+ 0x6a, 0xff, 0x04, 0x4f, 0xb3, 0x26, 0xf3, 0x54, 0x7a, 0x0c, 0xbc, 0x03,
+ 0x49, 0x0d, 0xab, 0x6f, 0x9b, 0x04, 0x1e, 0x5d, 0xeb, 0x83, 0x03, 0xa5,
+ 0xff, 0x1f, 0xad, 0x92, 0x6c, 0x4f, 0x7d, 0x4d, 0xc0, 0xdf, 0xf8, 0x3d,
+ 0xed, 0x42, 0xed, 0xce, 0x7d, 0x67, 0xe6, 0x34, 0x16, 0x99, 0x6d, 0x90,
+ 0xce, 0xd9, 0x2f, 0xe7, 0x7a, 0xed, 0xcc, 0xe5, 0xf0, 0x1f, 0xc4, 0xf3,
+ 0x99, 0x29, 0xc4, 0xf0, 0xc2, 0x9d, 0xb4, 0xb7, 0x47, 0x51, 0x4e, 0x90,
+ 0x1e, 0x39, 0x58, 0x32, 0xb2, 0xc1, 0x1c, 0x0b, 0xad, 0x2e, 0x09, 0x9c,
+ 0x4b, 0xc0, 0x7d, 0x5c, 0x1f, 0xcf, 0x37, 0x42, 0x1a, 0x01, 0xe5, 0x45,
+ 0x69, 0x61, 0x10, 0x47, 0xb9, 0x3c, 0x7e, 0xa6, 0x54, 0x3b, 0xbc, 0xf4,
+ 0x24, 0x2f, 0xa4, 0xf0, 0x68, 0x19, 0xfb, 0xe6, 0xa9, 0xfe, 0xb1, 0x11,
+ 0xe3, 0x1d, 0xe2, 0x62, 0xbd, 0x34, 0x63, 0x33, 0x8c, 0x22, 0x39, 0x9d,
+ 0xaf, 0x96, 0x17, 0xc9, 0xe4, 0x97, 0xf2, 0x86, 0xf2, 0x8b, 0xcf, 0xe8,
+ 0x13, 0xdc, 0x87, 0x24, 0xd7, 0x77, 0x22, 0x47, 0x43, 0x80, 0x97, 0x6f,
+ 0x5a, 0x4c, 0xbf, 0x71, 0x74, 0x3c, 0xb0, 0xbb, 0x42, 0x74, 0xf3, 0x7d,
+ 0x73, 0x42, 0x4b, 0x34, 0x8f, 0x5c, 0x65, 0xb8, 0xa1, 0xbc, 0xce, 0xef,
+ 0xd8, 0x02, 0x63, 0x96, 0xfc, 0xdc, 0x4d, 0xa5, 0x7c, 0x00, 0xe1, 0x02,
+ 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0c,
+ 0x00, 0x01, 0x10, 0x28, 0x00, 0x1e, 0xc9, 0xbd, 0x7b, 0x3f, 0xd0, 0x0d,
+ 0x75, 0x56, 0xb8, 0x2f, 0xfd, 0x00, 0x1a, 0x42, 0x76, 0x2c, 0x3a, 0x59,
+ 0xa3, 0x33, 0x58, 0x40, 0x9a, 0xb6, 0x5d, 0xc7, 0x28, 0x0c, 0xa2, 0x32,
+ 0xb1, 0xbd, 0x82, 0xe2, 0x22, 0xce, 0x58, 0x9f, 0x25, 0xb5, 0x01, 0xe1,
+ 0x47, 0x28, 0xfd, 0x39, 0x76, 0x9a, 0x81, 0xd9, 0x59, 0x66, 0xb1, 0x20,
+ 0xf1, 0x07, 0x6b, 0xdb, 0xa1, 0x66, 0xbe, 0x09, 0x80, 0x5f, 0x79, 0x2a,
+ 0x8c, 0x49, 0x5c, 0xae, 0x4e, 0x01, 0x95, 0x8a, 0x14, 0x2e, 0xd3, 0xe3,
+ 0x80, 0x6c, 0xc1, 0x2e, 0xcc, 0x44, 0x0a, 0x92, 0x68, 0xed, 0x68, 0x1b,
+ 0x4f, 0x90, 0x3b, 0x0c, 0x0c, 0xd2, 0x73, 0x35, 0x77, 0x88, 0xee, 0x8c,
+ 0x75, 0xdf, 0x36, 0x61, 0x3c, 0x27, 0xe5, 0xdf, 0x7a, 0xf0, 0x5e, 0x01,
+ 0x19, 0x9b, 0xb4, 0x98, 0xe3, 0x0d, 0x9f, 0x1f, 0x2a, 0x48, 0xd7, 0x0c,
+ 0x8f, 0xb3, 0x48, 0x8b, 0xad, 0x31, 0x6b, 0xdb, 0x91, 0x69, 0x01, 0xd4,
+ 0xa2, 0x7c, 0x63, 0xe6, 0x20, 0x31, 0xb1, 0xd1, 0x26, 0x94, 0x40, 0xab,
+ 0x55, 0x4d, 0xe6, 0xec, 0xb0, 0x59, 0x0d, 0xd0, 0xb6, 0x24, 0x7c, 0x98,
+ 0xe3, 0x73, 0x25, 0xa4, 0xe0, 0x1b, 0x6f, 0xd3, 0xc6, 0x2b, 0x02, 0xa6,
+ 0x74, 0xe5, 0xcc, 0x88, 0x11, 0x44, 0x53, 0xe8, 0x66, 0xef, 0xe8, 0x03,
+ 0xe7, 0x01, 0x89, 0xbe, 0xa2, 0x18, 0x18, 0x47, 0x52, 0x47, 0xb9, 0x4d,
+ 0x74, 0x3a, 0xc9, 0xd2, 0xf4, 0x74, 0xfa, 0x6f, 0x26, 0x75, 0x20, 0x18,
+ 0xfc, 0x21, 0x60, 0x70, 0x93, 0xff, 0xfa, 0xd2, 0x8d, 0xcb, 0x0f, 0xfc,
+ 0x1f, 0xfd, 0x76, 0x5e, 0x32, 0xa3, 0x92, 0x86, 0x0a, 0xc7, 0xcb, 0x37,
+ 0x13, 0x01, 0x01, 0x6b, 0xf1, 0x26, 0x1b, 0x0b, 0xa1, 0x28, 0x0d, 0xa8,
+ 0xa0, 0xaa, 0x00, 0xa5, 0x3c, 0xde, 0x4e, 0x22, 0x1c, 0xff, 0x3d, 0xcc,
+ 0x36, 0x13, 0x29, 0x0d, 0x06, 0x5b, 0xbf, 0x79, 0x04, 0x8b, 0x7f, 0x5f,
+ 0x9d, 0xda, 0x3a, 0xdb, 0x3c, 0x6c, 0x47, 0x95, 0x61, 0xca, 0xc4, 0x02,
+ 0x48, 0xb3, 0xac, 0x1d, 0x7f, 0xa5, 0xf5, 0x0d, 0x72, 0x6f, 0x9d, 0x7e,
+ 0xe3, 0x52, 0x70, 0x23, 0xe9, 0xa7, 0xc1, 0xae, 0x40, 0x60, 0xd5, 0xd2,
+ 0x00, 0xc6, 0xa7, 0xf2, 0x32, 0x67, 0xf0, 0x0e, 0x9b, 0xe9, 0xe5, 0x17,
+ 0xfc, 0xb7, 0xcb, 0xce, 0xca, 0x75, 0x5d, 0x2c, 0x16, 0x6e, 0x47, 0x02,
+ 0x08, 0xda, 0x28, 0xdd, 0x99, 0xdb, 0xb4, 0x91, 0x5e, 0x1a, 0x5e, 0x29,
+ 0x3b, 0xc8, 0x31, 0xc7, 0xd2, 0x3a, 0xc0, 0xcd, 0xc1, 0xfa, 0xc3, 0x13,
+ 0x5a, 0xd7, 0xb3, 0x45, 0xd3, 0x02, 0x11, 0x75, 0x48, 0x98, 0x4e, 0x8b,
+ 0xe1, 0x4a, 0xc3, 0x22, 0xd5, 0xe2, 0xd6, 0x3a, 0x2e, 0xc4, 0xa2, 0x19,
+ 0x19, 0xd8, 0xcb, 0x50, 0x98, 0x72, 0x93, 0x0b, 0xf3, 0xa2, 0x6b, 0xcf,
+ 0x9a, 0xe9, 0x55, 0x81, 0xd8, 0xff, 0x85, 0x0d, 0x0c, 0xf0, 0x1b, 0x14,
+ 0x69, 0x9e, 0x85, 0x66, 0x47, 0x64, 0xd4, 0x00, 0x38, 0x0c, 0xec, 0x3b,
+ 0xa3, 0x36, 0xa3, 0x84, 0x57, 0xc1, 0x1c, 0x87, 0xe0, 0x43, 0x9a, 0xb1,
+ 0x8e, 0x56, 0x6d, 0x79, 0x32, 0x73, 0x65, 0x1b, 0xb3, 0x43, 0x32, 0xde,
+ 0x4f, 0x9f, 0xa9, 0x67, 0x83, 0x35, 0xfc, 0xdb, 0xb3, 0xa8, 0xc6, 0x2b,
+ 0xdb, 0x9a, 0x1f, 0xdf, 0x11, 0xe8, 0x82, 0x0c, 0xe4, 0x4f, 0xf4, 0x59,
+ 0xc0, 0x05, 0xd4, 0xa9, 0xc5, 0x3c, 0x70, 0x51, 0x4d, 0x30, 0x64, 0x68,
+ 0x31, 0x39, 0x47, 0xff, 0x5e, 0x6f, 0x63, 0x41, 0xc6, 0x25, 0xd5, 0x06,
+ 0xa6, 0xaf, 0x51, 0xfe, 0x1a, 0x9f, 0x71, 0x3f, 0xd6, 0x0b, 0x3a, 0xfe,
+ 0x7d, 0x4d, 0xf9, 0x0d, 0xda, 0xf2, 0x8f, 0xb3, 0x0f, 0xf7, 0x8d, 0xbe,
+ 0xa5, 0x65, 0x45, 0x84, 0x63, 0x72, 0xd9, 0xe3, 0xbc, 0x8f, 0x95, 0xe4,
+ 0x2e, 0xba, 0x78, 0xaf, 0xda, 0x69, 0xc8, 0xbc, 0x2a, 0x55, 0x78, 0xd2,
+ 0xc1, 0x37, 0xb2, 0x81, 0xfe, 0x0a, 0x56, 0x32, 0xe9, 0xbf, 0x83, 0x73,
+ 0x72, 0x04, 0x4f, 0x3a, 0xc1, 0xb3, 0xe3, 0x06, 0x29, 0xfe, 0x61, 0xf7,
+ 0xb2, 0xf5, 0x25, 0x33, 0xe3, 0xc2, 0x50, 0xac, 0xb3, 0xba, 0xdb, 0xca,
+ 0x74, 0xc6, 0x45, 0x40, 0x6f, 0x46, 0xd4, 0xd1, 0xf5, 0x32, 0x6d, 0x1b,
+ 0x47, 0x97, 0xdf, 0xbb, 0x83, 0x4a, 0x2f, 0xfb, 0x64, 0x38, 0x72, 0x92,
+ 0x6c, 0xec, 0xee, 0x62, 0x02, 0x1b, 0xae, 0x32, 0x52, 0x66, 0x5e, 0x8c,
+ 0x11, 0x08, 0x89, 0x80, 0x73, 0xca, 0x73, 0xe6, 0x94, 0xc3, 0x9f, 0xe0,
+ 0x67, 0xcb, 0xc0, 0x9a, 0xb8, 0xe5, 0x45, 0x41, 0x35, 0xc0, 0x82, 0x32,
+ 0x13, 0x81, 0xf2, 0x96, 0x1a, 0x06, 0x89, 0x09, 0x16, 0x83, 0xbe, 0xde,
+ 0x20, 0x57, 0xb7, 0x84, 0xf7, 0x1c, 0xa3, 0x27, 0x59, 0x4c, 0x88, 0xea,
+ 0x2e, 0x9a, 0xe7, 0x3f, 0xd9, 0x5e, 0xf1, 0xc6, 0x7d, 0x14, 0x1b, 0x65,
+ 0x19, 0x0b, 0x43, 0xc0, 0xfd, 0x73, 0x02, 0xa4, 0x35, 0x0e, 0x84, 0x2e,
+ 0x2d, 0xf0, 0x1f, 0xf8, 0x23, 0xb5, 0xed, 0x72, 0x92, 0xd3, 0x47, 0xcd,
+ 0x1b, 0xb9, 0x32, 0x45, 0xd8, 0x7e, 0xc9, 0x54, 0x29, 0x8b, 0xd5, 0x92,
+ 0x7b, 0xf7, 0x9d, 0x21, 0x2c, 0x90, 0x6a, 0x1e, 0xea, 0xdc, 0xb6, 0xb9,
+ 0x24, 0x7f, 0x6a, 0x54, 0xd7, 0x88, 0x58, 0x52, 0xc7, 0xdd, 0x67, 0x0d,
+ 0x3e, 0xc0, 0x00, 0x69, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xf1, 0x0c, 0x00, 0x03, 0x10, 0x28, 0x00, 0x18, 0xd9,
+ 0x00, 0x00, 0xb4, 0x69, 0x66, 0x00, 0x2d, 0xd1, 0x81, 0x40, 0x0c, 0xe5,
+ 0xb7, 0x15, 0xb5, 0xcb, 0xee, 0x90, 0x0b, 0x7e, 0x2a, 0x83, 0x5d, 0x0e,
+ 0x84, 0x17, 0x26, 0x51, 0x51, 0x95, 0xf3, 0x03, 0x02, 0xeb, 0x01, 0x26,
+ 0xd5, 0xa2, 0x4f, 0x54, 0xc4, 0xf0, 0xc0, 0x35, 0x30, 0x9a, 0x29, 0x56,
+ 0x39, 0xcd, 0xfe, 0x43, 0xc9, 0x75, 0x47, 0x03, 0x25, 0x3d, 0xa9, 0x00,
+ 0x0e, 0x17, 0x54, 0x00, 0x5a, 0xb6, 0x61, 0xf6, 0x37, 0x51, 0xe7, 0x88,
+ 0xca, 0xf0, 0x9e, 0x95, 0x94, 0x93, 0x17, 0x22, 0x6d, 0x29, 0x0d, 0x9d,
+ 0x8d, 0xf5, 0xdb, 0x83, 0xd8, 0x55, 0xcf, 0xf5, 0x60, 0xd1, 0x3e, 0xe0,
+ 0x00, 0x3b, 0x0c, 0x3f, 0x64, 0xbb, 0xd2, 0x75, 0x42, 0x09, 0x2a, 0xe0,
+ 0x57, 0xcd, 0xcd, 0x5e, 0x19, 0x6e, 0xd5, 0x59, 0x08, 0xe7, 0xf7, 0x39,
+ 0xfe, 0x11, 0x10, 0x98, 0x49, 0x38, 0xa8, 0x71, 0xcf, 0x95, 0x25, 0x5c,
+ 0x48, 0x41, 0x86, 0x61, 0xc7, 0x29, 0xb1, 0x08, 0xf0, 0x16, 0xdc, 0x75,
+ 0x58, 0x45, 0x8d, 0x76, 0x32, 0x02, 0xf1, 0x70, 0x93, 0x00, 0x70, 0x37,
+ 0x99, 0xd2, 0xbb, 0x2a, 0x8d, 0x22, 0x4e, 0xbd, 0xf5, 0x47, 0x1d, 0xa6,
+ 0x47, 0x9a, 0xe1, 0x53, 0x0f, 0xad, 0x70, 0x6f, 0xe8, 0x4d, 0xd9, 0xd8,
+ 0xd9, 0x04, 0x1f, 0x2c, 0x77, 0x24, 0x7d, 0xd9, 0xd6, 0x11, 0x7d, 0xe6,
+ 0xe6, 0x26, 0xc5, 0x84, 0xcc, 0x0f, 0xc8, 0xdd, 0x0e, 0x03, 0xa9, 0x3d,
+ 0xc2, 0x50, 0x49, 0xbf, 0xf1, 0x37, 0xc4, 0x33, 0x77, 0xf7, 0xe4, 0xa1,
+ 0x1e, 0x27, 0xe2, 0x07, 0x0b, 0xb8, 0xac, 0x26, 0xeb, 0xa7, 0x45, 0x19,
+ 0xe7, 0x97, 0x39, 0x26, 0x2a, 0x18, 0x9a, 0xbb, 0x8b, 0xc6, 0xaa, 0x3a,
+ 0xaf, 0x55, 0x79, 0x64, 0x94, 0xd8, 0x97, 0x6d, 0x19, 0xb1, 0xd8, 0x15,
+ 0x12, 0x0b, 0xee, 0x04, 0x2e, 0x00, 0xe4, 0x91, 0x47, 0x05, 0xa5, 0x74,
+ 0xe9, 0xc1, 0x85, 0xbb, 0xcb, 0x82, 0x90, 0x20, 0x94, 0x49, 0x88, 0xa0,
+ 0x38, 0x8d, 0x06, 0x12, 0x97, 0x53, 0xb8, 0xe3, 0x0a, 0xfd, 0xa7, 0x25,
+ 0xfa, 0x31, 0xfe, 0x70, 0x2e, 0x2f, 0x1b, 0x00, 0x17, 0x08, 0xce, 0xbb,
+ 0xd5, 0x0a, 0x5a, 0x00, 0x14, 0x51, 0x19, 0x74, 0xda, 0x83, 0xb7, 0x70,
+ 0x89, 0xc5, 0xff, 0x53, 0xac, 0xb2, 0xa5, 0xc9, 0x3f, 0xbd, 0xe0, 0xf0,
+ 0xa5, 0x0a, 0x14, 0xbb, 0x23, 0xb5, 0x93, 0x1a, 0x8e, 0x56, 0xe9, 0xc7,
+ 0x28, 0x05, 0x6a, 0x4f, 0xfa, 0x26, 0xa3, 0x3b, 0xa2, 0x3c, 0xfe, 0x4e,
+ 0x0a, 0xba, 0x29, 0x09, 0x59, 0x8a, 0x2d, 0x17, 0x34, 0xfe, 0x6f, 0x00,
+ 0xae, 0xde, 0xb0, 0xc6, 0xda, 0x1b, 0x4a, 0xe5, 0x6e, 0xf7, 0xd6, 0x6d,
+ 0xe5, 0xf6, 0x86, 0xe4, 0xde, 0x63, 0x26, 0x01, 0x1d, 0x19, 0x68, 0x46,
+ 0x7a, 0x98, 0xdf, 0xf0, 0x09, 0xb2, 0x4f, 0xae, 0x50, 0x5a, 0x94, 0x81,
+ 0x79, 0x81, 0x2f, 0x33, 0x27, 0xcd, 0x99, 0x52, 0xaa, 0x52, 0xf4, 0x25,
+ 0x30, 0x33, 0xc3, 0x1c, 0x04, 0x4f, 0x60, 0x83, 0xb3, 0xfb, 0xce, 0x77,
+ 0xdf, 0x95, 0x0e, 0xcf, 0x31, 0x1a, 0x58, 0x30, 0xe3, 0x5b, 0x9e, 0x48,
+ 0xf9, 0xc7, 0xa6, 0x6a, 0x69, 0x7d, 0xbb, 0x57, 0x6f, 0x03, 0x49, 0x65,
+ 0xf1, 0x05, 0x38, 0x10, 0x44, 0x28, 0xf9, 0xbf, 0x8f, 0xfd, 0xd3, 0x6c,
+ 0xea, 0xc9, 0x1a, 0x99, 0x49, 0x6a, 0x95, 0x4a, 0x7f, 0xef, 0xe3, 0x31,
+ 0xbf, 0x8e, 0xe0, 0x0e, 0x14, 0x0a, 0x68, 0x89, 0xd6, 0xf9, 0x2f, 0x51,
+ 0xbd, 0x35, 0x4b, 0xcd, 0x07, 0x42, 0x59, 0x48, 0xa9, 0x89, 0x98, 0xd4,
+ 0xe5, 0x08, 0xa7, 0xc9, 0x95, 0x68, 0x57, 0x42, 0x44, 0xce, 0x65, 0x63,
+ 0x8e, 0xa6, 0xa9, 0x19, 0xb0, 0x1d, 0xd7, 0xb6, 0xef, 0xa1, 0x69, 0x6b,
+ 0xfb, 0x29, 0x61, 0x0c, 0xae, 0x6c, 0xa2, 0xfd, 0xb0, 0x65, 0x52, 0x0d,
+ 0xae, 0xc9, 0x96, 0x4a, 0x93, 0xc3, 0x2d, 0xf1, 0xd6, 0x21, 0x00, 0x75,
+ 0xe6, 0x22, 0x67, 0x59, 0x02, 0x00, 0x3a, 0x7f, 0xde, 0x12, 0xc7, 0x44,
+ 0xe3, 0x94, 0xea, 0x27, 0x6b, 0x77, 0x33, 0x1f, 0xff, 0xe2, 0x81, 0x34,
+ 0x4f, 0x67, 0x53, 0xad, 0x1a, 0x0a, 0xcc, 0x7d, 0xcd, 0xa3, 0xbb, 0x05,
+ 0xb3, 0xcc, 0xf1, 0xfd, 0x09, 0xc5, 0xcb, 0xba, 0xf5, 0xe4, 0xe7, 0xa3,
+ 0x74, 0xbf, 0xec, 0xc8, 0xcf, 0xa0, 0x60, 0x42, 0x9a, 0x96, 0x82, 0x5c,
+ 0x04, 0xd7, 0x38, 0x61, 0xce, 0x2c, 0xd7, 0x00, 0x16, 0x03, 0x00, 0x00,
+ 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0f, 0x00, 0x03,
+ 0x10, 0x24, 0x00, 0x1e, 0xe7, 0x40, 0x0b, 0xf7, 0xd5, 0xd8, 0x91, 0xe9,
+ 0xe1, 0xf8, 0x22, 0x05, 0x8d, 0xbf, 0x06, 0x30, 0xbf, 0xbe, 0xbd, 0x12,
+ 0xab, 0x4b, 0xdd, 0x5d, 0xa2, 0xef, 0xf0, 0x99, 0xbd, 0x32, 0x8c, 0x7b,
+ 0x73, 0x9b, 0xa9, 0x72, 0x81, 0x1e, 0x17, 0x0b, 0xd0, 0xe9, 0xa9, 0xda,
+ 0xde, 0x1c, 0x31, 0xd1, 0xf8, 0x83, 0xe5, 0xd6, 0x32, 0xa1, 0x53, 0xb2,
+ 0xa1, 0x75, 0xaa, 0xb7, 0x12, 0x54, 0x57, 0xf9, 0x48, 0xf3, 0xaf, 0x47,
+ 0xc5, 0x44, 0xb1, 0x0b, 0x8a, 0x08, 0x0e, 0x3c, 0x00, 0x69, 0xd4, 0xd7,
+ 0x25, 0x68, 0x80, 0x4e, 0xad, 0x63, 0xf0, 0x0e, 0xfe, 0xb8, 0x6d, 0x58,
+ 0xef, 0xff, 0xfe, 0x80, 0x0e, 0x36, 0x7f, 0xe0, 0x8e, 0x20, 0x00, 0x22,
+ 0xa2, 0x02, 0x9e, 0x80, 0x6f, 0x63, 0xa3, 0xcb, 0x25, 0x6b, 0x4e, 0x25,
+ 0x77, 0x94, 0x38, 0x1e, 0x00, 0x3b, 0x6d, 0x6e, 0x7a, 0xf3, 0xfe, 0x36,
+ 0xcb, 0xab, 0xf7, 0x3c, 0x1f, 0x15, 0x41, 0xa3, 0xd3, 0x02, 0x8b, 0xbe,
+ 0x63, 0xb1, 0xc1, 0xc7, 0x43, 0x36, 0x1e, 0x19, 0x28, 0x66, 0x4f, 0x2b,
+ 0x41, 0x3a, 0x1e, 0xe6, 0x52, 0x18, 0x4f, 0xd6, 0xc9, 0x8d, 0xaa, 0x8f,
+ 0xe3, 0x42, 0xaf, 0xb8, 0xfe, 0xb9, 0x61, 0xf4, 0xae, 0x60, 0x6f, 0x16,
+ 0xf9, 0x6c, 0x94, 0x35, 0x6c, 0x4b, 0xaa, 0x05, 0xb3, 0xa9, 0x92, 0x88,
+ 0xc2, 0x95, 0x73, 0x72, 0x91, 0x69, 0x0c, 0x81, 0x01, 0xa9, 0x67, 0x32,
+ 0xb6, 0xb9, 0xa0, 0x3c, 0xf9, 0xfd, 0x99, 0x59, 0x5b, 0x5b, 0x45, 0xec,
+ 0x91, 0x7d, 0x74, 0xeb, 0x9a, 0x39, 0x25, 0xb6, 0xeb, 0xe1, 0x2f, 0x59,
+ 0x69, 0x9e, 0xfe, 0xfb, 0xe0, 0xe7, 0x11, 0x30, 0x83, 0x64, 0x8c, 0x51,
+ 0xcd, 0x1f, 0xf0, 0x6e, 0x57, 0x6e, 0x07, 0x93, 0x74, 0x34, 0xc9, 0xe4,
+ 0x70, 0xb9, 0x01, 0x00, 0xf4, 0xf3, 0xef, 0xae, 0x2b, 0x3d, 0x80, 0xbf,
+ 0xfa, 0xd7, 0x61, 0xa9, 0x43, 0xd6, 0xae, 0x5f, 0xb6, 0xeb, 0xdb, 0x77,
+ 0x0f, 0x9a, 0xd5, 0x51, 0x90, 0x1b, 0xf0, 0x81, 0x1b, 0x6a, 0x0c, 0x59,
+ 0x5a, 0x97, 0x44, 0x08, 0xa6, 0x8f, 0x87, 0xc4, 0x93, 0xc9, 0xf8, 0x4a,
+ 0x7f, 0xd2, 0x60, 0x5b, 0xfd, 0xf6, 0xec, 0x37, 0x26, 0xe7, 0x27, 0xb0,
+ 0xd2, 0x2b, 0x1d, 0x92, 0x70, 0x20, 0x4e, 0x77, 0xc2, 0xda, 0x79, 0x95,
+ 0xb1, 0x0d, 0x61, 0x08, 0x79, 0x0d, 0x98, 0xf0, 0x43, 0x8b, 0xe1, 0x0e,
+ 0x9a, 0xe2, 0x2a, 0x97, 0x1e, 0xbc, 0x51, 0xbb, 0x70, 0xff, 0x97, 0x17,
+ 0x01, 0xf5, 0x84, 0xd4, 0x7a, 0x61, 0xcd, 0xb4, 0xc3, 0x95, 0xb7, 0xab,
+ 0x68, 0xf3, 0x88, 0x77, 0xe5, 0x07, 0x13, 0x07, 0x27, 0x1c, 0x53, 0x81,
+ 0xe3, 0xb4, 0xfb, 0xb3, 0x95, 0x70, 0xde, 0x64, 0xf1, 0xaf, 0xe6, 0x84,
+ 0x2f, 0x88, 0xe5, 0x79, 0x4d, 0x8a, 0x7c, 0x7c, 0x27, 0x6d, 0xeb, 0x54,
+ 0x97, 0x36, 0xec, 0x75, 0xb9, 0x9c, 0x98, 0x05, 0xb6, 0x4c, 0x3a, 0x1e,
+ 0xcd, 0x4c, 0xa7, 0xbc, 0x56, 0x45, 0x76, 0x03, 0xdc, 0x2a, 0xbc, 0xb4,
+ 0x72, 0x62, 0xc7, 0x8a, 0x23, 0xa8, 0x1d, 0xba, 0xeb, 0xc4, 0x14, 0x12,
+ 0x4d, 0xc5, 0x65, 0x6d, 0x46, 0x42, 0x85, 0x62, 0xe8, 0x40, 0x32, 0x1e,
+ 0x37, 0x8c, 0x6d, 0xe1, 0x0d, 0x0a, 0x4c, 0x4f, 0x64, 0x94, 0x3e, 0x23,
+ 0x95, 0x0d, 0xc8, 0x33, 0xd1, 0x06, 0x46, 0xcd, 0xae, 0xfc, 0x51, 0xa1,
+ 0x79, 0x00, 0xb4, 0x83, 0xb6, 0xf5, 0xad, 0x87, 0xf6, 0x83, 0xbc, 0xde,
+ 0x6d, 0x34, 0x6d, 0x57, 0x00, 0x1f, 0xfb, 0xf6, 0xa0, 0x93, 0x0f, 0xf5,
+ 0xbf, 0x16, 0x1f, 0x85, 0xd7, 0xb9, 0x5d, 0xda, 0x2e, 0x9c, 0x9e, 0x95,
+ 0xc5, 0x59, 0x13, 0xab, 0x17, 0x7b, 0x5b, 0xf6, 0x74, 0x7e, 0x40, 0xa3,
+ 0xfc, 0x19, 0x59, 0x4a, 0x2e, 0x23, 0xf6, 0x71, 0xc9, 0x45, 0x61, 0x78,
+ 0xa6, 0xe8, 0x0c, 0x34, 0x92, 0x2e, 0x5d, 0xe5, 0x2f, 0x50, 0x3a, 0x20,
+ 0xbc, 0xdf, 0xab, 0xf7, 0xf1, 0x47, 0x79, 0xd8, 0x0a, 0x54, 0x96, 0x39,
+ 0x6a, 0x58, 0xba, 0x2c, 0x26, 0x7a, 0x27, 0xda, 0xd8, 0xac, 0xf2, 0xcd,
+ 0x52, 0x9a, 0xaf, 0x87, 0x55, 0x54, 0x84, 0xd0, 0xe2, 0xe8, 0xc6, 0xbe,
+ 0x8c, 0x81, 0x87, 0x83, 0x09, 0xc3, 0x32, 0xca, 0x18, 0x40, 0x45, 0x52,
+ 0x29, 0xc0, 0x3f, 0xe5, 0xbc, 0xd3, 0xde, 0x50, 0x92, 0xc4, 0x64, 0xcd,
+ 0x57, 0x72, 0x0b, 0xd2, 0x21, 0xec, 0x20, 0x93, 0x3a, 0x64, 0xa6, 0xa2,
+ 0x51, 0x3e, 0x9f, 0x00, 0xef, 0x67, 0xf2, 0xe3, 0x25, 0x3d, 0xa9, 0x2a,
+ 0xdd, 0xdd, 0x79, 0xe7, 0x79, 0x07, 0x93, 0x7c, 0x28, 0xe3, 0x0a, 0x3f,
+ 0x1e, 0xfb, 0x7f, 0x55, 0xa7, 0x1f, 0x99, 0xb9, 0x57, 0xfe, 0x53, 0xf4,
+ 0x26, 0xf2, 0x8f, 0x6f, 0x1c, 0x90, 0x6c, 0xe5, 0x98, 0x14, 0x3a, 0x24,
+ 0x96, 0x89, 0x52, 0x07, 0xd8, 0xb6, 0x45, 0xc8, 0x77, 0x39, 0xa3, 0x9b,
+ 0xce, 0x64, 0x99, 0x2f, 0x06, 0x23, 0xc9, 0xbc, 0xc0, 0x11, 0x1e, 0xe3,
+ 0x80, 0xab, 0xbd, 0x38, 0xfb, 0xd5, 0xcb, 0xcb, 0xc8, 0x7b, 0x09, 0x1f,
+ 0x44, 0xb6, 0x98, 0x26, 0x79, 0xbc, 0xa1, 0xfa, 0x7e, 0x79, 0x67, 0x40,
+ 0xf0, 0x71, 0xa9, 0xcf, 0x7c, 0x18, 0x22, 0x53, 0x72, 0xb0, 0x8f, 0xc8,
+ 0xfe, 0xad, 0xd5, 0x5d, 0x2b, 0xe2, 0xf1, 0xbc, 0x5d, 0x6a, 0x40, 0x4a,
+ 0x2a, 0xdd, 0x70, 0x6c, 0x03, 0x28, 0xe9, 0x87, 0x7c, 0x27, 0x5d, 0x6e,
+ 0xa1, 0xe7, 0x5f, 0x05, 0x5a, 0x45, 0xa8, 0x8d, 0xac, 0xc7, 0xcd, 0x1c,
+ 0x0d, 0x6c, 0x2d, 0x89, 0xf8, 0x38, 0xf3, 0x26, 0xeb, 0x21, 0xd8, 0x29,
+ 0xd4, 0x83, 0xad, 0x25, 0x5c, 0xf3, 0xc0, 0xf1, 0xe0, 0xfe, 0x81, 0x6f,
+ 0x18, 0xb7, 0x73, 0xe6, 0x0c, 0x00, 0x45, 0x02, 0x00, 0x00, 0xb5, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0b, 0x00, 0x05, 0x10, 0x24,
+ 0x00, 0x18, 0x00, 0x6f, 0xad, 0x11, 0x60, 0xcc, 0xba, 0x5b, 0x45, 0x48,
+ 0x81, 0xa5, 0x57, 0xf9, 0xd7, 0x37, 0x31, 0x29, 0x5c, 0xd0, 0xc6, 0x51,
+ 0x69, 0x2b, 0xe2, 0xf5, 0x1d, 0x18, 0x86, 0xcd, 0x51, 0x33, 0x46, 0x12,
+ 0x27, 0x21, 0x4a, 0x62, 0x00, 0x61, 0x13, 0x10, 0x89, 0x19, 0xa3, 0xe4,
+ 0x3d, 0xec, 0x8b, 0xcb, 0xcc, 0x86, 0x2a, 0xac, 0xb2, 0x38, 0x67, 0x30,
+ 0x7b, 0x60, 0xb5, 0x90, 0x0d, 0x00, 0x44, 0x1b, 0xab, 0x78, 0xb4, 0xe7,
+ 0x37, 0xbe, 0x61, 0x56, 0x02, 0x10, 0x2c, 0xaf, 0x0d, 0xfd, 0x3e, 0xf4,
+ 0x03, 0x4a, 0xdf, 0xbc, 0x3b, 0x56, 0x3d, 0x69, 0x9e, 0x77, 0x11, 0x49,
+ 0x1a, 0x98, 0x61, 0x1e, 0xfa, 0x49, 0x81, 0xfe, 0xf8, 0x74, 0x35, 0xc0,
+ 0x68, 0x35, 0x86, 0xe4, 0xce, 0x4d, 0xa9, 0xc3, 0xbb, 0xbc, 0x50, 0x78,
+ 0x05, 0xbb, 0xfd, 0xb2, 0xda, 0x50, 0x08, 0x4a, 0x08, 0xd3, 0x79, 0x1c,
+ 0xb5, 0x68, 0x08, 0xad, 0xd7, 0x5a, 0x9a, 0xc0, 0x76, 0x47, 0x3f, 0x67,
+ 0xc4, 0x71, 0xaa, 0x77, 0x99, 0x91, 0x41, 0x7e, 0x91, 0x4d, 0x58, 0x03,
+ 0x38, 0x43, 0x71, 0x15, 0xb7, 0x24, 0x4c, 0xba, 0x4b, 0xe1, 0x11, 0xba,
+ 0x32, 0xda, 0xdc, 0x52, 0xb8, 0xfb, 0x65, 0xf7, 0x6a, 0x87, 0x1e, 0xd9,
+ 0x9a, 0x66, 0x40, 0xf2, 0xf5, 0xa3, 0xb3, 0xe9, 0x00, 0x82, 0x75, 0x6b,
+ 0xc7, 0x36, 0x41, 0xe6, 0x6d, 0x8f, 0x7f, 0xaa, 0x01, 0x04, 0x2d, 0x7d,
+ 0x47, 0x51, 0xa9, 0x3c, 0x7c, 0xef, 0x2f, 0x80, 0x03, 0x8a, 0x35, 0x64,
+ 0x7e, 0xa5, 0x70, 0xcd, 0xcd, 0x98, 0x19, 0xe4, 0xde, 0x65, 0x50, 0x3f,
+ 0x51, 0x92, 0x57, 0x4f, 0x49, 0x1d, 0x4c, 0xa7, 0x3b, 0xf4, 0x0d, 0x8f,
+ 0xdd, 0xb8, 0xb6, 0x08, 0x70, 0xd3, 0xee, 0x97, 0x9e, 0x71, 0xfb, 0x75,
+ 0xee, 0xaa, 0xb9, 0x36, 0xb9, 0x29, 0xc5, 0x1a, 0xae, 0xa2, 0x74, 0x7c,
+ 0x94, 0xd1, 0x1b, 0x58, 0x7f, 0x94, 0x19, 0xc8, 0xc2, 0xe5, 0x0f, 0x98,
+ 0xb7, 0xd4, 0x82, 0xec, 0x5c, 0x11, 0x0f, 0xe5, 0x82, 0xd1, 0xe0, 0x4a,
+ 0x1d, 0x4b, 0xe1, 0x76, 0x53, 0x08, 0x4c, 0x46, 0xc5, 0x12, 0x36, 0x98,
+ 0xd2, 0x7b, 0x91, 0x18, 0xd3, 0x54, 0x90, 0xb2, 0xf7, 0xba, 0xc3, 0x09,
+ 0x4d, 0xe4, 0xa1, 0x56, 0x34, 0x39, 0x6c, 0x30, 0x72, 0x7a, 0x6b, 0xcf,
+ 0xde, 0xcb, 0xc3, 0x06, 0xc1, 0x2b, 0x0d, 0xdb, 0x52, 0xaa, 0xa3, 0x1c,
+ 0xe8, 0xb1, 0x0f, 0x44, 0x84, 0x13, 0xc1, 0x76, 0xcf, 0x87, 0xcc, 0x31,
+ 0x35, 0x4f, 0x69, 0xc9, 0xea, 0x02, 0xa2, 0x30, 0xeb, 0xc4, 0xfe, 0xe8,
+ 0x9c, 0x94, 0x1f, 0x3e, 0xf9, 0xfe, 0x36, 0xa9, 0xa2, 0xe4, 0x25, 0xf6,
+ 0x75, 0x87, 0x26, 0xdb, 0x2e, 0xc7, 0x0e, 0x49, 0x08, 0x48, 0xec, 0x7f,
+ 0xc6, 0x81, 0x4a, 0x60, 0x38, 0xc8, 0x9d, 0x8a, 0x80, 0x40, 0xa4, 0xad,
+ 0x29, 0xc2, 0xda, 0x5c, 0x8e, 0x16, 0xa9, 0xd6, 0x07, 0xdd, 0x86, 0x54,
+ 0x50, 0x35, 0x3c, 0x46, 0x20, 0xe6, 0x05, 0xe5, 0x16, 0xd0, 0x2c, 0xb1,
+ 0x9a, 0xc1, 0x0c, 0xdb, 0x20, 0x96, 0xb6, 0x7c, 0xfc, 0xa6, 0x45, 0x07,
+ 0x85, 0x73, 0xf9, 0x1d, 0xd3, 0x1e, 0xfb, 0x4a, 0xc9, 0x83, 0x57, 0x9b,
+ 0x0c, 0x4b, 0xe5, 0x2f, 0x69, 0xf2, 0xe8, 0x45, 0x36, 0x7b, 0x1a, 0x3f,
+ 0x01, 0x10, 0x46, 0x74, 0xfd, 0xf4, 0x3f, 0x55, 0x61, 0xd3, 0xc8, 0x5b,
+ 0x19, 0x65, 0x17, 0xd5, 0xe8, 0xa8, 0x4e, 0x4d, 0xb3, 0xc0, 0x62, 0x8f,
+ 0xe7, 0x8f, 0xf5, 0x7b, 0x18, 0xa4, 0x48, 0x82, 0x7a, 0x85, 0x42, 0x3b,
+ 0x44, 0x65, 0xa2, 0x6e, 0x7f, 0x12, 0x20, 0x08, 0x94, 0xd2, 0xaa, 0xbd,
+ 0x1a, 0xf9, 0x86, 0x12, 0xfa, 0xd5, 0x99, 0x00, 0xde, 0x98, 0x52, 0xf1,
+ 0x73, 0x4d, 0x92, 0xff, 0x3f, 0x92, 0xd5, 0x21, 0x9e, 0x68, 0x41, 0x99,
+ 0x14, 0x27, 0x6b, 0x09, 0x45, 0x9b, 0x3c, 0x28, 0xa4, 0x97, 0x91, 0x7e,
+ 0x97, 0x2b, 0x76, 0x3e, 0xe3, 0x00, 0x7f, 0x95, 0xdc, 0x78, 0xf1, 0x31,
+ 0x02, 0x9b, 0x02, 0xd1, 0x52, 0xcc, 0xf9, 0x67, 0x31, 0xc0, 0x8d, 0xbd,
+ 0x46, 0xad, 0xb8, 0x75, 0x80, 0x84, 0x4d, 0x08, 0x9f, 0xe0, 0x00, 0xdd,
+ 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1,
+ 0x0b, 0x00, 0x01, 0x10, 0x24, 0x00, 0x18, 0x00, 0x1a, 0x20, 0x8f, 0xd0,
+ 0x18, 0x4b, 0xc5, 0x5f, 0xd7, 0xc2, 0xad, 0x44, 0x3f, 0xe4, 0xd2, 0xa6,
+ 0xc0, 0xb5, 0x9b, 0x79, 0xaa, 0xef, 0x5b, 0x64, 0x8c, 0xb5, 0x49, 0x2a,
+ 0x15, 0xb2, 0x74, 0x06, 0xe0, 0x0e, 0x95, 0x8d, 0x9a, 0xa7, 0x54, 0xb5,
+ 0x37, 0xb4, 0x0a, 0xe8, 0xfc, 0xe2, 0x69, 0x8e, 0x99, 0xcd, 0x37, 0x3d,
+ 0x74, 0xc1, 0x9e, 0x1e, 0xad, 0x4f, 0x49, 0x92, 0x44, 0x0c, 0x03, 0x7c,
+ 0xa9, 0xa1, 0xde, 0x1c, 0x10, 0x82, 0xd2, 0x68, 0x2c, 0x01, 0x06, 0x2a,
+ 0xeb, 0x2d, 0xfc, 0x01, 0xf2, 0x75, 0xa9, 0x0a, 0x83, 0x32, 0xb5, 0xbe,
+ 0x80, 0x3b, 0x67, 0xdb, 0xdc, 0x52, 0x64, 0x2b, 0x22, 0x58, 0x1e, 0x06,
+ 0x6a, 0xf3, 0xf3, 0x48, 0x9f, 0xc0, 0xd4, 0x2e, 0x41, 0x5b, 0x17, 0x49,
+ 0xb1, 0x10, 0xad, 0x8a, 0xf0, 0xd5, 0x32, 0xfd, 0xb2, 0x18, 0x78, 0xf3,
+ 0x89, 0x1c, 0x12, 0x8c, 0x1e, 0xca, 0xbb, 0xc9, 0xb6, 0x3f, 0x68, 0x8e,
+ 0x24, 0x99, 0x91, 0xa6, 0x56, 0xf6, 0xe4, 0x96, 0x4f, 0x9d, 0xf7, 0x51,
+ 0x8d, 0x96, 0x11, 0x72, 0x9e, 0xdf, 0xf5, 0x93, 0xc8, 0xa6, 0x38, 0x4b,
+ 0x24, 0xab, 0xe4, 0x92, 0xa7, 0x02, 0x05, 0xcf, 0xa0, 0x8b, 0xa1, 0x6c,
+ 0xdb, 0x64, 0x74, 0xde, 0x94, 0xfb, 0xdf, 0xc2, 0x4e, 0xea, 0xbd, 0x7b,
+ 0x6e, 0xf8, 0x25, 0xfa, 0x1e, 0xcf, 0xa7, 0x7d, 0x52, 0xf3, 0x88, 0xbd,
+ 0x30, 0xff, 0xcb, 0x2c, 0xfa, 0x41, 0x48, 0x8b, 0x91, 0xea, 0x96, 0xf5,
+ 0x26, 0xfa, 0xf5, 0x0a, 0x33, 0x18, 0x7c, 0xb6, 0x1d, 0xaa, 0x5c, 0xc9,
+ 0x4b, 0x7a, 0xee, 0xbc, 0x5c, 0x0a, 0x91, 0x16, 0xb7, 0x3f, 0xc8, 0x0a,
+ 0x9a, 0xf7, 0x8a, 0xb4, 0x07, 0xba, 0xed, 0x0a, 0x8c, 0x8c, 0x44, 0x00,
+ 0xc4, 0x76, 0x40, 0x19, 0x6c, 0x20, 0xc0, 0x4c, 0xd2, 0xb4, 0x00, 0x46,
+ 0x7e, 0x26, 0xf1, 0x15, 0xc8, 0x32, 0xf4, 0x83, 0x74, 0xeb, 0x17, 0xa9,
+ 0xc0, 0x1b, 0x3a, 0x91, 0x23, 0x53, 0xa3, 0x18, 0xf8, 0x7a, 0xc0, 0xb5,
+ 0x62, 0xf5, 0xa8, 0x34, 0x8d, 0x17, 0x80, 0x40, 0x7b, 0x29, 0xfd, 0x6f,
+ 0x96, 0x6b, 0xae, 0x79, 0xab, 0xe4, 0x4d, 0x70, 0xfb, 0xc7, 0x68, 0x21,
+ 0x2e, 0x2b, 0xde, 0x10, 0x3b, 0x3a, 0xbc, 0x46, 0xe1, 0x2f, 0xb2, 0xc5,
+ 0xb9, 0x95, 0x0a, 0xf4, 0x62, 0x33, 0xbf, 0x33, 0x28, 0x59, 0x54, 0x8c,
+ 0x50, 0x96, 0xaa, 0xb2, 0xdb, 0xd1, 0x47, 0x6b, 0xe1, 0xff, 0xf6, 0xc4,
+ 0x2e, 0x1c, 0xf3, 0xcf, 0x56, 0x12, 0x31, 0x60, 0xe2, 0x43, 0x3c, 0x12,
+ 0x3c, 0x6a, 0x49, 0xee, 0xb6, 0x67, 0x90, 0xc6, 0xf7, 0x1e, 0xc6, 0x51,
+ 0x93, 0xd9, 0xf9, 0x49, 0xbb, 0x67, 0x09, 0x48, 0x20, 0x01, 0x1c, 0x1c,
+ 0xcd, 0x58, 0xad, 0x4c, 0xaf, 0x13, 0x83, 0xf5, 0x6a, 0x64, 0x6b, 0x1a,
+ 0x5b, 0x6f, 0x5a, 0x47, 0xe2, 0xdd, 0x67, 0xf4, 0xa5, 0xda, 0xdf, 0xc9,
+ 0x6f, 0xd2, 0x0f, 0x4d, 0xa0, 0x18, 0x03, 0x23, 0x61, 0x63, 0x34, 0x0d,
+ 0xd7, 0xab, 0x60, 0xfa, 0x6f, 0x20, 0xcf, 0xc0, 0x63, 0x39, 0x52, 0x20,
+ 0xfd, 0x89, 0x3f, 0xe7, 0x50, 0x41, 0x2d, 0x93, 0x72, 0xeb, 0x8b, 0xd6,
+ 0x4b, 0x61, 0x37, 0x55, 0x4e, 0x97, 0xe4, 0x5f, 0xa0, 0x4d, 0xce, 0xdf,
+ 0x44, 0x78, 0x89, 0x8a, 0x1e, 0x4a, 0x98, 0x49, 0x82, 0xcd, 0x08, 0x2c,
+ 0xe1, 0x3f, 0xd3, 0x00, 0x91, 0x57, 0x6b, 0x80, 0x19, 0x03, 0x00, 0x00,
+ 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x10, 0x00, 0x05,
+ 0x10, 0x24, 0x00, 0x18, 0xeb, 0x80, 0x04, 0x03, 0x5e, 0x13, 0xa0, 0xfc,
+ 0xe8, 0xfc, 0xc8, 0x89, 0xf9, 0xd5, 0xe8, 0x57, 0x78, 0xe9, 0xa6, 0xc2,
+ 0x6c, 0x01, 0x22, 0xfc, 0x88, 0x2f, 0x0c, 0x71, 0x1a, 0xc1, 0xee, 0x07,
+ 0xc3, 0xea, 0xbe, 0xd9, 0x05, 0x40, 0x9e, 0x16, 0x65, 0xd9, 0x16, 0x16,
+ 0x91, 0xa2, 0x11, 0xa7, 0xf9, 0x98, 0x3a, 0xe1, 0xa1, 0xd8, 0x7b, 0xf7,
+ 0x9b, 0x23, 0x82, 0xd6, 0xab, 0xff, 0x6e, 0x84, 0xf9, 0xc6, 0x33, 0xcb,
+ 0xdb, 0xbf, 0x57, 0x9a, 0xfc, 0x85, 0xb4, 0x7e, 0xe1, 0x87, 0x87, 0x0b,
+ 0x59, 0x6c, 0xb1, 0x5e, 0x77, 0x3c, 0x77, 0xc1, 0xd1, 0xca, 0x3f, 0x65,
+ 0xae, 0x75, 0x45, 0x01, 0x5e, 0x5f, 0x69, 0x3e, 0xab, 0x2e, 0x80, 0xe2,
+ 0xef, 0xb5, 0x1f, 0x36, 0x8d, 0xb0, 0x51, 0x32, 0x64, 0x45, 0xcd, 0x94,
+ 0xa4, 0x9a, 0x23, 0x01, 0x88, 0xcc, 0x20, 0xcb, 0x77, 0x36, 0x6a, 0xf4,
+ 0x91, 0x00, 0x3d, 0x88, 0xf7, 0xfc, 0x36, 0x5d, 0xd1, 0x2e, 0x91, 0xd5,
+ 0x90, 0x8c, 0x14, 0x3d, 0xab, 0xe7, 0xde, 0xa2, 0x89, 0xde, 0x4f, 0x70,
+ 0x9d, 0x6c, 0x0d, 0xf2, 0x73, 0xdd, 0x5e, 0xbb, 0xca, 0xe7, 0xcd, 0x46,
+ 0xc3, 0xc9, 0xb0, 0x65, 0x67, 0x7e, 0xc8, 0xc2, 0x5f, 0x9a, 0xc6, 0x68,
+ 0xdc, 0xc3, 0x42, 0x43, 0x74, 0xa6, 0x44, 0xe2, 0x13, 0xbf, 0xf9, 0xcb,
+ 0x8b, 0x6f, 0x1e, 0xdd, 0xaa, 0xe8, 0x49, 0x46, 0xfa, 0xd0, 0x15, 0x2a,
+ 0x63, 0xd7, 0x81, 0x47, 0xd3, 0x85, 0x72, 0x58, 0x25, 0xcb, 0x93, 0x7c,
+ 0x20, 0x4b, 0x05, 0xcd, 0xad, 0x2e, 0x6e, 0xfc, 0xda, 0xe2, 0x45, 0x48,
+ 0xb8, 0x14, 0x18, 0x02, 0x6a, 0x59, 0x61, 0x5c, 0x39, 0x49, 0xfc, 0xf3,
+ 0x0e, 0x9d, 0xa7, 0xa0, 0x6d, 0x9a, 0x12, 0xbe, 0xdf, 0x28, 0x6f, 0x4c,
+ 0x7e, 0x25, 0x60, 0xa8, 0xe6, 0xe0, 0x11, 0xe7, 0x43, 0x59, 0x1b, 0xa3,
+ 0x90, 0x2c, 0xe2, 0xb6, 0x1d, 0xe8, 0xce, 0xde, 0x6a, 0xf5, 0x5b, 0x25,
+ 0xdb, 0xa9, 0xf6, 0x2a, 0x1d, 0x87, 0x81, 0x61, 0x98, 0x1e, 0x11, 0xbb,
+ 0x5f, 0xb1, 0x3c, 0x4b, 0x19, 0x1f, 0x76, 0x6d, 0xe0, 0x2d, 0x77, 0x5d,
+ 0x36, 0x03, 0xb1, 0x90, 0xbf, 0xd2, 0xf1, 0x46, 0x0f, 0xac, 0x11, 0x14,
+ 0xb7, 0xf0, 0xa3, 0x7e, 0x29, 0xf5, 0x03, 0xb6, 0xba, 0xc3, 0x78, 0xf8,
+ 0x3b, 0x3f, 0xf3, 0x02, 0xa1, 0x93, 0x54, 0x9e, 0xf6, 0x8d, 0x0e, 0x88,
+ 0x5d, 0x67, 0x23, 0xbc, 0xa1, 0x13, 0x03, 0xeb, 0x44, 0xdd, 0x1e, 0x03,
+ 0x85, 0x16, 0xc9, 0x09, 0x23, 0x0a, 0x17, 0xbb, 0x04, 0xdd, 0x88, 0xa9,
+ 0xc2, 0x7d, 0x25, 0x2b, 0x45, 0x4d, 0x32, 0xc8, 0x13, 0x4e, 0x34, 0x32,
+ 0x5d, 0xe7, 0x9c, 0x0e, 0x58, 0x65, 0x6b, 0x12, 0xdd, 0xd1, 0xa7, 0xee,
+ 0x1e, 0x3b, 0x0f, 0x82, 0xdf, 0x33, 0x2d, 0x0d, 0x34, 0xd2, 0xf4, 0x6b,
+ 0x95, 0xb2, 0xaf, 0xac, 0xe6, 0x0a, 0x9e, 0xf1, 0x7e, 0x47, 0x46, 0x6b,
+ 0x07, 0x94, 0x70, 0xe9, 0xea, 0x8e, 0x33, 0x54, 0x0e, 0xe7, 0xe0, 0x1c,
+ 0xab, 0xb5, 0x80, 0x79, 0x12, 0xf4, 0xd8, 0x85, 0x5c, 0x2c, 0xfa, 0x80,
+ 0x30, 0x0f, 0xdd, 0xa9, 0x74, 0xb2, 0x00, 0xf7, 0xe5, 0x87, 0xf1, 0xa4,
+ 0xc6, 0x72, 0x06, 0x88, 0x02, 0x33, 0x43, 0xe1, 0x49, 0xba, 0xe6, 0x23,
+ 0xcf, 0xdf, 0x09, 0x3a, 0x8e, 0x32, 0x67, 0xf1, 0x8a, 0x2d, 0x70, 0xcd,
+ 0x4b, 0xa2, 0xd2, 0xda, 0x67, 0x60, 0x0c, 0x71, 0x22, 0x26, 0x7f, 0xa7,
+ 0xe2, 0xa9, 0x1f, 0x0c, 0xeb, 0x77, 0x10, 0xe9, 0x1a, 0xf0, 0x96, 0x05,
+ 0xa9, 0x29, 0x72, 0xe6, 0xb4, 0xee, 0x07, 0x78, 0x26, 0xa8, 0xb8, 0x00,
+ 0x66, 0x54, 0x22, 0x99, 0x55, 0xab, 0x98, 0x1e, 0xe7, 0xab, 0x54, 0x24,
+ 0x4a, 0x14, 0xfd, 0x2c, 0xbe, 0xb5, 0xf0, 0x15, 0x9d, 0xb8, 0xe9, 0xf1,
+ 0x29, 0xad, 0x69, 0x56, 0x08, 0xa8, 0xa5, 0xe5, 0x88, 0xd1, 0xff, 0xdc,
+ 0x3d, 0x81, 0x05, 0x0e, 0xd7, 0xa5, 0x19, 0xae, 0xf8, 0xd1, 0xb7, 0x2e,
+ 0x8e, 0x0c, 0x77, 0x30, 0x96, 0xe6, 0xe5, 0x3f, 0xc7, 0x68, 0x00, 0xe9,
+ 0xdf, 0x52, 0xf3, 0xbe, 0xd3, 0xf4, 0x70, 0xe1, 0x7b, 0x7a, 0xf4, 0x79,
+ 0x27, 0xc9, 0x45, 0xb7, 0x3d, 0x77, 0x61, 0xe8, 0x9c, 0xfd, 0x83, 0xc3,
+ 0x10, 0x45, 0xcc, 0x9d, 0xd1, 0x0c, 0x7c, 0xc7, 0x9a, 0xbf, 0x84, 0xaf,
+ 0x3a, 0xdf, 0x5f, 0x50, 0x8d, 0x8d, 0x0b, 0x80, 0xbd, 0xc1, 0x22, 0xfc,
+ 0x3f, 0x9b, 0xd8, 0x58, 0x05, 0x15, 0xf9, 0xed, 0xe4, 0x8c, 0xfd, 0x16,
+ 0x6a, 0x3c, 0xd3, 0xef, 0x0a, 0x90, 0xe1, 0xf1, 0x58, 0xc3, 0xae, 0x6f,
+ 0xc6, 0x01, 0x56, 0xce, 0x1c, 0x06, 0xe8, 0xee, 0xed, 0x56, 0x22, 0x11,
+ 0x49, 0xb6, 0xb7, 0x7e, 0xcc, 0x06, 0x63, 0x1d, 0x5e, 0x5d, 0x7b, 0xbd,
+ 0xe0, 0x55, 0x89, 0x06, 0xb3, 0x7e, 0xf2, 0xb3, 0x14, 0xe5, 0x93, 0x95,
+ 0x2f, 0xb1, 0x3f, 0x01, 0x7f, 0xa1, 0x30, 0xa8, 0xed, 0x73, 0xcf, 0xb3,
+ 0x54, 0xa0, 0xd2, 0x78, 0x49, 0x64, 0x26, 0x2d, 0x53, 0xc8, 0x23, 0x11,
+ 0x85, 0x87, 0x39, 0x89, 0xc0, 0xf8, 0xf9, 0xc1, 0x8e, 0x2b, 0x96, 0x57,
+ 0x82, 0xa4, 0x98, 0x95, 0x20, 0xca, 0x83, 0x0e, 0xfa, 0x41, 0x8e, 0x5d,
+ 0xb2, 0x9b, 0x16, 0xdf, 0x6b, 0xc6, 0x7f, 0x3e, 0x20, 0xa4, 0x83, 0x03,
+ 0x01, 0x28, 0xc9, 0x9e, 0xd5, 0x9f, 0xa3, 0x3e, 0xd5, 0x94, 0xda, 0x36,
+ 0x0a, 0xdf, 0xb3, 0x34, 0x56, 0x5b, 0x18, 0x85, 0xd3, 0x0e, 0x2f, 0x49,
+ 0xae, 0xfd, 0xa1, 0x13, 0x20, 0x79, 0xa8, 0x94, 0x81, 0x15, 0x98, 0x1f,
+ 0xa1, 0x72, 0x2e, 0xb7, 0xbc, 0x63, 0x9f, 0xfe, 0xc6, 0x75, 0xce, 0xb0,
+ 0x04, 0x2e, 0x57, 0xdc, 0x55, 0xa3, 0x45, 0x60, 0x00, 0x32, 0x02, 0x00,
+ 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0c, 0x00,
+ 0x01, 0x10, 0x24, 0x00, 0x18, 0x01, 0x57, 0xfe, 0x27, 0x62, 0xd4, 0xdc,
+ 0x5d, 0x12, 0xb8, 0x28, 0x0b, 0xa9, 0xa0, 0xca, 0x9d, 0xc2, 0xbf, 0x25,
+ 0xb8, 0xa6, 0x87, 0xcd, 0x73, 0x51, 0x3a, 0x43, 0xba, 0xaa, 0x00, 0xf5,
+ 0x51, 0x54, 0xea, 0x44, 0x2a, 0xff, 0x1a, 0xb5, 0x9b, 0x46, 0x13, 0xb9,
+ 0x31, 0x64, 0x31, 0x58, 0x10, 0x79, 0x02, 0xb2, 0x1d, 0x7a, 0x73, 0x0b,
+ 0xf2, 0xcb, 0xab, 0x4e, 0x82, 0x3b, 0xd4, 0x2a, 0x03, 0x43, 0x5d, 0xa3,
+ 0x66, 0x10, 0xf1, 0xc8, 0x5a, 0x95, 0x42, 0x51, 0x11, 0x1d, 0xe0, 0xf4,
+ 0xa3, 0x9e, 0xa0, 0xfe, 0xb6, 0x77, 0xbb, 0xb6, 0xa6, 0x7a, 0x91, 0x54,
+ 0x2a, 0xc0, 0x64, 0x4d, 0xcc, 0x5f, 0x00, 0x3c, 0x67, 0x20, 0xf9, 0x9c,
+ 0xb6, 0x01, 0xe3, 0x76, 0x06, 0xcf, 0xe7, 0x8c, 0xf2, 0x7a, 0xdd, 0x5e,
+ 0x77, 0x8f, 0xcf, 0xe9, 0xe2, 0xe5, 0x62, 0x91, 0xb6, 0xa2, 0x44, 0x54,
+ 0x78, 0xfe, 0xe3, 0xc5, 0x56, 0x21, 0x9a, 0x43, 0x40, 0x1f, 0xc9, 0x8d,
+ 0x34, 0x03, 0x5f, 0xfb, 0xe2, 0x40, 0x2b, 0x8c, 0x16, 0xa0, 0x3e, 0xfe,
+ 0x71, 0x99, 0xaf, 0x4f, 0x8e, 0x57, 0x88, 0xb4, 0x88, 0xcb, 0x01, 0xb2,
+ 0x37, 0x81, 0xbc, 0x5e, 0x25, 0x69, 0xd5, 0xe4, 0x97, 0x21, 0xbb, 0x8a,
+ 0xeb, 0x72, 0x94, 0x46, 0x7f, 0x07, 0xfe, 0x77, 0x41, 0xf1, 0x7e, 0x47,
+ 0xf6, 0x48, 0x29, 0x93, 0xe8, 0xff, 0x6c, 0x0a, 0x67, 0x00, 0xa2, 0x34,
+ 0xd0, 0x2d, 0x21, 0xb5, 0x7e, 0xdb, 0x1c, 0x60, 0xdf, 0x76, 0x8c, 0x49,
+ 0xc1, 0xd9, 0xc5, 0x4b, 0xfc, 0xba, 0x69, 0x4e, 0x0f, 0x9f, 0xf4, 0x36,
+ 0x57, 0x27, 0x1a, 0x35, 0xc5, 0x3c, 0x16, 0x49, 0x7d, 0x8a, 0x5e, 0x1c,
+ 0x86, 0xce, 0x43, 0x35, 0x93, 0x12, 0x48, 0xf9, 0x6c, 0xcb, 0x9c, 0x2d,
+ 0x2c, 0x18, 0x6f, 0x35, 0x7f, 0x65, 0x05, 0xa6, 0xb4, 0x5d, 0x32, 0x3e,
+ 0x4e, 0x3e, 0xb8, 0x3d, 0xff, 0x0a, 0x18, 0x22, 0xbf, 0x56, 0x91, 0x5b,
+ 0x55, 0xec, 0x7a, 0x11, 0x59, 0xca, 0xbd, 0xe9, 0x75, 0x6b, 0xd9, 0xa3,
+ 0x7a, 0x0a, 0x30, 0xa2, 0x5c, 0x3c, 0x30, 0xee, 0xa8, 0xb4, 0xd7, 0x16,
+ 0xcf, 0xdf, 0x0c, 0x84, 0xd3, 0xbf, 0x88, 0x8e, 0xd7, 0x3b, 0xdf, 0xf3,
+ 0x66, 0x19, 0x75, 0x0d, 0xf7, 0x88, 0xd2, 0x34, 0x29, 0x70, 0xb5, 0xa9,
+ 0xde, 0xc4, 0xb0, 0xd3, 0xb7, 0x42, 0xda, 0x67, 0x4f, 0xf9, 0xb5, 0x75,
+ 0x3f, 0xae, 0x6c, 0xa6, 0xb7, 0xf1, 0x61, 0x67, 0x27, 0x8d, 0xb8, 0x1a,
+ 0x6c, 0xc9, 0xcc, 0x22, 0xe6, 0x43, 0xd4, 0x1d, 0x8e, 0xbf, 0xbe, 0x8e,
+ 0x9b, 0x1e, 0x64, 0x67, 0xba, 0x43, 0x9e, 0x7b, 0x72, 0x5f, 0x32, 0xfe,
+ 0x60, 0x06, 0xdc, 0xb2, 0x4f, 0xb1, 0x5f, 0x0e, 0x79, 0xc1, 0xc3, 0xca,
+ 0x1b, 0x16, 0xfe, 0x07, 0xfc, 0xa4, 0x1a, 0x81, 0x45, 0xc8, 0x2f, 0x9c,
+ 0xe6, 0x4c, 0x9f, 0xdb, 0x4a, 0x66, 0x34, 0x4b, 0x94, 0x29, 0x12, 0xe5,
+ 0x4f, 0xc9, 0xf2, 0x8d, 0xe2, 0xd9, 0x2c, 0xa9, 0x5b, 0xa2, 0x0d, 0x14,
+ 0xd7, 0xde, 0xbc, 0x52, 0xd4, 0x01, 0x82, 0x6d, 0x70, 0x2e, 0x34, 0x24,
+ 0xc7, 0x93, 0x24, 0xc4, 0xd0, 0x90, 0x91, 0xb4, 0x9c, 0x0c, 0xc9, 0x9b,
+ 0x81, 0xb9, 0x95, 0xe9, 0x72, 0x6f, 0xfb, 0x23, 0x35, 0xa1, 0x05, 0xc8,
+ 0x2f, 0x9c, 0xd6, 0xe0, 0xcd, 0x78, 0xc2, 0xa4, 0xa0, 0x71, 0xb1, 0x79,
+ 0xfd, 0x94, 0x2b, 0x77, 0x26, 0xf7, 0xed, 0xef, 0x1b, 0x48, 0x20, 0x03,
+ 0xa2, 0x8e, 0x12, 0x27, 0x76, 0x78, 0x97, 0x59, 0xf1, 0x2c, 0xe4, 0x2e,
+ 0x1d, 0x3d, 0x00, 0x4a, 0x4a, 0x6c, 0xbe, 0xbc, 0x8a, 0xc6, 0x7d, 0xa2,
+ 0x8c, 0x0f, 0x5b, 0x55, 0xb1, 0x0f, 0x43, 0xb9, 0x9d, 0xe8, 0x42, 0x6a,
+ 0x93, 0x95, 0x0f, 0xfa, 0xaa, 0xc0, 0x8d, 0x26, 0xb2, 0x66, 0x6d, 0x95,
+ 0xc1, 0x8a, 0xfb, 0x68, 0x7f, 0xfc, 0x4b, 0x78, 0x26, 0x38, 0x1e, 0xb6,
+ 0xbe, 0xea, 0xe4, 0x32, 0x64, 0x20, 0x8d, 0x65, 0xe3, 0x1f, 0x17, 0x54,
+ 0xeb, 0xee, 0x2a, 0xd1, 0x6e, 0xa8, 0x00, 0x50, 0x03, 0x00, 0x00, 0xb9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x12, 0x00, 0x04, 0x10,
+ 0x1c, 0x14, 0x7b, 0x2c, 0xf1, 0x97, 0x9c, 0x51, 0x57, 0xff, 0x98, 0x9e,
+ 0x6c, 0xef, 0xc6, 0x72, 0x96, 0x7f, 0x47, 0x80, 0xf3, 0xa4, 0x80, 0x64,
+ 0xd2, 0x2a, 0x12, 0x06, 0x8d, 0x92, 0x71, 0xa7, 0x4f, 0xd5, 0xc6, 0xbe,
+ 0xf5, 0xab, 0x3a, 0xaf, 0x91, 0xe5, 0x07, 0x97, 0x5c, 0x2c, 0x6f, 0x4a,
+ 0x4a, 0x36, 0x3f, 0xbc, 0x79, 0xc6, 0x92, 0xb2, 0xf7, 0xa2, 0x13, 0x2e,
+ 0x80, 0x8b, 0xfe, 0xb3, 0x4d, 0xa5, 0xe7, 0x06, 0x0e, 0x95, 0x2a, 0xfb,
+ 0x2e, 0x14, 0x5b, 0xe3, 0x75, 0x38, 0x0e, 0x58, 0x74, 0x4c, 0xbb, 0x47,
+ 0xf6, 0x9d, 0xfa, 0x78, 0x4f, 0x3f, 0xc1, 0x32, 0xa0, 0x4b, 0xb4, 0x4d,
+ 0x34, 0xd0, 0x49, 0x4f, 0x22, 0x63, 0xd3, 0x72, 0x29, 0x52, 0x04, 0x27,
+ 0x96, 0x44, 0x6d, 0xa5, 0x4d, 0x7d, 0x3e, 0xb7, 0x9d, 0x96, 0xc2, 0xbe,
+ 0x00, 0x4e, 0xf9, 0xf8, 0x2f, 0x4a, 0x83, 0x4b, 0x10, 0x7a, 0x56, 0x5b,
+ 0x6f, 0xb9, 0x97, 0x5c, 0x9f, 0x71, 0x61, 0xab, 0x1d, 0x74, 0x60, 0x39,
+ 0xe9, 0xf0, 0x22, 0xa4, 0x67, 0x2c, 0x2a, 0x46, 0xd7, 0xe3, 0x14, 0xc8,
+ 0x97, 0x30, 0xf3, 0x85, 0x13, 0x1a, 0x58, 0xb2, 0xe6, 0x2b, 0xb3, 0xe6,
+ 0x75, 0x48, 0xff, 0x5b, 0xc0, 0xad, 0x1a, 0x9b, 0x74, 0x6d, 0x25, 0xfd,
+ 0x0d, 0x5c, 0x0e, 0x8f, 0xb9, 0x36, 0x7f, 0x1e, 0x46, 0x3c, 0x65, 0xcb,
+ 0x13, 0x27, 0x9e, 0xea, 0x1b, 0xb3, 0x9d, 0x8c, 0x78, 0x35, 0x0a, 0x79,
+ 0x3d, 0x71, 0x65, 0xde, 0x6e, 0x77, 0xf8, 0xc5, 0xe3, 0xc9, 0x7e, 0x45,
+ 0x6b, 0x8d, 0x75, 0x26, 0x20, 0x38, 0x16, 0x92, 0x8c, 0xc6, 0xd9, 0x30,
+ 0x6e, 0x8a, 0x31, 0xb1, 0xf9, 0x76, 0xab, 0xb4, 0xb0, 0x7c, 0x4b, 0xe9,
+ 0x8c, 0xa4, 0x3b, 0xd5, 0x6b, 0x3f, 0xb5, 0x61, 0x77, 0xe1, 0x4e, 0x27,
+ 0x7f, 0x65, 0x19, 0xd9, 0x4f, 0x10, 0xd8, 0xb3, 0x60, 0x2e, 0x74, 0x20,
+ 0xc5, 0x25, 0xff, 0xa8, 0xc9, 0x55, 0x4e, 0xf0, 0x03, 0x3e, 0xdd, 0x5f,
+ 0xd7, 0xc4, 0x9d, 0xc6, 0x5b, 0xfc, 0x4e, 0xb6, 0x06, 0xe4, 0x08, 0x1c,
+ 0xb2, 0x2a, 0x13, 0x1e, 0xb3, 0x1e, 0x5b, 0x67, 0x23, 0x5a, 0x64, 0xbd,
+ 0xd7, 0x88, 0xf2, 0x69, 0xd3, 0x44, 0xcb, 0xbe, 0x38, 0x02, 0xed, 0x9b,
+ 0xff, 0x06, 0x9a, 0x41, 0xf7, 0xec, 0xc1, 0xd1, 0x6e, 0xe0, 0x2b, 0xe4,
+ 0xda, 0x2f, 0xb8, 0x83, 0x00, 0xb2, 0xc6, 0x76, 0xaa, 0x89, 0xc4, 0x20,
+ 0x29, 0x1b, 0x67, 0xdb, 0x5f, 0xd2, 0xff, 0x80, 0xdc, 0xb0, 0x5a, 0x35,
+ 0x01, 0x44, 0x98, 0x2c, 0x38, 0x53, 0x1c, 0x4f, 0xab, 0x57, 0x37, 0xe7,
+ 0x8d, 0x5c, 0xe1, 0x74, 0x61, 0xad, 0x0c, 0x71, 0xb4, 0x78, 0xe6, 0xf7,
+ 0x73, 0x13, 0xb2, 0xe1, 0xa9, 0x38, 0x31, 0x83, 0x86, 0xbc, 0x94, 0x86,
+ 0x06, 0xc1, 0xbc, 0x44, 0xed, 0x6c, 0x8a, 0xbc, 0x0d, 0x4a, 0x39, 0x93,
+ 0x6b, 0xef, 0xe1, 0xf5, 0x1f, 0x47, 0x73, 0x87, 0x31, 0x68, 0x82, 0x98,
+ 0x3b, 0xd4, 0x2b, 0x99, 0x6f, 0xa7, 0xf4, 0x47, 0xbf, 0xc3, 0xe9, 0xb3,
+ 0x7f, 0xb0, 0x48, 0xa7, 0xb0, 0xd7, 0x27, 0xf0, 0xf2, 0xca, 0x3f, 0x24,
+ 0x97, 0xdb, 0x63, 0xe3, 0x83, 0x51, 0xdd, 0xcd, 0xe6, 0x71, 0x47, 0x02,
+ 0xba, 0x29, 0x7f, 0x4a, 0xde, 0x02, 0xd4, 0xa9, 0x8a, 0x23, 0xc0, 0xf6,
+ 0x10, 0x2b, 0x29, 0xb1, 0xd9, 0x61, 0x3a, 0x28, 0x60, 0x98, 0x68, 0xb7,
+ 0x61, 0xf7, 0x27, 0x06, 0xde, 0x2c, 0x32, 0x46, 0x48, 0xfe, 0x95, 0x8b,
+ 0xf0, 0x22, 0xe8, 0x06, 0x57, 0x9a, 0xbd, 0xbe, 0x4c, 0x9d, 0x9e, 0x88,
+ 0x95, 0x96, 0x00, 0xaf, 0x4f, 0xfc, 0xf9, 0x98, 0xa1, 0x5e, 0x68, 0x3b,
+ 0x51, 0xe3, 0x16, 0x9e, 0x6c, 0xdf, 0x53, 0x1b, 0x3c, 0xa7, 0xf8, 0xb5,
+ 0xd9, 0x51, 0xa1, 0x06, 0x81, 0xd3, 0x22, 0xcd, 0x93, 0x44, 0x25, 0x1b,
+ 0x19, 0xbb, 0x5d, 0xdb, 0xd3, 0x75, 0x64, 0x54, 0x28, 0xa8, 0x3b, 0x13,
+ 0xa8, 0xfe, 0x8c, 0x34, 0x24, 0x76, 0x2d, 0xcc, 0x21, 0x62, 0x70, 0xb3,
+ 0x10, 0x97, 0x28, 0xc6, 0x80, 0xb6, 0x92, 0x5b, 0xc4, 0x5d, 0xe4, 0xf0,
+ 0x40, 0xf2, 0x76, 0xd5, 0x7f, 0x4f, 0x4b, 0xb7, 0xa0, 0xc1, 0x82, 0xf1,
+ 0xca, 0x65, 0xc3, 0x8c, 0xa9, 0xa9, 0xfe, 0x68, 0x11, 0x4b, 0x97, 0x56,
+ 0x23, 0xe9, 0xc8, 0xc9, 0x60, 0x95, 0xca, 0x78, 0x80, 0x0c, 0x2d, 0x2c,
+ 0x2a, 0x1e, 0x4d, 0x40, 0x7b, 0xb8, 0xe0, 0xac, 0xa4, 0x9e, 0xd5, 0x9a,
+ 0xc5, 0x99, 0xe9, 0x34, 0x57, 0xcd, 0x69, 0x68, 0x5d, 0x6d, 0xe8, 0x90,
+ 0x1a, 0x1a, 0x20, 0xa1, 0x2e, 0x53, 0xa5, 0x56, 0xed, 0x8d, 0x57, 0x5d,
+ 0xa5, 0xa1, 0x9f, 0x94, 0xd2, 0xdb, 0x1c, 0x2b, 0x48, 0xa4, 0x32, 0xe7,
+ 0x0f, 0xc2, 0x6c, 0xa4, 0xf4, 0x8a, 0xa7, 0xe2, 0xa0, 0x93, 0x01, 0xd2,
+ 0xd2, 0xee, 0x22, 0xef, 0xde, 0xd4, 0xd7, 0x31, 0xe8, 0x8c, 0x3d, 0xae,
+ 0xd7, 0xf8, 0xce, 0x24, 0xbc, 0x27, 0xed, 0x19, 0x14, 0xb8, 0x0e, 0x0f,
+ 0x12, 0x1d, 0xa2, 0x61, 0x1a, 0xb1, 0x68, 0x5d, 0x91, 0x95, 0x0a, 0xb1,
+ 0x02, 0xcc, 0xd1, 0xcf, 0xae, 0x71, 0x5d, 0x91, 0xeb, 0x55, 0x75, 0x9d,
+ 0x77, 0x73, 0x06, 0x50, 0x3b, 0x22, 0xda, 0x4d, 0x50, 0x52, 0x76, 0x8f,
+ 0xff, 0xf2, 0xd7, 0x30, 0x4c, 0xaa, 0xa1, 0xea, 0x83, 0x87, 0xeb, 0xd3,
+ 0x86, 0x8f, 0xc0, 0xa7, 0x32, 0xed, 0xc7, 0xf8, 0x6c, 0x29, 0x22, 0x45,
+ 0x4e, 0x82, 0x03, 0xd1, 0x32, 0xf7, 0x63, 0x23, 0x82, 0x45, 0x5f, 0x22,
+ 0x55, 0x84, 0xc0, 0xbd, 0xa5, 0x00, 0x4a, 0xd4, 0x9e, 0x54, 0x76, 0x5e,
+ 0xb0, 0xec, 0x20, 0xef, 0x82, 0x7b, 0x8d, 0x8d, 0x1f, 0xe3, 0xa6, 0xa4,
+ 0x46, 0x51, 0xa4, 0xe3, 0x94, 0x80, 0x99, 0xaa, 0x22, 0xdd, 0xe6, 0xb1,
+ 0x69, 0x3b, 0xbd, 0x7a, 0xbf, 0x86, 0x27, 0xbe, 0x0b, 0xf2, 0x84, 0xbe,
+ 0x8f, 0x32, 0x29, 0x70, 0x70, 0xa3, 0x2a, 0xd0, 0x63, 0xf3, 0xe7, 0x92,
+ 0x6b, 0xe0, 0x0b, 0xab, 0xd2, 0x56, 0xd5, 0x0b, 0xd7, 0xd0, 0xdd, 0x1f,
+ 0xf9, 0x34, 0x01, 0x70, 0x52, 0xc5, 0x8f, 0x25, 0xc5, 0x06, 0xe1, 0x6f,
+ 0x6d, 0x5a, 0xc0, 0x2c, 0x02, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x0d, 0x00, 0x01, 0x10, 0x24, 0x00, 0x1e, 0xed,
+ 0xd0, 0x1e, 0x56, 0x1f, 0x18, 0x32, 0x7e, 0x77, 0xe8, 0x8b, 0xa6, 0xb1,
+ 0x01, 0x0c, 0x9d, 0x7d, 0x6c, 0xe7, 0x60, 0xb5, 0x2a, 0x34, 0x87, 0x9d,
+ 0x40, 0xe5, 0x62, 0xf5, 0x54, 0x9d, 0xde, 0x76, 0xb9, 0x02, 0xe4, 0xb0,
+ 0x92, 0x37, 0xe6, 0x86, 0x6b, 0x0b, 0xd7, 0x0a, 0x19, 0xfe, 0x13, 0xfa,
+ 0x8e, 0x79, 0xf7, 0x4f, 0xee, 0x5d, 0x95, 0x57, 0x72, 0x65, 0x8f, 0xaf,
+ 0x14, 0xcc, 0xfb, 0x8c, 0x96, 0x62, 0x52, 0x00, 0x0b, 0x1c, 0xa5, 0xc0,
+ 0x73, 0xd1, 0xb4, 0x83, 0xbd, 0x4a, 0x06, 0x62, 0xb2, 0x08, 0x03, 0xe0,
+ 0x12, 0xfa, 0x5f, 0x1b, 0x0c, 0x01, 0xc9, 0xb5, 0x39, 0x88, 0x74, 0xa8,
+ 0x4a, 0xa4, 0x3a, 0x9e, 0x95, 0xfe, 0x4c, 0xb8, 0x98, 0x6e, 0xfd, 0x81,
+ 0xe3, 0x73, 0x16, 0xbb, 0x79, 0x13, 0x73, 0x48, 0xb8, 0x7e, 0x0f, 0xd5,
+ 0x7b, 0x96, 0xac, 0xf7, 0xcb, 0xfb, 0x91, 0x98, 0xdd, 0xea, 0x72, 0x38,
+ 0xf4, 0x8c, 0xc3, 0x5e, 0x5b, 0x75, 0x0d, 0x29, 0x19, 0x96, 0x98, 0x12,
+ 0x79, 0x63, 0x16, 0xd4, 0xe0, 0xb6, 0x94, 0x7f, 0x8d, 0x64, 0x52, 0x93,
+ 0xd1, 0xfb, 0x9c, 0x60, 0x94, 0x32, 0x3c, 0x5f, 0x38, 0x2f, 0xd8, 0xab,
+ 0xb4, 0xee, 0x76, 0x1f, 0xfd, 0x32, 0x70, 0xd4, 0xb7, 0xa4, 0xb1, 0xa4,
+ 0x4e, 0x35, 0xc3, 0xd7, 0xfc, 0x86, 0x54, 0x8e, 0x4d, 0x0e, 0xd4, 0xdc,
+ 0x5f, 0xfd, 0x8a, 0xda, 0x17, 0x36, 0x20, 0x92, 0x84, 0x1f, 0x0b, 0xdc,
+ 0x5f, 0xff, 0xbe, 0x8d, 0xc6, 0x77, 0xcf, 0x43, 0xd6, 0xe7, 0x92, 0x52,
+ 0x8b, 0xe4, 0x90, 0x3f, 0xd4, 0xa5, 0x87, 0x1b, 0xe0, 0xbd, 0xe9, 0x8d,
+ 0xf1, 0x75, 0xb3, 0xd4, 0xb6, 0xf8, 0x37, 0xc2, 0xff, 0xc8, 0xf7, 0x90,
+ 0xec, 0x50, 0x78, 0x4f, 0x32, 0x74, 0xb4, 0x7f, 0x7f, 0xbd, 0x27, 0xd8,
+ 0x82, 0xa9, 0x3a, 0x4f, 0xef, 0x89, 0xef, 0x29, 0xec, 0x14, 0xde, 0xfd,
+ 0x61, 0x34, 0x6e, 0xf0, 0x61, 0x02, 0x12, 0xc7, 0x8e, 0x74, 0x04, 0x8a,
+ 0xd6, 0xb3, 0xff, 0x48, 0x85, 0x57, 0x25, 0xe5, 0x59, 0x16, 0x8e, 0x7f,
+ 0xe1, 0x7d, 0x9f, 0x16, 0xfb, 0x4e, 0x45, 0x16, 0x46, 0x9c, 0xb2, 0x10,
+ 0x5c, 0x31, 0xc2, 0xc6, 0x16, 0xce, 0x6d, 0xc4, 0xa6, 0xc9, 0x66, 0x3d,
+ 0x06, 0x43, 0x9c, 0x0f, 0xba, 0x2c, 0x26, 0xa5, 0x9f, 0xc0, 0x72, 0xca,
+ 0xea, 0xb8, 0xd2, 0x35, 0xc7, 0x60, 0x44, 0x21, 0x37, 0xd0, 0xb6, 0x18,
+ 0x42, 0x14, 0x4a, 0x70, 0xfa, 0x75, 0x6a, 0x58, 0x49, 0x15, 0x40, 0x0e,
+ 0xae, 0xea, 0xcb, 0xd9, 0x83, 0x49, 0xfc, 0xd2, 0xa4, 0x58, 0x50, 0x2e,
+ 0x95, 0x9c, 0x87, 0x0c, 0x33, 0xa1, 0xb9, 0x7c, 0xd9, 0xad, 0x90, 0xe7,
+ 0xe5, 0x4e, 0x97, 0xc8, 0x06, 0x2c, 0x7d, 0x5d, 0x8b, 0x0b, 0x09, 0x5d,
+ 0x95, 0xdf, 0xdf, 0x88, 0xbc, 0xe7, 0x4b, 0x27, 0x33, 0x19, 0x86, 0x50,
+ 0xac, 0xed, 0x64, 0x34, 0x03, 0x26, 0x74, 0x91, 0xa6, 0x21, 0x2a, 0x10,
+ 0xc7, 0x21, 0x77, 0xe5, 0xd3, 0x5b, 0x4b, 0x17, 0x44, 0x0d, 0x8c, 0xc2,
+ 0x37, 0x51, 0x57, 0x5f, 0x21, 0x66, 0xa8, 0xc8, 0x0b, 0xdf, 0x91, 0xaa,
+ 0x96, 0xb9, 0xaf, 0x7d, 0x38, 0x81, 0x4f, 0x46, 0x35, 0x8d, 0xe4, 0x6c,
+ 0xf4, 0x2c, 0x19, 0x40, 0xe5, 0xd6, 0x45, 0xea, 0x2b, 0x27, 0x11, 0x9b,
+ 0xd5, 0x91, 0xe7, 0x16, 0x5d, 0x05, 0x43, 0x0b, 0xc1, 0x34, 0xd3, 0x53,
+ 0xd3, 0x9a, 0xfd, 0x35, 0x82, 0xfb, 0x5e, 0x85, 0x2c, 0xf5, 0x5c, 0x08,
+ 0x49, 0x06, 0x70, 0xce, 0x66, 0xb2, 0x02, 0xd2, 0x91, 0x4a, 0xf4, 0xf3,
+ 0xb6, 0x41, 0x60, 0xfe, 0x2a, 0x3d, 0x0c, 0x16, 0x9d, 0x04, 0x81, 0x70,
+ 0x51, 0xab, 0xc5, 0xa6, 0x1d, 0x90, 0x46, 0xbf, 0xa6, 0x6e, 0x8b, 0xe6,
+ 0xd0, 0x95, 0xb0, 0x13, 0xce, 0x8e, 0x5e, 0x2c, 0x44, 0xa0, 0x8d, 0xf9,
+ 0x4e, 0x09, 0xf3, 0x58, 0xd8, 0x47, 0x35, 0x78, 0x64, 0x7b, 0xa4, 0x79,
+ 0xa2, 0x08, 0x3e, 0x4d, 0x16, 0xa4, 0x00, 0x11, 0x02, 0x00, 0x00, 0xbb,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0c, 0x00, 0x03, 0x10,
+ 0x24, 0x00, 0x18, 0x01, 0x39, 0x98, 0x56, 0xf2, 0x2e, 0xda, 0x91, 0x44,
+ 0x1c, 0x6f, 0x49, 0x33, 0x97, 0xdd, 0x05, 0xab, 0x20, 0x32, 0xf7, 0xeb,
+ 0x01, 0xcf, 0x2d, 0xdc, 0xc6, 0xd7, 0x2f, 0xbd, 0xef, 0x50, 0xab, 0x9f,
+ 0x33, 0x98, 0x19, 0xec, 0x79, 0xff, 0x05, 0xec, 0x09, 0x58, 0x43, 0x7e,
+ 0x85, 0xcc, 0xf9, 0xf6, 0x4a, 0x61, 0x22, 0xf2, 0xba, 0x28, 0x11, 0x62,
+ 0x31, 0x0b, 0xfd, 0x0c, 0x78, 0x03, 0x69, 0xec, 0x1a, 0xeb, 0xe8, 0x92,
+ 0x0e, 0xb7, 0x83, 0xd9, 0xab, 0x6f, 0xc0, 0x3e, 0xf6, 0x98, 0x08, 0x20,
+ 0x48, 0x88, 0x24, 0x6d, 0x4f, 0xff, 0x9b, 0x02, 0x08, 0xb5, 0xbe, 0xb0,
+ 0xd8, 0x40, 0x40, 0x98, 0x63, 0xa8, 0xa4, 0x34, 0x92, 0xd3, 0xd5, 0x8c,
+ 0xa7, 0xcd, 0x9d, 0x71, 0xc0, 0x65, 0xee, 0xa3, 0xf6, 0x08, 0xc4, 0xf7,
+ 0x2d, 0xc5, 0x86, 0xd2, 0x0d, 0x39, 0xd8, 0xa8, 0xc8, 0xe5, 0x03, 0x22,
+ 0xba, 0x22, 0x2f, 0x26, 0x21, 0x1c, 0x73, 0x45, 0x2e, 0x91, 0x1f, 0x22,
+ 0x47, 0x9a, 0xdc, 0x40, 0xfd, 0xa8, 0xbb, 0x70, 0x6c, 0x4a, 0x0d, 0x44,
+ 0x3d, 0xae, 0xde, 0x05, 0x99, 0xcb, 0x25, 0xf6, 0x8c, 0x15, 0xe7, 0x93,
+ 0x31, 0x7a, 0x8c, 0x3f, 0x5c, 0xa2, 0x17, 0x62, 0x3a, 0x12, 0x8e, 0x00,
+ 0xbd, 0xd9, 0x8c, 0x80, 0x26, 0x6f, 0x49, 0x12, 0x26, 0xf0, 0x3e, 0x95,
+ 0x6a, 0x0f, 0x45, 0x4c, 0x22, 0x76, 0xc9, 0xe5, 0xdf, 0xf2, 0x4d, 0xb7,
+ 0xef, 0x84, 0xca, 0x27, 0xa6, 0x5c, 0xce, 0x26, 0x68, 0x6b, 0x16, 0x5a,
+ 0x3b, 0xe4, 0xfb, 0xe1, 0x91, 0x35, 0xaa, 0x02, 0x97, 0x7f, 0xf7, 0xcc,
+ 0xe2, 0xa5, 0xd3, 0xbd, 0x5a, 0x67, 0x85, 0xff, 0xe7, 0x78, 0x57, 0xdd,
+ 0xf7, 0xe2, 0x85, 0x03, 0xf3, 0xd6, 0x82, 0x90, 0x51, 0xdf, 0xbe, 0x98,
+ 0xd2, 0x8c, 0xfe, 0xa0, 0x63, 0xf9, 0xf6, 0xff, 0x16, 0xfa, 0x2c, 0xae,
+ 0x3a, 0xef, 0x83, 0x2a, 0x61, 0xcc, 0xbc, 0xde, 0x69, 0x1c, 0x19, 0x8a,
+ 0x4b, 0x25, 0xdf, 0x96, 0x4f, 0xa5, 0xe2, 0x02, 0x22, 0x45, 0x72, 0x7f,
+ 0x96, 0x75, 0x2d, 0xb1, 0xe2, 0x71, 0x0e, 0x26, 0x19, 0xa7, 0xfb, 0xe9,
+ 0x14, 0x38, 0x5e, 0x1d, 0x87, 0x48, 0x8a, 0x97, 0x9f, 0xac, 0x25, 0x5b,
+ 0x76, 0x95, 0x5e, 0x43, 0x54, 0xa5, 0x8a, 0x67, 0x17, 0xfb, 0x77, 0x98,
+ 0xb5, 0x4d, 0xd9, 0xf9, 0x78, 0x9b, 0x6d, 0xb0, 0x65, 0xbb, 0x76, 0xf3,
+ 0x23, 0x76, 0x62, 0x8b, 0x04, 0x4f, 0x1d, 0x2a, 0xb1, 0x8d, 0x42, 0x82,
+ 0x91, 0xe4, 0x7e, 0x62, 0x9c, 0x1f, 0xf1, 0x22, 0xc3, 0x64, 0xce, 0x3e,
+ 0x8c, 0x83, 0x1f, 0x5d, 0x5a, 0x87, 0x56, 0x48, 0xc8, 0x4f, 0xf6, 0x53,
+ 0x69, 0x53, 0x5d, 0xcf, 0xc2, 0xc5, 0xa5, 0xfa, 0xff, 0x35, 0xfb, 0x81,
+ 0x73, 0xf1, 0x0c, 0x11, 0x47, 0xbc, 0x27, 0xdb, 0x85, 0xcd, 0x67, 0xa5,
+ 0x1d, 0x9f, 0xfe, 0x45, 0x9b, 0xba, 0x48, 0x0e, 0x13, 0x7f, 0x3d, 0x4e,
+ 0xa4, 0x32, 0x13, 0xfa, 0x2e, 0xc6, 0xd1, 0xbc, 0x07, 0xe4, 0x3b, 0x2d,
+ 0xd2, 0xae, 0x69, 0xab, 0xdf, 0x89, 0xc0, 0xb6, 0x71, 0x51, 0xed, 0x9e,
+ 0x1c, 0xb6, 0x8d, 0x36, 0x45, 0xe7, 0x5a, 0x91, 0x07, 0x26, 0xa6, 0x0d,
+ 0x33, 0x7a, 0x5d, 0x51, 0x92, 0x49, 0x65, 0x20, 0xb2, 0x6f, 0xd2, 0x50,
+ 0xcf, 0x19, 0xaa, 0xb7, 0x0e, 0xc0, 0x73, 0x0e, 0xbc, 0xe6, 0xa2, 0xf9,
+ 0xec, 0x67, 0x5f, 0x46, 0xc8, 0x3a, 0xa3, 0x2e, 0x19, 0xee, 0x38, 0x39,
+ 0x30, 0x46, 0x3a, 0x02, 0x47, 0xfe, 0x73, 0xb4, 0x26, 0x32, 0x01, 0xfe,
+ 0x46, 0x1f, 0x41, 0x6d, 0x23, 0x52, 0x84, 0x44, 0x05, 0xc7, 0xe4, 0x42,
+ 0x20, 0x3b, 0x42, 0x0d, 0x06, 0x29, 0x1f, 0xcd, 0x07, 0x82, 0x62, 0x21,
+ 0x55, 0xc2, 0xcb, 0x0b, 0x4d, 0xae, 0x9c, 0xb0, 0xef, 0x01, 0x00, 0x00,
+ 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0a, 0x00, 0x01,
+ 0x10, 0x24, 0x00, 0x18, 0x01, 0x18, 0x83, 0x39, 0xed, 0x71, 0x8b, 0xa1,
+ 0xc0, 0x52, 0x45, 0x68, 0x86, 0x6b, 0xc9, 0xac, 0xa6, 0x27, 0xc6, 0xce,
+ 0x3d, 0xec, 0x2d, 0xf2, 0x06, 0x21, 0xb5, 0x5a, 0x95, 0xba, 0x9e, 0x4b,
+ 0xbb, 0x4e, 0xe3, 0xd2, 0x33, 0x81, 0xde, 0x34, 0xa4, 0xe6, 0x5b, 0xd1,
+ 0x20, 0x5a, 0x45, 0x9b, 0xca, 0x87, 0xd2, 0xec, 0xdf, 0x8f, 0x28, 0xd4,
+ 0xe1, 0x55, 0x80, 0x42, 0xff, 0xde, 0x45, 0x62, 0x80, 0xcf, 0xfe, 0x7c,
+ 0x6f, 0x08, 0xf9, 0x84, 0x37, 0xd2, 0x00, 0x98, 0x63, 0xfc, 0x40, 0xa0,
+ 0xf3, 0x50, 0x5b, 0xb9, 0xc2, 0xd6, 0xcc, 0x07, 0x54, 0x89, 0xe3, 0x9c,
+ 0x95, 0xc3, 0xfb, 0x15, 0x53, 0x2b, 0x17, 0x4a, 0x4c, 0x91, 0x79, 0x04,
+ 0xc2, 0xd4, 0xc6, 0x84, 0xbd, 0x40, 0xbd, 0xbe, 0xc3, 0x19, 0x7f, 0x40,
+ 0x39, 0xd4, 0xb9, 0x48, 0x3f, 0xa6, 0xb6, 0x7c, 0xfc, 0x1c, 0x19, 0x93,
+ 0x54, 0xcf, 0x92, 0x39, 0x42, 0xa3, 0xe3, 0x19, 0x07, 0x5f, 0x56, 0x8d,
+ 0x84, 0xf0, 0xa0, 0x3b, 0x3e, 0x73, 0xc2, 0x7a, 0xe1, 0xb6, 0xfa, 0xde,
+ 0x14, 0xa9, 0xad, 0xf7, 0x7b, 0x2b, 0x70, 0x8f, 0x30, 0x45, 0x7f, 0xe9,
+ 0x80, 0x11, 0x15, 0xed, 0x56, 0xea, 0x3c, 0xac, 0x93, 0xcd, 0x93, 0x8b,
+ 0xb5, 0xb3, 0xf4, 0xe6, 0xcb, 0x85, 0x2d, 0xdb, 0x50, 0xb6, 0xc9, 0x44,
+ 0x66, 0x41, 0xb4, 0xf7, 0x74, 0x4f, 0x74, 0xba, 0xb3, 0xee, 0xb8, 0x8d,
+ 0x75, 0xbc, 0x32, 0xf4, 0xba, 0x0e, 0x79, 0x25, 0x4a, 0x13, 0x0c, 0x7f,
+ 0xc7, 0x5a, 0x55, 0xe9, 0x90, 0xae, 0x9d, 0xc8, 0x78, 0x6f, 0x2c, 0x31,
+ 0x17, 0xd3, 0x17, 0xe7, 0x2b, 0xd1, 0x5e, 0x09, 0x95, 0x2e, 0x7d, 0xbf,
+ 0x6b, 0xc3, 0xeb, 0x26, 0x7c, 0x9a, 0x3e, 0xc9, 0x48, 0x16, 0xf9, 0x87,
+ 0x05, 0x02, 0x71, 0x1a, 0x05, 0xb8, 0x86, 0x9c, 0x3a, 0x60, 0xcf, 0x6a,
+ 0x86, 0xbc, 0xb3, 0xd6, 0xe8, 0x9b, 0xed, 0x23, 0xc1, 0xe5, 0xcd, 0x1e,
+ 0x60, 0x15, 0x48, 0x17, 0xe9, 0x3b, 0xdb, 0xc2, 0x4c, 0xe2, 0x36, 0xb5,
+ 0xf7, 0xfc, 0x97, 0xcc, 0x3b, 0xb6, 0x15, 0xa2, 0x6d, 0x49, 0xce, 0x8c,
+ 0x5d, 0xf1, 0x9e, 0xf4, 0xdb, 0x54, 0x89, 0x67, 0x59, 0xdd, 0xb9, 0x20,
+ 0x3c, 0x97, 0xfc, 0x55, 0x01, 0x5c, 0xca, 0x82, 0x8a, 0x81, 0x0e, 0x4a,
+ 0x0c, 0x6b, 0xa8, 0x51, 0xb3, 0x5c, 0x21, 0x18, 0x37, 0x66, 0x03, 0x35,
+ 0x38, 0xea, 0xcc, 0x60, 0xf7, 0xf3, 0x28, 0xf0, 0x6b, 0xbd, 0xe2, 0xa4,
+ 0x09, 0x23, 0xf5, 0x83, 0xdd, 0xc2, 0xce, 0x70, 0xfb, 0xc4, 0xbe, 0xdd,
+ 0x00, 0x86, 0x27, 0x8b, 0x98, 0xf0, 0x24, 0x91, 0x3f, 0x5f, 0x2d, 0xe8,
+ 0x52, 0x7d, 0x1e, 0x08, 0xd1, 0x61, 0xad, 0x09, 0x0a, 0x23, 0x2b, 0xb9,
+ 0xb9, 0xda, 0x1c, 0x5e, 0xc5, 0x2a, 0xd6, 0x49, 0x7a, 0x05, 0xf8, 0x5a,
+ 0xb2, 0x16, 0xf6, 0x84, 0x53, 0xdb, 0x4b, 0x69, 0x26, 0x59, 0xef, 0xeb,
+ 0x16, 0xfb, 0x19, 0x14, 0x59, 0x3f, 0x80, 0xcd, 0x67, 0xbc, 0x3a, 0x31,
+ 0xf6, 0x0f, 0xc3, 0x9c, 0x92, 0xe9, 0xb2, 0xcc, 0x04, 0x29, 0xd5, 0xcc,
+ 0x6c, 0x33, 0xff, 0x6a, 0x54, 0x78, 0x0c, 0x6e, 0xdb, 0xd5, 0x93, 0x52,
+ 0x4b, 0x4e, 0xf8, 0xef, 0x2f, 0xb9, 0x3f, 0x72, 0x7e, 0xfb, 0x3a, 0xef,
+ 0xd6, 0x82, 0x85, 0xd6, 0x5f, 0x69, 0x15, 0x5d, 0xcf, 0xee, 0xda, 0xec,
+ 0xc6, 0xf2, 0xff, 0x52, 0x89, 0x66, 0x69, 0xb3, 0xe3, 0x10, 0xe4, 0xe0,
+ 0xe5, 0x29, 0x29, 0x19, 0x90, 0x72, 0xb0, 0xc6, 0x3f, 0x84, 0x00, 0x29,
+ 0x02, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
+ 0x0c, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x01, 0x15, 0x0f, 0xe4, 0xcd,
+ 0xb6, 0x09, 0xd5, 0x96, 0x65, 0xde, 0x7d, 0x18, 0x1c, 0x57, 0x54, 0x94,
+ 0x4a, 0x8b, 0x2c, 0x38, 0xe0, 0x90, 0x80, 0x84, 0x70, 0xe8, 0x09, 0x11,
+ 0xb8, 0xc5, 0xd8, 0x58, 0x26, 0xb1, 0x2d, 0x8e, 0xaa, 0x32, 0x2f, 0x6e,
+ 0xaa, 0x53, 0x0b, 0xb6, 0xeb, 0x35, 0xca, 0x91, 0x20, 0xb9, 0x01, 0x37,
+ 0xd2, 0x99, 0x02, 0x43, 0x06, 0x62, 0x44, 0x49, 0x27, 0xa7, 0x43, 0xa1,
+ 0x3b, 0xdb, 0x9d, 0x45, 0xc5, 0xa7, 0x64, 0x17, 0x30, 0xc3, 0xbc, 0xf8,
+ 0x29, 0x65, 0xcc, 0xc2, 0x19, 0x56, 0x10, 0x19, 0xb8, 0x37, 0xa1, 0xb2,
+ 0x94, 0xa8, 0x98, 0x5e, 0xe3, 0xec, 0x49, 0x8c, 0x70, 0x97, 0x12, 0x31,
+ 0x62, 0xc8, 0x8f, 0x50, 0xde, 0xfd, 0x7e, 0xa1, 0x93, 0xcb, 0xc8, 0x2f,
+ 0xe4, 0xaf, 0x2b, 0xcb, 0xcf, 0xba, 0x74, 0xfd, 0x90, 0x13, 0x5e, 0xa7,
+ 0xc1, 0x6f, 0x3f, 0x00, 0x3d, 0xe8, 0xb2, 0x78, 0xe5, 0x4f, 0x82, 0xcb,
+ 0x07, 0x36, 0x4b, 0x2c, 0x88, 0xd0, 0x40, 0xa5, 0xf5, 0xe9, 0xc6, 0xba,
+ 0x2b, 0x39, 0x41, 0xca, 0x80, 0x36, 0x25, 0xcf, 0x04, 0xf7, 0x40, 0xb1,
+ 0x72, 0x47, 0x92, 0x19, 0x0e, 0x86, 0xb7, 0x04, 0x80, 0x53, 0x97, 0x62,
+ 0x6b, 0x74, 0xb1, 0xea, 0x0b, 0x48, 0x7d, 0x6a, 0xff, 0x89, 0xad, 0xd3,
+ 0xbb, 0x58, 0xe5, 0xa2, 0xa9, 0x14, 0x1e, 0x10, 0x10, 0xd6, 0x7c, 0xa5,
+ 0x35, 0xd2, 0x62, 0x20, 0xfe, 0x90, 0x04, 0xaa, 0x34, 0x6e, 0xfd, 0x74,
+ 0xa6, 0xb5, 0x9f, 0xe4, 0x2b, 0x6b, 0x54, 0x94, 0x42, 0xc7, 0x2a, 0x88,
+ 0xef, 0x10, 0x6c, 0x64, 0x70, 0x47, 0x69, 0x8f, 0x93, 0x19, 0x7f, 0x15,
+ 0x53, 0x4f, 0x8e, 0x89, 0xe9, 0xe2, 0x03, 0x14, 0x1f, 0x6c, 0xe5, 0x5d,
+ 0x0a, 0xb9, 0x0b, 0xf1, 0x1a, 0x5a, 0x5e, 0x43, 0x36, 0x5e, 0x38, 0xa0,
+ 0x13, 0x72, 0x86, 0xdd, 0x45, 0xf6, 0x07, 0xb0, 0x48, 0x89, 0x08, 0xf8,
+ 0xd4, 0x08, 0x8c, 0xb0, 0x9e, 0xd6, 0xbd, 0x78, 0xd9, 0x98, 0xca, 0x2c,
+ 0x8c, 0xab, 0xab, 0x05, 0x5a, 0x2b, 0xec, 0xcc, 0xe5, 0x9b, 0x34, 0x91,
+ 0x39, 0x09, 0x28, 0x58, 0x1b, 0x8a, 0xa5, 0xc7, 0x15, 0x5b, 0x62, 0x38,
+ 0x02, 0xae, 0x38, 0x9d, 0xa8, 0x2a, 0xd8, 0x22, 0x7b, 0x2d, 0x19, 0xfa,
+ 0x76, 0xcc, 0x9a, 0x83, 0x4e, 0xca, 0x8d, 0x76, 0x32, 0x26, 0x6b, 0x92,
+ 0xc7, 0xe1, 0x66, 0x98, 0x43, 0xcc, 0x5e, 0x5d, 0x0e, 0x3c, 0xbf, 0xcd,
+ 0x63, 0x81, 0xe7, 0x4a, 0x4b, 0x13, 0x34, 0x0c, 0x5a, 0x0e, 0x35, 0xeb,
+ 0x1f, 0xa1, 0x6c, 0xeb, 0xe8, 0xf0, 0xfc, 0x64, 0x31, 0x47, 0x41, 0xc2,
+ 0xac, 0xc1, 0x67, 0x74, 0xda, 0x48, 0x2d, 0xb0, 0x1c, 0xf1, 0x4d, 0x31,
+ 0x12, 0x4a, 0x3e, 0xf9, 0x65, 0x96, 0x75, 0x9b, 0x72, 0x1a, 0xd2, 0x45,
+ 0x2d, 0x7c, 0x02, 0x69, 0x1d, 0xaf, 0x39, 0x8b, 0xfc, 0x5d, 0xd1, 0x68,
+ 0xc1, 0xc2, 0xd6, 0x71, 0x9b, 0x44, 0xbb, 0x2c, 0x65, 0xda, 0x8b, 0xc5,
+ 0xd3, 0xf9, 0x88, 0x8c, 0xe8, 0xdd, 0xb5, 0xef, 0xb4, 0x53, 0x23, 0xd8,
+ 0x61, 0xc9, 0xb2, 0xba, 0x99, 0x13, 0x65, 0x67, 0xf4, 0x9c, 0xb7, 0xd5,
+ 0xca, 0x6f, 0x54, 0x8f, 0xc2, 0x69, 0xf0, 0x65, 0x20, 0x6c, 0xa9, 0x17,
+ 0xfb, 0x62, 0xfe, 0xc2, 0x55, 0x0e, 0x66, 0x3f, 0xc5, 0x94, 0xf4, 0x7a,
+ 0x06, 0x42, 0x08, 0x4a, 0x0b, 0x00, 0xd1, 0xff, 0xc1, 0x02, 0x43, 0x70,
+ 0x1c, 0x5b, 0x14, 0x28, 0x2c, 0x5a, 0x0a, 0xb1, 0x49, 0xfa, 0x39, 0x39,
+ 0xfc, 0x53, 0x9e, 0xcc, 0x1f, 0x96, 0x85, 0x77, 0x0b, 0xb9, 0x91, 0xdd,
+ 0xba, 0xc2, 0x39, 0x3b, 0x72, 0x5c, 0xe1, 0xf0, 0xe6, 0x4e, 0x0f, 0xa8,
+ 0xc8, 0x81, 0x6b, 0x7e, 0xce, 0xbe, 0x6c, 0x3e, 0x15, 0x63, 0xdb, 0x52,
+ 0xa1, 0x17, 0x8e, 0xe5, 0xe1, 0xa0, 0x90, 0x47, 0xd1, 0xa4, 0x93, 0xa7,
+ 0xbc, 0xbc, 0x18, 0xd5, 0x38, 0x2d, 0x58, 0x31, 0x84, 0x89, 0xe8, 0x00,
+ 0xd3, 0x02, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x31, 0x0e, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x01, 0x57, 0x00, 0x67,
+ 0xaf, 0xf1, 0x51, 0xbb, 0x9d, 0x46, 0x77, 0x92, 0xd8, 0x43, 0xf2, 0x57,
+ 0x3c, 0x9d, 0xd1, 0x86, 0x4f, 0xb4, 0x4c, 0x79, 0x51, 0x73, 0xdf, 0xf0,
+ 0xea, 0x65, 0xc0, 0x9c, 0x6d, 0xfd, 0xb4, 0x5a, 0x67, 0x22, 0xbc, 0xfd,
+ 0xcd, 0xa2, 0x02, 0x38, 0x5c, 0xa5, 0x58, 0x4c, 0x1d, 0x1f, 0x13, 0x83,
+ 0x28, 0x3c, 0x41, 0x3a, 0xe5, 0x7b, 0x6c, 0x29, 0xd4, 0xd8, 0xdd, 0x6c,
+ 0x9e, 0x5c, 0x70, 0x5f, 0x79, 0xb4, 0xe2, 0xcc, 0xf9, 0x33, 0xda, 0x1d,
+ 0x96, 0x65, 0x78, 0x01, 0x4a, 0x13, 0xb2, 0x08, 0x31, 0x80, 0x75, 0x7b,
+ 0x0e, 0xf3, 0xc6, 0xbd, 0x86, 0x37, 0x23, 0x30, 0x07, 0x01, 0x4c, 0x88,
+ 0x39, 0x2d, 0xb3, 0x8e, 0x1a, 0x29, 0x0b, 0x40, 0x98, 0x63, 0xf5, 0x7f,
+ 0xdf, 0xe0, 0xb9, 0xbe, 0x96, 0xe7, 0x65, 0x6d, 0xef, 0xeb, 0x0e, 0xd3,
+ 0x5e, 0x65, 0x23, 0x2f, 0xe5, 0xbf, 0x20, 0x8d, 0xd8, 0x22, 0x65, 0x82,
+ 0x0c, 0x5b, 0xf9, 0x0a, 0x8e, 0x96, 0x21, 0xbc, 0x5a, 0x42, 0x0b, 0x6d,
+ 0xb0, 0x08, 0xe7, 0xbc, 0xf6, 0xdf, 0x20, 0xc0, 0x12, 0x45, 0x8e, 0xe8,
+ 0xfd, 0x78, 0x66, 0xa8, 0xb7, 0x18, 0xf0, 0x85, 0xcf, 0xad, 0x51, 0x20,
+ 0x12, 0xa8, 0x07, 0x05, 0xf8, 0xa7, 0x16, 0xdd, 0x23, 0xa1, 0x7f, 0xdf,
+ 0x86, 0x70, 0xe6, 0xfe, 0x0e, 0x1e, 0x98, 0x97, 0x5f, 0xdf, 0x5d, 0x84,
+ 0x01, 0x55, 0x20, 0x43, 0xfd, 0x7d, 0x43, 0x6d, 0xb2, 0xa6, 0x54, 0x9f,
+ 0x8b, 0x8c, 0x5d, 0x7f, 0x76, 0x29, 0xda, 0xb7, 0xad, 0x63, 0xf0, 0x9a,
+ 0x1e, 0x81, 0xf6, 0xdb, 0x01, 0xda, 0x1e, 0xc7, 0x0f, 0x39, 0xc4, 0xef,
+ 0x91, 0x95, 0x0b, 0x4a, 0xc8, 0x30, 0xef, 0xb1, 0x0b, 0x86, 0x0b, 0xbb,
+ 0x83, 0xa0, 0x3f, 0x73, 0x8c, 0x8a, 0xad, 0xf0, 0x5b, 0x25, 0x0c, 0xbb,
+ 0x6f, 0xe8, 0xa9, 0x15, 0x1e, 0x0f, 0x72, 0x0b, 0x19, 0x7f, 0x29, 0x79,
+ 0x9b, 0x52, 0x99, 0x37, 0x92, 0x4a, 0xae, 0x0d, 0x67, 0xf1, 0x02, 0xd6,
+ 0x0a, 0xb9, 0x4e, 0x80, 0x42, 0xe5, 0x42, 0xe7, 0x34, 0xb9, 0x8f, 0x4a,
+ 0xb4, 0x89, 0xbd, 0x44, 0xcd, 0x2e, 0x6c, 0xf5, 0xd3, 0x35, 0x73, 0x47,
+ 0xd6, 0x2b, 0x08, 0x2f, 0x94, 0xa2, 0xff, 0xf7, 0xb5, 0x7d, 0x2b, 0xe3,
+ 0x80, 0xe6, 0xfc, 0xc9, 0x64, 0x07, 0x7c, 0x3e, 0x9d, 0x2c, 0xd7, 0x05,
+ 0xa2, 0x46, 0xe7, 0x83, 0xe4, 0xfb, 0x2c, 0x6b, 0x4e, 0xdd, 0x15, 0x02,
+ 0xfb, 0xc8, 0x44, 0x0d, 0x3c, 0x2b, 0xc9, 0x82, 0x61, 0x73, 0x06, 0x39,
+ 0x1c, 0x8b, 0x0f, 0xa4, 0xb8, 0xde, 0x7b, 0x95, 0x40, 0xa0, 0x9e, 0xad,
+ 0x77, 0x71, 0x74, 0x52, 0xad, 0xe2, 0x03, 0x6c, 0xa4, 0x92, 0x46, 0xc1,
+ 0x26, 0xe0, 0x68, 0x9b, 0xa7, 0xe2, 0xb3, 0x84, 0xb6, 0x12, 0x2c, 0x1b,
+ 0x54, 0x22, 0x5f, 0x9e, 0xea, 0x89, 0x66, 0x9c, 0xe6, 0xd5, 0x8f, 0x74,
+ 0x52, 0x2c, 0x8f, 0xa2, 0xa1, 0x2f, 0x99, 0xe1, 0x29, 0x6d, 0x59, 0xe5,
+ 0x95, 0x3e, 0x74, 0x74, 0x61, 0x3b, 0x00, 0x07, 0x7e, 0xc1, 0xc7, 0xdc,
+ 0xb4, 0x6a, 0x29, 0x47, 0x52, 0xfc, 0x9b, 0xff, 0xd3, 0x44, 0xf6, 0x5d,
+ 0x5e, 0xba, 0x06, 0xc5, 0xe5, 0x51, 0x91, 0xb7, 0x35, 0xb5, 0x38, 0x70,
+ 0x8c, 0xd1, 0x5b, 0x1a, 0x6b, 0xc6, 0x93, 0xbd, 0x14, 0x53, 0xa6, 0x55,
+ 0x50, 0x82, 0x22, 0x8f, 0x2b, 0x2e, 0x2f, 0xbf, 0x12, 0x4d, 0xb8, 0xaf,
+ 0xcb, 0x85, 0x7f, 0xf1, 0x88, 0xa1, 0x6d, 0xeb, 0x86, 0xc2, 0xba, 0xa7,
+ 0x78, 0xd9, 0xa3, 0x73, 0x5e, 0x38, 0x80, 0xfa, 0xad, 0x85, 0xef, 0x64,
+ 0x68, 0x32, 0x8e, 0x36, 0x24, 0xfc, 0xf7, 0x66, 0x61, 0x3c, 0xec, 0x56,
+ 0x14, 0xa5, 0x3b, 0x43, 0x49, 0xaa, 0x4e, 0x37, 0x1e, 0x52, 0xd3, 0x7d,
+ 0xf1, 0x7b, 0x0c, 0xef, 0xc9, 0x86, 0x80, 0x82, 0x27, 0x28, 0xd3, 0xe4,
+ 0xef, 0xc8, 0xf3, 0x42, 0xb3, 0xde, 0x96, 0x05, 0x2e, 0x13, 0x86, 0xd3,
+ 0x32, 0xd2, 0x18, 0x94, 0x77, 0x2e, 0x22, 0x0a, 0x9d, 0x45, 0x08, 0x1a,
+ 0x2a, 0x4e, 0xc6, 0xcf, 0x41, 0x4e, 0x52, 0xc7, 0x23, 0xb4, 0x87, 0xc4,
+ 0x47, 0x30, 0x63, 0xd6, 0x12, 0x67, 0xc4, 0x55, 0x66, 0xc6, 0x61, 0x70,
+ 0x62, 0xc8, 0x56, 0xf6, 0xe0, 0xe4, 0x9a, 0x34, 0x5c, 0x05, 0x1c, 0x30,
+ 0x50, 0xed, 0x42, 0x60, 0x68, 0xaf, 0xff, 0x10, 0x34, 0xd0, 0xc1, 0xe6,
+ 0xbd, 0x1a, 0x5f, 0x6c, 0x15, 0xe8, 0xbe, 0xd2, 0xc4, 0x0e, 0xa9, 0x57,
+ 0xc6, 0xe5, 0x3e, 0x2a, 0x5e, 0x1c, 0x20, 0xa7, 0x61, 0xbc, 0x54, 0x05,
+ 0x86, 0x46, 0xab, 0x55, 0xc0, 0x50, 0x06, 0x77, 0x98, 0xab, 0x9e, 0x94,
+ 0xa7, 0x21, 0xf3, 0x4c, 0xd3, 0x09, 0x07, 0x8c, 0x68, 0x65, 0x78, 0x76,
+ 0xb5, 0x33, 0xc8, 0x92, 0x0b, 0x9b, 0x43, 0x24, 0x95, 0x0b, 0xb8, 0xf7,
+ 0xf9, 0x7c, 0x89, 0x32, 0xcc, 0x4b, 0xa9, 0x8c, 0x5d, 0xa8, 0x79, 0xd4,
+ 0xe2, 0x28, 0x48, 0x77, 0x11, 0xec, 0xc1, 0xcb, 0x4c, 0x66, 0x1b, 0x31,
+ 0xda, 0xa1, 0x03, 0xe0, 0x89, 0x98, 0xef, 0xd7, 0x7b, 0x45, 0x2e, 0xc6,
+ 0x24, 0xdb, 0x83, 0xff, 0x4e, 0xd0, 0xa3, 0x01, 0x39, 0x79, 0xbb, 0x65,
+ 0x22, 0xb2, 0x00, 0xc8, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x0c, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x01,
+ 0x61, 0x34, 0xa4, 0x68, 0xf5, 0xd6, 0x3b, 0x1b, 0x20, 0x06, 0xfe, 0xde,
+ 0xb3, 0xa4, 0x90, 0xd5, 0x8a, 0x7b, 0x38, 0xdf, 0xb9, 0x5e, 0xe8, 0x53,
+ 0x20, 0xb6, 0x67, 0x2b, 0x72, 0x2a, 0xc8, 0xd5, 0x8a, 0x86, 0x83, 0xce,
+ 0x9b, 0x3d, 0xcc, 0xdd, 0x06, 0x42, 0x68, 0x2a, 0x4f, 0x03, 0x2c, 0xde,
+ 0x4e, 0xa8, 0xd3, 0x24, 0xfd, 0x81, 0xbf, 0x82, 0x8c, 0x3d, 0xd8, 0x26,
+ 0x8e, 0x3c, 0x68, 0xe2, 0x77, 0xfe, 0xf7, 0x00, 0x58, 0x87, 0xa0, 0x83,
+ 0xea, 0xd7, 0xb5, 0x7d, 0x40, 0x9a, 0x5c, 0xb3, 0x8c, 0x58, 0xae, 0xbb,
+ 0x12, 0x3f, 0x60, 0xa9, 0x05, 0x6f, 0x61, 0xde, 0xf8, 0xc0, 0x98, 0x65,
+ 0x83, 0xd7, 0xa5, 0x71, 0x9d, 0x7f, 0xa5, 0x78, 0xe0, 0xac, 0xcd, 0x84,
+ 0xd7, 0x38, 0xe3, 0xe2, 0x35, 0x76, 0xe2, 0x2e, 0x22, 0xab, 0x7a, 0x26,
+ 0x96, 0xf2, 0x2b, 0x43, 0x68, 0x19, 0xce, 0xa7, 0x9a, 0x15, 0x94, 0x61,
+ 0xa6, 0x7c, 0xe3, 0x65, 0x96, 0xf1, 0xd6, 0x31, 0xeb, 0xde, 0x64, 0x65,
+ 0xac, 0x32, 0x06, 0x80, 0x0c, 0xa8, 0x93, 0x8f, 0x4d, 0x92, 0x7d, 0x37,
+ 0x6a, 0xc1, 0x18, 0x19, 0x15, 0xd5, 0x4f, 0x08, 0x19, 0xf3, 0x33, 0xd0,
+ 0xa5, 0xbf, 0x65, 0x54, 0x9b, 0x72, 0x82, 0x8a, 0x56, 0x1e, 0x75, 0xe5,
+ 0x96, 0x12, 0xe9, 0x09, 0x76, 0x8a, 0xae, 0xf4, 0x91, 0x45, 0x50, 0x3d,
+ 0x22, 0xaa, 0xa5, 0x26, 0x6c, 0xe8, 0xe7, 0x23, 0x25, 0x09, 0xb4, 0x23,
+ 0xf8, 0x7f, 0x32, 0xaa, 0xb0, 0x17, 0xb7, 0xe5, 0xc8, 0x15, 0x80, 0x65,
+ 0xc0, 0xc8, 0x40, 0xbb, 0x77, 0xf8, 0xe7, 0xa8, 0x37, 0x20, 0x32, 0xc9,
+ 0x20, 0x75, 0x7c, 0xcb, 0x24, 0xab, 0x4d, 0xe0, 0x93, 0xd2, 0x4a, 0xd0,
+ 0x53, 0xa9, 0x20, 0x80, 0x36, 0x2a, 0xb2, 0x55, 0x88, 0x5f, 0xf0, 0x49,
+ 0x41, 0xba, 0x11, 0xdb, 0x14, 0x44, 0x67, 0x8b, 0x0f, 0xb0, 0x8f, 0xfb,
+ 0x05, 0xd2, 0x14, 0xcf, 0xc6, 0x84, 0x04, 0xeb, 0x3b, 0x59, 0x88, 0x08,
+ 0x7b, 0xa4, 0xcb, 0x00, 0x30, 0x3d, 0xfa, 0x0c, 0xf7, 0xef, 0x06, 0xc4,
+ 0x32, 0xce, 0x7f, 0x12, 0x08, 0x64, 0x1b, 0x5d, 0x99, 0x1e, 0x93, 0xf5,
+ 0x65, 0xfd, 0x30, 0x00, 0xa2, 0x65, 0x6f, 0xb0, 0x02, 0x91, 0xae, 0xe2,
+ 0x99, 0x7c, 0xdc, 0x04, 0x1c, 0x7d, 0x9f, 0xd3, 0xf2, 0xb2, 0xfe, 0xd2,
+ 0x8f, 0x1d, 0x17, 0xf1, 0xe8, 0x06, 0x2e, 0xa0, 0x60, 0x24, 0x3b, 0x77,
+ 0xae, 0xd5, 0x1c, 0x84, 0x8f, 0xc3, 0x94, 0x50, 0x81, 0x8c, 0xa8, 0xbb,
+ 0xad, 0x57, 0x48, 0xad, 0x2a, 0x3d, 0x95, 0x11, 0x20, 0x12, 0x3a, 0x58,
+ 0xf3, 0x1d, 0xc9, 0xc9, 0x3b, 0xd7, 0x96, 0x6b, 0xfb, 0xd6, 0xaa, 0x23,
+ 0x99, 0xcb, 0x62, 0xc9, 0x72, 0x40, 0x8b, 0x01, 0x11, 0x67, 0xec, 0x3b,
+ 0xcc, 0x95, 0xdd, 0x05, 0xbf, 0xa4, 0xa8, 0xef, 0x64, 0xaf, 0xad, 0xe9,
+ 0xe5, 0xf5, 0x4e, 0x19, 0xde, 0x37, 0x19, 0xb6, 0x92, 0xd9, 0x95, 0x03,
+ 0xcc, 0x21, 0xb1, 0x4f, 0xf0, 0x39, 0x85, 0x29, 0xd4, 0x9a, 0xe3, 0x32,
+ 0x43, 0x81, 0x62, 0x7b, 0x5b, 0xcd, 0x09, 0x4c, 0xca, 0x91, 0x42, 0xaa,
+ 0xba, 0x3c, 0x98, 0xcb, 0x73, 0xe0, 0xf0, 0x8c, 0x92, 0x5f, 0x95, 0x0d,
+ 0xdd, 0x1e, 0x00, 0xfd, 0x0a, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x27, 0x00, 0x05, 0x10, 0x40, 0x00, 0x1e, 0xb2,
+ 0x73, 0xe2, 0x63, 0xad, 0xe5, 0x34, 0xe2, 0x4f, 0x2c, 0xc7, 0x0d, 0xa2,
+ 0x81, 0xe6, 0xd7, 0xc3, 0xff, 0xcf, 0xf1, 0x3d, 0xfb, 0xef, 0xfd, 0x4f,
+ 0x42, 0x7e, 0x5a, 0x1e, 0xce, 0x1f, 0xb8, 0xde, 0xd1, 0x55, 0xb7, 0xf5,
+ 0x19, 0x21, 0xd4, 0xa3, 0x78, 0x3a, 0x44, 0xfe, 0x3d, 0xf1, 0xfe, 0xed,
+ 0xfc, 0xd7, 0x9a, 0x82, 0x15, 0xbd, 0xef, 0xae, 0xe7, 0x7f, 0xe3, 0xff,
+ 0x59, 0xff, 0x3b, 0xca, 0x47, 0xfe, 0xdf, 0xb2, 0x4e, 0xd5, 0x85, 0xaa,
+ 0x07, 0x96, 0x4c, 0x29, 0x21, 0x05, 0x18, 0xe0, 0x74, 0x80, 0x4a, 0x04,
+ 0x28, 0xec, 0xa0, 0x2b, 0x54, 0x97, 0xe3, 0x47, 0xc7, 0xa3, 0x8d, 0x72,
+ 0x3a, 0x04, 0xff, 0x3d, 0x6f, 0x3f, 0x04, 0x2a, 0x14, 0x25, 0x41, 0x01,
+ 0x20, 0x38, 0x93, 0xe8, 0x59, 0x32, 0xc0, 0x68, 0x6d, 0xe5, 0x7a, 0x4c,
+ 0xe4, 0x9f, 0xee, 0x3a, 0x8d, 0x11, 0x49, 0x4c, 0x23, 0x53, 0x49, 0x90,
+ 0x8c, 0xc8, 0xcf, 0xd2, 0xdc, 0xfb, 0x25, 0x84, 0x81, 0xf4, 0xb9, 0x29,
+ 0xdb, 0xcd, 0x87, 0x0f, 0x73, 0xd0, 0xcf, 0xdb, 0x80, 0x36, 0x2f, 0x24,
+ 0x51, 0xff, 0x64, 0x45, 0xf8, 0xfb, 0xa7, 0x87, 0xea, 0x4b, 0xbe, 0x71,
+ 0x1f, 0xb9, 0x07, 0x01, 0xb2, 0xf9, 0x95, 0x72, 0xc8, 0x25, 0xde, 0xa3,
+ 0x51, 0x99, 0xd8, 0xf7, 0xf8, 0xcd, 0xa2, 0x0c, 0x29, 0x4e, 0x20, 0xa6,
+ 0x23, 0xd1, 0xb0, 0xb3, 0xbd, 0x71, 0x23, 0x03, 0xe8, 0xdc, 0x7c, 0xbf,
+ 0x40, 0xa2, 0x95, 0xa2, 0xc5, 0x1b, 0x84, 0x0d, 0x3b, 0x0c, 0xc8, 0x52,
+ 0x1d, 0xc7, 0x58, 0x67, 0x08, 0x1a, 0x76, 0x19, 0x90, 0xa4, 0x3b, 0x8e,
+ 0xb0, 0xce, 0x10, 0x34, 0xec, 0x33, 0x21, 0x48, 0x77, 0x1d, 0x61, 0x9c,
+ 0x20, 0x69, 0xd8, 0x66, 0x42, 0x90, 0xee, 0x3a, 0xc3, 0x38, 0x40, 0xd3,
+ 0xb0, 0xcc, 0x85, 0x21, 0xdc, 0x75, 0x86, 0x70, 0x81, 0xa7, 0x61, 0x99,
+ 0x0a, 0x43, 0xb8, 0xeb, 0x0c, 0xe1, 0x03, 0x4e, 0xc3, 0x32, 0x14, 0x87,
+ 0x71, 0xd6, 0x19, 0xc2, 0x06, 0x9d, 0x86, 0x64, 0x29, 0x0e, 0xe3, 0xa9,
+ 0x40, 0x4e, 0xde, 0x5c, 0x6c, 0x38, 0x2b, 0x14, 0x77, 0x62, 0xe4, 0x17,
+ 0x5e, 0xbe, 0x31, 0xe3, 0x69, 0x29, 0xfe, 0x16, 0xdb, 0x6d, 0xa2, 0x00,
+ 0xae, 0x55, 0x07, 0xfa, 0xc2, 0xe4, 0x8f, 0xe3, 0xea, 0x55, 0xc6, 0xb6,
+ 0x71, 0xfe, 0x87, 0x0b, 0x4c, 0x8b, 0x67, 0xf1, 0xa2, 0x95, 0x70, 0xff,
+ 0xd6, 0xd5, 0xcf, 0xfb, 0x38, 0x58, 0xfc, 0x8a, 0xd4, 0xe2, 0xce, 0x68,
+ 0x4a, 0x47, 0xd3, 0x5c, 0x1c, 0x1f, 0x8a, 0xf2, 0x50, 0xd0, 0x7d, 0x13,
+ 0x84, 0x05, 0xde, 0x8c, 0xdd, 0x00, 0xe9, 0x94, 0x62, 0x12, 0xa8, 0x80,
+ 0x0a, 0x6b, 0xea, 0xc8, 0xed, 0x79, 0x7c, 0xe3, 0xeb, 0xa8, 0xc8, 0x20,
+ 0x9d, 0xe4, 0x7d, 0x68, 0xe9, 0x72, 0x96, 0x03, 0xa9, 0x34, 0x16, 0xf7,
+ 0x6f, 0x8f, 0x77, 0x59, 0x0d, 0xaa, 0xaf, 0xcf, 0x63, 0x2e, 0x9d, 0x00,
+ 0xc6, 0xa5, 0xd5, 0x1c, 0x71, 0x9b, 0x4c, 0xf3, 0xfd, 0x03, 0x02, 0xdf,
+ 0x0a, 0x58, 0x4b, 0xd1, 0xcc, 0xe2, 0xe4, 0xba, 0x79, 0x9a, 0xc6, 0x75,
+ 0xda, 0xe4, 0xd5, 0x79, 0x3c, 0x74, 0x68, 0x7d, 0x3f, 0x01, 0xe5, 0x3c,
+ 0xb3, 0x22, 0x02, 0xf2, 0x25, 0x9f, 0xaf, 0xe1, 0x9c, 0x86, 0x76, 0x3d,
+ 0xb6, 0xd0, 0xf6, 0x18, 0x96, 0xe8, 0xa8, 0x68, 0xf5, 0x52, 0xce, 0xb4,
+ 0x34, 0xac, 0x00, 0xfa, 0x29, 0x7b, 0x35, 0xca, 0x17, 0xba, 0xc9, 0xec,
+ 0x03, 0xe9, 0x39, 0x5f, 0xe1, 0x52, 0x00, 0xfc, 0x65, 0x0a, 0xe8, 0xfc,
+ 0x7f, 0xc5, 0xb7, 0xe3, 0xd7, 0xcd, 0x06, 0x0b, 0x2b, 0x75, 0xd3, 0x75,
+ 0x6a, 0xd8, 0x7f, 0xb2, 0x9b, 0xc8, 0x9f, 0x07, 0x43, 0xe4, 0xed, 0x6a,
+ 0x32, 0xb1, 0x5d, 0x92, 0x7f, 0x99, 0x8a, 0xbb, 0x5d, 0x4e, 0x4b, 0xdd,
+ 0xc7, 0xf2, 0x43, 0x6f, 0x4d, 0x4e, 0xde, 0x1b, 0xd4, 0x9a, 0x15, 0x3c,
+ 0x66, 0xf3, 0x13, 0x40, 0x0b, 0x67, 0xf5, 0xa5, 0x7d, 0xcf, 0xe4, 0xc8,
+ 0x0b, 0x1c, 0x02, 0x2d, 0x2d, 0xc7, 0xf0, 0x86, 0x62, 0xce, 0x03, 0x8b,
+ 0xe9, 0xe9, 0x02, 0xd5, 0xba, 0xef, 0x3d, 0x32, 0x5b, 0xc7, 0x1c, 0x45,
+ 0x17, 0xb2, 0x11, 0x37, 0x51, 0x10, 0x79, 0x2b, 0x6d, 0xc7, 0x0c, 0x85,
+ 0xef, 0xe6, 0x41, 0xd8, 0x4c, 0xf2, 0x12, 0x0c, 0x4e, 0x54, 0xed, 0xb5,
+ 0xdc, 0x92, 0x03, 0xeb, 0x8d, 0xb2, 0xfa, 0x37, 0x62, 0x1e, 0x32, 0x1a,
+ 0x96, 0x12, 0x21, 0x15, 0x99, 0x2c, 0x38, 0xee, 0xd5, 0x2d, 0x01, 0xf0,
+ 0xd1, 0x5d, 0x26, 0x40, 0x32, 0x23, 0xf1, 0x26, 0x4d, 0x53, 0x16, 0x6f,
+ 0x81, 0xb7, 0x00, 0xfe, 0x3c, 0x4d, 0x26, 0x30, 0x42, 0x55, 0x75, 0x68,
+ 0xcc, 0xe3, 0x84, 0x68, 0x58, 0xb2, 0xe8, 0xdc, 0xd3, 0xbd, 0x3e, 0xf5,
+ 0x63, 0xb9, 0x4e, 0x15, 0x3e, 0xce, 0x5f, 0x3b, 0xeb, 0x75, 0x91, 0x1e,
+ 0xda, 0xd5, 0x3f, 0x6b, 0xc4, 0x7b, 0x40, 0x9e, 0x55, 0x00, 0x1e, 0xb7,
+ 0x1f, 0x7b, 0x22, 0x37, 0x3d, 0xe3, 0x39, 0x2d, 0x06, 0x4b, 0x2e, 0xa2,
+ 0x3c, 0xa3, 0xbb, 0xe9, 0x03, 0x39, 0xc0, 0xc4, 0xec, 0xa0, 0x4d, 0xf0,
+ 0x68, 0x96, 0xc4, 0xe0, 0xcc, 0x81, 0x1f, 0x7d, 0xd4, 0xad, 0x24, 0x16,
+ 0x35, 0x49, 0x5a, 0x6f, 0xd7, 0xae, 0xdf, 0x6b, 0x2a, 0x76, 0x03, 0x32,
+ 0x56, 0x77, 0xea, 0xf7, 0x01, 0x9a, 0x9b, 0x22, 0xfe, 0x8b, 0x24, 0x07,
+ 0xe5, 0xb6, 0xcc, 0xa0, 0xf5, 0x09, 0xfd, 0x17, 0x6f, 0xb5, 0x95, 0x3b,
+ 0x01, 0x99, 0x2b, 0x3b, 0xf5, 0x7b, 0x56, 0x71, 0x08, 0xef, 0x05, 0x3e,
+ 0xbc, 0x18, 0x31, 0x74, 0x5f, 0x3f, 0x8b, 0xd6, 0xef, 0xdb, 0x32, 0x37,
+ 0x8d, 0x85, 0xd0, 0x01, 0xd8, 0x06, 0xb9, 0xae, 0x55, 0x04, 0x89, 0x34,
+ 0x18, 0x81, 0xf3, 0x27, 0x8d, 0x6c, 0xa5, 0xa4, 0xea, 0x7b, 0xa0, 0x94,
+ 0xda, 0x61, 0xde, 0x8a, 0x1b, 0xfa, 0xed, 0x6d, 0x22, 0x11, 0x3e, 0x27,
+ 0x29, 0x8f, 0x3c, 0x85, 0xa9, 0x67, 0xdf, 0xab, 0x61, 0xe0, 0x6d, 0xd1,
+ 0x6c, 0x0e, 0x40, 0x35, 0x0b, 0xd3, 0x90, 0x82, 0xb5, 0x87, 0x9d, 0xee,
+ 0x22, 0x4d, 0x78, 0xca, 0x34, 0x44, 0x9e, 0xc8, 0x5e, 0x76, 0xcc, 0x7f,
+ 0x23, 0x60, 0xe5, 0xcf, 0xb0, 0x90, 0x7e, 0x2d, 0xac, 0x98, 0x2b, 0x2f,
+ 0x15, 0x9f, 0xde, 0xbe, 0xed, 0xb4, 0x5c, 0x6a, 0xbb, 0xf1, 0xc5, 0x17,
+ 0x1c, 0x02, 0x27, 0xb1, 0x62, 0x42, 0x7c, 0x09, 0x95, 0x37, 0x0b, 0x9d,
+ 0xf2, 0xa4, 0x4e, 0xc5, 0xa9, 0xb3, 0x6f, 0x2f, 0x27, 0x97, 0x61, 0xd6,
+ 0xe0, 0x30, 0x42, 0x20, 0x53, 0xbf, 0x30, 0xc8, 0x11, 0x68, 0x3f, 0xca,
+ 0x8f, 0x74, 0x84, 0xf7, 0x14, 0xcd, 0xcb, 0x0a, 0x28, 0x3d, 0xbc, 0xd6,
+ 0x07, 0x76, 0xed, 0x41, 0x8a, 0x83, 0xa5, 0x0c, 0xbf, 0x0d, 0xb8, 0x0c,
+ 0xd7, 0x17, 0x36, 0xd3, 0x12, 0x39, 0xd2, 0x28, 0x53, 0x2c, 0xf8, 0x10,
+ 0x3b, 0x77, 0x41, 0xd6, 0x6b, 0x7c, 0xcd, 0xfd, 0x47, 0x39, 0x9a, 0xb5,
+ 0x43, 0xff, 0xa4, 0x29, 0x7a, 0xa1, 0x43, 0xb1, 0x14, 0x5a, 0x09, 0x21,
+ 0x4e, 0x1f, 0xc1, 0x28, 0x3d, 0xec, 0x7f, 0x64, 0xe7, 0xe7, 0xb5, 0x48,
+ 0x3b, 0x40, 0x74, 0x2c, 0x24, 0x08, 0x9f, 0xc3, 0x5d, 0x94, 0xc5, 0x05,
+ 0x9b, 0x85, 0xe6, 0xf7, 0xd0, 0xd3, 0x7a, 0x7f, 0xeb, 0x26, 0x8c, 0x9c,
+ 0x1a, 0x76, 0x7d, 0xa6, 0x5f, 0x76, 0x1d, 0xb3, 0x6b, 0x43, 0x96, 0x30,
+ 0x6e, 0xd0, 0xd3, 0x33, 0x6f, 0xc4, 0x89, 0xdc, 0x45, 0xbb, 0xc2, 0x7e,
+ 0x37, 0x58, 0x6c, 0x90, 0xce, 0x34, 0x5f, 0xe6, 0xd9, 0x76, 0x7e, 0xa3,
+ 0xe6, 0xd8, 0xed, 0xa3, 0x7c, 0x45, 0x78, 0x3f, 0xab, 0x09, 0xa4, 0x6c,
+ 0x34, 0x1b, 0xdb, 0x9c, 0x58, 0x5d, 0x10, 0x7c, 0xd3, 0xdf, 0xb9, 0x66,
+ 0x04, 0x3e, 0xb1, 0xea, 0x8d, 0xc0, 0x5d, 0x95, 0x41, 0x46, 0xd8, 0x00,
+ 0x3c, 0x38, 0xd4, 0xdb, 0x8a, 0xa5, 0x5d, 0xaa, 0xc6, 0xef, 0x34, 0xe8,
+ 0x20, 0x7f, 0x71, 0xe7, 0x72, 0x82, 0x85, 0x1d, 0x30, 0x22, 0x40, 0x68,
+ 0xd2, 0x24, 0x88, 0xef, 0x58, 0x42, 0x8f, 0xcb, 0x7d, 0xef, 0x4c, 0xf1,
+ 0x4c, 0x8b, 0x1e, 0x1e, 0x49, 0x50, 0x60, 0xca, 0xf0, 0xb7, 0xd0, 0x89,
+ 0xb6, 0xab, 0x9d, 0x7e, 0x42, 0x2f, 0x1f, 0x6b, 0x7b, 0xd7, 0xd3, 0xc9,
+ 0x10, 0x7c, 0x43, 0x44, 0x19, 0x4b, 0x70, 0x6a, 0x71, 0x96, 0x64, 0x66,
+ 0xaf, 0x0b, 0x70, 0x0c, 0x9d, 0x58, 0x63, 0x72, 0xae, 0x5e, 0x2a, 0x49,
+ 0x09, 0x97, 0xf8, 0xad, 0x0e, 0xad, 0xa3, 0x93, 0x79, 0x99, 0xa4, 0x04,
+ 0x1e, 0xa4, 0x3b, 0x60, 0x59, 0x2b, 0xff, 0x04, 0x22, 0x60, 0x39, 0x94,
+ 0x34, 0xe0, 0xad, 0x67, 0xd6, 0xc4, 0x06, 0xed, 0x59, 0xa9, 0xee, 0xc5,
+ 0xa9, 0x65, 0xdf, 0x29, 0xbd, 0xe4, 0x23, 0x63, 0x9b, 0x3e, 0x74, 0xd3,
+ 0xc3, 0x41, 0xe9, 0xa7, 0x11, 0x9e, 0x80, 0x00, 0x21, 0x20, 0xe6, 0x69,
+ 0xff, 0x9d, 0x1d, 0x32, 0xc4, 0xc8, 0xd0, 0xd0, 0xb7, 0x93, 0x45, 0x69,
+ 0x58, 0x44, 0x58, 0x44, 0xfa, 0x9f, 0x66, 0x2c, 0xa9, 0xa4, 0xbe, 0xfc,
+ 0x58, 0x5a, 0xba, 0x12, 0xcc, 0x8c, 0xdf, 0x78, 0x17, 0x0c, 0x15, 0x00,
+ 0xd2, 0x76, 0x7a, 0x1f, 0xb1, 0x91, 0x57, 0xdd, 0x92, 0xf8, 0x55, 0x67,
+ 0x3e, 0x8c, 0x83, 0x81, 0x3d, 0x96, 0xc7, 0x73, 0x87, 0xda, 0xfb, 0x44,
+ 0xe9, 0xfa, 0xbf, 0x48, 0x03, 0xb6, 0x5c, 0x5e, 0x15, 0x4b, 0x46, 0xdf,
+ 0x22, 0xd4, 0x19, 0xfa, 0xa6, 0x8c, 0x5b, 0xa5, 0x39, 0xd3, 0x66, 0x33,
+ 0x1e, 0xc8, 0x3e, 0xb1, 0x95, 0x17, 0x02, 0x34, 0x4c, 0x53, 0xd9, 0x25,
+ 0x79, 0x29, 0xbf, 0x4e, 0x25, 0xfc, 0xf7, 0x36, 0x79, 0x6a, 0xef, 0xec,
+ 0x6b, 0x1d, 0x61, 0x19, 0x15, 0x3f, 0x0f, 0x39, 0x94, 0x09, 0xb6, 0x56,
+ 0x18, 0x24, 0xe5, 0x68, 0x57, 0xe1, 0x0f, 0x4f, 0xd3, 0xc7, 0x10, 0x0d,
+ 0x41, 0xe1, 0x1b, 0xad, 0x21, 0xd3, 0x43, 0xd6, 0xd7, 0xeb, 0x86, 0x3a,
+ 0x13, 0x62, 0x13, 0x80, 0x71, 0xb0, 0xf1, 0x13, 0x42, 0x9c, 0x29, 0x2b,
+ 0xf3, 0xea, 0x88, 0x5b, 0x93, 0xc6, 0x92, 0x09, 0x41, 0x41, 0x1d, 0xd6,
+ 0x6e, 0x7e, 0xde, 0x48, 0x09, 0x4d, 0x38, 0x33, 0xa2, 0xbe, 0x5b, 0x63,
+ 0x08, 0x60, 0x81, 0x9a, 0x9f, 0xb4, 0x44, 0xa9, 0x97, 0x5e, 0x5a, 0xfb,
+ 0x8c, 0x84, 0xef, 0x39, 0x28, 0x72, 0xb4, 0x64, 0x47, 0xf8, 0xce, 0xfc,
+ 0x06, 0xb6, 0xa6, 0x01, 0x69, 0xa2, 0x98, 0x5f, 0x5e, 0x49, 0x76, 0xc9,
+ 0x4f, 0xcc, 0xb6, 0x1e, 0x2c, 0xae, 0xca, 0x80, 0xe1, 0xbf, 0x74, 0x56,
+ 0xa0, 0x8c, 0x40, 0x0e, 0x65, 0x4a, 0x3e, 0x2e, 0xd4, 0x06, 0x03, 0xf3,
+ 0x91, 0xac, 0x00, 0xbe, 0x61, 0x7d, 0xb6, 0x49, 0x71, 0x65, 0x5e, 0xa8,
+ 0xf8, 0x62, 0x83, 0x56, 0x10, 0x1c, 0x6b, 0xf4, 0xe8, 0x56, 0x65, 0xcf,
+ 0x13, 0x9c, 0x0c, 0x9a, 0x71, 0xf5, 0xec, 0xa4, 0x55, 0xa9, 0x63, 0xfd,
+ 0x68, 0xc1, 0x7d, 0x5a, 0x8a, 0x8d, 0xd4, 0x23, 0x70, 0xab, 0xff, 0xc9,
+ 0xf7, 0xe3, 0xf7, 0xca, 0x36, 0x79, 0x5a, 0xa9, 0x9d, 0xba, 0xc0, 0x70,
+ 0xce, 0xf5, 0xeb, 0xe5, 0xf4, 0xb7, 0xa4, 0x96, 0x98, 0xf3, 0xbf, 0xae,
+ 0x83, 0x20, 0x52, 0x16, 0xa5, 0xa4, 0x74, 0x67, 0x1d, 0xb5, 0xfa, 0x2f,
+ 0xe1, 0x6a, 0xdb, 0xb8, 0x1d, 0xe1, 0xb6, 0x57, 0xbb, 0x94, 0xd1, 0x82,
+ 0xd5, 0x20, 0xc1, 0x5c, 0x81, 0x8a, 0x2b, 0xe6, 0x91, 0x35, 0x0c, 0x59,
+ 0x70, 0x84, 0xbb, 0x1a, 0x4c, 0xc6, 0x23, 0x08, 0x80, 0x4a, 0x90, 0xf1,
+ 0x55, 0x76, 0xb1, 0xfb, 0x2e, 0xbc, 0xde, 0x3f, 0xfe, 0xe0, 0x44, 0xb4,
+ 0xf7, 0x1d, 0xe1, 0x41, 0xb8, 0x04, 0x94, 0xbb, 0xb8, 0xae, 0xe9, 0x5d,
+ 0x94, 0x82, 0xf0, 0xda, 0x5d, 0x35, 0xa9, 0x19, 0xfd, 0x11, 0x67, 0x01,
+ 0xaa, 0x5d, 0xa3, 0x59, 0x60, 0x17, 0x25, 0x19, 0x0c, 0x11, 0x71, 0x58,
+ 0xdd, 0xc2, 0x55, 0x72, 0x51, 0x83, 0x5f, 0xb0, 0x58, 0xfd, 0x27, 0x23,
+ 0xa7, 0x52, 0x2d, 0xb3, 0x7e, 0x53, 0x41, 0x45, 0xa3, 0x6e, 0x60, 0x80,
+ 0xd8, 0x1f, 0xca, 0xb7, 0x88, 0x22, 0x43, 0xab, 0x6e, 0x90, 0x2c, 0xc4,
+ 0x59, 0x7d, 0x21, 0x6b, 0x64, 0xb7, 0xa8, 0x7f, 0x29, 0x35, 0x15, 0x0e,
+ 0xe7, 0x66, 0x02, 0x58, 0xff, 0x59, 0x24, 0x4b, 0xae, 0x36, 0x27, 0x83,
+ 0x0c, 0xf2, 0xe4, 0x73, 0x08, 0xf7, 0x3a, 0xde, 0xd7, 0xb8, 0x42, 0x0f,
+ 0x14, 0x4f, 0xc7, 0x5b, 0xce, 0x3a, 0xa9, 0x0a, 0x3c, 0x18, 0xce, 0x00,
+ 0xa4, 0x20, 0x8d, 0x65, 0x2a, 0x6d, 0xbe, 0x03, 0x11, 0xda, 0xba, 0xb2,
+ 0xa4, 0x42, 0xfc, 0x74, 0x12, 0x02, 0x39, 0x12, 0x34, 0x3b, 0xa7, 0x87,
+ 0x27, 0x5c, 0x89, 0x3c, 0xff, 0xcc, 0xf9, 0x46, 0x4d, 0xcc, 0x5d, 0x10,
+ 0xcf, 0x5f, 0x83, 0x0b, 0xd4, 0x8d, 0xbe, 0x54, 0x80, 0x46, 0x6c, 0x6b,
+ 0x56, 0x4f, 0xa4, 0x50, 0x2a, 0xf2, 0x48, 0xf6, 0x06, 0x8d, 0x45, 0xe9,
+ 0xcc, 0xd2, 0xcb, 0xb5, 0x10, 0x84, 0x41, 0x6a, 0xa3, 0x27, 0x75, 0x05,
+ 0x4c, 0x73, 0xc8, 0x61, 0x70, 0x4e, 0xff, 0x7b, 0x0d, 0x9f, 0xaa, 0x60,
+ 0x22, 0xfb, 0xfc, 0x41, 0x77, 0x07, 0x88, 0x38, 0x22, 0x8b, 0xf7, 0xa9,
+ 0xad, 0x0e, 0x5e, 0x60, 0x99, 0x41, 0xba, 0x40, 0x19, 0xab, 0x4d, 0x2d,
+ 0x52, 0x29, 0xb0, 0x3e, 0x1d, 0xd5, 0x61, 0x3b, 0x97, 0xb7, 0x2d, 0x3b,
+ 0x29, 0x3e, 0xb5, 0xbe, 0x0b, 0xbe, 0xe2, 0xdd, 0x74, 0xc3, 0x4a, 0xd5,
+ 0x51, 0x06, 0x1f, 0x43, 0xb0, 0xe0, 0xd4, 0x6c, 0x31, 0x99, 0xff, 0x2c,
+ 0x87, 0xf2, 0x62, 0xc9, 0xb9, 0xd8, 0x81, 0x5e, 0x03, 0x7d, 0x31, 0x06,
+ 0xae, 0x49, 0x58, 0x16, 0xa9, 0x55, 0x14, 0x53, 0x6e, 0xf1, 0xcb, 0x26,
+ 0xd3, 0x29, 0x19, 0xa5, 0x96, 0x9b, 0x13, 0x09, 0x80, 0xd3, 0x88, 0xba,
+ 0xf3, 0x75, 0x6b, 0x53, 0x9f, 0x5b, 0x51, 0x0b, 0x16, 0xdb, 0x65, 0xd3,
+ 0x0f, 0x19, 0xc5, 0xcc, 0x82, 0x3b, 0x94, 0xf0, 0x85, 0x16, 0x81, 0x13,
+ 0xed, 0x67, 0x4a, 0xf3, 0xcb, 0x75, 0xa1, 0x04, 0x6c, 0x96, 0x0a, 0x79,
+ 0x72, 0x1b, 0x6c, 0xa5, 0x27, 0xd9, 0xde, 0x96, 0xf7, 0x77, 0x31, 0x3e,
+ 0x5d, 0xe3, 0x17, 0xf6, 0xa4, 0xd8, 0xbc, 0xf5, 0x3e, 0x81, 0x75, 0xd7,
+ 0x7f, 0xe5, 0xde, 0x65, 0x0e, 0xb5, 0x6a, 0x6a, 0x18, 0xd8, 0xfe, 0xaf,
+ 0xec, 0xa7, 0xb6, 0x9e, 0x65, 0x4a, 0x2f, 0x13, 0xa5, 0xc7, 0xaa, 0x63,
+ 0x57, 0xef, 0x47, 0xf7, 0xf8, 0xc5, 0x18, 0x05, 0x4b, 0xd2, 0xb1, 0x60,
+ 0xe8, 0x2e, 0x76, 0x78, 0x5e, 0x4b, 0x55, 0xed, 0x60, 0x52, 0x04, 0x57,
+ 0x98, 0x2c, 0xdc, 0x3c, 0x40, 0xcc, 0xcf, 0x9f, 0xc0, 0x8f, 0xed, 0xb8,
+ 0x85, 0xe1, 0x7b, 0x37, 0xcb, 0x6a, 0x45, 0x13, 0x97, 0x23, 0xb6, 0xfa,
+ 0x0f, 0xcf, 0x6e, 0x0b, 0xe7, 0xcd, 0xe5, 0x9e, 0xd1, 0xfc, 0x01, 0x98,
+ 0x5f, 0x7a, 0x4b, 0xcd, 0xf9, 0xb8, 0x06, 0xe2, 0xb1, 0x23, 0x82, 0x05,
+ 0xb7, 0x4a, 0x0d, 0x78, 0xd2, 0x4c, 0x9b, 0x73, 0xd3, 0xdf, 0x91, 0x7c,
+ 0xaa, 0x90, 0x44, 0xaa, 0x4a, 0xbb, 0xa4, 0x90, 0x1a, 0xf1, 0x02, 0x06,
+ 0x48, 0x85, 0xc1, 0xda, 0x55, 0x20, 0x93, 0x47, 0x6b, 0x29, 0x8a, 0xa8,
+ 0xe7, 0x2b, 0xca, 0xa7, 0x32, 0xf6, 0x26, 0x0e, 0xd9, 0x39, 0x89, 0xda,
+ 0x3f, 0x20, 0xe3, 0xd5, 0xaf, 0x60, 0xa7, 0x8e, 0xb1, 0xb3, 0xb3, 0xad,
+ 0xb1, 0x4f, 0x43, 0x2f, 0x06, 0xfb, 0x4c, 0x0d, 0xc6, 0xa6, 0x26, 0xfc,
+ 0x97, 0x02, 0x87, 0xe9, 0xe4, 0x80, 0x4c, 0xe8, 0x50, 0xec, 0x53, 0x13,
+ 0xbd, 0x3e, 0xd4, 0xe9, 0x55, 0x1b, 0xfb, 0x9c, 0x6b, 0x89, 0x80, 0xcd,
+ 0x40, 0x50, 0x24, 0xd6, 0x99, 0x4e, 0x9f, 0x7a, 0xfb, 0xcb, 0x61, 0x38,
+ 0x1e, 0x56, 0xfd, 0xe8, 0xc5, 0x85, 0x5b, 0xd3, 0x91, 0xff, 0x00, 0x96,
+ 0x4b, 0x21, 0xca, 0x73, 0x78, 0x0e, 0xbe, 0xb2, 0xc1, 0x1d, 0xfc, 0xd0,
+ 0x03, 0xb6, 0x34, 0x58, 0x15, 0x1e, 0xc6, 0xc5, 0x08, 0xd0, 0x1b, 0xfc,
+ 0x57, 0xb3, 0x8d, 0x25, 0xec, 0xde, 0x82, 0x57, 0x68, 0x2a, 0xc6, 0xb3,
+ 0x28, 0x42, 0x5b, 0x2c, 0x04, 0x1c, 0x98, 0xd1, 0xfd, 0xa7, 0xb9, 0x8b,
+ 0x09, 0xa4, 0xfc, 0x5d, 0xe4, 0x1a, 0x2c, 0x2e, 0xbc, 0xfe, 0x08, 0x92,
+ 0xf1, 0x76, 0x83, 0xbd, 0x47, 0x61, 0x29, 0x88, 0x5e, 0x71, 0xcc, 0x2d,
+ 0x3b, 0xc5, 0xbd, 0x33, 0x88, 0x26, 0x0e, 0x3d, 0x25, 0xa2, 0x28, 0xaf,
+ 0x9c, 0x3f, 0x57, 0x12, 0x49, 0x76, 0x2a, 0xfb, 0xc6, 0x7c, 0x1a, 0x1a,
+ 0xd2, 0x05, 0x15, 0xbb, 0xe2, 0xa8, 0x53, 0xcc, 0x55, 0x64, 0xa2, 0x7b,
+ 0x42, 0xf6, 0x05, 0x78, 0x74, 0x37, 0xda, 0x72, 0x72, 0xa6, 0xfc, 0xd0,
+ 0x18, 0x93, 0x04, 0x02, 0xde, 0xf3, 0xb2, 0xb5, 0x7b, 0x06, 0xe1, 0xc7,
+ 0x09, 0xac, 0x1b, 0x93, 0x5e, 0xa1, 0x49, 0xfe, 0x65, 0x98, 0xbf, 0x86,
+ 0xb8, 0x91, 0xc7, 0xa5, 0x28, 0x99, 0x26, 0x48, 0xf0, 0x3b, 0xd3, 0xd5,
+ 0xc6, 0xdf, 0x22, 0x41, 0xff, 0x5d, 0x00, 0x64, 0x9f, 0x3c, 0xc8, 0xe7,
+ 0x12, 0x05, 0xe0, 0x12, 0xbe, 0x86, 0xda, 0x44, 0x89, 0x65, 0x26, 0x09,
+ 0xa1, 0x12, 0xfc, 0x92, 0x8d, 0xa0, 0x7d, 0xba, 0x3a, 0x3c, 0x20, 0xfa,
+ 0x05, 0x3c, 0x47, 0x8e, 0x1e, 0xef, 0xec, 0x69, 0xb8, 0x8f, 0x1c, 0xb6,
+ 0x90, 0x4f, 0x0f, 0x33, 0xe9, 0x16, 0x2a, 0x9c, 0xf9, 0x82, 0x25, 0x51,
+ 0x33, 0x6b, 0x8d, 0xce, 0x04, 0x2b, 0x31, 0xfd, 0xdb, 0x2f, 0x89, 0x56,
+ 0xb5, 0xbb, 0x10, 0x88, 0xfe, 0x22, 0xa1, 0x95, 0x7a, 0x36, 0x7c, 0x69,
+ 0xd7, 0x9a, 0xe1, 0x9c, 0x62, 0x53, 0x6b, 0xc3, 0xe0, 0x0e, 0x22, 0x1f,
+ 0x97, 0xb5, 0x1c, 0xd4, 0x90, 0x40, 0x32, 0xcc, 0x7b, 0x75, 0xb2, 0xe8,
+ 0x6d, 0x2e, 0x03, 0x65, 0x4d, 0xa8, 0x45, 0x5e, 0x1e, 0x4c, 0x79, 0xec,
+ 0x25, 0x4b, 0xec, 0x2c, 0xe7, 0x60, 0xe8, 0xd0, 0x55, 0x8a, 0x0a, 0xba,
+ 0xed, 0xce, 0x6b, 0x02, 0x1f, 0x89, 0x63, 0x11, 0x1f, 0xbe, 0xfd, 0x79,
+ 0x80, 0xf7, 0xd9, 0x1e, 0xd8, 0x13, 0x4b, 0xbe, 0x45, 0x97, 0xf0, 0xcf,
+ 0x63, 0x6d, 0xc2, 0x93, 0x76, 0x75, 0x18, 0x77, 0x1b, 0x71, 0x97, 0xe5,
+ 0x7c, 0xbe, 0x7b, 0x4c, 0xe3, 0xbe, 0x65, 0x5a, 0xc0, 0x2f, 0x13, 0xa0,
+ 0x13, 0x8e, 0xd0, 0x7a, 0x1b, 0xcc, 0xbc, 0x63, 0xed, 0x9c, 0x0f, 0xf6,
+ 0xbb, 0x64, 0xd5, 0x3a, 0xfc, 0x8a, 0x33, 0x7c, 0x19, 0x40, 0x90, 0xaa,
+ 0xa0, 0xc7, 0x70, 0xbf, 0x4a, 0x26, 0x3c, 0x6a, 0x46, 0x58, 0x9a, 0x66,
+ 0x3c, 0x88, 0x76, 0xbb, 0x53, 0x34, 0xce, 0x4f, 0xce, 0xab, 0x00, 0x00,
+ 0x08, 0x80, 0x2e, 0xc2, 0x3b, 0x8e, 0xfa, 0xcb, 0xc0, 0xbf, 0xdb, 0xc3,
+ 0xc1, 0x33, 0xa9, 0xa8, 0x15, 0x51, 0x03, 0xff, 0xb4, 0x62, 0x6a, 0x55,
+ 0x9e, 0x37, 0x0a, 0x2f, 0x39, 0xfb, 0xc5, 0x29, 0xd6, 0x81, 0x78, 0x51,
+ 0x41, 0x13, 0xfb, 0x03, 0x78, 0xbc, 0x9a, 0x62, 0xb9, 0xe0, 0x5d, 0xbf,
+ 0xb5, 0x59, 0x57, 0xf4, 0x16, 0x98, 0x22, 0xf7, 0x0d, 0x65, 0xb1, 0x6f,
+ 0x86, 0xb8, 0xdc, 0xd2, 0xba, 0x9a, 0x76, 0x0f, 0xc5, 0xb7, 0xd7, 0x52,
+ 0xb4, 0x0a, 0x16, 0x1b, 0xe6, 0xa1, 0x70, 0xce, 0x32, 0x9f, 0x48, 0x93,
+ 0xa6, 0x65, 0xe0, 0x76, 0x6e, 0x7c, 0xfd, 0x10, 0xba, 0x3c, 0x89, 0x5e,
+ 0x81, 0xad, 0x8f, 0x42, 0x6b, 0xad, 0x95, 0x20, 0x36, 0x13, 0xc5, 0x67,
+ 0xce, 0x31, 0x79, 0x04, 0x79, 0x33, 0x56, 0x90, 0x63, 0x5b, 0x17, 0xd0,
+ 0xfc, 0x71, 0x5e, 0x9f, 0x12, 0xfa, 0x71, 0x4e, 0x04, 0xb1, 0x61, 0xff,
+ 0x17, 0xd3, 0x8b, 0x16, 0x0e, 0x7b, 0xa6, 0xb1, 0xf3, 0xb8, 0x22, 0x78,
+ 0xf9, 0xc4, 0x61, 0xaa, 0xcb, 0x96, 0xf9, 0x37, 0x6f, 0x3f, 0xb7, 0x11,
+ 0x41, 0x9a, 0x46, 0x1c, 0x90, 0xb1, 0x1d, 0x47, 0x76, 0x9d, 0x7b, 0x3a,
+ 0x25, 0x3b, 0xd1, 0x8a, 0x23, 0x14, 0x97, 0xed, 0x97, 0x1f, 0xaa, 0xa2,
+ 0x2b, 0xa0, 0x03, 0x26, 0x6d, 0xdc, 0x85, 0xac, 0x02, 0x06, 0x4c, 0xdb,
+ 0xb9, 0x0b, 0x58, 0x04, 0x0c, 0x99, 0xb7, 0x71, 0x26, 0xcd, 0x77, 0x11,
+ 0xd2, 0x24, 0x7c, 0xc9, 0x12, 0xbf, 0x1f, 0x34, 0x08, 0xa3, 0xf4, 0xab,
+ 0x0d, 0x03, 0xb3, 0x9f, 0x73, 0xd0, 0x28, 0xa0, 0x8b, 0xb9, 0xb5, 0xa8,
+ 0x29, 0x1b, 0xd5, 0x5c, 0x51, 0xc7, 0x90, 0x7a, 0xee, 0x6d, 0x6a, 0xd1,
+ 0x1a, 0x84, 0xd8, 0x19, 0x3b, 0xb8, 0x9f, 0x00, 0xa4, 0x06, 0x00, 0x00,
+ 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x15, 0x00, 0x06,
+ 0x10, 0x28, 0x00, 0x1c, 0x8f, 0xff, 0x4b, 0xfd, 0x8e, 0xc4, 0xb5, 0x69,
+ 0xb0, 0xa7, 0xbf, 0xf9, 0x88, 0xb8, 0xb7, 0xff, 0xef, 0x31, 0x7f, 0xd6,
+ 0x7f, 0xfd, 0x90, 0x87, 0xde, 0xc9, 0x73, 0x25, 0x76, 0x50, 0xc9, 0x28,
+ 0xbf, 0xa8, 0x23, 0xbc, 0xd6, 0xe2, 0x6b, 0x37, 0x51, 0xd9, 0x29, 0x2a,
+ 0xc1, 0x53, 0xd5, 0xe6, 0x87, 0xd9, 0x27, 0x68, 0x84, 0xdd, 0xe3, 0xa6,
+ 0x49, 0x7f, 0xbd, 0xe5, 0x38, 0x0f, 0xb6, 0xcb, 0x5f, 0x65, 0x51, 0xbd,
+ 0xa1, 0x86, 0x38, 0xc6, 0x60, 0xf5, 0xc2, 0x16, 0xeb, 0x97, 0xf9, 0xe1,
+ 0x92, 0xa5, 0xf1, 0x24, 0x02, 0xb7, 0xbc, 0xa4, 0x74, 0x86, 0x97, 0xd0,
+ 0x7e, 0x91, 0x3d, 0x54, 0x89, 0xab, 0xb6, 0x62, 0xce, 0x0e, 0x5c, 0x96,
+ 0xfd, 0xb0, 0x98, 0xce, 0x28, 0x59, 0x8f, 0x12, 0x0c, 0x05, 0xe0, 0xff,
+ 0xec, 0x9b, 0x52, 0x4e, 0xe8, 0x19, 0x72, 0x47, 0xff, 0xea, 0xa2, 0x8e,
+ 0x61, 0x28, 0x08, 0xe6, 0x4c, 0x30, 0x2c, 0xfa, 0xec, 0xcb, 0xde, 0xc6,
+ 0xd8, 0xe6, 0x3e, 0x21, 0x10, 0x38, 0xe8, 0xa8, 0x17, 0xad, 0xfd, 0x44,
+ 0x44, 0x1e, 0xb6, 0xa4, 0xfe, 0x03, 0xb6, 0x88, 0x39, 0x79, 0x9f, 0x23,
+ 0xcb, 0x3c, 0xe8, 0xdd, 0xe0, 0x9b, 0x64, 0x5b, 0xe0, 0x27, 0xcc, 0xd1,
+ 0x08, 0xad, 0x62, 0x8b, 0x94, 0x21, 0x43, 0x31, 0x2a, 0x2e, 0x08, 0x02,
+ 0x35, 0x6a, 0x5e, 0x17, 0x8b, 0x36, 0xa7, 0xb9, 0x56, 0xe0, 0x0f, 0x39,
+ 0x78, 0x86, 0x2b, 0x16, 0x05, 0xa8, 0x9c, 0x47, 0xb4, 0x7e, 0xfd, 0x88,
+ 0x41, 0xa7, 0x84, 0xf0, 0xb3, 0x51, 0x48, 0x2a, 0xca, 0xb1, 0xe4, 0x32,
+ 0x11, 0x06, 0xa4, 0xfd, 0x5d, 0x04, 0x36, 0x02, 0x58, 0x50, 0x87, 0xbc,
+ 0xe1, 0xe8, 0x08, 0x62, 0x78, 0xb7, 0xfe, 0xc2, 0x1a, 0xf3, 0xfd, 0xaa,
+ 0x0f, 0x96, 0xe3, 0x7f, 0x7a, 0xfd, 0x98, 0xed, 0x35, 0xca, 0x15, 0x38,
+ 0x6d, 0xde, 0xed, 0x90, 0x60, 0x85, 0xa6, 0x53, 0x39, 0x09, 0xf2, 0x19,
+ 0x4b, 0x45, 0x54, 0x55, 0x46, 0xa1, 0xa6, 0x1f, 0xbe, 0xbc, 0xc4, 0x6c,
+ 0x4a, 0x81, 0x86, 0xf1, 0xc5, 0xfe, 0x00, 0xb9, 0xe0, 0x83, 0x89, 0x7b,
+ 0xd3, 0x91, 0x06, 0x79, 0x9b, 0x3d, 0x93, 0x73, 0x8a, 0x72, 0x74, 0x8a,
+ 0x15, 0xf2, 0x30, 0x0b, 0xcb, 0xd7, 0xb1, 0x0b, 0xbe, 0xe2, 0xc7, 0x89,
+ 0xdb, 0x2f, 0xfb, 0xcb, 0x46, 0x71, 0xca, 0x42, 0xfe, 0x91, 0xb5, 0x1a,
+ 0xbe, 0x5f, 0x45, 0xd2, 0x5f, 0xc0, 0xac, 0x51, 0xb4, 0xf0, 0x32, 0x24,
+ 0x55, 0xcc, 0x45, 0x00, 0x39, 0x00, 0x75, 0x51, 0xe6, 0xa9, 0xe1, 0x90,
+ 0xda, 0xdc, 0xf0, 0x3f, 0x78, 0x35, 0x87, 0x51, 0xc4, 0x53, 0x65, 0xbb,
+ 0xba, 0x8b, 0x2b, 0xae, 0xf4, 0x89, 0x1f, 0xd3, 0xcf, 0x15, 0x6f, 0xef,
+ 0xd4, 0x78, 0x3c, 0x0e, 0x1b, 0xfb, 0x67, 0xae, 0xc1, 0xdc, 0xc0, 0xdc,
+ 0x22, 0xcc, 0x06, 0x1c, 0xe0, 0x94, 0x13, 0xd0, 0xbb, 0x50, 0xc9, 0x26,
+ 0xbb, 0x07, 0xfb, 0x4a, 0x05, 0x19, 0x45, 0xef, 0xf8, 0x2c, 0x7a, 0xf3,
+ 0xc9, 0xb0, 0xdc, 0xd1, 0x13, 0x3d, 0xb2, 0xf8, 0x85, 0xc0, 0x64, 0xb6,
+ 0x15, 0x61, 0x9b, 0x11, 0xab, 0x4e, 0x5c, 0x98, 0x0e, 0x8e, 0xe2, 0x52,
+ 0xff, 0x7a, 0x0e, 0x3e, 0x76, 0x6c, 0x7f, 0x48, 0x44, 0x67, 0x78, 0x66,
+ 0x83, 0xd2, 0xca, 0x46, 0x73, 0x02, 0x4b, 0x51, 0xb4, 0x0d, 0x69, 0xd0,
+ 0x6a, 0xd4, 0x67, 0xcd, 0x36, 0xb3, 0x7b, 0x9f, 0x31, 0x5e, 0x2f, 0x03,
+ 0xa4, 0xb3, 0x70, 0x2f, 0x34, 0x11, 0xeb, 0x96, 0x10, 0xda, 0xfa, 0xc5,
+ 0xae, 0xf3, 0x1b, 0x6d, 0xe2, 0x65, 0x22, 0x9f, 0xcc, 0xcb, 0x8d, 0x27,
+ 0x1f, 0xe2, 0x17, 0x69, 0xff, 0x7f, 0xc3, 0xf6, 0xbc, 0x9a, 0xb0, 0x7d,
+ 0xe2, 0x9a, 0x66, 0x20, 0x0f, 0x77, 0xe7, 0x03, 0x4d, 0xf1, 0xee, 0x8b,
+ 0x62, 0x09, 0x12, 0xee, 0xa3, 0xbd, 0x5e, 0xa3, 0x21, 0x09, 0x79, 0xf1,
+ 0xfe, 0xa8, 0xe5, 0x27, 0x93, 0x74, 0xee, 0x75, 0x86, 0xe3, 0x68, 0x4d,
+ 0x2b, 0xb2, 0xf6, 0x37, 0xcf, 0x91, 0xc8, 0x81, 0x38, 0xf6, 0xaa, 0x92,
+ 0x2d, 0x77, 0x60, 0xb0, 0xdb, 0xcc, 0x10, 0x05, 0x14, 0xe6, 0x47, 0xa0,
+ 0x32, 0xe0, 0xf8, 0x1c, 0xa9, 0xae, 0x72, 0xa3, 0x70, 0x7c, 0x22, 0x36,
+ 0x84, 0x04, 0xce, 0x7a, 0x72, 0xf1, 0x4e, 0xdb, 0xba, 0x7c, 0x12, 0x4a,
+ 0x0c, 0xc9, 0xb9, 0x71, 0xc7, 0xdc, 0x8b, 0xec, 0x93, 0xf4, 0x09, 0x7f,
+ 0x6d, 0x13, 0x6d, 0xc5, 0x41, 0x62, 0xf6, 0x28, 0xdb, 0x34, 0x2c, 0x86,
+ 0x9b, 0xc6, 0x6c, 0xf7, 0xa5, 0x8c, 0xcb, 0x7f, 0x1b, 0x26, 0x4d, 0x14,
+ 0x71, 0x90, 0x5a, 0x7a, 0x2b, 0x2c, 0x44, 0x90, 0xc5, 0x27, 0xa6, 0x9b,
+ 0x27, 0xf6, 0x62, 0x80, 0x99, 0xc6, 0x37, 0xe9, 0xb9, 0xef, 0xeb, 0xee,
+ 0xd7, 0x7f, 0xbf, 0x32, 0xf9, 0x18, 0x7b, 0x0a, 0xbe, 0x44, 0x72, 0x06,
+ 0x06, 0x15, 0xe3, 0xcc, 0x1a, 0x6a, 0xa9, 0xfc, 0x45, 0xe7, 0x57, 0x0f,
+ 0xfa, 0x56, 0x10, 0x5e, 0xf0, 0x99, 0x65, 0x0f, 0x75, 0x09, 0xff, 0x3a,
+ 0x19, 0xc2, 0x9d, 0x74, 0x76, 0x58, 0x7c, 0xc3, 0xb1, 0x4d, 0xfe, 0xd4,
+ 0xbd, 0xf6, 0xc4, 0xbc, 0x8f, 0xe8, 0x7c, 0x60, 0xb8, 0x18, 0x82, 0x1a,
+ 0xbe, 0x0f, 0x39, 0xd3, 0x7a, 0xbb, 0x88, 0x31, 0x7c, 0x51, 0x4d, 0x4c,
+ 0x97, 0x34, 0xdf, 0x4d, 0xd0, 0xa1, 0xc4, 0xde, 0xf3, 0x85, 0x96, 0x26,
+ 0xe2, 0x7d, 0xdc, 0x86, 0x74, 0xd7, 0x72, 0xcd, 0xda, 0x3f, 0xbd, 0x88,
+ 0x59, 0x1e, 0x35, 0xe4, 0x78, 0x42, 0x3e, 0x26, 0x12, 0xea, 0xf8, 0x10,
+ 0x41, 0x96, 0x50, 0x6b, 0xa8, 0x66, 0xe1, 0xcd, 0x88, 0x45, 0x57, 0xb0,
+ 0x0c, 0x88, 0x31, 0x42, 0xfb, 0x18, 0x4e, 0x60, 0x97, 0x8d, 0xe8, 0xf1,
+ 0xcc, 0xd3, 0x01, 0xea, 0x78, 0x79, 0xd9, 0x03, 0x98, 0xca, 0x8f, 0x49,
+ 0x95, 0xfd, 0x9d, 0x75, 0x6f, 0x64, 0x17, 0x09, 0x0d, 0x83, 0x92, 0x1a,
+ 0x01, 0xd4, 0x3d, 0xe6, 0x29, 0xd9, 0xd9, 0x42, 0xde, 0x49, 0xe2, 0xc4,
+ 0x51, 0x18, 0x83, 0x15, 0x90, 0x3d, 0x47, 0xed, 0x53, 0x2b, 0xe2, 0xd3,
+ 0x79, 0xbf, 0x0c, 0x24, 0xa8, 0x83, 0xc1, 0xf2, 0x2f, 0xf4, 0xe1, 0xbf,
+ 0x56, 0x51, 0x1d, 0x29, 0x74, 0x13, 0xdd, 0x0f, 0x75, 0x1d, 0xcc, 0x3f,
+ 0xa8, 0xfd, 0x8b, 0xe0, 0xd7, 0xb6, 0xe1, 0xbe, 0xda, 0x0f, 0x25, 0x3c,
+ 0xc2, 0x80, 0x51, 0x33, 0xdb, 0x07, 0x0d, 0xc5, 0x5f, 0x6f, 0x6f, 0x8b,
+ 0x8f, 0x22, 0x88, 0x55, 0x06, 0x47, 0x65, 0xa7, 0x06, 0xfb, 0x1f, 0x84,
+ 0xa2, 0xee, 0x6b, 0x5f, 0x01, 0xad, 0x58, 0xa1, 0x31, 0xe7, 0x3f, 0xe8,
+ 0x43, 0x86, 0xfe, 0xac, 0x65, 0xf3, 0xbb, 0x55, 0xf8, 0x69, 0xdf, 0xab,
+ 0xdd, 0xd3, 0x33, 0xdc, 0xbf, 0x1d, 0xec, 0xa1, 0x05, 0xb6, 0x05, 0x80,
+ 0xa6, 0x76, 0x04, 0xe5, 0x52, 0x73, 0x2b, 0x11, 0x6c, 0x19, 0x03, 0xff,
+ 0x8d, 0x9b, 0x02, 0x87, 0xdd, 0x5c, 0x33, 0xc6, 0x9b, 0xd9, 0x3d, 0x2d,
+ 0xb2, 0xbc, 0x31, 0xa5, 0x1e, 0xcf, 0x11, 0x55, 0x26, 0xfc, 0x9f, 0xee,
+ 0x38, 0x19, 0x0d, 0xeb, 0xa9, 0x28, 0xfa, 0x07, 0x3e, 0x7f, 0x78, 0xae,
+ 0x20, 0xf0, 0x89, 0x11, 0xc6, 0xca, 0xdc, 0xdf, 0xf6, 0xed, 0x9c, 0x71,
+ 0x38, 0xd7, 0x92, 0xf0, 0x98, 0x96, 0xb0, 0xb5, 0x1f, 0x43, 0x91, 0xf8,
+ 0x52, 0xbd, 0xf2, 0x42, 0xda, 0x3c, 0x2e, 0xdf, 0x31, 0x66, 0x7c, 0x7f,
+ 0x4e, 0x8c, 0xbb, 0xac, 0x97, 0x41, 0xb8, 0xc2, 0x55, 0x37, 0x57, 0xe9,
+ 0x50, 0x2d, 0x4b, 0x19, 0xd2, 0x67, 0x6c, 0x3a, 0x71, 0x8a, 0x3d, 0x62,
+ 0x32, 0x71, 0xbd, 0x2c, 0xae, 0x0d, 0x0f, 0xe1, 0xfb, 0x92, 0xa7, 0x15,
+ 0x4c, 0x28, 0xd4, 0x11, 0x68, 0xfd, 0x2b, 0xc1, 0xf7, 0x5e, 0x50, 0xd0,
+ 0x01, 0x83, 0xb7, 0xf7, 0x24, 0xc2, 0xdb, 0x08, 0xea, 0x39, 0x36, 0xe3,
+ 0x40, 0x72, 0x6e, 0xef, 0xc4, 0x99, 0x00, 0xa0, 0x3a, 0xc1, 0x0d, 0x31,
+ 0x84, 0x43, 0xda, 0xbe, 0x9a, 0x1a, 0x0a, 0x30, 0x01, 0x55, 0x49, 0x8b,
+ 0xa3, 0x21, 0xe9, 0x1c, 0xc4, 0x12, 0xba, 0x15, 0x33, 0xa3, 0xa2, 0x8b,
+ 0xb4, 0x12, 0xe7, 0x1f, 0x58, 0xd1, 0x9d, 0x18, 0x8c, 0x6c, 0x8a, 0x41,
+ 0x77, 0xd5, 0xf4, 0x79, 0x60, 0xd3, 0xa9, 0x8d, 0x94, 0x12, 0x2b, 0x6b,
+ 0x01, 0xc0, 0x38, 0x39, 0x74, 0x67, 0x61, 0xd4, 0x73, 0xdc, 0x91, 0xac,
+ 0x0a, 0x55, 0x2c, 0x34, 0x26, 0x9e, 0x71, 0xa8, 0xe7, 0xcf, 0x78, 0xa8,
+ 0xda, 0xd7, 0x2f, 0x75, 0x6e, 0xc7, 0x07, 0xf7, 0x8c, 0x1a, 0x2d, 0x29,
+ 0x60, 0xef, 0xa5, 0x51, 0x5d, 0x99, 0x6d, 0x52, 0x87, 0x2f, 0xe0, 0x83,
+ 0xd2, 0xd0, 0x5c, 0xbb, 0x55, 0x88, 0xa5, 0xa2, 0xa8, 0x8b, 0x3b, 0xbb,
+ 0x6e, 0xee, 0x29, 0xef, 0x88, 0x39, 0x11, 0x65, 0xe1, 0x3e, 0x75, 0x3b,
+ 0x0e, 0xec, 0x38, 0x7d, 0x45, 0x0b, 0xb4, 0x80, 0xd2, 0xd0, 0x11, 0xd2,
+ 0x88, 0x7b, 0x3f, 0xff, 0xfa, 0x47, 0x7f, 0xd7, 0xf7, 0x2d, 0xaf, 0x4b,
+ 0x27, 0xb7, 0xd0, 0xbf, 0xd5, 0x2b, 0xe8, 0x7d, 0x37, 0xe3, 0x1f, 0xe9,
+ 0xd4, 0x5b, 0x26, 0x03, 0x3c, 0x96, 0x21, 0xbf, 0x0d, 0x06, 0xd8, 0xa6,
+ 0x62, 0x22, 0xd2, 0x15, 0x8a, 0x0d, 0xe8, 0x09, 0xbb, 0xcb, 0x07, 0x88,
+ 0xf8, 0x6a, 0x6f, 0x36, 0x54, 0x2b, 0x49, 0x9d, 0x34, 0x28, 0x87, 0xe0,
+ 0x9c, 0xb7, 0x9a, 0x97, 0x1a, 0xc7, 0x95, 0xce, 0x2f, 0xa9, 0xba, 0xde,
+ 0xdb, 0xaf, 0x22, 0x83, 0x0f, 0xc5, 0x8e, 0x1d, 0xc2, 0xb2, 0x09, 0x29,
+ 0x1f, 0xee, 0x9a, 0x19, 0xf8, 0x5b, 0xbc, 0x0f, 0x94, 0x4c, 0x5d, 0x49,
+ 0x33, 0x03, 0x7d, 0xce, 0xe3, 0x5d, 0xf3, 0x70, 0xb3, 0x88, 0x50, 0x39,
+ 0xb4, 0x7e, 0xbb, 0xc9, 0x49, 0x5f, 0x8c, 0x2d, 0x1b, 0x04, 0x15, 0xd3,
+ 0xba, 0x17, 0x33, 0xea, 0x3a, 0x26, 0xe7, 0x1b, 0xe7, 0x06, 0x84, 0xe8,
+ 0x65, 0xb2, 0xbb, 0xdf, 0x29, 0xea, 0x6f, 0x61, 0xec, 0xd0, 0x2a, 0xfd,
+ 0xd4, 0x79, 0xc9, 0x05, 0xd2, 0x0d, 0xde, 0xf3, 0x7b, 0xff, 0x04, 0x3f,
+ 0xba, 0x1b, 0x6d, 0xf2, 0x11, 0x8b, 0x93, 0x58, 0x47, 0x09, 0x53, 0x50,
+ 0x9d, 0x44, 0x0a, 0xf5, 0x2b, 0xed, 0x3e, 0x9e, 0xb0, 0x0c, 0xa8, 0x22,
+ 0x01, 0x1b, 0xde, 0xd1, 0xe9, 0xcc, 0xc3, 0x7b, 0x27, 0x48, 0xa7, 0xc0,
+ 0x38, 0xd3, 0x02, 0x4d, 0x67, 0x3f, 0x14, 0xb9, 0x6a, 0x05, 0x61, 0x6f,
+ 0x85, 0x39, 0x5c, 0x69, 0xfd, 0x90, 0x69, 0x60, 0xef, 0x1b, 0x13, 0x6b,
+ 0x26, 0x6e, 0x8a, 0x30, 0x7a, 0xd1, 0x10, 0x00, 0xfe, 0x8d, 0x0e, 0x19,
+ 0x6a, 0xfb, 0xbe, 0x2e, 0xf1, 0xb1, 0x36, 0xb2, 0x66, 0xe8, 0xa3, 0x07,
+ 0xad, 0x11, 0x00, 0x0f, 0xe8, 0xd0, 0xe1, 0x96, 0xaf, 0xbb, 0xe2, 0xef,
+ 0x1b, 0x13, 0x6b, 0x26, 0x6b, 0xdf, 0x66, 0x04, 0x72, 0x32, 0xd1, 0x77,
+ 0x3d, 0xbc, 0xc3, 0xa9, 0xd1, 0x82, 0xa6, 0xaf, 0xa8, 0x55, 0xf6, 0xda,
+ 0xe2, 0x42, 0xa2, 0x41, 0xdb, 0xdd, 0x47, 0xe6, 0x95, 0x23, 0xd6, 0x98,
+ 0x15, 0xea, 0xa5, 0xc9, 0xfe, 0xf6, 0xb7, 0x5a, 0x2f, 0x0a, 0xeb, 0x19,
+ 0x7b, 0x44, 0xb8, 0x8f, 0x48, 0x63, 0xb1, 0x8e, 0x0a, 0x70, 0xe1, 0xe9,
+ 0x94, 0xba, 0xba, 0x44, 0xaa, 0x7e, 0xf2, 0x15, 0x16, 0xfc, 0xfe, 0xa6,
+ 0xa3, 0x97, 0x6b, 0xaf, 0xe5, 0x33, 0x72, 0x38, 0x44, 0x9f, 0x01, 0x5a,
+ 0x79, 0x00, 0xf5, 0x2a, 0x12, 0xc2, 0x3b, 0x94, 0x17, 0x12, 0x6a, 0x8f,
+ 0x51, 0x87, 0x74, 0x03, 0x06, 0x1c, 0xec, 0x85, 0x6a, 0x1b, 0x32, 0xb3,
+ 0x21, 0xff, 0xf1, 0xc1, 0x30, 0xd4, 0x74, 0xa0, 0xd7, 0x38, 0xc5, 0x53,
+ 0xd9, 0x7e, 0x34, 0xd3, 0xec, 0x18, 0xd7, 0x72, 0x95, 0xc6, 0xc3, 0x29,
+ 0xfb, 0x14, 0xc2, 0xe7, 0x1d, 0x62, 0x9a, 0x54, 0xc7, 0x0d, 0xc3, 0x1c,
+ 0xae, 0x6d, 0x41, 0x2b, 0x5e, 0x28, 0xef, 0x2d, 0x39, 0xb9, 0x24, 0x88,
+ 0xf4, 0x37, 0x5c, 0x6c, 0x80, 0xf8, 0xfd, 0x3e, 0x28, 0x03, 0xda, 0xe1,
+ 0x9a, 0x65, 0xdc, 0xc6, 0x36, 0x27, 0xf9, 0xc1, 0x50, 0x92, 0xdf, 0x18,
+ 0xe0, 0x10, 0xc9, 0xb7, 0x9d, 0x1c, 0xf2, 0x55, 0x42, 0x7b, 0xcd, 0x6e,
+ 0xfa, 0x70, 0x67, 0xe3, 0x16, 0x67, 0xb1, 0x8d, 0x87, 0x44, 0x4f, 0xe7,
+ 0x0f, 0xe8, 0x8a, 0x3c, 0x98, 0x9f, 0x55, 0x98, 0x7a, 0xbd, 0x4f, 0x11,
+ 0xc7, 0x52, 0xbd, 0x00, 0x71, 0x02, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x71, 0x0e, 0x00, 0x04, 0x10, 0x24, 0x00, 0x1e,
+ 0xdc, 0x14, 0xa6, 0x18, 0x62, 0xc6, 0x5d, 0x27, 0xc8, 0x4e, 0xdf, 0x46,
+ 0x5c, 0xb4, 0x45, 0x88, 0x87, 0xfa, 0x64, 0xdb, 0x70, 0x3d, 0xce, 0x6e,
+ 0x2f, 0x68, 0xf2, 0x6b, 0x9d, 0x6c, 0xba, 0x30, 0xc0, 0x99, 0x41, 0x09,
+ 0x3c, 0xb3, 0x80, 0x2b, 0x7e, 0x5c, 0x58, 0xf6, 0x25, 0xdc, 0xd5, 0xbe,
+ 0x84, 0x67, 0xda, 0xa4, 0xcb, 0xae, 0x84, 0x62, 0x51, 0xb3, 0x50, 0xe8,
+ 0x52, 0xff, 0x26, 0xfa, 0x70, 0xb1, 0x52, 0xaa, 0xfc, 0xc0, 0x59, 0xee,
+ 0x7f, 0xbf, 0x56, 0x01, 0xbb, 0x8f, 0x50, 0x64, 0xfa, 0x8b, 0x6e, 0x16,
+ 0xc3, 0x4b, 0xab, 0xc3, 0x5a, 0xf5, 0x64, 0xfc, 0x43, 0x37, 0x06, 0x7e,
+ 0x89, 0x99, 0x06, 0xd6, 0x9f, 0x58, 0x7b, 0xf8, 0xf0, 0x21, 0xf8, 0xca,
+ 0x75, 0x90, 0xd9, 0x55, 0xb4, 0xc9, 0x10, 0x5b, 0xff, 0x0c, 0x60, 0x5f,
+ 0x75, 0x3e, 0xce, 0x84, 0x15, 0x70, 0x08, 0xcc, 0x44, 0x13, 0x0c, 0xd1,
+ 0x9f, 0x72, 0x59, 0x46, 0x57, 0x80, 0x38, 0x18, 0x93, 0xb2, 0xa8, 0x76,
+ 0xf9, 0x94, 0xcc, 0x39, 0xce, 0x36, 0xaa, 0x76, 0xb3, 0x9f, 0x58, 0xe9,
+ 0xc1, 0xa9, 0x07, 0xe3, 0xdf, 0xd6, 0x95, 0x77, 0x90, 0x46, 0xe3, 0x1e,
+ 0xe7, 0x51, 0xcc, 0xda, 0x52, 0x9e, 0x25, 0x00, 0xce, 0xbd, 0xfc, 0xbe,
+ 0x0c, 0x5d, 0xcd, 0x67, 0x04, 0x85, 0xab, 0x75, 0xa7, 0xba, 0x5c, 0x52,
+ 0xef, 0xda, 0x73, 0x75, 0x15, 0xd6, 0xde, 0x18, 0x70, 0x1b, 0x10, 0x2c,
+ 0xde, 0x78, 0x8a, 0x6a, 0x28, 0x3f, 0xbf, 0xf8, 0xbc, 0x9b, 0x2c, 0x4e,
+ 0x9f, 0x9c, 0x4f, 0xad, 0xec, 0x02, 0xf3, 0xad, 0xf2, 0xbf, 0x13, 0xc2,
+ 0xaa, 0xb5, 0xa6, 0x43, 0xdc, 0x08, 0x16, 0xc7, 0x92, 0x02, 0x9e, 0x4d,
+ 0xd1, 0xe8, 0x6c, 0x7f, 0xa4, 0xa4, 0x39, 0x88, 0xb2, 0x52, 0xfa, 0xe0,
+ 0x40, 0xa4, 0x83, 0x81, 0x4e, 0x71, 0xce, 0x1e, 0xf2, 0x10, 0xf4, 0x55,
+ 0x84, 0x9a, 0x8f, 0x6e, 0xf1, 0x38, 0x12, 0x86, 0x9d, 0x10, 0x24, 0x5c,
+ 0x06, 0xc2, 0x6a, 0x65, 0x86, 0xff, 0xd4, 0xa2, 0x8a, 0xc6, 0xd9, 0x08,
+ 0xc6, 0xb7, 0x9a, 0xed, 0x03, 0xc1, 0x42, 0xd0, 0x96, 0x5f, 0xda, 0xf1,
+ 0xc5, 0x6c, 0x73, 0x1b, 0xb4, 0x4a, 0xaf, 0x2a, 0xe1, 0xae, 0xb8, 0xbf,
+ 0xdf, 0x36, 0x82, 0x8b, 0xa5, 0x7d, 0x19, 0xba, 0xff, 0x25, 0x50, 0x3e,
+ 0x46, 0x43, 0x58, 0xfc, 0xae, 0x71, 0x32, 0x22, 0xe7, 0xae, 0x07, 0x0f,
+ 0xaf, 0xe8, 0x0b, 0xe6, 0xbc, 0x84, 0x29, 0xae, 0xe0, 0x54, 0x02, 0x25,
+ 0x77, 0x3b, 0x0f, 0xf4, 0x91, 0x1d, 0xc5, 0x44, 0x3c, 0x40, 0x19, 0xf5,
+ 0x42, 0x1b, 0x12, 0x3c, 0xec, 0x1b, 0x75, 0x76, 0xb4, 0xf8, 0x3a, 0x80,
+ 0xcc, 0x06, 0xd9, 0x15, 0x49, 0xd3, 0xd2, 0x91, 0xd8, 0xde, 0x18, 0x51,
+ 0x25, 0x3c, 0x44, 0x6a, 0xb9, 0xc4, 0xa0, 0xd5, 0xd0, 0x97, 0x6c, 0xd8,
+ 0x62, 0xbc, 0xed, 0x87, 0x1d, 0xb7, 0xab, 0xa4, 0xca, 0x31, 0xf6, 0x9a,
+ 0x69, 0x83, 0xa7, 0xaf, 0xc6, 0xc7, 0xfd, 0x62, 0x09, 0x7f, 0x41, 0x7b,
+ 0x4d, 0x0d, 0x9e, 0x99, 0x70, 0x1c, 0xb6, 0x89, 0x62, 0xd8, 0x2b, 0xfd,
+ 0xbb, 0x43, 0x6e, 0x04, 0x43, 0x78, 0x8e, 0x70, 0x00, 0x8a, 0xa8, 0x9b,
+ 0xc2, 0x51, 0xff, 0xfd, 0xa9, 0xc4, 0xfa, 0xe6, 0x97, 0xe8, 0xfd, 0x97,
+ 0x8d, 0x35, 0xf6, 0x74, 0x61, 0x41, 0x44, 0x79, 0x60, 0x3e, 0xec, 0x5c,
+ 0xb4, 0x5d, 0xbc, 0xab, 0x23, 0x42, 0xda, 0x37, 0x4b, 0xd9, 0x6f, 0x74,
+ 0x3f, 0x95, 0x1f, 0x53, 0x33, 0x03, 0xba, 0x9e, 0x06, 0xda, 0x5b, 0xcf,
+ 0xf8, 0x6d, 0x6e, 0x7c, 0x99, 0xf9, 0x54, 0xea, 0x9e, 0x76, 0x9b, 0x06,
+ 0x73, 0x46, 0xde, 0xeb, 0x2b, 0x79, 0xd7, 0xdc, 0x94, 0xd9, 0x15, 0xff,
+ 0x31, 0xc6, 0x50, 0x58, 0x0f, 0xd2, 0x02, 0x2c, 0x79, 0xa1, 0x8c, 0x6e,
+ 0x8f, 0x67, 0x2b, 0x89, 0xfb, 0xd7, 0xe3, 0xf1, 0x5f, 0xb4, 0x0f, 0x8b,
+ 0x68, 0x11, 0xb8, 0x18, 0x9d, 0xe3, 0x73, 0xa9, 0x73, 0x58, 0x48, 0x20,
+ 0xde, 0x77, 0x21, 0xd3, 0x96, 0xcc, 0x2c, 0x95, 0x5e, 0x8e, 0x5b, 0x6a,
+ 0x26, 0xf4, 0x0c, 0x3c, 0x84, 0x28, 0x50, 0x7d, 0x92, 0x41, 0x73, 0x07,
+ 0x13, 0x38, 0xd6, 0x40, 0x59, 0xa0, 0x01, 0x1e, 0xae, 0x2c, 0xea, 0x83,
+ 0x60, 0xe0, 0x13, 0x6c, 0x2f, 0x3e, 0xe9, 0x0d, 0xcf, 0x98, 0x8a, 0x5a,
+ 0xc2, 0x76, 0xed, 0x87, 0x7a, 0x87, 0x4d, 0x51, 0xd4, 0xa9, 0xda, 0x1a,
+ 0x0c, 0x69, 0xdd, 0xf8, 0x00, 0xa3, 0x06, 0x00, 0x00, 0xc3, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x16, 0x00, 0x06, 0x10, 0x18, 0x14,
+ 0x7a, 0xc0, 0xfe, 0x03, 0x8d, 0xac, 0xed, 0x31, 0xc0, 0xe4, 0x2f, 0x64,
+ 0x3f, 0x84, 0x54, 0xd7, 0xfd, 0xbc, 0x64, 0xba, 0x59, 0xc4, 0x99, 0xd1,
+ 0x17, 0x8d, 0xd7, 0x84, 0x4c, 0x97, 0xe9, 0x2f, 0x94, 0xa2, 0xcb, 0xe8,
+ 0x86, 0x06, 0x56, 0x3f, 0x8e, 0x91, 0xf4, 0x96, 0x65, 0xfd, 0x7a, 0x1f,
+ 0x16, 0xb0, 0xc4, 0xa6, 0x96, 0x5f, 0x61, 0x30, 0xdf, 0x34, 0x56, 0xfc,
+ 0x32, 0x43, 0xcf, 0xa8, 0xda, 0x68, 0xa4, 0x05, 0xba, 0x9f, 0xf3, 0x03,
+ 0x1d, 0x3f, 0x9d, 0x5f, 0x89, 0xc2, 0xc2, 0x44, 0x28, 0x35, 0x92, 0x44,
+ 0x1f, 0xd1, 0x4c, 0x18, 0x35, 0xd9, 0xce, 0xab, 0x56, 0xe3, 0xa2, 0x69,
+ 0xec, 0x5d, 0xc6, 0xd4, 0xb9, 0x3f, 0x40, 0x03, 0x9f, 0x3b, 0xd5, 0x25,
+ 0x3e, 0xd4, 0x90, 0xbc, 0x7d, 0x6f, 0xc2, 0x0c, 0x03, 0xeb, 0x24, 0xa5,
+ 0x8e, 0xea, 0x6d, 0x56, 0x74, 0x7b, 0xda, 0x00, 0x02, 0x87, 0x95, 0x8b,
+ 0x09, 0x04, 0x25, 0x1e, 0x2a, 0xc0, 0xd6, 0xe7, 0x26, 0x0f, 0x2a, 0xac,
+ 0xd9, 0x5f, 0x10, 0x36, 0x42, 0xeb, 0xfe, 0xa1, 0x98, 0x10, 0xf5, 0x13,
+ 0x32, 0x96, 0x53, 0x09, 0x3c, 0x9c, 0x15, 0x37, 0x75, 0x2b, 0xc4, 0x67,
+ 0x93, 0x27, 0x17, 0x7d, 0xa6, 0x00, 0xef, 0xd9, 0xca, 0xd9, 0x10, 0x21,
+ 0x52, 0x90, 0x1b, 0x10, 0x46, 0x63, 0xff, 0x1b, 0x08, 0xfe, 0xb9, 0x5c,
+ 0xfa, 0x70, 0x96, 0xe2, 0x70, 0x13, 0x55, 0x2b, 0x6d, 0x9a, 0x3e, 0x10,
+ 0x5b, 0xae, 0x6c, 0x80, 0x4b, 0x0a, 0xf8, 0x83, 0x5e, 0xe5, 0x3b, 0x1d,
+ 0x9f, 0xe6, 0x2b, 0x91, 0xa2, 0x13, 0xf4, 0x59, 0x20, 0x82, 0x96, 0x0a,
+ 0x0e, 0xbf, 0x1f, 0x0e, 0x31, 0x05, 0xa0, 0x4f, 0x10, 0x30, 0xf7, 0xf0,
+ 0xd6, 0xc4, 0x58, 0xc3, 0x99, 0x2d, 0xa5, 0x7c, 0x67, 0xb2, 0xd6, 0x6e,
+ 0xcb, 0xb6, 0x5c, 0xc0, 0x31, 0xb3, 0x71, 0x80, 0xa6, 0x59, 0xfc, 0xe7,
+ 0x5f, 0x4b, 0x37, 0x5d, 0xc6, 0xf2, 0x89, 0x3c, 0xd1, 0x72, 0xc2, 0x29,
+ 0x69, 0x9e, 0x03, 0xf7, 0xd9, 0x47, 0xdb, 0x66, 0x95, 0x0f, 0xf6, 0xf4,
+ 0xc5, 0xea, 0x85, 0xfb, 0xe5, 0xc6, 0x8e, 0x37, 0x0a, 0x20, 0x16, 0x9d,
+ 0xb2, 0x5a, 0xe7, 0x41, 0xd4, 0xc0, 0x67, 0x97, 0x09, 0xa7, 0x58, 0x21,
+ 0x85, 0xd0, 0x7f, 0x63, 0xeb, 0x91, 0xae, 0xf2, 0x80, 0x88, 0x2c, 0x12,
+ 0x28, 0x44, 0xf9, 0xdc, 0x06, 0xc9, 0x76, 0xd0, 0xcf, 0x2b, 0x8d, 0x29,
+ 0x4b, 0x6d, 0xfd, 0xf0, 0x80, 0x25, 0x92, 0x16, 0x5d, 0xf7, 0x15, 0xe1,
+ 0x0e, 0x98, 0x2a, 0x04, 0x99, 0xb3, 0xff, 0x57, 0x74, 0x84, 0xa6, 0x58,
+ 0x67, 0x9b, 0x5e, 0xe9, 0xb3, 0xcf, 0x71, 0xb0, 0x4b, 0x68, 0x45, 0x59,
+ 0x8d, 0x2a, 0x85, 0x9c, 0x02, 0x9d, 0xfb, 0x57, 0x9b, 0x54, 0x28, 0xd1,
+ 0x54, 0x2c, 0xdf, 0xd3, 0xfb, 0x4e, 0x7b, 0xf5, 0x89, 0xf1, 0x68, 0x4c,
+ 0xa3, 0xa5, 0x06, 0x03, 0x6f, 0xe8, 0xd3, 0x5b, 0x07, 0x80, 0x32, 0xf9,
+ 0xf4, 0xa4, 0xfd, 0xe1, 0x12, 0x3c, 0x6d, 0x56, 0x66, 0xc5, 0x31, 0x15,
+ 0x38, 0xa7, 0xc6, 0xd3, 0x56, 0xa2, 0x53, 0x0d, 0x62, 0xe0, 0xcb, 0x19,
+ 0x80, 0x13, 0x8c, 0x5b, 0x54, 0x52, 0xaa, 0x6b, 0xd1, 0x8f, 0xa4, 0xfe,
+ 0x6e, 0xe0, 0x8d, 0xdb, 0x2c, 0x2b, 0xb7, 0x3a, 0x2a, 0xe1, 0xcd, 0xaf,
+ 0xeb, 0x5f, 0x67, 0x8d, 0x61, 0xc3, 0x34, 0xbc, 0x7f, 0x4a, 0xda, 0xff,
+ 0x36, 0x27, 0x37, 0xf7, 0xb6, 0x9b, 0xfb, 0xb6, 0xcd, 0xb5, 0xdf, 0xef,
+ 0x78, 0x8d, 0xff, 0x9f, 0xdf, 0xdc, 0x7e, 0x37, 0x7a, 0xc6, 0xbf, 0xc6,
+ 0x20, 0xe9, 0x44, 0xac, 0xd7, 0xa9, 0xf4, 0x1c, 0xf9, 0x31, 0x7b, 0xd2,
+ 0x34, 0x03, 0x1b, 0x06, 0x00, 0x7a, 0xcd, 0xc3, 0xcc, 0xf1, 0x79, 0x9a,
+ 0x4a, 0xaf, 0xec, 0xb5, 0x1c, 0x8f, 0x0a, 0x73, 0x1c, 0x33, 0x15, 0xd5,
+ 0x79, 0xb5, 0x0f, 0x3a, 0x0e, 0x8f, 0x36, 0x0a, 0xdb, 0x5e, 0x73, 0x18,
+ 0xe1, 0x6e, 0xeb, 0xaf, 0x8a, 0xe0, 0x4c, 0x6b, 0x9a, 0xa8, 0x34, 0xa1,
+ 0x63, 0x45, 0xc8, 0x38, 0xbb, 0xeb, 0xa3, 0xd4, 0xa8, 0x91, 0xdb, 0x63,
+ 0x48, 0x21, 0x8a, 0x5d, 0x46, 0x41, 0x55, 0x4f, 0x35, 0x51, 0x5c, 0xd4,
+ 0x94, 0xcb, 0xe7, 0x2d, 0x96, 0x54, 0x3b, 0x8a, 0xec, 0x78, 0x38, 0x34,
+ 0xfd, 0x34, 0xd5, 0x3c, 0x9a, 0x84, 0xd1, 0x03, 0x7c, 0x55, 0x03, 0x49,
+ 0x51, 0x8f, 0xd9, 0x99, 0xe6, 0x62, 0x49, 0xb1, 0xb7, 0x9d, 0xb1, 0x60,
+ 0xc6, 0xa7, 0x96, 0xb2, 0x39, 0x83, 0xe9, 0x62, 0x7a, 0x85, 0xf7, 0x28,
+ 0xb5, 0x4e, 0x93, 0x10, 0x79, 0x94, 0xce, 0xf4, 0xc5, 0xf5, 0x89, 0x05,
+ 0xcc, 0xae, 0x50, 0xdf, 0x5b, 0xf9, 0x18, 0x66, 0xf3, 0xff, 0x1f, 0xcf,
+ 0x27, 0x36, 0xff, 0x04, 0x6a, 0x03, 0x97, 0x39, 0x3f, 0xd5, 0x1a, 0xc4,
+ 0x53, 0xf8, 0xca, 0xd9, 0x2d, 0x20, 0x85, 0x36, 0x02, 0x7e, 0xa5, 0xcd,
+ 0xc5, 0xc3, 0x4d, 0x92, 0xeb, 0xa2, 0xe8, 0xe5, 0x1b, 0xc3, 0x4b, 0xdc,
+ 0x7f, 0x2e, 0x39, 0xa2, 0x80, 0x96, 0x6e, 0xf6, 0xf6, 0x87, 0x84, 0xbe,
+ 0x59, 0x4e, 0x29, 0x6b, 0x0c, 0x99, 0xf8, 0x8c, 0xb8, 0x95, 0x86, 0xf6,
+ 0x8b, 0x29, 0x17, 0xe8, 0xcd, 0x97, 0xa0, 0x3c, 0x0c, 0x83, 0x6c, 0xd7,
+ 0x34, 0x47, 0x6e, 0x76, 0xed, 0xd4, 0xa5, 0x40, 0xd6, 0xe2, 0x91, 0x99,
+ 0x87, 0x58, 0x2f, 0x02, 0xe7, 0xce, 0x76, 0x5e, 0x7c, 0x80, 0xf0, 0xc6,
+ 0xf6, 0xf8, 0x70, 0x4a, 0xd7, 0xff, 0x8d, 0xa4, 0x60, 0x95, 0xf4, 0x68,
+ 0x6f, 0x93, 0xc4, 0xe8, 0x54, 0x73, 0x42, 0x36, 0xce, 0xba, 0x1d, 0x57,
+ 0xaa, 0x73, 0xc9, 0x25, 0x8e, 0x1b, 0x3c, 0xa3, 0x75, 0x25, 0xff, 0x54,
+ 0x21, 0x05, 0xad, 0x18, 0x40, 0xb2, 0x67, 0x0d, 0x8f, 0x30, 0xf6, 0x99,
+ 0x34, 0xf0, 0xee, 0x64, 0xd2, 0x55, 0xd1, 0x64, 0x92, 0xe0, 0x49, 0x2d,
+ 0xd6, 0x95, 0x0b, 0xd5, 0x65, 0x4c, 0x19, 0x7d, 0xd4, 0xb3, 0xc6, 0x0c,
+ 0x6c, 0x93, 0xee, 0xbd, 0x09, 0xcb, 0x91, 0x35, 0x76, 0xec, 0x0f, 0x03,
+ 0xf7, 0xab, 0x51, 0xa2, 0x1b, 0x92, 0xf9, 0x13, 0x18, 0x5d, 0x6f, 0xde,
+ 0x22, 0x5f, 0x1b, 0x35, 0x5f, 0x6f, 0x33, 0x2c, 0x44, 0x6a, 0x2b, 0xf6,
+ 0x7a, 0xf3, 0xf4, 0xce, 0x61, 0x74, 0x49, 0x58, 0x2c, 0xe5, 0xbe, 0xba,
+ 0x47, 0x21, 0x86, 0x1a, 0xa6, 0x2e, 0xd1, 0x8a, 0x09, 0x3c, 0xa8, 0xe2,
+ 0x6d, 0xe2, 0xde, 0xae, 0xca, 0x6c, 0x81, 0x90, 0x9a, 0x1f, 0x15, 0xa3,
+ 0x37, 0x6d, 0xb3, 0xf3, 0xa0, 0x77, 0xbe, 0x74, 0xd7, 0x53, 0xa1, 0x5c,
+ 0xe4, 0x79, 0xf5, 0x96, 0x77, 0xcd, 0x73, 0x5e, 0x73, 0x84, 0x5f, 0x86,
+ 0x27, 0x08, 0x21, 0x48, 0x4f, 0x22, 0x71, 0x26, 0x72, 0x7f, 0xd5, 0x0e,
+ 0x85, 0xf6, 0xd9, 0x96, 0xac, 0x7c, 0x12, 0xf3, 0xb7, 0x41, 0xb9, 0x19,
+ 0x45, 0x70, 0xdb, 0x38, 0x45, 0x04, 0x63, 0x9b, 0xc4, 0x8e, 0xe9, 0x23,
+ 0xf9, 0x3c, 0x7f, 0xbf, 0x16, 0xd3, 0xe2, 0xad, 0x50, 0x3e, 0x6c, 0x85,
+ 0x9f, 0x4e, 0x8b, 0x69, 0x32, 0x92, 0x41, 0x35, 0x2c, 0x30, 0x70, 0x0f,
+ 0x1e, 0xed, 0x10, 0xa4, 0x1d, 0xbb, 0x0f, 0x31, 0xcd, 0x6c, 0xee, 0x32,
+ 0xe6, 0xf0, 0xff, 0xd4, 0xe6, 0xb5, 0xb9, 0xf3, 0xd1, 0xc4, 0x67, 0xee,
+ 0x67, 0xac, 0xee, 0x7c, 0xc6, 0x0e, 0x36, 0x1c, 0xee, 0x60, 0xbd, 0x5c,
+ 0xac, 0xa2, 0x89, 0xbd, 0x7b, 0x5b, 0xf5, 0xc4, 0x92, 0x66, 0x2a, 0x00,
+ 0x1b, 0x5e, 0xbe, 0xd6, 0xa7, 0x3f, 0xe8, 0x64, 0xd2, 0xe1, 0x60, 0x74,
+ 0x8e, 0x98, 0x42, 0xae, 0x1a, 0x1e, 0xa6, 0x48, 0xfe, 0x97, 0xfc, 0x5d,
+ 0xad, 0xab, 0xed, 0x38, 0xcc, 0xac, 0x7a, 0x9e, 0x73, 0x8e, 0xbf, 0x69,
+ 0x4b, 0x7d, 0xfb, 0x5b, 0xcd, 0x0d, 0x2a, 0xf1, 0x68, 0xa4, 0x57, 0xad,
+ 0x4a, 0x28, 0x79, 0x9e, 0xb4, 0x3e, 0x84, 0x5d, 0xf8, 0xb3, 0xa8, 0xd7,
+ 0xf1, 0x0f, 0xc5, 0x47, 0xe8, 0x52, 0x5a, 0xab, 0x9a, 0xbe, 0xaf, 0x61,
+ 0xa3, 0xb3, 0xe1, 0x1e, 0x45, 0xc7, 0xce, 0x45, 0xcc, 0x84, 0x3c, 0x10,
+ 0x62, 0xbf, 0xca, 0x7a, 0x50, 0x91, 0xf1, 0x91, 0x74, 0xbd, 0xb4, 0x0e,
+ 0x51, 0xa4, 0x04, 0x20, 0xee, 0x4c, 0xc2, 0x12, 0x03, 0x44, 0xd7, 0xb4,
+ 0x70, 0x61, 0x1a, 0x3c, 0x4a, 0x3a, 0x00, 0x47, 0x34, 0xe5, 0xbd, 0xc2,
+ 0x02, 0x5a, 0x1d, 0x0e, 0x81, 0x48, 0x53, 0x12, 0x07, 0xf1, 0xd8, 0xbd,
+ 0x05, 0x31, 0xde, 0x37, 0xe7, 0x27, 0xcd, 0xbc, 0x1a, 0x04, 0x96, 0x54,
+ 0x05, 0xbf, 0x2b, 0xa1, 0xc2, 0x19, 0x29, 0x10, 0xbc, 0x8f, 0xd2, 0x74,
+ 0x23, 0xa5, 0x87, 0x97, 0x2b, 0x3d, 0x2d, 0x7b, 0x66, 0x5d, 0xb9, 0x92,
+ 0xdc, 0x54, 0x23, 0x0b, 0xa0, 0x05, 0x9b, 0xc8, 0xaa, 0x7f, 0x83, 0x99,
+ 0xdb, 0x5d, 0xb0, 0x49, 0x76, 0xfa, 0x83, 0x21, 0x24, 0x8e, 0xa6, 0xf9,
+ 0x40, 0x31, 0xc3, 0x41, 0x2d, 0xd9, 0x5f, 0x9b, 0x21, 0xd7, 0x03, 0xef,
+ 0x08, 0x1c, 0x6a, 0x2e, 0xd0, 0xf6, 0x21, 0xcc, 0x48, 0xf8, 0x20, 0xc4,
+ 0x26, 0xd0, 0xfa, 0xc3, 0x3b, 0x30, 0xed, 0xa5, 0x1e, 0xe0, 0xfd, 0x64,
+ 0x3c, 0xa0, 0x4e, 0x9b, 0x6b, 0x67, 0xf3, 0xa0, 0x35, 0x76, 0xaa, 0x8b,
+ 0xfa, 0xc2, 0x89, 0xed, 0x62, 0xeb, 0xd3, 0x1e, 0xb0, 0xdf, 0x8a, 0xfd,
+ 0x33, 0x17, 0xfc, 0x49, 0x9a, 0xb6, 0x4a, 0xac, 0x75, 0xc1, 0xdb, 0xdc,
+ 0xd5, 0x0d, 0x10, 0xba, 0x16, 0x7a, 0xdb, 0x9c, 0x43, 0xbe, 0xb9, 0xb1,
+ 0x5d, 0x5b, 0x02, 0x15, 0x1e, 0xad, 0xf6, 0x7c, 0x0e, 0xa0, 0xa3, 0x57,
+ 0x39, 0x20, 0x09, 0xa2, 0x25, 0x03, 0x12, 0xf2, 0xfb, 0xbc, 0xbc, 0x41,
+ 0xff, 0xea, 0x44, 0xab, 0xd4, 0x2a, 0xad, 0x06, 0x9e, 0xd4, 0xd5, 0x1f,
+ 0x14, 0x05, 0x96, 0xf9, 0x44, 0x57, 0xf4, 0x07, 0x43, 0x36, 0xd9, 0x51,
+ 0x86, 0xa1, 0x36, 0x5e, 0x8b, 0xf1, 0x4b, 0x6c, 0xc5, 0xf6, 0x70, 0x00,
+ 0x94, 0xc8, 0x17, 0x80, 0x5d, 0x0f, 0x4c, 0xd5, 0x2d, 0x4c, 0xde, 0x64,
+ 0x73, 0x19, 0x8a, 0x67, 0xfb, 0x58, 0x79, 0x33, 0xb0, 0x07, 0x30, 0xcb,
+ 0x86, 0xc8, 0x6b, 0xd4, 0x80, 0x39, 0x1d, 0xbf, 0x3e, 0x1c, 0x90, 0xdb,
+ 0x87, 0x47, 0x8f, 0x0e, 0x85, 0xf1, 0xd9, 0x8d, 0xba, 0xf5, 0xe4, 0xa0,
+ 0x51, 0xe8, 0xb0, 0x69, 0x54, 0x3b, 0xc5, 0xa7, 0x19, 0xab, 0xe2, 0x4d,
+ 0xf5, 0x96, 0x78, 0x33, 0x3d, 0x07, 0x2d, 0x0f, 0x74, 0x53, 0xae, 0x6d,
+ 0x90, 0x49, 0x69, 0x5a, 0x22, 0x14, 0xeb, 0x5a, 0x3e, 0xbd, 0x8f, 0xf7,
+ 0xc8, 0x9a, 0xce, 0x3f, 0xfd, 0x9f, 0xfe, 0x7e, 0x7e, 0x3c, 0xef, 0xfa,
+ 0xdc, 0x08, 0xc3, 0xb5, 0x9f, 0x34, 0x41, 0x8c, 0x7f, 0xbf, 0x8a, 0x92,
+ 0x4b, 0x85, 0x78, 0xde, 0xe4, 0x23, 0xfc, 0xda, 0x1d, 0x71, 0xec, 0x0e,
+ 0x4d, 0x32, 0xc0, 0x66, 0x80, 0xd1, 0x88, 0x4b, 0x15, 0x3b, 0x82, 0x38,
+ 0x1a, 0xeb, 0x97, 0xf4, 0x5b, 0x42, 0x49, 0x40, 0x38, 0xf2, 0xae, 0xa2,
+ 0xf2, 0xc3, 0xe2, 0x61, 0x0a, 0x1e, 0xa7, 0xc8, 0xcd, 0xae, 0xc8, 0x5c,
+ 0x09, 0xf0, 0x3b, 0xdd, 0x12, 0x2b, 0x82, 0x60, 0x1f, 0xf5, 0xfd, 0x27,
+ 0xf1, 0xf3, 0x89, 0x8f, 0xe1, 0x20, 0xa0, 0x8e, 0x64, 0xce, 0x46, 0x5f,
+ 0x4f, 0xf7, 0x8e, 0x24, 0xaf, 0xe2, 0x0e, 0x9c, 0x4a, 0xef, 0x9b, 0x5a,
+ 0x82, 0x77, 0x60, 0x1f, 0xe3, 0x14, 0x7f, 0xb1, 0x14, 0xfe, 0x15, 0x83,
+ 0x65, 0x60, 0xc5, 0xbd, 0xd2, 0xe6, 0xad, 0x89, 0x21, 0x0d, 0xcb, 0x64,
+ 0x46, 0x78, 0x65, 0xdf, 0x07, 0x89, 0x7e, 0x96, 0xc1, 0xac, 0x4c, 0x11,
+ 0xa6, 0x90, 0x39, 0x02, 0xd3, 0xdf, 0xe6, 0x61, 0x4f, 0x3f, 0xdd, 0x17,
+ 0x2a, 0x88, 0x01, 0x06, 0xd8, 0xf1, 0x19, 0x2c, 0xda, 0x25, 0x0b, 0xb1,
+ 0x4e, 0x49, 0x63, 0x5e, 0x85, 0x67, 0x7a, 0x77, 0x7c, 0x3a, 0x92, 0x76,
+ 0x43, 0xf1, 0x91, 0x40, 0x15, 0x11, 0x6c, 0x3b, 0x2e, 0x25, 0x0f, 0x19,
+ 0xfb, 0x6d, 0x15, 0xe5, 0xb7, 0x0d, 0xd2, 0x2f, 0x36, 0x60, 0x3b, 0x39,
+ 0x84, 0x4e, 0x93, 0x9c, 0xd6, 0xce, 0xde, 0x87, 0xe9, 0x25, 0x87, 0xc0,
+ 0xca, 0x2b, 0xa0, 0xa7, 0xb4, 0x30, 0xc5, 0x72, 0x91, 0x6b, 0x62, 0x04,
+ 0xb0, 0xeb, 0x9f, 0x44, 0xe8, 0x8f, 0x02, 0xd4, 0x7c, 0xbf, 0x0b, 0x08,
+ 0x7e, 0x3c, 0xa9, 0x70, 0x13, 0x4f, 0x80, 0xe2, 0xb5, 0xc5, 0x27, 0x00,
+ 0x79, 0x02, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf1, 0x0d, 0x00, 0x03, 0x10, 0x24, 0x00, 0x1e, 0xe9, 0x8d, 0xe8, 0x04,
+ 0x92, 0x3f, 0xe7, 0x6d, 0x42, 0xd1, 0x5a, 0x30, 0x44, 0xe9, 0xc8, 0xe3,
+ 0xc1, 0x76, 0x47, 0x37, 0xb0, 0x31, 0xa1, 0x35, 0xc7, 0x8e, 0xd1, 0x68,
+ 0xd1, 0x96, 0x7b, 0x01, 0x05, 0x7f, 0x87, 0xd7, 0x81, 0x25, 0xb5, 0x6d,
+ 0x98, 0xfc, 0x9f, 0xfe, 0x15, 0x46, 0x4e, 0x88, 0x38, 0x79, 0x37, 0x24,
+ 0x6d, 0x89, 0xd7, 0x92, 0x42, 0x7d, 0x7a, 0x91, 0xb6, 0xb3, 0x6e, 0xbe,
+ 0xa0, 0x93, 0xde, 0xb4, 0x43, 0xa2, 0x38, 0xb0, 0x21, 0x55, 0x7a, 0x0b,
+ 0x3b, 0x4d, 0x85, 0x8b, 0x30, 0x40, 0x54, 0x24, 0xc3, 0xf7, 0xa3, 0x4a,
+ 0x13, 0xf2, 0x51, 0x60, 0x28, 0x35, 0xf0, 0x6e, 0x58, 0xe3, 0xc4, 0x0d,
+ 0xb0, 0xde, 0xae, 0xaf, 0x51, 0x10, 0xf2, 0xce, 0x80, 0x80, 0x00, 0xbc,
+ 0x34, 0x19, 0xea, 0x59, 0x0b, 0x0f, 0xab, 0xe8, 0x26, 0xd5, 0x4f, 0x2b,
+ 0x25, 0x28, 0x21, 0x49, 0xb2, 0xfb, 0x06, 0x58, 0xc2, 0x20, 0x4b, 0x3c,
+ 0xcf, 0x49, 0x78, 0x80, 0xff, 0x4e, 0xcc, 0xb7, 0x15, 0xa0, 0x3a, 0x8a,
+ 0xe6, 0x11, 0x2b, 0xda, 0x25, 0xfd, 0x65, 0x36, 0xb9, 0x39, 0x62, 0x94,
+ 0x17, 0x85, 0xa5, 0xba, 0x5e, 0xcf, 0x3e, 0x5b, 0xe7, 0xbb, 0xa9, 0xb1,
+ 0xb9, 0x48, 0x60, 0x50, 0xb4, 0x33, 0xd6, 0x39, 0x0c, 0x05, 0x73, 0x81,
+ 0xd6, 0x82, 0xd5, 0x17, 0x0b, 0x72, 0x63, 0x6f, 0xc3, 0xbf, 0x83, 0x1f,
+ 0x04, 0xba, 0x1e, 0x87, 0x5c, 0x9b, 0x93, 0x4f, 0xd4, 0x92, 0x76, 0x86,
+ 0x9d, 0x3b, 0xb3, 0x2d, 0x1a, 0x25, 0x19, 0x55, 0x4a, 0xf7, 0x35, 0x17,
+ 0x63, 0x84, 0x54, 0x8f, 0xde, 0x5f, 0x06, 0x74, 0xd3, 0x1a, 0x31, 0xbf,
+ 0xaa, 0x68, 0x19, 0xc9, 0xfb, 0xb7, 0x47, 0xdb, 0x56, 0x0a, 0x7d, 0x62,
+ 0x3a, 0x03, 0x20, 0x0e, 0xea, 0x01, 0x2a, 0x91, 0xb3, 0x15, 0xe6, 0x44,
+ 0x8d, 0x98, 0x00, 0xe1, 0xa2, 0x83, 0x28, 0xf9, 0x90, 0x86, 0xd0, 0xc8,
+ 0x7a, 0x81, 0xd1, 0xce, 0xf4, 0xbd, 0x5b, 0x93, 0x67, 0xcb, 0x21, 0xb1,
+ 0x11, 0x30, 0x66, 0xe1, 0xf8, 0xe7, 0xfc, 0x0f, 0x46, 0x94, 0x1d, 0x40,
+ 0x8a, 0xe0, 0x8d, 0x09, 0x46, 0xec, 0x7d, 0xba, 0xab, 0xcd, 0xef, 0xf3,
+ 0x54, 0x20, 0x67, 0xf9, 0xb3, 0xb5, 0x30, 0xf9, 0xb2, 0xff, 0x17, 0xfe,
+ 0xd6, 0x00, 0x15, 0x51, 0xb6, 0xd3, 0xea, 0xd8, 0xb3, 0x3f, 0x09, 0x40,
+ 0xc9, 0xac, 0xa6, 0x70, 0x5c, 0x78, 0x1d, 0xe0, 0x3c, 0x88, 0xee, 0xa7,
+ 0xca, 0xbc, 0x79, 0x52, 0xe1, 0x0f, 0x6b, 0x0e, 0xb2, 0x15, 0xbb, 0x66,
+ 0x68, 0xa9, 0xe4, 0xf7, 0xd1, 0xea, 0xc3, 0x2f, 0x23, 0x35, 0x66, 0xea,
+ 0xa5, 0x7a, 0xc4, 0xd0, 0xa9, 0xb2, 0x6d, 0xde, 0xdd, 0xfa, 0xab, 0x57,
+ 0x09, 0x85, 0xd0, 0x1a, 0xc2, 0xff, 0xb0, 0xdd, 0x12, 0x38, 0xd8, 0xc2,
+ 0x5e, 0x40, 0x24, 0x41, 0x68, 0x18, 0x9e, 0x30, 0x3d, 0x6d, 0x71, 0x18,
+ 0xe1, 0x3c, 0xe4, 0x3e, 0xc8, 0x0c, 0x62, 0xcc, 0xf3, 0xb5, 0xdd, 0xaf,
+ 0x86, 0xdc, 0x75, 0xcb, 0xa4, 0xcc, 0xa7, 0x51, 0x13, 0x27, 0x01, 0x78,
+ 0xb3, 0xb7, 0x88, 0x1f, 0xaa, 0x93, 0x99, 0x69, 0xeb, 0x1f, 0x8b, 0xd2,
+ 0x7d, 0x5d, 0x7d, 0x76, 0xcd, 0x8f, 0x6e, 0x91, 0x52, 0xa3, 0xa1, 0x2f,
+ 0x1c, 0x43, 0x24, 0x93, 0xe5, 0x7a, 0x95, 0x6a, 0x86, 0x79, 0x91, 0xbf,
+ 0x81, 0xa6, 0x67, 0x02, 0xa9, 0x74, 0x8a, 0xe9, 0x3a, 0x93, 0x95, 0x81,
+ 0x77, 0x74, 0x26, 0x40, 0xe9, 0x29, 0x7d, 0x65, 0x87, 0x6c, 0xd7, 0xe9,
+ 0x05, 0x7a, 0x84, 0x86, 0x4c, 0x1d, 0x0d, 0xd4, 0x19, 0xe7, 0xc6, 0xdc,
+ 0xa1, 0x71, 0xa1, 0x92, 0x7c, 0xaf, 0xe6, 0xec, 0x30, 0x39, 0x3d, 0xae,
+ 0x4f, 0x0c, 0x8a, 0x39, 0x92, 0xea, 0xb3, 0xba, 0x7f, 0x25, 0x6e, 0xbb,
+ 0xbd, 0x76, 0x1b, 0xa7, 0x66, 0x4e, 0x7a, 0x64, 0x25, 0x50, 0x34, 0x7a,
+ 0xb7, 0x84, 0x5e, 0xc4, 0x69, 0x14, 0x3b, 0x9f, 0xca, 0xbb, 0x8b, 0x70,
+ 0x0e, 0x43, 0x2b, 0x2b, 0x30, 0x68, 0x76, 0x46, 0xd7, 0x38, 0xcf, 0x77,
+ 0x62, 0xd2, 0x46, 0xc7, 0x8e, 0x5a, 0xfa, 0x28, 0xda, 0xec, 0x6c, 0xa0,
+ 0x2a, 0xff, 0x53, 0x9d, 0x17, 0x7b, 0x82, 0xc3, 0xca, 0x90, 0x17, 0x21,
+ 0x25, 0x69, 0x0a, 0x15, 0x8c, 0x71, 0xdd, 0x6c, 0x59, 0x12, 0xe0, 0x36,
+ 0x36, 0x73, 0x6c, 0xad, 0x2f, 0x7e, 0x1c, 0xc9, 0x64, 0x65, 0x16, 0x8e,
+ 0x25, 0x8b, 0x2d, 0xcb, 0xc6, 0x50, 0x66, 0x9a, 0x79, 0x2d, 0x37, 0xdf,
+ 0x39, 0x68, 0x15, 0xf3, 0x36, 0x1c, 0x10, 0xf0, 0x00, 0x25, 0x02, 0x00,
+ 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0f, 0x00,
+ 0x03, 0x10, 0x24, 0x00, 0x18, 0x8a, 0x5e, 0x10, 0x54, 0xb2, 0x1d, 0xd9,
+ 0xd8, 0xb5, 0xd2, 0x69, 0xbd, 0xa1, 0x36, 0x10, 0x74, 0x60, 0x33, 0x27,
+ 0x52, 0xc3, 0xdb, 0x73, 0x55, 0x2d, 0x04, 0x29, 0xb0, 0x09, 0xcb, 0x5c,
+ 0x7d, 0x35, 0x43, 0xf6, 0x61, 0x32, 0x46, 0x41, 0x6c, 0xda, 0xfd, 0x7d,
+ 0xb9, 0x63, 0x86, 0x95, 0x5a, 0x5f, 0x82, 0x88, 0xb4, 0x0e, 0xee, 0xae,
+ 0xca, 0xa9, 0xa6, 0x74, 0x0a, 0xcd, 0x19, 0x49, 0xad, 0xcf, 0xd4, 0xff,
+ 0x0b, 0x59, 0x18, 0x13, 0x14, 0x6d, 0x5c, 0xd2, 0x32, 0x7b, 0x61, 0x3c,
+ 0x00, 0x19, 0xd1, 0x1d, 0xa3, 0x36, 0x10, 0x0a, 0x10, 0x1c, 0xa0, 0xb9,
+ 0x15, 0xea, 0x95, 0x55, 0xd9, 0x1c, 0x30, 0xcc, 0xf2, 0xed, 0xa7, 0x56,
+ 0xa1, 0xdc, 0x5d, 0x20, 0x7f, 0xeb, 0x21, 0xb1, 0x71, 0xe8, 0x85, 0x40,
+ 0xdf, 0xb9, 0xa0, 0x44, 0x48, 0x9a, 0x9a, 0x87, 0x43, 0x8f, 0x6e, 0x3a,
+ 0x81, 0x3d, 0x0b, 0x09, 0x97, 0x2e, 0xda, 0xf2, 0xb6, 0x79, 0x15, 0x69,
+ 0x93, 0xeb, 0x8a, 0xbe, 0x49, 0xa4, 0x3f, 0x5d, 0x51, 0x4f, 0x10, 0xa7,
+ 0x41, 0x20, 0x7f, 0xa0, 0xce, 0x8b, 0x77, 0xa0, 0xed, 0x04, 0x9f, 0x44,
+ 0xf9, 0x8e, 0x9d, 0x88, 0xf1, 0x3b, 0x38, 0x4f, 0xd5, 0xbc, 0x19, 0x13,
+ 0xd2, 0x98, 0xc1, 0x33, 0xb0, 0xaa, 0xdd, 0x91, 0xd0, 0xb6, 0x8f, 0xb1,
+ 0xd1, 0x85, 0xd7, 0x79, 0x4a, 0xa8, 0x79, 0xf5, 0xad, 0xaf, 0x04, 0xab,
+ 0x86, 0x46, 0x23, 0xa9, 0x94, 0x09, 0x60, 0x0e, 0x5f, 0x60, 0xf3, 0xcc,
+ 0x0e, 0x68, 0x40, 0x5b, 0x7c, 0x27, 0x74, 0xa8, 0xf2, 0x8c, 0xd5, 0x98,
+ 0x01, 0xaa, 0x9c, 0x96, 0xa6, 0xd9, 0xa6, 0x95, 0x71, 0x6f, 0x7f, 0xee,
+ 0x7b, 0x79, 0x4f, 0x1d, 0x75, 0x16, 0xdf, 0x8b, 0xb3, 0xa8, 0x1e, 0x05,
+ 0x24, 0xb0, 0x97, 0x18, 0x92, 0x29, 0x73, 0xc9, 0x0d, 0x78, 0x43, 0x4b,
+ 0x09, 0x67, 0x34, 0x91, 0x0f, 0xa9, 0x14, 0x9f, 0x36, 0x28, 0xde, 0x67,
+ 0x67, 0x26, 0x7c, 0xe7, 0x4a, 0x4b, 0x91, 0x69, 0x9c, 0x8a, 0x7f, 0x52,
+ 0x1a, 0xf1, 0x33, 0xf6, 0x4a, 0xeb, 0x53, 0xf6, 0x95, 0xf3, 0xc6, 0x09,
+ 0x1f, 0x9f, 0xed, 0x90, 0x9f, 0xb8, 0x43, 0x2e, 0x3e, 0x70, 0xd2, 0xa4,
+ 0xe7, 0x7d, 0x6d, 0x9a, 0x5a, 0xba, 0xb0, 0x11, 0x22, 0xcb, 0xbf, 0xb2,
+ 0x0b, 0xc6, 0x0d, 0x6d, 0xb7, 0x73, 0x43, 0xbb, 0x05, 0x54, 0x9b, 0x1a,
+ 0x66, 0x1d, 0x0f, 0xee, 0x47, 0xdf, 0x56, 0xfd, 0x5a, 0x0d, 0x2e, 0x35,
+ 0xa5, 0x6b, 0x59, 0x06, 0x1c, 0x7a, 0xac, 0x9f, 0x1b, 0x2c, 0x0b, 0xcd,
+ 0x57, 0x93, 0xaf, 0x6d, 0xdb, 0x47, 0xc9, 0xed, 0x5c, 0x1b, 0xba, 0x7b,
+ 0x2d, 0xfb, 0x4d, 0xe8, 0x68, 0x71, 0x23, 0x54, 0x42, 0x7f, 0x2b, 0xc9,
+ 0x37, 0xf7, 0x86, 0x34, 0x6e, 0x09, 0x11, 0x76, 0x01, 0x1b, 0x44, 0x5a,
+ 0x06, 0x11, 0x23, 0xf4, 0xfc, 0x18, 0x76, 0x69, 0xf0, 0x35, 0x80, 0x8f,
+ 0x99, 0xc1, 0xec, 0xf1, 0xd5, 0xaf, 0x76, 0xbf, 0x29, 0x4f, 0xad, 0x62,
+ 0x90, 0xe5, 0xeb, 0x53, 0x71, 0x94, 0xc2, 0xfc, 0x6c, 0xc5, 0xc1, 0xc5,
+ 0x78, 0x1a, 0x64, 0xa2, 0x05, 0x15, 0x53, 0x43, 0x3e, 0xbb, 0x0c, 0x8c,
+ 0x79, 0xe6, 0xcf, 0x07, 0x1d, 0xbf, 0x16, 0x8a, 0xa4, 0x6b, 0x1e, 0x05,
+ 0xb1, 0x56, 0x3c, 0x54, 0xba, 0x53, 0x88, 0x01, 0xa1, 0x85, 0xe4, 0xf2,
+ 0x50, 0x68, 0x6b, 0xf4, 0x75, 0xd1, 0x85, 0x92, 0xe4, 0x6e, 0x09, 0x13,
+ 0x6f, 0x80, 0x9f, 0x83, 0x84, 0x96, 0xc9, 0xef, 0x29, 0xe5, 0x80, 0xed,
+ 0xe0, 0xcf, 0x5e, 0x6a, 0x9b, 0xd3, 0x32, 0xd8, 0x9a, 0xd2, 0xf8, 0xe5,
+ 0xd2, 0xad, 0x62, 0x1d, 0x6a, 0x14, 0xe0, 0x39, 0xde, 0xc1, 0x64, 0xf4,
+ 0x2e, 0x94, 0xe8, 0xf2, 0x33, 0xad, 0x2d, 0x32, 0xa8, 0x47, 0x77, 0xe0,
+ 0x70, 0x34, 0x18, 0x81, 0x63, 0xa7, 0x28, 0x48, 0x5a, 0x83, 0x04, 0x8f,
+ 0xc7, 0x5b, 0x4f, 0x01, 0xfc, 0x00, 0x3e, 0x02, 0x00, 0x00, 0xc6, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0c, 0x00, 0x02, 0x10, 0x24,
+ 0x00, 0x18, 0x01, 0x5e, 0x5e, 0x58, 0x3b, 0x3b, 0xc6, 0xab, 0xe5, 0x41,
+ 0x24, 0x05, 0x8c, 0xad, 0xa1, 0x93, 0xd0, 0xed, 0x0c, 0xd4, 0x5b, 0x3d,
+ 0x7b, 0xc4, 0xd1, 0x36, 0xcc, 0x95, 0xb0, 0x8a, 0xc2, 0xbc, 0xdc, 0x24,
+ 0x4b, 0x2b, 0x77, 0x46, 0x4a, 0x84, 0x95, 0x67, 0xcc, 0xbb, 0x04, 0xab,
+ 0xec, 0xfa, 0x39, 0x75, 0xbc, 0xe9, 0x43, 0x18, 0xb1, 0x90, 0x0d, 0x1b,
+ 0xe1, 0x69, 0xe7, 0xa3, 0x44, 0xb4, 0x25, 0x1a, 0x00, 0x0b, 0x62, 0xcf,
+ 0x64, 0x35, 0x48, 0x08, 0x0b, 0x80, 0x3b, 0x14, 0x50, 0x68, 0x0a, 0xad,
+ 0x38, 0xb3, 0xad, 0x3d, 0x19, 0xc3, 0x65, 0xef, 0x12, 0xab, 0xec, 0x10,
+ 0xdf, 0xb9, 0xa0, 0x44, 0x4a, 0x95, 0xe1, 0x60, 0xc8, 0x8e, 0x34, 0x6c,
+ 0x07, 0x82, 0xcb, 0x2a, 0xf7, 0x27, 0x92, 0x48, 0xbd, 0xfa, 0x77, 0xff,
+ 0xf7, 0xb8, 0x56, 0x71, 0xc5, 0xcc, 0x86, 0x8c, 0x33, 0xdb, 0xc8, 0x05,
+ 0xd7, 0xed, 0xda, 0xf7, 0x83, 0xee, 0xe3, 0xf4, 0x95, 0xb8, 0x52, 0x24,
+ 0x78, 0xc4, 0x7f, 0xba, 0xcb, 0x03, 0x1c, 0x7f, 0xcd, 0xf1, 0x5b, 0xfd,
+ 0xec, 0xab, 0x7d, 0x7e, 0xe4, 0x77, 0xb4, 0xb7, 0xdd, 0x34, 0xc8, 0x0e,
+ 0x66, 0xfa, 0xbc, 0x3d, 0xb2, 0x26, 0xdf, 0x34, 0x3a, 0x83, 0x9a, 0x73,
+ 0x2d, 0x79, 0xd7, 0x60, 0xd4, 0x4c, 0x5b, 0xca, 0x0e, 0xf6, 0x89, 0xb0,
+ 0x5a, 0x3a, 0x63, 0x71, 0xa2, 0xac, 0x23, 0x13, 0xef, 0x17, 0x6c, 0x3a,
+ 0x3b, 0x97, 0x3f, 0xd3, 0x6f, 0x39, 0xe3, 0x1b, 0x79, 0x81, 0x5d, 0x62,
+ 0x61, 0x1c, 0x03, 0x2b, 0xec, 0xba, 0xad, 0xa3, 0xab, 0xe4, 0x28, 0x79,
+ 0x30, 0x6f, 0xf8, 0xd4, 0x49, 0x01, 0x2f, 0xd4, 0x6e, 0x02, 0xab, 0xd8,
+ 0x73, 0x8e, 0x88, 0xb2, 0xa5, 0x4e, 0x88, 0x81, 0xbb, 0x6a, 0xf8, 0x0e,
+ 0xb8, 0x14, 0x4a, 0xba, 0x0c, 0x33, 0xb9, 0xa9, 0xea, 0xed, 0xa7, 0x35,
+ 0xe6, 0x9f, 0xf9, 0x1e, 0x7c, 0xa7, 0x94, 0x45, 0x28, 0x25, 0x56, 0x08,
+ 0x8d, 0x49, 0x13, 0x39, 0x94, 0xe9, 0xec, 0x65, 0x8e, 0x79, 0x7e, 0x0f,
+ 0x9a, 0x09, 0xf4, 0xdb, 0xff, 0xc0, 0x7f, 0xdd, 0x33, 0xc2, 0x75, 0x44,
+ 0x92, 0xbd, 0xba, 0x76, 0x4d, 0xe1, 0xeb, 0x4f, 0x03, 0x67, 0x58, 0x8e,
+ 0x2f, 0x96, 0xe6, 0x5c, 0x10, 0x35, 0xf7, 0xa3, 0x05, 0x3e, 0x56, 0xaf,
+ 0xea, 0x93, 0xe5, 0x94, 0x4a, 0x67, 0x37, 0x32, 0xf2, 0xb4, 0xdc, 0x17,
+ 0x60, 0xb5, 0xf4, 0x27, 0xfc, 0x63, 0xf1, 0x14, 0x1c, 0xcc, 0x69, 0x0f,
+ 0x8b, 0xb4, 0x3d, 0x8c, 0xaa, 0xba, 0xbd, 0xa4, 0x86, 0x3b, 0xd0, 0x0c,
+ 0x56, 0x34, 0x6a, 0x2f, 0x0a, 0x64, 0xf3, 0xba, 0x8b, 0xb5, 0xa1, 0xd5,
+ 0xd5, 0x8d, 0x13, 0x8e, 0xbe, 0xbc, 0x5b, 0x9c, 0x53, 0xf8, 0x2f, 0xc7,
+ 0x7c, 0xef, 0x05, 0x28, 0xb3, 0x44, 0x05, 0x31, 0xf1, 0x3b, 0x4b, 0x87,
+ 0x2d, 0x03, 0x79, 0x5d, 0xb6, 0xd1, 0xa0, 0xc9, 0x1c, 0xd8, 0x18, 0x41,
+ 0xa7, 0x72, 0x1c, 0x9a, 0xd0, 0xe6, 0xce, 0xa8, 0xdb, 0x60, 0x33, 0xc9,
+ 0x4a, 0x96, 0x8e, 0x9e, 0x31, 0x30, 0x52, 0x6f, 0x2a, 0x5f, 0x01, 0xdc,
+ 0x27, 0xc9, 0xf4, 0xa9, 0xbf, 0x93, 0x85, 0xbf, 0x82, 0x15, 0x9e, 0x67,
+ 0x62, 0x76, 0x4e, 0x82, 0x33, 0xf1, 0xd3, 0xe5, 0xcc, 0xa1, 0x57, 0x62,
+ 0x97, 0x5b, 0xef, 0xb1, 0x1c, 0xbe, 0xa9, 0x7c, 0xd5, 0x8c, 0x55, 0x08,
+ 0xed, 0xd3, 0x32, 0xe3, 0xb0, 0x73, 0xe1, 0x09, 0x98, 0xaa, 0x75, 0xdc,
+ 0xf1, 0xbf, 0xb7, 0xcd, 0xb1, 0x1a, 0xd1, 0x92, 0x2f, 0xac, 0x49, 0x44,
+ 0xc6, 0x42, 0xb9, 0xc1, 0xad, 0xaf, 0x1f, 0x79, 0x86, 0x83, 0x84, 0x8d,
+ 0xfd, 0x80, 0x1b, 0x66, 0x8c, 0xfa, 0x2b, 0xc4, 0x38, 0xa7, 0xa8, 0x27,
+ 0x4b, 0xdc, 0x9b, 0x0e, 0xc5, 0x08, 0xbe, 0xf9, 0x33, 0xc1, 0x9a, 0xe3,
+ 0x58, 0x64, 0x5f, 0x0f, 0x4c, 0x7e, 0x57, 0xa0, 0xe8, 0xfc, 0x41, 0x80,
+ 0xce, 0x08, 0x06, 0xdc, 0xd9, 0x9b, 0xa5, 0x61, 0xb6, 0x72, 0x21, 0x7e,
+ 0xb2, 0x47, 0x52, 0xeb, 0xf7, 0xc4, 0xa0, 0x46, 0x33, 0x10, 0xf6, 0x7d,
+ 0xa5, 0x7d, 0xde, 0xa0, 0x4b, 0x02, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0b, 0x00, 0x05, 0x10, 0x24, 0x00, 0x18,
+ 0x00, 0x44, 0x05, 0x6b, 0x2d, 0x8a, 0x46, 0x5f, 0x47, 0xd4, 0xc5, 0xa8,
+ 0x1f, 0x87, 0xe1, 0x06, 0x50, 0x34, 0x39, 0x12, 0xc9, 0x67, 0xc8, 0xc7,
+ 0x36, 0xeb, 0x96, 0x78, 0x9b, 0x67, 0x66, 0x6b, 0x3c, 0xaa, 0x4f, 0x37,
+ 0xb6, 0x52, 0x20, 0x27, 0xde, 0x45, 0x7e, 0xde, 0x93, 0xbd, 0x2b, 0x13,
+ 0x1d, 0xb8, 0xf6, 0x37, 0x4c, 0x7c, 0x7f, 0x0f, 0x80, 0xf8, 0xb9, 0x20,
+ 0x6b, 0xb5, 0x40, 0x31, 0x38, 0x09, 0x03, 0xd6, 0x19, 0x21, 0x42, 0x5f,
+ 0xa9, 0x11, 0xfd, 0x7a, 0xfd, 0x71, 0x97, 0x29, 0x7b, 0x7e, 0xe8, 0x2f,
+ 0x50, 0x73, 0x42, 0x4c, 0xf7, 0x70, 0xdf, 0xb7, 0x37, 0x43, 0x1c, 0x40,
+ 0x0e, 0x29, 0x1f, 0xad, 0x3e, 0xe6, 0x69, 0xa4, 0xea, 0x00, 0x32, 0xb9,
+ 0x2a, 0x65, 0x87, 0x71, 0xf7, 0xab, 0x25, 0x40, 0x76, 0xcc, 0xab, 0x88,
+ 0x0c, 0x63, 0xa0, 0xa6, 0xc5, 0x2f, 0x41, 0x8e, 0xad, 0x5c, 0x1b, 0x73,
+ 0xf5, 0xdd, 0xf0, 0x20, 0xbb, 0x6b, 0x6f, 0xa9, 0xcb, 0x28, 0xed, 0x97,
+ 0x56, 0xb4, 0xbe, 0x27, 0x18, 0x6f, 0xcf, 0xa4, 0x6a, 0x40, 0x84, 0x45,
+ 0xc2, 0x75, 0xda, 0x65, 0x7e, 0xbe, 0x49, 0x93, 0xb4, 0x8b, 0x9f, 0x07,
+ 0xe9, 0x2e, 0x2e, 0x4a, 0x4f, 0x00, 0xf6, 0x54, 0xcb, 0x73, 0xdd, 0x4d,
+ 0x9f, 0x99, 0xdf, 0x25, 0x5d, 0x66, 0xf6, 0x64, 0x61, 0x1d, 0x24, 0xd0,
+ 0x3e, 0xa8, 0xd7, 0xd0, 0xcd, 0x77, 0x8f, 0x87, 0x8f, 0x1a, 0x71, 0xd0,
+ 0x94, 0x3c, 0xab, 0x96, 0xfc, 0x3f, 0xcc, 0xf8, 0x0a, 0x44, 0x97, 0x1b,
+ 0x0a, 0x16, 0xa4, 0xe4, 0x7c, 0x83, 0x55, 0xcd, 0xe5, 0xa3, 0x8f, 0xcc,
+ 0x7b, 0x3c, 0x47, 0xa9, 0xe3, 0x3d, 0x79, 0x08, 0x2a, 0xc1, 0x36, 0x42,
+ 0xaa, 0x61, 0x1a, 0x4e, 0x89, 0xe0, 0x4f, 0x97, 0xfe, 0x6f, 0xa2, 0xbf,
+ 0xd0, 0x77, 0x15, 0xfe, 0xa9, 0xfb, 0x9c, 0xa8, 0x69, 0x54, 0xf2, 0x86,
+ 0x84, 0x0e, 0x68, 0x4f, 0x0b, 0x6a, 0xa2, 0xfd, 0xa2, 0xdc, 0x00, 0x4e,
+ 0x21, 0x3b, 0x05, 0x34, 0xde, 0x31, 0x72, 0x37, 0xac, 0xae, 0x86, 0x62,
+ 0xcb, 0x4b, 0x63, 0xaa, 0x2d, 0x1a, 0x04, 0xee, 0xf6, 0x78, 0xa2, 0xe6,
+ 0xe4, 0x71, 0x76, 0x2a, 0xeb, 0x33, 0x28, 0xf5, 0x39, 0x88, 0xab, 0xce,
+ 0xaf, 0x63, 0x25, 0x7c, 0x05, 0xa2, 0x02, 0x64, 0x2e, 0x53, 0xd5, 0x78,
+ 0x5c, 0x32, 0xe7, 0x4d, 0x8e, 0x33, 0x52, 0xbc, 0xd7, 0xc4, 0x17, 0x79,
+ 0xc3, 0x4e, 0xdf, 0x06, 0xb5, 0x99, 0x76, 0x89, 0xcf, 0xe0, 0xe8, 0x8f,
+ 0xfd, 0x6e, 0xeb, 0x56, 0xbe, 0x18, 0x49, 0x1f, 0x97, 0x4b, 0x98, 0x3d,
+ 0x01, 0xa3, 0xb5, 0xac, 0xaf, 0xfd, 0xa3, 0xf7, 0x21, 0xdb, 0x48, 0x60,
+ 0x0f, 0x3d, 0x95, 0x95, 0xfa, 0xca, 0xf6, 0xfe, 0x8d, 0xcc, 0x08, 0xa4,
+ 0x38, 0xa6, 0x90, 0xb4, 0xf4, 0x7d, 0x2f, 0xf8, 0x7d, 0x3f, 0xaa, 0x3b,
+ 0x40, 0xab, 0xb0, 0x90, 0x5b, 0x8b, 0x47, 0xfb, 0x9e, 0x88, 0x33, 0xca,
+ 0x5e, 0x6c, 0xe9, 0x00, 0x70, 0x1a, 0xb0, 0xef, 0x33, 0x73, 0xe2, 0xc5,
+ 0xcf, 0x95, 0x14, 0xb8, 0xd2, 0xb3, 0x04, 0xfd, 0x42, 0xbe, 0x90, 0x76,
+ 0xc9, 0x9e, 0x26, 0x2b, 0x8a, 0x69, 0x35, 0xef, 0xc4, 0x80, 0x97, 0xd8,
+ 0x27, 0xf6, 0xf9, 0x83, 0x2b, 0x37, 0x42, 0xec, 0x9b, 0x61, 0x2c, 0x3d,
+ 0xaf, 0xc4, 0xf9, 0x3b, 0x3c, 0x54, 0x54, 0x2b, 0xfa, 0x3c, 0xf1, 0x00,
+ 0xec, 0x0d, 0x8c, 0x8c, 0xf9, 0xb2, 0xcc, 0x34, 0x2d, 0x7b, 0x16, 0x5f,
+ 0xbb, 0xbe, 0xca, 0xc6, 0x89, 0xd4, 0x0c, 0xed, 0x7b, 0x9a, 0x0d, 0x67,
+ 0x7c, 0x03, 0x0d, 0x05, 0x40, 0x64, 0x43, 0x2b, 0x55, 0xf9, 0xe7, 0xc3,
+ 0xdc, 0xde, 0x78, 0xf9, 0x47, 0x48, 0x6d, 0x45, 0xe4, 0x43, 0x11, 0xa3,
+ 0x86, 0xce, 0x3e, 0xce, 0x66, 0x10, 0x6e, 0xe9, 0x72, 0x7d, 0xd8, 0x9e,
+ 0x9d, 0x92, 0x77, 0x10, 0x4f, 0xdc, 0x80, 0x20, 0xb5, 0x2f, 0xac, 0x42,
+ 0x0d, 0x1c, 0x3b, 0xc2, 0xdc, 0x5c, 0x54, 0x22, 0x16, 0xf9, 0x25, 0xd7,
+ 0x10, 0x59, 0x7e, 0x0d, 0x12, 0x40, 0xec, 0xa1, 0xd3, 0x5f, 0xaa, 0x0f,
+ 0x9a, 0x7d, 0xe3, 0xc9, 0x4d, 0x90, 0x8d, 0x6d, 0x30, 0x40, 0x46, 0xa1,
+ 0x0f, 0xfe, 0x00, 0x58, 0x14, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x47, 0x00, 0x09, 0x10, 0x40, 0x00, 0x18, 0x01,
+ 0x60, 0x35, 0xdc, 0x63, 0xf3, 0x9f, 0xe3, 0xdf, 0x68, 0x5f, 0x9f, 0xff,
+ 0x09, 0xfe, 0x3d, 0xf2, 0x5f, 0xcc, 0xbe, 0xd6, 0x7f, 0xea, 0x7d, 0x32,
+ 0x7c, 0x21, 0x8d, 0x7e, 0x0f, 0xba, 0xce, 0xfa, 0xfb, 0xf7, 0x5a, 0xfd,
+ 0xff, 0xec, 0x39, 0xf6, 0x7b, 0xfc, 0xe3, 0xe7, 0x9f, 0xf1, 0xcf, 0x5e,
+ 0x1f, 0xc4, 0x77, 0x38, 0x3d, 0x31, 0xfc, 0xae, 0xfd, 0xff, 0xff, 0xff,
+ 0xf2, 0x75, 0xe5, 0x3f, 0xc5, 0xbe, 0xd1, 0x3f, 0xed, 0x7e, 0xff, 0xfb,
+ 0xc1, 0xfe, 0x1f, 0xf6, 0x37, 0xee, 0x33, 0xf6, 0xf5, 0xf0, 0xe7, 0xea,
+ 0x87, 0xd7, 0xff, 0x3b, 0x4f, 0xe3, 0x5f, 0x6a, 0x5f, 0xb4, 0x5f, 0x92,
+ 0xbf, 0x66, 0x9f, 0xa9, 0x5f, 0xfc, 0xbf, 0x3c, 0xfe, 0x73, 0x6a, 0x5b,
+ 0xfd, 0x6b, 0xf5, 0x3f, 0xfb, 0xe7, 0xb7, 0xd7, 0xb2, 0x7f, 0xdc, 0xb9,
+ 0x99, 0x3a, 0x73, 0xc7, 0xc5, 0xf0, 0x01, 0x59, 0xb5, 0x70, 0xc9, 0xbd,
+ 0x04, 0x37, 0xb6, 0x44, 0xc0, 0xcc, 0x93, 0x24, 0xf4, 0x8f, 0x49, 0xdc,
+ 0x8a, 0xed, 0x76, 0x4a, 0xb1, 0x9e, 0x0e, 0xcb, 0x0d, 0xce, 0xf7, 0x4a,
+ 0xd1, 0xaf, 0xe2, 0xa4, 0x0f, 0x5d, 0x68, 0xe2, 0x9a, 0xd2, 0x48, 0x61,
+ 0xd6, 0x51, 0x98, 0xb5, 0xd2, 0x2c, 0x81, 0x8c, 0xed, 0x1d, 0xc6, 0xbe,
+ 0xe4, 0x70, 0xdb, 0x2e, 0xad, 0x0f, 0xb6, 0xd9, 0x0f, 0xcf, 0x97, 0xd0,
+ 0x2f, 0xa6, 0xa6, 0x43, 0xdd, 0xb4, 0xdd, 0xbb, 0x01, 0xc4, 0xa2, 0xb5,
+ 0x35, 0xde, 0x4d, 0xdd, 0xd7, 0x22, 0xe4, 0x09, 0xab, 0x44, 0xf2, 0xc3,
+ 0xf7, 0x63, 0x79, 0x7f, 0xe0, 0xab, 0x03, 0xc8, 0x6f, 0x57, 0xa8, 0xd9,
+ 0x41, 0xea, 0x05, 0x78, 0x87, 0x5d, 0x53, 0x32, 0xbb, 0x24, 0x13, 0x65,
+ 0xd7, 0x46, 0xa0, 0x9f, 0xe5, 0xd9, 0x2f, 0xb0, 0x04, 0xd1, 0x04, 0xdd,
+ 0x89, 0x93, 0x64, 0xbd, 0x96, 0x15, 0x74, 0x60, 0xa9, 0x9b, 0x9f, 0xce,
+ 0x38, 0x82, 0x01, 0xe5, 0xb0, 0x2c, 0xe5, 0x79, 0xb3, 0xc5, 0x37, 0x3e,
+ 0xc8, 0x12, 0x44, 0x0e, 0x80, 0x03, 0x12, 0x74, 0x15, 0x80, 0xb7, 0xb4,
+ 0x2e, 0x18, 0xe9, 0x3b, 0x6b, 0xdd, 0x94, 0xa5, 0x5b, 0xe9, 0x2a, 0x7a,
+ 0xec, 0xc1, 0xc7, 0x9f, 0x3d, 0x9e, 0xc3, 0xdc, 0x6b, 0xe8, 0xed, 0xff,
+ 0x43, 0x5c, 0xb5, 0x8f, 0x78, 0xf0, 0x44, 0x4c, 0xc4, 0x26, 0x95, 0xaf,
+ 0xbc, 0x82, 0x0f, 0xd8, 0xac, 0x12, 0xe1, 0xbe, 0xa0, 0x33, 0x95, 0xa7,
+ 0x5e, 0xd5, 0x18, 0xef, 0x1e, 0x93, 0x3f, 0x16, 0xe3, 0xef, 0x0e, 0xac,
+ 0x19, 0xf8, 0xb7, 0x1f, 0x78, 0x75, 0x91, 0xc1, 0x35, 0x4f, 0xe0, 0xc7,
+ 0xeb, 0xa2, 0x49, 0xa8, 0x7c, 0x85, 0x3e, 0xe6, 0xfb, 0xf8, 0x30, 0x50,
+ 0x82, 0x4f, 0x67, 0xf3, 0x1e, 0xec, 0x67, 0x42, 0x4d, 0xe2, 0x38, 0x26,
+ 0xc5, 0xc4, 0x17, 0xe7, 0x05, 0xbd, 0x14, 0xbb, 0x3d, 0x3c, 0x56, 0xa4,
+ 0xec, 0x54, 0xc0, 0x9e, 0xb6, 0x3e, 0x87, 0x7d, 0x6f, 0xf4, 0x24, 0x8f,
+ 0x2a, 0x6b, 0xca, 0xef, 0xf6, 0xef, 0x4a, 0xec, 0x1d, 0xa8, 0x06, 0xd5,
+ 0xc2, 0xea, 0x71, 0xae, 0xf8, 0x1f, 0xc7, 0x79, 0xce, 0x64, 0x56, 0x45,
+ 0x80, 0xf1, 0xad, 0xa9, 0x52, 0xb9, 0xab, 0xee, 0x09, 0x4f, 0x68, 0x8c,
+ 0x1d, 0xe2, 0x1d, 0x9d, 0xac, 0x61, 0x99, 0x90, 0x5d, 0xae, 0x4d, 0x89,
+ 0x01, 0x07, 0x52, 0xc5, 0x67, 0x4e, 0x10, 0x44, 0x03, 0x81, 0xe4, 0x88,
+ 0x53, 0xe1, 0x31, 0x9c, 0xbb, 0x67, 0xa9, 0x0d, 0x3e, 0x34, 0xb8, 0x93,
+ 0xdd, 0x9c, 0xc3, 0x31, 0x72, 0xe5, 0xeb, 0x3a, 0x4b, 0x51, 0x1a, 0xba,
+ 0xa1, 0x6b, 0xf8, 0x52, 0x87, 0x79, 0xc4, 0xa9, 0x25, 0xaf, 0xe1, 0x57,
+ 0x47, 0xb6, 0x19, 0x16, 0x33, 0x37, 0x8f, 0x29, 0xe9, 0x90, 0x53, 0x9f,
+ 0xb2, 0xdf, 0xf8, 0x99, 0x2f, 0xa0, 0xd6, 0x30, 0xfb, 0x6d, 0x3d, 0x81,
+ 0xa7, 0x11, 0x0b, 0xd5, 0x79, 0x27, 0x62, 0xca, 0x1f, 0xdc, 0xf9, 0x0a,
+ 0x8a, 0x32, 0xb9, 0xf6, 0x46, 0xb3, 0xed, 0x39, 0x66, 0xe8, 0x23, 0x54,
+ 0xe5, 0x37, 0x9c, 0xc3, 0x3c, 0x6e, 0x93, 0xe5, 0xbd, 0xd9, 0x77, 0xdf,
+ 0xa3, 0x5b, 0xd4, 0xe0, 0x2c, 0x72, 0xe9, 0xe9, 0xa2, 0xd9, 0xc6, 0x08,
+ 0xbd, 0x49, 0xd1, 0x6d, 0x99, 0x39, 0x5d, 0x4a, 0x2c, 0x9b, 0xc7, 0xac,
+ 0x45, 0x0f, 0x99, 0x53, 0x39, 0x8b, 0x00, 0x2f, 0x16, 0xb2, 0x12, 0x7b,
+ 0x83, 0x97, 0xfa, 0xee, 0x6e, 0x88, 0xee, 0x61, 0xf7, 0x61, 0x9e, 0x9d,
+ 0x73, 0x9a, 0xd8, 0x89, 0xbe, 0x0d, 0x6d, 0x5d, 0xa3, 0x38, 0x5e, 0x6d,
+ 0x4b, 0xdd, 0x79, 0x71, 0x2d, 0x24, 0xd2, 0xae, 0xf1, 0x84, 0x3b, 0x56,
+ 0x79, 0x29, 0xd8, 0x3f, 0xf5, 0x42, 0x7f, 0x73, 0x24, 0x8e, 0x18, 0x4c,
+ 0x1f, 0x59, 0xc2, 0x63, 0xe6, 0x2d, 0x61, 0xb5, 0xb6, 0x00, 0xcf, 0x1d,
+ 0x2b, 0xb3, 0xfc, 0x07, 0x63, 0x6c, 0xcc, 0x2c, 0x48, 0xe5, 0xc9, 0xc2,
+ 0x7b, 0x46, 0x5e, 0xa6, 0xbb, 0xc0, 0xd0, 0x6d, 0x61, 0x55, 0x90, 0x86,
+ 0x4c, 0xaf, 0xd4, 0x60, 0xf6, 0x0c, 0x34, 0x56, 0x4b, 0x5d, 0xf1, 0x5e,
+ 0x6b, 0xdb, 0xd6, 0x6e, 0x44, 0xf1, 0x63, 0x23, 0x2c, 0xea, 0xd5, 0x23,
+ 0xf5, 0xf9, 0xe9, 0xac, 0x30, 0x9c, 0xaf, 0x1e, 0x94, 0x8c, 0x90, 0xb6,
+ 0x40, 0x1b, 0x9f, 0xa0, 0x64, 0x09, 0x1f, 0x7e, 0xe8, 0xf7, 0xfa, 0x79,
+ 0xbf, 0x1d, 0xbf, 0x42, 0x99, 0x8e, 0xc8, 0x54, 0x46, 0xfa, 0x2c, 0x4e,
+ 0x9d, 0x17, 0x28, 0xee, 0x1c, 0xcd, 0x69, 0x42, 0x1e, 0xb2, 0xe7, 0x7b,
+ 0x82, 0x34, 0x82, 0xb1, 0xaa, 0x35, 0x82, 0xd9, 0xa4, 0x8b, 0x35, 0x5b,
+ 0x04, 0xbc, 0x30, 0x8e, 0xda, 0x9b, 0x26, 0x1f, 0x73, 0xd8, 0x81, 0x22,
+ 0x71, 0x98, 0xc2, 0xfb, 0xc3, 0xdd, 0x9f, 0x11, 0xd1, 0x73, 0x5a, 0x03,
+ 0xf9, 0xa0, 0x52, 0xaa, 0x68, 0x93, 0x30, 0x85, 0x5b, 0xaa, 0x44, 0xff,
+ 0xef, 0x14, 0x8f, 0xe0, 0x7f, 0x9d, 0xff, 0x0e, 0x0f, 0xb5, 0x95, 0x76,
+ 0xff, 0x2e, 0x6d, 0x21, 0x76, 0xf5, 0x18, 0xdf, 0x9c, 0x71, 0x9a, 0xaa,
+ 0x77, 0x20, 0x09, 0x28, 0xc7, 0x18, 0xe7, 0x6c, 0xf0, 0x56, 0x7f, 0x80,
+ 0x6f, 0x45, 0xfc, 0x5e, 0xdb, 0xdb, 0x88, 0xf7, 0x32, 0xdc, 0x3a, 0xa7,
+ 0x78, 0x12, 0x16, 0x90, 0x13, 0xf2, 0xe5, 0x0f, 0x2f, 0x24, 0xe4, 0x6f,
+ 0x4b, 0x54, 0xd7, 0x10, 0x2c, 0x78, 0x7f, 0x93, 0xcc, 0x59, 0xc3, 0x01,
+ 0x54, 0x54, 0xe3, 0x7a, 0x39, 0xd8, 0x87, 0xa0, 0xfd, 0xc7, 0xd4, 0xcc,
+ 0xc2, 0x9c, 0xb8, 0x96, 0x82, 0x81, 0xa5, 0xe4, 0x8c, 0xef, 0xbb, 0x92,
+ 0x73, 0x5e, 0xd5, 0xc8, 0x0e, 0xe4, 0x44, 0x17, 0x8b, 0x80, 0xcf, 0x49,
+ 0xb0, 0x69, 0xa4, 0x45, 0x3d, 0xaa, 0x8e, 0xd9, 0x8b, 0xad, 0x43, 0x9d,
+ 0xeb, 0xe7, 0xc9, 0x30, 0x95, 0x36, 0xea, 0x4c, 0x91, 0xf9, 0xd6, 0x53,
+ 0x82, 0x81, 0xc9, 0x6b, 0xf1, 0x27, 0xdb, 0x4f, 0x10, 0x70, 0xa4, 0xb5,
+ 0xda, 0x55, 0x13, 0x08, 0xc7, 0xed, 0x2a, 0x29, 0x5a, 0xcf, 0x5d, 0x19,
+ 0xb7, 0xc9, 0xb7, 0x83, 0x72, 0x68, 0x30, 0x8d, 0x27, 0x5c, 0xeb, 0x75,
+ 0x57, 0x9c, 0x15, 0xb7, 0xe0, 0x62, 0xcc, 0x80, 0x49, 0x9b, 0x1c, 0xd7,
+ 0xaa, 0x50, 0xa0, 0x33, 0x86, 0x71, 0xa0, 0x47, 0xe1, 0x50, 0x06, 0x32,
+ 0xda, 0xf5, 0x62, 0x97, 0xf1, 0x1d, 0x2b, 0x40, 0xfe, 0x71, 0xab, 0x4a,
+ 0x32, 0xeb, 0x6f, 0xd4, 0xb6, 0x72, 0xb0, 0x98, 0xa0, 0x36, 0xf6, 0x24,
+ 0x4b, 0x47, 0x2e, 0x26, 0x19, 0xd6, 0xf3, 0x43, 0x85, 0x25, 0x5e, 0x5a,
+ 0xe2, 0x29, 0x58, 0xad, 0xe3, 0x97, 0xac, 0x93, 0x1b, 0xee, 0x67, 0x33,
+ 0xaf, 0xab, 0x4f, 0x46, 0xe3, 0x2c, 0x89, 0xd0, 0x17, 0x3b, 0xd9, 0xc3,
+ 0xd1, 0x03, 0x84, 0x1a, 0x5e, 0xbf, 0xcd, 0xb6, 0x37, 0xe6, 0xa9, 0x90,
+ 0xa9, 0x1e, 0x43, 0x20, 0x5e, 0x13, 0x19, 0xaa, 0x37, 0x20, 0x75, 0xab,
+ 0x78, 0xc6, 0xcd, 0x45, 0xbd, 0xbc, 0x29, 0x66, 0x5e, 0xaf, 0xa5, 0xe6,
+ 0xc9, 0x33, 0x21, 0x7a, 0xab, 0x37, 0x5e, 0x56, 0x37, 0xb3, 0xc2, 0xc7,
+ 0x45, 0xb6, 0xbc, 0xac, 0xc1, 0x9f, 0x0b, 0x39, 0xd8, 0xe5, 0xc3, 0x23,
+ 0x43, 0xd8, 0x3f, 0xcc, 0x4b, 0x24, 0x40, 0x37, 0x11, 0x0a, 0x4c, 0x3c,
+ 0xe1, 0xe3, 0x6b, 0x3f, 0xaa, 0xa5, 0x61, 0xdd, 0xe8, 0x01, 0x88, 0x61,
+ 0xd4, 0x70, 0xc6, 0x42, 0x29, 0x66, 0x14, 0xe1, 0x5e, 0x18, 0x76, 0x37,
+ 0xaf, 0xb5, 0x42, 0x5e, 0x19, 0x3a, 0x98, 0x59, 0x65, 0x26, 0x90, 0x38,
+ 0x24, 0xc1, 0xb0, 0x98, 0x39, 0x00, 0xc7, 0xe5, 0x78, 0xa0, 0x6e, 0x73,
+ 0x00, 0x89, 0x1b, 0x8a, 0xa3, 0x43, 0x91, 0xcb, 0x04, 0x69, 0x67, 0xaa,
+ 0x08, 0x6d, 0x97, 0x16, 0xbb, 0x94, 0xf3, 0x56, 0x40, 0x7c, 0x36, 0x79,
+ 0x7e, 0x28, 0x84, 0xb1, 0xd2, 0xce, 0x1b, 0x82, 0x95, 0xcc, 0x7e, 0xa0,
+ 0xb2, 0xfe, 0x34, 0xee, 0xc2, 0x87, 0x05, 0xd4, 0x2d, 0x34, 0x4e, 0xdd,
+ 0x13, 0xe1, 0x56, 0xe2, 0x15, 0xfc, 0x5b, 0xdd, 0x6a, 0x8d, 0xa9, 0xac,
+ 0xe3, 0x6f, 0xce, 0x1e, 0x62, 0xff, 0x77, 0x29, 0x83, 0xe5, 0x0a, 0xf7,
+ 0x47, 0x2b, 0xe8, 0x31, 0x11, 0x17, 0x45, 0x41, 0x08, 0x9d, 0x2c, 0x10,
+ 0x17, 0x9b, 0x00, 0x0b, 0xcb, 0x4f, 0x25, 0x59, 0xbb, 0x3c, 0xc4, 0xb9,
+ 0x60, 0xda, 0xcf, 0x8e, 0x38, 0x09, 0x64, 0x0b, 0x4a, 0x40, 0xc4, 0x6a,
+ 0x73, 0x48, 0x84, 0x75, 0x74, 0x75, 0xfc, 0x8d, 0xf3, 0x91, 0x4d, 0x99,
+ 0xe0, 0x35, 0xba, 0x23, 0x1e, 0xaa, 0xce, 0x68, 0xd8, 0x7a, 0x7b, 0xdd,
+ 0x8a, 0xc4, 0x2e, 0xd8, 0x3f, 0x73, 0x2a, 0xd1, 0x5d, 0xf7, 0x97, 0x44,
+ 0x77, 0xd8, 0xf1, 0x01, 0x3c, 0x2f, 0xb3, 0x24, 0xc3, 0x51, 0x86, 0x16,
+ 0x24, 0x3d, 0xf6, 0x7c, 0x68, 0x4e, 0x4c, 0x9d, 0xf7, 0xe4, 0x59, 0x37,
+ 0x4c, 0x39, 0xe7, 0x90, 0x54, 0x09, 0x3b, 0x32, 0xc2, 0xef, 0xb2, 0xc6,
+ 0x97, 0xc3, 0x78, 0x26, 0x20, 0x48, 0xbc, 0xe4, 0xb7, 0x4a, 0x80, 0x75,
+ 0x57, 0x40, 0x05, 0x29, 0x3f, 0xff, 0x48, 0xc1, 0xcc, 0xc4, 0x4d, 0x2b,
+ 0xd5, 0x01, 0xbf, 0x61, 0x59, 0x0e, 0x95, 0x8a, 0xe5, 0xd9, 0xa8, 0x1d,
+ 0xe6, 0x70, 0x20, 0x00, 0x88, 0x08, 0xa5, 0x54, 0x93, 0x4b, 0x75, 0x82,
+ 0x79, 0xf2, 0x20, 0x28, 0x96, 0x53, 0x64, 0x62, 0x1c, 0x57, 0xf5, 0xfb,
+ 0xb3, 0x8a, 0x0b, 0x0d, 0xeb, 0x78, 0xd1, 0x82, 0xf3, 0xba, 0x0d, 0x8a,
+ 0x6a, 0xf8, 0x40, 0x94, 0x4d, 0x25, 0x11, 0x2d, 0x18, 0x05, 0xd0, 0x34,
+ 0xc2, 0x58, 0x8f, 0x27, 0x44, 0x4c, 0x14, 0x47, 0x0e, 0xa1, 0xae, 0x28,
+ 0xae, 0x69, 0x64, 0x6b, 0x3a, 0x96, 0xaf, 0x36, 0x27, 0x3d, 0x8e, 0xaa,
+ 0xee, 0x6a, 0xdc, 0xae, 0x6a, 0xb0, 0x87, 0xfb, 0x2f, 0x48, 0xe3, 0xf5,
+ 0x8d, 0xf8, 0xd2, 0xbe, 0xe6, 0x31, 0x39, 0x5c, 0x9a, 0x62, 0x62, 0x2e,
+ 0x15, 0xe9, 0x4c, 0x41, 0x91, 0xc2, 0x11, 0xb4, 0x91, 0x58, 0xde, 0xd2,
+ 0x8c, 0x03, 0x14, 0x85, 0x3c, 0xf4, 0x18, 0xf8, 0x44, 0x33, 0x23, 0x13,
+ 0xaa, 0x2d, 0xad, 0xd8, 0xad, 0x2f, 0xae, 0x0e, 0x44, 0xa3, 0xbb, 0x4e,
+ 0x15, 0x42, 0x3e, 0x1b, 0xec, 0x72, 0xa6, 0x59, 0x76, 0xf3, 0x0d, 0x55,
+ 0xfa, 0x95, 0xbe, 0x44, 0x09, 0xb0, 0x86, 0x88, 0x02, 0x59, 0x62, 0x09,
+ 0x47, 0x47, 0x1e, 0x6f, 0xb1, 0x68, 0x86, 0x2e, 0x81, 0xfe, 0x10, 0x1d,
+ 0x20, 0x6f, 0xca, 0x86, 0x32, 0xf6, 0x96, 0xfd, 0x63, 0x82, 0xb4, 0x39,
+ 0x0d, 0xa6, 0x10, 0x08, 0x8b, 0x11, 0xd8, 0xb0, 0xba, 0xab, 0xdf, 0x1f,
+ 0x67, 0xd8, 0x37, 0xc8, 0x1a, 0x5a, 0x17, 0xdd, 0x74, 0x12, 0xd5, 0xd1,
+ 0xf7, 0x22, 0x9a, 0xb3, 0x0b, 0xf7, 0xf1, 0x41, 0xff, 0xd2, 0x99, 0x0e,
+ 0x37, 0x1b, 0x1a, 0x6d, 0x2d, 0x2e, 0x3c, 0x29, 0xfb, 0xd6, 0x41, 0x61,
+ 0xba, 0x3c, 0xb0, 0x02, 0x2b, 0x5e, 0x39, 0xa2, 0x5e, 0xa2, 0x1b, 0x0d,
+ 0x40, 0x88, 0x54, 0x16, 0xf9, 0x28, 0xd1, 0x61, 0x0c, 0x0c, 0x3a, 0x0e,
+ 0xee, 0x27, 0x0c, 0x85, 0x40, 0x1e, 0x51, 0x23, 0x38, 0xc0, 0x60, 0xf6,
+ 0x7c, 0x82, 0x82, 0xc1, 0x8d, 0x11, 0xb4, 0x4a, 0xa8, 0x82, 0xe3, 0xd1,
+ 0x19, 0x45, 0x2a, 0xf6, 0x0d, 0xb7, 0x8a, 0x4d, 0x68, 0x82, 0xc8, 0x44,
+ 0xad, 0xcc, 0xc0, 0xdd, 0x82, 0x70, 0xa4, 0x74, 0x64, 0xd9, 0x1c, 0xee,
+ 0xbc, 0x1b, 0x70, 0xa2, 0x15, 0x6a, 0x01, 0x3a, 0x74, 0xfd, 0x3d, 0x87,
+ 0xed, 0x5e, 0xd5, 0x27, 0x60, 0x4b, 0xce, 0x79, 0x90, 0x72, 0xd6, 0xa9,
+ 0xee, 0xe9, 0xd3, 0x61, 0x0d, 0x10, 0x04, 0xb2, 0xc7, 0xf7, 0xef, 0x99,
+ 0xe7, 0xcb, 0xdd, 0xfc, 0x4a, 0xa4, 0xdd, 0x02, 0x30, 0xe0, 0xb5, 0x83,
+ 0xec, 0xf0, 0xe2, 0xd8, 0x54, 0x0d, 0xf0, 0xf9, 0x58, 0x9d, 0x21, 0x5e,
+ 0xdd, 0xae, 0xf5, 0x40, 0xec, 0xc2, 0x03, 0x38, 0xa7, 0xf7, 0x9a, 0x65,
+ 0x9b, 0xed, 0xb4, 0xe1, 0xf7, 0x0e, 0xa5, 0x0e, 0xe8, 0xfd, 0x2a, 0xce,
+ 0xa3, 0x22, 0xdc, 0x82, 0xe2, 0x1d, 0x5b, 0xaf, 0xce, 0x6a, 0xd7, 0x75,
+ 0xb6, 0xdf, 0x49, 0x44, 0xef, 0xfe, 0x6e, 0x65, 0x20, 0xe2, 0x7f, 0x93,
+ 0xd9, 0x82, 0xff, 0x8b, 0x6a, 0x30, 0x2a, 0x7d, 0x93, 0x0c, 0x64, 0x23,
+ 0xc9, 0xb8, 0x2a, 0x67, 0xcf, 0x1e, 0x54, 0x5d, 0x9f, 0x8f, 0xf1, 0xb4,
+ 0x4e, 0x24, 0x4e, 0x89, 0xb9, 0x2e, 0x8a, 0x31, 0x54, 0x62, 0x10, 0x81,
+ 0x4b, 0x17, 0x42, 0x7a, 0x99, 0x4c, 0x55, 0x9c, 0xf0, 0x6f, 0x36, 0x5a,
+ 0x86, 0x79, 0xc3, 0x44, 0x5f, 0x66, 0xba, 0x17, 0x40, 0xd4, 0xd0, 0x7f,
+ 0x98, 0x7e, 0xc1, 0x42, 0x2c, 0x23, 0xfc, 0x1a, 0x10, 0x89, 0xa2, 0x97,
+ 0xa8, 0xdd, 0x40, 0x9d, 0x1a, 0x17, 0x2e, 0x0a, 0xea, 0x47, 0x1b, 0x13,
+ 0x67, 0x94, 0xfd, 0x48, 0xd1, 0x8d, 0x66, 0x61, 0x92, 0xe7, 0xeb, 0xe4,
+ 0xb5, 0x48, 0x27, 0xf1, 0x89, 0x9b, 0x2f, 0xfd, 0x2e, 0xb1, 0x7c, 0x50,
+ 0x49, 0x2e, 0x4d, 0x1a, 0x7f, 0x25, 0xab, 0x2c, 0x92, 0xfa, 0x94, 0x1f,
+ 0x25, 0x87, 0x9c, 0xe9, 0xd5, 0xbf, 0xe5, 0xf2, 0x3f, 0x9e, 0x01, 0xa9,
+ 0x9e, 0x2c, 0x0c, 0x14, 0xe7, 0x61, 0xa7, 0x6f, 0x1f, 0xca, 0x14, 0x2b,
+ 0x69, 0x68, 0x8b, 0x60, 0x6c, 0x93, 0x71, 0x10, 0x92, 0x00, 0xe6, 0xec,
+ 0x74, 0x0c, 0xdb, 0x7d, 0x84, 0xf5, 0xa1, 0x0a, 0x4e, 0x99, 0xc3, 0x48,
+ 0x6c, 0x65, 0xb2, 0xf7, 0xeb, 0x7a, 0x59, 0x61, 0x34, 0xf3, 0xb8, 0x8a,
+ 0xa8, 0xc4, 0x2c, 0x41, 0x5f, 0xc7, 0x16, 0x50, 0x0c, 0xcf, 0x1e, 0xa4,
+ 0x1d, 0x40, 0x40, 0x10, 0xb4, 0x20, 0x83, 0x64, 0x75, 0xc1, 0xc7, 0xa4,
+ 0x1e, 0x98, 0xc7, 0x57, 0xc5, 0xa3, 0x99, 0x85, 0xfc, 0x3b, 0x80, 0xf8,
+ 0x58, 0xa5, 0x92, 0xc9, 0x6e, 0x39, 0x22, 0x90, 0x25, 0x1c, 0xb8, 0x4e,
+ 0xcb, 0xcb, 0x8a, 0x29, 0x41, 0xcd, 0xbe, 0x55, 0x07, 0x72, 0x3c, 0x7f,
+ 0xc6, 0x45, 0x03, 0x68, 0x7b, 0x8a, 0x57, 0xb5, 0x9c, 0x93, 0xc8, 0xe4,
+ 0x60, 0x18, 0x13, 0x2d, 0x16, 0xe6, 0xe1, 0x4c, 0x93, 0x33, 0x3a, 0x57,
+ 0x56, 0xf4, 0xa0, 0x4a, 0xc4, 0x31, 0x44, 0x9e, 0x35, 0x75, 0xdf, 0xa0,
+ 0x82, 0x3b, 0x36, 0x47, 0x55, 0xe1, 0xf1, 0xf6, 0xf2, 0x16, 0xee, 0x25,
+ 0x69, 0x11, 0xcb, 0x41, 0x45, 0x43, 0xc7, 0x2f, 0x18, 0x81, 0xf8, 0x84,
+ 0xcd, 0xfb, 0x10, 0xab, 0x17, 0xd1, 0x79, 0xae, 0x93, 0xf9, 0xb9, 0xec,
+ 0x5f, 0x4e, 0x1c, 0xb1, 0xdd, 0xf7, 0x36, 0x27, 0x63, 0xf2, 0xc6, 0xf7,
+ 0x10, 0x5d, 0xa8, 0x70, 0x0b, 0xc4, 0xcd, 0xbf, 0xc0, 0x08, 0xf7, 0x55,
+ 0xda, 0xba, 0x91, 0xc2, 0x9c, 0xae, 0xaa, 0x54, 0x5d, 0xc8, 0xcc, 0x9e,
+ 0x9b, 0xf2, 0x61, 0x34, 0x1a, 0x09, 0xfd, 0x13, 0xe6, 0x26, 0xf7, 0x57,
+ 0x38, 0x49, 0x8c, 0x79, 0x26, 0xd8, 0x46, 0xa4, 0x58, 0xaf, 0xea, 0xb4,
+ 0x0f, 0xe5, 0xf3, 0x10, 0x69, 0x25, 0x5e, 0xf5, 0xe9, 0x06, 0xf8, 0x9e,
+ 0x69, 0x46, 0x0a, 0x41, 0x3c, 0xe3, 0x16, 0x30, 0x43, 0x44, 0x76, 0xbc,
+ 0x39, 0x2b, 0x15, 0x95, 0x3b, 0xfa, 0x73, 0xa7, 0x12, 0x1b, 0x94, 0x5e,
+ 0x6f, 0x5d, 0x9e, 0x60, 0xb0, 0x40, 0xa2, 0x98, 0xee, 0x7d, 0x95, 0xc5,
+ 0x6a, 0x59, 0x96, 0x7c, 0x67, 0xdb, 0x1b, 0x69, 0x5a, 0xd6, 0x0e, 0x49,
+ 0xe4, 0x72, 0x30, 0x0b, 0x66, 0xc4, 0x94, 0xd7, 0x07, 0xbb, 0xae, 0x05,
+ 0x16, 0x22, 0x4d, 0x1b, 0x8e, 0x39, 0x7f, 0x01, 0xdd, 0xdf, 0xe2, 0x3c,
+ 0x46, 0x65, 0xbe, 0x80, 0xf5, 0x18, 0xfd, 0x3e, 0x7f, 0xd3, 0x12, 0xa9,
+ 0xd3, 0xbd, 0x74, 0xbc, 0x16, 0x9e, 0xe4, 0x22, 0x0b, 0x1f, 0xd9, 0xa3,
+ 0xc6, 0x60, 0x18, 0xf2, 0x82, 0xf9, 0xcf, 0xa7, 0x82, 0x2c, 0xa6, 0xe9,
+ 0xd8, 0x48, 0xf8, 0xb8, 0xc2, 0x37, 0x34, 0xcf, 0x6a, 0x52, 0xf0, 0xa2,
+ 0x32, 0x9b, 0x12, 0x24, 0x0d, 0xae, 0xa4, 0xee, 0xa3, 0xc3, 0x86, 0xac,
+ 0x79, 0x93, 0x9f, 0xc7, 0xbf, 0x7a, 0xfc, 0x3c, 0x1c, 0xdf, 0x70, 0xa8,
+ 0x9f, 0x4a, 0x3b, 0xa0, 0xeb, 0xdf, 0x3f, 0x6a, 0xa4, 0x2a, 0x7e, 0xc6,
+ 0x33, 0xd1, 0x2b, 0xf1, 0xe5, 0xef, 0x45, 0x86, 0xb8, 0xe6, 0x9d, 0x18,
+ 0x29, 0x9c, 0xdd, 0xe1, 0x91, 0xb7, 0x71, 0x59, 0x08, 0x78, 0x68, 0xed,
+ 0x5a, 0xf1, 0x5d, 0x6f, 0x58, 0xac, 0x85, 0x69, 0x44, 0x6a, 0x87, 0xc5,
+ 0x86, 0x1f, 0x5c, 0xc3, 0x9d, 0xa8, 0x2e, 0x7c, 0x84, 0x1b, 0x9a, 0xa7,
+ 0x05, 0x17, 0xeb, 0xe6, 0xc7, 0x90, 0x6d, 0x82, 0x8b, 0x39, 0x52, 0xe0,
+ 0x11, 0x98, 0xe9, 0x74, 0xd4, 0xf6, 0xa6, 0x54, 0xd2, 0x01, 0xed, 0x56,
+ 0xdd, 0x49, 0x15, 0x44, 0x8f, 0x32, 0x03, 0xe6, 0x12, 0xfb, 0xbd, 0xef,
+ 0x1f, 0x14, 0x85, 0x47, 0x8a, 0xf6, 0xb5, 0x5f, 0x33, 0x40, 0x37, 0x9f,
+ 0x2f, 0x52, 0xd3, 0x46, 0xde, 0x42, 0xe2, 0x9c, 0x77, 0x21, 0x61, 0x5c,
+ 0x53, 0x5b, 0x38, 0xbe, 0xe9, 0xa1, 0x2f, 0xcd, 0xbb, 0x67, 0xeb, 0x41,
+ 0x29, 0x77, 0x25, 0x3c, 0xc2, 0xf8, 0x5b, 0x1d, 0x97, 0x0a, 0xb7, 0x7f,
+ 0x69, 0xb2, 0xad, 0x1d, 0x54, 0x05, 0x73, 0x17, 0x03, 0xdb, 0x62, 0x12,
+ 0x13, 0x48, 0x54, 0xc3, 0xee, 0x83, 0x11, 0x5f, 0xaa, 0xfa, 0x45, 0x39,
+ 0xc9, 0x2c, 0xc6, 0x89, 0xcb, 0x48, 0xe9, 0xcb, 0xf9, 0x1f, 0x2b, 0x6e,
+ 0x01, 0xc8, 0x97, 0xec, 0xb1, 0xe8, 0x53, 0xed, 0x3e, 0x2b, 0xff, 0x16,
+ 0xb7, 0xc7, 0x9d, 0x66, 0xd3, 0x80, 0x20, 0x06, 0xc1, 0x49, 0x15, 0xd8,
+ 0x55, 0x6f, 0x49, 0xdd, 0xcd, 0x88, 0x90, 0x04, 0x47, 0xd5, 0x5d, 0x73,
+ 0xd8, 0xf9, 0xe1, 0x92, 0x11, 0x82, 0xb3, 0x29, 0x3e, 0x5f, 0x5c, 0x92,
+ 0xd6, 0xce, 0xf4, 0x44, 0x56, 0x89, 0xfb, 0x7c, 0xbb, 0x38, 0x6d, 0xbf,
+ 0x03, 0x0f, 0x24, 0xdc, 0x03, 0x7d, 0x90, 0x82, 0x3f, 0xb8, 0x72, 0xcb,
+ 0xf3, 0xea, 0xe9, 0x11, 0x92, 0xa2, 0x5e, 0x04, 0x66, 0x30, 0xc2, 0x2d,
+ 0x1b, 0xb5, 0x49, 0x5f, 0xad, 0x49, 0x41, 0xb5, 0x74, 0xa9, 0x93, 0x6c,
+ 0x86, 0xf3, 0xa7, 0xe0, 0xe1, 0x2b, 0xef, 0x4f, 0x05, 0x94, 0x6d, 0x37,
+ 0x55, 0x4e, 0x50, 0xca, 0xe9, 0x43, 0xb5, 0xb8, 0x4c, 0xf7, 0x35, 0xe5,
+ 0x98, 0x79, 0x12, 0x35, 0xdf, 0x8c, 0x0b, 0xc9, 0x24, 0x5e, 0x82, 0x71,
+ 0x7b, 0xcc, 0x1a, 0xa7, 0xb0, 0xe6, 0xf7, 0x20, 0x8a, 0x81, 0x23, 0xe6,
+ 0x6c, 0xaa, 0x23, 0x9d, 0xd4, 0x6b, 0x04, 0xa5, 0x3b, 0xc0, 0x60, 0x90,
+ 0x47, 0x8e, 0x53, 0x4d, 0x99, 0xe9, 0x46, 0x0f, 0xfa, 0xfd, 0x35, 0x32,
+ 0xc9, 0x02, 0x14, 0x31, 0x21, 0x3e, 0x37, 0x0a, 0x27, 0xcc, 0x86, 0x4e,
+ 0xfe, 0x2b, 0x77, 0x4b, 0x1d, 0x35, 0x92, 0x06, 0x4e, 0x0b, 0xfe, 0xa8,
+ 0x9e, 0xb8, 0xbf, 0xe3, 0xc4, 0xaf, 0xba, 0x1e, 0x1e, 0x4e, 0xaf, 0xcd,
+ 0xdd, 0x8c, 0xb6, 0x51, 0xaf, 0xe7, 0xe3, 0xb7, 0xeb, 0x9c, 0x74, 0x84,
+ 0xdb, 0x96, 0xe6, 0xc7, 0x1a, 0x5d, 0xff, 0x3a, 0x5f, 0x1b, 0xa2, 0x43,
+ 0xc2, 0x44, 0x98, 0x64, 0x48, 0x2d, 0x55, 0xb7, 0xf4, 0xac, 0xf6, 0x3a,
+ 0xe3, 0xf0, 0xf5, 0xfd, 0x63, 0x62, 0x0f, 0xc8, 0x63, 0x4a, 0xf7, 0x01,
+ 0x92, 0x0e, 0xfb, 0xd8, 0xa3, 0x3c, 0x23, 0xeb, 0xc2, 0xa3, 0x88, 0x05,
+ 0xc9, 0xb2, 0x41, 0x37, 0x83, 0x6c, 0x00, 0x7c, 0xda, 0xe8, 0x28, 0x7f,
+ 0x7a, 0x4e, 0x87, 0x06, 0xcc, 0xfe, 0xe2, 0xd0, 0x66, 0x31, 0xee, 0x03,
+ 0x34, 0xce, 0xe7, 0xb6, 0x04, 0x1e, 0x91, 0x8d, 0x46, 0xfb, 0xfa, 0x74,
+ 0x5d, 0x48, 0x78, 0xb5, 0x7c, 0x13, 0x63, 0xe6, 0x3b, 0x23, 0xd0, 0x7c,
+ 0x13, 0xfe, 0xee, 0xca, 0x97, 0x40, 0xb5, 0xa2, 0x53, 0xf0, 0x8d, 0xab,
+ 0x89, 0xd8, 0x34, 0x7f, 0xd8, 0xb2, 0x47, 0x1a, 0x5a, 0x29, 0xf7, 0xc7,
+ 0x6c, 0xbe, 0x83, 0xe1, 0x5e, 0xa1, 0x91, 0x01, 0xf2, 0xc7, 0xc1, 0x49,
+ 0x72, 0xbc, 0x1b, 0x0c, 0x5b, 0x2f, 0xb7, 0x62, 0x1d, 0x30, 0xe3, 0xce,
+ 0x09, 0xfc, 0xc7, 0x22, 0x8f, 0xbb, 0x4b, 0xcd, 0x98, 0x96, 0x80, 0xa9,
+ 0x84, 0xf9, 0x8a, 0x87, 0xae, 0xe8, 0x9e, 0xcc, 0xfd, 0x3a, 0xc0, 0xce,
+ 0xf2, 0x3a, 0x91, 0x96, 0x9e, 0x19, 0x33, 0xb0, 0x9d, 0x2f, 0xc3, 0x99,
+ 0x21, 0x7f, 0xca, 0x22, 0xf6, 0x37, 0x27, 0x9d, 0x31, 0x38, 0xb2, 0xb1,
+ 0xa5, 0x25, 0x0d, 0xa2, 0x30, 0x18, 0xff, 0xbe, 0x48, 0x74, 0xc1, 0x2c,
+ 0xf5, 0x8e, 0xcb, 0x2a, 0xf6, 0xd4, 0x3a, 0x90, 0xdb, 0xd8, 0xe8, 0xa3,
+ 0xc8, 0xce, 0x18, 0x73, 0x56, 0xc1, 0x20, 0x73, 0x05, 0x29, 0xe8, 0x09,
+ 0x4c, 0x8c, 0x9e, 0x11, 0xde, 0x5a, 0xab, 0x31, 0x4d, 0xd3, 0x82, 0xac,
+ 0xb7, 0x8d, 0x2b, 0x56, 0xe3, 0x45, 0x8b, 0xf2, 0xc1, 0x6c, 0x8b, 0x4d,
+ 0x37, 0xca, 0x2c, 0x85, 0xa0, 0xd0, 0x58, 0xe8, 0x6d, 0xc3, 0x8b, 0x40,
+ 0x29, 0xb8, 0x8e, 0xeb, 0xbb, 0xa6, 0xb9, 0x5b, 0xba, 0xfb, 0xa2, 0xc6,
+ 0xa1, 0xc8, 0x66, 0x6f, 0xda, 0x2b, 0xba, 0x5b, 0xb1, 0xda, 0x14, 0xdd,
+ 0xeb, 0xa6, 0xcd, 0x23, 0x32, 0x3f, 0x47, 0x1b, 0xef, 0xae, 0x11, 0x4f,
+ 0x3d, 0xad, 0x2a, 0xb5, 0xfd, 0x72, 0xb6, 0x16, 0x92, 0x42, 0xf3, 0x2d,
+ 0xd4, 0x14, 0xf0, 0x0e, 0xb9, 0x76, 0x2b, 0x30, 0xa0, 0x5c, 0xe3, 0xbc,
+ 0x96, 0x8a, 0x6e, 0x9c, 0x15, 0x65, 0xbc, 0x67, 0xa0, 0x17, 0x22, 0x1e,
+ 0x8d, 0x3c, 0x55, 0x5f, 0x2a, 0xc8, 0xf4, 0xad, 0xa9, 0x5d, 0x8f, 0x58,
+ 0x43, 0x14, 0xa5, 0xa2, 0xdb, 0xf1, 0xc5, 0x41, 0x08, 0x85, 0xb3, 0x29,
+ 0x9a, 0x6f, 0x6e, 0x40, 0x1c, 0x50, 0xd6, 0x95, 0x41, 0x04, 0x06, 0x56,
+ 0x74, 0x2e, 0x62, 0xae, 0x33, 0x8f, 0x02, 0xf9, 0x58, 0x8d, 0x04, 0x5f,
+ 0x8d, 0x93, 0x95, 0xa6, 0xf1, 0xb2, 0xe5, 0x11, 0x5b, 0x67, 0x4e, 0x40,
+ 0x7a, 0xed, 0x81, 0xea, 0x1b, 0xfd, 0x01, 0xa2, 0x86, 0xdd, 0x9a, 0x80,
+ 0xd4, 0x48, 0x1c, 0x99, 0x94, 0x3c, 0x81, 0x90, 0xd8, 0x08, 0x8a, 0x72,
+ 0x50, 0xce, 0xc4, 0x0b, 0xce, 0x2c, 0xdd, 0x79, 0x67, 0x61, 0x54, 0x56,
+ 0x51, 0xd7, 0xd9, 0xfd, 0x4a, 0x24, 0x8c, 0x78, 0x0c, 0xd7, 0x89, 0xf3,
+ 0x71, 0x33, 0x13, 0xfb, 0x0f, 0x1e, 0x09, 0xfd, 0xca, 0x08, 0xec, 0x3d,
+ 0x34, 0xde, 0x90, 0xaa, 0x0b, 0x40, 0x49, 0x85, 0x81, 0xff, 0x41, 0xd8,
+ 0x12, 0x5d, 0x39, 0xc3, 0xe0, 0x27, 0x08, 0x7d, 0x99, 0x0b, 0xb3, 0x66,
+ 0xe3, 0x7e, 0x1f, 0x5d, 0x29, 0x1d, 0x06, 0x35, 0xdf, 0x76, 0xba, 0x5e,
+ 0xe2, 0xd9, 0xfe, 0x4e, 0xfa, 0x4b, 0x59, 0x10, 0xab, 0x56, 0xf5, 0xde,
+ 0xaf, 0x91, 0xee, 0xaf, 0x25, 0xaf, 0xf9, 0x47, 0x0e, 0x29, 0x73, 0x60,
+ 0x33, 0x1e, 0xe0, 0x54, 0x12, 0x3d, 0xa5, 0x19, 0xd6, 0x33, 0xf4, 0x1e,
+ 0x9f, 0x07, 0x3b, 0xfd, 0x22, 0x9b, 0x6e, 0xf0, 0x6a, 0xb5, 0x6b, 0xd2,
+ 0x4a, 0xf0, 0xa0, 0xc9, 0xd4, 0x3f, 0xe0, 0x6b, 0x18, 0x32, 0xed, 0x3e,
+ 0x32, 0xfe, 0x79, 0x8f, 0x3a, 0x6a, 0xb8, 0x05, 0x4d, 0x48, 0x59, 0x80,
+ 0x57, 0x77, 0xb9, 0x31, 0xc5, 0x81, 0x8c, 0x07, 0xa6, 0xa3, 0x34, 0x26,
+ 0x2c, 0x42, 0x66, 0xe0, 0x2c, 0x27, 0xa8, 0x01, 0xfb, 0x93, 0xdd, 0xfc,
+ 0xd6, 0xc0, 0xdb, 0xd3, 0xd7, 0x56, 0xb2, 0x3c, 0xc7, 0xcb, 0xff, 0xaf,
+ 0x13, 0x0f, 0xf4, 0x4e, 0x37, 0xd4, 0xcd, 0x48, 0x2e, 0x72, 0x0c, 0xba,
+ 0x1d, 0x02, 0xcd, 0x1e, 0x98, 0x28, 0x4e, 0xca, 0x26, 0x38, 0x57, 0x55,
+ 0xf9, 0x31, 0x8c, 0x33, 0xc7, 0x48, 0x0e, 0x3d, 0xdd, 0x6c, 0x73, 0xa2,
+ 0x46, 0x70, 0xf5, 0xef, 0x1e, 0x72, 0x55, 0xf9, 0x9c, 0x33, 0x56, 0xa1,
+ 0x34, 0x0e, 0xf2, 0xa5, 0xbb, 0x78, 0xd1, 0x70, 0x7f, 0x6d, 0x57, 0x24,
+ 0x50, 0xfd, 0x36, 0x26, 0x9b, 0xd6, 0xa2, 0xbb, 0xbd, 0x5c, 0x72, 0xe7,
+ 0xd7, 0xa7, 0x24, 0xb2, 0xde, 0x19, 0x42, 0x74, 0x22, 0x77, 0x7e, 0xda,
+ 0x56, 0x4c, 0x7d, 0x17, 0xf3, 0x74, 0xea, 0x5a, 0x1b, 0x9d, 0x50, 0xac,
+ 0xca, 0xe3, 0x75, 0x46, 0x0a, 0x6f, 0x68, 0xd3, 0x53, 0x15, 0x13, 0x66,
+ 0x53, 0xbb, 0xef, 0xad, 0xb3, 0xd3, 0x41, 0x4f, 0x4c, 0x0f, 0xb2, 0x10,
+ 0x86, 0x56, 0x23, 0xb7, 0x07, 0xd4, 0xd2, 0xc1, 0x49, 0x1d, 0xa2, 0x32,
+ 0x37, 0xa4, 0xfb, 0xb7, 0x63, 0x75, 0x37, 0x0e, 0xe8, 0x99, 0x59, 0xcf,
+ 0x30, 0xfd, 0x6d, 0x28, 0x2c, 0xff, 0xcf, 0x82, 0x5c, 0x68, 0xfb, 0x99,
+ 0x8d, 0xfe, 0xfc, 0xcc, 0x84, 0xf4, 0xd8, 0x26, 0x58, 0xe6, 0x83, 0xa5,
+ 0xb0, 0xc2, 0xbc, 0xd9, 0x94, 0x2b, 0x9c, 0x2b, 0x81, 0x65, 0x50, 0x3c,
+ 0x6e, 0xd5, 0x78, 0x11, 0x21, 0xe3, 0x5d, 0x8f, 0x64, 0x8f, 0xb8, 0x38,
+ 0x5e, 0x75, 0x42, 0x1a, 0x55, 0x7b, 0xc1, 0xf4, 0xe6, 0x81, 0x80, 0x1d,
+ 0xf3, 0x64, 0x39, 0x3c, 0xe4, 0x01, 0xf6, 0xaf, 0x96, 0xeb, 0x94, 0x97,
+ 0xba, 0x60, 0x3d, 0x32, 0x7a, 0x1c, 0xec, 0xcc, 0x73, 0x50, 0x94, 0x74,
+ 0x05, 0x4a, 0xeb, 0x10, 0x5d, 0x78, 0x8e, 0x4f, 0x6e, 0xe9, 0x74, 0x76,
+ 0x11, 0xf4, 0x7a, 0xda, 0xb3, 0x0d, 0x60, 0x0d, 0x40, 0x3c, 0x99, 0x76,
+ 0x66, 0x25, 0xcf, 0xa6, 0x7d, 0xe2, 0xb9, 0xe0, 0xc2, 0xd2, 0xc2, 0xdd,
+ 0xa0, 0x86, 0x42, 0x06, 0x88, 0x3f, 0x99, 0x22, 0x0c, 0xd3, 0x7b, 0x06,
+ 0xe6, 0x99, 0x0c, 0xf0, 0x1c, 0xd8, 0x90, 0xa6, 0xdf, 0xed, 0xa6, 0xdd,
+ 0x79, 0x62, 0xda, 0xb8, 0x0d, 0x95, 0xf4, 0xea, 0xa1, 0x4b, 0xe2, 0x88,
+ 0x73, 0x1a, 0x4e, 0xc6, 0x92, 0x73, 0x79, 0xd5, 0x8b, 0x39, 0x27, 0x03,
+ 0x88, 0x31, 0x69, 0xa2, 0x14, 0x35, 0xab, 0xd1, 0xb2, 0x98, 0x01, 0x92,
+ 0x73, 0x21, 0xb2, 0x6c, 0xb4, 0x00, 0xb3, 0xc9, 0x0a, 0x18, 0x27, 0x4a,
+ 0x0c, 0x35, 0xbb, 0xd6, 0x76, 0xef, 0xfe, 0x75, 0xc0, 0x66, 0x06, 0xb6,
+ 0xb5, 0x76, 0x71, 0xf6, 0x9b, 0x81, 0xa4, 0xcf, 0xe7, 0x26, 0x8a, 0x22,
+ 0xcb, 0x3d, 0xda, 0x3f, 0x4d, 0xc6, 0x25, 0x88, 0x5d, 0xd1, 0xa7, 0x24,
+ 0xa8, 0xbb, 0xb3, 0x84, 0x96, 0xe0, 0x93, 0xa8, 0xcf, 0x2c, 0xd1, 0x1a,
+ 0xd8, 0x1e, 0x39, 0xf9, 0x89, 0xd0, 0xf4, 0x53, 0x75, 0x67, 0xde, 0x9c,
+ 0xc5, 0xa9, 0x26, 0xbc, 0xd9, 0xa7, 0x8e, 0x3f, 0x65, 0xe8, 0x33, 0xa8,
+ 0x89, 0x98, 0x3b, 0xbe, 0x2d, 0xe2, 0x86, 0x07, 0xc9, 0xf9, 0x4c, 0x61,
+ 0x5c, 0xe4, 0xdc, 0x2f, 0x14, 0x82, 0x05, 0xbb, 0x20, 0x8d, 0x87, 0x5a,
+ 0x03, 0x5f, 0x54, 0x52, 0x6f, 0x45, 0xaa, 0xb8, 0xe6, 0xf9, 0x4c, 0x14,
+ 0x51, 0xe3, 0x32, 0x1e, 0x46, 0xdf, 0x66, 0xb9, 0x66, 0xf8, 0x43, 0x2d,
+ 0x81, 0xa5, 0xa6, 0x0e, 0x2e, 0x2f, 0x58, 0x03, 0xd5, 0xb3, 0x6e, 0x3b,
+ 0x04, 0x01, 0x23, 0xd3, 0x6a, 0x1e, 0x91, 0xeb, 0x28, 0x22, 0x2f, 0x4e,
+ 0x56, 0x51, 0x7c, 0xaa, 0x00, 0xb9, 0x7e, 0x98, 0xdc, 0x74, 0xfe, 0x01,
+ 0x22, 0x4f, 0x00, 0x1a, 0x32, 0xc8, 0x0c, 0xca, 0x94, 0x8f, 0xd0, 0x7e,
+ 0xa1, 0x8f, 0xe8, 0x82, 0xa0, 0x7a, 0x8d, 0x25, 0x36, 0x45, 0xcb, 0xa0,
+ 0xf9, 0xb1, 0x5f, 0xaf, 0x6c, 0xfa, 0xfa, 0xfd, 0xa6, 0x0c, 0x0f, 0x6a,
+ 0x6e, 0x93, 0xe6, 0xe4, 0x62, 0x23, 0x18, 0x90, 0xfb, 0x4f, 0x4d, 0xd7,
+ 0x4c, 0x66, 0xd7, 0xfc, 0x1a, 0x7e, 0xbd, 0x4b, 0xad, 0x76, 0x72, 0xbf,
+ 0xe3, 0x21, 0xa2, 0xf1, 0xda, 0xe8, 0xba, 0xba, 0x9f, 0x53, 0x38, 0xcc,
+ 0x67, 0xc0, 0x87, 0x5e, 0xa2, 0x5e, 0x80, 0xdb, 0x8f, 0x78, 0x7e, 0xdc,
+ 0xa8, 0x78, 0x44, 0x2d, 0xf8, 0x81, 0xf0, 0x9a, 0x3f, 0x68, 0xd9, 0x80,
+ 0x8f, 0xfb, 0x48, 0xd6, 0x30, 0x52, 0x0e, 0x45, 0xba, 0xb2, 0xcc, 0x31,
+ 0x35, 0x15, 0x9e, 0x95, 0x2d, 0x93, 0x4c, 0xf0, 0x7d, 0x6e, 0x7e, 0x44,
+ 0x50, 0x55, 0xd7, 0x58, 0x8c, 0x69, 0xae, 0x1f, 0x66, 0x3b, 0xa5, 0xa7,
+ 0x4d, 0x41, 0xae, 0x58, 0xe3, 0x9c, 0x70, 0x03, 0x5a, 0x55, 0x02, 0xa8,
+ 0x14, 0x59, 0x0a, 0x07, 0x8c, 0xa7, 0xde, 0x51, 0x87, 0xac, 0xfa, 0x6d,
+ 0x4d, 0x41, 0x0b, 0x9a, 0x09, 0xdd, 0x87, 0x09, 0x5c, 0x5d, 0x5c, 0x3d,
+ 0xeb, 0x9b, 0x9d, 0x4a, 0xc2, 0xef, 0x6a, 0xcc, 0x21, 0x64, 0x2f, 0x08,
+ 0xbc, 0x61, 0xff, 0xb0, 0x8f, 0x7a, 0xc6, 0xf9, 0x06, 0xe4, 0x4b, 0xc8,
+ 0xf8, 0x1a, 0x51, 0xb8, 0x73, 0x02, 0xc7, 0x0b, 0xdc, 0x93, 0xad, 0xce,
+ 0x0a, 0xc9, 0xe7, 0x82, 0x2c, 0x93, 0xc3, 0x63, 0x68, 0x5e, 0x24, 0xef,
+ 0xaf, 0x77, 0x62, 0xc6, 0x14, 0xa5, 0x72, 0x9b, 0x01, 0x1f, 0xf6, 0x91,
+ 0xa6, 0xdd, 0x8f, 0xa5, 0x1e, 0x26, 0xc1, 0x79, 0x3f, 0x51, 0xbb, 0xbf,
+ 0x75, 0x0e, 0x8e, 0xa7, 0x9c, 0xd6, 0x8f, 0xaf, 0xe3, 0x6c, 0xd4, 0x6a,
+ 0x7b, 0x81, 0x4a, 0x37, 0xc7, 0xfd, 0x01, 0xc3, 0xe5, 0x2d, 0x54, 0xae,
+ 0xae, 0xba, 0xe9, 0xb7, 0xe2, 0x8d, 0x9b, 0xf4, 0x90, 0xfd, 0xf8, 0xdf,
+ 0xf7, 0x82, 0xa8, 0x2d, 0x4b, 0xd1, 0x99, 0xae, 0xee, 0xfa, 0xcd, 0x2b,
+ 0x57, 0x3f, 0x1f, 0xc3, 0xa2, 0x4d, 0x3b, 0x85, 0x24, 0xe9, 0xd6, 0x1d,
+ 0xea, 0x0f, 0xd3, 0x39, 0x7a, 0x3c, 0x06, 0x47, 0x1d, 0x09, 0x8f, 0xe6,
+ 0x93, 0xf2, 0x0e, 0xb2, 0xa3, 0xc1, 0x00, 0xa6, 0xfd, 0xae, 0x0a, 0x4c,
+ 0x9a, 0x36, 0xc4, 0x60, 0x83, 0x6f, 0xe5, 0xba, 0x76, 0xe9, 0xbf, 0x25,
+ 0xb6, 0x48, 0x6e, 0x9c, 0x47, 0xf6, 0xa2, 0xd4, 0x4a, 0x86, 0xbc, 0x9e,
+ 0x8e, 0xc1, 0x39, 0x0c, 0x5c, 0x62, 0xc3, 0x88, 0x1a, 0x4e, 0x1d, 0xc3,
+ 0x44, 0x0d, 0x17, 0x83, 0xc2, 0xa0, 0x02, 0x68, 0xde, 0x17, 0x20, 0x25,
+ 0x82, 0x99, 0x91, 0xc7, 0x35, 0x99, 0xb6, 0x30, 0x5b, 0xaf, 0x1e, 0x8f,
+ 0xe9, 0xe1, 0xc1, 0x6e, 0xa5, 0x8b, 0x10, 0xf3, 0x1c, 0x15, 0x59, 0xcf,
+ 0x69, 0xf6, 0x42, 0x17, 0x29, 0xb9, 0x5a, 0x31, 0x4a, 0xe4, 0x3e, 0xdb,
+ 0x6e, 0x79, 0x76, 0x2c, 0x38, 0x6a, 0x46, 0x7d, 0x81, 0x1d, 0x71, 0x91,
+ 0xdd, 0xfe, 0xa5, 0xeb, 0x7b, 0x86, 0xfb, 0x7a, 0x10, 0x77, 0xac, 0x87,
+ 0x79, 0x71, 0x4d, 0x41, 0x0e, 0x3f, 0x1a, 0xe0, 0x1f, 0xb5, 0x44, 0xf8,
+ 0x22, 0x23, 0xd0, 0xb8, 0x16, 0xbf, 0xda, 0xd1, 0x8a, 0xf3, 0xb0, 0x96,
+ 0xef, 0x59, 0x26, 0x84, 0xc2, 0xff, 0x73, 0x63, 0x89, 0xdb, 0xba, 0xe8,
+ 0x67, 0xef, 0x01, 0x4c, 0x6b, 0x9a, 0x64, 0x1b, 0x6c, 0xbd, 0x31, 0x82,
+ 0x88, 0xe5, 0x25, 0x0d, 0xb7, 0xc8, 0x5f, 0x5f, 0xad, 0xd0, 0x17, 0xef,
+ 0xcb, 0xd7, 0x4e, 0xc9, 0x6a, 0x88, 0x96, 0xf1, 0xd2, 0x15, 0x83, 0x05,
+ 0xf8, 0x1a, 0xe3, 0x18, 0xfa, 0xf1, 0x2e, 0x51, 0x03, 0x59, 0x31, 0xbe,
+ 0x6c, 0xa6, 0x5c, 0xa1, 0x64, 0x50, 0x8d, 0xdc, 0xa1, 0x5f, 0xdd, 0xba,
+ 0x76, 0xab, 0x82, 0xa5, 0x73, 0x65, 0x57, 0x75, 0x11, 0xbf, 0x74, 0x5c,
+ 0xfe, 0xd3, 0x48, 0x7e, 0xc9, 0x1b, 0xfe, 0xd6, 0x65, 0xb6, 0x56, 0xa9,
+ 0xc9, 0xb7, 0xc4, 0x1e, 0x58, 0x99, 0x67, 0x31, 0x80, 0xa1, 0xd0, 0x95,
+ 0x1d, 0x42, 0x24, 0xd9, 0xcd, 0x6b, 0xd5, 0x43, 0x30, 0xe9, 0x11, 0x35,
+ 0x48, 0xaa, 0x68, 0x3b, 0x64, 0xdf, 0xd5, 0x2c, 0xdb, 0xdf, 0xd8, 0xd8,
+ 0x07, 0x8b, 0x84, 0x8c, 0xb4, 0xb4, 0xfb, 0x4b, 0xb5, 0x63, 0xd9, 0xba,
+ 0xc8, 0x63, 0xeb, 0x2c, 0x87, 0xe9, 0x4c, 0x76, 0xf0, 0x23, 0xf6, 0x4f,
+ 0x5e, 0x1f, 0x68, 0x6d, 0x9c, 0xcf, 0xaa, 0x8d, 0x55, 0x8c, 0x62, 0xae,
+ 0xaf, 0x99, 0x4c, 0x60, 0xc9, 0x3c, 0x14, 0xd5, 0xd4, 0x55, 0xdc, 0x64,
+ 0x62, 0xc0, 0x44, 0xed, 0xf3, 0x0d, 0x7c, 0x27, 0x1c, 0x57, 0x54, 0x28,
+ 0x6b, 0x89, 0x87, 0x2f, 0x48, 0xd1, 0x54, 0x3c, 0x01, 0xa6, 0x5c, 0xbc,
+ 0xa5, 0xd8, 0xa6, 0x8a, 0x91, 0x44, 0xd2, 0x6d, 0x7d, 0x01, 0xb4, 0x41,
+ 0xaf, 0x64, 0xec, 0x21, 0xff, 0x4e, 0xe9, 0xde, 0x2e, 0x95, 0x06, 0x45,
+ 0x5f, 0x79, 0xfe, 0xc1, 0xa5, 0xc3, 0x9d, 0x66, 0x29, 0x05, 0x39, 0x25,
+ 0xb7, 0xf0, 0x50, 0xac, 0x34, 0x0c, 0xae, 0x16, 0xd4, 0x41, 0x41, 0x21,
+ 0x75, 0x5e, 0xef, 0xb1, 0x8b, 0xb2, 0xaa, 0x97, 0x48, 0x2f, 0x33, 0xce,
+ 0x8f, 0x8b, 0x5f, 0x7f, 0xed, 0x1a, 0x18, 0x63, 0x7e, 0xad, 0x36, 0x1b,
+ 0xa1, 0xb9, 0x62, 0xb0, 0x26, 0xcc, 0x57, 0x3e, 0x51, 0x3d, 0xdb, 0x33,
+ 0x90, 0xae, 0x4a, 0x73, 0xb7, 0x9b, 0xb1, 0xed, 0x0a, 0x93, 0x12, 0x36,
+ 0xc6, 0x9f, 0x04, 0xd7, 0x28, 0x21, 0x63, 0x8e, 0xfe, 0xb2, 0x4b, 0x08,
+ 0xf9, 0x5e, 0xe3, 0xe9, 0x31, 0xb1, 0x73, 0x2b, 0xf3, 0x9d, 0xc3, 0x11,
+ 0xcf, 0x16, 0x46, 0xac, 0x3b, 0x73, 0x97, 0x7c, 0x4b, 0xc7, 0xe1, 0x85,
+ 0xd4, 0x61, 0x31, 0xce, 0x3f, 0x2f, 0x91, 0x6f, 0x7a, 0xda, 0xd0, 0x83,
+ 0x0b, 0xcf, 0x23, 0xc4, 0x6a, 0xe3, 0x6d, 0x94, 0x9f, 0x49, 0x8c, 0xc7,
+ 0x47, 0xc1, 0xed, 0x1a, 0x65, 0x9b, 0x20, 0x84, 0x3f, 0xa1, 0x84, 0x0a,
+ 0x24, 0x2e, 0x9e, 0x74, 0x10, 0xe1, 0x1f, 0x45, 0x2e, 0x17, 0x41, 0x58,
+ 0xc7, 0xc9, 0x60, 0x67, 0x56, 0xd4, 0x64, 0x49, 0x23, 0x72, 0x0d, 0x85,
+ 0x90, 0x52, 0xd5, 0x9a, 0x24, 0x85, 0x22, 0x2a, 0x1b, 0x3a, 0x77, 0x2d,
+ 0x1e, 0x11, 0xf4, 0x52, 0xe1, 0x7f, 0x2b, 0x98, 0xdc, 0xf1, 0x00, 0xff,
+ 0x02, 0xe9, 0x96, 0x68, 0x4a, 0xc1, 0x8c, 0x9b, 0xd3, 0x58, 0x47, 0xb0,
+ 0x74, 0x16, 0xdc, 0xaa, 0x34, 0xcf, 0xa0, 0x66, 0xa4, 0x52, 0xc8, 0xf8,
+ 0xee, 0xd1, 0x27, 0x45, 0xd8, 0x18, 0xaa, 0x9f, 0x49, 0x8c, 0xc7, 0x47,
+ 0xc2, 0x00, 0x99, 0xa4, 0x25, 0xe6, 0x6a, 0xff, 0xa2, 0x4a, 0x8d, 0x33,
+ 0xe8, 0x19, 0xa9, 0x14, 0xb2, 0x3e, 0x3b, 0xb4, 0x49, 0xd1, 0x76, 0x06,
+ 0x2a, 0xa7, 0xd2, 0x63, 0x31, 0xd1, 0xf0, 0x80, 0x26, 0x69, 0x09, 0x79,
+ 0x9a, 0xbf, 0xe8, 0x92, 0xa3, 0x4c, 0xfa, 0x06, 0x6a, 0x45, 0x2c, 0x8f,
+ 0x8e, 0xed, 0x12, 0x74, 0x5d, 0x81, 0x8a, 0xa9, 0xf4, 0x98, 0xcc, 0x7b,
+ 0x87, 0x10, 0xdd, 0x26, 0x85, 0x16, 0x44, 0x60, 0x2b, 0x09, 0x05, 0x0f,
+ 0x2c, 0x02, 0xbd, 0xeb, 0xb0, 0x0c, 0x61, 0xfb, 0xc0, 0xcb, 0xc3, 0xd3,
+ 0x4b, 0xf8, 0x17, 0x4c, 0xb2, 0x31, 0x9c, 0x8a, 0x40, 0x10, 0xe8, 0xd7,
+ 0xe6, 0x2a, 0xea, 0x6e, 0x08, 0x1c, 0x6b, 0x8f, 0xb7, 0xb0, 0x2c, 0x0c,
+ 0x18, 0xe5, 0x5b, 0xe2, 0x23, 0xcf, 0xf2, 0xfc, 0x35, 0xa8, 0x19, 0x12,
+ 0x4c, 0xa0, 0x06, 0xf4, 0xd5, 0xfa, 0x66, 0x6a, 0xff, 0xd8, 0x26, 0xf7,
+ 0xc2, 0xdd, 0x85, 0x0d, 0x80, 0x63, 0x0e, 0x5a, 0x15, 0x00, 0xa7, 0x2b,
+ 0x90, 0xb6, 0x81, 0x7f, 0xb2, 0xc3, 0x01, 0x97, 0xcc, 0x79, 0x83, 0x12,
+ 0xfe, 0x5e, 0x15, 0xe0, 0xa9, 0x75, 0xb2, 0x2e, 0x42, 0x74, 0xd2, 0x8c,
+ 0xf4, 0x07, 0x39, 0xdd, 0xda, 0x78, 0xb5, 0xc5, 0x83, 0x42, 0x40, 0x05,
+ 0x2a, 0xf6, 0xce, 0xe5, 0x74, 0xa6, 0xa8, 0x48, 0x0b, 0x76, 0x22, 0xee,
+ 0x0c, 0x01, 0x36, 0xdf, 0xba, 0x00, 0xf9, 0x74, 0x38, 0xb6, 0xc7, 0x34,
+ 0x44, 0xa0, 0xd7, 0x94, 0x01, 0xad, 0xf9, 0x8a, 0xe5, 0x0e, 0x8d, 0x7e,
+ 0x62, 0xae, 0xa6, 0xe0, 0x81, 0xc4, 0x99, 0xc2, 0x96, 0xe5, 0x85, 0x0e,
+ 0x07, 0xe9, 0x6c, 0x2f, 0x80, 0x4f, 0x20, 0x00, 0x2a, 0xa3, 0x1f, 0x5f,
+ 0x5c, 0xa1, 0xa2, 0x47, 0x6e, 0xeb, 0x21, 0x80, 0xac, 0x24, 0x14, 0x3c,
+ 0x3e, 0xdd, 0x68, 0x7c, 0xf4, 0x39, 0x03, 0x75, 0x46, 0x66, 0x68, 0x9c,
+ 0x11, 0x84, 0xf2, 0xbf, 0xe5, 0xd9, 0xd6, 0x22, 0x07, 0x56, 0xe1, 0xfc,
+ 0xbc, 0x32, 0x4c, 0x6c, 0x49, 0x4b, 0xad, 0x91, 0x72, 0x13, 0xa6, 0x94,
+ 0x67, 0xa0, 0x39, 0xce, 0xee, 0xd3, 0xc5, 0xae, 0x2c, 0x1a, 0x12, 0x26,
+ 0x7a, 0xe5, 0x0c, 0xdf, 0x32, 0x47, 0x99, 0x40, 0x5b, 0x9b, 0xf5, 0x6d,
+ 0x24, 0xe9, 0xb6, 0x45, 0xbc, 0x80, 0xd0, 0x5f, 0x1a, 0x0b, 0x7a, 0x02,
+ 0xb0, 0x28, 0xd5, 0xf6, 0x38, 0xe5, 0xde, 0xd3, 0xc8, 0xef, 0x8a, 0x07,
+ 0x3d, 0x1b, 0x97, 0x99, 0xab, 0xff, 0x82, 0x4a, 0x5d, 0x6c, 0x8a, 0x76,
+ 0xd8, 0x5b, 0xfa, 0x62, 0x74, 0xb6, 0x17, 0xc0, 0x27, 0x91, 0x71, 0x55,
+ 0x05, 0x1f, 0x3a, 0x11, 0x32, 0xe2, 0x69, 0x5b, 0x87, 0xf2, 0xf3, 0x15,
+ 0xdf, 0x2d, 0x08, 0xde, 0xdc, 0xa2, 0xe0, 0x9b, 0xd0, 0xc1, 0x81, 0x76,
+ 0x1f, 0x21, 0xf1, 0x69, 0x39, 0x32, 0x22, 0x64, 0xd2, 0xc0, 0x91, 0x97,
+ 0xee, 0x9f, 0x0d, 0x5d, 0x8f, 0xec, 0xf4, 0x7a, 0xbe, 0xc4, 0x44, 0xfa,
+ 0x8b, 0x1f, 0x33, 0xf5, 0xbf, 0xa6, 0x1f, 0x91, 0x52, 0x02, 0xeb, 0x49,
+ 0xc9, 0x91, 0x13, 0x0a, 0xea, 0x77, 0xe6, 0x7c, 0x66, 0x3d, 0x53, 0xf9,
+ 0x33, 0x54, 0x9b, 0x01, 0x15, 0x70, 0xcc, 0x15, 0xc8, 0xac, 0x91, 0xaa,
+ 0xde, 0x9c, 0xb9, 0xc5, 0x17, 0x3d, 0xdb, 0x32, 0x84, 0x55, 0x53, 0x5a,
+ 0xaf, 0xc7, 0xf8, 0xa1, 0x9d, 0x8e, 0x2b, 0xee, 0xe5, 0x87, 0x56, 0x52,
+ 0x3a, 0xb3, 0x00, 0x0d, 0x04, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x71, 0x19, 0x00, 0x01, 0x10, 0x28, 0x00, 0x1e, 0xe3,
+ 0x4c, 0x25, 0xff, 0x00, 0xfc, 0x7b, 0xc5, 0xa2, 0x58, 0x8e, 0x04, 0x7c,
+ 0xf4, 0x66, 0x8c, 0x24, 0xf7, 0xf0, 0x18, 0xd7, 0x83, 0x36, 0x91, 0x46,
+ 0xaa, 0xfc, 0x8b, 0x9a, 0x54, 0x62, 0x2d, 0xd3, 0x9b, 0x81, 0xab, 0x32,
+ 0xff, 0x2b, 0x93, 0xee, 0x41, 0xfa, 0x41, 0xc8, 0x4f, 0xe6, 0x30, 0xaf,
+ 0x38, 0xc9, 0xc4, 0x78, 0x80, 0xc1, 0xa0, 0x40, 0x62, 0xb4, 0x4e, 0xa6,
+ 0x45, 0x74, 0x5d, 0xe0, 0x54, 0x63, 0x2d, 0xb2, 0x94, 0xf3, 0xf5, 0xcf,
+ 0x8e, 0xd0, 0x00, 0x49, 0x5f, 0x86, 0xe6, 0x65, 0x18, 0x86, 0x2c, 0x51,
+ 0x73, 0x0d, 0x01, 0x98, 0x4d, 0xd8, 0x81, 0x4e, 0xb7, 0x5a, 0x0c, 0x55,
+ 0xca, 0x9f, 0xcf, 0x40, 0x6e, 0x2a, 0xb2, 0x57, 0x65, 0xf7, 0xc3, 0x89,
+ 0xcd, 0x98, 0x86, 0x75, 0x3f, 0xe8, 0xec, 0x54, 0x2d, 0xa2, 0x44, 0x41,
+ 0x21, 0x53, 0xca, 0x51, 0x64, 0x21, 0xa4, 0x42, 0x5b, 0xae, 0xfd, 0x48,
+ 0x45, 0x7b, 0x83, 0x95, 0x04, 0x46, 0x83, 0x23, 0xea, 0x52, 0x2c, 0xa0,
+ 0x00, 0x7c, 0xe0, 0x3f, 0xfb, 0xb0, 0x02, 0x7e, 0x3f, 0xaa, 0x89, 0x28,
+ 0x03, 0x3b, 0x42, 0x90, 0x24, 0xa1, 0xa7, 0x1e, 0x68, 0x4b, 0x65, 0xad,
+ 0xe3, 0x38, 0x7d, 0xcd, 0xce, 0x0c, 0xc8, 0x2d, 0xe0, 0xd0, 0x14, 0xb0,
+ 0x85, 0x84, 0xcc, 0x7f, 0x79, 0x29, 0xb0, 0x23, 0x66, 0x0e, 0x2d, 0x17,
+ 0x32, 0x46, 0x01, 0x24, 0xc0, 0xde, 0x6e, 0xbb, 0xfa, 0x6c, 0x89, 0x25,
+ 0x52, 0x02, 0x29, 0x44, 0xd5, 0xef, 0x51, 0x73, 0xbd, 0x58, 0x81, 0x6f,
+ 0xec, 0xaf, 0xb6, 0xa7, 0x49, 0xc2, 0x50, 0x4c, 0xec, 0x98, 0x42, 0xaf,
+ 0xd5, 0xf5, 0x7b, 0x03, 0x6f, 0x85, 0x24, 0x5f, 0xd6, 0x7d, 0x6d, 0x6a,
+ 0x7c, 0xc5, 0x0e, 0x1e, 0x3a, 0x03, 0x81, 0x5a, 0x63, 0xeb, 0x55, 0x9f,
+ 0x4c, 0x55, 0xe5, 0xb4, 0xe0, 0xbc, 0x46, 0x19, 0xa2, 0xf0, 0x0a, 0x6e,
+ 0x1b, 0x2c, 0x73, 0x16, 0x1a, 0x50, 0xd1, 0x3f, 0xa9, 0x9e, 0xae, 0xa7,
+ 0x13, 0x22, 0x28, 0x48, 0x27, 0x45, 0x77, 0x41, 0x64, 0x1b, 0xaf, 0xdf,
+ 0xf7, 0x3c, 0xc8, 0x64, 0x89, 0x0e, 0x63, 0x01, 0xcc, 0x2e, 0x57, 0xe9,
+ 0x65, 0xe7, 0x1d, 0xb5, 0x46, 0x5d, 0x18, 0x55, 0x58, 0x92, 0x2a, 0xae,
+ 0x5d, 0x3c, 0x31, 0x6c, 0x9d, 0x2a, 0x32, 0xcc, 0xdd, 0xd0, 0xdf, 0xff,
+ 0x4b, 0x9f, 0x6c, 0x08, 0xa2, 0x6e, 0x59, 0x94, 0xe2, 0xd1, 0xa5, 0x61,
+ 0x44, 0xd5, 0x35, 0x0e, 0x12, 0xbd, 0x9c, 0x32, 0x3f, 0xb6, 0xc3, 0xbe,
+ 0x70, 0x9f, 0xcc, 0x0e, 0x29, 0x5e, 0x14, 0x77, 0x36, 0x73, 0x11, 0x87,
+ 0xe3, 0x68, 0x62, 0x62, 0xd9, 0x07, 0x23, 0x83, 0xa2, 0x44, 0x61, 0x15,
+ 0xdb, 0x8f, 0x2e, 0x1c, 0x4f, 0x3e, 0xf6, 0xca, 0xf3, 0xaa, 0x24, 0xdf,
+ 0xd4, 0xdf, 0x40, 0x55, 0x3d, 0xb8, 0xdf, 0x04, 0x9f, 0xac, 0xfc, 0x49,
+ 0xbc, 0x09, 0xb4, 0x43, 0xde, 0x53, 0x5a, 0xe9, 0x7f, 0x5a, 0xf8, 0x1b,
+ 0x9d, 0x74, 0x77, 0xd5, 0x93, 0xc5, 0xf3, 0x40, 0x18, 0xce, 0x93, 0x92,
+ 0xbb, 0xad, 0x2d, 0xbe, 0x14, 0x2e, 0x60, 0x72, 0xcc, 0xd8, 0xaf, 0xc0,
+ 0x51, 0x57, 0xdf, 0xeb, 0x70, 0x6b, 0x4c, 0xd9, 0x08, 0xae, 0xd3, 0xa9,
+ 0x07, 0x4b, 0x99, 0x81, 0xfd, 0xf6, 0xcc, 0xbd, 0xf9, 0xf1, 0x19, 0x55,
+ 0xda, 0x75, 0x7f, 0x0e, 0x28, 0x49, 0x75, 0xfb, 0x57, 0x91, 0x33, 0x93,
+ 0x7c, 0x65, 0xb8, 0x97, 0x9d, 0x1b, 0x9a, 0x7e, 0xf9, 0x1d, 0xa6, 0xb2,
+ 0xb7, 0x5d, 0x9f, 0x32, 0xd0, 0x13, 0x4b, 0xe2, 0xb5, 0x1c, 0x41, 0xf9,
+ 0x33, 0x68, 0x37, 0x19, 0x49, 0xda, 0x11, 0x0c, 0x04, 0x80, 0x71, 0x49,
+ 0x61, 0x65, 0xcc, 0x8d, 0x0c, 0xb7, 0x48, 0x6a, 0x38, 0x2c, 0xc2, 0xc9,
+ 0xd5, 0x42, 0x56, 0xe6, 0x74, 0x81, 0x66, 0xf8, 0xa2, 0x86, 0x06, 0xb6,
+ 0xd0, 0x74, 0x5b, 0x82, 0xb7, 0x12, 0xe4, 0xaa, 0xaf, 0x97, 0x70, 0xaa,
+ 0x47, 0x31, 0x80, 0xa5, 0xd6, 0x28, 0x28, 0x69, 0x5b, 0x81, 0xdd, 0x39,
+ 0x2a, 0xd5, 0x8f, 0x4c, 0x32, 0x6f, 0x67, 0x83, 0xe4, 0xdf, 0x5f, 0x19,
+ 0x65, 0x83, 0x80, 0x1c, 0xd7, 0xf4, 0x1e, 0x54, 0x36, 0x6f, 0x18, 0x34,
+ 0x9e, 0x26, 0x73, 0xfe, 0x02, 0x12, 0x9d, 0xe6, 0x09, 0x8b, 0x02, 0x99,
+ 0x7e, 0x66, 0x0c, 0x79, 0x16, 0x4b, 0x81, 0xd5, 0x69, 0x8a, 0x1b, 0x6b,
+ 0x09, 0xaa, 0x29, 0xc3, 0xf6, 0x03, 0x7f, 0xe1, 0x2c, 0xf8, 0xce, 0x55,
+ 0x1a, 0xdb, 0x88, 0xc3, 0x0c, 0x36, 0x98, 0x94, 0x42, 0x28, 0xd3, 0xf6,
+ 0x27, 0x85, 0x67, 0xdb, 0xbc, 0x8a, 0x8e, 0x7b, 0x25, 0x4b, 0x96, 0x0c,
+ 0x9c, 0x0d, 0x10, 0xb4, 0x66, 0x83, 0x9c, 0x67, 0x97, 0x0e, 0xc9, 0xf7,
+ 0x27, 0xdf, 0x42, 0xaf, 0x69, 0x9c, 0x3a, 0xa7, 0x41, 0x45, 0x45, 0x96,
+ 0x78, 0x3d, 0xe8, 0x89, 0x76, 0x38, 0xc7, 0xd9, 0xb1, 0x70, 0x27, 0x7c,
+ 0xb0, 0x3a, 0x5f, 0x77, 0x57, 0x32, 0x88, 0x4d, 0xf1, 0xbf, 0xb5, 0x0e,
+ 0x43, 0x0f, 0xc3, 0xf8, 0x6b, 0x7c, 0x06, 0x98, 0x08, 0xec, 0x59, 0x31,
+ 0x2a, 0x2e, 0xa6, 0x06, 0x68, 0x0d, 0x5b, 0x30, 0x0f, 0x8b, 0x86, 0x7a,
+ 0x86, 0xa7, 0x4d, 0xcd, 0x3f, 0x49, 0x76, 0x8c, 0xb9, 0x7b, 0xc3, 0x63,
+ 0xb2, 0x76, 0xb2, 0x06, 0xc8, 0xb8, 0x5a, 0xdc, 0x45, 0x29, 0x84, 0xac,
+ 0x88, 0x62, 0x31, 0xef, 0x92, 0xd6, 0x59, 0x56, 0x2c, 0xd5, 0x88, 0xae,
+ 0xda, 0xdf, 0x09, 0x2d, 0x00, 0xea, 0x92, 0x2c, 0x06, 0xed, 0x4c, 0x11,
+ 0x18, 0x18, 0x9e, 0x54, 0xb5, 0x57, 0xf3, 0x04, 0x32, 0x47, 0x5b, 0x89,
+ 0x2c, 0x62, 0x36, 0x52, 0xbf, 0x24, 0x78, 0x87, 0xfd, 0x4a, 0x1e, 0x6f,
+ 0xcc, 0x3e, 0xad, 0xb0, 0x86, 0xaf, 0x5f, 0x2c, 0xf5, 0xab, 0x35, 0xb3,
+ 0xfe, 0x2a, 0x77, 0x5c, 0x25, 0x57, 0x5d, 0xd4, 0xb9, 0xf3, 0x75, 0x00,
+ 0x50, 0x1b, 0xf2, 0x6b, 0x1d, 0x42, 0x4d, 0x6a, 0xf6, 0x58, 0x15, 0x5e,
+ 0x60, 0xdc, 0xfb, 0x6e, 0x4f, 0xd6, 0xee, 0x1c, 0xec, 0x8d, 0x3d, 0x3c,
+ 0xb2, 0x5e, 0x18, 0x5b, 0xf2, 0x99, 0x1b, 0xc7, 0xf0, 0x4e, 0xf5, 0x79,
+ 0x53, 0xa3, 0xb6, 0xfd, 0x9c, 0x39, 0x22, 0x18, 0x18, 0xd2, 0x39, 0x9e,
+ 0x11, 0x1a, 0x7b, 0xe1, 0x8f, 0x86, 0x30, 0x2f, 0x6b, 0x53, 0x1a, 0x02,
+ 0xaa, 0x44, 0xc3, 0xf6, 0xaf, 0x17, 0xfa, 0x5c, 0x66, 0xda, 0x96, 0x70,
+ 0x38, 0xc4, 0x60, 0xb9, 0x32, 0xe0, 0xd5, 0x48, 0xce, 0x9f, 0xca, 0x3e,
+ 0x49, 0x32, 0x0f, 0x33, 0x36, 0xa2, 0x30, 0xea, 0xda, 0x1a, 0x0a, 0x2b,
+ 0x96, 0xc3, 0xc1, 0x17, 0x00, 0x54, 0x64, 0x96, 0x2a, 0xc6, 0xfb, 0xf6,
+ 0x96, 0x7e, 0x06, 0x05, 0xa7, 0xcf, 0xbc, 0xdc, 0xcb, 0xa5, 0x77, 0xe9,
+ 0x27, 0x1a, 0xa1, 0xc0, 0x6f, 0x5a, 0xfc, 0xab, 0x51, 0xd4, 0x7e, 0xfa,
+ 0xe7, 0x95, 0x12, 0x52, 0x7f, 0xb4, 0x7d, 0x20, 0x36, 0x1a, 0xc9, 0xb6,
+ 0x46, 0xfa, 0xf7, 0x27, 0x8d, 0xfc, 0x04, 0xab, 0xa4, 0x0c, 0x1c, 0x37,
+ 0xe8, 0x68, 0xd2, 0xad, 0xea, 0xe7, 0xf6, 0x61, 0xff, 0x8a, 0x73, 0xff,
+ 0xf4, 0x0b, 0xfd, 0xff, 0xd6, 0x20, 0xec, 0xaa, 0x97, 0xf9, 0x5f, 0x02,
+ 0xbb, 0xc6, 0x65, 0xd5, 0x10, 0xdb, 0xff, 0xbe, 0x42, 0xc2, 0xca, 0x1d,
+ 0x9b, 0xce, 0x8b, 0xff, 0x69, 0x5e, 0x0c, 0xef, 0x5b, 0x8f, 0x11, 0x1f,
+ 0xfc, 0xfd, 0x14, 0x78, 0xb6, 0xff, 0xe7, 0x3d, 0x23, 0x0f, 0x33, 0x67,
+ 0x2b, 0xac, 0x59, 0x63, 0xe7, 0xa4, 0xb4, 0x00, 0x6c, 0x02, 0x00, 0x00,
+ 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x10, 0x00, 0x03,
+ 0x10, 0x24, 0x00, 0x18, 0x6f, 0x56, 0xb0, 0xee, 0x81, 0x4c, 0x7d, 0xd1,
+ 0xb4, 0x06, 0x49, 0xa1, 0xc2, 0x87, 0x92, 0xee, 0xa0, 0x06, 0x95, 0x2d,
+ 0x50, 0x83, 0x15, 0x76, 0x55, 0x9f, 0x85, 0x7f, 0x14, 0x73, 0xae, 0x4b,
+ 0x4c, 0xf0, 0x1f, 0x95, 0x94, 0x48, 0x91, 0x27, 0x45, 0x61, 0x22, 0x34,
+ 0x8d, 0x79, 0x25, 0x7a, 0x4a, 0x37, 0x51, 0xc5, 0xc0, 0x4d, 0xc7, 0xaa,
+ 0xe4, 0x18, 0x42, 0x47, 0xa3, 0xfc, 0xda, 0x3a, 0x60, 0xc6, 0x85, 0x03,
+ 0x59, 0x63, 0x56, 0x1a, 0x30, 0x6f, 0x28, 0x09, 0xe5, 0x62, 0xf3, 0x5c,
+ 0x15, 0x57, 0x62, 0xdb, 0xe0, 0x01, 0x4a, 0xd0, 0x4c, 0xb3, 0x2c, 0x67,
+ 0x48, 0xad, 0x27, 0xee, 0x80, 0x46, 0x21, 0x4f, 0xa4, 0x8a, 0x99, 0xc3,
+ 0x4e, 0x9f, 0x73, 0xca, 0x2d, 0x1b, 0xc7, 0x06, 0x36, 0xcc, 0xcf, 0xfb,
+ 0x23, 0xb2, 0x3b, 0x23, 0x67, 0xfb, 0x8a, 0xce, 0x32, 0xf6, 0x32, 0xbe,
+ 0xbe, 0x80, 0xde, 0x6f, 0x94, 0x74, 0x11, 0x23, 0xe0, 0x85, 0x02, 0xd5,
+ 0xf9, 0x89, 0x01, 0x13, 0x89, 0x34, 0x8a, 0x98, 0xed, 0xf5, 0x4a, 0x06,
+ 0x5d, 0x7f, 0xd2, 0x63, 0xda, 0x20, 0x84, 0xd1, 0xcb, 0xd2, 0xf6, 0xb5,
+ 0x3f, 0x3b, 0xea, 0x34, 0x76, 0xcf, 0x63, 0xa5, 0xaa, 0x06, 0x3e, 0x36,
+ 0x56, 0xe5, 0x70, 0xae, 0xcf, 0x78, 0x7a, 0x10, 0xe3, 0x11, 0x67, 0xa4,
+ 0x10, 0x1d, 0xc3, 0xe2, 0x0a, 0xfd, 0xe2, 0x5e, 0x2a, 0x37, 0x5f, 0xdc,
+ 0x44, 0xee, 0xca, 0x53, 0x7c, 0xcc, 0x9e, 0x0d, 0xce, 0x6a, 0x49, 0xd1,
+ 0xc7, 0x74, 0x46, 0x19, 0x3c, 0x7e, 0x1c, 0x97, 0xf1, 0xd0, 0x13, 0x44,
+ 0x7b, 0x3d, 0x68, 0x1a, 0x36, 0xc3, 0x0d, 0x67, 0x5f, 0xf3, 0xf3, 0x8d,
+ 0xe4, 0xaf, 0xe7, 0x35, 0x03, 0xd5, 0xf9, 0x60, 0x7f, 0x24, 0xfa, 0xb7,
+ 0x06, 0x44, 0xb7, 0x94, 0x76, 0x40, 0x35, 0x74, 0xa1, 0xfd, 0x24, 0x2f,
+ 0x9c, 0xea, 0x74, 0x5e, 0x7b, 0xd1, 0x12, 0x30, 0xe1, 0x94, 0xf6, 0xcf,
+ 0xa1, 0x9d, 0xe2, 0x63, 0x92, 0xbf, 0x83, 0x12, 0x9f, 0xfe, 0x5f, 0xa2,
+ 0xc6, 0xc9, 0x7d, 0x8b, 0xf3, 0x82, 0x90, 0xb1, 0x19, 0xe2, 0x15, 0xc5,
+ 0x78, 0x2e, 0x8b, 0x05, 0x55, 0x28, 0x9e, 0xc9, 0x77, 0x1b, 0xf6, 0x79,
+ 0x71, 0x60, 0xf6, 0xec, 0x5c, 0xaa, 0xf8, 0xbe, 0x65, 0x24, 0x93, 0x22,
+ 0x54, 0xbc, 0x45, 0xca, 0x95, 0x24, 0x67, 0x6e, 0x04, 0x19, 0xd7, 0xdb,
+ 0x10, 0x5f, 0xcf, 0xe6, 0x71, 0x71, 0xd7, 0x2f, 0xf4, 0x01, 0x1e, 0x00,
+ 0x38, 0xda, 0x29, 0x45, 0x84, 0x33, 0xbb, 0xf7, 0x1b, 0x73, 0x1e, 0xfc,
+ 0xb5, 0xb4, 0xaa, 0x61, 0x8a, 0x89, 0xe8, 0x83, 0x2f, 0x1e, 0x37, 0x21,
+ 0x67, 0x0b, 0xe0, 0xff, 0xe1, 0xb5, 0x9d, 0xc4, 0x21, 0xc9, 0xeb, 0x87,
+ 0xd1, 0xc3, 0x62, 0xa4, 0x6c, 0xb1, 0x1d, 0xea, 0x3f, 0x9f, 0x1f, 0xb6,
+ 0xe1, 0x4b, 0x5b, 0xc4, 0x75, 0x1c, 0x51, 0x96, 0xd1, 0xb3, 0xa0, 0x98,
+ 0x22, 0xaf, 0x8f, 0xd7, 0x75, 0xe6, 0xeb, 0x26, 0x33, 0xc0, 0x07, 0xbd,
+ 0xc3, 0x7e, 0x0c, 0xa5, 0x4a, 0x0e, 0x1d, 0x14, 0x44, 0x04, 0xcf, 0xbc,
+ 0xaf, 0x85, 0x47, 0x6a, 0xdf, 0x1c, 0x05, 0xd4, 0x70, 0x22, 0x68, 0x92,
+ 0x92, 0xc0, 0xe9, 0x41, 0x7c, 0xf0, 0xa8, 0xf6, 0x27, 0xdd, 0x8b, 0xf2,
+ 0x36, 0x44, 0xcc, 0x44, 0xf5, 0xb7, 0x28, 0xea, 0x3a, 0x3b, 0xf8, 0x2c,
+ 0xd5, 0xaa, 0xf8, 0xec, 0x99, 0xe8, 0x91, 0x59, 0xe1, 0xc8, 0x8a, 0x3c,
+ 0x2d, 0x8f, 0xd7, 0x6f, 0x97, 0xeb, 0x02, 0xab, 0x80, 0xe6, 0xee, 0x45,
+ 0x71, 0x36, 0xb4, 0x9e, 0x10, 0x89, 0x9d, 0x5e, 0x75, 0x85, 0x14, 0x84,
+ 0x00, 0xc8, 0xc1, 0x60, 0x86, 0x07, 0x74, 0xb7, 0x17, 0x1a, 0x6f, 0x10,
+ 0xa2, 0x76, 0x6f, 0x40, 0x8b, 0xf1, 0x5a, 0x72, 0x80, 0x42, 0xb5, 0x82,
+ 0x37, 0x65, 0x97, 0x9d, 0x90, 0xba, 0x94, 0x32, 0x47, 0xa7, 0x7b, 0x7e,
+ 0x59, 0xcd, 0x76, 0x42, 0x54, 0xac, 0x79, 0x12, 0x35, 0x7a, 0xa0, 0xeb,
+ 0x40, 0x69, 0x61, 0xdc, 0x3f, 0xdb, 0xd6, 0x1e, 0x3f, 0x85, 0x0a, 0x42,
+ 0x00, 0x4b, 0xc0, 0xef, 0x35, 0x61, 0x56, 0x6b, 0xc4, 0xa1, 0x60, 0xad,
+ 0x84, 0xad, 0x62, 0xbf, 0x11, 0x5b, 0x93, 0x70, 0x14, 0x4b, 0xa6, 0xb0,
+ 0x91, 0x8d, 0xf8, 0xde, 0x09, 0x3d, 0xbf, 0xf5, 0x42, 0xba, 0xcb, 0x66,
+ 0xee, 0x6d, 0xbc, 0x9e, 0x9a, 0xaa, 0x72, 0x4f, 0x99, 0x45, 0x5b, 0xdb,
+ 0xa9, 0xc9, 0x40, 0x00, 0xd2, 0x03, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x51, 0x19, 0x00, 0x03, 0x10, 0x24, 0x00, 0x19,
+ 0x79, 0x99, 0x96, 0x6c, 0xa5, 0xcd, 0xfd, 0x5f, 0x6d, 0x8d, 0xa1, 0xc0,
+ 0x7b, 0xb2, 0xff, 0xe6, 0xff, 0x9e, 0x91, 0xf4, 0x98, 0xfd, 0x73, 0xeb,
+ 0x57, 0xd6, 0x83, 0x9d, 0xae, 0x2e, 0xdd, 0xb8, 0x1e, 0x51, 0x76, 0x53,
+ 0xac, 0xd2, 0x8d, 0xc8, 0x77, 0x38, 0xf4, 0xe7, 0x62, 0xeb, 0x1a, 0xd5,
+ 0x50, 0x2d, 0x21, 0x61, 0x20, 0x41, 0xc6, 0x1d, 0x37, 0x84, 0xbc, 0x53,
+ 0x93, 0x9d, 0xe2, 0xa8, 0x55, 0x39, 0xc6, 0x8e, 0xa9, 0xf2, 0x65, 0x90,
+ 0x88, 0x78, 0x3f, 0x76, 0xe3, 0xb9, 0x72, 0x50, 0x1b, 0xad, 0xdb, 0x68,
+ 0x18, 0x6b, 0xe8, 0x31, 0xec, 0xf0, 0xbf, 0xd9, 0x4e, 0x21, 0x31, 0x22,
+ 0x67, 0xfa, 0x87, 0xa1, 0x2b, 0x50, 0xbf, 0x29, 0x1c, 0x18, 0x2d, 0x31,
+ 0x1d, 0xb0, 0x68, 0x9d, 0xdd, 0x71, 0x0a, 0xb2, 0x0d, 0x8b, 0x65, 0x36,
+ 0x2f, 0x7f, 0xb0, 0xfd, 0x61, 0x6e, 0xee, 0x62, 0xf1, 0xef, 0x98, 0xc4,
+ 0xaa, 0x95, 0xf3, 0x0a, 0x43, 0xb5, 0xe7, 0x90, 0xa4, 0x3b, 0x41, 0x2d,
+ 0x03, 0xd3, 0x90, 0x2b, 0x7d, 0xc4, 0x20, 0x06, 0x39, 0x57, 0x6c, 0x00,
+ 0xf2, 0x14, 0x87, 0x68, 0x25, 0xa0, 0x7a, 0x72, 0x05, 0x6f, 0xb8, 0x84,
+ 0x00, 0xc7, 0x2a, 0xed, 0x80, 0x1e, 0x42, 0x90, 0xed, 0x04, 0xb4, 0x0f,
+ 0x4e, 0x40, 0x0a, 0xa0, 0x5f, 0x0a, 0xac, 0x69, 0x41, 0x63, 0xa8, 0x40,
+ 0xd4, 0x03, 0xb5, 0xaf, 0xa0, 0xe9, 0x2c, 0x3d, 0x22, 0x5a, 0x30, 0x90,
+ 0xf0, 0x65, 0xe0, 0x37, 0x7c, 0xa6, 0x14, 0x55, 0xa2, 0xa5, 0xdc, 0x26,
+ 0x2b, 0x61, 0xe6, 0xdb, 0x33, 0xca, 0xe7, 0xdd, 0x90, 0x7a, 0x02, 0x64,
+ 0xd3, 0xa7, 0x69, 0xc2, 0x05, 0x35, 0x40, 0x1c, 0x27, 0x55, 0x2b, 0x57,
+ 0xeb, 0x4f, 0xc2, 0x5c, 0xf0, 0xb6, 0xf6, 0xa0, 0xbc, 0x02, 0x01, 0x05,
+ 0x64, 0xe6, 0xee, 0xed, 0xa3, 0x33, 0x0b, 0xd2, 0xff, 0xa5, 0xd0, 0x85,
+ 0x48, 0x40, 0x8c, 0x6d, 0xa5, 0xbc, 0xed, 0xc9, 0x55, 0xc6, 0x1f, 0xb6,
+ 0xe1, 0xc1, 0x1d, 0x5f, 0x8d, 0x21, 0x3e, 0xf8, 0xcb, 0x78, 0x8c, 0xdf,
+ 0x98, 0xb4, 0x4c, 0x08, 0x4a, 0xf0, 0x8c, 0x2b, 0xdd, 0xac, 0x3e, 0xf8,
+ 0x8a, 0xd8, 0xb5, 0x3f, 0x52, 0xeb, 0x5a, 0x16, 0x5e, 0x30, 0xce, 0xba,
+ 0xed, 0x72, 0xad, 0x60, 0xa7, 0xd4, 0xaa, 0xd9, 0x58, 0x4e, 0xd0, 0xdf,
+ 0x4d, 0x55, 0xce, 0x5c, 0x44, 0xe4, 0x3c, 0xf0, 0x4b, 0x5a, 0x66, 0xa4,
+ 0x60, 0x28, 0x67, 0xb2, 0xc5, 0x7d, 0x64, 0xda, 0x46, 0x8f, 0xde, 0xec,
+ 0x2d, 0x42, 0xe8, 0x66, 0xcd, 0x86, 0xec, 0xe4, 0x7f, 0xef, 0x64, 0xa0,
+ 0xf6, 0x32, 0xc4, 0x36, 0xbc, 0x6d, 0x85, 0x81, 0x09, 0x64, 0x7a, 0xf8,
+ 0x92, 0x6c, 0xf1, 0x0c, 0x9f, 0x26, 0xa6, 0xa7, 0xdf, 0xb6, 0x61, 0x54,
+ 0xef, 0xff, 0xb5, 0x78, 0xa7, 0x94, 0x82, 0xc9, 0xe0, 0x5e, 0xa9, 0x9f,
+ 0xf7, 0x57, 0xad, 0x11, 0xdd, 0x89, 0x81, 0xf2, 0xba, 0x72, 0x26, 0x96,
+ 0xa0, 0xec, 0xd4, 0xb3, 0xa6, 0x27, 0x1d, 0xb7, 0xf8, 0x70, 0x2d, 0xa3,
+ 0xb9, 0xc1, 0x88, 0x61, 0xca, 0x9e, 0x2a, 0xe2, 0xc2, 0xf5, 0x91, 0x6a,
+ 0xf0, 0xfb, 0x1e, 0x0b, 0x12, 0x6b, 0xd0, 0x74, 0xbe, 0x81, 0xde, 0xd4,
+ 0x22, 0xec, 0xe7, 0x4c, 0x1b, 0x0f, 0x0a, 0xd1, 0xcf, 0x28, 0x09, 0x3e,
+ 0xdb, 0x7b, 0xa4, 0xe2, 0x2b, 0x1d, 0xee, 0x08, 0xe8, 0xa6, 0x04, 0xff,
+ 0xf2, 0x19, 0xe8, 0xd3, 0x3a, 0xe3, 0x11, 0xe9, 0x06, 0x1f, 0xf0, 0xcb,
+ 0x88, 0x78, 0x6c, 0xa0, 0x21, 0x96, 0x36, 0xbe, 0xce, 0xed, 0x24, 0xc9,
+ 0x0f, 0x1c, 0x02, 0x19, 0x8c, 0xe4, 0xe6, 0x8e, 0x1e, 0x1d, 0xea, 0x09,
+ 0x00, 0x95, 0xa0, 0x82, 0xf1, 0x56, 0x39, 0x11, 0xd9, 0x80, 0x61, 0x42,
+ 0x93, 0x9b, 0xc7, 0xbc, 0xf7, 0x24, 0x74, 0x62, 0x3c, 0x7b, 0x2b, 0x55,
+ 0xdd, 0x26, 0xc0, 0xd9, 0x3a, 0x2f, 0x68, 0x6a, 0x98, 0x67, 0x2e, 0xa7,
+ 0x05, 0x91, 0xcc, 0x31, 0x80, 0x2a, 0x5d, 0xc8, 0x33, 0x24, 0x6e, 0x55,
+ 0xab, 0x2e, 0x55, 0x7d, 0x65, 0x43, 0x63, 0xfc, 0x5c, 0x25, 0xd4, 0x42,
+ 0x92, 0x8d, 0xae, 0xd7, 0xfd, 0x2a, 0x42, 0xff, 0x7d, 0xc1, 0x29, 0xa2,
+ 0x6c, 0x40, 0x61, 0xbf, 0x28, 0x8b, 0x24, 0xe4, 0xfd, 0x43, 0xca, 0xd0,
+ 0xbc, 0x3e, 0x6f, 0x6d, 0xef, 0x04, 0x8e, 0x8d, 0x38, 0x53, 0x9d, 0x92,
+ 0xac, 0x47, 0x50, 0x98, 0xfc, 0x95, 0xeb, 0xe7, 0x36, 0xb0, 0x51, 0x44,
+ 0xda, 0xb5, 0x97, 0x7a, 0xbd, 0x4d, 0xb9, 0x57, 0x05, 0x54, 0x47, 0x1e,
+ 0x62, 0xd3, 0xa9, 0xfe, 0x39, 0x8f, 0x7c, 0x0d, 0x5f, 0xd9, 0xef, 0x3b,
+ 0xbe, 0x91, 0xff, 0x2f, 0x6a, 0x4a, 0xdf, 0x10, 0x2d, 0xa4, 0x7b, 0xe3,
+ 0x7a, 0x58, 0x6b, 0xf5, 0xe1, 0x2d, 0x8d, 0x9f, 0x75, 0x44, 0xc8, 0xce,
+ 0x73, 0x19, 0x2d, 0x54, 0x1d, 0x67, 0xce, 0xe4, 0x24, 0xc8, 0x4a, 0x0f,
+ 0x68, 0x4f, 0xa8, 0x5a, 0xf8, 0xaf, 0x35, 0x8a, 0x88, 0xff, 0x59, 0xdf,
+ 0xb6, 0x93, 0xbe, 0x29, 0xf3, 0xbc, 0x58, 0xf0, 0x25, 0xe0, 0x80, 0x10,
+ 0x1a, 0x70, 0x04, 0x7d, 0x96, 0xd2, 0x27, 0xfa, 0x55, 0x4b, 0xdc, 0x78,
+ 0x91, 0xdd, 0x55, 0xa5, 0xe0, 0xc3, 0x44, 0x33, 0x87, 0x49, 0x8f, 0x64,
+ 0x60, 0x82, 0x42, 0x1f, 0x73, 0xb9, 0x42, 0xcf, 0x27, 0x91, 0xc8, 0x3b,
+ 0x4f, 0x2c, 0xc8, 0xed, 0xb3, 0x60, 0xd6, 0xa4, 0x54, 0x9b, 0x71, 0x02,
+ 0x7c, 0xed, 0xf7, 0x23, 0xa4, 0xb8, 0xe0, 0x53, 0x9a, 0x3e, 0x34, 0xf3,
+ 0x8a, 0xe2, 0x5d, 0xea, 0x69, 0x93, 0xb3, 0x3f, 0x2c, 0x06, 0x6d, 0x35,
+ 0xff, 0x80, 0x7c, 0x7f, 0xdc, 0xbf, 0x1c, 0x6f, 0xdf, 0xfa, 0xd0, 0x3a,
+ 0xad, 0xa7, 0xf7, 0x63, 0xe5, 0x57, 0xc5, 0x8c, 0xc9, 0x8a, 0xd7, 0xc8,
+ 0xc3, 0xc0, 0x90, 0xaf, 0x17, 0x23, 0xa8, 0x82, 0x62, 0xf1, 0x8d, 0x02,
+ 0x1a, 0x2e, 0xcb, 0xcd, 0xcc, 0x2f, 0x04, 0x27, 0xb3, 0x64, 0xee, 0x35,
+ 0xc2, 0xcf, 0xa3, 0xae, 0x98, 0x08, 0xd2, 0x1d, 0x8f, 0x86, 0x80, 0x80,
+ 0x30, 0xce, 0xd8, 0xcf, 0x95, 0xe9, 0xd8, 0x21, 0x46, 0x87, 0x9e, 0xe0,
+ 0xc1, 0x30, 0xb0, 0x2e, 0x82, 0xee, 0x18, 0xa6, 0x82, 0x25, 0x4b, 0x95,
+ 0x39, 0x12, 0xa6, 0xcc, 0x0b, 0x3a, 0x92, 0x93, 0xd9, 0xd3, 0x5f, 0x27,
+ 0x95, 0xbb, 0xdd, 0x02, 0x70, 0xc6, 0x7c, 0x1f, 0x98, 0x4c, 0x51, 0x33,
+ 0xb4, 0x24, 0x8c, 0x43, 0xf3, 0xcd, 0x4c, 0x2a, 0xdd, 0x67, 0x9c, 0xce,
+ 0xa1, 0xfb, 0xf4, 0x05, 0x81, 0xbb, 0x49, 0x8d, 0x32, 0xe5, 0xda, 0xe3,
+ 0x1a, 0x6b, 0x59, 0x7e, 0x9c, 0x29, 0xca, 0x69, 0xa6, 0x04, 0x32, 0xba,
+ 0x24, 0x62, 0xee, 0xe1, 0xbe, 0x68, 0xfe, 0xef, 0x3f, 0xaa, 0x5e, 0x59,
+ 0x40, 0xb6, 0x70, 0xba, 0x47, 0xb1, 0x67, 0xe7, 0x8d, 0xd9, 0x89, 0xb5,
+ 0x0f, 0x1e, 0xdc, 0x8b, 0xc6, 0x7a, 0xe0, 0x51, 0xf2, 0xeb, 0x71, 0x57,
+ 0xff, 0xe7, 0xdf, 0x7f, 0xea, 0xf8, 0x3c, 0x95, 0x18, 0x54, 0xab, 0xf5,
+ 0xf8, 0x4c, 0xd2, 0x33, 0x0e, 0x48, 0x2c, 0xc8, 0x5e, 0xa0, 0xf8, 0x06,
+ 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x18,
+ 0x00, 0x05, 0x10, 0x14, 0x14, 0x7a, 0xc8, 0x37, 0x05, 0x6e, 0x0f, 0xde,
+ 0x00, 0x69, 0xf3, 0xd0, 0xe1, 0xaf, 0xe5, 0x52, 0x19, 0x5c, 0xaf, 0xc3,
+ 0x08, 0xca, 0xc9, 0x6b, 0xe2, 0x4b, 0xf6, 0xf3, 0xd9, 0x33, 0xd4, 0x1f,
+ 0xf9, 0x86, 0xe4, 0xf5, 0xf6, 0x6e, 0x64, 0x74, 0xcc, 0x4b, 0xc2, 0x44,
+ 0x11, 0xc0, 0x80, 0x5c, 0x20, 0x50, 0x97, 0x2e, 0xef, 0x7a, 0x6a, 0x21,
+ 0x3d, 0x39, 0xa1, 0xae, 0x3e, 0x47, 0x3f, 0x33, 0x7d, 0x28, 0xd9, 0x33,
+ 0x89, 0xd9, 0xa0, 0xcb, 0x28, 0xe1, 0x66, 0xf6, 0xc8, 0xc6, 0xcc, 0xde,
+ 0x24, 0x8e, 0xa3, 0xae, 0x2f, 0xbb, 0x40, 0x49, 0x9a, 0x17, 0x40, 0xd0,
+ 0x27, 0x15, 0x52, 0x33, 0xd2, 0x99, 0x6b, 0xf9, 0x30, 0xa2, 0xdb, 0xa7,
+ 0x45, 0x61, 0xde, 0x06, 0x0b, 0x14, 0x53, 0x5e, 0xd5, 0xae, 0x00, 0x0d,
+ 0xae, 0x1c, 0x6d, 0x72, 0x06, 0x1b, 0xea, 0x8c, 0x47, 0x1b, 0x20, 0x4f,
+ 0x55, 0x77, 0xec, 0x55, 0x9d, 0x68, 0x99, 0x25, 0xc7, 0x76, 0x96, 0x98,
+ 0xd4, 0x93, 0xec, 0x1a, 0x0b, 0x7d, 0x2f, 0xd5, 0xe2, 0x51, 0xd3, 0x09,
+ 0xae, 0xc5, 0xa0, 0xfb, 0xf3, 0xdd, 0xba, 0xec, 0x04, 0xfe, 0x1d, 0x02,
+ 0x89, 0x6e, 0x59, 0xcd, 0x4e, 0x26, 0xb4, 0x32, 0x16, 0xce, 0x65, 0x41,
+ 0x11, 0x55, 0xb6, 0xff, 0x4e, 0x01, 0x77, 0x03, 0xcf, 0xdd, 0xc0, 0xb4,
+ 0x34, 0x31, 0x33, 0x2a, 0xef, 0x00, 0x00, 0x28, 0xb2, 0xab, 0xa7, 0x3b,
+ 0x09, 0xe0, 0xd9, 0x6c, 0x65, 0x3b, 0x6c, 0xb7, 0xcc, 0xc0, 0x90, 0xdb,
+ 0x4b, 0xad, 0x8f, 0x27, 0x8f, 0x66, 0x6d, 0xbb, 0x67, 0xfd, 0x8a, 0x1d,
+ 0x34, 0xa7, 0x20, 0x26, 0xb2, 0x3a, 0x52, 0x4e, 0x33, 0x38, 0x25, 0x16,
+ 0x76, 0xbd, 0x26, 0x77, 0xdb, 0xcb, 0x66, 0x00, 0x3a, 0x2c, 0x1c, 0xb6,
+ 0x87, 0xa4, 0x59, 0x76, 0xb2, 0x9c, 0x66, 0x29, 0x7a, 0x43, 0xb6, 0xf2,
+ 0x50, 0x5e, 0x26, 0x85, 0x72, 0xb0, 0xef, 0xb4, 0xd0, 0x6a, 0x3e, 0xe9,
+ 0x6f, 0x84, 0x65, 0xae, 0xe4, 0x61, 0x3d, 0x99, 0x50, 0xb7, 0x4d, 0x3d,
+ 0xa6, 0x08, 0x34, 0x47, 0x04, 0xd7, 0x6d, 0x92, 0x2d, 0x74, 0x43, 0x93,
+ 0x3b, 0x1b, 0x84, 0xf0, 0x71, 0xd2, 0xcc, 0xe5, 0x8c, 0x73, 0xbd, 0x82,
+ 0x2e, 0xfd, 0xec, 0x4c, 0xe7, 0x47, 0x93, 0x3f, 0xe1, 0x79, 0x82, 0x55,
+ 0x06, 0xcb, 0xc9, 0xd9, 0x94, 0x54, 0x3a, 0xa3, 0x9a, 0x01, 0xd8, 0x7e,
+ 0xe2, 0xbe, 0x1e, 0x73, 0xa8, 0xaa, 0xc1, 0x37, 0x16, 0x3d, 0x77, 0xcc,
+ 0xcb, 0xe6, 0xe2, 0x60, 0xc4, 0xc4, 0x14, 0x0c, 0xc3, 0xec, 0xe6, 0x37,
+ 0x4f, 0xe3, 0x51, 0x19, 0xb8, 0x0c, 0x7c, 0x88, 0xe4, 0x75, 0x2f, 0x9e,
+ 0x68, 0x10, 0x39, 0xff, 0x92, 0x0f, 0xa4, 0x63, 0x40, 0x3a, 0x0e, 0x5c,
+ 0x6e, 0xf2, 0xbb, 0xbb, 0x8d, 0xc4, 0xe8, 0x67, 0xe6, 0x80, 0x40, 0x7c,
+ 0xbb, 0x3e, 0x7b, 0xe2, 0xb1, 0x17, 0x5e, 0xbb, 0x49, 0x90, 0x0b, 0x80,
+ 0x06, 0x65, 0x42, 0xaf, 0xdf, 0xfa, 0xe6, 0xea, 0xa3, 0xad, 0xc3, 0x15,
+ 0x5b, 0x50, 0x3b, 0x8b, 0xec, 0x41, 0x89, 0x4c, 0xb1, 0x6f, 0x45, 0x1d,
+ 0x04, 0xc9, 0xdc, 0x0d, 0x00, 0xa9, 0xc8, 0x0c, 0xdc, 0x41, 0xb5, 0x5b,
+ 0x39, 0x9f, 0x91, 0xdb, 0xef, 0xa4, 0xff, 0xf4, 0x06, 0x84, 0x6a, 0x2e,
+ 0x8b, 0x07, 0x61, 0xb0, 0xc5, 0x18, 0xa0, 0xf3, 0x91, 0x67, 0xca, 0xab,
+ 0x23, 0xa6, 0x5e, 0x16, 0xd1, 0x65, 0xd1, 0x69, 0x0e, 0xf3, 0x58, 0xf6,
+ 0x65, 0x42, 0x46, 0x87, 0xa9, 0x09, 0xdc, 0xa0, 0x3a, 0x48, 0xaf, 0x2e,
+ 0xd8, 0x82, 0xad, 0xd8, 0xd7, 0x17, 0xe0, 0xdf, 0xea, 0xe2, 0x92, 0xdc,
+ 0x5f, 0xd7, 0x3d, 0xca, 0x1c, 0x54, 0xd6, 0x67, 0xd1, 0xb6, 0xfe, 0xf7,
+ 0x94, 0x5e, 0x8b, 0x0f, 0x8b, 0x3a, 0x7a, 0x11, 0x40, 0x85, 0x77, 0x00,
+ 0x0b, 0x3f, 0xef, 0xf5, 0xf7, 0x48, 0xb1, 0xd1, 0xb6, 0xc2, 0xee, 0x0d,
+ 0x24, 0x0b, 0x5b, 0xa5, 0xe6, 0x1c, 0x0b, 0x0f, 0x2d, 0x24, 0xe1, 0xae,
+ 0x01, 0x56, 0x94, 0x08, 0xf6, 0x62, 0xd9, 0xe9, 0x47, 0x8a, 0x83, 0x3a,
+ 0xb1, 0xd8, 0x6f, 0xb9, 0xa4, 0x61, 0xa7, 0xc4, 0x21, 0x47, 0x5f, 0x68,
+ 0x5a, 0x43, 0x3a, 0x1e, 0xc8, 0xbc, 0xfd, 0x6d, 0x5a, 0xf6, 0x30, 0xe5,
+ 0xef, 0x6d, 0xa4, 0x4a, 0x43, 0x3e, 0xff, 0xcd, 0xfe, 0xc4, 0xb2, 0x3d,
+ 0x3a, 0xc5, 0x61, 0x37, 0x81, 0x22, 0xbb, 0x42, 0x8d, 0xb1, 0x21, 0x03,
+ 0xd2, 0xd5, 0x8a, 0xfe, 0x23, 0x21, 0x88, 0xc4, 0xcd, 0x59, 0xd1, 0x2b,
+ 0x2e, 0x5c, 0x38, 0x39, 0xd2, 0x52, 0xee, 0x29, 0x14, 0xf3, 0x80, 0x87,
+ 0x73, 0xff, 0x86, 0x28, 0xc8, 0x4d, 0x9f, 0xc6, 0xe7, 0x11, 0x99, 0x8f,
+ 0xf2, 0x9e, 0x44, 0x2f, 0xcc, 0xa2, 0x76, 0xe7, 0x1b, 0xd5, 0x68, 0x5e,
+ 0x61, 0x30, 0x88, 0xde, 0x3b, 0xd4, 0x11, 0x37, 0x77, 0xef, 0xf9, 0x67,
+ 0xef, 0xb2, 0xc0, 0x84, 0x24, 0x65, 0xb6, 0x1f, 0xf2, 0x43, 0xb4, 0xe0,
+ 0xa9, 0xcf, 0x08, 0xa5, 0x28, 0x56, 0x85, 0xdd, 0x9e, 0x0b, 0x82, 0x17,
+ 0xf9, 0xf1, 0x7a, 0xfb, 0xda, 0xcd, 0x0b, 0xad, 0x3b, 0xb9, 0x14, 0xa2,
+ 0x3f, 0x25, 0xb7, 0x9d, 0xfe, 0xde, 0x37, 0x7c, 0x90, 0x6b, 0x05, 0x1c,
+ 0x8a, 0x8b, 0xfc, 0x41, 0x70, 0xbc, 0x23, 0xc4, 0xb9, 0x4b, 0x05, 0xb9,
+ 0x40, 0x84, 0xd6, 0x35, 0xc0, 0xb2, 0x21, 0xa1, 0x6f, 0xee, 0x39, 0xad,
+ 0x82, 0x42, 0x3c, 0x3e, 0x42, 0xde, 0x74, 0x1b, 0x1b, 0xea, 0xbb, 0x81,
+ 0xbc, 0x06, 0xeb, 0x51, 0x7d, 0xb0, 0x1a, 0x15, 0xff, 0x2b, 0x9e, 0xab,
+ 0x59, 0xa9, 0x76, 0xdf, 0x33, 0x94, 0xf8, 0x4a, 0x36, 0xa5, 0x7e, 0xf4,
+ 0xdc, 0xb7, 0xcf, 0x98, 0x76, 0x8f, 0x2b, 0x34, 0xbc, 0xf7, 0xb7, 0x56,
+ 0x1e, 0x01, 0x82, 0xc8, 0x89, 0x5e, 0x4c, 0x49, 0x47, 0x41, 0xd7, 0xdc,
+ 0x0d, 0x11, 0xbe, 0x05, 0x1e, 0x25, 0xb8, 0x8f, 0x21, 0x03, 0x0f, 0x90,
+ 0x07, 0xe7, 0x81, 0x0e, 0xfc, 0x8f, 0xba, 0xa4, 0xfe, 0x70, 0xc1, 0xc3,
+ 0x5c, 0x76, 0xb1, 0x76, 0x1e, 0xa6, 0x7c, 0xc2, 0x8a, 0x76, 0x9c, 0x7a,
+ 0x57, 0x56, 0xb0, 0x95, 0x45, 0xb1, 0x98, 0x96, 0x9f, 0xdd, 0xd6, 0x98,
+ 0x4d, 0xcc, 0xdf, 0x53, 0x45, 0x07, 0xe8, 0x9a, 0xb6, 0xba, 0xb4, 0x3f,
+ 0x3b, 0x10, 0x28, 0x22, 0xea, 0xcf, 0x81, 0x76, 0x43, 0x9e, 0x2d, 0x62,
+ 0xd5, 0xcd, 0x7f, 0x98, 0x28, 0x64, 0x09, 0x5f, 0xfa, 0x4e, 0xa3, 0x55,
+ 0xb1, 0x1c, 0xec, 0x52, 0x9f, 0x66, 0x44, 0xc4, 0x13, 0xbf, 0xb8, 0x33,
+ 0xfa, 0x00, 0x59, 0xb1, 0x6a, 0xc6, 0x2a, 0xcc, 0x94, 0x73, 0x79, 0xe9,
+ 0xa7, 0x24, 0x34, 0xee, 0x54, 0x3b, 0x13, 0xf5, 0xae, 0xd8, 0x33, 0xb9,
+ 0x3e, 0x0d, 0xad, 0x59, 0x08, 0x1b, 0x57, 0xb3, 0xa1, 0xfb, 0x98, 0xf4,
+ 0xd4, 0xac, 0x44, 0xf4, 0x19, 0xc7, 0x1e, 0xa6, 0x92, 0x02, 0x9b, 0xf4,
+ 0xff, 0x7e, 0x10, 0x41, 0xbc, 0xe9, 0x28, 0x53, 0xa6, 0x9a, 0x82, 0xa5,
+ 0x69, 0x3d, 0x4d, 0xaa, 0xab, 0x70, 0xa7, 0x6b, 0x51, 0xa2, 0xef, 0xae,
+ 0xf4, 0x8c, 0xc9, 0x63, 0x1a, 0xda, 0x03, 0xe3, 0x91, 0x86, 0x4c, 0xb1,
+ 0x67, 0x53, 0xbe, 0xf0, 0x55, 0x46, 0xc2, 0x35, 0x1d, 0xa2, 0xd7, 0x55,
+ 0x6a, 0xdd, 0x42, 0x6c, 0x50, 0x0b, 0x74, 0x45, 0xb9, 0xd9, 0xc7, 0xa4,
+ 0xb3, 0xae, 0xa1, 0x4b, 0x68, 0x26, 0x53, 0xde, 0xed, 0x56, 0xa0, 0xd8,
+ 0xd5, 0x8d, 0x9a, 0x6e, 0x38, 0x54, 0xe6, 0x24, 0x15, 0x78, 0xa6, 0x70,
+ 0x1f, 0x9e, 0xd5, 0xf3, 0x96, 0xa6, 0x2e, 0xa4, 0xf9, 0xfe, 0xbd, 0x73,
+ 0xcc, 0xe4, 0xb5, 0x36, 0x19, 0xfb, 0x91, 0xae, 0x13, 0x63, 0xc7, 0xb2,
+ 0xac, 0xd6, 0xae, 0xe4, 0xff, 0x9c, 0x49, 0x7b, 0xe8, 0x9a, 0x63, 0x3e,
+ 0xc0, 0xb3, 0xc0, 0x68, 0x32, 0xf0, 0x2a, 0x87, 0x74, 0x26, 0x26, 0x8f,
+ 0xf5, 0x0b, 0xd2, 0x2f, 0x97, 0x27, 0x02, 0x4b, 0x1d, 0x3e, 0x4f, 0x93,
+ 0xac, 0xa2, 0xd7, 0xe9, 0xcb, 0xcb, 0x06, 0x38, 0xfb, 0xdb, 0x81, 0xf3,
+ 0xc1, 0xef, 0xb3, 0x82, 0x7b, 0x6e, 0xf1, 0x86, 0xfb, 0xb1, 0x03, 0x9e,
+ 0xab, 0x68, 0x6d, 0xac, 0x7b, 0x80, 0xeb, 0x74, 0xbe, 0xf2, 0xc1, 0x8d,
+ 0xf7, 0xab, 0x5e, 0xe6, 0x1c, 0xf7, 0xac, 0x69, 0xfd, 0x0e, 0xb8, 0xeb,
+ 0x74, 0xd0, 0x2b, 0x2a, 0x15, 0x59, 0xd3, 0xc0, 0xc4, 0xc1, 0x54, 0x26,
+ 0x9f, 0xa4, 0x7f, 0x25, 0x07, 0xf3, 0xcf, 0xde, 0x79, 0xf7, 0x01, 0x44,
+ 0x11, 0x99, 0xc0, 0xe0, 0x6f, 0x51, 0xcb, 0x24, 0x9b, 0x72, 0x4d, 0xde,
+ 0x75, 0x60, 0x41, 0xdc, 0x97, 0xdd, 0xcf, 0x89, 0x87, 0xc1, 0x78, 0x5e,
+ 0x96, 0x36, 0x8b, 0xdf, 0xa7, 0x12, 0x43, 0x42, 0xd9, 0x3b, 0x3c, 0x9d,
+ 0xcd, 0xbf, 0xf3, 0xc9, 0x45, 0xb7, 0x25, 0xf0, 0x7b, 0x6b, 0xff, 0xe3,
+ 0x38, 0x7e, 0xf5, 0x5c, 0xd0, 0xc0, 0xc2, 0x49, 0x54, 0x24, 0xba, 0x47,
+ 0x85, 0xb4, 0x55, 0x54, 0xa8, 0xa9, 0xed, 0x5b, 0x23, 0xe5, 0xcb, 0x6e,
+ 0xfa, 0x89, 0x57, 0xe6, 0x60, 0x66, 0xaf, 0x0a, 0xef, 0x88, 0x07, 0x6f,
+ 0x2f, 0xdf, 0x89, 0xca, 0x76, 0xd6, 0x33, 0x35, 0x28, 0x56, 0xe3, 0x2b,
+ 0x08, 0xdd, 0x82, 0xea, 0xe7, 0xd8, 0xeb, 0xdb, 0xd5, 0xa4, 0xfd, 0x56,
+ 0x9a, 0x0f, 0x3a, 0x46, 0x4a, 0xc1, 0x2c, 0x6e, 0x41, 0x86, 0x01, 0xfc,
+ 0x1d, 0x14, 0x1b, 0x1c, 0x9f, 0xd9, 0x62, 0xe5, 0xb5, 0x1e, 0x3f, 0x4e,
+ 0x7f, 0x88, 0xa9, 0x11, 0x9c, 0xb3, 0xf3, 0x1c, 0xe8, 0x1c, 0xf7, 0xa0,
+ 0xc1, 0xf9, 0xf3, 0x53, 0x26, 0x24, 0xeb, 0xfc, 0x59, 0x32, 0x3a, 0x26,
+ 0x63, 0x23, 0xce, 0x10, 0xae, 0xff, 0x13, 0xa5, 0xa2, 0x12, 0x6f, 0xe8,
+ 0xb7, 0x59, 0xa4, 0x5e, 0x48, 0x66, 0xda, 0xa2, 0x31, 0x64, 0x22, 0xc5,
+ 0xf5, 0xd2, 0x13, 0xca, 0x89, 0xc2, 0xbb, 0x2d, 0x9c, 0x54, 0xde, 0xca,
+ 0x6c, 0xcf, 0x0e, 0x4b, 0xc9, 0xb3, 0x24, 0x10, 0x90, 0x41, 0x2f, 0x91,
+ 0x97, 0x50, 0x8a, 0x5e, 0x0b, 0x17, 0xd1, 0x0b, 0x5d, 0xcb, 0xdb, 0x1b,
+ 0x4c, 0x8c, 0x2e, 0xe1, 0x7b, 0x59, 0xa3, 0x5d, 0xc9, 0x54, 0xc7, 0x02,
+ 0x14, 0xf4, 0x81, 0x28, 0xe4, 0x74, 0xb7, 0x39, 0x88, 0x5a, 0x7c, 0xa1,
+ 0x29, 0xd6, 0x95, 0xca, 0xde, 0xe9, 0xda, 0x66, 0x02, 0xa0, 0xeb, 0x52,
+ 0x0e, 0x5c, 0x50, 0x98, 0xe6, 0xf7, 0xe3, 0x84, 0x4b, 0x3e, 0x17, 0xb8,
+ 0x18, 0x47, 0x8f, 0xd3, 0x50, 0x50, 0x72, 0x76, 0x31, 0x9f, 0x28, 0xb6,
+ 0x71, 0x7e, 0xb2, 0x90, 0x89, 0xb8, 0x10, 0x9a, 0xb4, 0x53, 0x94, 0x31,
+ 0x28, 0x1e, 0xaf, 0xaa, 0x00, 0x52, 0xb1, 0xbc, 0x00, 0x1d, 0xee, 0xb1,
+ 0x78, 0xbd, 0x41, 0x4f, 0xe1, 0xa1, 0x1e, 0x03, 0x40, 0x9d, 0x8b, 0xff,
+ 0xbc, 0x17, 0x8d, 0x2a, 0x77, 0x52, 0x30, 0xe5, 0x68, 0x80, 0xdd, 0x2d,
+ 0x9b, 0x9b, 0x8e, 0xb9, 0x9e, 0x34, 0x0f, 0x4d, 0x00, 0x98, 0x52, 0x85,
+ 0xcf, 0x99, 0x89, 0xd5, 0x8b, 0x82, 0x33, 0xb9, 0x8d, 0xd8, 0xb5, 0x2a,
+ 0xeb, 0x4f, 0x8d, 0xcc, 0x07, 0xc5, 0x5f, 0x34, 0x28, 0xc5, 0xb9, 0x2a,
+ 0x94, 0xcd, 0x45, 0xa5, 0x8c, 0x9b, 0x98, 0xfe, 0x2d, 0x7c, 0x66, 0x12,
+ 0x87, 0x47, 0x02, 0x64, 0x15, 0x32, 0xaf, 0x1f, 0xfc, 0xa0, 0x4e, 0x96,
+ 0x57, 0x60, 0x83, 0x87, 0xfa, 0xcc, 0xd7, 0x53, 0xfc, 0x47, 0xfb, 0x8a,
+ 0xd9, 0xf0, 0x6c, 0x4c, 0xb8, 0x1c, 0x11, 0xe6, 0x65, 0xa3, 0xf7, 0x08,
+ 0xdc, 0x22, 0xfd, 0xbb, 0x67, 0xbc, 0x77, 0xf8, 0xbd, 0x14, 0x03, 0xd1,
+ 0xea, 0xe2, 0x48, 0x90, 0x44, 0x17, 0x93, 0xa9, 0xfe, 0xe9, 0xca, 0xe7,
+ 0x06, 0x39, 0x4d, 0xe0, 0x5d, 0x8f, 0xf6, 0x20, 0x70, 0x21, 0x76, 0x57,
+ 0x97, 0x9a, 0x3c, 0xeb, 0xc4, 0xc8, 0x51, 0x6d, 0x69, 0x4f, 0x9f, 0xbe,
+ 0x2b, 0xec, 0x47, 0x76, 0xcd, 0xc4, 0x6a, 0x1b, 0x85, 0x1a, 0x6d, 0x11,
+ 0xd2, 0xb6, 0xac, 0x04, 0x61, 0x7f, 0x81, 0x22, 0x9f, 0x86, 0xf8, 0xbe,
+ 0xde, 0x7f, 0x69, 0xa9, 0x75, 0x31, 0xd0, 0x51, 0x08, 0xbf, 0xe0, 0x85,
+ 0xb0, 0xa0, 0x45, 0x41, 0x77, 0x77, 0x64, 0xbe, 0xa7, 0xbc, 0xc4, 0x46,
+ 0x5a, 0xb1, 0xa8, 0xe9, 0xb8, 0xa8, 0x12, 0xa3, 0xce, 0x84, 0xbe, 0x31,
+ 0xca, 0x82, 0xc1, 0xba, 0xbf, 0x7e, 0x11, 0xa0, 0x59, 0x31, 0x14, 0xde,
+ 0xae, 0x9c, 0x44, 0xc1, 0x6b, 0xc9, 0x2f, 0xcf, 0x34, 0x68, 0x21, 0x6b,
+ 0x0b, 0x50, 0xc8, 0xc2, 0x57, 0xc8, 0xea, 0x61, 0x62, 0x61, 0xdc, 0x3a,
+ 0x06, 0x11, 0x24, 0xee, 0xe5, 0x6f, 0x0d, 0x84, 0x2f, 0xf3, 0xfa, 0xad,
+ 0xe0, 0x68, 0xc4, 0xdc, 0xf7, 0x65, 0x1f, 0x8c, 0x51, 0x7f, 0x8c, 0xde,
+ 0x49, 0x1c, 0xd7, 0x81, 0xa2, 0xf1, 0xa8, 0x63, 0x77, 0x25, 0xa1, 0x08,
+ 0x0c, 0x04, 0x02, 0x03, 0x01, 0x00, 0x80, 0xb4, 0x62, 0xbf, 0x79, 0xc2,
+ 0xfb, 0xa6, 0x87, 0xb6, 0x72, 0x75, 0xa5, 0x91, 0x6c, 0x1d, 0x9d, 0x7b,
+ 0x65, 0x58, 0xa4, 0xf1, 0xf2, 0x00, 0xd5, 0x03, 0x00, 0x00, 0xcd, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x15, 0x00, 0x03, 0x10, 0x30,
+ 0x00, 0x1c, 0x8b, 0x31, 0xa9, 0xdf, 0xff, 0xff, 0x10, 0x08, 0x0d, 0xe7,
+ 0x2e, 0x95, 0x7c, 0xb9, 0x5b, 0xa4, 0x79, 0xff, 0xb6, 0x02, 0x13, 0x47,
+ 0xbb, 0x6f, 0xce, 0x1f, 0xd7, 0xbd, 0xfe, 0xbf, 0x69, 0x2f, 0xcc, 0xff,
+ 0xee, 0x7f, 0x88, 0xff, 0xb3, 0xd2, 0x4b, 0xfd, 0xc3, 0xf6, 0xef, 0xd3,
+ 0xfe, 0x0a, 0x11, 0x77, 0x41, 0xc7, 0x5b, 0x01, 0x30, 0x4a, 0xf8, 0x10,
+ 0xc0, 0x6b, 0xa1, 0x87, 0xb3, 0x6a, 0x0b, 0x51, 0x21, 0x34, 0x60, 0x24,
+ 0x1c, 0xce, 0x4f, 0x85, 0x67, 0x90, 0xe2, 0x88, 0x16, 0x8a, 0x50, 0x97,
+ 0xc8, 0x11, 0x59, 0x99, 0xf2, 0x8a, 0xaf, 0x0a, 0x80, 0x95, 0x0a, 0xff,
+ 0xbf, 0x5e, 0xfd, 0x1b, 0x4e, 0xea, 0x68, 0x17, 0xc3, 0xe0, 0x03, 0xff,
+ 0x87, 0x34, 0xaf, 0x9f, 0xaa, 0x5a, 0x47, 0x30, 0x05, 0xab, 0x46, 0x1e,
+ 0xc6, 0x66, 0xd9, 0x76, 0xcb, 0x11, 0x7d, 0xa8, 0x0a, 0x3f, 0x24, 0x98,
+ 0x94, 0x3f, 0x13, 0x1c, 0x84, 0x7a, 0xb1, 0xee, 0xde, 0x99, 0x00, 0x66,
+ 0x9d, 0x80, 0x48, 0x99, 0xac, 0x7c, 0x56, 0x44, 0x0d, 0x49, 0x6b, 0xb0,
+ 0x2e, 0xc5, 0x39, 0x4e, 0x5b, 0xfc, 0xe4, 0xb8, 0xe9, 0xe9, 0xd1, 0x0f,
+ 0x41, 0x1a, 0x80, 0x43, 0xd7, 0x52, 0xc3, 0x91, 0x91, 0x04, 0x43, 0x20,
+ 0x65, 0x61, 0xb8, 0xb6, 0xed, 0x73, 0xe1, 0xba, 0x88, 0x57, 0x39, 0x5c,
+ 0x3c, 0x10, 0xc8, 0x33, 0x4b, 0x05, 0x14, 0xb0, 0xbd, 0xc7, 0xd4, 0x0a,
+ 0x7f, 0x02, 0x8a, 0xed, 0x3d, 0x07, 0x4c, 0xa3, 0xcd, 0x7a, 0xd5, 0x01,
+ 0xf6, 0x46, 0x62, 0xaf, 0x7d, 0x71, 0x78, 0x6c, 0x53, 0x51, 0xd0, 0xc4,
+ 0x47, 0xae, 0x44, 0xad, 0xb5, 0x77, 0x56, 0x09, 0x5e, 0xe8, 0x7b, 0x4d,
+ 0x2f, 0x73, 0xff, 0x13, 0x6b, 0xb7, 0xcb, 0x87, 0x8d, 0x05, 0xbf, 0xa6,
+ 0x36, 0x12, 0xa3, 0x0a, 0x2c, 0xad, 0x3c, 0x9e, 0xae, 0xb4, 0xb0, 0x1c,
+ 0x96, 0x8e, 0xc1, 0x2d, 0x1c, 0x76, 0x0f, 0x31, 0xf6, 0x31, 0x7a, 0xd9,
+ 0x60, 0x19, 0x72, 0x27, 0xce, 0xc0, 0x46, 0xca, 0xb0, 0xe2, 0x39, 0xbf,
+ 0x1c, 0xd7, 0xa2, 0xa0, 0x02, 0x31, 0x93, 0x3a, 0x79, 0xec, 0x1a, 0xc8,
+ 0x32, 0x29, 0x22, 0x76, 0x96, 0x87, 0x40, 0x41, 0x85, 0x52, 0x3b, 0xae,
+ 0x0f, 0x55, 0x55, 0x27, 0x9a, 0xca, 0x83, 0x56, 0xd3, 0x9a, 0x6e, 0x1e,
+ 0x09, 0xd0, 0x23, 0xd9, 0xfc, 0xc4, 0xd6, 0xdd, 0x1e, 0x86, 0x77, 0x95,
+ 0xb4, 0xb5, 0x78, 0x81, 0x0d, 0xda, 0xb4, 0xfb, 0x7e, 0xfa, 0x8e, 0xd3,
+ 0x55, 0x25, 0x91, 0xe7, 0xcb, 0x49, 0xae, 0x8c, 0x82, 0x5b, 0x24, 0x00,
+ 0xea, 0xd4, 0x4a, 0xbd, 0x99, 0x52, 0xad, 0xbf, 0x28, 0x4a, 0x35, 0xa8,
+ 0x08, 0xf6, 0xbb, 0xeb, 0x9c, 0xf8, 0xb7, 0x0d, 0x82, 0x04, 0x62, 0x3c,
+ 0x7c, 0xa9, 0xad, 0x11, 0xfb, 0xce, 0x08, 0x2b, 0xe1, 0xf9, 0xf0, 0x8a,
+ 0x4d, 0x85, 0x95, 0xe4, 0xbd, 0x7f, 0x8e, 0x6f, 0xc7, 0xc4, 0x7b, 0x06,
+ 0x11, 0x05, 0xf2, 0x2b, 0xce, 0x00, 0xe0, 0x7e, 0xbf, 0x3b, 0xcc, 0x76,
+ 0x01, 0x98, 0x7d, 0x17, 0xa2, 0x5d, 0xf9, 0xb3, 0xec, 0x7c, 0x9c, 0x56,
+ 0xd7, 0xc3, 0x4d, 0x8a, 0x94, 0x4d, 0xcd, 0x76, 0x61, 0xeb, 0xef, 0xb5,
+ 0xd6, 0x71, 0x86, 0xf4, 0xaf, 0x17, 0x28, 0x2e, 0x79, 0xe1, 0xd9, 0x73,
+ 0x71, 0x2e, 0x0d, 0x68, 0xd5, 0x37, 0xd2, 0x5c, 0x29, 0xe7, 0x3c, 0x3a,
+ 0xcc, 0xe3, 0x84, 0x0c, 0x01, 0x24, 0x13, 0xa0, 0xc6, 0x00, 0xc2, 0xc0,
+ 0x3a, 0xc6, 0x08, 0x5d, 0x27, 0x22, 0x59, 0xdc, 0x80, 0x02, 0x74, 0xb6,
+ 0x7d, 0x2f, 0xde, 0x5a, 0xfa, 0x59, 0xdb, 0xe6, 0x23, 0x63, 0xa8, 0x03,
+ 0x7f, 0x6b, 0x2d, 0xd8, 0xd7, 0x73, 0x8e, 0xc6, 0x5c, 0x48, 0x46, 0x73,
+ 0xb9, 0x76, 0x23, 0x04, 0x42, 0xda, 0x5b, 0xc0, 0x99, 0x34, 0x62, 0x1f,
+ 0x40, 0x81, 0xa7, 0x21, 0x8c, 0xe7, 0x4f, 0xc5, 0x14, 0xe5, 0x66, 0x36,
+ 0x7b, 0x51, 0xa3, 0x4c, 0x62, 0x1f, 0x18, 0xc6, 0x0f, 0x2c, 0x20, 0xec,
+ 0xca, 0x2b, 0x4e, 0x3e, 0x40, 0x13, 0x8f, 0xee, 0x3b, 0x4f, 0xdc, 0x11,
+ 0x53, 0x42, 0x1d, 0x18, 0xea, 0x6c, 0x29, 0x73, 0x6c, 0x83, 0x73, 0x3a,
+ 0x3c, 0xec, 0xbf, 0xb6, 0xcb, 0x43, 0x0b, 0x82, 0x4d, 0x51, 0xc7, 0xa9,
+ 0x73, 0xd9, 0xbb, 0x46, 0x2e, 0x8f, 0x95, 0x18, 0xde, 0x38, 0x06, 0xfd,
+ 0x51, 0xf0, 0xa3, 0x51, 0x4b, 0x94, 0xa9, 0x80, 0x21, 0xfb, 0x0a, 0xae,
+ 0x47, 0x6c, 0xe3, 0x48, 0x83, 0xff, 0x77, 0x13, 0x64, 0x14, 0x70, 0x12,
+ 0x75, 0x09, 0xf9, 0x94, 0xe6, 0xfa, 0xed, 0x1a, 0x29, 0x28, 0xc1, 0x73,
+ 0xe8, 0xa8, 0x5b, 0xcc, 0x56, 0x69, 0x21, 0x32, 0xac, 0x44, 0x54, 0x3d,
+ 0x4c, 0xe9, 0xaa, 0x71, 0xaf, 0xcf, 0xc8, 0x01, 0xcb, 0x30, 0xa5, 0xd1,
+ 0x40, 0x2f, 0xa0, 0x35, 0x6f, 0xff, 0x3b, 0x67, 0x62, 0x95, 0xe3, 0x01,
+ 0x86, 0x92, 0xa0, 0x14, 0xb0, 0xab, 0xbe, 0x93, 0xa6, 0x14, 0x0a, 0x99,
+ 0xaa, 0xdb, 0xd2, 0x71, 0xe4, 0x30, 0x57, 0x7d, 0xe9, 0xc4, 0x85, 0x9e,
+ 0x81, 0xae, 0x4a, 0xa7, 0x4d, 0xc6, 0x61, 0xaa, 0x0a, 0x5d, 0x50, 0xaa,
+ 0x33, 0x04, 0xde, 0xa5, 0x8f, 0xa2, 0xe2, 0x55, 0xb1, 0xae, 0xc2, 0xa5,
+ 0x94, 0x4a, 0x3a, 0x23, 0x73, 0x4a, 0x05, 0xe5, 0xe7, 0x78, 0x22, 0xe0,
+ 0x26, 0x31, 0x45, 0xd1, 0x38, 0x71, 0x41, 0x17, 0x33, 0x8b, 0x63, 0x12,
+ 0x6a, 0xcc, 0x8b, 0xab, 0x3b, 0xdf, 0xb0, 0x8c, 0x17, 0x38, 0x57, 0x3f,
+ 0x81, 0xd3, 0xb0, 0x6d, 0xb2, 0x08, 0xd1, 0xa0, 0xda, 0x09, 0xc9, 0x85,
+ 0x2a, 0x62, 0xa3, 0xbe, 0xec, 0x17, 0x42, 0xf5, 0xdf, 0x3d, 0x09, 0x57,
+ 0x62, 0x23, 0x37, 0x0c, 0x4a, 0xdc, 0xbe, 0x09, 0x62, 0xb7, 0xb5, 0xec,
+ 0x96, 0xf5, 0xf9, 0xf3, 0xa9, 0xab, 0x2b, 0xa0, 0xfa, 0xb1, 0xeb, 0x8a,
+ 0xe6, 0xf6, 0xb9, 0xa3, 0xeb, 0xbc, 0xe1, 0xd5, 0x3e, 0x0c, 0xa9, 0xb7,
+ 0xf8, 0x97, 0x42, 0x4e, 0x0c, 0x7c, 0x95, 0x4e, 0x22, 0xf7, 0x52, 0xc6,
+ 0xc5, 0x3f, 0xf4, 0xfe, 0xe0, 0x6b, 0x2e, 0xef, 0xd8, 0x75, 0x94, 0xcd,
+ 0xf5, 0x85, 0xf3, 0x3d, 0xff, 0x92, 0xdf, 0x64, 0x5b, 0x6a, 0x4e, 0xb7,
+ 0x6f, 0xaf, 0x06, 0x30, 0x84, 0x66, 0x52, 0xc1, 0x46, 0x6c, 0xb1, 0x6c,
+ 0x1a, 0x77, 0x13, 0xb9, 0xef, 0xa3, 0x7e, 0x53, 0x6f, 0x38, 0x6c, 0xb1,
+ 0x65, 0xa5, 0xd8, 0x2d, 0x70, 0x80, 0x86, 0x41, 0x58, 0xbb, 0x20, 0x67,
+ 0x6f, 0xa9, 0x5b, 0x48, 0x7b, 0x8a, 0x05, 0xb2, 0xec, 0x15, 0xc9, 0xd7,
+ 0xb6, 0xb3, 0xd3, 0x0c, 0x7a, 0x3e, 0x50, 0x1c, 0xc2, 0x12, 0x86, 0x72,
+ 0x87, 0x69, 0x76, 0xa2, 0x19, 0xa7, 0x14, 0x53, 0xdc, 0x29, 0xc7, 0x7d,
+ 0x8b, 0x04, 0xd9, 0x91, 0x34, 0x60, 0x55, 0x5b, 0x61, 0x2e, 0x84, 0xdc,
+ 0x9a, 0xd8, 0xa6, 0x1a, 0x05, 0x6c, 0x86, 0xc1, 0x32, 0x9a, 0xaf, 0x6d,
+ 0xbd, 0xd5, 0xa4, 0x3d, 0xb5, 0x99, 0xdf, 0xd5, 0xcc, 0xb1, 0x2d, 0xcf,
+ 0x51, 0x48, 0x37, 0x02, 0xb0, 0x48, 0x8d, 0xf9, 0xdf, 0x3d, 0xb5, 0xe0,
+ 0x1f, 0xee, 0x00, 0x49, 0x02, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x0e, 0x00, 0x04, 0x10, 0x24, 0x00, 0x1e, 0xe0,
+ 0x77, 0xbf, 0x61, 0x7e, 0x21, 0x0f, 0xf3, 0x31, 0x7c, 0x3a, 0x7a, 0xf6,
+ 0x98, 0x8a, 0x20, 0x43, 0x3c, 0x68, 0x45, 0x54, 0xec, 0xcb, 0x7f, 0x77,
+ 0x92, 0x86, 0xd2, 0xfb, 0x84, 0xb4, 0x31, 0xf0, 0x8c, 0x2d, 0x53, 0x34,
+ 0x72, 0x3f, 0x47, 0xd0, 0x81, 0xd1, 0xe9, 0xfb, 0x2c, 0x0d, 0x3c, 0x01,
+ 0x17, 0xa4, 0xba, 0xf7, 0x69, 0xdc, 0xc6, 0xf4, 0x19, 0x8c, 0xa0, 0xcc,
+ 0x76, 0x7d, 0xc0, 0xfe, 0x5a, 0x42, 0xa0, 0xa0, 0xa4, 0x7d, 0xd8, 0xb9,
+ 0x99, 0x00, 0x76, 0x1c, 0x32, 0x4a, 0x84, 0x9e, 0xd5, 0x1d, 0xbd, 0xf3,
+ 0x0b, 0x47, 0x40, 0x0a, 0x4d, 0x30, 0x56, 0x10, 0x4c, 0x32, 0xf9, 0x33,
+ 0x32, 0x49, 0x94, 0x71, 0xa7, 0x4b, 0xcb, 0xcd, 0x1e, 0x79, 0xf3, 0x13,
+ 0x19, 0x86, 0x1b, 0x80, 0xaa, 0xe8, 0x84, 0x73, 0x48, 0xfc, 0x25, 0xf7,
+ 0xfc, 0x45, 0xff, 0xc3, 0xb7, 0x9f, 0xfc, 0x4e, 0xc9, 0xd7, 0xad, 0xa3,
+ 0xa7, 0x4a, 0x4c, 0x3b, 0xe0, 0x95, 0xc9, 0xae, 0xc5, 0x88, 0xd9, 0xfd,
+ 0x21, 0x50, 0xc9, 0xa0, 0x9e, 0xa0, 0x0b, 0x97, 0x0d, 0xa0, 0xc9, 0x36,
+ 0xdd, 0x1b, 0x02, 0xf1, 0x21, 0x65, 0x40, 0x72, 0x8b, 0x50, 0x7b, 0x74,
+ 0xbc, 0xab, 0x7a, 0x2d, 0x2e, 0xa7, 0xcf, 0x15, 0xbd, 0x43, 0xd1, 0x71,
+ 0x5a, 0x0d, 0x7d, 0xf5, 0x1d, 0x94, 0xa7, 0x16, 0x12, 0xcf, 0x55, 0xe4,
+ 0x09, 0xfa, 0xbf, 0x4d, 0x63, 0x78, 0xae, 0x1b, 0xed, 0x67, 0xdd, 0x74,
+ 0x24, 0x13, 0x67, 0x30, 0x87, 0x64, 0x67, 0x3e, 0xce, 0x91, 0xbe, 0xa6,
+ 0x9e, 0x9d, 0x33, 0xd6, 0xce, 0x13, 0x88, 0x5e, 0xc6, 0xd4, 0x74, 0x48,
+ 0xd9, 0x56, 0xac, 0xab, 0x97, 0xaf, 0x23, 0x76, 0x0f, 0x2c, 0x49, 0xe2,
+ 0xd0, 0x46, 0x4e, 0xe7, 0xf6, 0xab, 0x77, 0xb4, 0xc6, 0x9c, 0xb1, 0xad,
+ 0x7d, 0xcb, 0x87, 0x31, 0x2a, 0x9a, 0x65, 0x8e, 0xe7, 0x85, 0xec, 0x4e,
+ 0x0b, 0xb6, 0xe3, 0xf0, 0x5f, 0x53, 0x82, 0x1e, 0xf6, 0xf4, 0x37, 0xc6,
+ 0xb4, 0x1a, 0x78, 0xf9, 0xea, 0xf9, 0xa2, 0xe0, 0x29, 0x81, 0x37, 0x25,
+ 0xa6, 0x91, 0xaf, 0x09, 0x49, 0x67, 0xc0, 0x0a, 0x5e, 0x60, 0x29, 0x57,
+ 0xa5, 0xa5, 0x07, 0x3b, 0x3f, 0xea, 0x70, 0x0c, 0xcd, 0x73, 0x0c, 0xb8,
+ 0x70, 0xbf, 0xd5, 0xfd, 0xc1, 0x71, 0x4a, 0x10, 0x87, 0x80, 0x02, 0x3d,
+ 0x65, 0xf5, 0x4c, 0x3c, 0x0f, 0xbe, 0x7d, 0x7e, 0xb0, 0x7f, 0xfb, 0x87,
+ 0x36, 0xf8, 0x66, 0x3a, 0xf8, 0xb4, 0x35, 0xdf, 0x9d, 0x46, 0x56, 0x94,
+ 0xd7, 0x73, 0x6c, 0xd9, 0x27, 0x43, 0x2d, 0x94, 0x39, 0xd4, 0x40, 0xf7,
+ 0x14, 0xd3, 0xb1, 0x22, 0x15, 0xc6, 0x69, 0x77, 0x7f, 0x3e, 0x35, 0xc9,
+ 0xc2, 0x9b, 0x82, 0x9c, 0x18, 0x6e, 0x6d, 0x77, 0x64, 0xad, 0x32, 0x29,
+ 0x7b, 0x57, 0x1d, 0x3f, 0x4b, 0x4f, 0xce, 0x66, 0x75, 0x69, 0xe8, 0xd9,
+ 0x1c, 0x8e, 0x5f, 0xa7, 0xa5, 0x67, 0x10, 0x0e, 0x2b, 0x04, 0x36, 0xa3,
+ 0x41, 0x61, 0xbd, 0x1e, 0xfa, 0xbb, 0xd4, 0xc0, 0xb2, 0x7f, 0x08, 0x83,
+ 0x36, 0xdf, 0x80, 0xf5, 0xe9, 0xc0, 0xb2, 0x7f, 0x0e, 0x37, 0x2a, 0xe7,
+ 0xb1, 0x3e, 0x5e, 0x88, 0x19, 0x56, 0xc1, 0x43, 0x54, 0xce, 0x8d, 0x81,
+ 0xdd, 0x79, 0x8e, 0xc6, 0x0d, 0x4e, 0x12, 0xe6, 0x54, 0xce, 0xc4, 0x15,
+ 0x28, 0x6b, 0x63, 0xa5, 0xe9, 0x9d, 0xb4, 0x57, 0xce, 0x97, 0xa7, 0x91,
+ 0xad, 0xb6, 0xc8, 0x47, 0x92, 0x96, 0x79, 0xaa, 0x1a, 0xce, 0xa0, 0xe7,
+ 0x9c, 0x3b, 0xa3, 0x50, 0x8a, 0x45, 0x66, 0xd4, 0x5e, 0x37, 0xce, 0xbe,
+ 0x4b, 0xd3, 0x75, 0xfe, 0x7e, 0x05, 0x96, 0x0e, 0x4d, 0x01, 0xb7, 0x53,
+ 0x1a, 0xe5, 0x18, 0x4a, 0x07, 0x74, 0xd8, 0x52, 0xe4, 0x90, 0x4d, 0xea,
+ 0x3b, 0xb6, 0x44, 0x98, 0x63, 0xa4, 0x11, 0x3e, 0x7f, 0x33, 0x81, 0xa0,
+ 0x95, 0xa3, 0xbd, 0x30, 0x75, 0x1d, 0xa4, 0xf3, 0x95, 0x0f, 0x67, 0xa9,
+ 0x53, 0x00, 0x8a, 0x54, 0x7b, 0x31, 0x94, 0xe7, 0xaa, 0x0e, 0x35, 0x41,
+ 0xdf, 0x70, 0x8b, 0xa5, 0x0b, 0x8d, 0x00, 0x67, 0xbd, 0x75, 0x44, 0xa1,
+ 0x70, 0xb8, 0x6e, 0xeb, 0x30, 0xdb, 0xb8, 0xd5, 0x21, 0x7c, 0xa4, 0xc0,
+ 0xf3, 0x01, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xb1, 0x0d, 0x00, 0x02, 0x10, 0x24, 0x00, 0x18, 0x00, 0x43, 0x30, 0xfe,
+ 0x95, 0xf4, 0x35, 0xfe, 0xad, 0xbc, 0x9c, 0xab, 0xca, 0x4b, 0x8b, 0x7c,
+ 0xa3, 0xc0, 0xa6, 0x95, 0xe0, 0x49, 0xf4, 0x7e, 0xcd, 0x2d, 0xf7, 0xd6,
+ 0x2b, 0x0f, 0x0d, 0x9e, 0x59, 0x82, 0x70, 0xaa, 0x33, 0xca, 0x5a, 0x7b,
+ 0xe8, 0x3d, 0x0e, 0xb3, 0x38, 0xaf, 0x35, 0xa8, 0x8f, 0x7b, 0xd8, 0x3e,
+ 0x86, 0x73, 0xf1, 0x9a, 0x97, 0x6c, 0xc7, 0xfc, 0x41, 0xba, 0xab, 0x51,
+ 0x98, 0x33, 0xc3, 0x02, 0xcc, 0xcf, 0x4e, 0x72, 0x86, 0x84, 0x20, 0xf4,
+ 0x35, 0x21, 0xfe, 0x27, 0x20, 0xaf, 0x27, 0x07, 0xee, 0x5b, 0x4e, 0x76,
+ 0xba, 0xc7, 0xeb, 0xed, 0xc0, 0x16, 0xb6, 0xd9, 0x28, 0x91, 0xa7, 0xa1,
+ 0x61, 0x87, 0x9d, 0x00, 0x89, 0xc7, 0x48, 0x5e, 0x49, 0x29, 0x16, 0xc1,
+ 0x19, 0x7d, 0x6b, 0xc3, 0x77, 0x20, 0xfb, 0x07, 0xb8, 0x5e, 0xbf, 0x9d,
+ 0x25, 0x24, 0xfe, 0x73, 0x4c, 0x7b, 0xfd, 0x62, 0x01, 0xdc, 0x3f, 0x4e,
+ 0x9f, 0x07, 0x6f, 0xbf, 0x00, 0x95, 0x0d, 0x03, 0x75, 0x4b, 0x0c, 0xfc,
+ 0x0d, 0x67, 0x98, 0xfa, 0xbf, 0x5a, 0xcd, 0xff, 0x6d, 0x3f, 0x8c, 0x51,
+ 0xd9, 0xd4, 0xae, 0x54, 0xb7, 0x44, 0xb4, 0xe0, 0x6c, 0x1b, 0x13, 0x2b,
+ 0xef, 0xf7, 0xde, 0x25, 0x64, 0x79, 0x71, 0xb0, 0x43, 0x0f, 0x76, 0xc9,
+ 0x04, 0x9c, 0x24, 0x73, 0x0c, 0x73, 0x2b, 0xf6, 0xf4, 0x9a, 0x58, 0x42,
+ 0x37, 0xbb, 0x57, 0xf4, 0xb7, 0xb8, 0xee, 0x22, 0x45, 0x39, 0xe5, 0x1f,
+ 0xa0, 0x3b, 0xf5, 0xc5, 0xc0, 0x44, 0x45, 0x17, 0x8a, 0x60, 0xa2, 0x60,
+ 0x64, 0x03, 0x45, 0xdc, 0x9e, 0x16, 0x89, 0x78, 0x3c, 0x7c, 0x43, 0xb7,
+ 0xce, 0xbb, 0xe0, 0xab, 0x1e, 0x1d, 0x6f, 0x02, 0xe8, 0xfc, 0xd8, 0xac,
+ 0xcc, 0x88, 0x4b, 0x8a, 0x41, 0x47, 0xca, 0xb2, 0x20, 0xd0, 0xb4, 0x08,
+ 0x88, 0x42, 0xdb, 0x60, 0x52, 0x60, 0x37, 0xd0, 0x58, 0xa0, 0x1c, 0x55,
+ 0xf8, 0xe2, 0xb8, 0xf6, 0xed, 0x75, 0x1f, 0x86, 0x2a, 0x74, 0x47, 0xb0,
+ 0x1c, 0xda, 0xb7, 0x07, 0x9d, 0xb9, 0x6e, 0xbf, 0xb0, 0x0c, 0xa2, 0x2a,
+ 0xd8, 0x96, 0x32, 0x33, 0xe9, 0x58, 0xef, 0xa5, 0x6f, 0x16, 0xf6, 0xc5,
+ 0x62, 0xab, 0x82, 0x07, 0x5e, 0xb2, 0x96, 0xee, 0x1f, 0x84, 0xb2, 0x8a,
+ 0x57, 0xa8, 0x98, 0xc9, 0xc1, 0xfe, 0x02, 0x8b, 0x77, 0xd9, 0x1a, 0xf5,
+ 0xfe, 0xd2, 0xc2, 0x00, 0x78, 0x37, 0xea, 0xf6, 0x81, 0xb8, 0x25, 0xfc,
+ 0x57, 0xb8, 0xe7, 0x67, 0x5b, 0x1f, 0x69, 0xf6, 0x8b, 0xaa, 0xb7, 0xe7,
+ 0x4f, 0x87, 0x11, 0xf7, 0x25, 0xd0, 0xc7, 0xbf, 0x51, 0xbb, 0xa8, 0x9a,
+ 0x4c, 0xd4, 0x1c, 0x1d, 0x40, 0xe3, 0xc7, 0xda, 0x7d, 0x44, 0x26, 0xb1,
+ 0x16, 0xa2, 0xf0, 0x61, 0x4e, 0x42, 0xdf, 0x45, 0x0e, 0x69, 0xd0, 0x90,
+ 0x3c, 0xe9, 0xb3, 0x5c, 0xf4, 0x36, 0xcc, 0x8e, 0xe8, 0x49, 0xd3, 0x31,
+ 0x8e, 0x6a, 0x78, 0x3d, 0x84, 0xb5, 0xbc, 0xfb, 0xf2, 0xd6, 0x32, 0x53,
+ 0x86, 0x6b, 0x20, 0xee, 0x72, 0x1c, 0x7a, 0xad, 0xf1, 0x89, 0x0e, 0x63,
+ 0x19, 0xb2, 0xaa, 0xf9, 0x86, 0xcc, 0xb3, 0x51, 0x83, 0x79, 0x3e, 0xbe,
+ 0x41, 0xa1, 0x21, 0xe9, 0xb8, 0x1c, 0xcb, 0x30, 0x8a, 0x8e, 0xb7, 0x94,
+ 0xb7, 0x3a, 0x9c, 0x09, 0x23, 0x4b, 0x7d, 0xe5, 0x54, 0xdb, 0xb9, 0xa6,
+ 0xc0, 0x91, 0xa1, 0x00, 0xd6, 0x80, 0x66, 0x43, 0x59, 0xaf, 0xa7, 0x89,
+ 0x65, 0x57, 0x0b, 0xe1, 0xaf, 0xec, 0x7a, 0x34, 0x6e, 0x14, 0xfa, 0xbd,
+ 0xa8, 0x94, 0x28, 0x2a, 0x02, 0x2c, 0x00, 0x7d, 0x02, 0x00, 0x00, 0xd0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0e, 0x00, 0x01, 0x10,
+ 0x24, 0x00, 0x1e, 0xef, 0xb2, 0x16, 0x12, 0x28, 0x1a, 0x4a, 0x13, 0x01,
+ 0x5f, 0xd0, 0x1e, 0x05, 0x9e, 0xca, 0xe6, 0x01, 0x85, 0xd1, 0xa9, 0x58,
+ 0x7f, 0xd8, 0x43, 0x2b, 0x1f, 0xb3, 0xa3, 0x61, 0x48, 0x12, 0x53, 0x92,
+ 0x32, 0x41, 0xc8, 0xd6, 0xb3, 0x73, 0x0d, 0xe2, 0x5c, 0x0b, 0x0d, 0x8b,
+ 0x2f, 0xa4, 0x59, 0x31, 0x1b, 0x2c, 0x21, 0x76, 0x53, 0xa0, 0x52, 0xe1,
+ 0x03, 0x87, 0xc8, 0xdf, 0x96, 0x21, 0xc6, 0xb8, 0x42, 0x10, 0xd0, 0xe0,
+ 0xa0, 0x25, 0xdc, 0xa4, 0x42, 0x26, 0x69, 0x7c, 0x78, 0x0c, 0x43, 0xa6,
+ 0x62, 0x1c, 0x89, 0x56, 0x94, 0x8c, 0x72, 0xc3, 0x6a, 0x10, 0x62, 0x87,
+ 0xa7, 0x45, 0x50, 0x7e, 0xbd, 0x66, 0xc5, 0x6d, 0x92, 0x49, 0x49, 0x5d,
+ 0x5a, 0x5e, 0x42, 0xc3, 0x5c, 0x89, 0xf0, 0xcb, 0x01, 0x8a, 0xa5, 0x75,
+ 0x25, 0xff, 0x3d, 0x91, 0x4a, 0x2a, 0x3f, 0x8c, 0x2b, 0x4b, 0xbf, 0x93,
+ 0x61, 0xcc, 0xaf, 0xb2, 0x5b, 0xe6, 0x44, 0x5f, 0x40, 0x34, 0x29, 0xa6,
+ 0x46, 0x30, 0xb7, 0x39, 0xb5, 0xda, 0xf5, 0xae, 0x8c, 0xea, 0xc9, 0xee,
+ 0x3a, 0xa7, 0x8a, 0xbf, 0xe6, 0xad, 0x53, 0x1d, 0x5f, 0xa8, 0x28, 0xe6,
+ 0xa2, 0x58, 0x56, 0x79, 0x06, 0xac, 0xee, 0x14, 0xb0, 0xae, 0x1a, 0x80,
+ 0x82, 0x9b, 0x05, 0xf3, 0x12, 0x3d, 0x16, 0x80, 0xb8, 0x72, 0x68, 0x2c,
+ 0x1d, 0xc5, 0xed, 0xb1, 0xe2, 0xb0, 0x8a, 0x03, 0xb6, 0x68, 0xbb, 0x7a,
+ 0xcd, 0xfd, 0x0b, 0x9b, 0xe9, 0xc0, 0x8b, 0xf0, 0x98, 0xbf, 0x49, 0x5a,
+ 0x11, 0xbf, 0x45, 0xa1, 0xaa, 0x58, 0xc0, 0x46, 0x91, 0x57, 0x91, 0x5d,
+ 0x6e, 0xf4, 0x25, 0x11, 0xa4, 0x31, 0x29, 0x22, 0x65, 0xe2, 0x5b, 0x1a,
+ 0xa6, 0x1b, 0x43, 0x36, 0x4d, 0xd1, 0xdc, 0x95, 0xa0, 0x18, 0xa4, 0x56,
+ 0x35, 0xbf, 0x2a, 0xf5, 0x45, 0x20, 0x2b, 0x43, 0xfc, 0xbf, 0x41, 0x98,
+ 0x87, 0x4c, 0xcd, 0x60, 0xf0, 0x00, 0x55, 0x9e, 0xb1, 0x67, 0x88, 0x72,
+ 0xdb, 0x6e, 0xae, 0x9b, 0xfa, 0x0b, 0x2a, 0x23, 0xc2, 0x28, 0x17, 0xe4,
+ 0xa6, 0x27, 0x93, 0x21, 0xa5, 0xb8, 0xe7, 0x03, 0xcd, 0xbe, 0x37, 0x7a,
+ 0x21, 0x11, 0x62, 0x58, 0xa1, 0x4e, 0x44, 0x4e, 0x02, 0x30, 0xca, 0xfe,
+ 0xd3, 0x84, 0xc7, 0xa4, 0x25, 0x1d, 0x4f, 0x9a, 0xa1, 0x20, 0x23, 0x0e,
+ 0xf6, 0xe9, 0xdb, 0x5c, 0x20, 0x17, 0xe7, 0x50, 0x50, 0x96, 0x3c, 0x00,
+ 0xb9, 0x8f, 0xe0, 0x32, 0xb0, 0x6e, 0xf1, 0x26, 0xdf, 0x01, 0x0f, 0xb6,
+ 0x83, 0x7d, 0x32, 0x79, 0xba, 0x61, 0xb7, 0xbf, 0xe4, 0xfd, 0x71, 0x3a,
+ 0xbd, 0x9e, 0xeb, 0x68, 0xfd, 0x55, 0xbc, 0x3c, 0x54, 0x04, 0xde, 0x40,
+ 0x6a, 0x88, 0xbe, 0x39, 0x13, 0x6b, 0x89, 0x37, 0x6f, 0xd0, 0x76, 0xee,
+ 0xdd, 0xc5, 0x3e, 0xe7, 0x0a, 0x3d, 0xb5, 0xdd, 0x66, 0x7d, 0x1a, 0x24,
+ 0x1c, 0xd4, 0xe7, 0x54, 0xd1, 0x62, 0x5a, 0x55, 0xaf, 0xb7, 0xcc, 0xce,
+ 0x73, 0xb1, 0xa1, 0x0a, 0xf2, 0xe8, 0xb5, 0x1d, 0x3c, 0xe2, 0x5c, 0xdf,
+ 0x13, 0x41, 0xcc, 0x3d, 0x77, 0xb8, 0xb3, 0xda, 0xba, 0xa9, 0x54, 0x67,
+ 0xb6, 0xb5, 0xe2, 0xec, 0xda, 0xad, 0xec, 0x5a, 0x94, 0xbb, 0xd1, 0x73,
+ 0xf0, 0x6e, 0xb9, 0x32, 0x63, 0x6f, 0xae, 0xe4, 0x81, 0x1a, 0x52, 0x27,
+ 0x6a, 0x55, 0x74, 0x07, 0x6c, 0x48, 0xfb, 0x43, 0x36, 0x43, 0x1e, 0xec,
+ 0xec, 0x65, 0x98, 0xf2, 0x49, 0xa9, 0x40, 0x04, 0x25, 0xef, 0x6e, 0xe8,
+ 0x49, 0x31, 0xc6, 0x4a, 0x89, 0x27, 0xe7, 0x27, 0xf7, 0x0d, 0x31, 0xcf,
+ 0x86, 0x26, 0x85, 0xab, 0x57, 0x51, 0x51, 0x5b, 0xb5, 0x8b, 0x5e, 0x9b,
+ 0x3b, 0xb4, 0x0e, 0x37, 0x7a, 0xbd, 0x13, 0xd8, 0xbb, 0xef, 0xda, 0x23,
+ 0xc1, 0xc3, 0x0c, 0x71, 0x5d, 0x5b, 0xa0, 0x79, 0xc7, 0xd9, 0xe0, 0x31,
+ 0x0c, 0x9d, 0xc8, 0x7c, 0x65, 0xbe, 0x37, 0xdd, 0xb6, 0x88, 0x31, 0x96,
+ 0xf4, 0xa5, 0x1f, 0xc4, 0xe4, 0x26, 0x66, 0x55, 0xe9, 0x44, 0x29, 0x37,
+ 0xc1, 0x5f, 0xb9, 0xa6, 0xd0, 0xd3, 0x80, 0x75, 0x85, 0xeb, 0x2d, 0x38,
+ 0xb4, 0x98, 0xbd, 0x08, 0x91, 0x9b, 0x59, 0x38, 0x5c, 0x9a, 0x01, 0xa4,
+ 0xb4, 0x38, 0xcd, 0x34, 0x7a, 0x89, 0x51, 0xc8, 0x64, 0xcb, 0x38, 0x75,
+ 0x2d, 0xff, 0xe0, 0x7a, 0x11, 0xac, 0x30, 0x78, 0x49, 0x59, 0xc5, 0x50,
+ 0xe4, 0xee, 0x3a, 0xf5, 0xb0, 0x1d, 0x3e, 0xa7, 0x26, 0xf9, 0x90, 0xcd,
+ 0x4b, 0xc1, 0xb0, 0x14, 0xc9, 0x0e, 0x03, 0x03, 0xc9, 0x36, 0x10, 0xfd,
+ 0xe2, 0xa8, 0x58, 0x51, 0x1a, 0x56, 0x2e, 0x80, 0x0b, 0x02, 0x00, 0x00,
+ 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0b, 0x00, 0x05,
+ 0x10, 0x24, 0x00, 0x18, 0x00, 0x71, 0xc0, 0x1f, 0x67, 0xa4, 0xf2, 0x40,
+ 0x85, 0x8f, 0x3b, 0x7a, 0xf4, 0xbb, 0x80, 0x94, 0x81, 0x79, 0xcc, 0xe0,
+ 0x97, 0xc7, 0x2a, 0xc5, 0xec, 0x34, 0x22, 0x26, 0xec, 0x80, 0x0e, 0xd3,
+ 0xbe, 0x74, 0xbd, 0x58, 0x23, 0x53, 0x8d, 0xf8, 0x42, 0xdc, 0x7c, 0x63,
+ 0xf0, 0x00, 0xb8, 0xa6, 0x1b, 0xbd, 0xbc, 0xf0, 0x00, 0x48, 0xff, 0x14,
+ 0xfa, 0x24, 0xf5, 0x62, 0x4a, 0x50, 0x5e, 0x7f, 0xae, 0x36, 0xb7, 0xc6,
+ 0xa2, 0xae, 0xb9, 0x6b, 0x43, 0x03, 0x44, 0x8d, 0xb6, 0xbb, 0x68, 0x0e,
+ 0x68, 0xce, 0x18, 0x11, 0x80, 0x89, 0xf0, 0x98, 0xe2, 0xeb, 0x32, 0xa1,
+ 0x9b, 0x91, 0xd0, 0x4f, 0x99, 0x21, 0x1b, 0x35, 0x80, 0xb7, 0xb8, 0xff,
+ 0x61, 0x23, 0x75, 0x14, 0x9b, 0x31, 0x20, 0xa5, 0xf7, 0xdc, 0x9d, 0x59,
+ 0xc3, 0xe5, 0x66, 0x00, 0x31, 0x1b, 0xc7, 0x4d, 0x90, 0x3d, 0xe7, 0xf6,
+ 0xfd, 0xd5, 0x92, 0x29, 0x5f, 0xbe, 0xbf, 0x54, 0xb1, 0x39, 0x51, 0x2f,
+ 0x14, 0x91, 0x38, 0xa2, 0x61, 0xa5, 0x08, 0x2c, 0x0e, 0x03, 0x8b, 0xa6,
+ 0xde, 0x61, 0xca, 0x68, 0xf9, 0x1a, 0xe5, 0xe2, 0x64, 0x12, 0xbf, 0xce,
+ 0x6d, 0x80, 0x28, 0x2e, 0xbe, 0xb6, 0x86, 0xdf, 0xc9, 0x80, 0x25, 0x61,
+ 0x40, 0x3d, 0x52, 0x5e, 0x74, 0x97, 0x77, 0xc0, 0x75, 0x5e, 0x23, 0xbe,
+ 0x50, 0x42, 0xb9, 0xc1, 0xb3, 0xf7, 0x7f, 0x83, 0x41, 0xad, 0x7b, 0xe3,
+ 0xc2, 0x46, 0x23, 0xe3, 0xf2, 0x95, 0x55, 0x98, 0x0f, 0xf9, 0x4f, 0xb8,
+ 0x05, 0xac, 0x26, 0x32, 0x38, 0x1e, 0x19, 0x68, 0x7b, 0xaa, 0x28, 0x02,
+ 0x1d, 0x02, 0x64, 0xf9, 0x14, 0x0a, 0xa2, 0xab, 0x1b, 0x47, 0x6e, 0x29,
+ 0x1f, 0xb9, 0xea, 0x17, 0xf2, 0x2b, 0xed, 0xeb, 0xb4, 0x89, 0x39, 0xfc,
+ 0xe8, 0x2e, 0x45, 0xc2, 0xd9, 0xa5, 0xf3, 0x45, 0xea, 0x5e, 0xca, 0xeb,
+ 0x5d, 0xcf, 0xae, 0x80, 0xd1, 0x1b, 0x1f, 0x2f, 0x91, 0x4d, 0x41, 0x0c,
+ 0x48, 0xd1, 0xf9, 0xbe, 0x92, 0x2b, 0x48, 0xc6, 0xda, 0x63, 0x13, 0xc5,
+ 0x87, 0xd6, 0x47, 0x9c, 0x2d, 0x3d, 0x13, 0xce, 0xce, 0x7c, 0x1f, 0xb7,
+ 0x76, 0x50, 0x59, 0xf1, 0xbf, 0x25, 0xdd, 0x78, 0x0e, 0x5e, 0xe9, 0xe9,
+ 0x43, 0x9a, 0xd6, 0x0f, 0x81, 0x9e, 0x8b, 0x2c, 0x39, 0xd8, 0x60, 0xd3,
+ 0x1f, 0xc7, 0xe7, 0xf1, 0xb9, 0x86, 0x76, 0xec, 0x16, 0x84, 0x5b, 0x3b,
+ 0xf4, 0x02, 0x8e, 0x37, 0xeb, 0xec, 0xd0, 0x25, 0x0f, 0xdd, 0x41, 0x63,
+ 0xfb, 0xb5, 0x1c, 0xf1, 0x4e, 0x0e, 0xa5, 0x3e, 0x21, 0x3a, 0xc5, 0xbb,
+ 0x25, 0xc1, 0x9e, 0x5b, 0x24, 0xdb, 0x36, 0xd8, 0xdc, 0xf2, 0xc3, 0xfa,
+ 0x6a, 0x9e, 0x80, 0xe0, 0x87, 0x50, 0x44, 0xfe, 0xf3, 0xb5, 0x4b, 0xaa,
+ 0x94, 0x84, 0x22, 0x20, 0x90, 0x95, 0x48, 0xba, 0xe7, 0xc2, 0x7d, 0xd5,
+ 0x62, 0x5e, 0xbe, 0xa7, 0x74, 0x16, 0x19, 0xe1, 0x8c, 0xc7, 0x66, 0xeb,
+ 0xe0, 0x97, 0x49, 0x5f, 0xc7, 0xfb, 0x93, 0x9a, 0x34, 0xa5, 0x76, 0x97,
+ 0xb2, 0x3b, 0xe8, 0xc4, 0xd1, 0x8a, 0xf6, 0xa5, 0x0d, 0x3d, 0x2a, 0x7b,
+ 0xa9, 0x1d, 0xec, 0x1b, 0x01, 0xcb, 0xe5, 0x98, 0xb9, 0x8e, 0x2f, 0xa9,
+ 0xd8, 0xc1, 0xf9, 0x91, 0xb6, 0x84, 0x38, 0xd7, 0xcd, 0x44, 0xb5, 0x8a,
+ 0x29, 0xba, 0x09, 0xa5, 0x32, 0x2d, 0x05, 0xfc, 0xdb, 0xee, 0x2e, 0x8b,
+ 0x20, 0x63, 0x9b, 0xa9, 0x11, 0xdd, 0xb1, 0x55, 0xe6, 0xbd, 0x11, 0xc1,
+ 0xa9, 0x23, 0xd8, 0xcc, 0x53, 0xae, 0x28, 0xf9, 0xfc, 0x0d, 0x24, 0x41,
+ 0xd6, 0xcd, 0xab, 0x5f, 0x56, 0x3b, 0x2d, 0x2e, 0x65, 0x15, 0x5f, 0x84,
+ 0x81, 0xdb, 0xe9, 0x79, 0x3e, 0x64, 0xd7, 0xb2, 0xd8, 0x52, 0xbc, 0xbd,
+ 0x3f, 0x80, 0x00, 0xf7, 0x02, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x12, 0x00, 0x01, 0x10, 0x24, 0x00, 0x18, 0x00,
+ 0xf8, 0x80, 0x4c, 0x40, 0x7b, 0x35, 0x7e, 0xca, 0xd4, 0xe8, 0x89, 0x45,
+ 0x49, 0xe7, 0x5e, 0x71, 0xf2, 0x5f, 0x39, 0xa9, 0x62, 0x05, 0x4a, 0xd2,
+ 0x2a, 0xb3, 0x42, 0xdb, 0x5f, 0x49, 0x46, 0xc6, 0x15, 0x60, 0x9d, 0x21,
+ 0x5b, 0xda, 0x98, 0x08, 0x50, 0x13, 0x37, 0xd0, 0x21, 0x30, 0x2c, 0xf8,
+ 0xc8, 0xeb, 0xdc, 0x1c, 0x67, 0xa7, 0xb9, 0x57, 0xbb, 0x20, 0x1b, 0x70,
+ 0xe5, 0x06, 0x47, 0x61, 0x3a, 0xc8, 0x21, 0x9d, 0xcd, 0x59, 0x12, 0xb7,
+ 0x83, 0x39, 0x0d, 0x0c, 0x9d, 0x0d, 0x4c, 0xe9, 0x34, 0xe5, 0x3a, 0x12,
+ 0x80, 0xca, 0x82, 0xbc, 0x5c, 0x92, 0x52, 0xe0, 0x3e, 0xc7, 0xe1, 0xbd,
+ 0x30, 0xf7, 0x2b, 0xbf, 0xfc, 0x6d, 0x62, 0x48, 0x37, 0x7a, 0x28, 0x0d,
+ 0xdf, 0x65, 0x76, 0x58, 0x56, 0x48, 0xbe, 0x7b, 0xc7, 0xf7, 0xcc, 0xef,
+ 0xa6, 0xa7, 0xde, 0x00, 0xfc, 0x1a, 0xfc, 0x03, 0x4c, 0x9a, 0x8f, 0x9e,
+ 0xdb, 0x6d, 0xbe, 0xde, 0xe3, 0x65, 0x51, 0x01, 0x7b, 0x40, 0x89, 0xf0,
+ 0x88, 0xc5, 0x00, 0x99, 0xca, 0xa1, 0x61, 0x12, 0x50, 0x01, 0x24, 0x09,
+ 0xaa, 0xcf, 0xc3, 0x10, 0x2c, 0x9f, 0x86, 0x55, 0x61, 0xfe, 0xa5, 0xa6,
+ 0x20, 0x20, 0x95, 0xf1, 0x3b, 0xc2, 0xee, 0xca, 0xb5, 0xce, 0x7e, 0x92,
+ 0xd2, 0x77, 0xb2, 0x6e, 0xae, 0x0a, 0x0f, 0x76, 0x2b, 0x78, 0x05, 0xda,
+ 0x25, 0xd2, 0xc1, 0x93, 0x97, 0x42, 0x61, 0x0a, 0x07, 0xb9, 0x86, 0x2d,
+ 0xf7, 0x32, 0x5a, 0x1f, 0xeb, 0x73, 0x45, 0x98, 0x08, 0x69, 0x95, 0x20,
+ 0x7a, 0x1d, 0xaa, 0xc1, 0xbc, 0x42, 0xe0, 0x2b, 0x39, 0x19, 0x3b, 0x32,
+ 0x36, 0x30, 0x30, 0xf3, 0x6b, 0x74, 0x97, 0x7c, 0x80, 0xee, 0x29, 0xd6,
+ 0x2f, 0xfe, 0x86, 0xa4, 0x9c, 0x2d, 0x78, 0xfa, 0x11, 0x2d, 0xbd, 0xc8,
+ 0x4e, 0xcf, 0xed, 0x7b, 0x72, 0x09, 0x78, 0x27, 0x5d, 0xbf, 0xd1, 0xcc,
+ 0x66, 0x69, 0xa9, 0x4e, 0x46, 0xe9, 0x3b, 0xcc, 0x79, 0x69, 0x88, 0x41,
+ 0xc0, 0xea, 0xbd, 0x05, 0xc3, 0xcd, 0xef, 0xfc, 0x9d, 0x9c, 0xf0, 0x31,
+ 0xbf, 0xb7, 0x26, 0xa2, 0x09, 0x44, 0x40, 0x97, 0x9b, 0xeb, 0xcc, 0x8b,
+ 0x1a, 0x04, 0xeb, 0xc9, 0x19, 0xc6, 0x87, 0x3f, 0xf5, 0x1d, 0x44, 0xf6,
+ 0x2a, 0xf6, 0xf7, 0xf9, 0x2b, 0xd6, 0x34, 0x2a, 0xaf, 0xd3, 0x22, 0x65,
+ 0x1f, 0x26, 0x51, 0x86, 0x2d, 0x8c, 0x5b, 0xb7, 0x6a, 0x98, 0x4d, 0x9f,
+ 0x96, 0xae, 0x4b, 0xb4, 0x26, 0x89, 0x6a, 0x68, 0xca, 0xaa, 0xff, 0x00,
+ 0xb7, 0x45, 0x02, 0xf6, 0xbb, 0x52, 0xa9, 0x0d, 0x9e, 0x07, 0x84, 0x81,
+ 0x27, 0x3a, 0xe9, 0x49, 0xd0, 0xc1, 0xb9, 0x72, 0x1c, 0xd2, 0xf0, 0xff,
+ 0x55, 0x3e, 0x4c, 0x54, 0xb2, 0x11, 0xde, 0x83, 0x05, 0x2c, 0xb7, 0x83,
+ 0x9f, 0xba, 0xbe, 0xff, 0x18, 0x2f, 0x64, 0x82, 0x12, 0xce, 0xc6, 0xf3,
+ 0x18, 0x83, 0x20, 0xa1, 0xdd, 0x96, 0x0d, 0xa3, 0x3e, 0x28, 0xc8, 0xf1,
+ 0x29, 0x3a, 0x90, 0x20, 0x31, 0x35, 0xd0, 0x43, 0xf4, 0xdc, 0x2e, 0x8c,
+ 0x2f, 0x89, 0x05, 0x5a, 0xc9, 0xcf, 0x56, 0x85, 0xd8, 0x33, 0xcd, 0x12,
+ 0x69, 0x09, 0x50, 0x47, 0xe5, 0x53, 0x16, 0xab, 0x66, 0x94, 0x9f, 0x93,
+ 0x11, 0xa5, 0xd6, 0xc1, 0x98, 0xc8, 0xdd, 0x95, 0x48, 0x0d, 0xc1, 0x04,
+ 0x9e, 0x65, 0x26, 0x1e, 0xd2, 0x1c, 0xdc, 0x80, 0x34, 0x47, 0x63, 0x66,
+ 0x87, 0x38, 0x6d, 0x9a, 0x74, 0xb5, 0x6d, 0xd4, 0x76, 0x7b, 0x9f, 0x24,
+ 0x7a, 0xce, 0x7c, 0x73, 0xa0, 0x6f, 0x6e, 0xc8, 0x5e, 0x3e, 0x5f, 0xe5,
+ 0x42, 0x8d, 0xa9, 0xb0, 0x36, 0xb6, 0x47, 0xed, 0x3e, 0xcf, 0xc1, 0x5c,
+ 0x37, 0x5d, 0x17, 0xc6, 0x81, 0x04, 0x2f, 0xe6, 0xae, 0x89, 0x57, 0xca,
+ 0x6a, 0xe2, 0xad, 0x33, 0x46, 0xfc, 0x58, 0xf8, 0x20, 0x8f, 0x5a, 0xd9,
+ 0x4c, 0x24, 0x1a, 0x82, 0xec, 0x95, 0x35, 0x87, 0x47, 0x9f, 0x0c, 0x40,
+ 0x1f, 0x88, 0xfb, 0x3a, 0x7f, 0x3b, 0x1b, 0xcd, 0x1e, 0xbd, 0x23, 0x1a,
+ 0x3b, 0x98, 0xcc, 0x99, 0x0d, 0xf4, 0xf1, 0xcb, 0x99, 0xf3, 0xfe, 0xcb,
+ 0x85, 0xcb, 0x8e, 0x0d, 0xf7, 0x01, 0xdb, 0x4b, 0xda, 0xe8, 0xd7, 0x01,
+ 0x56, 0x0b, 0xc4, 0x50, 0xf9, 0x93, 0x69, 0x1f, 0xb1, 0x26, 0xb1, 0x93,
+ 0x30, 0x7b, 0xc1, 0x22, 0x32, 0xe8, 0x84, 0xa4, 0x66, 0x8a, 0xba, 0x66,
+ 0x1e, 0x86, 0x71, 0xae, 0x6a, 0xeb, 0x17, 0x3d, 0xa0, 0xef, 0xdb, 0x70,
+ 0x65, 0x11, 0x2a, 0x0d, 0x3b, 0xbe, 0x2a, 0xf0, 0x46, 0x21, 0xe9, 0x9c,
+ 0xc2, 0xbf, 0xec, 0x14, 0x28, 0xb8, 0xa2, 0x29, 0x08, 0x4c, 0x6c, 0x35,
+ 0x5c, 0x4c, 0x03, 0xeb, 0xee, 0x35, 0xed, 0x87, 0x0a, 0xff, 0xe6, 0xee,
+ 0x4c, 0xf2, 0x06, 0xcb, 0x65, 0x03, 0xed, 0x0b, 0x2a, 0xd6, 0x0f, 0x95,
+ 0xd4, 0x31, 0xc6, 0xd5, 0x90, 0xa4, 0x6b, 0x1b, 0xa4, 0xc1, 0x21, 0x76,
+ 0x3e, 0x96, 0xd3, 0xfe, 0x5c, 0x32, 0x26, 0x54, 0x70, 0xeb, 0x4b, 0x33,
+ 0xf2, 0xc8, 0x17, 0x88, 0x08, 0x36, 0xee, 0x81, 0x3e, 0x99, 0x45, 0xd3,
+ 0x48, 0xb8, 0x58, 0xed, 0x94, 0x4c, 0x69, 0x24, 0xea, 0x41, 0xeb, 0xc2,
+ 0x02, 0x69, 0x43, 0xf4, 0xf7, 0x7d, 0x5c, 0x28, 0xee, 0x18, 0x72, 0x33,
+ 0x79, 0xf3, 0xdd, 0xe3, 0x53, 0x6a, 0x5e, 0x02, 0x14, 0xa8, 0xdc, 0x21,
+ 0xba, 0xe9, 0x21, 0xed, 0xc3, 0xdc, 0x1e, 0x4f, 0x99, 0x35, 0xec, 0xb6,
+ 0x14, 0xaf, 0x2f, 0x4d, 0xec, 0x00, 0x86, 0x02, 0x00, 0x00, 0xd3, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0e, 0x00, 0x04, 0x10, 0x24,
+ 0x00, 0x18, 0x00, 0x43, 0x53, 0x73, 0x8f, 0xbd, 0x35, 0xa3, 0x62, 0x4c,
+ 0xac, 0x8f, 0x4f, 0xe0, 0x46, 0x47, 0x0d, 0x0d, 0x2e, 0x3a, 0xe6, 0xb5,
+ 0x32, 0xf3, 0x30, 0xea, 0x92, 0xa2, 0x13, 0x1f, 0x43, 0x02, 0x69, 0x32,
+ 0x3e, 0xd8, 0x71, 0x7a, 0x8e, 0x99, 0x07, 0x43, 0x4b, 0x26, 0x53, 0x46,
+ 0x5d, 0x32, 0xe1, 0xf2, 0x37, 0x69, 0x54, 0xc0, 0x5a, 0xf3, 0x49, 0xf1,
+ 0xa2, 0xdc, 0xde, 0x99, 0x18, 0x6b, 0x4e, 0x87, 0x92, 0xb9, 0x44, 0x71,
+ 0x54, 0xae, 0x56, 0x27, 0xf2, 0xd2, 0xa4, 0x05, 0xd8, 0x99, 0x4e, 0xdf,
+ 0xf4, 0x49, 0xf4, 0x50, 0x1e, 0x27, 0x07, 0xad, 0xfa, 0xa4, 0x6d, 0xa4,
+ 0x75, 0x48, 0xc0, 0x4b, 0x77, 0x10, 0x80, 0x96, 0x41, 0x60, 0x44, 0xef,
+ 0x20, 0x89, 0xf0, 0x82, 0x84, 0xbd, 0x54, 0xfd, 0xa6, 0x50, 0x0d, 0xea,
+ 0x4a, 0xcc, 0xcb, 0x9e, 0xce, 0xdb, 0x23, 0xc5, 0x75, 0x00, 0x44, 0x63,
+ 0xe1, 0xcb, 0xa4, 0x6f, 0xa8, 0x87, 0xd8, 0xe8, 0xdf, 0x30, 0x69, 0x72,
+ 0x86, 0x70, 0x43, 0xbf, 0x94, 0xcf, 0x70, 0xdc, 0x48, 0x76, 0xc5, 0xa6,
+ 0x99, 0xa9, 0xb8, 0xf7, 0x7e, 0x8e, 0xb9, 0xd5, 0xe4, 0x13, 0x08, 0x78,
+ 0x13, 0xb0, 0xca, 0x12, 0xe3, 0xe0, 0xf5, 0xdb, 0x03, 0xad, 0x64, 0x9a,
+ 0x13, 0x9b, 0x5b, 0x62, 0x16, 0x79, 0x6a, 0xd9, 0xe3, 0x0d, 0x14, 0x65,
+ 0xe9, 0x4f, 0xa4, 0x5b, 0xfc, 0x6a, 0x04, 0x4f, 0x8e, 0x58, 0xcb, 0xb2,
+ 0x57, 0xd6, 0xf5, 0xaa, 0xd5, 0x80, 0x45, 0x4c, 0x0d, 0xbc, 0x7f, 0xa8,
+ 0x20, 0x36, 0x43, 0x30, 0x08, 0xd7, 0x42, 0xf4, 0x58, 0xae, 0xca, 0x20,
+ 0xd2, 0xd3, 0x3c, 0xc4, 0xed, 0x12, 0x33, 0x08, 0x7b, 0x2b, 0x25, 0x5b,
+ 0xba, 0xcb, 0x61, 0xdd, 0xfe, 0x12, 0xd7, 0x7d, 0xf7, 0x7f, 0xd6, 0x44,
+ 0x91, 0x2e, 0xc3, 0x4c, 0x4d, 0x7c, 0x05, 0x0f, 0x62, 0xf6, 0x0b, 0x59,
+ 0x9a, 0x42, 0xa1, 0x0a, 0xa3, 0xa5, 0x45, 0x3f, 0x17, 0x20, 0xf4, 0x89,
+ 0x0d, 0xcf, 0xe2, 0xbc, 0xda, 0x24, 0x0a, 0xf1, 0xa5, 0x67, 0xba, 0x3e,
+ 0x36, 0x17, 0xfa, 0x9f, 0x08, 0x8c, 0xfc, 0x01, 0x8a, 0x8f, 0x8d, 0x5e,
+ 0x8f, 0x5d, 0x59, 0x0a, 0x8f, 0xd4, 0xb7, 0x2b, 0x3f, 0x5a, 0x43, 0x8b,
+ 0x83, 0x76, 0x59, 0x1b, 0x33, 0xdc, 0xa7, 0xd5, 0x8a, 0x93, 0x9e, 0x98,
+ 0x19, 0x7d, 0x1a, 0xa6, 0xf0, 0xa6, 0x47, 0x61, 0x49, 0xb7, 0x89, 0xa7,
+ 0x26, 0x30, 0x0f, 0xa8, 0x71, 0x06, 0x61, 0xe7, 0x0c, 0x26, 0x7c, 0xc1,
+ 0xe9, 0x23, 0xc3, 0x15, 0xe7, 0x09, 0x21, 0x73, 0x13, 0xbb, 0x53, 0xcc,
+ 0x6f, 0xc4, 0x1e, 0x3d, 0x5c, 0xe7, 0x61, 0x16, 0xe5, 0xce, 0x28, 0x35,
+ 0xd3, 0xc4, 0x1a, 0xe3, 0x31, 0xe7, 0xf8, 0x4f, 0x06, 0xe6, 0x79, 0x99,
+ 0x6e, 0xf6, 0x8a, 0x72, 0xf9, 0x77, 0x29, 0xbd, 0xa6, 0x93, 0x40, 0xa5,
+ 0x35, 0x40, 0xef, 0x00, 0xd8, 0x69, 0xff, 0x69, 0x8c, 0xe4, 0x7c, 0xf0,
+ 0xe9, 0x38, 0xfa, 0x69, 0xba, 0xa2, 0xf7, 0xce, 0x70, 0x38, 0x82, 0xce,
+ 0xb7, 0x2c, 0x1a, 0xf5, 0x01, 0x70, 0xf6, 0xcd, 0x98, 0xed, 0xe4, 0x4e,
+ 0x5f, 0x72, 0x8e, 0x18, 0x24, 0x71, 0xe0, 0x04, 0x6f, 0x09, 0x59, 0x1c,
+ 0xe4, 0xef, 0xcf, 0x98, 0xaf, 0x22, 0xf1, 0xe2, 0x81, 0xb4, 0xad, 0x37,
+ 0xde, 0x22, 0xa0, 0x88, 0x22, 0x2e, 0x77, 0x79, 0x51, 0xcc, 0x32, 0x95,
+ 0xbf, 0xff, 0xee, 0xc3, 0x93, 0x82, 0x6c, 0xc2, 0x3f, 0xa4, 0x94, 0x9c,
+ 0x01, 0xca, 0x48, 0xa7, 0xab, 0xb0, 0xf4, 0x74, 0x36, 0x16, 0x35, 0x23,
+ 0x54, 0x2d, 0x69, 0xab, 0x2a, 0x9c, 0x5b, 0x0f, 0x20, 0x10, 0x24, 0x74,
+ 0x73, 0x06, 0x65, 0x44, 0xaf, 0xe6, 0x08, 0xcb, 0xb5, 0x75, 0xea, 0xed,
+ 0x08, 0x15, 0x3a, 0xca, 0x30, 0xb9, 0x0b, 0x61, 0xde, 0xdf, 0xf4, 0x89,
+ 0x8b, 0x66, 0x40, 0x1a, 0xc0, 0x9e, 0x55, 0x56, 0xd6, 0x1c, 0x1e, 0x97,
+ 0xc1, 0x59, 0x3a, 0x35, 0x8c, 0x45, 0x73, 0x89, 0x4a, 0xbd, 0x07, 0xf1,
+ 0x9b, 0x1f, 0xed, 0x20, 0xa4, 0xaa, 0x76, 0xc2, 0x46, 0x15, 0xcb, 0x19,
+ 0x8b, 0x32, 0x19, 0xf6, 0x97, 0x11, 0x9c, 0x3b, 0x75, 0x82, 0xb4, 0x16,
+ 0xd4, 0xdd, 0xfd, 0x13, 0x4a, 0x3e, 0xa1, 0x5f, 0xb2, 0x9b, 0xf1, 0x91,
+ 0xb2, 0x2b, 0xce, 0xa7, 0x95, 0x76, 0x5e, 0xbc, 0x61, 0x16, 0x8e, 0xe1,
+ 0x66, 0x3a, 0x0c, 0x91, 0xc3, 0x41, 0xb2, 0x21, 0x90, 0xc2, 0xa6, 0xfd,
+ 0x93, 0x44, 0x03, 0x11, 0x5f, 0x54, 0x94, 0x8a, 0x2c, 0x9e, 0x02, 0x80,
+ 0xb7, 0x5b, 0x58, 0x0c, 0x58, 0xe5, 0xa2, 0x11, 0x5c, 0xd7, 0x8a, 0x9f,
+ 0x4a, 0x44, 0x36, 0x00, 0x33, 0x02, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0c, 0x00, 0x01, 0x10, 0x24, 0x00, 0x18,
+ 0x00, 0x1b, 0x70, 0xbf, 0xf4, 0x00, 0x78, 0x95, 0x8f, 0x61, 0xef, 0xfe,
+ 0xa0, 0x4b, 0xac, 0x3d, 0xfb, 0x74, 0x15, 0x8e, 0x73, 0x87, 0x80, 0xa5,
+ 0x75, 0xf1, 0xc3, 0x8e, 0x80, 0xf0, 0x64, 0x5b, 0xae, 0x66, 0x10, 0x52,
+ 0x1e, 0xde, 0xce, 0xe9, 0x25, 0x31, 0x3f, 0x46, 0x3e, 0x77, 0x79, 0xf8,
+ 0x5a, 0x90, 0xd5, 0x2c, 0xca, 0xf2, 0xbc, 0x1f, 0xee, 0x42, 0xdf, 0x78,
+ 0x0a, 0x32, 0x05, 0x49, 0x36, 0x8b, 0x0c, 0xac, 0x17, 0x8a, 0xc7, 0xd4,
+ 0x43, 0x6f, 0xe0, 0x79, 0x04, 0x21, 0x5d, 0x43, 0x2c, 0x57, 0x7f, 0xfd,
+ 0x82, 0x02, 0x6b, 0x96, 0xd9, 0x24, 0x0e, 0xfc, 0x29, 0x88, 0xba, 0x6d,
+ 0x2e, 0xc0, 0x89, 0xf1, 0x48, 0x10, 0xdf, 0xd6, 0x42, 0x1c, 0x73, 0x25,
+ 0xac, 0x7f, 0xff, 0x41, 0x69, 0xcf, 0x77, 0x07, 0x9f, 0xf1, 0x8c, 0xe2,
+ 0xbb, 0x97, 0xd1, 0xd1, 0x90, 0x52, 0x5e, 0xd3, 0x38, 0xcb, 0xc5, 0x31,
+ 0x84, 0xf2, 0x42, 0x57, 0xa7, 0xce, 0xc8, 0x99, 0x32, 0x94, 0xb7, 0x21,
+ 0x66, 0xeb, 0x63, 0x34, 0x7b, 0xf9, 0xa5, 0xfb, 0x65, 0x0f, 0xbb, 0xb6,
+ 0x17, 0xb7, 0xd3, 0x06, 0x1a, 0xed, 0xca, 0x53, 0xf3, 0xa9, 0x4d, 0x2b,
+ 0xe5, 0x42, 0x7b, 0x22, 0xcb, 0xf7, 0xe4, 0xe0, 0x4e, 0xc8, 0xb3, 0x2e,
+ 0xae, 0xd6, 0x4c, 0x99, 0x01, 0xa1, 0x33, 0x79, 0xa8, 0x59, 0x8d, 0x3b,
+ 0xf6, 0xe9, 0x98, 0xf9, 0x53, 0x3b, 0x8f, 0x5d, 0xef, 0x84, 0xb3, 0x2d,
+ 0x9e, 0x13, 0x9f, 0x7e, 0xa4, 0xac, 0xd8, 0x8c, 0x99, 0x58, 0xba, 0x7d,
+ 0xfd, 0x76, 0x95, 0xde, 0x75, 0xc7, 0x9b, 0x4b, 0x2f, 0x4b, 0x2f, 0xeb,
+ 0x13, 0xdf, 0xa1, 0x84, 0xb3, 0xa8, 0x27, 0x30, 0x59, 0xf6, 0x55, 0xee,
+ 0x01, 0xd4, 0xe1, 0xb2, 0x27, 0x84, 0x59, 0x50, 0x14, 0xad, 0xa4, 0x46,
+ 0xc1, 0xa1, 0x3c, 0xcc, 0x37, 0x64, 0xae, 0xc8, 0x1f, 0x7c, 0xde, 0xd7,
+ 0xf6, 0xde, 0x87, 0x1e, 0x75, 0x4f, 0xc2, 0x20, 0x01, 0x79, 0xfb, 0x1c,
+ 0x61, 0xf8, 0xb4, 0xc9, 0x8f, 0xb5, 0x48, 0x8f, 0x1a, 0xe6, 0xb4, 0x56,
+ 0xe3, 0x71, 0xe6, 0x6e, 0x27, 0xb5, 0xea, 0x21, 0xf7, 0xcf, 0xbf, 0x24,
+ 0x95, 0x69, 0x47, 0xa4, 0xa2, 0x2b, 0xd8, 0x77, 0xea, 0x44, 0x4a, 0xc5,
+ 0xf5, 0x93, 0x8a, 0x93, 0x1a, 0xcd, 0xa3, 0x30, 0xff, 0x30, 0x33, 0x4a,
+ 0xbd, 0x29, 0x3c, 0x6f, 0x84, 0xda, 0x91, 0x29, 0x69, 0x16, 0x89, 0x6c,
+ 0x48, 0xdc, 0x78, 0xf1, 0x5d, 0x00, 0x6d, 0xcb, 0x0f, 0xb2, 0xf0, 0xfa,
+ 0x18, 0x55, 0xfa, 0x67, 0x61, 0x57, 0xd3, 0x0d, 0x29, 0x97, 0x1e, 0xb4,
+ 0x75, 0xb5, 0xb5, 0x7c, 0xf4, 0xd4, 0x54, 0xcf, 0x4f, 0x90, 0xab, 0x61,
+ 0xff, 0x83, 0x91, 0xcd, 0xf2, 0x95, 0x22, 0x90, 0x67, 0x7a, 0x55, 0xfe,
+ 0xa2, 0xcd, 0xad, 0x95, 0x3d, 0xfa, 0x39, 0x72, 0xc3, 0xf2, 0xba, 0xec,
+ 0xf6, 0x77, 0x85, 0xd4, 0x12, 0x12, 0xf1, 0xfe, 0xdd, 0x99, 0x4a, 0x45,
+ 0x6f, 0x50, 0x4e, 0xbc, 0x88, 0xfa, 0xc2, 0xb0, 0x3f, 0x31, 0x56, 0x31,
+ 0x39, 0x8b, 0xa4, 0x0b, 0xf7, 0xe6, 0x2c, 0xf2, 0x80, 0x5f, 0xcf, 0x7a,
+ 0xc0, 0xa4, 0xc8, 0x21, 0xc7, 0x8a, 0x79, 0x2b, 0xce, 0xbe, 0x3b, 0x40,
+ 0xc2, 0x42, 0x5a, 0xcd, 0x5a, 0xef, 0x47, 0xf7, 0x8d, 0x59, 0xd9, 0xc7,
+ 0x61, 0xcf, 0xc1, 0x71, 0xa4, 0xec, 0x5a, 0x76, 0x82, 0x02, 0xb0, 0x78,
+ 0xbc, 0x74, 0x5f, 0xa7, 0xe7, 0xfc, 0x49, 0x45, 0x6f, 0x88, 0x10, 0xf7,
+ 0xee, 0x3c, 0x57, 0x62, 0x75, 0x76, 0x0f, 0x62, 0xa3, 0x32, 0x7d, 0xd8,
+ 0x8d, 0x5b, 0x1b, 0xa8, 0x68, 0xba, 0x5f, 0x0c, 0x75, 0x8b, 0xe4, 0x06,
+ 0x3d, 0xbc, 0xf6, 0x48, 0x10, 0xc3, 0x29, 0x28, 0xc8, 0xcf, 0x21, 0xf8,
+ 0xa8, 0xe5, 0xfb, 0x63, 0xdc, 0xb1, 0x57, 0x11, 0x99, 0xd6, 0x8a, 0x43,
+ 0x72, 0xc5, 0x77, 0x96, 0xc1, 0x8b, 0xbc, 0x95, 0xb5, 0xff, 0xde, 0xfc,
+ 0x07, 0xa7, 0x19, 0x86, 0x07, 0x12, 0x98, 0xaa, 0x16, 0x14, 0x88, 0xd2,
+ 0xb1, 0x74, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x91, 0x0a, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x01,
+ 0x10, 0x04, 0x68, 0xb8, 0x1b, 0xd3, 0x01, 0xd3, 0xb3, 0xfe, 0xd0, 0x52,
+ 0xa9, 0xc1, 0x9d, 0x61, 0xa8, 0xa6, 0x2d, 0xe3, 0x7a, 0xef, 0xc9, 0xd1,
+ 0xff, 0x75, 0xec, 0xe0, 0x44, 0x83, 0x89, 0x02, 0xb4, 0xf7, 0x3d, 0xdc,
+ 0xd1, 0x32, 0x27, 0x14, 0xb9, 0x98, 0xf1, 0x7b, 0x85, 0x78, 0x95, 0x54,
+ 0x1e, 0x03, 0x4a, 0x8e, 0x9b, 0x5c, 0x65, 0xc9, 0x06, 0xc2, 0xdf, 0x79,
+ 0xef, 0x0b, 0x80, 0x19, 0xf7, 0xa1, 0x7c, 0x13, 0xdd, 0xc9, 0x2f, 0x3b,
+ 0xed, 0x8c, 0xd7, 0x98, 0x88, 0xd0, 0x89, 0xf0, 0xae, 0x01, 0x19, 0x3f,
+ 0x44, 0x14, 0xb7, 0xcf, 0xcc, 0x7f, 0x94, 0x5e, 0x2e, 0x6b, 0xd6, 0x41,
+ 0xf3, 0x1f, 0x38, 0x11, 0x2b, 0x97, 0x0c, 0xb9, 0x92, 0x05, 0x94, 0xaa,
+ 0x24, 0x86, 0x62, 0x64, 0x26, 0x81, 0x82, 0xc8, 0x40, 0x6e, 0x62, 0x49,
+ 0xcd, 0x63, 0xc1, 0x30, 0xed, 0xbf, 0xee, 0xb2, 0x1d, 0xaf, 0xbf, 0xc1,
+ 0x9e, 0x91, 0x58, 0x68, 0xac, 0xcd, 0x68, 0x4f, 0x9b, 0xb7, 0x2f, 0xfc,
+ 0x81, 0xaf, 0x8f, 0x04, 0xd3, 0xe5, 0x7a, 0x9b, 0xc8, 0xc4, 0xcf, 0x3c,
+ 0x18, 0x91, 0xdc, 0x3e, 0x07, 0x12, 0x33, 0x2f, 0xf7, 0x1c, 0x27, 0xaa,
+ 0x99, 0x65, 0xef, 0x33, 0x3b, 0x78, 0xfe, 0x46, 0xc7, 0xf6, 0x8e, 0x44,
+ 0xcf, 0x5c, 0x64, 0xd6, 0x22, 0xdd, 0x7c, 0x13, 0xfb, 0x40, 0xac, 0xfe,
+ 0x97, 0x80, 0x36, 0xca, 0x89, 0x0d, 0xa9, 0x87, 0xd7, 0x78, 0x32, 0xb9,
+ 0x7d, 0x52, 0x77, 0x92, 0x60, 0x35, 0x6d, 0x80, 0x29, 0xad, 0xfc, 0xd5,
+ 0x64, 0x98, 0xc3, 0x26, 0x2b, 0x8d, 0x9a, 0x7f, 0xc5, 0xaa, 0x88, 0x56,
+ 0x40, 0x74, 0x9e, 0x6b, 0xea, 0x3c, 0x7e, 0x64, 0xe2, 0x64, 0x99, 0xd1,
+ 0x7a, 0xd3, 0xb6, 0x04, 0x9e, 0xfc, 0xa4, 0x84, 0x3d, 0xd7, 0x26, 0xef,
+ 0x00, 0x28, 0x03, 0xbf, 0xae, 0xaa, 0x98, 0x3a, 0x7e, 0xb5, 0xef, 0x19,
+ 0x4f, 0x0f, 0x8b, 0x85, 0x27, 0x95, 0x4a, 0x41, 0x9a, 0x17, 0xe2, 0xde,
+ 0x67, 0xa1, 0x92, 0x1a, 0xe5, 0x4e, 0xb8, 0xf5, 0xb1, 0x7e, 0x01, 0x50,
+ 0xf6, 0x30, 0xfb, 0xe3, 0x44, 0x37, 0x32, 0x55, 0x20, 0x38, 0x18, 0xf0,
+ 0xf7, 0x73, 0x9a, 0xd9, 0x21, 0x1b, 0xfb, 0x01, 0xd3, 0x08, 0xbf, 0xf7,
+ 0xc5, 0xce, 0xf0, 0xe0, 0xb4, 0xda, 0x4d, 0x13, 0xec, 0xe7, 0x24, 0x33,
+ 0x6c, 0x6b, 0x7d, 0xe3, 0xa4, 0x2f, 0x13, 0xde, 0x8a, 0xd0, 0x73, 0xdb,
+ 0xe2, 0xa6, 0x74, 0x6e, 0x23, 0x69, 0x98, 0xa0, 0x47, 0x38, 0xa7, 0x2a,
+ 0xcd, 0x95, 0x36, 0x00, 0xc3, 0x3c, 0xf2, 0xd0, 0x69, 0x2d, 0xd5, 0x11,
+ 0xdd, 0x78, 0xf7, 0x7e, 0x44, 0xff, 0x4d, 0xd1, 0x2a, 0xa9, 0x5d, 0xf9,
+ 0x08, 0x91, 0xd3, 0xec, 0x99, 0x40, 0xe8, 0x66, 0xe2, 0x82, 0xf5, 0xb6,
+ 0x57, 0x5d, 0x56, 0xb1, 0xb8, 0x6a, 0xc2, 0x89, 0x61, 0x76, 0xa0, 0xf1,
+ 0x58, 0x8c, 0x0b, 0xa7, 0x36, 0x24, 0xa9, 0x64, 0x6d, 0x20, 0x4e, 0xbe,
+ 0x52, 0x29, 0x8e, 0xd6, 0x71, 0xcd, 0x3f, 0xf0, 0x84, 0x86, 0x81, 0x30,
+ 0xd7, 0xa6, 0x33, 0xfb, 0x4b, 0x82, 0xf4, 0x8b, 0xcd, 0xb4, 0xf1, 0x35,
+ 0xfe, 0x7c, 0xa7, 0x75, 0x5f, 0x7b, 0x1d, 0x58, 0x5f, 0x5f, 0xae, 0x34,
+ 0xf3, 0x8c, 0xdb, 0xaa, 0x0f, 0xda, 0xf0, 0x59, 0x4c, 0xd8, 0xe0, 0x01,
+ 0x4f, 0x6d, 0x65, 0xb0, 0xa5, 0xc4, 0x42, 0x14, 0x8d, 0xc0, 0x04, 0x07,
+ 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0f,
+ 0x00, 0x06, 0x10, 0x10, 0x14, 0x7a, 0xca, 0x9f, 0xfb, 0x9c, 0xfb, 0xbf,
+ 0x99, 0xf4, 0xc1, 0xb8, 0xc9, 0xdf, 0xbe, 0xd4, 0x7e, 0xe1, 0xec, 0x9b,
+ 0x85, 0xc3, 0x05, 0x93, 0xb0, 0x2e, 0x0c, 0xa3, 0x85, 0x5b, 0x02, 0xbd,
+ 0xee, 0x22, 0x98, 0x13, 0x27, 0x00, 0x60, 0x85, 0x96, 0x94, 0x05, 0x80,
+ 0x31, 0xb3, 0x5a, 0xa2, 0x5d, 0x90, 0xdc, 0x57, 0xf6, 0x71, 0x31, 0x50,
+ 0x00, 0xeb, 0xfa, 0x98, 0x77, 0x84, 0x96, 0x91, 0xf5, 0x8a, 0x8b, 0xb5,
+ 0x8c, 0x22, 0x41, 0xff, 0x9f, 0xb5, 0x4f, 0x95, 0x69, 0x86, 0xbd, 0x09,
+ 0xaa, 0xec, 0xbd, 0x93, 0x2f, 0xef, 0xe2, 0xfc, 0x06, 0x9f, 0x06, 0x86,
+ 0x1d, 0x10, 0x85, 0x3c, 0x10, 0xd7, 0x4b, 0xb1, 0x09, 0xdf, 0x15, 0x7b,
+ 0xeb, 0xc1, 0x3f, 0xf2, 0xf6, 0xee, 0x89, 0xdc, 0x50, 0x88, 0x8a, 0xb6,
+ 0x3d, 0x45, 0x53, 0x77, 0xbb, 0xdd, 0xdd, 0xb8, 0x3d, 0x08, 0xae, 0xf4,
+ 0x6e, 0xf4, 0xe0, 0xa0, 0x26, 0x7b, 0x93, 0x9e, 0xd3, 0x1d, 0xad, 0xbc,
+ 0x11, 0xba, 0x94, 0x9a, 0x68, 0xbc, 0x13, 0x06, 0xb9, 0x0b, 0xfb, 0x6a,
+ 0x5e, 0x5f, 0x6b, 0xce, 0x4e, 0xeb, 0x90, 0xf1, 0x3c, 0x28, 0x82, 0x89,
+ 0x7e, 0xc9, 0xfc, 0x63, 0xdb, 0xfd, 0x6d, 0xc9, 0x4a, 0xaf, 0x2f, 0x1d,
+ 0xba, 0x25, 0x09, 0x70, 0x7c, 0xd6, 0x1d, 0x71, 0x6a, 0xc8, 0x3c, 0x54,
+ 0x96, 0xda, 0x43, 0x7b, 0xf4, 0x52, 0x2f, 0xf2, 0x69, 0x5c, 0x80, 0xe3,
+ 0x15, 0xd6, 0x30, 0x07, 0xd6, 0x58, 0x2e, 0x04, 0x7d, 0xc0, 0x3a, 0xa9,
+ 0x26, 0xfa, 0x3e, 0xf8, 0xcc, 0x0b, 0x1e, 0xb2, 0xe2, 0x92, 0xb5, 0x40,
+ 0x3a, 0xd0, 0xf0, 0x18, 0xae, 0x6e, 0x84, 0x29, 0x38, 0xb0, 0x0f, 0xf1,
+ 0x01, 0x30, 0x17, 0x09, 0x9f, 0x2c, 0xfc, 0xa8, 0x95, 0xa6, 0x95, 0x1c,
+ 0xf1, 0x92, 0x85, 0x3c, 0x6d, 0xb6, 0xd6, 0xa6, 0xc5, 0x22, 0x0b, 0xc2,
+ 0x3c, 0x58, 0x05, 0xd9, 0xae, 0x15, 0x29, 0x9e, 0x5e, 0x74, 0x4d, 0x91,
+ 0xf2, 0x89, 0x6e, 0x48, 0x6e, 0xe5, 0x8e, 0x83, 0xb5, 0x25, 0x0b, 0x85,
+ 0x5c, 0xfa, 0xbc, 0x7a, 0x0a, 0xd6, 0x5e, 0x04, 0x8f, 0x70, 0x48, 0xb5,
+ 0x10, 0x5a, 0xfa, 0xea, 0x6b, 0x2a, 0x8a, 0x93, 0x8c, 0xee, 0x29, 0xf4,
+ 0x1f, 0xdc, 0x00, 0x12, 0x81, 0x3e, 0x2f, 0x6a, 0xb9, 0x54, 0x5e, 0xba,
+ 0x8e, 0xe5, 0x9b, 0x47, 0x63, 0x89, 0x3f, 0xcc, 0x29, 0xfe, 0x3a, 0xea,
+ 0xd0, 0x1b, 0xdb, 0x37, 0x4f, 0x2d, 0x86, 0xd9, 0x86, 0x64, 0xb9, 0xd2,
+ 0x29, 0x06, 0x73, 0xb9, 0x22, 0xd9, 0xbc, 0xa1, 0x7f, 0xc6, 0xf8, 0x6e,
+ 0x21, 0x27, 0x43, 0x21, 0x2c, 0x3e, 0xcf, 0xe9, 0x1c, 0xaf, 0xfb, 0x37,
+ 0xe8, 0xcc, 0x85, 0x80, 0xf4, 0x11, 0xc5, 0xd3, 0x8a, 0x18, 0x60, 0xb3,
+ 0x82, 0x07, 0x31, 0xa4, 0x19, 0x07, 0x79, 0x3b, 0x82, 0x48, 0x99, 0x62,
+ 0x13, 0x1e, 0x44, 0x68, 0xd6, 0x44, 0x43, 0xb4, 0xed, 0x79, 0xd6, 0x88,
+ 0x40, 0xff, 0x4c, 0x03, 0x42, 0xee, 0x31, 0x1b, 0xd3, 0xe5, 0x29, 0x4b,
+ 0x99, 0x77, 0x69, 0x10, 0x03, 0xdc, 0xba, 0x4a, 0xde, 0x9e, 0xc2, 0xaa,
+ 0xd0, 0xea, 0xa9, 0x1c, 0x61, 0xa7, 0x9f, 0x44, 0x52, 0xa8, 0x7b, 0xd1,
+ 0x59, 0x1c, 0x8b, 0xb5, 0xbb, 0x0a, 0xbe, 0xc4, 0x53, 0x58, 0xcf, 0x50,
+ 0x13, 0x8e, 0xb7, 0x5f, 0x08, 0xb1, 0xfa, 0xb7, 0xa7, 0xf3, 0x56, 0x93,
+ 0x7b, 0xd7, 0x4d, 0x5d, 0x40, 0x90, 0x7e, 0x3e, 0xd2, 0xba, 0x8d, 0xd9,
+ 0x36, 0x10, 0x24, 0x53, 0x93, 0xb3, 0xeb, 0x1a, 0x52, 0xe6, 0x7b, 0x92,
+ 0x14, 0xe4, 0xd6, 0x59, 0x73, 0x11, 0xa1, 0x21, 0x71, 0x69, 0xda, 0x84,
+ 0x12, 0x76, 0x5b, 0xac, 0x7d, 0xbc, 0x2f, 0xbf, 0x42, 0xed, 0x56, 0x72,
+ 0xa2, 0x2a, 0xbe, 0x7a, 0xe8, 0xd8, 0x2c, 0x1e, 0xdb, 0xeb, 0x2e, 0xd2,
+ 0x80, 0x7e, 0x70, 0xeb, 0xe2, 0xd8, 0x37, 0xb8, 0xb0, 0x4f, 0xc2, 0xdd,
+ 0x77, 0xf9, 0x0f, 0xd4, 0x62, 0x4f, 0x4b, 0x93, 0x76, 0x6b, 0x12, 0x8d,
+ 0xb9, 0x8e, 0xef, 0xd2, 0x0a, 0x75, 0x2a, 0x8f, 0xc8, 0x57, 0x7e, 0x1d,
+ 0x28, 0xe6, 0xf9, 0x3e, 0xa1, 0x4a, 0xae, 0x57, 0x8e, 0xe6, 0x1a, 0x41,
+ 0x03, 0x73, 0x17, 0x16, 0x5b, 0xa0, 0x9a, 0xde, 0x19, 0xee, 0x24, 0xef,
+ 0x0f, 0xba, 0xeb, 0x5d, 0x05, 0xc8, 0x06, 0x7b, 0x6f, 0xf2, 0xa5, 0x34,
+ 0xaf, 0x5a, 0x7d, 0x47, 0x0b, 0xa6, 0xab, 0x5e, 0x32, 0x9e, 0x69, 0x37,
+ 0xef, 0xbb, 0xd5, 0x99, 0xe0, 0x65, 0x69, 0x16, 0x00, 0x24, 0xe7, 0x3a,
+ 0x81, 0xd5, 0xd1, 0xf2, 0x74, 0xff, 0x24, 0xd6, 0xe1, 0xd7, 0x42, 0xc9,
+ 0xaa, 0xe4, 0xf2, 0xa5, 0x48, 0x3f, 0xad, 0x58, 0xc7, 0x90, 0x94, 0x80,
+ 0x7e, 0x84, 0x2a, 0x6f, 0x19, 0xe8, 0x3f, 0xc4, 0x25, 0x9a, 0xb9, 0x03,
+ 0xbb, 0xb8, 0xf3, 0x6b, 0xb4, 0x8c, 0x6f, 0xa0, 0x65, 0x1a, 0xe2, 0x3c,
+ 0x52, 0xf4, 0xf6, 0x06, 0xbe, 0x77, 0x5e, 0x77, 0x9d, 0x8f, 0x2d, 0xc5,
+ 0x6e, 0xf1, 0x4f, 0xfa, 0x2e, 0x5d, 0xdf, 0x17, 0x1f, 0xf1, 0xa7, 0xe8,
+ 0xd9, 0xe4, 0xa9, 0xa6, 0xb7, 0x93, 0x14, 0xcf, 0xe9, 0xc4, 0x18, 0xf1,
+ 0xc7, 0x75, 0xc9, 0xe3, 0x5f, 0xf8, 0xd0, 0x3c, 0x41, 0x89, 0x0b, 0xd9,
+ 0x6b, 0xb7, 0xfc, 0xed, 0x58, 0x42, 0xc5, 0xf3, 0xee, 0x2b, 0x26, 0xfe,
+ 0xf4, 0x40, 0xfc, 0x21, 0x7f, 0xe0, 0xe5, 0xbf, 0xfb, 0xcc, 0xdb, 0xfc,
+ 0x79, 0xfd, 0x2f, 0x3a, 0xdd, 0xef, 0xd5, 0xfd, 0x8d, 0xbf, 0xbf, 0x75,
+ 0xca, 0x29, 0x7f, 0x44, 0x70, 0x78, 0x44, 0xfe, 0xc6, 0x2d, 0x00, 0xf7,
+ 0xa3, 0xc2, 0xe1, 0x48, 0xe8, 0xfe, 0x37, 0x50, 0x90, 0x13, 0xe1, 0x3f,
+ 0xa4, 0x6e, 0x6c, 0x19, 0x53, 0x8c, 0xef, 0x21, 0x7c, 0xf1, 0x32, 0x98,
+ 0x02, 0x1c, 0x10, 0xe3, 0xe2, 0x3c, 0xbd, 0xdc, 0xe8, 0x39, 0x9a, 0x8f,
+ 0x2a, 0x45, 0xf5, 0x78, 0x45, 0xe4, 0x6c, 0xf6, 0x00, 0x97, 0x11, 0xbd,
+ 0x0f, 0xf8, 0xbf, 0x13, 0xae, 0xe5, 0x51, 0x1b, 0x51, 0x5b, 0xf3, 0xc1,
+ 0xb5, 0x06, 0xcb, 0xb7, 0x0a, 0x9c, 0xfb, 0x81, 0xc4, 0x85, 0x4e, 0xe7,
+ 0x08, 0xe0, 0xba, 0xad, 0x40, 0x9c, 0xdf, 0xc2, 0xcf, 0x13, 0x4f, 0x62,
+ 0xc4, 0xd1, 0xf1, 0x90, 0x73, 0x04, 0x98, 0x80, 0x15, 0x1e, 0x51, 0x6a,
+ 0x97, 0x28, 0x6e, 0xb1, 0xaa, 0x66, 0x96, 0x02, 0x77, 0xa1, 0xb9, 0xfa,
+ 0x43, 0xa2, 0x06, 0x48, 0xc6, 0xef, 0x5c, 0x93, 0x6a, 0x6a, 0xfb, 0x52,
+ 0xce, 0x3d, 0xab, 0xb6, 0xd7, 0x9b, 0xd2, 0x45, 0x4b, 0x7e, 0xce, 0xed,
+ 0x05, 0xb6, 0x6e, 0xcb, 0x64, 0xee, 0x7c, 0xb2, 0xa2, 0xf8, 0x43, 0x5e,
+ 0x1f, 0xcf, 0xbf, 0x33, 0x1a, 0xfe, 0xfa, 0x6d, 0xbd, 0x9d, 0x0f, 0x31,
+ 0x1a, 0x38, 0xfb, 0xaa, 0xc8, 0xb9, 0x1c, 0x5b, 0x49, 0x13, 0x47, 0xb7,
+ 0x3c, 0x25, 0xd7, 0x63, 0x2a, 0xcd, 0x53, 0xb9, 0xfd, 0xf3, 0x8c, 0xc5,
+ 0xa9, 0x37, 0xe9, 0xe2, 0xa7, 0x33, 0x87, 0xc1, 0x6b, 0x57, 0xdb, 0xdd,
+ 0x62, 0x3b, 0x29, 0x80, 0x96, 0xb8, 0xbd, 0x23, 0x37, 0x1b, 0x88, 0x71,
+ 0xa8, 0x6f, 0x69, 0xa6, 0xf8, 0x66, 0x36, 0x99, 0x7f, 0xa4, 0x98, 0x27,
+ 0x28, 0x82, 0x34, 0x33, 0x96, 0x8a, 0xbe, 0x77, 0xd4, 0xbf, 0x58, 0x00,
+ 0xbb, 0x80, 0x82, 0x1e, 0xda, 0xce, 0xa1, 0x59, 0xba, 0xd8, 0x0d, 0x50,
+ 0x4d, 0xa3, 0x05, 0x15, 0x1c, 0x78, 0x53, 0x83, 0x94, 0x1c, 0x0b, 0x12,
+ 0x9e, 0x53, 0x9a, 0xb8, 0xb5, 0x0a, 0x33, 0xce, 0xba, 0x7c, 0xf4, 0xb7,
+ 0x3e, 0xf6, 0xc6, 0x27, 0x26, 0x2c, 0x48, 0x11, 0x76, 0x65, 0x81, 0xbf,
+ 0x78, 0x3a, 0xba, 0x32, 0x52, 0x48, 0xb3, 0x00, 0xb2, 0x01, 0xe7, 0xe7,
+ 0x57, 0x0e, 0x12, 0x28, 0xd2, 0x47, 0xc2, 0x32, 0x3b, 0xf0, 0x6b, 0x71,
+ 0x7f, 0x4b, 0xb5, 0x39, 0x5a, 0x40, 0xe4, 0xe8, 0x29, 0x24, 0x8c, 0xa4,
+ 0xce, 0xc1, 0xf5, 0x7e, 0xfd, 0x48, 0x0f, 0x06, 0xf4, 0x43, 0x53, 0xed,
+ 0xb1, 0xdf, 0x41, 0x7f, 0xfc, 0xcd, 0x37, 0x5e, 0x11, 0xf5, 0xa5, 0xd7,
+ 0xd0, 0x6c, 0xaa, 0xcc, 0x51, 0xa8, 0x03, 0x6a, 0x13, 0x3d, 0xe8, 0xb3,
+ 0x5e, 0xbf, 0x1a, 0xa9, 0x7e, 0x47, 0xa1, 0x7f, 0x72, 0x4f, 0xef, 0xc3,
+ 0xcb, 0xc9, 0x73, 0x54, 0x63, 0xa3, 0xf6, 0xd0, 0xfd, 0x5a, 0x61, 0xba,
+ 0x52, 0xa1, 0xc8, 0x4e, 0x97, 0xd9, 0x6a, 0x93, 0x27, 0x9b, 0x99, 0xf7,
+ 0x0c, 0x43, 0x63, 0x02, 0xce, 0x85, 0x4f, 0xee, 0xee, 0x86, 0x8f, 0x46,
+ 0x6e, 0x27, 0x27, 0x9d, 0x2c, 0xe2, 0x8d, 0xd0, 0x9d, 0xf2, 0x0b, 0x8d,
+ 0x61, 0x0a, 0x1f, 0x08, 0x8f, 0x36, 0xb2, 0x9a, 0x5d, 0xaa, 0xc5, 0x9e,
+ 0x0f, 0xec, 0xb6, 0x57, 0x61, 0x59, 0xf1, 0xc4, 0xc5, 0x31, 0x57, 0x11,
+ 0x2a, 0x57, 0x1e, 0x53, 0x33, 0x45, 0x1e, 0xca, 0xe8, 0x78, 0x82, 0xb1,
+ 0xcf, 0x82, 0xf8, 0x84, 0x5f, 0x12, 0x4b, 0x41, 0x48, 0x93, 0x9d, 0x63,
+ 0xa6, 0x52, 0x5b, 0xb0, 0x98, 0x9f, 0x7e, 0x86, 0x73, 0x8a, 0x6d, 0xa1,
+ 0xd0, 0xf2, 0x98, 0x28, 0x4f, 0x7a, 0xc5, 0x7e, 0x2c, 0x77, 0xc7, 0x59,
+ 0x2f, 0x65, 0x1b, 0xb6, 0x97, 0xcc, 0x76, 0x12, 0xec, 0xd8, 0xc9, 0xeb,
+ 0xa6, 0x76, 0xe9, 0x6f, 0x42, 0x01, 0xd2, 0x8d, 0x5b, 0x3f, 0x6b, 0xad,
+ 0xdf, 0x26, 0xde, 0xf9, 0x1f, 0x05, 0xed, 0xd9, 0xa4, 0xc2, 0xa5, 0xd2,
+ 0x31, 0x2a, 0x11, 0xb8, 0xaf, 0xfc, 0x07, 0x61, 0x2f, 0x1a, 0x09, 0x38,
+ 0x9b, 0x02, 0x25, 0xc8, 0x9b, 0x78, 0x74, 0x30, 0x38, 0x46, 0x53, 0x51,
+ 0xed, 0x56, 0xc0, 0x10, 0xc0, 0x06, 0xc2, 0x39, 0x76, 0xa6, 0xb2, 0xe7,
+ 0xc3, 0x7a, 0xcf, 0x8c, 0x0e, 0x76, 0x7a, 0x39, 0xa7, 0xbb, 0x57, 0x62,
+ 0x2f, 0xc8, 0x1c, 0x79, 0xe1, 0x6f, 0x94, 0x92, 0x6b, 0x42, 0xea, 0xbf,
+ 0x32, 0xf8, 0xe6, 0x38, 0x3b, 0x8f, 0x17, 0x1c, 0x51, 0x36, 0x7d, 0x72,
+ 0xf1, 0xae, 0x44, 0x5d, 0xa7, 0xde, 0xde, 0xc9, 0xb3, 0xca, 0x74, 0xdf,
+ 0x9d, 0x91, 0x9d, 0xe3, 0x18, 0x90, 0x59, 0x5e, 0xeb, 0xf7, 0x92, 0x9e,
+ 0x14, 0x9b, 0xeb, 0x32, 0x68, 0xf3, 0x32, 0xbe, 0xd3, 0x37, 0x44, 0xac,
+ 0x5f, 0x57, 0xdd, 0xdf, 0xaa, 0xc0, 0x3d, 0x72, 0x27, 0xc7, 0xdb, 0x16,
+ 0x53, 0x22, 0x29, 0xf3, 0x87, 0xfb, 0x65, 0x5e, 0xb6, 0x70, 0x9b, 0x4d,
+ 0xd7, 0x3d, 0x1c, 0xe1, 0xb1, 0x4f, 0x5b, 0xb6, 0xb1, 0xfc, 0x7c, 0x1e,
+ 0x99, 0xac, 0xb8, 0x0e, 0x79, 0x25, 0x39, 0x4c, 0x63, 0x9e, 0x54, 0x12,
+ 0x78, 0xfe, 0x0a, 0xc7, 0x21, 0xb6, 0x2f, 0x54, 0x38, 0x15, 0x59, 0x51,
+ 0x84, 0x00, 0x4c, 0x0b, 0x26, 0x6e, 0xf1, 0x1b, 0x3f, 0x26, 0xce, 0x7f,
+ 0xd9, 0x5f, 0xe0, 0xee, 0x8b, 0x65, 0xa9, 0x6e, 0x4a, 0x1f, 0xde, 0x19,
+ 0x49, 0xf9, 0xd9, 0xa7, 0x9c, 0x2e, 0xbe, 0x2c, 0x35, 0xe8, 0x34, 0x44,
+ 0x84, 0xf2, 0x7d, 0x3a, 0x8e, 0x1e, 0x84, 0x01, 0xb2, 0x10, 0x0e, 0x99,
+ 0x08, 0x3f, 0xc1, 0x92, 0x45, 0x93, 0x14, 0xb9, 0xf6, 0xba, 0x54, 0xe5,
+ 0x77, 0xe5, 0xb6, 0xa1, 0x02, 0xaf, 0x6b, 0x9f, 0x60, 0x75, 0x87, 0x58,
+ 0xb0, 0x4b, 0x4b, 0x6d, 0x42, 0x05, 0x5e, 0xd7, 0x3e, 0xa5, 0x47, 0xa3,
+ 0x94, 0xf3, 0xd9, 0xbe, 0xa4, 0x4f, 0xd5, 0xc0, 0xc6, 0x01, 0x35, 0x52,
+ 0x27, 0xea, 0xe0, 0x62, 0xf8, 0x04, 0xc1, 0xda, 0x36, 0x46, 0x17, 0xb3,
+ 0xcc, 0xcc, 0x95, 0xe0, 0x17, 0xa5, 0xa3, 0xef, 0xd1, 0xb6, 0xd6, 0x5b,
+ 0xda, 0x48, 0xbf, 0x17, 0x6f, 0xe2, 0x2a, 0x0f, 0x46, 0xd0, 0xad, 0xda,
+ 0x81, 0x56, 0x44, 0x38, 0xd9, 0x04, 0xe8, 0xb6, 0xa4, 0x4c, 0x11, 0x53,
+ 0xde, 0x87, 0x7e, 0x67, 0x3c, 0xae, 0x25, 0x6c, 0xf0, 0x3f, 0x7a, 0x94,
+ 0x6b, 0x0f, 0xb5, 0x80, 0x9f, 0xfb, 0x5c, 0xb3, 0x79, 0x47, 0xda, 0xb0,
+ 0xe9, 0x6f, 0xa4, 0xbc, 0x15, 0x81, 0x07, 0x7c, 0x21, 0x61, 0x7c, 0x4c,
+ 0x88, 0x0c, 0x79, 0x6f, 0xf7, 0xa0, 0xc7, 0x48, 0x1a, 0x81, 0x14, 0x18,
+ 0x41, 0xa3, 0xc7, 0xa0, 0x18, 0x18, 0x37, 0x81, 0xa6, 0x17, 0x1c, 0x63,
+ 0xed, 0xfb, 0x27, 0xcf, 0x7b, 0xe3, 0xc0, 0xd1, 0xf1, 0xc6, 0x69, 0x8b,
+ 0x9f, 0x48, 0xe8, 0xc6, 0x5c, 0xfe, 0xc4, 0x8f, 0x51, 0x42, 0xd2, 0xc2,
+ 0x35, 0x34, 0xe7, 0x3d, 0x2e, 0x55, 0x9b, 0x7f, 0xdb, 0xeb, 0xbd, 0x76,
+ 0x8a, 0xf4, 0x14, 0x99, 0xe8, 0xa7, 0x7d, 0x7f, 0x8d, 0x3d, 0xb9, 0x63,
+ 0x2f, 0x7f, 0xa1, 0x72, 0x0e, 0xe3, 0x9f, 0x81, 0xc0, 0x57, 0xe5, 0x51,
+ 0xb2, 0xe5, 0x8f, 0x9c, 0xcf, 0xa1, 0xbf, 0xc3, 0xab, 0x5c, 0x64, 0xfd,
+ 0x64, 0x6c, 0x4e, 0xfb, 0x7f, 0x1a, 0x6f, 0x5e, 0x96, 0xd7, 0x0b, 0x8a,
+ 0xfd, 0xcb, 0x11, 0xa2, 0xfc, 0x4b, 0x4d, 0x07, 0xf9, 0xff, 0x96, 0x3e,
+ 0x24, 0xd4, 0x17, 0x36, 0x84, 0x26, 0x83, 0xf2, 0x53, 0xb3, 0xdb, 0xb5,
+ 0xad, 0x25, 0xba, 0x49, 0x0b, 0x3f, 0xb5, 0xe8, 0xc5, 0x8d, 0x71, 0xd7,
+ 0x0b, 0xf6, 0x60, 0x92, 0x49, 0x77, 0x35, 0xbe, 0xf1, 0xad, 0xcc, 0x7d,
+ 0xa5, 0xe8, 0x4a, 0x82, 0xc0, 0x00, 0x57, 0x02, 0x00, 0x00, 0xd7, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0e, 0x00, 0x02, 0x10, 0x24,
+ 0x00, 0x1e, 0xed, 0xd7, 0xef, 0xd2, 0xd8, 0x39, 0xe6, 0x3c, 0x36, 0x93,
+ 0x84, 0x19, 0xfd, 0xeb, 0xb6, 0xd5, 0x28, 0x2d, 0x8c, 0xa3, 0x70, 0x16,
+ 0x3d, 0xfc, 0x8e, 0x23, 0xaf, 0x45, 0xf9, 0x9e, 0xcf, 0x88, 0x4b, 0xbd,
+ 0x04, 0x42, 0xc5, 0xe3, 0xc0, 0x95, 0xa0, 0xd3, 0x62, 0x8a, 0x8e, 0x8d,
+ 0xbc, 0x5f, 0x7a, 0xee, 0x60, 0xf6, 0xba, 0xdb, 0xc7, 0x07, 0x2d, 0xc6,
+ 0x99, 0x0e, 0x95, 0xf4, 0xd0, 0xbe, 0x5e, 0x81, 0x4e, 0xa3, 0x5b, 0xb9,
+ 0x38, 0x0a, 0x9a, 0x4e, 0xc8, 0x22, 0xdd, 0xc1, 0xf3, 0xa5, 0xac, 0x90,
+ 0xd9, 0xa4, 0xc8, 0x55, 0xff, 0xc1, 0x4e, 0xb1, 0x00, 0xfd, 0x10, 0x8a,
+ 0x00, 0x28, 0x51, 0x56, 0x87, 0xda, 0xd1, 0x58, 0x0f, 0x54, 0x6b, 0xd0,
+ 0x30, 0x9d, 0x69, 0x84, 0x89, 0xcf, 0x98, 0xc3, 0x24, 0x67, 0x92, 0xa2,
+ 0x93, 0x94, 0x2e, 0x53, 0xa7, 0xa9, 0x4f, 0xff, 0x3a, 0x4c, 0x89, 0x5e,
+ 0x4d, 0xd2, 0x55, 0x95, 0xb1, 0xa2, 0x3d, 0x21, 0x72, 0x68, 0xcd, 0x42,
+ 0x2b, 0xbc, 0x6a, 0xf0, 0x06, 0x10, 0xd6, 0xec, 0x19, 0xf2, 0xe9, 0x2f,
+ 0x52, 0x33, 0x59, 0xe1, 0x63, 0xb4, 0xbd, 0x9d, 0x11, 0xf2, 0xc5, 0xd5,
+ 0x91, 0x9d, 0xcf, 0xd8, 0xd1, 0xfc, 0xd6, 0xb7, 0x13, 0x4a, 0x37, 0x9d,
+ 0xbe, 0x90, 0x6c, 0xd1, 0xf8, 0xe5, 0x45, 0xe3, 0x9e, 0xd6, 0xe9, 0x06,
+ 0xcf, 0x64, 0x79, 0x8f, 0xa9, 0xb9, 0x10, 0x2b, 0x4a, 0xd3, 0x1c, 0x35,
+ 0x18, 0x8b, 0x04, 0x4a, 0xcb, 0x75, 0x82, 0xac, 0x7f, 0xb0, 0x14, 0xf7,
+ 0xf6, 0xea, 0x8b, 0xea, 0x3b, 0x45, 0xf0, 0x3b, 0xba, 0x03, 0x4d, 0x2c,
+ 0x73, 0x1f, 0x6f, 0x5e, 0xb1, 0x81, 0xdd, 0xef, 0x9d, 0xa2, 0xb7, 0x13,
+ 0xa1, 0xe5, 0xdf, 0xd8, 0xf9, 0xc2, 0xdd, 0x13, 0x2d, 0x69, 0xdf, 0xcc,
+ 0x17, 0x2d, 0x33, 0x29, 0xe9, 0x68, 0x94, 0x11, 0x44, 0x19, 0x9b, 0xa7,
+ 0xea, 0x4d, 0xb1, 0x66, 0xbf, 0x53, 0x0c, 0x31, 0x34, 0x6f, 0xd6, 0x17,
+ 0x49, 0x10, 0x6e, 0x9c, 0x1c, 0x81, 0x69, 0x89, 0xd3, 0xa7, 0x6b, 0xf8,
+ 0x63, 0xa3, 0x43, 0x43, 0x03, 0xfd, 0x32, 0x59, 0x93, 0x00, 0xd8, 0xbd,
+ 0xec, 0x28, 0x31, 0x76, 0x8c, 0xd9, 0xe5, 0xe0, 0xe3, 0x85, 0x13, 0x59,
+ 0x9d, 0xcf, 0x6e, 0x0e, 0x3a, 0xac, 0x76, 0x64, 0xa4, 0x7a, 0x0c, 0x33,
+ 0x66, 0xc0, 0x33, 0x22, 0xb6, 0x4c, 0xe6, 0xd6, 0x76, 0x4b, 0x6b, 0xce,
+ 0xaf, 0xf2, 0xd9, 0x38, 0x69, 0x75, 0xf9, 0xa1, 0x5d, 0x3e, 0x0f, 0xb4,
+ 0x74, 0x1e, 0x39, 0xfb, 0x21, 0xaf, 0x1a, 0x71, 0x60, 0x62, 0xb2, 0xa7,
+ 0x57, 0x09, 0x0b, 0xdb, 0x67, 0x6f, 0xf7, 0x21, 0xcc, 0x47, 0x19, 0x79,
+ 0x94, 0xe1, 0xb9, 0x29, 0x3e, 0xb1, 0xab, 0xf4, 0x96, 0x57, 0x8b, 0x98,
+ 0x6b, 0x90, 0xa5, 0x88, 0xc5, 0x51, 0xcb, 0xec, 0x22, 0xe1, 0x75, 0x0d,
+ 0xe1, 0x44, 0x90, 0xdb, 0xd7, 0x5e, 0x37, 0xeb, 0xea, 0xf1, 0x3a, 0x29,
+ 0x37, 0x03, 0x85, 0x14, 0x19, 0x2a, 0x6c, 0xf3, 0xb4, 0x3d, 0xf4, 0x27,
+ 0x92, 0x03, 0x70, 0xdc, 0x3e, 0x5e, 0xab, 0xcc, 0xb9, 0x68, 0x62, 0x3e,
+ 0x8b, 0xf9, 0xaa, 0xdb, 0x39, 0x82, 0x0c, 0xeb, 0x84, 0x61, 0x1a, 0x76,
+ 0x3e, 0xdf, 0x25, 0xa2, 0x04, 0x5c, 0x75, 0x54, 0x3a, 0x7d, 0xbe, 0xfd,
+ 0x84, 0xd1, 0x17, 0x26, 0xb7, 0x17, 0xb0, 0x5a, 0x7e, 0x65, 0x56, 0x37,
+ 0x66, 0xd9, 0xdc, 0x4f, 0x40, 0x95, 0xeb, 0x6c, 0xa5, 0x05, 0x89, 0xd7,
+ 0x36, 0xfe, 0xbd, 0xb9, 0x23, 0x54, 0x6d, 0xb1, 0x1b, 0x93, 0x74, 0x32,
+ 0x44, 0x3e, 0xf2, 0x6e, 0x30, 0xde, 0x14, 0x2c, 0xc6, 0x06, 0x14, 0xb6,
+ 0xb4, 0xfd, 0xcf, 0x57, 0xc7, 0x9a, 0x83, 0x2f, 0x19, 0x5d, 0xf5, 0x82,
+ 0xdc, 0x32, 0x6c, 0x4a, 0x7a, 0x99, 0x3f, 0x0e, 0xdd, 0xfc, 0xbe, 0xac,
+ 0x9c, 0x66, 0x92, 0xe4, 0x9b, 0x1a, 0xb0, 0x00, 0x63, 0x27, 0x1a, 0x5a,
+ 0xe0, 0x05, 0x74, 0x2b, 0xfe, 0x4b, 0xa0, 0xe6, 0xb5, 0xcc, 0x34, 0x3e,
+ 0xa9, 0x71, 0x50, 0x2e, 0x3f, 0x14, 0x3d, 0x78, 0x3b, 0x26, 0x1f, 0x33,
+ 0x31, 0xe2, 0x21, 0x7d, 0xed, 0xe3, 0x77, 0x11, 0x89, 0x9b, 0x47, 0xc8,
+ 0x61, 0xea, 0xbb, 0x9b, 0x1d, 0xe6, 0xab, 0xee, 0x64, 0xc2, 0x17, 0x19,
+ 0x92, 0x86, 0x9f, 0xc0, 0x10, 0x52, 0x02, 0x00, 0x00, 0xd8, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0c, 0x00, 0x02, 0x10, 0x24, 0x00,
+ 0x18, 0xeb, 0x4a, 0x00, 0xdc, 0x30, 0xe5, 0x8e, 0xf4, 0x40, 0x7e, 0x22,
+ 0x9e, 0x3f, 0x91, 0xe3, 0xce, 0x60, 0x39, 0x9a, 0xde, 0x5f, 0x2b, 0xc3,
+ 0x47, 0xf9, 0x67, 0xb1, 0x96, 0xab, 0x62, 0xeb, 0xd8, 0x89, 0x80, 0x37,
+ 0xb2, 0xf5, 0xe5, 0xf3, 0xfd, 0x27, 0xbc, 0x5f, 0x9d, 0x18, 0x97, 0x01,
+ 0x4c, 0x49, 0x24, 0x0a, 0xe3, 0x48, 0xdb, 0xd3, 0x7f, 0x05, 0x2e, 0xdc,
+ 0xd3, 0x88, 0x75, 0x4c, 0x81, 0xd6, 0x7d, 0xec, 0x30, 0x00, 0x83, 0xfc,
+ 0xd0, 0x45, 0x37, 0xa5, 0x4c, 0xed, 0x05, 0xc8, 0x95, 0x95, 0x90, 0x4b,
+ 0xe2, 0x1f, 0xe3, 0xb3, 0x59, 0x1a, 0xc6, 0xe0, 0xac, 0x75, 0x55, 0x9d,
+ 0xd2, 0x68, 0xfe, 0x89, 0xe0, 0x7f, 0xfd, 0xbd, 0x47, 0xcc, 0xef, 0x57,
+ 0x3f, 0xc3, 0xb7, 0x9f, 0xfe, 0x97, 0x03, 0xb9, 0x1c, 0x94, 0xf1, 0xd6,
+ 0xcf, 0xee, 0xb5, 0x67, 0xa3, 0x10, 0x5a, 0xbf, 0x0e, 0xa3, 0xd3, 0xed,
+ 0xad, 0xb7, 0xce, 0xcc, 0xa7, 0x02, 0xc7, 0xfe, 0xe0, 0x5a, 0xe0, 0xae,
+ 0x74, 0x82, 0xff, 0x1a, 0x96, 0xa7, 0xc7, 0x3b, 0x38, 0xf1, 0xb7, 0xa4,
+ 0x2d, 0x17, 0x83, 0xb3, 0x6e, 0xfb, 0x76, 0xe7, 0x1d, 0x92, 0xac, 0x67,
+ 0x2f, 0xa1, 0xac, 0x8a, 0x51, 0x74, 0xd5, 0x56, 0x92, 0x83, 0x4d, 0x4d,
+ 0x50, 0x88, 0x78, 0x6f, 0xe7, 0xfa, 0xb1, 0x4d, 0x93, 0x69, 0x2f, 0xd1,
+ 0x6c, 0xf6, 0xfe, 0xba, 0x18, 0x5d, 0xe3, 0xfe, 0x0d, 0x3d, 0x33, 0x15,
+ 0xa5, 0x35, 0xc2, 0x96, 0xa2, 0x63, 0x69, 0xe2, 0x66, 0x05, 0xd0, 0x57,
+ 0x13, 0x9b, 0x7b, 0xc8, 0xd5, 0x94, 0x05, 0xe9, 0x08, 0x4a, 0x68, 0x1b,
+ 0xbd, 0x0f, 0xe8, 0xb9, 0xe1, 0x15, 0xcc, 0xe2, 0xc1, 0x64, 0x1a, 0x9f,
+ 0x65, 0xc3, 0x61, 0xfc, 0x50, 0x32, 0x23, 0x90, 0x7d, 0xa6, 0xdd, 0x97,
+ 0xc0, 0x47, 0x54, 0x24, 0xae, 0xec, 0x6c, 0x0d, 0x17, 0xa1, 0x81, 0xf4,
+ 0x33, 0x83, 0x82, 0x39, 0x9b, 0x38, 0xad, 0x07, 0x95, 0xdf, 0xf9, 0x48,
+ 0xf8, 0x6c, 0x47, 0x33, 0x4d, 0x94, 0xb7, 0x22, 0x96, 0x11, 0xf4, 0x47,
+ 0x41, 0x17, 0x19, 0x5f, 0xfa, 0xe1, 0x78, 0x9b, 0x0f, 0x03, 0x1e, 0x09,
+ 0xc8, 0x10, 0xb4, 0xd3, 0x23, 0x2d, 0x7b, 0xa7, 0x4f, 0x0a, 0x8a, 0xe3,
+ 0x26, 0x61, 0xb4, 0xf2, 0x9d, 0x21, 0x18, 0x82, 0x3f, 0xf0, 0xaf, 0x84,
+ 0x4e, 0xd0, 0xcc, 0xd5, 0xfa, 0xbd, 0x00, 0x95, 0x5d, 0x43, 0x5d, 0xa7,
+ 0x56, 0x33, 0xc2, 0x3d, 0x50, 0xe4, 0x59, 0xa6, 0x00, 0xcb, 0x1c, 0x8a,
+ 0xa1, 0xb1, 0x01, 0x4c, 0xa4, 0x76, 0x36, 0xd2, 0x48, 0x78, 0x64, 0x75,
+ 0xe0, 0x9b, 0x42, 0xb5, 0x69, 0x6e, 0x00, 0xb8, 0x7e, 0x5b, 0x7c, 0x7b,
+ 0x40, 0x6c, 0x3e, 0x3b, 0x75, 0xd3, 0x01, 0x71, 0xa9, 0x59, 0x36, 0x7d,
+ 0x45, 0x99, 0x90, 0x77, 0xf7, 0xc3, 0x64, 0xe5, 0x79, 0x1d, 0x3e, 0xb9,
+ 0x99, 0xc8, 0xab, 0xc1, 0xdc, 0xd7, 0x04, 0x8b, 0xd3, 0x84, 0xf9, 0xfd,
+ 0x62, 0xbf, 0xcb, 0x55, 0x68, 0x71, 0xd1, 0x50, 0x75, 0xb4, 0x7a, 0x16,
+ 0x03, 0x1d, 0x36, 0xf8, 0x4f, 0x1e, 0xe7, 0x7a, 0x95, 0xb0, 0x04, 0xd6,
+ 0x13, 0x95, 0x76, 0xf0, 0x93, 0x9e, 0xc5, 0x1f, 0x54, 0xad, 0x83, 0x08,
+ 0xcf, 0x3c, 0x19, 0x43, 0x11, 0xa7, 0xbc, 0x06, 0x9d, 0xb5, 0x17, 0xd3,
+ 0x11, 0x7a, 0xd7, 0xcb, 0xde, 0x39, 0xb1, 0x28, 0x38, 0x46, 0xed, 0x21,
+ 0x74, 0x4a, 0x4c, 0x4a, 0xf2, 0x0a, 0x4a, 0x03, 0xad, 0x89, 0x3e, 0x63,
+ 0x4d, 0x96, 0xe7, 0x8c, 0xd4, 0x94, 0xce, 0x8c, 0x7b, 0xc7, 0xe4, 0xff,
+ 0x6c, 0x51, 0x95, 0x6a, 0xcd, 0xe3, 0x4a, 0x12, 0x74, 0x84, 0x83, 0x96,
+ 0x34, 0x50, 0x35, 0x1e, 0x32, 0x22, 0x9b, 0xa8, 0x08, 0x45, 0xe1, 0xb4,
+ 0xd1, 0xb9, 0xf3, 0x69, 0x68, 0x22, 0x29, 0x54, 0xdc, 0xc4, 0x88, 0x60,
+ 0x72, 0xce, 0x29, 0x64, 0xf3, 0x12, 0x84, 0xdf, 0x44, 0xdf, 0x2a, 0x10,
+ 0x62, 0x10, 0x1e, 0xa4, 0x69, 0x90, 0x01, 0x0a, 0x15, 0xc1, 0x59, 0x4f,
+ 0x99, 0xd3, 0xb6, 0x61, 0x9a, 0xe9, 0xe6, 0xdc, 0xb0, 0x82, 0xc9, 0xb1,
+ 0xb3, 0x65, 0x1a, 0x92, 0xec, 0xfb, 0x24, 0x3f, 0x04, 0x08, 0x79, 0x82,
+ 0x95, 0x3f, 0xc1, 0xb2, 0x3b, 0x1c, 0xc8, 0x4b, 0x43, 0x78, 0x00, 0x08,
+ 0x02, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
+ 0x0c, 0x00, 0x05, 0x10, 0x24, 0x00, 0x18, 0x00, 0x43, 0x1d, 0x34, 0xa2,
+ 0x96, 0xe8, 0xc0, 0xc8, 0x50, 0x0d, 0xb7, 0x0d, 0xb1, 0x19, 0x5b, 0x84,
+ 0x1f, 0x57, 0xdb, 0xdd, 0xf0, 0x96, 0xe5, 0xb0, 0x46, 0x85, 0xe2, 0x32,
+ 0xbc, 0x0b, 0x3a, 0xbc, 0xb2, 0x2c, 0xa1, 0xa8, 0x91, 0xe0, 0x8e, 0x19,
+ 0x1f, 0x18, 0xcb, 0xa6, 0x7b, 0x99, 0x29, 0xb5, 0x07, 0x59, 0x01, 0xbf,
+ 0x97, 0xd7, 0x41, 0xcd, 0x81, 0xbd, 0x7c, 0x4b, 0xf5, 0x76, 0x53, 0x15,
+ 0xf6, 0x91, 0xbd, 0x28, 0x69, 0x37, 0xe9, 0x48, 0x25, 0x64, 0x1c, 0x8a,
+ 0x21, 0x84, 0x75, 0x8f, 0xcd, 0x08, 0x91, 0xb5, 0x91, 0xb8, 0x8d, 0x67,
+ 0x49, 0xf7, 0x77, 0xb8, 0xb8, 0x89, 0xbf, 0xc3, 0xf0, 0xac, 0xb7, 0xa4,
+ 0x76, 0x94, 0x27, 0x06, 0x62, 0x24, 0xfb, 0xf9, 0x04, 0xa0, 0x00, 0x45,
+ 0x1b, 0xee, 0xc4, 0x11, 0x78, 0x69, 0x05, 0x37, 0xe2, 0xcb, 0x18, 0xe8,
+ 0xd8, 0x3b, 0xe6, 0x15, 0x32, 0xa5, 0x7c, 0x78, 0x6c, 0x77, 0x06, 0xf7,
+ 0xb5, 0x3c, 0x33, 0x8c, 0x94, 0x24, 0x39, 0x6f, 0x4d, 0xdc, 0x26, 0x48,
+ 0x5b, 0xe4, 0xb5, 0x59, 0x64, 0xf7, 0xb2, 0x0c, 0x73, 0xcd, 0x6a, 0x5f,
+ 0x3f, 0xbd, 0xcf, 0xd0, 0xcb, 0xd9, 0x3f, 0xe6, 0xa1, 0xcd, 0xb5, 0x48,
+ 0x12, 0xf1, 0xf5, 0x47, 0xe3, 0x61, 0x48, 0x35, 0x3e, 0xea, 0x87, 0x3b,
+ 0x26, 0x7c, 0xd2, 0x5a, 0x7d, 0x3c, 0x2f, 0xdd, 0x92, 0x9d, 0xd1, 0x51,
+ 0x92, 0x9d, 0xf3, 0x41, 0xc3, 0x72, 0xe9, 0x59, 0x5b, 0xf7, 0xa7, 0xca,
+ 0xfc, 0xc2, 0x57, 0x39, 0x7f, 0x0c, 0xac, 0x0c, 0xc7, 0x7b, 0x5c, 0x3b,
+ 0x4c, 0x3a, 0x89, 0x53, 0xb6, 0xc1, 0xff, 0x33, 0xc2, 0x7b, 0x64, 0x20,
+ 0xdb, 0x82, 0x0b, 0xf0, 0x41, 0x0f, 0xb8, 0x4f, 0xbc, 0x0c, 0x91, 0x7b,
+ 0x8f, 0xee, 0x21, 0x43, 0x2f, 0x79, 0x53, 0xaa, 0x89, 0xf1, 0x9b, 0x18,
+ 0xfb, 0xe9, 0xa1, 0x0b, 0x6f, 0x7e, 0x58, 0x04, 0xf8, 0xa3, 0xed, 0x0d,
+ 0x39, 0xb3, 0xf7, 0x99, 0xa4, 0xb0, 0x49, 0x7f, 0xa4, 0x72, 0x3c, 0xff,
+ 0xcf, 0x2f, 0x28, 0x5b, 0xaf, 0x5c, 0x4a, 0x67, 0x0c, 0x52, 0x6f, 0x99,
+ 0x26, 0xc9, 0xfb, 0x2e, 0x08, 0xaf, 0x3b, 0xdb, 0xb0, 0x26, 0xd6, 0xcc,
+ 0xce, 0x63, 0x83, 0xbf, 0x0b, 0xcb, 0x11, 0x3e, 0xe3, 0x38, 0x5c, 0x4d,
+ 0x44, 0x17, 0x4d, 0x52, 0xdc, 0xad, 0x04, 0x0a, 0x4b, 0x41, 0xa4, 0xa6,
+ 0x94, 0x55, 0x65, 0x13, 0x6f, 0xb8, 0x88, 0x2e, 0x16, 0x59, 0xbd, 0x4b,
+ 0x68, 0x76, 0x74, 0x68, 0x9b, 0x72, 0xbc, 0x5b, 0x7c, 0x4a, 0x7a, 0x83,
+ 0xf4, 0x52, 0x50, 0xab, 0x41, 0x9f, 0xe8, 0x74, 0x4c, 0xbd, 0xa9, 0xe2,
+ 0x5a, 0xdb, 0x86, 0x6b, 0x75, 0xde, 0x0a, 0xae, 0x59, 0x7a, 0xf8, 0xea,
+ 0x69, 0x07, 0x29, 0xb5, 0x79, 0x4c, 0xb7, 0x7a, 0xfb, 0x9f, 0x51, 0xd8,
+ 0xe8, 0x2d, 0xe8, 0xcf, 0x20, 0x3d, 0x85, 0xd5, 0x57, 0x88, 0x2a, 0x26,
+ 0x9c, 0xeb, 0x4d, 0x89, 0x4b, 0x31, 0x55, 0x41, 0xcd, 0xd0, 0x5e, 0x58,
+ 0x62, 0x98, 0x04, 0xef, 0x3b, 0xcd, 0x15, 0xa2, 0x6a, 0x6f, 0xcd, 0xef,
+ 0x59, 0x90, 0xc3, 0x23, 0x11, 0x84, 0x67, 0xb5, 0x07, 0x8f, 0xdf, 0x34,
+ 0x5f, 0xff, 0xbd, 0xb4, 0xa7, 0x1c, 0x98, 0x6e, 0x07, 0xa0, 0xf1, 0xf2,
+ 0x1d, 0x6d, 0xc1, 0xf8, 0xcb, 0xad, 0x27, 0xbc, 0x85, 0x06, 0xa1, 0x61,
+ 0xc6, 0x91, 0xb2, 0xbb, 0x56, 0x44, 0x92, 0x60, 0x59, 0xfd, 0x75, 0x14,
+ 0x6e, 0x08, 0xd7, 0xff, 0xaa, 0x9b, 0x51, 0x9a, 0xf5, 0x7f, 0xcb, 0x06,
+ 0x14, 0xbe, 0x00, 0x9a, 0x0b, 0x3f, 0x7e, 0xb6, 0x90, 0xec, 0xb2, 0x7d,
+ 0xbb, 0x43, 0x89, 0x39, 0x93, 0x05, 0x2a, 0x80, 0x8c, 0x14, 0x5d, 0x01,
+ 0xe6, 0xa4, 0x40, 0x86, 0x02, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xd1, 0x0d, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18, 0x00,
+ 0x43, 0x4e, 0x34, 0xa3, 0x22, 0x22, 0xd2, 0x58, 0xbf, 0xcb, 0x46, 0x86,
+ 0x83, 0x5f, 0xde, 0x1f, 0x52, 0x54, 0x87, 0xfd, 0x71, 0x3d, 0x93, 0x00,
+ 0xe2, 0x0b, 0x22, 0x26, 0x5f, 0x2d, 0xc6, 0x21, 0x61, 0x4c, 0x17, 0xe3,
+ 0x7c, 0x62, 0x7e, 0x17, 0xac, 0x3b, 0xd6, 0x68, 0x48, 0x5d, 0xa2, 0x22,
+ 0x49, 0x0c, 0x37, 0x5d, 0xd8, 0x81, 0x06, 0x02, 0xf0, 0x7f, 0xf6, 0x44,
+ 0x18, 0x87, 0xf5, 0x2a, 0x07, 0x7b, 0xe3, 0xff, 0x90, 0x4a, 0x7d, 0x42,
+ 0xdc, 0x42, 0x5d, 0x96, 0xcd, 0xd7, 0x28, 0x80, 0x27, 0xb1, 0xdc, 0xd4,
+ 0x75, 0x90, 0x49, 0x0f, 0xc0, 0x9c, 0x02, 0xe5, 0x9a, 0xc7, 0xda, 0xc8,
+ 0x2a, 0x0b, 0x79, 0xb3, 0x61, 0xb2, 0xe8, 0x00, 0x89, 0xc2, 0x1f, 0xdb,
+ 0xaf, 0x35, 0x4f, 0x23, 0xe1, 0xc5, 0x1c, 0x70, 0x6b, 0x3b, 0x3c, 0xa1,
+ 0xb6, 0x01, 0xef, 0x74, 0xf2, 0x39, 0x73, 0x48, 0x40, 0x16, 0x82, 0x60,
+ 0x1d, 0x20, 0x82, 0x36, 0x76, 0xac, 0xa3, 0x7a, 0x40, 0xc0, 0xb9, 0x61,
+ 0x8f, 0xaf, 0x21, 0xf0, 0xac, 0xc5, 0x5d, 0x9a, 0x95, 0x28, 0x1a, 0x2a,
+ 0x50, 0x78, 0x73, 0xbd, 0x2c, 0x87, 0x52, 0x1e, 0xa2, 0xce, 0xbb, 0x0f,
+ 0xe1, 0xcd, 0x10, 0xd2, 0x8f, 0xfe, 0xa7, 0xb7, 0xa7, 0x38, 0x45, 0xb9,
+ 0x18, 0x20, 0x6f, 0x93, 0x8f, 0xf6, 0x40, 0x50, 0x15, 0x95, 0x6c, 0xf3,
+ 0xb4, 0x8f, 0x49, 0xc2, 0xe0, 0xcf, 0xdb, 0xe5, 0x67, 0xc1, 0x49, 0xd1,
+ 0x1b, 0xb2, 0xfa, 0xb9, 0xcf, 0xbe, 0xff, 0x3c, 0x0c, 0x79, 0x30, 0xaa,
+ 0x15, 0x21, 0x6c, 0x44, 0x9d, 0xe4, 0x4f, 0xd8, 0xc4, 0xfa, 0x52, 0x40,
+ 0x4d, 0xeb, 0xbd, 0xff, 0xc6, 0xa8, 0x5d, 0x27, 0x94, 0xcf, 0x35, 0x23,
+ 0x3a, 0xaf, 0x0f, 0x66, 0x4b, 0x18, 0x12, 0x05, 0x4d, 0x70, 0xd3, 0x25,
+ 0x33, 0x9d, 0x84, 0xb5, 0x56, 0x24, 0x92, 0x41, 0x56, 0x58, 0x98, 0x2b,
+ 0xcf, 0xa4, 0xb5, 0xe8, 0x60, 0xb6, 0x1f, 0x24, 0xe2, 0x26, 0x98, 0xbd,
+ 0x63, 0x24, 0x21, 0xa6, 0x8c, 0x94, 0x71, 0xac, 0xba, 0x87, 0xc9, 0x90,
+ 0x7c, 0xfb, 0x19, 0x48, 0x1f, 0xee, 0xb4, 0x54, 0x53, 0x50, 0x04, 0x9a,
+ 0xe8, 0x60, 0x41, 0xe1, 0x81, 0xe8, 0x55, 0x66, 0x5e, 0xe0, 0xfe, 0x81,
+ 0x35, 0x44, 0xd2, 0x3f, 0x0f, 0xed, 0xa0, 0xf3, 0xa2, 0x72, 0x6b, 0x4a,
+ 0x68, 0xaf, 0xf2, 0x87, 0x3b, 0x80, 0xc6, 0xcb, 0x7b, 0xd3, 0x45, 0x2a,
+ 0x7f, 0xd9, 0x56, 0xe1, 0x22, 0xce, 0xa0, 0x65, 0xe2, 0x2c, 0xf2, 0x4a,
+ 0x3a, 0xc5, 0x39, 0xf5, 0x6b, 0x84, 0x05, 0x04, 0x70, 0x00, 0xc3, 0x3d,
+ 0xaf, 0x26, 0x83, 0x12, 0x10, 0x21, 0x26, 0x7b, 0x43, 0x17, 0x25, 0x79,
+ 0x76, 0x1c, 0x24, 0xf2, 0x20, 0x1b, 0x47, 0xe2, 0xc4, 0x1a, 0x7e, 0x37,
+ 0xf7, 0x42, 0xd8, 0x7a, 0xe1, 0xdd, 0xf1, 0xab, 0x58, 0x1e, 0xb0, 0x6a,
+ 0x57, 0x7a, 0x68, 0x46, 0x7d, 0xae, 0x43, 0xe7, 0x79, 0xf2, 0x5d, 0x3e,
+ 0xe5, 0x5c, 0x84, 0xb5, 0x90, 0xd1, 0x6e, 0x36, 0xed, 0x68, 0x3a, 0xbb,
+ 0xe8, 0x32, 0x67, 0x0f, 0xe2, 0x31, 0x27, 0xfa, 0xee, 0xa0, 0x8d, 0x80,
+ 0x9e, 0x02, 0x5f, 0xb9, 0xb0, 0x38, 0xce, 0x29, 0x5a, 0x96, 0xbd, 0x85,
+ 0xf5, 0x71, 0x3a, 0x41, 0xa6, 0x7d, 0xe0, 0xa9, 0x0a, 0x45, 0x9e, 0x40,
+ 0x2e, 0xcf, 0x3c, 0x35, 0x9a, 0x82, 0xee, 0x9b, 0x61, 0x25, 0x76, 0x39,
+ 0x33, 0x74, 0xf2, 0x22, 0xb0, 0x64, 0x40, 0x79, 0x55, 0xab, 0x0f, 0xdc,
+ 0x80, 0xbd, 0xae, 0xca, 0x6a, 0x5e, 0x61, 0x3a, 0x1e, 0x4a, 0x65, 0xc8,
+ 0x88, 0x2d, 0x8f, 0xa5, 0x2c, 0x28, 0x20, 0x26, 0x1b, 0xb8, 0xee, 0x2e,
+ 0x45, 0x48, 0x06, 0x3b, 0x5b, 0xa1, 0x10, 0x03, 0x87, 0x00, 0x71, 0x66,
+ 0x3d, 0x27, 0x3f, 0xb7, 0xc3, 0x19, 0x24, 0x3d, 0xae, 0x2f, 0xe7, 0x63,
+ 0x26, 0xf6, 0x69, 0xbe, 0x6c, 0x6a, 0x92, 0xd2, 0x1e, 0xf7, 0x9e, 0xd4,
+ 0xd6, 0x33, 0xdd, 0xe2, 0x47, 0x98, 0x6b, 0xee, 0xbe, 0xf0, 0x70, 0x1d,
+ 0x1d, 0x09, 0x02, 0x27, 0x81, 0x41, 0xb1, 0xf0, 0x3e, 0x9c, 0x76, 0x15,
+ 0x64, 0xa3, 0xdd, 0x23, 0x81, 0xb9, 0x3d, 0xa4, 0x43, 0xaa, 0x5e, 0x35,
+ 0x3d, 0xe1, 0x03, 0x31, 0x94, 0xac, 0x15, 0x93, 0x9a, 0xa6, 0x8f, 0x9a,
+ 0x24, 0x82, 0xda, 0x52, 0x56, 0x0b, 0xf2, 0x76, 0xd6, 0x97, 0x01, 0x9b,
+ 0x5a, 0x78, 0x24, 0xbd, 0xfd, 0xad, 0x49, 0x63, 0x42, 0x14, 0xc9, 0xd4,
+ 0xa2, 0x30, 0x0b, 0xa9, 0x8d, 0x8c, 0x51, 0x2a, 0x0e, 0x4d, 0xb6, 0x24,
+ 0x9e, 0xdb, 0x31, 0x05, 0x89, 0xd1, 0x84, 0x97, 0x13, 0x73, 0x91, 0xe1,
+ 0x60, 0x07, 0x02, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x71, 0x0c, 0x00, 0x07, 0x10, 0x24, 0x00, 0x18, 0x00, 0x42, 0x68,
+ 0xb5, 0x61, 0x19, 0xe8, 0x80, 0xd0, 0x61, 0x8e, 0x77, 0x13, 0xb8, 0x24,
+ 0x75, 0x6f, 0xd0, 0x47, 0x9e, 0x8b, 0xee, 0xb6, 0x3c, 0x39, 0xd3, 0x35,
+ 0x56, 0x0b, 0xeb, 0x0d, 0x37, 0x6c, 0x35, 0x21, 0xc1, 0x5a, 0xa5, 0x47,
+ 0x6d, 0x12, 0xdb, 0x8d, 0x39, 0xf7, 0x71, 0xd0, 0xa5, 0x68, 0x65, 0x8a,
+ 0x08, 0x95, 0x97, 0x8d, 0x5c, 0xc1, 0x62, 0xa5, 0x53, 0xec, 0x02, 0xcf,
+ 0x73, 0xc2, 0x80, 0x02, 0x98, 0x8b, 0xc2, 0xfa, 0x0d, 0x48, 0x14, 0x9e,
+ 0xa7, 0x90, 0x0f, 0xc6, 0x8f, 0x4d, 0x2d, 0x5e, 0x23, 0x6b, 0x64, 0x8e,
+ 0x9c, 0xb6, 0x46, 0x7b, 0xd7, 0x2b, 0xb8, 0x89, 0xc3, 0xe8, 0x69, 0x56,
+ 0x28, 0x5e, 0x73, 0x67, 0xc5, 0x86, 0x20, 0x1b, 0x50, 0x8a, 0x2c, 0x0f,
+ 0xf6, 0x7a, 0x14, 0xaa, 0x9b, 0xcb, 0x8d, 0x7f, 0x7b, 0x7f, 0xde, 0x58,
+ 0xe1, 0xa1, 0x68, 0x29, 0xcf, 0x2c, 0xfc, 0x7f, 0xed, 0xfe, 0xa1, 0xd1,
+ 0x6d, 0xbd, 0xff, 0x58, 0xb5, 0x8f, 0x72, 0x55, 0x08, 0xc8, 0xed, 0xe0,
+ 0xf3, 0x94, 0x47, 0x09, 0x7a, 0xf4, 0x04, 0x6f, 0x1a, 0x70, 0x63, 0xf7,
+ 0x64, 0xae, 0xc3, 0x6e, 0x23, 0xff, 0x2f, 0x03, 0xc2, 0x3a, 0x06, 0xd0,
+ 0x10, 0x9e, 0x2a, 0x4b, 0xec, 0x1a, 0x5b, 0x01, 0x06, 0x8d, 0x71, 0x58,
+ 0x72, 0x89, 0x16, 0x9c, 0x0c, 0x8c, 0x9b, 0x38, 0xc9, 0x91, 0x71, 0xb5,
+ 0x54, 0x1a, 0x79, 0xa8, 0x2e, 0x34, 0x02, 0x1e, 0x9b, 0x53, 0xc6, 0x2c,
+ 0x72, 0xa1, 0x1f, 0x32, 0x15, 0x14, 0xf8, 0x44, 0xe6, 0x18, 0xde, 0xdd,
+ 0x99, 0x7d, 0x00, 0x8a, 0x53, 0x29, 0x01, 0xde, 0xae, 0x61, 0xa4, 0xe5,
+ 0x83, 0x6a, 0x0d, 0xd2, 0xaf, 0xe4, 0xfe, 0xab, 0x90, 0xa7, 0x30, 0x99,
+ 0x4b, 0x29, 0xba, 0x80, 0x30, 0x0c, 0x88, 0xe0, 0x9f, 0x46, 0x8d, 0xe5,
+ 0xcc, 0x92, 0x9f, 0xce, 0x89, 0x3e, 0x13, 0x6b, 0x28, 0x52, 0x2b, 0x8f,
+ 0x91, 0x8f, 0x90, 0xb4, 0xb4, 0x8c, 0x49, 0xd3, 0x49, 0xcc, 0x31, 0x82,
+ 0x16, 0xcd, 0x77, 0x6b, 0x4b, 0x75, 0x18, 0x5e, 0x71, 0x6b, 0x99, 0xaf,
+ 0x8f, 0x31, 0x1b, 0x60, 0xae, 0xad, 0xae, 0x1f, 0x19, 0x7f, 0xd9, 0xbd,
+ 0x8f, 0xe4, 0x88, 0x6b, 0x2e, 0xa2, 0x56, 0xe8, 0x62, 0x8b, 0x79, 0x74,
+ 0xc2, 0x86, 0x0d, 0x2b, 0x92, 0xc7, 0xf0, 0xfd, 0x15, 0xad, 0x1b, 0x4f,
+ 0x08, 0x6c, 0xf6, 0xba, 0x19, 0x09, 0x25, 0x05, 0x57, 0xf6, 0xc3, 0x10,
+ 0x82, 0x5f, 0x6e, 0x8d, 0xf1, 0x0f, 0x3f, 0xf0, 0x2b, 0x6b, 0x97, 0x8b,
+ 0xb6, 0x33, 0xa5, 0x02, 0x83, 0x79, 0xf5, 0xa8, 0x24, 0xbe, 0x15, 0x30,
+ 0x2c, 0x8f, 0x6d, 0x41, 0xf1, 0x4e, 0x95, 0x1a, 0x60, 0x36, 0x30, 0x89,
+ 0x47, 0xe5, 0xfa, 0x74, 0x68, 0x24, 0x59, 0x83, 0xf8, 0x37, 0xd7, 0x4e,
+ 0xd5, 0x7c, 0xd7, 0x56, 0x68, 0xc7, 0x15, 0x17, 0xf1, 0xde, 0x0c, 0x89,
+ 0xf8, 0xee, 0x1e, 0x69, 0x76, 0x0e, 0x83, 0x45, 0x29, 0x9e, 0x82, 0x06,
+ 0xde, 0xdd, 0xd4, 0x9b, 0x4d, 0x9b, 0x51, 0x2b, 0xbc, 0x1f, 0x5c, 0x67,
+ 0xd1, 0x42, 0x6e, 0xa3, 0xa0, 0xf9, 0x93, 0x01, 0x09, 0xdb, 0xd4, 0xce,
+ 0x34, 0x08, 0xbb, 0x58, 0x80, 0x8c, 0x72, 0x9a, 0x3b, 0x10, 0x59, 0xf4,
+ 0x9b, 0xb6, 0x02, 0xa9, 0x9b, 0xf1, 0x38, 0x5d, 0x48, 0xe2, 0xf1, 0xcc,
+ 0x9e, 0x90, 0x81, 0x9f, 0x61, 0x2d, 0xcb, 0xec, 0x5b, 0x3b, 0x57, 0x86,
+ 0xc2, 0x64, 0xc6, 0xb3, 0x4b, 0xda, 0xb0, 0x1a, 0x7f, 0x99, 0xf3, 0x23,
+ 0x0c, 0x44, 0xfd, 0x60, 0x92, 0x05, 0x5d, 0x7f, 0xf2, 0xe1, 0xb8, 0x17,
+ 0x00, 0x23, 0x05, 0xe4, 0xaa, 0x96, 0x27, 0x46, 0x11, 0x6a, 0x74, 0xe0,
+ 0x3f, 0xd9, 0x48, 0x80, 0x27, 0x03, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x51, 0x12, 0x00, 0x03, 0x10, 0x24, 0x00, 0x18,
+ 0x00, 0x4a, 0x8f, 0xb0, 0xe2, 0x57, 0xd4, 0xd5, 0xd9, 0x55, 0x9d, 0xdd,
+ 0x06, 0x73, 0x31, 0xe6, 0xc8, 0x86, 0x2c, 0x33, 0x2a, 0xa3, 0x6a, 0xfd,
+ 0xc2, 0xd4, 0x58, 0xc1, 0x9f, 0x5d, 0x91, 0xb6, 0x2e, 0x32, 0x0d, 0x3b,
+ 0x2f, 0x15, 0x86, 0x6b, 0x0b, 0xde, 0xc5, 0xe8, 0x26, 0x13, 0xa9, 0xdb,
+ 0x4d, 0x5a, 0xf4, 0xe0, 0x32, 0x45, 0x66, 0x6c, 0x9d, 0x4b, 0x0c, 0x27,
+ 0xb2, 0xda, 0xb2, 0x80, 0x06, 0xe4, 0x58, 0x06, 0xc6, 0xeb, 0xd6, 0x69,
+ 0x23, 0x33, 0x53, 0x06, 0xbf, 0xe1, 0xe5, 0xa6, 0x54, 0xba, 0xb4, 0xce,
+ 0xe6, 0xa8, 0x05, 0xdd, 0x7a, 0x77, 0x81, 0x35, 0x96, 0xca, 0x4f, 0x61,
+ 0x42, 0x62, 0x04, 0xf5, 0x88, 0x5a, 0x62, 0x56, 0xd7, 0x71, 0x25, 0x20,
+ 0x00, 0x00, 0x59, 0x76, 0x60, 0x76, 0x39, 0x38, 0x29, 0xc3, 0x94, 0xf0,
+ 0x3a, 0xfe, 0xcc, 0x8e, 0xfa, 0x3b, 0xe0, 0xa2, 0x1a, 0x24, 0x92, 0x40,
+ 0x01, 0x4b, 0xd6, 0x0c, 0x09, 0xb2, 0xc3, 0x0c, 0x00, 0x89, 0xb8, 0x1d,
+ 0xfa, 0x9c, 0x01, 0xeb, 0x90, 0x61, 0x18, 0x37, 0x42, 0xa1, 0xdf, 0xee,
+ 0x4e, 0xb7, 0x84, 0x81, 0x46, 0xea, 0x8d, 0x1b, 0xd3, 0x5e, 0x80, 0xa0,
+ 0x27, 0x11, 0xe4, 0x63, 0xd8, 0x03, 0x84, 0x3b, 0x97, 0x25, 0x5a, 0x7f,
+ 0x3a, 0x68, 0x37, 0x48, 0x27, 0xbd, 0x57, 0x93, 0x04, 0x4b, 0x1c, 0x00,
+ 0xac, 0x73, 0x94, 0x5e, 0xaf, 0x29, 0xce, 0x5a, 0xd4, 0x2b, 0xb5, 0xb0,
+ 0xc9, 0xa7, 0x85, 0x7e, 0x8f, 0x02, 0x72, 0xbb, 0x7f, 0xc3, 0xcf, 0x5d,
+ 0x76, 0x70, 0xff, 0xd1, 0xc3, 0x5c, 0x0f, 0x70, 0xdf, 0xe3, 0x27, 0x28,
+ 0x53, 0xe4, 0x79, 0x50, 0x12, 0x01, 0x79, 0x69, 0x55, 0xd6, 0xce, 0xc7,
+ 0x54, 0xe4, 0x5d, 0xd4, 0xbb, 0x25, 0x98, 0xe4, 0x20, 0xd0, 0xbc, 0x5b,
+ 0xe2, 0x33, 0xfe, 0x78, 0x66, 0x58, 0x87, 0x2d, 0x7b, 0x0f, 0x04, 0x08,
+ 0x0f, 0xf9, 0x1a, 0x75, 0x9d, 0xf6, 0x97, 0x45, 0x44, 0x1b, 0x97, 0xda,
+ 0xff, 0xec, 0xac, 0x75, 0x64, 0x27, 0xec, 0x77, 0x2c, 0xe1, 0x48, 0xf3,
+ 0xe7, 0xfd, 0xae, 0xfb, 0xa4, 0x82, 0x9c, 0xb2, 0xc0, 0xcf, 0x7e, 0x6d,
+ 0x80, 0xcc, 0x2b, 0x7b, 0xb7, 0x1c, 0x7e, 0xdb, 0x6e, 0x7c, 0xff, 0x47,
+ 0xf4, 0x08, 0x2d, 0xea, 0xc1, 0x7c, 0xcd, 0x89, 0xbe, 0x50, 0x19, 0xad,
+ 0x2f, 0x58, 0xee, 0x27, 0x10, 0xfc, 0x24, 0x1a, 0x6f, 0x31, 0x8b, 0x46,
+ 0xfe, 0x09, 0x42, 0xfe, 0x86, 0xb1, 0xc3, 0x1c, 0xcb, 0x6b, 0x3d, 0x8d,
+ 0xce, 0xb1, 0x61, 0xa5, 0xa7, 0x59, 0x29, 0x41, 0x1a, 0xfb, 0xfa, 0x3c,
+ 0x0c, 0x86, 0x0d, 0x95, 0xde, 0xf0, 0x96, 0xcf, 0x63, 0x74, 0x76, 0xd0,
+ 0x0c, 0x83, 0xf3, 0xee, 0x7b, 0x57, 0xa6, 0x9a, 0xe7, 0x43, 0x2c, 0x3c,
+ 0xee, 0x04, 0xbe, 0xda, 0x22, 0xda, 0x07, 0x5a, 0xc4, 0xac, 0xee, 0xc1,
+ 0x0d, 0x78, 0x53, 0xeb, 0x46, 0xa9, 0x22, 0x9e, 0xd5, 0x6d, 0x04, 0x03,
+ 0x07, 0xd3, 0xa9, 0xb4, 0xe0, 0xbb, 0xbb, 0x07, 0xc0, 0x3e, 0x89, 0x68,
+ 0xd4, 0xbe, 0x67, 0xb5, 0x1f, 0x0f, 0x8d, 0xba, 0x68, 0x0b, 0x9e, 0x70,
+ 0xfc, 0x93, 0x07, 0xd8, 0xdb, 0x6e, 0xb4, 0xe6, 0x38, 0x7a, 0xe2, 0xff,
+ 0x18, 0xb9, 0xd7, 0x2b, 0x2f, 0x04, 0xeb, 0x5d, 0x16, 0x36, 0x29, 0x55,
+ 0x5e, 0xce, 0x56, 0xaa, 0x5e, 0xa6, 0xa6, 0xbf, 0x16, 0x5d, 0x96, 0xe0,
+ 0x97, 0xe5, 0x3f, 0x8f, 0xc0, 0x19, 0xec, 0xc8, 0x70, 0x08, 0x96, 0xcf,
+ 0x6e, 0x37, 0xb1, 0x3f, 0x5f, 0x5c, 0xd9, 0x4a, 0xaa, 0xbc, 0x51, 0x49,
+ 0xbc, 0x19, 0x28, 0x67, 0x6c, 0xe4, 0x01, 0x73, 0x56, 0x49, 0x4c, 0x41,
+ 0x75, 0xd3, 0x02, 0x04, 0x2d, 0x4b, 0x29, 0xa8, 0xb2, 0x70, 0x88, 0x2c,
+ 0xc1, 0xc8, 0xfb, 0x5d, 0x92, 0x08, 0xa0, 0x53, 0x17, 0x4d, 0xb4, 0x13,
+ 0x51, 0x68, 0x4a, 0x33, 0xf3, 0x27, 0x25, 0x81, 0xe9, 0x1e, 0x12, 0x61,
+ 0xbb, 0xc8, 0x5b, 0xeb, 0xdd, 0x9d, 0xb4, 0x13, 0x94, 0xee, 0xc0, 0x58,
+ 0x3b, 0x9e, 0x8d, 0x0a, 0xa5, 0x92, 0x38, 0xab, 0x36, 0xb5, 0x50, 0x9d,
+ 0x08, 0xd8, 0x3f, 0x8c, 0x08, 0xe5, 0x70, 0x1e, 0x71, 0x5d, 0xdc, 0x8f,
+ 0xc8, 0x6a, 0xaa, 0x0d, 0xce, 0xc6, 0x8c, 0x06, 0xf8, 0xdd, 0xf7, 0x6a,
+ 0xd9, 0xab, 0x27, 0xbc, 0xcc, 0x21, 0x21, 0xed, 0x67, 0x37, 0xf0, 0x0a,
+ 0x9b, 0x1c, 0xe1, 0xe0, 0xfa, 0x6d, 0xd5, 0x9e, 0x44, 0x5a, 0xa0, 0xde,
+ 0x02, 0x33, 0xff, 0x3a, 0x84, 0x1e, 0xc2, 0x8b, 0xcb, 0x64, 0x95, 0x11,
+ 0xd0, 0x8c, 0xdc, 0xbf, 0x91, 0x55, 0xc4, 0x4f, 0xa2, 0x39, 0x81, 0x20,
+ 0xeb, 0x2e, 0x82, 0x77, 0xe8, 0x9e, 0xac, 0x68, 0xac, 0xa9, 0x29, 0xbb,
+ 0xe9, 0x77, 0x9b, 0x6d, 0x65, 0x3e, 0x5d, 0x5b, 0x32, 0xfc, 0xf2, 0x06,
+ 0xb5, 0xa0, 0x62, 0x80, 0x8c, 0x9c, 0xfd, 0xe4, 0x23, 0x5d, 0xa6, 0x5c,
+ 0x36, 0x52, 0x8c, 0xfc, 0xe3, 0xa2, 0xe2, 0x2c, 0xd0, 0x00, 0x04, 0x27,
+ 0xd8, 0x2b, 0xbb, 0xe9, 0x56, 0x7f, 0xd6, 0xb2, 0xea, 0x13, 0xa3, 0x93,
+ 0x06, 0x02, 0x28, 0x62, 0x6e, 0x5c, 0xf4, 0xab, 0xff, 0xef, 0x1c, 0xbc,
+ 0xa4, 0xc8, 0x48, 0xe7, 0xce, 0xc3, 0x52, 0xaf, 0x79, 0xa8, 0x40, 0xc2,
+ 0x92, 0x49, 0x70, 0x5f, 0x1d, 0xfc, 0x31, 0x74, 0x75, 0x28, 0x24, 0x12,
+ 0xba, 0x16, 0x44, 0x2b, 0x95, 0x44, 0x7a, 0x0b, 0x9e, 0x05, 0xb8, 0x3f,
+ 0x01, 0x81, 0x29, 0x63, 0x39, 0xe6, 0xa6, 0x2a, 0x56, 0x8a, 0xb3, 0x94,
+ 0x4f, 0x48, 0x1c, 0xe9, 0xfa, 0x9a, 0xbc, 0xe9, 0x0a, 0x4e, 0xc4, 0xb6,
+ 0xb0, 0xb1, 0x3e, 0xcd, 0x4c, 0x0f, 0x31, 0x48, 0xa0, 0xcd, 0x06, 0x1f,
+ 0xa0, 0x1d, 0xde, 0x99, 0x03, 0x56, 0x49, 0x10, 0xf3, 0x05, 0x2a, 0x7f,
+ 0x83, 0x64, 0x76, 0x39, 0xa7, 0x5e, 0x40, 0x08, 0x02, 0x00, 0x00, 0xdd,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0d, 0x00, 0x03, 0x10,
+ 0x24, 0x00, 0x18, 0x00, 0x1b, 0x70, 0xbf, 0xe7, 0xe8, 0x78, 0x8e, 0x56,
+ 0x9a, 0x5d, 0xb2, 0x9b, 0x23, 0x92, 0x53, 0x33, 0x78, 0xf1, 0xda, 0x25,
+ 0x72, 0xef, 0x69, 0x97, 0x37, 0x26, 0x68, 0xe9, 0x82, 0x9a, 0xe0, 0xe9,
+ 0x4d, 0x57, 0x81, 0xc3, 0x3b, 0x40, 0x3a, 0x69, 0x39, 0xe9, 0xbe, 0xc1,
+ 0x64, 0xad, 0x68, 0xc6, 0x0c, 0x8c, 0xfc, 0x46, 0x35, 0x94, 0x55, 0x8b,
+ 0x8e, 0x89, 0x65, 0x70, 0x02, 0x59, 0x62, 0xeb, 0x1b, 0xe6, 0xa0, 0xfe,
+ 0x05, 0x8e, 0x2a, 0xa8, 0x5a, 0xba, 0x33, 0x43, 0x20, 0x15, 0xcd, 0x36,
+ 0x01, 0xf3, 0xf7, 0x8d, 0x19, 0x43, 0xa0, 0x33, 0xed, 0xb5, 0xb6, 0xee,
+ 0xe8, 0x9a, 0x42, 0x8a, 0x6f, 0x16, 0x40, 0x89, 0xe0, 0x7c, 0x1b, 0x39,
+ 0xfc, 0x11, 0xd5, 0x0b, 0x93, 0x4b, 0x5c, 0x96, 0xa5, 0xe3, 0x9c, 0xd1,
+ 0x65, 0xdd, 0x76, 0x47, 0x8c, 0xa1, 0xd6, 0x63, 0xcd, 0x93, 0xa9, 0x5f,
+ 0xbc, 0x7c, 0xa1, 0x4b, 0x5c, 0x84, 0x92, 0x34, 0x60, 0x85, 0x4d, 0x5e,
+ 0xdf, 0x66, 0x93, 0xa6, 0xa5, 0xd0, 0xf3, 0x84, 0x94, 0x6b, 0x1a, 0xba,
+ 0x01, 0xdb, 0xf2, 0x0f, 0x8b, 0xf4, 0x2c, 0x58, 0x21, 0xe6, 0xf1, 0x29,
+ 0xd0, 0x8b, 0x18, 0xff, 0x4f, 0x46, 0x59, 0x8d, 0x1c, 0xa1, 0xa9, 0x4a,
+ 0x2f, 0x74, 0x77, 0x7c, 0x9c, 0x4c, 0xf2, 0x3f, 0xbc, 0x73, 0x61, 0xae,
+ 0x1a, 0xca, 0x01, 0x6f, 0xe4, 0x88, 0x9e, 0xb8, 0xe4, 0x2c, 0x13, 0xc3,
+ 0x79, 0xfc, 0x86, 0xb0, 0x64, 0x2b, 0x5b, 0x41, 0xcd, 0x06, 0x82, 0xff,
+ 0xb9, 0x7b, 0xbc, 0x1a, 0x39, 0xf0, 0xec, 0xb9, 0xac, 0x88, 0xd5, 0xc2,
+ 0xfc, 0x86, 0xc4, 0xe3, 0xa3, 0xe7, 0x1f, 0xe7, 0x0b, 0xbc, 0xfe, 0xcc,
+ 0x30, 0x87, 0x4f, 0xf9, 0xf5, 0xed, 0xa7, 0x6d, 0x5e, 0x91, 0x63, 0x2e,
+ 0xdf, 0x72, 0xe7, 0xa3, 0x51, 0xa5, 0x6c, 0xe1, 0xbe, 0x06, 0xf4, 0x34,
+ 0x1e, 0xfc, 0xed, 0xea, 0x40, 0x34, 0x61, 0x09, 0x8e, 0x2f, 0x4c, 0x99,
+ 0xea, 0x04, 0x3a, 0x22, 0xd6, 0xf3, 0xc2, 0xa6, 0x93, 0xaa, 0xf9, 0x59,
+ 0xbd, 0x82, 0x89, 0x47, 0x5e, 0xd5, 0x09, 0xf5, 0xc1, 0xf4, 0x50, 0x50,
+ 0xce, 0x56, 0x02, 0xe7, 0x7c, 0x53, 0xba, 0x3d, 0x99, 0xf0, 0x21, 0x86,
+ 0x3f, 0x01, 0xf9, 0xcd, 0xcf, 0x7f, 0x21, 0xb9, 0xf0, 0x0a, 0x43, 0xe8,
+ 0x44, 0x79, 0x3f, 0x31, 0x05, 0x5a, 0x75, 0x2c, 0xcb, 0xdf, 0xdf, 0x41,
+ 0x9a, 0x43, 0x9d, 0xc7, 0x23, 0xe0, 0x14, 0x40, 0x90, 0x5f, 0xe1, 0xfd,
+ 0x83, 0x9e, 0x0c, 0xa7, 0x18, 0x51, 0x9e, 0x6f, 0xa3, 0x29, 0xb1, 0xaf,
+ 0x52, 0x45, 0x45, 0xdd, 0x7e, 0xa0, 0x32, 0xbe, 0x11, 0x67, 0xb4, 0x0d,
+ 0xff, 0x71, 0xb9, 0xc0, 0x04, 0xbd, 0x80, 0x27, 0x8f, 0x05, 0x62, 0x97,
+ 0x73, 0x1c, 0xe9, 0xca, 0xf2, 0x4d, 0x59, 0x92, 0xd3, 0x6d, 0xc8, 0x1b,
+ 0xc2, 0xc4, 0xdb, 0x9e, 0xaa, 0x30, 0x37, 0xc8, 0x92, 0x88, 0x05, 0xdd,
+ 0xd5, 0x8a, 0xfd, 0x2b, 0xe7, 0x79, 0xe3, 0x39, 0x43, 0xe6, 0x82, 0x73,
+ 0x6f, 0x65, 0xd0, 0x2a, 0x03, 0x3a, 0xeb, 0x05, 0x43, 0x55, 0x99, 0x6b,
+ 0x73, 0x21, 0x2a, 0x73, 0x47, 0xa8, 0xdb, 0x31, 0x4d, 0xd9, 0xc5, 0x4e,
+ 0x1c, 0xb0, 0x4f, 0xe9, 0x4c, 0x4b, 0x61, 0x72, 0xbd, 0xfc, 0xee, 0x82,
+ 0xa6, 0x56, 0x95, 0x65, 0x1f, 0x9f, 0x8a, 0xe3, 0x7c, 0xf5, 0x6e, 0x5e,
+ 0x3e, 0x87, 0x51, 0xfd, 0xf6, 0xd1, 0x0b, 0xad, 0x56, 0xb4, 0x14, 0x52,
+ 0x0e, 0xa5, 0x4c, 0x11, 0xa4, 0x5d, 0xe7, 0x2b, 0xdc, 0x01, 0xd5, 0x25,
+ 0xab, 0x35, 0xa3, 0xb9, 0x46, 0xd2, 0x9f, 0xb1, 0x26, 0x85, 0xbc, 0x5d,
+ 0xe0, 0xb1, 0x3a, 0x30, 0x8b, 0xae, 0xee, 0xc1, 0x1b, 0x61, 0x40, 0x4e,
+ 0x02, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1,
+ 0x0d, 0x00, 0x01, 0x10, 0x24, 0x00, 0x18, 0x00, 0x42, 0x2d, 0xb5, 0x90,
+ 0x77, 0xe8, 0x80, 0xe1, 0x1f, 0x60, 0x1a, 0x6a, 0x93, 0x0b, 0xff, 0x93,
+ 0x92, 0x5c, 0x61, 0x4c, 0x82, 0x55, 0x74, 0x03, 0x0a, 0x45, 0xa9, 0xa5,
+ 0x16, 0xf7, 0x92, 0x8a, 0x18, 0xed, 0xf9, 0x18, 0xdb, 0xaa, 0xcd, 0xfb,
+ 0xdf, 0x70, 0xa2, 0xff, 0xb8, 0x36, 0xee, 0x46, 0x25, 0x10, 0x03, 0x47,
+ 0x65, 0x0c, 0x80, 0x09, 0xc9, 0x89, 0x99, 0x90, 0x61, 0x11, 0xe3, 0xa5,
+ 0x3b, 0x00, 0x03, 0x3a, 0x24, 0xc4, 0x85, 0x07, 0x00, 0x70, 0x56, 0x9f,
+ 0x71, 0x4f, 0x8e, 0x98, 0xad, 0x88, 0x33, 0x50, 0x9a, 0xdc, 0x04, 0x21,
+ 0xdf, 0xa2, 0x5b, 0xef, 0x3e, 0xda, 0xd9, 0x21, 0xb9, 0xb5, 0x36, 0xca,
+ 0xd7, 0x91, 0x16, 0x89, 0xe1, 0x05, 0x4c, 0xf7, 0x46, 0x3d, 0xd6, 0x4e,
+ 0x7b, 0x85, 0x74, 0x7f, 0x92, 0x46, 0x8e, 0x86, 0x83, 0xfb, 0xc9, 0xb7,
+ 0x0e, 0x35, 0x64, 0xd1, 0x54, 0x1b, 0xf2, 0xb9, 0x3d, 0x0b, 0x03, 0x18,
+ 0xad, 0x89, 0x8c, 0xd4, 0xfe, 0x5b, 0xa9, 0x30, 0xdc, 0x1f, 0x50, 0x92,
+ 0xe9, 0xfc, 0xb3, 0x8b, 0x99, 0x61, 0xb3, 0xdf, 0xdf, 0x34, 0x90, 0x5d,
+ 0x38, 0xef, 0xbe, 0x3d, 0xa6, 0x24, 0x6a, 0x9d, 0x51, 0xb8, 0xc7, 0xc7,
+ 0xc6, 0x09, 0x7a, 0x5d, 0x48, 0x59, 0xe5, 0x00, 0xfd, 0x5e, 0x99, 0x19,
+ 0xc8, 0x52, 0xca, 0x24, 0xe7, 0xf0, 0xa8, 0x4f, 0xe4, 0xc9, 0xf2, 0xe5,
+ 0x67, 0x7c, 0xd8, 0xce, 0x40, 0x06, 0x5b, 0xce, 0x3b, 0x23, 0x0f, 0x50,
+ 0x67, 0x28, 0xfb, 0xfe, 0xac, 0x19, 0x11, 0x56, 0x28, 0xf1, 0x7d, 0xe0,
+ 0x75, 0x91, 0x2b, 0x74, 0x09, 0x2f, 0x07, 0xeb, 0xc1, 0xc8, 0xec, 0x90,
+ 0x39, 0x13, 0xaa, 0x2d, 0x86, 0x1d, 0xac, 0x31, 0xff, 0x71, 0xa6, 0x86,
+ 0x6e, 0x3b, 0x8a, 0x61, 0xb1, 0x5d, 0xbe, 0x37, 0xaf, 0x9a, 0x28, 0x3e,
+ 0x3a, 0xa0, 0x9b, 0x15, 0x91, 0x8f, 0xd2, 0x2d, 0x28, 0x94, 0x32, 0xd5,
+ 0xef, 0x3b, 0x48, 0x39, 0xff, 0x68, 0xae, 0x56, 0x35, 0x8d, 0xc8, 0x6b,
+ 0x6b, 0x7b, 0x82, 0x66, 0xb2, 0xad, 0x3b, 0xa7, 0xbd, 0x2a, 0xab, 0x29,
+ 0xee, 0xd3, 0x7a, 0xa2, 0x11, 0xb3, 0x44, 0xc6, 0x20, 0x14, 0x3b, 0x2d,
+ 0x73, 0x54, 0x5c, 0xcf, 0x3c, 0xbc, 0x93, 0x8f, 0x04, 0xe1, 0xdd, 0x47,
+ 0x2c, 0xc0, 0xaf, 0xf0, 0xeb, 0x80, 0xaf, 0xa5, 0x9f, 0x42, 0x5d, 0x62,
+ 0xa3, 0x66, 0x81, 0xae, 0x77, 0xf6, 0x3e, 0x2d, 0xdf, 0xb0, 0xc2, 0x27,
+ 0x5c, 0x78, 0x63, 0xf3, 0x29, 0x34, 0x3d, 0x7e, 0x97, 0x35, 0xc4, 0xa8,
+ 0xd0, 0x0e, 0x08, 0xe2, 0x01, 0xeb, 0x55, 0x36, 0x06, 0xc8, 0x66, 0x93,
+ 0x57, 0x54, 0xbf, 0xcd, 0x36, 0x11, 0x0b, 0x8b, 0x52, 0x0b, 0xcb, 0x2e,
+ 0x52, 0xc2, 0x0e, 0x71, 0x19, 0x72, 0xc7, 0x7d, 0x42, 0x2c, 0xeb, 0x55,
+ 0xdd, 0xfc, 0x5d, 0x5b, 0xa7, 0x0b, 0x10, 0xe8, 0xaa, 0xb5, 0xa7, 0xf9,
+ 0x15, 0x95, 0xa5, 0xc7, 0x56, 0xa1, 0x4e, 0x1d, 0x68, 0x28, 0x0a, 0xdb,
+ 0x86, 0xd3, 0xe5, 0x7a, 0x7f, 0x1f, 0x79, 0xea, 0xce, 0x38, 0x0d, 0xf6,
+ 0xb6, 0x69, 0x7e, 0xb6, 0xad, 0x84, 0x1c, 0x9f, 0xd4, 0xd2, 0x85, 0x37,
+ 0x04, 0x06, 0x4a, 0x24, 0x65, 0x7c, 0x17, 0xf6, 0x97, 0x2c, 0x5a, 0xcf,
+ 0xa6, 0xbb, 0xe9, 0x74, 0x18, 0xec, 0xc4, 0x2f, 0xd0, 0x58, 0x85, 0x18,
+ 0xb2, 0xff, 0xee, 0x96, 0x17, 0x83, 0xe9, 0xa4, 0x56, 0x18, 0x66, 0xd5,
+ 0x6e, 0x48, 0xb8, 0x26, 0x89, 0x02, 0x1f, 0x06, 0x3c, 0x0f, 0x7b, 0x7b,
+ 0x55, 0xff, 0x61, 0xaa, 0x38, 0x4e, 0xfc, 0x8f, 0x45, 0x11, 0xda, 0x2a,
+ 0x63, 0x12, 0xce, 0x68, 0xc6, 0xf8, 0x61, 0x84, 0x25, 0x9b, 0xb2, 0xc4,
+ 0x4b, 0xfe, 0x3c, 0x5e, 0x3b, 0xf2, 0x99, 0x6b, 0x0e, 0xc5, 0xb5, 0xdf,
+ 0x62, 0x1e, 0xae, 0xf2, 0xb1, 0xa8, 0x87, 0x05, 0x66, 0xc8, 0xa8, 0xe6,
+ 0x2a, 0x0f, 0x29, 0x8c, 0xd0, 0xaf, 0x9d, 0x57, 0x8e, 0xc2, 0x9b, 0xa5,
+ 0x86, 0x8d, 0x0a, 0xc4, 0x9d, 0x69, 0x5d, 0x1c, 0xce, 0x7c, 0x64, 0xa1,
+ 0xfa, 0x93, 0x8f, 0xd0, 0xfa, 0xb8, 0x44, 0x69, 0x90, 0xdd, 0x5f, 0x22,
+ 0xa7, 0x20, 0xcb, 0xee, 0x64, 0xc1, 0x4b, 0x13, 0x1d, 0x45, 0x8a, 0x20,
+ 0xc0, 0xf9, 0x02, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xf1, 0x0d, 0x00, 0x01, 0x10, 0x24, 0x00, 0x1b, 0x70, 0x10, 0x05,
+ 0x84, 0xa3, 0xd6, 0x57, 0x7c, 0xf1, 0xf4, 0x99, 0x5f, 0x2a, 0x09, 0xe8,
+ 0x39, 0x38, 0x1e, 0x79, 0xe0, 0x52, 0x44, 0x7d, 0x66, 0x60, 0x24, 0x37,
+ 0x77, 0xdc, 0x0e, 0xde, 0x24, 0x25, 0x99, 0xad, 0x54, 0x28, 0x30, 0x05,
+ 0xb3, 0x14, 0xb2, 0xc4, 0x84, 0x9f, 0x08, 0x01, 0x08, 0x5a, 0xb0, 0x20,
+ 0xd0, 0x61, 0x8c, 0xd7, 0xda, 0xa5, 0xd8, 0x77, 0xd9, 0x04, 0x3b, 0xc4,
+ 0x22, 0x62, 0x5d, 0xba, 0x00, 0x16, 0xdb, 0x28, 0x6e, 0x4c, 0x94, 0x90,
+ 0xc0, 0x50, 0x55, 0x08, 0x1e, 0x08, 0xa5, 0x90, 0x20, 0xfe, 0xd7, 0xaf,
+ 0xc9, 0x44, 0x61, 0xc8, 0xab, 0xf2, 0x1e, 0xcf, 0xdb, 0xb8, 0x2e, 0xf6,
+ 0x90, 0x5f, 0xcd, 0x91, 0x97, 0xe9, 0x70, 0x89, 0xcf, 0xb6, 0x6e, 0xf5,
+ 0x1c, 0x71, 0x5b, 0x8a, 0x34, 0x27, 0x81, 0xb5, 0xa9, 0x13, 0xe4, 0xde,
+ 0x38, 0x96, 0x8d, 0x79, 0xbf, 0xe8, 0x3a, 0x7a, 0x5e, 0x90, 0x27, 0x09,
+ 0xb1, 0xec, 0x86, 0x36, 0xd0, 0x33, 0x7a, 0x38, 0x72, 0x76, 0x20, 0x1f,
+ 0xff, 0xc7, 0x8d, 0x30, 0x88, 0x1a, 0x18, 0x25, 0xe3, 0x58, 0x54, 0xe1,
+ 0x60, 0x2a, 0x86, 0xd8, 0xae, 0xd9, 0xdc, 0x8b, 0xfe, 0x77, 0x2f, 0xec,
+ 0xb7, 0x6a, 0x5c, 0x3a, 0xe2, 0x6f, 0xbe, 0xc6, 0xdf, 0xfa, 0xea, 0x05,
+ 0xcf, 0x57, 0x98, 0x23, 0x6e, 0x2d, 0x66, 0xf7, 0x8b, 0x95, 0xd9, 0x48,
+ 0x7e, 0x5f, 0xff, 0x6b, 0x8c, 0xbf, 0xda, 0x70, 0x28, 0x31, 0xfd, 0xf0,
+ 0xe1, 0x80, 0xfa, 0x4d, 0x62, 0xd6, 0x47, 0x8d, 0x8d, 0xa0, 0xe7, 0xfb,
+ 0x69, 0xf9, 0x7a, 0x94, 0x76, 0x72, 0x5c, 0x45, 0xa8, 0xeb, 0xbb, 0x89,
+ 0xbf, 0x6e, 0x93, 0x28, 0xf6, 0x80, 0x15, 0x5f, 0x6f, 0xcb, 0x9a, 0xcd,
+ 0xd0, 0x49, 0x2e, 0xe1, 0x09, 0xcd, 0xe1, 0xcd, 0xfb, 0x07, 0xcc, 0x73,
+ 0xa6, 0xd5, 0xd7, 0xb8, 0xba, 0x91, 0x03, 0xad, 0xea, 0x5c, 0xd1, 0x1a,
+ 0xb2, 0x77, 0xed, 0x5d, 0xdb, 0xef, 0xb2, 0x64, 0x29, 0xf1, 0xf0, 0xa7,
+ 0x9f, 0x2c, 0xc6, 0x18, 0x8b, 0xec, 0xe2, 0xa4, 0x2e, 0x56, 0x43, 0xa8,
+ 0x4b, 0x25, 0x65, 0xbf, 0xbd, 0xf3, 0x59, 0x18, 0x82, 0xe3, 0x3d, 0x1b,
+ 0xe1, 0x12, 0x4d, 0xd0, 0xa4, 0xde, 0x2c, 0x2d, 0x08, 0x84, 0xf0, 0xc5,
+ 0xa8, 0xa8, 0x31, 0x9f, 0xb2, 0x2c, 0x0d, 0xfe, 0x37, 0xe1, 0x20, 0x2a,
+ 0xef, 0x08, 0xcc, 0x43, 0x3f, 0x6d, 0xcc, 0x58, 0x18, 0x61, 0x63, 0xee,
+ 0x2e, 0x11, 0x60, 0x8f, 0x2b, 0x01, 0xf9, 0xfb, 0x65, 0x50, 0xa2, 0x9b,
+ 0x55, 0xb3, 0x08, 0x2d, 0xf3, 0xef, 0x6a, 0x5d, 0x5a, 0x43, 0x7c, 0x8b,
+ 0xbf, 0x32, 0xac, 0x44, 0xe4, 0x37, 0xf5, 0x70, 0x0a, 0x86, 0x10, 0x10,
+ 0x06, 0x2d, 0xeb, 0x6a, 0x86, 0xb8, 0xeb, 0xb8, 0x5d, 0x1a, 0x08, 0x19,
+ 0x84, 0xa3, 0x2c, 0x12, 0x7d, 0xac, 0x26, 0x16, 0xad, 0xa5, 0x3b, 0xdb,
+ 0xf0, 0x59, 0x68, 0xd8, 0x4b, 0x47, 0x4f, 0xad, 0x36, 0x43, 0x3b, 0x66,
+ 0x18, 0x62, 0xa1, 0x0e, 0x4f, 0xe3, 0x01, 0x75, 0x29, 0x8c, 0x18, 0xaf,
+ 0x40, 0xb7, 0xb9, 0x52, 0x92, 0xb0, 0xb4, 0x84, 0x49, 0xe7, 0xd7, 0xfe,
+ 0x11, 0xdd, 0x2f, 0x0a, 0xaf, 0x6d, 0x3a, 0x0c, 0xd6, 0x5b, 0xec, 0x66,
+ 0x29, 0x22, 0x4f, 0xea, 0xc1, 0xbf, 0xa6, 0x0a, 0x1e, 0x66, 0x8a, 0x44,
+ 0xc4, 0x54, 0xd1, 0x7f, 0xd7, 0xc1, 0xe8, 0x2d, 0xbb, 0x17, 0x26, 0x6c,
+ 0x35, 0xc0, 0xc3, 0x19, 0x31, 0x7d, 0x7b, 0x66, 0x17, 0x6c, 0x92, 0x30,
+ 0x31, 0xb6, 0x21, 0xff, 0x6b, 0x51, 0xd6, 0x8f, 0xe8, 0x1d, 0x45, 0x47,
+ 0x21, 0xc9, 0xe4, 0x1d, 0xbe, 0xea, 0xda, 0xb1, 0xa5, 0x2b, 0xd7, 0x8f,
+ 0xea, 0x17, 0x7d, 0x85, 0x0f, 0x81, 0xde, 0x75, 0x60, 0x36, 0x1e, 0xe3,
+ 0x52, 0x6d, 0x7c, 0xad, 0x09, 0x80, 0x5d, 0xb2, 0x7e, 0x18, 0x9a, 0xa5,
+ 0x72, 0x54, 0xc6, 0x28, 0xec, 0xaf, 0xcf, 0x49, 0xe4, 0x14, 0x47, 0x58,
+ 0x4c, 0x04, 0xb8, 0xc7, 0x16, 0x0b, 0x67, 0x48, 0xfd, 0x44, 0x27, 0x89,
+ 0xcd, 0x3c, 0xe8, 0x64, 0xd1, 0x65, 0xdf, 0xc0, 0xc9, 0xda, 0xba, 0xb4,
+ 0xff, 0x1f, 0x14, 0xca, 0x2d, 0xc2, 0x06, 0xf3, 0x1b, 0xa7, 0x6c, 0x25,
+ 0xce, 0xd4, 0x5f, 0x6d, 0x2b, 0xb8, 0x75, 0xd2, 0x2e, 0xc6, 0xbe, 0x1e,
+ 0xe7, 0xed, 0x3c, 0xd4, 0x87, 0x86, 0x9e, 0xde, 0x5b, 0x58, 0x61, 0x54,
+ 0x10, 0xdc, 0xf8, 0xac, 0x1f, 0x7d, 0xec, 0x73, 0xc5, 0xb2, 0x4f, 0x0d,
+ 0xec, 0xd5, 0x1d, 0x14, 0x98, 0x54, 0x47, 0xd3, 0xfe, 0x45, 0x76, 0x67,
+ 0x31, 0x10, 0x14, 0xa9, 0xdb, 0x7a, 0x0f, 0xfb, 0x40, 0x06, 0x38, 0x23,
+ 0xac, 0x6f, 0x69, 0xdc, 0xdd, 0x64, 0x8b, 0x2f, 0x8e, 0xc1, 0x17, 0x6f,
+ 0x26, 0xb1, 0x7a, 0x39, 0x50, 0x97, 0xca, 0xa6, 0x26, 0x55, 0x5b, 0xf2,
+ 0xca, 0xdd, 0x65, 0x76, 0x28, 0xea, 0x7f, 0x10, 0xab, 0x8f, 0xa7, 0x4d,
+ 0x23, 0x05, 0x02, 0x2b, 0xd6, 0x1f, 0x6b, 0xdc, 0x48, 0x19, 0x82, 0xe2,
+ 0x6f, 0xe2, 0x53, 0x1e, 0xf2, 0x09, 0xa3, 0x26, 0x85, 0x58, 0x17, 0x8c,
+ 0xf1, 0x79, 0xff, 0xc6, 0xd9, 0x7d, 0x5a, 0xd3, 0xa0, 0xbc, 0x7d, 0xf8,
+ 0xf7, 0xe4, 0x35, 0x55, 0xc8, 0xf0, 0xa7, 0xd1, 0xac, 0x58, 0x63, 0x19,
+ 0x45, 0xf9, 0x11, 0x22, 0x0c, 0xfa, 0xc1, 0x14, 0x2d, 0x86, 0xde, 0x93,
+ 0x0d, 0x11, 0xdb, 0x03, 0x1d, 0x60, 0x04, 0xf5, 0xe2, 0x60, 0xa5, 0x50,
+ 0x11, 0x82, 0x8b, 0x8e, 0xc5, 0x90, 0xb5, 0x04, 0x00, 0x00, 0xe0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x14, 0x00, 0x05, 0x10, 0x10,
+ 0x14, 0x7b, 0x32, 0xe4, 0x1f, 0xfd, 0x1b, 0xfc, 0x54, 0xc4, 0x20, 0x03,
+ 0xbd, 0xe4, 0xd4, 0x95, 0xe4, 0x69, 0x61, 0xad, 0xa2, 0x8b, 0x0e, 0x51,
+ 0x40, 0xb0, 0xf2, 0x09, 0x4a, 0x79, 0x73, 0x03, 0x3f, 0xf3, 0x8a, 0x20,
+ 0x31, 0x50, 0xce, 0x5a, 0x62, 0x4b, 0x93, 0x22, 0xcb, 0x22, 0xbf, 0xb3,
+ 0x36, 0xdf, 0xe3, 0x13, 0xb9, 0xda, 0xf1, 0xfe, 0x26, 0xa5, 0xff, 0xe8,
+ 0x54, 0x97, 0xcd, 0xbb, 0x0c, 0x5b, 0xd0, 0xfb, 0xf1, 0x82, 0x0d, 0xef,
+ 0xc3, 0x07, 0x3e, 0xa7, 0x92, 0xa6, 0x42, 0x40, 0xd8, 0xf3, 0x9b, 0x6e,
+ 0x94, 0x1a, 0x29, 0x45, 0xa5, 0xf9, 0x6c, 0xec, 0x41, 0xea, 0xce, 0x82,
+ 0xa4, 0x1b, 0xa2, 0x6c, 0x0a, 0xaf, 0x1f, 0x42, 0xd1, 0xe6, 0x21, 0x64,
+ 0x8f, 0xdc, 0x9c, 0xbe, 0x2a, 0xcd, 0xf6, 0xe2, 0x46, 0x5f, 0xea, 0x88,
+ 0x06, 0x3c, 0x39, 0x47, 0x9e, 0x6e, 0xaf, 0x01, 0xff, 0x6f, 0x86, 0x24,
+ 0x65, 0x1c, 0x96, 0xc7, 0x2b, 0x20, 0x23, 0x44, 0x31, 0xfb, 0x4a, 0x36,
+ 0x9a, 0x7b, 0xd5, 0xaa, 0x12, 0x8f, 0x47, 0x7b, 0x1c, 0xa0, 0x1f, 0x31,
+ 0x29, 0x80, 0xec, 0x18, 0x99, 0xe8, 0x0d, 0xdb, 0x86, 0x8b, 0xbe, 0xfa,
+ 0x26, 0xfb, 0xef, 0x26, 0xc1, 0xa7, 0x18, 0xd5, 0x01, 0xa1, 0x52, 0xfc,
+ 0x0a, 0x92, 0xb4, 0x9a, 0x06, 0xa7, 0x89, 0xdc, 0x6d, 0xb5, 0x19, 0x03,
+ 0xc4, 0xf3, 0xcb, 0x1c, 0x01, 0xcc, 0xb9, 0xee, 0x8d, 0xb5, 0x00, 0x3b,
+ 0x06, 0x3a, 0x18, 0x29, 0x29, 0x4b, 0x5a, 0x66, 0x40, 0x3b, 0x5a, 0xf1,
+ 0xe5, 0x3a, 0x74, 0x05, 0x0d, 0x8f, 0xb4, 0xde, 0x8f, 0x5d, 0x6d, 0x5a,
+ 0x27, 0x55, 0x79, 0x0f, 0x57, 0xa2, 0x1a, 0x31, 0x3f, 0xce, 0xad, 0x94,
+ 0x86, 0xf5, 0x64, 0x7c, 0xa4, 0xa0, 0x5b, 0x38, 0x88, 0x15, 0x93, 0x2b,
+ 0xdc, 0x2f, 0x00, 0x41, 0x0c, 0xa6, 0x78, 0xd1, 0x2b, 0x7f, 0xad, 0x7e,
+ 0xc5, 0x1d, 0x3a, 0xb1, 0x44, 0xfb, 0x26, 0xf2, 0xaa, 0x11, 0x73, 0x1d,
+ 0x27, 0x79, 0x93, 0x2c, 0x27, 0x20, 0xa3, 0x06, 0x16, 0x21, 0xc4, 0xc8,
+ 0x07, 0xed, 0x28, 0xbd, 0xee, 0xaa, 0x3e, 0xca, 0x7f, 0xee, 0x99, 0x3d,
+ 0x47, 0x0f, 0xdd, 0x51, 0xd7, 0xbf, 0xac, 0x6a, 0xc4, 0x88, 0x97, 0x3d,
+ 0xe3, 0x1d, 0x65, 0x44, 0xf2, 0xb4, 0x50, 0x06, 0xd1, 0xf3, 0x83, 0xdf,
+ 0x9b, 0x38, 0xd5, 0x37, 0x12, 0xf4, 0x15, 0x27, 0xc6, 0x51, 0xd0, 0xe0,
+ 0x16, 0x21, 0x8c, 0xb4, 0xf9, 0x97, 0xb2, 0x0c, 0x52, 0x20, 0x0b, 0xf2,
+ 0xf6, 0x67, 0x19, 0xb3, 0x53, 0x78, 0x53, 0xf8, 0x7a, 0xee, 0xfa, 0x47,
+ 0x44, 0x7e, 0x5f, 0xbf, 0x04, 0x3e, 0x05, 0x6b, 0xce, 0xb8, 0x7b, 0xf4,
+ 0xd2, 0xab, 0x26, 0x5b, 0xae, 0x1d, 0xcb, 0xcf, 0xd6, 0x71, 0x6f, 0xe8,
+ 0x4d, 0xf6, 0x11, 0x9a, 0xa6, 0x6d, 0x1c, 0xff, 0x9e, 0xf7, 0xae, 0x5f,
+ 0xef, 0x48, 0x5e, 0x56, 0x7f, 0x9e, 0x0f, 0x51, 0x9e, 0x2f, 0x0c, 0x4b,
+ 0x9e, 0xe8, 0x6f, 0xeb, 0x72, 0x4e, 0x6c, 0x5c, 0xf4, 0xf5, 0xb5, 0x68,
+ 0x13, 0x14, 0xd5, 0xc1, 0x87, 0xe9, 0x9d, 0x94, 0x39, 0x43, 0xb9, 0xe1,
+ 0x89, 0x1e, 0x93, 0xd1, 0xe1, 0x4e, 0x70, 0x64, 0x2c, 0xa9, 0xd4, 0x0b,
+ 0x90, 0xd4, 0xb0, 0xeb, 0x59, 0xd1, 0xee, 0x03, 0x23, 0x9c, 0x0f, 0x50,
+ 0x85, 0xe2, 0xa3, 0xdb, 0x82, 0x98, 0x94, 0xc6, 0xb6, 0x40, 0xa3, 0x38,
+ 0x92, 0xb4, 0x18, 0xcc, 0xad, 0x12, 0x41, 0x1e, 0x8c, 0x17, 0x7d, 0xe3,
+ 0x70, 0x30, 0x51, 0xd6, 0x8e, 0x1d, 0x51, 0xd9, 0xfb, 0x48, 0x8e, 0xcb,
+ 0x84, 0xeb, 0xad, 0xe8, 0x0f, 0x9f, 0x4b, 0x63, 0x31, 0x4d, 0x78, 0x56,
+ 0xa9, 0x60, 0x68, 0x19, 0x6d, 0xf3, 0x6d, 0xb3, 0x9e, 0xe2, 0x1f, 0xb9,
+ 0x1f, 0x34, 0x32, 0x2b, 0x24, 0x8f, 0xae, 0xfc, 0x87, 0x6e, 0x65, 0xc3,
+ 0xe5, 0xda, 0x62, 0xe3, 0x4d, 0x32, 0x7f, 0xac, 0xbb, 0xc2, 0xfd, 0xe8,
+ 0x08, 0x89, 0x35, 0xbf, 0x1d, 0x19, 0x6f, 0xc3, 0xc0, 0xb9, 0xb5, 0x1e,
+ 0x88, 0x4f, 0x29, 0x56, 0xb6, 0x28, 0xd2, 0x38, 0x31, 0x9f, 0xb3, 0xcc,
+ 0x94, 0x78, 0xd3, 0xf8, 0x14, 0x9b, 0x3c, 0xb1, 0xc4, 0xc3, 0x3d, 0xdd,
+ 0x53, 0x5d, 0xec, 0x5d, 0x52, 0xb0, 0xa1, 0x3e, 0x2e, 0xc0, 0x48, 0xc8,
+ 0x6f, 0x74, 0x1c, 0x7a, 0x59, 0x7e, 0x8a, 0x95, 0x4a, 0x7e, 0xaf, 0xc2,
+ 0x20, 0xb4, 0xc3, 0x7a, 0xfd, 0x5f, 0x3a, 0xb7, 0x1b, 0x99, 0x4c, 0x81,
+ 0x97, 0xc3, 0x55, 0x73, 0x6b, 0xfa, 0xd5, 0xa1, 0xf7, 0x05, 0x08, 0x12,
+ 0x61, 0x52, 0xbb, 0x5d, 0x86, 0x8f, 0x90, 0x05, 0x48, 0xdc, 0x7b, 0xc1,
+ 0x3f, 0xf8, 0x27, 0xf6, 0xe8, 0x45, 0xdd, 0x42, 0x60, 0xbc, 0x7f, 0x6d,
+ 0xe7, 0x52, 0x5c, 0x3d, 0x0b, 0x60, 0xff, 0x59, 0x1e, 0xcc, 0x37, 0x59,
+ 0xb5, 0xe9, 0xf6, 0xb2, 0x79, 0x8a, 0x01, 0xe6, 0xe7, 0x4e, 0xec, 0x0e,
+ 0xb7, 0x0f, 0xce, 0xc2, 0xf7, 0x43, 0x55, 0xb2, 0x88, 0x5c, 0x4c, 0xdf,
+ 0x8e, 0x5c, 0x3f, 0x42, 0x3b, 0x38, 0xfc, 0xd5, 0xed, 0x94, 0xf8, 0x14,
+ 0x3e, 0x2c, 0x85, 0xa9, 0xd5, 0xbd, 0x4a, 0x27, 0x7a, 0x82, 0x23, 0x7b,
+ 0x1b, 0x90, 0xef, 0x47, 0x99, 0x20, 0xcd, 0xd6, 0xdb, 0x89, 0xd5, 0xc0,
+ 0x08, 0x6c, 0xcb, 0x9b, 0x6e, 0xab, 0x2b, 0xa7, 0x0b, 0xe1, 0x2c, 0x3d,
+ 0x5d, 0xbf, 0x11, 0xca, 0x7c, 0x18, 0xba, 0x5d, 0x7d, 0x25, 0xad, 0xca,
+ 0xb5, 0x87, 0x29, 0x9a, 0x06, 0x07, 0xc7, 0xe9, 0xc5, 0xc6, 0x24, 0xed,
+ 0xbb, 0xea, 0x5e, 0xb5, 0xab, 0xc9, 0x3c, 0xf2, 0xff, 0x0b, 0xc4, 0x27,
+ 0xeb, 0x1b, 0x58, 0x8e, 0xb6, 0x50, 0xaa, 0x67, 0x3a, 0x9d, 0x15, 0x22,
+ 0xed, 0x22, 0xe0, 0xb7, 0x85, 0xd5, 0xf5, 0x59, 0x53, 0x7b, 0xa7, 0x9c,
+ 0x4d, 0x27, 0xf6, 0x0a, 0xfd, 0xa4, 0xcc, 0xad, 0xca, 0xd6, 0xc6, 0xe2,
+ 0x68, 0x7f, 0xa8, 0x96, 0x7a, 0x4f, 0xa6, 0x06, 0xa5, 0x15, 0x64, 0x81,
+ 0x4c, 0x32, 0x2b, 0x96, 0xda, 0x5a, 0x45, 0x5f, 0x52, 0x5b, 0x85, 0x56,
+ 0xfc, 0x22, 0x51, 0x03, 0x2c, 0xa2, 0x82, 0x05, 0x6d, 0xec, 0x97, 0x44,
+ 0xa3, 0xbd, 0x4b, 0x3c, 0xd4, 0xb7, 0x04, 0xdd, 0x1b, 0x87, 0x9c, 0xfe,
+ 0x19, 0x26, 0x7c, 0x37, 0xba, 0x02, 0x16, 0x1a, 0x7a, 0x66, 0xc4, 0x90,
+ 0x59, 0x6a, 0xdd, 0x9d, 0x6f, 0x4d, 0xab, 0xa5, 0xa0, 0x15, 0xfa, 0xc7,
+ 0x63, 0xdc, 0x6c, 0xfc, 0xfa, 0xdf, 0x57, 0x5f, 0xaa, 0x31, 0x3d, 0x79,
+ 0x53, 0xed, 0xff, 0xbe, 0x98, 0x32, 0x29, 0x1f, 0x06, 0xb3, 0x1f, 0xc5,
+ 0xcf, 0xb9, 0x16, 0x4c, 0x62, 0x36, 0x39, 0xb8, 0x9f, 0x37, 0xf8, 0xd8,
+ 0xb4, 0x22, 0x78, 0xd0, 0x22, 0xae, 0xb4, 0xdf, 0x73, 0x87, 0x8b, 0x66,
+ 0xff, 0xf2, 0x3a, 0x85, 0xc5, 0xa8, 0x7f, 0x3e, 0x08, 0x94, 0x54, 0x7d,
+ 0x91, 0x6a, 0x8d, 0xa5, 0x62, 0x51, 0xb8, 0xbe, 0xd6, 0xf7, 0xbb, 0xd5,
+ 0xcf, 0x04, 0x93, 0x3a, 0x6d, 0x33, 0x8d, 0xad, 0x54, 0x49, 0x87, 0x57,
+ 0x3e, 0x00, 0xc2, 0xc7, 0xa0, 0x05, 0x9f, 0xd1, 0x5a, 0xda, 0x60, 0xde,
+ 0xd0, 0xa3, 0x8f, 0x78, 0x70, 0xbf, 0xb2, 0xe8, 0x8e, 0x4a, 0xa0, 0xd2,
+ 0x0e, 0x41, 0x63, 0xe6, 0xb2, 0x15, 0x7c, 0xcc, 0x52, 0x8f, 0xf9, 0x3e,
+ 0x5b, 0xc5, 0x70, 0x66, 0x6e, 0xae, 0xce, 0x6b, 0x3d, 0x76, 0x2a, 0x6e,
+ 0xeb, 0x38, 0xb8, 0xd4, 0x3b, 0x76, 0xae, 0x8c, 0x6f, 0x16, 0xcd, 0xc8,
+ 0x01, 0xc6, 0x17, 0x9c, 0xf8, 0xa0, 0x81, 0xcc, 0xee, 0xb5, 0x1d, 0x7e,
+ 0xb5, 0xef, 0x99, 0xb2, 0xef, 0x40, 0x14, 0xf7, 0x2f, 0xc9, 0x42, 0xa0,
+ 0xce, 0xd3, 0x26, 0x53, 0xce, 0xb9, 0x82, 0x45, 0x50, 0xac, 0x83, 0x75,
+ 0x51, 0x02, 0x0b, 0x4d, 0xdd, 0x29, 0x80, 0xdc, 0x65, 0x5b, 0x61, 0xe1,
+ 0xdb, 0xbb, 0x80, 0xa8, 0xd8, 0xe5, 0x64, 0x42, 0x0b, 0xe5, 0xcb, 0xcf,
+ 0xd1, 0x71, 0xb7, 0x3a, 0xa4, 0x02, 0x26, 0x20, 0x83, 0x19, 0x3b, 0x90,
+ 0x08, 0x6a, 0x84, 0x6b, 0xc7, 0x9c, 0xdc, 0xb2, 0x42, 0x62, 0x69, 0x01,
+ 0xa0, 0x30, 0x42, 0xc5, 0xc9, 0x54, 0xab, 0x71, 0x1f, 0x63, 0x8e, 0xb5,
+ 0xc3, 0x94, 0xdc, 0x0c, 0x42, 0xe4, 0xfd, 0x2d, 0x76, 0x6d, 0xd6, 0xb4,
+ 0x81, 0x72, 0xbb, 0xf3, 0xc9, 0xf8, 0x63, 0x5c, 0x9b, 0x91, 0x69, 0x7f,
+ 0xc0, 0x52, 0xc6, 0xe3, 0x06, 0x27, 0xd3, 0x03, 0x03, 0x1f, 0x88, 0x9a,
+ 0x30, 0x3c, 0x06, 0x39, 0x8e, 0x68, 0xd3, 0x02, 0x49, 0x61, 0x24, 0xfb,
+ 0x5e, 0x59, 0xb9, 0x00, 0x68, 0x54, 0x35, 0xfe, 0xcc, 0x55, 0xc5, 0x56,
+ 0x2a, 0x73, 0x00, 0x50, 0x95, 0x3b, 0xaf, 0x07, 0x61, 0xd4, 0x2b, 0x12,
+ 0x22, 0xd7, 0x16, 0x2c, 0xd7, 0x46, 0xb5, 0x68, 0xd4, 0x20, 0x00, 0xfc,
+ 0x14, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1,
+ 0x4a, 0x00, 0x04, 0x10, 0x3c, 0x00, 0x18, 0x01, 0x60, 0x1b, 0xdc, 0x5b,
+ 0xf3, 0xaf, 0xea, 0x9d, 0x02, 0x1e, 0x19, 0xfd, 0x7f, 0xe7, 0xff, 0xf1,
+ 0x3f, 0x91, 0x1e, 0xb9, 0x8d, 0x4b, 0x38, 0x77, 0xdc, 0x67, 0xd4, 0x03,
+ 0xe8, 0x5b, 0xfa, 0xef, 0xab, 0xa6, 0xcc, 0xb5, 0xe3, 0x7f, 0x51, 0xfe,
+ 0xfd, 0x7e, 0x4d, 0x7a, 0xcf, 0xf3, 0x57, 0xe8, 0xab, 0xea, 0x9f, 0xf8,
+ 0x8f, 0xf4, 0xef, 0xd4, 0x4f, 0xef, 0x1e, 0xf7, 0x7e, 0x14, 0x76, 0x92,
+ 0xf8, 0xdf, 0x7c, 0xb2, 0xfe, 0x59, 0xf7, 0x75, 0xfd, 0xa7, 0xff, 0xff,
+ 0xab, 0x1f, 0xb0, 0x7f, 0xf3, 0x4f, 0xe3, 0xdf, 0xea, 0xbf, 0x92, 0x7f,
+ 0x7e, 0xfd, 0x61, 0xf8, 0xf8, 0xf6, 0xa7, 0xfa, 0x81, 0xfe, 0x5f, 0xd4,
+ 0x8b, 0xf4, 0x76, 0x7f, 0xff, 0xdf, 0x08, 0x1b, 0xd0, 0xbd, 0x3f, 0xa7,
+ 0xf7, 0x30, 0x8c, 0x64, 0x95, 0xcf, 0x91, 0x04, 0xf3, 0xdc, 0xdd, 0x4d,
+ 0xaa, 0x69, 0x98, 0x65, 0xd7, 0x60, 0x5d, 0x3c, 0x13, 0xe1, 0x10, 0xaa,
+ 0xd6, 0xd2, 0x93, 0x03, 0x7b, 0xc8, 0x1e, 0xba, 0xd0, 0xd6, 0x0e, 0x73,
+ 0xe0, 0xfd, 0xd7, 0xf0, 0xe4, 0xc2, 0xda, 0x9b, 0xb4, 0xb7, 0x46, 0xf3,
+ 0xf8, 0xfc, 0xe2, 0x22, 0x00, 0x48, 0x95, 0x45, 0x68, 0x4f, 0x07, 0xb3,
+ 0xa2, 0xe0, 0x0c, 0x76, 0x01, 0xad, 0xfd, 0x3e, 0x54, 0x8a, 0xaf, 0x6c,
+ 0x87, 0xf5, 0xd7, 0x38, 0x00, 0x7b, 0x58, 0x20, 0xe6, 0xc8, 0xab, 0x56,
+ 0xf4, 0x66, 0x07, 0xd1, 0x43, 0xcb, 0x63, 0x1c, 0x2e, 0x4d, 0x23, 0x2c,
+ 0xc0, 0x45, 0xfe, 0x7a, 0xae, 0x61, 0x52, 0x4d, 0xfb, 0x78, 0x9a, 0x35,
+ 0x19, 0xbf, 0xce, 0x4d, 0xd7, 0xec, 0x35, 0x4f, 0x35, 0x40, 0x5f, 0x78,
+ 0x69, 0x3c, 0x19, 0x97, 0xe9, 0x7e, 0x51, 0x84, 0x13, 0x9d, 0x97, 0xc5,
+ 0x51, 0x75, 0xec, 0x8e, 0x38, 0x81, 0xb6, 0xe3, 0xd0, 0x9d, 0x2c, 0x96,
+ 0x4e, 0x91, 0xa3, 0x79, 0x2e, 0x3a, 0xa7, 0xd3, 0x12, 0x2d, 0x2a, 0x73,
+ 0x73, 0x37, 0xc2, 0xb3, 0x40, 0x9b, 0x86, 0xf8, 0x7a, 0xfc, 0x7d, 0xc7,
+ 0x2a, 0xa7, 0x11, 0x2b, 0xab, 0x80, 0xe7, 0x8c, 0x93, 0x4e, 0xab, 0xb6,
+ 0x3c, 0x1e, 0x32, 0x55, 0xe3, 0x87, 0xa7, 0x61, 0x3e, 0xdf, 0xb7, 0x63,
+ 0xe9, 0xd8, 0x4f, 0xb7, 0xee, 0xa5, 0x7b, 0x29, 0x5f, 0xe5, 0x3a, 0xd6,
+ 0xf9, 0xd5, 0x75, 0xe1, 0x35, 0x96, 0x18, 0xee, 0xb2, 0x5c, 0xb0, 0x50,
+ 0xe2, 0x60, 0x77, 0x1b, 0xb8, 0x03, 0xf9, 0xac, 0x7d, 0x8f, 0x43, 0xde,
+ 0xd5, 0x34, 0xe1, 0xdc, 0x40, 0x25, 0x2b, 0xfa, 0xc2, 0xca, 0x56, 0x56,
+ 0xd0, 0x15, 0x5e, 0x3e, 0x11, 0x4f, 0x09, 0xc3, 0x81, 0x25, 0x86, 0xa4,
+ 0x60, 0x2b, 0x56, 0xb8, 0xa3, 0xd5, 0x27, 0x50, 0xaf, 0x1c, 0x41, 0xbc,
+ 0xcb, 0xca, 0x24, 0x90, 0xe8, 0x7a, 0x1e, 0x93, 0x22, 0x00, 0x1b, 0x46,
+ 0x76, 0xc6, 0xdb, 0x66, 0xe9, 0xa5, 0xf6, 0x73, 0xda, 0x09, 0xcb, 0xfd,
+ 0xac, 0xa2, 0x91, 0xad, 0xe9, 0x58, 0xe4, 0x67, 0x85, 0x37, 0xa5, 0xfa,
+ 0xac, 0x32, 0xe5, 0xe1, 0xf7, 0xe3, 0x2d, 0x56, 0xfc, 0x9b, 0xdd, 0xc0,
+ 0xc6, 0x06, 0x44, 0x1a, 0x94, 0x2b, 0xeb, 0x1c, 0x25, 0x56, 0xc0, 0x4a,
+ 0xb6, 0x9c, 0x52, 0x21, 0x4f, 0x7f, 0xbf, 0xf6, 0x5f, 0x90, 0xf4, 0x88,
+ 0x56, 0x2f, 0x88, 0x29, 0x5b, 0x43, 0x93, 0x87, 0x2b, 0x46, 0x4e, 0x56,
+ 0xfc, 0x5a, 0x97, 0xe0, 0x30, 0xe2, 0x41, 0xaa, 0x2d, 0x6d, 0x61, 0xbf,
+ 0xe0, 0x3d, 0x20, 0xb4, 0x8c, 0x12, 0x2f, 0xb2, 0x22, 0xf9, 0x1e, 0x39,
+ 0x8f, 0xf9, 0x73, 0x1b, 0x5d, 0xd5, 0x4a, 0xf3, 0xda, 0x65, 0xb5, 0x91,
+ 0x76, 0xa4, 0xca, 0x12, 0x75, 0x73, 0x41, 0xf5, 0x67, 0xf6, 0xcf, 0xea,
+ 0x16, 0x5b, 0x1f, 0x3e, 0x36, 0x3e, 0x48, 0xf4, 0xe2, 0xc3, 0x5a, 0x80,
+ 0x0b, 0xc9, 0x37, 0x46, 0xe9, 0x53, 0x49, 0x76, 0x80, 0x15, 0x7f, 0xa3,
+ 0xee, 0x14, 0xbc, 0x22, 0x28, 0x40, 0x34, 0xc5, 0x07, 0x20, 0x03, 0x4d,
+ 0x0f, 0x2c, 0xd6, 0x91, 0xa8, 0xde, 0x41, 0x97, 0xbf, 0x00, 0x05, 0x6a,
+ 0xea, 0x8a, 0x00, 0x58, 0x88, 0xc4, 0xa0, 0x05, 0x88, 0x88, 0x00, 0x03,
+ 0xc5, 0x14, 0x5a, 0x24, 0x9b, 0x80, 0x00, 0x07, 0x18, 0xc4, 0x00, 0xe5,
+ 0x3a, 0x06, 0xb0, 0x06, 0x01, 0x5a, 0xb5, 0x56, 0x13, 0x2b, 0x06, 0x00,
+ 0x3e, 0x93, 0x6e, 0xfd, 0x3a, 0x23, 0x7d, 0x5c, 0x21, 0x4c, 0x74, 0x47,
+ 0xbd, 0xf1, 0xc8, 0xa0, 0x40, 0xf3, 0xbe, 0x0c, 0x68, 0x82, 0x62, 0xee,
+ 0xc4, 0x6c, 0x5a, 0x9d, 0xef, 0x16, 0x66, 0x69, 0x12, 0xd3, 0x04, 0x48,
+ 0xed, 0x67, 0xad, 0xbb, 0x74, 0x4d, 0x39, 0xd7, 0xae, 0x3c, 0x2e, 0x03,
+ 0x4f, 0xee, 0xbf, 0x9b, 0xf7, 0xb2, 0x61, 0xa6, 0xb2, 0x05, 0xbe, 0xd4,
+ 0x2a, 0x6b, 0xeb, 0xcc, 0x53, 0x84, 0xf7, 0x48, 0xe5, 0xe4, 0x44, 0x16,
+ 0x12, 0x33, 0x79, 0x1a, 0x51, 0x82, 0x91, 0xdf, 0x58, 0x46, 0xd0, 0xf8,
+ 0xe5, 0x6b, 0xa5, 0xa0, 0xb1, 0x7a, 0xe0, 0xc5, 0xb6, 0xe6, 0xae, 0xcb,
+ 0x17, 0x5e, 0xae, 0x62, 0x98, 0xed, 0x2f, 0xb8, 0x35, 0x11, 0xcf, 0xfb,
+ 0xd3, 0xd8, 0xc8, 0xde, 0xc3, 0x3d, 0x4f, 0xf4, 0x02, 0xd0, 0x08, 0xb9,
+ 0x1b, 0x47, 0xf2, 0x65, 0xd9, 0x3f, 0xe5, 0xf3, 0xa4, 0xd0, 0x96, 0x78,
+ 0x6d, 0xd1, 0xb2, 0x18, 0xa7, 0xee, 0xd8, 0x8d, 0x43, 0x18, 0x98, 0xaf,
+ 0xc6, 0x02, 0x58, 0x46, 0x9e, 0x95, 0x68, 0xba, 0x8e, 0x48, 0x75, 0x1b,
+ 0x93, 0x48, 0xfa, 0x4f, 0x8a, 0xc0, 0xa9, 0x53, 0xdf, 0x4b, 0x42, 0xec,
+ 0x49, 0xa5, 0x97, 0x10, 0xd0, 0xb1, 0xee, 0x86, 0xd0, 0x8f, 0xd9, 0x7f,
+ 0xb9, 0xed, 0xb0, 0x43, 0xe7, 0xf1, 0x98, 0x04, 0x87, 0xee, 0xe7, 0xaa,
+ 0xb4, 0xf2, 0x88, 0xdc, 0xc8, 0x84, 0x36, 0xa8, 0xe7, 0x98, 0xf6, 0x84,
+ 0x1f, 0x4e, 0xe6, 0x4c, 0xcb, 0x4a, 0xe0, 0x01, 0x68, 0x63, 0xcd, 0x30,
+ 0x20, 0xf1, 0xc2, 0x91, 0xf5, 0x4a, 0x52, 0xcf, 0xbf, 0x82, 0x2d, 0xf8,
+ 0x48, 0x48, 0x3c, 0xce, 0x57, 0x56, 0xee, 0x31, 0x4b, 0x0e, 0x0f, 0x1b,
+ 0xf8, 0xd4, 0xad, 0xd1, 0x39, 0x96, 0x4e, 0x3a, 0x9a, 0x29, 0x90, 0xa5,
+ 0xb5, 0x84, 0xcb, 0x87, 0x89, 0xd5, 0x4d, 0x19, 0xaa, 0xdb, 0xf2, 0x50,
+ 0xd2, 0xd1, 0x27, 0x46, 0x2a, 0x86, 0x87, 0xf7, 0x00, 0x60, 0xa1, 0xf9,
+ 0xed, 0x92, 0x0a, 0x9c, 0x8b, 0x76, 0x93, 0x03, 0x3e, 0xa2, 0x22, 0xe6,
+ 0x3d, 0x30, 0xef, 0x5d, 0xbb, 0x55, 0x5c, 0x06, 0x81, 0x0c, 0xb9, 0x91,
+ 0xa3, 0x9c, 0x52, 0x5a, 0x4b, 0x22, 0xf7, 0x51, 0xe3, 0xad, 0xdb, 0x94,
+ 0xd7, 0x01, 0x85, 0x70, 0x86, 0x7d, 0xa0, 0xbd, 0x44, 0xfd, 0x63, 0x65,
+ 0x3c, 0x06, 0x9f, 0x1c, 0x33, 0xf1, 0xe5, 0x53, 0xa3, 0x15, 0x6d, 0x7e,
+ 0x0d, 0x88, 0xd1, 0x3e, 0xd4, 0xdc, 0x22, 0x7d, 0x02, 0x51, 0x6e, 0xcf,
+ 0xa1, 0x8d, 0x96, 0x6f, 0x7e, 0x6e, 0xea, 0xcd, 0x99, 0xce, 0x77, 0x04,
+ 0x3a, 0xa0, 0x8b, 0xcc, 0xa7, 0xc1, 0xb9, 0x5a, 0xd6, 0x13, 0x19, 0x87,
+ 0x79, 0x79, 0xb7, 0x43, 0x54, 0x39, 0xaf, 0x53, 0xd5, 0x90, 0xcd, 0x30,
+ 0x3e, 0xe7, 0x5a, 0x92, 0x60, 0x8b, 0x19, 0xd9, 0x1f, 0x10, 0xda, 0x87,
+ 0xfc, 0x59, 0x28, 0x34, 0x2a, 0xc4, 0x03, 0xa4, 0x12, 0x67, 0x44, 0x43,
+ 0xf6, 0xc8, 0x99, 0x1c, 0xc0, 0x22, 0x88, 0xf8, 0xf9, 0x90, 0x41, 0x87,
+ 0xf1, 0x29, 0x45, 0xbc, 0xbd, 0xe2, 0xdb, 0x32, 0xd3, 0xa7, 0xab, 0xf7,
+ 0x3b, 0xaf, 0xf6, 0xc7, 0xc5, 0xe4, 0xb9, 0x2d, 0xe2, 0x36, 0x9d, 0x4d,
+ 0x5c, 0x68, 0x3f, 0x8c, 0x32, 0x55, 0x00, 0x23, 0xd1, 0xcf, 0x7f, 0xd8,
+ 0xfa, 0xf7, 0x32, 0x13, 0xf5, 0x42, 0xc3, 0xf8, 0x4b, 0x37, 0x5e, 0x03,
+ 0xa0, 0xb5, 0x25, 0x36, 0x0a, 0x7f, 0x2a, 0xe3, 0xb4, 0x42, 0x2e, 0x6b,
+ 0x91, 0x95, 0xce, 0xfd, 0xac, 0x9a, 0xae, 0x27, 0x2a, 0xef, 0x2e, 0x6e,
+ 0x22, 0xcc, 0x06, 0x56, 0x41, 0xe6, 0x0f, 0xb0, 0x74, 0xcb, 0xaf, 0xef,
+ 0xfa, 0x6d, 0xe6, 0x79, 0x77, 0xc3, 0xbe, 0x96, 0xa5, 0xe0, 0x04, 0x83,
+ 0x2f, 0x42, 0x56, 0x45, 0x3f, 0xdf, 0xd3, 0x84, 0x42, 0x03, 0xcc, 0x65,
+ 0x51, 0xf6, 0x7b, 0x9d, 0x59, 0x4c, 0xd0, 0xe9, 0x96, 0x63, 0x43, 0xd0,
+ 0x13, 0x78, 0xe4, 0x1c, 0x5f, 0x74, 0xe3, 0x8f, 0x21, 0xc5, 0x45, 0x30,
+ 0x9c, 0x6c, 0x99, 0xf7, 0x5e, 0xb0, 0xc7, 0x0a, 0x6e, 0x6a, 0x6e, 0xa1,
+ 0x12, 0x16, 0x68, 0xce, 0xb4, 0x2d, 0x29, 0x30, 0x69, 0xd2, 0x30, 0x5f,
+ 0xa0, 0x2b, 0x82, 0xde, 0x68, 0x22, 0xa2, 0xce, 0x71, 0xb0, 0x5f, 0xf1,
+ 0xa1, 0x0f, 0xd9, 0xd5, 0x09, 0x77, 0x7b, 0x3f, 0xae, 0x84, 0x77, 0xa7,
+ 0xd5, 0xb3, 0x7b, 0xc7, 0xc9, 0x7b, 0x5f, 0x68, 0x40, 0xd1, 0x7b, 0xb3,
+ 0xa9, 0x4d, 0xfa, 0x51, 0x29, 0x6b, 0x5d, 0x23, 0xd9, 0xfb, 0x71, 0xa9,
+ 0x04, 0x4a, 0x0b, 0x96, 0xc4, 0x5f, 0xc9, 0x8b, 0xa8, 0x66, 0xd6, 0xc6,
+ 0x3c, 0x16, 0x16, 0x95, 0x90, 0x53, 0x62, 0x13, 0xad, 0xcf, 0x73, 0x42,
+ 0x85, 0x23, 0x26, 0x66, 0xb8, 0x50, 0xee, 0x2b, 0xa5, 0x9d, 0x92, 0xef,
+ 0xc7, 0x28, 0xbe, 0x02, 0x1f, 0x09, 0x0c, 0xee, 0xa2, 0x8c, 0xee, 0xe3,
+ 0xe0, 0xd1, 0xdf, 0xfa, 0xa3, 0x68, 0x99, 0x65, 0xc1, 0xde, 0xfb, 0x97,
+ 0x1b, 0x29, 0xfb, 0x70, 0x4d, 0x58, 0xcb, 0x86, 0xc1, 0x10, 0x85, 0x87,
+ 0x1e, 0xf1, 0x19, 0x72, 0xa5, 0x46, 0xf9, 0x10, 0xdd, 0xa3, 0x23, 0x79,
+ 0x4e, 0xd8, 0xfe, 0xc5, 0xa2, 0xcd, 0xfd, 0x7f, 0x9b, 0x2a, 0xb3, 0x78,
+ 0x3b, 0x78, 0x90, 0x52, 0x23, 0xa0, 0x03, 0x48, 0x6f, 0xca, 0x82, 0x00,
+ 0x88, 0x44, 0xb6, 0x40, 0xfe, 0xc1, 0x8a, 0xf1, 0x64, 0x0a, 0xb1, 0xd6,
+ 0x23, 0xb1, 0xb8, 0x31, 0x88, 0x28, 0x54, 0x47, 0xec, 0x63, 0xa2, 0xc4,
+ 0x5e, 0x1a, 0xe9, 0x3b, 0x21, 0x24, 0x1b, 0x0d, 0x39, 0x12, 0x10, 0xc6,
+ 0xe9, 0x82, 0x36, 0x47, 0xe9, 0xef, 0x51, 0x4f, 0x7a, 0x53, 0x1c, 0x61,
+ 0x7e, 0x84, 0x91, 0xa8, 0x44, 0x29, 0xc8, 0x13, 0xa7, 0x7d, 0xa5, 0xd7,
+ 0x90, 0x68, 0xb1, 0xe6, 0x52, 0x50, 0x58, 0x56, 0xe9, 0x12, 0x98, 0x01,
+ 0x98, 0xcc, 0xa0, 0xb5, 0xa1, 0x69, 0x86, 0xa7, 0x67, 0xf4, 0x2a, 0x22,
+ 0x9a, 0xd3, 0xa1, 0x4f, 0x26, 0x5f, 0x85, 0x02, 0x06, 0x04, 0x30, 0x83,
+ 0xd6, 0xa7, 0x1e, 0x7d, 0xbc, 0xf2, 0x73, 0xeb, 0xea, 0x0e, 0x2e, 0x8a,
+ 0xae, 0xdf, 0x91, 0x7a, 0xdd, 0xdb, 0x80, 0x82, 0x22, 0x74, 0xdd, 0x27,
+ 0xd0, 0xbb, 0xfa, 0x26, 0xa0, 0x88, 0x44, 0xb5, 0xe7, 0xa5, 0x2f, 0x88,
+ 0xa1, 0x48, 0x76, 0x4b, 0x32, 0x11, 0xc7, 0xa2, 0x6d, 0x65, 0xdf, 0x4d,
+ 0xf8, 0x86, 0x60, 0x0d, 0xf9, 0x97, 0x3d, 0x8f, 0x02, 0x1b, 0xb9, 0x89,
+ 0xac, 0x14, 0x29, 0x54, 0xa7, 0xbf, 0xc8, 0xde, 0x45, 0x72, 0xdc, 0xb0,
+ 0xba, 0xa3, 0x99, 0xfa, 0xae, 0x97, 0x86, 0x24, 0x17, 0xed, 0x4b, 0xa0,
+ 0x85, 0x47, 0xc2, 0x6c, 0xb3, 0xd6, 0xbb, 0xb0, 0x41, 0x2f, 0x15, 0x42,
+ 0x87, 0xce, 0xa7, 0x23, 0x95, 0xc7, 0x35, 0xb5, 0x31, 0x84, 0x2b, 0x55,
+ 0x1e, 0x33, 0xcb, 0x8b, 0x23, 0x41, 0xc2, 0x52, 0xb8, 0x23, 0xe8, 0x3f,
+ 0xe7, 0xea, 0x6b, 0x05, 0x64, 0x05, 0x78, 0xbd, 0x97, 0x40, 0xe0, 0xef,
+ 0x17, 0x46, 0xf6, 0x1a, 0x76, 0x50, 0x64, 0x04, 0x81, 0xb4, 0xc9, 0x41,
+ 0xce, 0xb0, 0x12, 0x6a, 0x69, 0xf9, 0xec, 0x9d, 0xb5, 0xf4, 0x93, 0x06,
+ 0x4c, 0xb4, 0xc7, 0x54, 0x1c, 0x1b, 0xbe, 0xb2, 0xad, 0x87, 0x7a, 0x47,
+ 0x6a, 0x25, 0xeb, 0x84, 0x86, 0x82, 0xa3, 0x07, 0x26, 0xf6, 0xa1, 0x15,
+ 0x38, 0xd0, 0xfc, 0xea, 0x47, 0xe6, 0x81, 0x8c, 0x21, 0x5d, 0x3c, 0xd9,
+ 0xfe, 0x50, 0x61, 0x44, 0xe0, 0x09, 0x4a, 0xe0, 0x38, 0xd3, 0x2a, 0x4b,
+ 0x8d, 0xb1, 0x56, 0x89, 0x56, 0x87, 0xc4, 0xbd, 0x0e, 0xf5, 0x6f, 0x1b,
+ 0x5e, 0xc4, 0xa9, 0xf3, 0xd6, 0xed, 0x71, 0xe8, 0x3f, 0xd1, 0x52, 0x27,
+ 0xe5, 0x03, 0xde, 0x07, 0x09, 0x2b, 0x40, 0x85, 0xf2, 0x7e, 0x32, 0xac,
+ 0xaa, 0x60, 0x83, 0x90, 0xea, 0x28, 0xa6, 0x77, 0x04, 0xb5, 0xa8, 0x97,
+ 0x91, 0x89, 0x11, 0x5a, 0x06, 0x8a, 0x39, 0xa7, 0x71, 0xb9, 0x63, 0x53,
+ 0x7e, 0x1b, 0x77, 0xb2, 0xb0, 0x9a, 0x61, 0x23, 0x7b, 0x90, 0x72, 0x74,
+ 0xf0, 0x99, 0x87, 0x87, 0xf7, 0x0e, 0x8a, 0x1b, 0xcc, 0x93, 0xda, 0x48,
+ 0xeb, 0xb9, 0xc1, 0x15, 0x5e, 0x2f, 0x65, 0xd0, 0x38, 0x3b, 0xe8, 0x53,
+ 0x42, 0x39, 0x46, 0x9d, 0xb1, 0x8b, 0xa8, 0xbe, 0x24, 0xb0, 0x00, 0x6a,
+ 0xee, 0xae, 0x61, 0xd6, 0x41, 0x6a, 0x0a, 0x42, 0xb3, 0x7f, 0xb7, 0x86,
+ 0xcd, 0xc8, 0x93, 0x02, 0xb6, 0x8d, 0xee, 0x36, 0x75, 0xc5, 0x7c, 0xc4,
+ 0x9c, 0x37, 0x7f, 0xc5, 0x1d, 0x61, 0xf5, 0x97, 0xb1, 0x3d, 0x82, 0x36,
+ 0xdf, 0x77, 0x61, 0xa7, 0xe4, 0xb3, 0x88, 0xb1, 0xa1, 0x3a, 0x06, 0x7d,
+ 0xa3, 0xe8, 0x82, 0x98, 0xba, 0x97, 0x8f, 0x65, 0xaa, 0xcf, 0x0f, 0x7d,
+ 0x50, 0x72, 0xc9, 0x65, 0x6e, 0x48, 0x6f, 0xeb, 0xaf, 0x26, 0xe9, 0xdd,
+ 0xd1, 0x47, 0xdb, 0x8f, 0x77, 0xe7, 0x8c, 0xab, 0xc3, 0xaa, 0x6f, 0x92,
+ 0x5b, 0xca, 0xb8, 0x2a, 0x74, 0x89, 0xc1, 0xdc, 0x85, 0xae, 0x90, 0xb7,
+ 0x6a, 0xac, 0xe3, 0xe6, 0x3f, 0x5a, 0x83, 0xd9, 0xf8, 0x21, 0xad, 0xd5,
+ 0x8c, 0x50, 0x9a, 0xc7, 0xf8, 0x28, 0x9d, 0x10, 0xd6, 0x86, 0x6d, 0xa4,
+ 0x97, 0x75, 0xd6, 0xe2, 0xe4, 0x88, 0xa3, 0x01, 0x74, 0x88, 0xb1, 0xb7,
+ 0xae, 0xbb, 0x89, 0x83, 0x29, 0x88, 0x2b, 0xd1, 0x9d, 0xd5, 0x14, 0xf7,
+ 0x62, 0xdd, 0xe3, 0xea, 0x1b, 0xe0, 0xb8, 0x46, 0xa2, 0x53, 0xec, 0xe8,
+ 0x2f, 0xa3, 0x77, 0xa7, 0xc5, 0xb0, 0x68, 0xf1, 0xbc, 0x66, 0xc0, 0x21,
+ 0xce, 0x42, 0x49, 0xc2, 0xce, 0x37, 0x1c, 0xb2, 0xdf, 0x75, 0x56, 0x71,
+ 0xf3, 0x1f, 0xad, 0x41, 0xec, 0xe8, 0xc5, 0xff, 0xdd, 0x90, 0xd6, 0x0d,
+ 0x37, 0x30, 0xec, 0xc3, 0x78, 0xe8, 0x59, 0xa5, 0x07, 0x7f, 0x04, 0xf7,
+ 0xd3, 0xb0, 0x00, 0x9b, 0x32, 0xda, 0xa5, 0x73, 0xc3, 0x61, 0x8c, 0x7e,
+ 0x5a, 0xe1, 0x8b, 0xd8, 0x20, 0x21, 0x87, 0x17, 0x8e, 0xbf, 0x90, 0xb1,
+ 0x3c, 0x21, 0xce, 0xe2, 0x91, 0x8a, 0xce, 0xe0, 0x93, 0x36, 0xd6, 0xc4,
+ 0x21, 0x62, 0x30, 0x1b, 0xdc, 0x8f, 0x1b, 0xc6, 0x6c, 0x02, 0x1c, 0xe4,
+ 0x24, 0x9c, 0x2c, 0xe3, 0x71, 0xce, 0xaf, 0x22, 0xb6, 0x12, 0xfa, 0xb5,
+ 0xe5, 0xc7, 0xf4, 0xc5, 0x0d, 0x22, 0xe2, 0xb5, 0xda, 0x27, 0x03, 0xce,
+ 0x4a, 0x27, 0x3b, 0xdd, 0x64, 0xc9, 0xf1, 0x9b, 0xdf, 0x4e, 0xbf, 0xfd,
+ 0x94, 0x3e, 0x89, 0xb8, 0x01, 0x8b, 0x0e, 0xc1, 0xec, 0x58, 0xdb, 0xd7,
+ 0x5d, 0xc4, 0xc1, 0x94, 0xc4, 0x15, 0xe8, 0xce, 0xea, 0x8a, 0xb0, 0xd5,
+ 0x25, 0x07, 0x0f, 0xed, 0x33, 0x5d, 0xb8, 0xa2, 0x8c, 0x9b, 0x43, 0xf3,
+ 0xf4, 0x42, 0xf2, 0xbf, 0xe7, 0x41, 0x83, 0x21, 0x80, 0xd3, 0x92, 0x58,
+ 0x00, 0x36, 0xbd, 0x1c, 0x28, 0x67, 0x41, 0x04, 0xf1, 0x4e, 0xb4, 0x23,
+ 0x37, 0x86, 0x48, 0xc8, 0x9a, 0x3f, 0x4a, 0x07, 0x64, 0xc3, 0xed, 0xbf,
+ 0x66, 0x2c, 0xbe, 0x50, 0x17, 0x72, 0xcc, 0xed, 0x11, 0x7f, 0xa0, 0xb2,
+ 0x44, 0xbe, 0xb2, 0xe0, 0xbf, 0x87, 0x68, 0x73, 0x35, 0x92, 0x92, 0x65,
+ 0x3c, 0xd6, 0x03, 0xa3, 0x81, 0x62, 0x02, 0x8c, 0x6f, 0x41, 0xb1, 0xb9,
+ 0x07, 0x1b, 0xe3, 0x60, 0xcd, 0x6e, 0x5b, 0x0b, 0x9d, 0xd7, 0x96, 0x3d,
+ 0xaf, 0x10, 0x40, 0x59, 0x28, 0xb5, 0xf4, 0x6e, 0xf4, 0xf8, 0xb6, 0x0d,
+ 0x1e, 0x37, 0x8c, 0xd8, 0x04, 0x39, 0xc8, 0x49, 0x38, 0x59, 0xc6, 0xe3,
+ 0x9d, 0x21, 0xc5, 0xf3, 0xcd, 0x56, 0xb6, 0xea, 0x59, 0x1f, 0x92, 0x15,
+ 0xd3, 0x9a, 0x13, 0x03, 0x24, 0x2f, 0x4b, 0xa1, 0x75, 0xe2, 0x3d, 0xd6,
+ 0x3c, 0x66, 0x0b, 0x34, 0x40, 0xb0, 0x2f, 0xa0, 0xbe, 0xfc, 0x3b, 0x46,
+ 0x73, 0x61, 0xcd, 0xc4, 0x00, 0x36, 0x48, 0x0e, 0x95, 0x3d, 0x4e, 0x4d,
+ 0xa4, 0x39, 0xbe, 0x3d, 0x8c, 0x3b, 0x70, 0xb8, 0x69, 0xfe, 0x78, 0x21,
+ 0x0f, 0x0b, 0x3c, 0x1a, 0xa1, 0x99, 0xc2, 0xeb, 0x97, 0x42, 0x4b, 0xb9,
+ 0x5e, 0x4c, 0x7e, 0xf7, 0x2e, 0x50, 0x0d, 0x9c, 0x40, 0x2e, 0x4e, 0x2f,
+ 0x04, 0x4b, 0x40, 0xd4, 0x6d, 0x4b, 0xc1, 0xd2, 0xb4, 0x23, 0x37, 0x86,
+ 0x48, 0xc8, 0x9a, 0x3f, 0x4a, 0x07, 0x64, 0xc3, 0xf1, 0x6a, 0x5f, 0xa5,
+ 0x3f, 0x50, 0x5e, 0x5d, 0xbd, 0xcb, 0x8c, 0xce, 0x3b, 0x5a, 0x1d, 0xf0,
+ 0x53, 0x3c, 0x9c, 0x51, 0x78, 0x90, 0x29, 0x27, 0xa0, 0xb4, 0x8a, 0x5a,
+ 0x4c, 0x25, 0x0c, 0xb0, 0x3e, 0xec, 0xa5, 0x05, 0x39, 0xac, 0xd1, 0x05,
+ 0xde, 0xb4, 0xbf, 0xde, 0x03, 0x1a, 0x5a, 0x56, 0xa8, 0x67, 0xa9, 0x79,
+ 0x58, 0xc3, 0x29, 0xf9, 0x73, 0x9f, 0x32, 0xcd, 0xf3, 0x3e, 0x2a, 0x0a,
+ 0x60, 0x14, 0x5d, 0x6b, 0xd5, 0x21, 0x1d, 0x93, 0xb1, 0x54, 0x45, 0xde,
+ 0x57, 0xa3, 0x41, 0xcd, 0x9e, 0xe0, 0x3a, 0x5f, 0x78, 0xf6, 0xb1, 0xfb,
+ 0xff, 0x66, 0xe2, 0x12, 0x43, 0x85, 0xe6, 0x72, 0xbd, 0xc6, 0x29, 0xeb,
+ 0x6b, 0xdf, 0xbd, 0x27, 0x27, 0xf1, 0x20, 0xa9, 0x8c, 0x3e, 0x6c, 0x16,
+ 0xc4, 0x78, 0xb4, 0x82, 0x23, 0xa2, 0x82, 0xd6, 0xf6, 0x93, 0xe0, 0xe8,
+ 0x8a, 0x1a, 0xc1, 0x42, 0x70, 0x07, 0x32, 0x3f, 0x15, 0xf9, 0x1c, 0x67,
+ 0x7f, 0x24, 0xa3, 0xe2, 0x71, 0xa8, 0x8d, 0x05, 0x22, 0x36, 0xa4, 0x33,
+ 0x6b, 0xea, 0x81, 0xbd, 0x69, 0xac, 0xe6, 0xb0, 0x2f, 0xf7, 0xc7, 0x6f,
+ 0x02, 0xd3, 0xf4, 0xfa, 0x3e, 0x57, 0x57, 0x33, 0x12, 0x2c, 0xb2, 0x0d,
+ 0x51, 0xe4, 0x54, 0x2b, 0xb0, 0x31, 0x2f, 0xe1, 0x45, 0xc5, 0xc2, 0x4e,
+ 0xcc, 0x55, 0x33, 0xf4, 0x50, 0xcf, 0x63, 0xa6, 0x48, 0x12, 0x27, 0xfd,
+ 0xcc, 0xaa, 0xa8, 0xd6, 0xd5, 0x50, 0x74, 0xe0, 0xc7, 0x03, 0x58, 0xba,
+ 0x2b, 0xd7, 0x99, 0x18, 0xd5, 0x6c, 0x7c, 0x5b, 0x23, 0xba, 0x8b, 0x5f,
+ 0xda, 0x7a, 0x37, 0xb0, 0xd4, 0xb4, 0x41, 0xc0, 0xfb, 0x6b, 0x3d, 0x11,
+ 0x22, 0x02, 0xde, 0x58, 0x13, 0xa6, 0x1d, 0xea, 0x57, 0xc0, 0x18, 0xfd,
+ 0x16, 0xf3, 0xfc, 0x96, 0x1d, 0xb5, 0xc3, 0xbf, 0xbf, 0x39, 0xf8, 0x9e,
+ 0x54, 0x8c, 0x3d, 0xab, 0x82, 0xf8, 0xa9, 0x55, 0xed, 0x76, 0x99, 0x1c,
+ 0xb5, 0xf1, 0xa7, 0x2f, 0x51, 0xdd, 0x7e, 0xde, 0x26, 0x67, 0x4c, 0x47,
+ 0x8f, 0x8c, 0x9a, 0x4e, 0x4f, 0xee, 0x53, 0x13, 0x18, 0x7c, 0xd8, 0x2d,
+ 0x88, 0xf0, 0x0a, 0x76, 0x8e, 0x6d, 0x5c, 0xbd, 0xc4, 0x02, 0xd4, 0x9f,
+ 0x15, 0xff, 0x45, 0x70, 0x08, 0xa0, 0xd3, 0x1e, 0x5b, 0x93, 0x3f, 0x1d,
+ 0x23, 0xb5, 0x19, 0x6d, 0x1d, 0x25, 0x1d, 0x33, 0x3b, 0xf6, 0x1e, 0x77,
+ 0x8a, 0x1d, 0x72, 0x49, 0xe2, 0xe7, 0xa3, 0x3f, 0x28, 0xdd, 0x60, 0xc8,
+ 0x8d, 0x3d, 0xb9, 0xa8, 0xa8, 0xe9, 0xfc, 0x58, 0x26, 0xd8, 0x0c, 0xb3,
+ 0x00, 0x1e, 0xdc, 0x9a, 0x2d, 0x44, 0xe3, 0xa2, 0x4b, 0xb9, 0xe5, 0x6b,
+ 0xc6, 0xd0, 0xe1, 0x1b, 0x2f, 0x33, 0x13, 0x88, 0xea, 0xc7, 0xb6, 0xb2,
+ 0x07, 0xe6, 0x18, 0x4e, 0x6c, 0x56, 0x71, 0xf8, 0xba, 0xd0, 0x69, 0x44,
+ 0xc8, 0xad, 0x7d, 0xf4, 0x26, 0x02, 0xb6, 0xd4, 0x93, 0x9a, 0x2f, 0xe6,
+ 0xcb, 0x82, 0x77, 0x66, 0xf2, 0xf0, 0x47, 0xbb, 0xd5, 0x47, 0xcb, 0x80,
+ 0x58, 0x49, 0x71, 0x6d, 0x0f, 0x14, 0xff, 0xa7, 0x34, 0x57, 0x26, 0x9b,
+ 0x89, 0x7c, 0x11, 0x23, 0x03, 0x31, 0x9a, 0x1c, 0x3a, 0x8f, 0x0f, 0x82,
+ 0xde, 0x27, 0x1a, 0x21, 0xcd, 0xad, 0x0c, 0xe3, 0x3b, 0xb5, 0x89, 0xc1,
+ 0x88, 0x24, 0x65, 0x74, 0xee, 0xbf, 0x45, 0x9b, 0xdb, 0x74, 0x0b, 0x93,
+ 0x33, 0xb8, 0x0a, 0xd2, 0xd0, 0x01, 0x32, 0xb4, 0x11, 0xad, 0xec, 0x46,
+ 0x24, 0x70, 0x60, 0xbc, 0x45, 0xef, 0x66, 0xfb, 0x07, 0xa0, 0x05, 0x9c,
+ 0xc0, 0x95, 0x32, 0xb8, 0x43, 0xd1, 0x23, 0xee, 0x5a, 0xc2, 0x7b, 0x18,
+ 0x6d, 0xf5, 0xa4, 0xc9, 0xae, 0x9c, 0x78, 0x4e, 0xbc, 0xdc, 0xeb, 0xd5,
+ 0xd9, 0xd3, 0x16, 0xa5, 0xb4, 0x17, 0xb3, 0xb3, 0xa7, 0x7e, 0xba, 0x89,
+ 0xdb, 0x89, 0x8e, 0x8c, 0x2f, 0x37, 0x20, 0x30, 0x60, 0xa8, 0x52, 0x32,
+ 0x83, 0x22, 0x5a, 0x43, 0x3b, 0x15, 0x9c, 0x2d, 0xee, 0xeb, 0x8f, 0x53,
+ 0xdd, 0x14, 0x0e, 0x8c, 0x2f, 0x37, 0x2a, 0x4b, 0x05, 0xc3, 0x29, 0xcc,
+ 0x8a, 0xf6, 0xd9, 0x60, 0xf6, 0xa4, 0x24, 0x56, 0x0e, 0xb4, 0xb1, 0xe0,
+ 0x79, 0x56, 0xec, 0xab, 0x69, 0x58, 0x1e, 0xc6, 0xd3, 0xb0, 0x32, 0x54,
+ 0xd2, 0x48, 0xf9, 0x4b, 0xe1, 0x1e, 0xac, 0x69, 0x07, 0xd9, 0x31, 0xba,
+ 0xed, 0x75, 0x33, 0x30, 0x1b, 0x84, 0x0f, 0xdf, 0x35, 0x72, 0xf5, 0xf1,
+ 0x13, 0x18, 0x4d, 0xe5, 0x49, 0xab, 0xdf, 0x89, 0xde, 0xd8, 0xae, 0x4d,
+ 0x2b, 0x63, 0xaa, 0xda, 0x51, 0x04, 0x18, 0x2c, 0xda, 0x4d, 0x4c, 0xe6,
+ 0x02, 0xe5, 0x96, 0xc6, 0xf0, 0xec, 0x44, 0xf9, 0xf5, 0xb4, 0x3e, 0x69,
+ 0x6f, 0xc7, 0xfe, 0x53, 0x47, 0x03, 0x11, 0x56, 0x70, 0xca, 0xc5, 0x12,
+ 0x52, 0x6d, 0x27, 0xd5, 0xc5, 0x12, 0x42, 0x02, 0x9f, 0xeb, 0x5b, 0xb0,
+ 0x02, 0x87, 0xf4, 0xee, 0x5b, 0x7b, 0x4f, 0x26, 0xba, 0x4c, 0xcf, 0x3c,
+ 0xbb, 0x6e, 0xdb, 0x77, 0x63, 0x59, 0x46, 0xd9, 0xd8, 0xee, 0x59, 0x0a,
+ 0xba, 0xf0, 0x9f, 0xf5, 0x64, 0x74, 0x37, 0x67, 0x95, 0x57, 0x8c, 0xea,
+ 0x11, 0x2b, 0xe5, 0xc5, 0x94, 0xf0, 0xd6, 0xd8, 0x62, 0x50, 0x64, 0xb6,
+ 0xbe, 0x7e, 0x9d, 0xe0, 0x16, 0xcd, 0x6a, 0x43, 0x4e, 0x68, 0xf1, 0x98,
+ 0x82, 0x2d, 0x71, 0xff, 0xde, 0x12, 0xf3, 0x77, 0x8a, 0xeb, 0xb5, 0x59,
+ 0x98, 0x92, 0x6c, 0x94, 0x2f, 0xe3, 0xf7, 0x9f, 0x1f, 0xd5, 0xb4, 0x01,
+ 0xc0, 0xf7, 0xf8, 0x11, 0xe2, 0x35, 0xbf, 0x1d, 0x7a, 0xac, 0xbf, 0x4d,
+ 0x17, 0x11, 0xb6, 0xc5, 0x66, 0x60, 0xe7, 0x5a, 0x4f, 0x9b, 0xd2, 0xae,
+ 0x3f, 0x4c, 0x97, 0xd1, 0x5f, 0x9e, 0x2c, 0x67, 0xda, 0x20, 0x33, 0x55,
+ 0x85, 0xe4, 0xe4, 0xac, 0xaf, 0x15, 0x2a, 0x11, 0x9c, 0x12, 0x46, 0xe1,
+ 0xbc, 0x97, 0xb2, 0x37, 0x3b, 0x97, 0x54, 0x4a, 0x98, 0xf9, 0x09, 0x95,
+ 0xb5, 0x31, 0xd0, 0xf8, 0x34, 0xda, 0x28, 0x07, 0x83, 0x30, 0xae, 0x97,
+ 0xb2, 0x0d, 0xd5, 0xe7, 0xd1, 0xdf, 0xf7, 0xa5, 0xdb, 0xd7, 0x88, 0xd1,
+ 0x73, 0xc4, 0x00, 0x44, 0x81, 0xbb, 0x74, 0xc5, 0xe3, 0x88, 0x5c, 0x2f,
+ 0x39, 0xde, 0xb2, 0xbc, 0xb2, 0x9a, 0x81, 0xfc, 0xf8, 0x09, 0xc8, 0xe8,
+ 0x20, 0x72, 0xae, 0xbc, 0x80, 0xde, 0xff, 0xa6, 0xca, 0x32, 0x62, 0xcf,
+ 0xeb, 0x77, 0xb1, 0x4c, 0xbb, 0xea, 0x93, 0xac, 0x9b, 0x35, 0x64, 0x7b,
+ 0xce, 0x40, 0x40, 0x26, 0xe2, 0x9f, 0x38, 0x2e, 0x70, 0xcc, 0xf3, 0xb4,
+ 0xb2, 0xa4, 0x24, 0xe6, 0x0b, 0x71, 0xcf, 0x0c, 0xd6, 0xf6, 0xc2, 0x92,
+ 0x7d, 0x83, 0x1c, 0x3a, 0x1d, 0xc0, 0x96, 0x55, 0x2b, 0xcf, 0xcf, 0xd0,
+ 0x33, 0xa9, 0x86, 0x2d, 0xae, 0x8d, 0xe9, 0xf6, 0x2b, 0x45, 0x71, 0xaf,
+ 0x57, 0x69, 0x69, 0x66, 0x2a, 0xab, 0x07, 0xb0, 0x29, 0x96, 0x31, 0x86,
+ 0x2e, 0xff, 0x95, 0xe2, 0x88, 0x24, 0x5c, 0xa5, 0x6e, 0xee, 0xb6, 0x4e,
+ 0x7a, 0x6a, 0xae, 0x8a, 0xd6, 0xd2, 0x32, 0xa4, 0xc2, 0xc9, 0x6b, 0x97,
+ 0xac, 0xb1, 0x02, 0xd6, 0xf4, 0x16, 0x84, 0xa9, 0x4f, 0x6a, 0x49, 0x28,
+ 0x9c, 0xdc, 0x10, 0x29, 0x79, 0x40, 0xdc, 0xc8, 0xad, 0x18, 0x23, 0xe3,
+ 0x96, 0xdb, 0x13, 0x45, 0xe9, 0xc4, 0x40, 0x69, 0xac, 0x84, 0x02, 0x90,
+ 0xcc, 0x0c, 0xe4, 0x4c, 0xff, 0x0e, 0x34, 0x36, 0xbf, 0x7f, 0x06, 0xbf,
+ 0x39, 0x50, 0x80, 0x3c, 0xc2, 0x2d, 0x1d, 0x3c, 0x06, 0xcc, 0x9a, 0x36,
+ 0x0e, 0x78, 0xe5, 0xa3, 0xcb, 0x99, 0x01, 0x76, 0x4d, 0xb8, 0xc0, 0xb0,
+ 0xb8, 0x44, 0x47, 0x19, 0xd5, 0x41, 0x87, 0xb3, 0x8d, 0xff, 0x46, 0xc7,
+ 0x4f, 0xd2, 0x49, 0x54, 0xa8, 0xbc, 0x87, 0x7f, 0x4e, 0x81, 0x30, 0x62,
+ 0xf7, 0xd2, 0xa2, 0x72, 0x40, 0xf6, 0xa1, 0x0e, 0x53, 0xca, 0x79, 0x49,
+ 0x7d, 0x7a, 0x37, 0x59, 0x59, 0x7c, 0xf1, 0x13, 0xfb, 0x57, 0xf0, 0x99,
+ 0x44, 0xf6, 0x39, 0x84, 0xb3, 0xbc, 0xdb, 0xf4, 0x69, 0xe9, 0xd8, 0xca,
+ 0x7a, 0xea, 0xed, 0xfb, 0xaf, 0xbd, 0x9c, 0x81, 0x45, 0x25, 0x36, 0xd6,
+ 0x91, 0x83, 0xcd, 0x04, 0xf8, 0xdc, 0xc6, 0x98, 0x80, 0x5d, 0x68, 0x88,
+ 0xc1, 0x5e, 0xc2, 0xd8, 0xfa, 0xfc, 0xfa, 0x4c, 0x5b, 0x63, 0x40, 0x4e,
+ 0xde, 0x58, 0xfa, 0x6a, 0x89, 0x50, 0xc2, 0x51, 0xb1, 0x4a, 0xbd, 0xea,
+ 0x80, 0x72, 0x8f, 0x95, 0x81, 0x20, 0x2c, 0x40, 0x34, 0x13, 0xe9, 0xce,
+ 0x46, 0x52, 0xc9, 0x53, 0xeb, 0xb7, 0xce, 0xd9, 0x1e, 0x46, 0x90, 0x91,
+ 0x6a, 0xf4, 0xc0, 0xea, 0x21, 0xd1, 0x42, 0xc4, 0x0c, 0xdb, 0xc0, 0x81,
+ 0x3e, 0x53, 0xb2, 0x95, 0x9d, 0x05, 0xb7, 0x50, 0x09, 0x20, 0x15, 0xe9,
+ 0x3d, 0x89, 0xaa, 0x1e, 0x35, 0x84, 0x54, 0x6b, 0x2e, 0x2a, 0xce, 0xe5,
+ 0x56, 0x3e, 0xf6, 0xc3, 0xbe, 0x9a, 0xda, 0x6b, 0x05, 0x1e, 0x52, 0x0d,
+ 0x91, 0xc8, 0xce, 0x3b, 0xc1, 0x4b, 0x73, 0xde, 0xa1, 0x68, 0x08, 0xe4,
+ 0x8b, 0x49, 0xf7, 0xfd, 0xe2, 0xf8, 0xd3, 0xc0, 0xc9, 0xe7, 0x3a, 0x1a,
+ 0x5a, 0xc0, 0xe5, 0xcb, 0x86, 0x17, 0xb4, 0xd3, 0xd5, 0x7c, 0x3f, 0xfe,
+ 0x2d, 0x61, 0x20, 0xb2, 0x25, 0x3a, 0xab, 0xca, 0x79, 0xca, 0x04, 0xc4,
+ 0x06, 0x0e, 0xc5, 0xf6, 0x91, 0x84, 0x2c, 0x2d, 0xf5, 0xa5, 0xf5, 0x60,
+ 0xf3, 0x38, 0xe6, 0x04, 0xb0, 0x58, 0x8f, 0x09, 0xdc, 0x6a, 0xee, 0x50,
+ 0x14, 0xf9, 0xb2, 0xba, 0x7f, 0x2a, 0x4e, 0x41, 0xfc, 0xcc, 0xb8, 0xc4,
+ 0x41, 0xfd, 0xc6, 0x85, 0x5e, 0x5a, 0x7e, 0x5d, 0x18, 0x42, 0xe5, 0x42,
+ 0xa5, 0xec, 0x7e, 0xa1, 0xfc, 0x35, 0x20, 0xbe, 0x96, 0x46, 0x27, 0x8b,
+ 0x7b, 0x91, 0xd9, 0xc4, 0x4b, 0xe7, 0xc2, 0x8d, 0x6d, 0xe5, 0x50, 0x58,
+ 0xcc, 0x65, 0x57, 0x22, 0x64, 0x65, 0x49, 0x61, 0x65, 0xe3, 0xcb, 0x78,
+ 0x87, 0xb3, 0x67, 0x9e, 0xb7, 0xb5, 0x7c, 0x39, 0x74, 0xfa, 0x2b, 0x51,
+ 0x25, 0xb5, 0xf3, 0x04, 0xfa, 0x3f, 0xed, 0x51, 0x8a, 0xe8, 0x78, 0x59,
+ 0xd5, 0xb9, 0x52, 0xbd, 0x9b, 0x26, 0x8b, 0x47, 0x93, 0x23, 0x18, 0x0c,
+ 0xa2, 0x66, 0x02, 0xc8, 0x6c, 0x01, 0xf9, 0x45, 0xc7, 0xc3, 0x0d, 0xac,
+ 0x69, 0x88, 0x99, 0x15, 0xb3, 0x0b, 0x51, 0x75, 0x9e, 0xf0, 0xef, 0xb6,
+ 0xfa, 0x31, 0xae, 0x8a, 0x47, 0x2e, 0x82, 0x8b, 0x3f, 0xad, 0x1e, 0x01,
+ 0x75, 0x05, 0xf3, 0x07, 0x52, 0xec, 0x25, 0xf9, 0xa4, 0x09, 0x8b, 0xe4,
+ 0x48, 0xc2, 0xd2, 0xc7, 0x50, 0x60, 0xf9, 0x1f, 0x21, 0x0d, 0x21, 0xd6,
+ 0xf1, 0x0f, 0x6d, 0xed, 0x37, 0x27, 0xb7, 0x07, 0xd6, 0x6e, 0x93, 0x12,
+ 0xd9, 0xd3, 0xe7, 0x25, 0xcb, 0x7c, 0x72, 0xe7, 0x21, 0x9a, 0xd1, 0xf0,
+ 0x63, 0x11, 0x1b, 0xe8, 0x0a, 0x25, 0x16, 0x45, 0x44, 0x71, 0x36, 0x9c,
+ 0x23, 0xaa, 0x7f, 0x76, 0xf9, 0xbe, 0x82, 0x16, 0x58, 0x1b, 0x59, 0x9d,
+ 0x22, 0x53, 0x8e, 0x61, 0x02, 0xbc, 0xa4, 0xb9, 0xfd, 0xb8, 0x52, 0x46,
+ 0x1e, 0x55, 0xcf, 0x38, 0xfa, 0x1c, 0xa7, 0x46, 0xe6, 0x66, 0xe9, 0x34,
+ 0xa9, 0x53, 0x36, 0x69, 0xf4, 0x45, 0xa1, 0x60, 0x14, 0x6e, 0x1b, 0x95,
+ 0x13, 0x41, 0xdd, 0x6b, 0x6b, 0x24, 0xd8, 0x64, 0xa2, 0x7e, 0xe7, 0x42,
+ 0xd8, 0xe2, 0xea, 0x1e, 0x4d, 0xd2, 0xf0, 0x2e, 0x63, 0xee, 0xe5, 0x11,
+ 0x29, 0x6e, 0x74, 0xbd, 0x05, 0x57, 0x38, 0xcf, 0x26, 0xbd, 0xc6, 0x96,
+ 0x33, 0x5e, 0xd4, 0x06, 0xc0, 0x53, 0x07, 0xe8, 0x83, 0xe9, 0x25, 0xfc,
+ 0x5d, 0xd1, 0x9a, 0x44, 0xb6, 0xd1, 0xa0, 0x1c, 0x74, 0x07, 0x7d, 0xb9,
+ 0x6b, 0x69, 0x59, 0xdf, 0xee, 0x82, 0x4d, 0xbf, 0xf6, 0xa8, 0xce, 0x8e,
+ 0x89, 0xb2, 0xd1, 0xb6, 0xfe, 0x56, 0x19, 0x50, 0x3d, 0x3b, 0x5d, 0xa7,
+ 0x83, 0x54, 0x8c, 0x44, 0x78, 0xd1, 0x1c, 0x76, 0x9b, 0x2c, 0xc3, 0x79,
+ 0x3a, 0xa5, 0x12, 0xe7, 0xc5, 0x16, 0xe8, 0xd1, 0x50, 0x60, 0x0e, 0xf8,
+ 0x94, 0x29, 0x29, 0x1d, 0xa3, 0x32, 0xb8, 0xc5, 0x8b, 0xc3, 0xbe, 0x04,
+ 0xa8, 0x5e, 0x03, 0x06, 0x66, 0x03, 0xc1, 0x3c, 0x04, 0xd2, 0xb9, 0x53,
+ 0x35, 0xea, 0x48, 0xe5, 0xf7, 0x53, 0x7c, 0xf5, 0xc3, 0x77, 0xc3, 0x19,
+ 0xc1, 0x10, 0x29, 0x0b, 0xbd, 0xd1, 0x81, 0xf6, 0x8e, 0xbf, 0x2f, 0x3f,
+ 0x5e, 0x8b, 0x0f, 0x12, 0x46, 0x14, 0x99, 0xa1, 0x55, 0x2f, 0x55, 0xe9,
+ 0x1a, 0x68, 0xfa, 0x80, 0x28, 0xf6, 0x2d, 0x4b, 0x79, 0x80, 0x12, 0x09,
+ 0x34, 0x1a, 0xe1, 0x10, 0x91, 0x37, 0xca, 0x7a, 0x85, 0x7d, 0x77, 0xf0,
+ 0x1c, 0x53, 0x42, 0x1a, 0xff, 0x96, 0x53, 0x06, 0xc0, 0x63, 0xc0, 0xf6,
+ 0x74, 0x79, 0x22, 0xb4, 0x6b, 0x39, 0xd7, 0x69, 0xd6, 0x62, 0xad, 0x8b,
+ 0xff, 0x8d, 0x2f, 0x80, 0xd1, 0x89, 0xe7, 0x7c, 0x2c, 0x3f, 0xa5, 0x2e,
+ 0x72, 0x20, 0x31, 0x8a, 0xd5, 0x3c, 0x65, 0xfb, 0x87, 0x1f, 0xff, 0xc4,
+ 0xdc, 0x4a, 0x7b, 0x85, 0xf4, 0x76, 0xb6, 0xb6, 0x00, 0x26, 0xbc, 0xa4,
+ 0xc6, 0x8a, 0x50, 0xc3, 0x97, 0x92, 0xb7, 0x1a, 0x65, 0x6a, 0xa8, 0x29,
+ 0x55, 0x74, 0xb5, 0x93, 0x6e, 0x71, 0x70, 0x39, 0x3c, 0x5e, 0xab, 0x91,
+ 0x30, 0x91, 0x93, 0x79, 0x3f, 0xf6, 0x5f, 0x36, 0x87, 0x5c, 0x88, 0x84,
+ 0x0f, 0x51, 0x94, 0x77, 0x41, 0xf5, 0xd5, 0x2a, 0x7e, 0xed, 0x7a, 0x07,
+ 0x62, 0x60, 0xe5, 0xb0, 0x5c, 0x88, 0x95, 0xd0, 0x10, 0xdd, 0xef, 0xb2,
+ 0x31, 0x85, 0x23, 0x2b, 0x7c, 0xe6, 0x71, 0xf9, 0xa8, 0xe4, 0xb3, 0x3f,
+ 0xe1, 0x78, 0x41, 0x7b, 0x8a, 0x74, 0xde, 0x7b, 0x84, 0xb7, 0xce, 0x46,
+ 0x1e, 0xeb, 0xc2, 0x4c, 0xbd, 0xd5, 0x04, 0x80, 0x9f, 0x43, 0x7f, 0x3d,
+ 0xe8, 0xe3, 0x6d, 0xb3, 0x76, 0xf8, 0x08, 0x28, 0x80, 0x5b, 0x3d, 0xc3,
+ 0xe7, 0x8b, 0x1e, 0x56, 0x43, 0xe3, 0xa0, 0x1a, 0xf4, 0xff, 0x35, 0xa3,
+ 0x8d, 0xff, 0x19, 0xd8, 0xa0, 0x50, 0x3b, 0x7c, 0x2f, 0x71, 0x20, 0x17,
+ 0xcc, 0xc5, 0x30, 0x0f, 0x97, 0x11, 0x6e, 0x4c, 0xbe, 0x4c, 0x9b, 0x3f,
+ 0x67, 0x76, 0xa9, 0xb9, 0x5f, 0x95, 0xde, 0x87, 0xcf, 0xa4, 0x0a, 0x61,
+ 0xc4, 0x02, 0x16, 0x99, 0xce, 0xf8, 0x00, 0x8b, 0x96, 0x12, 0xac, 0x7a,
+ 0x15, 0x72, 0xbe, 0xf3, 0xa0, 0xaf, 0x21, 0xb9, 0xf8, 0x34, 0x10, 0xf2,
+ 0x53, 0x90, 0xd2, 0xcb, 0x21, 0xd4, 0x8e, 0x98, 0xca, 0x96, 0x64, 0x73,
+ 0x60, 0x3d, 0x4d, 0x56, 0xd0, 0x24, 0x0a, 0xff, 0x1a, 0x65, 0x5e, 0x64,
+ 0xa9, 0xcb, 0x66, 0x00, 0xfb, 0x6c, 0x87, 0xc4, 0x70, 0x56, 0x9f, 0x9e,
+ 0x39, 0xd1, 0xb5, 0x8a, 0xe0, 0x54, 0xe3, 0xa7, 0x7a, 0xad, 0x0f, 0x4f,
+ 0xe5, 0x5b, 0x81, 0xdb, 0xdb, 0x17, 0xd2, 0x0c, 0xc9, 0x96, 0x65, 0x8c,
+ 0x1d, 0xba, 0x28, 0xa7, 0x63, 0xa4, 0x22, 0xe0, 0xbe, 0x33, 0x44, 0x5e,
+ 0x14, 0xc0, 0x8d, 0x02, 0xb6, 0xc0, 0x7f, 0xfa, 0x79, 0x29, 0xc8, 0x69,
+ 0x69, 0x3c, 0xef, 0x39, 0xdd, 0x52, 0xfe, 0xea, 0x3a, 0x99, 0xd3, 0x71,
+ 0x5c, 0x7a, 0x1d, 0x14, 0xaf, 0xb9, 0xae, 0x77, 0xef, 0x8e, 0xdd, 0xfa,
+ 0xdf, 0x49, 0x14, 0x53, 0x9f, 0x86, 0xb0, 0x96, 0xa6, 0x66, 0x2b, 0x05,
+ 0x70, 0x9e, 0xa2, 0x2c, 0xb6, 0xa2, 0xc6, 0xf0, 0x1a, 0xbc, 0x11, 0x8a,
+ 0x50, 0x07, 0x8a, 0x62, 0x3d, 0x19, 0xcf, 0x54, 0x51, 0x22, 0x66, 0x09,
+ 0x3a, 0x81, 0xe7, 0x16, 0xca, 0xb6, 0x47, 0x71, 0xcc, 0x2d, 0x3a, 0x41,
+ 0xb4, 0x8f, 0x42, 0xdb, 0xa8, 0x5a, 0xc4, 0xe8, 0xfe, 0xc8, 0xbd, 0x15,
+ 0xcf, 0x52, 0x46, 0x0b, 0xb6, 0xb3, 0x74, 0x9c, 0x07, 0x5e, 0xac, 0x4b,
+ 0xc7, 0xf9, 0x17, 0xd1, 0xb8, 0x18, 0x9a, 0x58, 0xb4, 0x7c, 0x50, 0x0b,
+ 0x25, 0x7b, 0xc0, 0x55, 0xcf, 0x79, 0xc7, 0xf0, 0x71, 0x20, 0x78, 0x7f,
+ 0x65, 0x91, 0xb8, 0x03, 0x92, 0x57, 0x1c, 0xfb, 0x94, 0x6a, 0xf0, 0x46,
+ 0x29, 0x40, 0x1e, 0x62, 0x84, 0x94, 0xd3, 0xec, 0xcf, 0x92, 0x4d, 0xca,
+ 0x90, 0xcf, 0x0c, 0xcd, 0x28, 0xee, 0xc8, 0xe5, 0x39, 0xbe, 0x5d, 0x7d,
+ 0xf9, 0x86, 0x4b, 0xa5, 0x9a, 0xd8, 0xdd, 0xd1, 0x94, 0x70, 0x58, 0x0c,
+ 0x09, 0x50, 0x85, 0x4e, 0xb2, 0x24, 0x06, 0xbe, 0xab, 0xab, 0xfd, 0x6e,
+ 0xcd, 0x01, 0x47, 0x81, 0xff, 0x18, 0xc5, 0x72, 0xc7, 0xe4, 0x40, 0x0f,
+ 0x1a, 0x0d, 0x3f, 0xd6, 0x9f, 0x5d, 0x60, 0x74, 0x99, 0x36, 0xb3, 0xd6,
+ 0x74, 0x08, 0xc0, 0x60, 0xc7, 0xd4, 0x40, 0xe8, 0x25, 0x77, 0x31, 0x64,
+ 0x70, 0x43, 0x97, 0x22, 0xde, 0x69, 0xde, 0x11, 0x2d, 0x82, 0x02, 0x6d,
+ 0x66, 0xc3, 0x6d, 0xd5, 0xab, 0x7a, 0xdf, 0x36, 0xfe, 0xd6, 0x58, 0xb8,
+ 0xf2, 0x94, 0x33, 0xbb, 0x8a, 0xc7, 0x40, 0x3b, 0x92, 0xe8, 0x95, 0xf8,
+ 0xf5, 0x47, 0x84, 0x6a, 0x89, 0xaa, 0x17, 0x2a, 0x8d, 0x3d, 0x11, 0x93,
+ 0x4d, 0x77, 0x3e, 0x89, 0x06, 0xda, 0x24, 0x65, 0xe1, 0x1a, 0x7e, 0x1b,
+ 0x18, 0x43, 0xc3, 0x8b, 0xf9, 0x44, 0xe3, 0x29, 0x91, 0xf1, 0x50, 0x10,
+ 0xfe, 0xc6, 0xa7, 0x4e, 0xc6, 0x98, 0xbf, 0x8f, 0x29, 0xd7, 0x99, 0xd4,
+ 0x5c, 0x69, 0x5e, 0xc3, 0x82, 0x85, 0x54, 0x03, 0xae, 0xc4, 0xc2, 0x2b,
+ 0xdd, 0x77, 0x26, 0xd8, 0x64, 0x88, 0x77, 0x75, 0xce, 0x2f, 0xca, 0xbe,
+ 0x7d, 0xea, 0x60, 0x90, 0x0a, 0x61, 0xf6, 0x16, 0x05, 0x31, 0xa9, 0xc9,
+ 0xec, 0xf3, 0x9b, 0x4d, 0xfa, 0x7b, 0x47, 0x1c, 0xdc, 0xf4, 0xf1, 0xa0,
+ 0xa7, 0x25, 0xd4, 0xf7, 0xb1, 0x03, 0x34, 0xb3, 0x95, 0x65, 0x60, 0x97,
+ 0x97, 0xdf, 0x86, 0x4a, 0x17, 0x1a, 0x7b, 0x33, 0xde, 0x87, 0xa6, 0x5c,
+ 0xfd, 0x6a, 0x87, 0xbd, 0x63, 0xb5, 0xbb, 0x11, 0x25, 0x85, 0x8f, 0x3a,
+ 0x62, 0x5e, 0xdc, 0x82, 0xca, 0x21, 0x86, 0xe5, 0x8f, 0xaf, 0x72, 0x81,
+ 0x17, 0xf4, 0x34, 0xf8, 0x27, 0xeb, 0xc4, 0x8a, 0xee, 0x42, 0xa7, 0x00,
+ 0xc2, 0x52, 0xf0, 0x6e, 0xb5, 0xb9, 0xd7, 0xff, 0x5f, 0x75, 0x82, 0xca,
+ 0x36, 0xe1, 0xbb, 0xa3, 0x24, 0x60, 0x98, 0x3d, 0xe2, 0xb5, 0x21, 0x40,
+ 0x44, 0xe6, 0x14, 0xec, 0xd0, 0x81, 0x53, 0x4e, 0x4b, 0x5a, 0x6e, 0xef,
+ 0x70, 0x58, 0x5a, 0x82, 0x1e, 0x76, 0xd7, 0x2c, 0x64, 0xaa, 0xbc, 0x5a,
+ 0x70, 0xfc, 0x00, 0x50, 0x57, 0x91, 0xab, 0x32, 0x79, 0xbb, 0x16, 0x88,
+ 0x44, 0xe0, 0x48, 0x31, 0x47, 0xab, 0xd9, 0x26, 0x96, 0xfc, 0x3b, 0x00,
+ 0x54, 0x8f, 0xd9, 0xfc, 0xe2, 0xb4, 0xf2, 0x96, 0xcd, 0xcf, 0x48, 0x27,
+ 0x7a, 0xd5, 0xfb, 0xf0, 0x92, 0xb5, 0xaa, 0x5f, 0x1f, 0x8f, 0x1f, 0x9d,
+ 0x72, 0x9d, 0x40, 0x37, 0x32, 0xa0, 0x36, 0x94, 0x5f, 0x47, 0xbf, 0xc8,
+ 0x93, 0xbf, 0x13, 0x93, 0xd3, 0x5e, 0x94, 0xeb, 0x90, 0x1f, 0x8f, 0x6e,
+ 0x9e, 0xec, 0xc7, 0x96, 0xfa, 0x15, 0xe2, 0x94, 0x34, 0xd5, 0x70, 0x06,
+ 0xe3, 0x73, 0x81, 0xf0, 0xb0, 0x57, 0x9d, 0x28, 0xcb, 0xaf, 0xd2, 0xd4,
+ 0xdf, 0x51, 0xe7, 0x87, 0xdf, 0xa6, 0x78, 0xd7, 0x29, 0xd4, 0xc4, 0x48,
+ 0x1c, 0x58, 0xbd, 0x00, 0xd2, 0xd7, 0xd3, 0x86, 0xe0, 0x75, 0x53, 0x8f,
+ 0xae, 0x76, 0x00, 0xa8, 0xae, 0x53, 0x63, 0x70, 0xc0, 0xc5, 0x36, 0x73,
+ 0x85, 0x4d, 0xf8, 0x46, 0xd6, 0xa6, 0x4c, 0x3a, 0x9c, 0xe1, 0xc7, 0x58,
+ 0xb0, 0xff, 0x74, 0xbe, 0x53, 0x8d, 0x40, 0xa0, 0x29, 0xb0, 0xa4, 0x46,
+ 0xc4, 0x5a, 0xa7, 0x18, 0xd8, 0xfd, 0xf9, 0xa8, 0x3c, 0xa9, 0xd2, 0x67,
+ 0xbf, 0xc9, 0x18, 0xd5, 0x0f, 0x8e, 0x93, 0xfe, 0xb2, 0x92, 0xad, 0xfe,
+ 0x30, 0xf5, 0xfb, 0xf3, 0x9c, 0xa5, 0x1d, 0x44, 0x12, 0x20, 0x23, 0x29,
+ 0xa6, 0xba, 0x50, 0xe6, 0xd0, 0x57, 0x91, 0x9b, 0x39, 0x68, 0xaf, 0xaf,
+ 0xbd, 0x61, 0x4d, 0xb4, 0x70, 0x48, 0x99, 0xf3, 0xd8, 0x1e, 0x32, 0x00,
+ 0x21, 0x54, 0x65, 0xd9, 0x52, 0xd1, 0x16, 0xce, 0x24, 0x73, 0x3f, 0xf4,
+ 0x51, 0x23, 0xf7, 0xa3, 0xb0, 0xcc, 0xd2, 0x56, 0x0b, 0xe1, 0x06, 0x19,
+ 0xdc, 0x43, 0xcc, 0x22, 0xb6, 0x64, 0x8e, 0x8e, 0x97, 0xde, 0x76, 0x39,
+ 0xd4, 0x35, 0xee, 0x05, 0xdb, 0x13, 0x19, 0x91, 0xde, 0x50, 0xfb, 0x5a,
+ 0x6c, 0x7a, 0x7d, 0xce, 0x6e, 0xbb, 0xe5, 0x56, 0x75, 0xe1, 0xaf, 0x5d,
+ 0x41, 0x29, 0xd1, 0xb9, 0xcc, 0x7e, 0xf9, 0xdb, 0xf2, 0x65, 0xe4, 0x7e,
+ 0xd9, 0x34, 0x74, 0xa3, 0x20, 0x1b, 0x77, 0x41, 0xf7, 0xbe, 0x04, 0x88,
+ 0x77, 0x33, 0x73, 0x27, 0xdc, 0x2d, 0x05, 0xf1, 0xaf, 0xa0, 0xe6, 0xb4,
+ 0xce, 0xa1, 0xa6, 0x19, 0x84, 0x7d, 0xa3, 0xb8, 0x88, 0x8c, 0x76, 0xcf,
+ 0x5d, 0xc1, 0x32, 0xe6, 0x48, 0x94, 0xf6, 0xb6, 0x80, 0x08, 0x8b, 0xf5,
+ 0xc6, 0x0f, 0x2e, 0x35, 0x55, 0x3f, 0xf1, 0x32, 0x9a, 0x07, 0xa9, 0xd9,
+ 0x53, 0x70, 0x23, 0x7c, 0x18, 0xac, 0x51, 0x08, 0x2e, 0x05, 0x04, 0xa3,
+ 0x50, 0xd3, 0xf3, 0x39, 0x51, 0x87, 0x07, 0x71, 0x6f, 0xf2, 0x4e, 0x6b,
+ 0x0e, 0xa2, 0x12, 0xdc, 0xb9, 0x69, 0x9a, 0x38, 0xcd, 0xfd, 0x28, 0x26,
+ 0xdf, 0x8c, 0x08, 0x9f, 0x85, 0xad, 0x41, 0x56, 0xa7, 0xdc, 0x5d, 0x3f,
+ 0x26, 0x3c, 0x3d, 0xd1, 0x86, 0x36, 0x39, 0x78, 0x26, 0x72, 0x5a, 0xb6,
+ 0xf9, 0x61, 0x14, 0x5e, 0x59, 0x75, 0xda, 0xd0, 0x22, 0x69, 0x22, 0xc0,
+ 0x1f, 0x1c, 0xea, 0x24, 0xaf, 0x42, 0xf3, 0xd5, 0x7b, 0x64, 0x0b, 0xe3,
+ 0x32, 0xd1, 0xa0, 0x1e, 0x43, 0x53, 0x17, 0x16, 0x9b, 0xaa, 0x9d, 0xcc,
+ 0x26, 0x6e, 0x83, 0x6e, 0x31, 0xea, 0x11, 0x60, 0x26, 0x8b, 0xe3, 0x0d,
+ 0xb8, 0x4c, 0xeb, 0x04, 0x3a, 0xe7, 0x09, 0x59, 0x42, 0x35, 0xc5, 0x2b,
+ 0x9d, 0x8b, 0x03, 0xd5, 0x28, 0x02, 0x91, 0x25, 0x7a, 0x17, 0x8e, 0x67,
+ 0x4e, 0x73, 0xf5, 0x01, 0x7f, 0xe1, 0xed, 0xa7, 0xc9, 0x3d, 0xed, 0x04,
+ 0x6b, 0x73, 0xfb, 0x26, 0xe9, 0x2b, 0x3f, 0x47, 0x0c, 0x4b, 0x85, 0x15,
+ 0xcf, 0x2a, 0x1d, 0x19, 0xcd, 0xf4, 0x1e, 0x89, 0xb3, 0x82, 0x8b, 0x19,
+ 0x88, 0x0a, 0x8f, 0xa5, 0x55, 0x85, 0x07, 0x06, 0x4e, 0x6f, 0x95, 0x03,
+ 0x91, 0xdc, 0x74, 0x17, 0x8a, 0x70, 0xc4, 0x1c, 0x46, 0x02, 0x12, 0x21,
+ 0x52, 0x3b, 0x90, 0xb0, 0x78, 0xa7, 0x35, 0x39, 0xd5, 0xb1, 0x3d, 0xef,
+ 0x82, 0xac, 0xe6, 0x56, 0x0c, 0x46, 0xf1, 0xe5, 0x3b, 0x8c, 0x12, 0xd7,
+ 0x06, 0xf7, 0xf4, 0x83, 0x7a, 0xac, 0xf8, 0xef, 0xe1, 0x99, 0xbe, 0x51,
+ 0xdd, 0xe0, 0x65, 0x22, 0x55, 0xf9, 0x58, 0x99, 0x54, 0x30, 0xef, 0x4b,
+ 0xa2, 0xeb, 0xf3, 0x28, 0xb8, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, 0xe2,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x12, 0x00, 0x01, 0x10,
+ 0x24, 0x00, 0x1e, 0xee, 0x32, 0xe6, 0x00, 0x5b, 0x20, 0x67, 0xee, 0x1c,
+ 0x1f, 0x6f, 0x71, 0x91, 0xe5, 0x81, 0xc0, 0x6c, 0xe7, 0xa7, 0x2c, 0xc3,
+ 0x7a, 0x59, 0x76, 0x69, 0x47, 0x58, 0xdd, 0x4e, 0x4b, 0x96, 0xb0, 0x65,
+ 0x4f, 0xde, 0x5d, 0x3f, 0x3d, 0x15, 0x73, 0x1c, 0x0a, 0xce, 0x14, 0x80,
+ 0xad, 0x54, 0x3d, 0xd9, 0x77, 0xfd, 0xf9, 0x18, 0x3a, 0x87, 0x60, 0x4d,
+ 0x18, 0xa7, 0xd5, 0x32, 0xf5, 0x8c, 0x73, 0xf4, 0x00, 0x5c, 0x8a, 0x2c,
+ 0xa2, 0x2e, 0x05, 0xc1, 0x01, 0x3e, 0x63, 0x48, 0xf8, 0xe2, 0x64, 0x60,
+ 0xaa, 0xc2, 0xdc, 0xf3, 0xd8, 0x95, 0x41, 0xa7, 0x0e, 0xec, 0xf3, 0xde,
+ 0xf8, 0xc7, 0x7c, 0x50, 0x86, 0xa9, 0x7f, 0x97, 0x61, 0x13, 0x08, 0xf8,
+ 0xdb, 0xd2, 0x5e, 0xf5, 0x54, 0x3d, 0xc5, 0x9a, 0xaa, 0xaa, 0xaa, 0xa6,
+ 0x5a, 0xb7, 0x24, 0xad, 0x9a, 0x30, 0x74, 0x6e, 0xcf, 0x0f, 0x5a, 0xaa,
+ 0xaa, 0xaa, 0xa8, 0x0d, 0xca, 0xc7, 0xdb, 0x3b, 0x86, 0xea, 0xb0, 0xb0,
+ 0x57, 0x2e, 0xc0, 0x8d, 0x0e, 0x6f, 0xf5, 0xda, 0x99, 0xe4, 0x0b, 0x86,
+ 0xb7, 0xba, 0xb5, 0xe8, 0xef, 0x38, 0xf8, 0x4a, 0x37, 0x51, 0x3f, 0x70,
+ 0x8c, 0x13, 0xdf, 0x8b, 0xbb, 0x2b, 0x2b, 0xfc, 0x8c, 0x70, 0x34, 0xf3,
+ 0x01, 0xe5, 0xc7, 0x87, 0x1f, 0x95, 0x69, 0x17, 0x89, 0x97, 0x9b, 0x69,
+ 0xc6, 0x68, 0x5a, 0x9e, 0x98, 0xc1, 0x77, 0x8c, 0xe4, 0xc3, 0xdd, 0xef,
+ 0xa6, 0x1b, 0x19, 0x66, 0xfe, 0x17, 0xd3, 0xa5, 0x5b, 0x6a, 0x68, 0x30,
+ 0x36, 0x44, 0x04, 0x1c, 0xcb, 0x40, 0x04, 0xd1, 0x31, 0x20, 0x5a, 0xd7,
+ 0x38, 0xa9, 0xfb, 0x89, 0x25, 0xc2, 0xd0, 0x11, 0xd4, 0x28, 0xce, 0x86,
+ 0xc7, 0xf8, 0xb3, 0x86, 0x2f, 0x85, 0xd7, 0xe4, 0x08, 0x6a, 0x97, 0xfd,
+ 0x0f, 0xfc, 0x19, 0x4c, 0xeb, 0x5e, 0x29, 0xa6, 0x1f, 0x46, 0x37, 0x02,
+ 0x5d, 0x1f, 0xc8, 0x1c, 0xda, 0x6d, 0x48, 0xcf, 0xd5, 0xaf, 0x51, 0xdb,
+ 0xa5, 0xa7, 0xba, 0x42, 0xb3, 0xd5, 0x14, 0x93, 0xaf, 0xc1, 0xdd, 0x54,
+ 0x7a, 0xb2, 0x0a, 0x3d, 0xd2, 0x79, 0x95, 0x3c, 0x75, 0xc2, 0xd3, 0xce,
+ 0xb4, 0xb6, 0xe8, 0x97, 0xdd, 0x36, 0xa6, 0x9d, 0x93, 0x43, 0xec, 0x04,
+ 0x82, 0xcf, 0x17, 0x41, 0xa4, 0x0d, 0x6e, 0x45, 0x28, 0x47, 0x0e, 0x1e,
+ 0x55, 0x26, 0xd9, 0x68, 0x74, 0x68, 0x59, 0xb0, 0xda, 0x96, 0xee, 0xf8,
+ 0x62, 0x16, 0xb4, 0xdf, 0x94, 0x86, 0xea, 0x31, 0xd4, 0xa3, 0xb9, 0xf8,
+ 0xdd, 0xcb, 0xb7, 0x72, 0x6d, 0xf8, 0xf4, 0xfd, 0x19, 0xf2, 0x81, 0x02,
+ 0x22, 0x56, 0x42, 0x81, 0xc1, 0xe1, 0x1b, 0x30, 0x20, 0x44, 0x12, 0x94,
+ 0xa6, 0xa4, 0xfb, 0xa5, 0x6d, 0xf5, 0xc4, 0x7b, 0xcd, 0xc9, 0x54, 0x28,
+ 0x44, 0xe2, 0x72, 0xe1, 0x1f, 0x4d, 0x5f, 0xdc, 0xdb, 0xdf, 0x7d, 0xae,
+ 0xf3, 0xc5, 0xe6, 0x69, 0x9f, 0x5c, 0xd1, 0xdf, 0xf8, 0xb9, 0x72, 0x0e,
+ 0xad, 0xec, 0xec, 0xab, 0x71, 0x80, 0x0b, 0x52, 0xa4, 0xbc, 0xff, 0x20,
+ 0xf8, 0x34, 0x07, 0xe7, 0x71, 0x02, 0x70, 0x0b, 0xae, 0x8a, 0x6d, 0x9a,
+ 0x92, 0x81, 0x1b, 0xe2, 0x6e, 0x19, 0x4a, 0xac, 0xe9, 0xf4, 0xd8, 0x9a,
+ 0xd2, 0xb6, 0x5e, 0xad, 0x75, 0x40, 0x61, 0x81, 0x17, 0x4d, 0xd0, 0x71,
+ 0xe7, 0xd6, 0x2d, 0x43, 0x3b, 0x63, 0x97, 0x9b, 0x85, 0x51, 0x69, 0xd2,
+ 0xb9, 0xde, 0xe5, 0x00, 0xd4, 0xb4, 0x20, 0x1c, 0x72, 0xe9, 0xb5, 0xfd,
+ 0xec, 0x43, 0xb6, 0xb4, 0xb8, 0x65, 0xaa, 0xb4, 0x39, 0xf7, 0x20, 0x53,
+ 0x2e, 0x96, 0x7a, 0x87, 0x33, 0x45, 0xd2, 0x27, 0x55, 0xfc, 0xe8, 0x13,
+ 0x98, 0x32, 0x31, 0xcf, 0xed, 0x2d, 0xe8, 0xff, 0xb8, 0xcb, 0xe8, 0x46,
+ 0x01, 0x8d, 0xba, 0x37, 0xcb, 0xac, 0xd2, 0x2d, 0x23, 0xf1, 0x4a, 0x16,
+ 0xae, 0x0e, 0x0a, 0x94, 0xed, 0x2f, 0xe1, 0x57, 0x53, 0x8f, 0xf2, 0x35,
+ 0xed, 0xcf, 0x5b, 0xb0, 0xe2, 0x8f, 0x7f, 0x86, 0x37, 0x60, 0x67, 0x0e,
+ 0x96, 0xf3, 0x33, 0xd3, 0x6e, 0x2a, 0xd1, 0x8e, 0xd6, 0xbf, 0xd8, 0xc6,
+ 0xd2, 0xec, 0xb2, 0xd8, 0x9a, 0x53, 0xd5, 0x6b, 0xac, 0x47, 0x39, 0xf1,
+ 0xdd, 0x60, 0x35, 0xca, 0xfa, 0x78, 0xab, 0xeb, 0x2b, 0x31, 0x32, 0x47,
+ 0x72, 0x91, 0xa0, 0x02, 0x96, 0x8c, 0xca, 0x32, 0x86, 0x77, 0x8d, 0xbb,
+ 0x22, 0x14, 0x3d, 0x04, 0x7b, 0x0e, 0xea, 0xd9, 0xa5, 0x71, 0xe8, 0x4f,
+ 0x49, 0x81, 0x7a, 0x12, 0x6a, 0x63, 0x0f, 0x85, 0x67, 0x8a, 0x62, 0xd9,
+ 0x29, 0xc4, 0xcf, 0x01, 0x56, 0x27, 0x97, 0xdb, 0x0e, 0x61, 0x41, 0xe3,
+ 0x64, 0x2b, 0x5c, 0x21, 0x65, 0xf8, 0x1d, 0x93, 0x54, 0x63, 0xb2, 0x64,
+ 0xa8, 0xaa, 0x44, 0xcc, 0xe8, 0xa6, 0x6c, 0x98, 0x1b, 0x81, 0xeb, 0x2c,
+ 0x99, 0x36, 0x8e, 0x10, 0x08, 0x1a, 0x7a, 0x5c, 0xcf, 0x6a, 0xfe, 0xbc,
+ 0x22, 0xc3, 0xa1, 0x2b, 0x47, 0x1f, 0x64, 0xcb, 0x7c, 0x92, 0x6d, 0xe3,
+ 0x97, 0xe0, 0x16, 0x0c, 0xef, 0x10, 0x53, 0x82, 0x4e, 0x58, 0xb1, 0x0b,
+ 0x33, 0x9e, 0x31, 0x7f, 0x8a, 0xfc, 0x4a, 0x4b, 0x91, 0xdf, 0x0a, 0x54,
+ 0xfb, 0x46, 0x7f, 0x68, 0x30, 0x49, 0x48, 0x8b, 0x3d, 0x91, 0x3b, 0xcd,
+ 0xbd, 0x3b, 0x11, 0x93, 0x2d, 0xe2, 0xc8, 0x0e, 0xba, 0x72, 0x40, 0xf7,
+ 0x48, 0xa7, 0xe3, 0x6c, 0xe8, 0x8e, 0xc1, 0x18, 0x37, 0x34, 0x5e, 0xe7,
+ 0x39, 0xce, 0x73, 0xd5, 0xc9, 0x06, 0xb9, 0xfe, 0x90, 0x00, 0xa9, 0x02,
+ 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0d,
+ 0x00, 0x04, 0x10, 0x24, 0x00, 0x18, 0x00, 0x1b, 0x88, 0x8f, 0xe7, 0xe8,
+ 0x74, 0x83, 0x76, 0x51, 0x29, 0xe2, 0x7a, 0x7b, 0xb6, 0x94, 0xd0, 0x6a,
+ 0xd6, 0xfe, 0xa6, 0x7a, 0x42, 0x97, 0x24, 0xc4, 0x9f, 0xf9, 0x78, 0x1d,
+ 0x8c, 0x00, 0x90, 0xf4, 0xa1, 0xa7, 0x46, 0xef, 0x68, 0x52, 0xa0, 0xf7,
+ 0xda, 0xc7, 0x22, 0x9c, 0x6f, 0x67, 0x00, 0x85, 0x5d, 0x46, 0x54, 0x05,
+ 0x68, 0x7a, 0x0b, 0xcb, 0xca, 0xa7, 0x8a, 0x98, 0x00, 0x04, 0x06, 0x8b,
+ 0xa7, 0x23, 0xb7, 0x69, 0xcd, 0x99, 0x56, 0xe0, 0xb3, 0x03, 0xe1, 0xd8,
+ 0x4e, 0xad, 0xd5, 0xcd, 0xb8, 0xb0, 0x0d, 0xc4, 0x87, 0x71, 0xc3, 0x38,
+ 0xae, 0x09, 0x24, 0x92, 0x49, 0xd6, 0xde, 0x55, 0x45, 0xac, 0x49, 0x69,
+ 0x60, 0x57, 0x2f, 0x0e, 0xfb, 0x64, 0xa0, 0xf0, 0x5a, 0x4c, 0x54, 0x3c,
+ 0x0f, 0x1d, 0x0e, 0xf5, 0x74, 0x82, 0x69, 0xc8, 0x4d, 0xee, 0xc3, 0xb7,
+ 0xff, 0x6c, 0x75, 0xfb, 0x0c, 0x50, 0x70, 0xef, 0x80, 0x55, 0xc6, 0x98,
+ 0xf1, 0x5c, 0x5e, 0xfb, 0x77, 0x39, 0x50, 0x12, 0xeb, 0x28, 0x4e, 0xb7,
+ 0x8d, 0x8c, 0x6a, 0x57, 0x55, 0xad, 0x25, 0xcd, 0x08, 0x33, 0xa7, 0x8d,
+ 0x26, 0xe1, 0x07, 0x01, 0x16, 0x53, 0xc1, 0x96, 0x5b, 0x9c, 0xe4, 0xba,
+ 0xd6, 0x61, 0x11, 0x44, 0xf7, 0x63, 0x82, 0x50, 0xe0, 0x35, 0x27, 0x25,
+ 0x69, 0x93, 0xdd, 0xf5, 0x34, 0x09, 0xbe, 0xc3, 0x80, 0x08, 0xe2, 0xfe,
+ 0x19, 0xfb, 0xcc, 0xe5, 0xaa, 0x1f, 0x4e, 0x3a, 0x77, 0xac, 0x04, 0x14,
+ 0x47, 0x93, 0x07, 0xa4, 0x0e, 0x20, 0xc1, 0x22, 0x10, 0x02, 0xc6, 0x0b,
+ 0xe0, 0x8a, 0xf1, 0xcd, 0x00, 0x53, 0x4c, 0xad, 0x98, 0xdb, 0x8a, 0x8a,
+ 0xfe, 0xb3, 0xe2, 0x8d, 0x4b, 0x63, 0x6b, 0xc8, 0xd1, 0xc6, 0xb5, 0xec,
+ 0x0c, 0x63, 0xda, 0x2f, 0x06, 0x64, 0xaa, 0x4b, 0xb1, 0x07, 0x10, 0x12,
+ 0xd7, 0x9e, 0x4b, 0x17, 0xd6, 0xf5, 0xe5, 0xa2, 0xdf, 0xf9, 0xa7, 0x19,
+ 0x03, 0x8e, 0x0c, 0x60, 0xc3, 0x27, 0x6c, 0x8c, 0xbe, 0x11, 0xc7, 0xb1,
+ 0x73, 0x2c, 0x17, 0x94, 0x62, 0xa1, 0x9a, 0xf4, 0xf8, 0x71, 0x77, 0x30,
+ 0x42, 0x47, 0xa3, 0xc7, 0x60, 0x63, 0x7d, 0x70, 0x12, 0x98, 0xf7, 0x7f,
+ 0x37, 0xb3, 0x0e, 0x07, 0xb6, 0x54, 0x94, 0xa7, 0x67, 0x6a, 0xbf, 0x75,
+ 0x34, 0xe7, 0x1a, 0x3e, 0xf0, 0xfb, 0xae, 0xb2, 0x8a, 0xf5, 0x57, 0x9e,
+ 0x3f, 0xe2, 0xb4, 0x47, 0x20, 0x2a, 0xb0, 0x12, 0x28, 0x75, 0x61, 0x7a,
+ 0x0f, 0x07, 0x0e, 0x4d, 0xd1, 0xdb, 0x09, 0x98, 0x6e, 0xdb, 0xe8, 0xf1,
+ 0xf7, 0x87, 0x5a, 0x23, 0xea, 0x09, 0xfb, 0x18, 0x76, 0x3c, 0x63, 0xdd,
+ 0x0b, 0xc4, 0x02, 0xb2, 0x5d, 0xb2, 0xe8, 0xdf, 0xe3, 0x93, 0xd7, 0x21,
+ 0x6c, 0xfb, 0xfa, 0x00, 0x75, 0x40, 0x74, 0xad, 0x42, 0x94, 0xc5, 0xc6,
+ 0x63, 0x35, 0xe4, 0xf6, 0xd5, 0x2a, 0x2a, 0x4a, 0x84, 0x9d, 0x24, 0xeb,
+ 0x85, 0x27, 0x6b, 0xf8, 0xf9, 0x27, 0xb1, 0x42, 0x24, 0x6e, 0x2d, 0x5b,
+ 0xf8, 0x06, 0xba, 0xcd, 0x0e, 0xd8, 0xe4, 0xb5, 0xc1, 0xf7, 0xb6, 0xa6,
+ 0x36, 0xb5, 0x26, 0xe6, 0x54, 0x43, 0xaa, 0x3e, 0x32, 0xa5, 0xd2, 0x9a,
+ 0xd5, 0xd5, 0xa5, 0xb2, 0x94, 0xd5, 0x0d, 0x8c, 0x43, 0x4f, 0xbc, 0xfe,
+ 0x86, 0x89, 0xc4, 0xf7, 0x86, 0x2d, 0x0b, 0x40, 0x37, 0x43, 0xa5, 0x32,
+ 0xe1, 0xde, 0x0d, 0xd4, 0xd8, 0x29, 0xc6, 0x5a, 0xd5, 0xe6, 0x84, 0x06,
+ 0x47, 0xa5, 0x7b, 0x2a, 0x0b, 0x7f, 0x30, 0x00, 0x1e, 0x83, 0xc2, 0x6a,
+ 0xf8, 0x31, 0x54, 0x66, 0x71, 0x53, 0x39, 0x48, 0x83, 0x73, 0xe9, 0x60,
+ 0x97, 0x13, 0x3d, 0x9c, 0xf2, 0xdc, 0xb2, 0x4c, 0xcb, 0xab, 0x12, 0x5b,
+ 0x32, 0xeb, 0x25, 0xc4, 0x1e, 0x7b, 0x1f, 0xa5, 0xe6, 0x9f, 0xb8, 0x0a,
+ 0x53, 0x6b, 0xab, 0xa4, 0x85, 0x8d, 0xa5, 0x1d, 0x6b, 0x88, 0x0f, 0x93,
+ 0xc3, 0xe2, 0xe8, 0x53, 0xdd, 0x74, 0xa7, 0x64, 0x93, 0xad, 0x1f, 0x6d,
+ 0x95, 0x79, 0x65, 0x4a, 0xbc, 0x82, 0x0b, 0x37, 0x08, 0x76, 0x5c, 0x8e,
+ 0x33, 0x48, 0xd0, 0xb0, 0x4e, 0xa2, 0x75, 0x6e, 0x1d, 0x46, 0xe6, 0x8b,
+ 0xe0, 0x80, 0xb4, 0x84, 0x93, 0x5c, 0x92, 0x98, 0x75, 0x8d, 0x90, 0x47,
+ 0xc4, 0xb3, 0xa3, 0xa4, 0x3e, 0x9a, 0x72, 0x86, 0xf9, 0xcc, 0x6d, 0xbf,
+ 0xdf, 0xbc, 0x7a, 0x81, 0xb0, 0x93, 0x37, 0xfb, 0x38, 0x78, 0xf6, 0x70,
+ 0xae, 0xaa, 0xf4, 0xb2, 0xaf, 0xd3, 0xd3, 0xb6, 0xc3, 0x36, 0xd9, 0x29,
+ 0x87, 0x00, 0xaa, 0xd9, 0xc2, 0x04, 0xc4, 0xe9, 0x94, 0x04, 0x3d, 0xc3,
+ 0x2d, 0x62, 0x03, 0x88, 0xb9, 0x05, 0x93, 0x30, 0x7c, 0x6d, 0x22, 0xa9,
+ 0xac, 0x77, 0x38, 0x78, 0x72, 0x8c, 0x1e, 0xb7, 0x14, 0x52, 0x04, 0xe5,
+ 0x84, 0x4c, 0xe8, 0x48, 0x29, 0x58, 0xdb, 0xe7, 0x39, 0xce, 0x73, 0x9c,
+ 0xf5, 0x72, 0x41, 0xae, 0x7f, 0xa4, 0x00, 0x89, 0x02, 0x00, 0x00, 0xe4,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0c, 0x00, 0x01, 0x10,
+ 0x24, 0x00, 0x18, 0x00, 0x1b, 0x10, 0xa7, 0xe7, 0xe8, 0x69, 0x23, 0xa8,
+ 0x80, 0x02, 0xdf, 0xce, 0x44, 0xbf, 0x12, 0x7f, 0xa7, 0x15, 0xf4, 0x39,
+ 0x35, 0xce, 0xf4, 0x7f, 0x6d, 0x5b, 0x92, 0x3b, 0x63, 0xbc, 0xd4, 0x30,
+ 0x88, 0x99, 0x63, 0x6b, 0x16, 0xc1, 0xca, 0x87, 0x56, 0x11, 0xd9, 0x9c,
+ 0xfa, 0x07, 0x69, 0xcb, 0xe2, 0xaa, 0xa1, 0x1e, 0x48, 0xa2, 0xb1, 0x4b,
+ 0x13, 0xb1, 0x00, 0x90, 0xd2, 0xe7, 0xbb, 0xae, 0x04, 0x38, 0x9c, 0x1c,
+ 0x02, 0x91, 0xc1, 0x95, 0x79, 0xc4, 0xe2, 0xb9, 0x80, 0xbd, 0xc7, 0x18,
+ 0xb8, 0x61, 0x23, 0x58, 0xda, 0xca, 0x31, 0xb4, 0x81, 0x31, 0x67, 0x59,
+ 0x83, 0x00, 0x57, 0x2e, 0xae, 0xa8, 0x22, 0x52, 0xe0, 0xac, 0x4d, 0xf8,
+ 0x8b, 0x3f, 0x61, 0x60, 0x79, 0x10, 0xe4, 0x5a, 0xed, 0x18, 0x09, 0x29,
+ 0x4e, 0x97, 0xd8, 0x33, 0xdc, 0x50, 0xff, 0xee, 0xc3, 0x85, 0x5c, 0x6f,
+ 0xd5, 0x5c, 0xc1, 0x3a, 0xda, 0xf8, 0xf7, 0x42, 0x04, 0xd4, 0x2d, 0x13,
+ 0x7d, 0x4f, 0x89, 0x0c, 0x5d, 0x0a, 0xfa, 0xfb, 0xae, 0xfc, 0x58, 0xee,
+ 0xff, 0x0f, 0x4a, 0x84, 0x9a, 0xca, 0x43, 0xf6, 0x52, 0x9f, 0x57, 0x60,
+ 0x6d, 0x79, 0x63, 0x20, 0xe6, 0xe1, 0x77, 0x68, 0x85, 0xbb, 0x4c, 0x24,
+ 0xb3, 0x9e, 0x75, 0x0f, 0x07, 0x4b, 0x7f, 0xb3, 0x0f, 0x5c, 0x0a, 0x33,
+ 0xae, 0x9c, 0xf3, 0x2c, 0x40, 0x86, 0x4a, 0x42, 0x1a, 0x6c, 0xce, 0xb1,
+ 0x6c, 0x91, 0x7f, 0xf9, 0xdf, 0x26, 0x99, 0xf0, 0x60, 0x6d, 0x77, 0xe8,
+ 0xeb, 0x5f, 0x55, 0x46, 0x03, 0x44, 0x57, 0x37, 0xcd, 0xff, 0xe3, 0xd4,
+ 0xbe, 0x75, 0x23, 0x3b, 0x10, 0x60, 0x06, 0x30, 0x86, 0xfa, 0x39, 0x44,
+ 0xff, 0x99, 0xd4, 0x42, 0x7b, 0x4b, 0x33, 0xe5, 0x4a, 0x8d, 0x3b, 0x14,
+ 0xb1, 0xcc, 0x8e, 0x1e, 0x1f, 0x0c, 0x4c, 0xb5, 0x6a, 0xc9, 0xfd, 0x0d,
+ 0x6b, 0x87, 0xcf, 0xcf, 0xb4, 0x68, 0x06, 0xe7, 0x4e, 0x71, 0x7b, 0x67,
+ 0x8b, 0x7e, 0x6f, 0x44, 0xc0, 0x09, 0x1b, 0x37, 0xf6, 0x26, 0x6e, 0xbd,
+ 0x72, 0x7b, 0x1c, 0xdf, 0xed, 0x10, 0xe1, 0x5d, 0xf0, 0xb1, 0xea, 0x9b,
+ 0x12, 0xcf, 0xdc, 0xb7, 0x55, 0x04, 0xac, 0x78, 0xd1, 0x33, 0xde, 0x7a,
+ 0xed, 0xad, 0x73, 0xac, 0xf6, 0xfb, 0x0f, 0x54, 0x46, 0xec, 0x66, 0x3f,
+ 0x02, 0xab, 0x56, 0x0f, 0x3d, 0x32, 0x2c, 0x12, 0xc9, 0xa5, 0x22, 0xd8,
+ 0x1f, 0x33, 0xb5, 0x2e, 0xf9, 0xcd, 0xe0, 0x88, 0xc2, 0x16, 0x4f, 0xd9,
+ 0x94, 0x2f, 0xfb, 0x45, 0xcd, 0x3b, 0x69, 0x2e, 0xa1, 0x7b, 0xf6, 0x9f,
+ 0xcc, 0x99, 0xab, 0x70, 0xd7, 0x07, 0x89, 0x43, 0x4a, 0xc6, 0xaf, 0x7c,
+ 0xdb, 0x90, 0xab, 0x20, 0x32, 0xdc, 0x74, 0xeb, 0x51, 0x2c, 0xbe, 0x58,
+ 0x61, 0x20, 0x74, 0x9e, 0xde, 0xb1, 0x43, 0xb9, 0xd7, 0xee, 0xa4, 0x4b,
+ 0x91, 0xf0, 0x71, 0xba, 0x56, 0xef, 0xca, 0x31, 0x13, 0xb6, 0xda, 0x4a,
+ 0x5c, 0x59, 0xd5, 0x08, 0x3e, 0xf6, 0xc1, 0xb2, 0xca, 0x1b, 0x00, 0x68,
+ 0x60, 0xf5, 0x44, 0x69, 0x42, 0xb1, 0x10, 0xd6, 0xa3, 0x82, 0xc1, 0x4a,
+ 0x0e, 0xdc, 0x6e, 0x50, 0xde, 0xe8, 0xf5, 0xe0, 0xb8, 0xb2, 0x58, 0x0f,
+ 0xa1, 0x42, 0x3d, 0xe0, 0x2d, 0x79, 0x06, 0x7e, 0x9d, 0x4c, 0x99, 0x49,
+ 0xab, 0x53, 0x70, 0xca, 0xa0, 0xa9, 0x95, 0x42, 0xd3, 0x9d, 0xf8, 0xeb,
+ 0x30, 0x99, 0x2d, 0x07, 0xea, 0xcc, 0xd8, 0xd7, 0xed, 0xed, 0x68, 0xd6,
+ 0x4c, 0x6b, 0x95, 0x9e, 0x16, 0x64, 0x8b, 0x40, 0xf6, 0xa4, 0xd6, 0x88,
+ 0x33, 0x02, 0xd8, 0x5a, 0x0c, 0xf5, 0x96, 0x98, 0x58, 0xcb, 0x92, 0x75,
+ 0x39, 0xd6, 0x14, 0xf6, 0xc0, 0xee, 0xd0, 0x45, 0xf9, 0xaa, 0x2d, 0x25,
+ 0x1a, 0x5c, 0xbc, 0x81, 0xe4, 0xb3, 0xaf, 0xaf, 0x6a, 0x71, 0xeb, 0xdb,
+ 0xc8, 0x2c, 0x71, 0xc6, 0x60, 0x84, 0x8e, 0xcc, 0x64, 0x12, 0xbf, 0x23,
+ 0xa9, 0x59, 0xe7, 0x87, 0x6e, 0x95, 0x08, 0xc6, 0x39, 0xf4, 0xe5, 0xb9,
+ 0xbd, 0xc9, 0x21, 0xd1, 0x00, 0xa5, 0x6c, 0xe4, 0xfb, 0x74, 0xac, 0xa0,
+ 0x06, 0x08, 0x29, 0x52, 0x80, 0xb0, 0x83, 0x1c, 0x83, 0xec, 0xb9, 0x61,
+ 0x7d, 0x28, 0x82, 0x43, 0x3a, 0x8a, 0xc0, 0x5b, 0x12, 0x82, 0xf0, 0x88,
+ 0x19, 0xe3, 0xb9, 0xdf, 0x00, 0x06, 0xc5, 0xa8, 0xbf, 0x7e, 0x6a, 0x33,
+ 0x73, 0x52, 0x86, 0x61, 0x26, 0xcd, 0x79, 0x6a, 0x97, 0x5e, 0x53, 0x5e,
+ 0x0a, 0x45, 0x21, 0x16, 0xc5, 0x43, 0xb7, 0x95, 0x22, 0x07, 0xcb, 0x4e,
+ 0xfd, 0x74, 0x2e, 0x56, 0xf3, 0xc9, 0x2a, 0xbf, 0xd2, 0x38, 0xbd, 0xce,
+ 0x73, 0xd5, 0xc9, 0x06, 0xb9, 0xfe, 0x90, 0x00, 0x69, 0x02, 0x00, 0x00,
+ 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x0c, 0x00, 0x01,
+ 0x10, 0x24, 0x00, 0x18, 0x00, 0x3a, 0x9b, 0x3f, 0xbd, 0xbc, 0x7b, 0x8a,
+ 0xfa, 0x0b, 0x6a, 0x39, 0x8c, 0x9b, 0xa9, 0x65, 0xb4, 0xff, 0xc4, 0x2e,
+ 0x62, 0xd0, 0x00, 0x58, 0x29, 0xbd, 0xe8, 0x13, 0xa0, 0x72, 0x27, 0x12,
+ 0x72, 0x78, 0x57, 0x80, 0xf9, 0xad, 0x43, 0xba, 0x39, 0x11, 0x9c, 0xdd,
+ 0x30, 0x7a, 0xb9, 0x07, 0x4f, 0x7e, 0x36, 0x16, 0xa4, 0x50, 0x00, 0x62,
+ 0x0c, 0x04, 0xd8, 0xc7, 0x90, 0x31, 0x32, 0x7a, 0x35, 0xc2, 0x25, 0x3f,
+ 0x0a, 0xf0, 0x9e, 0x90, 0xd9, 0x11, 0x88, 0xc1, 0x36, 0x2b, 0xe3, 0x38,
+ 0x4e, 0x07, 0x49, 0x42, 0x46, 0xda, 0x46, 0xe8, 0x36, 0xb7, 0xdd, 0x2e,
+ 0x4d, 0xcf, 0x00, 0x57, 0x2e, 0xab, 0x53, 0x4f, 0xef, 0xfb, 0x98, 0xe1,
+ 0xa4, 0x6a, 0x5b, 0x20, 0x0b, 0xb7, 0xa4, 0xb8, 0xf8, 0x89, 0xd8, 0x49,
+ 0xf4, 0x19, 0xa1, 0x1e, 0x00, 0xaf, 0x57, 0xe1, 0xec, 0x32, 0xaa, 0x2a,
+ 0x40, 0x05, 0x52, 0xe5, 0x9e, 0x73, 0x76, 0x7d, 0xe9, 0x53, 0x85, 0x7b,
+ 0x23, 0x6a, 0x75, 0xda, 0xce, 0xb1, 0x51, 0x32, 0x5d, 0xd5, 0xed, 0x4f,
+ 0xef, 0xc7, 0x3d, 0xcd, 0x8d, 0x90, 0xe8, 0xe1, 0x7d, 0x8a, 0x4a, 0x5d,
+ 0x58, 0x2d, 0xba, 0x74, 0x8c, 0x79, 0xa9, 0x23, 0x2f, 0xa7, 0x72, 0x79,
+ 0xe6, 0x62, 0xb8, 0x34, 0x85, 0xcc, 0xdf, 0x81, 0xb1, 0x72, 0xa4, 0xea,
+ 0x7a, 0x15, 0x99, 0x26, 0x01, 0xa8, 0xff, 0xe5, 0xc6, 0xe7, 0xa9, 0x2c,
+ 0x97, 0x0a, 0xd9, 0x93, 0x8b, 0x74, 0xfe, 0x86, 0x3a, 0xf3, 0xd0, 0xe7,
+ 0x89, 0x89, 0x4a, 0x2b, 0x9a, 0x98, 0x79, 0x73, 0xa1, 0x3f, 0x7b, 0xf8,
+ 0xf9, 0x40, 0x76, 0x55, 0x91, 0x7a, 0x15, 0x1f, 0xf8, 0xeb, 0x5f, 0x8f,
+ 0x06, 0x8a, 0xb7, 0x2e, 0xc0, 0x74, 0x03, 0xb3, 0x3f, 0x2f, 0xf9, 0x77,
+ 0xd6, 0x51, 0x7f, 0xb7, 0xa6, 0xbe, 0xbd, 0x1f, 0x5a, 0xde, 0xcc, 0x5d,
+ 0xc9, 0x48, 0x50, 0xe4, 0xcf, 0x3c, 0xf7, 0x89, 0x79, 0x1e, 0xf2, 0x98,
+ 0xc4, 0xee, 0x2b, 0xd7, 0x47, 0xe6, 0x70, 0xfe, 0xd6, 0x68, 0xa2, 0x66,
+ 0xa5, 0xb2, 0xc9, 0x73, 0xeb, 0x43, 0x4c, 0xd3, 0x50, 0x06, 0x80, 0x6e,
+ 0x8b, 0xd5, 0x75, 0xf7, 0xa4, 0x59, 0xd0, 0xeb, 0x36, 0xaf, 0x3d, 0x15,
+ 0xac, 0x4b, 0x5d, 0x92, 0x0c, 0x8b, 0x82, 0xb9, 0x0f, 0xda, 0xbf, 0x4c,
+ 0xd2, 0x38, 0x74, 0x4c, 0x32, 0x89, 0xe9, 0x21, 0xea, 0xc9, 0xa0, 0x99,
+ 0x34, 0xfe, 0x7a, 0xc2, 0x5c, 0xc2, 0xa6, 0xb4, 0x65, 0xd3, 0x1d, 0x36,
+ 0xf2, 0xea, 0x5e, 0x6b, 0x6f, 0x6f, 0xd9, 0x42, 0x10, 0xd2, 0x1c, 0x8f,
+ 0xb4, 0xe4, 0x21, 0x77, 0x85, 0x7e, 0xeb, 0x2c, 0xa1, 0x61, 0x3c, 0x57,
+ 0xf3, 0xe5, 0x17, 0x91, 0x91, 0x96, 0xd7, 0x40, 0x69, 0x9b, 0x53, 0x0e,
+ 0xf1, 0xd6, 0xf8, 0x77, 0x0c, 0xd5, 0xef, 0x7a, 0x03, 0x6b, 0xa3, 0xb1,
+ 0x28, 0xe8, 0x1f, 0x92, 0xaf, 0xf9, 0xca, 0x7c, 0x30, 0x98, 0x86, 0xea,
+ 0x8f, 0xf6, 0xab, 0x45, 0x78, 0xc2, 0xd1, 0x4f, 0x32, 0x76, 0x1c, 0xf9,
+ 0x17, 0x3f, 0x62, 0x0b, 0x21, 0xdf, 0xa8, 0x3f, 0x60, 0x5c, 0xdc, 0x57,
+ 0x6f, 0x2b, 0x26, 0x93, 0xc6, 0x5b, 0x16, 0x31, 0x33, 0xd7, 0x50, 0x17,
+ 0xad, 0xff, 0x1c, 0xa4, 0xe6, 0x82, 0xdb, 0x1b, 0xf5, 0xe0, 0xfb, 0xb9,
+ 0x0c, 0x48, 0xe2, 0x85, 0x76, 0x89, 0x8b, 0xb7, 0x35, 0x3c, 0x0c, 0x61,
+ 0x49, 0x3a, 0x4f, 0xf3, 0x01, 0x5c, 0xa2, 0x26, 0xeb, 0x18, 0x90, 0x67,
+ 0xc5, 0x1d, 0xde, 0x19, 0xdf, 0x8d, 0xe0, 0xe9, 0x88, 0xc7, 0xe7, 0x69,
+ 0x53, 0x09, 0x3b, 0x57, 0x4b, 0x80, 0x64, 0xe2, 0xea, 0xa2, 0x88, 0x53,
+ 0xe4, 0x73, 0xcc, 0x34, 0x22, 0x71, 0x0a, 0x58, 0x2c, 0xf5, 0x17, 0x6d,
+ 0x0b, 0xc2, 0xb4, 0x6a, 0x9f, 0xe5, 0x59, 0x25, 0x5c, 0x45, 0x9a, 0x17,
+ 0x06, 0x70, 0x96, 0x4b, 0xb5, 0x91, 0xb1, 0x0e, 0x46, 0x1f, 0x05, 0x2e,
+ 0x3a, 0xb1, 0x40, 0x83, 0xd0, 0x6d, 0x61, 0x72, 0x8e, 0xd5, 0xb3, 0x0c,
+ 0x63, 0x3f, 0x2b, 0x71, 0x88, 0x21, 0xac, 0xa7, 0xff, 0xfc, 0xb6, 0x9c,
+ 0xd4, 0x02, 0x86, 0xef, 0xba, 0x8e, 0x8c, 0xae, 0x6d, 0x52, 0x9d, 0x5f,
+ 0x0f, 0x49, 0x67, 0xbf, 0x4a, 0xf2, 0xcd, 0x41, 0x31, 0x6d, 0xc5, 0x1a,
+ 0x21, 0xda, 0x04, 0x4a, 0x31, 0xe3, 0x32, 0xb5, 0x6e, 0x74, 0x80, 0x91,
+ 0xcf, 0xa9, 0x1c, 0x5e, 0xe7, 0x39, 0xea, 0xe4, 0x83, 0x5c, 0xff, 0x48,
+ 0x00, 0x02, 0x03, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x91, 0x10, 0x00, 0x04, 0x10, 0x24, 0x00, 0x18, 0x00, 0x1b, 0x70,
+ 0x8f, 0xf4, 0x00, 0x71, 0x8d, 0xf9, 0x13, 0xe7, 0x13, 0x6d, 0x4d, 0x77,
+ 0x5a, 0x52, 0xbc, 0x20, 0x17, 0xae, 0x40, 0xa5, 0x26, 0x95, 0xb6, 0x23,
+ 0x8c, 0x67, 0x27, 0x9c, 0xd6, 0x35, 0x8c, 0xa1, 0x3c, 0xd2, 0xf0, 0xa2,
+ 0xfa, 0x94, 0x2f, 0xb8, 0x0d, 0x64, 0x76, 0x56, 0x1e, 0xed, 0x9f, 0xdc,
+ 0x23, 0x19, 0x16, 0x27, 0x75, 0xba, 0xc2, 0xf1, 0x69, 0xda, 0x4f, 0x00,
+ 0xa6, 0xa0, 0x80, 0xe3, 0x14, 0xee, 0x17, 0x92, 0xfb, 0xb9, 0x5b, 0xc1,
+ 0x2e, 0x21, 0x51, 0xb0, 0x01, 0x2e, 0x49, 0x2e, 0xfe, 0x74, 0xc9, 0xf0,
+ 0xf2, 0x11, 0x9b, 0x7f, 0xb9, 0x84, 0x18, 0x87, 0xf9, 0xbc, 0x66, 0x48,
+ 0xe1, 0x31, 0xff, 0xfa, 0xa5, 0xa4, 0xc5, 0xb6, 0xcb, 0x26, 0xfa, 0x6a,
+ 0x1a, 0xb3, 0xbe, 0x6f, 0xe9, 0x24, 0x6d, 0xb6, 0x36, 0x48, 0xd9, 0xe6,
+ 0xaf, 0xb1, 0x14, 0xe0, 0x57, 0x2e, 0xad, 0xb9, 0x6b, 0x0b, 0xe6, 0xad,
+ 0x7b, 0xfa, 0xa1, 0x42, 0x87, 0x26, 0xde, 0x85, 0xb8, 0xa6, 0xd3, 0xff,
+ 0x51, 0x61, 0x92, 0xa8, 0x64, 0xae, 0x8e, 0xdc, 0xd6, 0xb5, 0x7f, 0xc6,
+ 0x04, 0x67, 0x21, 0x15, 0xc8, 0xee, 0xcb, 0x60, 0x38, 0x00, 0x50, 0xd3,
+ 0xaf, 0xa2, 0x01, 0x84, 0xa5, 0xdd, 0x4f, 0x85, 0x83, 0x2c, 0x80, 0x0a,
+ 0x2f, 0x76, 0x79, 0xd0, 0xd7, 0xfc, 0x04, 0xc3, 0x82, 0x51, 0xf2, 0x22,
+ 0x0e, 0xfb, 0x80, 0x90, 0xf4, 0xe3, 0x35, 0x6a, 0xe5, 0x02, 0x90, 0xb4,
+ 0x6b, 0xc5, 0xce, 0xab, 0xaf, 0x1b, 0x94, 0xcd, 0x52, 0x43, 0x95, 0xa0,
+ 0x05, 0xf3, 0xdb, 0xf1, 0x08, 0x5b, 0x54, 0x51, 0x62, 0x31, 0xfe, 0x5c,
+ 0x89, 0xe6, 0x4c, 0x0b, 0x68, 0xe1, 0x9b, 0x1f, 0x50, 0xa0, 0x41, 0xbe,
+ 0x76, 0xa6, 0x26, 0x11, 0xf6, 0xa9, 0x7b, 0xf1, 0x85, 0xdc, 0x06, 0xc0,
+ 0xce, 0xda, 0x00, 0x3e, 0x89, 0x77, 0xf4, 0xf6, 0x7f, 0x8b, 0x01, 0xc6,
+ 0xe9, 0xa5, 0xad, 0x37, 0x2b, 0x49, 0x88, 0x59, 0x3c, 0x03, 0x51, 0xfa,
+ 0xa8, 0x19, 0xe8, 0xec, 0x5e, 0x82, 0x16, 0x4e, 0x1a, 0xbb, 0xdb, 0xe4,
+ 0xa8, 0x1c, 0x62, 0xc6, 0xbd, 0xd6, 0xfe, 0x8b, 0xfb, 0x2a, 0x40, 0x82,
+ 0x3c, 0x38, 0x44, 0xa4, 0x92, 0x30, 0x0a, 0x80, 0x87, 0x0e, 0x8c, 0x7e,
+ 0x1a, 0xca, 0x64, 0x1d, 0xe2, 0x0f, 0x7c, 0x78, 0xc1, 0x94, 0x09, 0x18,
+ 0xa8, 0xa6, 0xd4, 0xf0, 0x3f, 0xb2, 0x54, 0x37, 0xa1, 0x72, 0x63, 0xc6,
+ 0x4f, 0x7e, 0x17, 0xe0, 0x3b, 0x95, 0x7d, 0x3e, 0x89, 0xf6, 0x54, 0xfb,
+ 0xbf, 0x81, 0xef, 0x45, 0x1e, 0xce, 0xa3, 0x27, 0x18, 0xed, 0x47, 0x42,
+ 0xfb, 0xf7, 0xbd, 0xef, 0x78, 0x73, 0x32, 0x93, 0xd5, 0x1d, 0x8e, 0x1e,
+ 0xc5, 0xcd, 0x69, 0xc0, 0x53, 0xff, 0x00, 0x21, 0x60, 0x14, 0x89, 0x4f,
+ 0xdc, 0x2b, 0x67, 0xc6, 0x1b, 0xef, 0xf5, 0xf9, 0xa7, 0xa1, 0xa8, 0xa1,
+ 0x0d, 0xb3, 0xf2, 0xdc, 0xac, 0x8f, 0x5c, 0x7d, 0x78, 0x75, 0x50, 0xc4,
+ 0x84, 0xdb, 0xa8, 0xc9, 0x62, 0x5f, 0x37, 0xce, 0xc3, 0x3a, 0xc5, 0xfe,
+ 0x33, 0xec, 0x0a, 0x76, 0x3a, 0x0c, 0xcd, 0xb2, 0x45, 0x26, 0x58, 0x96,
+ 0xaa, 0xa6, 0xbb, 0x6e, 0xfd, 0x68, 0x03, 0x45, 0x3a, 0xfe, 0x86, 0x74,
+ 0x7b, 0x56, 0x13, 0xbe, 0x2e, 0x0b, 0xef, 0x6a, 0xba, 0x5f, 0x94, 0x8e,
+ 0x28, 0xa7, 0x9c, 0x07, 0xa5, 0x2e, 0x7a, 0xd1, 0xba, 0xd3, 0x65, 0x7f,
+ 0x56, 0xff, 0x9f, 0x8d, 0x42, 0xbc, 0x87, 0x72, 0xf9, 0xe0, 0x5e, 0x3b,
+ 0xb4, 0xc5, 0xe7, 0xb4, 0x04, 0xef, 0xca, 0xa2, 0x6d, 0xe0, 0x50, 0xed,
+ 0xfa, 0xde, 0xe2, 0x25, 0x89, 0x53, 0x9e, 0xa3, 0x43, 0x77, 0xbc, 0xbe,
+ 0x9f, 0x75, 0xff, 0x6d, 0x73, 0xbe, 0x73, 0xac, 0x35, 0x63, 0x4f, 0x02,
+ 0x4f, 0x62, 0xb8, 0x91, 0xfb, 0x7a, 0xe3, 0xb2, 0xee, 0x55, 0x5b, 0x7f,
+ 0xa8, 0x23, 0x1a, 0x80, 0x1f, 0xf7, 0xbb, 0x49, 0x1f, 0xe2, 0x81, 0x37,
+ 0x3c, 0x52, 0xf3, 0x72, 0x92, 0x7d, 0x7b, 0x8f, 0x0e, 0x79, 0xad, 0x31,
+ 0xbb, 0x45, 0x6e, 0xa0, 0xfc, 0xee, 0x68, 0x3f, 0xa7, 0x21, 0x5c, 0xa7,
+ 0x84, 0xa2, 0x62, 0x7b, 0x22, 0x19, 0x9e, 0xc0, 0x8a, 0x94, 0xd0, 0x77,
+ 0x8c, 0xe1, 0xed, 0x10, 0x79, 0x03, 0x71, 0x61, 0x5f, 0xe4, 0x95, 0x13,
+ 0x41, 0x70, 0x40, 0x92, 0xd1, 0x0c, 0xca, 0xc2, 0xf7, 0x8a, 0xf0, 0x78,
+ 0x55, 0x61, 0x9d, 0x19, 0x79, 0x61, 0x42, 0x9e, 0x16, 0xa7, 0x7f, 0x93,
+ 0x92, 0x23, 0x49, 0x16, 0x00, 0x04, 0x2f, 0x97, 0x0f, 0x3b, 0x1f, 0xb8,
+ 0xf7, 0x75, 0x15, 0xc9, 0x19, 0x5a, 0x10, 0xd2, 0xc1, 0x34, 0x85, 0xbe,
+ 0x41, 0x6c, 0x2e, 0x3b, 0x01, 0x9e, 0x8f, 0xbe, 0x41, 0x67, 0xa6, 0xf7,
+ 0x19, 0x22, 0x27, 0x76, 0x37, 0xaa, 0x1e, 0x2c, 0x8c, 0x97, 0x99, 0xc7,
+ 0x0c, 0xd4, 0x22, 0xe9, 0x1d, 0x6a, 0x80, 0x8b, 0xd0, 0x6b, 0xc3, 0x14,
+ 0x64, 0x4f, 0x99, 0x39, 0x2d, 0x09, 0x3e, 0xee, 0x46, 0x4a, 0xca, 0xb7,
+ 0x24, 0x5e, 0x25, 0x0c, 0x27, 0x00, 0x72, 0x36, 0xb1, 0x82, 0xcd, 0x57,
+ 0x3e, 0x28, 0x63, 0x05, 0x13, 0x56, 0xb5, 0x78, 0x02, 0x85, 0x87, 0x42,
+ 0x30, 0xae, 0x19, 0x83, 0xf0, 0x8d, 0x41, 0x97, 0x94, 0xe1, 0xfa, 0xd3,
+ 0x41, 0x1f, 0x37, 0x64, 0xd5, 0xec, 0xa3, 0xbd, 0x2f, 0xb9, 0x9d, 0x1b,
+ 0xa9, 0x5e, 0x4f, 0xc0, 0x12, 0x21, 0x2c, 0x7e, 0x90, 0x49, 0x5c, 0xff,
+ 0x82, 0xba, 0xcc, 0xe0, 0xa3, 0xea, 0x69, 0xf5, 0x06, 0x3b, 0x20, 0x68,
+ 0x93, 0x28, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x51, 0x0c, 0x00, 0x05, 0x10, 0x24, 0x00, 0x18, 0x00,
+ 0x6f, 0xd4, 0xe0, 0xc7, 0xf8, 0x22, 0xf4, 0x71, 0x03, 0x29, 0x2e, 0x0c,
+ 0x3a, 0xc7, 0x3a, 0x67, 0xaa, 0xf0, 0x24, 0xf4, 0x7a, 0x85, 0x28, 0x65,
+ 0x5d, 0xbd, 0xe2, 0x37, 0x1d, 0x11, 0xb6, 0xb2, 0x3a, 0xaf, 0x5a, 0x54,
+ 0xf8, 0x08, 0xe5, 0x22, 0x10, 0x08, 0xed, 0x99, 0xa6, 0x3a, 0xc8, 0x1c,
+ 0x47, 0x4d, 0x20, 0x62, 0x37, 0x2e, 0xd4, 0xdb, 0xb9, 0xbb, 0xf4, 0x0a,
+ 0x01, 0xd0, 0x08, 0x83, 0x78, 0xdc, 0x54, 0x45, 0xe7, 0xeb, 0xc0, 0x8b,
+ 0x34, 0x1f, 0x00, 0x14, 0x16, 0x85, 0x60, 0xc1, 0x7d, 0x1b, 0x6d, 0x6d,
+ 0xc3, 0xb7, 0x0c, 0x4f, 0x86, 0x70, 0xff, 0x72, 0x57, 0x2e, 0xc0, 0xcb,
+ 0x18, 0xb3, 0x74, 0xd0, 0x00, 0xa8, 0xc7, 0x04, 0xb1, 0xe8, 0xbe, 0xed,
+ 0x2d, 0xbf, 0xa9, 0x32, 0xf2, 0xf7, 0x43, 0xaf, 0xc5, 0x28, 0x30, 0xee,
+ 0xe3, 0x2f, 0x70, 0xd0, 0xdf, 0x16, 0x32, 0xe2, 0x8e, 0x26, 0xb6, 0x00,
+ 0xd3, 0x9f, 0x70, 0x04, 0xe0, 0x92, 0x63, 0x0c, 0x51, 0x87, 0xff, 0xa7,
+ 0x87, 0xfd, 0xe0, 0xf6, 0x56, 0x23, 0x11, 0x80, 0x44, 0x72, 0x14, 0xa9,
+ 0x45, 0x7b, 0xae, 0x36, 0xdf, 0x13, 0x88, 0xd0, 0xb0, 0xd4, 0xde, 0xe7,
+ 0x6b, 0x8a, 0x18, 0x02, 0x1a, 0xcf, 0xc2, 0xfc, 0x06, 0x75, 0x96, 0x3b,
+ 0xb7, 0xfe, 0x0b, 0xdd, 0x10, 0xba, 0x87, 0xa0, 0x6a, 0x8e, 0x1f, 0xfa,
+ 0x70, 0x33, 0xbd, 0x88, 0xe5, 0xe2, 0x99, 0x6d, 0xf8, 0x80, 0xeb, 0x20,
+ 0xa3, 0xfa, 0x4f, 0x1f, 0x2d, 0xf0, 0x64, 0xa3, 0x67, 0xd2, 0xbb, 0xaa,
+ 0xd7, 0x8b, 0x39, 0x41, 0x75, 0x50, 0xb3, 0xd4, 0x0e, 0xea, 0x29, 0xaa,
+ 0x7b, 0x83, 0xe8, 0x73, 0xfc, 0x16, 0xa6, 0x88, 0x7b, 0x00, 0x2b, 0xd8,
+ 0x16, 0x54, 0x2d, 0x12, 0xae, 0x7e, 0x9d, 0xd3, 0xdd, 0x3c, 0xd8, 0xd6,
+ 0xca, 0xd5, 0x8d, 0x6a, 0x4b, 0xcc, 0xcd, 0x45, 0x63, 0x74, 0xe8, 0xa0,
+ 0x28, 0x8e, 0x17, 0x0b, 0xf2, 0xd7, 0xf6, 0x93, 0x6e, 0xcd, 0xb4, 0xde,
+ 0x6b, 0x83, 0xb8, 0xa0, 0xf7, 0x89, 0xcd, 0x0a, 0x25, 0x58, 0xf1, 0x71,
+ 0xdf, 0xad, 0xa9, 0xe8, 0xd3, 0x06, 0xf7, 0x71, 0x31, 0x0f, 0xb9, 0x6b,
+ 0x5d, 0x4f, 0x12, 0x47, 0x99, 0x20, 0xf9, 0x30, 0x0a, 0x80, 0x00, 0x58,
+ 0x46, 0xf5, 0xbe, 0x09, 0x0f, 0x42, 0x92, 0x77, 0x09, 0xc2, 0x7b, 0xcd,
+ 0x6b, 0x6f, 0x65, 0x36, 0xe7, 0x6d, 0x91, 0xa9, 0x17, 0xa1, 0x49, 0x05,
+ 0x98, 0xd5, 0x24, 0x58, 0x64, 0x49, 0x6b, 0xdc, 0x91, 0xbb, 0xea, 0xd3,
+ 0x67, 0xe8, 0x49, 0xa3, 0x31, 0x7a, 0x4d, 0xb8, 0xb4, 0x94, 0xd0, 0x9c,
+ 0x5a, 0xb8, 0x51, 0x7f, 0xb6, 0x21, 0xe7, 0x9f, 0x66, 0x07, 0x97, 0x0e,
+ 0x78, 0x32, 0x78, 0x4d, 0x14, 0x23, 0xbe, 0xa8, 0x7f, 0x34, 0xba, 0xad,
+ 0x11, 0x2c, 0x0e, 0xe7, 0x54, 0x11, 0xf2, 0xd8, 0x58, 0xdf, 0x13, 0x2c,
+ 0x72, 0x21, 0xa0, 0x0e, 0xff, 0x90, 0xde, 0xc6, 0x68, 0x3a, 0xf7, 0xc7,
+ 0x06, 0xed, 0xf7, 0xdf, 0x0f, 0xc4, 0x4a, 0x72, 0x26, 0xa7, 0x5c, 0x43,
+ 0x4a, 0x5f, 0x11, 0xb9, 0x91, 0x2f, 0x96, 0x5b, 0x30, 0x54, 0xfa, 0x27,
+ 0xa9, 0xc6, 0xd0, 0xf1, 0xf8, 0xc8, 0x2a, 0x8e, 0x91, 0x3e, 0xa8, 0xc1,
+ 0xfc, 0xe7, 0xff, 0xc4, 0xaa, 0x8d, 0xd7, 0x70, 0x72, 0xa7, 0x64, 0xc7,
+ 0x54, 0xab, 0xdd, 0xc4, 0xdc, 0x2f, 0x2e, 0x81, 0xd5, 0xee, 0xeb, 0x54,
+ 0x7a, 0xbf, 0xee, 0x51, 0x75, 0x92, 0x1f, 0xcf, 0x57, 0x22, 0xcc, 0x50,
+ 0x1a, 0x42, 0xbe, 0x3c, 0xff, 0x91, 0x9a, 0xf2, 0xd2, 0x03, 0x64, 0x28,
+ 0x42, 0x10, 0x84, 0x21, 0x09, 0x1a, 0x36, 0xa3, 0x1c, 0xaf, 0xf0, 0x00,
+ 0xe4, 0x01, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x0f, 0x00, 0x07, 0x10, 0x24, 0x00, 0x18, 0x00, 0x3a, 0x63, 0xde,
+ 0x73, 0x2a, 0xaf, 0xa5, 0xbd, 0x29, 0xb6, 0x93, 0x8c, 0xff, 0x7d, 0x5b,
+ 0x06, 0x9c, 0x80, 0x9c, 0x66, 0x5b, 0x32, 0xeb, 0xf5, 0xde, 0x65, 0x46,
+ 0xde, 0xc3, 0x65, 0x02, 0x49, 0xa1, 0x86, 0x3b, 0xd8, 0x00, 0x3a, 0xae,
+ 0x44, 0xcb, 0x88, 0xff, 0x33, 0xff, 0x18, 0x13, 0x61, 0xbd, 0x70, 0x73,
+ 0x62, 0x0c, 0x64, 0x82, 0xb1, 0xeb, 0x59, 0xa5, 0xf9, 0xf7, 0xb0, 0x24,
+ 0xd2, 0x1f, 0x01, 0x18, 0x13, 0x25, 0xfa, 0xb7, 0x72, 0x20, 0xea, 0x1c,
+ 0x7f, 0x08, 0xae, 0xa5, 0xc0, 0x3b, 0xca, 0x71, 0xdc, 0x61, 0xb2, 0x05,
+ 0x91, 0x4a, 0xb2, 0xdb, 0xb4, 0x01, 0x06, 0x2a, 0xed, 0x5b, 0x0b, 0x8a,
+ 0xbf, 0x5b, 0x39, 0xec, 0xdb, 0x6d, 0x24, 0xa1, 0x24, 0xcb, 0x6c, 0x17,
+ 0xe4, 0x35, 0x20, 0x57, 0x2e, 0xaf, 0xef, 0xe1, 0x73, 0x1f, 0x27, 0xd7,
+ 0x0a, 0x8d, 0x5d, 0x7f, 0x32, 0x89, 0x99, 0xb7, 0x04, 0xb1, 0xc4, 0xb5,
+ 0x79, 0x14, 0x75, 0x74, 0x00, 0x8f, 0x16, 0xc7, 0xea, 0x04, 0xb9, 0x16,
+ 0x17, 0x8d, 0x9a, 0xfa, 0xb5, 0x6b, 0xb2, 0xb9, 0x5e, 0xc4, 0xee, 0xc1,
+ 0x0f, 0xf8, 0xae, 0xc6, 0xad, 0xde, 0x34, 0xb3, 0x85, 0x79, 0x6a, 0xd8,
+ 0xa4, 0xf0, 0x9e, 0x7f, 0xc7, 0xc6, 0x00, 0x0e, 0xd5, 0xe6, 0xf7, 0x45,
+ 0x19, 0x60, 0x4f, 0xd1, 0xee, 0x0c, 0xeb, 0xd1, 0x63, 0xbd, 0x19, 0xfe,
+ 0x2f, 0xc6, 0x3c, 0x1e, 0x27, 0xb8, 0x5a, 0x72, 0x14, 0x8f, 0x45, 0xd1,
+ 0x5d, 0x68, 0x9a, 0x0b, 0xc4, 0x15, 0x80, 0x89, 0x53, 0xc2, 0xe1, 0x24,
+ 0xcc, 0x81, 0xba, 0x42, 0x43, 0xc5, 0x30, 0x4c, 0x56, 0x0e, 0xf4, 0xf0,
+ 0xc7, 0xa8, 0xd2, 0x6a, 0x18, 0x9c, 0x54, 0x34, 0x22, 0x54, 0xa8, 0x8e,
+ 0x1b, 0x8f, 0xc2, 0x80, 0x45, 0x47, 0xbd, 0x17, 0x5a, 0x1d, 0xae, 0x6a,
+ 0x95, 0x81, 0x65, 0x33, 0xc8, 0x46, 0x52, 0xca, 0x1c, 0xb1, 0x5b, 0xa7,
+ 0xac, 0x3f, 0x96, 0xd3, 0x72, 0xf4, 0x32, 0x05, 0xa6, 0x05, 0xee, 0x2a,
+ 0x3d, 0x03, 0x04, 0xe9, 0x70, 0x53, 0xbf, 0x49, 0xce, 0x07, 0xb2, 0xa4,
+ 0x91, 0xd1, 0x3b, 0xb0, 0xab, 0x36, 0x53, 0x5a, 0x17, 0x6a, 0xda, 0xca,
+ 0x8d, 0xcc, 0xba, 0x00, 0x9b, 0x9d, 0x0b, 0xbc, 0x71, 0x50, 0x7e, 0x20,
+ 0x71, 0xde, 0xe8, 0xba, 0x30, 0x93, 0xd3, 0xae, 0x5b, 0x4b, 0x05, 0xf0,
+ 0x07, 0xe3, 0x68, 0xd8, 0x89, 0x9a, 0x34, 0x05, 0x4e, 0x7b, 0x4d, 0xfc,
+ 0xfe, 0xc9, 0x98, 0x2d, 0x64, 0xa2, 0x81, 0x53, 0xa1, 0x2b, 0x25, 0x32,
+ 0xe5, 0x79, 0x23, 0x44, 0x23, 0x0f, 0xa7, 0xc4, 0xd9, 0x52, 0x99, 0xc0,
+ 0xf3, 0x44, 0x24, 0x62, 0x19, 0xd4, 0x0c, 0x08, 0xc5, 0x0f, 0xb1, 0x25,
+ 0x85, 0x09, 0x65, 0x09, 0xec, 0xaf, 0x85, 0xa4, 0x49, 0xd4, 0x69, 0xc4,
+ 0x2c, 0xd6, 0x78, 0x4c, 0xdb, 0x9d, 0x02, 0xe8, 0x99, 0xe6, 0xf5, 0x07,
+ 0x4b, 0x2b, 0xbc, 0xa0, 0x21, 0xd8, 0xc6, 0xb3, 0x3e, 0x0d, 0xc7, 0x28,
+ 0x77, 0x9a, 0x23, 0x5f, 0xa6, 0xa9, 0x57, 0x41, 0x3a, 0x92, 0xf8, 0x1b,
+ 0x99, 0xed, 0x49, 0x3d, 0x7e, 0xdd, 0xb0, 0x0b, 0x16, 0x59, 0x40, 0x2f,
+ 0x53, 0x24, 0x4c, 0xd2, 0x68, 0x1c, 0xd1, 0x55, 0x36, 0xce, 0x77, 0xbd,
+ 0x5a, 0x1b, 0xd2, 0x5e, 0xec, 0x6b, 0x79, 0x3c, 0x95, 0x52, 0x07, 0x00,
+ 0x40, 0x3b, 0x5f, 0xa1, 0x7b, 0x9c, 0xe7, 0x39, 0xce, 0x7a, 0xb9, 0x20,
+ 0xd7, 0x3f, 0xd2, 0x00, 0x45, 0x04, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x71, 0x13, 0x00, 0x03, 0x10, 0x24, 0x00, 0x1e,
+ 0xdb, 0x63, 0xff, 0xf0, 0x9a, 0x08, 0xe7, 0x9e, 0xf1, 0x7d, 0x40, 0x24,
+ 0x90, 0xcc, 0x7d, 0xef, 0xff, 0xd8, 0x93, 0xfc, 0xdb, 0xff, 0x07, 0xf6,
+ 0x0f, 0xf6, 0x7c, 0xd5, 0xdf, 0xd5, 0x7d, 0x8a, 0x62, 0x58, 0xa7, 0xc7,
+ 0xe4, 0xdb, 0xe8, 0x39, 0x38, 0xcb, 0xd9, 0x01, 0xf4, 0x02, 0x8d, 0xa8,
+ 0x2c, 0x77, 0x88, 0x57, 0xd5, 0x70, 0x5e, 0xe2, 0x9e, 0xa1, 0x68, 0xd4,
+ 0xde, 0xd1, 0xa7, 0x56, 0x33, 0xc8, 0xfe, 0x54, 0xf6, 0x3c, 0x95, 0x57,
+ 0x32, 0x53, 0x2f, 0x33, 0x3d, 0xd8, 0x6d, 0x09, 0x77, 0xa6, 0xbe, 0x74,
+ 0x35, 0x32, 0xab, 0x65, 0x37, 0x00, 0xf1, 0xa8, 0xb1, 0xe1, 0x6b, 0xc2,
+ 0xd3, 0xb8, 0x38, 0x15, 0xe5, 0xf6, 0x64, 0x0e, 0x27, 0x38, 0xd3, 0x2e,
+ 0x27, 0x05, 0x5c, 0x06, 0xd1, 0x21, 0xed, 0x19, 0x80, 0x38, 0x2f, 0x06,
+ 0xeb, 0x68, 0xa2, 0xb8, 0x09, 0xe3, 0xc9, 0x5c, 0x28, 0x5f, 0x07, 0x12,
+ 0x45, 0xe9, 0x1e, 0x31, 0x75, 0x06, 0xa4, 0x1b, 0xc1, 0x5f, 0x41, 0x3e,
+ 0x5a, 0x88, 0x8f, 0xf7, 0x90, 0x00, 0x5d, 0xb6, 0x9e, 0x1a, 0x5c, 0x02,
+ 0x31, 0x4e, 0x8f, 0x01, 0x62, 0x7c, 0x48, 0x50, 0xb9, 0x4a, 0xf9, 0x16,
+ 0x3b, 0xd5, 0x37, 0xf1, 0xda, 0x28, 0x98, 0xfe, 0x5f, 0xfe, 0x58, 0x30,
+ 0xce, 0xc0, 0x9f, 0xb8, 0x92, 0x3e, 0x18, 0x44, 0xa1, 0xd4, 0xe1, 0x8a,
+ 0xdf, 0xc1, 0xae, 0x0e, 0xe3, 0x96, 0x46, 0x3c, 0x73, 0x53, 0x7a, 0x49,
+ 0xa4, 0x68, 0x31, 0x87, 0x38, 0xd7, 0x05, 0x19, 0x2f, 0x56, 0x70, 0x78,
+ 0xa7, 0xe4, 0xff, 0x0e, 0x36, 0x3a, 0x48, 0x10, 0x25, 0xc3, 0x98, 0x70,
+ 0x55, 0x47, 0x72, 0x33, 0xda, 0x0b, 0xae, 0xbc, 0xf8, 0x2f, 0xe4, 0xa2,
+ 0xd2, 0x71, 0xac, 0xeb, 0x2e, 0xd2, 0x51, 0x42, 0x6d, 0x50, 0x7b, 0x82,
+ 0xd6, 0xe4, 0x50, 0x1d, 0x20, 0x56, 0xb0, 0x67, 0xbc, 0x12, 0xa3, 0x88,
+ 0x61, 0xb9, 0x8a, 0x17, 0xee, 0x91, 0x18, 0xf0, 0x64, 0x5c, 0xc3, 0x34,
+ 0xeb, 0x5d, 0xd5, 0x5b, 0x42, 0x62, 0x15, 0xbd, 0x38, 0xd6, 0x76, 0xb2,
+ 0x2c, 0x76, 0x31, 0x20, 0x81, 0xfd, 0x39, 0x57, 0x3a, 0x01, 0x6a, 0xd6,
+ 0xfc, 0x69, 0x7f, 0x83, 0xf3, 0xed, 0x3c, 0xa3, 0x71, 0xc7, 0xd0, 0x97,
+ 0x45, 0xa6, 0x37, 0xa2, 0xea, 0x85, 0xb0, 0xf6, 0xc7, 0x51, 0x03, 0xf9,
+ 0xe4, 0xa5, 0xde, 0x0b, 0x91, 0xc4, 0x8b, 0xd5, 0xe3, 0x90, 0x59, 0x21,
+ 0x66, 0x76, 0x52, 0x7a, 0xa8, 0x28, 0xae, 0xab, 0x07, 0xb0, 0xa6, 0x77,
+ 0x7b, 0x60, 0xb7, 0x15, 0xa7, 0x8d, 0x0b, 0x56, 0x1e, 0x07, 0xbf, 0xad,
+ 0x71, 0x70, 0x7d, 0xbe, 0xf6, 0xac, 0xbe, 0xd1, 0xdb, 0x9e, 0x7d, 0x8c,
+ 0x6c, 0x5f, 0xfa, 0xb9, 0xdd, 0x0e, 0xb8, 0x04, 0xe0, 0xcf, 0xda, 0x21,
+ 0xbd, 0x8f, 0xac, 0x69, 0x40, 0x05, 0x64, 0xfa, 0xb9, 0xaf, 0xfd, 0x9f,
+ 0xf2, 0x78, 0x28, 0xe4, 0x6c, 0x61, 0x06, 0x41, 0x25, 0xcc, 0x4c, 0x63,
+ 0x7b, 0x59, 0x2b, 0x94, 0x3a, 0x7b, 0x82, 0x1f, 0xe1, 0x1c, 0xe5, 0x48,
+ 0x6e, 0x53, 0x6d, 0x30, 0x8f, 0x26, 0xb2, 0x2a, 0x78, 0x93, 0x5e, 0xc2,
+ 0x61, 0x95, 0xcb, 0x4d, 0xc0, 0x8d, 0x4a, 0x7f, 0xba, 0x84, 0x1e, 0xa3,
+ 0xbb, 0x83, 0x95, 0x49, 0x34, 0x8f, 0x5b, 0x98, 0x17, 0xef, 0xd4, 0x72,
+ 0x44, 0x4e, 0x90, 0xe1, 0x36, 0x25, 0x6f, 0xaa, 0xec, 0x24, 0x27, 0x75,
+ 0x84, 0x34, 0xd7, 0xf1, 0xe4, 0x3d, 0xc0, 0xa3, 0xaf, 0x72, 0x6c, 0xe9,
+ 0x5f, 0x9b, 0xd2, 0xd0, 0x1c, 0x0a, 0xca, 0x02, 0xc1, 0xcf, 0x6e, 0x14,
+ 0x35, 0x06, 0x7f, 0x4f, 0x2e, 0x4e, 0xf0, 0x97, 0xc3, 0xad, 0xe5, 0x20,
+ 0x8c, 0x87, 0x4b, 0x3a, 0xf4, 0x5e, 0xdf, 0x4c, 0xfa, 0x5f, 0x4b, 0xec,
+ 0x22, 0xad, 0xc9, 0xc2, 0x04, 0x67, 0x32, 0xce, 0x96, 0x45, 0x95, 0x91,
+ 0x5d, 0xc4, 0x15, 0x00, 0x0e, 0xf2, 0xfa, 0x9d, 0x3d, 0x33, 0xce, 0x5d,
+ 0x87, 0x3f, 0x05, 0x7b, 0x69, 0xbb, 0xa5, 0xf3, 0x5d, 0x71, 0xbc, 0x0b,
+ 0x63, 0xe1, 0x2e, 0xcf, 0x62, 0xd0, 0x7e, 0x2c, 0x5c, 0x5d, 0x0f, 0xd4,
+ 0x7f, 0x66, 0xd8, 0x63, 0x67, 0xaf, 0x0f, 0x9f, 0x26, 0xc3, 0xec, 0xc2,
+ 0x38, 0x29, 0x57, 0x36, 0x72, 0xff, 0x57, 0x5f, 0xff, 0x1f, 0x5f, 0x76,
+ 0x0f, 0x0f, 0x4c, 0x08, 0x04, 0x48, 0x50, 0xad, 0xfe, 0x0a, 0x3f, 0x8b,
+ 0x15, 0x2f, 0x42, 0xb4, 0x4a, 0xd8, 0xf6, 0xe2, 0x4d, 0xe2, 0xa6, 0x00,
+ 0x26, 0x5d, 0xad, 0xad, 0x1a, 0x52, 0xeb, 0xf2, 0xca, 0x70, 0xfd, 0xaf,
+ 0x4a, 0x40, 0x91, 0xcf, 0x6a, 0x59, 0xfe, 0x2d, 0xb4, 0x6d, 0x67, 0xf2,
+ 0xb3, 0x03, 0x5c, 0x32, 0x2d, 0xfc, 0xbe, 0x13, 0x5c, 0x90, 0xa1, 0xce,
+ 0x2f, 0xe9, 0x2a, 0x26, 0x5c, 0x9c, 0x19, 0x8f, 0x9e, 0xd7, 0x06, 0x82,
+ 0x18, 0x07, 0xbf, 0x2c, 0x8a, 0xc1, 0xb7, 0xdf, 0xa8, 0x6e, 0x1c, 0x4b,
+ 0x31, 0xc7, 0xac, 0x33, 0xaf, 0xb8, 0x05, 0x02, 0x2a, 0xeb, 0xfb, 0xc9,
+ 0xad, 0xbd, 0x3c, 0xbb, 0xd5, 0xe6, 0x05, 0xf0, 0xac, 0xc7, 0x2c, 0x51,
+ 0xbf, 0xb3, 0xba, 0xb1, 0xa5, 0xa9, 0x57, 0x9b, 0x87, 0x19, 0x7a, 0xc1,
+ 0xc2, 0x5e, 0x52, 0x94, 0x81, 0x2e, 0xd8, 0xf8, 0xc0, 0x63, 0x70, 0x68,
+ 0xea, 0xbb, 0x3f, 0x8a, 0x93, 0x02, 0xf0, 0x16, 0x22, 0x24, 0xf9, 0x09,
+ 0xa5, 0xf7, 0x5c, 0x20, 0x55, 0x6a, 0x9a, 0x0b, 0xf8, 0x73, 0x6e, 0x36,
+ 0x74, 0x60, 0x10, 0x24, 0xbd, 0x75, 0x30, 0x77, 0x77, 0x61, 0xde, 0xd1,
+ 0x66, 0x57, 0xad, 0x22, 0xab, 0xb0, 0x1d, 0xfc, 0x49, 0xd3, 0x86, 0x32,
+ 0x13, 0x69, 0x52, 0xe3, 0xbb, 0x2e, 0xc3, 0xde, 0x69, 0x06, 0xf4, 0xf1,
+ 0x58, 0xb0, 0xaa, 0x42, 0xd5, 0xf0, 0x52, 0xb7, 0x71, 0x28, 0xff, 0x16,
+ 0x2d, 0xfa, 0xd6, 0xc8, 0xc5, 0xfc, 0xc3, 0x35, 0xff, 0x87, 0x43, 0xfd,
+ 0x67, 0xf8, 0x42, 0x7a, 0xbc, 0x11, 0x0f, 0x19, 0xad, 0xa8, 0x88, 0xcc,
+ 0x0c, 0x17, 0x93, 0x04, 0x6b, 0x8a, 0x90, 0x96, 0x3d, 0x21, 0x17, 0x30,
+ 0x5b, 0xbf, 0x40, 0xc0, 0x02, 0x84, 0x86, 0x85, 0x7c, 0x25, 0xc4, 0x20,
+ 0x60, 0x1d, 0xb4, 0x98, 0xaf, 0x2a, 0xf2, 0x5e, 0xe1, 0xd6, 0x07, 0x28,
+ 0x3a, 0x2a, 0x69, 0x61, 0x75, 0xb1, 0x02, 0xeb, 0x5b, 0x19, 0x5e, 0xdb,
+ 0x1d, 0x2a, 0x01, 0xb9, 0x86, 0x6e, 0xa4, 0x6c, 0xc2, 0xf3, 0x14, 0x49,
+ 0x41, 0x77, 0xb4, 0xa2, 0x40, 0x5c, 0xfd, 0xc0, 0xbb, 0xe4, 0x6d, 0x5f,
+ 0xa7, 0x61, 0xb5, 0x3f, 0xf9, 0x69, 0x56, 0xd9, 0xba, 0x51, 0x65, 0x74,
+ 0x5b, 0x5b, 0x45, 0x01, 0xc6, 0x69, 0xcc, 0x53, 0xfd, 0xef, 0x5c, 0xe3,
+ 0x82, 0xfd, 0x36, 0xfa, 0xbe, 0xe7, 0x74, 0x3c, 0xf5, 0x23, 0x2b, 0x3c,
+ 0x90, 0x35, 0xc1, 0xd3, 0x3a, 0x1f, 0x01, 0x99, 0xe9, 0x18, 0x05, 0x51,
+ 0xb7, 0xe6, 0x2a, 0xd8, 0x8b, 0x9f, 0x06, 0x39, 0xe7, 0x08, 0x02, 0x11,
+ 0x24, 0x76, 0x45, 0x27, 0xe1, 0xd2, 0xd3, 0xc4, 0x47, 0xfe, 0x6b, 0x36,
+ 0x76, 0x6c, 0x69, 0xf5, 0x6b, 0xf8, 0xf4, 0x13, 0x80, 0x2b, 0x21, 0xcf,
+ 0x23, 0x04, 0xd8, 0xac, 0x8c, 0x69, 0x02, 0x17, 0x90, 0xda, 0x28, 0xd5,
+ 0x86, 0x66, 0xcd, 0x4c, 0xd2, 0xbf, 0xe7, 0x2c, 0xba, 0x1e, 0x04, 0x4f,
+ 0xf9, 0x47, 0x4c, 0xfe, 0x4f, 0x31, 0x8b, 0x7f, 0x14, 0xa4, 0x6e, 0xde,
+ 0x30, 0xd5, 0x2b, 0x1e, 0x7f, 0x27, 0x98, 0xc7, 0x10, 0x3b, 0xa5, 0x41,
+ 0xd8, 0x28, 0x67, 0xac, 0x45, 0x05, 0x9f, 0x08, 0xca, 0x07, 0x2b, 0xd3,
+ 0x88, 0x77, 0xd2, 0x42, 0xad, 0xe6, 0xc0, 0xad, 0xda, 0x43, 0x23, 0x89,
+ 0xe3, 0x52, 0x5f, 0x5e, 0x74, 0xe3, 0x76, 0x15, 0xa6, 0x2b, 0x2c, 0x43,
+ 0x39, 0x72, 0xb7, 0x73, 0xd4, 0xbf, 0xbf, 0x10, 0x23, 0x08, 0x1c, 0x04,
+ 0x4e, 0xb0, 0x91, 0xc3, 0xc5, 0x06, 0xed, 0x84, 0x7e, 0x36, 0xc7, 0xa4,
+ 0xdb, 0x6a, 0x5f, 0xe9, 0x80, 0x57, 0x05, 0x00, 0x00, 0xea, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x13, 0x00, 0x01, 0x10, 0x10, 0x14,
+ 0x70, 0x39, 0xf3, 0xfa, 0xd3, 0xcf, 0x35, 0x3f, 0x78, 0x5d, 0x5a, 0x03,
+ 0xd6, 0x4a, 0xe1, 0xe6, 0x1b, 0x3e, 0xc4, 0x52, 0xe4, 0xb6, 0xe3, 0x33,
+ 0x74, 0xb5, 0x04, 0xc1, 0x40, 0x29, 0x72, 0xde, 0xce, 0x84, 0x5d, 0xf2,
+ 0xf7, 0x95, 0x7a, 0x78, 0x04, 0xbe, 0xe8, 0x25, 0xbc, 0xca, 0x67, 0xdb,
+ 0x2f, 0x8b, 0x4e, 0x2b, 0x46, 0x01, 0x62, 0x8a, 0x92, 0xc5, 0xba, 0x2d,
+ 0x83, 0xf7, 0x54, 0xd9, 0x32, 0x9d, 0xfe, 0x0c, 0x76, 0xb4, 0x5b, 0x4f,
+ 0x94, 0xd4, 0xeb, 0xf5, 0x59, 0xa8, 0x6f, 0x55, 0x69, 0x91, 0xea, 0x90,
+ 0x2f, 0x15, 0x2a, 0x61, 0x76, 0x88, 0xe0, 0x08, 0xac, 0xf5, 0x9a, 0x06,
+ 0x43, 0x0d, 0x6c, 0x59, 0xb7, 0xd5, 0xa3, 0x89, 0x37, 0x3a, 0x31, 0xa4,
+ 0xfd, 0xe2, 0x44, 0x40, 0x4c, 0xe7, 0x53, 0xa6, 0x6d, 0xc3, 0xe3, 0x52,
+ 0xa0, 0x2d, 0x3d, 0x74, 0x55, 0x1d, 0xe1, 0xb5, 0x3f, 0x2a, 0xad, 0x71,
+ 0x54, 0x1e, 0xdd, 0xbd, 0x35, 0xc4, 0xa5, 0xf5, 0xeb, 0x72, 0x5a, 0x27,
+ 0x5d, 0xb1, 0x7c, 0x98, 0xd5, 0x0c, 0xe7, 0x6a, 0x00, 0xe9, 0x12, 0x11,
+ 0xbb, 0xe3, 0xea, 0x18, 0xbf, 0xb0, 0x9f, 0x91, 0xc2, 0xb1, 0x93, 0x41,
+ 0x44, 0x96, 0xdd, 0xcc, 0xc4, 0x6b, 0x24, 0xa2, 0xa1, 0xb5, 0xbe, 0xfd,
+ 0xe0, 0xbd, 0xb8, 0x2a, 0xb3, 0xf9, 0x72, 0xdb, 0xe1, 0x8f, 0x0f, 0xe9,
+ 0x93, 0x07, 0x07, 0x05, 0xa7, 0x89, 0xb0, 0x61, 0x2d, 0xbb, 0x3b, 0xd3,
+ 0x82, 0x13, 0x19, 0xf1, 0x92, 0x71, 0xe0, 0x15, 0xdf, 0xb0, 0x02, 0x70,
+ 0x06, 0xb6, 0x2d, 0x97, 0x5f, 0xba, 0xd2, 0xc2, 0xe6, 0x56, 0x6c, 0x7f,
+ 0x9d, 0x09, 0x4e, 0xed, 0xe3, 0xae, 0x4a, 0x45, 0xb7, 0x3d, 0xfe, 0x79,
+ 0xb0, 0x8b, 0xbd, 0xd2, 0x3e, 0x25, 0x1e, 0xf7, 0xf6, 0xc0, 0xec, 0xf7,
+ 0x63, 0x42, 0x73, 0xec, 0x68, 0xce, 0x0d, 0x45, 0x53, 0x2d, 0x1a, 0x5c,
+ 0x74, 0x50, 0xef, 0x01, 0xad, 0xbd, 0xc6, 0x5a, 0xbf, 0xb3, 0xa3, 0x71,
+ 0x33, 0x35, 0x62, 0x43, 0x7e, 0x75, 0xc5, 0x35, 0xb5, 0xa2, 0x23, 0xe5,
+ 0xe7, 0x18, 0x90, 0x7f, 0xc6, 0x48, 0x26, 0xd0, 0x40, 0x5d, 0x50, 0x00,
+ 0x36, 0xc8, 0xe7, 0xf3, 0xb0, 0x6a, 0x38, 0xd4, 0xbd, 0xa5, 0x67, 0x16,
+ 0x5e, 0x71, 0x50, 0x5d, 0x8e, 0xb4, 0xa8, 0x3e, 0xb1, 0x26, 0xf4, 0xfd,
+ 0xe7, 0x1c, 0x3f, 0xfb, 0x05, 0xfa, 0xe1, 0xdc, 0x95, 0x03, 0xbf, 0x08,
+ 0xbb, 0x8e, 0x20, 0x49, 0x4e, 0x0c, 0x74, 0x3f, 0xed, 0x55, 0x9f, 0xc8,
+ 0x09, 0xef, 0x45, 0x89, 0xc1, 0x66, 0x7a, 0x8c, 0x35, 0xa4, 0x6e, 0xac,
+ 0x01, 0xc3, 0xd7, 0x54, 0x57, 0xa4, 0xf5, 0xe2, 0x40, 0xe1, 0xc2, 0x22,
+ 0x18, 0xf0, 0x86, 0xd2, 0x80, 0x5f, 0x6b, 0x91, 0x57, 0xaf, 0x1f, 0x8a,
+ 0x09, 0xf8, 0x30, 0x60, 0x46, 0x40, 0x7a, 0xd4, 0xe6, 0x7a, 0x8e, 0x4e,
+ 0x71, 0x52, 0x4f, 0x45, 0x54, 0x33, 0x0d, 0x8c, 0x95, 0x3e, 0x5e, 0xe4,
+ 0x61, 0x63, 0x43, 0x51, 0xfa, 0x34, 0x44, 0x25, 0x1c, 0x64, 0x6b, 0x69,
+ 0xfe, 0xf8, 0xc1, 0x66, 0xd7, 0xef, 0x42, 0xdb, 0xcf, 0x46, 0xa4, 0x6d,
+ 0x19, 0x9a, 0xad, 0x22, 0x7b, 0x7c, 0x28, 0x4e, 0x27, 0xea, 0xc2, 0xb2,
+ 0xbf, 0xfe, 0x49, 0xbb, 0x3d, 0x2e, 0x5e, 0x24, 0x39, 0xf3, 0xb8, 0xe6,
+ 0x53, 0x18, 0x0b, 0x05, 0x79, 0xa4, 0xbc, 0x07, 0xb3, 0x78, 0xf0, 0xdc,
+ 0x48, 0xaf, 0x78, 0x6f, 0x45, 0xce, 0x36, 0x5f, 0x03, 0x1a, 0x65, 0xe2,
+ 0x1b, 0x49, 0x14, 0x92, 0xf6, 0x00, 0x5d, 0x9a, 0x70, 0xed, 0x5c, 0xff,
+ 0x17, 0xb6, 0x2d, 0x66, 0x89, 0x68, 0x30, 0x4e, 0x75, 0xf8, 0x40, 0xd2,
+ 0xa7, 0x61, 0x4f, 0x57, 0x57, 0x97, 0x23, 0x51, 0x9c, 0x20, 0x94, 0x23,
+ 0x80, 0x1e, 0xe6, 0x1d, 0x10, 0xcb, 0x5d, 0xca, 0x99, 0xf0, 0x8d, 0xc8,
+ 0xd6, 0x8a, 0xd2, 0xc5, 0xfe, 0x2a, 0xd2, 0x2a, 0x5e, 0x64, 0x10, 0xd4,
+ 0xf6, 0x18, 0xcd, 0x12, 0x33, 0x43, 0xfd, 0xf9, 0xf1, 0x49, 0x10, 0x39,
+ 0x1f, 0xbc, 0xd5, 0xaa, 0x55, 0xe2, 0x76, 0x64, 0xba, 0x83, 0x54, 0x55,
+ 0x82, 0xdf, 0x83, 0x6f, 0x4f, 0x31, 0x58, 0x57, 0xdc, 0x00, 0xa0, 0xf4,
+ 0x78, 0x47, 0x7a, 0x57, 0xf7, 0x07, 0x52, 0x5a, 0xda, 0x47, 0x22, 0x48,
+ 0xc8, 0x6e, 0x2f, 0x68, 0x38, 0x72, 0x7b, 0xb9, 0x1d, 0xeb, 0xe0, 0x9d,
+ 0xaf, 0x53, 0xb4, 0x5e, 0x03, 0xd7, 0xec, 0x2d, 0xfa, 0x34, 0xfe, 0xfa,
+ 0xc9, 0x34, 0x1a, 0x2b, 0x13, 0xb6, 0x5d, 0x05, 0x37, 0xf2, 0x1a, 0xfb,
+ 0x3e, 0x5d, 0x65, 0x6b, 0xea, 0x32, 0x2d, 0xe3, 0x1a, 0x2c, 0xab, 0xc7,
+ 0x17, 0xe5, 0xf5, 0x1b, 0x78, 0x60, 0xd6, 0x6a, 0x5c, 0x34, 0x97, 0xd9,
+ 0xe5, 0x66, 0xad, 0xf1, 0xae, 0x94, 0x60, 0xba, 0x61, 0x91, 0x35, 0x0b,
+ 0x79, 0x51, 0x4d, 0x8c, 0x94, 0x29, 0x1e, 0x02, 0x84, 0xb2, 0x4d, 0x41,
+ 0x78, 0x0e, 0x71, 0x61, 0x86, 0xfd, 0xbd, 0x2e, 0x70, 0x2a, 0x0a, 0x42,
+ 0x58, 0x77, 0x62, 0x8d, 0xa7, 0x4f, 0x21, 0x84, 0xc9, 0xfd, 0x5a, 0xe5,
+ 0xfa, 0xdd, 0xeb, 0x56, 0x30, 0x5e, 0x29, 0x42, 0x9a, 0x75, 0x50, 0x17,
+ 0xcb, 0x28, 0xc6, 0x50, 0x9d, 0x21, 0x81, 0xa9, 0x2e, 0x42, 0x7d, 0xd7,
+ 0xc3, 0xfd, 0xb0, 0xf0, 0x6c, 0xf1, 0xa2, 0x64, 0x40, 0x01, 0xce, 0xb4,
+ 0xa0, 0x3f, 0x1d, 0xba, 0x83, 0xff, 0x2b, 0x15, 0x71, 0x7c, 0xbe, 0x73,
+ 0x5d, 0xb0, 0xc3, 0xff, 0x7c, 0xc2, 0x13, 0x40, 0xd3, 0x66, 0xa1, 0x2c,
+ 0xed, 0x83, 0xe4, 0x98, 0x1c, 0x4e, 0xe0, 0xb5, 0x04, 0x8f, 0x7f, 0x4f,
+ 0x98, 0x25, 0x4e, 0x07, 0x98, 0xdc, 0x1e, 0xc7, 0x17, 0x95, 0x36, 0x82,
+ 0x97, 0xbc, 0xc2, 0xdf, 0x71, 0x80, 0x60, 0x19, 0x22, 0x3e, 0xbf, 0xa0,
+ 0x86, 0x21, 0x5a, 0x6a, 0x07, 0xc0, 0x80, 0x4f, 0xac, 0x4c, 0x36, 0x17,
+ 0xb5, 0x17, 0x4d, 0x2b, 0xf1, 0x96, 0xb8, 0x0d, 0x2e, 0xca, 0xea, 0xe5,
+ 0xc9, 0xe3, 0xa2, 0x83, 0xa4, 0xb8, 0xa8, 0x19, 0x20, 0x14, 0x3d, 0x83,
+ 0x0a, 0x43, 0x4b, 0x4a, 0x60, 0x00, 0x16, 0x3d, 0x6f, 0x67, 0x95, 0x24,
+ 0x03, 0x12, 0xe5, 0xd1, 0x80, 0xfc, 0xb5, 0xba, 0xce, 0x3d, 0x22, 0x0a,
+ 0x1e, 0x20, 0xa6, 0x37, 0xdb, 0x27, 0x78, 0xf0, 0x5a, 0x65, 0xbd, 0xeb,
+ 0x4f, 0xca, 0x7f, 0x7c, 0xe8, 0x13, 0xeb, 0x9e, 0x5c, 0x1d, 0x55, 0x79,
+ 0x1a, 0xfd, 0xe0, 0x9c, 0x5b, 0xdc, 0x1d, 0x51, 0x55, 0x93, 0x27, 0x20,
+ 0x52, 0x93, 0x67, 0x70, 0x06, 0xf5, 0xfe, 0xd7, 0x2f, 0x3d, 0xe2, 0xfc,
+ 0xb8, 0x87, 0x60, 0xc9, 0x3d, 0x68, 0x66, 0x5d, 0x45, 0xf5, 0xa9, 0x83,
+ 0x19, 0x3b, 0xfe, 0xef, 0xbd, 0xf0, 0xed, 0x43, 0xf8, 0x2f, 0xff, 0x06,
+ 0x46, 0x01, 0x45, 0xf5, 0xcf, 0xf9, 0xa2, 0xc2, 0xda, 0x17, 0xcb, 0x11,
+ 0xbb, 0x3b, 0xf9, 0x0f, 0xa5, 0xf9, 0xa4, 0x63, 0x24, 0x94, 0x1d, 0xa9,
+ 0xd5, 0x2d, 0x82, 0xa8, 0x46, 0x1d, 0xce, 0xed, 0x7e, 0x1f, 0xe1, 0xfc,
+ 0x7e, 0x48, 0x28, 0x75, 0x4d, 0x0d, 0xd0, 0xde, 0xdd, 0x59, 0x1f, 0x71,
+ 0xd7, 0xab, 0x36, 0xb4, 0x7e, 0xd2, 0xfb, 0xc3, 0x27, 0xa0, 0x33, 0xe9,
+ 0xff, 0x27, 0xcc, 0x31, 0x97, 0x72, 0xc8, 0xde, 0x73, 0x66, 0xe4, 0x30,
+ 0x2b, 0xb8, 0x11, 0x93, 0x3f, 0x83, 0x64, 0x05, 0xe6, 0xa7, 0x8d, 0x29,
+ 0x08, 0xf5, 0x6a, 0xac, 0x0c, 0x99, 0xe6, 0xc1, 0x29, 0xa9, 0xc5, 0xe4,
+ 0x9a, 0x3c, 0x59, 0x55, 0x25, 0xec, 0xa6, 0x3e, 0xff, 0xfa, 0xb4, 0x9e,
+ 0x77, 0xb1, 0x4f, 0xfa, 0xbb, 0x75, 0xd8, 0x75, 0x74, 0xca, 0x61, 0xb0,
+ 0xc3, 0x1d, 0x0f, 0x37, 0x46, 0x9b, 0xb1, 0x0e, 0x51, 0xff, 0x10, 0xb0,
+ 0xfe, 0x93, 0x71, 0x7b, 0x9d, 0xe1, 0x98, 0x5f, 0xe3, 0x48, 0x51, 0x5c,
+ 0xcb, 0xd8, 0xee, 0xe2, 0xb0, 0x1b, 0x2e, 0x9d, 0x5d, 0xd4, 0x54, 0x43,
+ 0x97, 0xcd, 0xac, 0xde, 0xfe, 0xab, 0xbc, 0xbf, 0x7b, 0xf0, 0xdc, 0x9e,
+ 0x63, 0xe3, 0xf9, 0x33, 0x5e, 0xef, 0x82, 0xaa, 0x14, 0x5e, 0xc4, 0x3d,
+ 0xe5, 0x72, 0x2a, 0xd7, 0xb1, 0x7f, 0x87, 0xbb, 0x77, 0xd7, 0xa4, 0xaa,
+ 0x07, 0x41, 0x20, 0x10, 0x75, 0x37, 0x59, 0xd1, 0xd2, 0xb1, 0xb0, 0x6d,
+ 0x48, 0x8d, 0xa1, 0x2d, 0x00, 0x55, 0x19, 0x3d, 0xdb, 0x1d, 0x21, 0x8a,
+ 0xc8, 0x05, 0xab, 0xa8, 0xa2, 0x95, 0xb0, 0xde, 0x6f, 0x79, 0x2f, 0xb7,
+ 0x45, 0x30, 0x5e, 0x96, 0x33, 0xed, 0xcf, 0x76, 0xcb, 0x52, 0x31, 0x49,
+ 0x34, 0xf9, 0x7b, 0x47, 0x30, 0x4a, 0x39, 0xcf, 0x45, 0x82, 0xb5, 0x4a,
+ 0x5e, 0xd8, 0xa3, 0xc9, 0x64, 0x44, 0x64, 0x8b, 0x75, 0x07, 0x8a, 0xbc,
+ 0xec, 0xb9, 0xcf, 0x73, 0xbe, 0xcd, 0xe7, 0x72, 0xbd, 0x4e, 0xb1, 0x7e,
+ 0x6b, 0xd9, 0x87, 0xed, 0x18, 0x03, 0xaf, 0x94, 0xc0, 0xe0, 0x8d, 0x06,
+ 0x9f, 0xfd, 0x0d, 0x19, 0x23, 0xd4, 0xc8, 0x9f, 0x39, 0x93, 0xa1, 0xe4,
+ 0xad, 0xb8, 0x22, 0x65, 0x7c, 0xe0, 0xbe, 0x22, 0xcd, 0xb2, 0x67, 0x3f,
+ 0xcf, 0x14, 0xcf, 0x27, 0x19, 0xd2, 0x09, 0x19, 0x5d, 0x05, 0x8c, 0x3b,
+ 0x1d, 0x25, 0xf1, 0xdc, 0x3e, 0x1e, 0x31, 0xbe, 0x8f, 0xc0, 0xe5, 0xa2,
+ 0x95, 0x89, 0xbf, 0xd7, 0x5a, 0xc2, 0xe9, 0x7d, 0x2e, 0xc8, 0xad, 0x92,
+ 0xaa, 0x31, 0x77, 0x3b, 0x84, 0x6e, 0x05, 0xd1, 0x30, 0x14, 0x87, 0x70,
+ 0xc5, 0x7a, 0xd9, 0x6b, 0xb1, 0xcd, 0x90, 0x4c, 0x30, 0x9a, 0x91, 0x6e,
+ 0x88, 0x5e, 0xa9, 0x42, 0xc1, 0x83, 0x54, 0x9c, 0x65, 0x76, 0xeb, 0xe2,
+ 0xc0, 0xc6, 0x5e, 0x12, 0xbb, 0x1e, 0x64, 0x2a, 0xc3, 0x09, 0x9e, 0x8e,
+ 0x94, 0x3b, 0x3b, 0xc9, 0x85, 0x94, 0x78, 0xed, 0xa9, 0xeb, 0x5c, 0xcb,
+ 0x06, 0x51, 0x02, 0xbe, 0xc9, 0x8e, 0x98, 0x79, 0x51, 0x07, 0x19, 0x9c,
+ 0xf9, 0x53, 0xda, 0xaa, 0xeb, 0x91, 0xea, 0xda, 0x24, 0x1e, 0x5a, 0x54,
+ 0x48, 0xe6, 0x24, 0x40, 0xca, 0x02, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0e, 0x00, 0x03, 0x10, 0x24, 0x00, 0x1e,
+ 0xed, 0xd0, 0x91, 0x55, 0xd2, 0x3f, 0xe5, 0x07, 0xbe, 0xa7, 0xf2, 0xad,
+ 0x11, 0x65, 0x9d, 0x2b, 0xcf, 0xec, 0x8b, 0x6c, 0xcd, 0x3c, 0xea, 0x0d,
+ 0x8f, 0xd2, 0x35, 0x31, 0x77, 0xb8, 0x99, 0x7e, 0xad, 0x11, 0xda, 0x45,
+ 0x39, 0xc7, 0xfd, 0xc6, 0x05, 0x6f, 0x6a, 0x8a, 0x66, 0xfb, 0x02, 0xbe,
+ 0xbd, 0xf5, 0x44, 0x54, 0xe8, 0x70, 0xa3, 0x7a, 0x06, 0x6c, 0x7d, 0xe0,
+ 0x79, 0x14, 0x58, 0x48, 0x98, 0xe3, 0x83, 0xb0, 0x08, 0x0b, 0x4d, 0x35,
+ 0x1a, 0x98, 0xc8, 0x08, 0x56, 0x95, 0xcc, 0xfa, 0x64, 0xe9, 0x7a, 0x2c,
+ 0xdd, 0x43, 0xa0, 0x1d, 0xf8, 0x0e, 0x4d, 0x79, 0x96, 0x48, 0x54, 0x96,
+ 0x76, 0x6d, 0xf3, 0xc1, 0xfb, 0xa8, 0x23, 0x6b, 0x1a, 0xc8, 0x25, 0xa5,
+ 0xb3, 0xcf, 0x1a, 0x00, 0x56, 0x8a, 0xc9, 0x75, 0x17, 0xb8, 0x08, 0xea,
+ 0x97, 0x9a, 0x2c, 0xef, 0x3d, 0xb0, 0xfd, 0xd2, 0x93, 0xd4, 0x85, 0x66,
+ 0x27, 0x1d, 0x5d, 0x8f, 0x87, 0xa6, 0xeb, 0x0e, 0x53, 0x7c, 0x55, 0x9e,
+ 0xdf, 0x58, 0xe2, 0x9b, 0x0b, 0xe2, 0xb4, 0x4b, 0x89, 0xb6, 0x75, 0xe2,
+ 0xcb, 0x8f, 0xe1, 0x1c, 0xde, 0xbd, 0x93, 0x15, 0x78, 0x79, 0x94, 0x96,
+ 0x17, 0xad, 0x7b, 0x6e, 0x6f, 0xae, 0xbd, 0x5b, 0x0f, 0x6f, 0x6a, 0xde,
+ 0xb5, 0x76, 0xe5, 0xa2, 0x5c, 0x26, 0x13, 0x9f, 0xa6, 0x59, 0xf9, 0x7b,
+ 0xca, 0x98, 0xe3, 0xff, 0xf7, 0xbe, 0xaf, 0xda, 0x2d, 0xff, 0x7d, 0x59,
+ 0xfb, 0x68, 0x8b, 0x4d, 0x47, 0x85, 0x8a, 0x0b, 0xd4, 0x70, 0x25, 0xa2,
+ 0x3a, 0x2c, 0x4e, 0xbc, 0x7f, 0xe3, 0x34, 0x39, 0x72, 0x9d, 0x8b, 0x2d,
+ 0xa6, 0xc5, 0x3c, 0xd1, 0xab, 0x5b, 0x57, 0x02, 0xd0, 0xb7, 0xa6, 0xf8,
+ 0x49, 0x4f, 0x49, 0x1e, 0x0b, 0x52, 0x50, 0x07, 0x60, 0x28, 0xf0, 0x5d,
+ 0xfb, 0xae, 0x6e, 0x98, 0x63, 0x06, 0xda, 0x63, 0xa0, 0x0b, 0xba, 0xb2,
+ 0xd0, 0x2d, 0x82, 0x8b, 0x64, 0xe7, 0x8b, 0xc3, 0x0f, 0x33, 0xb8, 0x7e,
+ 0x35, 0x82, 0xfc, 0xa1, 0x61, 0x0b, 0x34, 0xee, 0x66, 0xa0, 0xbc, 0xd6,
+ 0x70, 0x53, 0xec, 0x07, 0x55, 0xbc, 0xa9, 0x4e, 0x99, 0x05, 0xa0, 0x7a,
+ 0xb5, 0x0f, 0xfd, 0x49, 0xbf, 0x9a, 0xef, 0x23, 0x8b, 0x0c, 0xfa, 0xc2,
+ 0x8a, 0xc4, 0x7d, 0x66, 0xc6, 0x16, 0x6d, 0x3c, 0x22, 0xea, 0x63, 0xf0,
+ 0x2a, 0x7a, 0xc0, 0x51, 0xc2, 0xa3, 0x0c, 0x77, 0x3a, 0xb7, 0xc7, 0x82,
+ 0x90, 0x01, 0xdc, 0x7b, 0x91, 0x3f, 0x44, 0xa5, 0x9a, 0x62, 0xde, 0x17,
+ 0x39, 0x9b, 0x97, 0x35, 0x4f, 0xd1, 0x6a, 0xa6, 0x61, 0x47, 0x9f, 0x60,
+ 0x74, 0x5d, 0x3b, 0x67, 0x9f, 0xdd, 0x28, 0x3d, 0x0d, 0x19, 0x91, 0x96,
+ 0x79, 0x72, 0x80, 0xe4, 0x3d, 0xdf, 0x32, 0xe3, 0x5b, 0x71, 0xd3, 0xf3,
+ 0xf4, 0x0b, 0xa4, 0x1f, 0x93, 0x01, 0xdc, 0xb1, 0x73, 0x84, 0x68, 0x90,
+ 0x8b, 0x51, 0x71, 0x92, 0x66, 0x95, 0x5f, 0x76, 0x14, 0xbf, 0x19, 0xf1,
+ 0x49, 0x5b, 0x9a, 0xd6, 0x79, 0x7e, 0x41, 0x0f, 0xe5, 0x58, 0x07, 0x24,
+ 0x8c, 0x10, 0xa2, 0x2c, 0x5d, 0xcc, 0xb9, 0xfa, 0x49, 0x5c, 0xe0, 0x36,
+ 0x2b, 0x95, 0x06, 0x27, 0x96, 0xb4, 0x4e, 0xc3, 0xc0, 0xb6, 0x7f, 0x65,
+ 0x70, 0x6e, 0x80, 0xfc, 0x22, 0xe7, 0x74, 0x6a, 0x04, 0xc2, 0xdf, 0x88,
+ 0x9a, 0x8d, 0x48, 0x79, 0x6e, 0x5c, 0x74, 0xc7, 0x67, 0x5a, 0xb9, 0xf9,
+ 0x66, 0x77, 0xd0, 0x89, 0xe1, 0x5f, 0x4f, 0xde, 0xee, 0xdd, 0x2a, 0x4d,
+ 0xbe, 0x2b, 0xf3, 0x36, 0x9b, 0xc5, 0xa7, 0xc5, 0x5b, 0x2c, 0x16, 0x2a,
+ 0x9b, 0xf8, 0x19, 0x9b, 0x5c, 0xfa, 0xd4, 0xf0, 0x43, 0x53, 0x6f, 0x04,
+ 0x0a, 0x78, 0x56, 0x73, 0x46, 0x3b, 0xe4, 0x3d, 0xc0, 0x6b, 0x44, 0xf8,
+ 0xb8, 0xc8, 0xc5, 0x08, 0xae, 0xc2, 0x80, 0xed, 0x14, 0xae, 0x9f, 0x08,
+ 0x10, 0xcf, 0x83, 0xd3, 0x49, 0xbe, 0xe2, 0x50, 0xd6, 0xfe, 0x08, 0xd1,
+ 0xe6, 0x70, 0x14, 0xd6, 0x94, 0x7b, 0x20, 0x0f, 0x60, 0xc9, 0xfe, 0x22,
+ 0xe6, 0xe1, 0xe1, 0xe8, 0xa7, 0x9b, 0xa0, 0xf1, 0x55, 0x7d, 0x1f, 0x64,
+ 0x56, 0x23, 0x90, 0x6f, 0xf8, 0xed, 0x71, 0x9e, 0x6c, 0xd4, 0x02, 0x2e,
+ 0x47, 0xd8, 0xdd, 0xe0, 0xa0, 0x7d, 0x49, 0xe6, 0xd7, 0x3a, 0x5f, 0x84,
+ 0x60, 0xa1, 0xe3, 0x66, 0xab, 0x6e, 0x33, 0x94, 0xc1, 0xa1, 0x15, 0x4a,
+ 0x96, 0x01, 0x0a, 0x93, 0xaa, 0x75, 0xbb, 0x28, 0xef, 0x42, 0x95, 0x66,
+ 0x7f, 0xcd, 0x3e, 0xff, 0xcd, 0x3c, 0x21, 0xde, 0x5b, 0x42, 0xec, 0x6d,
+ 0x28, 0x62, 0x43, 0x0d, 0x90, 0xbf, 0xc9, 0x8a, 0x62, 0x73, 0x21, 0x10,
+ 0x7f, 0x7c, 0xa9, 0x0a, 0x3d, 0x56, 0x2e, 0x96, 0xad, 0xf4, 0xa8, 0xa7,
+ 0x1c, 0x6b, 0x35, 0x4f, 0x53, 0xb3, 0xf7, 0xa7, 0xe9, 0xf8, 0x80, 0xa8,
+ 0xf8, 0xc7, 0x22, 0xc2, 0xd6, 0xd0, 0xd7, 0x0c, 0xa0, 0x60, 0xba, 0xce,
+ 0xa4, 0x35, 0x9a, 0x36, 0x73, 0x3a, 0xfa, 0x5a, 0x3a, 0x14, 0x23, 0xc0,
+ 0x6f, 0x16, 0x24, 0xed, 0xb9, 0xc8, 0x43, 0x25, 0xdb, 0x00, 0x98, 0xa9,
+ 0x1d, 0xdf, 0xa3, 0xac, 0xb2, 0x23, 0x26, 0x17, 0x44, 0x00, 0x51, 0x02,
+ 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0d,
+ 0x00, 0x01, 0x10, 0x24, 0x00, 0x18, 0x00, 0x1a, 0x80, 0xa7, 0x6b, 0xe0,
+ 0x58, 0x50, 0x10, 0xc5, 0x37, 0x22, 0xe7, 0x44, 0x91, 0x64, 0x56, 0x62,
+ 0xf5, 0x77, 0x4b, 0x98, 0x82, 0x38, 0x1c, 0x5e, 0xcd, 0x10, 0xb6, 0xc2,
+ 0x8c, 0x44, 0xd8, 0x0b, 0x39, 0x2a, 0xe2, 0x3f, 0xff, 0xe7, 0xed, 0x36,
+ 0xe4, 0x70, 0xd7, 0xa9, 0xfc, 0x23, 0xe6, 0xe9, 0x8e, 0x76, 0xb8, 0xa0,
+ 0xb4, 0x8d, 0xe4, 0x4f, 0xa0, 0x84, 0xf3, 0x28, 0x84, 0xb3, 0xb9, 0x12,
+ 0xb7, 0xd6, 0xdc, 0x1e, 0x92, 0x3c, 0x13, 0x88, 0x23, 0xae, 0x98, 0x55,
+ 0x7e, 0x04, 0x1a, 0x51, 0x7b, 0x5d, 0x6a, 0x9e, 0x8a, 0x59, 0xa2, 0x2b,
+ 0x46, 0x8b, 0x17, 0xd8, 0x44, 0x86, 0x86, 0x53, 0x00, 0x56, 0x8a, 0xc9,
+ 0x89, 0xde, 0x22, 0x67, 0x90, 0x2d, 0x3d, 0x5a, 0xf3, 0x6c, 0xb3, 0x1c,
+ 0xad, 0xf4, 0x29, 0x62, 0xfe, 0x20, 0x94, 0x90, 0x90, 0x97, 0xa9, 0xec,
+ 0xcc, 0x76, 0x5d, 0xda, 0x2a, 0xcb, 0x22, 0x2e, 0xe4, 0x97, 0xd7, 0x3a,
+ 0xf5, 0x22, 0x8c, 0x32, 0x76, 0x67, 0x81, 0xf5, 0xdd, 0x0d, 0x36, 0x2f,
+ 0xff, 0x4f, 0xab, 0xf7, 0x3a, 0xe8, 0x9a, 0x32, 0xf2, 0x3c, 0x4f, 0x13,
+ 0x33, 0xbe, 0x89, 0x0a, 0x31, 0x32, 0x88, 0x5a, 0xff, 0xbd, 0x24, 0x0c,
+ 0x45, 0x88, 0x37, 0xe3, 0xc4, 0xff, 0x16, 0x4f, 0x26, 0x00, 0xcb, 0x44,
+ 0x8d, 0x61, 0x61, 0xd3, 0x16, 0xbe, 0x3f, 0x4b, 0x4a, 0xdf, 0x1d, 0x34,
+ 0xe6, 0x5b, 0x75, 0x7e, 0x67, 0x24, 0x7f, 0x72, 0xea, 0x27, 0x5c, 0xf0,
+ 0x80, 0xfa, 0xd3, 0x15, 0xa6, 0xe3, 0x88, 0x73, 0x93, 0xea, 0x53, 0xcf,
+ 0x6e, 0x5a, 0x4e, 0x96, 0x79, 0x22, 0x06, 0x43, 0xe7, 0xaa, 0x61, 0x8a,
+ 0x5e, 0x37, 0x74, 0xe9, 0x11, 0xbe, 0x95, 0x83, 0x3b, 0x4b, 0x33, 0xaa,
+ 0xd8, 0x35, 0x7c, 0xb5, 0x97, 0x3b, 0x92, 0xf6, 0x9f, 0x29, 0xe2, 0x6c,
+ 0xee, 0x68, 0x24, 0xb5, 0x76, 0x27, 0x7c, 0xd0, 0x4f, 0x9a, 0x17, 0x3d,
+ 0xfe, 0x7e, 0x38, 0x4e, 0x7b, 0xad, 0x7f, 0x39, 0xa1, 0x51, 0x71, 0x49,
+ 0x54, 0xf9, 0x90, 0xb1, 0xa5, 0x73, 0x08, 0xc7, 0xf3, 0xbb, 0x43, 0xe0,
+ 0x77, 0x0e, 0x2e, 0xe9, 0xa0, 0x10, 0x64, 0xe3, 0xf9, 0x98, 0x8c, 0xb8,
+ 0x84, 0x0f, 0x98, 0xc1, 0x11, 0xeb, 0xa3, 0x2b, 0x88, 0xb9, 0x1b, 0x73,
+ 0xdb, 0x8b, 0xbc, 0x92, 0x00, 0x2a, 0x13, 0x59, 0xf2, 0x1d, 0xbd, 0xa2,
+ 0x8a, 0x1c, 0xf3, 0x1a, 0xc4, 0xa3, 0x72, 0xbb, 0x60, 0x7a, 0x62, 0x80,
+ 0x1b, 0x1d, 0x36, 0x33, 0x93, 0x9d, 0x88, 0x7f, 0x52, 0xba, 0x4f, 0x32,
+ 0x74, 0x1b, 0xa9, 0x9d, 0x89, 0x1e, 0x30, 0xbc, 0x12, 0xd9, 0x4b, 0x0d,
+ 0x3b, 0x06, 0x58, 0x7b, 0x2d, 0xe7, 0x7a, 0x16, 0x86, 0x88, 0x2b, 0xf3,
+ 0x99, 0x21, 0x8c, 0x1d, 0x92, 0x27, 0x7f, 0x00, 0x29, 0x62, 0xdf, 0x12,
+ 0xd8, 0x5f, 0x53, 0x44, 0x8d, 0x31, 0x86, 0xc7, 0x23, 0x82, 0x5e, 0x7f,
+ 0x3a, 0x21, 0x1b, 0xd6, 0x9e, 0xf3, 0x04, 0xdf, 0x6f, 0xd3, 0x3b, 0xe1,
+ 0xad, 0x76, 0x64, 0x73, 0xb8, 0x06, 0xa8, 0xc2, 0x7d, 0xd5, 0x01, 0x1a,
+ 0x24, 0x24, 0x0e, 0x95, 0x7a, 0x0f, 0x24, 0x0c, 0x61, 0xf6, 0xba, 0x89,
+ 0xf6, 0x15, 0x21, 0xc6, 0xe1, 0xd6, 0xc0, 0x78, 0xe0, 0x14, 0x2e, 0xbb,
+ 0x38, 0xf8, 0xd9, 0xb1, 0x09, 0xa2, 0x69, 0xd2, 0x87, 0xb1, 0xe0, 0x4c,
+ 0xcb, 0xca, 0x59, 0x56, 0xa5, 0x7e, 0x94, 0x30, 0x30, 0x65, 0x94, 0xcb,
+ 0x24, 0xc3, 0xfd, 0x79, 0x61, 0x79, 0xe9, 0x30, 0x07, 0x22, 0xd3, 0x5b,
+ 0xfa, 0xd1, 0x99, 0x61, 0xd7, 0x26, 0xda, 0x06, 0xe1, 0xae, 0xee, 0xab,
+ 0x1c, 0x1d, 0x52, 0xa6, 0xd5, 0xec, 0xe1, 0xe0, 0xa2, 0xa3, 0x3d, 0x87,
+ 0xf8, 0xb7, 0x20, 0x11, 0x10, 0x2e, 0x54, 0x33, 0x11, 0x08, 0xa5, 0xb6,
+ 0x33, 0x6e, 0xa4, 0xc4, 0x70, 0xe8, 0x1a, 0x43, 0x48, 0x43, 0xa7, 0xc9,
+ 0xca, 0x96, 0xe5, 0xb1, 0x2b, 0x5e, 0x18, 0xf5, 0x6b, 0x86, 0x5d, 0x62,
+ 0xe5, 0x70, 0x77, 0x89, 0xdb, 0x1c, 0x39, 0x36, 0xbb, 0x90, 0xc4, 0x21,
+ 0xda, 0xa5, 0xa9, 0xc5, 0x53, 0x22, 0x8e, 0x63, 0x8f, 0xc3, 0x55, 0xd7,
+ 0xb4, 0xa4, 0xa7, 0x2e, 0x33, 0xe3, 0x25, 0x80, 0x66, 0xe6, 0x42, 0xe1,
+ 0x70, 0xb6, 0x40, 0x2b, 0x02, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb1, 0x0c, 0x00, 0x01, 0x10, 0x24, 0x00, 0x18, 0x00,
+ 0x3b, 0x10, 0xdd, 0x17, 0x39, 0x72, 0xc0, 0x68, 0x88, 0x38, 0xf4, 0xa2,
+ 0x6b, 0x55, 0xcd, 0xc0, 0x1e, 0x1b, 0x9d, 0xf1, 0xc1, 0xb6, 0x0a, 0xab,
+ 0xe5, 0x45, 0xd3, 0xab, 0xcc, 0xf2, 0x3a, 0x72, 0x8b, 0x9c, 0x89, 0x51,
+ 0xf5, 0xb0, 0xc1, 0x56, 0x20, 0x0e, 0x83, 0x83, 0x6f, 0xf4, 0x1f, 0x23,
+ 0xac, 0x22, 0xcf, 0x66, 0xe9, 0xb8, 0x74, 0x2f, 0xf4, 0x31, 0xe0, 0x13,
+ 0xf2, 0xc7, 0xaa, 0x63, 0xe8, 0x34, 0x34, 0x6a, 0xf5, 0x59, 0xde, 0xb9,
+ 0xbc, 0x20, 0x9a, 0x64, 0x32, 0xdb, 0xa7, 0x4d, 0xf9, 0x5f, 0xfc, 0xb0,
+ 0x15, 0xd4, 0x58, 0xb1, 0x63, 0x0b, 0xda, 0x88, 0x24, 0xb2, 0x00, 0x56,
+ 0x8a, 0xc9, 0x7f, 0x95, 0xe6, 0x6a, 0x70, 0x99, 0x19, 0x81, 0xf5, 0xe2,
+ 0xb7, 0xc0, 0xce, 0xee, 0xaa, 0x8f, 0x1d, 0x13, 0x48, 0x45, 0x90, 0xb3,
+ 0xb7, 0x77, 0xca, 0x6b, 0x48, 0xbc, 0xe0, 0xdf, 0x06, 0x7d, 0x05, 0xb1,
+ 0x81, 0xcc, 0x96, 0x28, 0x91, 0xdd, 0x31, 0x59, 0xd3, 0xf8, 0xe6, 0x63,
+ 0x0b, 0x92, 0x8f, 0x0c, 0x5c, 0xe1, 0x06, 0x1f, 0x2b, 0xb9, 0xe5, 0xfc,
+ 0x22, 0xb1, 0xf1, 0x5c, 0xc5, 0x90, 0x96, 0x2c, 0x0c, 0x1f, 0x6f, 0x49,
+ 0x2e, 0xff, 0xee, 0xf3, 0x59, 0x7d, 0x99, 0x68, 0x44, 0xc3, 0x23, 0x92,
+ 0x0d, 0x40, 0x2b, 0xd8, 0xbb, 0xef, 0x2a, 0x0f, 0x43, 0x2d, 0x2b, 0xdc,
+ 0x7c, 0x68, 0x49, 0x1e, 0xc4, 0xf6, 0x98, 0xeb, 0x65, 0xaa, 0x57, 0x79,
+ 0x5f, 0xe8, 0x29, 0x48, 0x15, 0xe8, 0xcf, 0x5b, 0x53, 0x64, 0x5c, 0x63,
+ 0x64, 0x41, 0xe0, 0xf5, 0xfe, 0x05, 0x08, 0x04, 0x2a, 0x83, 0xda, 0xec,
+ 0xc8, 0xf5, 0xac, 0x36, 0xb6, 0x51, 0x96, 0x6e, 0xde, 0x6a, 0x2d, 0x39,
+ 0xfb, 0x62, 0x80, 0xd2, 0xc5, 0x37, 0x5a, 0xd5, 0xb9, 0x59, 0xdd, 0xe1,
+ 0x1a, 0xa8, 0x9f, 0x35, 0x84, 0x86, 0xc9, 0x9c, 0xb0, 0x5e, 0x70, 0x90,
+ 0x0d, 0x2a, 0x1e, 0x85, 0x59, 0x78, 0x45, 0xe5, 0x85, 0x58, 0x42, 0x7f,
+ 0x6d, 0xbe, 0x50, 0x5c, 0x6c, 0x19, 0xdb, 0xc8, 0x4d, 0xf9, 0x97, 0xbd,
+ 0x44, 0xb3, 0xf3, 0x83, 0x42, 0x3d, 0xa3, 0xcb, 0x2a, 0x8e, 0xb1, 0x6b,
+ 0xd0, 0xd7, 0x9b, 0xe1, 0xed, 0x8d, 0x77, 0x71, 0x95, 0xa1, 0xf9, 0x16,
+ 0x63, 0x91, 0xf5, 0x2c, 0xc3, 0x34, 0x70, 0x20, 0x63, 0x7f, 0xf2, 0xcd,
+ 0x3c, 0x53, 0x49, 0x56, 0x10, 0xfb, 0xda, 0x23, 0x73, 0x7a, 0x05, 0xac,
+ 0xf7, 0x94, 0x43, 0xa8, 0x66, 0x2d, 0xd1, 0x01, 0xa7, 0xc6, 0x1c, 0x39,
+ 0x8e, 0xc3, 0x9c, 0x43, 0xd1, 0x2e, 0xbd, 0x41, 0x3a, 0x16, 0x8c, 0xa3,
+ 0xd3, 0x78, 0xa2, 0x0f, 0xda, 0xa7, 0xcb, 0xc5, 0x5b, 0x34, 0x07, 0xb0,
+ 0x2a, 0xdf, 0x30, 0xca, 0xb7, 0x62, 0x47, 0xd5, 0xc5, 0x1d, 0x24, 0x18,
+ 0x75, 0x9e, 0xa6, 0x18, 0xa1, 0x76, 0x42, 0x9e, 0xe5, 0xc2, 0x13, 0x02,
+ 0x2b, 0x7f, 0xe9, 0x4e, 0xa3, 0xb8, 0x97, 0x28, 0xa4, 0xad, 0xab, 0x3d,
+ 0xc7, 0xc4, 0x8c, 0x43, 0x54, 0x36, 0x8d, 0x95, 0x0a, 0xbb, 0x8e, 0xe3,
+ 0x06, 0xd1, 0xf6, 0x99, 0xb0, 0x31, 0x6f, 0xbf, 0x1c, 0x2a, 0xe1, 0x91,
+ 0x70, 0x74, 0x96, 0x21, 0xe4, 0x6e, 0x1f, 0x7c, 0x6f, 0x96, 0x44, 0x73,
+ 0x9f, 0x0b, 0x6b, 0x3b, 0xef, 0x8d, 0xee, 0x90, 0x59, 0x30, 0xd6, 0x4f,
+ 0x2b, 0x0d, 0xd8, 0x22, 0x10, 0xf9, 0x62, 0x00, 0x31, 0xd0, 0xb5, 0xcc,
+ 0xab, 0x7d, 0xc7, 0x81, 0x0b, 0xdd, 0xa1, 0xae, 0xc0, 0xb4, 0x8b, 0x04,
+ 0x15, 0x0c, 0x69, 0xde, 0xe5, 0xc2, 0x41, 0xa3, 0xf0, 0x10, 0x11, 0x6f,
+ 0x1f, 0xb2, 0xb4, 0x44, 0x89, 0xb7, 0xb0, 0x8c, 0x0f, 0xec, 0xfc, 0xf5,
+ 0x75, 0x24, 0x49, 0x8f, 0x84, 0x76, 0xdd, 0x59, 0x35, 0xd9, 0x24, 0xe6,
+ 0xee, 0x4a, 0xda, 0x8f, 0x35, 0x4d, 0xcb, 0xba, 0x3f, 0x88, 0x87, 0x06,
+ 0xd3, 0x45, 0xe8, 0x6d, 0x4a, 0x2e, 0x0c, 0xcd, 0x0f, 0x71, 0xc4, 0xa2,
+ 0xc8, 0x9f, 0x97, 0x06, 0xe0, 0xb0, 0xe6, 0x01, 0x00, 0x00, 0xee, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0a, 0x00, 0x01, 0x10, 0x24,
+ 0x00, 0x18, 0x00, 0x1a, 0x68, 0xa7, 0xf4, 0x00, 0x54, 0x55, 0x20, 0xc9,
+ 0x8a, 0x6e, 0xad, 0xdf, 0x0d, 0xcc, 0x8a, 0xcb, 0xb8, 0x84, 0xf2, 0x38,
+ 0x24, 0x6f, 0x0c, 0xdf, 0xa2, 0x84, 0xca, 0x55, 0x4d, 0x3f, 0xfc, 0x63,
+ 0xa1, 0x25, 0xbe, 0x6e, 0xdb, 0x6a, 0xd3, 0xe5, 0x3d, 0xad, 0x7f, 0xfc,
+ 0x14, 0xdb, 0x99, 0xdd, 0x31, 0xb6, 0xdb, 0x37, 0x1e, 0xfd, 0xac, 0xc1,
+ 0x47, 0xeb, 0xf4, 0xf8, 0x37, 0x6a, 0x5c, 0xd4, 0x96, 0x2b, 0x45, 0x69,
+ 0xb8, 0x22, 0xdd, 0xa6, 0x18, 0x56, 0x8a, 0xc9, 0x7d, 0xb0, 0xef, 0x8a,
+ 0xa5, 0x2c, 0x43, 0x65, 0x3c, 0xc9, 0x08, 0x7a, 0x5f, 0x16, 0x12, 0x17,
+ 0x39, 0x0b, 0xbb, 0xf4, 0xc2, 0x89, 0x25, 0x8d, 0xa5, 0xba, 0x7f, 0x9f,
+ 0x55, 0x73, 0x12, 0x82, 0x3f, 0x7c, 0xd8, 0x65, 0x5e, 0xa5, 0x06, 0x58,
+ 0x70, 0xf3, 0xb4, 0x33, 0xfe, 0xeb, 0x85, 0x45, 0xd5, 0xcf, 0xd2, 0x7b,
+ 0xa1, 0x04, 0x9a, 0x95, 0xde, 0x9d, 0xbb, 0x58, 0x6d, 0xfd, 0x49, 0xd2,
+ 0xde, 0x00, 0x32, 0x17, 0x6a, 0xab, 0x50, 0x6f, 0x66, 0xbd, 0x1b, 0x21,
+ 0x64, 0xba, 0xa8, 0xf8, 0xe8, 0x90, 0x59, 0xeb, 0x35, 0x1e, 0xfd, 0x48,
+ 0xa9, 0x5c, 0x13, 0xec, 0x25, 0x97, 0xa9, 0xb8, 0x6c, 0xb0, 0xf7, 0xc0,
+ 0xc5, 0x36, 0x59, 0x21, 0x71, 0x70, 0x94, 0x6d, 0x06, 0x92, 0x25, 0x83,
+ 0xca, 0x29, 0x6f, 0x53, 0x5a, 0xbb, 0xd7, 0x39, 0x33, 0x32, 0xfa, 0x8c,
+ 0x37, 0xc8, 0x6b, 0x2a, 0xc4, 0x98, 0x1e, 0xe7, 0x9a, 0x9b, 0xfe, 0x46,
+ 0x96, 0x64, 0xca, 0xd7, 0x3c, 0x3a, 0xea, 0x78, 0x12, 0xcc, 0xdf, 0x6e,
+ 0x37, 0x3f, 0x32, 0x93, 0xee, 0xda, 0xc1, 0x2b, 0xd5, 0xb3, 0x92, 0xf0,
+ 0x19, 0x7e, 0x08, 0x9e, 0x11, 0x51, 0x22, 0x03, 0x9b, 0x21, 0xeb, 0x0e,
+ 0xcb, 0xd2, 0x9a, 0xab, 0x8a, 0x65, 0x23, 0x39, 0x24, 0x7f, 0xf4, 0x3b,
+ 0xce, 0x12, 0x73, 0x65, 0xcc, 0xc7, 0xdd, 0x2e, 0x4c, 0x06, 0x9e, 0xa9,
+ 0x5a, 0xe9, 0x3f, 0x6d, 0x15, 0x49, 0xd2, 0x25, 0x82, 0xfe, 0xf3, 0xeb,
+ 0x52, 0xbc, 0xd5, 0x3f, 0x2d, 0xaa, 0x2a, 0xe9, 0x67, 0xd2, 0x86, 0x7a,
+ 0x58, 0x25, 0x88, 0xf8, 0x45, 0x74, 0x10, 0xbd, 0x54, 0xee, 0xb3, 0x2d,
+ 0x19, 0x4f, 0xfa, 0x44, 0xef, 0xb8, 0xe0, 0x1d, 0xb4, 0x49, 0xd7, 0x8a,
+ 0xf3, 0xb3, 0x75, 0x75, 0x4a, 0xe2, 0xa6, 0x51, 0xd0, 0x8f, 0x8b, 0x07,
+ 0x47, 0xac, 0x01, 0x08, 0xc1, 0xc9, 0xd0, 0x37, 0x6f, 0x53, 0xc0, 0x9f,
+ 0xc7, 0xc2, 0xa9, 0xdc, 0xf6, 0x1c, 0xf1, 0x80, 0x76, 0x02, 0xeb, 0x47,
+ 0x40, 0xfd, 0xdf, 0xba, 0xdf, 0xfb, 0x9a, 0x47, 0xef, 0x35, 0xf2, 0x22,
+ 0x00, 0x8e, 0xb4, 0xfb, 0x5c, 0x70, 0x77, 0xd2, 0xf6, 0x2f, 0x4d, 0x54,
+ 0x7b, 0xb7, 0xaa, 0x97, 0xf2, 0xd1, 0x35, 0x48, 0x82, 0x88, 0xdb, 0x9e,
+ 0xa1, 0x23, 0xa2, 0xcd, 0x86, 0x77, 0x2d, 0x53, 0x5e, 0x08, 0x34, 0xb9,
+ 0x7c, 0x32, 0x38, 0xe2, 0xc8, 0xd1, 0xde, 0xc4, 0x7e, 0xad, 0x47, 0xa0,
+ 0x52, 0x61, 0xc8, 0x9c, 0xcc, 0x17, 0xee, 0x27, 0x04, 0x6f, 0x94, 0xb8,
+ 0x74, 0x9a, 0x61, 0xa9, 0x4e, 0x35, 0xf0, 0x1f, 0xfc, 0xd3, 0x82, 0xd3,
+ 0xf3, 0x11, 0xbb, 0x37, 0xac, 0x1b, 0xe9, 0xb4, 0xf8, 0x69, 0x4f, 0x0e,
+ 0xb4, 0xa3, 0x95, 0x69, 0x51, 0x5a, 0x8a, 0x0a, 0x98, 0x0e, 0x07, 0x1d,
+ 0x88, 0x0b, 0x76, 0x4a, 0x13, 0xa4, 0x88, 0xc9, 0x85, 0xd2, 0xd4, 0x00,
+ 0x64, 0x02, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf1, 0x0c, 0x00, 0x05, 0x10, 0x20, 0x00, 0x18, 0x00, 0x5e, 0x93, 0xab,
+ 0x44, 0x79, 0x16, 0x10, 0xc2, 0x6b, 0xf4, 0x27, 0x6e, 0xc3, 0x44, 0x52,
+ 0xb5, 0xfa, 0xef, 0xf2, 0x4f, 0x15, 0x87, 0x23, 0xab, 0x0e, 0xda, 0xeb,
+ 0x61, 0x2b, 0x8e, 0x3a, 0x9f, 0xa5, 0xd9, 0xfc, 0x5d, 0x29, 0xb0, 0x6f,
+ 0x62, 0x09, 0xef, 0x1a, 0xbb, 0xd6, 0x24, 0xc5, 0xcb, 0xa6, 0xfd, 0x6d,
+ 0xc4, 0x5b, 0x7b, 0xdd, 0xf5, 0x1f, 0xf4, 0x39, 0x60, 0x2b, 0x8e, 0xa2,
+ 0xc4, 0xa8, 0x8c, 0x17, 0x2f, 0x83, 0xab, 0x0c, 0xc7, 0x25, 0xc1, 0xf8,
+ 0xe0, 0x14, 0x0f, 0xf3, 0xc1, 0x55, 0x67, 0x3e, 0xfc, 0x58, 0x04, 0x74,
+ 0xdb, 0x6d, 0xa4, 0xba, 0x43, 0xa5, 0x9c, 0x1d, 0x28, 0xec, 0xc2, 0xdc,
+ 0x60, 0x87, 0xfc, 0x03, 0x5a, 0x80, 0xc1, 0x06, 0x8e, 0xc4, 0xaf, 0x1b,
+ 0x54, 0xe0, 0x75, 0x51, 0x7c, 0x1b, 0xf0, 0x09, 0xf3, 0x57, 0xa0, 0x16,
+ 0xe5, 0x6c, 0xcc, 0xfb, 0x71, 0x04, 0xa7, 0x8c, 0x27, 0x9e, 0xbb, 0x48,
+ 0xca, 0xc3, 0x91, 0xe4, 0x7e, 0xbc, 0x35, 0x21, 0xee, 0x1b, 0xd0, 0x5c,
+ 0x1c, 0x8c, 0x32, 0x8f, 0x24, 0x19, 0x0e, 0x0c, 0x81, 0x87, 0xe9, 0xc4,
+ 0xfb, 0x74, 0xe6, 0x97, 0xcd, 0xd9, 0x23, 0x71, 0xe1, 0xe2, 0xa7, 0xc0,
+ 0x4c, 0x2c, 0x74, 0x38, 0x64, 0xcf, 0x3e, 0x13, 0x04, 0xc1, 0xc2, 0x7e,
+ 0x1d, 0x1d, 0xd9, 0x1c, 0x72, 0x98, 0xec, 0x09, 0x3d, 0x52, 0xe4, 0x88,
+ 0xbc, 0xd6, 0x36, 0xe2, 0x08, 0x2e, 0x0c, 0x81, 0xf4, 0x2d, 0x00, 0xd2,
+ 0x1f, 0xe0, 0x86, 0x19, 0x98, 0xd8, 0x1d, 0xf6, 0xd7, 0xfa, 0x3f, 0xf8,
+ 0x93, 0x68, 0x9b, 0x5f, 0x85, 0x6c, 0xc0, 0xfb, 0x50, 0xc8, 0x3d, 0xcb,
+ 0xfd, 0x70, 0x9a, 0xd2, 0x69, 0x60, 0x6b, 0x5d, 0x47, 0x63, 0xc0, 0x58,
+ 0x42, 0x91, 0x7f, 0xcf, 0xa7, 0x84, 0xf9, 0x2e, 0xc2, 0xf7, 0xf0, 0x76,
+ 0x68, 0x4a, 0x98, 0xe1, 0x9b, 0xb2, 0xa7, 0x8c, 0xd0, 0x5f, 0x5c, 0x16,
+ 0xef, 0xab, 0xbf, 0x13, 0x57, 0x28, 0x75, 0x2b, 0x34, 0x10, 0x46, 0x54,
+ 0x68, 0x44, 0x37, 0xc0, 0x2e, 0x25, 0xa1, 0x2e, 0x3a, 0x79, 0xb2, 0x0c,
+ 0xde, 0xce, 0xc3, 0xe8, 0x85, 0x52, 0x9d, 0x6f, 0xa4, 0x28, 0x00, 0x29,
+ 0x47, 0xd6, 0x68, 0xe4, 0x05, 0xdf, 0x60, 0x45, 0x85, 0x67, 0x61, 0x3e,
+ 0x04, 0x97, 0xf8, 0x42, 0xf0, 0xfc, 0x20, 0x0c, 0x9b, 0x34, 0xcd, 0xbc,
+ 0x65, 0x77, 0x72, 0x5c, 0x87, 0x75, 0x94, 0xb4, 0x28, 0x5b, 0xe8, 0x41,
+ 0xac, 0xb0, 0xdd, 0xb1, 0x0d, 0x91, 0x2b, 0x60, 0xe7, 0xfc, 0x53, 0xdd,
+ 0x66, 0x93, 0xc0, 0xfa, 0xfc, 0xf0, 0x71, 0xe2, 0x15, 0x28, 0x93, 0x67,
+ 0xf4, 0x89, 0xd1, 0xb9, 0x20, 0x0b, 0xf8, 0x5a, 0xd9, 0xb5, 0xd6, 0xb3,
+ 0xaa, 0xee, 0x18, 0x4b, 0x5e, 0x35, 0x4a, 0x07, 0xcb, 0x93, 0x84, 0xfd,
+ 0x36, 0xde, 0xbe, 0x7a, 0xf1, 0x07, 0xd7, 0x25, 0xa0, 0xc1, 0x6f, 0xce,
+ 0x58, 0x6d, 0x39, 0x22, 0x3f, 0x29, 0xde, 0xca, 0xea, 0x8a, 0x3b, 0xf0,
+ 0x9e, 0x5f, 0xd9, 0xb9, 0xa4, 0xc6, 0x68, 0x48, 0x26, 0x96, 0x4e, 0x79,
+ 0x8e, 0xae, 0x52, 0xce, 0xa1, 0x88, 0xc2, 0x4e, 0xfb, 0xf1, 0x4f, 0x92,
+ 0x5f, 0x7c, 0xbc, 0x69, 0xa7, 0xcf, 0xcb, 0x20, 0xf8, 0xc7, 0xd2, 0x15,
+ 0xf6, 0xb0, 0x86, 0x3d, 0x14, 0xc8, 0x60, 0x38, 0xcb, 0x55, 0x0c, 0x1f,
+ 0x45, 0x47, 0xe0, 0x0a, 0x21, 0x82, 0xa7, 0x10, 0x1a, 0x69, 0xd1, 0x6c,
+ 0x9e, 0xf4, 0xb1, 0xab, 0xa1, 0x87, 0x82, 0xad, 0xf5, 0xf0, 0x1d, 0x61,
+ 0x7c, 0x16, 0xa1, 0xfd, 0x9c, 0xbb, 0xc4, 0x39, 0xd8, 0x87, 0x83, 0xd5,
+ 0xd1, 0xa9, 0x4b, 0x52, 0x9c, 0x5b, 0x75, 0x14, 0xcc, 0x27, 0x32, 0x97,
+ 0xdf, 0x07, 0x1d, 0x65, 0x3c, 0x53, 0x6c, 0x44, 0x6c, 0x7a, 0x10, 0x32,
+ 0x11, 0x62, 0x96, 0x94, 0xb3, 0x72, 0x73, 0xe8, 0x26, 0xd4, 0x2a, 0x61,
+ 0x61, 0x58, 0xe1, 0xf1, 0xef, 0x34, 0x47, 0x51, 0xef, 0x74, 0x10, 0x65,
+ 0x02, 0x38, 0x2f, 0x2f, 0xdd, 0xa1, 0x54, 0xac, 0xe4, 0xc6, 0xe2, 0xeb,
+ 0x83, 0xa5, 0x41, 0x1c, 0xd2, 0x02, 0x42, 0xfa, 0x18, 0xe4, 0x35, 0xca,
+ 0x92, 0x39, 0xc2, 0xbb, 0x9b, 0x4e, 0xc7, 0x5b, 0xa9, 0xe8, 0x0c, 0xd8,
+ 0xc9, 0x1b, 0x2c, 0x88, 0x09, 0xd4, 0x8c, 0x07, 0xe2, 0xb0, 0xb6, 0x62,
+ 0xb8, 0x1a, 0x40, 0x12, 0x1b, 0x34, 0xba, 0x5d, 0x2f, 0x7d, 0x31, 0x90,
+ 0xff, 0x02, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x91, 0x10, 0x00, 0x04, 0x10, 0x20, 0x00, 0x18, 0x00, 0xa8, 0xff, 0xad,
+ 0xc6, 0xa9, 0x87, 0xad, 0xf3, 0xd1, 0xfd, 0xe3, 0x37, 0xad, 0x4e, 0x5c,
+ 0x6a, 0xcb, 0x07, 0x71, 0x7b, 0xb7, 0x3b, 0x8a, 0xb2, 0xb7, 0x9d, 0x32,
+ 0x6a, 0x5b, 0x0d, 0x49, 0x0d, 0x17, 0x36, 0x8a, 0xf7, 0x23, 0x43, 0x62,
+ 0x41, 0xd0, 0x0b, 0xd1, 0xe9, 0xc4, 0x7d, 0x37, 0xa9, 0x33, 0x9d, 0x84,
+ 0x0d, 0x4a, 0xb2, 0x24, 0x8b, 0x61, 0x0e, 0x00, 0xe1, 0xaa, 0xef, 0x85,
+ 0xa9, 0x16, 0x3e, 0x0f, 0x2b, 0x2b, 0x2a, 0xad, 0x2f, 0x92, 0xe1, 0xb4,
+ 0xbf, 0xe6, 0x61, 0xc4, 0xd5, 0x29, 0xad, 0x79, 0x0e, 0x97, 0xba, 0x5d,
+ 0x15, 0x3d, 0x33, 0x73, 0x23, 0x2e, 0xb1, 0x7a, 0x42, 0x82, 0x9e, 0x01,
+ 0xa0, 0x58, 0x8b, 0xf9, 0xe5, 0x82, 0x4f, 0xbd, 0x13, 0x2f, 0xd1, 0x26,
+ 0x08, 0x3e, 0x6b, 0x2c, 0x0e, 0x36, 0xb6, 0xc9, 0x21, 0xa0, 0x35, 0xac,
+ 0xf1, 0x5c, 0x08, 0x56, 0x8a, 0xc9, 0x7c, 0x95, 0x2b, 0xb5, 0x7d, 0x5f,
+ 0xf7, 0xfa, 0x20, 0xfc, 0x8f, 0xfc, 0x7b, 0x03, 0x7e, 0x0d, 0x0a, 0xa6,
+ 0xe3, 0x49, 0xc0, 0x26, 0x8d, 0x57, 0x65, 0x4d, 0xc6, 0x91, 0xe1, 0x3b,
+ 0x7b, 0xcd, 0xcc, 0x0f, 0x18, 0xe3, 0x45, 0xd9, 0xac, 0xae, 0x97, 0x29,
+ 0x15, 0x78, 0x0b, 0x1d, 0xab, 0x2f, 0xba, 0xa0, 0x6a, 0x37, 0x57, 0xfe,
+ 0x1b, 0x21, 0x42, 0x04, 0xe2, 0x3e, 0xbe, 0xf7, 0x49, 0xb4, 0xbc, 0x40,
+ 0xea, 0x83, 0x5e, 0x03, 0x68, 0xed, 0x0b, 0xda, 0x99, 0x58, 0x3e, 0x6f,
+ 0xab, 0x5c, 0x82, 0xf2, 0x9f, 0xc5, 0x9a, 0x3c, 0xdd, 0xfc, 0xde, 0x52,
+ 0xf4, 0x71, 0xa1, 0x58, 0xf6, 0x57, 0x5b, 0x11, 0x27, 0x66, 0xc0, 0xae,
+ 0xc1, 0x8c, 0x37, 0xb1, 0xdc, 0x31, 0x80, 0x3e, 0xab, 0xf9, 0x9e, 0x71,
+ 0x17, 0x2c, 0x70, 0x85, 0xd4, 0x65, 0xeb, 0x27, 0x9a, 0x4d, 0x60, 0x6a,
+ 0xce, 0xe7, 0xb5, 0xfd, 0x91, 0xf5, 0x57, 0x0f, 0xd7, 0xf6, 0x4f, 0x5d,
+ 0xf5, 0xe6, 0x8f, 0x18, 0xc2, 0xfd, 0xbf, 0x34, 0x66, 0x12, 0x6e, 0x00,
+ 0x43, 0xdb, 0xb9, 0x95, 0x48, 0x78, 0xb3, 0x58, 0x0b, 0xe9, 0x25, 0xce,
+ 0x36, 0xd3, 0xf8, 0xd4, 0x84, 0x84, 0xbf, 0xde, 0xc7, 0x65, 0xd1, 0xbe,
+ 0xa6, 0x51, 0x7e, 0xc4, 0x39, 0x69, 0x0e, 0x6d, 0x31, 0xfa, 0xa9, 0x9a,
+ 0x4b, 0x12, 0x6c, 0x7e, 0x6a, 0x4e, 0xeb, 0xd9, 0x9d, 0xdc, 0x99, 0xf5,
+ 0xd2, 0xfc, 0x1d, 0xe8, 0xe9, 0x81, 0xcf, 0xad, 0x32, 0x09, 0xce, 0x3f,
+ 0xbf, 0x25, 0x3f, 0xf6, 0x49, 0x3a, 0x4a, 0x63, 0xf8, 0x5c, 0xa8, 0x82,
+ 0x5d, 0xda, 0x07, 0x2b, 0x72, 0xa3, 0xa4, 0xfb, 0xf4, 0x62, 0x57, 0x94,
+ 0x2f, 0x4d, 0xf2, 0x94, 0xb1, 0xe9, 0x03, 0x43, 0xf0, 0xf9, 0x7a, 0x44,
+ 0x06, 0x00, 0xf5, 0xd3, 0xaf, 0xdb, 0x0a, 0x5f, 0xd5, 0xe2, 0x62, 0x79,
+ 0xd7, 0xec, 0x67, 0x08, 0x5e, 0xb8, 0x88, 0xcf, 0xa6, 0xac, 0x17, 0x41,
+ 0x7e, 0xc4, 0x2a, 0xed, 0xd0, 0xe0, 0x50, 0x68, 0x4c, 0xb6, 0x81, 0xd6,
+ 0xb1, 0xf6, 0x5a, 0x07, 0xc4, 0x47, 0x06, 0xc0, 0x25, 0x2d, 0xc5, 0x4a,
+ 0xaa, 0xd6, 0xc8, 0xd8, 0x2f, 0xa6, 0xc3, 0xa4, 0xad, 0x95, 0x48, 0xcd,
+ 0x39, 0xbb, 0xca, 0x69, 0xe2, 0x39, 0xd7, 0xa2, 0xc7, 0x95, 0x73, 0xec,
+ 0x7a, 0x6a, 0x9c, 0xb6, 0x52, 0x83, 0x2f, 0xe2, 0x0b, 0x9f, 0x11, 0xc6,
+ 0xef, 0x30, 0x74, 0x90, 0x72, 0xb3, 0xb1, 0x71, 0xe5, 0xf5, 0x7b, 0xa0,
+ 0xc8, 0xe7, 0x2f, 0xc2, 0xb7, 0x01, 0x0d, 0x96, 0x0d, 0x4f, 0x14, 0x82,
+ 0xae, 0x62, 0x1f, 0x5d, 0xa1, 0xa1, 0x99, 0xba, 0x9c, 0x2c, 0x6a, 0xc2,
+ 0x85, 0xb0, 0xe2, 0x7b, 0x60, 0x43, 0x38, 0x1b, 0x25, 0xcc, 0x2c, 0xcd,
+ 0x0c, 0x68, 0x49, 0x32, 0x9c, 0x06, 0x0b, 0xcf, 0x43, 0xb4, 0x8c, 0x16,
+ 0xf4, 0xdd, 0x5f, 0x47, 0xd5, 0xec, 0x5c, 0x99, 0x1c, 0xc2, 0x39, 0xfa,
+ 0x19, 0xdc, 0xe2, 0x8d, 0x81, 0x4e, 0xd9, 0x17, 0xc5, 0x24, 0xe1, 0xe5,
+ 0xb1, 0x17, 0xb4, 0x75, 0xe5, 0x79, 0x3d, 0xef, 0x1a, 0xfa, 0xf1, 0x2f,
+ 0xcf, 0x22, 0x6b, 0xa1, 0xe9, 0x7e, 0x46, 0xd0, 0xdb, 0x99, 0x04, 0x68,
+ 0x35, 0xa3, 0x42, 0xe0, 0x9d, 0x05, 0x26, 0xfb, 0xfc, 0x6d, 0xed, 0xca,
+ 0xec, 0x6c, 0xf5, 0xfa, 0x2a, 0x7a, 0x51, 0x83, 0x2e, 0x19, 0xb6, 0xa6,
+ 0xe3, 0x5e, 0x12, 0x84, 0xe7, 0x42, 0xd0, 0xe4, 0x5c, 0x08, 0x0f, 0xba,
+ 0xc7, 0x5a, 0xbe, 0xfd, 0x3f, 0xfc, 0x91, 0xd4, 0xe2, 0x5c, 0x4f, 0x4c,
+ 0x9c, 0xb5, 0x5b, 0x32, 0x3b, 0xeb, 0xdd, 0x30, 0x7e, 0x44, 0xde, 0x13,
+ 0x45, 0x94, 0x7c, 0xcf, 0xc7, 0xa3, 0x38, 0xa4, 0xa1, 0x9a, 0x6b, 0xad,
+ 0x82, 0xc3, 0xd2, 0x6b, 0xb5, 0x49, 0x6a, 0x16, 0x95, 0x35, 0xb9, 0xaf,
+ 0x54, 0x0e, 0xf9, 0xef, 0x38, 0x18, 0x6a, 0x8c, 0xfe, 0x52, 0x71, 0x80,
+ 0xc0, 0x1f, 0xb8, 0x80, 0xc0, 0xbe, 0xc5, 0x32, 0xf0, 0x0f, 0x9b, 0xe2,
+ 0x67, 0x34, 0xe8, 0x29, 0x98, 0xcd, 0x80, 0xb9, 0x0e, 0x05, 0x14, 0xbc,
+ 0xda, 0xe4, 0x14, 0xbc, 0x8c, 0xd3, 0x63, 0xa7, 0x1a, 0x8e, 0x7f, 0xb4,
+ 0xe6, 0x7c, 0x72, 0xff, 0x11, 0x62, 0xe6, 0x33, 0x06, 0x75, 0x99, 0x10,
+ 0xca, 0xfd, 0xd0, 0xde, 0x6a, 0x1a, 0xab, 0xd2, 0x4a, 0xb2, 0x09, 0x2c,
+ 0x98, 0x62, 0x50, 0xdf, 0x51, 0xb0, 0xcb, 0xe8, 0x6a, 0x03, 0x5f, 0x01,
+ 0x28, 0x2c, 0x2f, 0x1b, 0x6d, 0xe8, 0x57, 0x19, 0x22, 0x09, 0x73, 0xc2,
+ 0xde, 0xcd, 0x1b, 0x4e, 0xf9, 0xa5, 0xd2, 0xe9, 0x75, 0x09, 0xc0, 0x21,
+ 0x02, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1,
+ 0x0c, 0x00, 0x05, 0x10, 0x20, 0x00, 0x18, 0x00, 0x6f, 0x82, 0x46, 0x92,
+ 0xfb, 0x66, 0x1e, 0x40, 0xe3, 0xe5, 0x2b, 0x75, 0x4d, 0x3e, 0xd1, 0x96,
+ 0x8a, 0xd9, 0xe3, 0xd1, 0x6c, 0xc1, 0x11, 0x51, 0xd0, 0x34, 0xef, 0xb1,
+ 0x9c, 0xf7, 0xd4, 0x4b, 0x18, 0xd8, 0x4f, 0xfd, 0x5e, 0x01, 0x46, 0x61,
+ 0xbc, 0x6a, 0xd0, 0xc1, 0x0f, 0xf7, 0x81, 0x15, 0x29, 0x9a, 0xaf, 0x66,
+ 0xa9, 0x15, 0x0c, 0x3e, 0x56, 0x67, 0xd4, 0x36, 0xa0, 0x02, 0xff, 0xb4,
+ 0xde, 0x22, 0x2a, 0x4d, 0xd2, 0xba, 0xda, 0x00, 0x6c, 0x16, 0xae, 0x2f,
+ 0x2b, 0x24, 0xa4, 0xfe, 0x74, 0xd4, 0xb2, 0x7d, 0xcc, 0x0d, 0x63, 0x58,
+ 0xd6, 0xa1, 0x3b, 0xba, 0x42, 0x84, 0x94, 0xc2, 0xdc, 0x60, 0x87, 0xe6,
+ 0xe8, 0x1d, 0x02, 0x43, 0xc6, 0x2c, 0x32, 0xd2, 0xea, 0x00, 0xef, 0x98,
+ 0x96, 0xe2, 0xed, 0x8b, 0xc4, 0x82, 0xce, 0x85, 0xf3, 0x3b, 0x65, 0x48,
+ 0xdf, 0x75, 0xeb, 0xff, 0x49, 0x37, 0x91, 0x4e, 0x3d, 0x8d, 0x56, 0x24,
+ 0x6b, 0xd1, 0x80, 0x01, 0x1b, 0xe3, 0x37, 0xe1, 0xfd, 0x1d, 0x9d, 0x7c,
+ 0xd6, 0x3f, 0xfd, 0xa0, 0x8c, 0x23, 0xb2, 0x9d, 0x80, 0x84, 0xd6, 0x3f,
+ 0x37, 0x1a, 0x8d, 0x09, 0xa1, 0xab, 0xca, 0x05, 0x21, 0x49, 0x1a, 0x02,
+ 0xd6, 0x85, 0xda, 0xff, 0xb6, 0x95, 0xfd, 0x4d, 0x84, 0xff, 0x3e, 0xea,
+ 0xb8, 0x8e, 0x15, 0x47, 0xb2, 0x09, 0xb4, 0x9c, 0xc0, 0x3d, 0xc8, 0x0b,
+ 0xd2, 0x27, 0xf6, 0xf9, 0x7e, 0xb2, 0xf1, 0xa9, 0x85, 0x37, 0xe6, 0x96,
+ 0x8a, 0xc7, 0x70, 0x6e, 0x22, 0xc1, 0xe3, 0x52, 0x2a, 0x42, 0x60, 0x64,
+ 0xda, 0x67, 0x55, 0xf4, 0x21, 0x5c, 0xf3, 0xa9, 0x7a, 0x61, 0x28, 0xb4,
+ 0x7b, 0xca, 0x62, 0x09, 0xa1, 0x19, 0xa7, 0x2a, 0x3d, 0xfa, 0xd9, 0xb8,
+ 0xbe, 0x95, 0x05, 0xa4, 0x57, 0xa3, 0x7c, 0x53, 0x10, 0x4c, 0x95, 0x4e,
+ 0x7f, 0xad, 0xab, 0xdf, 0xd8, 0x56, 0xc9, 0x3c, 0x8d, 0x2b, 0x1f, 0xbb,
+ 0x87, 0x61, 0x9f, 0x20, 0xa7, 0x52, 0x50, 0x04, 0x87, 0xff, 0x87, 0xb4,
+ 0x71, 0x57, 0x51, 0x8d, 0x56, 0x64, 0x6a, 0x7a, 0x9a, 0x1f, 0xc9, 0x88,
+ 0xc4, 0xb2, 0x75, 0x87, 0x60, 0xe2, 0x7d, 0x30, 0x9c, 0x13, 0xaf, 0x18,
+ 0xa1, 0x70, 0xaf, 0x85, 0xf5, 0xc5, 0x62, 0x5a, 0x67, 0x4f, 0x87, 0x5d,
+ 0xf9, 0x9a, 0xba, 0x9e, 0x66, 0xb2, 0xc6, 0xab, 0xcc, 0x38, 0x0f, 0xbf,
+ 0xef, 0x64, 0xbc, 0x78, 0x4d, 0xa2, 0x83, 0x73, 0xe8, 0x7b, 0xdb, 0x0c,
+ 0x23, 0xd5, 0xde, 0x89, 0xe9, 0x30, 0x89, 0x72, 0x1e, 0x68, 0x3c, 0xff,
+ 0xe1, 0xd6, 0xdf, 0x10, 0xcf, 0x55, 0xf6, 0x5e, 0xbf, 0x39, 0x56, 0xad,
+ 0x09, 0xa4, 0x40, 0x31, 0xcb, 0x12, 0x99, 0x63, 0x28, 0x5e, 0x5a, 0x10,
+ 0x62, 0xc5, 0xfa, 0x9d, 0x96, 0x9d, 0xc3, 0x40, 0x92, 0xd5, 0xef, 0x50,
+ 0xa5, 0xc3, 0x9f, 0x15, 0x5a, 0x26, 0xab, 0x11, 0xa9, 0x19, 0xc3, 0xee,
+ 0x60, 0x0d, 0x9a, 0xb7, 0xdf, 0xf4, 0x10, 0x8d, 0x5b, 0x6e, 0x13, 0x0f,
+ 0xf8, 0xab, 0x76, 0x85, 0xf5, 0x09, 0xb4, 0x56, 0x99, 0x1d, 0x0b, 0x23,
+ 0x9a, 0x9e, 0xb9, 0x15, 0x84, 0xc4, 0x6b, 0xa1, 0xbf, 0x7b, 0x48, 0xb3,
+ 0xc2, 0xc1, 0x3f, 0x64, 0x04, 0xd2, 0xfa, 0x1a, 0xcf, 0xec, 0x93, 0xe4,
+ 0xf0, 0x45, 0x03, 0x09, 0x33, 0x5b, 0x2e, 0x41, 0x5c, 0xfe, 0x45, 0xfc,
+ 0xd6, 0xfb, 0x1f, 0x0f, 0x01, 0x33, 0x94, 0x0d, 0x57, 0x67, 0x12, 0x9c,
+ 0xc8, 0x40, 0x18, 0x86, 0xf6, 0x4b, 0xb8, 0x09, 0x84, 0x51, 0x61, 0x80,
+ 0x54, 0x00, 0xd4, 0xe9, 0x22, 0x65, 0x93, 0x67, 0x54, 0x44, 0x61, 0x8e,
+ 0x06, 0x74, 0x7e, 0x4a, 0xeb, 0x12, 0xac, 0xbd, 0xe4, 0xce, 0xba, 0x03,
+ 0x88, 0x2e, 0x13, 0x60, 0x3a, 0xb1, 0xd4, 0x22, 0xf9, 0x6a, 0x22, 0xea,
+ 0xe0, 0x78, 0x17, 0x86, 0xa3, 0x7a, 0x6d, 0x40, 0x24, 0x36, 0x69, 0x74,
+ 0xba, 0x5e, 0xf1, 0x00, 0x76, 0x02, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf1, 0x0c, 0x00, 0x02, 0x10, 0x20, 0x00, 0x18,
+ 0x00, 0x5e, 0xde, 0x48, 0x81, 0xff, 0xe0, 0x01, 0x1b, 0xae, 0x3b, 0x6b,
+ 0x73, 0x3f, 0x9e, 0xb1, 0x21, 0x99, 0xc1, 0xb8, 0x1a, 0xab, 0xad, 0x4f,
+ 0x1c, 0xda, 0xd5, 0xf3, 0x21, 0x67, 0x39, 0xc3, 0x3c, 0x38, 0x9c, 0x21,
+ 0xb6, 0x24, 0xa2, 0x60, 0x5d, 0x89, 0x2f, 0xf2, 0x3b, 0x62, 0x7e, 0x7f,
+ 0x50, 0xb2, 0x22, 0xaf, 0x00, 0x7b, 0x69, 0x88, 0x63, 0x15, 0xa3, 0x50,
+ 0xeb, 0x5b, 0xe5, 0xc5, 0x71, 0xea, 0xbc, 0xf4, 0x80, 0x17, 0x2c, 0xa3,
+ 0x30, 0xc0, 0x04, 0x0f, 0xa4, 0x5a, 0x07, 0x5f, 0xb6, 0x7b, 0x1c, 0xc1,
+ 0x6a, 0x31, 0xe2, 0xcf, 0x6b, 0x1f, 0x58, 0xff, 0xa2, 0x29, 0x78, 0x5f,
+ 0xa4, 0xe0, 0xc2, 0xdc, 0x60, 0x87, 0xf4, 0x8d, 0x2f, 0xbb, 0xad, 0x3f,
+ 0x28, 0xff, 0x57, 0xd4, 0xd0, 0x8d, 0x5c, 0x43, 0x1e, 0x16, 0xb8, 0xbb,
+ 0xb3, 0x4d, 0x35, 0x67, 0x9d, 0x86, 0x9b, 0x0e, 0x0e, 0x55, 0xcf, 0x34,
+ 0x4c, 0xea, 0x86, 0xe7, 0x06, 0x6d, 0x13, 0xf0, 0x57, 0x10, 0x6b, 0x74,
+ 0xb1, 0xd9, 0x09, 0x66, 0xb3, 0xe4, 0xab, 0x4a, 0xdb, 0x2e, 0x5d, 0xa8,
+ 0x04, 0x32, 0x3b, 0x08, 0x81, 0xf8, 0x8b, 0x8e, 0xd9, 0xd7, 0xac, 0x46,
+ 0xae, 0x84, 0xff, 0xa6, 0xbc, 0x4d, 0xab, 0xc8, 0x10, 0x33, 0x50, 0xdd,
+ 0x62, 0xeb, 0x87, 0xb4, 0x4a, 0xfe, 0x00, 0xfb, 0x33, 0x4f, 0xb1, 0x48,
+ 0x83, 0xe3, 0x41, 0xb3, 0xbf, 0xb2, 0xd5, 0xa9, 0x04, 0xd5, 0x51, 0x7f,
+ 0xa5, 0x1d, 0xde, 0x22, 0xfe, 0xe9, 0x6c, 0x8c, 0x76, 0xb9, 0xdf, 0x90,
+ 0x24, 0xa0, 0x52, 0x06, 0xac, 0x85, 0x8c, 0x9d, 0xb9, 0xec, 0xb5, 0x69,
+ 0x1a, 0xdf, 0x90, 0xe5, 0x54, 0x93, 0x8c, 0x90, 0x27, 0x41, 0x5f, 0x4b,
+ 0x11, 0x6d, 0xc6, 0x04, 0xe5, 0x93, 0x5e, 0x88, 0x7a, 0xc2, 0x06, 0x3c,
+ 0x88, 0x97, 0x6a, 0x48, 0x82, 0x62, 0x56, 0x47, 0xd0, 0xbb, 0xe8, 0x55,
+ 0x91, 0xd5, 0x21, 0x8f, 0xe1, 0xc9, 0x21, 0x00, 0x85, 0xb5, 0x95, 0x4d,
+ 0x11, 0x3b, 0xc2, 0x01, 0xea, 0x60, 0x91, 0x04, 0xe0, 0x3f, 0x64, 0xa5,
+ 0x0a, 0x5e, 0x7e, 0x4d, 0x70, 0xf4, 0x91, 0x0a, 0xcd, 0x7a, 0xb4, 0x15,
+ 0xd7, 0x1d, 0xdf, 0x3c, 0x46, 0x7d, 0xa5, 0x45, 0x3f, 0xfc, 0xf4, 0xef,
+ 0x09, 0x15, 0xad, 0x90, 0xe6, 0x35, 0x7f, 0x3b, 0x0f, 0xb4, 0x20, 0xc3,
+ 0x72, 0x94, 0xb8, 0xff, 0x12, 0x40, 0xc1, 0x85, 0x41, 0x85, 0xa7, 0xa1,
+ 0x9e, 0x55, 0x2e, 0x69, 0x0e, 0xfc, 0xa2, 0x97, 0x10, 0x5a, 0xf7, 0xdb,
+ 0xd7, 0x34, 0x25, 0xf1, 0x7b, 0xc6, 0xa4, 0xdd, 0xc8, 0x25, 0x72, 0x08,
+ 0x4f, 0x20, 0xd2, 0x15, 0x05, 0xeb, 0x3b, 0xce, 0x98, 0xcf, 0x4f, 0x03,
+ 0xef, 0xbf, 0x19, 0xb1, 0xdf, 0x99, 0x03, 0xd6, 0xff, 0x73, 0xc6, 0x6b,
+ 0x78, 0x4d, 0x86, 0x29, 0xee, 0x1c, 0x7e, 0xd1, 0xbd, 0xcf, 0xc0, 0x5b,
+ 0x54, 0x96, 0x30, 0x37, 0xe3, 0xf2, 0xc3, 0xf4, 0x68, 0x24, 0xab, 0x36,
+ 0x80, 0x9f, 0x91, 0x96, 0xc4, 0x9c, 0xfc, 0xb1, 0x4d, 0xbe, 0x26, 0x3b,
+ 0xad, 0x15, 0x9a, 0x21, 0xe4, 0x6b, 0x45, 0xba, 0x5b, 0x97, 0xc2, 0x5e,
+ 0x02, 0x2d, 0xad, 0xbb, 0xbf, 0x6c, 0xa4, 0x89, 0x41, 0x84, 0x81, 0x84,
+ 0xb8, 0xf2, 0xe3, 0x71, 0xd5, 0x00, 0xd1, 0x05, 0xac, 0x3f, 0xd4, 0x77,
+ 0x98, 0x95, 0xe3, 0xd5, 0xe9, 0xc8, 0x54, 0xf4, 0x48, 0x52, 0xe2, 0x15,
+ 0x6f, 0xcc, 0x77, 0xd3, 0x4f, 0xf6, 0xe1, 0xb2, 0x23, 0xc9, 0x90, 0xdd,
+ 0x7c, 0x03, 0x1c, 0xb0, 0xba, 0x3c, 0x9e, 0x33, 0x1f, 0x6e, 0xb8, 0x34,
+ 0x4a, 0xca, 0x0a, 0x2a, 0xe3, 0x1a, 0xe3, 0x7b, 0x1b, 0x17, 0x93, 0xd0,
+ 0x4e, 0x83, 0x4f, 0x51, 0x18, 0xdd, 0x93, 0xe1, 0x34, 0x68, 0x2b, 0x02,
+ 0x90, 0x1e, 0xb1, 0x29, 0x71, 0x28, 0x2e, 0x31, 0x4f, 0xad, 0xbb, 0xfb,
+ 0xe9, 0x0a, 0x3c, 0x62, 0xac, 0x9e, 0x8a, 0x52, 0x81, 0xb2, 0x8f, 0x96,
+ 0x22, 0x18, 0x3b, 0x8f, 0x5c, 0x77, 0xe9, 0x6e, 0x05, 0x8c, 0xbf, 0x3e,
+ 0x95, 0xea, 0x54, 0x8b, 0xd3, 0xa6, 0x3e, 0x10, 0x15, 0xaf, 0xb5, 0x19,
+ 0x25, 0x0f, 0xcb, 0x83, 0x3d, 0xe9, 0x81, 0x5c, 0xf1, 0x47, 0x0d, 0x45,
+ 0x63, 0xe6, 0x12, 0x9a, 0x76, 0xd5, 0x39, 0x86, 0x78, 0x8d, 0x59, 0x30,
+ 0x0d, 0xc3, 0x18, 0x78, 0x9a, 0x4d, 0x85, 0xa2, 0x7f, 0x84, 0xae, 0x11,
+ 0x75, 0xcc, 0x03, 0xd0, 0x64, 0x98, 0xba, 0x0c, 0x5a, 0xa1, 0x04, 0x1e,
+ 0x73, 0x72, 0x56, 0x59, 0x11, 0x93, 0x0b, 0xa8, 0x4e, 0x00, 0x52, 0x02,
+ 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e,
+ 0x00, 0x04, 0x10, 0x20, 0x00, 0x18, 0x00, 0x43, 0x1d, 0xfc, 0xb5, 0xb6,
+ 0x21, 0xaf, 0xe8, 0x00, 0xd9, 0xd4, 0x29, 0x67, 0xb7, 0xa2, 0xd6, 0xd0,
+ 0x7a, 0x80, 0x43, 0x6e, 0xdd, 0x62, 0xc3, 0x7a, 0xd4, 0x45, 0xe4, 0x9b,
+ 0x88, 0xe9, 0x7b, 0x90, 0x1c, 0xdf, 0xa9, 0xdb, 0x45, 0x97, 0x88, 0xb7,
+ 0x1d, 0xa5, 0xc5, 0x92, 0xe3, 0x23, 0x81, 0xbe, 0xb8, 0x66, 0x1a, 0xbe,
+ 0xf2, 0x26, 0x0e, 0x62, 0xfb, 0x80, 0xab, 0x06, 0x6f, 0xc6, 0xaa, 0xb9,
+ 0x12, 0x08, 0xd3, 0xe1, 0xe1, 0x8d, 0xc1, 0x9c, 0x77, 0xf4, 0x00, 0x47,
+ 0x93, 0xff, 0x1b, 0xf6, 0x2d, 0x87, 0x83, 0x10, 0xa3, 0xb1, 0x7d, 0xb1,
+ 0xb4, 0x63, 0x98, 0x07, 0x10, 0x94, 0xff, 0x69, 0xf5, 0x8f, 0xac, 0x92,
+ 0x15, 0x1f, 0x2b, 0xc5, 0x4f, 0x00, 0xc2, 0xdc, 0x60, 0x87, 0xfa, 0x33,
+ 0xa7, 0xec, 0xaa, 0x38, 0x9a, 0xd6, 0x90, 0xa2, 0x5b, 0x6f, 0x5b, 0x41,
+ 0xcc, 0x50, 0x1a, 0xb5, 0xfc, 0xfd, 0xd3, 0x72, 0x0b, 0x30, 0xf6, 0x9e,
+ 0xb2, 0xa7, 0xb1, 0x27, 0xb8, 0xcf, 0xe6, 0xc7, 0x05, 0xc1, 0x57, 0x8d,
+ 0x8d, 0x1d, 0x8c, 0xdf, 0x3b, 0xd1, 0x39, 0x79, 0x74, 0xcb, 0x9c, 0x22,
+ 0x91, 0x83, 0xf8, 0x33, 0xec, 0x46, 0xa3, 0x50, 0x28, 0x4a, 0xf3, 0x3c,
+ 0x21, 0x67, 0x25, 0xbe, 0xea, 0x76, 0x02, 0xfe, 0xd3, 0x16, 0x98, 0x82,
+ 0x8b, 0x6f, 0x7a, 0x7e, 0xc4, 0x05, 0x62, 0x89, 0x7e, 0xbe, 0xd0, 0xbf,
+ 0x9c, 0x2b, 0xd2, 0x15, 0x7b, 0x44, 0x20, 0x42, 0x5a, 0xfc, 0xe1, 0xd8,
+ 0xc1, 0x4b, 0x0a, 0x16, 0x39, 0x2c, 0x1c, 0xb0, 0xc3, 0xdb, 0x53, 0x5f,
+ 0x27, 0x36, 0x76, 0x91, 0x24, 0x51, 0x6a, 0x32, 0x93, 0xf4, 0xa0, 0x3a,
+ 0xb8, 0xb0, 0xd0, 0x49, 0x8b, 0xdd, 0xdb, 0xcd, 0xbb, 0x54, 0xac, 0x75,
+ 0x43, 0x03, 0x91, 0x79, 0x98, 0x0c, 0x94, 0x07, 0x92, 0x6c, 0x97, 0x7a,
+ 0xe4, 0x5a, 0x53, 0xe9, 0xfc, 0x39, 0xd9, 0xdb, 0xf4, 0xd1, 0x21, 0x79,
+ 0xbb, 0xb1, 0x31, 0x89, 0x14, 0x7a, 0x32, 0xab, 0x91, 0x07, 0x51, 0xb7,
+ 0xd6, 0xa4, 0xb6, 0x58, 0x7d, 0x7c, 0x12, 0x75, 0x21, 0x5b, 0xe1, 0x9c,
+ 0x2c, 0x05, 0x56, 0xa3, 0xbe, 0xa7, 0x33, 0xbe, 0x60, 0x5d, 0xc8, 0xa6,
+ 0xb5, 0xfd, 0x06, 0xc6, 0xb8, 0x35, 0x67, 0xe9, 0xcf, 0xc8, 0xae, 0x31,
+ 0xb3, 0x2d, 0xf6, 0x8d, 0x05, 0xf6, 0x1b, 0x57, 0xa2, 0x74, 0x73, 0x30,
+ 0x00, 0xc2, 0x5d, 0xd0, 0x5c, 0x07, 0xf6, 0xf3, 0xe6, 0x5a, 0x12, 0x89,
+ 0x69, 0x53, 0x7d, 0x6c, 0xc3, 0xd1, 0xa4, 0xbe, 0x7b, 0xad, 0xe6, 0x1e,
+ 0x03, 0xe4, 0x51, 0x7a, 0x51, 0xd9, 0x32, 0x09, 0x71, 0x8b, 0xe9, 0x3a,
+ 0xa4, 0xeb, 0x15, 0xf7, 0x53, 0x59, 0x1e, 0x2e, 0x33, 0x95, 0xb0, 0x0b,
+ 0x25, 0x5e, 0xa2, 0xbd, 0xde, 0x04, 0xc7, 0x7e, 0x9e, 0xae, 0x8a, 0x77,
+ 0xe8, 0x40, 0x8f, 0x03, 0x6f, 0x53, 0x26, 0xda, 0x55, 0xc2, 0x18, 0xe8,
+ 0xa2, 0xbb, 0x59, 0x09, 0xa8, 0xf2, 0xca, 0x4f, 0x62, 0x6d, 0xcb, 0x2a,
+ 0x4a, 0x30, 0x59, 0xce, 0xfa, 0x6c, 0x21, 0xd3, 0xaf, 0xac, 0xb0, 0x12,
+ 0x67, 0x0e, 0xd1, 0xc2, 0x1e, 0xa0, 0x50, 0xe4, 0x37, 0xa5, 0x66, 0x8f,
+ 0x65, 0x2d, 0x93, 0xa6, 0xbb, 0xda, 0x67, 0x05, 0xd8, 0x08, 0x36, 0xa9,
+ 0xc6, 0x67, 0xc4, 0xf7, 0xbd, 0xb7, 0xdd, 0xfd, 0xfd, 0xfd, 0x3e, 0xca,
+ 0xe6, 0x83, 0xbf, 0x3f, 0x75, 0xb6, 0xa3, 0xea, 0x2f, 0x74, 0x16, 0x0c,
+ 0x17, 0xd8, 0x7e, 0xcc, 0x25, 0x32, 0x5e, 0x2a, 0x97, 0x75, 0x69, 0xea,
+ 0x65, 0xb2, 0xcf, 0x15, 0xa0, 0xae, 0x02, 0x30, 0x49, 0x55, 0x49, 0xe2,
+ 0x64, 0x52, 0xb1, 0x51, 0x2f, 0xc3, 0x57, 0x92, 0xa0, 0x8b, 0xce, 0x78,
+ 0xd5, 0xa2, 0x2e, 0x9e, 0x87, 0xc5, 0x4c, 0x4b, 0xd1, 0x9f, 0x6c, 0x2a,
+ 0x3a, 0xce, 0x92, 0x10, 0x66, 0x39, 0xa7, 0x87, 0x5c, 0x82, 0xca, 0x2f,
+ 0xa2, 0x54, 0xb1, 0x93, 0xfd, 0x0f, 0x66, 0x0b, 0x7e, 0x7d, 0x88, 0x17,
+ 0x9f, 0x7f, 0xf4, 0xf8, 0x18, 0xee, 0x22, 0xc3, 0x5a, 0x20, 0x93, 0xa1,
+ 0x02, 0xc0, 0x96, 0x56, 0xa1, 0xfb, 0x51, 0x70, 0x5a, 0x1e, 0x9c, 0x72,
+ 0xb2, 0x29, 0xbb, 0x76, 0x5c, 0xa0, 0x22, 0xea, 0x25, 0x70, 0xd9, 0xa5,
+ 0xd2, 0xea, 0x13, 0x80, 0x6b, 0x03, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x91, 0x10, 0x00, 0x04, 0x10, 0x10, 0x14, 0x7b,
+ 0x73, 0xfc, 0x6d, 0x80, 0x20, 0x1e, 0x59, 0xb0, 0xb4, 0xe7, 0x1a, 0x91,
+ 0x58, 0x0d, 0x71, 0x9a, 0xd5, 0xa7, 0x39, 0xf2, 0xb7, 0x8b, 0x84, 0x13,
+ 0xad, 0x08, 0xcc, 0xf8, 0xd4, 0x7b, 0x9f, 0xf9, 0xc0, 0x8f, 0x8a, 0xdf,
+ 0xed, 0x85, 0x28, 0x48, 0xdd, 0x7f, 0xf6, 0x51, 0x58, 0x31, 0x66, 0x43,
+ 0x45, 0xbe, 0x29, 0xc3, 0x65, 0x4d, 0xfb, 0x85, 0xc3, 0x7f, 0x1d, 0x4b,
+ 0xd1, 0x4c, 0xe9, 0x63, 0x6a, 0x64, 0x66, 0x2e, 0xb9, 0xb5, 0xcf, 0xbc,
+ 0xa1, 0x56, 0xcb, 0xe3, 0x40, 0x6a, 0xd7, 0xa5, 0x68, 0xe2, 0xf4, 0xeb,
+ 0x88, 0x9f, 0xc9, 0x80, 0x56, 0x53, 0x13, 0x70, 0x5f, 0x3f, 0x00, 0x0b,
+ 0x93, 0x2a, 0x49, 0xce, 0xc2, 0xea, 0x26, 0x8d, 0x1c, 0x15, 0xc1, 0x6c,
+ 0xe2, 0xc7, 0x84, 0x3a, 0xdc, 0xee, 0xbd, 0x5c, 0x91, 0x77, 0x47, 0xff,
+ 0xe0, 0x7e, 0xec, 0x62, 0xea, 0x5f, 0x00, 0xe8, 0xd1, 0xb8, 0xbf, 0x4e,
+ 0xb8, 0xa2, 0x43, 0x81, 0xef, 0x4e, 0x78, 0x02, 0xb3, 0x51, 0x0e, 0x62,
+ 0x3f, 0xed, 0x73, 0x16, 0xc6, 0x46, 0xda, 0x84, 0x27, 0x37, 0xb0, 0xc1,
+ 0xaf, 0x9c, 0xb4, 0xf7, 0xc9, 0x4e, 0xa7, 0xfa, 0xd3, 0xa3, 0x12, 0x6f,
+ 0x0f, 0x68, 0xcc, 0xcf, 0x81, 0xb0, 0x13, 0x37, 0x84, 0xeb, 0xd1, 0x2c,
+ 0x26, 0xef, 0xe0, 0xc0, 0xf1, 0x8a, 0xc9, 0x7a, 0x87, 0x0e, 0x83, 0xb9,
+ 0xbe, 0xb9, 0x8c, 0xb8, 0xbd, 0xff, 0xed, 0x1c, 0xc1, 0x83, 0x7c, 0xe1,
+ 0xbe, 0xe4, 0x9f, 0x84, 0x5c, 0x12, 0xd4, 0x71, 0xc9, 0x43, 0x1d, 0xe4,
+ 0x76, 0x8f, 0x5b, 0x74, 0xa0, 0xbd, 0xe3, 0xe2, 0xac, 0xa3, 0x63, 0x8d,
+ 0x7b, 0xc6, 0x1c, 0x9d, 0x8f, 0xf5, 0x31, 0x67, 0x9b, 0x80, 0xe1, 0x3f,
+ 0x4e, 0xd1, 0xe2, 0xaa, 0xfb, 0x0c, 0x27, 0xfe, 0xdb, 0x57, 0x42, 0xd5,
+ 0x53, 0xea, 0x85, 0xbe, 0x55, 0x34, 0x41, 0xab, 0x14, 0x9a, 0x1e, 0x7f,
+ 0x90, 0x71, 0xcf, 0x11, 0x05, 0x53, 0xda, 0xc1, 0xdb, 0x95, 0xd9, 0xd4,
+ 0x27, 0xaf, 0xee, 0xa7, 0x4b, 0x7c, 0x3b, 0x3c, 0x6d, 0x31, 0x93, 0x5a,
+ 0x42, 0x96, 0x99, 0x51, 0xa3, 0xfe, 0xa0, 0xae, 0x20, 0x5a, 0x3e, 0x7d,
+ 0x94, 0x6f, 0xa8, 0xd9, 0x19, 0x79, 0xdc, 0xc0, 0x58, 0xc4, 0x9f, 0xed,
+ 0x8f, 0xcc, 0x97, 0x5f, 0x1e, 0xf1, 0xbc, 0x34, 0x8c, 0xbe, 0x65, 0xa6,
+ 0xf0, 0x86, 0x5b, 0x01, 0xa9, 0xa8, 0x7d, 0xda, 0xd7, 0xef, 0xe8, 0xaf,
+ 0x73, 0xd4, 0x9d, 0xc5, 0x7d, 0xa7, 0x1c, 0x65, 0x7d, 0x19, 0x0f, 0x25,
+ 0x28, 0x3f, 0xa7, 0xed, 0x5e, 0x37, 0x86, 0xa1, 0x76, 0x51, 0xff, 0xb8,
+ 0xd3, 0x8f, 0x04, 0x10, 0xc8, 0x06, 0xb0, 0x8b, 0x14, 0x14, 0x12, 0x49,
+ 0xad, 0xc6, 0xae, 0x88, 0x95, 0x95, 0xef, 0x8f, 0xdb, 0xd7, 0xbf, 0xb0,
+ 0xbd, 0x42, 0x99, 0xb3, 0x1d, 0xdb, 0x6f, 0xee, 0xc4, 0x7a, 0x5e, 0xb1,
+ 0x47, 0xa9, 0xc9, 0x4d, 0xdf, 0xac, 0x00, 0xc2, 0x34, 0xe0, 0xb5, 0xed,
+ 0x5c, 0xc9, 0x54, 0xbb, 0x2b, 0xd0, 0x21, 0xdb, 0xe2, 0x31, 0x7e, 0xfc,
+ 0x4b, 0xff, 0x29, 0x14, 0x91, 0xb8, 0x00, 0xf6, 0x1e, 0x40, 0x26, 0x7e,
+ 0x92, 0x90, 0x64, 0xc1, 0xe6, 0x16, 0xc7, 0xf3, 0x13, 0xee, 0x75, 0xa6,
+ 0xc1, 0xc5, 0x42, 0xd7, 0x15, 0x3c, 0x0a, 0x15, 0xc0, 0xeb, 0x33, 0x94,
+ 0xd0, 0xa7, 0xce, 0x68, 0xdd, 0x7a, 0x2a, 0x5c, 0xb4, 0xcd, 0x56, 0xfa,
+ 0xfd, 0xd0, 0xd6, 0x86, 0x2b, 0xff, 0xa1, 0x6e, 0xb2, 0x5a, 0x9b, 0x50,
+ 0x95, 0xb6, 0x5a, 0x81, 0x81, 0x84, 0x0e, 0xe8, 0x34, 0xe7, 0x43, 0x97,
+ 0x86, 0x9b, 0x4f, 0xb4, 0x51, 0x03, 0xc8, 0x5e, 0xa9, 0xb4, 0x02, 0xb2,
+ 0x26, 0x9e, 0x30, 0xa4, 0x53, 0x45, 0x79, 0x79, 0xb4, 0x3d, 0x6c, 0x9e,
+ 0x34, 0xe0, 0x85, 0xcc, 0xdd, 0xb7, 0x85, 0x8e, 0xc9, 0xdb, 0x1a, 0xb9,
+ 0x0d, 0xc0, 0x55, 0xf0, 0x53, 0x99, 0x5b, 0x07, 0xc2, 0x6d, 0x9d, 0xe9,
+ 0x32, 0x9f, 0x28, 0xf5, 0x4e, 0x3d, 0xfb, 0xa9, 0xae, 0x09, 0x84, 0x94,
+ 0x7d, 0xc1, 0x1f, 0x41, 0x85, 0x4e, 0xff, 0xfa, 0x97, 0x90, 0x1c, 0x75,
+ 0x2b, 0x7b, 0x44, 0x21, 0x56, 0xfc, 0x79, 0x45, 0x15, 0xb5, 0xe5, 0xff,
+ 0xfa, 0x54, 0x0f, 0xf2, 0x4d, 0xe4, 0xf7, 0x72, 0xdf, 0xe7, 0xed, 0x07,
+ 0x61, 0x0e, 0x9b, 0x69, 0x90, 0x35, 0x6b, 0xfc, 0xf1, 0x22, 0x67, 0xe0,
+ 0xe9, 0xaa, 0x75, 0x7c, 0x5e, 0x25, 0x82, 0x4d, 0xf6, 0x7c, 0x0c, 0xa4,
+ 0x05, 0x56, 0xb9, 0x6f, 0x75, 0xa2, 0x63, 0x3f, 0x10, 0x3d, 0xba, 0xef,
+ 0x3c, 0x88, 0x0e, 0x80, 0x53, 0xe1, 0x9e, 0x48, 0x07, 0xb2, 0xb1, 0x6e,
+ 0x06, 0x63, 0x11, 0x04, 0x77, 0x61, 0x83, 0x4f, 0xef, 0xff, 0x93, 0xff,
+ 0x7b, 0x9d, 0x70, 0xa3, 0xb5, 0x0b, 0xc0, 0xb5, 0xb1, 0x29, 0x86, 0x43,
+ 0x32, 0x89, 0x69, 0x64, 0x29, 0xef, 0xed, 0x8d, 0x99, 0x59, 0x2c, 0x73,
+ 0x80, 0x01, 0xad, 0xe0, 0x4f, 0x65, 0x93, 0x1f, 0x48, 0x1c, 0xf8, 0xd2,
+ 0xbc, 0xe3, 0x2f, 0xa9, 0x95, 0x93, 0x41, 0xce, 0x19, 0xee, 0xcb, 0xdb,
+ 0xcd, 0x82, 0x87, 0xb4, 0xad, 0xd6, 0x24, 0xd6, 0x24, 0x7d, 0x35, 0x6d,
+ 0xf0, 0x7c, 0x1b, 0x13, 0xdd, 0x07, 0x45, 0xfe, 0x9d, 0xb5, 0x10, 0xdf,
+ 0x2e, 0x15, 0x3a, 0x70, 0x1a, 0x0a, 0xfa, 0x97, 0x61, 0x54, 0xe4, 0x51,
+ 0x2d, 0x18, 0x00, 0xb4, 0xb3, 0x10, 0x5a, 0x29, 0x02, 0xa0, 0x6c, 0x3b,
+ 0xd7, 0x5a, 0x83, 0xc3, 0x9f, 0x7b, 0xaa, 0x4f, 0x1c, 0x47, 0x09, 0x2f,
+ 0x44, 0x86, 0xa0, 0x44, 0xf8, 0x0b, 0xde, 0x06, 0xfe, 0x35, 0xd7, 0x54,
+ 0x4b, 0x8e, 0xe9, 0xd7, 0x8c, 0x56, 0x1e, 0x81, 0xce, 0x8d, 0x3e, 0xa2,
+ 0xa9, 0xd4, 0x0b, 0xb9, 0x24, 0x67, 0x2d, 0x28, 0x4f, 0xa3, 0x81, 0x70,
+ 0xac, 0xcb, 0x4e, 0x99, 0x83, 0xb8, 0xd0, 0xa4, 0xb8, 0x61, 0xa7, 0x6d,
+ 0xa4, 0xea, 0x0b, 0x19, 0xb7, 0x82, 0x89, 0xbc, 0x14, 0x4d, 0xb7, 0x9f,
+ 0x95, 0x41, 0x35, 0x4b, 0x8d, 0x0a, 0x72, 0x6f, 0x9d, 0x28, 0xe8, 0x9b,
+ 0x0c, 0x2e, 0x9c, 0xd0, 0x44, 0xeb, 0x65, 0x67, 0xd8, 0x70, 0x6a, 0xe2,
+ 0x21, 0x7f, 0xbd, 0xe9, 0x3e, 0x63, 0x02, 0xe0, 0xc2, 0xa6, 0x3a, 0x16,
+ 0xe8, 0x5b, 0xa7, 0x4e, 0xff, 0x97, 0xa4, 0x78, 0x75, 0x9c, 0xca, 0x74,
+ 0x7a, 0x28, 0x00, 0x1d, 0x03, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x51, 0x10, 0x00, 0x02, 0x10, 0x20, 0x00, 0x1e, 0xed,
+ 0xd0, 0x57, 0x25, 0x8b, 0xbd, 0xfe, 0x57, 0x99, 0x1d, 0xe3, 0xad, 0x3b,
+ 0x09, 0xf0, 0xbf, 0x01, 0x56, 0x62, 0xe2, 0xc6, 0xc4, 0xb0, 0x06, 0xdc,
+ 0xd7, 0x94, 0x4f, 0xf0, 0x1d, 0xd7, 0xa6, 0xec, 0x94, 0x6b, 0xa7, 0xb7,
+ 0x4e, 0x4d, 0x02, 0xd5, 0x43, 0xfd, 0x03, 0xa2, 0x2a, 0xde, 0x4a, 0xd2,
+ 0x2e, 0xa9, 0xef, 0x82, 0x9a, 0xdd, 0xee, 0x61, 0x2f, 0xf2, 0xc7, 0x54,
+ 0xc2, 0x7e, 0x27, 0x95, 0x56, 0xd5, 0x84, 0x00, 0xda, 0x85, 0x4a, 0x4d,
+ 0x5f, 0x10, 0x27, 0x8b, 0x67, 0xef, 0xc2, 0x3b, 0xc6, 0x5a, 0x1b, 0x50,
+ 0x38, 0xdf, 0x75, 0x35, 0x11, 0x19, 0x9c, 0x31, 0x80, 0x00, 0xad, 0x55,
+ 0x76, 0x29, 0xb5, 0x34, 0x9e, 0x90, 0xb7, 0x31, 0xa1, 0x24, 0x70, 0x31,
+ 0x8d, 0x14, 0x78, 0xa6, 0x96, 0xc9, 0x24, 0x92, 0x5b, 0x19, 0x9b, 0xb4,
+ 0xa3, 0xe3, 0xb8, 0x30, 0xc2, 0xdc, 0x60, 0x87, 0xe3, 0xce, 0x0d, 0x9a,
+ 0x25, 0x24, 0xfd, 0x13, 0xec, 0xc0, 0x6a, 0xed, 0xc8, 0x61, 0xe6, 0x58,
+ 0x8d, 0xd0, 0x04, 0xb9, 0x26, 0xb4, 0xf2, 0xda, 0xb4, 0xd0, 0x0e, 0x4d,
+ 0xa0, 0x56, 0x61, 0xcf, 0xf5, 0x6c, 0x48, 0xec, 0x86, 0x7a, 0xb1, 0x07,
+ 0xb1, 0x4a, 0x9c, 0x1d, 0x14, 0xd7, 0xcd, 0x0f, 0x27, 0x59, 0xa5, 0xb7,
+ 0x97, 0x9c, 0xfd, 0x65, 0xdf, 0xcb, 0x42, 0x86, 0xba, 0xd9, 0x26, 0x45,
+ 0x87, 0x40, 0xa8, 0xcc, 0xcb, 0x30, 0x6c, 0x5f, 0xc5, 0xad, 0x31, 0x5e,
+ 0xe4, 0x79, 0x28, 0xb7, 0x86, 0x2c, 0x85, 0xcc, 0x6c, 0x8e, 0xf2, 0xb5,
+ 0x1a, 0x1a, 0x2c, 0x17, 0xeb, 0xb0, 0x84, 0x7f, 0x97, 0xda, 0xea, 0x43,
+ 0x59, 0x39, 0xc9, 0x92, 0xcf, 0xbf, 0x92, 0xe1, 0x0d, 0x5e, 0xbe, 0x89,
+ 0x12, 0x02, 0x25, 0x22, 0xe2, 0xd7, 0xa4, 0x6f, 0xc9, 0x6e, 0x66, 0xd6,
+ 0xd3, 0x67, 0xbf, 0xe3, 0x62, 0xb4, 0x30, 0x54, 0x8f, 0x69, 0xb3, 0x25,
+ 0x37, 0x7e, 0x3b, 0xea, 0xfe, 0x1e, 0x3a, 0xe1, 0x3d, 0x19, 0x03, 0x97,
+ 0xb9, 0x6f, 0x4e, 0xcb, 0x8f, 0x01, 0xbf, 0xa5, 0x83, 0x29, 0x96, 0x2a,
+ 0xae, 0x4f, 0x9c, 0xa0, 0x6d, 0x44, 0x57, 0xf1, 0x6b, 0xa1, 0x83, 0x1e,
+ 0xdd, 0xca, 0xf7, 0xb1, 0x6e, 0x73, 0x03, 0x57, 0x67, 0xbd, 0x6b, 0xdf,
+ 0x89, 0xf1, 0xed, 0xb7, 0x94, 0x8d, 0x78, 0xff, 0x60, 0x9e, 0xa6, 0x2c,
+ 0x22, 0x41, 0xed, 0xa7, 0x33, 0xaf, 0xdb, 0xda, 0x6c, 0x30, 0xb0, 0xf0,
+ 0xa6, 0x40, 0x12, 0x7f, 0x16, 0xe6, 0xaa, 0xaa, 0xd8, 0x26, 0x1a, 0xac,
+ 0xcb, 0x49, 0x0c, 0xec, 0xe1, 0x5a, 0xa4, 0x6a, 0x5e, 0x48, 0x4a, 0x4e,
+ 0x48, 0x23, 0x46, 0x06, 0x3f, 0x37, 0x01, 0xdc, 0xcc, 0xa2, 0x92, 0x64,
+ 0x4a, 0x0e, 0x9b, 0x7f, 0xc4, 0x99, 0x02, 0xae, 0x8c, 0x87, 0x23, 0x40,
+ 0x0d, 0xd4, 0x11, 0xcf, 0xac, 0xa6, 0xca, 0x2a, 0x10, 0xa7, 0x6e, 0xd6,
+ 0x20, 0x04, 0xde, 0x4f, 0x5a, 0x26, 0x96, 0x6c, 0xca, 0x47, 0x59, 0xd4,
+ 0x71, 0x18, 0xc3, 0xc7, 0x4b, 0xb3, 0x0c, 0xcf, 0xa2, 0xdc, 0x71, 0xb9,
+ 0x66, 0xab, 0x78, 0xa8, 0xbf, 0xfb, 0x63, 0xdf, 0x6e, 0x1a, 0x22, 0xf4,
+ 0x40, 0x2c, 0xc1, 0xd2, 0x45, 0xe5, 0xe4, 0x2a, 0xd6, 0x86, 0x05, 0x54,
+ 0xe3, 0x3d, 0xd9, 0x1c, 0xad, 0x88, 0x29, 0x07, 0x90, 0x20, 0xb5, 0x28,
+ 0x3f, 0x68, 0xba, 0xe4, 0xad, 0x46, 0x72, 0x8f, 0x20, 0x06, 0xe5, 0xba,
+ 0xfa, 0xab, 0xbf, 0xf9, 0x60, 0x26, 0xde, 0x4b, 0x5c, 0x9a, 0x45, 0x51,
+ 0xf6, 0x08, 0xd0, 0x2f, 0x26, 0xe8, 0x3e, 0x21, 0xc0, 0xe8, 0xb1, 0x06,
+ 0x49, 0x18, 0x7f, 0x35, 0x0e, 0x6e, 0x0a, 0x94, 0xd8, 0xff, 0xd1, 0x5f,
+ 0x71, 0x31, 0x69, 0xdd, 0x49, 0x6c, 0x45, 0xb9, 0x8d, 0x14, 0xb9, 0x6d,
+ 0x81, 0xe4, 0x71, 0x90, 0x79, 0x48, 0x4b, 0x88, 0xdf, 0x5a, 0x56, 0x62,
+ 0x16, 0x8d, 0xf2, 0x63, 0xdc, 0xa8, 0xdc, 0xe9, 0x9c, 0x2b, 0xdd, 0x5c,
+ 0x16, 0xfc, 0x49, 0x38, 0xe0, 0x24, 0x46, 0x9a, 0xe1, 0x67, 0x67, 0xfd,
+ 0xf5, 0x2c, 0x06, 0x7f, 0x11, 0xa8, 0x37, 0x5e, 0xba, 0xc7, 0x61, 0xe6,
+ 0xfc, 0x61, 0x9e, 0x1e, 0x14, 0x72, 0x01, 0xb2, 0xde, 0x28, 0xa0, 0xad,
+ 0xc8, 0xbc, 0xb7, 0x17, 0x20, 0x60, 0x2a, 0x82, 0x2a, 0xa8, 0x6e, 0x31,
+ 0xc2, 0x17, 0x2e, 0xe1, 0x7d, 0xce, 0x2f, 0x3b, 0xad, 0xf6, 0xde, 0x9c,
+ 0x75, 0x8f, 0xfa, 0x6a, 0x5e, 0x2b, 0x16, 0x10, 0xc7, 0xb4, 0xab, 0x6d,
+ 0xa4, 0x6c, 0xcc, 0x5b, 0x80, 0xf7, 0xcf, 0xd7, 0x11, 0x3a, 0x93, 0xb8,
+ 0x8d, 0xd5, 0xdc, 0x45, 0x25, 0x3a, 0x72, 0xdb, 0xb2, 0x67, 0x04, 0xb4,
+ 0xcd, 0xd0, 0x98, 0xf2, 0xce, 0x37, 0x99, 0x1b, 0xf2, 0x44, 0x7d, 0xea,
+ 0x8e, 0x24, 0x9e, 0x4a, 0xa4, 0x5c, 0x39, 0x2b, 0x02, 0x4d, 0x3c, 0x0e,
+ 0xdf, 0xb5, 0xea, 0xba, 0xef, 0x9d, 0x85, 0x97, 0xbf, 0x97, 0xdb, 0x93,
+ 0x25, 0xe1, 0x2b, 0x7c, 0xdb, 0x5d, 0xc6, 0x96, 0xea, 0x10, 0xb7, 0xaf,
+ 0xe3, 0x2c, 0x9a, 0xff, 0x67, 0xd3, 0xd1, 0x3f, 0xaf, 0xbc, 0x6c, 0x51,
+ 0xaf, 0x5b, 0x63, 0x5a, 0x87, 0x67, 0x6a, 0x3b, 0xae, 0x72, 0xbc, 0xcd,
+ 0x90, 0x9c, 0xf7, 0x72, 0xe1, 0x51, 0xca, 0x75, 0x33, 0x0a, 0xea, 0x1d,
+ 0xdd, 0x0e, 0x81, 0x9f, 0x45, 0x99, 0xc2, 0xc2, 0xdd, 0x08, 0x1e, 0xf1,
+ 0xdd, 0x5e, 0x97, 0x64, 0x03, 0xb2, 0x34, 0x57, 0x12, 0x13, 0x5c, 0xca,
+ 0x5c, 0x4c, 0x0d, 0x70, 0x42, 0xd6, 0xe3, 0xf7, 0xa9, 0xa6, 0x42, 0x8d,
+ 0x43, 0x8f, 0x28, 0x54, 0x43, 0xfd, 0x93, 0xde, 0x2a, 0x13, 0x1f, 0xbf,
+ 0x17, 0x3a, 0x9e, 0xd7, 0xf0, 0x5c, 0x26, 0x19, 0x69, 0x16, 0xd0, 0xad,
+ 0x64, 0x46, 0x4c, 0x2e, 0x97, 0x50, 0x9c, 0x00, 0x78, 0x02, 0x00, 0x00,
+ 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0d, 0x00, 0x02,
+ 0x10, 0x20, 0x00, 0x18, 0x01, 0x02, 0x80, 0x74, 0x8f, 0xbc, 0x21, 0x3d,
+ 0xca, 0xcc, 0x26, 0xa0, 0x4a, 0xba, 0xbc, 0xe8, 0x85, 0x01, 0x23, 0x42,
+ 0x1d, 0x7a, 0xab, 0x89, 0x46, 0x60, 0xc0, 0xa7, 0x0a, 0x07, 0x45, 0x91,
+ 0xd4, 0x57, 0xb9, 0xdf, 0x95, 0xa1, 0xa2, 0x3b, 0xc1, 0x3c, 0x4f, 0xff,
+ 0xa6, 0xef, 0x08, 0x6c, 0x44, 0xb2, 0x4e, 0x27, 0x54, 0x22, 0x61, 0x41,
+ 0x0a, 0x92, 0x6e, 0x95, 0xba, 0x50, 0x35, 0x11, 0xc6, 0x57, 0x00, 0x01,
+ 0x65, 0xb9, 0x4c, 0x7c, 0xba, 0xc5, 0xb8, 0x6f, 0xbc, 0x52, 0x0b, 0xe7,
+ 0x47, 0x27, 0x4d, 0x6e, 0x4a, 0x42, 0x10, 0xbb, 0x9e, 0x1b, 0x71, 0xcc,
+ 0x36, 0xb6, 0x46, 0xdd, 0x3c, 0x9c, 0x5f, 0x3f, 0xcb, 0x80, 0xc2, 0xdc,
+ 0x60, 0x87, 0xf1, 0x6d, 0x8e, 0xfa, 0xdf, 0x52, 0x5f, 0xf6, 0x12, 0x1b,
+ 0xab, 0x63, 0xd8, 0xcd, 0xb0, 0xc7, 0x7a, 0xd4, 0x13, 0x2a, 0x34, 0xdd,
+ 0x98, 0x2b, 0x4b, 0x23, 0xe8, 0xc6, 0x3f, 0xfa, 0x6c, 0xe6, 0x94, 0xf7,
+ 0x20, 0x20, 0x3b, 0xfd, 0x9a, 0xd8, 0xdc, 0xb2, 0x83, 0x05, 0x45, 0x72,
+ 0x1d, 0x2c, 0xa5, 0xb9, 0x8a, 0x0a, 0xd9, 0x57, 0x36, 0x85, 0xde, 0x2f,
+ 0x36, 0xd5, 0xea, 0xe9, 0x91, 0xb6, 0x33, 0x3a, 0x35, 0xaa, 0xf9, 0x8c,
+ 0x81, 0xb8, 0x4d, 0x4c, 0xfa, 0x64, 0xc0, 0xea, 0x80, 0x1b, 0x82, 0xad,
+ 0x71, 0x3e, 0xb2, 0x3f, 0x16, 0x54, 0x77, 0xa3, 0xcf, 0xc2, 0x0f, 0x8f,
+ 0x51, 0x6d, 0x3e, 0xd8, 0x41, 0x8c, 0x4e, 0x25, 0x1a, 0x27, 0x2b, 0xa6,
+ 0x5d, 0x67, 0x56, 0x71, 0xb9, 0x22, 0x78, 0x78, 0xba, 0xc9, 0x61, 0x45,
+ 0x49, 0x66, 0xd3, 0xf5, 0xac, 0x7f, 0xe5, 0x9c, 0xf2, 0x8d, 0x74, 0xb4,
+ 0x56, 0x12, 0xea, 0xf3, 0xf3, 0xc5, 0x21, 0xd6, 0x64, 0xfd, 0xf3, 0x6f,
+ 0xe3, 0xfb, 0x15, 0x21, 0x5c, 0x1d, 0x3a, 0x2f, 0x03, 0x40, 0x5f, 0xb2,
+ 0x33, 0x48, 0xca, 0xc9, 0xde, 0x8f, 0x78, 0x75, 0x46, 0x43, 0x98, 0x08,
+ 0x24, 0x99, 0xa6, 0xb5, 0xc4, 0x40, 0x60, 0xf8, 0xc6, 0xc4, 0x0a, 0x75,
+ 0xc8, 0x5f, 0xd5, 0xfe, 0xe7, 0xb5, 0x2f, 0x10, 0x36, 0xd3, 0x97, 0x18,
+ 0xae, 0xb0, 0x08, 0xba, 0xe7, 0x9f, 0x67, 0xef, 0xe8, 0xab, 0x4d, 0xae,
+ 0xc3, 0x1e, 0x88, 0xcc, 0xfc, 0x89, 0xd2, 0xe5, 0x69, 0x92, 0x12, 0x96,
+ 0xb7, 0x90, 0x38, 0xb1, 0xde, 0x5c, 0x8c, 0xbd, 0x5d, 0x33, 0xcd, 0xd8,
+ 0x65, 0xcc, 0xf4, 0xdc, 0x2f, 0x18, 0x7e, 0x61, 0xbd, 0xfe, 0x83, 0x28,
+ 0x4e, 0x37, 0x7e, 0x39, 0xc6, 0x0e, 0x25, 0x76, 0xb0, 0xf1, 0xd2, 0xb1,
+ 0x63, 0xdb, 0x26, 0xd3, 0xb8, 0x91, 0x70, 0x5b, 0x35, 0x00, 0x22, 0x7e,
+ 0x55, 0xee, 0xda, 0xb6, 0xb3, 0x5a, 0x0d, 0x44, 0xc2, 0x30, 0x79, 0x89,
+ 0x2b, 0x29, 0xc6, 0x09, 0xae, 0x31, 0xa9, 0x95, 0x71, 0xca, 0xa8, 0x22,
+ 0xf2, 0xd2, 0xe5, 0x9a, 0x8e, 0x34, 0x02, 0xc0, 0x9d, 0xc3, 0xb3, 0xe9,
+ 0xca, 0x65, 0x8c, 0xe6, 0x3b, 0x4b, 0xa3, 0x36, 0xc9, 0xa5, 0x46, 0xe8,
+ 0x5d, 0xb9, 0xb2, 0xb9, 0x83, 0xcf, 0xc6, 0x9b, 0xa6, 0xa8, 0x34, 0x94,
+ 0x2d, 0x67, 0x71, 0x19, 0x57, 0xc2, 0x24, 0x59, 0x91, 0x6f, 0xa6, 0x9f,
+ 0xc3, 0xb3, 0xbf, 0x35, 0x4f, 0xb7, 0xa6, 0xee, 0x2b, 0xf9, 0xd5, 0x1f,
+ 0x5d, 0xd5, 0x7f, 0xba, 0xc7, 0x72, 0xd6, 0x48, 0x41, 0xed, 0x4f, 0xb8,
+ 0x36, 0xdf, 0xd1, 0x3e, 0x71, 0x5c, 0xd7, 0x45, 0xf4, 0xd6, 0x7b, 0x55,
+ 0x23, 0x68, 0xe0, 0x2b, 0x70, 0xbf, 0x08, 0xbf, 0xc9, 0xc0, 0xfc, 0xb6,
+ 0x53, 0xda, 0x28, 0x79, 0x36, 0xf4, 0x39, 0xa3, 0xe1, 0x66, 0x53, 0xf7,
+ 0x2a, 0x69, 0x75, 0xc6, 0x95, 0x7c, 0xe5, 0xca, 0x06, 0x33, 0x5c, 0xec,
+ 0x53, 0x77, 0xfd, 0x55, 0xed, 0xed, 0x70, 0x0c, 0xb6, 0x98, 0x79, 0x36,
+ 0x84, 0xff, 0x4d, 0xfe, 0x2b, 0x65, 0x62, 0x62, 0x0e, 0x8e, 0x30, 0xad,
+ 0xe2, 0x42, 0x9e, 0x4c, 0x13, 0x6f, 0xa5, 0xbf, 0x5d, 0x1f, 0x39, 0x59,
+ 0x7a, 0xea, 0x8d, 0xe6, 0xd2, 0xc8, 0xee, 0xeb, 0x85, 0x94, 0x49, 0xb3,
+ 0x9c, 0x09, 0x05, 0x50, 0x54, 0x1f, 0x1a, 0x8e, 0xea, 0x90, 0x81, 0xc4,
+ 0x9a, 0x3f, 0x15, 0xb7, 0xda, 0xab, 0x80, 0xc1, 0x71, 0xfa, 0xab, 0x02,
+ 0x9f, 0x8a, 0x65, 0x3b, 0x02, 0xa9, 0x8a, 0xcc, 0x52, 0x88, 0x2b, 0xf6,
+ 0x67, 0x77, 0x7a, 0x5f, 0x1b, 0x9e, 0x5f, 0xb2, 0xde, 0x07, 0xcd, 0x4b,
+ 0x05, 0x1b, 0x43, 0xfd, 0x58, 0x72, 0xb6, 0xce, 0x47, 0x08, 0x26, 0x1b,
+ 0x34, 0xbd, 0xe2, 0x00, 0x30, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x31, 0x0e, 0x00, 0x04, 0x10, 0x20, 0x00, 0x18,
+ 0x00, 0x57, 0x33, 0x4c, 0x0b, 0xc5, 0x45, 0xef, 0xe1, 0x01, 0x58, 0x02,
+ 0x17, 0x55, 0x68, 0xb3, 0xd7, 0xd8, 0x10, 0x4a, 0xeb, 0x64, 0xc7, 0x98,
+ 0xe6, 0x5f, 0x47, 0xd6, 0x9e, 0x53, 0x22, 0xa2, 0x99, 0xe7, 0xe6, 0x58,
+ 0x8a, 0x98, 0xb2, 0xa3, 0xb9, 0xdd, 0x2f, 0x13, 0xa7, 0x3b, 0xe9, 0x79,
+ 0xd0, 0x7c, 0x4c, 0x1d, 0xa0, 0xda, 0x78, 0xc1, 0x93, 0xad, 0x3a, 0x36,
+ 0x4d, 0x1e, 0x34, 0x71, 0x44, 0xc9, 0x24, 0x90, 0x1c, 0x98, 0x0d, 0x9b,
+ 0x75, 0x1f, 0x2d, 0x25, 0x04, 0x00, 0x2e, 0x1f, 0xb7, 0xaf, 0x27, 0x62,
+ 0x00, 0xb3, 0xfc, 0xc2, 0x7f, 0x20, 0xc1, 0xed, 0xbf, 0x6d, 0x15, 0x19,
+ 0xa5, 0x41, 0x6c, 0x6d, 0x63, 0x7c, 0x62, 0x2c, 0x74, 0x41, 0xda, 0x00,
+ 0xc2, 0xdc, 0x60, 0x88, 0x0c, 0x8a, 0xfb, 0x8c, 0xa5, 0xbb, 0x98, 0xb2,
+ 0xdd, 0x5a, 0x46, 0x76, 0xe1, 0x04, 0x90, 0x00, 0x92, 0x60, 0xd8, 0x6e,
+ 0x59, 0xe7, 0x02, 0x0b, 0x85, 0xa5, 0x05, 0xa6, 0xc0, 0xe8, 0x16, 0xc6,
+ 0xe1, 0xc6, 0x4e, 0xfb, 0x9f, 0xad, 0x48, 0xbc, 0x7f, 0xa4, 0x75, 0xfb,
+ 0x5a, 0x22, 0xb6, 0x66, 0x30, 0xb2, 0x54, 0x31, 0x02, 0x60, 0x49, 0x34,
+ 0x18, 0x47, 0x71, 0x3a, 0xbe, 0xbf, 0xf5, 0x8e, 0xcd, 0x25, 0x7e, 0x5a,
+ 0x78, 0x31, 0xdd, 0xe9, 0x9f, 0xcb, 0xd2, 0xea, 0x45, 0x93, 0x73, 0x72,
+ 0x46, 0xdf, 0x6d, 0x57, 0xcc, 0x4d, 0x55, 0xe4, 0xfd, 0x50, 0xea, 0x0f,
+ 0xdc, 0xf8, 0xc7, 0x90, 0xff, 0x78, 0x46, 0xbe, 0x99, 0xef, 0x08, 0x3b,
+ 0x83, 0x1e, 0x37, 0xcd, 0xd6, 0x0a, 0x55, 0xef, 0x4f, 0xf2, 0x35, 0x36,
+ 0xf5, 0x85, 0xfc, 0x54, 0xaa, 0x39, 0xfe, 0x2e, 0x44, 0x46, 0xd0, 0xd9,
+ 0x47, 0xab, 0x8b, 0x8b, 0x19, 0x6c, 0x21, 0x31, 0x47, 0x57, 0xbe, 0x40,
+ 0x98, 0x72, 0x06, 0x64, 0xa5, 0xa8, 0x55, 0x8b, 0xbc, 0x7e, 0x20, 0x70,
+ 0x08, 0x8d, 0xeb, 0x92, 0xbb, 0xab, 0x47, 0xa5, 0xd0, 0x0c, 0xa8, 0xb6,
+ 0x84, 0x2f, 0xfe, 0x90, 0x7b, 0x19, 0x36, 0xf4, 0x6b, 0x3a, 0x28, 0x3a,
+ 0xa1, 0x88, 0x1f, 0x52, 0x7e, 0xd0, 0x62, 0xd9, 0x43, 0x08, 0x2c, 0xb4,
+ 0xea, 0x94, 0xe0, 0xb6, 0xa7, 0x77, 0xc9, 0xcb, 0xfb, 0x41, 0x7d, 0x60,
+ 0xdd, 0x5b, 0x28, 0x6c, 0x42, 0x67, 0x05, 0xb2, 0x84, 0x2b, 0x0e, 0xf4,
+ 0x34, 0x9a, 0x07, 0x35, 0x59, 0xcb, 0x2c, 0xf0, 0x5b, 0x82, 0x95, 0x69,
+ 0xb5, 0xd7, 0xaa, 0x16, 0x0c, 0x83, 0x36, 0x79, 0x3c, 0xb3, 0xd5, 0xc8,
+ 0x38, 0xb1, 0x4f, 0x0d, 0x6b, 0x7d, 0x8f, 0x4b, 0x70, 0xa6, 0x69, 0x88,
+ 0xe4, 0x2b, 0x2b, 0x49, 0x85, 0x95, 0xd4, 0x12, 0x5c, 0xb2, 0xdc, 0x4a,
+ 0xb6, 0x50, 0xf6, 0x58, 0x94, 0xce, 0x59, 0x89, 0x7c, 0x08, 0x13, 0xd1,
+ 0x9e, 0xaa, 0x47, 0x19, 0x0c, 0xe6, 0x7f, 0x38, 0xde, 0x05, 0x3e, 0x4b,
+ 0x5e, 0x31, 0x3a, 0x8c, 0x8f, 0x49, 0xe8, 0x73, 0x73, 0xa4, 0x88, 0xdd,
+ 0xdb, 0x06, 0x7f, 0x72, 0xad, 0xc5, 0x63, 0x37, 0xbc, 0x0f, 0x43, 0x9b,
+ 0x2c, 0xb8, 0xff, 0xf3, 0x8f, 0x69, 0x7b, 0x1e, 0x15, 0x7f, 0x6b, 0xad,
+ 0x27, 0x6f, 0xa7, 0xd1, 0x66, 0xb1, 0x4b, 0xcd, 0x15, 0x5f, 0x44, 0x9e,
+ 0xed, 0x53, 0x7f, 0x98, 0x60, 0x10, 0x3e, 0x37, 0xe7, 0xe9, 0xe3, 0x44,
+ 0xde, 0x31, 0xb4, 0x71, 0x28, 0xa2, 0x69, 0xd1, 0xd6, 0x10, 0x60, 0x35,
+ 0x97, 0x08, 0x59, 0x0b, 0xef, 0xad, 0x6c, 0xe0, 0xcc, 0xb1, 0xef, 0x3b,
+ 0xe3, 0x51, 0xb0, 0xf2, 0x0f, 0x48, 0x06, 0x27, 0x13, 0x44, 0x09, 0xb6,
+ 0x5f, 0x76, 0x42, 0x20, 0x83, 0x50, 0xc4, 0x89, 0xc0, 0x1e, 0xe9, 0x05,
+ 0xb0, 0x50, 0x94, 0x07, 0xc6, 0x57, 0xc0, 0xd7, 0x1a, 0x9e, 0x96, 0x2d,
+ 0x72, 0xde, 0x9b, 0x17, 0x5f, 0x4e, 0xab, 0xf2, 0xfb, 0x4c, 0xdd, 0x49,
+ 0xed, 0x7a, 0xa3, 0x18, 0x55, 0x04, 0x3c, 0xb5, 0xf4, 0x93, 0xa2, 0xc9,
+ 0xe5, 0x39, 0x9b, 0x10, 0x1b, 0x41, 0x13, 0xf2, 0xe0, 0xdd, 0x6b, 0x00,
+ 0x6b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x31, 0x0c, 0x00, 0x03, 0x10, 0x20, 0x00, 0x18, 0x00, 0x1b, 0x28, 0xbf,
+ 0xd0, 0x18, 0x8a, 0xff, 0x8f, 0x9b, 0x49, 0xf1, 0xdd, 0xe3, 0x33, 0xc3,
+ 0xb2, 0x5c, 0x72, 0x42, 0xca, 0x46, 0x44, 0x19, 0x7f, 0x1a, 0xb3, 0x45,
+ 0x1f, 0x92, 0x28, 0x80, 0xd4, 0x75, 0x6f, 0x7b, 0x4a, 0x78, 0xca, 0xea,
+ 0x92, 0x81, 0xcf, 0xe0, 0xa0, 0x94, 0x49, 0xd2, 0x86, 0x2f, 0x36, 0xba,
+ 0x06, 0x8d, 0x79, 0x28, 0x1c, 0x97, 0xed, 0x00, 0x10, 0x10, 0x00, 0x00,
+ 0x25, 0xf2, 0x5a, 0x1b, 0xe6, 0x12, 0xd6, 0xfe, 0x00, 0xcd, 0x2f, 0x20,
+ 0x05, 0xee, 0xd5, 0x5a, 0xc4, 0x15, 0xac, 0x7d, 0x6c, 0x93, 0xd9, 0x53,
+ 0x49, 0x39, 0x76, 0xc0, 0xc2, 0xdc, 0x60, 0x88, 0x0c, 0xf9, 0x8d, 0xb9,
+ 0x10, 0x18, 0x03, 0xa2, 0x77, 0xf2, 0x78, 0xef, 0xf5, 0x09, 0x51, 0xfb,
+ 0x45, 0x25, 0xb6, 0xe9, 0x36, 0xb8, 0xdb, 0x1c, 0xc9, 0x1b, 0x02, 0xd3,
+ 0xc2, 0x36, 0x29, 0x29, 0x05, 0x80, 0x3e, 0xfe, 0x37, 0x2d, 0x00, 0x33,
+ 0x9b, 0x85, 0x63, 0x92, 0x47, 0x13, 0x96, 0xbd, 0xe4, 0x88, 0x38, 0xb1,
+ 0x3c, 0x3d, 0xfe, 0xfa, 0x1b, 0x1e, 0xd7, 0xbf, 0x0f, 0xdd, 0x37, 0x75,
+ 0x76, 0xd0, 0x2b, 0xdc, 0x68, 0x6b, 0xf0, 0xad, 0x65, 0xf9, 0x20, 0x17,
+ 0x1f, 0x03, 0x02, 0xc7, 0x39, 0x54, 0x2f, 0x84, 0x4a, 0xb5, 0xf0, 0x80,
+ 0x15, 0xb8, 0x08, 0xa3, 0x51, 0xf3, 0x5b, 0xdb, 0x95, 0x07, 0x4c, 0x68,
+ 0x09, 0x69, 0xa9, 0x6d, 0x14, 0x9b, 0xa1, 0xc3, 0xad, 0xed, 0x1c, 0x51,
+ 0xbb, 0xf3, 0x2e, 0x8e, 0x2b, 0xb1, 0xe0, 0xd6, 0x0f, 0x7b, 0x97, 0xd4,
+ 0xaa, 0x88, 0xd1, 0xf5, 0x13, 0x21, 0xfb, 0x47, 0x8a, 0xee, 0xd8, 0x64,
+ 0xc8, 0xf8, 0xc5, 0x8f, 0x94, 0x05, 0xd1, 0xb0, 0xfe, 0x0f, 0x07, 0x22,
+ 0x9c, 0x91, 0x7c, 0xc5, 0xbb, 0x02, 0x0e, 0x6f, 0x3f, 0x25, 0x20, 0x08,
+ 0x8f, 0xf0, 0xf3, 0x0b, 0x25, 0x8e, 0xd2, 0xbb, 0x62, 0x97, 0x47, 0x1d,
+ 0xf0, 0xb7, 0x41, 0x09, 0x10, 0xf7, 0xd2, 0x9a, 0xf1, 0x06, 0x1b, 0xe1,
+ 0xdf, 0xc3, 0xd4, 0x8d, 0x45, 0x0f, 0x24, 0xb6, 0xd8, 0x3d, 0x6e, 0xf2,
+ 0x3d, 0x2a, 0x18, 0x1b, 0xa6, 0x2e, 0xcd, 0x44, 0x5b, 0x25, 0x85, 0x4d,
+ 0x4c, 0x6c, 0x90, 0x6b, 0x83, 0x0c, 0xec, 0x68, 0x5e, 0x4f, 0xa7, 0xd8,
+ 0x83, 0x3b, 0x77, 0xc0, 0x7a, 0xff, 0x08, 0x55, 0x20, 0xff, 0x91, 0x65,
+ 0x04, 0x4b, 0x54, 0x9a, 0x90, 0xad, 0xd2, 0x4f, 0xe2, 0x27, 0x26, 0x6f,
+ 0x12, 0x43, 0x75, 0x08, 0x8a, 0x12, 0xb6, 0x21, 0xa7, 0xbb, 0x9b, 0x04,
+ 0x98, 0x74, 0xbe, 0x36, 0x20, 0x00, 0xfb, 0x5f, 0x3c, 0x4b, 0xe0, 0xb8,
+ 0x97, 0xfa, 0x51, 0x16, 0x93, 0x67, 0x31, 0x91, 0x84, 0x74, 0x64, 0xf6,
+ 0x02, 0x7c, 0x22, 0x45, 0x8d, 0x80, 0x85, 0xe9, 0x49, 0xa5, 0x9a, 0x15,
+ 0x03, 0x1f, 0xdd, 0x75, 0x2b, 0xd8, 0x7d, 0x1c, 0x69, 0xd5, 0xde, 0x74,
+ 0x94, 0x8d, 0x00, 0x2b, 0xa9, 0x0f, 0x59, 0xa9, 0x55, 0x16, 0x34, 0xce,
+ 0x58, 0xf2, 0x69, 0x7c, 0x33, 0xa3, 0x20, 0x6a, 0xf4, 0x1b, 0xbb, 0x40,
+ 0x69, 0x8a, 0x73, 0xdf, 0x43, 0xb5, 0x00, 0x73, 0xd4, 0x24, 0x65, 0x37,
+ 0xa7, 0x0a, 0x45, 0x8b, 0x00, 0x26, 0xfa, 0x3c, 0x9f, 0x98, 0xbc, 0x36,
+ 0x2f, 0x7d, 0x52, 0x76, 0x4a, 0x3e, 0xfc, 0x0e, 0x27, 0x55, 0x09, 0x96,
+ 0xec, 0x9d, 0xfc, 0x94, 0x91, 0xb6, 0xca, 0xfd, 0xf9, 0xdc, 0xb0, 0xb0,
+ 0xf1, 0x6a, 0x83, 0x8b, 0xec, 0x2c, 0xe9, 0x36, 0x01, 0xf8, 0xb3, 0xd8,
+ 0xc6, 0xc9, 0x40, 0xdf, 0x15, 0x6d, 0x78, 0x1f, 0x1b, 0xe6, 0x97, 0x59,
+ 0x20, 0xf8, 0x1d, 0xa8, 0x68, 0x79, 0x6a, 0xac, 0x51, 0x32, 0xce, 0x0d,
+ 0xaa, 0xe9, 0x18, 0x08, 0xf9, 0x94, 0xb0, 0xf6, 0x8f, 0xd2, 0x00, 0x80,
+ 0xa8, 0xa5, 0x52, 0xb9, 0x4c, 0x9f, 0x22, 0xf4, 0xf4, 0xdd, 0xe3, 0x2d,
+ 0xe2, 0x31, 0xbd, 0xbf, 0x6c, 0xb9, 0x2f, 0x85, 0x2c, 0xe1, 0x21, 0xb4,
+ 0x9c, 0xf7, 0x1a, 0x69, 0xd3, 0x2d, 0x48, 0xb7, 0x22, 0xe8, 0xa2, 0xf5,
+ 0x65, 0x3c, 0xfe, 0xfb, 0x8f, 0xf2, 0x7a, 0x4e, 0xec, 0x65, 0x11, 0x2b,
+ 0xad, 0xd6, 0x7b, 0xc4, 0xbd, 0xa4, 0xe7, 0xef, 0xd9, 0x2e, 0x7d, 0xb6,
+ 0x3d, 0xbe, 0xcd, 0xbb, 0x50, 0xb8, 0x31, 0x3a, 0xc7, 0xf0, 0x77, 0xe8,
+ 0xaf, 0xf4, 0xc0, 0x1a, 0x44, 0x09, 0x86, 0xae, 0xff, 0x01, 0xb8, 0x0d,
+ 0xa0, 0x89, 0xf9, 0x70, 0x6e, 0xb5, 0x80, 0x43, 0x02, 0x00, 0x00, 0xf9,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x0b, 0x00, 0x05, 0x10,
+ 0x20, 0x00, 0x18, 0x00, 0xf5, 0xff, 0x1c, 0x4f, 0x57, 0x73, 0x60, 0x8b,
+ 0x17, 0xa2, 0x9c, 0xa3, 0xc9, 0x6b, 0xd3, 0x98, 0x05, 0x8f, 0xe7, 0x1e,
+ 0x49, 0xc9, 0x84, 0x93, 0x41, 0x30, 0x0f, 0xb8, 0x16, 0x42, 0xb8, 0x82,
+ 0x80, 0x6b, 0xbe, 0x80, 0x2a, 0x79, 0x2f, 0x22, 0xfc, 0xb8, 0x83, 0xf9,
+ 0x96, 0xc4, 0x7c, 0x97, 0x5f, 0xec, 0xfa, 0xe9, 0x8a, 0xea, 0x69, 0xc1,
+ 0xf5, 0x2d, 0x81, 0xaa, 0xd1, 0xf6, 0x21, 0x9e, 0x2b, 0x35, 0x68, 0xd2,
+ 0xc7, 0x6a, 0x1b, 0xb4, 0xda, 0x4d, 0x3e, 0x91, 0xb5, 0x91, 0xc3, 0x27,
+ 0x46, 0xad, 0x68, 0xb9, 0x00, 0xc2, 0xdc, 0x60, 0x87, 0xe5, 0x9a, 0x18,
+ 0x6f, 0x83, 0x9f, 0xec, 0xc9, 0xd1, 0xe5, 0xa2, 0xda, 0xaa, 0x8f, 0x88,
+ 0xd9, 0x5a, 0x53, 0xff, 0x17, 0x28, 0xf9, 0x71, 0xcf, 0x61, 0x10, 0xf2,
+ 0x6f, 0x6f, 0x21, 0x34, 0x34, 0x23, 0xce, 0x13, 0xda, 0xa0, 0x33, 0xba,
+ 0x51, 0xde, 0xdf, 0x10, 0xfd, 0x3e, 0x35, 0x31, 0xc7, 0xb9, 0x20, 0xd3,
+ 0x88, 0x65, 0x7b, 0x9b, 0xa1, 0x52, 0x4b, 0xa7, 0xfe, 0x1c, 0x47, 0xdb,
+ 0x3c, 0xcd, 0x7a, 0x56, 0x76, 0xf1, 0x8d, 0x3b, 0xc5, 0xb7, 0x07, 0xbe,
+ 0x0e, 0x66, 0xf1, 0x9e, 0xb1, 0x20, 0x89, 0x42, 0xf1, 0x04, 0x43, 0x6a,
+ 0x32, 0xe9, 0x84, 0xae, 0x3d, 0xaa, 0xf3, 0xfc, 0xe6, 0x3e, 0xbe, 0x54,
+ 0x33, 0x26, 0xef, 0xf7, 0x58, 0x06, 0xda, 0x57, 0x89, 0x01, 0x96, 0x8d,
+ 0x8b, 0x76, 0x6c, 0x71, 0x1c, 0x3d, 0x1e, 0x98, 0x15, 0xf7, 0xd9, 0x81,
+ 0x7a, 0x1b, 0x7a, 0x00, 0x38, 0x94, 0x06, 0xcb, 0xe5, 0x4c, 0xba, 0x99,
+ 0x0e, 0x86, 0x46, 0x18, 0xda, 0xc3, 0x2d, 0x47, 0xfa, 0x25, 0x82, 0xa6,
+ 0xa1, 0x13, 0x0d, 0xea, 0x75, 0x2e, 0xc2, 0xe8, 0xfd, 0x8e, 0xc1, 0x90,
+ 0x16, 0xaa, 0xb4, 0x8a, 0x25, 0x45, 0x45, 0x23, 0x11, 0x41, 0x03, 0x53,
+ 0x2f, 0x07, 0xbc, 0x19, 0x3c, 0x20, 0xda, 0xf8, 0xf0, 0xeb, 0x0f, 0x76,
+ 0x71, 0x5c, 0x76, 0x3a, 0xff, 0xcf, 0x0a, 0x0a, 0xfe, 0x13, 0x28, 0x8c,
+ 0x19, 0xfe, 0x21, 0x74, 0x44, 0x6b, 0x70, 0xd2, 0xf0, 0xfb, 0x13, 0xd5,
+ 0x7a, 0x62, 0xb6, 0x05, 0x76, 0x93, 0xdd, 0x56, 0x48, 0x3b, 0xe4, 0x18,
+ 0xd0, 0x0d, 0x86, 0x5e, 0xd2, 0x47, 0x6d, 0x02, 0xaa, 0x8b, 0x9b, 0x03,
+ 0x17, 0xdf, 0x6d, 0x7d, 0xd3, 0xa3, 0x91, 0xfa, 0x47, 0x09, 0xa6, 0xec,
+ 0xe4, 0x59, 0xea, 0x74, 0xf6, 0xf7, 0x3c, 0x7c, 0x62, 0x0d, 0xe0, 0x0f,
+ 0xb1, 0xf6, 0x89, 0x5c, 0x85, 0xb5, 0xdb, 0xea, 0xd7, 0xb9, 0xbf, 0x6f,
+ 0x8e, 0xbc, 0xf1, 0xe0, 0x2c, 0x0c, 0x9e, 0x52, 0xb1, 0x5a, 0xe7, 0xd7,
+ 0x1a, 0xfb, 0x58, 0x55, 0x28, 0xde, 0x5e, 0x7c, 0x73, 0x49, 0x2a, 0xa8,
+ 0x51, 0xe2, 0x7f, 0x1e, 0xd2, 0x56, 0xec, 0x76, 0x11, 0x71, 0xad, 0x22,
+ 0xe4, 0xf7, 0x1e, 0x45, 0x10, 0x6f, 0x33, 0x3e, 0xb8, 0x4a, 0x05, 0x70,
+ 0x9d, 0xa5, 0x0c, 0xcc, 0x64, 0x6f, 0x79, 0x80, 0xaa, 0x5a, 0x1d, 0xcc,
+ 0x06, 0xb7, 0xb2, 0x76, 0xbc, 0x5e, 0x9c, 0x37, 0x6f, 0xee, 0x53, 0x33,
+ 0xc4, 0xf0, 0x36, 0x01, 0x3e, 0xec, 0xe2, 0xb5, 0x42, 0xed, 0xeb, 0x6e,
+ 0x35, 0x51, 0xaa, 0x9a, 0x56, 0xbd, 0x3b, 0xb8, 0xbd, 0xa0, 0x14, 0x06,
+ 0x1d, 0x32, 0x5a, 0x80, 0xf7, 0xf6, 0xab, 0x4c, 0x48, 0xda, 0xb5, 0x93,
+ 0xd7, 0xb8, 0xd9, 0x17, 0xb6, 0x27, 0xd5, 0xd2, 0x86, 0x95, 0xb0, 0x41,
+ 0x50, 0x86, 0xeb, 0x4d, 0xc7, 0x00, 0xcc, 0x1a, 0x4e, 0xed, 0x57, 0x36,
+ 0xd7, 0x28, 0x69, 0x10, 0x8a, 0x7a, 0x16, 0x6d, 0xa0, 0x58, 0xdb, 0xcb,
+ 0xad, 0x81, 0x09, 0xbc, 0xa6, 0xb5, 0x45, 0x07, 0x4c, 0x84, 0xcb, 0x46,
+ 0x62, 0x19, 0xa5, 0x16, 0x3d, 0x19, 0x30, 0x1f, 0x19, 0xc3, 0x5e, 0x73,
+ 0x76, 0x45, 0x8b, 0x8f, 0x5d, 0x4c, 0x7d, 0x53, 0xcd, 0x51, 0x4c, 0x28,
+ 0x08, 0x71, 0x2d, 0x69, 0xb2, 0xef, 0xf0, 0xda, 0xf9, 0xe5, 0xbd, 0x7d,
+ 0x55, 0xa9, 0x53, 0x5e, 0xee, 0x89, 0xf8, 0x47, 0xc6, 0x7c, 0x73, 0x4b,
+ 0xfe, 0x08, 0x0d, 0xa0, 0x89, 0xf9, 0x70, 0x6e, 0xb5, 0x80};
+#else // !USE_VP8_TESTDATA_INSTEAD_OF_H264
+// H264 data from test-25fps.h264 generated using xxd -i.
const unsigned int kDataLen = 150148;
+const unsigned char kData[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x07, 0x8c, 0x0b, 0xe1, 0x80, 0x00,
+ 0x00, 0x40, 0x80, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9,
+ 0x18, 0x28, 0x3e, 0x60, 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b,
+ 0xdf, 0x01, 0x00, 0x00, 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00,
+ 0x01, 0x25, 0xb8, 0x20, 0x20, 0x63, 0xfc, 0x7e, 0x2c, 0x37, 0x14, 0x00,
+ 0x60, 0x3c, 0x84, 0x92, 0xc0, 0x3c, 0x84, 0x89, 0x9e, 0x78, 0xc0, 0x79,
+ 0x09, 0x25, 0x80, 0x23, 0xd7, 0xdb, 0x36, 0x3f, 0x6b, 0xc5, 0xe0, 0xf1,
+ 0xc0, 0x79, 0x09, 0x13, 0x31, 0x1d, 0x7d, 0xa5, 0xdc, 0x0f, 0x54, 0x39,
+ 0x43, 0xff, 0xfd, 0x36, 0xee, 0xf2, 0x03, 0x6f, 0x5d, 0xe0, 0x77, 0x7e,
+ 0xde, 0xf7, 0xde, 0x1a, 0xc8, 0x45, 0x85, 0x40, 0x6d, 0x1e, 0x30, 0x1e,
+ 0x44, 0x52, 0xdb, 0xd0, 0x23, 0xd7, 0xed, 0xf3, 0xc6, 0x03, 0xc8, 0x8a,
+ 0x5b, 0xf1, 0x92, 0xd9, 0xb3, 0x63, 0x8f, 0xc4, 0x1b, 0x68, 0xf9, 0x87,
+ 0x65, 0xbc, 0x76, 0xdb, 0xd0, 0x7f, 0xdf, 0xab, 0x40, 0xcd, 0x30, 0x2d,
+ 0x6e, 0x16, 0xcb, 0xbf, 0xa0, 0x14, 0x1d, 0x75, 0xf0, 0xfe, 0x7f, 0x4a,
+ 0x5e, 0xb3, 0x9d, 0x93, 0xff, 0xaf, 0x52, 0x3b, 0xe7, 0x69, 0x8f, 0x8f,
+ 0xcd, 0xfe, 0x22, 0x0f, 0x11, 0x1d, 0xb3, 0xc6, 0x03, 0xc8, 0x49, 0x2d,
+ 0xcf, 0x18, 0x0f, 0x21, 0x24, 0xb0, 0x08, 0xcc, 0xf9, 0xf9, 0x09, 0xa8,
+ 0x7f, 0x9e, 0x86, 0x2b, 0xbe, 0x5f, 0xff, 0x37, 0xc6, 0x05, 0xbf, 0xc3,
+ 0xb1, 0xfd, 0x78, 0x51, 0x75, 0xfa, 0xc4, 0xdf, 0xff, 0xbc, 0x4f, 0x85,
+ 0x50, 0x75, 0x06, 0xcd, 0xfe, 0x97, 0x7d, 0x9e, 0xce, 0x51, 0x60, 0x6b,
+ 0xe9, 0x0f, 0x90, 0x2d, 0x79, 0x58, 0xcf, 0x8f, 0x7c, 0xcc, 0xa7, 0x2f,
+ 0xb7, 0x2e, 0xf4, 0x72, 0xef, 0x06, 0xa7, 0x2f, 0x88, 0xf5, 0x3c, 0xf2,
+ 0x00, 0x65, 0xa8, 0x6e, 0x5d, 0x6c, 0x10, 0x7b, 0xf8, 0x5e, 0xdd, 0x1f,
+ 0xdf, 0x34, 0xe9, 0xbd, 0x5b, 0xef, 0xc7, 0x07, 0xfa, 0x75, 0xba, 0x18,
+ 0xf9, 0xb5, 0xa1, 0xf7, 0x5f, 0xdb, 0xb3, 0x9c, 0xe9, 0xfb, 0x7d, 0x4d,
+ 0xdc, 0xee, 0x2b, 0xe8, 0x4a, 0xf5, 0x01, 0xb6, 0x28, 0xc0, 0x79, 0x11,
+ 0x4b, 0x02, 0x66, 0xd9, 0xed, 0x94, 0xd6, 0x0f, 0x18, 0x0f, 0x22, 0x29,
+ 0x6f, 0x01, 0x9b, 0xe8, 0xe4, 0x5d, 0x3e, 0x8a, 0xeb, 0xb8, 0xa7, 0xe7,
+ 0xfe, 0xe3, 0x5f, 0xe0, 0x52, 0xaa, 0x77, 0xa9, 0xdf, 0xed, 0xa7, 0xef,
+ 0xdd, 0x75, 0xf1, 0x8b, 0xd7, 0x6c, 0xe3, 0x2b, 0x7e, 0x6e, 0xf1, 0x74,
+ 0xd3, 0x3b, 0x99, 0x6d, 0xbd, 0x07, 0xfd, 0xfa, 0xf1, 0x0d, 0x66, 0x2b,
+ 0x0b, 0x6e, 0x78, 0xc0, 0x79, 0x11, 0x4b, 0x19, 0x99, 0x3d, 0x6c, 0xd7,
+ 0xaf, 0xdb, 0xe7, 0x8c, 0x07, 0x91, 0x14, 0xb7, 0xf1, 0xc6, 0xa1, 0x28,
+ 0x7f, 0xb5, 0xe3, 0x40, 0x6e, 0x91, 0x2e, 0xaf, 0xeb, 0xff, 0xef, 0xfd,
+ 0x7d, 0x29, 0x97, 0xd4, 0x43, 0xfe, 0x2f, 0x4b, 0x13, 0x5c, 0x04, 0xcd,
+ 0x79, 0xbf, 0xb9, 0x9e, 0xf8, 0x1f, 0xee, 0xe7, 0x36, 0x6f, 0xfd, 0xff,
+ 0xa8, 0x01, 0xc4, 0xd9, 0xed, 0x9e, 0x30, 0x1e, 0x42, 0x49, 0x6e, 0x78,
+ 0xc0, 0x79, 0x09, 0x25, 0x80, 0x46, 0x67, 0xcf, 0xcd, 0x45, 0x01, 0xc7,
+ 0x72, 0xaf, 0x9d, 0xff, 0x72, 0xfa, 0x74, 0xe5, 0x59, 0x5a, 0xdf, 0x78,
+ 0xc4, 0xed, 0xea, 0x13, 0xdf, 0xfe, 0x20, 0x8f, 0xa7, 0xb0, 0x0b, 0xfe,
+ 0xa0, 0x69, 0x73, 0x9b, 0x5e, 0x7e, 0xff, 0x20, 0x7f, 0x7d, 0xd5, 0xde,
+ 0xf1, 0xe3, 0x21, 0x2c, 0xc1, 0xad, 0x1e, 0x30, 0x1e, 0x44, 0x52, 0xc2,
+ 0x5f, 0xc3, 0xfc, 0xf0, 0x4b, 0xee, 0x35, 0xcc, 0x78, 0xc0, 0x79, 0x11,
+ 0x4b, 0x7e, 0x1d, 0xf3, 0x68, 0x50, 0x3b, 0xd5, 0x08, 0x01, 0x46, 0x2f,
+ 0xeb, 0xfb, 0x56, 0x6e, 0xa1, 0x64, 0xb8, 0x86, 0xec, 0x80, 0x0f, 0x9c,
+ 0xfc, 0xe7, 0x2f, 0xa7, 0x79, 0x3f, 0xd0, 0xcb, 0x34, 0xbf, 0x4e, 0xef,
+ 0x91, 0x60, 0x77, 0x84, 0x2c, 0x2b, 0x5c, 0x1d, 0xf1, 0xa7, 0xd7, 0x81,
+ 0xe4, 0x29, 0x70, 0x97, 0xf7, 0x7a, 0xde, 0x07, 0x90, 0xa5, 0xf8, 0x13,
+ 0xf9, 0x1e, 0x2e, 0x00, 0xe3, 0xdd, 0x4c, 0xde, 0xba, 0xa4, 0xf5, 0x36,
+ 0xb2, 0xfd, 0xef, 0x0c, 0xeb, 0xfb, 0x56, 0xea, 0x68, 0xff, 0x9f, 0xf0,
+ 0x7d, 0x39, 0x2a, 0xa5, 0xab, 0xfd, 0xf1, 0xff, 0x3f, 0xe0, 0xfa, 0x31,
+ 0x4d, 0x69, 0xf1, 0xf9, 0xf0, 0xfa, 0x5b, 0xf1, 0x2c, 0xb1, 0x80, 0xf1,
+ 0x32, 0x4b, 0x7d, 0x9e, 0x30, 0x1e, 0x26, 0x49, 0x6d, 0x8c, 0xac, 0x8a,
+ 0x92, 0xff, 0xaf, 0xe7, 0x8b, 0xf9, 0xe3, 0xec, 0x3d, 0x6d, 0xb6, 0xd8,
+ 0x1b, 0xd6, 0xc4, 0x23, 0x79, 0x71, 0xf0, 0x3a, 0x37, 0x97, 0x1f, 0xff,
+ 0x1f, 0x80, 0x21, 0x6d, 0xb6, 0xd8, 0x1b, 0xd6, 0xc0, 0x74, 0x65, 0x97,
+ 0xf0, 0x3a, 0x32, 0xcb, 0xff, 0xf8, 0xfc, 0x01, 0x0b, 0x6d, 0xb6, 0xc0,
+ 0xde, 0xb6, 0x03, 0xa3, 0x2c, 0xbf, 0x81, 0xd1, 0x96, 0x5f, 0xff, 0xc7,
+ 0xe0, 0x08, 0x5b, 0x6d, 0xb6, 0x06, 0xf5, 0xb0, 0x1d, 0x19, 0x65, 0xfc,
+ 0x0e, 0x8c, 0xb2, 0xff, 0xfe, 0x3f, 0x00, 0x42, 0xdb, 0x6d, 0xb0, 0x37,
+ 0xad, 0x80, 0xe8, 0xcb, 0x2f, 0xe0, 0x74, 0x65, 0x97, 0xff, 0xf1, 0xf8,
+ 0x02, 0x16, 0xdb, 0x6d, 0x81, 0xbd, 0x6c, 0x07, 0x46, 0x59, 0x7f, 0x03,
+ 0xa3, 0x2c, 0xbf, 0xff, 0x8f, 0xc0, 0x10, 0xb6, 0xdb, 0x6c, 0x0d, 0xeb,
+ 0x60, 0x3a, 0x32, 0xcb, 0xf8, 0x1d, 0x19, 0x65, 0xff, 0xfc, 0x7e, 0x00,
+ 0x85, 0xb6, 0xdb, 0x60, 0x6f, 0x5b, 0x01, 0xd1, 0x96, 0x5f, 0xc0, 0xe8,
+ 0xcb, 0x2f, 0xff, 0xe3, 0xf0, 0x04, 0x2d, 0xb6, 0xdb, 0x03, 0x7a, 0xd8,
+ 0x0e, 0x8c, 0xb2, 0xfe, 0x07, 0x46, 0x59, 0x7f, 0xff, 0x1f, 0x40, 0x03,
+ 0xdd, 0xf9, 0xcd, 0xfb, 0xfe, 0x30, 0x1d, 0x19, 0x65, 0xfc, 0x0e, 0x8c,
+ 0xb2, 0xc0, 0x42, 0xec, 0xaf, 0x31, 0xdf, 0xfc, 0x0e, 0x89, 0xee, 0x70,
+ 0x86, 0x55, 0xdc, 0xa0, 0x3c, 0xce, 0x7e, 0x07, 0x89, 0xae, 0x7f, 0xff,
+ 0x03, 0xc4, 0xd7, 0x3e, 0x04, 0xc6, 0x78, 0x6f, 0x87, 0xc4, 0xfe, 0x15,
+ 0xe3, 0xfe, 0x52, 0xcf, 0x97, 0x01, 0x21, 0x83, 0xec, 0xe9, 0xf0, 0xfa,
+ 0xfe, 0x08, 0x0b, 0xb4, 0xf7, 0x27, 0xfc, 0x7f, 0xff, 0xfa, 0xc1, 0x0a,
+ 0xc0, 0x24, 0x54, 0x1f, 0x20, 0xb3, 0x4f, 0x72, 0x7f, 0xc7, 0xc3, 0xfe,
+ 0x07, 0x0a, 0xff, 0x01, 0x31, 0x9b, 0x86, 0xc7, 0xdb, 0x29, 0x6c, 0x93,
+ 0xf7, 0xf1, 0xfc, 0x33, 0xc1, 0x01, 0xb0, 0x13, 0x19, 0xb8, 0x61, 0xf6,
+ 0xca, 0x5b, 0xe1, 0xfa, 0xfc, 0x10, 0x70, 0x09, 0x15, 0x07, 0xc8, 0x2c,
+ 0xd3, 0xdc, 0x9f, 0xf0, 0x3e, 0xc0, 0x03, 0x1e, 0xbf, 0xea, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xe0, 0x07, 0x5a, 0xd4, 0x0d, 0x46, 0xdf, 0xfd, 0x7c,
+ 0x21, 0x52, 0x6d, 0x3d, 0xc4, 0xff, 0x8f, 0xc0, 0x4c, 0x67, 0xc3, 0x0f,
+ 0xbc, 0xa5, 0xbf, 0xf9, 0xfe, 0x08, 0x0b, 0xd2, 0xa9, 0x5d, 0xf7, 0xdf,
+ 0x7d, 0xf7, 0xdf, 0x1d, 0x30, 0x02, 0x14, 0xd3, 0x4d, 0x01, 0xe6, 0xf3,
+ 0xe0, 0x74, 0x45, 0xb9, 0xfe, 0x07, 0x44, 0x5b, 0x9f, 0xc2, 0xdf, 0xd2,
+ 0xb6, 0x8b, 0x1c, 0x07, 0x89, 0x99, 0x33, 0x92, 0x0e, 0xac, 0x3d, 0xd9,
+ 0x93, 0xc1, 0xc0, 0x78, 0x99, 0x93, 0x38, 0x7e, 0x25, 0x0f, 0x74, 0x10,
+ 0x63, 0xec, 0xa6, 0x88, 0x2b, 0x64, 0xa0, 0x9b, 0x91, 0x76, 0x4e, 0x3f,
+ 0xae, 0x3f, 0x4f, 0x82, 0xda, 0xed, 0x8b, 0x99, 0x11, 0x8d, 0x55, 0xcc,
+ 0x18, 0x7a, 0x6f, 0xac, 0x85, 0xe0, 0x0b, 0x5f, 0x4e, 0x09, 0x66, 0x7d,
+ 0x67, 0x76, 0xe6, 0xfd, 0x01, 0xde, 0xac, 0x21, 0x53, 0x00, 0x8b, 0xf2,
+ 0x4d, 0x21, 0x6a, 0x75, 0xb6, 0x5d, 0x6c, 0xf5, 0x29, 0xd6, 0xcc, 0x5c,
+ 0x01, 0x6b, 0xcc, 0x36, 0x3b, 0x08, 0xcd, 0xb5, 0x1e, 0x33, 0xe6, 0xe5,
+ 0x57, 0x5f, 0x01, 0xbd, 0xfa, 0xb6, 0xd1, 0x3a, 0x41, 0x19, 0x5e, 0xde,
+ 0x1b, 0x93, 0xfe, 0xe9, 0x00, 0x01, 0x0a, 0x16, 0x0c, 0xfe, 0xde, 0x62,
+ 0x6b, 0x3a, 0xb1, 0xed, 0xfc, 0x85, 0xe0, 0x0b, 0x55, 0x06, 0x01, 0xa6,
+ 0x19, 0x81, 0xa9, 0xf4, 0x6d, 0xd0, 0x41, 0x90, 0x96, 0xca, 0x76, 0xbb,
+ 0x51, 0xed, 0x73, 0x17, 0x26, 0x69, 0x41, 0x06, 0xe4, 0x26, 0x91, 0x3c,
+ 0x3b, 0xf4, 0x97, 0xbe, 0xd9, 0x2e, 0x7e, 0x64, 0x46, 0x35, 0x5e, 0x4c,
+ 0x3d, 0x35, 0xf9, 0x9d, 0xbd, 0x4e, 0x7b, 0x2e, 0x01, 0x17, 0x41, 0xf2,
+ 0x57, 0x36, 0xdc, 0xed, 0x25, 0x8e, 0x97, 0xe4, 0x69, 0x35, 0xc2, 0x0e,
+ 0xdc, 0xc6, 0xa2, 0x0b, 0x15, 0x95, 0xd4, 0xcd, 0xfd, 0xc9, 0xff, 0x7f,
+ 0xf6, 0x70, 0x14, 0x60, 0xa5, 0x55, 0x90, 0xca, 0xc8, 0xa3, 0xda, 0xea,
+ 0x08, 0x37, 0x20, 0x99, 0xa7, 0xa6, 0x91, 0x17, 0x1f, 0x87, 0x7e, 0x96,
+ 0xe6, 0x02, 0x22, 0x31, 0xaa, 0xc2, 0x9b, 0xa6, 0xe5, 0xbf, 0x44, 0xd3,
+ 0xa3, 0x2b, 0xb6, 0x97, 0x5c, 0x00, 0x6d, 0x0d, 0xcd, 0xbd, 0x52, 0x94,
+ 0xcf, 0x7d, 0xc6, 0x53, 0x19, 0x93, 0x00, 0xa4, 0x44, 0x78, 0x02, 0xd6,
+ 0x83, 0x57, 0xe0, 0x23, 0x36, 0xe8, 0xf7, 0xff, 0x64, 0xd6, 0x74, 0x4a,
+ 0xc6, 0x31, 0xe3, 0xfa, 0x50, 0x10, 0x5a, 0x6f, 0x53, 0xc1, 0x99, 0xf3,
+ 0x34, 0x55, 0x75, 0xf2, 0x1b, 0x9e, 0xe7, 0x82, 0x2f, 0x00, 0x5a, 0xb2,
+ 0xe8, 0x9b, 0x3c, 0x59, 0x9c, 0x92, 0xa3, 0x6a, 0x63, 0xe2, 0x27, 0xa4,
+ 0xd5, 0x88, 0x24, 0x1e, 0xfd, 0x54, 0x11, 0xb9, 0x0b, 0x69, 0xf3, 0x1e,
+ 0x00, 0xb5, 0x4b, 0xf5, 0x83, 0xdd, 0xdd, 0xac, 0x21, 0x11, 0xd3, 0x53,
+ 0x63, 0x29, 0x4b, 0x52, 0x1f, 0x6b, 0xfe, 0x13, 0x28, 0x2c, 0xd4, 0x9c,
+ 0x75, 0xed, 0xc4, 0x39, 0xf7, 0x51, 0x35, 0xd7, 0x5d, 0x75, 0xd7, 0x5c,
+ 0x74, 0xc0, 0x08, 0x53, 0x4d, 0x34, 0x07, 0x9b, 0xcf, 0x81, 0xd1, 0x16,
+ 0xe7, 0xf8, 0x1d, 0x11, 0x6e, 0x71, 0xd4, 0x08, 0xd9, 0x36, 0x60, 0xe2,
+ 0x29, 0xe1, 0xea, 0xf1, 0x08, 0xde, 0xe7, 0xfc, 0x0e, 0x8d, 0xee, 0x7e,
+ 0x00, 0xdb, 0xfe, 0x1c, 0x69, 0xe0, 0x02, 0x5e, 0x7e, 0x47, 0x06, 0x1e,
+ 0xd7, 0x01, 0xd2, 0x1e, 0x96, 0xf8, 0x08, 0xe9, 0xe9, 0xf8, 0xdd, 0x92,
+ 0x33, 0x5f, 0x3d, 0xd0, 0xb8, 0xdf, 0x0e, 0xfd, 0x1c, 0x84, 0x6e, 0xe6,
+ 0x89, 0x00, 0xed, 0x25, 0xa6, 0x29, 0xf4, 0xce, 0xa1, 0xea, 0x99, 0x3f,
+ 0x7f, 0x17, 0xd4, 0xcf, 0xfc, 0x07, 0x48, 0x69, 0x2c, 0xba, 0xec, 0x01,
+ 0x7f, 0xb2, 0xe4, 0x5c, 0x0a, 0xff, 0xc4, 0xe9, 0x06, 0x6a, 0x62, 0x05,
+ 0x74, 0xfe, 0x70, 0xd5, 0x1b, 0x23, 0xe3, 0x3c, 0x04, 0x79, 0xf3, 0xf2,
+ 0x2f, 0xa9, 0x84, 0x1c, 0x85, 0x51, 0x23, 0xad, 0x1d, 0x6c, 0xa5, 0xa6,
+ 0x4f, 0xc8, 0x03, 0x9e, 0x4e, 0x60, 0x1c, 0xea, 0x76, 0x98, 0xae, 0x69,
+ 0x9c, 0x7c, 0xd0, 0xb2, 0x4e, 0x33, 0xc0, 0x74, 0x86, 0x92, 0xde, 0x05,
+ 0x7f, 0xe1, 0x8b, 0x90, 0x2b, 0xa1, 0x9b, 0x24, 0x7a, 0x5a, 0x93, 0x90,
+ 0xaa, 0x78, 0x75, 0xf4, 0xc3, 0xd4, 0x18, 0xb3, 0x4e, 0xff, 0x80, 0x8f,
+ 0x3e, 0x7e, 0x71, 0x7d, 0x4c, 0xf4, 0x8e, 0xb6, 0x7e, 0x40, 0x1c, 0xf7,
+ 0x69, 0x8a, 0x76, 0x99, 0x27, 0x30, 0x0e, 0x7d, 0x5c, 0xd3, 0x18, 0xbb,
+ 0x8b, 0x0d, 0x32, 0xc4, 0xef, 0xdf, 0xbe, 0xbf, 0xff, 0xf2, 0x28, 0x21,
+ 0x34, 0x01, 0x91, 0x8a, 0x33, 0x21, 0xf0, 0x01, 0x23, 0xc0, 0x7e, 0xf2,
+ 0x34, 0x20, 0x3f, 0xde, 0xf2, 0xfc, 0x4a, 0xe0, 0x08, 0x65, 0x60, 0xf8,
+ 0x87, 0xbf, 0x20, 0x0a, 0x2a, 0x40, 0xf9, 0x00, 0x71, 0x7d, 0x2f, 0x07,
+ 0xb4, 0x7f, 0x80, 0xff, 0x28, 0x1f, 0xee, 0x3b, 0xbf, 0xff, 0x0f, 0x31,
+ 0xdc, 0xa8, 0xcc, 0x07, 0xf4, 0x86, 0x56, 0xbb, 0xbf, 0xad, 0xff, 0x15,
+ 0xd4, 0x7f, 0xf8, 0x49, 0x40, 0x08, 0x1d, 0x57, 0x6b, 0xf7, 0x5f, 0x16,
+ 0xf3, 0x51, 0xd0, 0x07, 0x6d, 0xe9, 0x60, 0x3f, 0x37, 0xf0, 0xaa, 0xff,
+ 0xa9, 0xce, 0x09, 0xff, 0x01, 0x2b, 0xd4, 0x7e, 0x73, 0x05, 0xbf, 0x57,
+ 0xa7, 0x5b, 0x80, 0x25, 0xf7, 0x41, 0xff, 0x7b, 0xd6, 0x97, 0xe8, 0x0f,
+ 0xf1, 0x7e, 0xc2, 0x03, 0xff, 0xcf, 0xf0, 0x40, 0x5f, 0x82, 0x1f, 0x81,
+ 0xfb, 0xce, 0xa5, 0x8e, 0x98, 0x01, 0x0a, 0x69, 0xa6, 0x80, 0xf3, 0x79,
+ 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x03, 0xa2, 0x2d, 0xcf, 0xfa, 0x4f, 0xfe,
+ 0x25, 0x0a, 0x38, 0x0f, 0x13, 0x22, 0x65, 0xc0, 0x58, 0x56, 0x4b, 0xaa,
+ 0xe7, 0x8e, 0x03, 0xc4, 0xc8, 0x99, 0xc2, 0x04, 0x88, 0x27, 0xff, 0x09,
+ 0x42, 0x56, 0x9c, 0x6d, 0x4c, 0x71, 0xc9, 0x92, 0x7f, 0xa3, 0xdc, 0x8a,
+ 0x5b, 0xee, 0xd3, 0x06, 0xbe, 0xed, 0x01, 0xb5, 0x8c, 0xad, 0xf9, 0x6b,
+ 0x8a, 0x4c, 0x3f, 0xe1, 0x29, 0xda, 0xb6, 0xef, 0xb4, 0x8d, 0x37, 0x1e,
+ 0x8e, 0xea, 0x7f, 0xc8, 0x1c, 0xd8, 0x6d, 0x2e, 0xa8, 0x4a, 0xce, 0x34,
+ 0x46, 0xf1, 0xee, 0x45, 0x2d, 0x64, 0x22, 0x46, 0x57, 0xff, 0x84, 0xad,
+ 0x00, 0xbf, 0x56, 0xd9, 0x73, 0x26, 0x69, 0xb8, 0xd7, 0xdd, 0xa0, 0x0e,
+ 0xd5, 0xb7, 0x7e, 0x13, 0xa4, 0xff, 0x93, 0x7b, 0xa9, 0x3f, 0xe3, 0x41,
+ 0x3c, 0x0b, 0xfe, 0x12, 0xb4, 0x8d, 0x7c, 0x78, 0x98, 0x6e, 0x4b, 0xb0,
+ 0x3f, 0x42, 0x6d, 0x69, 0xc6, 0xd4, 0xc7, 0x1c, 0x99, 0x27, 0xfa, 0x3d,
+ 0x64, 0x52, 0xdf, 0x44, 0x15, 0x66, 0x3f, 0xfc, 0x25, 0x5c, 0xa4, 0xc2,
+ 0x5f, 0x58, 0xeb, 0xb9, 0x4a, 0x53, 0xda, 0x3b, 0x56, 0xdd, 0xfa, 0x06,
+ 0x3c, 0xa5, 0x45, 0x97, 0xe4, 0x89, 0xc9, 0xdf, 0x7d, 0xf7, 0xf2, 0xb4,
+ 0xb2, 0x26, 0xfc, 0x26, 0x22, 0x38, 0x07, 0xf0, 0x83, 0xfc, 0x07, 0xf8,
+ 0xe0, 0x05, 0x1e, 0xa7, 0x9f, 0x24, 0x1d, 0xf5, 0xfc, 0xf5, 0x12, 0x2e,
+ 0xfb, 0xe4, 0xf3, 0x3a, 0x7f, 0x9d, 0x30, 0x4e, 0x22, 0x81, 0x86, 0x50,
+ 0x7e, 0x18, 0x97, 0x78, 0x1f, 0xe3, 0x80, 0x29, 0xee, 0x59, 0xf2, 0x5f,
+ 0x71, 0x7f, 0x3d, 0x44, 0xc7, 0x4c, 0x00, 0x85, 0x34, 0xd3, 0x40, 0x79,
+ 0xbc, 0xf8, 0x1d, 0x11, 0x6e, 0x7f, 0x81, 0xd1, 0x16, 0xe7, 0x1d, 0x87,
+ 0xad, 0xbf, 0x66, 0x07, 0x9b, 0xc2, 0x11, 0xbd, 0xce, 0x7e, 0x07, 0x46,
+ 0xf7, 0x39, 0xfb, 0x9e, 0xfb, 0xef, 0xbe, 0xfa, 0xeb, 0xae, 0xbf, 0xed,
+ 0x6f, 0x84, 0xa1, 0x41, 0x10, 0x0a, 0xb4, 0xe0, 0x3e, 0xa0, 0x44, 0xe5,
+ 0x36, 0xac, 0x90, 0x11, 0x7d, 0x77, 0x1d, 0xff, 0xf2, 0x44, 0xf2, 0x4e,
+ 0x3e, 0x40, 0x00, 0x4d, 0xa6, 0x92, 0x6d, 0x24, 0xd3, 0x7f, 0xfc, 0x1a,
+ 0x4e, 0xe7, 0xdc, 0xb5, 0xff, 0x4a, 0x7c, 0x21, 0x0a, 0x08, 0xc0, 0x2f,
+ 0xa5, 0x01, 0xf5, 0x02, 0x25, 0x96, 0x9a, 0xb2, 0x40, 0x30, 0x3f, 0x57,
+ 0xc3, 0xbe, 0xa2, 0x7c, 0x74, 0xc0, 0x08, 0x53, 0x4d, 0x34, 0x07, 0x9b,
+ 0xcf, 0x81, 0xd1, 0x16, 0xe7, 0xf8, 0x1d, 0x11, 0x6e, 0x71, 0xd8, 0x02,
+ 0x16, 0xdb, 0x6d, 0x81, 0xe6, 0xf0, 0x0e, 0x8c, 0xb7, 0x3f, 0xe0, 0x74,
+ 0x65, 0xb9, 0xff, 0x53, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0xfc,
+ 0x3f, 0xa5, 0x20, 0x84, 0xd0, 0x02, 0x06, 0x5f, 0x72, 0xfc, 0xf4, 0xe0,
+ 0xed, 0x10, 0x16, 0xbc, 0xff, 0xff, 0xc2, 0x8a, 0x01, 0xf3, 0x21, 0xfc,
+ 0xfc, 0x11, 0x36, 0xdc, 0xd1, 0x18, 0x1c, 0x30, 0x49, 0xdb, 0x68, 0x43,
+ 0x7f, 0x26, 0xdb, 0x25, 0x3a, 0xaf, 0xf6, 0x7f, 0x0f, 0xa3, 0x66, 0x45,
+ 0x1c, 0x54, 0x76, 0x95, 0xea, 0xf9, 0x89, 0xd0, 0xa4, 0x72, 0x76, 0x13,
+ 0x20, 0xe0, 0x1e, 0x0b, 0x16, 0xc0, 0x81, 0x9d, 0x35, 0xac, 0xaa, 0x3d,
+ 0xdc, 0x96, 0x18, 0xc7, 0x03, 0x14, 0xe5, 0x88, 0xad, 0xb7, 0x37, 0x01,
+ 0xfa, 0x08, 0x24, 0xe5, 0x38, 0x4a, 0xd0, 0x18, 0xa7, 0x2c, 0x43, 0xde,
+ 0x1e, 0xae, 0x40, 0xf6, 0xd3, 0x09, 0x7a, 0x0d, 0x86, 0x4f, 0xf5, 0x8f,
+ 0x26, 0x5c, 0x89, 0xe6, 0xe9, 0xc2, 0x9e, 0x92, 0x69, 0xed, 0xc1, 0xa1,
+ 0x74, 0x1c, 0x8e, 0xf8, 0x76, 0xc6, 0x38, 0xec, 0x46, 0x28, 0x43, 0x4c,
+ 0xba, 0x55, 0xb3, 0xff, 0xff, 0xda, 0x08, 0x5c, 0x00, 0x8a, 0xc8, 0xfa,
+ 0x12, 0x8e, 0x8d, 0xbb, 0x72, 0x03, 0xea, 0xa2, 0x9e, 0x3a, 0x60, 0x04,
+ 0x29, 0xa6, 0x9a, 0x03, 0xcd, 0xe7, 0xc0, 0xe8, 0x8b, 0x73, 0xfc, 0x0e,
+ 0x88, 0xb7, 0x38, 0xec, 0x01, 0x0b, 0x6d, 0xb6, 0xc0, 0xf3, 0x78, 0x07,
+ 0x46, 0x5b, 0x9f, 0xf0, 0x3a, 0x32, 0xdc, 0xff, 0xa9, 0xeb, 0xae, 0xba,
+ 0xeb, 0xae, 0xba, 0xf0, 0x00, 0x00, 0x01, 0x25, 0x01, 0x2e, 0xe0, 0x80,
+ 0x83, 0xbf, 0xff, 0xf0, 0xf4, 0x50, 0x00, 0x2f, 0xe3, 0xe6, 0x00, 0x0c,
+ 0xad, 0xdd, 0xdd, 0x7f, 0xff, 0xfe, 0x00, 0xed, 0xad, 0x03, 0x35, 0x37,
+ 0xff, 0xfa, 0x7d, 0x22, 0x9f, 0x68, 0xfe, 0x04, 0x6f, 0x23, 0xf5, 0x2f,
+ 0x81, 0x22, 0xee, 0x67, 0xc7, 0x5a, 0xfa, 0x3e, 0x7d, 0x9f, 0xe0, 0x13,
+ 0x35, 0x70, 0x7f, 0xfd, 0xdf, 0xce, 0x23, 0xbf, 0xff, 0x84, 0x9f, 0x17,
+ 0x54, 0x5c, 0x47, 0x17, 0xff, 0xe1, 0xe8, 0x1a, 0xb7, 0x2d, 0xfc, 0x7d,
+ 0x00, 0x13, 0xf5, 0x33, 0x0d, 0x4a, 0xee, 0xf9, 0x09, 0x0b, 0x06, 0x2d,
+ 0xc0, 0x28, 0x7b, 0x87, 0x85, 0x32, 0xb9, 0x79, 0x8f, 0x85, 0x5f, 0xfe,
+ 0x10, 0x94, 0x57, 0x02, 0x2e, 0xe9, 0xe7, 0xeb, 0xbf, 0x3f, 0xff, 0xff,
+ 0x62, 0xf6, 0x96, 0x30, 0x90, 0x05, 0x16, 0xa4, 0x08, 0x28, 0x15, 0x30,
+ 0x22, 0x78, 0x75, 0x2f, 0xe0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x00, 0x0d,
+ 0xdf, 0x47, 0xcf, 0x1e, 0x0f, 0xff, 0xff, 0xc1, 0x00, 0x97, 0xe3, 0xe6,
+ 0x00, 0x42, 0x9a, 0x69, 0xc0, 0x79, 0xbc, 0xf8, 0x1d, 0x11, 0x6e, 0x7f,
+ 0x81, 0xd1, 0x16, 0xe7, 0xff, 0xff, 0xc2, 0x71, 0x40, 0x01, 0xc0, 0x78,
+ 0x88, 0x89, 0x99, 0xe3, 0x80, 0xf1, 0x11, 0x13, 0x3f, 0xff, 0xfc, 0x26,
+ 0x77, 0xef, 0xc9, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0xd3, 0x39,
+ 0x9f, 0xcf, 0x8a, 0x11, 0x94, 0xd0, 0x1f, 0x87, 0xff, 0x02, 0x26, 0xd8,
+ 0x1f, 0xbd, 0x9d, 0x03, 0xf0, 0xd2, 0x0f, 0xc3, 0xf8, 0xfd, 0x42, 0x7a,
+ 0xe1, 0x58, 0x4d, 0xee, 0x03, 0xfc, 0xa7, 0xf8, 0x02, 0x35, 0xea, 0xcf,
+ 0x72, 0xe9, 0x39, 0x79, 0x0d, 0xc4, 0xd7, 0xff, 0xf7, 0x22, 0x2c, 0x60,
+ 0x8e, 0x00, 0x67, 0xdf, 0xd6, 0x76, 0xc0, 0x0c, 0xfb, 0xfa, 0xce, 0xc2,
+ 0x7f, 0xd1, 0xef, 0xd0, 0x08, 0xed, 0x26, 0x07, 0xf8, 0x93, 0xf6, 0x0f,
+ 0xc2, 0x1e, 0x00, 0xfb, 0x31, 0x11, 0x72, 0xff, 0x0f, 0x30, 0x24, 0x7a,
+ 0xde, 0xf6, 0xfb, 0x50, 0x1f, 0xe3, 0xa7, 0xf8, 0x3f, 0x09, 0xee, 0x78,
+ 0x42, 0x60, 0x04, 0x29, 0xa6, 0x9a, 0x03, 0xcd, 0xe7, 0xc0, 0xe8, 0x8b,
+ 0x73, 0xfc, 0x0e, 0x88, 0xb7, 0x3e, 0xb0, 0xbd, 0x9b, 0x1f, 0xb1, 0x10,
+ 0xcd, 0xbb, 0xee, 0x3a, 0xe4, 0xe9, 0xe5, 0x81, 0x8c, 0x74, 0x43, 0x15,
+ 0xf9, 0xc1, 0x36, 0x0c, 0x55, 0xe6, 0x87, 0x55, 0xfe, 0xfa, 0xad, 0xcf,
+ 0x46, 0xee, 0x1e, 0xc6, 0x3c, 0xad, 0x26, 0x08, 0x00, 0x74, 0xab, 0xd6,
+ 0x51, 0x3d, 0x9f, 0xea, 0x17, 0xd9, 0xb1, 0xfb, 0x8c, 0xbf, 0x5f, 0xba,
+ 0xf2, 0x3b, 0xc9, 0xeb, 0xc1, 0x0f, 0x2a, 0x01, 0x8a, 0xfd, 0xa1, 0x36,
+ 0x0c, 0x5b, 0xcc, 0x43, 0xa8, 0xff, 0xae, 0x91, 0xb5, 0x9e, 0xc4, 0xe4,
+ 0x94, 0x3d, 0xf9, 0xfa, 0xa9, 0x02, 0x00, 0x1d, 0x2a, 0xf5, 0x9b, 0x28,
+ 0xff, 0xea, 0x17, 0xd9, 0xb1, 0xfb, 0x8c, 0xbf, 0x5f, 0xba, 0xf2, 0x3b,
+ 0xc9, 0xeb, 0xc1, 0x0f, 0x2a, 0x01, 0x8a, 0xfd, 0xa1, 0x36, 0x0c, 0x5b,
+ 0xcc, 0x43, 0xa8, 0xff, 0x57, 0x48, 0xda, 0xcf, 0x60, 0x4e, 0x49, 0x43,
+ 0xdf, 0x9f, 0xaa, 0x90, 0x20, 0x01, 0xd2, 0xaf, 0x59, 0xd1, 0x7f, 0xd4,
+ 0x2e, 0x3b, 0x62, 0x54, 0xdc, 0x65, 0xfa, 0xfd, 0xd7, 0x91, 0xde, 0x4f,
+ 0x5e, 0x08, 0x79, 0x50, 0x0c, 0xd7, 0xb6, 0x82, 0x0c, 0x4b, 0x31, 0x0b,
+ 0xd6, 0x8c, 0xec, 0xc0, 0x13, 0x92, 0x50, 0xf7, 0xe7, 0xea, 0xa4, 0x04,
+ 0x23, 0x4e, 0x1f, 0x00, 0x3d, 0xfd, 0x0b, 0xbb, 0xd5, 0xa9, 0xbf, 0xe0,
+ 0x7b, 0xaf, 0xcc, 0xa9, 0xbb, 0x59, 0xb6, 0x87, 0xd1, 0x9e, 0x80, 0xfa,
+ 0x13, 0x51, 0xb4, 0x96, 0xb0, 0xbc, 0x99, 0x19, 0xaf, 0x79, 0x04, 0x11,
+ 0xbe, 0x99, 0x89, 0x3f, 0x5a, 0x28, 0xe8, 0xf6, 0xfc, 0x04, 0x76, 0xad,
+ 0x6f, 0xf8, 0x02, 0x37, 0x84, 0x29, 0xde, 0x8e, 0xa9, 0xbf, 0x7c, 0xc4,
+ 0x1d, 0x7e, 0x65, 0x4d, 0xda, 0xcd, 0xb6, 0x3e, 0x8c, 0xf4, 0x07, 0xd0,
+ 0xa5, 0x45, 0x47, 0xbf, 0x73, 0x26, 0x46, 0x6b, 0xde, 0x41, 0x04, 0x6f,
+ 0xa6, 0x62, 0x4f, 0xd6, 0x8a, 0x3a, 0x3a, 0xf8, 0x11, 0xda, 0x87, 0xcf,
+ 0xe0, 0x23, 0x78, 0x42, 0x9d, 0xea, 0xd4, 0xdf, 0xf9, 0x88, 0x38, 0xfc,
+ 0xda, 0x9b, 0xb5, 0x9b, 0x6c, 0x7d, 0x19, 0xe8, 0x0f, 0xa1, 0x4a, 0x8a,
+ 0x8f, 0x7e, 0xe6, 0x4c, 0x8c, 0xd7, 0xbc, 0x82, 0x08, 0xc9, 0xb8, 0xcc,
+ 0x21, 0x35, 0x6d, 0x14, 0x74, 0x55, 0xf0, 0x23, 0xb5, 0x0f, 0x9f, 0xc0,
+ 0x20, 0x1f, 0x62, 0x1e, 0xf4, 0x7a, 0x9b, 0xf0, 0xcd, 0xb6, 0xb8, 0x1b,
+ 0x04, 0x79, 0xf8, 0xee, 0xd6, 0x6d, 0xa1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16,
+ 0xaa, 0xff, 0xcf, 0x44, 0x03, 0x35, 0xed, 0xa0, 0x41, 0x19, 0x37, 0x19,
+ 0x88, 0x4d, 0x5b, 0x46, 0x7a, 0x25, 0x09, 0x90, 0x71, 0x51, 0xa6, 0x7c,
+ 0x7c, 0x09, 0xca, 0xb1, 0xef, 0xdd, 0x36, 0xda, 0xe2, 0x6c, 0x0a, 0x3c,
+ 0xfc, 0x77, 0x6b, 0x36, 0xd8, 0xfa, 0x7e, 0x87, 0x76, 0x0f, 0x55, 0x6f,
+ 0xba, 0x20, 0x19, 0xaf, 0x6d, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09, 0xb9,
+ 0xb4, 0x67, 0xa2, 0x62, 0xe0, 0xe2, 0xa3, 0x4c, 0xfb, 0xe0, 0x4e, 0x55,
+ 0x8f, 0x7e, 0xe9, 0xb6, 0xd7, 0x03, 0x60, 0x8f, 0x3f, 0x1d, 0xda, 0xcd,
+ 0xb4, 0x3e, 0xaf, 0x83, 0xbb, 0x22, 0xd5, 0x5f, 0xf9, 0xe8, 0x80, 0x66,
+ 0xbd, 0xb4, 0x08, 0x23, 0x26, 0xe3, 0x31, 0x09, 0xab, 0x68, 0xcf, 0x44,
+ 0xa1, 0x32, 0x0e, 0x2a, 0x34, 0xcf, 0x8f, 0x81, 0x39, 0x56, 0x3d, 0xfb,
+ 0xa6, 0xdb, 0x5c, 0x52, 0x82, 0xe1, 0xfe, 0x57, 0x31, 0x35, 0x9e, 0x6f,
+ 0x34, 0x6f, 0x5b, 0xaa, 0x13, 0xd5, 0xd1, 0x55, 0xd5, 0x0a, 0xe0, 0xc6,
+ 0xde, 0x64, 0x10, 0x9a, 0xb0, 0xc8, 0xb9, 0xb6, 0x10, 0x41, 0x0b, 0x15,
+ 0x34, 0x5f, 0xaf, 0xfc, 0x26, 0x7d, 0xac, 0x06, 0x8a, 0xa9, 0xae, 0xd9,
+ 0xd3, 0x09, 0x00, 0x79, 0x5c, 0xc4, 0xd6, 0x79, 0xbc, 0xd3, 0xbd, 0xbf,
+ 0xbc, 0xb2, 0xc7, 0xc0, 0x21, 0xb7, 0xe6, 0x41, 0x37, 0x30, 0xc8, 0xb9,
+ 0xb6, 0x08, 0x3c, 0x16, 0xac, 0x80, 0x69, 0x5b, 0xda, 0x8f, 0xd7, 0xd5,
+ 0x9f, 0x84, 0xcf, 0xb5, 0x80, 0xd1, 0x55, 0x6b, 0xb4, 0x4e, 0x95, 0x0b,
+ 0x00, 0x79, 0x5c, 0xc4, 0xd6, 0x79, 0xbc, 0xd5, 0x1b, 0xfd, 0xf1, 0xad,
+ 0x6f, 0x80, 0x63, 0x6f, 0x64, 0x10, 0x9a, 0xb0, 0xc8, 0xb9, 0xb6, 0x10,
+ 0x78, 0x2d, 0xb8, 0x17, 0x25, 0xef, 0xc5, 0xd5, 0x33, 0xbf, 0x82, 0x67,
+ 0xb6, 0x80, 0x68, 0xaa, 0xb5, 0xda, 0x27, 0x12, 0x40, 0x90, 0x06, 0xdd,
+ 0xcc, 0x4d, 0x67, 0x9b, 0xcc, 0x9c, 0x6f, 0xf7, 0x90, 0x71, 0x54, 0x99,
+ 0x0f, 0xb2, 0x19, 0xeb, 0xb7, 0xb7, 0x74, 0x75, 0x80, 0x69, 0x5b, 0xda,
+ 0x9f, 0xfe, 0x02, 0x11, 0x54, 0xd6, 0xb3, 0xfc, 0x71, 0xdb, 0xb8, 0x4f,
+ 0x49, 0xba, 0xd4, 0xd8, 0xdd, 0x9b, 0x53, 0x6f, 0xea, 0x38, 0x7b, 0xd7,
+ 0xc6, 0x24, 0xd3, 0x06, 0xa6, 0x93, 0x31, 0xc4, 0x2b, 0xc7, 0xbf, 0x7f,
+ 0xf0, 0x10, 0x8a, 0xa6, 0xb5, 0x9f, 0xa8, 0x42, 0x3b, 0x77, 0x80, 0x85,
+ 0x6a, 0x61, 0xc2, 0x80, 0x25, 0x41, 0x11, 0x15, 0xa3, 0xdf, 0xa6, 0xc6,
+ 0x72, 0x03, 0x5e, 0x5c, 0xa7, 0x95, 0xbe, 0x06, 0x3d, 0x14, 0x7c, 0x71,
+ 0x0a, 0xf1, 0xef, 0xdf, 0xf0, 0x10, 0x8a, 0xad, 0x6b, 0x24, 0x71, 0x47,
+ 0x0e, 0x39, 0x77, 0x5d, 0x23, 0x28, 0x16, 0x1e, 0x63, 0x5a, 0xbf, 0x05,
+ 0x31, 0x15, 0x1e, 0xfd, 0x6b, 0x76, 0x42, 0x4f, 0x61, 0x81, 0x76, 0xf0,
+ 0x9b, 0x1a, 0xaf, 0x49, 0xf7, 0xd6, 0x38, 0x85, 0x78, 0xf7, 0xef, 0xf9,
+ 0xf5, 0xf4, 0x0a, 0x08, 0x01, 0x77, 0x31, 0x6f, 0x38, 0x74, 0x6e, 0xa4,
+ 0xc6, 0x52, 0xeb, 0xd1, 0x70, 0x27, 0x7f, 0x24, 0x3a, 0x18, 0x17, 0x67,
+ 0x84, 0xd8, 0x38, 0xf5, 0x07, 0x26, 0x9f, 0x7d, 0x40, 0x42, 0x25, 0xb9,
+ 0x6b, 0x40, 0x4a, 0x03, 0xe5, 0x5e, 0xb0, 0x18, 0xbe, 0x7d, 0x75, 0xa0,
+ 0x51, 0x80, 0x0b, 0xb9, 0x8b, 0x79, 0xc3, 0xa3, 0x75, 0x58, 0xca, 0x5b,
+ 0x7c, 0x29, 0x82, 0x38, 0x91, 0x69, 0x80, 0x60, 0x5d, 0x9e, 0x13, 0x62,
+ 0xdd, 0x3e, 0xa4, 0xfb, 0xeb, 0x10, 0x89, 0x6c, 0x7b, 0xf9, 0x01, 0x28,
+ 0xd2, 0xef, 0x21, 0xa5, 0x3c, 0x73, 0xf5, 0xf4, 0xd1, 0x80, 0x06, 0x36,
+ 0x8c, 0x5b, 0xce, 0x1d, 0x1b, 0xaa, 0xc6, 0x52, 0xf5, 0x29, 0x80, 0x27,
+ 0x7f, 0x24, 0x3a, 0x18, 0x7f, 0xe6, 0x12, 0xe7, 0x5b, 0xa7, 0xc4, 0xa0,
+ 0xdb, 0x25, 0xb4, 0x42, 0x25, 0xe3, 0xdf, 0xc8, 0x12, 0x8d, 0x4b, 0xd3,
+ 0xec, 0xa3, 0xa3, 0x3c, 0x03, 0xc0, 0x4b, 0x71, 0x4b, 0x59, 0x87, 0xdb,
+ 0xa0, 0x80, 0x6e, 0xca, 0x69, 0x9f, 0x2f, 0x80, 0xe4, 0xb6, 0x98, 0x41,
+ 0xde, 0xd6, 0x12, 0xaf, 0xa0, 0x29, 0xa8, 0x02, 0x10, 0x79, 0x98, 0xfb,
+ 0xcd, 0x24, 0x93, 0x04, 0xcd, 0xc3, 0xd6, 0x03, 0x81, 0x56, 0x3a, 0x29,
+ 0xbb, 0xdd, 0x7f, 0xfe, 0xdd, 0x04, 0x03, 0x6e, 0x0b, 0xf2, 0x5d, 0x78,
+ 0x31, 0x40, 0x72, 0x5b, 0x4c, 0x31, 0x6d, 0xdd, 0x89, 0x57, 0xc0, 0x5b,
+ 0x5a, 0x04, 0x2d, 0x76, 0xdf, 0xc1, 0x01, 0x33, 0x58, 0xf5, 0xd0, 0x70,
+ 0x2e, 0xc7, 0x45, 0x53, 0xed, 0x7f, 0xfb, 0x74, 0x10, 0x0d, 0xe0, 0xbf,
+ 0x25, 0xd7, 0xf4, 0x50, 0x1c, 0x96, 0xd3, 0x0c, 0x5b, 0x77, 0x62, 0x55,
+ 0xf0, 0x16, 0xd6, 0x82, 0x16, 0xb7, 0x5e, 0xad, 0x30, 0x13, 0x35, 0xcb,
+ 0xbc, 0x0e, 0x05, 0x58, 0xe8, 0xa6, 0x7f, 0x6b, 0xff, 0x6f, 0xfe, 0xf0,
+ 0x5f, 0x92, 0xe8, 0x65, 0x9e, 0x8b, 0xb0, 0x31, 0xf8, 0x33, 0x12, 0xb2,
+ 0xd2, 0xa0, 0x42, 0xd6, 0xeb, 0xd5, 0xa6, 0x11, 0xc5, 0xda, 0x09, 0x58,
+ 0x3d, 0xeb, 0xa2, 0x69, 0x6b, 0x31, 0xf7, 0xf3, 0xdb, 0xff, 0xbe, 0x3d,
+ 0x36, 0xd3, 0x24, 0x5c, 0x3d, 0x79, 0xfe, 0x03, 0x1f, 0xed, 0xcc, 0x25,
+ 0x7a, 0xe3, 0xca, 0x09, 0x69, 0x9e, 0x08, 0xf6, 0x3d, 0xe4, 0x1d, 0x8b,
+ 0xb5, 0xd1, 0x34, 0xb5, 0x98, 0xfb, 0xfb, 0x6d, 0xff, 0xdf, 0x1e, 0x9b,
+ 0x69, 0x94, 0x12, 0xff, 0x1f, 0xe0, 0x31, 0xfe, 0xdc, 0xc2, 0x57, 0xae,
+ 0x3c, 0x30, 0x4b, 0x4c, 0xf0, 0x23, 0xde, 0x3d, 0xe0, 0x4b, 0xc3, 0xd9,
+ 0x74, 0x44, 0x8f, 0x4e, 0xfa, 0xfe, 0xdf, 0xf8, 0xf7, 0xc7, 0xa6, 0xda,
+ 0x65, 0x04, 0xbf, 0xc7, 0xf8, 0xd2, 0xb4, 0xce, 0x30, 0x4b, 0x4c, 0xf0,
+ 0x23, 0xde, 0x3d, 0xe4, 0x1a, 0x05, 0xd0, 0x18, 0x27, 0x58, 0xc3, 0xb2,
+ 0x94, 0xf8, 0x7b, 0x2d, 0x90, 0x03, 0x87, 0x8f, 0x15, 0xc0, 0x26, 0x5a,
+ 0xfa, 0xee, 0x70, 0x11, 0x1f, 0xc0, 0x57, 0xf8, 0xd2, 0x81, 0x95, 0xd5,
+ 0x2b, 0x4c, 0xf0, 0x93, 0xed, 0x65, 0x40, 0xba, 0x01, 0x08, 0x34, 0x63,
+ 0xdf, 0xab, 0x71, 0x76, 0xba, 0x7c, 0x3c, 0x78, 0xae, 0x00, 0xc4, 0xab,
+ 0x5c, 0x25, 0xf8, 0x04, 0x47, 0xf0, 0x15, 0xfe, 0x0c, 0x63, 0x2b, 0xaa,
+ 0x56, 0x99, 0xe1, 0x27, 0xda, 0xca, 0x81, 0x74, 0x02, 0x10, 0x19, 0x14,
+ 0x7b, 0xf5, 0x6e, 0x2e, 0xd6, 0xc8, 0x01, 0xc3, 0xfc, 0x57, 0x00, 0x99,
+ 0x6b, 0xeb, 0xb9, 0xc0, 0x44, 0x7f, 0x01, 0x5f, 0xe3, 0x4a, 0x06, 0x57,
+ 0x54, 0xad, 0x33, 0xc2, 0x4f, 0xb5, 0x90, 0x77, 0xb4, 0x21, 0x06, 0x8c,
+ 0x7b, 0xf5, 0x2c, 0xcc, 0x7b, 0xca, 0xda, 0x7f, 0x8e, 0xd7, 0x08, 0xaa,
+ 0xeb, 0xaf, 0xdf, 0xd1, 0x48, 0x0b, 0xf9, 0x00, 0xaf, 0x03, 0x0b, 0xd3,
+ 0x3a, 0x2f, 0xfd, 0x17, 0x06, 0x00, 0xba, 0x02, 0x0e, 0xf6, 0x92, 0xc5,
+ 0xda, 0xac, 0xa2, 0x76, 0xdb, 0x6f, 0xf1, 0xda, 0x2a, 0x04, 0xb9, 0x5c,
+ 0x1b, 0xd7, 0xef, 0xf1, 0x80, 0x98, 0x7b, 0x80, 0x57, 0x83, 0x0b, 0xd3,
+ 0x37, 0x51, 0xf0, 0x60, 0x0b, 0xa0, 0x31, 0xdb, 0x59, 0xaf, 0x0f, 0x65,
+ 0x39, 0x5a, 0x74, 0xb6, 0xdf, 0xe3, 0xb4, 0x54, 0x48, 0x6e, 0xeb, 0xf7,
+ 0xf8, 0xc0, 0x98, 0x7b, 0x01, 0x5f, 0xe0, 0xf2, 0x6d, 0x33, 0xa2, 0xf8,
+ 0x30, 0x05, 0x50, 0x10, 0x77, 0xb4, 0x6b, 0xc3, 0xd9, 0x56, 0x51, 0x3b,
+ 0x6d, 0xb2, 0x43, 0xff, 0x70, 0x11, 0x15, 0x75, 0xd7, 0xef, 0xe0, 0x4c,
+ 0x9b, 0x98, 0x92, 0x01, 0x27, 0xac, 0x0d, 0x85, 0xc0, 0xd2, 0x98, 0x39,
+ 0xb4, 0x9b, 0xfc, 0x1d, 0x67, 0xa6, 0x7f, 0x84, 0x78, 0x3d, 0xea, 0x12,
+ 0x3d, 0x18, 0xfa, 0x39, 0x24, 0x34, 0xfe, 0xea, 0x24, 0xd3, 0x3c, 0x13,
+ 0xe8, 0x7a, 0xf4, 0x04, 0x9e, 0x98, 0x1b, 0x0b, 0x80, 0x62, 0x83, 0x9e,
+ 0x93, 0x71, 0xe6, 0xee, 0x7b, 0xab, 0xc3, 0xd9, 0x6e, 0xbf, 0x84, 0x78,
+ 0x3d, 0xea, 0x12, 0x3d, 0x31, 0xf4, 0x72, 0x48, 0x69, 0xfd, 0xd4, 0x49,
+ 0xa6, 0x78, 0x27, 0xd0, 0xf5, 0xe8, 0x09, 0x3d, 0x30, 0x36, 0x17, 0x03,
+ 0x6b, 0xc1, 0xcf, 0x49, 0xbf, 0x0d, 0x7f, 0x3d, 0xd5, 0xe1, 0xec, 0xba,
+ 0x2f, 0x04, 0x7a, 0x1e, 0xfd, 0x84, 0x8f, 0x46, 0x3e, 0x8e, 0x5b, 0x69,
+ 0x80, 0xf7, 0x51, 0x26, 0x99, 0xe0, 0x9f, 0x43, 0xd7, 0xb0, 0x1c, 0x54,
+ 0x69, 0x80, 0xb2, 0xa7, 0x5d, 0xfe, 0x6e, 0xe7, 0xba, 0xbc, 0x3d, 0x96,
+ 0xeb, 0xea, 0xc0, 0x38, 0x17, 0x63, 0x08, 0x76, 0xd7, 0xe5, 0x16, 0x0d,
+ 0xb1, 0xef, 0xe0, 0x48, 0x37, 0x25, 0xd7, 0xe2, 0xef, 0xb6, 0x1e, 0x2a,
+ 0x49, 0x86, 0x26, 0x70, 0xe8, 0x57, 0xcf, 0x82, 0x4f, 0xed, 0x05, 0x16,
+ 0x83, 0xce, 0xee, 0xb8, 0x38, 0x38, 0x17, 0x63, 0x08, 0x76, 0xd7, 0x0c,
+ 0xa2, 0xc1, 0xb6, 0x3d, 0xfc, 0x04, 0x83, 0x7d, 0x1e, 0xfc, 0x5d, 0xf6,
+ 0xc3, 0xc5, 0x49, 0x30, 0xc4, 0xce, 0x3c, 0x2b, 0xe7, 0xc1, 0x27, 0xf6,
+ 0x82, 0x8b, 0x41, 0xe7, 0x77, 0x5c, 0x5b, 0xc1, 0xc0, 0xab, 0x18, 0x21,
+ 0xde, 0xd4, 0x3e, 0xc3, 0xbe, 0x3d, 0xf8, 0xc4, 0x83, 0x72, 0x5d, 0x78,
+ 0x2a, 0x9f, 0x6a, 0x1e, 0x96, 0x93, 0x00, 0x62, 0x67, 0x46, 0xc6, 0xfc,
+ 0xc8, 0x1e, 0x82, 0x1c, 0xdd, 0xc1, 0x0b, 0xec, 0x96, 0xbb, 0x1e, 0xfe,
+ 0x99, 0xd6, 0x38, 0x15, 0x63, 0x03, 0x12, 0x69, 0x9a, 0x6e, 0xff, 0x0f,
+ 0x89, 0x38, 0xeb, 0x36, 0x90, 0x06, 0x6d, 0x4c, 0xfd, 0xf5, 0x3f, 0xae,
+ 0x64, 0x4c, 0x89, 0x9e, 0x65, 0x69, 0xee, 0xfb, 0xac, 0xc9, 0xaa, 0xab,
+ 0xcf, 0xf3, 0xc1, 0xc0, 0x78, 0x99, 0x93, 0x31, 0xf6, 0x3e, 0x95, 0x2c,
+ 0x55, 0x9b, 0x48, 0x6d, 0x4d, 0xa8, 0x5a, 0x4f, 0xbc, 0xff, 0x0c, 0xbe,
+ 0xba, 0xc7, 0xe6, 0xc2, 0x92, 0x5d, 0xe7, 0xff, 0xfd, 0xd3, 0x77, 0xff,
+ 0xe1, 0x28, 0xeb, 0x36, 0x91, 0x1b, 0x53, 0x56, 0x9e, 0xfa, 0x8b, 0xfe,
+ 0xff, 0x8e, 0x8d, 0x1b, 0xaf, 0xba, 0x06, 0x6d, 0xd5, 0x4b, 0xb5, 0xff,
+ 0x03, 0xdd, 0xff, 0xf8, 0x4a, 0x3a, 0xcd, 0xc9, 0x1b, 0x53, 0x42, 0x6e,
+ 0x43, 0xeb, 0xff, 0x9e, 0x8d, 0xc6, 0xff, 0xef, 0x2c, 0x4b, 0xc1, 0xf8,
+ 0xfc, 0x41, 0xa9, 0xf9, 0xe0, 0x21, 0x1b, 0xe4, 0x50, 0xfc, 0xfa, 0x17,
+ 0x27, 0xde, 0x7f, 0xc7, 0x5a, 0xef, 0xfa, 0xc6, 0x0d, 0x55, 0xfd, 0x6f,
+ 0xff, 0xf8, 0x1e, 0xef, 0xff, 0xc2, 0x50, 0x84, 0x6f, 0x91, 0x48, 0x7e,
+ 0x6d, 0x37, 0x21, 0xf5, 0xff, 0x8c, 0xa3, 0x71, 0xbf, 0xfb, 0xcb, 0x12,
+ 0xf0, 0x7e, 0x3f, 0x10, 0x6a, 0x7e, 0x78, 0x08, 0x46, 0xf9, 0x14, 0x3f,
+ 0x3e, 0x85, 0xc9, 0xf7, 0x9f, 0xf1, 0xd6, 0xbb, 0xfe, 0xb1, 0x83, 0x55,
+ 0x7f, 0x5b, 0xff, 0xfc, 0x7e, 0xd1, 0xaa, 0x7e, 0x06, 0x20, 0xdf, 0x22,
+ 0x87, 0xe1, 0xad, 0xb9, 0x3e, 0xf3, 0xfe, 0x7b, 0xeb, 0xb3, 0xf6, 0x18,
+ 0x35, 0x54, 0x7e, 0xdf, 0xff, 0xf7, 0x5d, 0xdf, 0xff, 0x84, 0xa1, 0x08,
+ 0xdf, 0x10, 0xa6, 0x1f, 0x8c, 0x0d, 0xd6, 0x77, 0xcf, 0xff, 0x7e, 0x8d,
+ 0x1b, 0xbe, 0xed, 0xb1, 0x2f, 0x07, 0xe3, 0xf0, 0x83, 0x54, 0xfc, 0x01,
+ 0x08, 0xdf, 0x22, 0x87, 0xe6, 0xa1, 0x72, 0x7d, 0xe7, 0xfc, 0x75, 0xae,
+ 0xff, 0xad, 0x18, 0xd5, 0x5f, 0xd6, 0xff, 0xff, 0x81, 0xee, 0xff, 0xfc,
+ 0x25, 0x15, 0x52, 0x92, 0xab, 0xc0, 0xcf, 0xf7, 0x29, 0x2e, 0xef, 0xff,
+ 0xcf, 0x46, 0xe3, 0x77, 0xf7, 0x87, 0x89, 0x78, 0x3f, 0x1f, 0x98, 0x68,
+ 0x10, 0x12, 0x15, 0x25, 0xde, 0x06, 0x73, 0xfe, 0x8b, 0x1f, 0xbf, 0xe3,
+ 0xad, 0x77, 0xfd, 0x68, 0xc6, 0xaa, 0xfe, 0xb7, 0xff, 0xfc, 0x0f, 0x77,
+ 0xff, 0xe1, 0x28, 0xaa, 0x94, 0x95, 0x5e, 0x0c, 0xff, 0x72, 0x57, 0x7f,
+ 0x6f, 0xfb, 0xf4, 0x69, 0xbb, 0xee, 0xd8, 0x1a, 0x96, 0xeb, 0xff, 0x81,
+ 0xee, 0xff, 0xfc, 0x25, 0x32, 0x15, 0x12, 0xab, 0xc0, 0xcf, 0xfe, 0x52,
+ 0x5d, 0xdf, 0xff, 0x32, 0x8d, 0xc6, 0xef, 0xbf, 0xd3, 0xc4, 0xbc, 0x1f,
+ 0x8f, 0xe0, 0x6a, 0x7e, 0x7b, 0x61, 0x52, 0x5d, 0xe0, 0x67, 0x3f, 0xe8,
+ 0xb1, 0xfb, 0xfc, 0xca, 0xd7, 0x7f, 0xd6, 0x8c, 0x6a, 0xaf, 0xeb, 0x7f,
+ 0xff, 0xc0, 0xf7, 0x7f, 0xfe, 0x12, 0x8a, 0xa9, 0x49, 0x55, 0xe0, 0x67,
+ 0xfe, 0xa5, 0xae, 0xeb, 0xfc, 0x65, 0x1b, 0x8d, 0xdf, 0xde, 0x1e, 0x25,
+ 0xe0, 0xfc, 0x7f, 0x63, 0x2c, 0xd8, 0x54, 0x97, 0x78, 0x19, 0xcf, 0xfa,
+ 0x2c, 0x7e, 0xff, 0x6a, 0x17, 0x27, 0xde, 0x18, 0x35, 0x57, 0xf5, 0xbf,
+ 0xff, 0xc7, 0xfe, 0x36, 0xa5, 0x25, 0xde, 0x15, 0x53, 0x72, 0x1b, 0x53,
+ 0xff, 0x1a, 0xdb, 0x93, 0xef, 0x06, 0x03, 0x55, 0x47, 0xed, 0xff, 0xfe,
+ 0x3f, 0x0d, 0xea, 0x94, 0x97, 0x78, 0x55, 0x4d, 0xc8, 0x6d, 0x4f, 0xfc,
+ 0x6b, 0x6e, 0x4f, 0xbc, 0x18, 0x35, 0x54, 0x7e, 0xdf, 0xff, 0xe3, 0xe9,
+ 0xfa, 0x7b, 0x40, 0x79, 0xbc, 0x7a, 0xa5, 0x25, 0xde, 0x15, 0x53, 0x72,
+ 0x1b, 0x53, 0xff, 0x1a, 0xdb, 0x93, 0xef, 0x06, 0x0d, 0x31, 0x45, 0x3f,
+ 0xe7, 0xff, 0xc0, 0xe8, 0x9e, 0xe7, 0xff, 0xff, 0xc4, 0x90, 0xf1, 0xc0,
+ 0x79, 0x11, 0x26, 0x60, 0x39, 0x36, 0x93, 0x03, 0x81, 0xc4, 0x41, 0xe7,
+ 0x8e, 0x03, 0xc8, 0x89, 0x33, 0xfc, 0x21, 0xf0, 0x84, 0x51, 0x03, 0x86,
+ 0x32, 0x00, 0xe1, 0x8c, 0x83, 0xc0, 0x51, 0x49, 0x74, 0x20, 0xbd, 0xda,
+ 0x10, 0x47, 0x15, 0x73, 0x20, 0x1e, 0xaf, 0x1c, 0x55, 0xc6, 0x80, 0x7a,
+ 0xba, 0x8a, 0x2b, 0x99, 0x00, 0xf2, 0xea, 0xfc, 0x61, 0xff, 0x0a, 0x40,
+ 0x15, 0xba, 0xda, 0x01, 0xea, 0x78, 0x15, 0x23, 0xbe, 0xb6, 0x40, 0x3d,
+ 0x5e, 0x56, 0xe9, 0xa0, 0x1e, 0xe3, 0xca, 0xdd, 0x34, 0x03, 0xdc, 0x7c,
+ 0x47, 0x00, 0x87, 0xc0, 0xb1, 0x51, 0x00, 0xa9, 0x10, 0x0a, 0x9c, 0x04,
+ 0x36, 0x9a, 0xad, 0x5e, 0xd3, 0x69, 0xaa, 0xd5, 0xc0, 0x6d, 0x36, 0x9a,
+ 0xad, 0x5c, 0x06, 0xd3, 0x69, 0xaa, 0xd5, 0xc0, 0x7f, 0x18, 0xfd, 0xe3,
+ 0x8a, 0x68, 0x1f, 0x02, 0x75, 0x24, 0x86, 0xe7, 0xf1, 0xd4, 0x92, 0x1b,
+ 0x9f, 0xcf, 0xf2, 0xae, 0xb8, 0x9d, 0x49, 0x21, 0xb9, 0xfa, 0x8f, 0x93,
+ 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0x8f, 0x98, 0x01,
+ 0x0a, 0x69, 0xa6, 0x80, 0xf3, 0x79, 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x03,
+ 0xa2, 0x2d, 0xcf, 0xf2, 0x0f, 0xfe, 0x25, 0x1e, 0x0e, 0x03, 0xc4, 0xcc,
+ 0x99, 0x81, 0xf0, 0x69, 0x2c, 0xa3, 0x97, 0xcf, 0x07, 0x01, 0xe2, 0x66,
+ 0x4c, 0xc2, 0xf2, 0x82, 0xb6, 0x98, 0xc2, 0x61, 0x7b, 0x18, 0xd0, 0x97,
+ 0xeb, 0x58, 0x80, 0x04, 0x59, 0xb0, 0x64, 0xae, 0x4a, 0x4a, 0xe7, 0xfc,
+ 0x40, 0x3f, 0xf0, 0x59, 0xd3, 0xf1, 0x00, 0x4a, 0xc4, 0x00, 0x09, 0xf8,
+ 0x1d, 0x31, 0xdc, 0xc3, 0xa6, 0x3b, 0x90, 0x3c, 0x85, 0x72, 0x1e, 0x42,
+ 0xb8, 0x17, 0x50, 0xad, 0x33, 0xfc, 0xd7, 0xeb, 0x58, 0x80, 0x04, 0x79,
+ 0xb8, 0x32, 0x57, 0x32, 0x92, 0xb9, 0xff, 0xf0, 0xff, 0xc1, 0x67, 0x5f,
+ 0xc3, 0x10, 0x69, 0x0c, 0x11, 0xd1, 0xc0, 0xe9, 0x8e, 0xe6, 0x1d, 0x31,
+ 0xdc, 0x81, 0xd1, 0x96, 0xe4, 0x3a, 0x32, 0xdc, 0xff, 0xff, 0xa0, 0x59,
+ 0x2f, 0xe2, 0x00, 0x11, 0x63, 0x7c, 0x19, 0x2b, 0x99, 0x49, 0x5c, 0xff,
+ 0xff, 0xff, 0x05, 0x92, 0xfe, 0x1a, 0x03, 0x34, 0x30, 0xb6, 0xe0, 0x74,
+ 0xc7, 0x73, 0x0e, 0x98, 0xee, 0x40, 0xf2, 0x15, 0xc8, 0x79, 0x0a, 0xe7,
+ 0xc7, 0xff, 0xc1, 0x65, 0x3e, 0x18, 0x14, 0x4b, 0x83, 0x25, 0x73, 0x29,
+ 0x2b, 0x9f, 0xa6, 0x5a, 0xeb, 0xae, 0xb8, 0xe9, 0x80, 0x01, 0x34, 0x93,
+ 0x69, 0x36, 0x93, 0x6d, 0x7f, 0xfc, 0x00, 0x6c, 0x4b, 0x24, 0xcf, 0x35,
+ 0xff, 0x7a, 0x8c, 0x0f, 0x7d, 0x37, 0x9f, 0xff, 0x5b, 0x4c, 0x79, 0x59,
+ 0xb0, 0x01, 0x89, 0x72, 0xbd, 0xe9, 0xbf, 0x42, 0x49, 0xd1, 0xc6, 0xe0,
+ 0x58, 0x0c, 0xbb, 0xbe, 0x11, 0xdf, 0xd0, 0x11, 0xb7, 0xb9, 0xa4, 0x7b,
+ 0x57, 0xc7, 0x94, 0xeb, 0x3f, 0xf7, 0xdb, 0x86, 0xd3, 0xff, 0xf9, 0x7f,
+ 0xfe, 0x37, 0x55, 0x5d, 0x4c, 0x58, 0x6b, 0x25, 0x2f, 0x7d, 0xe3, 0xfe,
+ 0x7f, 0x04, 0x09, 0xa4, 0xc9, 0x99, 0xee, 0xfb, 0x69, 0x65, 0x56, 0x9b,
+ 0xbf, 0x58, 0x30, 0x5c, 0x1c, 0x2f, 0x83, 0x12, 0xea, 0xff, 0x4d, 0xfa,
+ 0x1a, 0xb1, 0x66, 0x80, 0xd7, 0xd2, 0xca, 0x35, 0xf0, 0x1b, 0xec, 0x38,
+ 0xd7, 0xa4, 0xbb, 0x06, 0x20, 0x67, 0x3d, 0xcf, 0xa9, 0xf7, 0xc9, 0xde,
+ 0x81, 0x0f, 0xf1, 0xdf, 0xbf, 0x2f, 0xcd, 0xfb, 0xf2, 0x3f, 0xff, 0x7c,
+ 0x86, 0x9e, 0x1e, 0x0d, 0xa1, 0x4f, 0x40, 0x9a, 0x8d, 0xae, 0xb8, 0xe9,
+ 0x80, 0x10, 0xa6, 0x9a, 0x68, 0x0f, 0x37, 0x9f, 0x03, 0xa2, 0x2d, 0xcf,
+ 0xf0, 0x3a, 0x22, 0xdc, 0xff, 0x00, 0xff, 0xe2, 0xd1, 0xe0, 0xe0, 0x3c,
+ 0x4c, 0xc9, 0x99, 0xe0, 0xe0, 0x03, 0x10, 0xf2, 0x28, 0x8c, 0x80, 0x87,
+ 0xe0, 0x3a, 0x27, 0x49, 0x6c, 0x7a, 0x60, 0x08, 0x53, 0x69, 0x34, 0x06,
+ 0xf5, 0xb7, 0xfe, 0x07, 0x44, 0x59, 0x7e, 0x07, 0x44, 0x59, 0x78, 0xf5,
+ 0x00, 0x42, 0x9b, 0x49, 0xa0, 0x37, 0xad, 0xbf, 0xf0, 0x3a, 0x22, 0xcb,
+ 0xf0, 0x3a, 0x22, 0xcb, 0xc7, 0xa8, 0x02, 0x14, 0xda, 0x4d, 0x01, 0xbd,
+ 0x6d, 0xff, 0x81, 0xd1, 0x16, 0x5f, 0x81, 0xd1, 0x16, 0x5e, 0x3d, 0x40,
+ 0x10, 0xa6, 0xd2, 0x68, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x88, 0xb2, 0xfc,
+ 0x0e, 0x88, 0xb2, 0xf1, 0xea, 0x00, 0x85, 0x36, 0x93, 0x40, 0x6f, 0x5b,
+ 0x7f, 0xe0, 0x74, 0x45, 0x97, 0xe0, 0x74, 0x45, 0x97, 0x8f, 0x50, 0x04,
+ 0x29, 0xb4, 0x9a, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03,
+ 0xa2, 0x2c, 0xbc, 0x7a, 0x80, 0x21, 0x4d, 0xa4, 0xd0, 0x1b, 0xd6, 0xdf,
+ 0xf8, 0x1d, 0x11, 0x65, 0xf8, 0x1d, 0x11, 0x65, 0xe3, 0xb0, 0x04, 0x29,
+ 0xb4, 0x9a, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2,
+ 0x2c, 0xbc, 0x76, 0x00, 0x85, 0x36, 0x93, 0x40, 0x6f, 0x5b, 0x7f, 0xe0,
+ 0x74, 0x45, 0x97, 0xe0, 0x74, 0x45, 0x97, 0x8e, 0xc0, 0x10, 0xa6, 0xd2,
+ 0x68, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x88, 0xb2, 0xfc, 0x0e, 0x88, 0xb2,
+ 0xf1, 0xd8, 0x02, 0x14, 0xda, 0x4d, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xd1,
+ 0x16, 0x5f, 0x81, 0xd1, 0x16, 0x5e, 0x3b, 0x00, 0x42, 0x9b, 0x49, 0xa0,
+ 0x37, 0xad, 0xbf, 0xf0, 0x3a, 0x22, 0xcb, 0xf0, 0x3a, 0x22, 0xcb, 0xc7,
+ 0xe0, 0x08, 0x53, 0x69, 0x34, 0x06, 0xf5, 0xb7, 0xff, 0xc0, 0xe8, 0x8b,
+ 0x2f, 0xc0, 0xe8, 0x8b, 0x2f, 0x1f, 0x87, 0xa9, 0xb4, 0x9a, 0x03, 0x7a,
+ 0xdb, 0xff, 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2, 0x2c, 0xbc, 0x7e,
+ 0x02, 0xd4, 0xda, 0x4d, 0x01, 0xbd, 0x6d, 0xff, 0xfe, 0x07, 0x44, 0x59,
+ 0x7e, 0x07, 0x44, 0x59, 0x78, 0xec, 0x01, 0x0a, 0x6d, 0x26, 0x80, 0xde,
+ 0xb6, 0xff, 0xc0, 0xe8, 0x8b, 0x2f, 0xc0, 0xe8, 0x8b, 0x2f, 0x1d, 0x80,
+ 0x21, 0x4d, 0xa4, 0xd0, 0x1b, 0xd6, 0xdf, 0xf8, 0x1d, 0x11, 0x65, 0xf8,
+ 0x1d, 0x11, 0x65, 0xe3, 0xb0, 0x04, 0x29, 0xb4, 0x9a, 0x03, 0x7a, 0xdb,
+ 0xff, 0x03, 0xa2, 0x2c, 0xbf, 0x03, 0xa2, 0x2c, 0xbc, 0x75, 0x00, 0x16,
+ 0x0e, 0xdf, 0xed, 0xfb, 0x0f, 0xe0, 0xbe, 0x07, 0x44, 0xf7, 0x3e, 0x07,
+ 0x44, 0xf2, 0xf8, 0x1d, 0x13, 0xdc, 0x03, 0xa2, 0x79, 0x7c, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xe1, 0x09, 0x1f, 0x1f, 0xaa, 0xad, 0x40, 0x0e, 0x2d,
+ 0x2f, 0xb0, 0xff, 0xf6, 0x60, 0x3f, 0xdc, 0xf4, 0x07, 0xd8, 0x2a, 0x21,
+ 0x53, 0x6e, 0x03, 0xcc, 0x4d, 0x1a, 0x4d, 0x34, 0xd3, 0x7e, 0xba, 0x18,
+ 0x0b, 0x9d, 0xef, 0xd9, 0xcf, 0xf1, 0xfb, 0x02, 0x76, 0xdf, 0x18, 0x45,
+ 0x26, 0x6c, 0x44, 0x26, 0xfd, 0x9f, 0xf3, 0xff, 0x48, 0x19, 0x86, 0xdc,
+ 0x9f, 0x6f, 0xfe, 0xf7, 0x71, 0x9e, 0x86, 0x7f, 0xed, 0x5a, 0xf0, 0x35,
+ 0x15, 0xaa, 0xcf, 0x8d, 0x8c, 0x15, 0xdf, 0xd2, 0x0f, 0xfb, 0xc3, 0x90,
+ 0xff, 0x03, 0xc2, 0x04, 0xce, 0xf8, 0xfb, 0xb2, 0x7d, 0x63, 0xad, 0x27,
+ 0x5f, 0xb3, 0xbc, 0x7f, 0x84, 0x5e, 0x00, 0xad, 0xea, 0xe0, 0x37, 0x92,
+ 0x0f, 0x7e, 0xe7, 0x81, 0xf5, 0xd1, 0x19, 0xb4, 0x03, 0xbb, 0x7c, 0xd7,
+ 0xd0, 0x1f, 0xec, 0x38, 0x14, 0x5d, 0x5b, 0x6e, 0xef, 0x7e, 0x32, 0xd6,
+ 0xd4, 0x02, 0x5d, 0x39, 0xed, 0xad, 0x77, 0xe5, 0xc7, 0xe7, 0x97, 0x8c,
+ 0x21, 0xc9, 0x49, 0x9f, 0x4b, 0xc3, 0xfe, 0xd6, 0x86, 0x73, 0x69, 0x7e,
+ 0xfe, 0xb7, 0x1c, 0x97, 0x55, 0x83, 0xd4, 0x9f, 0xc3, 0xd6, 0x66, 0x36,
+ 0xbd, 0xff, 0xea, 0x18, 0xd2, 0x3f, 0x57, 0xb2, 0x9e, 0x76, 0xae, 0xbf,
+ 0xfd, 0x03, 0xdd, 0xf2, 0x72, 0xc7, 0x2f, 0xe2, 0xad, 0x5b, 0xd1, 0xdf,
+ 0x9c, 0xfd, 0xab, 0x50, 0xfa, 0xf4, 0xb9, 0x74, 0x60, 0xb7, 0xc6, 0x16,
+ 0x4c, 0x01, 0x16, 0x76, 0x7f, 0xd9, 0xb1, 0x4f, 0xdd, 0xe1, 0xdf, 0xe3,
+ 0x52, 0x4c, 0xf0, 0x12, 0x2f, 0x50, 0x1f, 0xfd, 0xef, 0x6a, 0x9f, 0x75,
+ 0x6c, 0xf7, 0xfc, 0xeb, 0xda, 0xaf, 0x75, 0x7f, 0xff, 0xc9, 0x37, 0x57,
+ 0x50, 0xfe, 0x7f, 0xe7, 0x17, 0xb7, 0xbd, 0x78, 0xe4, 0x18, 0xc6, 0xff,
+ 0xdf, 0xb7, 0x98, 0xbf, 0x57, 0xde, 0xdb, 0xff, 0x5f, 0xbc, 0xbd, 0xf9,
+ 0xff, 0x66, 0xda, 0x74, 0xf3, 0xbf, 0xaf, 0xf1, 0x9c, 0x98, 0x30, 0x99,
+ 0x37, 0x63, 0xff, 0xe7, 0x4c, 0xdf, 0xed, 0xf1, 0xbf, 0xf4, 0x80, 0xbe,
+ 0x76, 0x72, 0x77, 0x7f, 0x80, 0x3a, 0xad, 0xa5, 0x2d, 0x4f, 0x7d, 0xb4,
+ 0x5b, 0xd3, 0xe0, 0xf9, 0xdf, 0xcf, 0xd1, 0xdc, 0x80, 0xd8, 0x7b, 0x67,
+ 0x46, 0x96, 0xba, 0xe7, 0x10, 0xbd, 0x32, 0x04, 0x1f, 0xe8, 0x38, 0xbf,
+ 0x19, 0xdf, 0xe5, 0x8e, 0x1f, 0xf3, 0x4c, 0x70, 0x6b, 0x4f, 0x84, 0x75,
+ 0x00, 0x36, 0x7a, 0xbe, 0x11, 0xa4, 0x11, 0x9d, 0x53, 0xb8, 0xff, 0x4f,
+ 0xc5, 0x2b, 0x92, 0xe0, 0xff, 0x8f, 0xcf, 0xb4, 0x35, 0x25, 0xf9, 0xeb,
+ 0xcc, 0xc2, 0xea, 0xcf, 0x3d, 0x38, 0xff, 0xfb, 0x3e, 0x37, 0x9b, 0xa1,
+ 0xf4, 0x93, 0x7b, 0xde, 0x7e, 0x1b, 0xbe, 0x33, 0x26, 0x08, 0xaa, 0x76,
+ 0x07, 0xd1, 0x02, 0xdf, 0x7b, 0xcd, 0x48, 0xb5, 0x6e, 0xeb, 0x5f, 0x60,
+ 0x7b, 0xe1, 0x1d, 0x1d, 0x6d, 0xff, 0xaf, 0x9f, 0x14, 0xfc, 0xcc, 0xba,
+ 0x60, 0x07, 0xbd, 0x70, 0x1e, 0x59, 0x30, 0x19, 0x4e, 0x0f, 0xfb, 0xfc,
+ 0x46, 0xfc, 0x05, 0xcf, 0xcb, 0x2a, 0xaa, 0xab, 0xff, 0x5f, 0x78, 0xc6,
+ 0x2b, 0xc0, 0x0b, 0xab, 0xe9, 0xd8, 0xe2, 0xf6, 0x7e, 0x00, 0x49, 0xa5,
+ 0xba, 0x5b, 0xfe, 0xdf, 0x13, 0x6a, 0xe0, 0x2e, 0x45, 0x9d, 0xf3, 0x5a,
+ 0x45, 0x1e, 0xff, 0x70, 0x28, 0x2b, 0x36, 0xdb, 0x73, 0x48, 0xf9, 0xff,
+ 0x0f, 0xb6, 0xfa, 0x80, 0xa2, 0xce, 0xe6, 0xd2, 0x9c, 0x70, 0xf4, 0x41,
+ 0x9b, 0xfa, 0x83, 0xf0, 0xb3, 0xb9, 0x93, 0x49, 0xa3, 0xb1, 0x3c, 0x9f,
+ 0xf8, 0x2c, 0x8c, 0x38, 0xac, 0x44, 0x89, 0xe3, 0xb2, 0xd8, 0x56, 0xd4,
+ 0x57, 0x61, 0xef, 0x7f, 0xa0, 0x3f, 0xfa, 0xdf, 0x75, 0x15, 0xa4, 0xb5,
+ 0x3f, 0xee, 0x7f, 0x6e, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b, 0x8f, 0xb5,
+ 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5, 0xb8, 0xfb,
+ 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b, 0x8f,
+ 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5, 0xb8,
+ 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad, 0x5b,
+ 0x8f, 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda, 0xd5,
+ 0xb8, 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd, 0xad,
+ 0x5b, 0x8f, 0xb5, 0x7d, 0xee, 0xee, 0xee, 0xee, 0xef, 0xe3, 0x2b, 0xda,
+ 0xd5, 0xb8, 0xfb, 0x57, 0xde, 0xee, 0xee, 0xee, 0xee, 0xfe, 0x32, 0xbd,
+ 0xad, 0x5b, 0x8f, 0xb5, 0x56, 0xd7, 0xdd, 0xdd, 0xdd, 0xdd, 0xe4, 0xff,
+ 0x83, 0x8c, 0x55, 0xc0, 0x0a, 0x2b, 0xbb, 0x64, 0x3e, 0xfd, 0x7e, 0x0d,
+ 0x49, 0x07, 0x93, 0xf0, 0x43, 0xf0, 0x87, 0x06, 0x49, 0x07, 0x47, 0x06,
+ 0x49, 0x07, 0xc0, 0x40, 0xff, 0x5f, 0xbc, 0xf1, 0x9b, 0x3d, 0x8a, 0xc5,
+ 0x67, 0xb3, 0xd8, 0xac, 0x56, 0xee, 0x21, 0x53, 0x3d, 0x1a, 0xe6, 0x8c,
+ 0xd2, 0x7f, 0xd2, 0x2b, 0x15, 0xef, 0x80, 0x0a, 0x4d, 0x36, 0xb6, 0x7b,
+ 0x9f, 0xff, 0xed, 0x5e, 0x48, 0x97, 0xdb, 0x8a, 0xdc, 0x56, 0xe0, 0xc8,
+ 0xea, 0xaf, 0xe7, 0xff, 0xeb, 0xbf, 0xcc, 0xb0, 0x01, 0x26, 0x8d, 0xdd,
+ 0x1b, 0x9f, 0xff, 0x61, 0x91, 0xeb, 0x68, 0x7f, 0xf7, 0x2f, 0x17, 0xfc,
+ 0x01, 0xa7, 0xfa, 0xbf, 0xe4, 0xc7, 0xaa, 0x61, 0xb0, 0x00, 0x6f, 0xe6,
+ 0x9a, 0x81, 0xcb, 0x84, 0x3d, 0xbf, 0x80, 0x34, 0xff, 0x57, 0xfc, 0x83,
+ 0xd5, 0x30, 0xd8, 0x30, 0x0d, 0xfc, 0xe6, 0x90, 0x3b, 0x9f, 0x19, 0xef,
+ 0xb7, 0x7e, 0xfb, 0x77, 0x77, 0x00, 0x1a, 0x68, 0xdd, 0xd1, 0xb3, 0xff,
+ 0xed, 0xc6, 0x47, 0xad, 0xc3, 0xff, 0xb9, 0x3b, 0xf6, 0xfe, 0x67, 0xc0,
+ 0x2a, 0x5c, 0x31, 0x00, 0xdd, 0x4a, 0x4f, 0xc1, 0x87, 0x11, 0x18, 0xbb,
+ 0x77, 0x77, 0x77, 0x77, 0x73, 0x2b, 0x57, 0x87, 0x79, 0xbc, 0xec, 0x56,
+ 0xe0, 0x0d, 0x1e, 0x74, 0x03, 0xfb, 0x90, 0x2a, 0x39, 0x3d, 0x2c, 0x6a,
+ 0xdb, 0xd8, 0x81, 0x03, 0x0a, 0xee, 0xee, 0xee, 0xee, 0x21, 0x62, 0xe7,
+ 0xc7, 0xb9, 0xb1, 0xf1, 0xcc, 0xed, 0xdd, 0xde, 0x22, 0x5c, 0x47, 0x88,
+ 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xfc, 0x50, 0x88, 0xa8, 0xb8,
+ 0xa8, 0xbf, 0x08, 0x92, 0x73, 0xfe, 0x9f, 0x58, 0x46, 0x2e, 0xfd, 0xf3,
+ 0x0a, 0xd3, 0x3c, 0x21, 0x0a, 0xa4, 0xf7, 0x1f, 0xfd, 0x3f, 0xe3, 0x08,
+ 0x26, 0xb6, 0xb2, 0xd6, 0x4d, 0x78, 0x5f, 0xef, 0x67, 0x57, 0xef, 0xf0,
+ 0xbb, 0x0c, 0x04, 0xe7, 0x83, 0xf4, 0x43, 0xe9, 0x28, 0x76, 0x64, 0x84,
+ 0x5f, 0x76, 0x30, 0x4f, 0x56, 0xe7, 0xcf, 0xfd, 0xf6, 0x88, 0xc4, 0xa7,
+ 0x3e, 0x46, 0xd6, 0xfa, 0x73, 0x49, 0x69, 0xa9, 0xf4, 0xef, 0x5f, 0xe1,
+ 0xbd, 0xfa, 0xb8, 0xf9, 0xe3, 0x33, 0xed, 0xbd, 0xb1, 0xfc, 0x5a, 0x07,
+ 0x5d, 0xd7, 0x68, 0x5d, 0xcd, 0xfd, 0x36, 0xa6, 0x93, 0x09, 0x5a, 0xfd,
+ 0xcf, 0x26, 0x7a, 0x80, 0xdf, 0xb4, 0xcd, 0x1c, 0x93, 0xc0, 0xdf, 0xb3,
+ 0x2f, 0xa6, 0x9c, 0xc8, 0x73, 0x54, 0xa8, 0xf2, 0x67, 0xcd, 0x9f, 0x4b,
+ 0x87, 0x57, 0xb4, 0x0f, 0xe8, 0x0b, 0x87, 0x53, 0x57, 0x9f, 0xcc, 0xc7,
+ 0xbf, 0x19, 0xf0, 0xea, 0x49, 0x35, 0x69, 0x2d, 0x2d, 0xd0, 0x17, 0xe0,
+ 0xd3, 0xe8, 0x82, 0x81, 0xb0, 0x93, 0xc3, 0xb4, 0x48, 0x79, 0x93, 0x7f,
+ 0xef, 0xb4, 0x27, 0x94, 0x67, 0xde, 0xed, 0xab, 0x40, 0x36, 0x7f, 0xb7,
+ 0xfd, 0x69, 0xcc, 0xff, 0xef, 0xc6, 0x40, 0x55, 0xdd, 0x76, 0x85, 0xdd,
+ 0xa3, 0xd1, 0xa5, 0x8c, 0x2e, 0x98, 0x93, 0xc5, 0xd7, 0xa1, 0x6f, 0xd9,
+ 0xd3, 0xac, 0x5f, 0x5f, 0x6a, 0x3d, 0x69, 0x9a, 0x68, 0x77, 0x99, 0x1a,
+ 0xba, 0xdc, 0x07, 0xff, 0x8b, 0xbf, 0x45, 0xfe, 0xc6, 0x0d, 0xf2, 0xdb,
+ 0xe1, 0xff, 0x76, 0x01, 0xfb, 0x29, 0xda, 0x40, 0xd4, 0x9f, 0xc9, 0xe3,
+ 0x0b, 0xe0, 0x05, 0xdf, 0x2f, 0xa6, 0x22, 0x7e, 0xe6, 0x46, 0xf7, 0x07,
+ 0x67, 0xfa, 0x84, 0xd4, 0x3f, 0xcf, 0x7d, 0x6a, 0x55, 0x1f, 0xbf, 0xc4,
+ 0x35, 0x7c, 0x04, 0x3e, 0x91, 0x0d, 0xee, 0x67, 0x60, 0xaa, 0x4d, 0xbc,
+ 0xcf, 0x00, 0xef, 0xfc, 0x61, 0x09, 0x3d, 0x34, 0xb0, 0x7d, 0x68, 0x2d,
+ 0xfa, 0x2d, 0x95, 0xa7, 0x58, 0xbe, 0xb2, 0xf8, 0x60, 0x2a, 0x3d, 0x69,
+ 0xa2, 0x00, 0x35, 0x75, 0xaf, 0x43, 0xfe, 0xd9, 0x17, 0xfb, 0x1b, 0xb0,
+ 0x26, 0x79, 0xac, 0xbf, 0xfc, 0x09, 0xe4, 0xb6, 0xfa, 0x7f, 0xe9, 0xd2,
+ 0x9a, 0xfd, 0x1f, 0xc7, 0xbb, 0x93, 0xe4, 0xfc, 0x64, 0x2f, 0xaf, 0xbe,
+ 0x0f, 0xfb, 0xc4, 0x1b, 0xc3, 0x28, 0xd2, 0xdf, 0x77, 0x84, 0x90, 0x09,
+ 0xfd, 0xd5, 0xdb, 0xe3, 0xff, 0xcb, 0x29, 0x9e, 0x69, 0xb3, 0x0d, 0x65,
+ 0x66, 0x3a, 0xac, 0x33, 0x9f, 0xf4, 0xbb, 0xef, 0x9f, 0x2f, 0xf5, 0x03,
+ 0x52, 0x55, 0x31, 0xe6, 0x4d, 0xeb, 0xcb, 0x5f, 0x08, 0xb0, 0x0f, 0xaf,
+ 0x28, 0xa8, 0xc6, 0xf7, 0xd8, 0xff, 0x89, 0x96, 0xb3, 0x93, 0xc0, 0x14,
+ 0x6e, 0xc0, 0x82, 0x7f, 0x38, 0xfd, 0x0a, 0xef, 0x01, 0x2f, 0x9d, 0x1e,
+ 0xab, 0x63, 0x2a, 0xf8, 0x95, 0xfd, 0xff, 0x6c, 0xc6, 0x81, 0x31, 0x32,
+ 0x66, 0x72, 0x3a, 0x8d, 0x93, 0x2f, 0x9e, 0xc8, 0x68, 0xe5, 0x3b, 0xfe,
+ 0xc3, 0x38, 0xd7, 0x6d, 0x8f, 0x15, 0x29, 0x82, 0x36, 0x98, 0xc1, 0x77,
+ 0xe0, 0x3a, 0x17, 0x11, 0x8a, 0xbf, 0xeb, 0x51, 0xbb, 0x23, 0xcc, 0x3e,
+ 0x48, 0x30, 0x47, 0xfe, 0x08, 0x49, 0x5f, 0xa4, 0xa3, 0xfd, 0x58, 0x2c,
+ 0x6c, 0x48, 0xb0, 0xa4, 0x0e, 0x0d, 0xe9, 0x15, 0x76, 0x85, 0xb4, 0x42,
+ 0xc8, 0x3c, 0x0c, 0x04, 0x70, 0x29, 0xd7, 0x2f, 0x33, 0xfb, 0xf1, 0x67,
+ 0xe0, 0xe4, 0x98, 0x10, 0xd8, 0xe3, 0xe7, 0x05, 0x02, 0x96, 0x90, 0xc6,
+ 0x66, 0x07, 0x07, 0x30, 0xdb, 0xeb, 0x2f, 0xc2, 0x62, 0xdc, 0x2b, 0x01,
+ 0xee, 0x00, 0x02, 0x00, 0xc6, 0x20, 0xea, 0xfb, 0x36, 0x5a, 0x15, 0x4d,
+ 0x95, 0x4f, 0x4d, 0xfa, 0x78, 0x48, 0x4f, 0x8f, 0xc3, 0xc8, 0xb5, 0x14,
+ 0xd7, 0x81, 0x1c, 0x75, 0x98, 0x8a, 0xea, 0x84, 0x26, 0x48, 0x39, 0xe2,
+ 0x67, 0x3f, 0xf1, 0x42, 0x22, 0xa2, 0xe2, 0xa2, 0xfc, 0x62, 0x98, 0x33,
+ 0x20, 0xef, 0x02, 0x3d, 0xfb, 0xeb, 0x67, 0x9d, 0x53, 0x82, 0xf5, 0x7a,
+ 0xbb, 0x27, 0xeb, 0xdb, 0x09, 0xb1, 0x6f, 0x5e, 0x30, 0x9f, 0xd2, 0x61,
+ 0xb2, 0x0e, 0xcf, 0xc0, 0x6f, 0xfc, 0x66, 0xae, 0xfc, 0xd7, 0xc0, 0xd3,
+ 0x5f, 0x01, 0xfe, 0xb6, 0xfa, 0x46, 0x7b, 0xb4, 0x5f, 0x5e, 0x4b, 0x66,
+ 0x2b, 0x6e, 0x48, 0xf7, 0xe8, 0x86, 0x93, 0x1b, 0x06, 0xbc, 0x67, 0x9a,
+ 0x77, 0x82, 0xfe, 0x01, 0x1e, 0xbe, 0xd9, 0x2f, 0x86, 0xc9, 0x0d, 0xa9,
+ 0x64, 0xe8, 0x77, 0x3a, 0x83, 0xce, 0x60, 0x10, 0x3e, 0x88, 0x76, 0xf9,
+ 0x78, 0x1f, 0xe9, 0xa9, 0x4e, 0x93, 0xa4, 0x45, 0x6f, 0xae, 0x3d, 0x1f,
+ 0x84, 0x7f, 0x80, 0x6d, 0x7d, 0x85, 0xa5, 0x50, 0x2e, 0xdd, 0xff, 0xd3,
+ 0xbf, 0xaa, 0xdb, 0x25, 0xe7, 0xfa, 0xe4, 0x6a, 0xbd, 0xc8, 0xde, 0xfd,
+ 0x0e, 0x56, 0x95, 0x35, 0xdd, 0xba, 0x04, 0x2f, 0xd6, 0x4e, 0x5e, 0x33,
+ 0xe0, 0x47, 0xbf, 0x7d, 0x7d, 0x2f, 0x86, 0xc9, 0xf4, 0x1f, 0x1d, 0xbe,
+ 0x5e, 0x07, 0xfa, 0x6a, 0xce, 0x40, 0x77, 0xff, 0xac, 0x36, 0xef, 0x36,
+ 0x72, 0x02, 0xee, 0xff, 0x80, 0xbe, 0xf8, 0xcc, 0x99, 0x92, 0xde, 0xff,
+ 0x66, 0xfd, 0x6c, 0xf0, 0x40, 0x6d, 0xbf, 0xc0, 0x06, 0xb0, 0x1a, 0xca,
+ 0xc0, 0x82, 0xea, 0xa5, 0xf7, 0x0f, 0x59, 0x19, 0x0d, 0x19, 0xf9, 0xe0,
+ 0x6a, 0xc3, 0xf8, 0xd9, 0xc8, 0x2a, 0xd9, 0x27, 0xff, 0xf0, 0x96, 0xf1,
+ 0x78, 0x90, 0x89, 0x9f, 0xee, 0xf8, 0x60, 0x13, 0x29, 0x66, 0x6d, 0x0b,
+ 0x2f, 0xdd, 0x13, 0xe1, 0x3b, 0x78, 0xd8, 0x59, 0xfc, 0x1c, 0x15, 0x8a,
+ 0xe2, 0xfc, 0x1f, 0xf3, 0xb3, 0xe2, 0x63, 0x71, 0x1f, 0xc4, 0x7c, 0x47,
+ 0xf1, 0x18, 0x73, 0xff, 0x30, 0x88, 0x01, 0x91, 0x6d, 0xdf, 0xbf, 0xeb,
+ 0x40, 0x03, 0x3b, 0x55, 0x5f, 0xaf, 0xf6, 0x9b, 0x6e, 0x79, 0x9f, 0xfa,
+ 0xff, 0xf9, 0x27, 0xff, 0x07, 0x83, 0x97, 0x09, 0x18, 0x56, 0x20, 0x1d,
+ 0xf5, 0x07, 0xc0, 0x00, 0x1d, 0xdd, 0x6d, 0xcf, 0x8f, 0xff, 0x58, 0x0a,
+ 0x0e, 0x5a, 0xf9, 0xdb, 0x5f, 0x6f, 0x82, 0x82, 0xac, 0xce, 0x3b, 0xe1,
+ 0xff, 0x09, 0x40, 0x0e, 0xf6, 0xb0, 0x0b, 0x04, 0xc8, 0xc9, 0x2c, 0xff,
+ 0xf7, 0xc0, 0x26, 0x66, 0x25, 0x42, 0x93, 0xb1, 0xd8, 0x85, 0x40, 0xc3,
+ 0x0c, 0x0e, 0x00, 0x80, 0x41, 0x08, 0x3c, 0xc2, 0xb1, 0x55, 0xff, 0xe1,
+ 0x27, 0x80, 0x01, 0x54, 0x8c, 0xa4, 0x69, 0x97, 0xfa, 0xf8, 0x60, 0x00,
+ 0x6d, 0xe8, 0x5a, 0x67, 0x5d, 0xb8, 0x64, 0x03, 0x1e, 0xc3, 0x90, 0x47,
+ 0x7d, 0x2f, 0xf9, 0x82, 0xa1, 0xec, 0x2d, 0x55, 0x9c, 0x5a, 0xf8, 0x01,
+ 0x0a, 0xdf, 0xcb, 0x47, 0xfc, 0x81, 0x04, 0x73, 0xe3, 0x99, 0x1d, 0x81,
+ 0x0f, 0xa3, 0xe7, 0xf8, 0x25, 0xe2, 0x9f, 0x26, 0xff, 0xfb, 0x2f, 0xf8,
+ 0xb7, 0x99, 0xec, 0xd9, 0x98, 0x00, 0x10, 0x2c, 0xfc, 0x99, 0x3d, 0xfe,
+ 0x3b, 0xf7, 0x60, 0xf8, 0x34, 0x7e, 0x8e, 0xde, 0xab, 0x6e, 0x4f, 0xff,
+ 0x68, 0x26, 0x2e, 0xfb, 0x74, 0x3f, 0xc4, 0xff, 0x70, 0x60, 0x6c, 0xd2,
+ 0x6b, 0x4e, 0xf9, 0xff, 0xff, 0xf8, 0xf2, 0x97, 0xe0, 0x2d, 0x6b, 0x57,
+ 0x75, 0xcf, 0xff, 0x83, 0x9e, 0x7f, 0x8a, 0x11, 0x15, 0x17, 0x15, 0x17,
+ 0xe3, 0xaf, 0x61, 0xce, 0xa9, 0xe1, 0x99, 0xec, 0xfe, 0x7f, 0xff, 0xf1,
+ 0x8c, 0x43, 0x4d, 0x59, 0xf7, 0xde, 0xc3, 0x9d, 0x52, 0x5b, 0xf1, 0x04,
+ 0xb4, 0x42, 0x51, 0x19, 0xb4, 0x7e, 0x9a, 0x09, 0xdf, 0xe6, 0xe1, 0x06,
+ 0x8d, 0x57, 0xdb, 0x86, 0x6a, 0xf9, 0xaf, 0x6b, 0x30, 0xe1, 0x43, 0x01,
+ 0x1c, 0x6a, 0xbe, 0x7f, 0xdf, 0xfd, 0xe2, 0x20, 0xe5, 0xf3, 0x6a, 0xf7,
+ 0xfd, 0xba, 0x6d, 0xae, 0xbe, 0xde, 0xf9, 0xda, 0x97, 0xa6, 0x0d, 0xa1,
+ 0xd6, 0x86, 0xda, 0xe9, 0x61, 0x34, 0x0c, 0x43, 0x5d, 0x67, 0xdf, 0x33,
+ 0x78, 0x6c, 0x1e, 0x22, 0xdc, 0xff, 0x1f, 0xf0, 0x94, 0x31, 0xeb, 0xd7,
+ 0x2f, 0x6b, 0x13, 0xff, 0x83, 0xd9, 0x87, 0x0c, 0x0e, 0x5f, 0xf3, 0x5b,
+ 0x7f, 0xf7, 0x6c, 0x02, 0x7f, 0xd5, 0xdb, 0x7f, 0xfb, 0xfd, 0x4c, 0xe0,
+ 0xfe, 0x6f, 0x11, 0x32, 0xd7, 0x7f, 0xd2, 0x77, 0x7c, 0xbe, 0xfe, 0xf9,
+ 0xfa, 0x1b, 0x4e, 0x5f, 0x2f, 0x44, 0xe9, 0xb9, 0xb9, 0x1f, 0x9c, 0x87,
+ 0xef, 0x0d, 0x80, 0xc0, 0x6a, 0xaf, 0xfe, 0xc9, 0x88, 0xa3, 0xff, 0xf0,
+ 0x94, 0x18, 0x16, 0xf4, 0x48, 0xcd, 0x0b, 0x14, 0x48, 0x6b, 0x1d, 0x53,
+ 0x31, 0xab, 0xa1, 0x91, 0x3a, 0x03, 0x88, 0x66, 0xc1, 0xb6, 0xa1, 0x8c,
+ 0xc5, 0x10, 0x5d, 0x64, 0x11, 0x4b, 0x4a, 0x37, 0xbc, 0x3c, 0xf1, 0xb3,
+ 0x13, 0xf1, 0x05, 0xe0, 0x70, 0x1c, 0x22, 0x00, 0x7b, 0xbb, 0xe2, 0xef,
+ 0xff, 0x88, 0x30, 0x9b, 0xd2, 0x73, 0xdd, 0xff, 0xf3, 0xeb, 0xcf, 0xcd,
+ 0xb6, 0xdf, 0xbe, 0x0a, 0x06, 0xa0, 0x08, 0xb6, 0xd2, 0x4c, 0xff, 0xe5,
+ 0x80, 0xa0, 0x2e, 0xdf, 0x46, 0x7e, 0x71, 0xbf, 0xf8, 0x16, 0x26, 0x27,
+ 0x09, 0xc4, 0x07, 0x54, 0xcf, 0xad, 0x7e, 0xb5, 0x98, 0x3d, 0xad, 0xec,
+ 0x6d, 0x85, 0x30, 0x02, 0x68, 0xd1, 0xe9, 0x7b, 0xeb, 0xbb, 0x81, 0x2c,
+ 0xd1, 0x49, 0xac, 0x3d, 0xe1, 0xbe, 0x00, 0x0e, 0x8a, 0xba, 0x7b, 0x35,
+ 0xee, 0xff, 0xaa, 0x0c, 0x14, 0x28, 0xdd, 0x74, 0xb7, 0xf3, 0x7f, 0xfa,
+ 0xf4, 0x4f, 0xf0, 0x73, 0xc2, 0x7c, 0x23, 0x25, 0x2d, 0x3b, 0xe7, 0xff,
+ 0xff, 0xe0, 0x11, 0x6a, 0x4f, 0xae, 0xc7, 0xfb, 0xc3, 0x56, 0x34, 0xad,
+ 0x2f, 0x9f, 0x00, 0x24, 0x19, 0xd5, 0xb8, 0x9b, 0x78, 0x0b, 0x34, 0xac,
+ 0xce, 0xd4, 0xe7, 0xfc, 0x1c, 0xf1, 0x3f, 0x14, 0x22, 0x2a, 0x2e, 0x2a,
+ 0x2f, 0xc4, 0xc7, 0x5b, 0x3b, 0xd9, 0x9e, 0xb3, 0x7b, 0x3e, 0x10, 0xf0,
+ 0x87, 0x84, 0x3c, 0x21, 0x3f, 0x15, 0x80, 0x1b, 0x7e, 0x97, 0x0e, 0x7b,
+ 0xfc, 0x81, 0xad, 0xfa, 0xe2, 0xfb, 0x37, 0xee, 0xf4, 0x17, 0xb2, 0x9e,
+ 0xb7, 0x93, 0xfd, 0xdd, 0x70, 0x2f, 0xd0, 0x4f, 0x00, 0x21, 0xeb, 0xfa,
+ 0xcf, 0xff, 0xfb, 0xff, 0xff, 0x00, 0x0a, 0x6d, 0x12, 0x66, 0x79, 0x09,
+ 0x15, 0x66, 0x06, 0xb1, 0x72, 0x26, 0xfc, 0x4e, 0x00, 0x2e, 0x61, 0xcb,
+ 0xaa, 0x48, 0xe8, 0x7b, 0xff, 0xf2, 0x14, 0x8f, 0x67, 0xb7, 0x61, 0xc5,
+ 0xdc, 0x02, 0xfe, 0x00, 0x59, 0x07, 0xfa, 0x44, 0x63, 0xab, 0xd5, 0x41,
+ 0xdf, 0xd6, 0xf7, 0xef, 0x3f, 0xff, 0xef, 0xeb, 0x8a, 0x82, 0x80, 0x15,
+ 0x65, 0x24, 0x54, 0x22, 0xff, 0xbe, 0x0b, 0x4e, 0xde, 0x74, 0x8d, 0xfd,
+ 0xeb, 0x40, 0xd9, 0x9f, 0xbd, 0xeb, 0xb7, 0xfa, 0xf7, 0xe7, 0x89, 0xff,
+ 0x14, 0x22, 0x2a, 0x2e, 0x2a, 0x2f, 0xc4, 0xcf, 0x59, 0xbd, 0x99, 0xeb,
+ 0x37, 0xb3, 0xf8, 0x9c, 0x33, 0xf3, 0x60, 0x22, 0x3c, 0xd8, 0x1b, 0xff,
+ 0xef, 0x07, 0x65, 0xf3, 0xff, 0x7b, 0x7d, 0x13, 0x13, 0x88, 0xf3, 0x7c,
+ 0xff, 0xf8, 0x7c, 0x9c, 0x38, 0xc3, 0x49, 0x4c, 0xe4, 0xb6, 0xbf, 0xff,
+ 0x7b, 0xf8, 0x99, 0x43, 0x88, 0xfe, 0x61, 0x10, 0x04, 0x24, 0xd7, 0x38,
+ 0x0f, 0xe7, 0xba, 0x31, 0x94, 0x9e, 0xe1, 0xff, 0x3f, 0xf3, 0xc4, 0xfc,
+ 0x50, 0x88, 0xa8, 0xb8, 0xa8, 0xbf, 0x13, 0x3d, 0x66, 0xf6, 0x67, 0xac,
+ 0xd5, 0xa6, 0x7e, 0x19, 0x88, 0x86, 0x78, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0x84, 0x24, 0x0f, 0xa8, 0x09, 0x08, 0x67, 0x27, 0xf0, 0x12, 0x3e,
+ 0x43, 0x40, 0x09, 0xaa, 0x7f, 0x0c, 0x47, 0xdf, 0xc7, 0xe4, 0xf9, 0x60,
+ 0xf2, 0x0e, 0x71, 0x28, 0x15, 0x40, 0x10, 0x47, 0x1a, 0x4c, 0xb7, 0xb7,
+ 0x78, 0x6e, 0x6e, 0xe7, 0x5f, 0xcc, 0x7f, 0xe0, 0x06, 0xab, 0x79, 0x57,
+ 0xfd, 0xdf, 0x07, 0x00, 0xa0, 0x40, 0x97, 0x77, 0x77, 0x77, 0x78, 0x9f,
+ 0x11, 0xe2, 0x3f, 0x84, 0x45, 0x40, 0x37, 0xbb, 0x03, 0xcf, 0xa0, 0x01,
+ 0x6a, 0x6e, 0xab, 0xc7, 0x17, 0x4c, 0xff, 0x7f, 0xef, 0xb6, 0x70, 0x29,
+ 0x51, 0x6d, 0xc1, 0x47, 0xbf, 0x8f, 0xf5, 0xf0, 0x3c, 0xf1, 0xfe, 0xdd,
+ 0xc4, 0xc5, 0xff, 0x8a, 0x11, 0x07, 0x75, 0x3c, 0x54, 0x56, 0x2b, 0xc0,
+ 0xf0, 0x07, 0xd1, 0x31, 0x58, 0xac, 0x1f, 0x29, 0x2d, 0x96, 0xc5, 0x60,
+ 0x7d, 0x20, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x88, 0x9a, 0xe3, 0x20,
+ 0x00, 0x88, 0xe0, 0x38, 0x43, 0x94, 0x36, 0x1a, 0x27, 0x0a, 0x16, 0x27,
+ 0xe4, 0xe0, 0x5f, 0xfe, 0x06, 0x2c, 0x5b, 0x93, 0x69, 0xd6, 0xf6, 0x51,
+ 0x01, 0x92, 0xa0, 0x03, 0xe7, 0xb0, 0x00, 0x10, 0x02, 0xff, 0xbd, 0xe0,
+ 0x03, 0xe1, 0xcd, 0x2f, 0x14, 0x65, 0xb9, 0x7c, 0x80, 0x80, 0x7c, 0x5b,
+ 0xe0, 0x15, 0x07, 0xee, 0x26, 0x31, 0xb1, 0xc1, 0x9f, 0x09, 0x2d, 0x23,
+ 0xf7, 0xb1, 0xc6, 0x07, 0xe3, 0x5c, 0x20, 0x9c, 0x43, 0xc8, 0x0c, 0xdd,
+ 0x4b, 0x00, 0x01, 0x00, 0x10, 0x00, 0x80, 0x06, 0x80, 0x0c, 0x81, 0xbc,
+ 0xb3, 0x14, 0xe3, 0x20, 0x02, 0x00, 0x02, 0x7d, 0x60, 0x05, 0x00, 0x1b,
+ 0x81, 0xa1, 0x22, 0x20, 0x00, 0x10, 0x21, 0x00, 0x14, 0x28, 0x00, 0x88,
+ 0xff, 0xbf, 0x1e, 0xc0, 0x00, 0x40, 0x68, 0x00, 0x0b, 0xb0, 0x1e, 0x00,
+ 0x26, 0xe7, 0x87, 0x80, 0x00, 0x81, 0x18, 0x00, 0x70, 0xa0, 0x02, 0x29,
+ 0x83, 0xc0, 0x00, 0x40, 0x68, 0x00, 0x0a, 0x12, 0x00, 0x26, 0x98, 0x60,
+ 0x00, 0x08, 0x02, 0x80, 0x04, 0x00, 0x3c, 0x00, 0x65, 0x30, 0xc0, 0x00,
+ 0x28, 0x00, 0x18, 0x01, 0x00, 0x02, 0x29, 0x80, 0xdc, 0x67, 0xa8, 0x01,
+ 0xc0, 0xec, 0xd0, 0x3a, 0x0d, 0x7d, 0xbb, 0xc4, 0x11, 0x80, 0xe5, 0x72,
+ 0x08, 0x08, 0x30, 0x8b, 0xc8, 0x6e, 0x80, 0x03, 0x31, 0x38, 0x72, 0x7e,
+ 0x20, 0x47, 0x8f, 0x11, 0x03, 0x73, 0x5b, 0x48, 0xfe, 0x47, 0x3e, 0x28,
+ 0x6e, 0xf8, 0x3f, 0xff, 0xf5, 0x70, 0x8e, 0x03, 0xd9, 0x78, 0x1e, 0xf4,
+ 0x81, 0xb4, 0xf7, 0x4e, 0x5a, 0x4f, 0xff, 0xfb, 0x60, 0x89, 0xad, 0xaa,
+ 0x97, 0x8f, 0xf7, 0xec, 0x48, 0x90, 0x52, 0x19, 0x17, 0x02, 0xef, 0xcf,
+ 0xa9, 0x2f, 0xbf, 0xfb, 0xfc, 0x01, 0x20, 0xba, 0x93, 0x71, 0x35, 0xf8,
+ 0x4a, 0xce, 0x56, 0x78, 0x9c, 0xff, 0xc2, 0x22, 0x38, 0x00, 0xbd, 0x2a,
+ 0x54, 0x9d, 0x1f, 0xef, 0xf9, 0xe0, 0x02, 0xf4, 0xa9, 0x52, 0xe8, 0xff,
+ 0x7f, 0xcc, 0x21, 0x9b, 0x9b, 0x8b, 0xff, 0xd0, 0x01, 0x15, 0xee, 0x75,
+ 0x6f, 0x28, 0xdb, 0xd2, 0xe8, 0x88, 0xff, 0x70, 0xfb, 0x93, 0xf8, 0x10,
+ 0x3d, 0xc0, 0x09, 0xa6, 0xe9, 0xd9, 0xbf, 0xed, 0xac, 0x7f, 0xcf, 0x99,
+ 0xab, 0x7f, 0xff, 0xb7, 0x8f, 0xde, 0x97, 0x55, 0x2f, 0xf0, 0x6b, 0x8a,
+ 0xc5, 0x45, 0xc5, 0x45, 0xc2, 0x78, 0x0b, 0x00, 0x02, 0x21, 0x49, 0x24,
+ 0x92, 0x49, 0x24, 0x0f, 0x37, 0x81, 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee,
+ 0x70, 0x7f, 0x03, 0x80, 0x01, 0x50, 0x05, 0x07, 0xdc, 0xe0, 0xff, 0x3c,
+ 0x4e, 0x7f, 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0x47, 0x88, 0xf9,
+ 0xfc, 0x47, 0x9b, 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x03, 0x99, 0x72, 0x04,
+ 0xb5, 0x57, 0x45, 0x2a, 0x3a, 0xff, 0x7e, 0x65, 0x1c, 0x20, 0x1f, 0xf0,
+ 0xf2, 0x02, 0x54, 0xde, 0x00, 0xf8, 0x6c, 0x8d, 0x93, 0x84, 0xff, 0xbe,
+ 0x00, 0x63, 0x32, 0x12, 0x39, 0xce, 0xac, 0x27, 0x25, 0x7d, 0xe1, 0xcd,
+ 0x80, 0x3b, 0xff, 0xf0, 0x96, 0x00, 0x09, 0x99, 0x18, 0x94, 0x22, 0x97,
+ 0x9c, 0xd1, 0x64, 0x34, 0xdc, 0x3b, 0x19, 0x20, 0x01, 0x5c, 0xe3, 0x9b,
+ 0x92, 0x20, 0xd5, 0xc0, 0x4a, 0x93, 0x80, 0x35, 0x0f, 0xb3, 0xb0, 0x70,
+ 0xaf, 0xf7, 0xdf, 0xf4, 0x03, 0xc0, 0x0b, 0x30, 0x7b, 0x88, 0x89, 0xc4,
+ 0x7e, 0x02, 0x04, 0x50, 0x88, 0xa8, 0xb8, 0xa8, 0xb9, 0xa2, 0x1f, 0xff,
+ 0x84, 0xcc, 0x00, 0x29, 0x0f, 0x1c, 0xee, 0x71, 0xc2, 0xbf, 0xc3, 0xd5,
+ 0xee, 0x83, 0x30, 0x00, 0x20, 0xc3, 0x16, 0x4c, 0xcf, 0x00, 0x02, 0xf8,
+ 0x0e, 0x00, 0x10, 0x20, 0xe5, 0x93, 0x38, 0x8b, 0x15, 0xc4, 0x78, 0x8f,
+ 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11,
+ 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x53, 0x00, 0x04,
+ 0x19, 0x36, 0xe5, 0x36, 0xe5, 0x26, 0xb4, 0xa6, 0xf8, 0x00, 0xec, 0x25,
+ 0xc2, 0xfb, 0x1c, 0xb2, 0x7d, 0x5e, 0xff, 0xc0, 0xe0, 0x00, 0x44, 0x04,
+ 0x0b, 0xb9, 0xe8, 0x0f, 0x00, 0xc0, 0x0f, 0x20, 0xc4, 0x20, 0x5f, 0x80,
+ 0xe0, 0x00, 0x50, 0x03, 0x03, 0x09, 0x26, 0x7c, 0x71, 0x15, 0x37, 0x7b,
+ 0xcf, 0x13, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f, 0x3f, 0x9f,
+ 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f, 0x3f, 0x9f, 0xf0, 0x10, 0x02,
+ 0x84, 0x45, 0x45, 0xc5, 0x45, 0xf8, 0xa1, 0x00, 0xf9, 0x41, 0xd5, 0x00,
+ 0xf4, 0xa0, 0xea, 0x80, 0x7a, 0x50, 0x75, 0x40, 0x3d, 0x28, 0x3a, 0xa3,
+ 0xc6, 0x10, 0x0f, 0x92, 0x00, 0xf9, 0x20, 0x29, 0x48, 0x0a, 0x52, 0x01,
+ 0x26, 0x90, 0x16, 0xbf, 0x33, 0xb5, 0xba, 0x81, 0x19, 0x17, 0x32, 0x29,
+ 0x48, 0x0a, 0x52, 0x00, 0xf4, 0x90, 0x07, 0xa4, 0x83, 0x38, 0x01, 0x45,
+ 0xc1, 0x91, 0x1f, 0x01, 0x30, 0xf8, 0x3a, 0x84, 0x31, 0x98, 0x92, 0x29,
+ 0x26, 0x45, 0x29, 0x90, 0x0c, 0x7a, 0x2a, 0x6c, 0x3f, 0x90, 0x5a, 0x49,
+ 0x59, 0x1e, 0x40, 0x3e, 0x22, 0x3e, 0x20, 0x97, 0x06, 0x5c, 0x18, 0x44,
+ 0xfe, 0x80, 0xa5, 0x44, 0x79, 0x04, 0x91, 0xe0, 0x13, 0x08, 0xb9, 0x04,
+ 0x9f, 0xc2, 0x31, 0x38, 0xc8, 0xfd, 0x48, 0x3f, 0x52, 0x3f, 0x52, 0x3f,
+ 0x52, 0x61, 0xf0, 0x66, 0x64, 0xb0, 0x54, 0x97, 0x43, 0xf5, 0x23, 0xf5,
+ 0x23, 0xf5, 0x23, 0xf5, 0x29, 0x25, 0x6a, 0x2e, 0x88, 0xff, 0x59, 0x87,
+ 0xd7, 0x8c, 0x8f, 0x58, 0x0d, 0xcc, 0x8f, 0x91, 0x3e, 0x45, 0x05, 0x27,
+ 0xa0, 0xa4, 0xec, 0xba, 0x3e, 0x44, 0x4c, 0x89, 0xf2, 0x20, 0xed, 0x46,
+ 0x9d, 0xa0, 0x30, 0x99, 0xce, 0x4f, 0x0a, 0xe7, 0xf3, 0xf2, 0x61, 0x08,
+ 0x8c, 0x22, 0x28, 0x44, 0x54, 0x5c, 0x54, 0x5c, 0x9f, 0xc3, 0x9e, 0x30,
+ 0x89, 0xc8, 0xa6, 0x2a, 0xf1, 0x0a, 0x9f, 0x0a, 0xd3, 0x38, 0x85, 0x4c,
+ 0x42, 0xa7, 0x30, 0xfc, 0x21, 0xfe, 0x1a, 0x13, 0xeb, 0x2a, 0x5a, 0x0b,
+ 0xe2, 0x00, 0x00, 0x80, 0x90, 0x00, 0x78, 0x82, 0x58, 0x1c, 0x08, 0xc6,
+ 0x5c, 0x87, 0x02, 0x31, 0x97, 0x23, 0xf7, 0x2b, 0xee, 0x4d, 0xe2, 0x3f,
+ 0xfc, 0x16, 0x22, 0xa1, 0x64, 0x1c, 0x70, 0xc0, 0x00, 0xf8, 0x1e, 0x60,
+ 0xc0, 0x00, 0x20, 0x20, 0x00, 0x7e, 0x07, 0x00, 0x43, 0x89, 0xb9, 0x87,
+ 0x00, 0x43, 0x89, 0xb9, 0x81, 0xc0, 0x84, 0x32, 0xe6, 0x1c, 0x08, 0x43,
+ 0x2e, 0x4d, 0xff, 0xfe, 0x83, 0x4d, 0xfc, 0xa9, 0x34, 0x17, 0xc1, 0xc0,
+ 0x00, 0x40, 0x48, 0x00, 0x16, 0x0c, 0x0e, 0xe0, 0x70, 0x23, 0x19, 0x73,
+ 0x0e, 0x04, 0x63, 0x2e, 0x63, 0xf7, 0x35, 0xf7, 0x26, 0xff, 0xff, 0x82,
+ 0xc4, 0x54, 0x09, 0x50, 0x7c, 0x30, 0x00, 0x2a, 0x00, 0xae, 0x86, 0x00,
+ 0x06, 0x40, 0x03, 0x88, 0xe0, 0x70, 0x04, 0x38, 0x9b, 0x98, 0x70, 0x04,
+ 0x38, 0x9b, 0x98, 0x1c, 0x00, 0x10, 0x28, 0xfb, 0x98, 0x70, 0x00, 0x40,
+ 0xa3, 0xee, 0x4d, 0xff, 0xfe, 0x81, 0x63, 0x06, 0x85, 0xd0, 0x7c, 0x40,
+ 0x00, 0x10, 0x12, 0x00, 0x0f, 0x10, 0x12, 0x70, 0x38, 0x11, 0x8c, 0xb9,
+ 0x87, 0x02, 0x31, 0x97, 0x31, 0xfb, 0x9a, 0xfb, 0x93, 0x78, 0x8f, 0xff,
+ 0x05, 0x88, 0x0e, 0x82, 0x22, 0x0f, 0x86, 0x02, 0x00, 0x1c, 0x3a, 0x18,
+ 0x00, 0x1c, 0x06, 0xee, 0x07, 0x00, 0x43, 0x89, 0xb9, 0x87, 0x00, 0x43,
+ 0x89, 0xb9, 0x81, 0xc0, 0x84, 0x32, 0xe6, 0x1c, 0x08, 0x43, 0x2e, 0x4d,
+ 0xe3, 0xff, 0xe0, 0xb2, 0x24, 0x0a, 0x9b, 0x14, 0x30, 0x00, 0x38, 0x33,
+ 0xa1, 0xbb, 0xe0, 0x70, 0x23, 0x11, 0x73, 0x0e, 0x04, 0x62, 0x2e, 0x67,
+ 0x86, 0x78, 0x13, 0xd6, 0x11, 0x32, 0x80, 0x16, 0x37, 0xd2, 0x4b, 0x1c,
+ 0x5f, 0xae, 0x0b, 0xe5, 0xdf, 0x26, 0x5f, 0xbf, 0xce, 0x11, 0x18, 0x23,
+ 0x19, 0x0b, 0xae, 0x04, 0x01, 0xc0, 0x0c, 0x5f, 0xa4, 0xf3, 0xff, 0x05,
+ 0xef, 0xc2, 0xb2, 0x19, 0xb5, 0x2b, 0x15, 0xf2, 0x9e, 0x0b, 0xce, 0xde,
+ 0xed, 0x3f, 0xf8, 0xdf, 0xff, 0xfc, 0xc3, 0x75, 0x6f, 0xcc, 0xa2, 0xaf,
+ 0x9e, 0xfd, 0x2d, 0x6a, 0x06, 0x23, 0x4a, 0xe1, 0xff, 0xdd, 0x83, 0x59,
+ 0x75, 0xdd, 0x9f, 0xfe, 0xff, 0xb8, 0x44, 0x67, 0x11, 0x1e, 0x67, 0xce,
+ 0xda, 0x7c, 0xb6, 0xac, 0x19, 0xbd, 0x01, 0xf3, 0xb0, 0xca, 0xe1, 0x9f,
+ 0x03, 0xf0, 0x1a, 0xba, 0xb8, 0xff, 0x77, 0xa0, 0xe4, 0xb4, 0xea, 0xb7,
+ 0x77, 0xce, 0x82, 0xab, 0xad, 0x87, 0x67, 0xa0, 0x3d, 0x7f, 0xfa, 0x03,
+ 0xe6, 0xe5, 0xce, 0x99, 0x32, 0x35, 0xf7, 0xbf, 0xdd, 0xe8, 0x55, 0x74,
+ 0xb7, 0xb1, 0x1d, 0xf4, 0xa7, 0x84, 0x6f, 0x8a, 0x11, 0x00, 0x15, 0x41,
+ 0x2a, 0x0e, 0xd2, 0x0a, 0x79, 0xe4, 0x1e, 0xaf, 0x41, 0x46, 0x1a, 0x28,
+ 0xdc, 0x49, 0x6e, 0x30, 0x93, 0xd5, 0xe8, 0x2a, 0x82, 0x54, 0x1d, 0xa4,
+ 0x14, 0xf3, 0xc8, 0x3d, 0x5e, 0x82, 0x8c, 0x34, 0x50, 0x88, 0x2c, 0x92,
+ 0x0a, 0x2c, 0xf5, 0x7b, 0xc2, 0x1e, 0x15, 0xa6, 0x79, 0x80, 0x01, 0x23,
+ 0xfb, 0xd6, 0xd6, 0xff, 0x4f, 0xc1, 0xaa, 0x65, 0xff, 0xff, 0xfd, 0x44,
+ 0x7a, 0xfd, 0x46, 0x7f, 0xff, 0xfe, 0x2f, 0x81, 0xc0, 0x00, 0x40, 0x9a,
+ 0x80, 0x00, 0x80, 0x5f, 0xbc, 0x0e, 0x00, 0x02, 0x04, 0xd4, 0x00, 0x04,
+ 0x02, 0xfd, 0xf0, 0x8f, 0xff, 0xff, 0xfc, 0x5f, 0x03, 0x80, 0x00, 0x81,
+ 0x35, 0x00, 0x01, 0x00, 0xbf, 0x78, 0x1c, 0x00, 0x04, 0x09, 0xa8, 0x00,
+ 0x08, 0x05, 0xfb, 0xe1, 0x1f, 0x08, 0x84, 0x55, 0x7b, 0xa6, 0x7c, 0x17,
+ 0x79, 0x6e, 0x0d, 0x74, 0x02, 0x52, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xa8, 0x81, 0x60, 0x10, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x5f, 0xf9, 0x8f, 0xb0, 0x60, 0x8f, 0x7d, 0xa1, 0x98, 0x98,
+ 0xaf, 0xff, 0xff, 0xff, 0x14, 0x12, 0x83, 0x8d, 0x25, 0x90, 0x5c, 0x6a,
+ 0xdd, 0x61, 0xc1, 0x66, 0x12, 0xbf, 0xda, 0x77, 0xf6, 0x1c, 0x94, 0x5b,
+ 0x62, 0x9c, 0x83, 0x9e, 0xd3, 0x4a, 0x41, 0xcf, 0x15, 0xff, 0xfc, 0x31,
+ 0xfa, 0xd8, 0x3f, 0x8b, 0x27, 0x0c, 0xfe, 0x34, 0x88, 0xd2, 0x5f, 0xae,
+ 0x33, 0x49, 0x9f, 0x3f, 0xd0, 0x60, 0x57, 0x71, 0x61, 0xf6, 0x96, 0x09,
+ 0x98, 0x36, 0xc9, 0x46, 0x7a, 0x7a, 0x5a, 0x18, 0x1e, 0xf8, 0xd5, 0x2b,
+ 0xdf, 0x7f, 0xff, 0xc3, 0x1c, 0x30, 0x7f, 0xf8, 0x49, 0x60, 0x87, 0xdd,
+ 0x96, 0x32, 0xf0, 0xcb, 0xaa, 0x7d, 0x86, 0x2d, 0x0f, 0x93, 0x7e, 0x08,
+ 0x0b, 0x91, 0xb4, 0xf8, 0xed, 0x82, 0x5f, 0xff, 0xfc, 0x43, 0x09, 0x38,
+ 0x38, 0x6c, 0x18, 0xe8, 0x35, 0xf4, 0xd3, 0xe3, 0xb6, 0xe2, 0x30, 0xdc,
+ 0xf8, 0x6b, 0x8e, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2, 0x05,
+ 0x80, 0x95, 0xf3, 0xeb, 0xbe, 0x29, 0x74, 0xf9, 0x71, 0x81, 0xaf, 0x0d,
+ 0x78, 0x6b, 0x83, 0x1f, 0xff, 0xc2, 0x1f, 0xef, 0xfc, 0xdf, 0xe4, 0x5f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0xe2, 0x11, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x7f,
+ 0xf5, 0xff, 0x5f, 0xff, 0xde, 0x19, 0x98, 0xfc, 0x00, 0xf1, 0x55, 0xa3,
+ 0xe4, 0xff, 0xd1, 0x3c, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20,
+ 0xee, 0x08, 0x3e, 0x9f, 0xa9, 0x3f, 0x12, 0x11, 0xc1, 0x0c, 0x51, 0x00,
+ 0x03, 0x6a, 0xfd, 0xd2, 0xd3, 0xf9, 0x57, 0x20, 0xa1, 0x31, 0xce, 0x9c,
+ 0x80, 0xc5, 0x53, 0x33, 0x0f, 0xa3, 0xc0, 0x11, 0xfe, 0xb7, 0xb1, 0x46,
+ 0xa7, 0xca, 0x28, 0xa0, 0x0a, 0x87, 0xdb, 0xcc, 0x6e, 0xda, 0xc9, 0x7c,
+ 0x12, 0xe8, 0x86, 0x32, 0x6f, 0xfd, 0xf5, 0xb0, 0x34, 0xae, 0x4f, 0x03,
+ 0x87, 0xf1, 0x22, 0xfe, 0x0d, 0x63, 0x30, 0xa8, 0xa8, 0x6a, 0x10, 0x6e,
+ 0xd7, 0xda, 0x67, 0xe0, 0x28, 0x31, 0x05, 0x54, 0x1b, 0xb3, 0xdb, 0x1f,
+ 0xdf, 0x8f, 0x21, 0xe2, 0x73, 0xf9, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xcd,
+ 0xfa, 0xe4, 0xcc, 0x1e, 0xc6, 0x70, 0x00, 0xcd, 0xb6, 0xf8, 0xa6, 0xe7,
+ 0x34, 0xb2, 0x34, 0x64, 0x57, 0x79, 0xfa, 0x0e, 0x41, 0x23, 0x6a, 0xa5,
+ 0x76, 0xb0, 0x04, 0x72, 0x6d, 0x20, 0x99, 0x85, 0xa4, 0x2d, 0x47, 0x3a,
+ 0x8c, 0x1e, 0x12, 0x67, 0xf3, 0xff, 0xff, 0xf9, 0x82, 0xab, 0xfe, 0xa7,
+ 0x38, 0x27, 0x2e, 0x01, 0x23, 0xf2, 0x9f, 0xdc, 0xc1, 0x63, 0xf5, 0x7a,
+ 0x75, 0xb8, 0x01, 0x97, 0xdd, 0x43, 0xe3, 0xd6, 0xb4, 0xaf, 0xa0, 0x3f,
+ 0xc5, 0xf7, 0x61, 0xf8, 0x0c, 0xdf, 0xf9, 0xfe, 0x08, 0x0b, 0xf0, 0x3e,
+ 0xef, 0x03, 0xf7, 0x9d, 0xff, 0xff, 0xff, 0xcd, 0x1f, 0x0f, 0xfc, 0x24,
+ 0x20, 0x3b, 0x46, 0x40, 0x30, 0x84, 0xd0, 0x6d, 0xa8, 0x18, 0x3f, 0x00,
+ 0x3b, 0x46, 0x40, 0x30, 0x84, 0x90, 0x1b, 0x6a, 0x00, 0x3b, 0x4d, 0x00,
+ 0xc6, 0x79, 0x01, 0xb6, 0xaf, 0x06, 0x0e, 0x7f, 0x62, 0x63, 0x73, 0x7f,
+ 0xff, 0x78, 0x21, 0x36, 0x00, 0x19, 0x8d, 0xb7, 0xa2, 0x4d, 0xa6, 0x1c,
+ 0xe5, 0x72, 0x1d, 0xe4, 0x7e, 0xf7, 0x4c, 0x67, 0x3f, 0x27, 0x79, 0xd3,
+ 0x16, 0x96, 0x87, 0xe4, 0x28, 0x3f, 0x0e, 0x01, 0xe9, 0x37, 0xc1, 0x47,
+ 0x33, 0xf8, 0x00, 0x7d, 0x36, 0x72, 0x23, 0x40, 0xd4, 0xcf, 0xde, 0xcf,
+ 0x0e, 0xe4, 0x96, 0x3e, 0x20, 0x7f, 0x07, 0x84, 0xdf, 0xa5, 0x56, 0x33,
+ 0xbd, 0x55, 0xe0, 0xc4, 0x2b, 0x5f, 0x3f, 0x7e, 0xf7, 0xbc, 0x7e, 0x07,
+ 0xca, 0x3f, 0x9b, 0xff, 0xb9, 0x11, 0x63, 0x3c, 0x00, 0x96, 0x67, 0x09,
+ 0x1d, 0x51, 0x76, 0xb0, 0x02, 0x59, 0x9c, 0x24, 0x75, 0x45, 0xda, 0x07,
+ 0x9d, 0x4f, 0x36, 0x82, 0x6f, 0xa7, 0x00, 0x17, 0x7f, 0x85, 0x15, 0xcc,
+ 0x38, 0xbf, 0x52, 0x7d, 0xc7, 0xeb, 0xc1, 0x79, 0xa4, 0xee, 0xe4, 0x52,
+ 0xff, 0x09, 0x60, 0x01, 0xf4, 0xd9, 0xc8, 0x9a, 0x06, 0xa6, 0x7e, 0xf6,
+ 0x03, 0x79, 0xca, 0xe8, 0xec, 0x9f, 0xbd, 0x81, 0x2a, 0xbf, 0xfe, 0x29,
+ 0x6f, 0xa8, 0x3f, 0xf9, 0x3e, 0x04, 0x1f, 0xd6, 0xf3, 0xe3, 0xbd, 0xe2,
+ 0x48, 0x58, 0x00, 0x42, 0xbb, 0x4e, 0x65, 0x9a, 0x70, 0xf0, 0x88, 0x88,
+ 0xf8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88, 0x44, 0x1d, 0xff, 0x03,
+ 0xce, 0x23, 0xbf, 0x1b, 0x80, 0x80, 0xaf, 0xfb, 0xff, 0x84, 0x3f, 0xff,
+ 0x2f, 0x8c, 0xf2, 0x7b, 0xf0, 0xaf, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7,
+ 0xff, 0x3f, 0xff, 0xcc, 0x10, 0x86, 0x54, 0xce, 0x4f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x47, 0xff, 0xff, 0xff, 0xe2, 0xfe,
+ 0xbe, 0xbf, 0xeb, 0x31, 0xf0, 0x02, 0x69, 0x6d, 0xa2, 0x8d, 0xd7, 0xfc,
+ 0x6c, 0x3d, 0x24, 0x82, 0x4a, 0x52, 0xe1, 0x1f, 0x2d, 0xf7, 0x8a, 0xff,
+ 0xff, 0xff, 0x7e, 0xb1, 0x43, 0x00, 0xc7, 0x25, 0x8b, 0x37, 0x8b, 0x5f,
+ 0xc4, 0xd1, 0xdd, 0x7d, 0xe0, 0x0a, 0x57, 0x33, 0x01, 0xdb, 0x00, 0xda,
+ 0xfd, 0xfd, 0x00, 0x11, 0x07, 0x17, 0xe3, 0x5d, 0x13, 0xff, 0xf6, 0xa5,
+ 0x5d, 0x8d, 0x4e, 0x5e, 0xfd, 0xf0, 0x0c, 0x8b, 0x74, 0xc6, 0x7a, 0x55,
+ 0xfc, 0x66, 0xf9, 0x68, 0x60, 0x29, 0xf0, 0xbf, 0xe1, 0x31, 0x20, 0xbb,
+ 0xbc, 0x06, 0x7b, 0x18, 0xcb, 0xde, 0xfa, 0x24, 0x3a, 0x70, 0xdb, 0xbb,
+ 0x44, 0xaf, 0xe9, 0xf5, 0xc8, 0x03, 0xe2, 0x3f, 0x55, 0x2b, 0xe7, 0xde,
+ 0x98, 0x70, 0xf6, 0x58, 0xaf, 0xff, 0xeb, 0x18, 0xb8, 0x08, 0x4e, 0xbd,
+ 0xf9, 0xcd, 0xf3, 0x73, 0x60, 0x01, 0xfc, 0x28, 0xf5, 0x0f, 0x9a, 0x88,
+ 0xd3, 0xd3, 0xe0, 0x4e, 0xdb, 0x63, 0x9f, 0xec, 0xf0, 0x35, 0x61, 0xd1,
+ 0x2a, 0x6b, 0x53, 0x5b, 0x47, 0x9b, 0x4d, 0x30, 0x21, 0x3f, 0xf1, 0xb0,
+ 0x75, 0x03, 0xc4, 0x0e, 0x8c, 0xef, 0xab, 0xf8, 0x06, 0xbf, 0xba, 0x77,
+ 0x43, 0xff, 0xf8, 0x60, 0x2a, 0xbf, 0xea, 0x71, 0x82, 0x77, 0x80, 0x48,
+ 0xfd, 0x4f, 0xee, 0x60, 0xb1, 0xfa, 0xbd, 0x3a, 0xdc, 0x00, 0xcb, 0xee,
+ 0xa1, 0xf1, 0xeb, 0x5a, 0x57, 0xd0, 0x1f, 0xe2, 0xf1, 0x54, 0xd8, 0x11,
+ 0xd5, 0x03, 0xfe, 0x6a, 0xbb, 0xff, 0xfe, 0x4e, 0x05, 0x41, 0x04, 0x00,
+ 0x31, 0xeb, 0xea, 0x7f, 0xfd, 0xdf, 0x4f, 0x6c, 0x53, 0x18, 0xb8, 0xed,
+ 0x70, 0x07, 0x79, 0xa6, 0x9d, 0x4d, 0x34, 0x2e, 0xb8, 0x0b, 0x88, 0xbf,
+ 0x36, 0x31, 0xfa, 0x9d, 0x16, 0x28, 0x14, 0xcb, 0xe9, 0xf0, 0x04, 0x68,
+ 0x98, 0x29, 0xc4, 0x90, 0x19, 0xed, 0x44, 0x23, 0x10, 0x1c, 0x19, 0xf6,
+ 0x84, 0x81, 0x67, 0x0c, 0x79, 0x31, 0x11, 0x11, 0x17, 0xc4, 0x97, 0x80,
+ 0x06, 0x6d, 0xb7, 0xca, 0x6e, 0x00, 0x3d, 0xaf, 0x80, 0xfd, 0xe6, 0xbe,
+ 0xed, 0xd1, 0x02, 0xff, 0x7d, 0x2b, 0x57, 0xbe, 0xfd, 0x5f, 0x06, 0x04,
+ 0xdb, 0xcf, 0xff, 0xee, 0xc6, 0xbf, 0x80, 0xfd, 0xec, 0x13, 0xaf, 0xc0,
+ 0xfd, 0xe7, 0xeb, 0x8e, 0xdb, 0xf0, 0xc7, 0x91, 0x31, 0x48, 0x8b, 0xe0,
+ 0x9a, 0x08, 0xf4, 0x07, 0xff, 0xf0, 0x7d, 0x60, 0xfc, 0x20, 0x1e, 0x3a,
+ 0x53, 0x35, 0x07, 0xd7, 0xaf, 0x80, 0x20, 0x7d, 0x57, 0x01, 0xfe, 0xbb,
+ 0x00, 0x1e, 0x2a, 0xb8, 0x09, 0x76, 0x72, 0x9f, 0x1d, 0xb5, 0xde, 0x36,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa3, 0x0d, 0x83, 0xbc, 0xb8, 0xff,
+ 0xbf, 0x84, 0x3f, 0xcb, 0x8c, 0xc9, 0xbc, 0x2b, 0xff, 0xf8, 0x43, 0xfd,
+ 0xfc, 0xff, 0xbe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xe3, 0x19, 0x01, 0x6f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xaf, 0xff, 0xfc, 0xc7, 0xe0, 0x97, 0xd7, 0xef, 0xc3, 0x32, 0xbd, 0x13,
+ 0x05, 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x0c, 0x01, 0xbd,
+ 0xa0, 0xab, 0x0a, 0xb8, 0xbb, 0x2c, 0x60, 0x1d, 0xaf, 0x69, 0xcb, 0xbb,
+ 0x9f, 0xa0, 0x48, 0xa1, 0xa1, 0xd5, 0xc6, 0x66, 0x41, 0x48, 0x91, 0xe7,
+ 0x0b, 0x1f, 0xcd, 0x9f, 0xda, 0x5f, 0x84, 0xc5, 0xcb, 0x60, 0x0f, 0x6b,
+ 0x27, 0x27, 0xc4, 0x39, 0xd7, 0xed, 0x20, 0x3e, 0xdd, 0x69, 0xef, 0xf8,
+ 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0xae, 0xd7, 0x75, 0x58, 0xc2, 0x60, 0x3a,
+ 0x43, 0x49, 0x6a, 0x1c, 0x03, 0x38, 0x3a, 0x10, 0x08, 0xb0, 0x05, 0x55,
+ 0x69, 0xfa, 0x80, 0x0e, 0x45, 0xe7, 0xe1, 0x95, 0xd3, 0x3c, 0xaf, 0x44,
+ 0xd4, 0xf5, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x99, 0x02,
+ 0xbb, 0x8f, 0xfc, 0x25, 0x0a, 0xfb, 0xf8, 0x86, 0x99, 0x3d, 0xe6, 0x45,
+ 0x4f, 0xa4, 0xf9, 0x97, 0x8a, 0xa2, 0xec, 0x37, 0x24, 0x67, 0xb4, 0x78,
+ 0xcf, 0xe4, 0x11, 0x1b, 0x98, 0xce, 0x78, 0x7d, 0x29, 0x82, 0x71, 0x1d,
+ 0x10, 0xc0, 0x2a, 0x7c, 0x77, 0x90, 0xf1, 0x39, 0xfc, 0xdf, 0x4a, 0x71,
+ 0x84, 0x23, 0x05, 0x50, 0x14, 0x38, 0x93, 0x18, 0x1b, 0x35, 0x2d, 0xf0,
+ 0x89, 0x86, 0x68, 0x3b, 0x60, 0xef, 0x7c, 0x87, 0x80, 0x30, 0xff, 0xad,
+ 0x7f, 0xf4, 0xfc, 0x29, 0x24, 0xd6, 0xe7, 0xab, 0xfc, 0x02, 0x01, 0xb7,
+ 0x65, 0xfe, 0x88, 0x17, 0x4b, 0xff, 0xff, 0xd9, 0x41, 0xd3, 0x1a, 0xcb,
+ 0x7c, 0x74, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64, 0x08, 0x7e,
+ 0x5f, 0x5f, 0xf1, 0x9f, 0xf7, 0xff, 0x08, 0x7f, 0xfe, 0x5f, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff,
+ 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfc, 0x31, 0xff, 0xa8, 0x70, 0x85, 0x4f,
+ 0x81, 0x0f, 0x64, 0xff, 0x97, 0xe0, 0x06, 0xb5, 0xb2, 0x01, 0xa8, 0xdd,
+ 0x7b, 0x9a, 0x08, 0xe2, 0xbf, 0xff, 0xff, 0xfc, 0x50, 0xa6, 0x91, 0x0e,
+ 0x44, 0xb7, 0xd0, 0x73, 0xbc, 0x0e, 0x5e, 0x46, 0x73, 0xa8, 0x83, 0x71,
+ 0x53, 0x27, 0xe1, 0xe9, 0x4a, 0x40, 0xf4, 0xb5, 0xd6, 0x13, 0x8e, 0x42,
+ 0x3a, 0xe9, 0x9f, 0x0c, 0x15, 0x3e, 0xd2, 0xfc, 0x26, 0x2d, 0x3a, 0x19,
+ 0x66, 0x1d, 0xd4, 0x00, 0x71, 0x4e, 0x71, 0x9b, 0x66, 0xf2, 0x1f, 0xf7,
+ 0x67, 0xf4, 0xa2, 0xbf, 0xff, 0x86, 0x38, 0xf0, 0x03, 0x41, 0xd5, 0x22,
+ 0xcd, 0x80, 0x47, 0xaf, 0xb6, 0x21, 0x9b, 0x52, 0x19, 0xa6, 0x40, 0x4e,
+ 0xca, 0x0b, 0x39, 0x97, 0x84, 0x0d, 0xcd, 0x65, 0x7e, 0xa9, 0xea, 0xc4,
+ 0x54, 0x6f, 0xcb, 0xd2, 0xf6, 0x01, 0x5d, 0x0c, 0xff, 0xff, 0xf7, 0xff,
+ 0xfc, 0x30, 0x2a, 0x62, 0xcc, 0xe5, 0xff, 0x09, 0x31, 0xaa, 0x93, 0x69,
+ 0xf9, 0xf2, 0xbc, 0x21, 0x07, 0x1d, 0x29, 0x60, 0x9c, 0x2a, 0x6e, 0xcf,
+ 0xe3, 0x1d, 0x5b, 0xa9, 0xbd, 0xd4, 0x9f, 0xf0, 0x19, 0xf2, 0x3f, 0x0c,
+ 0x19, 0xcf, 0x0c, 0x74, 0xa6, 0x09, 0xcb, 0xc6, 0xb3, 0x08, 0x70, 0x55,
+ 0x9f, 0x1d, 0x90, 0x31, 0xff, 0xfb, 0xbc, 0x2b, 0xe0, 0x23, 0x33, 0xe7,
+ 0xe7, 0x3b, 0x66, 0x6b, 0x34, 0x5d, 0xa8, 0x86, 0x3f, 0xee, 0xe4, 0xfe,
+ 0x33, 0xc0, 0x4d, 0x47, 0xa0, 0xe0, 0x08, 0xcc, 0xf9, 0xf9, 0x3b, 0x66,
+ 0x6b, 0xfc, 0xd1, 0x76, 0xa0, 0xff, 0xd6, 0x21, 0x0a, 0x00, 0x05, 0x62,
+ 0x80, 0x01, 0x5c, 0x48, 0x74, 0xa6, 0x78, 0x6f, 0x7f, 0xdf, 0x80, 0x26,
+ 0xa7, 0x80, 0x61, 0xc8, 0xe3, 0xf8, 0x78, 0x3f, 0x1d, 0xb7, 0xe8, 0x4d,
+ 0x9c, 0x00, 0xcf, 0xee, 0xfd, 0xdf, 0x5b, 0x07, 0xf1, 0xf0, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x83, 0x3c, 0xba, 0xf8, 0xcf, 0xbf,
+ 0x84, 0x3f, 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff,
+ 0xe1, 0x0f, 0xf7, 0xfe, 0x6f, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x00, 0x93, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xeb, 0xff, 0xfb, 0xc2, 0x9f, 0x12, 0x51, 0x38, 0xf6, 0xb8,
+ 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x0c, 0x08, 0xd9, 0xde, 0x0f,
+ 0xa3, 0x59, 0x5c, 0xd1, 0xca, 0xc5, 0x8c, 0x18, 0x4d, 0x1f, 0xc5, 0x7f,
+ 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x61, 0x49, 0x45, 0x9b, 0x8d, 0x79, 0x0d,
+ 0x9b, 0x0a, 0xe2, 0x0d, 0xe4, 0xe6, 0x23, 0x3f, 0xff, 0xff, 0xff, 0xdf,
+ 0xff, 0xff, 0xff, 0xcf, 0xe5, 0xf1, 0xde, 0x65, 0xc2, 0x31, 0xde, 0xf1,
+ 0x39, 0x82, 0xab, 0xaf, 0xc5, 0x79, 0x26, 0xff, 0x5d, 0x75, 0xc9, 0x81,
+ 0xc4, 0x04, 0xe9, 0x84, 0xc7, 0x69, 0x6f, 0x1b, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0x90, 0x84, 0x05, 0x97, 0xfc, 0x9f, 0xe2, 0x05, 0x03, 0xaf,
+ 0x0b, 0x07, 0x8a, 0x0c, 0x1d, 0x7c, 0xf9, 0xbf, 0x19, 0xff, 0x0a, 0x7f,
+ 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf5, 0xff, 0xff,
+ 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47,
+ 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
+ 0xff, 0x79, 0x8f, 0x84, 0x2a, 0xb4, 0xba, 0xe2, 0xbf, 0xff, 0xff, 0xf8,
+ 0x60, 0xd0, 0x2e, 0x3b, 0x33, 0xed, 0x2b, 0x31, 0xfe, 0x56, 0x0d, 0xf3,
+ 0x95, 0xfc, 0x15, 0x49, 0x43, 0x67, 0xc1, 0xde, 0xd6, 0x6e, 0xc6, 0x02,
+ 0x86, 0x70, 0x2e, 0x35, 0xfd, 0x7f, 0x15, 0xff, 0xfc, 0x31, 0xf8, 0xad,
+ 0xf3, 0x06, 0xc5, 0x9b, 0x81, 0xb7, 0x4b, 0x02, 0x1f, 0x76, 0xd3, 0x39,
+ 0x6a, 0x89, 0x8e, 0x7f, 0xff, 0xfb, 0xff, 0xfe, 0x18, 0xb5, 0x22, 0xdf,
+ 0xf8, 0x48, 0xf6, 0x1c, 0x08, 0x9b, 0x9e, 0xa2, 0x7f, 0x73, 0xe5, 0xc7,
+ 0x66, 0x7c, 0x76, 0xdf, 0x86, 0x04, 0x21, 0xa8, 0x7f, 0xc3, 0xfc, 0x86,
+ 0x2c, 0x1d, 0x41, 0xc8, 0x8e, 0x0c, 0x53, 0x25, 0x4d, 0x1e, 0x3b, 0xe8,
+ 0x63, 0xfc, 0x57, 0x15, 0xb4, 0x2b, 0xb3, 0xd8, 0x20, 0x81, 0xad, 0xe6,
+ 0x67, 0x88, 0xc1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5, 0x1d,
+ 0x80, 0xa3, 0xca, 0xba, 0xf8, 0xcf, 0xbf, 0x84, 0x3f, 0xcb, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff,
+ 0x37, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x00, 0x93, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb,
+ 0xff, 0xfb, 0x19, 0x13, 0xe3, 0x31, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xef,
+ 0x05, 0xb1, 0x58, 0xc7, 0xbc, 0x0c, 0x74, 0x38, 0xa6, 0x96, 0xbc, 0x6c,
+ 0x72, 0x42, 0xa6, 0x87, 0xbf, 0x8e, 0xd1, 0x06, 0xc8, 0x76, 0x64, 0x74,
+ 0xf1, 0x02, 0x9c, 0x3a, 0x13, 0x1c, 0x5d, 0x0d, 0x0e, 0x44, 0x31, 0x21,
+ 0x0e, 0x75, 0xf7, 0x69, 0xd6, 0xe2, 0xbf, 0xff, 0xfc, 0xdf, 0xe8, 0x40,
+ 0x18, 0x63, 0x09, 0x8d, 0x7b, 0x85, 0xc9, 0xbb, 0x83, 0x8d, 0x4b, 0x3f,
+ 0x37, 0xe2, 0x0d, 0xd5, 0x38, 0xb5, 0xda, 0x84, 0xd5, 0x88, 0x75, 0x33,
+ 0x81, 0x32, 0x97, 0x8b, 0xed, 0x0c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
+ 0xfe, 0x6c, 0x78, 0x04, 0x3f, 0x84, 0x9e, 0xe0, 0x6f, 0x5d, 0xd0, 0x64,
+ 0x8f, 0xcf, 0xe5, 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x78, 0x9c, 0xda, 0x7c,
+ 0xd2, 0x78, 0x64, 0x9e, 0x37, 0xff, 0x8c, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0x94, 0xa4, 0x05, 0x97, 0xfd, 0x9b, 0xf9, 0xfd, 0x38, 0x7c,
+ 0x40, 0x42, 0x58, 0x50, 0xff, 0x37, 0xfa, 0x4c, 0xfe, 0x1e, 0x6f, 0xe6,
+ 0xfd, 0xbe, 0xde, 0x31, 0x44, 0x3e, 0x2b, 0xef, 0x8a, 0xef, 0xc6, 0x7f,
+ 0xdf, 0x10, 0xa5, 0xf8, 0xa0, 0xc5, 0x06, 0x1a, 0x1c, 0x0b, 0x07, 0xc1,
+ 0x63, 0x28, 0x90, 0xc1, 0x07, 0x94, 0x67, 0xe1, 0x0f, 0xf9, 0xbf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
+ 0x9f, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xd7, 0xff, 0xff, 0x37, 0xff, 0xe4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x89, 0x60, 0x14, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0x5f, 0x8a,
+ 0xff, 0xff, 0xff, 0x5e, 0xb1, 0x44, 0xd8, 0x62, 0x04, 0x88, 0xd9, 0x97,
+ 0x16, 0xe3, 0x22, 0xbf, 0xfd, 0x7b, 0x90, 0x59, 0x79, 0xb3, 0x36, 0x4f,
+ 0xff, 0xff, 0x7f, 0xfe, 0xbd, 0x88, 0x88, 0x28, 0x3c, 0xfa, 0x41, 0xa7,
+ 0xea, 0x27, 0x7e, 0x7c, 0xb8, 0xec, 0xdf, 0x1b, 0xbe, 0x18, 0xcf, 0xf5,
+ 0xd2, 0xa7, 0x25, 0xfe, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa6,
+ 0x25, 0x80, 0xd2, 0xfb, 0x5e, 0xa0, 0x41, 0x30, 0x88, 0x91, 0xce, 0x18,
+ 0xfd, 0xb9, 0xdb, 0xc6, 0x62, 0x1f, 0x7e, 0xf7, 0x15, 0xde, 0x33, 0xed,
+ 0x7a, 0xe1, 0x0f, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe4, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31,
+ 0x01, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0xfa, 0x20, 0xf7, 0x37,
+ 0x24, 0x5f, 0x12, 0x35, 0xa1, 0xf7, 0x7e, 0x1b, 0xe9, 0x7f, 0x15, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc5, 0x19, 0x91, 0x86, 0xbb, 0x5d, 0x10, 0xe3,
+ 0xf5, 0x97, 0x30, 0x06, 0x62, 0x0c, 0x8a, 0x2e, 0x52, 0x18, 0xc2, 0x0d,
+ 0x6b, 0x49, 0xfb, 0x82, 0x17, 0x5b, 0x46, 0x0e, 0x77, 0xf9, 0x04, 0x05,
+ 0x9b, 0x6a, 0x0c, 0xa6, 0xbe, 0x20, 0x16, 0x14, 0x58, 0x2a, 0x26, 0x44,
+ 0x92, 0xc2, 0x03, 0x2a, 0x7e, 0x78, 0xaf, 0xff, 0xff, 0xe4, 0x26, 0x13,
+ 0x3b, 0xc2, 0x79, 0xbf, 0x5b, 0x3e, 0x80, 0xdb, 0xf0, 0x2d, 0x6a, 0x9d,
+ 0xbb, 0x20, 0x4b, 0xfb, 0x77, 0xe0, 0xff, 0x79, 0x0b, 0xdb, 0xe3, 0x68,
+ 0x8c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xc4, 0x43, 0x0e, 0x5f,
+ 0x84, 0xfa, 0xd2, 0x63, 0xe1, 0x13, 0x93, 0xf1, 0x31, 0x10, 0x07, 0x87,
+ 0xf8, 0x4a, 0x13, 0x3e, 0xd6, 0x27, 0x69, 0x58, 0xbd, 0x51, 0xf6, 0xb9,
+ 0x41, 0xe5, 0xff, 0xcf, 0xe5, 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x6a, 0x0f,
+ 0x73, 0x16, 0x06, 0x29, 0xa6, 0x79, 0xe2, 0x6b, 0xfe, 0x32, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x0e, 0x7e, 0xcd, 0x87, 0xc7, 0xfc,
+ 0x26, 0x20, 0x12, 0xb0, 0x1f, 0x6e, 0xf8, 0x34, 0x35, 0x06, 0x51, 0x49,
+ 0x9e, 0x22, 0x25, 0xfc, 0x50, 0x89, 0x83, 0x03, 0x71, 0xa0, 0x55, 0xef,
+ 0xff, 0xfc, 0x67, 0xfd, 0x19, 0x3f, 0xd3, 0xf8, 0x20, 0xc6, 0x13, 0x65,
+ 0x43, 0x50, 0x54, 0x07, 0xc8, 0x19, 0x00, 0x54, 0x1a, 0x2e, 0x31, 0x9f,
+ 0xc9, 0x84, 0x3d, 0x13, 0xf8, 0x53, 0xc4, 0x62, 0x5e, 0x98, 0xeb, 0x7c,
+ 0x5b, 0xf1, 0x63, 0x86, 0x64, 0x3f, 0x2f, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf9, 0x7f, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb,
+ 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9,
+ 0xcb, 0x60, 0x12, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf5, 0xff, 0x79, 0x8f, 0xc2, 0x3f, 0xe9, 0x0c, 0xc4, 0xc5, 0x7f, 0xff,
+ 0xff, 0xbf, 0x8a, 0x09, 0x47, 0x66, 0x20, 0xec, 0xc8, 0x4d, 0xdd, 0x51,
+ 0x96, 0x38, 0x7c, 0x12, 0xc5, 0x80, 0x9b, 0xf5, 0x1e, 0xff, 0x22, 0x97,
+ 0x6c, 0xc8, 0x05, 0x5b, 0x3f, 0x15, 0xff, 0xef, 0xc3, 0x1f, 0x88, 0x30,
+ 0xc1, 0xbc, 0x59, 0x39, 0x6c, 0xd2, 0x42, 0x56, 0x5c, 0xb9, 0x4c, 0x99,
+ 0xf9, 0xff, 0xff, 0xef, 0xff, 0xdf, 0x86, 0x38, 0x61, 0xff, 0x84, 0xb9,
+ 0xe2, 0x0d, 0xa6, 0x5e, 0x48, 0x9f, 0x2e, 0x3b, 0x37, 0xc6, 0xed, 0x44,
+ 0xea, 0x08, 0x6b, 0xe3, 0x20, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7,
+ 0x2d, 0x80, 0xb2, 0xfb, 0x0c, 0x74, 0xf8, 0xe9, 0x4c, 0x13, 0x88, 0x88,
+ 0x07, 0xd8, 0x17, 0x7b, 0xff, 0xfe, 0x33, 0xe8, 0x31, 0xe8, 0x94, 0xfa,
+ 0x70, 0xfb, 0xe8, 0x07, 0x95, 0x60, 0xfb, 0xf8, 0x43, 0x4b, 0x97, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xf5,
+ 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01, 0xcf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xaf, 0xfe, 0x4e, 0xcb, 0x0c, 0xcc, 0x27, 0x84, 0x8c, 0x37, 0x41, 0x3c,
+ 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x1d, 0xa4, 0x08, 0x62,
+ 0xe5, 0x8c, 0x60, 0x4a, 0x09, 0xa9, 0x9e, 0xc0, 0x1c, 0x7b, 0xac, 0x4b,
+ 0x6f, 0x5e, 0x02, 0xdb, 0xeb, 0x7f, 0xa9, 0x27, 0x2c, 0x45, 0x71, 0x38,
+ 0xc9, 0x39, 0x69, 0x3c, 0x1e, 0x79, 0x71, 0x22, 0xf8, 0x0d, 0xed, 0x34,
+ 0x9f, 0x9e, 0x56, 0x44, 0x54, 0x99, 0xfa, 0x0f, 0xc5, 0x7f, 0xff, 0xff,
+ 0x31, 0x03, 0x12, 0x7a, 0xde, 0xc6, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xfd,
+ 0x16, 0x04, 0xc3, 0x53, 0xf3, 0x7c, 0x0d, 0xf8, 0x94, 0x46, 0xf3, 0xc8,
+ 0x08, 0xe4, 0x34, 0x83, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff,
+ 0x9a, 0x3e, 0x1f, 0xf8, 0x4a, 0x21, 0x99, 0x1a, 0x1b, 0x9f, 0xf8, 0x08,
+ 0x66, 0x46, 0x55, 0xa8, 0x04, 0x33, 0x26, 0x2a, 0xd5, 0xe1, 0xcf, 0xe5,
+ 0xf1, 0xde, 0x6f, 0xf8, 0xdf, 0x66, 0xf8, 0x5b, 0xd8, 0xb8, 0x50, 0xb6,
+ 0x05, 0x2a, 0x50, 0xcf, 0x78, 0xca, 0x85, 0x50, 0x73, 0xc4, 0xd7, 0xfc,
+ 0x64, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x9c, 0xe4, 0x0c, 0x7e, 0x8d,
+ 0xf9, 0x6d, 0x0f, 0x89, 0x11, 0xc1, 0x1e, 0xfb, 0x04, 0x04, 0x0c, 0xf3,
+ 0xff, 0x54, 0x24, 0x65, 0x70, 0x97, 0x11, 0x13, 0x5f, 0xff, 0xfc, 0x67,
+ 0xa3, 0x31, 0x37, 0xc2, 0xdf, 0x84, 0xc4, 0x71, 0xa1, 0x11, 0x91, 0xb4,
+ 0x9f, 0xbf, 0xcf, 0x13, 0xf2, 0x88, 0xdc, 0x64, 0x20, 0x3f, 0x84, 0x39,
+ 0x1c, 0x09, 0x7a, 0xc3, 0xdf, 0x98, 0x57, 0xc0, 0x3f, 0xe1, 0xea, 0x39,
+ 0xf3, 0xed, 0x6f, 0xbe, 0xc0, 0xb0, 0x19, 0xe5, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x27, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21,
+ 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xaa, 0x0d, 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf5, 0xfb, 0xf5, 0xeb, 0x8a, 0xff, 0xff, 0xff, 0xeb, 0x15,
+ 0x2b, 0x05, 0x6c, 0x49, 0x44, 0x1d, 0x6a, 0x55, 0x2f, 0xf7, 0x52, 0x09,
+ 0x3e, 0x01, 0x33, 0xe7, 0x16, 0xde, 0x3d, 0x68, 0xb4, 0xbe, 0x2b, 0xff,
+ 0xdf, 0xac, 0x5c, 0x08, 0x9a, 0x7b, 0xab, 0x39, 0x07, 0xcd, 0x1d, 0xd7,
+ 0x2a, 0x7f, 0xaa, 0x8b, 0x3a, 0xcc, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x9c,
+ 0x1c, 0x08, 0x54, 0x2d, 0x34, 0x7a, 0xca, 0xa0, 0x93, 0x40, 0xca, 0x49,
+ 0x95, 0x34, 0x9e, 0x7c, 0xb8, 0xec, 0xdf, 0x1b, 0xb0, 0x4b, 0x28, 0x69,
+ 0x4c, 0xfe, 0x07, 0xdd, 0xcf, 0x87, 0xdd, 0xc8, 0x7d, 0xdc, 0x7f, 0x19,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35, 0x80, 0x93, 0xd0, 0x63,
+ 0xfb, 0x7c, 0xa1, 0x0f, 0x9a, 0x06, 0x50, 0x69, 0x98, 0xef, 0xaf, 0xfe,
+ 0x33, 0x40, 0x97, 0x01, 0x1f, 0xae, 0x3d, 0xff, 0xe1, 0xb2, 0xb9, 0x94,
+ 0x55, 0xcd, 0x7c, 0x20, 0xbd, 0x64, 0x42, 0xbd, 0x30, 0xb0, 0x07, 0xe0,
+ 0x9b, 0x00, 0x51, 0xa6, 0xe6, 0xfc, 0x9b, 0x71, 0x12, 0x11, 0x32, 0x1f,
+ 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0x85, 0x3f, 0xff, 0x08,
+ 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x01, 0xaf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xaf, 0xff, 0xfc, 0xc2, 0x78, 0x4d, 0xe7, 0x97, 0x0c, 0xca, 0xf2,
+ 0x12, 0xeb, 0xbb, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x84, 0x0e,
+ 0xce, 0xfc, 0x3e, 0xdc, 0xde, 0x26, 0x91, 0xb9, 0xf3, 0x07, 0x27, 0x82,
+ 0x28, 0xba, 0x2a, 0xe3, 0x08, 0x32, 0x64, 0x6c, 0x78, 0xe8, 0x56, 0x76,
+ 0xa6, 0x39, 0x60, 0x09, 0x8c, 0xbf, 0xe3, 0xfe, 0xe7, 0x83, 0xfd, 0x8e,
+ 0x81, 0x95, 0x36, 0x7f, 0x69, 0xfe, 0x13, 0x16, 0xf8, 0x00, 0x30, 0x81,
+ 0x79, 0xc5, 0x0e, 0x71, 0xe4, 0xa2, 0xfd, 0x24, 0xf7, 0xfc, 0x57, 0xff,
+ 0xff, 0xf2, 0x92, 0x36, 0x17, 0x08, 0xbf, 0x37, 0xf5, 0xda, 0xee, 0xab,
+ 0x18, 0xb0, 0x1d, 0x21, 0xa4, 0xb7, 0x04, 0x20, 0x0d, 0x10, 0x08, 0xb0,
+ 0x11, 0x9b, 0x4f, 0xd4, 0x01, 0xd2, 0xf3, 0xf2, 0xbd, 0x46, 0x6b, 0x2d,
+ 0x6d, 0x49, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xe6, 0x40, 0xae,
+ 0x05, 0xff, 0x09, 0x31, 0x66, 0x4c, 0x43, 0x4c, 0x9e, 0xec, 0xc8, 0xd3,
+ 0xe9, 0x3e, 0x65, 0xe2, 0xa8, 0xbb, 0x37, 0x53, 0xd5, 0xec, 0xfe, 0x5f,
+ 0x1d, 0xe6, 0xe6, 0x2f, 0x08, 0x5b, 0xd3, 0xe3, 0x7d, 0x9b, 0xe0, 0x43,
+ 0x22, 0xfc, 0x13, 0x61, 0x1e, 0x0f, 0x7a, 0x0f, 0xa0, 0x3c, 0x3c, 0x73,
+ 0x01, 0x0c, 0x04, 0xb9, 0xe2, 0x75, 0xcc, 0x69, 0x13, 0x8d, 0x09, 0xdf,
+ 0x8c, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x0a, 0x7f,
+ 0x37, 0xe5, 0x91, 0x7e, 0x09, 0x84, 0x40, 0x4a, 0xe4, 0x43, 0x02, 0x3d,
+ 0x18, 0x08, 0x78, 0xe6, 0x02, 0x18, 0x09, 0x78, 0x1e, 0x3f, 0xc4, 0xc4,
+ 0xff, 0xff, 0xfc, 0x61, 0xa9, 0x99, 0x2f, 0xe7, 0xc5, 0x08, 0x81, 0x13,
+ 0xd0, 0x1f, 0xe3, 0xff, 0xa0, 0x63, 0xa0, 0x42, 0x08, 0x1b, 0x03, 0x71,
+ 0x79, 0xe4, 0xef, 0x9a, 0x5f, 0xac, 0x4f, 0x5c, 0x26, 0xef, 0xd1, 0x63,
+ 0x01, 0x01, 0xa3, 0xcf, 0xff, 0xc2, 0x06, 0xfa, 0xff, 0xf0, 0xf9, 0x23,
+ 0x05, 0x97, 0xc0, 0xf3, 0xff, 0xe4, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x27, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb,
+ 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
+ 0x4f, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xd7, 0xfe, 0x63, 0xe0, 0x10, 0x3a, 0x1f, 0x69, 0x7a, 0x0b, 0xd3, 0xc5,
+ 0x88, 0xc5, 0x7f, 0xff, 0xff, 0xbf, 0x8a, 0x14, 0xc8, 0xa3, 0x83, 0x91,
+ 0x6a, 0x2d, 0x36, 0x91, 0xec, 0x70, 0x66, 0x9e, 0xe0, 0xc7, 0xb8, 0x60,
+ 0xa9, 0xf6, 0x97, 0xe1, 0x31, 0x65, 0x56, 0x6e, 0xc3, 0x06, 0xac, 0xd7,
+ 0x5d, 0xbd, 0x9f, 0x15, 0xff, 0xef, 0xc3, 0x1c, 0x78, 0x01, 0xa0, 0xea,
+ 0x91, 0x66, 0xd1, 0x01, 0xb6, 0xa5, 0x80, 0xdb, 0x49, 0x91, 0x25, 0x3a,
+ 0xf5, 0x79, 0x08, 0xe9, 0x7c, 0x5e, 0x53, 0x6e, 0x7f, 0xff, 0xfb, 0xff,
+ 0xfe, 0x18, 0x65, 0x41, 0x66, 0x72, 0xff, 0x84, 0x98, 0x71, 0xab, 0xf7,
+ 0x48, 0xc4, 0x41, 0x35, 0xe9, 0xea, 0x13, 0x2f, 0x72, 0xcf, 0x97, 0x1d,
+ 0x99, 0xfe, 0x37, 0x61, 0x8f, 0x81, 0x0f, 0xb7, 0x8c, 0x2f, 0x14, 0x7c,
+ 0x11, 0xc9, 0xa7, 0x0c, 0x07, 0xee, 0xdf, 0xe3, 0x20, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x80, 0x83, 0xec, 0x32, 0x0e, 0x4c, 0x68,
+ 0x47, 0xc1, 0xf8, 0x0e, 0x02, 0xb0, 0x88, 0x30, 0x78, 0x42, 0xe1, 0xc1,
+ 0x04, 0x2c, 0x80, 0xc9, 0x3d, 0xff, 0xf1, 0x8b, 0xc3, 0x1e, 0xd2, 0xa9,
+ 0x0a, 0xeb, 0x82, 0x64, 0x34, 0x22, 0x3e, 0x1c, 0x41, 0x82, 0xb9, 0x2e,
+ 0x80, 0x4f, 0xe1, 0x00, 0x4d, 0x2f, 0xe1, 0x00, 0x7b, 0x0f, 0xff, 0xff,
+ 0x27, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21,
+ 0xfe, 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe9, 0x49, 0x01, 0xcf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xaf, 0xff, 0xef, 0x0a, 0x7c, 0x49, 0x45, 0xe0, 0x4b, 0xf8, 0x65,
+ 0x6f, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xf2, 0x48, 0x30,
+ 0x03, 0x16, 0x74, 0xcf, 0x21, 0x02, 0xf3, 0xe3, 0x83, 0x3f, 0xf8, 0x55,
+ 0x94, 0xb7, 0x28, 0x91, 0x22, 0x3c, 0x3b, 0x84, 0xed, 0x3e, 0x86, 0xbb,
+ 0x9f, 0x87, 0xde, 0xc5, 0x7f, 0xff, 0xff, 0xcd, 0xfa, 0x83, 0x12, 0x12,
+ 0xa4, 0xac, 0x9c, 0x09, 0x8b, 0xd4, 0xcf, 0x17, 0xb1, 0xd4, 0xca, 0x4a,
+ 0xd1, 0x42, 0x04, 0x3f, 0x05, 0x94, 0xc5, 0xd9, 0x83, 0x16, 0x3f, 0x8b,
+ 0x2b, 0x3f, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xb6, 0x56, 0x76,
+ 0x10, 0x32, 0x61, 0xfc, 0xbe, 0x3b, 0xcd, 0xff, 0x1b, 0xf3, 0x7f, 0xe3,
+ 0xdd, 0xe1, 0x52, 0xec, 0x81, 0x19, 0x8e, 0x43, 0x27, 0x96, 0x5c, 0xdf,
+ 0xf7, 0xdf, 0xc6, 0x78, 0x46, 0x7a, 0x70, 0x2a, 0x4c, 0xcc, 0x4b, 0x0b,
+ 0x3f, 0x02, 0x2d, 0xf3, 0x6e, 0xe4, 0x0e, 0x3f, 0xf0, 0x97, 0x4a, 0xc8,
+ 0x65, 0xec, 0x64, 0x10, 0x25, 0xfe, 0x2f, 0xb9, 0xe2, 0x75, 0xff, 0x19,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x0c, 0x59, 0x08, 0x68,
+ 0x12, 0xb2, 0xc7, 0x15, 0x7e, 0x6d, 0x3e, 0x97, 0x4f, 0x84, 0xe7, 0x83,
+ 0xe6, 0x08, 0x03, 0xec, 0x04, 0x07, 0xff, 0xeb, 0xff, 0xff, 0x8c, 0x34,
+ 0xf4, 0x99, 0xfc, 0xf8, 0x7d, 0x6f, 0xac, 0x04, 0x0e, 0x8f, 0x13, 0xff,
+ 0xc2, 0x1f, 0xff, 0xfc, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4,
+ 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xff, 0x84, 0x3f, 0xff, 0x7f, 0xff,
+ 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x91,
+ 0x60, 0x10, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
+ 0xff, 0x79, 0x84, 0xe0, 0x06, 0x5d, 0x7e, 0xd6, 0xbe, 0xdf, 0x5c, 0x57,
+ 0xff, 0xff, 0xff, 0x0c, 0x07, 0x08, 0x51, 0x45, 0xc1, 0xa5, 0x18, 0x69,
+ 0xfa, 0x6e, 0x6f, 0x04, 0x89, 0x92, 0x70, 0x01, 0x6d, 0xfc, 0x6f, 0xfc,
+ 0x63, 0xcd, 0x6c, 0x91, 0x88, 0xa1, 0x00, 0xb1, 0x9c, 0x05, 0xdf, 0xd9,
+ 0xed, 0xfe, 0x2b, 0xff, 0xf8, 0x63, 0xf1, 0x58, 0xea, 0xcc, 0x51, 0x66,
+ 0xe0, 0x6c, 0xd4, 0xb0, 0x21, 0xf7, 0x6e, 0x1f, 0x01, 0x6f, 0xec, 0x08,
+ 0x31, 0xd9, 0x8c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x31, 0x6a, 0x6d, 0xff,
+ 0x84, 0x8f, 0x32, 0x08, 0x08, 0x6d, 0x3a, 0xb5, 0x15, 0xc2, 0x03, 0xfc,
+ 0xf9, 0x71, 0xd9, 0xbe, 0x35, 0x7a, 0xf4, 0x0e, 0x26, 0x75, 0x01, 0x66,
+ 0x98, 0x1d, 0x25, 0xf0, 0xc7, 0xc1, 0xc5, 0xff, 0xc4, 0xae, 0x04, 0xaa,
+ 0x99, 0xb2, 0x09, 0x7f, 0x8f, 0xcc, 0x31, 0x3d, 0xef, 0xe3, 0x20, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x80, 0x82, 0x5e, 0x18, 0xd3,
+ 0xe8, 0x2e, 0x6f, 0x0d, 0x8a, 0xc7, 0x06, 0x0f, 0xc1, 0xb1, 0x90, 0x9e,
+ 0x0f, 0x08, 0xae, 0xe3, 0x77, 0xf4, 0x0e, 0x01, 0x03, 0x29, 0x04, 0x11,
+ 0x3e, 0xa3, 0xf1, 0x5f, 0x93, 0xff, 0x8c, 0x7f, 0xc3, 0x33, 0xd7, 0xc2,
+ 0x1f, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f,
+ 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51, 0x01, 0xef,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0x4f, 0x1e, 0xf6, 0x26, 0x5e, 0x13,
+ 0x7b, 0xad, 0x6d, 0xf8, 0x8c, 0x57, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f,
+ 0x07, 0xbc, 0x64, 0x51, 0x81, 0x0f, 0xbb, 0x50, 0xcb, 0x8c, 0x7b, 0x83,
+ 0x28, 0x83, 0x4e, 0xbd, 0x13, 0x36, 0xfe, 0x4f, 0x1b, 0x11, 0x11, 0x2c,
+ 0x72, 0xca, 0x34, 0x72, 0xae, 0xb8, 0x57, 0xdf, 0x87, 0x17, 0x72, 0xc4,
+ 0x40, 0x89, 0xd2, 0xf5, 0x96, 0x0b, 0xe5, 0x56, 0x95, 0x0b, 0xcc, 0x90,
+ 0xfb, 0x4b, 0xf0, 0x99, 0xc3, 0xb2, 0x71, 0xde, 0xc5, 0x78, 0xaf, 0xff,
+ 0xff, 0x37, 0xe2, 0x68, 0x40, 0x14, 0x66, 0xb2, 0x72, 0xcb, 0x03, 0x7d,
+ 0x2d, 0xc0, 0x2a, 0xf8, 0xae, 0xde, 0xfd, 0x96, 0x76, 0xb1, 0x05, 0x5c,
+ 0xdf, 0xac, 0x88, 0x26, 0x9d, 0xf8, 0x24, 0x7b, 0x1a, 0xdd, 0xfa, 0x63,
+ 0x73, 0x06, 0xf4, 0xc6, 0x8b, 0xda, 0x6e, 0x7b, 0x97, 0x23, 0x3f, 0x37,
+ 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbc, 0x44, 0x46, 0x09, 0x05, 0x89,
+ 0x9c, 0x4c, 0x32, 0x4d, 0xf9, 0x37, 0xba, 0xb4, 0xd5, 0xff, 0xe4, 0x6b,
+ 0x03, 0x1d, 0x5c, 0xfe, 0x5f, 0x1d, 0xcc, 0x58, 0x48, 0x11, 0xbe, 0xd4,
+ 0xb0, 0x00, 0x73, 0x7f, 0x8f, 0x5f, 0x04, 0x1b, 0x03, 0xf9, 0xa3, 0xcd,
+ 0xff, 0xaf, 0x51, 0x85, 0x78, 0xc3, 0x49, 0x50, 0xd6, 0x5b, 0x70, 0x76,
+ 0x34, 0x9f, 0xf1, 0xb0, 0xec, 0x53, 0x80, 0xf6, 0x82, 0x4c, 0x83, 0xda,
+ 0x09, 0x32, 0x20, 0x6c, 0x21, 0xf1, 0x95, 0xc8, 0x88, 0x18, 0x99, 0xee,
+ 0x23, 0xe1, 0x48, 0x80, 0x02, 0x39, 0xff, 0x4b, 0x57, 0xcc, 0xc1, 0x95,
+ 0x2f, 0x9e, 0x13, 0x20, 0x7a, 0x5d, 0xff, 0xdf, 0xfc, 0x64, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44, 0x0e, 0x41, 0x59, 0x00, 0x02, 0x2b,
+ 0x77, 0x77, 0x5d, 0xf0, 0x8a, 0x6d, 0xc7, 0xff, 0xf9, 0x7f, 0xff, 0xf8,
+ 0xcf, 0xfb, 0xff, 0x84, 0x3f, 0xff, 0xf9, 0x3d, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xc9, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08, 0x7f,
+ 0xfe, 0xff, 0xff, 0x37, 0xff, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xaa, 0xd3, 0x60, 0x11, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf5, 0xfa, 0xf5, 0xef, 0x8a, 0xff, 0xff, 0xff, 0x5e, 0xb1,
+ 0x48, 0xa8, 0x60, 0xc5, 0x4d, 0x16, 0x02, 0x8c, 0x17, 0xe6, 0xd4, 0x79,
+ 0x5e, 0x57, 0x10, 0xc5, 0xe0, 0x99, 0x53, 0x2a, 0xc5, 0x7f, 0xfa, 0xf8,
+ 0xb3, 0x70, 0x1d, 0xa7, 0x77, 0x60, 0xfb, 0x77, 0x73, 0x19, 0x3f, 0xff,
+ 0xfd, 0xff, 0xfa, 0xf6, 0x22, 0x20, 0xa0, 0xe1, 0x2f, 0x07, 0x62, 0x74,
+ 0xf5, 0xc5, 0x89, 0xb6, 0xa5, 0x7e, 0x3a, 0x47, 0x41, 0xec, 0xf9, 0x71,
+ 0xcb, 0xd7, 0xae, 0x4f, 0x8d, 0x8a, 0x71, 0x4e, 0x0a, 0x79, 0x69, 0x6e,
+ 0x21, 0xf0, 0xc6, 0x2f, 0xbb, 0x87, 0xf8, 0x79, 0xf9, 0x2e, 0x09, 0xb0,
+ 0x22, 0xfc, 0xfc, 0xff, 0x08, 0xf7, 0x0a, 0x2a, 0x5f, 0xff, 0xc1, 0x35,
+ 0x5f, 0xe0, 0x9b, 0xae, 0xbf, 0xfb, 0xf8, 0xc8, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xab, 0x4d, 0x80, 0x92, 0x04, 0xd2, 0x7e, 0x11, 0x5b, 0x71,
+ 0xff, 0xf9, 0x7f, 0xf8, 0xcf, 0xbf, 0x84, 0x3f, 0xf9, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6,
+ 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xeb, 0x59, 0x01, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+ 0xef, 0x11, 0x30, 0x9c, 0xd8, 0x02, 0x4d, 0xf7, 0x6d, 0xf1, 0x5f, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0x51, 0x87, 0xc4, 0x8b, 0x33, 0x2c, 0x42, 0x3c,
+ 0x37, 0xff, 0x4f, 0x0a, 0xc7, 0x0e, 0x63, 0x06, 0x98, 0x81, 0x3c, 0x65,
+ 0x51, 0xb2, 0x01, 0x23, 0x7e, 0xaf, 0xfb, 0xdb, 0x9e, 0x01, 0x8b, 0xa8,
+ 0x98, 0xba, 0xc6, 0xf0, 0x3d, 0x7e, 0x5b, 0x57, 0x44, 0xcd, 0xf0, 0xc9,
+ 0x7c, 0x4a, 0x93, 0xa5, 0x88, 0x1a, 0xa3, 0xe6, 0x0b, 0x7d, 0x6f, 0xf8,
+ 0x4c, 0x58, 0x3b, 0xc9, 0x33, 0xb0, 0x93, 0x66, 0xd0, 0x99, 0x92, 0xad,
+ 0x5e, 0xd9, 0x95, 0x4f, 0x3c, 0x57, 0xff, 0xff, 0xf3, 0x18, 0x74, 0x68,
+ 0x30, 0x3e, 0xa8, 0x09, 0x19, 0x29, 0xbf, 0x5b, 0x3c, 0xd0, 0x1b, 0x6f,
+ 0x80, 0x2d, 0xe2, 0x1d, 0x49, 0x9e, 0x5d, 0xe0, 0x22, 0x67, 0xa4, 0x1d,
+ 0xeb, 0xaa, 0xae, 0xbf, 0x77, 0x1a, 0xec, 0xac, 0xf7, 0xbe, 0xb5, 0x9c,
+ 0x66, 0xf1, 0x92, 0x7f, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xcc, 0x50,
+ 0x0f, 0x0f, 0xf0, 0x94, 0x26, 0x7d, 0xad, 0xa5, 0xfa, 0x02, 0x3d, 0xc1,
+ 0x0f, 0x32, 0xab, 0x76, 0x33, 0x8d, 0x25, 0x3e, 0xf8, 0xff, 0xbf, 0x21,
+ 0xa5, 0x95, 0x40, 0xad, 0xaf, 0x65, 0x84, 0xbc, 0x08, 0x42, 0x9c, 0xf2,
+ 0xf0, 0xfd, 0xdc, 0x20, 0x2c, 0xce, 0x10, 0x0f, 0xe1, 0x36, 0x1b, 0xc5,
+ 0xe6, 0xff, 0x39, 0x9f, 0xc1, 0x03, 0xe3, 0xc5, 0x9b, 0x80, 0x02, 0x4f,
+ 0x17, 0xed, 0x04, 0x40, 0x99, 0x0a, 0x0a, 0x5c, 0x10, 0xbc, 0x9f, 0xa9,
+ 0x92, 0xf2, 0xbc, 0x4c, 0x4e, 0x69, 0xeb, 0x13, 0xff, 0x84, 0x84, 0x6f,
+ 0x84, 0x3c, 0x12, 0x37, 0xc1, 0x06, 0xcf, 0x62, 0x6f, 0xf3, 0x3a, 0xe7,
+ 0x82, 0x04, 0x36, 0x48, 0xf1, 0xf0, 0x82, 0xbf, 0xf8, 0xaf, 0x5f, 0xc6,
+ 0x98, 0xb1, 0xb2, 0x9d, 0xec, 0xb3, 0x7a, 0xb7, 0xff, 0x0f, 0xe0, 0x9d,
+ 0xa9, 0xbf, 0xbb, 0xfc, 0x66, 0x2b, 0xd4, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xad, 0x64, 0x08, 0x5f, 0x51, 0xbf, 0x81, 0xb7, 0x13, 0xdf, 0x20,
+ 0x88, 0xe9, 0xc3, 0xe3, 0x3f, 0x15, 0x80, 0xe2, 0x01, 0x61, 0x53, 0x3c,
+ 0x07, 0x04, 0x25, 0x35, 0x33, 0xfc, 0x67, 0xfd, 0xff, 0xff, 0x8d, 0xc7,
+ 0x7f, 0xff, 0xf2, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xff,
+ 0xff, 0xfc, 0x29, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xfd, 0xff, 0xfe, 0x6f,
+ 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x10,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0x98,
+ 0x4e, 0x83, 0x02, 0x56, 0xb4, 0x9a, 0x19, 0x89, 0x8a, 0xff, 0xff, 0xff,
+ 0x7e, 0x18, 0x30, 0x29, 0xc0, 0x1e, 0x36, 0x98, 0x58, 0x48, 0xfb, 0x58,
+ 0xe1, 0xa9, 0xe2, 0x3e, 0x3a, 0x44, 0xf8, 0xed, 0xa8, 0x97, 0x16, 0x1c,
+ 0x07, 0x0c, 0x07, 0xf0, 0x97, 0xe0, 0x80, 0x5a, 0x1d, 0xdb, 0x98, 0x9e,
+ 0xee, 0x71, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0xdc, 0x60, 0x1e, 0x2c, 0x9c,
+ 0x12, 0x3d, 0x80, 0xd2, 0xb7, 0x1b, 0x68, 0x3d, 0xf5, 0xb1, 0x93, 0x3f,
+ 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x62, 0x62, 0x30, 0x09, 0xc2, 0xab, 0x60,
+ 0xfc, 0xd1, 0xf8, 0x3f, 0xf9, 0xd6, 0x57, 0x83, 0x4b, 0x21, 0x75, 0xc9,
+ 0x8e, 0x0c, 0x7d, 0xa1, 0xf6, 0x94, 0x28, 0xfa, 0x02, 0xbf, 0x0c, 0x57,
+ 0x55, 0x15, 0xff, 0x84, 0x9e, 0xfa, 0x01, 0x78, 0x63, 0x15, 0xf0, 0xea,
+ 0xa1, 0x82, 0x75, 0x84, 0x0d, 0x00, 0xc8, 0x31, 0xf0, 0xc7, 0xc3, 0xd5,
+ 0x7e, 0x47, 0xf1, 0xaf, 0xb0, 0x4d, 0x60, 0x25, 0x6b, 0x9f, 0x9e, 0x09,
+ 0xeb, 0x1b, 0x06, 0xd2, 0xa5, 0xff, 0xef, 0xe3, 0x20, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x2e, 0xac, 0x55, 0x80, 0x82, 0xf9, 0x5f, 0xf5, 0xf8, 0xcf,
+ 0xbf, 0x84, 0x3f, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6, 0xff, 0x27, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xec, 0x61,
+ 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc2, 0x76, 0x43, 0x4f, 0xfb,
+ 0xc3, 0x31, 0x7c, 0x48, 0xf6, 0x06, 0xbe, 0xdf, 0xe0, 0x08, 0x15, 0x29,
+ 0xb8, 0xdf, 0xa9, 0x9e, 0x26, 0x2b, 0xff, 0xff, 0xf9, 0x82, 0x58, 0xcb,
+ 0x47, 0xe5, 0x3f, 0x0e, 0x27, 0xd1, 0xff, 0xf8, 0xa4, 0x1a, 0x4f, 0xe3,
+ 0x72, 0x10, 0xee, 0x24, 0x7a, 0x03, 0xfd, 0x4c, 0x35, 0x4c, 0x8e, 0x44,
+ 0x1d, 0x8f, 0x9e, 0x70, 0x32, 0x98, 0xd9, 0xad, 0x83, 0x80, 0xc6, 0x03,
+ 0x64, 0x0e, 0xb5, 0xf3, 0x76, 0x7f, 0xf4, 0x63, 0x4b, 0x73, 0xc0, 0x8f,
+ 0xf0, 0xfe, 0x4d, 0x65, 0x24, 0x31, 0xcb, 0x61, 0x01, 0x7f, 0x23, 0xae,
+ 0xf4, 0x6c, 0xed, 0x1d, 0x5e, 0xf0, 0xeb, 0xfc, 0x43, 0xff, 0xd9, 0xff,
+ 0x1e, 0x44, 0x67, 0x96, 0x44, 0x2c, 0xae, 0x16, 0x58, 0x39, 0x11, 0x9e,
+ 0x5a, 0x4f, 0x81, 0x07, 0xf1, 0x22, 0xfe, 0x0c, 0xaf, 0x7f, 0x74, 0x7d,
+ 0xee, 0x2c, 0x23, 0x18, 0xd2, 0x2d, 0x9f, 0x88, 0xa5, 0x8a, 0xff, 0xff,
+ 0xfe, 0x30, 0xdc, 0x23, 0xf3, 0xd3, 0xd7, 0x32, 0xe6, 0x9c, 0x7e, 0xd8,
+ 0x61, 0x33, 0xfa, 0x0c, 0x90, 0x20, 0x13, 0x30, 0xbc, 0x1d, 0x66, 0xfc,
+ 0x42, 0x4c, 0xc1, 0xed, 0xf8, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0xc5, 0xa4,
+ 0x71, 0x40, 0x9f, 0x0b, 0x18, 0x53, 0xc8, 0xbc, 0xe7, 0xc1, 0x9f, 0x82,
+ 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f, 0x20, 0x88, 0xdb, 0x37,
+ 0xff, 0xe4, 0x50, 0x42, 0x68, 0x03, 0x23, 0x14, 0x66, 0x43, 0xe0, 0x07,
+ 0x20, 0xfc, 0x3c, 0xcd, 0xfb, 0xde, 0x31, 0x4a, 0x59, 0x38, 0x02, 0x19,
+ 0x58, 0x7c, 0xc7, 0xbf, 0x20, 0x06, 0xa0, 0xa4, 0xc8, 0x0b, 0xa6, 0x08,
+ 0x72, 0x1d, 0xbb, 0x80, 0xcc, 0x05, 0x4c, 0x0b, 0x65, 0x06, 0x0b, 0xff,
+ 0xd8, 0x28, 0x03, 0xad, 0x7a, 0x3e, 0x78, 0x7f, 0xf7, 0xff, 0xff, 0xfc,
+ 0x41, 0x15, 0x88, 0x82, 0x03, 0x60, 0x1e, 0xed, 0xc5, 0xa8, 0x70, 0x07,
+ 0x55, 0x70, 0x7a, 0x1c, 0xc1, 0xcd, 0x1f, 0x0f, 0xfc, 0x24, 0xc3, 0xe9,
+ 0xa0, 0x66, 0x3c, 0xad, 0x40, 0xbe, 0x00, 0x8a, 0x68, 0x19, 0x8e, 0x6a,
+ 0xd4, 0x00, 0x8a, 0x68, 0x19, 0x8a, 0x6a, 0xd5, 0xe1, 0xce, 0x69, 0x5b,
+ 0xc8, 0x9b, 0xf0, 0x99, 0x63, 0x80, 0x7f, 0x10, 0x3f, 0x01, 0xf8, 0x40,
+ 0x0e, 0x35, 0x3c, 0xf4, 0xbf, 0xa1, 0x61, 0x49, 0x40, 0x03, 0x2b, 0x77,
+ 0x77, 0x5f, 0xff, 0xff, 0x85, 0x5b, 0x26, 0x46, 0x47, 0x55, 0xef, 0xff,
+ 0xcc, 0x14, 0xfa, 0x45, 0x3e, 0x13, 0x37, 0xc0, 0x31, 0xff, 0x3a, 0x81,
+ 0x81, 0x8f, 0x5c, 0x3b, 0xf9, 0xfe, 0x00, 0x93, 0xf7, 0x24, 0x1c, 0xf8,
+ 0x4d, 0xc3, 0x28, 0x3f, 0x0c, 0x8a, 0xd8, 0x1f, 0x81, 0x0d, 0x42, 0x1d,
+ 0xe0, 0x51, 0xdc, 0x56, 0x50, 0xb4, 0xd1, 0x84, 0x2e, 0x1d, 0x3f, 0xa3,
+ 0xc4, 0xe6, 0xa7, 0xa7, 0xd2, 0x98, 0xa1, 0x94, 0x7d, 0x82, 0xd8, 0x3f,
+ 0x0f, 0x5d, 0x98, 0x35, 0xba, 0x3e, 0x06, 0x64, 0x1f, 0x76, 0xd9, 0x3f,
+ 0xf8, 0x82, 0x16, 0x12, 0x61, 0x60, 0x71, 0xde, 0xc2, 0x92, 0x80, 0x08,
+ 0xad, 0xf7, 0x77, 0x7e, 0xfd, 0xf8, 0x01, 0xa0, 0xe6, 0x66, 0x89, 0x3c,
+ 0xbd, 0xff, 0xfe, 0x02, 0x62, 0x90, 0x47, 0x99, 0x42, 0x3c, 0xea, 0xed,
+ 0xcc, 0x46, 0x32, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb1, 0x84, 0x57,
+ 0x21, 0x21, 0x74, 0x00, 0x27, 0xf2, 0xa0, 0xec, 0x2b, 0x3e, 0x02, 0x66,
+ 0xb8, 0x0f, 0xfa, 0xb2, 0xf0, 0x8a, 0xc3, 0x3b, 0xb2, 0xf8, 0x11, 0xdd,
+ 0x01, 0xfe, 0x2d, 0xa4, 0x1b, 0xef, 0x13, 0x13, 0xf8, 0xde, 0x3c, 0x46,
+ 0xd2, 0x0f, 0xc3, 0xf8, 0x22, 0x6c, 0x0f, 0xde, 0x68, 0x58, 0x45, 0xc1,
+ 0xfa, 0x3f, 0xc5, 0xb1, 0x37, 0xf0, 0x3f, 0xd4, 0x9f, 0xf0, 0xca, 0x26,
+ 0xcc, 0xd9, 0x9d, 0xef, 0x7c, 0x22, 0xb8, 0x04, 0x8f, 0xd7, 0xb0, 0x6e,
+ 0x7f, 0xba, 0x4a, 0x66, 0x5e, 0x13, 0x00, 0x8f, 0x5f, 0x87, 0xfc, 0x7b,
+ 0x4f, 0xf0, 0x7e, 0x01, 0xff, 0xdb, 0x01, 0x3b, 0x5c, 0x05, 0xf2, 0xc4,
+ 0xfb, 0x03, 0xfd, 0x5f, 0xed, 0x48, 0x0f, 0xf1, 0x78, 0x43, 0x91, 0xe1,
+ 0xe8, 0x31, 0x1f, 0xda, 0xa6, 0x19, 0xbd, 0x87, 0xf1, 0x0a, 0xd0, 0x4a,
+ 0xba, 0x9b, 0x08, 0xd8, 0x31, 0x66, 0xda, 0x04, 0xbc, 0xbe, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0,
+ 0x87, 0xff, 0xef, 0xff, 0xf3, 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xab, 0x57, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x16, 0x51, 0x38, 0x69, 0x0b, 0x2e, 0x4c,
+ 0x49, 0x62, 0xbf, 0xfd, 0xfb, 0xff, 0xdf, 0xac, 0x50, 0x80, 0x24, 0xde,
+ 0x73, 0xf5, 0x8c, 0x75, 0x78, 0x2e, 0x20, 0xad, 0xbe, 0x00, 0x4c, 0x39,
+ 0x43, 0xff, 0x71, 0x3a, 0xf5, 0x5e, 0xb9, 0x6c, 0x6c, 0xa4, 0x90, 0x48,
+ 0x81, 0x27, 0x07, 0x5c, 0x93, 0x31, 0xd6, 0xde, 0xd6, 0xf6, 0xf1, 0xd0,
+ 0x12, 0xda, 0x95, 0x15, 0x7f, 0xc5, 0x7f, 0xfb, 0xf5, 0x8c, 0xf0, 0xc2,
+ 0x69, 0x6e, 0xc8, 0x04, 0xb7, 0x44, 0x66, 0x5e, 0x16, 0xff, 0xcd, 0x9e,
+ 0x03, 0x89, 0x71, 0xcd, 0x07, 0x5e, 0x97, 0x04, 0xb7, 0x87, 0x58, 0x62,
+ 0x4c, 0xcd, 0x5d, 0x9b, 0x44, 0xe1, 0x8f, 0xff, 0xc8, 0xa0, 0x84, 0xb0,
+ 0x02, 0x23, 0xdc, 0x99, 0xa3, 0xf7, 0xcd, 0xfa, 0xca, 0x4f, 0x82, 0x58,
+ 0xca, 0x32, 0x1b, 0xfb, 0xff, 0xf7, 0xe4, 0xc3, 0x21, 0x01, 0x08, 0x11,
+ 0x5e, 0xd3, 0x37, 0xd3, 0x9f, 0xf8, 0x09, 0x9b, 0xba, 0xff, 0x09, 0x07,
+ 0x28, 0x03, 0xa7, 0xec, 0xe3, 0x7d, 0x49, 0x41, 0x48, 0x9f, 0x71, 0xaa,
+ 0x4e, 0x3c, 0xe1, 0x89, 0x4a, 0x1b, 0x5b, 0xf0, 0x99, 0x78, 0xfe, 0x61,
+ 0x2b, 0x05, 0x59, 0xfe, 0x18, 0x04, 0x9e, 0x9f, 0x30, 0x03, 0x82, 0x7e,
+ 0x08, 0x9f, 0x1f, 0xe0, 0xe1, 0xb8, 0xb7, 0x7e, 0x04, 0xff, 0x8f, 0x4a,
+ 0xbb, 0x7c, 0x73, 0xe8, 0x35, 0x13, 0x86, 0x12, 0x69, 0x0e, 0x78, 0x4f,
+ 0x16, 0x30, 0x32, 0x8b, 0x03, 0xfa, 0x01, 0xf8, 0xf8, 0x20, 0x7b, 0x7c,
+ 0x76, 0xc9, 0x11, 0x90, 0x4e, 0x10, 0x60, 0x01, 0x76, 0xf8, 0xd8, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x81, 0x0b, 0xbe, 0x5d, 0x7c,
+ 0x63, 0xfd, 0xfc, 0x21, 0xdf, 0xe5, 0xdf, 0xff, 0xff, 0xff, 0xc9, 0xff,
+ 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff, 0x37, 0xf9, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xed,
+ 0x69, 0x01, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xc4, 0x4a, 0x27, 0x1d, 0x68,
+ 0x09, 0x77, 0x76, 0xb6, 0xc4, 0xf6, 0x48, 0x89, 0xb8, 0x08, 0xe8, 0xf4,
+ 0x6c, 0x3c, 0x5f, 0xff, 0xff, 0xff, 0xfc, 0x50, 0x88, 0x12, 0xb5, 0xa4,
+ 0xd5, 0x14, 0xd3, 0x2b, 0x4d, 0xde, 0x63, 0x00, 0xfd, 0x14, 0x4e, 0xe9,
+ 0x17, 0x46, 0xac, 0xf9, 0x8e, 0x9f, 0x9b, 0x0d, 0x4e, 0x09, 0x8d, 0xff,
+ 0x32, 0x0c, 0xbf, 0xf8, 0x13, 0x7e, 0x0f, 0x7e, 0x6f, 0x63, 0xde, 0x74,
+ 0x4a, 0xc6, 0x38, 0x36, 0x23, 0x68, 0xea, 0x61, 0xaa, 0x1b, 0xbe, 0x5b,
+ 0xba, 0xfd, 0x0d, 0xf1, 0xe9, 0x5e, 0x63, 0x4d, 0x60, 0x0c, 0xcf, 0x6a,
+ 0x05, 0x91, 0xfe, 0xe5, 0xca, 0xc6, 0x43, 0x52, 0xc4, 0x7b, 0x1b, 0xb3,
+ 0xc3, 0x4e, 0xa9, 0x0b, 0xcd, 0xcc, 0xcb, 0xe0, 0x3a, 0x87, 0x61, 0xc2,
+ 0x8b, 0x00, 0xc6, 0x2e, 0xbc, 0xde, 0xbf, 0xde, 0xd7, 0xea, 0xb5, 0xb7,
+ 0x8a, 0xff, 0xff, 0xff, 0x9b, 0xfa, 0xed, 0x76, 0x55, 0x8c, 0x36, 0x06,
+ 0xcd, 0x4b, 0x70, 0x2a, 0x38, 0x26, 0xb0, 0x78, 0xfd, 0x07, 0x49, 0x9f,
+ 0xa5, 0xe5, 0x75, 0xb5, 0x9f, 0xef, 0x07, 0x21, 0x8c, 0xc2, 0xf8, 0xbc,
+ 0x3f, 0xe1, 0x22, 0x90, 0x60, 0xf8, 0x30, 0x49, 0x07, 0x99, 0xd6, 0x2a,
+ 0xac, 0x5d, 0x5a, 0x78, 0x9e, 0x11, 0x2a, 0x7a, 0x38, 0x5d, 0xa8, 0xd4,
+ 0xae, 0x13, 0xb3, 0xc1, 0x5e, 0x99, 0xf2, 0x7f, 0xff, 0xff, 0xcc, 0x81,
+ 0x5c, 0x07, 0xfe, 0x12, 0x4d, 0x66, 0xc2, 0x4f, 0x52, 0x98, 0x85, 0x94,
+ 0x4d, 0x46, 0x9a, 0x79, 0xa5, 0xb3, 0xfc, 0x4c, 0x6e, 0x78, 0x8d, 0x01,
+ 0x06, 0x10, 0x89, 0xf8, 0x0f, 0xbd, 0x33, 0x81, 0x8a, 0x69, 0x9a, 0xf1,
+ 0xde, 0xe0, 0xc6, 0x2b, 0x00, 0x77, 0x7b, 0x30, 0xf7, 0x28, 0x92, 0x9a,
+ 0x09, 0x3b, 0x0a, 0x3a, 0x66, 0x0f, 0x2d, 0xb2, 0x16, 0x41, 0x98, 0x18,
+ 0xf3, 0x5e, 0x3b, 0xd8, 0x89, 0xef, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xb5, 0xa4, 0x0e, 0x7e, 0x5f, 0x5f, 0xf1, 0x9f, 0xf7, 0xff,
+ 0x08, 0xff, 0xc1, 0x6f, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9,
+ 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x99, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0xc5,
+ 0xe3, 0xa6, 0xdb, 0xf7, 0xf3, 0x70, 0xf3, 0x76, 0x8b, 0x2b, 0x4a, 0x8f,
+ 0x29, 0x74, 0xd3, 0xfd, 0xe2, 0xbf, 0xff, 0xf7, 0x98, 0x45, 0x14, 0x25,
+ 0xfb, 0x5f, 0xbc, 0x22, 0xcc, 0x80, 0xc6, 0x50, 0xe0, 0xce, 0x18, 0x31,
+ 0xb7, 0x0f, 0x18, 0x00, 0x1f, 0x0e, 0x18, 0x34, 0x0b, 0x3e, 0xcc, 0xe4,
+ 0x8a, 0x63, 0x64, 0x04, 0x4f, 0x83, 0xee, 0xa0, 0x65, 0x30, 0x18, 0xf7,
+ 0xea, 0x70, 0x02, 0x39, 0x32, 0xd3, 0x35, 0x60, 0x14, 0xa9, 0x7e, 0x99,
+ 0x7f, 0xb3, 0xc1, 0x03, 0xe4, 0x27, 0x59, 0xa5, 0xa1, 0x84, 0xfe, 0xd2,
+ 0xfc, 0x26, 0x75, 0x5a, 0x22, 0x74, 0x7b, 0x71, 0x0e, 0x7f, 0x15, 0xff,
+ 0xfc, 0x31, 0xc7, 0x80, 0x1a, 0x0e, 0xa9, 0x16, 0x4c, 0x26, 0x7d, 0xac,
+ 0x1d, 0x5d, 0x2c, 0x0e, 0xae, 0x4c, 0x10, 0xca, 0x16, 0x5a, 0xf1, 0x93,
+ 0x25, 0x7a, 0x79, 0x30, 0x55, 0x39, 0x9f, 0x2b, 0xe0, 0x0b, 0xf3, 0xf0,
+ 0xc7, 0xef, 0x7f, 0xf0, 0x91, 0xf8, 0x16, 0x1c, 0x42, 0x84, 0x12, 0x03,
+ 0x94, 0x87, 0xc3, 0x02, 0xfb, 0x8f, 0xff, 0x0f, 0x34, 0x49, 0xfe, 0x57,
+ 0xfb, 0xeb, 0xfe, 0xff, 0xff, 0x86, 0x19, 0x4c, 0x42, 0xe3, 0xff, 0x09,
+ 0x18, 0x23, 0xcf, 0x9f, 0x9d, 0xe5, 0xcc, 0x1d, 0xe5, 0x2c, 0x77, 0xcd,
+ 0x27, 0x31, 0x83, 0xf5, 0x78, 0x9d, 0x23, 0xd9, 0xf8, 0x6a, 0x2f, 0x0d,
+ 0xfa, 0xeb, 0x1d, 0xb0, 0xcf, 0xae, 0xb1, 0xdc, 0x31, 0xfc, 0x3f, 0xe1,
+ 0x41, 0x10, 0x0e, 0xe8, 0xc5, 0xf3, 0xf0, 0x4b, 0xe6, 0xe6, 0x86, 0x22,
+ 0x93, 0x06, 0x38, 0x40, 0xc9, 0x92, 0xc8, 0x26, 0x55, 0x49, 0xb8, 0xac,
+ 0xaa, 0xce, 0xc5, 0xaf, 0x3b, 0x57, 0x59, 0x84, 0xea, 0x6e, 0x2c, 0xad,
+ 0x6a, 0xce, 0x15, 0x27, 0x89, 0x47, 0x58, 0x62, 0x0f, 0x59, 0xa1, 0x4e,
+ 0x16, 0x6b, 0x65, 0x90, 0x36, 0x9a, 0x0d, 0xc2, 0xb6, 0xbd, 0x09, 0x70,
+ 0x8b, 0xed, 0x7f, 0xf4, 0x6b, 0x13, 0x2a, 0x28, 0xe8, 0x70, 0xc6, 0x88,
+ 0x27, 0x39, 0x4e, 0x12, 0xb8, 0x1b, 0x6a, 0x59, 0x4e, 0xd4, 0xa2, 0x93,
+ 0x99, 0xa7, 0x12, 0xda, 0xfd, 0xe5, 0x52, 0xa6, 0x76, 0xd4, 0x86, 0x30,
+ 0xa7, 0xa4, 0x9a, 0x7b, 0x70, 0x60, 0x2c, 0x83, 0x98, 0x63, 0xce, 0xf1,
+ 0xa9, 0x32, 0xa2, 0x54, 0xeb, 0x10, 0xfe, 0x36, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xae, 0x65, 0x81, 0x8e, 0x43, 0x40, 0x8c, 0xad, 0x4c, 0xfe,
+ 0xea, 0x49, 0x4b, 0x29, 0x25, 0x2d, 0xfb, 0x60, 0x9b, 0xd8, 0x52, 0x4a,
+ 0x5b, 0xf1, 0x04, 0x06, 0x02, 0xc8, 0x12, 0x7e, 0x05, 0xc6, 0xc2, 0xc1,
+ 0x60, 0xb5, 0x14, 0xa5, 0x2d, 0xe4, 0x66, 0x99, 0x57, 0x88, 0x2c, 0x08,
+ 0xeb, 0xa6, 0x7e, 0xc6, 0xa7, 0xff, 0xaf, 0x8c, 0xfb, 0xfb, 0x0c, 0x70,
+ 0xab, 0x7d, 0x82, 0x96, 0x28, 0x51, 0xc0, 0xc2, 0x44, 0x99, 0x80, 0x8e,
+ 0x99, 0x90, 0x1f, 0x42, 0x8c, 0xb4, 0x90, 0x72, 0x39, 0x7c, 0xc0, 0x1a,
+ 0x86, 0xc9, 0xcf, 0x30, 0x32, 0x63, 0xc7, 0x03, 0x09, 0x12, 0x66, 0x20,
+ 0x05, 0xf8, 0x10, 0xb6, 0x1f, 0x44, 0x12, 0x39, 0xee, 0x18, 0xc3, 0x56,
+ 0xfb, 0x05, 0x23, 0x20, 0x23, 0xa6, 0x64, 0x07, 0xd0, 0xa3, 0x2d, 0x24,
+ 0x1c, 0x8e, 0x5f, 0x30, 0x06, 0xa1, 0xb2, 0x73, 0xcc, 0x0c, 0x98, 0x23,
+ 0x6d, 0xaf, 0xc0, 0x98, 0xc4, 0x00, 0xbf, 0x02, 0x16, 0xc3, 0xe8, 0x82,
+ 0x47, 0x3d, 0xc3, 0x18, 0x6a, 0xdf, 0x60, 0xa4, 0x64, 0x04, 0x74, 0xcc,
+ 0x80, 0xfa, 0x14, 0x65, 0xa4, 0x83, 0x91, 0xcb, 0xe6, 0x00, 0xd4, 0x36,
+ 0x4e, 0x79, 0x81, 0x93, 0x04, 0x6d, 0xb5, 0xf8, 0x13, 0x18, 0x80, 0x17,
+ 0xe0, 0x42, 0xd8, 0x7d, 0x10, 0x48, 0xe7, 0xb8, 0x63, 0x0d, 0x58, 0xbe,
+ 0x34, 0x8c, 0x80, 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x9b, 0x0a,
+ 0xb4, 0xe0, 0x9c, 0x06, 0x5b, 0x6d, 0x82, 0x36, 0xda, 0xfc, 0x09, 0x83,
+ 0x67, 0xda, 0xc2, 0x75, 0x79, 0x1f, 0x5d, 0xa4, 0x80, 0x72, 0x0c, 0x89,
+ 0x93, 0x26, 0x27, 0x10, 0xc6, 0x1a, 0xb1, 0x68, 0x11, 0xa4, 0x64, 0x02,
+ 0x2d, 0xe3, 0x61, 0xd5, 0x3a, 0x0c, 0x4c, 0xd8, 0x55, 0xa7, 0x04, 0xe0,
+ 0x32, 0xdb, 0x6d, 0xc3, 0x35, 0x9e, 0x93, 0x37, 0x68, 0x4e, 0xaf, 0x23,
+ 0xeb, 0xb4, 0x90, 0x0e, 0x41, 0x91, 0x32, 0x64, 0xc4, 0xe2, 0x18, 0xc3,
+ 0x56, 0x2d, 0x02, 0x34, 0x8c, 0x80, 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41,
+ 0x89, 0x9b, 0x0a, 0xb4, 0xe0, 0x9c, 0x06, 0x5b, 0x6d, 0xb8, 0x66, 0xb3,
+ 0xd2, 0x66, 0xed, 0x09, 0xd5, 0xe4, 0x7d, 0x76, 0x92, 0x01, 0xc8, 0x32,
+ 0x26, 0x4c, 0x98, 0x9c, 0x43, 0x18, 0x6a, 0xc7, 0xa0, 0x53, 0x8c, 0x80,
+ 0x45, 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x9b, 0x0a, 0xb4, 0xe1, 0x80,
+ 0x18, 0x34, 0x38, 0x66, 0xb3, 0xd2, 0x66, 0xed, 0x09, 0xd5, 0xe4, 0x7d,
+ 0x76, 0xd6, 0x14, 0x1e, 0x16, 0x44, 0xcd, 0x3e, 0x4d, 0x50, 0xc7, 0xd4,
+ 0xcc, 0x29, 0x64, 0xe3, 0x20, 0x11, 0x6f, 0x1b, 0x0e, 0xa9, 0xd0, 0x62,
+ 0x65, 0x80, 0x91, 0x86, 0x00, 0x60, 0xd0, 0xe6, 0xdc, 0x9f, 0x80, 0x8f,
+ 0x7d, 0x1e, 0x01, 0x55, 0xd2, 0xaa, 0x2f, 0x50, 0xb8, 0x19, 0x7b, 0x1e,
+ 0xc5, 0xb9, 0x37, 0x43, 0x1f, 0x53, 0x30, 0xa5, 0x93, 0x8c, 0x80, 0x45,
+ 0xbc, 0x6c, 0x3a, 0xa7, 0x41, 0x89, 0x96, 0x02, 0x46, 0x18, 0x01, 0x83,
+ 0x43, 0x9b, 0x72, 0x7e, 0x02, 0x3d, 0xf4, 0x78, 0x05, 0x57, 0x4a, 0xa8,
+ 0xbd, 0x42, 0xe0, 0x65, 0xec, 0x7b, 0x16, 0xe4, 0xdd, 0x0c, 0x7d, 0x4c,
+ 0xc2, 0x96, 0x4e, 0x32, 0x01, 0x16, 0xf1, 0xb0, 0xea, 0x9d, 0x06, 0x26,
+ 0x58, 0x09, 0x18, 0x60, 0x06, 0x0d, 0x0e, 0x6d, 0xc9, 0xf8, 0x08, 0xf7,
+ 0xd1, 0xe0, 0x15, 0x5d, 0x2a, 0xa2, 0xf5, 0x0b, 0x81, 0x97, 0xb1, 0xec,
+ 0x5b, 0x93, 0x74, 0x31, 0xf3, 0x54, 0x0a, 0x5b, 0xc6, 0x40, 0x4d, 0x99,
+ 0x84, 0x9f, 0xa9, 0xea, 0xa5, 0x22, 0xc0, 0x48, 0xc1, 0xc1, 0xe9, 0xe7,
+ 0xb9, 0xb7, 0x27, 0xe0, 0x23, 0x36, 0xd0, 0xf8, 0x08, 0x58, 0xa4, 0x98,
+ 0x7b, 0xe8, 0x88, 0xde, 0xd6, 0x97, 0x55, 0x58, 0x3d, 0xea, 0x18, 0xf9,
+ 0xaa, 0x05, 0x1d, 0xa1, 0x8c, 0x80, 0x9b, 0x33, 0x09, 0x3f, 0x53, 0xd5,
+ 0x4a, 0x45, 0x80, 0x91, 0x83, 0x83, 0xd3, 0xcf, 0x74, 0xe9, 0x30, 0x23,
+ 0x33, 0xaf, 0x80, 0x42, 0xc5, 0x24, 0xc3, 0xdf, 0x44, 0x48, 0xda, 0xd2,
+ 0xea, 0xab, 0x07, 0xbd, 0x43, 0x1f, 0x35, 0x40, 0xa3, 0xb4, 0x31, 0x90,
+ 0x13, 0x66, 0x61, 0x27, 0xea, 0x7a, 0xa9, 0x48, 0xb0, 0x12, 0x30, 0x70,
+ 0x7a, 0x79, 0xee, 0x9d, 0x26, 0x04, 0x66, 0x75, 0xf0, 0x08, 0x58, 0xa4,
+ 0x98, 0x7b, 0xe8, 0x89, 0x1b, 0x5a, 0x5d, 0x55, 0x60, 0xf7, 0xa8, 0x63,
+ 0xc0, 0x45, 0x02, 0x91, 0x46, 0x08, 0xc8, 0x09, 0xb3, 0x72, 0x7e, 0x97,
+ 0xa5, 0x0c, 0x92, 0x80, 0xdb, 0x35, 0xb4, 0xbd, 0x87, 0x74, 0xe9, 0x30,
+ 0x34, 0x99, 0x26, 0x32, 0x07, 0x20, 0x9e, 0x29, 0x2b, 0x59, 0x57, 0x11,
+ 0x9a, 0x28, 0x86, 0x05, 0x40, 0x32, 0x6f, 0x14, 0x60, 0xbc, 0x07, 0xf8,
+ 0x2a, 0xaa, 0x09, 0xf9, 0x86, 0x83, 0x2a, 0xf9, 0x92, 0x00, 0xc8, 0x4e,
+ 0xce, 0x11, 0xb6, 0xd6, 0x34, 0x9a, 0x4c, 0x2a, 0x07, 0x20, 0x4e, 0xd1,
+ 0x57, 0x95, 0x71, 0x19, 0xaa, 0x98, 0x63, 0x19, 0xa1, 0x20, 0x71, 0x46,
+ 0x0b, 0xe3, 0xbe, 0x8b, 0x22, 0x2d, 0x0a, 0x49, 0xc3, 0x69, 0x06, 0x03,
+ 0x27, 0xf9, 0xe4, 0x1e, 0x8f, 0x7c, 0x23, 0x6d, 0xac, 0x69, 0x34, 0x98,
+ 0x54, 0x0c, 0x41, 0x3c, 0x64, 0xad, 0x65, 0x73, 0x13, 0x4d, 0x54, 0xc3,
+ 0x1f, 0x36, 0x40, 0xe2, 0x0d, 0xb9, 0x63, 0xf0, 0x03, 0x26, 0xec, 0xcc,
+ 0x26, 0xe6, 0x8c, 0xf4, 0x07, 0xd0, 0x8d, 0x01, 0x91, 0x59, 0x55, 0x66,
+ 0x0c, 0x11, 0xe1, 0x1b, 0x6d, 0x63, 0x49, 0xa4, 0xc2, 0xa0, 0x72, 0x06,
+ 0xc1, 0xa5, 0x81, 0xa5, 0xfa, 0xee, 0x21, 0x71, 0xd2, 0x18, 0xf9, 0x92,
+ 0x7e, 0xd8, 0xc8, 0x01, 0x93, 0x76, 0x66, 0x13, 0x73, 0x46, 0x7a, 0x03,
+ 0xe8, 0x52, 0x41, 0x78, 0x07, 0x95, 0x66, 0x0c, 0x11, 0xf0, 0x99, 0xf6,
+ 0xbd, 0x62, 0x62, 0xe2, 0x98, 0x64, 0x1a, 0x5e, 0x1c, 0xee, 0x24, 0x78,
+ 0xf7, 0xab, 0x30, 0xc7, 0xcc, 0x93, 0xf6, 0xc6, 0x40, 0x0c, 0x9b, 0xb3,
+ 0x30, 0x9b, 0x9a, 0x33, 0xd0, 0x1f, 0x42, 0x92, 0x0b, 0xc0, 0x3c, 0xab,
+ 0x30, 0x60, 0x8f, 0x84, 0xcf, 0xb5, 0xd6, 0x26, 0x2e, 0x29, 0x86, 0x41,
+ 0xa5, 0xe1, 0xce, 0xe2, 0x47, 0x8f, 0x7a, 0xb3, 0x0c, 0x7d, 0xc9, 0x3e,
+ 0x8c, 0x51, 0x90, 0x03, 0x26, 0xec, 0xcc, 0x26, 0xe6, 0x26, 0x4b, 0xcc,
+ 0xe5, 0xa3, 0x02, 0x7f, 0x18, 0x56, 0xc9, 0x4a, 0x76, 0x8f, 0x09, 0x9f,
+ 0x6b, 0xac, 0x4c, 0x6b, 0xe1, 0x3b, 0x43, 0xfd, 0xb0, 0x62, 0xc7, 0xb2,
+ 0x09, 0xe9, 0x98, 0x62, 0xcc, 0x0d, 0xf8, 0x96, 0x17, 0x20, 0x4e, 0x4c,
+ 0x95, 0xc9, 0xa2, 0x17, 0x21, 0x0a, 0xca, 0x8e, 0x4d, 0x69, 0xa4, 0xe3,
+ 0x65, 0xd6, 0xdc, 0xdd, 0xde, 0x58, 0x0d, 0x62, 0x63, 0xc3, 0xdc, 0x82,
+ 0x72, 0xac, 0x96, 0xb1, 0xb8, 0x06, 0xd9, 0xe3, 0xdf, 0xef, 0x0c, 0x23,
+ 0x6d, 0xc6, 0x82, 0x58, 0x5e, 0x4f, 0x43, 0xd7, 0xa5, 0x72, 0x6a, 0x24,
+ 0x5d, 0xaa, 0x8e, 0x4d, 0x69, 0xa4, 0xe3, 0x65, 0xd6, 0xdc, 0xdd, 0xde,
+ 0x38, 0x0c, 0x62, 0x63, 0xc3, 0xdc, 0x82, 0x61, 0x41, 0xe1, 0x37, 0x00,
+ 0xdb, 0x3c, 0x7b, 0xfd, 0xe1, 0x84, 0x6d, 0xb8, 0xd0, 0x4b, 0x0b, 0xc9,
+ 0xe8, 0x7a, 0xf4, 0xae, 0x4d, 0x44, 0x8b, 0xb5, 0x51, 0xc9, 0xad, 0x34,
+ 0x9c, 0x6c, 0xba, 0xdb, 0x9b, 0xbb, 0xc7, 0x01, 0x8c, 0x4c, 0x78, 0x7b,
+ 0x90, 0x4c, 0x28, 0x3c, 0x26, 0xe0, 0x1b, 0x67, 0x8f, 0x7f, 0xbc, 0x30,
+ 0x9b, 0x30, 0x44, 0x41, 0x3f, 0x13, 0x93, 0xd0, 0xf5, 0xee, 0x44, 0xc2,
+ 0x24, 0x5d, 0xaa, 0x9c, 0x97, 0xa6, 0x2c, 0x7b, 0xb3, 0xbb, 0xa8, 0x6f,
+ 0x5f, 0x8e, 0x03, 0x18, 0x19, 0x2b, 0x6e, 0xc4, 0xbf, 0x02, 0x61, 0x41,
+ 0xe1, 0x2f, 0xd5, 0x26, 0xa1, 0x8e, 0xcc, 0x11, 0x40, 0x4e, 0x38, 0x9c,
+ 0x97, 0x93, 0xe7, 0x91, 0x30, 0x42, 0x78, 0x7b, 0x95, 0x4e, 0x4b, 0xd3,
+ 0x16, 0x3d, 0xd9, 0xdd, 0xd4, 0x37, 0xaf, 0xc3, 0x07, 0x97, 0xb4, 0xc9,
+ 0x5b, 0x70, 0x6b, 0xff, 0xd0, 0x77, 0xd1, 0x12, 0x10, 0xcd, 0x01, 0xa5,
+ 0x6c, 0x31, 0xd9, 0x82, 0x28, 0x09, 0xc7, 0x13, 0x92, 0xf2, 0x7c, 0xf2,
+ 0x26, 0x08, 0x4f, 0x0f, 0x72, 0xa9, 0xc9, 0x7a, 0x62, 0xc7, 0xbb, 0x3b,
+ 0xba, 0x86, 0xf5, 0xf8, 0x60, 0xf2, 0xf6, 0x99, 0x2b, 0x6e, 0x0d, 0x7f,
+ 0xfa, 0x0e, 0xfa, 0x22, 0x42, 0x19, 0xa0, 0x34, 0xad, 0x86, 0x3b, 0x36,
+ 0x08, 0x09, 0xc7, 0x79, 0x2f, 0x27, 0xcf, 0x22, 0x60, 0x84, 0xf0, 0xf7,
+ 0x2a, 0x9c, 0x97, 0xa6, 0x2c, 0x7b, 0xe0, 0xe8, 0x6f, 0x5e, 0x18, 0x3c,
+ 0xbd, 0xa6, 0x4a, 0xdb, 0x83, 0x5f, 0xfe, 0x83, 0xbe, 0x88, 0x90, 0x86,
+ 0x68, 0x0d, 0x2b, 0x7d, 0x7f, 0x0c, 0x76, 0xd8, 0x11, 0x91, 0xb2, 0xc4,
+ 0xc8, 0x8f, 0x8f, 0x79, 0x75, 0xc6, 0x06, 0xef, 0x67, 0x8e, 0x9f, 0xee,
+ 0x01, 0x41, 0xea, 0x49, 0xc9, 0x4e, 0x60, 0x42, 0x29, 0xd5, 0x15, 0x78,
+ 0x66, 0x4f, 0xf4, 0xf8, 0x3d, 0x0c, 0x76, 0xd8, 0x11, 0x91, 0xb2, 0xc4,
+ 0xc8, 0x8f, 0x8f, 0x79, 0x75, 0xe4, 0xa0, 0xdd, 0xec, 0xf1, 0xd3, 0xfd,
+ 0xc0, 0xa0, 0xf2, 0x92, 0x72, 0x53, 0x98, 0x10, 0x8d, 0x7c, 0x55, 0xe1,
+ 0x99, 0x3f, 0xd3, 0xe0, 0xf4, 0x31, 0xdb, 0x64, 0x46, 0x46, 0x8f, 0x72,
+ 0x23, 0xe3, 0xde, 0x5d, 0x79, 0x28, 0x37, 0x7b, 0x3c, 0x74, 0xff, 0x81,
+ 0x41, 0xe5, 0x24, 0xe4, 0xa7, 0x30, 0x21, 0x1a, 0xf8, 0xab, 0xc3, 0x32,
+ 0x7f, 0xa7, 0xc1, 0xeb, 0xfe, 0x18, 0xc7, 0xb2, 0x23, 0x23, 0x7c, 0x4e,
+ 0xe5, 0x3e, 0x3d, 0xcc, 0x1a, 0x07, 0x20, 0x65, 0xa9, 0xc6, 0xd6, 0x38,
+ 0x2f, 0xca, 0x01, 0x50, 0x76, 0xe7, 0x27, 0x00, 0x4b, 0x77, 0xa7, 0xc1,
+ 0xe4, 0x95, 0x91, 0x57, 0x90, 0xc6, 0x3d, 0x91, 0x12, 0xc1, 0x10, 0x89,
+ 0xb5, 0x88, 0x4e, 0xe1, 0xee, 0x01, 0xa0, 0x51, 0x06, 0xdf, 0x45, 0x3a,
+ 0xb1, 0x5e, 0x0b, 0xf2, 0x80, 0x54, 0x2e, 0x01, 0x21, 0x38, 0x01, 0x2d,
+ 0xde, 0x9f, 0x07, 0xa9, 0xb1, 0x57, 0x90, 0xc6, 0x3d, 0x91, 0x10, 0x18,
+ 0x22, 0x11, 0x36, 0xb1, 0x09, 0xdc, 0x3d, 0xc0, 0x34, 0x0a, 0x20, 0xdb,
+ 0xe8, 0xa7, 0x56, 0x2b, 0xc1, 0x7e, 0x50, 0x0a, 0x85, 0xc0, 0x24, 0x27,
+ 0x00, 0x24, 0x7a, 0xdb, 0x97, 0xda, 0x6c, 0x55, 0xe4, 0x31, 0x8e, 0x2c,
+ 0x88, 0xc0, 0xdf, 0x13, 0x6b, 0x01, 0x23, 0x7d, 0x1e, 0x06, 0x81, 0x44,
+ 0x1f, 0x73, 0x77, 0x15, 0x26, 0x99, 0xb5, 0x77, 0x41, 0x7e, 0x50, 0x0a,
+ 0x80, 0x2c, 0xd7, 0x24, 0xe0, 0x24, 0x7a, 0xdb, 0x97, 0xd3, 0x3c, 0x88,
+ 0x90, 0xc6, 0x98, 0xb2, 0x03, 0x5a, 0x5c, 0x4f, 0x02, 0x61, 0xb1, 0xbd,
+ 0x47, 0x8c, 0x14, 0x1e, 0x77, 0xee, 0x6e, 0xe2, 0xa4, 0xd3, 0x36, 0x89,
+ 0x5b, 0x08, 0x95, 0xac, 0x0a, 0x7e, 0xd2, 0x61, 0xae, 0x49, 0xd1, 0x06,
+ 0x4c, 0x0d, 0x2b, 0x48, 0xe8, 0x44, 0x43, 0x1a, 0x62, 0xc8, 0x0d, 0x69,
+ 0x16, 0x27, 0x81, 0x30, 0xd8, 0xde, 0xa3, 0xd2, 0x7c, 0x3d, 0x7b, 0xf7,
+ 0x37, 0x71, 0x52, 0x69, 0x9d, 0x12, 0xb6, 0x11, 0x2a, 0xd0, 0x14, 0xff,
+ 0xe4, 0xcd, 0x72, 0x4e, 0x88, 0x32, 0x60, 0x69, 0x5a, 0x3f, 0xd1, 0x12,
+ 0x18, 0xd3, 0x46, 0x00, 0x6b, 0x00, 0x8e, 0x27, 0x81, 0x30, 0xd8, 0xde,
+ 0xa3, 0xd4, 0x14, 0x1e, 0x77, 0xee, 0x6e, 0xea, 0x4c, 0x4e, 0x2d, 0x0e,
+ 0xee, 0x08, 0x95, 0xac, 0x0a, 0x7e, 0xd2, 0x66, 0xb9, 0x27, 0x44, 0x19,
+ 0x30, 0x34, 0xad, 0x1f, 0xe4, 0x44, 0x86, 0x11, 0xba, 0x71, 0x46, 0x00,
+ 0x0c, 0x4c, 0x33, 0x59, 0xe9, 0x75, 0x91, 0xd9, 0x2f, 0x27, 0xce, 0xa3,
+ 0x07, 0xb2, 0xc0, 0x66, 0x64, 0xc4, 0xe3, 0xd0, 0xee, 0xe2, 0x13, 0xc3,
+ 0xdc, 0x8b, 0x01, 0x8c, 0x0a, 0xac, 0x96, 0x98, 0x14, 0x1e, 0x14, 0x30,
+ 0x8d, 0xd3, 0x8a, 0x30, 0x00, 0x62, 0x61, 0x9a, 0xcf, 0x4b, 0xac, 0x8e,
+ 0xc9, 0x79, 0x3e, 0x75, 0x18, 0x3d, 0x96, 0x03, 0x33, 0x26, 0x27, 0x1e,
+ 0x87, 0x77, 0x10, 0x9e, 0x1e, 0xe4, 0x58, 0x0c, 0x60, 0x55, 0x64, 0xb4,
+ 0xc0, 0xa0, 0xf0, 0xa1, 0x84, 0x6e, 0x90, 0x8a, 0x30, 0x40, 0x2e, 0x19,
+ 0xac, 0xf4, 0xba, 0x64, 0x76, 0x4b, 0xc9, 0xf3, 0xa8, 0xc1, 0xec, 0xa8,
+ 0x6f, 0x5a, 0xe6, 0x4c, 0xe3, 0xb2, 0x13, 0xc3, 0xdc, 0x8b, 0x01, 0x8c,
+ 0x0a, 0xac, 0x96, 0x98, 0x14, 0x1e, 0x16, 0x06, 0x93, 0x24, 0xcf, 0xd9,
+ 0xe7, 0xbb, 0xae, 0xf6, 0x8e, 0x14, 0x92, 0x55, 0xe0, 0x7f, 0xb2, 0x80,
+ 0x8a, 0xd3, 0xae, 0x3b, 0x47, 0x09, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0x04,
+ 0x56, 0x9d, 0x71, 0xda, 0x38, 0x49, 0x12, 0x55, 0xe7, 0xfe, 0xe0, 0x22,
+ 0xb4, 0xeb, 0x8e, 0xd1, 0xc2, 0x48, 0x92, 0xaf, 0x3f, 0xf6, 0x80, 0x88,
+ 0x5a, 0x26, 0xab, 0xc8, 0xe1, 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x02, 0x21,
+ 0x68, 0x9a, 0xaf, 0x23, 0x85, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0x08, 0x85,
+ 0xa2, 0x6a, 0xbc, 0x8e, 0x14, 0x89, 0x2a, 0xf3, 0xff, 0x70, 0x22, 0x16,
+ 0x89, 0xaa, 0xf2, 0x38, 0x52, 0x24, 0xab, 0xcf, 0xfd, 0xc0, 0x88, 0x5a,
+ 0x26, 0xab, 0xc8, 0xe1, 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x02, 0x21, 0x68,
+ 0x9a, 0xaf, 0x23, 0x85, 0x22, 0x4a, 0xbc, 0xff, 0xdc, 0xc4, 0x2d, 0x13,
+ 0x55, 0xe1, 0x90, 0xa4, 0x49, 0x57, 0x9f, 0xfb, 0x98, 0x85, 0xa2, 0x6a,
+ 0xbc, 0x32, 0x14, 0x89, 0x2a, 0xf3, 0xff, 0x73, 0x10, 0xb4, 0x4d, 0x57,
+ 0x86, 0x42, 0x91, 0x25, 0x5e, 0x7f, 0xee, 0x62, 0x16, 0x89, 0xaa, 0xf0,
+ 0xc8, 0x52, 0x24, 0xab, 0xcf, 0xfd, 0xcc, 0x42, 0xd1, 0x35, 0x5e, 0x19,
+ 0x0a, 0x44, 0x95, 0x79, 0xff, 0xb9, 0x88, 0x5a, 0x26, 0xab, 0xc3, 0x21,
+ 0x48, 0x92, 0xaf, 0x3f, 0xf7, 0x31, 0x0b, 0x44, 0xd5, 0x78, 0x64, 0x29,
+ 0x12, 0x55, 0xe7, 0xfe, 0xd8, 0x11, 0x09, 0xa2, 0x6a, 0xbc, 0x0c, 0x1a,
+ 0x55, 0x47, 0x6f, 0xfd, 0xc0, 0x88, 0x4d, 0x13, 0x55, 0xe0, 0x60, 0xd2,
+ 0xaa, 0x3b, 0x7f, 0xec, 0x80, 0x36, 0x5a, 0x4d, 0x3f, 0x0c, 0x1a, 0xab,
+ 0x6f, 0xff, 0xff, 0xe1, 0x0f, 0xf7, 0xfe, 0x6f, 0xf2, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xee, 0x71,
+ 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0x61, 0x3c, 0x01, 0x85, 0xab, 0xe3,
+ 0x6f, 0x2f, 0xf0, 0xd6, 0x09, 0xfd, 0xe2, 0x66, 0xe1, 0x23, 0x7a, 0x00,
+ 0xfd, 0xfd, 0x3f, 0x18, 0x44, 0xb1, 0x5f, 0xff, 0xff, 0xff, 0xf1, 0x42,
+ 0x36, 0xee, 0xbf, 0x1c, 0x81, 0x8c, 0x12, 0xef, 0x6f, 0xf1, 0x71, 0xd1,
+ 0x8d, 0x40, 0x87, 0xd0, 0x93, 0x09, 0x2b, 0x99, 0x6b, 0x3f, 0xc2, 0x2c,
+ 0x78, 0xfd, 0xc6, 0x60, 0xe0, 0xce, 0x18, 0x30, 0xca, 0x7e, 0x1e, 0x30,
+ 0x00, 0x3e, 0x1c, 0x9f, 0x20, 0x9f, 0x20, 0xc2, 0x4f, 0xe8, 0x58, 0x44,
+ 0x0c, 0x71, 0xbf, 0x9e, 0xbb, 0x31, 0xc7, 0xda, 0x65, 0x3c, 0xb4, 0x03,
+ 0x33, 0x0d, 0x75, 0xe3, 0x4e, 0x02, 0x78, 0xa5, 0x7e, 0xa6, 0xf8, 0x73,
+ 0x61, 0xfd, 0xff, 0x09, 0x89, 0x21, 0x00, 0xb2, 0x0c, 0x75, 0x16, 0xb5,
+ 0x57, 0x7b, 0xfa, 0x00, 0xe5, 0xb7, 0xd9, 0xf2, 0x79, 0xbf, 0xff, 0xff,
+ 0xe6, 0xfc, 0x41, 0x8c, 0xc9, 0x52, 0xd6, 0x4e, 0x02, 0x3a, 0x3d, 0x3f,
+ 0x3a, 0xba, 0x04, 0xf0, 0x2f, 0x77, 0xf1, 0xac, 0x60, 0x99, 0x0c, 0xb1,
+ 0x23, 0x5c, 0x8b, 0x0d, 0xf8, 0x4c, 0xa8, 0x35, 0xb3, 0x1c, 0xf8, 0x13,
+ 0x45, 0x83, 0x7f, 0x26, 0x55, 0x1e, 0xea, 0xd0, 0x88, 0xf9, 0x7f, 0xc8,
+ 0x23, 0x02, 0x75, 0x48, 0xd3, 0x8f, 0xfc, 0x9f, 0x81, 0x24, 0x22, 0x36,
+ 0x0f, 0x62, 0x30, 0x10, 0x6a, 0xcf, 0xf3, 0x9f, 0xc2, 0x46, 0x6f, 0x8e,
+ 0x44, 0xe7, 0x57, 0x10, 0x6b, 0x3f, 0xf0, 0x82, 0xe0, 0x97, 0x80, 0x13,
+ 0x3a, 0x80, 0x6e, 0xd0, 0xf1, 0x8f, 0x7e, 0x16, 0x00, 0x05, 0xa7, 0x80,
+ 0x01, 0x68, 0xa0, 0x00, 0x5a, 0x28, 0x00, 0x16, 0x81, 0x29, 0x68, 0x02,
+ 0x03, 0xf0, 0x86, 0x16, 0x73, 0x48, 0x7c, 0x03, 0xc0, 0x00, 0xb4, 0x31,
+ 0x6f, 0xe2, 0x00, 0x9f, 0x50, 0x4f, 0xff, 0xff, 0xff, 0x10, 0x81, 0x15,
+ 0xf1, 0xcc, 0x83, 0x13, 0x32, 0xcf, 0x75, 0x88, 0x5c, 0x70, 0x26, 0x74,
+ 0x25, 0x9f, 0xd0, 0x4e, 0x5f, 0xde, 0xff, 0x7b, 0xc2, 0xb2, 0xbf, 0xff,
+ 0xf0, 0x06, 0x7d, 0xfd, 0x1d, 0xbc, 0x71, 0x05, 0x00, 0x03, 0x11, 0x40,
+ 0x00, 0xc4, 0x50, 0x00, 0x31, 0x04, 0x38, 0x00, 0x5b, 0x40, 0x46, 0x29,
+ 0x00, 0x20, 0x3f, 0x09, 0xb1, 0xab, 0x7d, 0x6d, 0x15, 0x2a, 0x3c, 0x18,
+ 0x21, 0xc0, 0x02, 0xda, 0x8e, 0x52, 0x40, 0x7e, 0x13, 0x7c, 0xa4, 0x80,
+ 0xfc, 0x2f, 0xf8, 0xef, 0x67, 0xf3, 0x79, 0x11, 0x14, 0x88, 0xbe, 0x09,
+ 0xba, 0xf8, 0x1f, 0xbe, 0x11, 0xb0, 0x25, 0xe7, 0xc6, 0xc0, 0x80, 0x43,
+ 0x48, 0x21, 0x3d, 0x78, 0xef, 0x7c, 0x85, 0x80, 0x42, 0xdd, 0x47, 0xd6,
+ 0xdf, 0x7e, 0x36, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4, 0x19,
+ 0x7f, 0xcb, 0xeb, 0xfe, 0x33, 0xfe, 0xff, 0xe1, 0x0f, 0xff, 0xcb, 0xef,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xff, 0xf0, 0xa7, 0xff,
+ 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9, 0xbf, 0xff, 0x27, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xab, 0xdb, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xf7, 0xfd, 0x93, 0x86, 0x3f, 0xf3,
+ 0xfc, 0x82, 0xbf, 0xff, 0xf7, 0xef, 0xdf, 0xc5, 0x20, 0xf7, 0x4b, 0xc0,
+ 0xb4, 0x70, 0x56, 0x40, 0xaa, 0x9e, 0x65, 0x8f, 0xe8, 0x32, 0xdf, 0x89,
+ 0x16, 0x0d, 0x24, 0x83, 0x34, 0xc5, 0xe7, 0xb3, 0x02, 0xbe, 0x72, 0xf7,
+ 0xf4, 0x0a, 0x4c, 0xdf, 0xff, 0xc3, 0x1f, 0x8a, 0xc7, 0x36, 0x62, 0x8b,
+ 0x37, 0x03, 0x66, 0xa5, 0x81, 0x0f, 0xbb, 0x3a, 0x97, 0x5e, 0x24, 0xad,
+ 0xf6, 0xac, 0x14, 0x3d, 0x1d, 0x9f, 0xbf, 0xe1, 0x87, 0x5c, 0x57, 0xff,
+ 0x84, 0x8f, 0x01, 0x0e, 0xe4, 0x8f, 0xad, 0xf0, 0xf5, 0x75, 0xdb, 0xf0,
+ 0x7f, 0x68, 0xf5, 0x7f, 0x58, 0x9f, 0x14, 0x00, 0x30, 0x09, 0xff, 0xa4,
+ 0x1e, 0x81, 0x40, 0x03, 0xf0, 0x58, 0x96, 0x19, 0x3f, 0xff, 0x86, 0x2d,
+ 0x4d, 0xbf, 0xf0, 0x96, 0x64, 0x10, 0x10, 0xda, 0x75, 0x6a, 0x16, 0xc4,
+ 0x4f, 0xe7, 0xd7, 0x0c, 0x7d, 0xad, 0xec, 0x6d, 0x85, 0x3c, 0x30, 0xf1,
+ 0x82, 0xd9, 0xc2, 0xda, 0xfc, 0x76, 0xc1, 0x2f, 0xff, 0xfe, 0xce, 0x18,
+ 0xb5, 0x8b, 0x95, 0xbf, 0x13, 0x8c, 0x88, 0x0e, 0xef, 0x90, 0x20, 0x1f,
+ 0xac, 0x76, 0xdf, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaf,
+ 0x6d, 0x81, 0xcb, 0xe5, 0xd7, 0xc6, 0x7d, 0xfc, 0x21, 0xff, 0xc9, 0xbf,
+ 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xf7, 0xfe,
+ 0x6f, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xef, 0x79, 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+ 0xef, 0x11, 0x31, 0xf0, 0x02, 0xda, 0x25, 0xb6, 0xc9, 0xba, 0xda, 0x63,
+ 0xd3, 0xca, 0xc2, 0x3c, 0xa5, 0xc4, 0x0f, 0x43, 0x7c, 0xbc, 0x57, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc9, 0xf9, 0x02, 0x18, 0x88, 0xa1, 0x84, 0xa0,
+ 0x3a, 0xd1, 0x92, 0x69, 0x76, 0x57, 0xf3, 0x4f, 0x53, 0x86, 0xfa, 0x9e,
+ 0x4c, 0x93, 0xe1, 0x0e, 0x4c, 0x48, 0xb8, 0x00, 0x2e, 0x53, 0xa0, 0x97,
+ 0xd6, 0xee, 0xef, 0xcd, 0x30, 0x36, 0x47, 0xf9, 0x3c, 0xdf, 0xff, 0xff,
+ 0xc5, 0x9a, 0x00, 0x42, 0x1b, 0xa2, 0xb3, 0xff, 0xfd, 0x5f, 0xe8, 0x09,
+ 0x40, 0x0e, 0x86, 0xdb, 0xdd, 0x20, 0x61, 0xf9, 0xa0, 0x14, 0x39, 0x9d,
+ 0x26, 0xfd, 0x6c, 0x41, 0x54, 0xef, 0xc0, 0x46, 0x53, 0xd3, 0xf3, 0x8b,
+ 0xea, 0x67, 0x87, 0x1d, 0x6c, 0xfc, 0x80, 0x39, 0xee, 0xd3, 0x18, 0xb4,
+ 0xc3, 0x49, 0xb7, 0x00, 0x67, 0xbf, 0x5c, 0x8b, 0x9f, 0xff, 0xff, 0xf9,
+ 0x8b, 0xc0, 0x6f, 0x6b, 0xa9, 0xbf, 0xf3, 0xfc, 0x10, 0x17, 0x03, 0xee,
+ 0xf0, 0x3f, 0x79, 0xdf, 0xff, 0xff, 0xbc, 0x44, 0x41, 0xa0, 0x15, 0x15,
+ 0x21, 0x97, 0x88, 0xdc, 0xb8, 0xd8, 0xcd, 0x82, 0xc8, 0x9b, 0x31, 0x19,
+ 0x00, 0x00, 0x6e, 0x09, 0x99, 0xe0, 0x4d, 0xbf, 0x8f, 0x7f, 0xf5, 0x8d,
+ 0x92, 0x23, 0x27, 0xdd, 0xb3, 0xa8, 0x75, 0x9a, 0x39, 0x35, 0x1a, 0x6a,
+ 0x4d, 0x79, 0xfd, 0x7d, 0xe0, 0xc7, 0x88, 0x8d, 0x59, 0x8c, 0xe9, 0x87,
+ 0xce, 0x98, 0x27, 0x15, 0x40, 0xc3, 0x28, 0x3f, 0x0c, 0x25, 0xaf, 0x80,
+ 0xff, 0x1c, 0x00, 0x70, 0xfd, 0xa2, 0x6e, 0x29, 0x7c, 0xc6, 0xde, 0x37,
+ 0xe3, 0xbd, 0xfc, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x90, 0x75, 0x37,
+ 0xe7, 0x05, 0xe8, 0xcc, 0xea, 0x7a, 0xd4, 0x4d, 0xff, 0x7d, 0xfc, 0x67,
+ 0x80, 0x85, 0x65, 0x30, 0xe0, 0x09, 0x07, 0x53, 0x7e, 0x41, 0x7a, 0x33,
+ 0x38, 0xf1, 0xfd, 0x3d, 0x6a, 0x0f, 0x7e, 0x6d, 0xdd, 0x11, 0xc3, 0xe9,
+ 0xc5, 0x79, 0x2d, 0x9b, 0xf9, 0x20, 0xd5, 0x84, 0x0e, 0xcb, 0xef, 0x73,
+ 0x71, 0x22, 0xd8, 0x1f, 0x35, 0xf9, 0x44, 0xd4, 0xdb, 0xe5, 0x71, 0xde,
+ 0xf0, 0x89, 0x0b, 0x04, 0x8d, 0x81, 0xf5, 0x83, 0xfb, 0x84, 0xc3, 0xa4,
+ 0x8d, 0xa9, 0x83, 0xfa, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xbd, 0xe4, 0x19, 0x7f, 0xcb, 0xeb, 0xfe, 0x33, 0xfe, 0xff, 0xe1, 0x0f,
+ 0xff, 0xcb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xff,
+ 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9, 0xbf, 0xff,
+ 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x35, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x13,
+ 0x80, 0x48, 0xb6, 0x93, 0x1c, 0x18, 0xff, 0x4f, 0xeb, 0xd0, 0xcc, 0x4c,
+ 0x57, 0xff, 0xff, 0xff, 0x8a, 0x09, 0x13, 0xef, 0xd7, 0x65, 0x78, 0x99,
+ 0x34, 0x8c, 0x2f, 0xec, 0x23, 0x5f, 0x52, 0xe0, 0x16, 0x2d, 0x0b, 0x00,
+ 0x36, 0x58, 0x6d, 0xa2, 0x62, 0x4f, 0x85, 0xfe, 0xf8, 0x25, 0x8b, 0x00,
+ 0xce, 0xe9, 0x7e, 0x93, 0x9c, 0x06, 0x55, 0x66, 0x8d, 0x7d, 0xaf, 0xf4,
+ 0x61, 0xac, 0xc4, 0xe5, 0x84, 0x85, 0x22, 0x5d, 0xe7, 0xf9, 0x33, 0x7f,
+ 0xfa, 0xf8, 0xb3, 0x50, 0xc3, 0x3b, 0xb8, 0x0a, 0x0a, 0xa3, 0x42, 0xde,
+ 0xe7, 0x0d, 0xc6, 0xce, 0xf8, 0x28, 0x7f, 0xff, 0x7e, 0xfb, 0xff, 0xf5,
+ 0xe1, 0x8a, 0xc5, 0x99, 0xff, 0xf0, 0x91, 0x7c, 0xd3, 0x60, 0x12, 0x37,
+ 0x3a, 0x9e, 0x64, 0xa6, 0x43, 0x60, 0xcd, 0x7d, 0x01, 0x79, 0xf8, 0x63,
+ 0x33, 0xeb, 0x86, 0xe2, 0xf4, 0x05, 0x10, 0xc9, 0x8d, 0x87, 0x52, 0x76,
+ 0xb8, 0xbb, 0x86, 0x0c, 0xe9, 0x84, 0x9f, 0x3a, 0xe2, 0xc8, 0xc0, 0xc3,
+ 0x28, 0x3f, 0x0c, 0xd7, 0x83, 0xcc, 0xc1, 0x11, 0x9c, 0x71, 0xa0, 0xf7,
+ 0x78, 0xc8, 0x20, 0x5f, 0x1d, 0xbe, 0x18, 0xff, 0xee, 0x4e, 0x58, 0xc7,
+ 0xc0, 0x85, 0xae, 0x66, 0x04, 0x2d, 0x73, 0x2b, 0x4c, 0x69, 0x80, 0x59,
+ 0x46, 0x0e, 0xab, 0xfb, 0xc8, 0x0e, 0x03, 0x30, 0x20, 0x39, 0x64, 0x09,
+ 0xad, 0x01, 0xfe, 0x25, 0x23, 0x06, 0xa5, 0xf5, 0xc7, 0x6d, 0x44, 0xf6,
+ 0x5a, 0x1b, 0x6b, 0xfe, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xb0, 0x75, 0x81, 0x4b, 0xe5, 0xd7, 0xc6, 0x7d, 0xfc, 0x21, 0xfe, 0x5d,
+ 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f, 0xbf,
+ 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf0, 0x81, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xfe,
+ 0x51, 0x38, 0x23, 0xd1, 0xbd, 0xf3, 0xe9, 0xe6, 0x7b, 0x20, 0xd2, 0x0c,
+ 0xcf, 0x98, 0x9b, 0x01, 0x84, 0xdd, 0xcb, 0xb1, 0x32, 0x97, 0x01, 0x8d,
+ 0x97, 0xb8, 0x7f, 0x2b, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xa8,
+ 0x23, 0xd1, 0xf7, 0xe5, 0xa3, 0x84, 0x8c, 0x37, 0xe7, 0x4d, 0x17, 0xeb,
+ 0xc2, 0x19, 0x1f, 0x7f, 0xce, 0x0b, 0x56, 0x20, 0xb3, 0x0b, 0x57, 0x84,
+ 0xf0, 0x06, 0x8a, 0x96, 0x80, 0x97, 0x17, 0xee, 0xa7, 0x62, 0x5e, 0x0f,
+ 0xc2, 0x2c, 0xa1, 0x80, 0xa8, 0x04, 0x0b, 0x04, 0x1e, 0x63, 0x37, 0xa4,
+ 0x8c, 0x9d, 0xc3, 0xc8, 0x46, 0x63, 0x40, 0x8c, 0x59, 0x99, 0xcb, 0x95,
+ 0xa0, 0x19, 0xd4, 0xe6, 0x63, 0x11, 0x14, 0xef, 0xa7, 0x85, 0xb2, 0xfa,
+ 0xb0, 0x3a, 0xc6, 0xd2, 0x23, 0x6a, 0x6b, 0xcd, 0xdb, 0xe0, 0x3d, 0x89,
+ 0x60, 0xd9, 0x26, 0x06, 0xec, 0xd0, 0x05, 0xae, 0x07, 0x02, 0xa5, 0x33,
+ 0xe3, 0xe0, 0x65, 0x19, 0xac, 0x81, 0x4f, 0xa9, 0xff, 0x59, 0x9b, 0xf9,
+ 0x7f, 0x87, 0x84, 0x8a, 0x44, 0xc3, 0x2d, 0x7a, 0x4f, 0xfe, 0x5f, 0x45,
+ 0x55, 0x2f, 0x3c, 0x9e, 0x6f, 0xff, 0xff, 0xe2, 0xcd, 0x0e, 0x20, 0x14,
+ 0x7a, 0x11, 0x34, 0x78, 0xd5, 0x2c, 0x18, 0x0e, 0x6f, 0xd6, 0xcf, 0x34,
+ 0x06, 0xdb, 0xe0, 0x07, 0x05, 0xc8, 0x21, 0x6d, 0x03, 0xcd, 0xb8, 0x53,
+ 0xa7, 0xe7, 0x80, 0x0a, 0x7c, 0x53, 0x23, 0x32, 0xd7, 0xff, 0xac, 0xba,
+ 0xe4, 0xa7, 0xfd, 0xeb, 0x83, 0x84, 0x4e, 0xfa, 0x9f, 0xbe, 0xfd, 0x4c,
+ 0xd7, 0x28, 0x75, 0x67, 0xc6, 0x4f, 0x3e, 0x0f, 0xf9, 0xd9, 0xe8, 0x4c,
+ 0x6e, 0x5f, 0xf2, 0x08, 0xc3, 0xe8, 0x27, 0x7f, 0x88, 0x40, 0xde, 0xf9,
+ 0x23, 0x7e, 0xfd, 0x1f, 0x13, 0x76, 0xfc, 0x43, 0x52, 0x01, 0x17, 0x0f,
+ 0x4a, 0x35, 0xe0, 0x1d, 0xfc, 0x26, 0xb0, 0x41, 0xf0, 0x2e, 0x9c, 0xf0,
+ 0x40, 0x42, 0x57, 0x2f, 0x29, 0x48, 0xb0, 0xe4, 0x56, 0xc0, 0xf7, 0x55,
+ 0xe5, 0x2f, 0x49, 0x17, 0xcf, 0x7f, 0xff, 0xff, 0xc4, 0x1a, 0x04, 0x6d,
+ 0x68, 0xd2, 0xf0, 0x16, 0x73, 0x3b, 0x32, 0xf2, 0x50, 0x49, 0x20, 0x7d,
+ 0x4c, 0x58, 0xff, 0xfc, 0x25, 0x09, 0x8d, 0xf0, 0xd3, 0x81, 0xdf, 0x48,
+ 0x5f, 0x41, 0xcb, 0x81, 0x98, 0xe9, 0x5a, 0x83, 0xa8, 0xbe, 0x12, 0x2f,
+ 0xca, 0xe7, 0xfe, 0x78, 0xd9, 0xbd, 0x7c, 0x4e, 0xab, 0x84, 0xc5, 0x04,
+ 0x5a, 0xe0, 0x3f, 0xfb, 0x72, 0x87, 0x05, 0xdb, 0xf9, 0x17, 0xe0, 0x79,
+ 0x82, 0x19, 0x09, 0xf5, 0xa1, 0xf3, 0x11, 0x86, 0x26, 0xe4, 0x72, 0xfd,
+ 0xfc, 0xf1, 0x38, 0x8f, 0x37, 0xd2, 0x9f, 0x08, 0x42, 0x82, 0x30, 0x01,
+ 0x7b, 0x14, 0x9a, 0x25, 0x89, 0x8f, 0x7f, 0xfe, 0x43, 0x50, 0x1b, 0x09,
+ 0x69, 0x8e, 0x38, 0xbb, 0x88, 0x04, 0xca, 0x59, 0x9f, 0x12, 0x3d, 0x43,
+ 0x1d, 0xcc, 0xe4, 0x84, 0xa0, 0x57, 0x89, 0x26, 0x08, 0x5e, 0x5e, 0x6f,
+ 0xcc, 0x21, 0x0d, 0x43, 0xfe, 0x1f, 0x58, 0x02, 0x8c, 0x76, 0x63, 0xaf,
+ 0xa5, 0xc3, 0x9b, 0x10, 0xc1, 0x7f, 0xe1, 0x2e, 0x07, 0x10, 0x04, 0xac,
+ 0x80, 0x11, 0x17, 0x5f, 0x5f, 0x77, 0xfd, 0xdb, 0xcb, 0x1a, 0xf0, 0xff,
+ 0x04, 0xdf, 0xee, 0x1a, 0xbc, 0x21, 0x58, 0x00, 0x63, 0xf7, 0x73, 0xae,
+ 0x16, 0x3c, 0x1e, 0x05, 0xcc, 0xc8, 0xc0, 0xd5, 0xd0, 0x15, 0xb4, 0xf3,
+ 0x43, 0xe2, 0x61, 0xfb, 0xfb, 0x7e, 0x1f, 0x7d, 0xa5, 0xc7, 0x86, 0xc0,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x35, 0xff, 0x2f, 0x28,
+ 0x8e, 0x3d, 0x6a, 0xf1, 0xbf, 0xf7, 0xcd, 0x87, 0x2e, 0x57, 0xf8, 0x43,
+ 0xff, 0xf2, 0xf8, 0xcf, 0x27, 0xbf, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f,
+ 0xff, 0x7f, 0xff, 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xac, 0x5f, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd7, 0x7e, 0xfc, 0x31, 0xff, 0xa8, 0x7c, 0x2a, 0x27, 0x02,
+ 0x1e, 0xc9, 0xff, 0x2f, 0xe0, 0x0b, 0x69, 0x00, 0xf8, 0xce, 0x2f, 0x8a,
+ 0xff, 0xff, 0xdf, 0xfe, 0x4f, 0x14, 0x28, 0x01, 0x31, 0x5f, 0x9d, 0x19,
+ 0x9a, 0x85, 0xb4, 0xe0, 0x4a, 0x0d, 0xbc, 0x40, 0xfa, 0x31, 0x09, 0x21,
+ 0xa0, 0x0e, 0x0b, 0xb2, 0x32, 0x19, 0x5e, 0x9e, 0xef, 0x75, 0x4b, 0xdd,
+ 0xcf, 0xa9, 0x58, 0xb9, 0xeb, 0x73, 0xcb, 0xd5, 0x89, 0x33, 0x7f, 0xfb,
+ 0xf0, 0xc7, 0xeb, 0x61, 0x80, 0x7b, 0x27, 0x01, 0x19, 0x4f, 0x4f, 0xce,
+ 0x63, 0x6b, 0xde, 0xf0, 0x04, 0xde, 0x6b, 0xa9, 0xe7, 0xda, 0x44, 0xc5,
+ 0x4f, 0x3f, 0xec, 0x53, 0x3e, 0x7e, 0xfd, 0xfb, 0xf7, 0xfb, 0xff, 0xf7,
+ 0xe1, 0x8e, 0x18, 0x3f, 0xfc, 0x25, 0xc0, 0x15, 0xe9, 0xa7, 0x47, 0x88,
+ 0x52, 0x65, 0xe0, 0x22, 0xcd, 0xf3, 0xb6, 0x3e, 0xb6, 0xf8, 0xed, 0xf0,
+ 0xcc, 0x6e, 0x1a, 0xf0, 0xc7, 0xd2, 0x1c, 0x78, 0x46, 0x0c, 0x80, 0x5f,
+ 0x54, 0x07, 0xd4, 0x08, 0xe2, 0x97, 0x34, 0x05, 0x5d, 0x60, 0x62, 0x4e,
+ 0x5b, 0x8c, 0x0e, 0xad, 0xdf, 0xd0, 0x25, 0xe3, 0x34, 0x13, 0xe0, 0xe7,
+ 0xdb, 0x88, 0xc3, 0x03, 0xdc, 0x7f, 0xf8, 0x7c, 0xa0, 0x9f, 0x52, 0x3a,
+ 0x7d, 0x6c, 0xa0, 0x3c, 0x44, 0x69, 0x6f, 0xd7, 0x1b, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x83, 0x2f, 0x97, 0x5f, 0x19, 0xf6, 0xff,
+ 0x08, 0x7f, 0x97, 0x7f, 0xff, 0xff, 0xff, 0x27, 0xff, 0xe1, 0x4f, 0xff,
+ 0xc2, 0x1f, 0xef, 0xfc, 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x02, 0xbf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xff, 0xc9, 0xff,
+ 0x8d, 0x8b, 0x13, 0x81, 0xfe, 0x16, 0x1f, 0x00, 0x0b, 0xe5, 0xe4, 0x3f,
+ 0xad, 0xdb, 0xff, 0xdd, 0x31, 0xb3, 0x7f, 0xc3, 0x18, 0x24, 0xa5, 0xc0,
+ 0x8c, 0xdd, 0xc8, 0xff, 0x93, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xcc, 0x32,
+ 0x1f, 0xc1, 0x1c, 0x01, 0x7f, 0xf3, 0x1a, 0x05, 0x9d, 0x15, 0x99, 0xc8,
+ 0x9c, 0xde, 0xd0, 0x08, 0xee, 0x9a, 0x66, 0x37, 0x4d, 0x1b, 0x6d, 0x2c,
+ 0x21, 0xb4, 0xc7, 0x06, 0xf2, 0x40, 0xeb, 0x21, 0x76, 0xc6, 0x1c, 0xf6,
+ 0x69, 0x6c, 0x57, 0xfa, 0x85, 0xbd, 0x0d, 0x25, 0x4c, 0xda, 0x6f, 0xac,
+ 0x07, 0xb1, 0x2c, 0xd0, 0x19, 0xb5, 0x80, 0xcd, 0xa2, 0x94, 0x9f, 0x9e,
+ 0x1a, 0x2e, 0x21, 0x17, 0xee, 0xe3, 0xd3, 0xd2, 0x33, 0xf6, 0x14, 0x0c,
+ 0xe5, 0xb6, 0x4a, 0x97, 0x74, 0xf9, 0xa2, 0xa0, 0xe4, 0xc9, 0x0f, 0xb5,
+ 0xff, 0x09, 0x8b, 0x94, 0x31, 0x2c, 0x0e, 0x6e, 0xdb, 0xdb, 0xe8, 0xe6,
+ 0x79, 0x00, 0x96, 0x03, 0x31, 0x7b, 0xdf, 0x26, 0xdb, 0x82, 0xad, 0xc7,
+ 0x1b, 0xdd, 0xe1, 0xc9, 0xe6, 0xff, 0xff, 0xf2, 0x78, 0x9f, 0xe2, 0xcd,
+ 0x31, 0x45, 0xe8, 0x86, 0x05, 0xc0, 0xc0, 0xa6, 0xfd, 0x72, 0x66, 0x0f,
+ 0x6f, 0x80, 0x06, 0x6d, 0xb7, 0xc5, 0x37, 0x39, 0xa5, 0x91, 0xa3, 0x22,
+ 0xbb, 0xcf, 0xd0, 0x72, 0x09, 0x1b, 0x55, 0x2b, 0xb5, 0x80, 0x23, 0x93,
+ 0x69, 0x04, 0xcc, 0x2d, 0x21, 0x6a, 0x39, 0xd4, 0x60, 0xf0, 0x93, 0x3f,
+ 0xbc, 0x31, 0x27, 0x31, 0xf3, 0x9f, 0x0f, 0xaf, 0xef, 0xff, 0x64, 0x60,
+ 0x10, 0xca, 0x1a, 0x3f, 0x5c, 0x0c, 0x1f, 0xf9, 0x4b, 0x84, 0x6c, 0x35,
+ 0xde, 0xff, 0xff, 0xff, 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x30, 0x76, 0x8c,
+ 0x80, 0x61, 0x09, 0xa0, 0xdb, 0x50, 0x30, 0x7e, 0x00, 0x76, 0x8c, 0x80,
+ 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x76, 0x9a, 0x01, 0x8c, 0xf2, 0x03,
+ 0x6d, 0x5e, 0x0c, 0x1d, 0xf9, 0x3b, 0x2c, 0xc8, 0x63, 0x63, 0x1a, 0xf4,
+ 0x26, 0x27, 0xec, 0x55, 0x06, 0x12, 0xf6, 0xb3, 0x40, 0x62, 0x30, 0xc5,
+ 0xfb, 0xe4, 0x72, 0x81, 0xe3, 0xa0, 0x2a, 0xfd, 0xf2, 0x60, 0x1f, 0x4b,
+ 0x27, 0xe2, 0xa5, 0x88, 0xbf, 0x7e, 0xf9, 0x1c, 0x00, 0x3b, 0x53, 0x6f,
+ 0x4a, 0x6e, 0x3f, 0x36, 0x61, 0xf5, 0xce, 0xa7, 0x16, 0xbe, 0x00, 0x80,
+ 0xed, 0x6a, 0x6a, 0x7b, 0x97, 0xf8, 0x01, 0x6e, 0x6a, 0xf5, 0xa6, 0xfb,
+ 0xcf, 0xb5, 0x37, 0x47, 0xff, 0xf7, 0x3e, 0xe4, 0xbc, 0x00, 0x11, 0xa5,
+ 0xfc, 0xd5, 0xef, 0x74, 0xf1, 0x39, 0xbf, 0xff, 0xb4, 0x10, 0x88, 0x80,
+ 0x04, 0x51, 0x27, 0x19, 0x04, 0x3f, 0xe6, 0x14, 0xfd, 0x1c, 0x05, 0x3c,
+ 0xa2, 0xa7, 0x10, 0xfb, 0xbe, 0x82, 0xfd, 0x40, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xc6, 0x24, 0x1d, 0x7f, 0x89, 0x36, 0x1d, 0x6a, 0x35, 0x6e,
+ 0x1f, 0x20, 0x91, 0x0d, 0xd7, 0x3f, 0xa9, 0xc6, 0x29, 0x00, 0x20, 0x39,
+ 0xbf, 0x0d, 0xe2, 0x0f, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x5b, 0x9a, 0x5e,
+ 0xb4, 0xdf, 0x79, 0xb5, 0x37, 0x47, 0xff, 0xf7, 0x3e, 0xe4, 0xbc, 0x00,
+ 0x11, 0xa5, 0xfc, 0xd5, 0xef, 0x77, 0xf3, 0x7e, 0xc5, 0x9b, 0xb1, 0x1e,
+ 0x31, 0x40, 0x07, 0xd0, 0x3b, 0x5c, 0x88, 0xc0, 0x30, 0x16, 0xfa, 0xe6,
+ 0x00, 0x26, 0xb3, 0xd4, 0xf9, 0xff, 0xf6, 0x45, 0xfc, 0xfe, 0x00, 0x79,
+ 0x5d, 0xb2, 0x4d, 0xc3, 0x90, 0x21, 0x19, 0x94, 0x49, 0x80, 0x6a, 0x46,
+ 0x3f, 0x75, 0xc0, 0xb6, 0x0a, 0x6f, 0xed, 0x9b, 0x7a, 0xdb, 0xc6, 0xe1,
+ 0x5e, 0x37, 0x91, 0x82, 0x5d, 0xbc, 0x6c, 0xf3, 0x0a, 0x78, 0xb6, 0x3a,
+ 0xf2, 0xf6, 0x2c, 0x38, 0x8b, 0xe3, 0xf0, 0xcd, 0x72, 0xa7, 0x1c, 0x03,
+ 0x60, 0x9d, 0x9f, 0x73, 0xd1, 0xfb, 0x77, 0x96, 0xbb, 0x8f, 0x66, 0xe9,
+ 0xbe, 0x4a, 0x5f, 0x61, 0x84, 0x3f, 0xdc, 0x23, 0xc0, 0xd5, 0x0b, 0xc3,
+ 0xc0, 0x3f, 0xed, 0x2a, 0xb7, 0xa8, 0x63, 0x93, 0xc6, 0x79, 0x3d, 0xf8,
+ 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb, 0xff, 0x9f, 0xff, 0xf2, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x21, 0xff, 0xff,
+ 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfb, 0xcc, 0x27, 0x04,
+ 0xbe, 0x6e, 0x6e, 0xcb, 0x2b, 0xc1, 0x13, 0xc6, 0xc9, 0x62, 0xbf, 0xff,
+ 0xf7, 0xff, 0x86, 0x0d, 0x02, 0x01, 0x06, 0x67, 0x2a, 0xa8, 0xd8, 0xc0,
+ 0x09, 0xfd, 0xb3, 0x31, 0x6e, 0x93, 0x65, 0xc3, 0xed, 0x30, 0x26, 0xd8,
+ 0x70, 0x8c, 0xdc, 0x8a, 0x08, 0x0d, 0xa8, 0x26, 0x37, 0xbd, 0xf5, 0x43,
+ 0xc1, 0x39, 0xa1, 0x30, 0x06, 0xed, 0xa0, 0x0b, 0x50, 0x54, 0xb0, 0xf0,
+ 0x82, 0xaa, 0x67, 0x9c, 0x14, 0x5e, 0x2a, 0xd8, 0x85, 0xbe, 0x18, 0xf9,
+ 0x12, 0x96, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x88, 0x22, 0xc3, 0xc3,
+ 0x63, 0x75, 0x78, 0x3d, 0xa6, 0x15, 0x6d, 0xd4, 0xff, 0x5e, 0xac, 0x05,
+ 0x0b, 0xf0, 0xab, 0x7f, 0x93, 0x37, 0xff, 0xbf, 0x58, 0xcf, 0x19, 0xcb,
+ 0x54, 0x65, 0x80, 0x0e, 0xd1, 0xa1, 0xcd, 0x48, 0xea, 0xa0, 0xdd, 0x7d,
+ 0x5b, 0x1d, 0xe7, 0x81, 0x0b, 0x1d, 0x84, 0x9f, 0x57, 0x9f, 0x0c, 0x3b,
+ 0xac, 0x3e, 0xf1, 0xff, 0x66, 0x3b, 0x85, 0x88, 0x83, 0x26, 0xf8, 0x7f,
+ 0xc6, 0x1f, 0x75, 0xb1, 0xff, 0x7e, 0xff, 0xbe, 0xff, 0xff, 0x93, 0x80,
+ 0x88, 0x10, 0x80, 0x9b, 0x79, 0xff, 0xfd, 0xe5, 0xb9, 0x50, 0x97, 0x39,
+ 0xe0, 0x26, 0xee, 0xea, 0xe6, 0x1b, 0x30, 0xa9, 0x1c, 0x4b, 0x1d, 0x69,
+ 0xb0, 0x0c, 0x6f, 0xde, 0x56, 0x42, 0x82, 0x23, 0x59, 0x03, 0x3d, 0x21,
+ 0x22, 0x0e, 0x06, 0x77, 0xd6, 0xdf, 0x1c, 0xfb, 0xdb, 0xe3, 0xb6, 0xbc,
+ 0x30, 0x15, 0x5d, 0x7e, 0x2b, 0xc5, 0x17, 0x20, 0x68, 0x01, 0x06, 0xbf,
+ 0xb3, 0xdf, 0xcb, 0xa7, 0xcb, 0xdc, 0x78, 0x05, 0xf4, 0xa0, 0x35, 0x11,
+ 0x7e, 0x18, 0xff, 0x5d, 0x75, 0xc2, 0xb8, 0x0f, 0x7f, 0xfd, 0x7f, 0x80,
+ 0x3d, 0xff, 0xce, 0xee, 0x30, 0x45, 0x44, 0x70, 0x45, 0xc3, 0x1f, 0xff,
+ 0xda, 0x08, 0x70, 0x00, 0xc6, 0x79, 0xa1, 0x1d, 0x76, 0x11, 0x6d, 0x50,
+ 0xa7, 0x94, 0xab, 0x99, 0xf7, 0x7d, 0x06, 0xc0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xb2, 0x85, 0x8a, 0xef, 0x91, 0x81, 0x24, 0x10, 0x6b, 0x10,
+ 0x28, 0x01, 0x19, 0x78, 0x2e, 0x31, 0xef, 0xc7, 0x85, 0x34, 0xc0, 0x01,
+ 0x3f, 0x3f, 0xc0, 0x00, 0x01, 0x00, 0x08, 0x01, 0xa0, 0xed, 0x48, 0x11,
+ 0x87, 0x0e, 0x60, 0x03, 0xb5, 0x70, 0x17, 0x30, 0x5c, 0x83, 0x58, 0xd7,
+ 0xfb, 0x7e, 0xb8, 0x43, 0xbf, 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff,
+ 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf2, 0x91,
+ 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc2, 0x70, 0x01, 0x93, 0xfc,
+ 0xaf, 0xaf, 0xc0, 0x56, 0xfd, 0xce, 0xd5, 0xdf, 0x62, 0x0a, 0x2f, 0x85,
+ 0xa9, 0x33, 0x24, 0x75, 0x7f, 0xf7, 0xf0, 0x12, 0xbf, 0x40, 0x5c, 0x3a,
+ 0x86, 0xe5, 0x4f, 0x1c, 0x8c, 0xbf, 0xcf, 0x13, 0x15, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0x6f, 0x43, 0x82, 0xca, 0x4e, 0x83, 0x18, 0x39, 0xaf, 0xd7,
+ 0xf6, 0xf7, 0x8b, 0x0a, 0x23, 0xbf, 0xb9, 0xf9, 0x53, 0x20, 0x04, 0xde,
+ 0xd4, 0x61, 0xa1, 0x0f, 0xf5, 0xe3, 0x4f, 0xaf, 0x7f, 0xcb, 0xd0, 0x18,
+ 0x06, 0x11, 0xdc, 0xc5, 0x48, 0xbf, 0xfe, 0xf4, 0x37, 0x7f, 0x33, 0x31,
+ 0x52, 0xd3, 0x07, 0x38, 0x02, 0x2d, 0xda, 0x81, 0x18, 0x42, 0x65, 0xaa,
+ 0xea, 0x71, 0x00, 0x01, 0x8f, 0xf3, 0x32, 0x11, 0x47, 0x42, 0x89, 0xef,
+ 0x76, 0xdc, 0x36, 0x1a, 0x0c, 0x04, 0xe5, 0x93, 0x93, 0xf9, 0x87, 0x79,
+ 0xa4, 0x68, 0xda, 0x99, 0xb5, 0xd5, 0x3f, 0xe7, 0x04, 0x78, 0x20, 0x94,
+ 0x58, 0x0c, 0x5c, 0xd2, 0xb3, 0x08, 0x5a, 0x40, 0x3e, 0xe3, 0x12, 0x76,
+ 0x41, 0x09, 0x48, 0x06, 0x4f, 0x37, 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91,
+ 0x31, 0x3b, 0xaa, 0xd9, 0xba, 0x2c, 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2,
+ 0xf0, 0x40, 0x0e, 0x7d, 0x83, 0xe4, 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29,
+ 0x53, 0xf5, 0x06, 0xe8, 0x7d, 0x9b, 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38,
+ 0x1b, 0xb2, 0xd4, 0x17, 0x60, 0xe7, 0x19, 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0xff, 0xff, 0xe6, 0x40, 0xae, 0x05, 0xff, 0x09, 0x30, 0x6a, 0x59, 0xcd,
+ 0x63, 0x1c, 0xaa, 0x1a, 0xdf, 0xdb, 0x2b, 0xd6, 0x24, 0x1b, 0xed, 0x38,
+ 0xe5, 0xd1, 0xf6, 0xaf, 0x89, 0xaa, 0xfa, 0xa4, 0xe7, 0xea, 0xd7, 0x3c,
+ 0x0e, 0x7f, 0x5e, 0xfc, 0x77, 0xbf, 0x7e, 0x3b, 0xda, 0x86, 0x72, 0x17,
+ 0x80, 0x18, 0x9f, 0xbb, 0xdf, 0xff, 0xbd, 0x4d, 0x87, 0xd2, 0x9f, 0x82,
+ 0x06, 0x00, 0xba, 0xaa, 0x87, 0x78, 0x67, 0x85, 0xe7, 0xd5, 0xc7, 0xff,
+ 0x1e, 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44, 0x57,
+ 0xfd, 0x9b, 0xa7, 0xc7, 0x4a, 0x60, 0x9c, 0x44, 0x01, 0x2f, 0x69, 0x18,
+ 0x00, 0x08, 0x00, 0x53, 0xd3, 0xbd, 0x78, 0x16, 0xbc, 0x0d, 0xcb, 0x7d,
+ 0x86, 0xfb, 0x05, 0xb0, 0xfc, 0x04, 0xcf, 0x80, 0x98, 0x2a, 0xc0, 0x10,
+ 0xee, 0x81, 0xe1, 0x0f, 0x7e, 0x7a, 0xf1, 0xbf, 0xf4, 0x6f, 0x44, 0xa7,
+ 0xd3, 0x85, 0x0a, 0x43, 0xf3, 0xc6, 0xf7, 0x8a, 0xe0, 0x1a, 0x35, 0xe7,
+ 0xcf, 0xb1, 0x0b, 0x71, 0xb8, 0xdf, 0xf9, 0xbf, 0xd2, 0x8e, 0x44, 0x58,
+ 0xc2, 0x70, 0x00, 0xc2, 0x3c, 0x94, 0xcd, 0xa4, 0xdf, 0x00, 0x2a, 0x2e,
+ 0x49, 0x1f, 0x09, 0xef, 0xfe, 0x07, 0x87, 0xfb, 0xad, 0x49, 0xdc, 0xe0,
+ 0x02, 0xed, 0xca, 0x32, 0x23, 0x1f, 0xfe, 0x90, 0x7e, 0x60, 0xfc, 0x20,
+ 0x00, 0x00, 0x5f, 0xd8, 0x60, 0x3b, 0xb6, 0x17, 0x72, 0x69, 0x99, 0x2f,
+ 0xfa, 0x81, 0x1b, 0x33, 0x36, 0xf4, 0x48, 0x8f, 0xf9, 0xeb, 0x1b, 0x7a,
+ 0x48, 0x53, 0x26, 0x3f, 0x98, 0x30, 0x87, 0xaf, 0x2f, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21,
+ 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xac, 0xe3, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xaf, 0xdf, 0xc5, 0x9f, 0x00, 0xd4, 0xb2, 0x34, 0xe6, 0xf0,
+ 0x05, 0x7f, 0xa9, 0x9a, 0x86, 0xbd, 0xf4, 0x7a, 0xb8, 0xaf, 0xff, 0xff,
+ 0xf7, 0x98, 0xdc, 0x65, 0xa2, 0x18, 0x0e, 0xcf, 0xa2, 0x8b, 0xa2, 0xa0,
+ 0xda, 0x6f, 0xe2, 0x71, 0xe9, 0xfe, 0x8c, 0x1b, 0xb0, 0x34, 0xd3, 0x83,
+ 0xab, 0xa7, 0x80, 0x11, 0x47, 0x42, 0x89, 0xff, 0x76, 0xdc, 0x36, 0x1a,
+ 0x0c, 0xd7, 0x07, 0x2c, 0x08, 0xe4, 0xdb, 0x35, 0x2c, 0x7d, 0x2a, 0x5a,
+ 0xa2, 0x58, 0x90, 0xea, 0xe5, 0xb9, 0x07, 0x62, 0xe5, 0xe1, 0x24, 0x98,
+ 0xd2, 0x67, 0x53, 0x3c, 0x99, 0xbf, 0xff, 0x86, 0x38, 0xf0, 0x03, 0x41,
+ 0xd5, 0x22, 0xcd, 0x80, 0x18, 0x1e, 0x57, 0xc7, 0x61, 0xea, 0xe9, 0x61,
+ 0xea, 0xe4, 0xc1, 0x58, 0xa2, 0x80, 0x90, 0xe6, 0x5e, 0x01, 0x9b, 0xdc,
+ 0xe6, 0x9e, 0x61, 0x2e, 0x56, 0xfc, 0xc3, 0x6b, 0x64, 0x8d, 0xf9, 0xea,
+ 0x95, 0x36, 0x00, 0xbe, 0x0c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x30, 0x2a,
+ 0x82, 0x17, 0x1f, 0xf8, 0x49, 0x99, 0x44, 0x93, 0x6a, 0xbc, 0x0c, 0xc4,
+ 0xdb, 0xa0, 0xfe, 0xef, 0x1e, 0xea, 0x96, 0x02, 0x39, 0x38, 0x68, 0x1d,
+ 0xbe, 0x68, 0x46, 0xda, 0x7a, 0x33, 0xbe, 0x51, 0x7f, 0xf0, 0x03, 0x3e,
+ 0xb7, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0x38, 0x63, 0x3f, 0xa1, 0xcf, 0x0c,
+ 0x26, 0x5c, 0x78, 0x0f, 0xf2, 0x12, 0xe0, 0x3f, 0xc6, 0xf0, 0x12, 0x6d,
+ 0xc0, 0x7d, 0x24, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3,
+ 0x8d, 0x84, 0xbe, 0xc3, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02, 0xad,
+ 0x34, 0x0c, 0x63, 0xe7, 0x80, 0x5f, 0x03, 0xe8, 0x08, 0x6d, 0x15, 0xe1,
+ 0x8c, 0x3e, 0x74, 0x3f, 0x82, 0x06, 0x04, 0xcd, 0x40, 0x7e, 0xf6, 0x78,
+ 0xeb, 0x77, 0x33, 0x87, 0x26, 0xc2, 0x03, 0x7d, 0x63, 0x7e, 0x97, 0x86,
+ 0x27, 0xe6, 0x1d, 0xd0, 0x8b, 0x6b, 0xc0, 0x85, 0xac, 0x7f, 0xfe, 0x1f,
+ 0xfc, 0x0b, 0xbe, 0x0c, 0x8c, 0x01, 0x84, 0x74, 0xa6, 0x72, 0xbe, 0xfb,
+ 0x08, 0x76, 0xd6, 0x02, 0xff, 0xca, 0x67, 0xbf, 0x00, 0x8d, 0x7a, 0x46,
+ 0x1f, 0xc5, 0xff, 0x5c, 0x60, 0x6f, 0x84, 0x80, 0x00, 0xff, 0x84, 0x3f,
+ 0xcb, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f,
+ 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x01, 0x0f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x81, 0x37, 0xe0, 0x21, 0x21, 0x1b, 0xdc,
+ 0x9f, 0x9b, 0x08, 0x94, 0xa5, 0xea, 0xf0, 0xff, 0x3c, 0x57, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x30, 0xae, 0x32, 0xd1, 0x27, 0xe0, 0xa7, 0x8d, 0x84,
+ 0x50, 0x61, 0xb9, 0xa4, 0xe5, 0xda, 0x6c, 0x6e, 0x40, 0xef, 0x14, 0xbe,
+ 0xc1, 0x29, 0x94, 0xf3, 0x03, 0xa9, 0x68, 0xc0, 0x15, 0x91, 0xe3, 0xac,
+ 0x5c, 0x9e, 0xd5, 0x18, 0x4e, 0x37, 0xf7, 0x30, 0x7f, 0xdf, 0xf0, 0x98,
+ 0x96, 0xa0, 0x05, 0xea, 0x11, 0x7a, 0xaf, 0x71, 0x30, 0x51, 0xf9, 0x4b,
+ 0xbd, 0xfd, 0xa8, 0x01, 0x42, 0xf8, 0x32, 0xb7, 0xfe, 0x4f, 0x37, 0xff,
+ 0xff, 0xfc, 0xdf, 0x88, 0x32, 0x99, 0x2a, 0x5a, 0xcd, 0xc0, 0x14, 0x74,
+ 0x43, 0xa8, 0xfc, 0xdb, 0x07, 0x56, 0xfc, 0xf0, 0x15, 0x49, 0xc9, 0xf8,
+ 0x51, 0xa0, 0x09, 0xa1, 0x28, 0xcb, 0xba, 0xe4, 0x58, 0x1e, 0xb8, 0x36,
+ 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07, 0xaf, 0x36,
+ 0x54, 0x96, 0xd9, 0xdc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfe,
+ 0x21, 0x88, 0x1d, 0xd4, 0xbd, 0x16, 0x1f, 0x90, 0x72, 0x37, 0x25, 0x66,
+ 0x2f, 0xc7, 0xa0, 0x7f, 0x3f, 0xaf, 0x7e, 0x3b, 0xdf, 0xbf, 0x1d, 0xec,
+ 0xdf, 0x0f, 0xfe, 0x1f, 0x2c, 0x04, 0xbe, 0xe5, 0xef, 0x6a, 0xfc, 0x99,
+ 0x3c, 0x4f, 0xaf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64,
+ 0x25, 0xff, 0x46, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07, 0x11, 0x9c, 0x08,
+ 0x99, 0x02, 0x57, 0xff, 0xa7, 0xb0, 0x3c, 0x01, 0xf7, 0x11, 0x3f, 0xeb,
+ 0xc6, 0xfa, 0x37, 0xff, 0xb4, 0x06, 0x08, 0x4c, 0x00, 0x44, 0xcf, 0xba,
+ 0x7f, 0x9e, 0xfe, 0x8a, 0x98, 0x18, 0x40, 0xd9, 0x95, 0x60, 0x01, 0x84,
+ 0x79, 0x29, 0xbd, 0x2c, 0x1f, 0xc2, 0x26, 0x1f, 0x80, 0x7f, 0xc3, 0xd0,
+ 0x05, 0xb5, 0x7c, 0xfc, 0xd1, 0xff, 0x4f, 0x5f, 0xf8, 0x64, 0x20, 0x22,
+ 0x28, 0x00, 0x08, 0x00, 0x40, 0x08, 0xa6, 0xe6, 0x65, 0x00, 0x05, 0x7d,
+ 0xf1, 0x90, 0xfb, 0x05, 0x03, 0x08, 0xe8, 0x0c, 0x20, 0xbe, 0x40, 0x58,
+ 0xce, 0xe9, 0x7f, 0x97, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
+ 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff,
+ 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x2d,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6,
+ 0x13, 0x80, 0x8f, 0x3d, 0x1b, 0xd8, 0xf8, 0x63, 0xff, 0x3f, 0xc1, 0x01,
+ 0x74, 0x07, 0x15, 0xff, 0xff, 0xfe, 0xfe, 0x28, 0x73, 0x58, 0xed, 0x23,
+ 0x8d, 0xeb, 0xa5, 0xe0, 0x1b, 0x15, 0x3e, 0x2b, 0x50, 0x06, 0x31, 0xe2,
+ 0x63, 0x41, 0x3e, 0x4a, 0x2c, 0x02, 0x92, 0x95, 0x1f, 0x0c, 0x05, 0xbe,
+ 0xb7, 0xfc, 0x26, 0x2c, 0x06, 0x0b, 0x11, 0x02, 0x73, 0xa0, 0xe4, 0xd3,
+ 0x0f, 0xd3, 0x36, 0x55, 0x6a, 0xf3, 0x25, 0x4a, 0x55, 0xe7, 0x93, 0x37,
+ 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x30, 0x61, 0xb3, 0x61, 0x33, 0xed,
+ 0x60, 0xe9, 0x35, 0x2d, 0xe7, 0x0d, 0x83, 0x7c, 0xd2, 0x7f, 0xd1, 0x9a,
+ 0x8c, 0xf3, 0x7e, 0x15, 0x6a, 0x8b, 0xdf, 0xfe, 0x96, 0x62, 0x6e, 0x79,
+ 0x12, 0x2d, 0x9f, 0xff, 0xfe, 0xff, 0xff, 0x86, 0x2d, 0x4d, 0xbf, 0xf0,
+ 0x91, 0xe0, 0x31, 0xe8, 0x9f, 0xf0, 0x13, 0x5a, 0x32, 0x68, 0x36, 0xd4,
+ 0x2d, 0xe1, 0x21, 0x38, 0xfe, 0x7d, 0x6f, 0x1d, 0xbd, 0xe3, 0xb6, 0x18,
+ 0xf8, 0x7f, 0x1a, 0x41, 0x0e, 0x07, 0x48, 0x69, 0x9f, 0x0c, 0xc4, 0xd6,
+ 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb4, 0x95, 0x83, 0x2f, 0xa5,
+ 0xef, 0x12, 0x20, 0x04, 0x2a, 0x9f, 0x1e, 0x0c, 0x62, 0x77, 0xc3, 0x7b,
+ 0xce, 0xf2, 0x20, 0xce, 0x83, 0x07, 0x48, 0x61, 0xd3, 0x35, 0xaf, 0x8c,
+ 0xfd, 0x78, 0x61, 0x03, 0xfe, 0x3f, 0x09, 0xfc, 0x24, 0xfb, 0x5c, 0x1d,
+ 0x7b, 0x4c, 0x87, 0x83, 0x88, 0x3f, 0x08, 0x75, 0xe1, 0x8a, 0x38, 0x83,
+ 0xff, 0xf0, 0x96, 0x02, 0x5d, 0xec, 0xb2, 0xff, 0x77, 0xc2, 0x64, 0x6f,
+ 0xe4, 0x9b, 0x9d, 0x12, 0x8b, 0xc9, 0x01, 0x70, 0x8b, 0xfc, 0xbb, 0xff,
+ 0xff, 0xff, 0xf9, 0x7f, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xfb, 0xff, 0x37,
+ 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xf4, 0xa1, 0x01, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+ 0xfc, 0xc7, 0xc0, 0x0a, 0x25, 0x16, 0x6c, 0x64, 0xef, 0xb7, 0x01, 0xe2,
+ 0x65, 0x78, 0x20, 0xfa, 0xff, 0xd7, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf9, 0x3f, 0x8c, 0xc9, 0x14, 0x30, 0xe8, 0x32, 0xd3, 0x76, 0x82, 0xe9,
+ 0x74, 0x84, 0xaa, 0xae, 0xa6, 0xe0, 0x79, 0x0e, 0x3f, 0xa1, 0x01, 0x02,
+ 0x91, 0x8b, 0x82, 0x02, 0xee, 0x56, 0x77, 0xcf, 0xd8, 0xeb, 0xbf, 0x27,
+ 0x9b, 0xff, 0xff, 0xcd, 0xfc, 0x11, 0x81, 0x92, 0x18, 0xc2, 0x60, 0x0c,
+ 0xfe, 0x47, 0xa2, 0xef, 0x8e, 0x9b, 0x86, 0x13, 0x20, 0x3e, 0x99, 0xc5,
+ 0xae, 0xc1, 0xd7, 0xd5, 0xc0, 0x47, 0xdc, 0xde, 0x4c, 0x1b, 0x4e, 0x6f,
+ 0xd6, 0xc5, 0x9a, 0x76, 0xb8, 0x08, 0xe9, 0xe9, 0xf9, 0xca, 0x6b, 0x1b,
+ 0x0e, 0x7e, 0x40, 0x1c, 0xe0, 0x3b, 0x39, 0x31, 0x8e, 0x98, 0x93, 0x98,
+ 0x07, 0x3e, 0xae, 0x69, 0x8a, 0x13, 0x27, 0xff, 0xff, 0xff, 0xfb, 0xff,
+ 0xff, 0xf3, 0x44, 0x61, 0x17, 0xff, 0x84, 0x98, 0x42, 0xd3, 0xe3, 0xc4,
+ 0x20, 0x4c, 0xcb, 0xbc, 0x4c, 0x13, 0x1b, 0x20, 0x93, 0x7a, 0x42, 0x66,
+ 0xad, 0x44, 0x20, 0x48, 0xca, 0x3a, 0xb4, 0x86, 0xeb, 0x65, 0xc8, 0x23,
+ 0x6b, 0x95, 0x8c, 0x10, 0x9f, 0xdc, 0x44, 0x4f, 0x18, 0x80, 0xa7, 0x4f,
+ 0xf7, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe0, 0x43,
+ 0xec, 0x1c, 0x61, 0x61, 0xc4, 0x5d, 0xa0, 0xe2, 0x0f, 0xc0, 0x27, 0x81,
+ 0xf0, 0x24, 0xe3, 0x64, 0x99, 0x48, 0x38, 0x1f, 0x9b, 0xf1, 0xb0, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x08, 0x5f, 0xf9, 0xbf, 0xff,
+ 0xb4, 0x10, 0x9a, 0x04, 0x85, 0xb4, 0x07, 0xe1, 0x60, 0xbb, 0x43, 0xbe,
+ 0x4d, 0x76, 0x2f, 0x2f, 0xf0, 0xf4, 0x26, 0x7d, 0xae, 0xbc, 0x04, 0xee,
+ 0x42, 0xf8, 0x19, 0x4f, 0x7e, 0xbf, 0xe3, 0x3e, 0x6f, 0x62, 0x2a, 0xb3,
+ 0xa6, 0xbb, 0x27, 0x09, 0x9f, 0x6b, 0x0e, 0xc9, 0x8f, 0xfd, 0x34, 0x19,
+ 0x48, 0x0b, 0x32, 0xe2, 0x91, 0xee, 0x5e, 0xd2, 0x5e, 0x09, 0x9e, 0x2e,
+ 0xbf, 0xe1, 0x0e, 0x43, 0x60, 0x0f, 0xc8, 0x2a, 0x49, 0x0f, 0x32, 0x8e,
+ 0x10, 0x0f, 0xf8, 0x79, 0x03, 0x15, 0x11, 0x80, 0xc4, 0x40, 0x40, 0xf2,
+ 0xeb, 0xee, 0x9f, 0xfc, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf,
+ 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xef, 0xff, 0xf3,
+ 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
+ 0x66, 0x3e, 0x01, 0x41, 0xc9, 0x39, 0x8d, 0x4a, 0x9b, 0xa5, 0xa1, 0x98,
+ 0x98, 0xaf, 0xff, 0xff, 0xfe, 0x18, 0x0e, 0xd6, 0x0a, 0x83, 0x96, 0x31,
+ 0x81, 0x2d, 0x84, 0x45, 0xea, 0x67, 0xb0, 0x23, 0x6e, 0x19, 0xe6, 0xa7,
+ 0xf3, 0xc0, 0xb5, 0xd4, 0xef, 0xa9, 0x27, 0x2c, 0x3f, 0xae, 0xcb, 0x8c,
+ 0x93, 0x96, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc5, 0xf0, 0x23, 0x2d, 0x1a,
+ 0x55, 0xe7, 0xa2, 0x16, 0x57, 0x0b, 0x2e, 0x06, 0xa7, 0xe7, 0xf9, 0x33,
+ 0x7f, 0xfa, 0xf8, 0xb3, 0x22, 0x86, 0x77, 0x70, 0x14, 0x15, 0x46, 0x85,
+ 0xb9, 0x4f, 0xce, 0x1b, 0x8d, 0x9d, 0xd0, 0x53, 0x0f, 0xff, 0xff, 0x7f,
+ 0xfe, 0xbd, 0x08, 0x88, 0x29, 0x50, 0x02, 0x2a, 0x01, 0xc1, 0xfa, 0x11,
+ 0x43, 0x7e, 0x26, 0x6f, 0x37, 0xf4, 0x8d, 0x8f, 0x06, 0x6a, 0xba, 0x29,
+ 0xbe, 0xf1, 0x31, 0xbd, 0x62, 0x35, 0x4d, 0xbf, 0xe5, 0xe7, 0xd6, 0xf1,
+ 0xdb, 0xde, 0x3b, 0x61, 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x38, 0x8b,
+ 0xb5, 0xa1, 0x84, 0x7c, 0x9f, 0x8c, 0xa0, 0x0a, 0x20, 0xde, 0x36, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d, 0x81, 0x4b, 0xf5, 0xe8, 0x18,
+ 0x06, 0x47, 0x08, 0x81, 0x89, 0x34, 0xc8, 0x8c, 0xf6, 0x93, 0x35, 0x8f,
+ 0xb6, 0x3e, 0x0c, 0x3f, 0xe0, 0x20, 0x17, 0xc9, 0x6b, 0x1e, 0xbe, 0x33,
+ 0xaf, 0x0c, 0x31, 0x07, 0xda, 0xdf, 0x84, 0xff, 0x09, 0x58, 0x98, 0xd0,
+ 0xa4, 0xc7, 0xd7, 0xc2, 0x12, 0x38, 0x44, 0xff, 0xf7, 0xc3, 0x02, 0x1e,
+ 0x01, 0xff, 0x0f, 0x20, 0x1c, 0x65, 0x36, 0x80, 0x7e, 0x60, 0x81, 0xf9,
+ 0x4f, 0x87, 0xef, 0xfe, 0x5d, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xff, 0x85,
+ 0x3f, 0xff, 0x08, 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x01,
+ 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0x89, 0x94, 0x4e, 0x04, 0x0f,
+ 0xc0, 0x26, 0xde, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x0a, 0x82,
+ 0x81, 0x42, 0x00, 0x15, 0x63, 0x68, 0xa3, 0x6a, 0x6d, 0x90, 0xde, 0x6b,
+ 0xc0, 0x0b, 0x65, 0x4c, 0x50, 0xff, 0x9b, 0x1f, 0x0d, 0xc3, 0x35, 0x90,
+ 0x1a, 0x52, 0x24, 0x9f, 0x98, 0x40, 0x16, 0x33, 0x8d, 0x40, 0x67, 0x57,
+ 0xa9, 0x79, 0xed, 0x8f, 0xe9, 0x7f, 0xc9, 0xe6, 0xff, 0xff, 0xff, 0x9b,
+ 0xf5, 0xb3, 0x89, 0xa0, 0x36, 0xc9, 0xc0, 0x16, 0xf0, 0x8b, 0x5a, 0x67,
+ 0x29, 0xac, 0x60, 0x0d, 0x7a, 0x6d, 0x20, 0xef, 0x7c, 0xd2, 0x99, 0x7a,
+ 0xfa, 0xdf, 0x75, 0x83, 0xa3, 0x17, 0xef, 0xeb, 0x59, 0xc6, 0x67, 0xff,
+ 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x98, 0xa0, 0x1e, 0x1f, 0xe1, 0x28,
+ 0x13, 0x1b, 0xed, 0xf3, 0x0a, 0xfa, 0x83, 0x18, 0xd3, 0x31, 0xb6, 0xad,
+ 0xd9, 0x75, 0x90, 0xe7, 0x49, 0xbb, 0xe3, 0xfe, 0x7f, 0x5e, 0xfc, 0x77,
+ 0xbf, 0x7e, 0x3b, 0xd1, 0xbf, 0xff, 0x27, 0x82, 0x13, 0xc0, 0x23, 0xd7,
+ 0xdb, 0x00, 0x18, 0xdf, 0x14, 0x2f, 0x33, 0xef, 0xfc, 0x03, 0x0e, 0x6f,
+ 0x83, 0x8b, 0xcb, 0xf1, 0x2b, 0x80, 0x24, 0x74, 0x87, 0xd1, 0x19, 0x40,
+ 0x4c, 0x29, 0xa4, 0xfc, 0x90, 0xf0, 0x1f, 0x84, 0xf1, 0x7b, 0x65, 0x01,
+ 0x8f, 0x0f, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4,
+ 0x11, 0x7c, 0xda, 0x7b, 0xa1, 0x0a, 0x39, 0x16, 0xc4, 0x63, 0x83, 0x07,
+ 0xc0, 0x23, 0xd7, 0xdb, 0x0f, 0xec, 0x8c, 0xcf, 0x07, 0x80, 0x18, 0xdf,
+ 0x28, 0x7c, 0x8f, 0xbf, 0xf1, 0x05, 0xfa, 0xb8, 0xba, 0x4f, 0xe5, 0x03,
+ 0x0f, 0xfc, 0xd7, 0xff, 0xfe, 0x1e, 0x60, 0x07, 0xe7, 0xa4, 0x3e, 0xc8,
+ 0xc9, 0x70, 0xe8, 0x0f, 0xc2, 0x1e, 0x07, 0xf8, 0x09, 0x80, 0x73, 0x88,
+ 0x9e, 0xbd, 0x7f, 0xc6, 0x1a, 0x99, 0xcc, 0xfe, 0x7c, 0x50, 0x88, 0x2e,
+ 0x77, 0x5b, 0x94, 0xfe, 0xcf, 0xff, 0x09, 0xb8, 0xff, 0xfe, 0xfe, 0x23,
+ 0xdd, 0xe0, 0x7e, 0xf6, 0x52, 0x61, 0xff, 0xff, 0x07, 0xf6, 0x0f, 0xc3,
+ 0xe6, 0xff, 0x5c, 0xf5, 0xc2, 0xb0, 0x07, 0xfa, 0xef, 0xb5, 0xb3, 0xff,
+ 0x7d, 0x7f, 0xe0, 0x07, 0x87, 0x5d, 0x6a, 0x6e, 0xe1, 0xcb, 0x0c, 0xad,
+ 0xf7, 0x6b, 0xdf, 0xfe, 0xbf, 0xff, 0x08, 0x7f, 0xb8, 0x69, 0x0c, 0xcd,
+ 0x78, 0x79, 0xff, 0x97, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f,
+ 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xef, 0xff, 0xf3,
+ 0x7f, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfc,
+ 0x12, 0xce, 0x00, 0x0c, 0xf9, 0x4f, 0x7a, 0x93, 0xd7, 0xfe, 0x00, 0xc5,
+ 0x72, 0x36, 0x55, 0x5e, 0xfe, 0x00, 0xf6, 0x90, 0x1f, 0xb1, 0x7c, 0x57,
+ 0xff, 0xff, 0xff, 0x58, 0xa1, 0x40, 0x1e, 0x5b, 0xfd, 0x0e, 0xb2, 0x29,
+ 0x83, 0xc2, 0x50, 0x76, 0xc2, 0x0b, 0xe6, 0x2b, 0xc2, 0xa7, 0xb2, 0x38,
+ 0x5b, 0x51, 0xec, 0x79, 0x75, 0x2b, 0x16, 0x21, 0x77, 0x8f, 0xc0, 0xbf,
+ 0x83, 0x93, 0x37, 0xff, 0xf0, 0xc7, 0xeb, 0x61, 0x80, 0x7b, 0x27, 0x02,
+ 0x6b, 0xe9, 0x9f, 0x43, 0x82, 0x41, 0xb4, 0xeb, 0x6b, 0x52, 0x62, 0xa7,
+ 0x9f, 0x8f, 0xa5, 0x26, 0x7c, 0xff, 0xff, 0xf7, 0xff, 0xfc, 0x31, 0xc3,
+ 0x07, 0xff, 0x84, 0xb8, 0x09, 0x6e, 0x6a, 0x3c, 0x43, 0x4c, 0xbc, 0x09,
+ 0x3f, 0xcb, 0x63, 0xeb, 0x78, 0xed, 0xef, 0x1d, 0xa5, 0xe1, 0x8f, 0x81,
+ 0x0c, 0x8b, 0xf0, 0x4c, 0x58, 0x71, 0x17, 0x68, 0x31, 0x01, 0xe1, 0xe7,
+ 0x28, 0x10, 0xa0, 0x4d, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xb6, 0xa5, 0x81, 0x4b, 0xaf, 0x0c, 0x7e, 0x59, 0x17, 0xe3, 0x04, 0x40,
+ 0x45, 0x8c, 0xc4, 0x04, 0x7a, 0x28, 0x10, 0xfe, 0x50, 0x21, 0x40, 0x93,
+ 0x3e, 0xfb, 0xd7, 0xc6, 0x47, 0xe1, 0xa7, 0xb9, 0x60, 0x30, 0x11, 0x63,
+ 0x3c, 0x08, 0xf4, 0x34, 0x5f, 0x9e, 0x07, 0x8e, 0xe7, 0xe1, 0x8f, 0xf3,
+ 0x89, 0xeb, 0x8b, 0x9f, 0xf0, 0x9b, 0x5e, 0x07, 0xf8, 0xbf, 0xc0, 0x0f,
+ 0xdd, 0xea, 0x6e, 0x1c, 0xba, 0x4c, 0x5e, 0x5e, 0xfe, 0x10, 0xef, 0xf2,
+ 0xef, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xfd,
+ 0xff, 0x9b, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x01, 0x0f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x80, 0x04, 0xd5, 0xcf, 0xed, 0x24, 0x7f,
+ 0xe4, 0xeb, 0x0d, 0xdc, 0xe3, 0x04, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0xfc, 0xc1, 0xd9, 0xd1, 0x51, 0x45, 0xc9, 0xcd, 0xe3, 0x05, 0x2b, 0x8f,
+ 0x45, 0xdc, 0x51, 0x4d, 0xc4, 0x47, 0xae, 0xc6, 0xef, 0x34, 0x69, 0x80,
+ 0x18, 0xd8, 0xa2, 0x7b, 0x36, 0xff, 0x41, 0x84, 0x74, 0x7c, 0xfc, 0x5f,
+ 0xec, 0xdf, 0x96, 0x5a, 0x95, 0xfa, 0xd0, 0x35, 0x3e, 0x64, 0x87, 0xda,
+ 0x5f, 0x84, 0xc5, 0x81, 0xb8, 0x72, 0x54, 0xf9, 0xbc, 0x65, 0x14, 0x17,
+ 0x82, 0x65, 0xeb, 0x7b, 0xed, 0x2d, 0x60, 0x5c, 0x9d, 0xfd, 0xc9, 0xe6,
+ 0xff, 0xff, 0xff, 0x9b, 0xf1, 0x09, 0x33, 0x07, 0xb2, 0x70, 0x03, 0x03,
+ 0xd5, 0xf1, 0xdb, 0x56, 0x68, 0xf3, 0x78, 0x78, 0xc2, 0xf2, 0x7e, 0xb4,
+ 0xe0, 0xdf, 0xa3, 0x54, 0xc7, 0x3a, 0x88, 0x15, 0xa0, 0xfe, 0x7f, 0xff,
+ 0xff, 0xff, 0xbf, 0xff, 0xff, 0xe2, 0x26, 0x7a, 0x59, 0x09, 0xa2, 0x26,
+ 0x73, 0x47, 0xc3, 0xff, 0x09, 0x42, 0x18, 0x64, 0x2c, 0xad, 0x40, 0xc1,
+ 0xf8, 0x08, 0x61, 0x90, 0xa6, 0xad, 0x40, 0x21, 0x86, 0x42, 0x9a, 0xb5,
+ 0x78, 0x30, 0x73, 0xfa, 0xf7, 0xe3, 0xbd, 0xfb, 0xf1, 0xc6, 0xf9, 0x43,
+ 0xe9, 0x08, 0x50, 0xbc, 0x07, 0x46, 0x50, 0x69, 0x68, 0x02, 0x4a, 0xa2,
+ 0x66, 0xb8, 0x5f, 0x7a, 0x12, 0x1d, 0x54, 0xd9, 0x2a, 0xbe, 0x5e, 0x9b,
+ 0x0e, 0xee, 0x3f, 0xe1, 0x27, 0xe0, 0x06, 0x56, 0x9d, 0x71, 0xdb, 0xe7,
+ 0x36, 0x38, 0xff, 0xf0, 0xfc, 0x02, 0x51, 0x48, 0xda, 0xaf, 0x3a, 0xbf,
+ 0x0a, 0x50, 0x00, 0x45, 0x6e, 0xee, 0xeb, 0x2f, 0x80, 0x44, 0x53, 0x68,
+ 0x1f, 0x6b, 0xff, 0xef, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xda, 0xc4, 0x25, 0xc8, 0x68, 0x01, 0xb1, 0xda, 0xd0, 0x18, 0x83, 0x87,
+ 0x37, 0xe6, 0xd3, 0xe9, 0x14, 0xf8, 0x4d, 0x07, 0x00, 0x18, 0x46, 0x9d,
+ 0xfa, 0x4f, 0xdc, 0xf0, 0x7a, 0x39, 0x27, 0xb2, 0xe7, 0xaf, 0xa7, 0xf8,
+ 0x00, 0x77, 0x9d, 0xf5, 0x6b, 0xff, 0x30, 0x15, 0x9f, 0xdf, 0xaf, 0x1b,
+ 0xf8, 0x0a, 0xdd, 0xff, 0xc2, 0x1f, 0xff, 0x97, 0xdf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfc, 0x9f, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff,
+ 0xfd, 0xff, 0xfe, 0x6f, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xad, 0xeb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xd7, 0xfd, 0xfb, 0x13, 0x8a, 0xff, 0xff, 0xff, 0xe1, 0x80, 0xec,
+ 0x31, 0x45, 0x17, 0x82, 0xe3, 0x08, 0x02, 0xad, 0x6c, 0xb4, 0x84, 0x00,
+ 0x16, 0xa0, 0x13, 0x7b, 0xf5, 0x3e, 0x04, 0x88, 0x09, 0x8a, 0xff, 0x9b,
+ 0xfe, 0x3a, 0x90, 0x95, 0x9b, 0x45, 0x06, 0x5a, 0x18, 0x0f, 0xfb, 0xfe,
+ 0x13, 0x16, 0x09, 0x43, 0x85, 0x75, 0xce, 0xda, 0x05, 0x37, 0x5e, 0xfa,
+ 0xbc, 0xa8, 0x39, 0x6e, 0xa2, 0x9d, 0xff, 0x26, 0x6f, 0xff, 0xeb, 0x08,
+ 0x2e, 0x04, 0x4d, 0xee, 0x00, 0x1c, 0x63, 0x88, 0xf7, 0x51, 0x57, 0xef,
+ 0x33, 0x47, 0x8e, 0x25, 0x73, 0x68, 0x3f, 0xe6, 0x97, 0x04, 0xa9, 0xc2,
+ 0xac, 0x38, 0x24, 0xcc, 0xe7, 0xd3, 0xa4, 0x7f, 0xff, 0xfb, 0xff, 0xf7,
+ 0xe4, 0xe0, 0x68, 0x10, 0xa6, 0x7c, 0x9c, 0xff, 0xc0, 0x26, 0x6b, 0x43,
+ 0xf0, 0x48, 0x91, 0x0a, 0x3c, 0xde, 0x19, 0x3d, 0xe1, 0xf2, 0x12, 0x26,
+ 0x46, 0xa9, 0x38, 0xf3, 0xeb, 0x78, 0xed, 0xef, 0x1c, 0xbc, 0x31, 0xff,
+ 0xc7, 0x77, 0x85, 0x4b, 0x84, 0xcf, 0xb5, 0x91, 0x1c, 0xa4, 0x5a, 0x11,
+ 0x3d, 0x5c, 0x31, 0xff, 0x7d, 0xfc, 0x67, 0x80, 0x9a, 0x9e, 0x83, 0x80,
+ 0x23, 0xa1, 0xd4, 0x33, 0xc4, 0x6d, 0x33, 0x7f, 0x2f, 0x3f, 0x5d, 0xd4,
+ 0xff, 0xc3, 0x1b, 0xb9, 0x03, 0x87, 0xfc, 0x25, 0xd6, 0xb4, 0xec, 0xdb,
+ 0xdf, 0xa0, 0xd2, 0x79, 0x01, 0x33, 0x74, 0xfc, 0xef, 0xde, 0x36, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x81, 0x0a, 0x43, 0x40, 0x45,
+ 0xbf, 0x7e, 0xff, 0xef, 0x97, 0x5f, 0x19, 0xf7, 0xf0, 0x87, 0xf9, 0x77,
+ 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xfe, 0xff,
+ 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
+ 0xf3, 0x1f, 0x80, 0x4c, 0x19, 0xb9, 0x23, 0x92, 0xc4, 0xc9, 0x17, 0xc0,
+ 0x68, 0x0b, 0x7c, 0x4d, 0x27, 0xdf, 0x07, 0x80, 0x1b, 0x5f, 0xb2, 0x5d,
+ 0xdf, 0x30, 0x29, 0xf9, 0x0b, 0x3b, 0xa2, 0x3b, 0xdf, 0x4f, 0x13, 0x15,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xc4, 0x93, 0x19, 0x14, 0x38, 0x00,
+ 0x77, 0xb2, 0x64, 0x34, 0x74, 0xd5, 0xe7, 0xe4, 0xa1, 0x40, 0xbd, 0xe1,
+ 0x91, 0xe1, 0x47, 0x76, 0x7f, 0x20, 0x01, 0x91, 0x96, 0x93, 0x37, 0xef,
+ 0xfb, 0x68, 0xb6, 0xc0, 0x77, 0xa2, 0x04, 0x8d, 0xde, 0x58, 0x45, 0xf8,
+ 0x10, 0x40, 0xe6, 0x30, 0x69, 0xc4, 0x1e, 0x36, 0x98, 0x5a, 0x9b, 0x65,
+ 0xe8, 0xdd, 0xe7, 0xff, 0x7b, 0x4e, 0xd2, 0x02, 0xbe, 0x7f, 0x0e, 0xf6,
+ 0xe5, 0x2e, 0xdf, 0x68, 0x00, 0x02, 0x72, 0x49, 0x6d, 0xff, 0x0c, 0x7f,
+ 0x8b, 0x0f, 0xff, 0x77, 0xfc, 0x00, 0xdd, 0xd1, 0x91, 0xd5, 0x5a, 0x1d,
+ 0x39, 0xa2, 0x32, 0x36, 0xa6, 0x19, 0xcf, 0xb2, 0xab, 0xbf, 0x9c, 0x1e,
+ 0x60, 0xfe, 0x12, 0xfc, 0x10, 0x09, 0x06, 0x11, 0x64, 0xa6, 0x3f, 0x13,
+ 0xef, 0xff, 0x0c, 0x01, 0x46, 0x78, 0x59, 0x57, 0x77, 0xfc, 0x9e, 0x6f,
+ 0xff, 0xff, 0xe2, 0xc9, 0x28, 0x60, 0x61, 0xf8, 0x87, 0x47, 0xa6, 0x3d,
+ 0xd4, 0x66, 0xfc, 0x54, 0x89, 0x89, 0xdd, 0x56, 0xfc, 0x26, 0x7d, 0xaf,
+ 0x07, 0x04, 0x85, 0x24, 0xb0, 0x89, 0xac, 0x7f, 0x9f, 0xc0, 0x22, 0x95,
+ 0xec, 0x07, 0xcc, 0x66, 0xfe, 0xbe, 0x01, 0x89, 0x85, 0x9d, 0x3f, 0x52,
+ 0xca, 0xe4, 0x1a, 0x90, 0x8b, 0xf9, 0xf7, 0x7d, 0x91, 0x34, 0xfc, 0x3c,
+ 0x4b, 0xc0, 0xe2, 0x46, 0x50, 0x25, 0x40, 0xe4, 0xd6, 0xbb, 0x10, 0x44,
+ 0x6d, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xcc, 0x11, 0x5c, 0x0b,
+ 0xfe, 0x12, 0x18, 0x0d, 0xb4, 0x8d, 0x34, 0xc7, 0xc9, 0x21, 0xac, 0x5b,
+ 0xb1, 0xb9, 0x6b, 0x13, 0x2c, 0x7b, 0x4c, 0x2c, 0x56, 0x67, 0x5b, 0xee,
+ 0x56, 0x94, 0xfa, 0xa4, 0xc9, 0xfa, 0x4c, 0xb9, 0xe0, 0x19, 0xf9, 0x4a,
+ 0xc1, 0xc0, 0x07, 0xff, 0x4f, 0xc0, 0x38, 0x13, 0xf7, 0xb0, 0x0d, 0x7f,
+ 0x74, 0xee, 0x8b, 0xdf, 0x8e, 0xe2, 0xb0, 0x03, 0x8c, 0x92, 0x30, 0x18,
+ 0xc1, 0xae, 0x68, 0x6e, 0x64, 0x7b, 0x01, 0x81, 0x07, 0x12, 0xd0, 0x66,
+ 0x56, 0x63, 0xf2, 0x94, 0x02, 0x5d, 0x3c, 0x00, 0x04, 0x02, 0x33, 0x57,
+ 0x55, 0xaf, 0xfc, 0x24, 0xc1, 0x4f, 0x72, 0xf2, 0x7e, 0x07, 0x1f, 0xa8,
+ 0xf7, 0xf0, 0x45, 0xeb, 0x5e, 0x7f, 0xfc, 0x62, 0xf2, 0x6d, 0x57, 0xe3,
+ 0xaa, 0xf0, 0x4e, 0xbe, 0x05, 0x07, 0x46, 0x40, 0x6a, 0xe8, 0x2a, 0x75,
+ 0xf6, 0x7b, 0xe9, 0x00, 0x51, 0xf7, 0x81, 0xa8, 0x89, 0xb5, 0x5d, 0xac,
+ 0x7c, 0x5f, 0xf3, 0x7c, 0x3d, 0x57, 0xe0, 0x81, 0x7c, 0x01, 0xfa, 0xa8,
+ 0xee, 0xe0, 0x0f, 0xdd, 0x67, 0x79, 0xa7, 0xe3, 0x89, 0xfc, 0x14, 0x78,
+ 0xa7, 0xc0, 0x70, 0x21, 0x0c, 0x29, 0x32, 0xd0, 0x03, 0x04, 0x6f, 0x01,
+ 0x77, 0xca, 0x26, 0x25, 0x62, 0x3c, 0xc3, 0xd5, 0xff, 0xf8, 0x7c, 0xc0,
+ 0x0b, 0x32, 0xaa, 0x3b, 0xda, 0x03, 0xf2, 0x4d, 0x37, 0x5a, 0xdf, 0xef,
+ 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x35, 0xfe,
+ 0x51, 0x08, 0x1e, 0x12, 0xe0, 0x66, 0x22, 0xfa, 0xf1, 0xbc, 0x54, 0x80,
+ 0x28, 0x72, 0x1f, 0xf2, 0x38, 0x25, 0xf8, 0x91, 0xb8, 0xff, 0xfe, 0xff,
+ 0xf2, 0xfa, 0x02, 0xc3, 0xd8, 0x9b, 0xe6, 0xc0, 0x27, 0x7a, 0xa7, 0xfc,
+ 0x67, 0xff, 0x84, 0x39, 0x1c, 0x26, 0xe0, 0xcc, 0x5f, 0xda, 0x78, 0x7c,
+ 0x36, 0x80, 0xf7, 0xf8, 0x8c, 0x33, 0xb2, 0x75, 0x88, 0x5f, 0x2f, 0x8c,
+ 0xf2, 0x7b, 0xf0, 0xaf, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xf7, 0xff, 0xf9,
+ 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60,
+ 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef,
+ 0xc8, 0x26, 0x58, 0xb3, 0xe0, 0x8d, 0xa3, 0xbe, 0xaf, 0xe3, 0x45, 0x86,
+ 0x4c, 0x22, 0x58, 0xaf, 0xff, 0xff, 0xf7, 0xe1, 0x83, 0x06, 0xb3, 0xc5,
+ 0xe3, 0x4a, 0xad, 0x88, 0x02, 0x6f, 0xcd, 0xd9, 0xff, 0xd1, 0x69, 0x6e,
+ 0x78, 0x03, 0xf1, 0xeb, 0xfd, 0x40, 0xf8, 0x33, 0x5d, 0x16, 0xd3, 0xc0,
+ 0xd7, 0xd6, 0x7f, 0xc6, 0xff, 0xa6, 0x88, 0x70, 0x84, 0x41, 0xd3, 0x53,
+ 0x60, 0x99, 0x2e, 0x9a, 0xa2, 0x44, 0x89, 0x8c, 0xba, 0x1f, 0x39, 0x78,
+ 0x60, 0xe3, 0xd2, 0x3a, 0xa8, 0xf1, 0x8f, 0xf9, 0x33, 0x7f, 0xfb, 0xf0,
+ 0xc7, 0x1e, 0x00, 0x68, 0x3a, 0xa4, 0x59, 0xb0, 0x03, 0x03, 0xd5, 0xf1,
+ 0xd9, 0x73, 0x4b, 0x2e, 0x64, 0xc1, 0x58, 0xa5, 0x02, 0xc5, 0x32, 0xf0,
+ 0x12, 0x37, 0x75, 0x3c, 0xc2, 0xb9, 0x5b, 0xf3, 0x0d, 0xad, 0x92, 0x6f,
+ 0xcf, 0x59, 0xcd, 0x80, 0x2f, 0x83, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c,
+ 0x54, 0xc4, 0x2e, 0x23, 0xfe, 0x12, 0x66, 0x51, 0x24, 0x6c, 0xab, 0xc0,
+ 0xda, 0x5a, 0xd2, 0xd8, 0x3c, 0x4d, 0x29, 0x61, 0x30, 0x63, 0x21, 0xf3,
+ 0x34, 0x13, 0x6d, 0x26, 0x33, 0xbe, 0xa5, 0xff, 0xc0, 0x0c, 0xeb, 0xad,
+ 0xe3, 0x96, 0x62, 0xc0, 0x0a, 0x1f, 0xb6, 0x1d, 0x19, 0x7f, 0xd2, 0x78,
+ 0x00, 0x1a, 0xc3, 0x1f, 0xe2, 0x20, 0x0b, 0xe1, 0x5e, 0x36, 0xa1, 0xd2,
+ 0x1b, 0x5f, 0xa1, 0xe0, 0x12, 0xb7, 0xde, 0xd0, 0xc7, 0xff, 0x1d, 0x56,
+ 0x15, 0xe5, 0xb9, 0x10, 0x3c, 0x0e, 0x32, 0xc2, 0x06, 0x9a, 0x03, 0xc8,
+ 0xe9, 0x4d, 0x62, 0xbb, 0xc7, 0x06, 0x3e, 0x1f, 0xd2, 0x10, 0x43, 0x80,
+ 0x09, 0x2a, 0x89, 0xbb, 0x8b, 0xef, 0x42, 0x43, 0xaa, 0x9b, 0x25, 0xaf,
+ 0x97, 0xa1, 0xb8, 0x95, 0x86, 0xbc, 0x91, 0x18, 0x81, 0x00, 0x13, 0x3c,
+ 0xa5, 0xdb, 0x10, 0x27, 0xb5, 0xfc, 0x4b, 0xf6, 0x58, 0xff, 0xbc, 0x6c,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x82, 0x37, 0xcb, 0xaf,
+ 0x8c, 0x7f, 0xbf, 0x84, 0x1f, 0xfc, 0xbb, 0xff, 0xff, 0xff, 0xf9, 0x3f,
+ 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0x7f, 0xe6, 0xff, 0x27, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf8,
+ 0xc1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x84,
+ 0x8c, 0x0e, 0x08, 0x03, 0xf3, 0xfa, 0x7e, 0x6c, 0x22, 0x52, 0x97, 0x8a,
+ 0xde, 0x3f, 0xe1, 0xfe, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x29,
+ 0x05, 0x0c, 0x01, 0x05, 0xbd, 0x2e, 0x59, 0x12, 0x35, 0x9e, 0xfb, 0xaf,
+ 0x1a, 0xa3, 0xe6, 0xa4, 0x2e, 0x60, 0x05, 0x68, 0xd0, 0x7c, 0x85, 0xcc,
+ 0xbd, 0xf7, 0xee, 0xef, 0xb8, 0x53, 0x05, 0x3e, 0x17, 0xfc, 0x26, 0x25,
+ 0xf4, 0x00, 0xbd, 0xcc, 0xbd, 0x57, 0xc2, 0x4c, 0x25, 0xbe, 0x0a, 0x66,
+ 0x7c, 0x50, 0x03, 0x58, 0xbd, 0x39, 0x4f, 0xbf, 0xb9, 0x3c, 0xdf, 0xff,
+ 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x37, 0x00, 0x51, 0xd1,
+ 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3, 0xc0, 0x55, 0x27, 0x27, 0xe1,
+ 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xea, 0xc5, 0x81, 0xeb, 0x83, 0x65,
+ 0x3e, 0x4c, 0x59, 0x98, 0xbe, 0xa7, 0x93, 0xa2, 0xc0, 0x7a, 0xf1, 0x32,
+ 0xa4, 0xb6, 0xce, 0xe7, 0x37, 0xff, 0xe4, 0x50, 0x42, 0x78, 0x01, 0x11,
+ 0xb6, 0x12, 0x15, 0xd8, 0xff, 0x78, 0x00, 0xf5, 0x2f, 0x80, 0xfd, 0xe6,
+ 0x3e, 0xff, 0xc1, 0xff, 0xff, 0xb9, 0xe5, 0xfc, 0x73, 0xe9, 0x82, 0x18,
+ 0xf9, 0xe3, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xfb, 0x20, 0x9b, 0xf0,
+ 0x7b, 0x30, 0x38, 0x3e, 0x61, 0x86, 0x94, 0x73, 0x4a, 0xd2, 0x29, 0x13,
+ 0x7e, 0x24, 0xb0, 0x07, 0xa9, 0x7c, 0x07, 0xef, 0x30, 0x07, 0xc9, 0x57,
+ 0x4f, 0x71, 0xfb, 0x9f, 0xb7, 0xbf, 0xc7, 0xff, 0xf7, 0x03, 0x0e, 0x00,
+ 0x7c, 0x76, 0xed, 0x9f, 0xb8, 0xa4, 0x18, 0xce, 0xff, 0xfa, 0xff, 0xdd,
+ 0xf3, 0x0a, 0x4f, 0x4f, 0x98, 0x4e, 0x09, 0xfe, 0x00, 0xd9, 0xfa, 0x97,
+ 0xf8, 0x1e, 0x81, 0x81, 0x23, 0xd0, 0xef, 0x6f, 0xfc, 0x01, 0xcd, 0xcb,
+ 0x3d, 0x22, 0x78, 0xee, 0x6c, 0x27, 0x62, 0xa3, 0x1e, 0x26, 0x27, 0x98,
+ 0x8f, 0x32, 0x4d, 0x21, 0xcf, 0x09, 0xe2, 0xc6, 0x00, 0x95, 0xea, 0x5f,
+ 0xe0, 0x7f, 0xe1, 0xc4, 0x5b, 0xbf, 0xc0, 0x1c, 0xdd, 0x67, 0xa5, 0xef,
+ 0xc7, 0x73, 0x16, 0x30, 0x1e, 0x01, 0xec, 0xde, 0x2d, 0xff, 0xc3, 0xe5,
+ 0xf0, 0x01, 0x9f, 0xf1, 0x17, 0xf3, 0xfe, 0xff, 0xfb, 0xf1, 0xb0, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x25, 0xff, 0x2f, 0xaf, 0x1b,
+ 0xff, 0x7f, 0xf0, 0x87, 0xff, 0xe5, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x27, 0xff, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0x7f,
+ 0xff, 0x9b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae,
+ 0x6f, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xd7, 0xfd, 0x92, 0x2c, 0xf8, 0x10, 0xfd, 0x0d, 0xb9, 0x7e, 0x3a, 0x59,
+ 0x76, 0x4c, 0x57, 0xff, 0xff, 0xff, 0x65, 0x8a, 0x10, 0x11, 0x8e, 0xd2,
+ 0x38, 0xde, 0xb3, 0x6f, 0xc0, 0x6f, 0x14, 0xa3, 0xd0, 0x1d, 0x7c, 0x80,
+ 0x14, 0x68, 0x72, 0x93, 0xb6, 0x7f, 0x14, 0x8a, 0x3d, 0x02, 0x71, 0x14,
+ 0xa8, 0xfc, 0x48, 0x92, 0xa0, 0x13, 0x20, 0xca, 0x48, 0x50, 0x9d, 0x37,
+ 0xbf, 0x2e, 0xa4, 0x8c, 0xb7, 0x0d, 0xee, 0xf7, 0xc6, 0xf4, 0x3f, 0x0a,
+ 0x7c, 0x99, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0x83, 0x15, 0x9b,
+ 0x00, 0x8f, 0x5f, 0x6c, 0x3d, 0x9d, 0x2d, 0xe1, 0xd9, 0x78, 0x09, 0xbb,
+ 0x5a, 0x0f, 0x93, 0x7f, 0xd2, 0x03, 0xcf, 0x5f, 0xf8, 0x75, 0xa9, 0x0b,
+ 0xfb, 0xfd, 0x46, 0x8a, 0xb4, 0xea, 0x79, 0x12, 0xec, 0xeb, 0xd7, 0xff,
+ 0xf7, 0xff, 0xfc, 0x31, 0x6a, 0x6d, 0xff, 0x84, 0x8f, 0x00, 0xc7, 0x56,
+ 0x9f, 0xe4, 0x04, 0xd6, 0x86, 0xca, 0x81, 0xb6, 0xa1, 0x6f, 0x09, 0x09,
+ 0xc7, 0xc0, 0xe7, 0x0c, 0x4a, 0xc5, 0x50, 0x22, 0x6d, 0x7b, 0x50, 0x09,
+ 0x1e, 0xac, 0x3f, 0xfe, 0xee, 0x17, 0x54, 0x79, 0x98, 0x08, 0x3f, 0xe9,
+ 0xf2, 0x57, 0xec, 0x0e, 0x8b, 0xc0, 0x0f, 0x9f, 0xca, 0x36, 0xe2, 0x90,
+ 0x2b, 0x7b, 0xfe, 0x6f, 0xfb, 0xff, 0xc0, 0x40, 0xf7, 0x9d, 0xe2, 0x2f,
+ 0xc3, 0x1f, 0xe7, 0x33, 0xf8, 0x20, 0x2f, 0x00, 0xe0, 0x97, 0xeb, 0x78,
+ 0x64, 0x17, 0x80, 0xfc, 0x2c, 0x98, 0xe7, 0xd0, 0x62, 0x7a, 0xc4, 0xff,
+ 0xe1, 0xf4, 0x00, 0xf7, 0xed, 0x01, 0x2e, 0xdf, 0x00, 0x7b, 0xef, 0x8f,
+ 0x62, 0x18, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x02, 0x2d, 0x0d, 0xde, 0x78,
+ 0x12, 0xfa, 0x03, 0xf7, 0xb3, 0xb7, 0x06, 0x0b, 0xbc, 0x73, 0xee, 0x42,
+ 0x80, 0xeb, 0x5f, 0x46, 0xf7, 0x2d, 0x07, 0xfe, 0xf1, 0xb0, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x2f, 0x97, 0x5f, 0x19, 0xf7,
+ 0xf0, 0x87, 0xf9, 0x77, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0xfe, 0x14, 0xff,
+ 0xfc, 0x21, 0xfe, 0xff, 0xcd, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x01, 0x4f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xaf, 0xf2, 0x97, 0x0d, 0xe5, 0x80, 0x45, 0xe5, 0x9c,
+ 0x64, 0xeb, 0xbb, 0x62, 0x7c, 0xbf, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xc5,
+ 0x1a, 0x01, 0x33, 0x5f, 0xa7, 0xf7, 0x7f, 0x01, 0x0b, 0x36, 0x8f, 0xfc,
+ 0xb2, 0x74, 0x3c, 0x74, 0xce, 0x64, 0x45, 0x29, 0x38, 0xf0, 0x38, 0xb7,
+ 0x87, 0x01, 0xd6, 0xbe, 0x6e, 0xcf, 0xe9, 0xe0, 0x39, 0x12, 0x9e, 0xd1,
+ 0x6e, 0xb1, 0xaa, 0xe2, 0x68, 0xdb, 0x38, 0xeb, 0xa6, 0x6f, 0xed, 0xc0,
+ 0x7f, 0x80, 0x8c, 0xac, 0xd4, 0x7b, 0xf3, 0x7b, 0x18, 0x44, 0x0a, 0x89,
+ 0x58, 0xc8, 0x47, 0xc9, 0xf8, 0x21, 0x86, 0x02, 0x17, 0xae, 0xf0, 0xa6,
+ 0x03, 0x3b, 0x4f, 0x70, 0x8b, 0xff, 0xf8, 0x0d, 0xef, 0xd5, 0xf2, 0x15,
+ 0xc0, 0x16, 0xb1, 0x4c, 0xa9, 0xb3, 0xec, 0xce, 0x48, 0x2a, 0xb6, 0x85,
+ 0xd3, 0x12, 0x37, 0xa4, 0x67, 0xa6, 0x47, 0xcb, 0x80, 0x63, 0xab, 0xec,
+ 0x40, 0x70, 0xdb, 0xa1, 0x6e, 0xc7, 0xcc, 0x5c, 0x01, 0x6a, 0x4d, 0x7e,
+ 0xac, 0x69, 0xbb, 0xc9, 0x70, 0xc8, 0x86, 0x35, 0x5c, 0x29, 0xba, 0x69,
+ 0x93, 0xfb, 0x4f, 0xf0, 0x99, 0x49, 0x91, 0x31, 0xad, 0xa7, 0x6e, 0x21,
+ 0xcf, 0xe4, 0xf3, 0x7f, 0xff, 0xf9, 0xbf, 0x15, 0x40, 0x03, 0x06, 0xa5,
+ 0x93, 0x80, 0x33, 0xf9, 0x1e, 0x8b, 0xbb, 0xb9, 0x62, 0x13, 0x58, 0xc5,
+ 0x5d, 0x0e, 0x37, 0x28, 0x66, 0x25, 0xed, 0x48, 0xeb, 0xd1, 0xe4, 0xcb,
+ 0xa3, 0x72, 0x0f, 0xcf, 0x21, 0xf7, 0x5a, 0xc9, 0xbf, 0x5b, 0x10, 0x55,
+ 0x3b, 0x7e, 0x02, 0x32, 0x9e, 0x9f, 0x9c, 0x5f, 0x53, 0x3c, 0x38, 0xeb,
+ 0x67, 0xe4, 0x01, 0xcf, 0x74, 0xa6, 0x31, 0xd3, 0x0d, 0x26, 0xdc, 0x01,
+ 0x9e, 0xfd, 0x72, 0x2e, 0x7e, 0x62, 0xc0, 0x85, 0xb8, 0xfd, 0xd9, 0xf9,
+ 0x3f, 0x03, 0xc8, 0x12, 0x00, 0xc2, 0x06, 0x0c, 0x42, 0xe0, 0x90, 0x06,
+ 0x90, 0xac, 0x40, 0x08, 0x20, 0xdd, 0x57, 0x9d, 0xbf, 0x00, 0x4b, 0xe6,
+ 0x7e, 0x44, 0x13, 0x7f, 0x50, 0x73, 0x0f, 0x77, 0xff, 0xe1, 0x26, 0x3a,
+ 0x5a, 0xdb, 0x40, 0x3f, 0x30, 0xca, 0xd3, 0x5d, 0xfd, 0x6f, 0xf3, 0xff,
+ 0xff, 0xfd, 0xff, 0xff, 0xf9, 0x98, 0x67, 0x09, 0x7f, 0xc2, 0x48, 0x05,
+ 0xb2, 0xb5, 0x8c, 0x37, 0x1c, 0xa6, 0x58, 0x8d, 0xa1, 0x48, 0xd2, 0xd3,
+ 0x36, 0x8b, 0x14, 0x6b, 0xf4, 0xe2, 0x80, 0x76, 0x59, 0x22, 0x26, 0x8d,
+ 0xdd, 0xb3, 0xe5, 0xfa, 0xc0, 0x42, 0x98, 0x62, 0x6b, 0xf3, 0xfc, 0xf1,
+ 0x39, 0xfb, 0xf1, 0xde, 0xc2, 0x92, 0x00, 0x02, 0x6d, 0x34, 0x93, 0x69,
+ 0x26, 0x9b, 0xff, 0xe0, 0x69, 0x86, 0xb5, 0xf7, 0xe3, 0xbe, 0x6f, 0xe1,
+ 0xff, 0x0a, 0x12, 0x01, 0xf3, 0x20, 0xfe, 0x7e, 0x08, 0x9b, 0x6e, 0x69,
+ 0xa2, 0x93, 0x86, 0x09, 0x3b, 0x6d, 0x08, 0x67, 0xf2, 0x6f, 0x4a, 0xf5,
+ 0x7d, 0x6e, 0x04, 0x8f, 0xe5, 0x91, 0x71, 0xde, 0x6a, 0x22, 0xa7, 0x74,
+ 0xcd, 0x5e, 0xab, 0x6f, 0xa5, 0x0e, 0x39, 0x39, 0x98, 0x4c, 0x83, 0x88,
+ 0x78, 0x2c, 0x5b, 0x04, 0x03, 0x77, 0x5e, 0xb2, 0xb6, 0x86, 0x8f, 0x77,
+ 0x2c, 0x81, 0xa3, 0x43, 0x83, 0x03, 0x12, 0x39, 0x60, 0x8b, 0xf3, 0x36,
+ 0xa6, 0xf8, 0xb3, 0x45, 0x22, 0x93, 0x94, 0xe1, 0x2b, 0x40, 0x62, 0x4e,
+ 0x58, 0xcf, 0x63, 0xde, 0xae, 0x80, 0xfb, 0x5c, 0x07, 0x5c, 0xca, 0xd3,
+ 0xe4, 0xf8, 0x37, 0x20, 0x89, 0x0f, 0xad, 0x34, 0xd8, 0x53, 0xd2, 0x4d,
+ 0x3d, 0xb8, 0x34, 0x09, 0x50, 0x72, 0x3b, 0xe1, 0xda, 0x8a, 0x78, 0xec,
+ 0x47, 0x8a, 0x10, 0x69, 0x9c, 0x59, 0xdb, 0x3f, 0xe3, 0x60, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x0a, 0x7c, 0x82, 0x20, 0x48, 0x2e,
+ 0xe6, 0x7f, 0xdb, 0x54, 0x4c, 0xe5, 0x95, 0x13, 0x39, 0x6f, 0xf1, 0x10,
+ 0x34, 0x4c, 0xe5, 0x95, 0x13, 0x39, 0x6f, 0x54, 0x4c, 0xe5, 0xba, 0x5f,
+ 0xc4, 0x20, 0x68, 0x12, 0xa0, 0x20, 0xb7, 0x81, 0x20, 0x78, 0x1c, 0xc2,
+ 0xc0, 0x96, 0x8a, 0xa6, 0xe5, 0xbc, 0x83, 0xf6, 0x55, 0xc2, 0x92, 0xe0,
+ 0x44, 0x5b, 0xa7, 0x9f, 0x9e, 0xff, 0x9f, 0xff, 0xfe, 0xbf, 0xe3, 0x3f,
+ 0xef, 0xfe, 0xcd, 0x38, 0x2f, 0x6c, 0x7e, 0xc5, 0x01, 0x19, 0xb3, 0xbe,
+ 0xcd, 0xd6, 0x94, 0xa4, 0x58, 0x07, 0x31, 0xe0, 0x31, 0x4d, 0xe6, 0x82,
+ 0x6c, 0x18, 0xab, 0x63, 0x20, 0xea, 0x73, 0xdb, 0x46, 0x09, 0xa4, 0x98,
+ 0x6e, 0x2c, 0x3d, 0x8c, 0x78, 0x53, 0xa2, 0x60, 0x80, 0x01, 0xd2, 0xaf,
+ 0x58, 0x0e, 0xdc, 0x99, 0xff, 0x9b, 0xfb, 0x36, 0x3f, 0x71, 0x94, 0xbc,
+ 0x9b, 0xdd, 0x78, 0xde, 0xbd, 0x89, 0xfc, 0xff, 0xe8, 0x86, 0x29, 0xbc,
+ 0xd0, 0x26, 0xc1, 0x8a, 0xb6, 0x36, 0x1d, 0x4e, 0x7b, 0x69, 0x1b, 0x59,
+ 0xec, 0x09, 0xc8, 0xb4, 0x1e, 0xfc, 0xf2, 0xfa, 0x90, 0x20, 0x00, 0x74,
+ 0xab, 0xd6, 0x03, 0xb7, 0x26, 0x77, 0xf9, 0xb0, 0xf6, 0x6c, 0x7e, 0xe3,
+ 0x29, 0x79, 0x37, 0xba, 0xf1, 0xbd, 0x7b, 0x13, 0xf9, 0xe1, 0xf4, 0x43,
+ 0x14, 0xde, 0x68, 0x13, 0x60, 0xc5, 0x5b, 0x1b, 0x0e, 0xa7, 0x3d, 0xb4,
+ 0x8d, 0xac, 0xf6, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x10,
+ 0x00, 0x3a, 0x55, 0xeb, 0x01, 0xdb, 0x93, 0x3b, 0xfc, 0xd8, 0x63, 0xb6,
+ 0x29, 0x4d, 0xc6, 0x52, 0xf2, 0x6f, 0x75, 0xe3, 0x7a, 0xf6, 0x27, 0xf3,
+ 0xc3, 0xe8, 0x86, 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9, 0x8d, 0x85, 0xeb,
+ 0x45, 0x2a, 0xbc, 0x98, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48,
+ 0x08, 0x46, 0x8e, 0x1f, 0x01, 0x64, 0x48, 0xd1, 0xe8, 0xea, 0x6f, 0xee,
+ 0x60, 0x31, 0x08, 0xfd, 0x13, 0xdd, 0xac, 0xd9, 0xa1, 0xf3, 0x73, 0xea,
+ 0x03, 0xe8, 0x69, 0x50, 0xa8, 0xf7, 0xee, 0xca, 0x06, 0x6b, 0xd9, 0x90,
+ 0x10, 0x4a, 0xe9, 0x8c, 0x82, 0xf5, 0xa2, 0x95, 0x5e, 0x4c, 0x39, 0x53,
+ 0xc0, 0x23, 0x99, 0x76, 0x7d, 0x7a, 0x05, 0x91, 0x33, 0x47, 0xaa, 0x54,
+ 0xdf, 0xf3, 0x01, 0x88, 0x47, 0xe8, 0x9e, 0xed, 0x66, 0xcd, 0x0f, 0x9b,
+ 0x9f, 0x50, 0x1f, 0x43, 0x4a, 0x85, 0x47, 0xbf, 0x76, 0x50, 0x33, 0x5e,
+ 0xcc, 0x80, 0x82, 0x57, 0x4c, 0x64, 0x17, 0xad, 0x14, 0xaa, 0xf2, 0x61,
+ 0xca, 0x9e, 0x01, 0x1c, 0xcb, 0xb3, 0xeb, 0xd0, 0x2c, 0x89, 0x9a, 0x3d,
+ 0x52, 0xa6, 0xff, 0x98, 0x0c, 0x42, 0x3f, 0x44, 0xf7, 0x6b, 0x36, 0x68,
+ 0x7c, 0xdc, 0xfa, 0x80, 0xfa, 0x1a, 0x54, 0x2a, 0x3d, 0xfb, 0xb2, 0x81,
+ 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x04, 0xdc, 0xda, 0x29,
+ 0xdd, 0x73, 0x95, 0x3c, 0x02, 0x39, 0x97, 0x67, 0xd7, 0xa0, 0x59, 0x13,
+ 0x34, 0x7a, 0xa5, 0x4d, 0xfa, 0x36, 0xee, 0x98, 0x4d, 0x82, 0x3c, 0xfc,
+ 0x77, 0x6b, 0x36, 0x6c, 0x7d, 0x5f, 0x07, 0x76, 0x45, 0xaa, 0xbf, 0xf3,
+ 0xd1, 0x00, 0xcd, 0x7b, 0x32, 0x02, 0x08, 0x64, 0xdd, 0x99, 0x84, 0xdc,
+ 0xda, 0x29, 0xdd, 0x70, 0xf5, 0x26, 0x41, 0xc1, 0x49, 0xd3, 0x3d, 0xbf,
+ 0x81, 0x38, 0x55, 0x8f, 0x7e, 0xe9, 0xb6, 0xd5, 0x30, 0x9b, 0x04, 0x79,
+ 0xf8, 0xee, 0xd6, 0x6c, 0xd8, 0xfa, 0xbe, 0x0e, 0xec, 0x8b, 0x55, 0x7f,
+ 0xe7, 0xa2, 0x01, 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09,
+ 0xb9, 0xb4, 0x53, 0xba, 0xe1, 0xea, 0x4c, 0x83, 0x82, 0x93, 0xa6, 0x7b,
+ 0x7f, 0x02, 0x70, 0xab, 0x1e, 0xfd, 0xd3, 0x6d, 0xaa, 0x61, 0x36, 0x08,
+ 0xf3, 0xf1, 0xdd, 0xac, 0xd9, 0xb1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16, 0xaa,
+ 0xff, 0xcf, 0x44, 0x03, 0x35, 0xec, 0xc8, 0x08, 0x21, 0x93, 0x76, 0x66,
+ 0x13, 0x73, 0x68, 0xa7, 0x75, 0xc3, 0xd4, 0x99, 0x07, 0x05, 0x27, 0x4c,
+ 0xf6, 0xfe, 0x04, 0xe1, 0x56, 0x3d, 0xfb, 0xa6, 0xdb, 0x54, 0xc2, 0x74,
+ 0x37, 0x0f, 0xf2, 0xb9, 0x89, 0x93, 0x3c, 0xde, 0x63, 0x6f, 0x5a, 0xbc,
+ 0xa7, 0xb7, 0xcc, 0x85, 0xc7, 0xe0, 0x21, 0xb7, 0xe6, 0x40, 0x9b, 0x98,
+ 0x64, 0x5c, 0xcc, 0xc2, 0x0f, 0x05, 0xba, 0x90, 0xf4, 0x93, 0x01, 0xdb,
+ 0x4c, 0xff, 0xc2, 0x66, 0xda, 0x80, 0x68, 0x2a, 0xad, 0x76, 0x9a, 0x74,
+ 0x37, 0x09, 0x00, 0x79, 0x5c, 0xc4, 0xc9, 0x9e, 0x6f, 0x31, 0xb7, 0xad,
+ 0x5f, 0x82, 0x16, 0xba, 0xbf, 0xd0, 0x10, 0xdb, 0xf3, 0x20, 0x4d, 0xcc,
+ 0x32, 0x2e, 0x66, 0x61, 0x04, 0x10, 0xb7, 0x52, 0x00, 0xe9, 0x2b, 0x3f,
+ 0x38, 0x86, 0xd3, 0x20, 0x85, 0xf0, 0x99, 0xb6, 0xa0, 0x1a, 0x0a, 0xab,
+ 0x5d, 0xa6, 0x9d, 0x0d, 0xc2, 0x40, 0x1e, 0x57, 0x31, 0x32, 0x67, 0x9b,
+ 0xcc, 0x6d, 0xeb, 0x57, 0xe0, 0x85, 0xae, 0xaf, 0xf4, 0x04, 0x36, 0xfc,
+ 0xc8, 0x13, 0x73, 0x0c, 0x8b, 0x99, 0x98, 0x41, 0x04, 0x2d, 0xd4, 0x80,
+ 0x3a, 0x4a, 0xcf, 0xce, 0x21, 0xb4, 0xc8, 0x21, 0x7c, 0x26, 0x6d, 0xa8,
+ 0x06, 0x82, 0xaa, 0xd7, 0x69, 0xa7, 0x1a, 0x04, 0x80, 0x36, 0xee, 0x62,
+ 0x64, 0xcf, 0x37, 0x9a, 0x31, 0xea, 0xf7, 0xe0, 0x87, 0x82, 0x9a, 0x26,
+ 0x12, 0xb6, 0x62, 0x19, 0xeb, 0xb4, 0xd7, 0x2c, 0x32, 0x67, 0xc0, 0x34,
+ 0x29, 0x56, 0xb5, 0x3f, 0xfe, 0x02, 0x10, 0x55, 0x1a, 0xd6, 0x4d, 0xff,
+ 0x8e, 0xdd, 0xc2, 0x79, 0x11, 0x9d, 0x6a, 0x6c, 0x1b, 0x59, 0xb5, 0x37,
+ 0xd4, 0x70, 0xf7, 0xaf, 0x83, 0xcc, 0x4a, 0x98, 0x0e, 0x98, 0xd5, 0x32,
+ 0x7d, 0x4c, 0x40, 0xaf, 0x1e, 0xfd, 0xff, 0xc0, 0x42, 0x0a, 0xa6, 0xb5,
+ 0x93, 0x71, 0xa8, 0x71, 0xdb, 0xbc, 0x04, 0x2b, 0x29, 0x87, 0x03, 0xc1,
+ 0x9d, 0x04, 0x44, 0x2b, 0x47, 0xbf, 0x46, 0x46, 0x69, 0x61, 0xc7, 0x94,
+ 0x27, 0xb4, 0x6f, 0x91, 0x19, 0x8d, 0x98, 0xdf, 0xa9, 0x88, 0x15, 0xe3,
+ 0xdf, 0xbf, 0xf0, 0x10, 0x82, 0xa9, 0xad, 0x64, 0xc4, 0x71, 0x37, 0x0e,
+ 0x39, 0x71, 0x36, 0xbe, 0x19, 0xe0, 0x1f, 0x40, 0x6d, 0xeb, 0x57, 0xd5,
+ 0x4c, 0x44, 0x2b, 0x47, 0xbf, 0x40, 0x35, 0x6c, 0xc4, 0x44, 0xfd, 0x0c,
+ 0x09, 0xad, 0xe2, 0x6c, 0x16, 0x93, 0x34, 0xdb, 0x6a, 0xbf, 0x53, 0x10,
+ 0x2b, 0xc7, 0xbf, 0x7f, 0x35, 0x7a, 0x88, 0x63, 0x97, 0x13, 0x31, 0x56,
+ 0xc7, 0x87, 0x4d, 0xeb, 0x24, 0xcf, 0x9f, 0x2e, 0x0b, 0x56, 0x0c, 0xeb,
+ 0xd8, 0x90, 0x74, 0x30, 0x27, 0x66, 0xc1, 0x36, 0x08, 0x98, 0x93, 0x34,
+ 0xdb, 0x6a, 0x80, 0x80, 0x5f, 0x25, 0xac, 0x02, 0x50, 0x07, 0xce, 0xbd,
+ 0x60, 0x31, 0x4d, 0x5f, 0x16, 0xc7, 0xf7, 0x31, 0x56, 0xc7, 0x07, 0x4d,
+ 0xeb, 0x25, 0x9f, 0x3e, 0x5c, 0x16, 0xac, 0x19, 0xd7, 0xb1, 0x61, 0xd0,
+ 0xc0, 0x9a, 0xcd, 0x82, 0x6c, 0x11, 0x31, 0x26, 0x60, 0xb7, 0xee, 0xa8,
+ 0x08, 0x05, 0xf2, 0x5a, 0xc0, 0x25, 0x00, 0x7c, 0xab, 0xd6, 0x03, 0x17,
+ 0xf0, 0x5c, 0xd5, 0x0a, 0xd3, 0x8e, 0x31, 0xb4, 0x62, 0xde, 0x38, 0x3a,
+ 0x37, 0x4a, 0x63, 0x29, 0x02, 0xf6, 0x47, 0x12, 0x2d, 0x30, 0x0c, 0x3f,
+ 0xf3, 0x02, 0x5c, 0xeb, 0x74, 0xf8, 0x94, 0x06, 0xd9, 0x2d, 0xa0, 0x20,
+ 0x1f, 0xa5, 0xac, 0x02, 0x50, 0x1f, 0x2a, 0xf5, 0x81, 0xeb, 0xcf, 0x00,
+ 0x38, 0x09, 0x6e, 0x14, 0x5a, 0xc9, 0xa1, 0x86, 0xd8, 0x27, 0xdd, 0x91,
+ 0x34, 0xcf, 0x59, 0x7c, 0x07, 0x25, 0xe9, 0x84, 0x16, 0xb7, 0x5d, 0xc5,
+ 0x5b, 0x80, 0xb6, 0xb4, 0x04, 0x20, 0xf3, 0x63, 0xef, 0x33, 0x14, 0x98,
+ 0x46, 0x6c, 0x7a, 0xf4, 0x07, 0x15, 0x34, 0xce, 0x8a, 0x67, 0xf6, 0xbe,
+ 0x6f, 0x0d, 0xba, 0x08, 0x06, 0xd8, 0x8c, 0xff, 0x92, 0xeb, 0xaf, 0xe0,
+ 0x38, 0x53, 0xf4, 0xc2, 0x0b, 0x7b, 0xab, 0x03, 0x7e, 0xda, 0x02, 0xda,
+ 0xd0, 0x42, 0xd6, 0xeb, 0xc1, 0xfd, 0xa6, 0x01, 0xad, 0xd3, 0x1e, 0xba,
+ 0x0e, 0x01, 0x76, 0x3b, 0x99, 0xfd, 0xaf, 0x9b, 0xc3, 0x6e, 0x82, 0x01,
+ 0xb8, 0x8c, 0xff, 0x92, 0xeb, 0xaf, 0xe0, 0x38, 0x53, 0xf4, 0xc2, 0x0b,
+ 0x7b, 0xab, 0x03, 0x7e, 0xda, 0x02, 0xda, 0xd0, 0x42, 0xd6, 0xeb, 0xc1,
+ 0xfd, 0xa6, 0x01, 0xad, 0xd3, 0x1e, 0xba, 0x0e, 0x01, 0x76, 0x3b, 0x99,
+ 0xfd, 0xaf, 0x9b, 0xed, 0xff, 0xdc, 0x46, 0x7f, 0xc9, 0x74, 0x36, 0xa7,
+ 0xf8, 0x90, 0x10, 0x05, 0xb5, 0x7f, 0x38, 0x2c, 0xcb, 0x4d, 0x02, 0x16,
+ 0xb7, 0x5e, 0x0f, 0xed, 0x30, 0x87, 0xa1, 0xef, 0xd0, 0x25, 0x6b, 0x1e,
+ 0xfd, 0x78, 0xd1, 0xeb, 0x31, 0xf7, 0xcd, 0x03, 0x00, 0x6d, 0xbf, 0xdf,
+ 0x1e, 0x98, 0xd5, 0x30, 0x41, 0x7a, 0x1e, 0xb3, 0xfc, 0x10, 0x0b, 0x6a,
+ 0xfe, 0x60, 0xb3, 0x2d, 0x34, 0xa5, 0xad, 0xe7, 0xa3, 0x04, 0x7b, 0x1e,
+ 0xf2, 0x09, 0x70, 0x7b, 0x9e, 0xc6, 0x83, 0xd6, 0x31, 0xf7, 0xcd, 0x03,
+ 0x00, 0x6d, 0xbf, 0xdf, 0x1e, 0x98, 0xd5, 0x30, 0x41, 0x7a, 0x1e, 0xb3,
+ 0xfc, 0x10, 0x0b, 0x6a, 0xfe, 0x60, 0xb3, 0x2d, 0x34, 0xa5, 0xad, 0xe7,
+ 0xa3, 0x04, 0x7b, 0x1e, 0xf2, 0x09, 0x70, 0x7b, 0x9e, 0xc6, 0x83, 0xd6,
+ 0x31, 0xf7, 0xcd, 0x03, 0x00, 0xed, 0xe3, 0xdf, 0x1e, 0x98, 0xd5, 0x30,
+ 0x41, 0x7a, 0x1e, 0xb3, 0xfc, 0x1d, 0x09, 0x2a, 0x67, 0x52, 0xd6, 0xf3,
+ 0xd1, 0x82, 0x3d, 0x8f, 0x79, 0x40, 0xe8, 0x22, 0xa0, 0x01, 0x26, 0x1c,
+ 0xd4, 0xa1, 0xd9, 0x49, 0x7b, 0x1e, 0xf2, 0x9a, 0x88, 0x01, 0xc3, 0xc7,
+ 0x8a, 0xe0, 0x11, 0x29, 0xd3, 0x0c, 0xbf, 0xf4, 0x04, 0x45, 0xfc, 0x02,
+ 0xbe, 0x0e, 0x32, 0xa4, 0x7a, 0x12, 0x54, 0xcf, 0x02, 0x5d, 0xf6, 0xc4,
+ 0x20, 0x8a, 0x82, 0x08, 0x03, 0x22, 0x8f, 0x7e, 0xa9, 0xe0, 0xf7, 0xa9,
+ 0xa8, 0x80, 0x1c, 0x3c, 0x78, 0xae, 0x01, 0x12, 0x9d, 0x30, 0xcb, 0xff,
+ 0x40, 0x44, 0x5f, 0xc0, 0x2b, 0xe0, 0xe3, 0x2a, 0x47, 0xa1, 0x25, 0x4c,
+ 0xf0, 0x25, 0xdf, 0x6c, 0x42, 0x08, 0xa8, 0x20, 0x80, 0x32, 0x28, 0xf7,
+ 0xea, 0x9e, 0x0f, 0x7a, 0x9a, 0x88, 0x01, 0xc3, 0xfc, 0x57, 0x00, 0x89,
+ 0x4e, 0x98, 0x65, 0xff, 0xa0, 0x22, 0x2f, 0xe0, 0x15, 0xf0, 0x71, 0x95,
+ 0x23, 0xd0, 0x92, 0xa6, 0x78, 0x12, 0xef, 0xb6, 0x93, 0xbd, 0xa8, 0x20,
+ 0x0c, 0x8a, 0x3d, 0xfa, 0x6b, 0x3d, 0x35, 0xac, 0x99, 0xb6, 0xff, 0x1d,
+ 0xa2, 0xa1, 0x31, 0x4b, 0x40, 0x4a, 0xfd, 0xfe, 0xc0, 0x4c, 0x3d, 0xc0,
+ 0x2b, 0xc0, 0x78, 0x96, 0xa6, 0x5c, 0x53, 0x3f, 0x03, 0xc1, 0x95, 0x01,
+ 0x07, 0x7b, 0x46, 0xac, 0x1e, 0xf4, 0x75, 0xb2, 0x69, 0xd2, 0x66, 0xd3,
+ 0xfc, 0x76, 0xb8, 0x12, 0xd2, 0xb8, 0x37, 0xaf, 0xdf, 0x3e, 0xc0, 0x5f,
+ 0xc4, 0x02, 0xbc, 0x03, 0xc4, 0xb5, 0x32, 0xe2, 0x99, 0xff, 0x96, 0x8b,
+ 0x81, 0xe0, 0xca, 0x80, 0x83, 0xbd, 0xa2, 0x2b, 0x63, 0xde, 0x47, 0x5b,
+ 0x26, 0x9d, 0x26, 0x6d, 0x3f, 0xc7, 0x6b, 0x81, 0x2d, 0x2b, 0x83, 0x7a,
+ 0xfd, 0xf3, 0xec, 0x05, 0xfc, 0x40, 0x2b, 0xc0, 0x3c, 0x4b, 0x53, 0x2e,
+ 0x29, 0x9f, 0xf9, 0x68, 0xb8, 0x1e, 0x0c, 0xa8, 0x08, 0x3b, 0xda, 0x22,
+ 0xb6, 0x3d, 0xe4, 0x75, 0xb2, 0x69, 0xd2, 0x66, 0xc9, 0x21, 0xa7, 0xf7,
+ 0x02, 0x5c, 0xae, 0x0d, 0xeb, 0xf7, 0xcf, 0xb0, 0x4f, 0xa1, 0xea, 0x00,
+ 0x24, 0xba, 0xb0, 0xe1, 0x5c, 0x03, 0x13, 0x64, 0xc6, 0xd2, 0x6f, 0xf1,
+ 0xaf, 0xa7, 0xda, 0xe4, 0xc6, 0xec, 0x04, 0x78, 0x3d, 0xeb, 0x02, 0xde,
+ 0x43, 0xba, 0x9b, 0x92, 0x43, 0x4f, 0xee, 0xa0, 0x24, 0xa9, 0x9e, 0x04,
+ 0xf9, 0x43, 0xd6, 0x00, 0x92, 0xe4, 0xc0, 0xd8, 0x5c, 0x0d, 0x29, 0x6c,
+ 0x9b, 0x69, 0x37, 0xf7, 0xd4, 0xfa, 0xaf, 0x0f, 0x64, 0xfa, 0xbf, 0x46,
+ 0x08, 0xf6, 0x3d, 0xe5, 0x81, 0x6f, 0x47, 0x75, 0x30, 0xe4, 0x90, 0xd3,
+ 0xfb, 0x8f, 0x98, 0x95, 0x33, 0xc0, 0x9f, 0x28, 0x7a, 0xc0, 0x12, 0x5c,
+ 0xb0, 0x36, 0x17, 0x03, 0x4a, 0x5b, 0x26, 0x6d, 0x26, 0xfe, 0xfa, 0x9f,
+ 0x55, 0x60, 0xf7, 0xa6, 0x59, 0x31, 0xd8, 0x23, 0xd8, 0xf7, 0x96, 0x05,
+ 0xbd, 0x1d, 0xd4, 0xc3, 0x94, 0x58, 0x29, 0x80, 0xf7, 0x1f, 0x31, 0x74,
+ 0xcf, 0x02, 0x7c, 0xa1, 0xeb, 0x20, 0x38, 0x29, 0xb2, 0x64, 0x61, 0x28,
+ 0xcb, 0x77, 0xfd, 0xf5, 0x3e, 0x9a, 0xd8, 0xf7, 0x93, 0xea, 0xfd, 0x83,
+ 0x80, 0x4a, 0xc6, 0x08, 0x77, 0xb5, 0x30, 0x7d, 0xbb, 0xe3, 0xdf, 0x8c,
+ 0x01, 0x6d, 0x77, 0x25, 0xd7, 0x66, 0x22, 0xef, 0xb6, 0x1e, 0x0a, 0x65,
+ 0x4c, 0x31, 0x31, 0xc3, 0xe1, 0x5f, 0x3e, 0x04, 0xbb, 0xed, 0x82, 0x17,
+ 0xf1, 0x2d, 0x76, 0x7f, 0x53, 0x0b, 0x74, 0x1c, 0x02, 0x56, 0x3c, 0x10,
+ 0xef, 0x6a, 0x6f, 0xdb, 0xbe, 0x3d, 0xf8, 0xc0, 0x16, 0xd7, 0x72, 0x5d,
+ 0x7a, 0x38, 0xbb, 0xed, 0x87, 0x82, 0x99, 0x53, 0x0c, 0x4c, 0x70, 0xe8,
+ 0x57, 0xcf, 0x82, 0x5d, 0xee, 0xb0, 0x85, 0xfc, 0x4b, 0x5d, 0xdf, 0x53,
+ 0x0a, 0x54, 0x03, 0x80, 0x5d, 0x8f, 0x04, 0x3b, 0xda, 0x9b, 0xf6, 0x1d,
+ 0xf1, 0xef, 0xe0, 0x0b, 0x6b, 0xb4, 0x97, 0x5f, 0xab, 0xb7, 0x70, 0xf4,
+ 0x5d, 0x13, 0x00, 0x89, 0x8e, 0x1f, 0x0a, 0xf8, 0x42, 0x09, 0x50, 0x41,
+ 0x2e, 0xf7, 0x58, 0x42, 0xfe, 0x25, 0xae, 0xc7, 0xbf, 0xa6, 0x16, 0xe8,
+ 0x38, 0x05, 0x58, 0xf0, 0x1e, 0xc4, 0xa9, 0x9e, 0x20, 0xe3, 0xac, 0x6d,
+ 0x12, 0x36, 0xa6, 0x31, 0x0b, 0x44, 0xd5, 0x78, 0x1f, 0xd7, 0x5a, 0x75,
+ 0xc7, 0x63, 0x21, 0x48, 0x92, 0xaf, 0x3f, 0xfc, 0x43, 0x1d, 0x63, 0x68,
+ 0x91, 0xb5, 0x34, 0x68, 0x4d, 0x13, 0x55, 0xe7, 0xfd, 0x75, 0xa7, 0x5c,
+ 0x76, 0x32, 0x12, 0x44, 0x95, 0x79, 0xff, 0xe2, 0x23, 0xac, 0x6d, 0x12,
+ 0x36, 0xa6, 0x8d, 0x09, 0xa2, 0x6a, 0xbc, 0xff, 0xae, 0xb4, 0xeb, 0x8e,
+ 0xc6, 0x42, 0x48, 0x92, 0xaf, 0x3f, 0xfc, 0x44, 0x75, 0x8d, 0xa2, 0x46,
+ 0xd4, 0xc6, 0x21, 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8,
+ 0x30, 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30,
+ 0xfd, 0x1a, 0x13, 0x44, 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83,
+ 0x06, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f,
+ 0xd1, 0xa1, 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8, 0x30,
+ 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfd,
+ 0x1a, 0x13, 0x44, 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a,
+ 0x55, 0x47, 0x6f, 0xff, 0x11, 0x08, 0x46, 0xf4, 0x26, 0x8c, 0x3f, 0x18,
+ 0x84, 0xd1, 0x35, 0x5e, 0x7f, 0xd7, 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95,
+ 0x51, 0xdb, 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xc6, 0x21,
+ 0x34, 0x4d, 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54,
+ 0x76, 0xff, 0xf1, 0x10, 0x84, 0x6f, 0x42, 0x68, 0xc3, 0xf1, 0x88, 0x4d,
+ 0x13, 0x55, 0xe7, 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0xac, 0x69, 0x55, 0x1d,
+ 0xbf, 0xfc, 0x44, 0xc8, 0x49, 0x12, 0x55, 0xe0, 0x47, 0x3f, 0xb1, 0x35,
+ 0x61, 0xfb, 0xfe, 0xba, 0xd3, 0xae, 0x3b, 0x56, 0x34, 0xaa, 0x8e, 0xdf,
+ 0xfe, 0x22, 0x64, 0x24, 0x89, 0x2a, 0xf0, 0x23, 0x9f, 0xd8, 0x9a, 0xb0,
+ 0xfd, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff,
+ 0x11, 0x32, 0x12, 0x44, 0x95, 0x78, 0x11, 0xcf, 0xec, 0x4d, 0x58, 0x7e,
+ 0xff, 0xae, 0xb4, 0xeb, 0x8e, 0xd5, 0x8d, 0x2a, 0xa3, 0xb7, 0xff, 0x88,
+ 0x99, 0x09, 0x22, 0x4a, 0xbc, 0x08, 0xe7, 0xf6, 0x26, 0xac, 0x3f, 0x7f,
+ 0x86, 0x56, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x18,
+ 0xe1, 0x24, 0x49, 0x57, 0x81, 0x1c, 0xfe, 0xc4, 0xd5, 0x87, 0xef, 0xf0,
+ 0xca, 0xd3, 0xae, 0x3b, 0x56, 0x34, 0xaa, 0x8e, 0xdf, 0xfe, 0x23, 0x1c,
+ 0x24, 0x89, 0x2a, 0xf0, 0x23, 0x9f, 0xd8, 0x9a, 0xb0, 0xfd, 0xfe, 0x19,
+ 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x63, 0x84,
+ 0x91, 0x25, 0x5e, 0x04, 0x73, 0xfb, 0x13, 0x56, 0x1f, 0xbf, 0xcc, 0x42,
+ 0x68, 0x9a, 0xaf, 0x2b, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x8e, 0x12,
+ 0x44, 0x95, 0x78, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x6f, 0xf3, 0x10, 0x9a,
+ 0x26, 0xab, 0xca, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x63, 0x84, 0x91,
+ 0x25, 0x5e, 0x0e, 0xb1, 0xb4, 0x48, 0xda, 0x9b, 0xfc, 0xc4, 0x26, 0x89,
+ 0xaa, 0xf2, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x0a, 0x38, 0x52, 0x24,
+ 0xab, 0xc1, 0xd6, 0x36, 0x89, 0x1b, 0x53, 0x7f, 0x98, 0x85, 0xa2, 0x6a,
+ 0xbc, 0x0c, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0xff, 0xff, 0xf8, 0x43, 0xff,
+ 0xf7, 0xff, 0xf9, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xae, 0xb1, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xd7, 0x5e, 0xbe, 0x63, 0xe0, 0x24, 0x1d, 0x26, 0xfc, 0x8a, 0x67,
+ 0xc9, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30, 0x6b,
+ 0x58, 0x1e, 0x31, 0x82, 0xd8, 0x40, 0x12, 0xfd, 0xab, 0xe3, 0x5a, 0xb9,
+ 0xf8, 0x81, 0xc4, 0x5e, 0xa3, 0x3d, 0x90, 0xd9, 0x8c, 0xf5, 0x8c, 0xf6,
+ 0xfd, 0xe9, 0x44, 0xcd, 0xf1, 0x84, 0x9c, 0xb1, 0xde, 0x5e, 0x2e, 0x59,
+ 0x03, 0x54, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0x79, 0x8c, 0xb4, 0x69,
+ 0x57, 0x9e, 0x8c, 0x2c, 0xae, 0x16, 0x5d, 0x0d, 0x8f, 0xc9, 0x9b, 0xff,
+ 0xd7, 0xc5, 0x9b, 0x1a, 0x37, 0x01, 0x41, 0x54, 0x68, 0x5b, 0xe7, 0x0d,
+ 0xc6, 0xce, 0xea, 0x28, 0x77, 0xe1, 0x8f, 0xde, 0xfe, 0x94, 0xb2, 0xf0,
+ 0x04, 0x32, 0xb0, 0x7c, 0x63, 0xdf, 0x90, 0x48, 0x3a, 0x90, 0x3a, 0xbc,
+ 0x99, 0xc4, 0xf0, 0x10, 0x3b, 0xe0, 0x3f, 0x6c, 0x0f, 0xf3, 0x8c, 0x82,
+ 0xa5, 0x7f, 0xfb, 0xff, 0xf5, 0xe8, 0x44, 0x44, 0x1d, 0xc0, 0x85, 0x4c,
+ 0x28, 0x3c, 0x27, 0x93, 0x80, 0x99, 0xbe, 0x37, 0xf2, 0x2f, 0x16, 0x21,
+ 0x1a, 0x57, 0x51, 0x45, 0xbf, 0x26, 0x36, 0xd6, 0xc6, 0xa9, 0xb7, 0xfc,
+ 0xbc, 0xfd, 0x02, 0x10, 0x24, 0x61, 0x80, 0xa7, 0xd3, 0x4f, 0x84, 0xfa,
+ 0x02, 0x98, 0x2d, 0x8e, 0x9c, 0x1e, 0x3b, 0x61, 0x8a, 0x47, 0x4f, 0xa5,
+ 0x31, 0x5d, 0x02, 0xf3, 0xf9, 0x02, 0x51, 0xcb, 0xbb, 0xc7, 0x75, 0xeb,
+ 0xd6, 0x43, 0xe0, 0x41, 0xa9, 0x2e, 0x7e, 0xbd, 0x7e, 0x36, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xba, 0xc5, 0x81, 0x4b, 0xae, 0x5d, 0x7c, 0x67,
+ 0xdf, 0xda, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7,
+ 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xef, 0xff, 0xff, 0xff, 0xe4,
+ 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xfd, 0xff, 0x9b, 0xfc, 0x9f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xfa, 0xd1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x89, 0x8f,
+ 0x8e, 0x96, 0x4e, 0xa6, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xfc, 0xc2, 0x23,
+ 0xc3, 0xfa, 0xf3, 0xfe, 0xdd, 0x46, 0x42, 0x04, 0x4b, 0x06, 0x05, 0xfc,
+ 0xca, 0x81, 0x37, 0x93, 0x33, 0xca, 0xa3, 0x64, 0x02, 0x6b, 0x1c, 0x14,
+ 0xdb, 0xfd, 0x97, 0x0f, 0x5a, 0x60, 0x0c, 0x13, 0x94, 0x89, 0x6a, 0xb7,
+ 0x9d, 0xf0, 0x34, 0x93, 0x6c, 0x40, 0x1d, 0x02, 0x45, 0xc0, 0x16, 0xbc,
+ 0xc3, 0x63, 0xb0, 0x42, 0xe9, 0xff, 0x42, 0xd8, 0x4f, 0x29, 0xc0, 0x52,
+ 0x94, 0xa6, 0x77, 0x88, 0x05, 0x02, 0x45, 0xb4, 0x30, 0x1d, 0x07, 0xda,
+ 0x61, 0x5d, 0x30, 0x70, 0xe6, 0x30, 0x96, 0xbc, 0x27, 0x91, 0x62, 0x46,
+ 0x44, 0x5d, 0xaf, 0x27, 0x9b, 0xff, 0xff, 0xf9, 0x84, 0x47, 0x45, 0x44,
+ 0x7c, 0x34, 0x0b, 0xc3, 0x0c, 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb2, 0xf0,
+ 0x05, 0x1d, 0x08, 0xb5, 0x9f, 0x9c, 0x5b, 0x94, 0xcf, 0x01, 0x45, 0x69,
+ 0xb5, 0x99, 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc,
+ 0xcf, 0xba, 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcd, 0x88, 0x8d, 0x93,
+ 0x98, 0x44, 0x12, 0x36, 0x02, 0xf7, 0xff, 0x10, 0xb8, 0x48, 0xe3, 0xd8,
+ 0x31, 0x90, 0x82, 0x27, 0xbb, 0xcf, 0x99, 0xc7, 0x7c, 0x3f, 0xe1, 0x28,
+ 0x09, 0x8c, 0x54, 0x35, 0x0d, 0xbe, 0x90, 0x31, 0xf6, 0xb9, 0xcd, 0x7d,
+ 0xf7, 0xff, 0x81, 0xd0, 0x22, 0x20, 0xf3, 0x0a, 0xc0, 0x57, 0xff, 0x84,
+ 0x9e, 0x11, 0x2a, 0x7a, 0x38, 0x22, 0xba, 0x9e, 0xd4, 0x73, 0xd5, 0xfe,
+ 0x25, 0x70, 0x22, 0xf0, 0x00, 0x7b, 0xea, 0x18, 0x6d, 0x28, 0x6a, 0x3e,
+ 0x83, 0x1e, 0xbc, 0x00, 0x1e, 0xcf, 0xf7, 0xff, 0x6f, 0x8c, 0xc1, 0xfc,
+ 0xc3, 0x38, 0x88, 0xe0, 0xc9, 0xff, 0xff, 0xfd, 0xa4, 0x89, 0x4a, 0xcc,
+ 0x50, 0x0f, 0x1f, 0xf0, 0x94, 0x13, 0x3d, 0xb5, 0x38, 0x77, 0xd2, 0x17,
+ 0xd0, 0x21, 0xb0, 0xc9, 0xab, 0x76, 0x36, 0x41, 0x88, 0xe9, 0x36, 0x8d,
+ 0xc7, 0xfc, 0x9e, 0xfd, 0x1e, 0x5c, 0xdf, 0x69, 0x7b, 0x5b, 0x0a, 0x61,
+ 0xa4, 0xb7, 0xd1, 0x36, 0x98, 0x1f, 0x49, 0x40, 0x3f, 0xb8, 0x3b, 0xf7,
+ 0xc8, 0x67, 0xf0, 0xef, 0xde, 0xbc, 0x67, 0xaf, 0x61, 0x3f, 0xff, 0xfc,
+ 0x00, 0xc0, 0xfd, 0x5e, 0x3a, 0x6b, 0x58, 0xb9, 0x13, 0x7e, 0x27, 0x00,
+ 0xd6, 0xb8, 0xea, 0x05, 0x29, 0x2d, 0x67, 0x3e, 0x00, 0xe3, 0x53, 0xcf,
+ 0x4b, 0xcb, 0xe3, 0xbf, 0x5e, 0x33, 0xd7, 0xcf, 0x13, 0x88, 0xf0, 0xa4,
+ 0x9f, 0x81, 0x76, 0xee, 0x4e, 0xb7, 0x3e, 0xff, 0xff, 0x01, 0x81, 0x88,
+ 0x97, 0xf1, 0x87, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44,
+ 0x25, 0xf2, 0x7f, 0x07, 0x9f, 0x89, 0xf1, 0x1e, 0x23, 0xc4, 0x7f, 0xaf,
+ 0x1b, 0xff, 0x7f, 0xf6, 0xa0, 0x20, 0x7c, 0x4f, 0x88, 0xf1, 0x1e, 0x23,
+ 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xcd,
+ 0xe2, 0xbf, 0xfc, 0x3e, 0x68, 0x00, 0xef, 0x0a, 0xe9, 0xa6, 0x8e, 0xbf,
+ 0xf6, 0xfc, 0xca, 0x38, 0x40, 0x3f, 0xe1, 0xe4, 0x29, 0x1c, 0x52, 0xb1,
+ 0x43, 0x6f, 0xa4, 0x05, 0x63, 0x37, 0xa2, 0xb7, 0x3e, 0xff, 0x9b, 0x00,
+ 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x45, 0x39, 0x27, 0x18, 0x62, 0x52, 0x5f,
+ 0xef, 0x8a, 0x83, 0x6a, 0x96, 0x30, 0x71, 0xa7, 0x0c, 0x20, 0xe7, 0xc1,
+ 0x10, 0x47, 0x7c, 0xdf, 0xf8, 0x0e, 0x80, 0x12, 0x38, 0x98, 0x9c, 0x47,
+ 0xe0, 0x20, 0x73, 0x44, 0x3f, 0xff, 0x09, 0x8e, 0x00, 0x36, 0x5e, 0xcc,
+ 0x09, 0x77, 0x5e, 0xf3, 0x08, 0x8c, 0x44, 0xcc, 0xf0, 0x70, 0x1c, 0x84,
+ 0x66, 0x4c, 0xe2, 0x2c, 0x5e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c,
+ 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47,
+ 0x88, 0xf1, 0x1e, 0x23, 0xc2, 0x98, 0x00, 0x5e, 0xab, 0x6a, 0xda, 0x9a,
+ 0xff, 0xf3, 0xe0, 0x05, 0x3c, 0x6c, 0x89, 0x9d, 0x57, 0xbf, 0xf0, 0x38,
+ 0x82, 0x16, 0xe7, 0x84, 0xe5, 0x0f, 0x05, 0xdd, 0xd5, 0x56, 0x81, 0xe6,
+ 0xf0, 0x80, 0x45, 0x7d, 0xcf, 0xf8, 0x1c, 0x11, 0x5f, 0x73, 0xff, 0x11,
+ 0x12, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88,
+ 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1,
+ 0x1f, 0x80, 0x80, 0xff, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd,
+ 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xf3, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
+ 0xe6, 0x3e, 0x81, 0x00, 0x26, 0xcd, 0xa9, 0xc7, 0xd0, 0xcc, 0x4c, 0x57,
+ 0xff, 0xfe, 0xfd, 0xff, 0x0c, 0x2a, 0x04, 0xe2, 0x0c, 0xcf, 0x6a, 0x05,
+ 0x84, 0x82, 0xe9, 0x9e, 0xe5, 0xc6, 0x53, 0x01, 0xbc, 0x14, 0x78, 0x23,
+ 0xf6, 0x30, 0xd9, 0xa9, 0x7c, 0xc2, 0x5f, 0x6a, 0x90, 0xbc, 0xdc, 0xc6,
+ 0x7a, 0xd5, 0xe1, 0xc3, 0x01, 0xfc, 0x3f, 0xc1, 0x00, 0xb0, 0x1b, 0xb5,
+ 0xbb, 0xff, 0xb7, 0xdb, 0x1d, 0x5f, 0xdd, 0x3c, 0x99, 0xbf, 0xfd, 0xf8,
+ 0x63, 0xf5, 0xb0, 0xc0, 0x3d, 0x93, 0x81, 0x35, 0xf4, 0xcf, 0xa1, 0xc0,
+ 0x90, 0x6e, 0x49, 0x9a, 0xd4, 0x99, 0x53, 0xcf, 0xf1, 0xf4, 0x92, 0x67,
+ 0xce, 0xfd, 0xfb, 0xf0, 0xc0, 0xae, 0xe2, 0xc1, 0xed, 0x0c, 0x4b, 0xae,
+ 0x12, 0x84, 0xe7, 0xb8, 0x05, 0xdb, 0xe9, 0x6f, 0xc4, 0x29, 0x31, 0xfc,
+ 0x24, 0x18, 0xf2, 0xb9, 0x3f, 0xfd, 0xfb, 0x13, 0x10, 0xa0, 0x07, 0xad,
+ 0x84, 0x93, 0x77, 0x07, 0xe3, 0x4a, 0x3d, 0x91, 0xe7, 0xf8, 0xf1, 0xf9,
+ 0xf4, 0x19, 0x97, 0x0c, 0x5a, 0xdf, 0x26, 0xfc, 0x27, 0xa4, 0x92, 0xf9,
+ 0x8a, 0xc9, 0xc7, 0x0e, 0xd3, 0xed, 0x63, 0xb6, 0x09, 0x70, 0x00, 0x87,
+ 0xaf, 0xfa, 0xbe, 0xff, 0xf8, 0x11, 0xef, 0x6c, 0x98, 0xfa, 0xb1, 0xde,
+ 0x75, 0xc1, 0xf3, 0x64, 0x3a, 0xc5, 0xf9, 0xe2, 0x16, 0xfd, 0xd5, 0xeb,
+ 0x1d, 0xc3, 0x33, 0xe1, 0xae, 0x83, 0x3e, 0x1a, 0xfc, 0x6c, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xbb, 0xcd, 0x81, 0x4d, 0xf2, 0xeb, 0xe3, 0x3e,
+ 0xfe, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0x86, 0xbc, 0x35,
+ 0xe1, 0xaf, 0x0d, 0x78, 0x63, 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x0b, 0xea,
+ 0x80, 0xd4, 0x45, 0xfb, 0xf7, 0xe1, 0x87, 0xff, 0xff, 0x0f, 0x1c, 0x13,
+ 0xbb, 0xc7, 0xe1, 0xbf, 0x0e, 0x7b, 0xfc, 0x27, 0x85, 0x7f, 0xff, 0x08,
+ 0x7f, 0xbf, 0xf3, 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x02, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xe5, 0x3e, 0x18, 0x5f,
+ 0xe8, 0x44, 0xdc, 0xb7, 0x37, 0xef, 0x0c, 0xcd, 0xe0, 0x03, 0xd9, 0x22,
+ 0x68, 0x7e, 0xcd, 0x7d, 0x4f, 0x13, 0x15, 0xff, 0xff, 0xff, 0xff, 0x14,
+ 0x10, 0x87, 0x24, 0xcb, 0x05, 0x0c, 0x30, 0xcc, 0x8c, 0xdb, 0xf6, 0xfc,
+ 0x20, 0xe7, 0xe8, 0x0f, 0xde, 0x3a, 0x03, 0xe0, 0x0c, 0xe8, 0x44, 0xef,
+ 0x40, 0x69, 0x0a, 0x78, 0x65, 0xef, 0xf0, 0x4a, 0xfb, 0x3e, 0xff, 0x84,
+ 0x70, 0xf6, 0xed, 0x43, 0x6b, 0x22, 0x1f, 0xe0, 0x43, 0xdf, 0xf5, 0x0e,
+ 0x2f, 0x4e, 0x10, 0xb7, 0xa6, 0x22, 0xcf, 0x22, 0xbd, 0x3f, 0xa9, 0x3f,
+ 0x12, 0x11, 0xc1, 0x0c, 0x61, 0x1e, 0x09, 0x0f, 0x49, 0xcb, 0x19, 0xc0,
+ 0x32, 0x2f, 0xe2, 0xe6, 0x7e, 0x75, 0x5c, 0x41, 0x62, 0x63, 0x8b, 0x9c,
+ 0x80, 0xc4, 0xa9, 0x8d, 0x4b, 0xd0, 0xb0, 0x0c, 0xff, 0x6e, 0xc1, 0x62,
+ 0x8d, 0x4f, 0x94, 0x71, 0x4c, 0xc0, 0x98, 0xc1, 0xdf, 0x01, 0xf0, 0xc3,
+ 0x6d, 0x31, 0xbb, 0x4a, 0xc7, 0xe8, 0x25, 0xd1, 0x04, 0x55, 0xf1, 0x7e,
+ 0x06, 0x74, 0x07, 0x80, 0x62, 0x08, 0x22, 0x45, 0xfc, 0x1a, 0xc6, 0x61,
+ 0x53, 0x90, 0x54, 0x20, 0xdd, 0xaf, 0x94, 0x27, 0x80, 0x82, 0x10, 0x44,
+ 0x40, 0x8d, 0xe7, 0xf0, 0xec, 0xf1, 0x3f, 0x9b, 0xff, 0xff, 0xf8, 0xc0,
+ 0x87, 0x00, 0x62, 0xfd, 0x73, 0xf6, 0xbb, 0xe1, 0x8e, 0x83, 0xed, 0xa9,
+ 0xea, 0xdb, 0xe3, 0x08, 0x2b, 0x6c, 0x9e, 0x8e, 0x77, 0x48, 0x5d, 0x77,
+ 0x14, 0xdf, 0xae, 0x4c, 0xc1, 0xec, 0xbe, 0x00, 0x19, 0xb6, 0xdf, 0x14,
+ 0xda, 0x75, 0x5b, 0x2c, 0xd1, 0xa2, 0x5d, 0xaf, 0xe8, 0x39, 0x04, 0x8d,
+ 0x8a, 0x95, 0xda, 0xc0, 0x11, 0xc9, 0xb9, 0x04, 0xcc, 0x3a, 0x42, 0xd4,
+ 0x73, 0xa8, 0xc7, 0x44, 0x99, 0xfc, 0x98, 0x62, 0xf9, 0x8b, 0x68, 0x13,
+ 0x69, 0x6c, 0xf5, 0xfc, 0x38, 0xf0, 0x92, 0x81, 0x1e, 0xb0, 0x36, 0xce,
+ 0x94, 0x00, 0x1e, 0x47, 0x8d, 0x9f, 0xfd, 0xea, 0x38, 0x6e, 0x54, 0x88,
+ 0x22, 0xff, 0xc4, 0x38, 0x41, 0x87, 0xf6, 0x3b, 0x00, 0x01, 0x02, 0x4f,
+ 0xe0, 0x6f, 0xb0, 0x5f, 0x98, 0x2a, 0xbf, 0xea, 0x73, 0x82, 0x7f, 0xc0,
+ 0x24, 0x7e, 0x49, 0xfd, 0xcc, 0x1e, 0x3f, 0x56, 0x8f, 0x7f, 0x20, 0x03,
+ 0x2f, 0xba, 0xb7, 0xf7, 0x9c, 0xd2, 0xfd, 0x01, 0xfe, 0x2f, 0xbb, 0x77,
+ 0x93, 0x7f, 0xe7, 0xf8, 0x20, 0x2f, 0xc1, 0xf7, 0x83, 0xf0, 0xef, 0xff,
+ 0xff, 0xf8, 0x81, 0x06, 0xb9, 0xf2, 0xbc, 0xbf, 0x4e, 0x86, 0x09, 0x8c,
+ 0x9d, 0x3c, 0xdc, 0xd9, 0xaf, 0x5e, 0x6e, 0xcb, 0xd1, 0x81, 0x5a, 0x0f,
+ 0x06, 0x73, 0x47, 0xc3, 0xff, 0x09, 0x61, 0xd1, 0x90, 0x0c, 0x21, 0x34,
+ 0x1b, 0x6a, 0x06, 0x0f, 0xc0, 0x0e, 0xd1, 0x90, 0x0c, 0x21, 0x24, 0x06,
+ 0xda, 0x80, 0x0e, 0xd3, 0x40, 0x31, 0x9e, 0x40, 0x6d, 0xab, 0xc1, 0x83,
+ 0x9f, 0x8e, 0x2c, 0x09, 0xf5, 0x2f, 0xcf, 0x73, 0x1b, 0x2f, 0xa0, 0x9a,
+ 0xff, 0xc6, 0x50, 0xb3, 0x77, 0x0f, 0x80, 0xec, 0x44, 0x4e, 0x6f, 0xff,
+ 0xef, 0x04, 0x26, 0xc0, 0x03, 0x31, 0xb6, 0xf4, 0x49, 0xb4, 0xc3, 0x9c,
+ 0xae, 0x43, 0xbc, 0x8f, 0xde, 0xe9, 0x8c, 0xe7, 0xe4, 0xef, 0x3a, 0x62,
+ 0xd2, 0x5b, 0xbc, 0x42, 0x83, 0xf0, 0xe0, 0x1e, 0x93, 0x7c, 0x14, 0x73,
+ 0x3f, 0x80, 0x07, 0xd3, 0x67, 0x22, 0x34, 0x0d, 0x4c, 0xfd, 0xec, 0xf0,
+ 0xee, 0x52, 0xc7, 0xc4, 0x0f, 0xe0, 0xf0, 0x9b, 0xf4, 0xaa, 0xc6, 0x77,
+ 0xaa, 0xbc, 0x18, 0xad, 0x6b, 0xd3, 0xdf, 0xff, 0xfb, 0xf8, 0xee, 0x4c,
+ 0xe0, 0xe8, 0x61, 0x2b, 0x93, 0x3f, 0x9b, 0xff, 0xb9, 0x11, 0x63, 0x3c,
+ 0x00, 0x96, 0x67, 0x09, 0x1d, 0x51, 0x76, 0xb0, 0x02, 0x59, 0x9c, 0x24,
+ 0x75, 0x45, 0xda, 0x07, 0x9d, 0x4f, 0x36, 0x82, 0x6f, 0xa7, 0x00, 0x17,
+ 0x7f, 0x85, 0x15, 0xcc, 0x38, 0xbf, 0x52, 0xfd, 0xe3, 0xf5, 0xe0, 0x2f,
+ 0xcd, 0x27, 0x77, 0x22, 0x97, 0xf8, 0x4b, 0x00, 0x0f, 0xa6, 0xce, 0x44,
+ 0xd0, 0x35, 0x33, 0xf7, 0xb0, 0x1b, 0xce, 0x57, 0x47, 0x64, 0xfd, 0xec,
+ 0x09, 0x55, 0xff, 0xf1, 0x4b, 0x7d, 0x41, 0xff, 0xe3, 0xb8, 0xad, 0x61,
+ 0xf8, 0x28, 0x58, 0x81, 0xf8, 0x0a, 0xfd, 0xf8, 0x03, 0x78, 0x92, 0x16,
+ 0x00, 0x36, 0xe9, 0xda, 0xd3, 0xdb, 0xee, 0xf9, 0xef, 0xdf, 0x1f, 0x6f,
+ 0x66, 0xdb, 0x60, 0xc3, 0xaf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xef, 0x64, 0x1d, 0x7f, 0xcb, 0xc8, 0x2a, 0x3c, 0x26, 0x9b, 0xd7, 0x8d,
+ 0xe2, 0x1c, 0x34, 0x89, 0xf3, 0xd1, 0x47, 0x87, 0xaa, 0xb7, 0x6f, 0xa3,
+ 0xc4, 0xfc, 0x58, 0x8c, 0x26, 0x70, 0x56, 0x8c, 0x7d, 0x3a, 0x17, 0xf7,
+ 0x25, 0x4e, 0x2e, 0x13, 0xb0, 0x34, 0xa7, 0xc2, 0x1c, 0x8e, 0x09, 0x34,
+ 0x05, 0x89, 0xff, 0x68, 0x31, 0xec, 0x1a, 0xc6, 0x04, 0x9f, 0xf9, 0x17,
+ 0xda, 0xff, 0xc4, 0x61, 0xc4, 0x00, 0x9c, 0xc1, 0x9f, 0xba, 0x78, 0xd7,
+ 0x2f, 0x10, 0x60, 0x42, 0xf0, 0x1f, 0x2c, 0x4f, 0x35, 0x5f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
+ 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xdf, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xff, 0xac, 0xc7, 0xc0, 0x24, 0x7b,
+ 0x5a, 0x7b, 0x9b, 0x29, 0x63, 0x45, 0xc5, 0x7f, 0xff, 0xef, 0xdf, 0xbf,
+ 0x58, 0xa1, 0x01, 0x17, 0xa9, 0x73, 0x3c, 0xff, 0x8f, 0x36, 0x8f, 0x02,
+ 0x11, 0x0e, 0xd0, 0x92, 0x1e, 0xff, 0xd0, 0x03, 0x39, 0x78, 0x52, 0x95,
+ 0x7f, 0xbc, 0xa8, 0x71, 0xad, 0x20, 0xcf, 0x13, 0x3b, 0x9d, 0x85, 0xa2,
+ 0x18, 0x0f, 0xfb, 0xfe, 0x13, 0x12, 0x11, 0x00, 0xbd, 0xcc, 0xbd, 0x57,
+ 0xb8, 0x98, 0x28, 0xfc, 0xaf, 0xbd, 0xfc, 0x6c, 0x00, 0xb1, 0x7c, 0xa9,
+ 0xce, 0xfe, 0xa9, 0x33, 0x7f, 0xfb, 0xf5, 0x84, 0x17, 0x1d, 0x8d, 0x00,
+ 0x56, 0xe3, 0x41, 0x2a, 0x0e, 0xa2, 0xaf, 0xde, 0x66, 0xa7, 0x82, 0x57,
+ 0x8a, 0x59, 0x56, 0x78, 0x7a, 0x0f, 0xb0, 0x3d, 0xea, 0xfe, 0x7c, 0x06,
+ 0xe3, 0xc8, 0x1a, 0x6f, 0x3f, 0xb9, 0xa7, 0xdd, 0xb7, 0xce, 0xfd, 0xfb,
+ 0xf7, 0xe1, 0x80, 0xaa, 0xff, 0xa9, 0xc6, 0x09, 0xde, 0x1e, 0xb8, 0x40,
+ 0xef, 0xc1, 0xec, 0x4c, 0x10, 0x09, 0x40, 0x03, 0x00, 0x6c, 0xe2, 0x7f,
+ 0x80, 0xd9, 0xaa, 0xef, 0xff, 0xdf, 0x93, 0x0c, 0x84, 0x04, 0x10, 0x00,
+ 0xe6, 0xfd, 0x9b, 0xbd, 0xa9, 0xf9, 0xa2, 0x38, 0x67, 0x81, 0x97, 0xdd,
+ 0xcc, 0xfe, 0x2e, 0x00, 0x35, 0xa4, 0x2a, 0x7f, 0xd3, 0x87, 0x37, 0xf3,
+ 0x9d, 0x30, 0x51, 0x35, 0x27, 0x9c, 0x6d, 0x22, 0x44, 0xfc, 0x0c, 0xef,
+ 0xae, 0x82, 0x20, 0x49, 0xc3, 0x1e, 0x4e, 0x44, 0x44, 0x44, 0x5e, 0x24,
+ 0xbc, 0x02, 0x3d, 0x7d, 0xb0, 0x72, 0x0f, 0xc3, 0x1d, 0xe1, 0x1b, 0x8c,
+ 0xa2, 0x3f, 0xa1, 0xdf, 0xfe, 0x83, 0x03, 0xf0, 0x80, 0x40, 0xfc, 0x07,
+ 0xef, 0x67, 0xd7, 0x1c, 0xfb, 0x7e, 0x18, 0xf2, 0x26, 0x29, 0x11, 0x7c,
+ 0x13, 0x50, 0x18, 0x61, 0x07, 0xe1, 0x00, 0x42, 0xa9, 0xba, 0x02, 0x3d,
+ 0x7c, 0x0e, 0xd8, 0x10, 0x80, 0xed, 0xc0, 0x84, 0xe5, 0x63, 0x9f, 0x6b,
+ 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc, 0xd5, 0x84, 0xbe,
+ 0x57, 0xd6, 0x35, 0xfe, 0xdf, 0xe1, 0x07, 0xef, 0xf2, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xc2, 0x1f, 0xef, 0xfc,
+ 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc5, 0xff, 0xd7, 0xfd, 0x73, 0x1f, 0x84, 0xee, 0x3e, 0xf9, 0xff, 0x33,
+ 0xda, 0x08, 0x18, 0x08, 0x5f, 0x8b, 0x59, 0x17, 0x40, 0x7b, 0x4c, 0xdf,
+ 0xb6, 0x00, 0x2b, 0x4c, 0xc8, 0x6d, 0xd2, 0xc3, 0xef, 0x7e, 0xb0, 0xcc,
+ 0xaf, 0x07, 0x97, 0x16, 0xd6, 0x68, 0x43, 0xfe, 0xdf, 0x15, 0xff, 0xff,
+ 0xfc, 0xc2, 0xb0, 0xda, 0x63, 0xff, 0xfe, 0x25, 0xa1, 0x21, 0x15, 0xb4,
+ 0x66, 0x75, 0x68, 0xd1, 0xf8, 0xa8, 0xe7, 0xff, 0x40, 0x55, 0xb7, 0x31,
+ 0xa0, 0x49, 0xee, 0xcc, 0xe4, 0x8a, 0xbb, 0x20, 0x02, 0x7e, 0x7e, 0x8d,
+ 0x18, 0xca, 0xff, 0xb4, 0x7f, 0x76, 0xd0, 0x73, 0x3d, 0x31, 0xa2, 0xe1,
+ 0x8d, 0x2b, 0xc5, 0xdf, 0xf9, 0xd7, 0xf1, 0x3a, 0x08, 0x32, 0xe9, 0xe7,
+ 0xeb, 0x03, 0x1c, 0x9b, 0x1d, 0xd1, 0x7b, 0xfa, 0x47, 0x55, 0x31, 0x22,
+ 0xae, 0xdf, 0x01, 0x6c, 0x49, 0xc3, 0x40, 0x33, 0x78, 0x76, 0xb6, 0x22,
+ 0x76, 0xf3, 0x41, 0x44, 0x93, 0xf0, 0x38, 0xf0, 0x8d, 0xad, 0xc7, 0xd3,
+ 0xd2, 0x7f, 0xa1, 0x77, 0xeb, 0x97, 0x95, 0x0f, 0xcc, 0xca, 0xfc, 0xd3,
+ 0x67, 0xf6, 0x9f, 0xe1, 0x31, 0x7d, 0xd3, 0xe9, 0xc8, 0xd3, 0x40, 0x00,
+ 0x20, 0x2e, 0x0e, 0xe7, 0x3e, 0x00, 0x82, 0xfd, 0x15, 0x1f, 0xed, 0xbe,
+ 0xcc, 0x5a, 0xc5, 0x07, 0x7d, 0xfd, 0xb9, 0xed, 0xef, 0x8b, 0x6f, 0x03,
+ 0xfc, 0x5e, 0x4f, 0x37, 0xff, 0xff, 0xf3, 0x08, 0x22, 0x23, 0x00, 0x06,
+ 0x30, 0x0e, 0x03, 0x37, 0xe2, 0xa4, 0x40, 0x2e, 0xea, 0xb6, 0x5e, 0x00,
+ 0x60, 0x79, 0x5f, 0x1d, 0xb1, 0x00, 0x36, 0x08, 0xf9, 0x64, 0xc1, 0x98,
+ 0x53, 0xae, 0x1f, 0xf7, 0xfa, 0x80, 0xc1, 0x0a, 0x14, 0xbd, 0xc0, 0xbe,
+ 0x61, 0x52, 0x5d, 0x80, 0x84, 0x00, 0x44, 0x89, 0x7a, 0xa3, 0xec, 0xa1,
+ 0x27, 0xd1, 0x02, 0xa5, 0xce, 0x8b, 0xce, 0xcb, 0x30, 0x99, 0x59, 0xf9,
+ 0x18, 0xd5, 0x4f, 0xef, 0xdd, 0x53, 0x04, 0x5a, 0x4c, 0x13, 0xd9, 0xce,
+ 0x6f, 0x17, 0xc9, 0x76, 0x7e, 0x62, 0xd0, 0xc7, 0xc6, 0x1f, 0xff, 0xf9,
+ 0x21, 0xb8, 0x98, 0x3c, 0xfc, 0xd8, 0x47, 0xa5, 0x4d, 0x30, 0xff, 0x81,
+ 0xfb, 0xff, 0xff, 0xff, 0x9b, 0x15, 0xdc, 0x7f, 0xe1, 0x22, 0x05, 0xb1,
+ 0x11, 0x8d, 0x11, 0x63, 0xea, 0x49, 0xe0, 0x92, 0xa1, 0xec, 0xdc, 0xdd,
+ 0x86, 0x70, 0x0a, 0xb5, 0xa2, 0x4a, 0x9d, 0xdf, 0xc4, 0xc0, 0x9e, 0x09,
+ 0x62, 0x1c, 0x71, 0xd7, 0x6d, 0xb2, 0xb4, 0xb3, 0xbd, 0x14, 0x37, 0x7f,
+ 0xfd, 0x18, 0x8b, 0xef, 0x00, 0x00, 0x39, 0xe3, 0x7c, 0xdd, 0x88, 0x8f,
+ 0xad, 0x48, 0x68, 0xaf, 0x42, 0x62, 0x73, 0x19, 0xd3, 0x0f, 0x9d, 0x30,
+ 0x4e, 0x20, 0x04, 0x8d, 0x71, 0xff, 0xfd, 0xc1, 0xfb, 0xc1, 0xf8, 0x7c,
+ 0x01, 0xfa, 0xee, 0xf5, 0xbc, 0xfd, 0xdb, 0xc0, 0x0f, 0x97, 0xad, 0x13,
+ 0x71, 0x4b, 0xcc, 0xcd, 0x7c, 0x9f, 0xcf, 0xf1, 0xde, 0xfe, 0x26, 0x27,
+ 0x3f, 0x9b, 0xe9, 0x0e, 0x3c, 0x23, 0x05, 0x78, 0x05, 0xf5, 0x40, 0x7d,
+ 0x40, 0x84, 0xae, 0x49, 0xcf, 0x4f, 0x97, 0xb0, 0x1c, 0x11, 0x09, 0x64,
+ 0xb7, 0x06, 0x6d, 0xfa, 0xb6, 0xbf, 0xc0, 0x00, 0xad, 0x33, 0x97, 0xab,
+ 0xda, 0xe1, 0x49, 0x11, 0xdc, 0xce, 0xb0, 0xc2, 0x0f, 0x45, 0x9b, 0xff,
+ 0xfe, 0x1f, 0x2c, 0x01, 0x41, 0x32, 0x30, 0x08, 0x39, 0x40, 0x51, 0xb9,
+ 0xfe, 0x61, 0xee, 0x3f, 0xfc, 0x3e, 0x40, 0x00, 0x79, 0x52, 0xcb, 0xf4,
+ 0xc7, 0x17, 0x8b, 0xed, 0x01, 0xf3, 0x5f, 0x1f, 0xff, 0x09, 0x17, 0x00,
+ 0x49, 0x92, 0x49, 0x0f, 0x3f, 0xb6, 0x7f, 0x8d, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x0b, 0x5f, 0xe2, 0x44, 0x61, 0x16, 0x1e,
+ 0x46, 0xb0, 0x16, 0xbc, 0x77, 0xc5, 0xe4, 0x50, 0xc4, 0x47, 0x50, 0x54,
+ 0x25, 0xe3, 0x78, 0xa7, 0x91, 0xcd, 0x43, 0x98, 0x7b, 0xf8, 0xba, 0xc2,
+ 0x5f, 0xbd, 0xc0, 0x83, 0x58, 0x1f, 0x6a, 0xce, 0xdf, 0x17, 0xd0, 0x86,
+ 0x45, 0x7b, 0x06, 0x1e, 0xc3, 0xdf, 0xee, 0x53, 0x43, 0xe1, 0xed, 0x16,
+ 0x10, 0xff, 0xfb, 0xc1, 0x31, 0x70, 0x1f, 0xc4, 0x72, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f,
+ 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xbf, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xeb, 0xff, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xaf, 0x77, 0x60, 0x57, 0xff, 0xff, 0xff, 0xeb, 0xff,
+ 0xff, 0xff, 0xfd, 0x7d, 0x3f, 0xef, 0xc3, 0x1f, 0xfa, 0x87, 0x08, 0x54,
+ 0xf8, 0x01, 0x3a, 0x46, 0x9e, 0x1c, 0x31, 0xfa, 0xfc, 0x00, 0x75, 0x31,
+ 0x32, 0x94, 0xc0, 0x75, 0x8c, 0xd5, 0xed, 0x08, 0x32, 0x04, 0x62, 0x31,
+ 0x5f, 0xfe, 0xff, 0xf7, 0xf2, 0x1b, 0x8c, 0x9e, 0xa1, 0x83, 0x40, 0xc1,
+ 0x6c, 0xce, 0x4b, 0x5d, 0x90, 0x33, 0xba, 0x73, 0x31, 0xba, 0x68, 0xdb,
+ 0xd2, 0xc3, 0xd1, 0x6a, 0xc3, 0xa5, 0x0d, 0x3b, 0x2c, 0x78, 0x82, 0xe6,
+ 0x40, 0xef, 0x46, 0xe4, 0xa5, 0x5c, 0x18, 0xda, 0xff, 0xc7, 0xc0, 0x1b,
+ 0x59, 0xa0, 0x0b, 0x5c, 0x62, 0x02, 0xa5, 0x33, 0xc3, 0xf7, 0xc0, 0x1c,
+ 0x19, 0xf8, 0xa9, 0xa5, 0x98, 0x15, 0xc0, 0xd7, 0x1e, 0x50, 0xc1, 0x53,
+ 0xec, 0x05, 0xf8, 0x4c, 0x58, 0x04, 0xbb, 0x86, 0x16, 0x1f, 0x10, 0xdd,
+ 0xcf, 0x9f, 0x29, 0x40, 0x34, 0x97, 0xf7, 0xeb, 0xef, 0xc5, 0x67, 0x06,
+ 0xbd, 0x8f, 0xfb, 0xf3, 0xcb, 0xf9, 0xe4, 0xcd, 0xff, 0xef, 0xc3, 0x1c,
+ 0x78, 0x01, 0xa3, 0xea, 0x91, 0x66, 0xc0, 0x03, 0x36, 0xdb, 0xe5, 0x36,
+ 0x86, 0xee, 0x96, 0x37, 0x72, 0x60, 0x37, 0xc3, 0xa8, 0xd0, 0x34, 0x71,
+ 0x6e, 0x00, 0x8c, 0xad, 0x34, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0x69, 0x1c,
+ 0x3b, 0x23, 0x32, 0x23, 0x7e, 0x78, 0x7e, 0x98, 0x95, 0x70, 0x11, 0xea,
+ 0x7e, 0xd4, 0xfe, 0x3b, 0xff, 0xdf, 0xbf, 0xdf, 0xff, 0xf0, 0xc5, 0x50,
+ 0x42, 0xe3, 0xff, 0x09, 0x30, 0x96, 0x67, 0x09, 0x1d, 0x51, 0x76, 0x83,
+ 0x0c, 0x57, 0x6d, 0x29, 0xfa, 0xbf, 0x1e, 0x02, 0xa9, 0xa5, 0x81, 0x2f,
+ 0xfc, 0x2f, 0x8f, 0x48, 0xdf, 0xaa, 0xd9, 0xd9, 0x6b, 0x66, 0x4c, 0xbb,
+ 0x78, 0xa2, 0x7f, 0xfc, 0x00, 0xce, 0xfa, 0xd0, 0x6e, 0x37, 0x7c, 0x76,
+ 0xf8, 0x63, 0xff, 0xf7, 0x78, 0x54, 0x47, 0x00, 0x31, 0x2e, 0x22, 0x36,
+ 0x97, 0x6b, 0x0c, 0xd9, 0xad, 0x23, 0x7f, 0xfe, 0xb9, 0x95, 0xd2, 0xeb,
+ 0xff, 0xa6, 0x18, 0xff, 0xbb, 0xdd, 0xf8, 0xcf, 0x00, 0x0c, 0x4c, 0xfb,
+ 0xd0, 0x8b, 0x58, 0x00, 0x62, 0x5c, 0x44, 0x6d, 0x2e, 0xd0, 0x66, 0xcd,
+ 0x69, 0x1b, 0xff, 0xf5, 0xc3, 0xf3, 0x2b, 0xa5, 0xd7, 0xff, 0x48, 0x7f,
+ 0x86, 0x37, 0x79, 0x8a, 0x7c, 0x21, 0x14, 0xb9, 0xd0, 0xca, 0x74, 0x3e,
+ 0x3d, 0x03, 0x0b, 0xde, 0xfb, 0xbe, 0x78, 0x00, 0x62, 0x67, 0xde, 0x84,
+ 0x5a, 0x8b, 0x65, 0x72, 0x4f, 0x8f, 0xc4, 0x82, 0xf7, 0x81, 0x20, 0x94,
+ 0x77, 0x12, 0xda, 0x67, 0x7d, 0x77, 0x20, 0x13, 0x29, 0x66, 0x6e, 0x24,
+ 0x66, 0xa1, 0x8e, 0x7d, 0x86, 0x3f, 0xff, 0xe1, 0xf3, 0xc0, 0x16, 0xb4,
+ 0xc1, 0x0a, 0xc4, 0x37, 0x3f, 0xd0, 0x9b, 0x81, 0x76, 0xed, 0x3a, 0x67,
+ 0x3f, 0xa0, 0xfe, 0xb1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbd,
+ 0xdd, 0x82, 0xae, 0xf9, 0x75, 0x8d, 0x7f, 0xbf, 0x84, 0x3f, 0x7c, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f,
+ 0xbf, 0x9f, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd, 0xe9, 0x03, 0x3f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5,
+ 0xff, 0xfd, 0xe1, 0x4f, 0x10, 0x52, 0x89, 0xc0, 0x0e, 0x77, 0xf5, 0x87,
+ 0xec, 0x74, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x41, 0x1c, 0x64,
+ 0xf5, 0x27, 0xe2, 0x44, 0xf8, 0xa2, 0x00, 0x1e, 0x17, 0xa2, 0xdc, 0x74,
+ 0x2b, 0x61, 0xd9, 0x50, 0x1f, 0x14, 0xd6, 0x84, 0x18, 0x56, 0xf5, 0x0f,
+ 0x02, 0x44, 0xad, 0xc8, 0x5b, 0x7d, 0x6f, 0x8f, 0xfc, 0x48, 0xbb, 0x82,
+ 0xbf, 0x03, 0xcc, 0xda, 0x03, 0x37, 0x9e, 0x21, 0x4a, 0x44, 0xbf, 0xdc,
+ 0xff, 0x4e, 0x02, 0x0b, 0x7e, 0x07, 0xf8, 0xbc, 0x9e, 0x6f, 0xff, 0xff,
+ 0xf9, 0xbf, 0x10, 0x65, 0x32, 0x54, 0x95, 0x9b, 0x80, 0x1c, 0x5c, 0x84,
+ 0x5e, 0xc3, 0xcc, 0xad, 0xb9, 0x37, 0x1e, 0x02, 0x11, 0x2c, 0xd4, 0xba,
+ 0x99, 0x1a, 0xe0, 0x01, 0x13, 0x28, 0x26, 0x7a, 0x63, 0x8d, 0xca, 0x80,
+ 0x06, 0xf7, 0x40, 0x6d, 0x53, 0xae, 0xa1, 0x57, 0x31, 0x7c, 0xed, 0x5d,
+ 0xaf, 0x12, 0x00, 0x33, 0xba, 0x8d, 0xaa, 0x24, 0xd5, 0x0e, 0x37, 0x27,
+ 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0x0d, 0xaf, 0x6e, 0x8f,
+ 0x5f, 0x8b, 0x45, 0xe2, 0x1d, 0x23, 0x41, 0x62, 0x05, 0x2d, 0x5b, 0xf9,
+ 0xe3, 0x66, 0xf5, 0xef, 0xc7, 0x7b, 0xf6, 0xb0, 0x52, 0x07, 0x93, 0x08,
+ 0x80, 0x32, 0x3d, 0xd6, 0xbf, 0xea, 0xf8, 0xef, 0x78, 0x9c, 0xc5, 0x55,
+ 0xd4, 0x3c, 0x57, 0x8a, 0xe3, 0xa2, 0x98, 0x03, 0xc7, 0xea, 0xf4, 0xeb,
+ 0x77, 0x51, 0x8b, 0xdc, 0x78, 0x05, 0x17, 0xb6, 0x06, 0xa2, 0x2f, 0xcd,
+ 0xfe, 0xba, 0xeb, 0x85, 0x71, 0xeb, 0xbf, 0xfa, 0xff, 0x00, 0x5e, 0x55,
+ 0x47, 0x7b, 0x46, 0x3a, 0x63, 0xe3, 0x20, 0x1f, 0xd2, 0xf9, 0xbf, 0xff,
+ 0xb4, 0x10, 0xb8, 0x01, 0x15, 0x91, 0xf4, 0x25, 0x1d, 0x13, 0xdb, 0xa5,
+ 0x54, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x35, 0xff,
+ 0x20, 0x52, 0x40, 0x00, 0x85, 0xee, 0xee, 0xfb, 0xf8, 0x01, 0xbd, 0x96,
+ 0x25, 0x74, 0xfb, 0x5f, 0xff, 0xf1, 0x06, 0x70, 0x73, 0xa0, 0x34, 0x0a,
+ 0x7b, 0xf2, 0x36, 0x5a, 0x34, 0x00, 0x02, 0x00, 0x35, 0xe7, 0xf8, 0x00,
+ 0x00, 0x20, 0x07, 0x00, 0x56, 0x9e, 0xc0, 0xc5, 0x02, 0xa6, 0x00, 0x50,
+ 0x5c, 0xc0, 0xf1, 0xd1, 0x80, 0xd7, 0x8d, 0xff, 0x85, 0x3f, 0xff, 0x2f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xfb, 0xff, 0xfc, 0xdf, 0xff,
+ 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60, 0x67, 0xff,
+ 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xe1, 0x8f, 0xfd,
+ 0x43, 0x84, 0x2a, 0x7c, 0x00, 0xad, 0x34, 0xf1, 0xc2, 0x1f, 0x5f, 0x80,
+ 0x17, 0x64, 0x2e, 0xe4, 0x02, 0xac, 0x47, 0x5e, 0xdb, 0x2b, 0x2b, 0xc2,
+ 0x56, 0x25, 0xac, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x04, 0x36, 0x66,
+ 0x7d, 0xa5, 0x62, 0x03, 0x3b, 0xa3, 0x4c, 0xc6, 0xe9, 0xa3, 0x6f, 0x4b,
+ 0x08, 0x6d, 0x31, 0xab, 0x0e, 0x26, 0x86, 0xa8, 0x98, 0xda, 0x9a, 0xb3,
+ 0x6d, 0x3c, 0x05, 0x8e, 0x89, 0x30, 0x32, 0x5a, 0x60, 0x1e, 0xca, 0x66,
+ 0x40, 0x66, 0xd6, 0x0c, 0x40, 0x25, 0x29, 0x9d, 0xe1, 0xcd, 0x06, 0xb9,
+ 0x1c, 0x30, 0xf4, 0x29, 0x5f, 0xca, 0x30, 0x7f, 0xa8, 0x40, 0x2c, 0x67,
+ 0x09, 0xf6, 0x07, 0x1d, 0xe1, 0x6b, 0x7b, 0xef, 0x85, 0xa5, 0x37, 0x9f,
+ 0x5d, 0x79, 0x33, 0x7f, 0xff, 0x0c, 0x71, 0xea, 0x0e, 0x33, 0x66, 0xd9,
+ 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3c, 0x48, 0xca, 0x5b, 0xc0, 0x89,
+ 0xac, 0x7f, 0x9f, 0x8e, 0xb6, 0x43, 0x48, 0x70, 0xe5, 0x83, 0x3a, 0xe7,
+ 0x34, 0x59, 0x3f, 0x73, 0xfc, 0x14, 0xce, 0x4a, 0x20, 0x55, 0x4e, 0xfd,
+ 0x9f, 0x05, 0x44, 0xa3, 0xd2, 0x01, 0xe6, 0x78, 0xf3, 0xff, 0xff, 0xdf,
+ 0xff, 0xf0, 0xc5, 0xa9, 0x26, 0xff, 0xc2, 0x47, 0x80, 0x50, 0x5a, 0x98,
+ 0xf7, 0xf9, 0x04, 0xf1, 0x1c, 0x58, 0x74, 0x8e, 0x46, 0xb8, 0xa0, 0xce,
+ 0x08, 0x83, 0xfc, 0x8f, 0x18, 0x43, 0x3e, 0xb7, 0x8e, 0xde, 0xc3, 0x1f,
+ 0x48, 0x7f, 0x18, 0x53, 0x00, 0xdd, 0x51, 0xd4, 0x08, 0x0b, 0x52, 0xe7,
+ 0xd1, 0xe9, 0x8f, 0x5f, 0x6d, 0xf1, 0xdb, 0x7e, 0x18, 0x10, 0x86, 0xa1,
+ 0xff, 0x0f, 0xf0, 0x05, 0x79, 0x71, 0x0a, 0xbe, 0x97, 0x4e, 0x18, 0xc4,
+ 0x30, 0x5f, 0xf8, 0x4b, 0x81, 0xc8, 0x03, 0x46, 0x40, 0x08, 0x75, 0xf5,
+ 0xf5, 0xf7, 0xfd, 0xdc, 0x65, 0x88, 0x4d, 0x8f, 0xf2, 0xe1, 0x8f, 0xf0,
+ 0x0d, 0x56, 0xd0, 0xac, 0x00, 0x32, 0x37, 0x76, 0xbe, 0xc5, 0xff, 0x07,
+ 0x81, 0x41, 0xd1, 0x90, 0x1a, 0xba, 0x02, 0xf8, 0xb1, 0x21, 0xfd, 0xa4,
+ 0x37, 0xff, 0xc5, 0x40, 0x19, 0xe1, 0x5c, 0x60, 0xfd, 0x8d, 0xe0, 0xd8,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbe, 0xe5, 0x86, 0xbe, 0x45, 0xfa,
+ 0xc6, 0xfd, 0xfc, 0x21, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xc2, 0x9f, 0xff, 0x84, 0x3f, 0xdf, 0xf9, 0xbf, 0xc9, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfe,
+ 0xf1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfc, 0xc7, 0xc0, 0x0c, 0x0f,
+ 0x57, 0xc7, 0x60, 0x8c, 0xdc, 0xee, 0x8e, 0xba, 0x4f, 0xf8, 0x31, 0x13,
+ 0x2f, 0x07, 0x3a, 0x34, 0x43, 0x56, 0x4d, 0x5e, 0xfc, 0x46, 0x2b, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0xde, 0x87, 0x01, 0x02, 0x93, 0xa0, 0xc6, 0x1a,
+ 0x1f, 0xaf, 0xb7, 0x7c, 0x08, 0x51, 0x1d, 0xfd, 0xcf, 0xe8, 0x80, 0x0c,
+ 0xe2, 0xa3, 0xf4, 0x11, 0x7f, 0xfe, 0x49, 0xd3, 0xdf, 0xab, 0xd0, 0x18,
+ 0x03, 0x18, 0xcc, 0x55, 0xbd, 0x7d, 0xe8, 0x6e, 0xfe, 0x6b, 0x0d, 0x2d,
+ 0x30, 0x76, 0x7d, 0x16, 0xe8, 0xa8, 0x31, 0x88, 0x01, 0x78, 0xf5, 0x61,
+ 0xe6, 0x8f, 0x60, 0x66, 0xa7, 0x3a, 0x69, 0xe1, 0x14, 0x74, 0x28, 0x9f,
+ 0xd7, 0x6e, 0x86, 0x1a, 0x0c, 0xde, 0x82, 0xac, 0x08, 0xeb, 0x66, 0x6a,
+ 0x56, 0x3e, 0x92, 0x96, 0xa1, 0x20, 0x82, 0x19, 0x12, 0x24, 0x1b, 0xda,
+ 0xf1, 0xcd, 0x63, 0xbf, 0x79, 0x40, 0x25, 0x24, 0x2d, 0x14, 0xef, 0x7c,
+ 0x35, 0xc9, 0x77, 0xfc, 0x1b, 0xc9, 0xe6, 0xff, 0xff, 0xf2, 0x7c, 0x48,
+ 0x9c, 0x23, 0x84, 0x4d, 0x80, 0x84, 0xb5, 0xb7, 0xe7, 0x80, 0x9a, 0xf5,
+ 0x47, 0x80, 0xef, 0x77, 0x05, 0x9a, 0xf5, 0x7a, 0xa0, 0x6a, 0x0f, 0x21,
+ 0xbe, 0xf4, 0x79, 0x27, 0xda, 0x33, 0xf3, 0x83, 0x58, 0x97, 0x79, 0x3c,
+ 0x7f, 0xeb, 0x73, 0xcd, 0x2c, 0x9b, 0xeb, 0xc2, 0x3c, 0x3c, 0xfd, 0xf1,
+ 0x80, 0x32, 0xff, 0xc9, 0x0e, 0xff, 0xf9, 0x01, 0x2a, 0x4b, 0x66, 0x50,
+ 0xbf, 0x9c, 0x82, 0x78, 0x46, 0x1f, 0x60, 0x60, 0xdd, 0x93, 0xde, 0xbe,
+ 0xb1, 0xad, 0xf4, 0x73, 0x09, 0xa1, 0x1c, 0x7d, 0x8f, 0x72, 0x36, 0x2d,
+ 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xb1, 0x21, 0x08, 0x81,
+ 0x0f, 0x1a, 0x50, 0x4f, 0xb3, 0x43, 0x86, 0xd9, 0x7b, 0xfb, 0x6c, 0x06,
+ 0x4d, 0x0c, 0x72, 0xd7, 0x6e, 0xec, 0xe1, 0x2c, 0x42, 0x76, 0xa8, 0x0f,
+ 0xf1, 0x59, 0x64, 0x88, 0xc9, 0xf7, 0x64, 0xcb, 0x87, 0x15, 0xf9, 0xf5,
+ 0x10, 0x54, 0x82, 0xa5, 0x8a, 0xfc, 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc,
+ 0x77, 0xb3, 0x7c, 0x27, 0xff, 0x0f, 0x9f, 0xb0, 0x39, 0xb3, 0xfa, 0x1c,
+ 0xfe, 0x13, 0x58, 0x65, 0x07, 0xe1, 0xc8, 0xbb, 0x03, 0xfc, 0x68, 0x07,
+ 0x80, 0x8d, 0xe9, 0x01, 0xf4, 0xab, 0x3c, 0x4f, 0xe3, 0x60, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x25, 0xff, 0x66, 0xfc, 0x4f, 0xe9,
+ 0xc2, 0x82, 0x00, 0x14, 0xfa, 0x60, 0x87, 0x3e, 0x78, 0x07, 0xf0, 0x3b,
+ 0xe0, 0x43, 0x70, 0xaf, 0x36, 0x1f, 0x3a, 0x1f, 0xc1, 0x03, 0x02, 0x1f,
+ 0xe0, 0x7e, 0xf6, 0x78, 0xe7, 0xbb, 0x8e, 0x1c, 0x9a, 0x88, 0x0c, 0xdf,
+ 0xb1, 0x7b, 0x4b, 0x18, 0xa0, 0x0b, 0x7a, 0x82, 0x1d, 0x26, 0x30, 0xaf,
+ 0xf0, 0x23, 0x14, 0x98, 0x1f, 0x84, 0x06, 0xf8, 0x3d, 0x4f, 0xeb, 0xc6,
+ 0xff, 0xdf, 0x1e, 0xbc, 0x00, 0xee, 0xda, 0x62, 0x53, 0x79, 0xbe, 0x78,
+ 0x00, 0x1b, 0x8a, 0x00, 0x06, 0xe0, 0x0c, 0x01, 0xbc, 0xc2, 0x38, 0x88,
+ 0xe3, 0x1e, 0xbc, 0x00, 0x1e, 0xde, 0xde, 0x3b, 0x6d, 0xf9, 0xf9, 0x88,
+ 0x88, 0xbf, 0xfe, 0x1e, 0x28, 0x24, 0x79, 0x9c, 0x57, 0x60, 0x7f, 0x89,
+ 0x7c, 0x0f, 0xfc, 0x21, 0xff, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xe1,
+ 0x0f, 0xff, 0xdf, 0xff, 0xe6, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xaf, 0xfb, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xd7, 0xeb, 0xd6, 0x63, 0xe0, 0x48, 0xd6, 0x06, 0xd2,
+ 0x5b, 0x03, 0x28, 0x8e, 0x2b, 0xff, 0xff, 0xfd, 0x7c, 0x50, 0xa2, 0x2e,
+ 0x36, 0xb1, 0x10, 0x58, 0x06, 0x20, 0x5e, 0xe5, 0x68, 0x00, 0x61, 0x79,
+ 0x00, 0xc6, 0x12, 0xc8, 0xd0, 0x30, 0x70, 0x87, 0x53, 0x71, 0x96, 0x51,
+ 0x54, 0x97, 0x53, 0x35, 0x1f, 0xb7, 0xe4, 0x30, 0x90, 0xfb, 0x4b, 0xf0,
+ 0x98, 0xb0, 0x07, 0x70, 0xe4, 0xa9, 0xf3, 0x79, 0x95, 0x41, 0x51, 0x30,
+ 0xfb, 0xab, 0xdb, 0x65, 0x6c, 0x08, 0x4b, 0xc3, 0x93, 0x37, 0xff, 0xaf,
+ 0x8b, 0x34, 0x62, 0xf0, 0x13, 0x7e, 0x59, 0xdc, 0x90, 0x07, 0x6c, 0x54,
+ 0x2d, 0xda, 0x1b, 0x3f, 0x19, 0x40, 0xeb, 0x8b, 0x67, 0xf4, 0x36, 0xea,
+ 0xd5, 0x1f, 0xff, 0xfe, 0xff, 0xfd, 0x78, 0x62, 0xb1, 0xb3, 0xff, 0xe1,
+ 0x22, 0xf8, 0xf7, 0x5d, 0xd2, 0x00, 0x66, 0x56, 0x9a, 0x6b, 0x57, 0x84,
+ 0x25, 0x86, 0x40, 0x02, 0xd7, 0xee, 0x19, 0x7d, 0xa3, 0x1e, 0x76, 0xc0,
+ 0xd7, 0x3b, 0xcf, 0xad, 0xe3, 0xb7, 0xbc, 0x76, 0xdc, 0x46, 0x18, 0xcc,
+ 0x3e, 0xb9, 0xd4, 0xe2, 0xde, 0x00, 0xb7, 0xe7, 0xc7, 0xb2, 0xff, 0x01,
+ 0x03, 0xde, 0x77, 0x88, 0xbf, 0xc0, 0x3c, 0x11, 0xec, 0xee, 0xdc, 0x33,
+ 0x13, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x82,
+ 0x2f, 0xb5, 0xe1, 0x8e, 0xb9, 0xfd, 0x4e, 0x31, 0x42, 0x00, 0x10, 0xee,
+ 0x81, 0xe1, 0x4f, 0x7e, 0x00, 0x0f, 0xc0, 0x40, 0xf6, 0xce, 0xf1, 0x17,
+ 0xde, 0x08, 0xf6, 0x77, 0x6f, 0xc3, 0x1f, 0xb1, 0x66, 0x6d, 0x3c, 0x66,
+ 0x04, 0xd8, 0x42, 0xa4, 0xc6, 0x15, 0xef, 0x80, 0x2d, 0xf9, 0xf1, 0xec,
+ 0x9a, 0xdd, 0x26, 0x06, 0x11, 0xd0, 0xf5, 0xfd, 0x7c, 0x67, 0xda, 0xf5,
+ 0xbf, 0xb4, 0x6b, 0xd7, 0xbf, 0x5f, 0x78, 0xdf, 0xf2, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xfe, 0xff, 0xcd,
+ 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xff, 0xf9, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf1, 0x7f, 0xf5, 0xff, 0x5f, 0xff, 0x31, 0xf0, 0xf2, 0x11, 0x95, 0x00,
+ 0x93, 0x78, 0x88, 0xbe, 0x82, 0x6c, 0xf0, 0xec, 0xf9, 0x00, 0x2b, 0x4d,
+ 0xab, 0x4f, 0xd3, 0xf7, 0xaf, 0x29, 0x7b, 0x2f, 0x62, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xf8, 0x44, 0x52, 0xf0, 0x78, 0x16, 0x9a, 0xd4, 0x08, 0x9e,
+ 0xc0, 0xbf, 0xfb, 0x7e, 0x73, 0x86, 0x11, 0xe0, 0x7f, 0xf1, 0x15, 0xb0,
+ 0x3e, 0xe2, 0x90, 0xf6, 0x7f, 0xb8, 0xf0, 0x1c, 0xc1, 0xcc, 0x50, 0x91,
+ 0x45, 0xce, 0xa3, 0x18, 0x40, 0x07, 0xdf, 0xe1, 0xd3, 0xc4, 0xc9, 0x9f,
+ 0xd0, 0x9e, 0x4c, 0xcf, 0xed, 0xbc, 0x33, 0xa2, 0x25, 0x75, 0x71, 0x9f,
+ 0x55, 0x80, 0x10, 0x86, 0x7a, 0x0a, 0x13, 0xaf, 0x7f, 0x18, 0x9a, 0xec,
+ 0xfa, 0xf0, 0x39, 0x1a, 0x1f, 0xe7, 0x86, 0xe5, 0x6e, 0x79, 0x0e, 0x7f,
+ 0x0e, 0xc1, 0x92, 0x08, 0xfc, 0x01, 0x7b, 0x98, 0xc8, 0x49, 0xb4, 0xc0,
+ 0x7c, 0x40, 0x2c, 0x12, 0x2c, 0x3f, 0x57, 0xbd, 0x7b, 0x77, 0x8d, 0xaf,
+ 0x06, 0xea, 0xa3, 0x00, 0xf0, 0x52, 0x0a, 0x3d, 0x6b, 0xc1, 0xbe, 0x44,
+ 0x15, 0x31, 0x04, 0x42, 0x0d, 0xda, 0xf2, 0x79, 0xbf, 0xff, 0xff, 0x84,
+ 0x4d, 0x8c, 0xe6, 0xf0, 0x00, 0x30, 0x13, 0xeb, 0xd2, 0xf0, 0x60, 0x51,
+ 0xe5, 0x82, 0xa7, 0xc1, 0x80, 0xc9, 0x6e, 0x6b, 0x73, 0x8e, 0xfa, 0x0e,
+ 0x0d, 0xad, 0x9b, 0xf5, 0xb3, 0xc1, 0x01, 0xb6, 0xf8, 0x01, 0x31, 0xf9,
+ 0x50, 0x42, 0x6d, 0x43, 0xec, 0x6f, 0x68, 0xd1, 0x3f, 0x3c, 0x01, 0x76,
+ 0x7c, 0x29, 0xd1, 0xdd, 0xa9, 0xff, 0xfb, 0xcb, 0xad, 0x44, 0x91, 0xfe,
+ 0xf7, 0xc3, 0x08, 0xdb, 0x6d, 0x4d, 0xff, 0xff, 0x7d, 0x6c, 0xb5, 0xca,
+ 0x1a, 0xf7, 0xff, 0xc6, 0x43, 0xc3, 0xb8, 0x3f, 0xe7, 0x67, 0xc4, 0x46,
+ 0xe2, 0x7c, 0x47, 0x93, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xf8, 0x81,
+ 0x80, 0x41, 0xeb, 0xc3, 0xf6, 0x78, 0xbf, 0x0d, 0x43, 0xc8, 0xbb, 0x9e,
+ 0x7b, 0xb0, 0xde, 0xea, 0x72, 0xf5, 0x7a, 0x4b, 0x84, 0xdc, 0xc4, 0x40,
+ 0x1e, 0x1f, 0xe1, 0x28, 0x4c, 0x66, 0xe1, 0xa8, 0x94, 0xdc, 0x6d, 0x22,
+ 0x6a, 0xe0, 0xba, 0x64, 0x31, 0xdd, 0x93, 0x5b, 0x86, 0xc8, 0x34, 0xa2,
+ 0xdc, 0x26, 0x75, 0x45, 0x73, 0xfe, 0x4f, 0x7e, 0xbd, 0xf8, 0xcf, 0x5e,
+ 0xfd, 0xf8, 0xcf, 0x5e, 0xcd, 0xf0, 0xfe, 0x34, 0x82, 0x12, 0xc0, 0xe1,
+ 0x38, 0xc9, 0x98, 0x4c, 0xdd, 0x9b, 0xfe, 0xf9, 0xe2, 0x6b, 0xc6, 0x1f,
+ 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff, 0xe4, 0x1d, 0x7f, 0xd9,
+ 0xb0, 0xfe, 0x3f, 0x84, 0xc4, 0x00, 0x0e, 0x74, 0x68, 0x86, 0xac, 0x00,
+ 0x2e, 0xaf, 0x06, 0x05, 0x9a, 0xf9, 0x3f, 0x9d, 0xf7, 0xfb, 0xef, 0x53,
+ 0x30, 0xe1, 0x38, 0xc9, 0x9f, 0x06, 0x20, 0x2a, 0x78, 0x30, 0x01, 0x50,
+ 0x11, 0xca, 0x0b, 0x1b, 0x04, 0x16, 0xae, 0x10, 0xbb, 0xaf, 0xda, 0x5f,
+ 0xdf, 0x6b, 0xc6, 0xff, 0xd1, 0x93, 0xff, 0x1f, 0x84, 0xe1, 0x33, 0x76,
+ 0x6f, 0xfb, 0xff, 0xc0, 0x03, 0x2f, 0xd3, 0xa7, 0x34, 0x91, 0x86, 0x60,
+ 0x70, 0x41, 0xb5, 0x04, 0xdf, 0xfd, 0xc9, 0xcb, 0x19, 0xe0, 0x06, 0x7d,
+ 0xbe, 0xb3, 0xb6, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x07, 0x9d, 0xf2, 0x99,
+ 0xef, 0xc0, 0x11, 0xda, 0x46, 0x07, 0xf8, 0xa3, 0xec, 0xbb, 0x0f, 0xfa,
+ 0xc0, 0x00, 0x03, 0xff, 0x6c, 0x32, 0x87, 0xfd, 0x5b, 0x16, 0x4c, 0xb3,
+ 0x39, 0xe1, 0x0f, 0xfc, 0xd0, 0x10, 0x77, 0xff, 0xe1, 0x25, 0x00, 0x67,
+ 0x04, 0x12, 0x65, 0x30, 0xea, 0x9b, 0x7f, 0xee, 0x7c, 0xa9, 0xd9, 0xa8,
+ 0x06, 0x9c, 0x71, 0x7a, 0x10, 0x0c, 0x45, 0xf9, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff,
+ 0xe1, 0x0f, 0xff, 0xdf, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xa8, 0x3d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xaf, 0xdf, 0xbc, 0xc7, 0xc0, 0x51, 0xe9, 0x6d, 0x50,
+ 0x11, 0xc9, 0x46, 0x64, 0x87, 0x9f, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd,
+ 0x7a, 0xf7, 0x98, 0x77, 0x19, 0x68, 0x86, 0x03, 0x9c, 0x01, 0x14, 0x5d,
+ 0xa8, 0x11, 0x84, 0x21, 0x9a, 0xb4, 0xe2, 0x00, 0x0c, 0x7e, 0x66, 0x40,
+ 0x18, 0xe5, 0x16, 0xff, 0x8d, 0xd2, 0x7c, 0x02, 0xf6, 0x9d, 0x3e, 0x61,
+ 0xde, 0xd2, 0x71, 0xb5, 0x34, 0x35, 0x54, 0xf9, 0xc1, 0x03, 0x86, 0x03,
+ 0xf8, 0x4b, 0xf0, 0x40, 0x2c, 0x18, 0x5d, 0x2b, 0x36, 0xbf, 0xbf, 0x78,
+ 0x40, 0x29, 0x9e, 0x28, 0xb5, 0xbd, 0xe4, 0xcd, 0xff, 0xef, 0xc3, 0x1f,
+ 0xae, 0x30, 0x0f, 0x64, 0xe0, 0x0d, 0x54, 0x8d, 0xa7, 0xe6, 0x62, 0xf5,
+ 0xc7, 0xdf, 0xfb, 0xe0, 0x06, 0x65, 0x69, 0xa7, 0x6a, 0xf5, 0x6e, 0xd8,
+ 0x92, 0x29, 0x8f, 0x7d, 0xfd, 0x62, 0xac, 0x79, 0xff, 0xff, 0xef, 0xff,
+ 0xdf, 0x86, 0x38, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x4d, 0xd1, 0xa3, 0x54,
+ 0xf1, 0x0a, 0x26, 0x5e, 0x00, 0xd7, 0x26, 0xdc, 0xed, 0x8f, 0xad, 0xe3,
+ 0xb7, 0xbc, 0x76, 0xd4, 0x69, 0x0b, 0xc2, 0x5e, 0x1b, 0xef, 0x0c, 0x61,
+ 0xf4, 0xa7, 0xe0, 0x81, 0x80, 0x3d, 0xff, 0xc7, 0x7e, 0xcc, 0x0e, 0xab,
+ 0xe1, 0xdf, 0xf3, 0xac, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0,
+ 0xf5, 0x84, 0xbe, 0xc3, 0x1d, 0x3e, 0x3a, 0x53, 0x14, 0x22, 0x00, 0xab,
+ 0x26, 0xd0, 0x00, 0x38, 0xf5, 0x06, 0xe0, 0x5b, 0x08, 0x3f, 0xa0, 0x50,
+ 0x0c, 0x6b, 0x80, 0xb4, 0x47, 0xbf, 0xd6, 0x37, 0xe8, 0x31, 0xe8, 0x94,
+ 0xfa, 0x70, 0xa3, 0x34, 0xef, 0xe7, 0xb4, 0xc7, 0x00, 0xcf, 0xd1, 0xf3,
+ 0xec, 0x88, 0xdb, 0xc6, 0xff, 0x95, 0x00, 0xc8, 0xdd, 0xd7, 0xb7, 0x86,
+ 0x0d, 0xde, 0x04, 0x27, 0xf3, 0xbf, 0x84, 0x3f, 0x5c, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f, 0xbf, 0xf3,
+ 0x7f, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xe0, 0xfd, 0x07, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xfb,
+ 0xcb, 0xf9, 0x46, 0xe0, 0x44, 0xf4, 0x6f, 0x5e, 0x2b, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x98, 0x57, 0x01, 0xf7, 0xcb, 0x78, 0x45, 0x00, 0x0a, 0xcb,
+ 0x24, 0x2b, 0x3d, 0x5c, 0x52, 0x3b, 0xaf, 0xbc, 0x03, 0xf6, 0xc0, 0xec,
+ 0x0d, 0xab, 0xff, 0x96, 0x85, 0x96, 0xc0, 0x0a, 0x39, 0x3c, 0x15, 0x87,
+ 0xff, 0xd9, 0xf2, 0x0b, 0x1b, 0xf2, 0xe0, 0x43, 0xe6, 0x3a, 0xb3, 0x0f,
+ 0x23, 0x2d, 0x36, 0x1f, 0xdf, 0xf0, 0x99, 0xda, 0x80, 0x65, 0x01, 0x31,
+ 0x7a, 0xaf, 0x84, 0x8c, 0xd9, 0xf9, 0xce, 0x67, 0xbf, 0xd7, 0x20, 0x75,
+ 0x0f, 0xf7, 0x5f, 0x3e, 0xf0, 0x6a, 0x4f, 0x37, 0xff, 0xff, 0xfc, 0x9e,
+ 0x59, 0x65, 0x21, 0x08, 0x2e, 0xe0, 0x07, 0x1e, 0xb2, 0x8f, 0xff, 0x7c,
+ 0x1f, 0x1d, 0x25, 0xd5, 0xdf, 0x57, 0x3d, 0x43, 0x02, 0x13, 0xdd, 0x80,
+ 0xdc, 0x76, 0x80, 0xd3, 0xab, 0x46, 0xfe, 0x0c, 0xbe, 0xee, 0x8e, 0xc7,
+ 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xb1, 0x38, 0x81, 0x08, 0x01,
+ 0x85, 0xeb, 0xe3, 0xe5, 0xec, 0x58, 0xe6, 0x43, 0x18, 0x1c, 0x9f, 0xf0,
+ 0x14, 0x99, 0xf6, 0xad, 0x6c, 0xd8, 0x6f, 0x7e, 0x6d, 0x9d, 0x4c, 0xb2,
+ 0xf0, 0x21, 0xe8, 0x7a, 0x09, 0xa4, 0x19, 0x43, 0xe9, 0x04, 0x3f, 0x6e,
+ 0x7c, 0x88, 0x0e, 0x0c, 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3,
+ 0x7c, 0x3f, 0xf8, 0x7c, 0xb0, 0x01, 0x18, 0x6b, 0xea, 0xef, 0xef, 0xf7,
+ 0x0a, 0x61, 0xf8, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0x83, 0xf4,
+ 0x6b, 0xfe, 0x8d, 0xfd, 0xbe, 0x1c, 0x3e, 0x68, 0x0e, 0x41, 0x08, 0x12,
+ 0x99, 0x01, 0x95, 0xa9, 0x49, 0xae, 0xef, 0x03, 0xe6, 0xbd, 0x78, 0xdf,
+ 0x46, 0xff, 0xf6, 0x80, 0x41, 0x0c, 0x00, 0x6b, 0xfa, 0x4e, 0xf5, 0xf9,
+ 0xef, 0xe7, 0x3c, 0xff, 0xfc, 0x23, 0xc8, 0x20, 0x07, 0x21, 0x98, 0xa9,
+ 0x85, 0x80, 0x00, 0x80, 0x4f, 0xc9, 0xe0, 0x44, 0x08, 0xfe, 0xf0, 0x49,
+ 0xf0, 0x34, 0x54, 0x01, 0x9d, 0xdb, 0xfc, 0xb8, 0x32, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff,
+ 0xc2, 0x1f, 0xff, 0xbf, 0xff, 0xcd, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e, 0x60,
+ 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8, 0x20,
+ 0x20, 0xaf, 0xf1, 0xf8, 0xb0, 0xdc, 0x50, 0x00, 0x3f, 0x01, 0xc2, 0x21,
+ 0x0c, 0x96, 0x01, 0xc2, 0x21, 0x0c, 0x4c, 0xf3, 0xc0, 0x06, 0x03, 0x84,
+ 0x42, 0x19, 0x2c, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd7, 0x4e, 0x4b,
+ 0x9b, 0x5b, 0xa7, 0xf8, 0xf0, 0x01, 0xc0, 0x70, 0x88, 0x43, 0x13, 0x3a,
+ 0xa2, 0x95, 0x59, 0xfa, 0x77, 0xd7, 0x77, 0x81, 0xaa, 0x66, 0xd6, 0x58,
+ 0x1f, 0x35, 0xff, 0xff, 0xe6, 0x0b, 0xf9, 0x11, 0xc1, 0xd3, 0x57, 0x7f,
+ 0x9e, 0xd7, 0x24, 0x19, 0xee, 0xeb, 0x4f, 0x5f, 0x77, 0x8e, 0xb2, 0x8b,
+ 0x0a, 0x81, 0xda, 0x3c, 0x01, 0x80, 0xe1, 0x30, 0xca, 0x96, 0x04, 0x80,
+ 0x03, 0xb6, 0xdf, 0x29, 0xbc, 0x78, 0x03, 0x01, 0xc2, 0x61, 0x95, 0x2d,
+ 0x3d, 0xce, 0xb9, 0xfd, 0xff, 0xbe, 0x02, 0xe5, 0xa4, 0x32, 0xcb, 0x61,
+ 0xdc, 0xef, 0xff, 0xac, 0x24, 0xf1, 0xe1, 0x0e, 0xb8, 0xb0, 0xdd, 0xb5,
+ 0x19, 0x32, 0x19, 0x5e, 0x55, 0x23, 0xfb, 0xfd, 0xf7, 0x47, 0xc0, 0xe2,
+ 0x47, 0x33, 0xcf, 0xed, 0x32, 0x0a, 0x32, 0xef, 0xf0, 0xe0, 0xf0, 0x1c,
+ 0x0d, 0x5a, 0x2e, 0x45, 0xb6, 0xb3, 0xfd, 0xed, 0xa4, 0x35, 0x65, 0x3d,
+ 0xca, 0x93, 0xd1, 0x3e, 0xfd, 0xa3, 0x31, 0xdb, 0x0b, 0xad, 0x23, 0x92,
+ 0xff, 0xde, 0xff, 0x11, 0x07, 0x88, 0xc6, 0xd9, 0xe0, 0x03, 0x01, 0xc2,
+ 0x21, 0x0c, 0x96, 0xe7, 0x80, 0x0c, 0x07, 0x08, 0x84, 0x32, 0x58, 0x00,
+ 0x8a, 0x59, 0xc2, 0x67, 0x56, 0x37, 0x6b, 0xae, 0x35, 0x6d, 0x29, 0xdb,
+ 0xfc, 0x04, 0x66, 0x90, 0x6d, 0x2f, 0x5e, 0x86, 0x7f, 0xf8, 0x3b, 0x11,
+ 0x2c, 0x6a, 0xbe, 0x75, 0x86, 0xff, 0xff, 0x8f, 0x02, 0x55, 0x86, 0x54,
+ 0x45, 0x57, 0x67, 0x97, 0xdf, 0xfb, 0x91, 0x30, 0xbf, 0xc4, 0x6a, 0x0e,
+ 0xa0, 0x4a, 0xc8, 0x1a, 0x2b, 0xab, 0x9a, 0x89, 0xdf, 0xa0, 0x5e, 0x0b,
+ 0x89, 0x4c, 0xd0, 0xec, 0x7a, 0x43, 0xe4, 0x05, 0x99, 0x6f, 0x1a, 0xae,
+ 0x0d, 0x17, 0xa5, 0xff, 0xd6, 0x20, 0x43, 0x16, 0x5f, 0xb7, 0x3a, 0xda,
+ 0xae, 0xdf, 0x01, 0x7c, 0xeb, 0x6a, 0xbb, 0x7c, 0x07, 0x10, 0xc5, 0x97,
+ 0xcd, 0x28, 0xb3, 0x32, 0x2f, 0xb5, 0xc0, 0x88, 0x00, 0x02, 0xb5, 0x6a,
+ 0xcf, 0x6d, 0xb0, 0x4f, 0xb9, 0x4f, 0xfe, 0x02, 0x4f, 0xaf, 0xa1, 0x93,
+ 0x1b, 0x17, 0xd3, 0x8f, 0xb4, 0x4c, 0xb3, 0x23, 0xb8, 0xc5, 0xbb, 0xb2,
+ 0xc1, 0xfa, 0xb7, 0xa5, 0x85, 0x4f, 0xbf, 0x01, 0x36, 0xe6, 0x53, 0x03,
+ 0x76, 0xeb, 0x5d, 0x43, 0xcd, 0x65, 0x11, 0x91, 0xfc, 0xfe, 0xc3, 0x8d,
+ 0xb5, 0x9e, 0x68, 0x8b, 0xdf, 0xee, 0x2b, 0xe8, 0x4a, 0xee, 0xa2, 0xb6,
+ 0x51, 0x40, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2c, 0x00, 0x10, 0x6e, 0x9a,
+ 0xd9, 0x69, 0xbb, 0xd3, 0xad, 0xa3, 0x44, 0x6e, 0xd1, 0xe0, 0x03, 0x01,
+ 0xc2, 0x21, 0x0c, 0x96, 0xf0, 0x01, 0x22, 0xf3, 0x4a, 0x66, 0x10, 0xb4,
+ 0x8d, 0x3a, 0xce, 0x48, 0x00, 0x94, 0xdd, 0x0f, 0xbf, 0xf5, 0xa6, 0x63,
+ 0x44, 0xab, 0x62, 0x0b, 0xff, 0xff, 0x2c, 0x28, 0xcd, 0xb3, 0xa7, 0xe8,
+ 0xc7, 0xff, 0xdb, 0x6b, 0x3b, 0xdf, 0xf7, 0xf9, 0x62, 0x40, 0x02, 0xaa,
+ 0xe6, 0xb4, 0x69, 0x3b, 0xd0, 0x76, 0xb1, 0x27, 0x45, 0x96, 0x8f, 0xb3,
+ 0xfd, 0x57, 0x35, 0xa3, 0x93, 0x54, 0x64, 0xf4, 0x61, 0x9e, 0x15, 0x9f,
+ 0xff, 0xfb, 0xbf, 0xac, 0xeb, 0xd9, 0x6e, 0x78, 0x00, 0xc0, 0x70, 0x88,
+ 0x43, 0x25, 0xbf, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb4, 0x7e, 0xea, 0xdb,
+ 0xd1, 0x26, 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2d, 0x7e, 0x69,
+ 0xd7, 0xc7, 0xfd, 0xf6, 0x1e, 0x0c, 0x96, 0x36, 0x88, 0x80, 0x93, 0x0d,
+ 0x7e, 0xbf, 0x55, 0xde, 0x40, 0x04, 0xec, 0x88, 0xfa, 0xee, 0xb5, 0xec,
+ 0xc6, 0x2e, 0xcd, 0xde, 0xdd, 0x7f, 0xdf, 0xda, 0x43, 0x46, 0x79, 0xe6,
+ 0x46, 0x82, 0x47, 0xff, 0xb3, 0x00, 0x00, 0x88, 0xbd, 0xc9, 0x80, 0x03,
+ 0x3b, 0x64, 0xd5, 0xad, 0xce, 0xc1, 0x9b, 0xcd, 0xff, 0xd6, 0xff, 0xff,
+ 0x6f, 0xd7, 0x6c, 0x9a, 0xb4, 0xf9, 0xdf, 0xea, 0x21, 0x89, 0xb3, 0xdc,
+ 0xf0, 0x01, 0x80, 0xe1, 0x10, 0x86, 0x4b, 0x73, 0xc0, 0x06, 0x03, 0x84,
+ 0x42, 0x19, 0x2c, 0x00, 0x45, 0x2c, 0xe1, 0x33, 0xab, 0x1b, 0xb5, 0x7e,
+ 0x69, 0xd7, 0xc7, 0xfd, 0xf7, 0xa2, 0xc0, 0x79, 0xf1, 0x22, 0x22, 0x96,
+ 0x37, 0xfe, 0xbf, 0x9f, 0x02, 0xf9, 0xb4, 0x36, 0x84, 0x44, 0xff, 0xfc,
+ 0x18, 0x13, 0x66, 0xa6, 0xc1, 0x9f, 0x93, 0x4b, 0x7f, 0xfb, 0x00, 0xb8,
+ 0xe9, 0x54, 0xa6, 0x26, 0x76, 0x61, 0xef, 0xd0, 0x1b, 0x21, 0x7c, 0x5c,
+ 0x58, 0xe6, 0xb5, 0xfb, 0xe6, 0xb3, 0xbd, 0xef, 0x7f, 0x96, 0xe8, 0x78,
+ 0xe3, 0x01, 0x1d, 0x01, 0xad, 0x1e, 0x00, 0xc0, 0x70, 0x98, 0x65, 0x4b,
+ 0x00, 0xe6, 0xbe, 0x4f, 0xe7, 0x2f, 0x9c, 0x9e, 0x25, 0x47, 0xc6, 0xd4,
+ 0xc7, 0x80, 0x30, 0x1c, 0x26, 0x19, 0x52, 0xdf, 0xed, 0x17, 0x95, 0x32,
+ 0x42, 0x76, 0x27, 0xde, 0x10, 0x00, 0x0c, 0x08, 0xc7, 0x1c, 0x6d, 0x87,
+ 0x56, 0xae, 0x52, 0x22, 0xf9, 0x00, 0x09, 0xbe, 0x30, 0xdd, 0x90, 0x00,
+ 0xdc, 0x85, 0xcf, 0xdb, 0x5c, 0x56, 0x9e, 0x41, 0x8a, 0xe4, 0xda, 0x5a,
+ 0xbd, 0x43, 0x46, 0x40, 0xd9, 0x97, 0xf3, 0x3b, 0xbe, 0x53, 0x8d, 0x55,
+ 0x3d, 0xf9, 0xe1, 0x0b, 0x02, 0xf7, 0x89, 0x97, 0x02, 0xfc, 0xa6, 0x9d,
+ 0xdf, 0xbc, 0x0e, 0x11, 0x08, 0x97, 0x00, 0x28, 0xc9, 0xfc, 0x9b, 0xd3,
+ 0xb0, 0x38, 0x44, 0x22, 0x58, 0x60, 0x01, 0x37, 0x1b, 0x5b, 0x20, 0x85,
+ 0xb0, 0x79, 0x1a, 0xa7, 0xd9, 0x1c, 0x57, 0xae, 0xae, 0xa2, 0x5d, 0x2a,
+ 0x67, 0x2c, 0x27, 0x18, 0x3d, 0x1c, 0x6d, 0x83, 0xab, 0x5d, 0x1c, 0xc8,
+ 0xf7, 0x09, 0x2d, 0x6f, 0xdb, 0x9d, 0x61, 0x52, 0x30, 0x46, 0xdb, 0x13,
+ 0xdd, 0xff, 0xb8, 0x49, 0x6b, 0x7e, 0xdc, 0xea, 0xc8, 0x94, 0x26, 0x3b,
+ 0x48, 0xe6, 0xff, 0xff, 0xbf, 0x0f, 0xa5, 0xbf, 0x12, 0x24, 0xb0, 0x00,
+ 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x83, 0xcf, 0x00, 0x02, 0xf0,
+ 0x1c, 0x00, 0x82, 0x0a, 0x5a, 0x5b, 0x81, 0x17, 0x90, 0xd5, 0xb9, 0x82,
+ 0x46, 0x67, 0x46, 0x0f, 0x15, 0x49, 0x22, 0xa4, 0xa7, 0xff, 0xfe, 0xfe,
+ 0x3f, 0x0f, 0x00, 0x4e, 0x72, 0x9c, 0xa5, 0x14, 0x0d, 0xeb, 0x62, 0x00,
+ 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f,
+ 0xc0, 0x10, 0x00, 0x9c, 0xe7, 0x39, 0xce, 0x70, 0x37, 0xad, 0x80, 0xe0,
+ 0x02, 0x0a, 0x2e, 0x5f, 0xc0, 0xe0, 0x02, 0x0a, 0x2e, 0x5f, 0xff, 0xc7,
+ 0xe0, 0x08, 0x00, 0x4e, 0x73, 0x9c, 0xe7, 0x38, 0x1b, 0xd6, 0xc0, 0x70,
+ 0x01, 0x05, 0x17, 0x2f, 0xe0, 0x70, 0x01, 0x05, 0x17, 0x2f, 0xff, 0xe3,
+ 0xf0, 0x04, 0x00, 0x27, 0x39, 0xce, 0x73, 0x9c, 0x0d, 0xeb, 0x60, 0x38,
+ 0x00, 0x82, 0x8b, 0x97, 0xf0, 0x38, 0x00, 0x82, 0x8b, 0x97, 0xff, 0xf1,
+ 0xf8, 0x02, 0x00, 0x13, 0x9c, 0xe7, 0x39, 0xce, 0x06, 0xf5, 0xb0, 0x1c,
+ 0x00, 0x41, 0x45, 0xcb, 0xf8, 0x1c, 0x00, 0x41, 0x45, 0xcb, 0xff, 0xf8,
+ 0xfc, 0x01, 0x00, 0x09, 0xce, 0x73, 0x9c, 0xe7, 0x03, 0x7a, 0xd8, 0x0e,
+ 0x00, 0x20, 0xa2, 0xe5, 0xfc, 0x0e, 0x00, 0x20, 0xa2, 0xe5, 0xff, 0xfc,
+ 0x7e, 0x00, 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xbd, 0x6c, 0x07,
+ 0x00, 0x10, 0x51, 0x72, 0xfe, 0x07, 0x00, 0x10, 0x51, 0x72, 0xff, 0xfe,
+ 0x3f, 0x00, 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xde, 0xb6, 0x03,
+ 0x80, 0x08, 0x28, 0xb9, 0x7f, 0x03, 0x80, 0x08, 0x28, 0xb9, 0x7f, 0xff,
+ 0x1f, 0x80, 0x20, 0x01, 0x39, 0xce, 0x73, 0x9c, 0xe0, 0x6f, 0x5b, 0x01,
+ 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff,
+ 0x8f, 0xc0, 0x01, 0x00, 0x19, 0x0a, 0x5a, 0x5b, 0x28, 0x2a, 0x21, 0xad,
+ 0x4c, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c,
+ 0xb0, 0x02, 0x1a, 0x46, 0xb2, 0x30, 0xc6, 0xeb, 0xd3, 0x70, 0xfe, 0x07,
+ 0x00, 0x10, 0x41, 0x77, 0x38, 0xec, 0x01, 0x31, 0x66, 0x23, 0xdb, 0x32,
+ 0x94, 0xc4, 0x4f, 0xac, 0x80, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0xeb, 0x00,
+ 0xcb, 0x08, 0x70, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0x96, 0x12, 0xc0, 0x00,
+ 0x80, 0x99, 0xe8, 0x12, 0x14, 0xa1, 0xf0, 0xf8, 0x9e, 0x38, 0x57, 0x8d,
+ 0x80, 0x03, 0x29, 0xdc, 0x63, 0x6a, 0x63, 0x2d, 0xcd, 0x42, 0xdf, 0x80,
+ 0x04, 0x1b, 0x1c, 0xda, 0xf3, 0x30, 0x0e, 0xd1, 0x9f, 0x0f, 0xaf, 0xe0,
+ 0x81, 0xf9, 0xb0, 0x28, 0xa9, 0x16, 0x9f, 0x08, 0x7f, 0xdf, 0xff, 0xfe,
+ 0xb0, 0x42, 0xb0, 0x00, 0x83, 0x63, 0x9b, 0x5e, 0x66, 0x01, 0xda, 0x3a,
+ 0xf6, 0x12, 0x32, 0x3c, 0x38, 0x67, 0xf5, 0xff, 0xfc, 0x0e, 0x15, 0xfe,
+ 0x00, 0x30, 0x26, 0x7a, 0x04, 0x85, 0x29, 0x06, 0x36, 0x00, 0x0c, 0xa7,
+ 0x71, 0x8d, 0xa9, 0x8c, 0xb7, 0x3a, 0x16, 0x24, 0x4f, 0x7f, 0x11, 0xf8,
+ 0x67, 0x85, 0x44, 0x60, 0x03, 0x02, 0x67, 0xa0, 0x48, 0x52, 0xb0, 0x1b,
+ 0x00, 0x06, 0x53, 0xb8, 0xc6, 0xd4, 0xd8, 0xcc, 0xce, 0x6a, 0x07, 0x00,
+ 0xdb, 0x6d, 0xf2, 0x9b, 0x9f, 0x0f, 0xba, 0xfc, 0x10, 0x78, 0x60, 0xb4,
+ 0xa8, 0x80, 0xee, 0x5f, 0xbc, 0x05, 0x41, 0x44, 0xc9, 0xbc, 0xd0, 0xbb,
+ 0xef, 0xff, 0xf7, 0x82, 0x1e, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd3,
+ 0xd0, 0x0c, 0x41, 0x1f, 0x00, 0x51, 0x1d, 0xff, 0xcf, 0xf0, 0xaf, 0x02,
+ 0x13, 0xc9, 0x33, 0x21, 0x2f, 0xe9, 0xb0, 0x7c, 0x00, 0x2f, 0x53, 0x28,
+ 0x5c, 0xa4, 0xc0, 0x3a, 0x47, 0x25, 0x13, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
+ 0xd7, 0x1d, 0x10, 0x00, 0x80, 0x04, 0xc7, 0x31, 0xcc, 0x73, 0x01, 0xe6,
+ 0xf3, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x73, 0xfc, 0x0e, 0x00, 0x20, 0x82,
+ 0xee, 0x7f, 0xda, 0x1f, 0x49, 0xd9, 0x0b, 0x00, 0x02, 0x38, 0x0e, 0x01,
+ 0x08, 0x71, 0x09, 0x9c, 0x50, 0x1c, 0x2e, 0xa2, 0xb5, 0x07, 0xa8, 0xb5,
+ 0xfa, 0x1e, 0x00, 0x04, 0x70, 0x1c, 0x02, 0x10, 0xe2, 0x13, 0x38, 0x04,
+ 0xbe, 0xb3, 0x5e, 0x27, 0xfe, 0x9d, 0xb4, 0xf5, 0xd3, 0x63, 0xc5, 0x85,
+ 0xd1, 0x09, 0x6c, 0xd2, 0xb2, 0x4e, 0xd8, 0x1a, 0xe4, 0xa3, 0x4e, 0x94,
+ 0xe6, 0x0c, 0x6f, 0xab, 0x90, 0xf6, 0x9f, 0xaa, 0xcd, 0x98, 0x2b, 0x01,
+ 0xa1, 0xdb, 0x8f, 0xd7, 0x2f, 0x2e, 0x1f, 0x7e, 0x84, 0x1e, 0x4d, 0xa9,
+ 0x86, 0x4e, 0xfe, 0x42, 0x3d, 0x38, 0xa9, 0xf1, 0x11, 0xba, 0x98, 0x1a,
+ 0xb7, 0x58, 0x02, 0xee, 0x51, 0xe8, 0x02, 0x72, 0xda, 0xbf, 0x5d, 0x35,
+ 0x04, 0x26, 0x67, 0x2a, 0xa0, 0xdf, 0x3f, 0x7e, 0x9a, 0x63, 0x77, 0xfd,
+ 0x8c, 0xfb, 0xbd, 0x07, 0x1f, 0x14, 0xce, 0xb0, 0xd0, 0x74, 0x53, 0x35,
+ 0xe0, 0x32, 0xa9, 0x29, 0x8e, 0xc2, 0x37, 0xbf, 0xb6, 0xf9, 0xd1, 0xe9,
+ 0xc0, 0xbc, 0xcc, 0x58, 0x47, 0x7f, 0x20, 0xf6, 0x24, 0xe3, 0x20, 0x33,
+ 0x7a, 0x86, 0xf5, 0x98, 0x14, 0x8a, 0x43, 0xcf, 0x0d, 0x05, 0x89, 0x2f,
+ 0x2b, 0x66, 0x2e, 0x7b, 0x50, 0xe9, 0x50, 0x8b, 0xff, 0x74, 0x10, 0x77,
+ 0x2f, 0x24, 0xbf, 0xfb, 0x76, 0xd1, 0x3a, 0x41, 0x19, 0x5e, 0xdf, 0x80,
+ 0x38, 0xeb, 0xb4, 0xb6, 0xfe, 0x89, 0xd7, 0x3a, 0x00, 0x01, 0x00, 0x67,
+ 0x03, 0x62, 0x59, 0x7c, 0xfd, 0x1a, 0x31, 0x95, 0xff, 0x62, 0x2b, 0x4c,
+ 0x09, 0xd8, 0xf0, 0x22, 0x6e, 0x0f, 0x7f, 0x85, 0xe3, 0x8a, 0x3d, 0x05,
+ 0xc0, 0x5b, 0xe5, 0x41, 0xd6, 0x0d, 0xaf, 0x9c, 0xbd, 0x5a, 0x67, 0xc1,
+ 0x45, 0x27, 0xe5, 0x1b, 0x74, 0x10, 0x64, 0x23, 0xb0, 0xbd, 0xa3, 0x3e,
+ 0xef, 0x41, 0xce, 0x8c, 0x1f, 0x49, 0xe3, 0xde, 0xb6, 0xd3, 0x25, 0x64,
+ 0xbb, 0x60, 0x1a, 0xe4, 0xa3, 0x4e, 0x4a, 0x73, 0xf2, 0xae, 0x99, 0x1d,
+ 0xdb, 0x21, 0x76, 0xf0, 0xcf, 0xdd, 0xe4, 0xfe, 0x9c, 0x0f, 0x95, 0x43,
+ 0xef, 0xd0, 0x83, 0xd9, 0xb5, 0x30, 0xc9, 0xdf, 0xc8, 0x47, 0xa7, 0x15,
+ 0xf8, 0x88, 0xdd, 0x4c, 0x0d, 0x79, 0x9d, 0xb6, 0xaa, 0xcf, 0x67, 0xc0,
+ 0x02, 0x5b, 0x32, 0x8b, 0x30, 0x50, 0x1d, 0xa2, 0x2e, 0x5a, 0xc8, 0xe1,
+ 0x94, 0xc4, 0x11, 0xdf, 0xca, 0x35, 0x75, 0xc7, 0xeb, 0xf7, 0xe7, 0x1a,
+ 0x52, 0x5e, 0xfb, 0xfc, 0x0c, 0xa8, 0x8c, 0x4c, 0xa5, 0x43, 0x85, 0x24,
+ 0x3a, 0x41, 0x5f, 0x59, 0xbc, 0x85, 0x52, 0xfa, 0x9e, 0x7a, 0x2d, 0xe2,
+ 0x45, 0x1e, 0x58, 0x99, 0xec, 0xe0, 0x29, 0x01, 0x49, 0x8b, 0x5c, 0xec,
+ 0xc3, 0x86, 0x0f, 0xa4, 0xf1, 0xe9, 0x59, 0x2e, 0xd8, 0x0d, 0x72, 0x5b,
+ 0xd3, 0x3b, 0x51, 0xa7, 0x4a, 0x73, 0x66, 0xd9, 0x0d, 0x0e, 0xd8, 0x73,
+ 0xea, 0xfe, 0x03, 0x3f, 0xef, 0x4f, 0xe9, 0xc1, 0xf7, 0xe8, 0x41, 0xec,
+ 0xda, 0x9b, 0xca, 0xfc, 0x84, 0x9d, 0x4c, 0x32, 0x7f, 0xe4, 0x23, 0xd3,
+ 0x83, 0x23, 0xe8, 0x22, 0x9c, 0x8f, 0xfd, 0x30, 0x34, 0x0c, 0x37, 0xde,
+ 0x96, 0x8d, 0x74, 0x22, 0xf2, 0x71, 0xf3, 0x8b, 0x2c, 0xff, 0x56, 0xe1,
+ 0xf5, 0x7e, 0x5a, 0x68, 0x9e, 0x83, 0x7b, 0xcf, 0xe1, 0x6d, 0x36, 0xa9,
+ 0x87, 0xf7, 0xb4, 0x50, 0x22, 0xea, 0x67, 0x98, 0x1c, 0xaf, 0xd3, 0xb6,
+ 0x1b, 0xd4, 0x11, 0x68, 0x7f, 0x5e, 0xea, 0x58, 0x7e, 0xf9, 0x09, 0xc7,
+ 0xbf, 0x70, 0x20, 0x7d, 0x3f, 0x00, 0x1f, 0x71, 0x98, 0x4d, 0x54, 0xe4,
+ 0x33, 0xd2, 0xfa, 0x28, 0x02, 0xce, 0x4e, 0x83, 0x19, 0xee, 0xb7, 0x3a,
+ 0x75, 0xdf, 0xf5, 0xca, 0x48, 0x62, 0x62, 0x3f, 0x6d, 0x78, 0x3c, 0xe8,
+ 0x00, 0xee, 0x36, 0xc9, 0x06, 0x2c, 0x73, 0x17, 0xfb, 0xc1, 0xf4, 0x5e,
+ 0xf2, 0x36, 0x0f, 0xef, 0x00, 0x8f, 0x5f, 0x87, 0xff, 0xfe, 0xe0, 0x0d,
+ 0x13, 0x66, 0x8c, 0x17, 0x13, 0x36, 0xff, 0x82, 0x2b, 0x73, 0xaa, 0x3f,
+ 0xff, 0xe6, 0x3c, 0x65, 0xa1, 0xd8, 0x58, 0x11, 0x6e, 0x43, 0xc6, 0x10,
+ 0x01, 0x1d, 0xd7, 0xcb, 0xc9, 0x3f, 0x80, 0x28, 0xcc, 0x2a, 0x0b, 0xb0,
+ 0x5c, 0xa6, 0x6f, 0x88, 0x36, 0xef, 0x7a, 0xeb, 0x65, 0xe3, 0x47, 0x44,
+ 0x6e, 0xec, 0xdc, 0xf2, 0x0b, 0x11, 0x55, 0x7f, 0xcd, 0xdf, 0x47, 0xff,
+ 0x3c, 0x38, 0x1a, 0x87, 0xf9, 0xf9, 0x81, 0x30, 0xcb, 0x96, 0x51, 0x05,
+ 0x8c, 0x74, 0x17, 0x2f, 0x07, 0x09, 0x86, 0x5c, 0xb4, 0x3f, 0xef, 0xf8,
+ 0x4c, 0x5f, 0xc1, 0x4d, 0x19, 0x85, 0xc5, 0x53, 0x50, 0xa3, 0x76, 0xbd,
+ 0x41, 0x00, 0x4c, 0x08, 0x59, 0xe2, 0xe5, 0x83, 0x7d, 0x22, 0xc4, 0x8c,
+ 0x98, 0xdd, 0xaf, 0x51, 0x35, 0xd7, 0x5d, 0x75, 0xd7, 0x5c, 0x74, 0x40,
+ 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0,
+ 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xff, 0xff,
+ 0x28, 0x5a, 0x3c, 0x00, 0x0a, 0xe0, 0x38, 0x04, 0x30, 0x84, 0x93, 0x3f,
+ 0x01, 0x1e, 0xbf, 0x6f, 0x9e, 0x00, 0x04, 0xf0, 0x1c, 0x02, 0x18, 0x42,
+ 0x49, 0x9c, 0x1b, 0x68, 0x0a, 0x2d, 0xb4, 0x1c, 0xe3, 0xe2, 0x6c, 0x00,
+ 0x34, 0x69, 0xdd, 0x3c, 0xfc, 0x8c, 0x41, 0x87, 0xb2, 0x7c, 0xa8, 0x32,
+ 0xb1, 0xc9, 0xd4, 0xdf, 0xe0, 0x08, 0xb3, 0x13, 0x15, 0x59, 0xf9, 0x20,
+ 0xe8, 0xb4, 0xc4, 0x41, 0x56, 0xff, 0x0c, 0x0f, 0x16, 0x70, 0x13, 0xfb,
+ 0xbe, 0x60, 0xe3, 0xc0, 0x61, 0xea, 0xc1, 0xc7, 0x4b, 0x74, 0x7a, 0x8e,
+ 0x61, 0xbd, 0xa2, 0xa9, 0xca, 0x6a, 0xf8, 0x7b, 0x34, 0x98, 0x60, 0x77,
+ 0x54, 0xce, 0xa3, 0xea, 0x99, 0x3c, 0x6f, 0xf0, 0xeb, 0x4d, 0x1a, 0x43,
+ 0xcf, 0xf8, 0x4c, 0xfb, 0x58, 0x1a, 0x0c, 0xa6, 0x39, 0xba, 0x9a, 0xca,
+ 0xa3, 0xb1, 0x67, 0x78, 0x72, 0xf3, 0x04, 0x53, 0xa6, 0x03, 0xd5, 0x26,
+ 0x01, 0x28, 0x19, 0xd9, 0xd4, 0x3f, 0xac, 0x90, 0x5c, 0x96, 0x21, 0x2c,
+ 0xb5, 0xb0, 0xf0, 0x1a, 0x45, 0x58, 0x7b, 0xe7, 0x8d, 0x6c, 0x12, 0x5e,
+ 0x31, 0x7e, 0x00, 0x8b, 0x32, 0x11, 0x55, 0x9f, 0x8d, 0xc2, 0x8e, 0x4f,
+ 0xc1, 0x81, 0x96, 0x70, 0x21, 0xf0, 0xfe, 0x63, 0x8f, 0x5f, 0x47, 0x88,
+ 0x00, 0x5e, 0xd1, 0x59, 0xa4, 0xc9, 0x1c, 0xdf, 0x24, 0x25, 0x14, 0xf4,
+ 0x9a, 0x70, 0xb3, 0xbc, 0x1d, 0xb0, 0xf2, 0xb3, 0x4c, 0x1e, 0x24, 0x46,
+ 0x99, 0xff, 0x42, 0xd4, 0x9c, 0xe3, 0x1f, 0xc0, 0x11, 0x33, 0x13, 0x15,
+ 0x59, 0xf8, 0x03, 0x11, 0x68, 0x94, 0xcd, 0xa2, 0x6e, 0xc0, 0x0d, 0x56,
+ 0x94, 0xcd, 0x0e, 0x37, 0xe8, 0x3d, 0x49, 0x90, 0x5d, 0x6a, 0x0c, 0xbe,
+ 0xa3, 0x2f, 0x7a, 0x57, 0xf6, 0x68, 0x00, 0x04, 0x02, 0xa0, 0xf8, 0xed,
+ 0x77, 0x11, 0x26, 0x78, 0xa2, 0xd6, 0xf4, 0x96, 0x73, 0x98, 0x05, 0xce,
+ 0xbb, 0x53, 0x84, 0x9c, 0xc4, 0xc3, 0xe5, 0x76, 0x1e, 0xa1, 0x26, 0x60,
+ 0xf6, 0xfe, 0x18, 0x00, 0x43, 0xab, 0x6f, 0x44, 0x9b, 0x5e, 0xab, 0x6b,
+ 0x32, 0x1a, 0x22, 0xed, 0x7f, 0xd0, 0x39, 0x84, 0x8d, 0xaa, 0x95, 0xfa,
+ 0xc6, 0xb9, 0x36, 0x90, 0x4c, 0xc2, 0xd2, 0x16, 0xe3, 0x9d, 0x46, 0x2d,
+ 0x49, 0x9f, 0xdc, 0x6a, 0xbe, 0xff, 0x7d, 0xfe, 0xbf, 0xff, 0xf2, 0x28,
+ 0x21, 0x11, 0x00, 0x0b, 0x64, 0x59, 0xed, 0x90, 0x04, 0x81, 0x49, 0x77,
+ 0xec, 0x00, 0x1e, 0xc8, 0xbf, 0xbe, 0x94, 0xff, 0xff, 0xff, 0xeb, 0xde,
+ 0xff, 0xff, 0xaf, 0xfe, 0xff, 0xde, 0xf2, 0xfc, 0x4a, 0xe0, 0x08, 0x00,
+ 0x50, 0xc8, 0xa0, 0x3a, 0xc1, 0x07, 0xbf, 0x20, 0x03, 0xef, 0x06, 0x48,
+ 0x84, 0x01, 0xd2, 0x31, 0xdd, 0x20, 0x8e, 0x2f, 0xde, 0xfc, 0xff, 0xf7,
+ 0xfa, 0x18, 0x12, 0x91, 0x4a, 0xf6, 0x69, 0x1d, 0xf7, 0x06, 0x1e, 0xe3,
+ 0xc6, 0x1f, 0xf0, 0x92, 0x0c, 0xf0, 0xa1, 0x34, 0x15, 0x6f, 0xfb, 0xe9,
+ 0x00, 0x54, 0x53, 0x23, 0x2d, 0x0e, 0x65, 0x4e, 0xc3, 0x0c, 0x0e, 0x20,
+ 0x08, 0x64, 0x1e, 0x2b, 0x01, 0x5f, 0xfe, 0x12, 0x2e, 0x00, 0x40, 0xb5,
+ 0x4e, 0xd7, 0xee, 0xbe, 0x12, 0x34, 0xf8, 0xb4, 0xdc, 0xe8, 0x6d, 0x9e,
+ 0x64, 0x05, 0x1f, 0x17, 0xfc, 0x2a, 0xbe, 0x23, 0xaa, 0x81, 0xc1, 0x3f,
+ 0xe0, 0x06, 0x2f, 0xf2, 0xd3, 0xff, 0x48, 0x3c, 0x7e, 0xae, 0x3d, 0xfc,
+ 0x80, 0x06, 0x5f, 0x7d, 0x76, 0xfd, 0xc0, 0x69, 0xdd, 0x3e, 0xb3, 0xff,
+ 0x1f, 0x57, 0x8f, 0xd7, 0xff, 0xf3, 0xfc, 0x10, 0x17, 0xe0, 0xfb, 0xc1,
+ 0xf8, 0x75, 0x2c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc,
+ 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00,
+ 0x82, 0x0b, 0xb9, 0xff, 0x49, 0xff, 0xc4, 0xa3, 0xc0, 0x00, 0x9e, 0x03,
+ 0x80, 0x43, 0x08, 0x49, 0x33, 0x80, 0x70, 0x1d, 0x38, 0x54, 0x6d, 0x2a,
+ 0xfe, 0x6b, 0x5b, 0x5d, 0xf0, 0x78, 0x00, 0x13, 0xc0, 0x70, 0x08, 0x61,
+ 0x09, 0x26, 0x70, 0x60, 0x24, 0x42, 0x3f, 0xf8, 0x49, 0x07, 0xa4, 0xcc,
+ 0x84, 0x54, 0x36, 0xa6, 0x02, 0x98, 0x56, 0xbc, 0x0d, 0xd6, 0x93, 0xf7,
+ 0xcf, 0x00, 0x03, 0x69, 0xd8, 0xc6, 0xd4, 0xc9, 0x8d, 0x8f, 0xaf, 0x58,
+ 0xad, 0x85, 0x43, 0x32, 0xa9, 0xf0, 0x97, 0x5c, 0xaf, 0xfc, 0x81, 0xc1,
+ 0x3e, 0x4d, 0xac, 0x68, 0xc9, 0xfb, 0xd6, 0xb9, 0x20, 0x18, 0x7f, 0xc2,
+ 0x5b, 0xd8, 0x3e, 0x08, 0x99, 0x4b, 0x7f, 0xc5, 0x17, 0x91, 0x8d, 0xaa,
+ 0x3b, 0x99, 0x53, 0xb6, 0xde, 0x28, 0xc7, 0xe8, 0x38, 0x05, 0x4c, 0x06,
+ 0xcb, 0x09, 0x7c, 0xc1, 0xe9, 0x33, 0x21, 0x15, 0x8d, 0xa9, 0xa5, 0xe9,
+ 0x93, 0x86, 0x80, 0x0d, 0xa7, 0x61, 0x0d, 0xa9, 0xac, 0x84, 0x48, 0xc6,
+ 0xff, 0xf0, 0x94, 0x13, 0x96, 0xba, 0xd1, 0xd3, 0xb2, 0xaf, 0xbe, 0xaf,
+ 0x58, 0xad, 0x8e, 0x86, 0x1e, 0x37, 0x30, 0xf2, 0xa9, 0xf0, 0x97, 0x5c,
+ 0xef, 0xfc, 0xab, 0x60, 0xf8, 0x22, 0x65, 0x3f, 0xf9, 0xf8, 0x27, 0xc9,
+ 0xb5, 0x8d, 0x09, 0xbf, 0x7a, 0xa7, 0x6d, 0xbc, 0x50, 0x87, 0xea, 0xd2,
+ 0x33, 0x01, 0x2f, 0xf8, 0x4a, 0x19, 0x92, 0x29, 0xb1, 0x0c, 0xa7, 0xfe,
+ 0x7c, 0x83, 0x68, 0x6a, 0xad, 0xbe, 0x80, 0x73, 0x5b, 0x9e, 0xa4, 0xf4,
+ 0x7b, 0x4c, 0x36, 0x5f, 0x39, 0x41, 0xc2, 0xff, 0xf6, 0xc8, 0x80, 0x01,
+ 0x29, 0x04, 0x17, 0x61, 0x9d, 0xb5, 0x50, 0xfe, 0xe7, 0xc4, 0x7c, 0x3f,
+ 0xf0, 0x96, 0x19, 0x23, 0x20, 0x18, 0x42, 0x60, 0x36, 0xd4, 0x18, 0x60,
+ 0x07, 0x49, 0x19, 0x00, 0xc2, 0x12, 0x50, 0x6d, 0xa8, 0x00, 0xe9, 0x46,
+ 0x80, 0x61, 0x1e, 0x40, 0x6d, 0xab, 0xc1, 0xea, 0x36, 0xba, 0xeb, 0xae,
+ 0xbe, 0x56, 0x96, 0x44, 0xdf, 0x89, 0x15, 0x00, 0x0b, 0x69, 0x7f, 0x7d,
+ 0x2b, 0xff, 0xf9, 0x02, 0x51, 0x25, 0x7c, 0x8d, 0x9c, 0xbb, 0x57, 0xd7,
+ 0xff, 0xcf, 0xff, 0xff, 0x01, 0x87, 0x00, 0x2c, 0x83, 0xfd, 0x22, 0x31,
+ 0xdd, 0xea, 0xa0, 0xc2, 0x3a, 0xde, 0xfd, 0xe7, 0xff, 0xfd, 0xfd, 0xc5,
+ 0xba, 0x88, 0xa8, 0x95, 0x7e, 0x67, 0x4f, 0xf3, 0xa6, 0x09, 0xc4, 0x11,
+ 0x7c, 0x7e, 0xbc, 0x52, 0x07, 0xf8, 0x4b, 0xd6, 0xc0, 0xff, 0x3b, 0x00,
+ 0x3e, 0x5f, 0x34, 0x9b, 0x8a, 0x5e, 0xdc, 0xdd, 0x9b, 0xfe, 0xff, 0x51,
+ 0x31, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f,
+ 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
+ 0xe7, 0x1d, 0x87, 0x80, 0x27, 0x39, 0xca, 0x72, 0xb8, 0x1e, 0x6f, 0x08,
+ 0x00, 0x10, 0x51, 0xb7, 0x3f, 0xe0, 0x70, 0x01, 0x05, 0x1b, 0x73, 0xfe,
+ 0xa2, 0x55, 0xf7, 0xdf, 0x7d, 0x75, 0xd7, 0x5d, 0x7f, 0xda, 0xdf, 0x09,
+ 0x42, 0x82, 0x20, 0x01, 0x71, 0x87, 0x2a, 0x54, 0x92, 0xc7, 0x4d, 0xff,
+ 0x40, 0x9f, 0xc1, 0x5d, 0x8d, 0xae, 0x82, 0xbf, 0xfb, 0xe8, 0x09, 0xd3,
+ 0x26, 0xc8, 0xe2, 0x1a, 0x2b, 0x68, 0x64, 0x89, 0x0d, 0x75, 0x11, 0x51,
+ 0x35, 0xff, 0x48, 0x7f, 0x08, 0x50, 0x47, 0x80, 0x5f, 0x54, 0x07, 0xd4,
+ 0x08, 0x4a, 0xe4, 0xb9, 0xe9, 0xf2, 0xf4, 0x0a, 0xdb, 0xfd, 0x5b, 0x9f,
+ 0xf7, 0xd4, 0x4f, 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39,
+ 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00,
+ 0x10, 0x41, 0x77, 0x38, 0xec, 0x01, 0x00, 0x09, 0xce, 0x71, 0x56, 0xb5,
+ 0x81, 0xe6, 0xf0, 0x0e, 0x00, 0x20, 0xa3, 0x6e, 0x7f, 0xc0, 0xe0, 0x02,
+ 0x0a, 0x36, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
+ 0xfc, 0x3f, 0xa5, 0x20, 0x84, 0x44, 0x00, 0x28, 0x90, 0xa6, 0x98, 0x8e,
+ 0xe8, 0xa8, 0x4f, 0xfe, 0xd9, 0x20, 0x38, 0xb6, 0x8a, 0x89, 0x92, 0x0f,
+ 0x76, 0xca, 0x26, 0xbf, 0xe1, 0x6f, 0x6b, 0x61, 0x41, 0x10, 0x00, 0x9e,
+ 0x75, 0xba, 0xb5, 0xff, 0x6f, 0xce, 0xa4, 0xa5, 0x1e, 0xaf, 0x00, 0x08,
+ 0xa3, 0x79, 0x26, 0xbd, 0x7e, 0xf0, 0x62, 0x88, 0xed, 0x54, 0xdb, 0xef,
+ 0x51, 0x21, 0xaf, 0xff, 0xfe, 0xd0, 0x42, 0x68, 0x00, 0x63, 0xf3, 0x44,
+ 0x3f, 0x31, 0x1d, 0x9a, 0x0c, 0xb1, 0x7c, 0x61, 0xc7, 0x6c, 0x53, 0xc7,
+ 0x44, 0x00, 0x20, 0x01, 0x31, 0xcc, 0x73, 0x1c, 0xc0, 0x79, 0xbc, 0xf8,
+ 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xff, 0x03, 0x80, 0x08, 0x20, 0xbb, 0x9c,
+ 0x76, 0x00, 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xe6, 0xf0, 0x0e,
+ 0x00, 0x20, 0xa3, 0x6e, 0x7f, 0xc0, 0xe0, 0x02, 0x0a, 0x36, 0xe7, 0xfd,
+ 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xe0, 0x00, 0x00, 0x01, 0x25,
+ 0x01, 0x2e, 0xe0, 0x80, 0x87, 0xff, 0xff, 0xc3, 0xd1, 0x40, 0x00, 0x40,
+ 0xc7, 0xc7, 0xcc, 0x00, 0x08, 0x32, 0x14, 0xa4, 0x29, 0x0a, 0x42, 0x90,
+ 0xa4, 0x21, 0x4d, 0xf0, 0x02, 0xd4, 0x02, 0x9c, 0xe6, 0x73, 0x00, 0x15,
+ 0xeb, 0x9b, 0xff, 0xfd, 0x3e, 0x91, 0x4f, 0x84, 0xd0, 0x70, 0x00, 0xb9,
+ 0x19, 0xa8, 0xe4, 0xdb, 0x12, 0x77, 0xbc, 0x10, 0xc0, 0xe4, 0x4c, 0xb6,
+ 0x4b, 0xbd, 0xed, 0xfe, 0x00, 0x0e, 0xcc, 0x8d, 0x7b, 0x24, 0x4c, 0xb7,
+ 0xf8, 0x91, 0x2f, 0xfc, 0xb6, 0xb7, 0xc4, 0x88, 0xe0, 0x03, 0xbd, 0x92,
+ 0x31, 0xa3, 0x2e, 0xaf, 0x00, 0x06, 0x26, 0x9a, 0x20, 0xb5, 0xc6, 0x00,
+ 0x28, 0x1c, 0x3c, 0x12, 0xc5, 0xed, 0xbb, 0x44, 0xff, 0xe4, 0x06, 0xe3,
+ 0xd1, 0xc9, 0xd9, 0x0b, 0xe7, 0x12, 0xaf, 0xff, 0x62, 0xf6, 0x96, 0x30,
+ 0x44, 0x00, 0xd0, 0x76, 0xa4, 0x02, 0x07, 0x1c, 0x39, 0x82, 0x1e, 0x3f,
+ 0x56, 0x5f, 0xcf, 0x80, 0x10, 0xf5, 0x8e, 0xb3, 0x39, 0xf9, 0x80, 0x74,
+ 0xdf, 0xd1, 0xf3, 0xd3, 0xcb, 0xf9, 0xe4, 0x89, 0x0c, 0x7c, 0x40, 0x02,
+ 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04,
+ 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xff, 0xff, 0xf0,
+ 0x9c, 0x50, 0x00, 0x10, 0x11, 0xc0, 0x70, 0x02, 0x08, 0x29, 0x44, 0xcc,
+ 0xf0, 0x00, 0x2b, 0x80, 0xe0, 0x04, 0x10, 0x52, 0x89, 0x9b, 0x89, 0xbe,
+ 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xbe, 0x99, 0xcc, 0xfe, 0x7c, 0x50,
+ 0x8e, 0x84, 0xfb, 0xeb, 0x37, 0x7c, 0x92, 0xf6, 0xf8, 0x29, 0x39, 0xd7,
+ 0x7e, 0x7f, 0xff, 0xfe, 0xf0, 0x15, 0x19, 0x5d, 0xf5, 0x3a, 0xff, 0xff,
+ 0xe2, 0x9c, 0xeb, 0xbf, 0x9f, 0xff, 0xff, 0x80, 0xc0, 0x94, 0x65, 0x77,
+ 0xd4, 0xef, 0xff, 0xe7, 0xff, 0xeb, 0x9e, 0xb8, 0x56, 0x08, 0x35, 0x6b,
+ 0xbc, 0xed, 0x9e, 0x1f, 0xfa, 0x77, 0xf8, 0x00, 0xb0, 0x4d, 0xea, 0x78,
+ 0xf0, 0xcc, 0x5f, 0x36, 0x05, 0x9a, 0x73, 0x26, 0xeb, 0xff, 0x7d, 0xf6,
+ 0x36, 0xf8, 0x5b, 0xf0, 0x9c, 0x00, 0xc8, 0xbd, 0x5f, 0x3f, 0xfe, 0xc8,
+ 0x31, 0x50, 0x65, 0x8e, 0xa4, 0x0f, 0xd8, 0xde, 0x78, 0x48, 0x75, 0x51,
+ 0x32, 0x7e, 0xf9, 0x7b, 0xc6, 0x0d, 0x55, 0x3d, 0xfe, 0xfe, 0xa2, 0x7f,
+ 0xfe, 0xe4, 0x45, 0x8c, 0x11, 0xc0, 0x03, 0x0b, 0xd5, 0x6f, 0xad, 0x80,
+ 0x06, 0x17, 0xaa, 0xdf, 0x59, 0xc3, 0xfc, 0xac, 0xf7, 0xe0, 0x03, 0x1e,
+ 0x9a, 0x4c, 0x7f, 0xfa, 0x8f, 0xea, 0x8c, 0x3f, 0xbd, 0x00, 0x00, 0x0f,
+ 0xec, 0xc4, 0x45, 0xcb, 0xfc, 0x4b, 0x00, 0x18, 0x5e, 0xb7, 0xd7, 0xf6,
+ 0xa3, 0x7f, 0xdf, 0x49, 0xfd, 0xbf, 0x61, 0xfa, 0xb0, 0x3f, 0x7b, 0x03,
+ 0xef, 0x82, 0xf5, 0x3c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31,
+ 0xcc, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38,
+ 0x00, 0x82, 0x0b, 0xb9, 0xc7, 0x61, 0xe0, 0x09, 0xce, 0x72, 0x94, 0xa5,
+ 0x03, 0xcd, 0xe1, 0x00, 0x02, 0x0a, 0x2e, 0xe7, 0xfc, 0x0e, 0x00, 0x20,
+ 0xa2, 0xee, 0x7f, 0xd4, 0x4d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
+ 0xd7, 0xfd, 0x7f, 0xf8, 0x7c, 0xde, 0x00, 0x1e, 0xcc, 0xa0, 0x9b, 0x91,
+ 0xc9, 0x21, 0x9b, 0xbf, 0xff, 0x10, 0xf0, 0x0f, 0xf8, 0x7b, 0x52, 0xc4,
+ 0x93, 0x55, 0x5c, 0xe7, 0x40, 0x56, 0xcd, 0xf2, 0xb7, 0x3e, 0xff, 0xe0,
+ 0x0e, 0xff, 0xfc, 0x24, 0xa0, 0x01, 0x97, 0xab, 0xa6, 0x36, 0x8e, 0x86,
+ 0xf4, 0x76, 0x71, 0x01, 0xaa, 0x71, 0x2a, 0xf2, 0x10, 0x17, 0x08, 0xbf,
+ 0xee, 0x5f, 0xff, 0xc3, 0xc2, 0x5f, 0xe3, 0xb7, 0xbf, 0x01, 0xfe, 0xba,
+ 0xe3, 0xa2, 0x00, 0x10, 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde,
+ 0x7c, 0x0e, 0x00, 0x20, 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d,
+ 0xcf, 0x88, 0x7f, 0xfe, 0x13, 0x30, 0x00, 0xd3, 0x86, 0xfd, 0xca, 0x08,
+ 0x9c, 0x3d, 0x5e, 0xd3, 0x0c, 0x02, 0x21, 0x4c, 0x4c, 0xcf, 0x00, 0x1c,
+ 0x07, 0x02, 0x31, 0x4c, 0x4c, 0xdd, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7,
+ 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x1f, 0x80, 0x02, 0x32, 0xac,
+ 0xca, 0xcc, 0xaf, 0x32, 0xf8, 0x01, 0x32, 0x70, 0xd4, 0x84, 0x73, 0xfa,
+ 0xbd, 0xff, 0x81, 0xc0, 0x10, 0x87, 0xdc, 0xe3, 0xa5, 0x0f, 0x00, 0x4e,
+ 0x73, 0x94, 0xa5, 0x28, 0x1e, 0x6f, 0x08, 0x00, 0x10, 0x51, 0x77, 0x3f,
+ 0xe0, 0x70, 0x01, 0x05, 0x17, 0x73, 0xfe, 0xa2, 0x6b, 0xae, 0xba, 0xeb,
+ 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8e, 0x88, 0x00,
+ 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39, 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00,
+ 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xf0, 0xff,
+ 0xc4, 0x8a, 0x14, 0x00, 0x70, 0x1c, 0x26, 0x19, 0x49, 0x98, 0x0e, 0x00,
+ 0x13, 0xb9, 0x93, 0x03, 0x80, 0x01, 0x66, 0x02, 0x20, 0xf3, 0xc0, 0x1c,
+ 0x07, 0x09, 0x86, 0x52, 0x67, 0xf8, 0xc3, 0xe1, 0x08, 0xa2, 0x07, 0x00,
+ 0x02, 0x08, 0x19, 0x00, 0x70, 0x00, 0x20, 0x81, 0x90, 0x78, 0x0a, 0x02,
+ 0x42, 0x12, 0xc8, 0x18, 0x2f, 0x77, 0x11, 0x40, 0x49, 0x62, 0xb0, 0x0f,
+ 0x2e, 0x21, 0xc0, 0x49, 0x2c, 0x72, 0x00, 0xf5, 0x71, 0x0e, 0x02, 0x49,
+ 0x62, 0xb0, 0x0f, 0x56, 0x99, 0xf8, 0xc3, 0xfe, 0x14, 0x80, 0x2a, 0x17,
+ 0x92, 0x94, 0x80, 0x3d, 0x45, 0x90, 0x0d, 0x48, 0xe8, 0x5e, 0x4a, 0x53,
+ 0x00, 0xf5, 0x78, 0xe8, 0x5e, 0x4a, 0x52, 0x00, 0xf5, 0x78, 0xe8, 0x5e,
+ 0x4e, 0x53, 0x00, 0xf5, 0x7f, 0xe2, 0x3f, 0x1c, 0x22, 0xa0, 0xe4, 0x03,
+ 0x52, 0x0e, 0x40, 0x35, 0x38, 0x08, 0x63, 0x21, 0x4b, 0x5a, 0xba, 0x0d,
+ 0xa6, 0x32, 0x15, 0xeb, 0x56, 0xe4, 0x16, 0x98, 0xc8, 0x57, 0xad, 0x5b,
+ 0x90, 0x5a, 0x48, 0xc8, 0xe4, 0xad, 0x5d, 0x07, 0xf1, 0x8f, 0xc6, 0x38,
+ 0x51, 0x80, 0x2d, 0x6d, 0x84, 0x42, 0x21, 0xb9, 0xf8, 0x85, 0xb6, 0x11,
+ 0x08, 0x86, 0xe7, 0xd8, 0x7a, 0xdb, 0x08, 0x84, 0xb5, 0xab, 0xc4, 0x2d,
+ 0xb0, 0x88, 0x44, 0x37, 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
+ 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c,
+ 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0,
+ 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x80, 0x7f, 0xe2, 0x48, 0x78, 0x00,
+ 0x38, 0x0e, 0x01, 0x08, 0x71, 0x09, 0x98, 0x1c, 0x08, 0x1c, 0xa4, 0x13,
+ 0xcf, 0x00, 0x02, 0x38, 0x0e, 0x01, 0x08, 0x71, 0x09, 0x9c, 0x03, 0x0f,
+ 0xff, 0x05, 0x82, 0x59, 0xb4, 0x17, 0xc4, 0x00, 0x01, 0x00, 0x00, 0x0b,
+ 0x10, 0x4b, 0x03, 0x90, 0x84, 0xb9, 0x0e, 0x42, 0x12, 0xe4, 0xf0, 0x9e,
+ 0x1f, 0x10, 0xff, 0xe0, 0xb1, 0x32, 0x52, 0x0f, 0x88, 0x00, 0x04, 0xc3,
+ 0xb0, 0x60, 0x00, 0x3c, 0x07, 0xe0, 0x70, 0x4e, 0x3d, 0xcc, 0x38, 0x27,
+ 0x1e, 0xe4, 0x0e, 0x13, 0x09, 0x72, 0x1c, 0x26, 0x12, 0xe4, 0x03, 0x0f,
+ 0xfe, 0x81, 0x63, 0x66, 0xd0, 0x5f, 0x10, 0x00, 0x04, 0x00, 0x00, 0x2c,
+ 0x41, 0x5c, 0x0e, 0x42, 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf,
+ 0x0f, 0xff, 0xfc, 0x16, 0x26, 0x49, 0xa0, 0xbe, 0x18, 0x00, 0x81, 0x59,
+ 0x0c, 0x00, 0x10, 0x1d, 0xdc, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3,
+ 0xdc, 0x81, 0xc0, 0x47, 0x2e, 0xe4, 0x38, 0x08, 0xe5, 0xdc, 0xff, 0xff,
+ 0xa0, 0x58, 0xc1, 0xb6, 0x82, 0xf8, 0x80, 0x00, 0x20, 0x00, 0x01, 0x62,
+ 0x08, 0x5c, 0x0e, 0x42, 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf,
+ 0x0f, 0x88, 0xff, 0xf0, 0x58, 0x81, 0xa1, 0x44, 0x1f, 0x0c, 0x40, 0x00,
+ 0x40, 0x04, 0x09, 0x0c, 0x00, 0x08, 0x09, 0x9c, 0x0e, 0x09, 0xc7, 0xb9,
+ 0x87, 0x04, 0xe3, 0xdc, 0x81, 0xc2, 0x61, 0x2e, 0x43, 0x84, 0xc2, 0x5c,
+ 0xf8, 0xff, 0xf8, 0x2c, 0x89, 0x2a, 0x78, 0x60, 0x00, 0x40, 0x84, 0x82,
+ 0xde, 0x07, 0x21, 0x1a, 0xe6, 0x1c, 0x84, 0x6b, 0x99, 0xe1, 0x9e, 0x09,
+ 0x9e, 0xba, 0xeb, 0xaf, 0xff, 0xfe, 0x70, 0x42, 0x22, 0x00, 0x1e, 0x68,
+ 0x08, 0x4d, 0x66, 0x30, 0xde, 0x66, 0x83, 0x1f, 0xef, 0x50, 0x26, 0xc8,
+ 0x25, 0xb2, 0x95, 0x9e, 0x49, 0xff, 0xf7, 0xfa, 0xd8, 0xa2, 0x59, 0x58,
+ 0xac, 0x00, 0x1e, 0x8d, 0x63, 0x46, 0xd6, 0xd7, 0xe4, 0xff, 0xe5, 0x00,
+ 0x27, 0xd8, 0xe8, 0x6e, 0x05, 0x80, 0x2f, 0x27, 0x91, 0x1a, 0xb8, 0xe6,
+ 0xff, 0xc0, 0x27, 0x72, 0x94, 0x78, 0xe1, 0x59, 0xbe, 0x68, 0xc9, 0x37,
+ 0x90, 0x91, 0x72, 0x4b, 0xff, 0x7f, 0x11, 0xb9, 0x3d, 0xee, 0xff, 0xf6,
+ 0x7f, 0xff, 0xff, 0xf7, 0xef, 0x96, 0xf6, 0x26, 0xdf, 0xfd, 0x83, 0xa0,
+ 0x98, 0x9d, 0x61, 0x7a, 0x2c, 0x7f, 0xfd, 0xf9, 0x20, 0x00, 0x13, 0xb2,
+ 0x64, 0x06, 0x8d, 0xa7, 0x6b, 0x69, 0xbb, 0x5e, 0x28, 0xe7, 0x09, 0x93,
+ 0xff, 0xf7, 0x11, 0xd6, 0x0c, 0xa4, 0x60, 0xef, 0x6f, 0x01, 0x54, 0x69,
+ 0x86, 0xcd, 0xaf, 0x8f, 0xc9, 0xff, 0xe8, 0x2e, 0x07, 0x84, 0xb6, 0xf0,
+ 0x76, 0x3d, 0x2c, 0x0d, 0x28, 0x56, 0xbb, 0xdf, 0xb5, 0x8f, 0xff, 0x78,
+ 0x12, 0x74, 0x68, 0x4e, 0xac, 0xfa, 0xee, 0xc1, 0x88, 0x05, 0x6c, 0x7d,
+ 0x95, 0xba, 0x43, 0xf4, 0x46, 0xf5, 0xe1, 0x9c, 0xd1, 0x34, 0x6e, 0xd5,
+ 0xe0, 0x51, 0xc3, 0x66, 0x57, 0x37, 0x6b, 0x86, 0x1e, 0x7a, 0xeb, 0xcb,
+ 0x5a, 0xab, 0x3f, 0xf0, 0xc2, 0x9c, 0xeb, 0x31, 0xeb, 0x1e, 0x2b, 0xff,
+ 0xde, 0xef, 0xf9, 0x69, 0x12, 0x23, 0x76, 0x94, 0x23, 0x5d, 0x71, 0xd1,
+ 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07,
+ 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8,
+ 0x07, 0xc3, 0xe2, 0xe7, 0x80, 0x01, 0x7c, 0x07, 0x00, 0x20, 0x82, 0x94,
+ 0x4c, 0xcf, 0x00, 0x02, 0xb8, 0x00, 0x32, 0x68, 0xd0, 0x6a, 0x84, 0x1b,
+ 0x9c, 0x69, 0x81, 0xc1, 0xe0, 0x38, 0x00, 0x82, 0x0b, 0x52, 0x5b, 0x1e,
+ 0xa0, 0x08, 0x00, 0x4c, 0x73, 0x98, 0x85, 0x30, 0x1b, 0xd6, 0xdf, 0xf8,
+ 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8f,
+ 0x50, 0x04, 0x00, 0x26, 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc,
+ 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7,
+ 0xa8, 0x02, 0x00, 0x13, 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe,
+ 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3,
+ 0xd4, 0x01, 0x00, 0x09, 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff,
+ 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
+ 0xea, 0x00, 0x80, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
+ 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78,
+ 0xf5, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff,
+ 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc,
+ 0x7a, 0x80, 0x20, 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f,
+ 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e,
+ 0x3b, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff,
+ 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc,
+ 0x76, 0x00, 0x80, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
+ 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78,
+ 0xec, 0x01, 0x00, 0x09, 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff,
+ 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
+ 0xd8, 0x02, 0x00, 0x13, 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe,
+ 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3,
+ 0xb0, 0x04, 0x00, 0x26, 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc,
+ 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7,
+ 0xe0, 0x08, 0x00, 0x4c, 0x73, 0x98, 0xc7, 0x30, 0x1b, 0xd6, 0xdf, 0xff,
+ 0x03, 0x80, 0x08, 0x20, 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1,
+ 0xf8, 0x78, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xfe, 0x18,
+ 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5,
+ 0xe3, 0xf0, 0xf0, 0x04, 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff,
+ 0xff, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b,
+ 0x97, 0x8e, 0xc0, 0x10, 0x00, 0x98, 0xe7, 0x31, 0x8e, 0x60, 0x37, 0xad,
+ 0xbf, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0xe0, 0x70, 0x01, 0x04, 0x17,
+ 0x2f, 0x1d, 0x80, 0x20, 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b,
+ 0x7f, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
+ 0x5e, 0x3b, 0x00, 0x40, 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6,
+ 0xff, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c,
+ 0xbc, 0x75, 0x00, 0x16, 0x00, 0x04, 0xc8, 0x42, 0x94, 0x84, 0x29, 0x43,
+ 0x0f, 0xe0, 0xbe, 0x07, 0x00, 0x43, 0x09, 0xb9, 0xf0, 0x38, 0x02, 0x18,
+ 0x4c, 0xbe, 0x07, 0x00, 0x43, 0x09, 0xb8, 0x07, 0x00, 0x43, 0x09, 0x97,
+ 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe1, 0x09, 0x01, 0x0f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff,
+ 0xfd, 0x7f, 0xff, 0xe6, 0x13, 0xc0, 0x09, 0x7e, 0x72, 0xd7, 0xaf, 0xfc,
+ 0x33, 0x2b, 0xe5, 0x3e, 0x06, 0x81, 0xf8, 0xaf, 0xf2, 0x0c, 0xe3, 0x29,
+ 0x8f, 0xff, 0xff, 0xff, 0x94, 0xbc, 0x32, 0xcb, 0x79, 0xbc, 0x0f, 0xb6,
+ 0x89, 0x83, 0x93, 0xc1, 0x14, 0x5d, 0x15, 0x71, 0x84, 0x00, 0x6f, 0xb5,
+ 0xb5, 0xa8, 0xed, 0x90, 0x4b, 0x0b, 0xd0, 0x56, 0xdb, 0xa4, 0xba, 0x5f,
+ 0x48, 0x33, 0x73, 0x80, 0x02, 0x28, 0xe8, 0x51, 0x3f, 0xee, 0xdb, 0x86,
+ 0xc3, 0x41, 0x9d, 0x57, 0xdd, 0xe8, 0x47, 0x66, 0x4a, 0xf1, 0x3e, 0x24,
+ 0xee, 0x69, 0xb3, 0xfb, 0x4c, 0x3e, 0x13, 0x16, 0x19, 0x7d, 0xdc, 0x00,
+ 0x06, 0x76, 0xf9, 0xfc, 0x22, 0xdc, 0x49, 0x7b, 0x6f, 0x97, 0x98, 0x32,
+ 0xdf, 0x5a, 0xf2, 0xf2, 0xfe, 0x78, 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0x15,
+ 0x22, 0x62, 0x77, 0x55, 0xb3, 0x74, 0x58, 0x0e, 0x21, 0x14, 0x92, 0xc9,
+ 0x65, 0xe0, 0x80, 0x1c, 0xfb, 0x07, 0xc8, 0x40, 0xc6, 0xf8, 0x06, 0x2c,
+ 0x52, 0xa7, 0xea, 0x0d, 0xd0, 0xfb, 0x37, 0xf3, 0xed, 0xaa, 0x59, 0x3f,
+ 0x38, 0x1b, 0xb2, 0xca, 0x17, 0x60, 0xe6, 0x6c, 0xcf, 0xcc, 0x7e, 0x13,
+ 0xe2, 0xfd, 0x1f, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0x32, 0x05, 0x70,
+ 0x2f, 0xf8, 0x48, 0x80, 0x59, 0x2c, 0xed, 0x71, 0x8e, 0x55, 0x0d, 0x6f,
+ 0xef, 0x65, 0x4e, 0xb1, 0x30, 0xdf, 0x69, 0xc7, 0x2e, 0x8f, 0xb5, 0x74,
+ 0xcd, 0x6f, 0xfa, 0x93, 0x4f, 0xd5, 0xae, 0x78, 0x33, 0xf9, 0x7c, 0x77,
+ 0x31, 0x61, 0xf8, 0xbb, 0x9c, 0xde, 0x3b, 0xd9, 0xbe, 0x04, 0x32, 0x2e,
+ 0x38, 0xcc, 0x00, 0x9b, 0xba, 0xbb, 0x77, 0x9f, 0x80, 0x3b, 0x7e, 0x09,
+ 0x78, 0x00, 0x0e, 0x01, 0xdb, 0xf0, 0x4b, 0x90, 0x3b, 0x60, 0x42, 0x7b,
+ 0xef, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x84, 0x24, 0x57,
+ 0xfe, 0x6f, 0xcb, 0x22, 0x97, 0x8c, 0x11, 0x00, 0x42, 0x9b, 0x61, 0x10,
+ 0x50, 0x23, 0xd0, 0x1d, 0xb0, 0x21, 0x3c, 0x07, 0x01, 0xdb, 0xc1, 0x2f,
+ 0x00, 0xed, 0xd0, 0x21, 0x67, 0x8c, 0xf0, 0x1f, 0xa0, 0x3e, 0x7f, 0xd7,
+ 0xbf, 0x18, 0x6a, 0x66, 0x46, 0xdf, 0x3e, 0x2b, 0x00, 0x17, 0x1a, 0xee,
+ 0xdc, 0xa3, 0xf7, 0x3f, 0xfb, 0x4f, 0xb8, 0x0f, 0xff, 0xfb, 0x8f, 0x6f,
+ 0x04, 0xbc, 0x60, 0x5d, 0xa8, 0xc4, 0x75, 0x34, 0x77, 0xcf, 0x75, 0x7c,
+ 0x26, 0xf0, 0x3f, 0x7b, 0x3f, 0x31, 0x7f, 0x58, 0x9e, 0xb8, 0xb6, 0x78,
+ 0x0f, 0xfa, 0xdc, 0x1f, 0x85, 0xf0, 0x05, 0xeb, 0x56, 0x7b, 0x2f, 0x28,
+ 0xe4, 0xd1, 0xe7, 0xff, 0xef, 0xc6, 0x9b, 0xeb, 0xff, 0xc3, 0xe4, 0xc0,
+ 0x2f, 0xa5, 0x01, 0xa8, 0x8b, 0xf8, 0x1f, 0x7f, 0x97, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff,
+ 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0x8e, 0xe3,
+ 0x2d, 0x1f, 0x2f, 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81,
+ 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf,
+ 0xf3, 0x1f, 0x00, 0x1d, 0x98, 0x9b, 0xb9, 0x00, 0xab, 0x15, 0xab, 0xc0,
+ 0x96, 0x15, 0xf1, 0x17, 0xbb, 0x12, 0xac, 0x46, 0x2b, 0xbf, 0xf3, 0x08,
+ 0xc3, 0xb3, 0xfd, 0xff, 0xfb, 0xf7, 0xe1, 0x80, 0xf0, 0x5a, 0x28, 0xbf,
+ 0xc6, 0x21, 0xc6, 0x34, 0xc8, 0xe3, 0xc2, 0x59, 0x10, 0xeb, 0x1b, 0xa5,
+ 0x26, 0x9e, 0x31, 0xef, 0xfe, 0xdc, 0x00, 0x36, 0xde, 0x85, 0x1b, 0xfe,
+ 0xed, 0x98, 0x4c, 0x7a, 0x81, 0x79, 0x26, 0x06, 0x24, 0xf3, 0x28, 0xf5,
+ 0x73, 0xd5, 0xc4, 0xfb, 0xee, 0x18, 0x2a, 0x7d, 0xa5, 0xf8, 0x4c, 0x58,
+ 0x03, 0x3c, 0xc0, 0x70, 0x5a, 0x8e, 0xe7, 0xbf, 0x4a, 0x80, 0xd2, 0xfb,
+ 0xf7, 0xc2, 0x35, 0x67, 0x0d, 0x79, 0x0f, 0xfb, 0xf3, 0xf3, 0xe7, 0x8a,
+ 0xff, 0xfe, 0x18, 0xc7, 0xc0, 0x11, 0x1f, 0x54, 0x8b, 0x36, 0x00, 0x23,
+ 0x6d, 0xbe, 0x49, 0xcf, 0xff, 0x32, 0xcc, 0xae, 0x94, 0xc0, 0xea, 0x3c,
+ 0xc3, 0x47, 0x3c, 0xcb, 0x00, 0x8c, 0xda, 0x69, 0xda, 0xbc, 0xa2, 0x7c,
+ 0x13, 0x48, 0xe1, 0xda, 0x36, 0x90, 0xdf, 0x9e, 0x1f, 0x99, 0x4c, 0xd0,
+ 0x0d, 0x2f, 0x49, 0xf9, 0xdf, 0xff, 0xfe, 0xff, 0xff, 0x86, 0x2a, 0x82,
+ 0x17, 0x1f, 0xf8, 0x49, 0x84, 0xb3, 0x38, 0x48, 0xea, 0x8b, 0xb4, 0x18,
+ 0x62, 0xb9, 0xe9, 0x4f, 0xd5, 0xf8, 0xf0, 0x55, 0x34, 0xb0, 0x25, 0xff,
+ 0x85, 0x2e, 0x29, 0x1b, 0xfd, 0xab, 0x67, 0x6b, 0x4c, 0xcc, 0x86, 0xfb,
+ 0xca, 0x17, 0xff, 0x00, 0x33, 0xd9, 0x63, 0x80, 0x7f, 0xcb, 0x8e, 0x7c,
+ 0xd8, 0xed, 0x86, 0x3e, 0x0c, 0x5e, 0xc5, 0xc6, 0x60, 0x02, 0x30, 0xd7,
+ 0xd5, 0xdf, 0xdf, 0xe0, 0x03, 0x1e, 0x9e, 0x93, 0x7f, 0xf8, 0x2f, 0xe7,
+ 0xc0, 0x0d, 0x8e, 0xde, 0x80, 0x43, 0x8e, 0x1c, 0xc1, 0xeb, 0xae, 0xa4,
+ 0x3f, 0x4f, 0xc1, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2,
+ 0x05, 0x86, 0xbf, 0x0c, 0x7f, 0xff, 0x68, 0x21, 0x34, 0x00, 0x87, 0xac,
+ 0x75, 0x99, 0xcf, 0xcd, 0x07, 0xbb, 0xae, 0xae, 0xff, 0xda, 0x86, 0x2e,
+ 0xc5, 0xe5, 0x2f, 0xc2, 0x70, 0x00, 0xc2, 0xf5, 0x5b, 0xeb, 0x54, 0x51,
+ 0x2a, 0x86, 0x05, 0x5f, 0xd7, 0xa8, 0xaf, 0xdd, 0x53, 0x77, 0xee, 0xc1,
+ 0x83, 0x2f, 0xde, 0xf1, 0x8b, 0xc3, 0x1e, 0xc4, 0x55, 0x61, 0x5d, 0x76,
+ 0xb8, 0x00, 0x61, 0x7a, 0xad, 0xf5, 0x80, 0x2d, 0xf5, 0x81, 0xf5, 0x00,
+ 0x32, 0xc0, 0x7e, 0xc0, 0x05, 0xb6, 0x5a, 0xec, 0xa3, 0x8f, 0xfd, 0x3a,
+ 0x8a, 0xfd, 0xd5, 0x6e, 0xfd, 0xdb, 0xc3, 0xf3, 0x99, 0xcc, 0xdc, 0x7f,
+ 0x81, 0xef, 0xaf, 0xbc, 0x68, 0x63, 0xeb, 0xff, 0xc3, 0xe5, 0x80, 0x5f,
+ 0x4a, 0x03, 0x51, 0x17, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdd, 0xfe, 0x5c, 0x29,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xe2, 0x11, 0x01, 0x6f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xaf, 0xff, 0xef, 0x0a, 0x76, 0x34, 0xb9, 0x45, 0xe1, 0x1b, 0x0e, 0xf7,
+ 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xc4, 0xf2, 0x45, 0x0c,
+ 0x00, 0x51, 0x63, 0x9a, 0x6d, 0xa1, 0x1a, 0xde, 0x3e, 0x39, 0xa2, 0x4f,
+ 0xe5, 0xc4, 0x4b, 0x90, 0xbb, 0x63, 0x04, 0x7e, 0x1f, 0xe5, 0x12, 0x24,
+ 0x1f, 0xf8, 0x1d, 0xb5, 0x03, 0x1e, 0x7a, 0x63, 0x4d, 0xcf, 0x4e, 0x1f,
+ 0x7b, 0x15, 0xff, 0xff, 0xff, 0x37, 0xe2, 0x0d, 0x3a, 0xa5, 0xac, 0x9c,
+ 0x04, 0x74, 0x7a, 0x7e, 0x75, 0x74, 0x09, 0xe0, 0x5e, 0xef, 0xe3, 0x7f,
+ 0x84, 0xce, 0xbe, 0x91, 0xae, 0x45, 0x86, 0xfc, 0x26, 0x54, 0x1c, 0x99,
+ 0x8e, 0xdc, 0x09, 0xa2, 0xc1, 0xbf, 0x93, 0x2a, 0x8f, 0x75, 0x67, 0xff,
+ 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf6, 0xcd, 0x1b, 0xd3, 0x20, 0xc7,
+ 0xa2, 0x85, 0x91, 0xfc, 0xbe, 0x3b, 0xcd, 0xe3, 0xbe, 0x6f, 0xfe, 0x3b,
+ 0xbc, 0x2a, 0x5c, 0x10, 0xef, 0x68, 0x0f, 0xf5, 0x39, 0x16, 0x35, 0x51,
+ 0xea, 0x8a, 0x6f, 0xfb, 0xee, 0xfc, 0x67, 0x80, 0x85, 0x65, 0x30, 0xe0,
+ 0x09, 0x16, 0x28, 0xe6, 0x78, 0x82, 0xf9, 0x1b, 0xf9, 0x7b, 0xf9, 0x1a,
+ 0xc7, 0xf9, 0xb7, 0x72, 0x07, 0x12, 0xff, 0x15, 0xc7, 0xb2, 0xe7, 0x68,
+ 0xf0, 0x50, 0x4a, 0xd0, 0x10, 0x42, 0x75, 0xef, 0xcf, 0xed, 0xfb, 0xf1,
+ 0xb0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88, 0x44, 0x19, 0x64, 0x21,
+ 0xa0, 0x0a, 0xdd, 0xc4, 0xd0, 0x75, 0x7e, 0x6d, 0x3e, 0x91, 0x4f, 0x84,
+ 0xe0, 0x00, 0xe1, 0xeb, 0xb3, 0x78, 0x3f, 0x4a, 0x22, 0x79, 0x3d, 0xf8,
+ 0xc4, 0x0a, 0x01, 0x46, 0x41, 0x1a, 0x04, 0x04, 0x57, 0x23, 0x72, 0x3e,
+ 0xff, 0xef, 0xc6, 0xff, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43,
+ 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff,
+ 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0xc3, 0x60, 0x31, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
+ 0x80, 0x11, 0x15, 0x2d, 0xec, 0xb7, 0xf6, 0xfa, 0xe2, 0xbf, 0xff, 0xff,
+ 0xf8, 0x60, 0x38, 0x42, 0x8a, 0x2e, 0x2d, 0x28, 0xc3, 0x37, 0x0f, 0x28,
+ 0xda, 0x9b, 0xfc, 0x09, 0x38, 0x64, 0x49, 0x80, 0x18, 0xe5, 0x2f, 0x7f,
+ 0x1d, 0x0f, 0xf3, 0x83, 0xc9, 0xbb, 0x48, 0x18, 0xe7, 0x9a, 0x84, 0x02,
+ 0xc6, 0x70, 0x06, 0xe0, 0xcf, 0xe2, 0xef, 0xbf, 0x4c, 0x39, 0x2f, 0xb1,
+ 0x5f, 0xff, 0xc3, 0x1c, 0x7a, 0x83, 0x8c, 0xc1, 0x8a, 0xcd, 0x84, 0xcf,
+ 0xb5, 0x83, 0xab, 0x52, 0xde, 0xc3, 0x35, 0x18, 0x9f, 0x53, 0x94, 0x8c,
+ 0xf5, 0xf0, 0x1d, 0x6a, 0x2d, 0xdd, 0xaa, 0x46, 0xd3, 0xe4, 0xc3, 0x0d,
+ 0x0f, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c, 0x5a, 0x9b, 0x7f, 0xe1, 0x23,
+ 0xc0, 0x63, 0xd1, 0x3f, 0xe0, 0x34, 0x63, 0x26, 0xab, 0x50, 0xb7, 0x89,
+ 0x13, 0x8f, 0xe7, 0xcb, 0x8e, 0xcd, 0xac, 0x62, 0xf5, 0xe8, 0x1c, 0x4c,
+ 0xe0, 0x12, 0x3d, 0xf0, 0x7f, 0xfc, 0x80, 0x10, 0xa8, 0xf9, 0x18, 0x1d,
+ 0xfa, 0x83, 0x86, 0x3e, 0x0e, 0x2f, 0xfe, 0x25, 0x70, 0x09, 0xbe, 0x51,
+ 0xa3, 0x28, 0x08, 0x7d, 0xef, 0xca, 0xdc, 0x18, 0x27, 0x79, 0x8b, 0x23,
+ 0xc7, 0xde, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa3, 0x0d, 0x81,
+ 0x09, 0x78, 0x63, 0x4f, 0x74, 0x21, 0x37, 0x22, 0xd8, 0xac, 0x04, 0x6d,
+ 0xd1, 0xf8, 0xab, 0xf0, 0x43, 0xbd, 0xa4, 0xc2, 0x7a, 0x83, 0xa3, 0x5f,
+ 0x69, 0xdf, 0xd0, 0xd9, 0x28, 0x60, 0x74, 0x3c, 0x8c, 0xd8, 0x07, 0x1b,
+ 0x67, 0xfa, 0x07, 0x00, 0x81, 0x94, 0x12, 0xf9, 0x79, 0xb3, 0x3b, 0xd5,
+ 0x07, 0xff, 0xca, 0xbb, 0xe6, 0x79, 0x37, 0x8c, 0x0c, 0x53, 0x3a, 0xa7,
+ 0xcf, 0x85, 0x16, 0x78, 0xef, 0xf7, 0xf7, 0x8e, 0xf9, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe,
+ 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xe3, 0x19, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98,
+ 0x4f, 0x0d, 0xe5, 0xb1, 0x32, 0xf0, 0x13, 0xfa, 0xfa, 0xc7, 0xe2, 0x31,
+ 0x5f, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x4f, 0x19, 0x14, 0x60, 0x24,
+ 0x19, 0xc9, 0x35, 0x46, 0xab, 0x7c, 0x13, 0x36, 0x94, 0x09, 0x1b, 0xdf,
+ 0xf4, 0xb5, 0x80, 0xdd, 0x18, 0xdb, 0xb7, 0xff, 0x27, 0x89, 0x88, 0x88,
+ 0x96, 0x39, 0x32, 0x17, 0x1a, 0x39, 0xd4, 0x56, 0x6d, 0xd7, 0x82, 0x2d,
+ 0xaf, 0x7b, 0x3a, 0x44, 0x1a, 0x8e, 0x44, 0xdd, 0x6c, 0x02, 0x56, 0x51,
+ 0x3f, 0x3f, 0x2f, 0xfc, 0xc9, 0x0f, 0xb5, 0xff, 0x09, 0x9c, 0x74, 0x52,
+ 0xf4, 0x70, 0x8f, 0x04, 0x67, 0x71, 0x5f, 0xff, 0xfe, 0x6f, 0xc6, 0x86,
+ 0x03, 0x66, 0xd9, 0xb8, 0x13, 0x17, 0xa9, 0x9f, 0x82, 0x16, 0xf6, 0xd9,
+ 0x62, 0xa2, 0xb9, 0x21, 0xfc, 0x39, 0x09, 0xeb, 0xde, 0xd0, 0xf4, 0x66,
+ 0x6c, 0x38, 0x03, 0x10, 0x4d, 0x3b, 0x7e, 0x04, 0xd7, 0xd3, 0x3b, 0x5a,
+ 0x9e, 0xe4, 0x22, 0xde, 0x45, 0xb3, 0xa5, 0xa6, 0x31, 0x34, 0xc4, 0x1c,
+ 0xf0, 0x0e, 0x6f, 0xd9, 0xe9, 0x85, 0x09, 0x93, 0xff, 0xff, 0xff, 0xfd,
+ 0xff, 0xff, 0xf9, 0x9b, 0xb4, 0x8b, 0xfe, 0x12, 0x38, 0x24, 0xab, 0x59,
+ 0xdc, 0x03, 0xde, 0x6b, 0xd3, 0xc4, 0xe3, 0x29, 0xf5, 0x5f, 0xc8, 0x20,
+ 0x9c, 0x50, 0x89, 0xa7, 0xa2, 0x27, 0xf4, 0xe9, 0xfe, 0xf3, 0xf9, 0x7c,
+ 0x77, 0x31, 0x60, 0x07, 0x5a, 0x50, 0xa1, 0xd3, 0xe5, 0x3c, 0x00, 0x09,
+ 0xe6, 0xff, 0x11, 0x00, 0x5f, 0x0a, 0xf8, 0x81, 0x89, 0x35, 0xfe, 0x12,
+ 0xfd, 0xae, 0x6f, 0xfe, 0x3a, 0x8c, 0x2b, 0xd4, 0x34, 0x15, 0x03, 0x59,
+ 0x66, 0xbe, 0x03, 0x24, 0x6a, 0xa4, 0xf5, 0xe3, 0x21, 0xd8, 0xa7, 0x01,
+ 0xec, 0x81, 0x26, 0x41, 0xec, 0x81, 0x26, 0x42, 0x0b, 0x58, 0x12, 0xc4,
+ 0xcd, 0x60, 0x42, 0x22, 0x58, 0x1f, 0x00, 0xf1, 0xe2, 0x27, 0xe6, 0x1e,
+ 0x2f, 0xff, 0xc2, 0x42, 0x02, 0x5f, 0xb5, 0xa8, 0x68, 0xf2, 0xa0, 0x6b,
+ 0x22, 0x3f, 0x95, 0x75, 0xf7, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0x8c, 0x64, 0x0a, 0x41, 0x49, 0x00, 0x02, 0x2b, 0x77, 0x77, 0x5d,
+ 0xf0, 0x44, 0xc3, 0x69, 0xbf, 0xff, 0xcb, 0xef, 0xc6, 0x7f, 0xdf, 0xfd,
+ 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf,
+ 0xff, 0x37, 0xfd, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60,
+ 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
+ 0xd7, 0xe2, 0xbf, 0xff, 0xff, 0xd7, 0xac, 0x52, 0x2a, 0x14, 0x80, 0x71,
+ 0x97, 0x94, 0x3c, 0x0c, 0x88, 0x4c, 0x57, 0x18, 0x75, 0x51, 0x85, 0x68,
+ 0xad, 0x9c, 0x36, 0xf9, 0x0c, 0x20, 0x7e, 0xdf, 0xe1, 0x31, 0x61, 0x20,
+ 0xe5, 0x38, 0x71, 0x80, 0x6b, 0x41, 0x75, 0x7d, 0x3c, 0x09, 0x5d, 0x9e,
+ 0xe2, 0xbf, 0xfd, 0x7c, 0x59, 0xb1, 0xa3, 0x70, 0x20, 0xd4, 0x7b, 0x74,
+ 0x14, 0x13, 0x71, 0xed, 0xd4, 0x50, 0xff, 0xff, 0xf7, 0xff, 0xeb, 0xd0,
+ 0x88, 0x82, 0x8b, 0x80, 0x4e, 0x81, 0x41, 0xf8, 0x87, 0x3a, 0xeb, 0x43,
+ 0x3e, 0xe3, 0xc3, 0x30, 0x6a, 0x8a, 0x12, 0xea, 0x86, 0xf5, 0xc0, 0xcd,
+ 0xbf, 0xe5, 0xe7, 0xcb, 0x8e, 0x5e, 0xbd, 0x72, 0x6b, 0x18, 0x18, 0xf8,
+ 0x47, 0xe9, 0x08, 0x51, 0xf0, 0x32, 0x54, 0xb6, 0x61, 0xf9, 0x39, 0x86,
+ 0x30, 0x0d, 0xdc, 0x03, 0xf8, 0x49, 0xf8, 0x44, 0xdb, 0x5f, 0x78, 0x26,
+ 0xc1, 0x00, 0xdc, 0x8b, 0xc0, 0x91, 0xd5, 0x3c, 0x22, 0x65, 0x2f, 0xff,
+ 0xf8, 0x26, 0xa0, 0x01, 0x17, 0x9d, 0xdc, 0xfb, 0xfc, 0x04, 0x6d, 0x64,
+ 0x1d, 0x7f, 0xfd, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa4,
+ 0x15, 0x81, 0x88, 0x13, 0x48, 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x82,
+ 0x26, 0x36, 0x9b, 0xff, 0xf2, 0xef, 0x19, 0xf7, 0xf7, 0x8d, 0xff, 0xe4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43,
+ 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd, 0x7f, 0x9b, 0xea, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
+ 0xff, 0xef, 0x11, 0x16, 0x27, 0x08, 0xd8, 0x75, 0xff, 0xd4, 0x26, 0x67,
+ 0xfa, 0x3e, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x31, 0x47, 0x03,
+ 0x6e, 0x35, 0x60, 0x1f, 0xa0, 0x1b, 0x2a, 0x19, 0x74, 0xb9, 0x8c, 0x0a,
+ 0x63, 0x27, 0x8c, 0xaa, 0x36, 0x48, 0xcd, 0xb5, 0xab, 0xfc, 0x55, 0xc8,
+ 0x08, 0xe9, 0xe0, 0x0e, 0x09, 0xca, 0x44, 0xb4, 0xe7, 0xee, 0xdf, 0x81,
+ 0xb4, 0xdb, 0x10, 0x07, 0x48, 0xba, 0x1b, 0xf5, 0x1f, 0x04, 0x2e, 0x9f,
+ 0xf4, 0x3d, 0x84, 0xb1, 0x62, 0x02, 0xaa, 0x67, 0x56, 0x20, 0x14, 0x09,
+ 0x17, 0xe9, 0x3e, 0x66, 0x1d, 0xd3, 0x0c, 0xa4, 0x20, 0x6b, 0xe5, 0xe1,
+ 0x3c, 0x8b, 0x12, 0x32, 0x22, 0xed, 0x78, 0xaf, 0xff, 0xff, 0xe6, 0x10,
+ 0xe1, 0xa8, 0x8a, 0x94, 0x20, 0x1e, 0x6c, 0x3a, 0xd9, 0xf4, 0x06, 0xd9,
+ 0x78, 0x02, 0xde, 0x11, 0x6b, 0x4c, 0xea, 0xe5, 0xc0, 0x6b, 0xd3, 0x69,
+ 0x07, 0x7b, 0xe6, 0x94, 0xcb, 0xd7, 0x6d, 0x7a, 0xfd, 0xbe, 0x1c, 0xf7,
+ 0x51, 0x93, 0xff, 0xc9, 0x30, 0xc9, 0x9f, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xff, 0xf8, 0x82, 0x8e, 0x0d, 0x3d, 0xb8, 0xc8, 0x27, 0x5e, 0xaa, 0xc1,
+ 0xbf, 0x98, 0x88, 0x03, 0xc3, 0xfc, 0x24, 0x45, 0x79, 0x8c, 0x0e, 0xfa,
+ 0x85, 0xf4, 0x10, 0xf1, 0xb2, 0x1b, 0xf8, 0xba, 0xc8, 0x51, 0xd2, 0x6e,
+ 0x37, 0x1f, 0xf3, 0x9a, 0x59, 0x54, 0x1a, 0xda, 0xf6, 0x58, 0x04, 0x8c,
+ 0xeb, 0x0f, 0xc3, 0xa5, 0x80, 0x2d, 0x88, 0x0f, 0xc2, 0x9e, 0xf8, 0x1f,
+ 0xeb, 0xf2, 0x6d, 0x70, 0x1d, 0x27, 0x84, 0xac, 0x15, 0x67, 0xcf, 0xc0,
+ 0x4f, 0xba, 0x3b, 0xc4, 0x5f, 0x9b, 0xfc, 0xe6, 0x7f, 0x04, 0x0f, 0xa0,
+ 0x70, 0x44, 0xd2, 0xde, 0x19, 0x1b, 0x60, 0x7e, 0x16, 0x4f, 0x1c, 0x6f,
+ 0xb4, 0x3f, 0x94, 0x28, 0xa3, 0xa2, 0x76, 0x21, 0x7a, 0x4a, 0xb4, 0xdb,
+ 0x6a, 0xf1, 0x31, 0x33, 0x34, 0xf5, 0x89, 0xff, 0xc3, 0xe2, 0x00, 0x1f,
+ 0xae, 0x60, 0x4b, 0xb7, 0xc0, 0x1f, 0xa5, 0x67, 0xb1, 0x37, 0xf9, 0x9c,
+ 0xf5, 0xc2, 0xa8, 0x09, 0x9f, 0xc0, 0xd7, 0x79, 0xfe, 0x04, 0x4d, 0xe0,
+ 0x7e, 0xf6, 0x77, 0x10, 0x60, 0xbb, 0xf1, 0xde, 0xcc, 0x3c, 0xc3, 0xff,
+ 0x87, 0xcb, 0x81, 0x3a, 0x4c, 0x48, 0x6e, 0xbf, 0x7e, 0x36, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0x90, 0x84, 0x11, 0x7f, 0xcb, 0xef, 0xc6, 0x7f,
+ 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0x08,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47, 0x60, 0x39, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
+ 0x8e, 0x34, 0x84, 0x8f, 0x4e, 0x56, 0x86, 0x62, 0x62, 0xbf, 0xff, 0xff,
+ 0xdf, 0xc5, 0x04, 0x8d, 0x38, 0xb7, 0x08, 0x00, 0xc8, 0x99, 0x98, 0x2e,
+ 0x0c, 0x93, 0x75, 0x80, 0xbd, 0x43, 0x64, 0xc4, 0xa3, 0xfa, 0xd3, 0xbf,
+ 0x86, 0x30, 0xf8, 0x5f, 0xf0, 0x40, 0x2c, 0xcd, 0xfe, 0x7f, 0x5d, 0xf1,
+ 0x54, 0xae, 0xa6, 0xf1, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0xd4, 0x3f, 0xb2,
+ 0x70, 0x26, 0xbe, 0x99, 0xf4, 0x38, 0x65, 0xd6, 0x98, 0xd4, 0x85, 0x34,
+ 0xbd, 0xf8, 0xfc, 0xa4, 0xcf, 0x9f, 0xff, 0xfe, 0xff, 0xfd, 0xfb, 0x13,
+ 0x11, 0x80, 0x1d, 0x58, 0xb4, 0xdd, 0x41, 0xf8, 0xd2, 0x8f, 0x68, 0xf3,
+ 0xfb, 0x0e, 0x5f, 0xe7, 0x59, 0x5e, 0x0b, 0x93, 0x3e, 0x5d, 0x72, 0x63,
+ 0x83, 0x1f, 0x68, 0x7f, 0x28, 0x51, 0xf0, 0xcc, 0x99, 0xe3, 0xbc, 0x31,
+ 0x58, 0x2a, 0xd7, 0xfe, 0x12, 0x65, 0xb1, 0xb1, 0x85, 0xf0, 0x05, 0xe1,
+ 0x8c, 0x4f, 0xc4, 0x75, 0x50, 0xc1, 0x3a, 0xc2, 0x06, 0x80, 0x50, 0x90,
+ 0x26, 0x17, 0x0c, 0x7c, 0x3d, 0x57, 0xe0, 0x81, 0x6c, 0x04, 0x60, 0x6b,
+ 0xd6, 0x33, 0x61, 0x88, 0xea, 0xff, 0xfc, 0x3e, 0x53, 0x83, 0x42, 0x7c,
+ 0x54, 0xcf, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5, 0x1d,
+ 0x81, 0x8b, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1b, 0xff, 0xc9, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xf0, 0x87, 0xff, 0xff,
+ 0xf3, 0x7f, 0x97, 0xff, 0xff, 0xfa, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xe5, 0x29, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09,
+ 0xd9, 0x04, 0xac, 0x2f, 0x45, 0xe1, 0x59, 0xbc, 0x00, 0xae, 0x6b, 0x77,
+ 0xab, 0xf9, 0x3c, 0x4c, 0x57, 0xff, 0xfe, 0x60, 0x86, 0x1d, 0x9f, 0xef,
+ 0xff, 0x94, 0xbc, 0x3d, 0x0d, 0xcb, 0xff, 0xf1, 0x48, 0x8d, 0xc8, 0x50,
+ 0xd3, 0xdd, 0xc0, 0x6f, 0xe9, 0xad, 0x01, 0xf7, 0x0b, 0xe6, 0x30, 0x6b,
+ 0x58, 0x1e, 0x31, 0xc2, 0xc8, 0x02, 0xac, 0xbd, 0x19, 0xd9, 0xff, 0xc6,
+ 0xe9, 0xda, 0x40, 0x57, 0xcf, 0xe1, 0x1f, 0x0f, 0xe6, 0x8f, 0x01, 0xc8,
+ 0x85, 0xa6, 0x3c, 0x00, 0xe5, 0x36, 0xf8, 0x87, 0x37, 0x7a, 0x3a, 0xa3,
+ 0x23, 0x47, 0xbc, 0xe1, 0xd1, 0xf8, 0xb0, 0xff, 0x9d, 0xff, 0x1e, 0x42,
+ 0x11, 0x32, 0xc7, 0x40, 0xc2, 0x2b, 0x8b, 0x96, 0x0e, 0x42, 0x11, 0x12,
+ 0xd4, 0x02, 0xc2, 0x02, 0xc6, 0x24, 0x5f, 0xc1, 0xac, 0x66, 0x2a, 0x72,
+ 0x1d, 0x88, 0x6e, 0xd7, 0xca, 0x13, 0xc0, 0x84, 0x21, 0xd1, 0x02, 0x37,
+ 0x9f, 0xf1, 0x5f, 0xff, 0xff, 0xc6, 0x08, 0xe1, 0x23, 0xbf, 0x67, 0x0e,
+ 0xfb, 0x40, 0x12, 0xbd, 0xd8, 0x7e, 0xf7, 0xa7, 0x02, 0x3f, 0xfc, 0xfe,
+ 0x2f, 0x24, 0x53, 0xdf, 0x01, 0xe3, 0x6c, 0x32, 0xc9, 0xa2, 0xcc, 0xcd,
+ 0xfa, 0xec, 0xd0, 0xf6, 0x5f, 0xe0, 0x01, 0x9b, 0x6d, 0xf2, 0x9b, 0x9c,
+ 0x6c, 0x9a, 0x34, 0xab, 0xcf, 0xe0, 0x06, 0x64, 0x8e, 0x5c, 0x87, 0xd7,
+ 0x60, 0xad, 0xb8, 0x71, 0x30, 0xe9, 0x12, 0x63, 0x9d, 0x46, 0x03, 0x72,
+ 0x26, 0x7f, 0x20, 0x88, 0xdb, 0x37, 0xff, 0xe4, 0x50, 0x42, 0x68, 0x03,
+ 0x23, 0x0a, 0x3b, 0xa0, 0xf8, 0x01, 0xc8, 0x3f, 0x0e, 0xc2, 0x03, 0x37,
+ 0xef, 0x79, 0x45, 0x29, 0x64, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7, 0xbf,
+ 0x20, 0x03, 0xef, 0x0d, 0xa6, 0x60, 0x3f, 0x8a, 0x77, 0x48, 0x3b, 0xcd,
+ 0x34, 0x03, 0x18, 0x35, 0xcc, 0x0b, 0x21, 0xe0, 0x3f, 0x09, 0xff, 0xf0,
+ 0x8f, 0x16, 0xfa, 0x40, 0x74, 0x6b, 0xb8, 0xf9, 0xe9, 0xf5, 0xff, 0x7f,
+ 0xff, 0xff, 0xc4, 0x31, 0xa1, 0x05, 0xbe, 0x60, 0xe5, 0x36, 0xfa, 0xa0,
+ 0x02, 0x39, 0xa3, 0xe1, 0xff, 0x84, 0x88, 0x02, 0xe9, 0xa0, 0x31, 0x1b,
+ 0x15, 0xa8, 0x63, 0x3c, 0x01, 0x14, 0xd0, 0x18, 0x8d, 0x75, 0x6a, 0x00,
+ 0x3b, 0x4d, 0x01, 0x88, 0xd7, 0x06, 0xda, 0xbc, 0x39, 0xcd, 0x2b, 0x48,
+ 0xa4, 0x4d, 0xf8, 0x92, 0xc3, 0x90, 0x7e, 0x18, 0x41, 0xfe, 0x03, 0xfc,
+ 0x76, 0xe7, 0xff, 0x80, 0x28, 0xf5, 0x3c, 0xf9, 0x20, 0xeb, 0xbb, 0xf9,
+ 0xfc, 0x29, 0x28, 0x00, 0x8a, 0xdd, 0xdd, 0xdf, 0xff, 0xdf, 0x84, 0xbd,
+ 0x93, 0x13, 0xa1, 0x7d, 0x5e, 0xff, 0xfc, 0xc1, 0x4f, 0xa6, 0x9f, 0x09,
+ 0x9b, 0xe0, 0x14, 0x76, 0xf0, 0x3e, 0xa0, 0x78, 0x5e, 0x7d, 0x5c, 0x7f,
+ 0xf1, 0xfe, 0x00, 0x40, 0xc9, 0xbb, 0x97, 0xe7, 0x9f, 0x8e, 0x5f, 0x47,
+ 0x8b, 0xcd, 0x48, 0xe9, 0xf4, 0xa6, 0x28, 0x65, 0x1f, 0x60, 0xb6, 0x1f,
+ 0xc0, 0x8d, 0xd4, 0x7e, 0xa5, 0xe5, 0x5a, 0xf8, 0xf9, 0xe3, 0xcc, 0x8c,
+ 0xe7, 0x53, 0xde, 0xfc, 0x77, 0x14, 0x7b, 0x1c, 0xcc, 0x41, 0x47, 0x01,
+ 0x06, 0x43, 0x78, 0x0b, 0x40, 0x61, 0x4b, 0x00, 0x08, 0xad, 0xdd, 0xdd,
+ 0x77, 0xf8, 0x01, 0x21, 0xda, 0xa5, 0x7c, 0x9b, 0xd5, 0xef, 0xff, 0x84,
+ 0x20, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x94, 0xa4, 0x15, 0x7f, 0x89,
+ 0x36, 0x11, 0x71, 0xf5, 0xd8, 0x49, 0xfa, 0x42, 0xfb, 0x3f, 0xc0, 0x4c,
+ 0xd5, 0x81, 0xff, 0xee, 0xcb, 0xef, 0xc6, 0x71, 0x0b, 0x4d, 0x81, 0xdf,
+ 0x3f, 0x82, 0x3f, 0x81, 0xed, 0x69, 0xb3, 0x3b, 0xd7, 0x95, 0x99, 0xd8,
+ 0xd8, 0x44, 0x3f, 0xfb, 0xf1, 0xbf, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff,
+ 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x89, 0x60, 0x29, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xd1, 0x65, 0x13, 0x82,
+ 0x3d, 0x8e, 0x2e, 0xb8, 0xaf, 0xfb, 0xff, 0xff, 0x7e, 0xb1, 0x42, 0x00,
+ 0x0c, 0x8a, 0x97, 0x37, 0x9f, 0xeb, 0x2b, 0x2f, 0xc0, 0x85, 0x1d, 0xa3,
+ 0x48, 0x7b, 0xff, 0x40, 0x0c, 0xe7, 0xc5, 0x2b, 0xaf, 0xf7, 0x95, 0x38,
+ 0xfd, 0x20, 0xa7, 0x4d, 0xdc, 0xda, 0x90, 0x61, 0x8c, 0x3f, 0xbf, 0xe1,
+ 0x33, 0x8c, 0x40, 0x12, 0x08, 0x8c, 0x3a, 0x22, 0x97, 0xbb, 0xdd, 0xef,
+ 0x56, 0x03, 0x1e, 0xe1, 0x56, 0xfd, 0x51, 0x5f, 0xfe, 0xfd, 0x63, 0x3c,
+ 0x08, 0x9b, 0xdc, 0x77, 0x93, 0xeb, 0x80, 0x36, 0x63, 0x42, 0x74, 0x1d,
+ 0x4c, 0xdf, 0xbc, 0xcd, 0x1e, 0x0e, 0x31, 0x4b, 0x2a, 0xcf, 0x14, 0x4b,
+ 0xd8, 0x10, 0xfe, 0x58, 0xc1, 0xc0, 0x93, 0x37, 0x9f, 0x49, 0x6d, 0x6d,
+ 0x1c, 0x31, 0xff, 0xf9, 0x14, 0x10, 0x96, 0x00, 0x2b, 0x4d, 0xda, 0x23,
+ 0x32, 0x3f, 0x7c, 0xcc, 0x03, 0xf5, 0x94, 0x9f, 0x00, 0x55, 0xa6, 0x83,
+ 0x39, 0xf3, 0xc7, 0xff, 0xfb, 0xff, 0xf7, 0xe4, 0xe0, 0x7c, 0x10, 0x80,
+ 0x81, 0xe9, 0x78, 0xee, 0x7e, 0x68, 0x8e, 0x33, 0xc0, 0xcb, 0xee, 0xec,
+ 0xfe, 0x2e, 0x00, 0xd6, 0x90, 0x96, 0xf6, 0x9b, 0x03, 0x37, 0xef, 0x19,
+ 0x11, 0x19, 0x31, 0xc6, 0xe4, 0x49, 0x3f, 0x3c, 0xe1, 0x89, 0x5a, 0x19,
+ 0x13, 0x7e, 0x13, 0x2d, 0x14, 0x20, 0x70, 0x7e, 0x18, 0x11, 0x7c, 0xf0,
+ 0xbf, 0xc3, 0x00, 0x93, 0xd3, 0x0c, 0xc0, 0x0e, 0x09, 0xfe, 0x02, 0x2d,
+ 0xfa, 0xff, 0x03, 0xc0, 0x30, 0x8f, 0x87, 0x76, 0xf8, 0x03, 0xaf, 0x6e,
+ 0x3d, 0x2a, 0xef, 0x1d, 0xa0, 0xd4, 0x4e, 0x18, 0x49, 0xa4, 0x39, 0xe1,
+ 0x3c, 0x58, 0xc0, 0x44, 0xf8, 0xff, 0x07, 0xe1, 0xb8, 0xb7, 0x7f, 0x81,
+ 0x3f, 0xe3, 0xd2, 0xf7, 0x8e, 0x7d, 0x92, 0x23, 0x20, 0x9f, 0x01, 0x06,
+ 0xa8, 0x0f, 0xf1, 0x7d, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xa6, 0x25, 0x82, 0x2e, 0xf9, 0x77, 0x8c, 0x7f, 0xbf, 0xbc, 0x6f, 0xf9,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xfe, 0x10,
+ 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xe6, 0x31, 0x01, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xb2, 0xfe,
+ 0x27, 0xb2, 0x44, 0x4c, 0x27, 0x00, 0x8f, 0x23, 0xd2, 0x68, 0xf1, 0x7f,
+ 0xff, 0xff, 0xff, 0xf1, 0x42, 0x20, 0x47, 0xed, 0x26, 0xfc, 0x22, 0xe4,
+ 0x29, 0x05, 0xbc, 0x51, 0x09, 0x8c, 0xf0, 0xe0, 0x40, 0x08, 0xa7, 0xd3,
+ 0x0d, 0x70, 0xaa, 0xee, 0xf6, 0xe6, 0xb5, 0xdb, 0x91, 0x31, 0xcf, 0xc8,
+ 0xe3, 0xda, 0xe7, 0x90, 0x5b, 0xc4, 0x0c, 0xa0, 0xf7, 0xfe, 0x4f, 0xe5,
+ 0x11, 0x88, 0x14, 0xc0, 0x2f, 0xb6, 0x83, 0xcd, 0x3d, 0xa9, 0x2b, 0x0f,
+ 0x48, 0x68, 0x98, 0x3e, 0x84, 0x89, 0x81, 0xb6, 0xa2, 0x6b, 0x29, 0xc9,
+ 0x23, 0x01, 0xf2, 0x70, 0xf7, 0x4c, 0x93, 0xca, 0x34, 0x40, 0x91, 0x01,
+ 0x01, 0x02, 0x06, 0x11, 0x17, 0x7e, 0x2e, 0x39, 0xa7, 0x7d, 0x44, 0x7a,
+ 0x0f, 0x0a, 0x5f, 0x44, 0xb0, 0x36, 0xec, 0xb5, 0x69, 0x8c, 0x5f, 0x4f,
+ 0x9b, 0x5c, 0x6f, 0xd2, 0x30, 0x35, 0x4c, 0xf2, 0xad, 0xe3, 0xbd, 0x4d,
+ 0x3d, 0xf6, 0xe6, 0x9f, 0xa6, 0xe6, 0xfa, 0x89, 0x13, 0x28, 0xb0, 0x07,
+ 0xde, 0xdc, 0xbf, 0x1f, 0x5f, 0xff, 0xc6, 0x16, 0xfa, 0xaf, 0x3f, 0x78,
+ 0xaf, 0xff, 0xff, 0xf9, 0xbf, 0xae, 0xd7, 0x75, 0x58, 0xc3, 0x60, 0x3a,
+ 0x43, 0x49, 0x6e, 0x08, 0x40, 0x1a, 0x20, 0x11, 0x60, 0x23, 0x36, 0x9f,
+ 0xa8, 0x03, 0xa5, 0xe7, 0xe5, 0x7a, 0x8c, 0xd6, 0x5a, 0xda, 0x93, 0xfd,
+ 0xe0, 0xe4, 0x30, 0x43, 0xe1, 0x3e, 0x1b, 0x0b, 0x98, 0x5c, 0x6e, 0xf0,
+ 0xff, 0x84, 0x90, 0xc9, 0x62, 0xfc, 0xf0, 0x60, 0x2c, 0x83, 0xcc, 0x2b,
+ 0x15, 0x16, 0x1f, 0x6f, 0x13, 0xc0, 0x21, 0x37, 0x68, 0xbf, 0x5f, 0x16,
+ 0xee, 0x51, 0xb9, 0x9e, 0x9e, 0x95, 0x82, 0x03, 0xfc, 0x23, 0x39, 0xe1,
+ 0x7f, 0xff, 0xff, 0xe6, 0x08, 0x2e, 0xe3, 0xff, 0x09, 0x23, 0x2f, 0xd2,
+ 0x1a, 0x64, 0xf7, 0x99, 0x15, 0x3e, 0x93, 0xe6, 0x5e, 0x2a, 0x8b, 0xb3,
+ 0xd4, 0x53, 0xda, 0x3d, 0x9f, 0xe2, 0x23, 0x73, 0xc4, 0x68, 0x08, 0x30,
+ 0x84, 0x4e, 0x86, 0x2e, 0xd4, 0x27, 0x2a, 0xda, 0xd6, 0x7c, 0x0c, 0x49,
+ 0xa6, 0x6b, 0xc7, 0x7b, 0x83, 0x18, 0xac, 0x01, 0xdd, 0xe6, 0x30, 0xf6,
+ 0xaf, 0x25, 0xf4, 0x22, 0x3e, 0x62, 0x41, 0xd5, 0x6d, 0x2e, 0xd2, 0xd6,
+ 0x60, 0xc2, 0xdb, 0x20, 0x4c, 0x83, 0x6c, 0x34, 0x90, 0xfb, 0xd7, 0xaf,
+ 0x19, 0xed, 0x7c, 0x21, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4,
+ 0x0a, 0x5e, 0x27, 0xc6, 0x7f, 0xdf, 0xfc, 0x23, 0xff, 0x2f, 0x84, 0xfc,
+ 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff,
+ 0xcb, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xa9, 0xcb, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0xc5, 0xe1, 0xad, 0x4e, 0xfd, 0x09,
+ 0xf3, 0x70, 0x9b, 0xee, 0xd3, 0x21, 0x56, 0x95, 0x1c, 0xa5, 0x2e, 0x6b,
+ 0x97, 0x15, 0xff, 0xff, 0xbc, 0x82, 0x2a, 0x12, 0x7d, 0xe2, 0x68, 0xf0,
+ 0x4f, 0x8e, 0x83, 0xbb, 0x46, 0xdc, 0x76, 0xb4, 0x3e, 0xd4, 0xbe, 0xf1,
+ 0x4d, 0x01, 0x27, 0x23, 0x27, 0x82, 0x81, 0xae, 0xb8, 0x95, 0x0c, 0x1a,
+ 0x05, 0x9e, 0x0c, 0xce, 0x48, 0xa6, 0x36, 0x40, 0x13, 0x36, 0xda, 0x03,
+ 0xcb, 0xec, 0x0c, 0xa6, 0x00, 0xa0, 0xea, 0xc3, 0xd2, 0x38, 0x6d, 0xc8,
+ 0x86, 0xe9, 0xe4, 0x47, 0x80, 0x2d, 0x4b, 0xdf, 0x6a, 0x15, 0x8e, 0xef,
+ 0x25, 0xc0, 0x8e, 0xbd, 0x9a, 0x95, 0xa9, 0x54, 0xb4, 0x30, 0x90, 0xfb,
+ 0x5f, 0xf0, 0x99, 0xe6, 0x0d, 0x29, 0xc6, 0xbe, 0x9c, 0xb6, 0x42, 0xa9,
+ 0xfc, 0x57, 0xff, 0xf0, 0xc6, 0x3e, 0x00, 0x88, 0x3a, 0xa4, 0x59, 0x30,
+ 0x11, 0xb5, 0xdd, 0xf4, 0x21, 0x9b, 0x51, 0xec, 0xe4, 0xc2, 0xa3, 0x20,
+ 0x91, 0xf7, 0x50, 0x89, 0xb8, 0x3d, 0x3b, 0x72, 0x33, 0x63, 0xa9, 0xbf,
+ 0x3e, 0x57, 0x60, 0x0b, 0xe8, 0x67, 0xe1, 0x8f, 0xde, 0xff, 0xe2, 0x4f,
+ 0xc0, 0xb0, 0x34, 0x82, 0x84, 0x12, 0x00, 0xd4, 0x90, 0x8b, 0xc6, 0xc1,
+ 0x0b, 0xfe, 0x18, 0x71, 0xdd, 0xff, 0xf8, 0x79, 0x92, 0x25, 0x92, 0x56,
+ 0xed, 0xfa, 0xeb, 0x7f, 0xff, 0xc3, 0x15, 0x41, 0x06, 0x72, 0xff, 0x84,
+ 0x8c, 0x35, 0x52, 0x6d, 0x3f, 0x3e, 0xf6, 0xac, 0x38, 0xb4, 0xd4, 0x4c,
+ 0x63, 0x21, 0xf3, 0x34, 0x63, 0xab, 0x75, 0x37, 0xba, 0x93, 0xfe, 0x01,
+ 0xcf, 0xc3, 0x51, 0x78, 0x6b, 0xd7, 0x58, 0xe5, 0x56, 0x19, 0xf5, 0xd6,
+ 0x3b, 0x86, 0x3f, 0x87, 0xfc, 0x28, 0x22, 0x01, 0x57, 0x46, 0x11, 0x76,
+ 0x78, 0x3e, 0x02, 0x3f, 0x71, 0xb5, 0x34, 0x31, 0x14, 0x9d, 0xb0, 0x49,
+ 0xd9, 0x2c, 0x91, 0x92, 0x94, 0x9b, 0xe7, 0x1b, 0x61, 0xf5, 0xb6, 0x3d,
+ 0x63, 0x1a, 0xf6, 0xb0, 0xc4, 0x52, 0x44, 0x1a, 0x1d, 0x3d, 0xc3, 0x36,
+ 0xdf, 0x5b, 0x75, 0x42, 0x38, 0x15, 0x21, 0x96, 0xed, 0x28, 0xb5, 0x86,
+ 0x23, 0xac, 0xd0, 0xa7, 0x0b, 0x35, 0xb0, 0x48, 0xf6, 0x1e, 0x46, 0x78,
+ 0x6b, 0x6b, 0x0b, 0x46, 0x42, 0xf6, 0xd7, 0xdf, 0x52, 0x34, 0x82, 0x98,
+ 0xa2, 0x80, 0xef, 0x5e, 0xf8, 0x63, 0x48, 0x9c, 0xe5, 0x38, 0x4a, 0xe0,
+ 0x6c, 0xd4, 0xb1, 0xa3, 0xe3, 0xd0, 0x36, 0x5a, 0xe1, 0x5b, 0x5d, 0x07,
+ 0x80, 0xc6, 0x8e, 0x1d, 0x7d, 0x85, 0x29, 0x69, 0x96, 0x84, 0x63, 0x23,
+ 0xd3, 0x43, 0x18, 0x53, 0xd2, 0x4d, 0x3d, 0xb8, 0x30, 0x04, 0x88, 0x3c,
+ 0x81, 0xa0, 0xef, 0xe1, 0xbd, 0x2f, 0x1a, 0x98, 0x24, 0xce, 0x56, 0x90,
+ 0xf1, 0xd0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x81, 0x0b,
+ 0xc8, 0x68, 0x08, 0xd4, 0x5a, 0x0e, 0x7f, 0x11, 0x32, 0x42, 0x49, 0x61,
+ 0xf2, 0x12, 0x4b, 0x7d, 0x8d, 0x4f, 0xfe, 0xd8, 0x11, 0xee, 0x98, 0x3e,
+ 0x42, 0x49, 0x6f, 0xf1, 0x04, 0x06, 0x00, 0x99, 0x01, 0x1b, 0xd8, 0x09,
+ 0x51, 0xca, 0x23, 0xf0, 0xb0, 0x04, 0xd4, 0x52, 0x4a, 0x5b, 0xc8, 0xcd,
+ 0x32, 0xaf, 0x10, 0x58, 0x09, 0x45, 0x2d, 0x3f, 0x3e, 0xb8, 0xd6, 0x3f,
+ 0x93, 0x19, 0xf7, 0xf6, 0x18, 0xfa, 0xb7, 0xd8, 0x00, 0x6c, 0x50, 0xa3,
+ 0x80, 0xf2, 0x12, 0x26, 0x60, 0x06, 0x36, 0x96, 0x63, 0x67, 0xda, 0x18,
+ 0xed, 0xca, 0x0d, 0x94, 0xd2, 0x13, 0xd3, 0x03, 0x4a, 0xa7, 0xa1, 0x1c,
+ 0xf5, 0xc0, 0xc9, 0x8f, 0x1c, 0x07, 0x90, 0x91, 0x33, 0x0c, 0x58, 0x7e,
+ 0xdb, 0x1d, 0x50, 0xb4, 0x83, 0x90, 0xe9, 0x0d, 0x33, 0x0c, 0x61, 0xab,
+ 0x7d, 0x82, 0x31, 0x90, 0x03, 0x1b, 0x4b, 0x31, 0xb3, 0xed, 0x0c, 0x76,
+ 0xe5, 0x06, 0xca, 0x69, 0x09, 0xe9, 0x81, 0xa5, 0x53, 0xd0, 0x8e, 0x7a,
+ 0xe0, 0x64, 0xc0, 0x43, 0xee, 0xb6, 0xf2, 0xf2, 0x98, 0x62, 0xc3, 0xf6,
+ 0xd8, 0xea, 0x85, 0xa4, 0x1c, 0x87, 0x48, 0x69, 0x98, 0x63, 0x0d, 0x5b,
+ 0xec, 0x11, 0x8c, 0x80, 0x18, 0xda, 0x59, 0x8d, 0x9f, 0x68, 0x63, 0xb7,
+ 0x28, 0x36, 0x53, 0x48, 0x4f, 0x4c, 0x0d, 0x2a, 0x9e, 0x84, 0x73, 0xd7,
+ 0x03, 0x26, 0x02, 0x1f, 0x75, 0xb7, 0x97, 0x94, 0xc3, 0x16, 0x1f, 0xb6,
+ 0xc7, 0x54, 0x2d, 0x20, 0xe4, 0x3a, 0x43, 0x4c, 0xc3, 0x18, 0x6a, 0xc5,
+ 0xcd, 0xa0, 0x91, 0x90, 0x08, 0xa9, 0xb0, 0xc8, 0x3a, 0x18, 0xdf, 0xf9,
+ 0x4e, 0xfe, 0x20, 0x0a, 0x4e, 0x83, 0x88, 0xd8, 0x00, 0xc9, 0x6d, 0xd8,
+ 0x08, 0x7d, 0xd6, 0xde, 0x5e, 0x52, 0x04, 0xdb, 0xed, 0xf0, 0xeb, 0x70,
+ 0xfd, 0xcf, 0x85, 0xd2, 0x20, 0x79, 0x00, 0x26, 0x21, 0xce, 0x1e, 0xe9,
+ 0x0c, 0x61, 0xab, 0x16, 0x96, 0xd2, 0x32, 0x01, 0x15, 0x36, 0x19, 0x07,
+ 0x43, 0x1b, 0xff, 0x29, 0xdf, 0xc4, 0x01, 0x49, 0xd0, 0x71, 0x1b, 0x00,
+ 0x19, 0x2d, 0xbb, 0x71, 0x75, 0x2c, 0xf4, 0x11, 0xeb, 0xf6, 0xf8, 0x75,
+ 0xb8, 0x7e, 0xe7, 0xc2, 0xe9, 0x10, 0x38, 0x80, 0x13, 0x10, 0xe7, 0x0f,
+ 0x74, 0x86, 0x30, 0xd5, 0x8b, 0x4b, 0x69, 0x19, 0x00, 0x8a, 0x9b, 0x0c,
+ 0x83, 0xa1, 0x8d, 0xff, 0x94, 0xef, 0xe2, 0x00, 0xa4, 0xe8, 0x38, 0x8d,
+ 0x80, 0x0c, 0x96, 0xdd, 0xb8, 0xba, 0x96, 0x7a, 0x08, 0xf5, 0xfb, 0x7c,
+ 0x3a, 0xdc, 0x3f, 0x73, 0xe1, 0x74, 0x88, 0x1c, 0x40, 0x09, 0x88, 0x73,
+ 0x87, 0xba, 0x43, 0x18, 0x6a, 0xc7, 0xa5, 0x93, 0x8c, 0x80, 0x45, 0x4d,
+ 0x86, 0x41, 0xd0, 0xc6, 0xff, 0xca, 0x77, 0xf1, 0x00, 0x52, 0x74, 0x1c,
+ 0x26, 0x00, 0x01, 0xce, 0xf0, 0xe2, 0xea, 0x59, 0xe8, 0x23, 0xd7, 0xed,
+ 0xf0, 0xab, 0x70, 0xfd, 0x91, 0xf8, 0xf2, 0xb6, 0x9a, 0x1e, 0x90, 0x16,
+ 0x27, 0xbe, 0xd3, 0xe5, 0x0c, 0x7d, 0x4c, 0xc2, 0x96, 0x4e, 0x32, 0x01,
+ 0x15, 0x36, 0x19, 0x07, 0x43, 0x1b, 0xff, 0x29, 0xdf, 0x96, 0x00, 0x22,
+ 0x31, 0x40, 0x00, 0x1c, 0xef, 0x0e, 0x04, 0xfb, 0xb6, 0x83, 0x9a, 0xca,
+ 0xdd, 0x1e, 0x00, 0x66, 0x73, 0x3d, 0x42, 0x3b, 0x39, 0x5b, 0x4d, 0x0f,
+ 0x64, 0xda, 0x7b, 0x1f, 0xe1, 0x84, 0x7e, 0xed, 0x2e, 0xa1, 0x8f, 0xa9,
+ 0x98, 0x52, 0xc9, 0xc6, 0x40, 0x22, 0xa6, 0xc3, 0x20, 0xe8, 0x63, 0x7f,
+ 0xe5, 0x3b, 0xf2, 0xc0, 0x04, 0x46, 0x28, 0x00, 0x03, 0x9d, 0xe1, 0xe3,
+ 0xef, 0x39, 0xfc, 0x35, 0x95, 0xba, 0x3c, 0x00, 0xcc, 0xe6, 0x7a, 0x84,
+ 0x76, 0x72, 0xb6, 0x9a, 0x1e, 0xc9, 0xb4, 0xf6, 0x3f, 0xc3, 0x08, 0xfd,
+ 0xda, 0x5d, 0x43, 0x1f, 0x53, 0x30, 0xa5, 0x93, 0x8c, 0x80, 0x45, 0x4d,
+ 0x86, 0x41, 0xd0, 0xc6, 0xff, 0xca, 0x77, 0xe5, 0x80, 0x08, 0x8c, 0x50,
+ 0x00, 0x07, 0x3b, 0xc3, 0xc7, 0xde, 0x73, 0xf8, 0x6b, 0x2b, 0x74, 0x78,
+ 0x01, 0x99, 0xcc, 0xf5, 0x08, 0xec, 0xe5, 0x6d, 0x34, 0x3d, 0x93, 0x69,
+ 0xec, 0x7f, 0x86, 0x11, 0xfb, 0xb4, 0xba, 0x86, 0x3e, 0x6a, 0x81, 0x40,
+ 0x68, 0x63, 0x20, 0x06, 0x73, 0x76, 0x63, 0x32, 0x9d, 0x1c, 0x5a, 0x4f,
+ 0xe4, 0x58, 0x00, 0x88, 0xc1, 0x82, 0x7d, 0x33, 0x37, 0xbc, 0x7d, 0xe7,
+ 0x3f, 0x83, 0x2a, 0xac, 0xcb, 0x7c, 0x00, 0x60, 0x6f, 0xa1, 0x47, 0x72,
+ 0x51, 0xfb, 0x25, 0x54, 0x51, 0xea, 0x69, 0xf2, 0x98, 0xf0, 0xff, 0x16,
+ 0x18, 0xf9, 0xaa, 0x05, 0x2d, 0xef, 0xfe, 0xe0, 0x06, 0x73, 0x76, 0x63,
+ 0x32, 0x9d, 0x1c, 0x5a, 0x4f, 0xe4, 0x58, 0x00, 0x88, 0xc1, 0x82, 0x7d,
+ 0x33, 0x37, 0xbe, 0x0b, 0x3b, 0x6a, 0xc8, 0x03, 0x2a, 0xaf, 0x34, 0x40,
+ 0x03, 0x03, 0x7d, 0x0a, 0x3b, 0x92, 0x8f, 0xd9, 0x2a, 0xa2, 0x8f, 0x53,
+ 0x4f, 0x94, 0xc7, 0x87, 0xf8, 0xb0, 0xc7, 0xcd, 0x50, 0x29, 0x6f, 0x7f,
+ 0xf7, 0x00, 0x33, 0x9b, 0xb3, 0x19, 0x94, 0xe8, 0xe2, 0xd2, 0x7f, 0x22,
+ 0xc0, 0x04, 0x46, 0x0c, 0x13, 0xe9, 0x99, 0xbd, 0xf0, 0x59, 0xdb, 0x56,
+ 0x40, 0x19, 0x55, 0x79, 0xa2, 0x00, 0x18, 0x1b, 0xe8, 0x51, 0xdc, 0x94,
+ 0x7e, 0xc9, 0x55, 0x14, 0x7a, 0x9a, 0x7c, 0xa6, 0x3c, 0x3f, 0xc5, 0x86,
+ 0x3c, 0x04, 0x90, 0x29, 0x14, 0x60, 0xbf, 0xfb, 0x80, 0x33, 0x9a, 0xcc,
+ 0xea, 0xb2, 0x1a, 0xf1, 0x23, 0xd5, 0x82, 0x00, 0xcf, 0xc5, 0xf3, 0x42,
+ 0x9c, 0x90, 0x7e, 0xfe, 0x0b, 0x3b, 0x6a, 0xc8, 0x0e, 0x90, 0xd1, 0x30,
+ 0x84, 0x0b, 0x20, 0x28, 0xed, 0x64, 0x05, 0xaa, 0xa7, 0xaa, 0x02, 0xb4,
+ 0xe0, 0xa1, 0x81, 0x51, 0x15, 0x51, 0x60, 0xe2, 0x8c, 0x17, 0xca, 0x5d,
+ 0x53, 0xf8, 0x26, 0x59, 0x0c, 0xc1, 0x3d, 0x24, 0x08, 0x40, 0x06, 0xcb,
+ 0x36, 0xd4, 0x00, 0x06, 0x13, 0xff, 0xe0, 0x21, 0xf7, 0x6d, 0xf1, 0xe9,
+ 0x0d, 0x13, 0x08, 0x40, 0xb2, 0x01, 0xc7, 0xda, 0xe0, 0x29, 0xaa, 0x6f,
+ 0x6d, 0x40, 0x5d, 0xd0, 0x10, 0xa1, 0x8c, 0x66, 0x04, 0x81, 0xc5, 0x18,
+ 0x2f, 0x8e, 0xf9, 0xb9, 0x81, 0x23, 0x79, 0x91, 0x35, 0x71, 0x0a, 0x0a,
+ 0x4c, 0x20, 0x0c, 0xcb, 0x69, 0x33, 0x55, 0xea, 0xa7, 0xbf, 0x80, 0x87,
+ 0xdd, 0xb7, 0xc7, 0xa4, 0x34, 0x4c, 0x21, 0x02, 0x88, 0x0a, 0x3e, 0xd1,
+ 0x01, 0x6d, 0x64, 0x7e, 0xa0, 0x2b, 0xa7, 0x05, 0x0c, 0x0f, 0x9b, 0x20,
+ 0x71, 0x06, 0xdc, 0xb1, 0xfe, 0x00, 0x64, 0xce, 0x63, 0x71, 0x1b, 0x98,
+ 0xcc, 0xde, 0x90, 0x7e, 0x7e, 0xa0, 0x00, 0x33, 0x3e, 0xea, 0x6f, 0x9d,
+ 0x60, 0x69, 0x47, 0xc0, 0x43, 0xee, 0xdb, 0xe3, 0xd2, 0x1a, 0x26, 0x10,
+ 0x81, 0x64, 0x03, 0x24, 0xe4, 0x5e, 0x22, 0xaf, 0x5b, 0xdb, 0x50, 0x17,
+ 0x74, 0x0e, 0x18, 0xc3, 0x32, 0x4f, 0xdb, 0x19, 0x00, 0x32, 0x67, 0x31,
+ 0xb8, 0x8d, 0xcc, 0x66, 0x6f, 0x48, 0x3f, 0x3f, 0x46, 0x89, 0xb3, 0x01,
+ 0x52, 0x6f, 0x96, 0xb0, 0x34, 0xa3, 0xc0, 0x23, 0xd7, 0xdb, 0x4b, 0x75,
+ 0x25, 0xc4, 0x03, 0x24, 0xc8, 0xbf, 0x11, 0x53, 0x81, 0x29, 0xf1, 0xec,
+ 0x65, 0x4c, 0x31, 0xf3, 0x24, 0xfd, 0xb1, 0x90, 0x03, 0x26, 0x73, 0x1b,
+ 0x88, 0xdc, 0xc6, 0x66, 0xf4, 0x83, 0xf3, 0xf4, 0x68, 0x9b, 0x30, 0x15,
+ 0x26, 0xf9, 0x6b, 0x03, 0x4a, 0x3c, 0x04, 0x7a, 0xfd, 0xbf, 0xca, 0x99,
+ 0xd9, 0x48, 0xc9, 0x32, 0x2f, 0xc4, 0x54, 0xe0, 0x4a, 0x7c, 0x7b, 0x04,
+ 0x28, 0x63, 0xee, 0x49, 0xf4, 0x62, 0x8c, 0x80, 0x19, 0x33, 0x98, 0xdc,
+ 0x46, 0xe6, 0x33, 0x4c, 0x2b, 0xca, 0x1f, 0x97, 0x46, 0x04, 0x7e, 0xe7,
+ 0x0a, 0xd9, 0xff, 0x9a, 0x60, 0x69, 0xf1, 0xe0, 0x23, 0xd7, 0xed, 0xfe,
+ 0x54, 0xc8, 0x31, 0x0a, 0x9b, 0xb6, 0x20, 0xef, 0x3f, 0x80, 0x4a, 0x7a,
+ 0x3d, 0x90, 0x15, 0xe9, 0x98, 0x62, 0xd0, 0x64, 0xf8, 0x90, 0x96, 0x26,
+ 0x40, 0x2b, 0x93, 0x20, 0x8a, 0xec, 0xf6, 0x03, 0x1f, 0xec, 0x13, 0x5e,
+ 0x72, 0x8d, 0x5e, 0x9f, 0x32, 0x3d, 0x43, 0xdc, 0x49, 0xf7, 0x69, 0xde,
+ 0x67, 0x7f, 0x10, 0x00, 0x7b, 0x06, 0x5f, 0xda, 0x3e, 0xb6, 0x01, 0x9d,
+ 0x25, 0x58, 0xaf, 0x39, 0xfc, 0x00, 0xfb, 0xbc, 0x7a, 0x18, 0x46, 0xd9,
+ 0x31, 0xa0, 0x90, 0xf1, 0x36, 0x86, 0xd6, 0xbd, 0x60, 0xf5, 0x72, 0x7d,
+ 0x0f, 0x70, 0xff, 0x0e, 0x21, 0xab, 0x72, 0x54, 0x47, 0xa8, 0x7b, 0x89,
+ 0x3e, 0xed, 0x3b, 0xcc, 0xef, 0xe5, 0x80, 0x0e, 0x60, 0xcb, 0xfb, 0x8f,
+ 0xad, 0x80, 0x1d, 0x6a, 0x68, 0x7b, 0xd3, 0xf8, 0x01, 0xf7, 0x2c, 0x7a,
+ 0x18, 0x46, 0xd9, 0x31, 0xa0, 0x90, 0xf1, 0x38, 0x0d, 0xa1, 0xfd, 0xfa,
+ 0x3d, 0x5c, 0x9f, 0x43, 0xdc, 0x3f, 0xc3, 0x88, 0x6a, 0xdc, 0x95, 0x11,
+ 0xea, 0x1e, 0xe2, 0x4f, 0xbb, 0x4e, 0xf3, 0x3b, 0xf9, 0x60, 0x03, 0x98,
+ 0x32, 0xfe, 0xe3, 0xeb, 0x60, 0x07, 0x5a, 0x9a, 0x1e, 0xf4, 0xfe, 0x00,
+ 0x7d, 0xcb, 0x1e, 0x86, 0x10, 0x2c, 0xc0, 0x02, 0x20, 0x92, 0xf1, 0x38,
+ 0x0d, 0xa1, 0xfd, 0xfa, 0x3d, 0xb9, 0x32, 0x1e, 0xe1, 0xfe, 0x1d, 0xbb,
+ 0x7e, 0xbb, 0xc1, 0x9f, 0x8f, 0x73, 0x1e, 0x67, 0x79, 0x26, 0xd3, 0xaf,
+ 0xcb, 0x00, 0x1c, 0xc0, 0xcb, 0x89, 0xbe, 0x13, 0xdf, 0x68, 0x03, 0xad,
+ 0x4d, 0x0f, 0x7a, 0x7f, 0x5e, 0x54, 0x7a, 0x18, 0xec, 0xc1, 0x14, 0x04,
+ 0x6f, 0x89, 0x88, 0xcf, 0xe9, 0x2a, 0x2e, 0xa6, 0x4c, 0x7b, 0xb8, 0xfa,
+ 0xda, 0x36, 0xf1, 0xeb, 0xa1, 0x9d, 0xc7, 0xb9, 0x8f, 0x33, 0xbc, 0x8d,
+ 0x76, 0xf1, 0xa4, 0xf8, 0xb3, 0x93, 0xa7, 0xb8, 0x9b, 0xe1, 0x3d, 0xf6,
+ 0x89, 0x77, 0x64, 0xaa, 0x95, 0xad, 0x0f, 0xdb, 0x9d, 0xf6, 0xd0, 0xc7,
+ 0x66, 0x08, 0xa0, 0x23, 0x7c, 0x4c, 0x46, 0x7f, 0x24, 0xa8, 0xba, 0x99,
+ 0x31, 0xee, 0xe3, 0xeb, 0x68, 0xdb, 0xc7, 0xae, 0x86, 0x77, 0x1e, 0xe6,
+ 0x3c, 0xce, 0xf2, 0x35, 0xdb, 0xc6, 0x93, 0xe1, 0x53, 0x93, 0xa7, 0xb8,
+ 0x9b, 0xe1, 0x3d, 0xf6, 0x8b, 0x7f, 0x22, 0xac, 0xad, 0x68, 0x7e, 0xdc,
+ 0xef, 0xb6, 0x86, 0x3b, 0x36, 0xe8, 0x08, 0xd8, 0xe2, 0x62, 0x33, 0xf9,
+ 0x25, 0x45, 0xd4, 0xc9, 0x8f, 0x77, 0x1f, 0x5b, 0x46, 0xde, 0x3d, 0x74,
+ 0x32, 0xf8, 0xf7, 0xab, 0x12, 0x35, 0xdb, 0xc6, 0x93, 0xe1, 0x53, 0x93,
+ 0xa7, 0xb8, 0x9b, 0xe1, 0x3d, 0xf6, 0x8b, 0x7f, 0x22, 0xac, 0xad, 0x68,
+ 0x7e, 0xdc, 0xef, 0xb6, 0x86, 0x3b, 0x6c, 0x08, 0xc8, 0xc1, 0x1d, 0xdb,
+ 0x7d, 0xcb, 0xde, 0xc0, 0xac, 0xe4, 0x03, 0x69, 0xec, 0xec, 0xa9, 0x9f,
+ 0xf0, 0x18, 0x27, 0xd2, 0x9f, 0x23, 0x52, 0xc7, 0x00, 0x54, 0x14, 0x7c,
+ 0xd1, 0x01, 0x6d, 0x61, 0x99, 0x37, 0xe4, 0xf8, 0x3d, 0xbf, 0xe1, 0x8e,
+ 0xdb, 0x02, 0x32, 0x30, 0x47, 0x78, 0xbe, 0xc7, 0xf9, 0xb0, 0x5d, 0x94,
+ 0x8d, 0xa7, 0xb3, 0xb2, 0xa6, 0x7f, 0xc0, 0x60, 0x9f, 0x4a, 0x7c, 0x8d,
+ 0x4b, 0x1c, 0x01, 0x50, 0x51, 0xf6, 0x90, 0x16, 0xd6, 0x19, 0x93, 0x7e,
+ 0x4f, 0x83, 0xdb, 0xfe, 0x18, 0xed, 0xb2, 0x23, 0x23, 0x4b, 0x89, 0xc5,
+ 0xf6, 0x3f, 0xcd, 0x82, 0xec, 0xa4, 0x6d, 0x3d, 0x9d, 0x95, 0x33, 0xfd,
+ 0x84, 0x03, 0x04, 0xfa, 0x53, 0xe4, 0x6a, 0x58, 0xe0, 0x0a, 0x82, 0x8f,
+ 0xb4, 0x80, 0xb6, 0xb0, 0xcc, 0x9b, 0xf2, 0x7c, 0x1e, 0x86, 0x31, 0xec,
+ 0x88, 0xc0, 0xd1, 0xe2, 0x7b, 0xf8, 0x7b, 0x63, 0xfc, 0x38, 0x74, 0x09,
+ 0x10, 0x62, 0x41, 0xab, 0x03, 0xda, 0xd3, 0x1f, 0x1a, 0x10, 0x2e, 0x72,
+ 0x80, 0x54, 0x0d, 0xbb, 0x8d, 0x53, 0x80, 0x48, 0x3a, 0x4d, 0xb9, 0x7d,
+ 0x77, 0xf6, 0xe2, 0x02, 0x9a, 0x90, 0xc6, 0x3d, 0x91, 0x18, 0x1a, 0x3c,
+ 0x4f, 0x45, 0xda, 0xf6, 0xd2, 0xf6, 0x07, 0x40, 0x91, 0x06, 0xaa, 0x75,
+ 0x60, 0x7b, 0x5a, 0x63, 0xe3, 0x42, 0x05, 0xce, 0x50, 0x0a, 0x81, 0xb7,
+ 0x71, 0xaa, 0x70, 0x06, 0x41, 0xd2, 0x6e, 0x76, 0xf9, 0xdf, 0xdb, 0x88,
+ 0x0a, 0x6a, 0x43, 0x18, 0xf6, 0x44, 0x60, 0x68, 0xf1, 0x3d, 0x17, 0x6b,
+ 0xdb, 0x4b, 0xd8, 0x1d, 0x02, 0x44, 0x1a, 0xa9, 0xd5, 0x81, 0xed, 0x69,
+ 0x8f, 0x8d, 0x08, 0x17, 0x39, 0x40, 0x2a, 0x06, 0xdd, 0xc6, 0xa9, 0xc0,
+ 0x19, 0x07, 0x49, 0xb9, 0xdb, 0xe7, 0x7f, 0x6e, 0x20, 0x29, 0xa9, 0x0c,
+ 0x63, 0xa3, 0x51, 0x81, 0xbe, 0x27, 0xa2, 0xe0, 0x2d, 0x97, 0x7a, 0x8f,
+ 0x07, 0x40, 0x91, 0x07, 0x33, 0xbc, 0xce, 0xe8, 0xd7, 0x9e, 0xfc, 0x83,
+ 0xee, 0xc0, 0xb9, 0xca, 0x01, 0x50, 0x31, 0xce, 0xa7, 0x3e, 0x40, 0x32,
+ 0x0e, 0x93, 0x73, 0xb7, 0xc8, 0x5f, 0x08, 0x8c, 0x86, 0x34, 0xc5, 0x90,
+ 0x0d, 0x18, 0x07, 0x89, 0x97, 0x94, 0x80, 0xb6, 0x5d, 0xf4, 0x7a, 0x03,
+ 0x68, 0x7f, 0x7e, 0x82, 0xaf, 0xbc, 0xce, 0xe4, 0x24, 0x34, 0xcf, 0x98,
+ 0xff, 0x58, 0x63, 0xe5, 0x35, 0xed, 0xf7, 0xe9, 0x60, 0x02, 0x66, 0x03,
+ 0x2e, 0xc7, 0xac, 0xce, 0xfb, 0x61, 0x7f, 0x88, 0xab, 0x21, 0x8d, 0x31,
+ 0x64, 0x03, 0x46, 0x0f, 0x13, 0x2f, 0x29, 0x01, 0x6c, 0xbb, 0xd4, 0x7a,
+ 0x03, 0x68, 0x7f, 0x7e, 0x86, 0xde, 0x6e, 0xdf, 0x72, 0x12, 0x1a, 0x67,
+ 0xc8, 0x3e, 0xec, 0x31, 0xf2, 0xb5, 0x89, 0xef, 0xff, 0x2c, 0x00, 0x4c,
+ 0xc0, 0x64, 0xf8, 0xf5, 0x99, 0xd5, 0xb0, 0xff, 0x11, 0x12, 0x18, 0xd3,
+ 0x46, 0x09, 0xa3, 0x00, 0x71, 0x3d, 0x14, 0x80, 0xb6, 0x5d, 0xea, 0x3d,
+ 0x01, 0xb4, 0x3f, 0xbf, 0x43, 0x5f, 0x79, 0x9d, 0xc4, 0x39, 0xc3, 0xdd,
+ 0x39, 0x8f, 0x33, 0xb8, 0x63, 0xe5, 0x35, 0xed, 0xf7, 0xe9, 0x60, 0x02,
+ 0x66, 0x03, 0x2e, 0xc7, 0xac, 0xce, 0xfb, 0x61, 0x7f, 0x88, 0xab, 0x21,
+ 0x84, 0x6e, 0x9c, 0x51, 0x80, 0x03, 0x13, 0x1f, 0x52, 0x4f, 0x88, 0xc5,
+ 0x18, 0x17, 0x3d, 0x11, 0x9f, 0xd2, 0x55, 0x17, 0x70, 0xff, 0x0c, 0xd9,
+ 0xaa, 0x6f, 0x41, 0xcd, 0x0f, 0x74, 0x0e, 0x63, 0xcc, 0xee, 0x63, 0xdd,
+ 0xc7, 0xd6, 0xc2, 0x00, 0x0e, 0x62, 0x88, 0xb1, 0xcb, 0x4a, 0x6e, 0x48,
+ 0x7b, 0xd4, 0x30, 0x8d, 0xd3, 0x8a, 0x30, 0x00, 0x62, 0x62, 0xea, 0x59,
+ 0xe9, 0xb9, 0x48, 0xe0, 0x28, 0x74, 0x11, 0x9f, 0xd2, 0x54, 0xdd, 0xdc,
+ 0x3f, 0xc3, 0x36, 0x69, 0x4d, 0xe9, 0x37, 0x0f, 0x70, 0x19, 0x11, 0xe6,
+ 0x77, 0x31, 0xee, 0xe3, 0xeb, 0x61, 0x00, 0x07, 0x31, 0x44, 0x16, 0x39,
+ 0x69, 0x4d, 0xc9, 0x0f, 0x7a, 0x86, 0x11, 0xba, 0x33, 0xc5, 0x1b, 0x8d,
+ 0xc1, 0x2a, 0x59, 0xea, 0x32, 0x93, 0x02, 0xe3, 0x68, 0x8c, 0xfe, 0x49,
+ 0x54, 0x5d, 0xc3, 0xfc, 0x34, 0x4d, 0x26, 0xf6, 0x6f, 0x8e, 0xfa, 0xfc,
+ 0xc7, 0xbb, 0x8f, 0xad, 0x84, 0x00, 0x1c, 0xc5, 0x10, 0x58, 0xe5, 0xa5,
+ 0x37, 0x24, 0x3d, 0xea, 0x03, 0xa4, 0x34, 0x4c, 0xff, 0x67, 0xbe, 0xb7,
+ 0x3a, 0xe1, 0xd1, 0xc2, 0x48, 0x92, 0xaf, 0x03, 0xfd, 0x94, 0x06, 0x7e,
+ 0x6b, 0x9c, 0x9c, 0xab, 0x91, 0x62, 0x46, 0x44, 0x5d, 0xa0, 0xff, 0x70,
+ 0x19, 0xf9, 0xae, 0x72, 0x72, 0xae, 0x45, 0x89, 0x19, 0x11, 0x76, 0x83,
+ 0xfd, 0xc0, 0x67, 0xe6, 0xb9, 0xc9, 0xca, 0xb9, 0x16, 0x24, 0x64, 0x45,
+ 0xda, 0x0f, 0xf6, 0x80, 0x41, 0xb8, 0xc8, 0x99, 0x2e, 0xd5, 0x7a, 0xb2,
+ 0x22, 0x44, 0xbb, 0x5f, 0xfb, 0x80, 0x83, 0x71, 0x91, 0x32, 0x5d, 0xaa,
+ 0xf5, 0x64, 0x44, 0x89, 0x76, 0xbf, 0xf7, 0x01, 0x06, 0xe3, 0x22, 0x64,
+ 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32,
+ 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86,
+ 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee,
+ 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7,
+ 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12,
+ 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88,
+ 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea,
+ 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32, 0x26, 0x4b, 0xb5,
+ 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86, 0xe3, 0x22, 0x64,
+ 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xee, 0x18, 0x6e, 0x32,
+ 0x26, 0x4b, 0xb5, 0x5e, 0xac, 0x88, 0x91, 0x2e, 0xd7, 0xfe, 0xe1, 0x86,
+ 0xe3, 0x22, 0x64, 0xbb, 0x55, 0xea, 0xc8, 0x89, 0x12, 0xed, 0x7f, 0xed,
+ 0x80, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5d, 0x8d, 0x25, 0x4a, 0x4a,
+ 0x78, 0x7b, 0x80, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5d, 0x8d, 0x25,
+ 0x4a, 0x4a, 0x78, 0x7b, 0x20, 0x11, 0x09, 0xa2, 0x6a, 0xbc, 0xac, 0x69,
+ 0x55, 0x1d, 0xbf, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf,
+ 0xff, 0xff, 0xc6, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01,
+ 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x5f, 0xff, 0xfd, 0x73, 0x09, 0xe1, 0x0e, 0xda, 0xff, 0xfb, 0xc4,
+ 0xcd, 0xc0, 0x43, 0xb7, 0x1f, 0x4c, 0x0f, 0xaf, 0xbf, 0x48, 0x1d, 0x58,
+ 0x92, 0x94, 0xbb, 0x6b, 0x7c, 0xb1, 0xd9, 0x78, 0xaf, 0xff, 0xff, 0xff,
+ 0xf9, 0x06, 0x52, 0x4e, 0x4f, 0xf1, 0x34, 0x78, 0x27, 0x78, 0x38, 0x3c,
+ 0x87, 0xee, 0x56, 0x84, 0xdb, 0xb3, 0xbc, 0xf9, 0x04, 0xef, 0xe3, 0xfc,
+ 0x53, 0x20, 0x62, 0x9c, 0x8c, 0x9e, 0x08, 0x25, 0xd7, 0x4d, 0x34, 0xaf,
+ 0x29, 0x06, 0x10, 0x26, 0xe1, 0xd9, 0x1d, 0x98, 0xad, 0x0e, 0x0c, 0x09,
+ 0x85, 0xba, 0x8e, 0xb7, 0x24, 0xa6, 0x6f, 0x75, 0xe0, 0x35, 0x4d, 0x8a,
+ 0xb1, 0x73, 0x66, 0x01, 0xe4, 0x1d, 0xef, 0x01, 0x60, 0x36, 0x9a, 0x1d,
+ 0x62, 0xe6, 0x5e, 0x8d, 0xfc, 0xbd, 0xab, 0xc0, 0x5d, 0xcd, 0xa7, 0xc2,
+ 0xff, 0x84, 0xc4, 0x92, 0x0d, 0x80, 0x0b, 0x0e, 0x55, 0xf3, 0x09, 0x85,
+ 0xef, 0x87, 0xbd, 0x9e, 0xf4, 0x02, 0xcf, 0x5a, 0xa7, 0x3b, 0xcf, 0x71,
+ 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x27, 0x00,
+ 0x51, 0xd1, 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3, 0xc0, 0x55, 0x27,
+ 0x27, 0xe1, 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xea, 0xc5, 0x81, 0xeb,
+ 0x83, 0x65, 0x3e, 0x4c, 0x59, 0x98, 0xbe, 0xa7, 0x93, 0xa2, 0xc0, 0x7a,
+ 0xf1, 0x32, 0x9a, 0x1e, 0xe4, 0x1e, 0xe3, 0xff, 0x90, 0xf8, 0x4d, 0xa0,
+ 0x1f, 0xb4, 0xa1, 0xc6, 0x0a, 0xf7, 0x81, 0x24, 0x22, 0x39, 0xc2, 0x0e,
+ 0x3b, 0xc7, 0xc0, 0x24, 0x37, 0x5b, 0x97, 0x23, 0x39, 0xd5, 0x47, 0x06,
+ 0xbb, 0x7d, 0x00, 0xf0, 0x1b, 0x8e, 0x3c, 0xf0, 0x82, 0xe0, 0x0c, 0x8f,
+ 0x7c, 0x00, 0x08, 0xd8, 0x3d, 0xdd, 0x07, 0x84, 0x3d, 0xf8, 0x78, 0x00,
+ 0x1c, 0x9e, 0x00, 0x06, 0xa2, 0x80, 0x01, 0xc8, 0xa0, 0x00, 0x6a, 0x00,
+ 0xcb, 0xcb, 0x64, 0x00, 0x21, 0xf0, 0x06, 0x17, 0x38, 0xc9, 0x0f, 0x84,
+ 0x1e, 0x00, 0x06, 0xa1, 0x8b, 0x3d, 0xa1, 0x02, 0x3e, 0xa0, 0x9f, 0xff,
+ 0xff, 0xfe, 0x21, 0x1a, 0x3b, 0x56, 0x8b, 0xd0, 0x74, 0x3d, 0x04, 0x34,
+ 0x2d, 0x43, 0x78, 0x10, 0x34, 0x10, 0x73, 0xfa, 0x09, 0xcb, 0xf9, 0x58,
+ 0x95, 0x8f, 0x95, 0x89, 0x58, 0x85, 0x25, 0xff, 0xff, 0x80, 0x08, 0x2f,
+ 0x25, 0x6f, 0x48, 0xf1, 0xc4, 0x14, 0x00, 0x04, 0x00, 0x22, 0x80, 0x00,
+ 0x80, 0x04, 0x50, 0x00, 0x10, 0x00, 0x80, 0x48, 0xfd, 0x00, 0x01, 0x6c,
+ 0x00, 0xc7, 0xcf, 0x22, 0x00, 0x08, 0x7c, 0x08, 0xc6, 0xaa, 0xd9, 0xd6,
+ 0x49, 0x25, 0x1e, 0x0c, 0x02, 0x47, 0xe8, 0x00, 0x0b, 0x69, 0xfb, 0x14,
+ 0x44, 0x43, 0xe0, 0x4f, 0xd8, 0xa2, 0x22, 0x1f, 0x00, 0x3f, 0x8e, 0xf6,
+ 0x7f, 0x37, 0x91, 0x31, 0x48, 0x88, 0xbc, 0x65, 0x81, 0x97, 0xc0, 0xfc,
+ 0x01, 0x1f, 0xe5, 0xe0, 0x47, 0xaf, 0x80, 0xf7, 0x60, 0x84, 0x00, 0x7f,
+ 0xfb, 0x02, 0x5d, 0x9d, 0xf7, 0xd7, 0x8e, 0xf7, 0xc8, 0x58, 0x01, 0x08,
+ 0xfd, 0xf5, 0x1f, 0xf3, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0x9c, 0xe4, 0x25, 0xff, 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7,
+ 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff,
+ 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xaa, 0x0d, 0x60, 0x35, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd3, 0xff, 0xd9, 0x38, 0x63, 0xff, 0x3f, 0xc8, 0x2b, 0xff,
+ 0xff, 0x7e, 0xfd, 0xfc, 0x52, 0x04, 0xe3, 0x49, 0xfa, 0xa5, 0x80, 0x58,
+ 0xd8, 0xe1, 0x5f, 0x20, 0x2a, 0x39, 0x3c, 0x83, 0xba, 0x51, 0x04, 0x65,
+ 0x29, 0x6f, 0xc4, 0x8b, 0x06, 0x85, 0x90, 0x67, 0x2a, 0x15, 0xcf, 0x66,
+ 0x0b, 0x5b, 0x3a, 0xee, 0xbf, 0x60, 0xc6, 0x2b, 0xff, 0xf8, 0x63, 0x1f,
+ 0x50, 0x01, 0x9b, 0x36, 0x2c, 0xda, 0x20, 0x1d, 0x26, 0x52, 0xc0, 0x96,
+ 0xe4, 0xff, 0xa7, 0x2a, 0x33, 0xd3, 0xe1, 0x36, 0x2c, 0xee, 0xd5, 0x43,
+ 0x7f, 0xd2, 0x1e, 0xa7, 0x9f, 0xbf, 0x7e, 0xfc, 0x30, 0x15, 0x5f, 0x67,
+ 0x62, 0x53, 0x9c, 0x26, 0x7c, 0x09, 0x5d, 0x23, 0xf4, 0x91, 0x56, 0x6a,
+ 0xc0, 0xe1, 0x68, 0x63, 0x41, 0x0d, 0xdc, 0x8a, 0x00, 0xf9, 0x3f, 0xff,
+ 0x86, 0x2d, 0x49, 0x37, 0xfe, 0x12, 0xc3, 0xdd, 0xfc, 0x21, 0xb4, 0xd5,
+ 0x6a, 0xac, 0x18, 0x9c, 0x7f, 0x3e, 0xc3, 0x1f, 0x69, 0x7b, 0x13, 0x61,
+ 0x4d, 0x07, 0x08, 0xd4, 0x3a, 0x24, 0xc1, 0x63, 0xd8, 0x26, 0xd8, 0xe5,
+ 0x3e, 0xbf, 0x1d, 0xb0, 0x4b, 0xff, 0xff, 0x82, 0x47, 0xa3, 0xde, 0x18,
+ 0xb5, 0x8b, 0x95, 0xbf, 0x13, 0x86, 0x92, 0x62, 0xd0, 0xc0, 0x7b, 0xf0,
+ 0x95, 0x87, 0xa3, 0xff, 0xad, 0x63, 0x36, 0xfb, 0xc6, 0xc0, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35, 0x81, 0x4b, 0xe5, 0xde, 0x33, 0xef,
+ 0xef, 0x1b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
+ 0x9f, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xd7,
+ 0xf9, 0xbe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x01, 0x6f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x0c, 0xa1, 0x96, 0x78,
+ 0xc9, 0xaf, 0xb7, 0xe2, 0x65, 0x2e, 0x00, 0x66, 0xcb, 0xfe, 0x7d, 0xff,
+ 0x57, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x90, 0x21, 0x92,
+ 0x28, 0x63, 0x58, 0x03, 0x2d, 0x12, 0x3d, 0x2a, 0xd5, 0xb7, 0x8c, 0xca,
+ 0x34, 0x46, 0xfa, 0x79, 0x2e, 0x2d, 0x08, 0x08, 0x14, 0x8c, 0x5b, 0xe2,
+ 0x37, 0x29, 0x6b, 0x57, 0xcf, 0x32, 0x1d, 0x7b, 0xc5, 0x7f, 0xff, 0xf9,
+ 0xbf, 0x15, 0x42, 0x04, 0xa0, 0xec, 0x47, 0x2c, 0xb0, 0x1d, 0x26, 0x52,
+ 0xdc, 0x0b, 0x03, 0x53, 0x77, 0x11, 0x79, 0x8f, 0x36, 0x11, 0x43, 0x68,
+ 0x09, 0x23, 0x93, 0x5b, 0xea, 0x58, 0x00, 0xe6, 0xa0, 0x7b, 0x05, 0x58,
+ 0xa6, 0xfd, 0x6c, 0x41, 0x54, 0xed, 0xf0, 0x11, 0x94, 0xf4, 0xfc, 0xe2,
+ 0xfa, 0x99, 0xf7, 0x1d, 0x6c, 0xfc, 0x80, 0x39, 0xee, 0xd3, 0x18, 0xb4,
+ 0xc3, 0x49, 0xb7, 0x00, 0x67, 0xbf, 0x5c, 0x8b, 0x9f, 0xff, 0xff, 0xf9,
+ 0x8b, 0xc0, 0x7b, 0x6b, 0xa6, 0xff, 0x09, 0xfe, 0x08, 0x0b, 0x81, 0xf7,
+ 0x78, 0x1f, 0xbc, 0xef, 0xff, 0xff, 0xcc, 0xc1, 0x3c, 0x0b, 0xfe, 0x12,
+ 0x30, 0x41, 0x2f, 0xee, 0x18, 0x00, 0xc4, 0x9b, 0xe9, 0x7b, 0x4a, 0x5f,
+ 0x36, 0xe6, 0x92, 0x03, 0x55, 0x9e, 0xd2, 0xd8, 0x83, 0xf6, 0x59, 0x22,
+ 0x34, 0x9b, 0xab, 0x68, 0x82, 0xbd, 0x60, 0x21, 0x4c, 0x31, 0x35, 0x79,
+ 0xfd, 0x7d, 0xe1, 0xde, 0x26, 0x34, 0x5e, 0x63, 0x3a, 0x7f, 0x9d, 0x30,
+ 0x4e, 0x29, 0x2c, 0x3f, 0x01, 0x42, 0x83, 0xf0, 0xe2, 0x5a, 0xf0, 0x3f,
+ 0xc7, 0x00, 0x38, 0x7e, 0xe2, 0xdc, 0x52, 0xf8, 0xbf, 0xff, 0xcd, 0xe3,
+ 0xbd, 0xfc, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x90, 0x75, 0x37, 0xe7,
+ 0x05, 0xe8, 0xcc, 0xea, 0x7a, 0xd4, 0x4d, 0xff, 0x7d, 0xfc, 0x67, 0x80,
+ 0x85, 0x65, 0x30, 0xe0, 0x09, 0x07, 0x53, 0x7e, 0x41, 0x7a, 0x33, 0x38,
+ 0xf1, 0xfd, 0x3d, 0x6a, 0x0f, 0x7e, 0x6d, 0xde, 0x8e, 0x1f, 0xc2, 0x2b,
+ 0xc9, 0x6c, 0xdf, 0xc9, 0x06, 0xad, 0xa5, 0x65, 0x30, 0xe1, 0x34, 0x8b,
+ 0xce, 0x6b, 0xee, 0x24, 0xf5, 0x53, 0x77, 0x8e, 0xf7, 0x84, 0x48, 0x58,
+ 0x48, 0xe0, 0xff, 0x3f, 0xee, 0x05, 0x96, 0x92, 0xea, 0x60, 0xfe, 0x3e,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x19, 0x7f, 0xcb, 0xef,
+ 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff,
+ 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x4f, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
+ 0x66, 0x13, 0x80, 0x84, 0x59, 0x26, 0x18, 0xdc, 0xa4, 0xdb, 0xe6, 0x86,
+ 0x62, 0x62, 0xbf, 0xff, 0xff, 0xf8, 0x60, 0xd0, 0x2d, 0x60, 0x61, 0x78,
+ 0xe1, 0x61, 0x20, 0x4a, 0xed, 0xdb, 0x72, 0xe3, 0x29, 0x8c, 0x40, 0xe2,
+ 0x2f, 0x51, 0x9e, 0xc4, 0x6c, 0xe1, 0x9e, 0x68, 0xcf, 0x6f, 0xde, 0x12,
+ 0xb0, 0x0a, 0x52, 0x30, 0x7d, 0x94, 0x7b, 0xd4, 0x24, 0xa5, 0x8e, 0xf2,
+ 0xf1, 0x72, 0xc6, 0x12, 0x52, 0xd0, 0xc0, 0x7f, 0xcb, 0xf0, 0x98, 0xbe,
+ 0x63, 0x26, 0x8d, 0x2a, 0xf3, 0xd1, 0x84, 0x8a, 0xa1, 0x65, 0xb6, 0x7a,
+ 0xab, 0xeb, 0xf1, 0x5f, 0xfe, 0xbe, 0x2c, 0xd4, 0x30, 0xce, 0xee, 0x02,
+ 0x80, 0xe9, 0x15, 0x0b, 0x76, 0x1c, 0xa1, 0xb4, 0x3b, 0xbd, 0xf6, 0x29,
+ 0x87, 0xff, 0xf7, 0xef, 0xbf, 0xff, 0x5e, 0x41, 0x11, 0x11, 0x05, 0x22,
+ 0xc0, 0x43, 0xa7, 0x42, 0x83, 0xe8, 0x47, 0x9d, 0x70, 0x19, 0x9a, 0xfe,
+ 0x5f, 0xee, 0x4f, 0xb4, 0xf4, 0x86, 0xc5, 0x2a, 0x94, 0x37, 0x34, 0x6a,
+ 0xa3, 0xc7, 0x91, 0x3a, 0x5e, 0x7d, 0x77, 0xe8, 0x0a, 0x21, 0x53, 0x16,
+ 0x41, 0x01, 0x86, 0xe2, 0xad, 0xc2, 0x04, 0x14, 0x0c, 0x7b, 0x31, 0x40,
+ 0xc2, 0x56, 0xe1, 0x01, 0xf6, 0x04, 0x21, 0x12, 0x48, 0x6b, 0x4d, 0x8d,
+ 0x0e, 0x61, 0xe0, 0x33, 0xc0, 0x6b, 0x93, 0x10, 0x1c, 0xb0, 0x1c, 0x76,
+ 0xf8, 0x63, 0xff, 0xb9, 0x39, 0x63, 0x1f, 0x01, 0x23, 0xd6, 0xfc, 0xc0,
+ 0x48, 0xf5, 0xbf, 0x27, 0x61, 0x9b, 0x54, 0x01, 0x66, 0x43, 0x03, 0xa4,
+ 0xbf, 0xbc, 0x90, 0x26, 0xc0, 0x80, 0xe6, 0xc0, 0xf9, 0x07, 0x04, 0x66,
+ 0x89, 0x5f, 0x5d, 0x63, 0x36, 0xa2, 0x7b, 0x2c, 0x8d, 0x6d, 0xff, 0xc7,
+ 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x81, 0x0b, 0xe5,
+ 0xde, 0x33, 0xef, 0xef, 0x1b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xc2, 0x9f, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf,
+ 0xff, 0xff, 0xd7, 0xf9, 0xbe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe9,
+ 0x49, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x0b, 0xe1, 0xe4, 0x5b,
+ 0x0f, 0x98, 0x98, 0x4d, 0xc3, 0x77, 0x54, 0x85, 0xac, 0x4c, 0xa5, 0xc4,
+ 0xdb, 0x43, 0xf6, 0x53, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xcc, 0x2a, 0x1d,
+ 0x4f, 0xee, 0x42, 0x7a, 0x67, 0xf8, 0xba, 0x44, 0x37, 0x0f, 0xe3, 0x65,
+ 0xc2, 0x04, 0x7e, 0x96, 0x55, 0xff, 0xfd, 0xe1, 0x10, 0x50, 0x11, 0x80,
+ 0xea, 0x86, 0xb9, 0x31, 0xb5, 0x35, 0xde, 0x50, 0xed, 0xa7, 0x13, 0x41,
+ 0xd4, 0x08, 0xe6, 0x29, 0x75, 0x22, 0x05, 0xf1, 0x15, 0x74, 0x5f, 0x8f,
+ 0x81, 0x94, 0x08, 0xd6, 0x40, 0x72, 0x88, 0x85, 0x91, 0xf9, 0x84, 0x01,
+ 0x63, 0x12, 0x63, 0x00, 0x1c, 0xae, 0x5a, 0x67, 0xcf, 0x7d, 0x12, 0xf7,
+ 0x2f, 0xfc, 0x57, 0xff, 0xff, 0x93, 0xc9, 0xfc, 0x58, 0x87, 0x20, 0x4a,
+ 0x44, 0x63, 0xc1, 0xa9, 0xc0, 0x00, 0x1d, 0x1c, 0xdf, 0xad, 0x9e, 0x68,
+ 0x0d, 0xb2, 0xf0, 0x03, 0x82, 0xe4, 0x10, 0xb6, 0x81, 0xe6, 0xdc, 0x29,
+ 0xd3, 0xf3, 0xc0, 0x05, 0x3e, 0x29, 0x91, 0x99, 0x6b, 0xff, 0xd6, 0x5d,
+ 0x72, 0x53, 0xfe, 0xf5, 0xfb, 0x08, 0x9d, 0xf5, 0x3f, 0x7d, 0xfa, 0x99,
+ 0xae, 0x50, 0xea, 0xcf, 0x8c, 0x9e, 0x7c, 0x1f, 0xf3, 0xb3, 0xc9, 0x86,
+ 0x2f, 0xff, 0xe4, 0x69, 0x37, 0x6f, 0xfe, 0x68, 0xf8, 0x9a, 0xf0, 0x4f,
+ 0xa6, 0x2f, 0xbe, 0xff, 0xff, 0xff, 0x88, 0x43, 0xe3, 0xac, 0x87, 0xb6,
+ 0x77, 0xbe, 0x1a, 0xf0, 0xb8, 0x21, 0x6f, 0xaf, 0xd3, 0x65, 0xac, 0x6a,
+ 0xe6, 0x28, 0x07, 0x87, 0xf8, 0x4a, 0xdc, 0x6f, 0x86, 0x9c, 0x0e, 0xfa,
+ 0x42, 0xfa, 0x07, 0x2d, 0x0c, 0xe6, 0x4b, 0x5b, 0x83, 0xa8, 0xbe, 0x22,
+ 0x33, 0x4a, 0xe7, 0xfc, 0x9e, 0xfd, 0x7f, 0xd7, 0x09, 0xb0, 0x83, 0x82,
+ 0xed, 0xcc, 0x38, 0x2e, 0xdf, 0x12, 0xfe, 0x03, 0xc1, 0x10, 0xc8, 0x40,
+ 0x59, 0x09, 0xa0, 0x3f, 0x4d, 0xc6, 0x7a, 0xc9, 0x7f, 0x3c, 0x5e, 0x7f,
+ 0x37, 0xd2, 0x9f, 0x08, 0x42, 0x82, 0x30, 0x01, 0x7b, 0x14, 0x9a, 0x25,
+ 0x89, 0x8f, 0x7f, 0xfe, 0x43, 0x50, 0x1b, 0x09, 0x69, 0x85, 0x1c, 0x5d,
+ 0xc4, 0x02, 0x65, 0x2c, 0xcf, 0x89, 0x1e, 0xa1, 0x8c, 0xf5, 0x96, 0xdf,
+ 0x13, 0x98, 0x40, 0x43, 0x50, 0xff, 0x84, 0xa5, 0xcf, 0x80, 0x28, 0xc7,
+ 0x66, 0x3a, 0xfa, 0x5a, 0xd2, 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8, 0x1c,
+ 0x40, 0x17, 0x64, 0x00, 0xc8, 0xba, 0xfa, 0xf7, 0xef, 0xf7, 0xb7, 0x96,
+ 0x35, 0xe1, 0xfe, 0x09, 0xbf, 0xc0, 0x35, 0x78, 0x42, 0xb0, 0x00, 0xc7,
+ 0xee, 0xe7, 0x5c, 0x2c, 0x78, 0x3c, 0x0b, 0x99, 0x91, 0x81, 0xab, 0xa0,
+ 0x2b, 0x69, 0xe6, 0x87, 0xc4, 0xc3, 0xf7, 0xf6, 0xfc, 0x3e, 0xfb, 0x4b,
+ 0x8f, 0x0c, 0xf8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x35,
+ 0xff, 0x11, 0xe3, 0x3f, 0xef, 0xfe, 0xfc, 0x6f, 0xff, 0xe5, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
+ 0x7f, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2,
+ 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x91, 0x60, 0x2d, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xe6, 0x13,
+ 0x80, 0x1b, 0x2e, 0x46, 0x04, 0x83, 0xf5, 0xe0, 0xf4, 0xe9, 0x4d, 0xbf,
+ 0x2f, 0x8a, 0xff, 0xff, 0xdf, 0xbf, 0xeb, 0x14, 0x28, 0xa9, 0x85, 0x56,
+ 0xa5, 0xc6, 0x6a, 0x13, 0x6b, 0xc0, 0x3b, 0xc7, 0x6d, 0xe2, 0x00, 0x6f,
+ 0x12, 0x91, 0xa0, 0x06, 0xc3, 0x6b, 0x04, 0xf0, 0x02, 0xd1, 0x63, 0x6d,
+ 0xfb, 0xa5, 0x52, 0xb1, 0x63, 0x0b, 0xfe, 0xdd, 0x7e, 0x78, 0xd1, 0x98,
+ 0xaf, 0xff, 0x7e, 0x18, 0xfd, 0x6c, 0x30, 0x0f, 0x64, 0xe0, 0x23, 0x29,
+ 0xe9, 0xf9, 0xd5, 0xe5, 0xe5, 0xe0, 0x09, 0xbc, 0xd7, 0x53, 0xcf, 0xb4,
+ 0x89, 0x8a, 0x9e, 0x7f, 0xac, 0xa4, 0xcf, 0x9f, 0xff, 0xdf, 0xef, 0xff,
+ 0xdf, 0x86, 0x38, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x57, 0xa6, 0x9a, 0x8f,
+ 0x10, 0x32, 0x65, 0xe0, 0x22, 0xcf, 0x73, 0xb6, 0x3e, 0xbe, 0x9f, 0x1d,
+ 0xbe, 0xfc, 0x33, 0x1b, 0x86, 0x3e, 0x90, 0xe3, 0xc2, 0x30, 0x64, 0x02,
+ 0xfa, 0xa0, 0x3e, 0xa0, 0x43, 0x8a, 0x5c, 0xf4, 0x1a, 0x7b, 0x03, 0x12,
+ 0x72, 0xdc, 0xc0, 0xea, 0xfb, 0xed, 0xe1, 0x2f, 0x19, 0xa1, 0x7f, 0x07,
+ 0x6d, 0x78, 0x60, 0x61, 0x71, 0x1f, 0xfc, 0x3e, 0x50, 0x4f, 0xa3, 0x01,
+ 0x94, 0x32, 0xfa, 0xd9, 0x41, 0xe2, 0x23, 0x4b, 0x7e, 0xb8, 0xd8, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x83, 0x2f, 0x97, 0x78, 0xcf,
+ 0xbf, 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff,
+ 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51, 0x02, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0x8b, 0x5c, 0x10, 0x36, 0x6e, 0x71, 0xe1, 0x84, 0x0f, 0x0f,
+ 0xfc, 0xa2, 0xf0, 0x10, 0x6e, 0xc0, 0xf7, 0x0e, 0x3f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x73, 0x78, 0x01, 0x85, 0xeb, 0xef,
+ 0xff, 0xb5, 0xe5, 0xf8, 0xd5, 0x48, 0x50, 0xfe, 0x4f, 0xfc, 0x6c, 0x5f,
+ 0x0d, 0x22, 0xc2, 0x78, 0x00, 0x7f, 0x2c, 0x8d, 0xa7, 0xa5, 0xbf, 0x7b,
+ 0x86, 0x47, 0xbe, 0xd7, 0xff, 0x4c, 0x60, 0x92, 0x97, 0x0a, 0x7e, 0x9d,
+ 0x63, 0x8f, 0xfb, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xcc, 0x97,
+ 0xcb, 0xa5, 0xe4, 0x12, 0x6d, 0xe1, 0x00, 0x7c, 0x47, 0x41, 0x82, 0x6d,
+ 0xbe, 0x81, 0x2b, 0xe3, 0x73, 0x76, 0x52, 0x97, 0xc8, 0x8d, 0x29, 0x57,
+ 0xf1, 0x4d, 0xb0, 0x89, 0xc1, 0x70, 0xa6, 0x7c, 0x6f, 0xa4, 0x68, 0x75,
+ 0xd5, 0xe3, 0x38, 0xf0, 0xe6, 0x34, 0x0b, 0x3a, 0x2b, 0x33, 0x91, 0x39,
+ 0xbd, 0x90, 0x19, 0xef, 0xd1, 0xa6, 0x32, 0xbf, 0xed, 0x1b, 0x6d, 0x2c,
+ 0x17, 0x5f, 0x45, 0xde, 0x42, 0x3c, 0xa3, 0x17, 0xb6, 0x8c, 0xe3, 0x66,
+ 0xd2, 0xd8, 0x57, 0xfd, 0xa4, 0x74, 0xfa, 0x9e, 0x45, 0x4f, 0x67, 0xd7,
+ 0x07, 0xb1, 0x27, 0x19, 0x01, 0x9b, 0xda, 0x21, 0x68, 0x28, 0xa4, 0xfc,
+ 0xf0, 0x84, 0x0b, 0xb2, 0x11, 0x7e, 0x1f, 0xa2, 0x9d, 0x4b, 0xdc, 0x71,
+ 0xc1, 0x9d, 0x26, 0xd8, 0x92, 0x2f, 0xff, 0x9e, 0x78, 0xf2, 0x52, 0x2e,
+ 0x99, 0x2f, 0xf7, 0x97, 0xe1, 0x31, 0x72, 0x86, 0x12, 0x51, 0xe3, 0x2d,
+ 0xb7, 0xb7, 0xd3, 0xd3, 0x84, 0x07, 0xce, 0x19, 0x1f, 0xf3, 0xbe, 0x43,
+ 0x6c, 0xf0, 0xab, 0x71, 0xc6, 0xe7, 0x78, 0x71, 0x5f, 0xff, 0xff, 0xc2,
+ 0x22, 0x31, 0xd6, 0xbd, 0x00, 0x63, 0xe2, 0xe1, 0x50, 0x6a, 0xb8, 0xbb,
+ 0x60, 0x94, 0x73, 0x7e, 0xb9, 0x33, 0x07, 0xb2, 0xf0, 0x00, 0xcc, 0x6d,
+ 0xbd, 0x12, 0x6e, 0x73, 0x4b, 0x43, 0x47, 0x44, 0xbb, 0xcf, 0xe8, 0x1c,
+ 0x82, 0x46, 0xd5, 0x4a, 0xf5, 0x60, 0x08, 0xe4, 0x66, 0x90, 0x4c, 0xe2,
+ 0xd2, 0x16, 0x95, 0x04, 0xc6, 0x03, 0xf2, 0x26, 0x7f, 0x3f, 0x31, 0xe7,
+ 0x3e, 0x73, 0xe9, 0xd0, 0xf7, 0xfc, 0x8a, 0x71, 0x88, 0xf0, 0xd5, 0xf8,
+ 0x4d, 0x0f, 0xb7, 0xaa, 0x0e, 0xff, 0x2a, 0x99, 0x54, 0xf8, 0xe7, 0x08,
+ 0x18, 0x1e, 0x7b, 0xc8, 0x6f, 0x01, 0x6e, 0x95, 0xad, 0x77, 0x04, 0x78,
+ 0x76, 0x91, 0xe1, 0x35, 0xc6, 0x01, 0xe9, 0xe6, 0xa3, 0x10, 0x85, 0x60,
+ 0x20, 0x0f, 0x94, 0xbc, 0x00, 0x84, 0xd7, 0x77, 0x7f, 0xf7, 0xfe, 0xff,
+ 0xc4, 0x18, 0x23, 0xef, 0x38, 0xff, 0x25, 0xf9, 0x30, 0x8f, 0x3c, 0xef,
+ 0xff, 0x88, 0x8e, 0x02, 0x54, 0x78, 0x40, 0xc0, 0xde, 0x6c, 0xa2, 0x98,
+ 0x7d, 0x06, 0xea, 0x68, 0xc3, 0x0f, 0xfc, 0x25, 0x0e, 0x92, 0x32, 0x00,
+ 0xc2, 0x13, 0x01, 0xb6, 0xa0, 0x5f, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08,
+ 0x49, 0x01, 0xb6, 0xa0, 0x03, 0xa4, 0x8c, 0x80, 0x30, 0x84, 0x94, 0x1b,
+ 0x6a, 0xf0, 0xe7, 0xe5, 0x28, 0xe8, 0x2a, 0x6f, 0x45, 0x5f, 0x50, 0xc7,
+ 0x5c, 0x26, 0xaa, 0xb5, 0x7d, 0x4a, 0xbd, 0x46, 0xe0, 0x84, 0xa9, 0xc2,
+ 0x6e, 0x37, 0xe7, 0x9f, 0x0c, 0x4f, 0xc5, 0x38, 0x6e, 0x0f, 0x8c, 0xdb,
+ 0x03, 0xed, 0xe8, 0xaf, 0xaf, 0xbf, 0xbc, 0x33, 0xae, 0x4e, 0x04, 0xfa,
+ 0x80, 0xff, 0xd9, 0x6c, 0xc5, 0x1e, 0x3b, 0xdf, 0x23, 0x80, 0x06, 0xba,
+ 0x56, 0x79, 0x2b, 0x7f, 0xbf, 0xf8, 0x26, 0x26, 0xcc, 0x3e, 0xb9, 0xd4,
+ 0xe2, 0xd7, 0xc0, 0x2c, 0x3a, 0xdd, 0x6b, 0x6e, 0xf5, 0xcb, 0xfc, 0x00,
+ 0xb1, 0x66, 0x96, 0xcb, 0x4d, 0xf7, 0x9f, 0x69, 0xf7, 0x01, 0xff, 0xff,
+ 0x7f, 0x9d, 0xe1, 0xfe, 0x78, 0x04, 0x34, 0xbf, 0x9a, 0xbd, 0xee, 0x89,
+ 0x89, 0xcd, 0xff, 0xfd, 0xa0, 0x84, 0x44, 0x00, 0x1b, 0x36, 0x4d, 0x0d,
+ 0x8c, 0x15, 0x39, 0xc7, 0x17, 0xa3, 0x40, 0x28, 0xb2, 0x8e, 0xbc, 0x73,
+ 0xee, 0xfa, 0x0d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44,
+ 0x09, 0xe0, 0x22, 0x3e, 0x42, 0x40, 0x0d, 0x83, 0x55, 0x3a, 0x02, 0x94,
+ 0x38, 0x73, 0x7f, 0x80, 0x89, 0xc4, 0xcb, 0x66, 0xeb, 0x9f, 0xd4, 0xe3,
+ 0x14, 0x20, 0x01, 0x01, 0xcd, 0xf8, 0x27, 0x8a, 0x3d, 0xf8, 0x00, 0x00,
+ 0x10, 0xf8, 0x01, 0x62, 0xcd, 0x2d, 0x96, 0x4d, 0xf7, 0x9b, 0x4f, 0xb8,
+ 0x0f, 0xff, 0xfb, 0xfc, 0xef, 0x0f, 0xf3, 0xc0, 0x21, 0xa5, 0xfc, 0xd5,
+ 0xef, 0x77, 0xf3, 0x7e, 0xc5, 0x9b, 0xb1, 0x1e, 0x31, 0x40, 0x07, 0xd0,
+ 0x1d, 0xa5, 0x22, 0x10, 0x03, 0x01, 0xef, 0xae, 0x60, 0x01, 0xb5, 0x9f,
+ 0x14, 0xda, 0x3f, 0xff, 0xe4, 0x9f, 0x7d, 0xaf, 0xe0, 0x07, 0x87, 0x5d,
+ 0x7a, 0x65, 0x70, 0xe4, 0x08, 0x43, 0x54, 0x8d, 0x94, 0x2e, 0xa1, 0x47,
+ 0xee, 0xb8, 0x16, 0xc0, 0xa6, 0xeb, 0x6c, 0x89, 0xeb, 0x60, 0xcf, 0xef,
+ 0x6f, 0xc5, 0x60, 0x79, 0xaf, 0xf0, 0x89, 0x6e, 0xee, 0x51, 0x67, 0xa0,
+ 0x1d, 0xc1, 0x2b, 0xc3, 0xe5, 0xff, 0x8c, 0xd7, 0xfb, 0xe6, 0x02, 0x6d,
+ 0xb6, 0x6e, 0x4d, 0xb4, 0x95, 0xf7, 0xfb, 0xf7, 0xe3, 0x7f, 0xde, 0x1c,
+ 0x86, 0xe0, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x6f, 0xf1, 0x63, 0x31, 0xf2, 0xde, 0x03, 0xc3, 0xc8,
+ 0x6e, 0x0f, 0xe6, 0x70, 0x83, 0x93, 0xf4, 0x35, 0x7f, 0xad, 0x85, 0x8b,
+ 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0xd3, 0x60, 0x21, 0xff,
+ 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xfa, 0x7f, 0xfc, 0xc2,
+ 0x70, 0x95, 0x9c, 0x97, 0x65, 0x95, 0xe1, 0xfb, 0x4b, 0x15, 0xff, 0xff,
+ 0xbf, 0xfe, 0x28, 0x60, 0x15, 0x19, 0x5e, 0xfb, 0x6d, 0x2e, 0x49, 0xd0,
+ 0x0d, 0x8f, 0x36, 0xe1, 0xf3, 0x60, 0x00, 0x41, 0x79, 0x00, 0x31, 0x2a,
+ 0x1b, 0xc5, 0x45, 0x10, 0xfe, 0x73, 0xbe, 0x24, 0xcb, 0xf9, 0x18, 0xb3,
+ 0x38, 0xf9, 0x34, 0xa9, 0x35, 0x32, 0x18, 0x02, 0xff, 0x7f, 0xc2, 0x62,
+ 0x44, 0x11, 0x61, 0xe1, 0xb5, 0xba, 0xbc, 0x1e, 0xd3, 0x0a, 0xa6, 0xee,
+ 0x7f, 0xaf, 0x56, 0x02, 0x85, 0xf8, 0x55, 0xbf, 0xc5, 0x7f, 0xfb, 0xf5,
+ 0x8c, 0xf1, 0x9c, 0xb7, 0x64, 0x00, 0xec, 0xd0, 0xe6, 0x23, 0x99, 0x78,
+ 0x37, 0x5f, 0x56, 0xc7, 0x79, 0xe0, 0x42, 0xc7, 0x61, 0x27, 0xd5, 0xe7,
+ 0x83, 0x0e, 0xeb, 0x0f, 0xbc, 0x7f, 0xd9, 0x8e, 0xe1, 0x62, 0x20, 0xcb,
+ 0xbe, 0x1f, 0xf1, 0x87, 0xdd, 0x6c, 0x77, 0xff, 0xfc, 0x9d, 0xfb, 0xfe,
+ 0xfc, 0x9c, 0x04, 0x40, 0x84, 0x04, 0xdb, 0xcf, 0xff, 0xef, 0x2d, 0xca,
+ 0x84, 0xb9, 0xcf, 0x01, 0x37, 0x77, 0x57, 0x30, 0xb8, 0x00, 0xd2, 0x48,
+ 0x4b, 0x1d, 0x69, 0xb0, 0x0c, 0x6f, 0xde, 0x40, 0x85, 0x04, 0x41, 0xe4,
+ 0x0c, 0xf4, 0x84, 0x88, 0x39, 0xe7, 0xd7, 0xd3, 0xe3, 0x9f, 0x7b, 0x7c,
+ 0x76, 0xd7, 0x86, 0x02, 0xab, 0xaf, 0xc5, 0x78, 0xa2, 0xe1, 0x1f, 0x2d,
+ 0x82, 0x01, 0xfa, 0xfb, 0x3d, 0xf9, 0x74, 0x98, 0xbc, 0xbf, 0x00, 0xbe,
+ 0x94, 0x06, 0xa2, 0x2f, 0xc3, 0x1f, 0xeb, 0xae, 0xb8, 0x57, 0x01, 0xef,
+ 0xff, 0xaf, 0xf0, 0x07, 0xbf, 0xf9, 0xdd, 0xc6, 0x08, 0xa8, 0x8e, 0x08,
+ 0xb1, 0xd0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x8a, 0xf9,
+ 0x18, 0x29, 0x07, 0x1a, 0xc4, 0x0a, 0x00, 0x46, 0x5e, 0x0b, 0x8c, 0x7b,
+ 0xf1, 0xe1, 0x4d, 0x30, 0x00, 0x4f, 0xcf, 0xf0, 0x00, 0x00, 0x40, 0x02,
+ 0x00, 0xa2, 0xd4, 0x81, 0x18, 0x0a, 0x98, 0x01, 0x5a, 0xd0, 0x2e, 0x60,
+ 0x1c, 0x06, 0xf1, 0x9d, 0xf7, 0xd7, 0x78, 0xdf, 0xf2, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc,
+ 0xdd, 0xfb, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59,
+ 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09, 0xc0, 0x04, 0x6d, 0xb7,
+ 0x2b, 0x73, 0xfc, 0x11, 0x8f, 0x73, 0xb4, 0x7e, 0xb7, 0xf1, 0x05, 0x17,
+ 0xc1, 0xea, 0x46, 0x64, 0x25, 0x93, 0xbe, 0xff, 0x80, 0x32, 0xfb, 0xe8,
+ 0x4f, 0xf7, 0x50, 0x8c, 0x05, 0x22, 0xd3, 0xc9, 0x35, 0x4f, 0x13, 0x15,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0x43, 0x80, 0x81, 0x49, 0xd0, 0x63,
+ 0x07, 0x06, 0x1f, 0x75, 0xd7, 0xc8, 0x54, 0x60, 0xa3, 0x53, 0x8e, 0xf7,
+ 0xf4, 0x40, 0x02, 0xf6, 0xda, 0x43, 0xf5, 0x0d, 0x45, 0xe1, 0xca, 0xde,
+ 0x9b, 0x1e, 0xef, 0x1e, 0x0f, 0xc0, 0x0c, 0x23, 0xb9, 0x85, 0x49, 0x17,
+ 0xf7, 0xf1, 0x0f, 0xe3, 0x7f, 0x79, 0x15, 0x7a, 0x60, 0xe7, 0x00, 0x45,
+ 0xbb, 0x50, 0x2c, 0x80, 0xfc, 0x6c, 0xb9, 0x57, 0x4f, 0xac, 0x00, 0x01,
+ 0x19, 0x26, 0xeb, 0xf9, 0x06, 0x21, 0x7a, 0x14, 0x6f, 0xff, 0xb6, 0x61,
+ 0x30, 0x1a, 0x81, 0x30, 0x02, 0xae, 0x99, 0x3a, 0x2b, 0x43, 0xbc, 0xd2,
+ 0x34, 0x6d, 0x4c, 0x3b, 0xf6, 0x4a, 0x7f, 0xce, 0x1c, 0xdf, 0xe1, 0x2f,
+ 0xc1, 0x00, 0xb0, 0x82, 0x2c, 0x94, 0xc7, 0x93, 0xff, 0x7b, 0xf0, 0xc0,
+ 0x14, 0x67, 0x85, 0x95, 0x77, 0x7f, 0xc5, 0x7f, 0xff, 0xff, 0xcd, 0xf8,
+ 0xa9, 0x13, 0x13, 0xba, 0xad, 0x9b, 0x84, 0xcf, 0xb5, 0xe0, 0xe2, 0x27,
+ 0x69, 0x61, 0x13, 0x58, 0xff, 0x3f, 0x80, 0x45, 0x2b, 0xd8, 0x1f, 0x21,
+ 0x1b, 0xfa, 0xf8, 0x06, 0x26, 0x16, 0x54, 0xfd, 0x4b, 0x37, 0x41, 0xa9,
+ 0x08, 0xbf, 0x9f, 0x77, 0xd9, 0x17, 0x3f, 0x0b, 0x02, 0x71, 0xd9, 0x65,
+ 0x05, 0xd8, 0x39, 0x93, 0x07, 0xff, 0xff, 0xff, 0x27, 0xff, 0xff, 0xfc,
+ 0xc1, 0x75, 0xc0, 0xbf, 0xe1, 0x26, 0x03, 0xbb, 0x6a, 0x38, 0xf4, 0x1f,
+ 0x24, 0x87, 0x65, 0xd4, 0xf1, 0xb9, 0x6b, 0x13, 0x2c, 0x7b, 0x50, 0x2c,
+ 0x56, 0x4c, 0xf2, 0xcf, 0xd0, 0xb5, 0x27, 0xff, 0x52, 0x64, 0xfd, 0x26,
+ 0x5c, 0xf0, 0x67, 0xf5, 0xff, 0x5e, 0x3b, 0xdf, 0xbf, 0x1d, 0xec, 0xdf,
+ 0x0a, 0x7f, 0xc3, 0xe5, 0xe0, 0x0b, 0xbe, 0xac, 0x77, 0xf7, 0x37, 0xfa,
+ 0x53, 0xf0, 0x40, 0xc0, 0x16, 0x55, 0x54, 0x3b, 0xc3, 0x3c, 0x2f, 0x3e,
+ 0xae, 0x3f, 0xf8, 0xf1, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xad,
+ 0x64, 0x37, 0xed, 0xe0, 0xa0, 0x0e, 0x21, 0x31, 0x10, 0x03, 0x2a, 0xb6,
+ 0x48, 0xc0, 0x00, 0x40, 0x13, 0x57, 0xa1, 0xb1, 0xda, 0xd0, 0x0c, 0x61,
+ 0xc3, 0x98, 0x01, 0x2f, 0x64, 0x8d, 0xd3, 0xde, 0x09, 0x69, 0x8e, 0xcb,
+ 0x4a, 0xf5, 0xeb, 0xbe, 0x26, 0x27, 0x27, 0xf8, 0x40, 0x33, 0xdf, 0x8c,
+ 0xff, 0xa3, 0x7a, 0x25, 0x3e, 0x9c, 0x28, 0x68, 0x3e, 0x8d, 0xff, 0x75,
+ 0x59, 0xfc, 0x8f, 0x06, 0x8d, 0x79, 0xf3, 0xec, 0x21, 0xf7, 0x1b, 0xfe,
+ 0xff, 0xcd, 0xfe, 0x94, 0x72, 0x22, 0xc6, 0x13, 0x80, 0x06, 0x11, 0xe4,
+ 0xa6, 0x6d, 0x26, 0xe8, 0x50, 0x01, 0x79, 0xbe, 0x24, 0x47, 0xf1, 0x7f,
+ 0xf0, 0x78, 0x1f, 0x3d, 0xd7, 0x4a, 0xf3, 0xa0, 0x02, 0xed, 0xca, 0x1b,
+ 0x32, 0x8f, 0xff, 0x50, 0x2d, 0xd2, 0xa1, 0x87, 0xf7, 0xa0, 0x00, 0x00,
+ 0xcf, 0xec, 0x30, 0x1d, 0xdb, 0x00, 0x1f, 0x38, 0x9a, 0x70, 0xe3, 0x4f,
+ 0x01, 0xbb, 0x1a, 0xbf, 0xf7, 0x46, 0xc8, 0xff, 0x98, 0x1f, 0x5b, 0xb5,
+ 0xcd, 0x33, 0x67, 0xf0, 0x37, 0xe3, 0x7d, 0x79, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff,
+ 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14,
+ 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x77, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0x7f, 0x16, 0x7c, 0x02,
+ 0x10, 0x65, 0x89, 0x43, 0xf2, 0xdb, 0xf0, 0x03, 0xb7, 0x7a, 0x9a, 0x49,
+ 0xae, 0x9b, 0xa3, 0xd5, 0xc5, 0x7f, 0xff, 0xff, 0xbf, 0x0c, 0x07, 0x67,
+ 0x8a, 0x28, 0xba, 0x2a, 0x0d, 0x88, 0xd7, 0xf1, 0x38, 0xf4, 0xff, 0x46,
+ 0x03, 0x76, 0x01, 0xa6, 0x9c, 0x1d, 0x4e, 0x9e, 0x00, 0x36, 0xde, 0x85,
+ 0x1b, 0xfe, 0xed, 0xb8, 0x6f, 0xc6, 0x04, 0xc0, 0x95, 0xb4, 0x39, 0xd0,
+ 0x3f, 0xf1, 0x36, 0x33, 0x52, 0xec, 0x7d, 0x12, 0x96, 0xa8, 0x91, 0x22,
+ 0x43, 0xab, 0x96, 0xe4, 0x1d, 0x8b, 0x97, 0x84, 0x02, 0x98, 0x69, 0xb1,
+ 0x5d, 0xcf, 0x2f, 0x65, 0xfc, 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0x00, 0x68,
+ 0xfa, 0xa4, 0x59, 0xb0, 0x00, 0xcd, 0xbf, 0xe5, 0x7c, 0x24, 0xde, 0x24,
+ 0xd4, 0x00, 0x9c, 0xee, 0x48, 0x24, 0x62, 0xd4, 0x00, 0x8c, 0xdc, 0xe6,
+ 0xb5, 0x79, 0x45, 0xf0, 0x92, 0x47, 0x0d, 0xad, 0x92, 0x37, 0xe7, 0x9c,
+ 0x49, 0xb8, 0x01, 0x49, 0xa4, 0xfc, 0xff, 0xff, 0x93, 0xff, 0xf8, 0x62,
+ 0xa8, 0x2c, 0x0e, 0x23, 0xfe, 0x12, 0x61, 0x2c, 0xce, 0x22, 0x33, 0x4b,
+ 0xb4, 0x0d, 0x0c, 0x4d, 0xea, 0x87, 0xd3, 0xf1, 0xe2, 0xca, 0x96, 0x33,
+ 0x88, 0x49, 0x95, 0x6e, 0x7e, 0x18, 0xcf, 0xad, 0x33, 0x30, 0xce, 0xf9,
+ 0x45, 0xff, 0xc0, 0x39, 0xf5, 0xf5, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0x38,
+ 0x63, 0x3f, 0xa1, 0xcf, 0x0c, 0x26, 0x5c, 0x3d, 0x07, 0xe1, 0xc4, 0x4b,
+ 0xa0, 0x3f, 0xc7, 0xe8, 0x1f, 0x80, 0x36, 0xd3, 0x70, 0x1f, 0x49, 0x0f,
+ 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xac, 0x55, 0x8b, 0xd8, 0x63,
+ 0xf1, 0x3f, 0xa7, 0x0a, 0x08, 0x00, 0x54, 0x68, 0xc8, 0x0c, 0x21, 0xf3,
+ 0xc0, 0x7e, 0x0f, 0x80, 0x90, 0x8d, 0x9f, 0xcf, 0xf0, 0xc7, 0xf9, 0xd0,
+ 0xfe, 0x13, 0x7a, 0xc4, 0xcd, 0x40, 0x7e, 0xf6, 0x78, 0x75, 0xb5, 0xf3,
+ 0x45, 0xdc, 0x63, 0x0f, 0xd7, 0xde, 0x33, 0xe9, 0x78, 0x62, 0x78, 0x4c,
+ 0x3b, 0x89, 0x0e, 0xd7, 0x80, 0xfd, 0xf5, 0x8f, 0xff, 0xc3, 0xff, 0x80,
+ 0x1b, 0xbd, 0x5b, 0x84, 0x00, 0x28, 0x8e, 0x94, 0xcf, 0x93, 0x7d, 0x80,
+ 0x48, 0xfd, 0x7b, 0x0b, 0xfd, 0x0f, 0x61, 0x0c, 0x7c, 0xf4, 0x98, 0xf8,
+ 0x13, 0xfc, 0xb9, 0x03, 0x11, 0xdf, 0x50, 0x00, 0x07, 0xdf, 0x78, 0xdf,
+ 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xfc,
+ 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0xec, 0x61, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66,
+ 0x3e, 0x00, 0xca, 0xd5, 0xb8, 0x73, 0xcc, 0x1a, 0x94, 0x7b, 0xd2, 0x10,
+ 0xfc, 0xc2, 0x25, 0x29, 0x76, 0xd7, 0xbd, 0x7f, 0x8f, 0xf1, 0x5f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x79, 0x48, 0x28, 0x60, 0x18, 0xbe, 0xfb, 0x69,
+ 0x34, 0x3a, 0x1a, 0xcf, 0x3d, 0xd7, 0x8c, 0x63, 0x06, 0xa2, 0x4a, 0x99,
+ 0x78, 0x01, 0x5a, 0x34, 0x0f, 0x98, 0xb9, 0x95, 0xf9, 0xaf, 0xdd, 0x6d,
+ 0x8e, 0xd4, 0x60, 0xcc, 0x14, 0xf8, 0x5f, 0xf0, 0x98, 0x99, 0xd2, 0x06,
+ 0x5b, 0x10, 0x97, 0x9d, 0xf4, 0x51, 0x8c, 0x48, 0xdb, 0xd8, 0x6a, 0xf6,
+ 0xfa, 0xe4, 0x07, 0xc8, 0x7e, 0x4e, 0xbe, 0x7d, 0xfb, 0xdc, 0x57, 0xff,
+ 0xff, 0xfc, 0xdf, 0x88, 0x32, 0x99, 0x2a, 0x4a, 0xcd, 0xc0, 0x0e, 0x2e,
+ 0x42, 0x2f, 0x61, 0xe6, 0x56, 0xdc, 0x9b, 0x8f, 0x01, 0x08, 0x96, 0x6a,
+ 0x5d, 0x4c, 0x8d, 0x70, 0x00, 0x89, 0x94, 0x13, 0x3d, 0x31, 0xc6, 0xe5,
+ 0x40, 0x03, 0x7b, 0xa0, 0x36, 0xaa, 0x15, 0xea, 0x15, 0x75, 0xbf, 0x9d,
+ 0xab, 0xb5, 0xea, 0x00, 0x0c, 0xee, 0xa3, 0x6a, 0x89, 0x35, 0x43, 0x8d,
+ 0xc9, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xe2, 0x1b, 0x5e, 0xdc,
+ 0x3e, 0xcc, 0x0e, 0x0f, 0x98, 0x14, 0x34, 0xab, 0x31, 0x76, 0xb7, 0x0d,
+ 0xfc, 0xfe, 0xbf, 0xeb, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0xff,
+ 0xc3, 0xe5, 0x80, 0x06, 0x13, 0xf5, 0xfd, 0xd7, 0xd2, 0xf2, 0x62, 0x26,
+ 0x24, 0x35, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb1, 0x84,
+ 0x37, 0xe8, 0xdf, 0xdb, 0xe1, 0xc3, 0xe6, 0x80, 0xe2, 0x0c, 0x50, 0x84,
+ 0xc8, 0x0c, 0x5f, 0xde, 0xda, 0xee, 0xf0, 0x28, 0x01, 0x47, 0x11, 0x3f,
+ 0xef, 0xc6, 0x7a, 0x37, 0xff, 0xb4, 0x02, 0x08, 0x4c, 0x00, 0x36, 0xa9,
+ 0xb5, 0xd3, 0xfc, 0xf7, 0xf7, 0x9e, 0x7d, 0x86, 0x02, 0x38, 0xb1, 0x18,
+ 0x00, 0x49, 0xbe, 0x22, 0x4c, 0xd9, 0x13, 0x06, 0x77, 0x04, 0xf8, 0xbf,
+ 0x77, 0xfb, 0xf1, 0xc6, 0x51, 0xf0, 0x0f, 0xf8, 0x7a, 0x03, 0xa9, 0x33,
+ 0xd4, 0x23, 0x6b, 0xef, 0xb7, 0xf9, 0x3f, 0xfc, 0x44, 0x50, 0x00, 0x10,
+ 0x08, 0x80, 0x08, 0xbc, 0x93, 0x98, 0xc9, 0x00, 0x35, 0xfd, 0xf1, 0x04,
+ 0xd9, 0x80, 0xb0, 0x19, 0xc0, 0xa0, 0x5c, 0x40, 0x2c, 0x30, 0x71, 0x8f,
+ 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x97, 0xff, 0xff,
+ 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff,
+ 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x57, 0x60, 0x25,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0xcc,
+ 0x27, 0x00, 0x8f, 0x5b, 0x49, 0xff, 0x97, 0xd0, 0x44, 0x4c, 0x57, 0xff,
+ 0xff, 0xff, 0x78, 0xa1, 0x41, 0x47, 0x7b, 0x94, 0x99, 0x7b, 0xa5, 0xe0,
+ 0x0d, 0xe2, 0x94, 0x5a, 0x03, 0xaf, 0x90, 0x03, 0x8d, 0x0e, 0x93, 0xb6,
+ 0x3f, 0x8a, 0x22, 0x8f, 0x40, 0x9d, 0x21, 0x6b, 0x9d, 0xf0, 0xc6, 0xdf,
+ 0x5b, 0xfe, 0x13, 0x16, 0x01, 0x41, 0xb0, 0x00, 0x98, 0x72, 0xaf, 0x7f,
+ 0x6b, 0xc0, 0xf9, 0xaf, 0xb7, 0x4b, 0x9e, 0x19, 0x59, 0x8a, 0xfe, 0xf0,
+ 0xcd, 0x5a, 0x4a, 0x4b, 0xb5, 0xe2, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07,
+ 0x19, 0x83, 0x15, 0x9b, 0x00, 0x8f, 0x5f, 0x6c, 0x3c, 0x51, 0xd2, 0xde,
+ 0x1d, 0x97, 0x80, 0x9b, 0x9a, 0xd0, 0x7c, 0x82, 0x3b, 0xdd, 0xa5, 0x1f,
+ 0xbf, 0x7b, 0xfc, 0x1a, 0xf2, 0xa4, 0x15, 0xee, 0xfd, 0x91, 0x74, 0x89,
+ 0xdc, 0xc3, 0x8d, 0x1f, 0x3f, 0xff, 0xe4, 0xff, 0xfe, 0x18, 0xb5, 0x36,
+ 0xff, 0xc2, 0x47, 0x80, 0x51, 0xd5, 0x8f, 0x7f, 0x90, 0x9a, 0x6b, 0x1d,
+ 0x65, 0x46, 0xe8, 0x2d, 0x68, 0x24, 0x27, 0x18, 0x73, 0xeb, 0xeb, 0x1d,
+ 0xbd, 0xe3, 0xb6, 0x18, 0xf8, 0x7f, 0x1a, 0x41, 0x0e, 0x07, 0x44, 0x54,
+ 0xce, 0x85, 0x0c, 0xc4, 0xc7, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xad, 0x5d, 0x84, 0xf4, 0xbc, 0x80, 0xa0, 0x10, 0x83, 0x10, 0x70, 0x24,
+ 0x40, 0x02, 0x96, 0xd2, 0x94, 0x78, 0x33, 0x12, 0xcf, 0xb3, 0xeb, 0x7f,
+ 0x91, 0xf4, 0xfc, 0xc1, 0x04, 0xaf, 0x3d, 0x6b, 0x78, 0xcf, 0xc3, 0x71,
+ 0x38, 0x61, 0x0a, 0x1f, 0xc7, 0xe1, 0x31, 0x0d, 0x15, 0xc0, 0x26, 0x6e,
+ 0xfd, 0xa3, 0xdd, 0xe9, 0x90, 0xf0, 0x1e, 0x41, 0x7f, 0xbc, 0x6f, 0x5e,
+ 0x18, 0xa0, 0xdd, 0xff, 0xf8, 0x4b, 0x00, 0x8b, 0xd5, 0xdb, 0x2d, 0x5e,
+ 0xf7, 0xc5, 0x41, 0xb5, 0x5d, 0x10, 0x38, 0xd3, 0x86, 0x10, 0x1a, 0xb6,
+ 0xb1, 0x04, 0x77, 0xd2, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f,
+ 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0x85, 0x20,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xed, 0x69, 0x01, 0x6f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x0c, 0xa1, 0x8b, 0x36, 0x32, 0x6b, 0xed,
+ 0xfc, 0x41, 0x5e, 0x01, 0x26, 0xff, 0x0e, 0x1e, 0xfe, 0xf1, 0x5f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x27, 0xf1, 0x98, 0x89, 0x06, 0x12, 0x83, 0x2d,
+ 0x11, 0x26, 0x69, 0xfa, 0x5d, 0x54, 0x56, 0x57, 0x53, 0x02, 0x0e, 0xa2,
+ 0x04, 0x91, 0x8b, 0x6c, 0x00, 0xab, 0xba, 0x09, 0x7c, 0xef, 0x33, 0xb7,
+ 0x15, 0xff, 0xff, 0xe4, 0xff, 0x96, 0x24, 0x59, 0xb8, 0x03, 0xfb, 0x9c,
+ 0xdd, 0xa0, 0x1b, 0x8b, 0x32, 0xe3, 0x28, 0xd8, 0x9b, 0xca, 0x32, 0xe3,
+ 0x09, 0xc6, 0xf5, 0xf2, 0xbc, 0x5f, 0x00, 0x97, 0xfa, 0x41, 0xf3, 0xfd,
+ 0x42, 0x33, 0x66, 0xa3, 0xd3, 0xd2, 0x25, 0x88, 0x87, 0x31, 0xa1, 0xb5,
+ 0x80, 0xfb, 0xe7, 0x7f, 0x3f, 0x12, 0x28, 0x8c, 0x33, 0x09, 0xaf, 0x24,
+ 0x1e, 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xfd, 0xc4, 0x88, 0x18, 0x20,
+ 0xa1, 0x97, 0x24, 0xd0, 0x00, 0xe0, 0xec, 0xf1, 0x80, 0xc3, 0x7f, 0xd0,
+ 0xe3, 0xbb, 0x65, 0x4f, 0x10, 0x49, 0xc7, 0x86, 0xad, 0xf3, 0x97, 0xb3,
+ 0xfc, 0xf2, 0x7e, 0xc6, 0x94, 0x91, 0x09, 0x73, 0xee, 0xc3, 0x21, 0x07,
+ 0xee, 0x10, 0x06, 0x86, 0xeb, 0x9f, 0xd7, 0xfd, 0x78, 0xef, 0x7e, 0xfd,
+ 0x78, 0xcf, 0x66, 0xf8, 0x10, 0xfb, 0x78, 0xc2, 0xc2, 0x47, 0x0f, 0x7a,
+ 0x0e, 0x20, 0xfc, 0x02, 0x78, 0x7c, 0x09, 0x38, 0xd9, 0x26, 0x42, 0x8b,
+ 0x61, 0xf9, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4,
+ 0x08, 0x7f, 0x37, 0xff, 0xf6, 0x82, 0x13, 0x40, 0x90, 0xb6, 0x80, 0xfc,
+ 0x2c, 0x17, 0x68, 0x77, 0xca, 0x02, 0x84, 0x31, 0x70, 0x11, 0x0d, 0x27,
+ 0xaf, 0x37, 0xdf, 0xed, 0xf0, 0xee, 0xb7, 0xe8, 0x36, 0x7a, 0x0f, 0xeb,
+ 0xdf, 0x8c, 0xf9, 0xbd, 0x88, 0xaa, 0xc2, 0x7a, 0x85, 0x93, 0x84, 0xcf,
+ 0xb5, 0x87, 0x64, 0xc7, 0x3f, 0xae, 0x03, 0x28, 0x07, 0x99, 0x7c, 0x52,
+ 0x75, 0xaf, 0x49, 0x8b, 0xcb, 0xe2, 0x62, 0xeb, 0xfe, 0xfc, 0x6f, 0x21,
+ 0xb0, 0x07, 0xd4, 0x15, 0x24, 0x87, 0x99, 0x44, 0x61, 0x00, 0xff, 0x87,
+ 0x90, 0x18, 0x39, 0x44, 0x60, 0x3f, 0x88, 0x60, 0x79, 0x5d, 0xfd, 0x77,
+ 0xff, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff,
+ 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf9, 0xbf,
+ 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x99, 0x60, 0x2d, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x3e, 0x02,
+ 0x10, 0x59, 0x13, 0x0c, 0x18, 0xce, 0xd4, 0xdf, 0x5e, 0x86, 0x62, 0x62,
+ 0xbf, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x2a, 0x0e, 0xfb, 0xc6, 0x04,
+ 0xba, 0x06, 0x2f, 0x51, 0x9e, 0xc0, 0x23, 0x79, 0xd1, 0x5a, 0x8c, 0xf6,
+ 0xfd, 0xe0, 0x26, 0xa7, 0xc1, 0xcf, 0xfa, 0x84, 0x94, 0xb1, 0xde, 0x5e,
+ 0x2e, 0x58, 0xc2, 0x4a, 0x5a, 0x18, 0x0f, 0xf9, 0x7e, 0x13, 0x17, 0xcc,
+ 0x64, 0xd1, 0xa5, 0x5e, 0x7a, 0x30, 0x91, 0x54, 0x2c, 0xb6, 0xcf, 0x55,
+ 0x7d, 0x7e, 0x2b, 0xff, 0xd7, 0xc5, 0x9a, 0x88, 0x12, 0x3c, 0xce, 0xe7,
+ 0x01, 0xd3, 0x2c, 0xb7, 0x41, 0x1f, 0x99, 0x43, 0x68, 0xf4, 0xf6, 0xfa,
+ 0x9b, 0x58, 0x7f, 0xff, 0xc9, 0xff, 0xeb, 0xd0, 0x88, 0x82, 0x87, 0x40,
+ 0x43, 0xa0, 0x1c, 0x1f, 0x42, 0x2c, 0x0d, 0x82, 0x3f, 0x78, 0x1e, 0xfe,
+ 0x94, 0xfb, 0x4f, 0x4d, 0xfa, 0x4b, 0xa8, 0x50, 0xb7, 0xcb, 0x8d, 0x76,
+ 0x77, 0xaa, 0x6d, 0x1f, 0xe5, 0xe7, 0xd7, 0xd6, 0x3b, 0x7b, 0xd6, 0x33,
+ 0x61, 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x24, 0x70, 0xf7, 0xab, 0xd2,
+ 0x04, 0x7c, 0x9f, 0x8e, 0x4a, 0x00, 0xa2, 0x0d, 0xe3, 0x60, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xae, 0x65, 0x81, 0x0f, 0xaf, 0x20, 0x30, 0x0c,
+ 0x83, 0x18, 0xe1, 0x10, 0xd2, 0x99, 0x85, 0x05, 0x7c, 0x39, 0xff, 0xff,
+ 0xe3, 0xa2, 0x10, 0xbc, 0x80, 0xbc, 0x7b, 0xf2, 0xf7, 0x8c, 0xeb, 0xc3,
+ 0x0c, 0x4d, 0xf0, 0xb7, 0xe1, 0x38, 0xaf, 0xc3, 0xa9, 0x13, 0x20, 0xbe,
+ 0x9f, 0xf7, 0xd7, 0xde, 0x36, 0x47, 0x02, 0x5f, 0xe9, 0x77, 0xfb, 0xfc,
+ 0xbf, 0xff, 0xff, 0xff, 0xff, 0x93, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f,
+ 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f, 0xa8, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xee, 0x71, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f,
+ 0xff, 0xfc, 0x4c, 0xa2, 0x70, 0x2f, 0xa0, 0xfb, 0x46, 0x2b, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xef, 0x80, 0x98, 0x14, 0x20, 0x01, 0x56, 0x36, 0x89,
+ 0x1b, 0x53, 0x70, 0xbc, 0x01, 0x6a, 0x53, 0x03, 0x11, 0x26, 0x8f, 0x83,
+ 0x70, 0x66, 0xb2, 0x03, 0x49, 0x11, 0x22, 0x7e, 0x61, 0x00, 0x58, 0xce,
+ 0x06, 0x80, 0xe5, 0x72, 0xdb, 0xe7, 0xc4, 0xfb, 0xbf, 0xf8, 0xaf, 0xff,
+ 0xff, 0x27, 0xe4, 0xf8, 0xb3, 0x4a, 0xb4, 0xa5, 0x0c, 0x0b, 0x21, 0x97,
+ 0x90, 0x4d, 0x39, 0x7f, 0xe4, 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb7, 0xc0,
+ 0x14, 0x74, 0x22, 0xd6, 0x7e, 0x71, 0x7c, 0xa6, 0x78, 0x01, 0xc5, 0x69,
+ 0xb5, 0x99, 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc,
+ 0xcf, 0xba, 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcc, 0x82, 0x23, 0x6f,
+ 0xff, 0xff, 0xfc, 0x9f, 0xff, 0xff, 0xc4, 0x0a, 0xa2, 0x86, 0x57, 0xfc,
+ 0x50, 0x44, 0xce, 0x35, 0xdf, 0x4f, 0xf7, 0xf3, 0x14, 0x03, 0xc3, 0xfc,
+ 0x24, 0x88, 0xcf, 0x6d, 0x4e, 0x1d, 0xf4, 0x85, 0xf4, 0x08, 0x6c, 0x32,
+ 0x6a, 0xdd, 0x8d, 0x90, 0x62, 0x3a, 0x4d, 0xa3, 0x71, 0xff, 0x3f, 0xaf,
+ 0xfa, 0xf1, 0xde, 0xfd, 0xf8, 0xef, 0x46, 0xff, 0xfc, 0x9e, 0x08, 0x4f,
+ 0x00, 0x30, 0x3c, 0xaf, 0x8e, 0xc0, 0x02, 0xef, 0xfc, 0x52, 0x97, 0x88,
+ 0x7b, 0xff, 0x47, 0xf4, 0xbc, 0x13, 0x7c, 0x1c, 0x5e, 0x5f, 0x89, 0x5c,
+ 0x00, 0xfc, 0xf4, 0x87, 0xd9, 0x19, 0x40, 0x13, 0xf6, 0x9a, 0x43, 0xa9,
+ 0x0f, 0x01, 0xf8, 0x40, 0xca, 0xeb, 0x64, 0x03, 0xa6, 0x00, 0x0f, 0xef,
+ 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4, 0x26, 0x6d,
+ 0x3d, 0xd0, 0x85, 0x1c, 0x8b, 0x62, 0x30, 0xf5, 0xd9, 0xe0, 0x11, 0xeb,
+ 0xed, 0x8a, 0xeb, 0x62, 0x01, 0xd3, 0x0d, 0x78, 0x3d, 0x40, 0x10, 0xdf,
+ 0x14, 0x2f, 0x33, 0xef, 0xfc, 0x60, 0x8d, 0xab, 0xa5, 0xa9, 0x1f, 0x90,
+ 0x30, 0xff, 0xf3, 0x5f, 0xff, 0xf8, 0x49, 0x80, 0x17, 0x9f, 0xa4, 0x1a,
+ 0xb3, 0x79, 0x3e, 0x3f, 0xc0, 0x7f, 0x94, 0x00, 0x03, 0xf0, 0x5f, 0x81,
+ 0x83, 0xfa, 0xf7, 0xe3, 0x0d, 0x4c, 0xe6, 0x7f, 0x3e, 0x29, 0x41, 0x13,
+ 0x5d, 0xdb, 0x96, 0x7e, 0xe7, 0xdf, 0x69, 0xf7, 0x01, 0xff, 0xff, 0x7f,
+ 0x0f, 0xb5, 0xf3, 0xc0, 0xff, 0x5d, 0x8d, 0x3e, 0xe0, 0x3f, 0xff, 0xef,
+ 0xe3, 0xfd, 0x83, 0xf0, 0xf9, 0xbf, 0xd7, 0x3d, 0x70, 0xac, 0x01, 0x7b,
+ 0x5d, 0xf6, 0xad, 0xbf, 0xf6, 0xff, 0xf8, 0x01, 0x61, 0xd6, 0xeb, 0xd9,
+ 0x15, 0xeb, 0x96, 0x62, 0x7b, 0xe7, 0xf3, 0xff, 0xe8, 0xf1, 0x3f, 0xfd,
+ 0xf8, 0xdf, 0xf6, 0x20, 0x78, 0x1e, 0x09, 0xbb, 0x8f, 0x60, 0xff, 0xbc,
+ 0x38, 0x9f, 0xef, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xab, 0xdb, 0x60, 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd7, 0xfe, 0x63, 0xe0, 0x0b, 0x5a, 0x60, 0xb0, 0xb2, 0x60,
+ 0xf5, 0xd5, 0x36, 0xfc, 0xbe, 0x2b, 0xff, 0xff, 0xff, 0x86, 0x03, 0xb3,
+ 0xc2, 0xa0, 0xe8, 0xab, 0x8c, 0x15, 0x6f, 0xac, 0x8c, 0x1e, 0x7c, 0x15,
+ 0x9d, 0xa9, 0x9c, 0xb0, 0x0b, 0x5f, 0x51, 0xf7, 0x3c, 0x1f, 0xec, 0x74,
+ 0x0c, 0xaa, 0x95, 0x8b, 0x30, 0xbf, 0xb6, 0x6e, 0x5f, 0x96, 0x11, 0x8a,
+ 0xff, 0xf7, 0xe1, 0x8f, 0xd6, 0xc3, 0x00, 0xf6, 0x4e, 0x04, 0xd7, 0xd3,
+ 0x3e, 0x87, 0x04, 0x83, 0x69, 0xd6, 0xd6, 0xa4, 0xc5, 0x4f, 0x3f, 0x1f,
+ 0x4a, 0x4c, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xbf, 0x0c, 0x70, 0xc1, 0xff,
+ 0xe1, 0x2e, 0x02, 0x5b, 0x9d, 0x1e, 0x21, 0x93, 0x2f, 0x02, 0x4f, 0xf2,
+ 0xd8, 0xfa, 0xfa, 0xc7, 0x6f, 0x7a, 0xc6, 0x69, 0x78, 0x63, 0xe0, 0x43,
+ 0x22, 0xfc, 0x13, 0x16, 0x12, 0x38, 0x7b, 0xd0, 0x62, 0x03, 0xc3, 0xce,
+ 0x50, 0x21, 0x40, 0x9b, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xaf, 0x6d, 0x81, 0x4d, 0x78, 0x63, 0xf2, 0xc8, 0xbf, 0x04, 0xc2, 0x20,
+ 0x22, 0xc6, 0x62, 0x02, 0x3d, 0x14, 0x08, 0x79, 0xca, 0x04, 0x28, 0x12,
+ 0x6f, 0xbd, 0xe3, 0x23, 0xf1, 0xd5, 0xe5, 0x80, 0xc0, 0x45, 0x8c, 0xf0,
+ 0x23, 0xd0, 0x69, 0x3f, 0xd9, 0xe0, 0x78, 0xee, 0x7e, 0x18, 0xff, 0x38,
+ 0xae, 0xa1, 0x17, 0x3f, 0xe1, 0x36, 0xbc, 0x0f, 0xf1, 0x7f, 0x80, 0x1f,
+ 0x97, 0xdc, 0x4e, 0xb7, 0x76, 0x92, 0xf0, 0x6f, 0xef, 0x1b, 0xdf, 0xfc,
+ 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08,
+ 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff, 0xff, 0xaf, 0xf3, 0x7d, 0x40,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xef, 0x79, 0x03, 0xbf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5,
+ 0xff, 0xfd, 0xe2, 0x66, 0x3e, 0x00, 0x17, 0xab, 0x47, 0xf6, 0x92, 0x3e,
+ 0xf5, 0xd4, 0x33, 0x5c, 0x60, 0x92, 0x97, 0x52, 0x5f, 0xe2, 0xbf, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0x60, 0xec, 0xe8, 0xa8, 0xa2, 0xe2, 0xe6, 0xf6,
+ 0x39, 0xf9, 0x58, 0x75, 0x22, 0xdb, 0x49, 0x73, 0x6d, 0x4d, 0x68, 0x5a,
+ 0xc3, 0x7d, 0xef, 0x36, 0xcf, 0x00, 0x1b, 0x6f, 0x42, 0x89, 0xff, 0x76,
+ 0xd4, 0x53, 0xd0, 0x6d, 0x65, 0x3c, 0x9f, 0x8b, 0xfd, 0x9b, 0xf2, 0x1b,
+ 0x9f, 0x25, 0xff, 0xd6, 0x45, 0x57, 0x3e, 0x64, 0x87, 0xda, 0x5f, 0x84,
+ 0xc5, 0x8e, 0x2a, 0x1c, 0x94, 0xe7, 0xcd, 0xf3, 0xd1, 0x40, 0xbc, 0x09,
+ 0xd7, 0xad, 0xf0, 0x7f, 0x8b, 0x2c, 0x37, 0x7b, 0xbc, 0x1e, 0x2b, 0xff,
+ 0xff, 0xfe, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x0c, 0x0f, 0x2b,
+ 0xe3, 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8, 0x58, 0xc2, 0x9e, 0x45, 0xe7,
+ 0x3e, 0x01, 0x9f, 0x82, 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f,
+ 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0x91, 0xa0, 0x26, 0xe3, 0xf3,
+ 0x33, 0x47, 0xc3, 0xff, 0x09, 0x20, 0x17, 0x4d, 0x03, 0x31, 0xe5, 0x6a,
+ 0x0f, 0xc0, 0x11, 0x4d, 0x03, 0x31, 0xcd, 0x5a, 0x80, 0x11, 0x4d, 0x03,
+ 0x31, 0x4d, 0x5a, 0xbc, 0x39, 0xfd, 0x7f, 0xd7, 0x8e, 0xf7, 0xef, 0xc7,
+ 0x1b, 0xe5, 0x2f, 0xa5, 0x21, 0x42, 0xf0, 0x1c, 0x46, 0x70, 0x24, 0xb4,
+ 0x01, 0x74, 0xaa, 0x12, 0xae, 0xf9, 0x3e, 0xf4, 0x34, 0x01, 0x9e, 0x95,
+ 0xa9, 0x87, 0x1d, 0xb2, 0x6c, 0x7b, 0x88, 0xff, 0x84, 0x9f, 0x80, 0x08,
+ 0x7e, 0xee, 0x77, 0x3f, 0xfb, 0xe7, 0x37, 0xc7, 0xff, 0x87, 0xe0, 0x06,
+ 0x25, 0xc4, 0x8d, 0xa5, 0xda, 0xc8, 0xd1, 0xfc, 0xdf, 0x08, 0xff, 0xc3,
+ 0xea, 0x01, 0x19, 0x68, 0xd2, 0xaf, 0x3e, 0xfc, 0x6c, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xbd, 0xe4, 0x57, 0x21, 0xa0, 0x06, 0xc7, 0x65, 0xa0,
+ 0x18, 0xc3, 0x87, 0x37, 0xe6, 0xd3, 0xe9, 0x14, 0xf8, 0x4d, 0x07, 0x00,
+ 0x12, 0x6e, 0x9d, 0xfa, 0x27, 0xee, 0x78, 0x3d, 0x0e, 0x69, 0xec, 0xb9,
+ 0xeb, 0xe9, 0xfe, 0x00, 0x0f, 0xb4, 0xef, 0xd4, 0xb5, 0xbf, 0xd8, 0x0a,
+ 0xcf, 0xf1, 0x11, 0x35, 0xef, 0xc6, 0x73, 0x08, 0x82, 0x4f, 0x1f, 0xf6,
+ 0xff, 0x01, 0x5b, 0xbf, 0xfb, 0xf1, 0xbc, 0x8e, 0x1d, 0x80, 0x37, 0xff,
+ 0xed, 0x42, 0x46, 0x8a, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f,
+ 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xac, 0x1d, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xf9, 0x04, 0x14, 0x4e, 0x2b, 0xff, 0xff,
+ 0xff, 0x86, 0x03, 0xb0, 0xc1, 0x14, 0x5e, 0x0b, 0x8c, 0x20, 0x0a, 0x8d,
+ 0x36, 0x5a, 0x42, 0x00, 0x2d, 0x40, 0x33, 0x7f, 0xba, 0x96, 0x93, 0x0b,
+ 0x20, 0x08, 0xe4, 0xbd, 0xdc, 0xdf, 0xf0, 0x46, 0x5f, 0xe8, 0xb6, 0x61,
+ 0x68, 0xc5, 0x34, 0xb4, 0x30, 0x1f, 0xf7, 0xfc, 0x26, 0x2c, 0x0f, 0x24,
+ 0x0e, 0x0a, 0xcd, 0xce, 0x64, 0x44, 0x9b, 0xff, 0xfe, 0xaf, 0x2a, 0x0c,
+ 0x7b, 0xa8, 0xa7, 0x7f, 0xc5, 0x7f, 0xff, 0x58, 0xb4, 0x00, 0xbb, 0x8e,
+ 0x23, 0xdd, 0x47, 0x5f, 0xf3, 0x36, 0x78, 0x07, 0x12, 0xbb, 0x3e, 0xa7,
+ 0xe4, 0x48, 0x00, 0xdc, 0x3a, 0x30, 0x70, 0x69, 0xbc, 0xbb, 0x6a, 0x6d,
+ 0xb5, 0x9f, 0xff, 0xf2, 0x7f, 0xfb, 0xf2, 0x70, 0x2a, 0x08, 0x48, 0x0c,
+ 0x67, 0xd1, 0x38, 0xcf, 0x00, 0x26, 0x6b, 0xba, 0xfc, 0x5c, 0x01, 0xa9,
+ 0x21, 0x2d, 0xed, 0x6c, 0x19, 0xbf, 0x78, 0xc8, 0x88, 0xc9, 0x8c, 0x3d,
+ 0x12, 0x4e, 0x3c, 0xfa, 0xfa, 0xc7, 0x6f, 0x78, 0xe5, 0xe1, 0x8f, 0xfe,
+ 0x3b, 0xbc, 0x2a, 0x5c, 0x26, 0x7d, 0xac, 0x0e, 0xd3, 0xca, 0x45, 0x8c,
+ 0xbc, 0xf5, 0x55, 0x0c, 0x7f, 0xdf, 0x7f, 0x19, 0xe0, 0x26, 0xa3, 0xd0,
+ 0x70, 0x04, 0x74, 0x3a, 0xc6, 0x78, 0x8d, 0xa3, 0x37, 0xf2, 0xf3, 0xf3,
+ 0xdf, 0xc7, 0x3e, 0x18, 0xdd, 0xc8, 0x1c, 0x7f, 0xe1, 0x2e, 0x3f, 0xba,
+ 0x76, 0x91, 0x82, 0x82, 0x2f, 0x01, 0x04, 0xc3, 0x3a, 0x7e, 0x7f, 0x2f,
+ 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb0, 0x75, 0x83, 0x27, 0x90,
+ 0xd0, 0x11, 0x7e, 0xdf, 0x9f, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1b, 0xfb,
+ 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff,
+ 0x08, 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff, 0xff, 0x8d, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf0, 0x81, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
+ 0xf3, 0x1f, 0x80, 0x4c, 0x19, 0xb8, 0x91, 0x69, 0x62, 0x64, 0x8b, 0xe0,
+ 0x3c, 0xdd, 0xf0, 0xae, 0xdf, 0xec, 0x1e, 0x00, 0x72, 0x6f, 0x64, 0xba,
+ 0xf9, 0x81, 0x4d, 0xe4, 0x16, 0x72, 0xb3, 0x15, 0xbf, 0xa7, 0x89, 0x8a,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0xe2, 0x49, 0x8c, 0x84, 0x47, 0x00,
+ 0x0d, 0x7b, 0x26, 0x43, 0x47, 0x43, 0xd5, 0xe9, 0xfe, 0x85, 0x9b, 0x0e,
+ 0x9e, 0xf0, 0x88, 0xfc, 0x16, 0x29, 0x48, 0x7e, 0x61, 0x91, 0x83, 0xa9,
+ 0x89, 0xc0, 0x08, 0xa3, 0x26, 0x49, 0x9c, 0x6e, 0xee, 0xc6, 0xb3, 0x60,
+ 0x3b, 0xc9, 0x10, 0x34, 0x3d, 0x7d, 0x23, 0x63, 0xdf, 0x80, 0x40, 0xe6,
+ 0x30, 0x62, 0x38, 0x83, 0xc4, 0x1a, 0x61, 0x6a, 0x6d, 0x97, 0xa1, 0xad,
+ 0xe7, 0xff, 0x7b, 0x47, 0x2e, 0x40, 0x2b, 0xe7, 0xf0, 0x8e, 0xac, 0xce,
+ 0x29, 0x7b, 0xdf, 0x8c, 0x00, 0x01, 0x99, 0x24, 0x9b, 0x7f, 0xbb, 0x06,
+ 0xd8, 0xdc, 0xbf, 0xce, 0xff, 0x80, 0x10, 0xed, 0x91, 0x89, 0x64, 0xf7,
+ 0xa0, 0xf4, 0x98, 0xf2, 0x3e, 0x36, 0xa6, 0x0c, 0xe7, 0x6e, 0x24, 0x97,
+ 0x77, 0xc3, 0x9b, 0xfc, 0x25, 0xf8, 0x20, 0x12, 0x05, 0x11, 0x71, 0x29,
+ 0x8f, 0xa2, 0x3f, 0xff, 0xf0, 0x2a, 0x28, 0x88, 0xc7, 0x49, 0x96, 0xbf,
+ 0xde, 0x2b, 0xff, 0xff, 0xf8, 0xb3, 0x0e, 0x9d, 0xa9, 0x10, 0x3f, 0xc3,
+ 0x31, 0x2f, 0x46, 0x95, 0x13, 0xb9, 0xbf, 0x15, 0x22, 0x62, 0x77, 0x55,
+ 0xb7, 0xc2, 0x67, 0xda, 0xf0, 0x40, 0x61, 0x8e, 0x6a, 0x70, 0x97, 0xd1,
+ 0xff, 0xcf, 0x80, 0x60, 0x11, 0x45, 0x7b, 0x00, 0xf8, 0xcc, 0x6f, 0xeb,
+ 0xe1, 0x28, 0x23, 0x36, 0x53, 0x9f, 0xea, 0x59, 0x5c, 0x81, 0xa9, 0x8c,
+ 0xbf, 0x9f, 0x77, 0x6c, 0x85, 0xe3, 0xf1, 0x71, 0xa1, 0xfe, 0x7d, 0x56,
+ 0x25, 0xa9, 0x04, 0xde, 0xe7, 0x37, 0x1e, 0x83, 0xcc, 0x44, 0x6f, 0x11,
+ 0xdf, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xb1, 0x47, 0x5c, 0xc1, 0xde,
+ 0x64, 0x0a, 0xe0, 0x5f, 0xf0, 0x92, 0x28, 0x8a, 0xd7, 0xd5, 0xe6, 0x3e,
+ 0x2d, 0x9d, 0x62, 0xdf, 0x61, 0x9c, 0x2d, 0x78, 0x55, 0x9d, 0xdf, 0xc3,
+ 0x8b, 0x17, 0x99, 0xe5, 0xab, 0x93, 0x46, 0x29, 0xba, 0x93, 0x4f, 0xd2,
+ 0xc9, 0xcf, 0x00, 0x33, 0xf2, 0x97, 0x00, 0x0a, 0x7f, 0x29, 0xdf, 0x00,
+ 0x38, 0x1b, 0xfe, 0xee, 0xfe, 0xe9, 0xdd, 0x1f, 0xaf, 0x1d, 0xc5, 0x60,
+ 0x04, 0xaf, 0x91, 0x4c, 0x06, 0x33, 0xeb, 0x9a, 0x1b, 0x86, 0x27, 0xea,
+ 0x14, 0x60, 0xe1, 0xcd, 0x01, 0xaf, 0xd6, 0x63, 0xfa, 0x94, 0x01, 0x10,
+ 0x00, 0x00, 0x40, 0x33, 0x35, 0x75, 0x5a, 0xff, 0xc2, 0x4c, 0x15, 0x32,
+ 0xe1, 0xfe, 0x0f, 0xc0, 0x3c, 0x1f, 0x2c, 0x92, 0xe7, 0x0f, 0xe8, 0xd5,
+ 0xeb, 0x5e, 0x7f, 0xfe, 0x8b, 0x87, 0xf8, 0x26, 0xd5, 0x70, 0xc7, 0x55,
+ 0xe0, 0x9d, 0x7c, 0x06, 0x80, 0xdc, 0xb5, 0x80, 0xd5, 0x38, 0x54, 0xeb,
+ 0xec, 0xf7, 0xd2, 0x00, 0xa2, 0xf6, 0xc0, 0xd4, 0x44, 0x4c, 0xeb, 0xc7,
+ 0xef, 0x03, 0xfe, 0x6f, 0x87, 0xaa, 0xfc, 0x10, 0x2f, 0x80, 0x3f, 0x2a,
+ 0x8e, 0xee, 0x00, 0x7f, 0x75, 0x67, 0x7f, 0x74, 0xfc, 0x72, 0x10, 0x0c,
+ 0x31, 0x4c, 0x00, 0x27, 0x95, 0xb3, 0x10, 0xbd, 0x5a, 0x43, 0x43, 0x40,
+ 0x60, 0xc0, 0x83, 0x29, 0x26, 0x85, 0x35, 0x7f, 0x2b, 0xbb, 0x3f, 0x13,
+ 0x13, 0x88, 0xf3, 0x0f, 0x57, 0xff, 0xe1, 0xf3, 0x00, 0x3c, 0xa5, 0x51,
+ 0xdd, 0xc0, 0x07, 0xe2, 0x46, 0xa6, 0x75, 0xaf, 0xdf, 0x8d, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x15, 0x7f, 0xcb, 0xef, 0xc6,
+ 0x72, 0x08, 0x60, 0x70, 0xcc, 0xb7, 0xbf, 0x9b, 0x86, 0x10, 0x3b, 0x77,
+ 0xff, 0x7e, 0x37, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xc2, 0x1f,
+ 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xac, 0x5f, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xeb, 0xff, 0xaf, 0xdf, 0x90, 0x4c, 0xb1, 0x67, 0xc1, 0x1b, 0x47,
+ 0x7d, 0x5f, 0xc1, 0x1b, 0xd2, 0xf2, 0xae, 0x2b, 0xff, 0xff, 0xfd, 0xf8,
+ 0x60, 0xc1, 0xac, 0xfb, 0xc6, 0x82, 0xab, 0x62, 0x00, 0x55, 0xaf, 0x8d,
+ 0xd9, 0xff, 0xcd, 0xc6, 0x92, 0x9c, 0xf0, 0x07, 0xe3, 0xd3, 0xfd, 0x18,
+ 0x37, 0x60, 0x34, 0xd3, 0x83, 0xab, 0xa7, 0x80, 0xeb, 0xf2, 0xc7, 0xfc,
+ 0xef, 0xf9, 0xae, 0x0e, 0x58, 0x43, 0xa0, 0x33, 0x65, 0x70, 0x3f, 0x92,
+ 0x77, 0x35, 0x44, 0xb1, 0x26, 0x63, 0x9d, 0xa3, 0xd7, 0x1e, 0x12, 0x53,
+ 0x1a, 0x48, 0xee, 0xa3, 0xc5, 0x7f, 0xfb, 0xf0, 0xc7, 0x1e, 0x00, 0x68,
+ 0xf9, 0xa4, 0x59, 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3d, 0x5a, 0x96,
+ 0x1e, 0xad, 0x26, 0x0a, 0xc5, 0x14, 0x04, 0x82, 0x99, 0x78, 0x09, 0x19,
+ 0xce, 0xa7, 0x94, 0x5f, 0x11, 0x48, 0xe1, 0xb5, 0xb4, 0x9b, 0xf3, 0xc7,
+ 0x2e, 0xad, 0x80, 0x6b, 0x21, 0xf9, 0xff, 0xff, 0x27, 0xff, 0xbf, 0x0c,
+ 0x1a, 0xa0, 0x85, 0xc7, 0xfe, 0x12, 0x66, 0x51, 0x24, 0x6d, 0x57, 0x81,
+ 0x98, 0x9b, 0xe8, 0x3f, 0xbb, 0xc7, 0xb9, 0x52, 0xc6, 0x39, 0x38, 0x78,
+ 0x3b, 0x7c, 0xcd, 0x4a, 0xbe, 0x56, 0x33, 0xbe, 0x51, 0x7f, 0xf0, 0x00,
+ 0xce, 0xba, 0xfa, 0xc7, 0x2c, 0xc5, 0x80, 0x11, 0x02, 0xfb, 0x30, 0xe8,
+ 0x43, 0xf7, 0xf4, 0x9e, 0x00, 0x02, 0x00, 0x18, 0x63, 0xfc, 0x47, 0x5f,
+ 0x0a, 0xdf, 0x6c, 0x0e, 0x88, 0xad, 0x7e, 0x87, 0x80, 0x4a, 0xdf, 0x7b,
+ 0x43, 0x1f, 0xfc, 0x75, 0x18, 0x57, 0x8f, 0x77, 0xcb, 0x07, 0x80, 0xf3,
+ 0x2c, 0x20, 0x69, 0xc0, 0x79, 0x1c, 0x76, 0xf4, 0xa4, 0x7d, 0x77, 0x8e,
+ 0x7d, 0x06, 0xa2, 0x7a, 0x8c, 0x10, 0x20, 0x01, 0x91, 0xe8, 0x28, 0xc6,
+ 0xc3, 0xde, 0xa5, 0xbf, 0x07, 0xac, 0xe5, 0x8c, 0x3c, 0xf4, 0x7b, 0xc6,
+ 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x84, 0xbe, 0x5d,
+ 0xe3, 0x1f, 0xbe, 0xfe, 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb,
+ 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x01, 0x0f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
+ 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99, 0x8f, 0x81, 0x0b, 0x71, 0xfb, 0xf1,
+ 0x11, 0x9f, 0xd3, 0xf3, 0x61, 0x12, 0x94, 0xbc, 0xbf, 0xad, 0x8f, 0xc5,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe5, 0x20, 0xa1, 0x81, 0x07, 0xdb,
+ 0x97, 0x37, 0x56, 0xc1, 0xaf, 0x3d, 0x8f, 0xde, 0x35, 0x47, 0xcd, 0x48,
+ 0x5c, 0xc0, 0x0d, 0xad, 0x07, 0xc8, 0x5c, 0xcb, 0xdf, 0x7e, 0xe7, 0x7b,
+ 0x1f, 0x36, 0x9f, 0x0b, 0xfe, 0x13, 0x12, 0xfa, 0x06, 0xc0, 0x02, 0xcb,
+ 0xd5, 0x7c, 0xc2, 0x60, 0xbf, 0xf0, 0x5b, 0xd9, 0xef, 0x40, 0x0b, 0x17,
+ 0xb5, 0x4e, 0x77, 0xf5, 0x45, 0x7f, 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x2a,
+ 0x12, 0xa5, 0xac, 0xdc, 0x01, 0x47, 0x44, 0x3a, 0x8f, 0xcd, 0xb0, 0x75,
+ 0x6f, 0xcf, 0x01, 0x54, 0x9c, 0x9f, 0x85, 0x1a, 0x00, 0x9a, 0x12, 0x8c,
+ 0xf3, 0xbb, 0xc5, 0x81, 0xeb, 0x83, 0x65, 0x3e, 0x4c, 0x59, 0x98, 0xbe,
+ 0xa7, 0x93, 0xa2, 0xc0, 0x7a, 0xf1, 0x32, 0x9a, 0x1e, 0xe4, 0x1e, 0xe3,
+ 0x9b, 0xff, 0xf2, 0x28, 0x21, 0x3c, 0x00, 0x88, 0xdb, 0x09, 0x0a, 0xec,
+ 0x7f, 0xbc, 0x00, 0x7a, 0x97, 0xc0, 0x7e, 0xf3, 0x1f, 0x7f, 0xe0, 0xff,
+ 0xff, 0xdc, 0xf2, 0xfe, 0x39, 0xf4, 0xc1, 0x0c, 0x7c, 0xf1, 0xff, 0xff,
+ 0xc9, 0xff, 0xff, 0xff, 0xe2, 0x08, 0x68, 0x31, 0xe6, 0xe1, 0x6c, 0x08,
+ 0x35, 0x1a, 0x4b, 0x80, 0x3b, 0x08, 0x47, 0xff, 0x39, 0xa5, 0x69, 0x14,
+ 0x89, 0xbf, 0x12, 0x58, 0x03, 0xd4, 0xbe, 0x03, 0xf7, 0x98, 0x02, 0xe4,
+ 0xab, 0xa7, 0xba, 0x7e, 0xa6, 0xf7, 0xf8, 0xff, 0xfe, 0xe0, 0x61, 0xc0,
+ 0x0b, 0x8e, 0xdd, 0x32, 0x2a, 0xbd, 0x54, 0x18, 0xce, 0xff, 0xfb, 0xdf,
+ 0xef, 0xf3, 0x0a, 0x4f, 0x4f, 0x98, 0x4e, 0x09, 0xfe, 0x02, 0x57, 0xa9,
+ 0x7f, 0x81, 0xe8, 0x18, 0x12, 0x3d, 0x0e, 0xf6, 0xff, 0xc0, 0x1c, 0xdc,
+ 0xb3, 0xd2, 0x27, 0x8e, 0xfe, 0x07, 0x0c, 0x44, 0x4e, 0x64, 0x9a, 0x43,
+ 0x9e, 0x13, 0xc5, 0x8c, 0x01, 0x2b, 0xd4, 0xbf, 0xc0, 0xff, 0xc3, 0x88,
+ 0xb7, 0x7f, 0x80, 0x39, 0xb9, 0x67, 0xa5, 0xef, 0xc7, 0x7b, 0x37, 0x8b,
+ 0x7f, 0xf0, 0xf8, 0x9f, 0x00, 0x19, 0xff, 0x11, 0x7f, 0x3f, 0xef, 0xff,
+ 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xc6, 0x24, 0x25, 0xff,
+ 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53,
+ 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
+ 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x25, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x3e,
+ 0x02, 0x6e, 0x7a, 0xfb, 0x8e, 0x3b, 0x96, 0x2b, 0xff, 0xff, 0xff, 0xbc,
+ 0x50, 0x83, 0x18, 0x3b, 0x91, 0x21, 0xdd, 0x1e, 0x97, 0x80, 0x37, 0x8a,
+ 0x51, 0xe0, 0x0e, 0xbe, 0x40, 0x24, 0x18, 0x74, 0x80, 0x4f, 0xd0, 0xfe,
+ 0x32, 0x28, 0xf4, 0x07, 0xee, 0x45, 0x20, 0xe0, 0x70, 0xc4, 0x8b, 0xeb,
+ 0x7f, 0xc2, 0x62, 0x40, 0xc1, 0x00, 0x12, 0x08, 0x8e, 0x86, 0x4b, 0x07,
+ 0xe5, 0xcc, 0x6e, 0xdb, 0xbd, 0x78, 0x66, 0xda, 0x4a, 0x4b, 0xb5, 0xe2,
+ 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0xb3, 0x6c, 0xd8, 0x04, 0x7a,
+ 0xfb, 0x61, 0xec, 0xe9, 0x6f, 0x09, 0x79, 0x79, 0x64, 0xdd, 0xad, 0x07,
+ 0xc9, 0xbf, 0xe9, 0x01, 0xe7, 0xaf, 0xfc, 0x3a, 0xd4, 0x85, 0xfd, 0xfe,
+ 0xa9, 0x15, 0x07, 0x30, 0xe3, 0x47, 0xce, 0xbd, 0x7f, 0xf9, 0x3f, 0xff,
+ 0x86, 0x2d, 0x4d, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea, 0xd3, 0xfc, 0x80,
+ 0x9a, 0xd0, 0xd9, 0x50, 0x36, 0xd4, 0x2d, 0xe0, 0x98, 0x9c, 0x7c, 0x0e,
+ 0x70, 0xc4, 0xac, 0x55, 0x02, 0x26, 0xcf, 0xb5, 0x00, 0x64, 0x7a, 0xb8,
+ 0x7f, 0xd3, 0xa1, 0x75, 0x47, 0x99, 0x80, 0x83, 0xfe, 0x9f, 0x25, 0x7e,
+ 0xc0, 0xe8, 0xbc, 0x00, 0xf9, 0xfc, 0x91, 0xb7, 0x14, 0x83, 0x6f, 0x7f,
+ 0xcd, 0xff, 0x7f, 0xf8, 0x10, 0x7e, 0x3b, 0xd2, 0xfc, 0x31, 0xfe, 0x75,
+ 0x3f, 0x82, 0x02, 0xe1, 0x1d, 0xf8, 0x97, 0xf2, 0x73, 0xec, 0xa0, 0xfc,
+ 0x24, 0xc7, 0x77, 0xe1, 0x89, 0xeb, 0x13, 0xff, 0x87, 0xd0, 0x02, 0xdf,
+ 0xb5, 0x81, 0x0e, 0x9f, 0xe0, 0x0f, 0x7d, 0xf1, 0xec, 0x43, 0x1f, 0xe6,
+ 0x73, 0xd7, 0x0a, 0xa0, 0x21, 0xd4, 0x06, 0xbb, 0xcf, 0xf0, 0x25, 0xf4,
+ 0x07, 0xef, 0x67, 0x6e, 0x0c, 0x17, 0x78, 0xed, 0xb8, 0x92, 0x17, 0x02,
+ 0x6f, 0x40, 0x79, 0x91, 0xf7, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xb2, 0x85, 0x82, 0x2f, 0x97, 0x78, 0xcf, 0xbf, 0xbc, 0x6f, 0xff,
+ 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xc2,
+ 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5f, 0xff, 0xff, 0xe3, 0x60, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xf2, 0x91, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xae,
+ 0x24, 0xa5, 0xc0, 0x0e, 0xe6, 0xa7, 0x63, 0xdf, 0x0a, 0x4b, 0xdb, 0xd2,
+ 0xed, 0x62, 0x7f, 0xfc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x51, 0xb8, 0x24,
+ 0x10, 0xd9, 0x1a, 0x11, 0x73, 0x88, 0x03, 0xff, 0xe6, 0x20, 0x6f, 0x88,
+ 0x98, 0xf3, 0x8b, 0x62, 0x77, 0x63, 0x5d, 0x30, 0x66, 0x41, 0xc5, 0xda,
+ 0xa3, 0x88, 0x6a, 0xa4, 0xda, 0x7e, 0x2a, 0x50, 0xbc, 0x91, 0x90, 0x1c,
+ 0x84, 0x17, 0x28, 0x44, 0xdd, 0x57, 0xd7, 0xf8, 0x08, 0xca, 0xcd, 0x47,
+ 0xbf, 0x37, 0xb1, 0xe1, 0x2a, 0x25, 0x63, 0x21, 0x1f, 0x27, 0xe0, 0x86,
+ 0x18, 0x08, 0x5e, 0xb6, 0xb1, 0x65, 0x4c, 0x0c, 0xed, 0x3d, 0xc2, 0x2f,
+ 0xff, 0xe0, 0x37, 0xbf, 0x57, 0xc8, 0x57, 0x00, 0x5a, 0xf3, 0x2a, 0x6c,
+ 0xfb, 0x33, 0x92, 0x0a, 0xad, 0xa3, 0x61, 0x30, 0xa9, 0xf9, 0x53, 0x2a,
+ 0x53, 0x00, 0x1f, 0x39, 0xff, 0x46, 0x10, 0x6e, 0x50, 0xe9, 0xa7, 0x73,
+ 0x17, 0x00, 0x5a, 0xa4, 0x7e, 0x8c, 0x36, 0x3b, 0xbc, 0x97, 0x0c, 0x88,
+ 0x63, 0x55, 0xc2, 0x9b, 0xa6, 0x99, 0x3f, 0xb4, 0xff, 0x09, 0x95, 0x2c,
+ 0xa1, 0x39, 0x68, 0xe8, 0xe2, 0x1c, 0xfe, 0x2b, 0xff, 0xf9, 0x3f, 0xf0,
+ 0x41, 0x08, 0xae, 0x1e, 0x49, 0x94, 0x0d, 0x9a, 0x26, 0xe8, 0x3c, 0x64,
+ 0x74, 0xc0, 0x27, 0x16, 0x5a, 0x82, 0xfe, 0xd9, 0x4a, 0xa1, 0x20, 0x7b,
+ 0xfe, 0x4f, 0x97, 0x89, 0xc5, 0xbf, 0x1e, 0x8e, 0x01, 0xd1, 0x95, 0xd3,
+ 0x07, 0x96, 0x6b, 0x5a, 0x94, 0x42, 0x06, 0x50, 0x3a, 0x32, 0x41, 0x12,
+ 0xda, 0x61, 0xce, 0xd2, 0x6e, 0x3d, 0x5c, 0xa2, 0xd6, 0x02, 0x47, 0xca,
+ 0x03, 0xbf, 0xa5, 0xac, 0xa6, 0x6a, 0x3d, 0x3d, 0x22, 0x58, 0xcc, 0x73,
+ 0x0c, 0x1b, 0xd3, 0x0f, 0x9f, 0xd3, 0xbb, 0x13, 0xf1, 0x12, 0x46, 0x53,
+ 0x98, 0x37, 0xa7, 0xa5, 0x1e, 0x3f, 0x31, 0x60, 0x42, 0xdc, 0x7e, 0xec,
+ 0xfc, 0x9f, 0xe0, 0x61, 0x03, 0x00, 0x18, 0x40, 0xf8, 0x21, 0x70, 0x04,
+ 0x32, 0xb1, 0xf2, 0x1e, 0xfc, 0x81, 0x24, 0x75, 0x9c, 0x5f, 0x00, 0x02,
+ 0x97, 0x61, 0xe0, 0x00, 0x4b, 0x33, 0x8e, 0xef, 0xff, 0xc2, 0x4c, 0xad,
+ 0x51, 0x98, 0x0e, 0xa4, 0x32, 0xb4, 0xee, 0xfe, 0xb7, 0xff, 0x3d, 0x79,
+ 0x3f, 0xff, 0xbc, 0x32, 0x20, 0x42, 0x84, 0x43, 0x64, 0xe3, 0xd1, 0xde,
+ 0x9a, 0x6a, 0x3c, 0x36, 0x15, 0x73, 0x8f, 0x34, 0x14, 0x92, 0x42, 0x76,
+ 0x40, 0x80, 0x82, 0x32, 0x6f, 0x6e, 0x8c, 0xf3, 0x58, 0x60, 0x30, 0x51,
+ 0x02, 0x3e, 0x02, 0xa2, 0x73, 0x40, 0xab, 0x6f, 0xc3, 0x99, 0x24, 0x94,
+ 0x79, 0xf8, 0x32, 0x70, 0xd4, 0xe7, 0x73, 0x1b, 0xe2, 0xd7, 0x1f, 0xd1,
+ 0x64, 0xae, 0x9e, 0x9e, 0x56, 0x3d, 0x79, 0x22, 0x34, 0x9b, 0xa2, 0xd8,
+ 0x21, 0x3f, 0xca, 0x08, 0x4b, 0x1c, 0xbf, 0x3f, 0xc4, 0xc4, 0xe2, 0x7b,
+ 0xf1, 0xde, 0xc2, 0x72, 0x00, 0x02, 0x6d, 0x34, 0x93, 0x69, 0x26, 0x9b,
+ 0xff, 0xe0, 0x69, 0x86, 0xb5, 0xf7, 0xeb, 0xc6, 0x7c, 0xdf, 0xc3, 0xfe,
+ 0x14, 0x24, 0x03, 0xe6, 0x41, 0xfc, 0xfc, 0x11, 0x36, 0xdc, 0xd3, 0x45,
+ 0x27, 0x0c, 0x12, 0x76, 0xda, 0x10, 0xcf, 0xe4, 0xde, 0x95, 0xea, 0xfa,
+ 0xdc, 0x09, 0x1f, 0xcb, 0x22, 0xe3, 0xbc, 0xd4, 0x45, 0x4e, 0xe9, 0x9a,
+ 0xbd, 0x56, 0xdf, 0x4a, 0x1c, 0x72, 0x73, 0x30, 0x99, 0x07, 0x10, 0xf0,
+ 0x58, 0xb6, 0x08, 0x06, 0xee, 0xbd, 0x65, 0x6d, 0x0d, 0x1e, 0xee, 0x59,
+ 0x03, 0x46, 0x87, 0x06, 0x06, 0x24, 0x72, 0xc1, 0x17, 0xe6, 0x6d, 0x4d,
+ 0xf1, 0x66, 0x8a, 0x45, 0x27, 0x29, 0xc2, 0x56, 0x80, 0xc4, 0x9c, 0xb1,
+ 0x9e, 0xc7, 0xbd, 0x5d, 0x01, 0xf6, 0xb8, 0x0e, 0xb9, 0x95, 0xa7, 0xc9,
+ 0xf0, 0x6e, 0x41, 0x12, 0x1f, 0x5a, 0x69, 0xb0, 0xa7, 0xa4, 0x9a, 0x7b,
+ 0x70, 0x68, 0x12, 0xa0, 0xe4, 0x77, 0xc3, 0xb5, 0x14, 0xf1, 0xd8, 0x8f,
+ 0x14, 0x20, 0xd3, 0x38, 0xb3, 0xb6, 0x78, 0xe8, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xca, 0x44, 0x0a, 0x5f, 0xe4, 0x11, 0x02, 0x41, 0x77, 0x33,
+ 0xfe, 0xda, 0xa2, 0x67, 0x2c, 0xa8, 0x99, 0xcb, 0x7f, 0x88, 0x81, 0xa2,
+ 0x67, 0x2c, 0xa8, 0x99, 0xcb, 0x7a, 0xa2, 0x67, 0x2d, 0xd2, 0xfe, 0x21,
+ 0x03, 0x40, 0x95, 0x01, 0x05, 0xbc, 0x09, 0x03, 0xc0, 0xe6, 0x16, 0x04,
+ 0xb4, 0x55, 0x37, 0x2d, 0xe4, 0x1f, 0xb2, 0xaf, 0xc4, 0x16, 0x02, 0x2e,
+ 0xed, 0xf9, 0xf5, 0xfb, 0xf8, 0xff, 0xf7, 0xe3, 0x3f, 0xef, 0xfe, 0xcd,
+ 0x38, 0x2f, 0x6c, 0x7e, 0xc5, 0x01, 0x19, 0xb3, 0xbe, 0xcd, 0xd6, 0x94,
+ 0xa4, 0x58, 0x07, 0x31, 0xe0, 0x31, 0x4d, 0xe6, 0x82, 0x6c, 0x18, 0xab,
+ 0x63, 0x20, 0xea, 0x73, 0xdb, 0x46, 0x09, 0xa4, 0x98, 0x6e, 0x2c, 0x3d,
+ 0x8c, 0x78, 0x53, 0xa2, 0x60, 0x80, 0x01, 0xd2, 0xaf, 0x58, 0x0e, 0xdc,
+ 0x99, 0xff, 0x9b, 0xfb, 0x36, 0x3f, 0x71, 0x94, 0xbc, 0x9b, 0xdd, 0x78,
+ 0xde, 0xbd, 0x89, 0xfc, 0xff, 0xe8, 0x86, 0x29, 0xbc, 0xd0, 0x26, 0xc1,
+ 0x8a, 0xb6, 0x36, 0x1d, 0x4e, 0x7b, 0x69, 0x1b, 0x59, 0xec, 0x09, 0xc8,
+ 0xb4, 0x1e, 0xfc, 0xf2, 0xfa, 0x90, 0x20, 0x00, 0x74, 0xab, 0xd6, 0x03,
+ 0xb7, 0x26, 0x77, 0xf9, 0xb0, 0xf6, 0x6c, 0x7e, 0xe3, 0x29, 0x79, 0x37,
+ 0xba, 0xf1, 0xbd, 0x7b, 0x13, 0xf9, 0xe1, 0xf4, 0x43, 0x14, 0xde, 0x68,
+ 0x13, 0x60, 0xc5, 0x5b, 0x1b, 0x0e, 0xa7, 0x3d, 0xb4, 0x8d, 0xac, 0xf6,
+ 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x10, 0x00, 0x3a, 0x55,
+ 0xeb, 0x01, 0xdb, 0x93, 0x3b, 0xfc, 0xd8, 0x63, 0xb6, 0x29, 0x4d, 0xc6,
+ 0x52, 0xf2, 0x6f, 0x75, 0xe3, 0x7a, 0xf6, 0x27, 0xf3, 0xc3, 0xe8, 0x86,
+ 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9, 0x8d, 0x85, 0xeb, 0x45, 0x2a, 0xbc,
+ 0x98, 0x04, 0xe4, 0x5a, 0x0f, 0x7e, 0x79, 0x7d, 0x48, 0x08, 0x46, 0x8e,
+ 0x1f, 0x01, 0x64, 0x48, 0xd1, 0xe8, 0xea, 0x6f, 0xee, 0x60, 0x31, 0x08,
+ 0xfd, 0x13, 0xdd, 0xac, 0xd9, 0xa1, 0xf3, 0x73, 0xea, 0x03, 0xe8, 0x69,
+ 0x50, 0xa8, 0xf7, 0xee, 0xca, 0x06, 0x6b, 0xd9, 0x90, 0x10, 0x4a, 0xe9,
+ 0x8c, 0x82, 0xf5, 0xa2, 0x95, 0x5e, 0x4c, 0x39, 0x53, 0xc0, 0x23, 0x99,
+ 0x76, 0x7d, 0x7a, 0x05, 0x91, 0x33, 0x47, 0xaa, 0x54, 0xdf, 0xf3, 0x01,
+ 0x88, 0x47, 0xe8, 0x9e, 0xed, 0x66, 0xcd, 0x0f, 0x9b, 0x9f, 0x50, 0x1f,
+ 0x43, 0x4a, 0x85, 0x47, 0xbf, 0x76, 0x50, 0x33, 0x5e, 0xcc, 0x80, 0x82,
+ 0x57, 0x4c, 0x64, 0x17, 0xad, 0x14, 0xaa, 0xf2, 0x61, 0xca, 0x9e, 0x01,
+ 0x1c, 0xcb, 0xb3, 0xeb, 0xd0, 0x2c, 0x89, 0x9a, 0x3d, 0x52, 0xa6, 0xff,
+ 0x98, 0x0c, 0x42, 0x3f, 0x44, 0xf7, 0x6b, 0x36, 0x68, 0x7c, 0xdc, 0xfa,
+ 0x80, 0xfa, 0x1a, 0x54, 0x2a, 0x3d, 0xfb, 0xb2, 0x81, 0x9a, 0xf6, 0x64,
+ 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x04, 0xdc, 0xda, 0x29, 0xdd, 0x73, 0x95,
+ 0x3c, 0x02, 0x39, 0x97, 0x67, 0xd7, 0xa0, 0x59, 0x13, 0x34, 0x7a, 0xa5,
+ 0x4d, 0xfa, 0x36, 0xee, 0x98, 0x4d, 0x82, 0x3c, 0xfc, 0x77, 0x6b, 0x36,
+ 0x6c, 0x7d, 0x5f, 0x07, 0x76, 0x45, 0xaa, 0xbf, 0xf3, 0xd1, 0x00, 0xcd,
+ 0x7b, 0x32, 0x02, 0x08, 0x64, 0xdd, 0x99, 0x84, 0xdc, 0xda, 0x29, 0xdd,
+ 0x70, 0xf5, 0x26, 0x41, 0xc1, 0x49, 0xd3, 0x3d, 0xbf, 0x81, 0x38, 0x55,
+ 0x8f, 0x7e, 0xe9, 0xb6, 0xd5, 0x30, 0x9b, 0x04, 0x79, 0xf8, 0xee, 0xd6,
+ 0x6c, 0xd8, 0xfa, 0xbe, 0x0e, 0xec, 0x8b, 0x55, 0x7f, 0xe7, 0xa2, 0x01,
+ 0x9a, 0xf6, 0x64, 0x04, 0x10, 0xc9, 0xbb, 0x33, 0x09, 0xb9, 0xb4, 0x53,
+ 0xba, 0xe1, 0xea, 0x4c, 0x83, 0x82, 0x93, 0xa6, 0x7b, 0x7f, 0x02, 0x70,
+ 0xab, 0x1e, 0xfd, 0xd3, 0x6d, 0xaa, 0x61, 0x36, 0x08, 0xf3, 0xf1, 0xdd,
+ 0xac, 0xd9, 0xb1, 0xf5, 0x7c, 0x1d, 0xd9, 0x16, 0xaa, 0xff, 0xcf, 0x44,
+ 0x03, 0x35, 0xec, 0xc8, 0x08, 0x21, 0x93, 0x76, 0x66, 0x13, 0x73, 0x68,
+ 0xa7, 0x75, 0xc3, 0xd4, 0x99, 0x07, 0x05, 0x27, 0x4c, 0xf6, 0xfe, 0x04,
+ 0xe1, 0x56, 0x3d, 0xfb, 0xa6, 0xdb, 0x54, 0xc2, 0x74, 0x37, 0x0f, 0xf2,
+ 0xb9, 0x89, 0x93, 0x3c, 0xde, 0x63, 0x6f, 0x5a, 0xbc, 0xa7, 0xb7, 0xcc,
+ 0x85, 0xc7, 0xe0, 0x21, 0xb7, 0xe6, 0x40, 0x9b, 0x98, 0x64, 0x5c, 0xcc,
+ 0xc2, 0x0f, 0x05, 0xba, 0x90, 0xf4, 0x93, 0x01, 0xdb, 0x4c, 0xff, 0xc2,
+ 0x66, 0xda, 0x80, 0x68, 0x2a, 0xad, 0x76, 0x9a, 0x74, 0x37, 0x09, 0x00,
+ 0x79, 0x5c, 0xc4, 0xc9, 0x9e, 0x6f, 0x31, 0xb7, 0xad, 0x5f, 0x82, 0x16,
+ 0xba, 0xbf, 0xd0, 0x10, 0xdb, 0xf3, 0x20, 0x4d, 0xcc, 0x32, 0x2e, 0x66,
+ 0x61, 0x04, 0x10, 0xb7, 0x52, 0x00, 0xe9, 0x2b, 0x3f, 0x38, 0x86, 0xd3,
+ 0x20, 0x85, 0xf0, 0x99, 0xb6, 0xa0, 0x1a, 0x0a, 0xab, 0x5d, 0xa6, 0x9d,
+ 0x0d, 0xc2, 0x40, 0x1e, 0x57, 0x31, 0x32, 0x67, 0x9b, 0xcc, 0x6d, 0xeb,
+ 0x57, 0xe0, 0x85, 0xae, 0xaf, 0xf4, 0x04, 0x36, 0xfc, 0xc8, 0x13, 0x73,
+ 0x0c, 0x8b, 0x99, 0x98, 0x41, 0x04, 0x2d, 0xd4, 0x80, 0x3a, 0x4a, 0xcf,
+ 0xce, 0x21, 0xb4, 0xc8, 0x21, 0x7c, 0x26, 0x6d, 0xa8, 0x06, 0x82, 0xaa,
+ 0xd7, 0x69, 0xa7, 0x1a, 0x04, 0x80, 0x36, 0xee, 0x62, 0x64, 0xcf, 0x37,
+ 0x9a, 0x31, 0xea, 0xf7, 0xe0, 0x87, 0x82, 0x9a, 0x26, 0x12, 0xb6, 0x62,
+ 0x19, 0xeb, 0xb4, 0xd7, 0x2c, 0x32, 0x67, 0xa2, 0x00, 0xd0, 0xa5, 0x5a,
+ 0xd4, 0xff, 0xf8, 0x08, 0x41, 0x54, 0x6b, 0x59, 0x37, 0xfe, 0x3b, 0x77,
+ 0x09, 0xe4, 0x46, 0x75, 0xa9, 0xb0, 0x6d, 0x66, 0xd4, 0xdf, 0x51, 0xc3,
+ 0xde, 0xbe, 0x0f, 0x31, 0x2a, 0x60, 0x3a, 0x63, 0x54, 0xc9, 0xf5, 0x31,
+ 0x02, 0xbc, 0x7b, 0xf7, 0xff, 0x01, 0x08, 0x2a, 0x9a, 0xd6, 0x4d, 0xc6,
+ 0xa1, 0xc7, 0x6e, 0xf0, 0x10, 0xac, 0xa6, 0x1c, 0x0f, 0x06, 0x74, 0x11,
+ 0x10, 0xad, 0x1e, 0xfd, 0x36, 0x33, 0x48, 0x0d, 0x79, 0x70, 0x9e, 0xd1,
+ 0xbe, 0x40, 0x47, 0xd1, 0xef, 0xd4, 0xc4, 0x0a, 0xf1, 0xef, 0xdf, 0xf8,
+ 0x08, 0x41, 0x54, 0xd6, 0xb2, 0x62, 0x38, 0x9b, 0x87, 0x1c, 0xb8, 0x9c,
+ 0x24, 0x33, 0xc0, 0x2c, 0x06, 0xde, 0xb5, 0x7d, 0x54, 0xc4, 0x42, 0xb4,
+ 0x7b, 0xf4, 0x03, 0x56, 0xcc, 0x44, 0x4f, 0xd0, 0xc0, 0x9a, 0xde, 0x26,
+ 0xc1, 0x69, 0x33, 0x4d, 0xb6, 0xab, 0x39, 0x04, 0x40, 0xaf, 0x1e, 0xfd,
+ 0xfc, 0xd5, 0xea, 0x21, 0x8e, 0x5c, 0x4c, 0xc5, 0x5b, 0x1e, 0x1d, 0x37,
+ 0xac, 0x93, 0x3e, 0x7c, 0xb8, 0x2d, 0x58, 0x33, 0xaf, 0x62, 0x41, 0xd0,
+ 0xc0, 0x9d, 0x9b, 0x04, 0xd8, 0x22, 0x62, 0x4c, 0xd3, 0x6d, 0xaa, 0x02,
+ 0x01, 0x7c, 0x96, 0xb0, 0x09, 0x40, 0x1f, 0x3a, 0xf5, 0x80, 0xc5, 0x35,
+ 0x7c, 0x5b, 0x1f, 0xdc, 0xc5, 0x5b, 0x1c, 0x1d, 0x37, 0xac, 0x96, 0x7c,
+ 0xf9, 0x70, 0x5a, 0xb0, 0x67, 0x5e, 0xc5, 0x87, 0x43, 0x02, 0x6b, 0x36,
+ 0x09, 0xb0, 0x44, 0xc4, 0x99, 0x82, 0xdf, 0xba, 0xa0, 0x20, 0x17, 0xc9,
+ 0x6b, 0x00, 0x94, 0x01, 0xf2, 0xaf, 0x58, 0x0c, 0x5f, 0xc1, 0x73, 0x54,
+ 0x23, 0x11, 0xc7, 0x18, 0xda, 0x31, 0x6f, 0x1c, 0x1d, 0x22, 0x92, 0x61,
+ 0x52, 0x05, 0xc4, 0xe9, 0xc2, 0x74, 0xf1, 0x87, 0xfe, 0x60, 0x4b, 0x9c,
+ 0xc0, 0x92, 0x64, 0x94, 0x06, 0xd9, 0xad, 0xa0, 0x20, 0x1f, 0x92, 0xd6,
+ 0x01, 0x28, 0x0f, 0x95, 0x7a, 0xc0, 0xfc, 0xf0, 0x03, 0x80, 0x96, 0xe1,
+ 0x65, 0xac, 0x9a, 0x18, 0x6d, 0x82, 0x7d, 0xd9, 0x13, 0x4c, 0xf5, 0x97,
+ 0xc0, 0x72, 0x5e, 0x98, 0x41, 0x6b, 0x75, 0xdc, 0x55, 0xb8, 0x0b, 0x6b,
+ 0x40, 0x42, 0x0f, 0x36, 0x3e, 0xf3, 0x31, 0x49, 0x84, 0x66, 0xc7, 0xaf,
+ 0x40, 0x71, 0x53, 0x4c, 0xe8, 0xa6, 0x7f, 0x6b, 0xe6, 0xf0, 0xdb, 0xa0,
+ 0x80, 0x6d, 0x88, 0xcf, 0xf9, 0x2e, 0xba, 0xfe, 0x03, 0x85, 0x3f, 0x4c,
+ 0x20, 0xb7, 0xba, 0xb0, 0x37, 0xed, 0xa0, 0x2d, 0xad, 0x04, 0x2d, 0x6e,
+ 0xbc, 0x1f, 0xda, 0x60, 0x1a, 0xdd, 0x31, 0xeb, 0xa0, 0xe0, 0x17, 0x63,
+ 0xb9, 0x9f, 0xda, 0xf9, 0xbc, 0x36, 0xe8, 0x20, 0x1b, 0x88, 0xcf, 0xf9,
+ 0x2e, 0xba, 0xfe, 0x03, 0x85, 0x3f, 0x4c, 0x20, 0xb7, 0xba, 0xb0, 0x37,
+ 0xed, 0xa0, 0x2d, 0xad, 0x04, 0x2d, 0x6e, 0xbc, 0x1f, 0xda, 0x60, 0x1a,
+ 0xdd, 0x31, 0xeb, 0xa0, 0xe0, 0x17, 0x63, 0xb9, 0x9f, 0xda, 0xf9, 0xbe,
+ 0xdf, 0xfd, 0xc4, 0x67, 0xfc, 0x97, 0x43, 0x6a, 0x7f, 0x89, 0x01, 0x00,
+ 0x5b, 0x57, 0xf3, 0x82, 0xcc, 0xb4, 0xd0, 0x21, 0x6b, 0x75, 0xe0, 0xfe,
+ 0xd3, 0x08, 0x7a, 0x1e, 0xfd, 0x02, 0x56, 0xb1, 0xef, 0xd7, 0x8d, 0x1e,
+ 0xb3, 0x1f, 0x7c, 0xd0, 0x30, 0x06, 0xdb, 0xfd, 0xf1, 0xe9, 0x8d, 0x53,
+ 0x04, 0x17, 0xa1, 0xeb, 0x3f, 0xc1, 0x00, 0xb6, 0xaf, 0xe6, 0x0b, 0x32,
+ 0xd3, 0x4a, 0x5a, 0xde, 0x7a, 0x30, 0x47, 0xb1, 0xef, 0x20, 0x97, 0x07,
+ 0xb9, 0xec, 0x68, 0x3d, 0x63, 0x1f, 0x7c, 0xd0, 0x30, 0x06, 0xdb, 0xfd,
+ 0xf1, 0xe9, 0x8d, 0x53, 0x04, 0x17, 0xa1, 0xeb, 0x3f, 0xc1, 0x00, 0xb6,
+ 0xaf, 0xe6, 0x0b, 0x32, 0xd3, 0x4a, 0x5a, 0xde, 0x7a, 0x30, 0x47, 0xb1,
+ 0xef, 0x20, 0x97, 0x07, 0xb9, 0xec, 0x68, 0x3d, 0x63, 0x1f, 0x7c, 0xd0,
+ 0x30, 0x0e, 0xde, 0x3d, 0xf1, 0xe9, 0x8d, 0x53, 0x04, 0x17, 0xa1, 0xeb,
+ 0x3f, 0xc1, 0xd0, 0x92, 0xa6, 0x75, 0x2d, 0x6f, 0x3d, 0x18, 0x23, 0xd8,
+ 0xf7, 0x94, 0x0e, 0x82, 0x2a, 0x00, 0x12, 0x61, 0xcd, 0x4a, 0x1d, 0x94,
+ 0x97, 0xb1, 0xef, 0x29, 0xa8, 0x80, 0x1c, 0x3c, 0x78, 0xae, 0x01, 0x12,
+ 0x9d, 0x30, 0xcb, 0xff, 0x40, 0x44, 0x5f, 0xc0, 0x2b, 0xe0, 0xe3, 0x2a,
+ 0x47, 0xa1, 0x25, 0x4c, 0xf0, 0x25, 0xdf, 0x6c, 0x42, 0x08, 0xa8, 0x20,
+ 0x80, 0x32, 0x28, 0xf7, 0xea, 0x9e, 0x0f, 0x7a, 0x9a, 0x88, 0x01, 0xc3,
+ 0xc7, 0x8a, 0xe0, 0x11, 0x29, 0xd3, 0x0c, 0xbf, 0xf4, 0x04, 0x45, 0xfc,
+ 0x02, 0xbe, 0x0e, 0x32, 0xa4, 0x7a, 0x12, 0x54, 0xcf, 0x02, 0x5d, 0xf6,
+ 0xc4, 0x20, 0x8a, 0x82, 0x08, 0x03, 0x22, 0x8f, 0x7e, 0xa9, 0xe0, 0xf7,
+ 0xa9, 0xa8, 0x80, 0x1c, 0x3f, 0xc5, 0x70, 0x08, 0x94, 0xe9, 0x86, 0x5f,
+ 0xfa, 0x02, 0x22, 0xfe, 0x01, 0x5f, 0x07, 0x19, 0x52, 0x3d, 0x09, 0x2a,
+ 0x67, 0x81, 0x2e, 0xfb, 0x69, 0x3b, 0xda, 0x82, 0x00, 0xc8, 0xa3, 0xdf,
+ 0xa6, 0xb3, 0xd3, 0x5a, 0xc9, 0x9b, 0x6f, 0xf1, 0xda, 0x2a, 0x13, 0x14,
+ 0xb4, 0x04, 0xaf, 0xdf, 0xec, 0x04, 0xc3, 0xdc, 0x02, 0xbc, 0x07, 0x89,
+ 0x6a, 0x65, 0xc5, 0x33, 0xf0, 0x3c, 0x19, 0x50, 0x10, 0x77, 0xb4, 0x6a,
+ 0xc1, 0xef, 0x47, 0x5b, 0x26, 0x9d, 0x26, 0x6d, 0x3f, 0xc7, 0x6b, 0x81,
+ 0x2d, 0x2b, 0x83, 0x7a, 0xfd, 0xf3, 0xec, 0x05, 0xfc, 0x40, 0x2b, 0xc0,
+ 0x3c, 0x4b, 0x53, 0x2e, 0x29, 0x9f, 0xf9, 0x68, 0xb8, 0x1e, 0x0c, 0xa8,
+ 0x08, 0x3b, 0xda, 0x22, 0xb6, 0x3d, 0xe4, 0x75, 0xb2, 0x69, 0xd2, 0x66,
+ 0xd3, 0xfc, 0x76, 0xb8, 0x12, 0xd2, 0xb8, 0x37, 0xaf, 0xdf, 0x3e, 0xc0,
+ 0x5f, 0xc4, 0x02, 0xbc, 0x03, 0xc4, 0xb5, 0x32, 0xe2, 0x99, 0xff, 0x96,
+ 0x8b, 0x81, 0xe0, 0xca, 0x80, 0x83, 0xbd, 0xa2, 0x2b, 0x63, 0xde, 0x47,
+ 0x5b, 0x26, 0x9d, 0x26, 0x6c, 0x92, 0x1a, 0x7f, 0x70, 0x25, 0xca, 0xe0,
+ 0xde, 0xbf, 0x7c, 0xfb, 0x04, 0xfa, 0x1e, 0xa0, 0x02, 0x4b, 0xab, 0x0e,
+ 0x15, 0xc0, 0xd2, 0x96, 0xc9, 0x8d, 0xa4, 0xdf, 0xe3, 0x5f, 0x4f, 0xb5,
+ 0xc9, 0x8d, 0xd8, 0x08, 0xf0, 0x7b, 0xd6, 0x05, 0xbd, 0x0e, 0xea, 0x61,
+ 0xc9, 0x21, 0xa7, 0xf7, 0x1f, 0x31, 0x74, 0xcf, 0x02, 0x7c, 0xa1, 0xeb,
+ 0x00, 0x49, 0x72, 0x60, 0x6c, 0x2e, 0x06, 0x94, 0xb6, 0x4d, 0xb4, 0x9b,
+ 0xfb, 0xea, 0x7d, 0x35, 0xb1, 0xef, 0x27, 0xd5, 0xfa, 0x30, 0x47, 0xb1,
+ 0xef, 0x2c, 0x0b, 0x7a, 0x3b, 0xa9, 0x87, 0x24, 0x86, 0x9f, 0xdc, 0x7c,
+ 0xc5, 0xd3, 0x3c, 0x09, 0xf2, 0x87, 0xac, 0x01, 0x25, 0xcb, 0x03, 0x61,
+ 0x70, 0x34, 0xa5, 0xb2, 0x66, 0xd2, 0x6f, 0xef, 0xa9, 0xf4, 0xd6, 0xc7,
+ 0xbc, 0x9f, 0x57, 0xec, 0x23, 0xc1, 0xef, 0x58, 0x16, 0xf4, 0x3b, 0xa9,
+ 0xb9, 0x45, 0x82, 0x98, 0x0f, 0x75, 0x01, 0x25, 0x4c, 0xf0, 0x4f, 0x90,
+ 0xf5, 0xec, 0x07, 0x05, 0x36, 0x4c, 0x13, 0x09, 0x46, 0x5b, 0xbf, 0xd3,
+ 0xa9, 0xf5, 0x5e, 0x1e, 0xc9, 0x96, 0x4c, 0x76, 0x0e, 0x01, 0x2b, 0x18,
+ 0x21, 0xde, 0xd4, 0xc1, 0xf6, 0xef, 0x8f, 0x7e, 0x30, 0x05, 0xb5, 0xdc,
+ 0x97, 0x5d, 0x98, 0x8b, 0xbe, 0xd8, 0x78, 0x29, 0x95, 0x30, 0xc4, 0xc7,
+ 0x0f, 0x85, 0x7c, 0xf8, 0x12, 0xef, 0xb6, 0x08, 0x5f, 0xc4, 0xb5, 0xd9,
+ 0xfd, 0x4c, 0x2d, 0xd0, 0x70, 0x09, 0x58, 0xf0, 0x43, 0xbd, 0xa9, 0xbf,
+ 0x6e, 0xf8, 0xf7, 0xe3, 0x00, 0x5b, 0x5d, 0xc9, 0x75, 0xe8, 0xe2, 0xef,
+ 0xb6, 0x1e, 0x0a, 0x65, 0x4c, 0x31, 0x31, 0xc3, 0xa1, 0x5f, 0x3e, 0x09,
+ 0x77, 0xba, 0xc2, 0x17, 0xf1, 0x2d, 0x77, 0x7d, 0x4c, 0x16, 0xf0, 0x70,
+ 0x0b, 0xb1, 0x82, 0x1d, 0xed, 0x4d, 0xfb, 0x0e, 0xf8, 0xf7, 0xf0, 0x05,
+ 0xb5, 0xdc, 0x97, 0x5e, 0x6e, 0x6e, 0xe1, 0xe8, 0xbe, 0x4c, 0x02, 0x21,
+ 0x8e, 0x1f, 0x0a, 0xf8, 0x42, 0x09, 0x50, 0x41, 0x2e, 0xf7, 0x58, 0x42,
+ 0xfe, 0x25, 0xae, 0xc7, 0xbe, 0xd3, 0x06, 0xf8, 0xe0, 0x15, 0x63, 0x01,
+ 0xec, 0x4a, 0x99, 0xe2, 0x0e, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x63, 0x10,
+ 0xb4, 0x4d, 0x57, 0x81, 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0x32, 0x14, 0x89,
+ 0x2a, 0xf3, 0xff, 0xc4, 0x31, 0xd6, 0x36, 0x89, 0x1b, 0x53, 0x46, 0x84,
+ 0xd1, 0x35, 0x5e, 0x7f, 0xd7, 0x5a, 0x75, 0xc7, 0x63, 0x21, 0x24, 0x49,
+ 0x57, 0x9f, 0xfe, 0x22, 0x3a, 0xc6, 0xd1, 0x23, 0x6a, 0x68, 0xd0, 0x9a,
+ 0x26, 0xab, 0xcf, 0xfa, 0xeb, 0x4e, 0xb8, 0xec, 0x64, 0x24, 0x89, 0x2a,
+ 0xf3, 0xff, 0xc4, 0x47, 0x58, 0xda, 0x24, 0x6d, 0x4c, 0x62, 0x13, 0x44,
+ 0xd5, 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83, 0x06, 0x95, 0x51, 0xdb,
+ 0xff, 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xd1, 0xa1, 0x34, 0x4d,
+ 0x57, 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xd8, 0x30, 0x69, 0x55, 0x1d, 0xbf,
+ 0xfc, 0x44, 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfd, 0x1a, 0x13, 0x44, 0xd5,
+ 0x79, 0xff, 0x5d, 0x69, 0xd7, 0x1d, 0x83, 0x06, 0x95, 0x51, 0xdb, 0xff,
+ 0xc4, 0x42, 0x11, 0xbd, 0x09, 0xa3, 0x0f, 0xd1, 0xa1, 0x34, 0x4d, 0x57,
+ 0x9f, 0xf5, 0xd6, 0x9d, 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1,
+ 0x10, 0x84, 0x6f, 0x42, 0x68, 0xc3, 0xf1, 0x88, 0x4d, 0x13, 0x55, 0xe7,
+ 0xfd, 0x75, 0xa7, 0x5c, 0x76, 0xac, 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x44,
+ 0x21, 0x1b, 0xd0, 0x9a, 0x30, 0xfc, 0x62, 0x13, 0x44, 0xd5, 0x79, 0xff,
+ 0x5d, 0x69, 0xd7, 0x1d, 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x08,
+ 0x46, 0xf4, 0x26, 0x8c, 0x3f, 0x18, 0x84, 0xd1, 0x35, 0x5e, 0x7f, 0xd7,
+ 0x5a, 0x75, 0xc7, 0x6a, 0xc6, 0x95, 0x51, 0xdb, 0xff, 0xc4, 0x4c, 0x84,
+ 0x91, 0x25, 0x5e, 0x04, 0x73, 0xfb, 0x13, 0x56, 0x1f, 0xbf, 0xeb, 0xad,
+ 0x3a, 0xe3, 0xb5, 0x63, 0x4a, 0xa8, 0xed, 0xff, 0xe2, 0x26, 0x42, 0x48,
+ 0x92, 0xaf, 0x02, 0x39, 0xfd, 0x89, 0xab, 0x0f, 0xdf, 0xf5, 0xd6, 0x9d,
+ 0x71, 0xda, 0xb1, 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x13, 0x21, 0x24, 0x49,
+ 0x57, 0x81, 0x1c, 0xfe, 0xc4, 0xd5, 0x87, 0xef, 0xfa, 0xeb, 0x4e, 0xb8,
+ 0xed, 0x58, 0xd2, 0xaa, 0x3b, 0x7f, 0xf8, 0x89, 0x90, 0x92, 0x24, 0xab,
+ 0xc0, 0x8e, 0x7f, 0x62, 0x6a, 0xc3, 0xf7, 0xf8, 0x65, 0x69, 0xd7, 0x1d,
+ 0xab, 0x1a, 0x55, 0x47, 0x6f, 0xff, 0x11, 0x8e, 0x12, 0x44, 0x95, 0x78,
+ 0x11, 0xcf, 0xec, 0x4d, 0x58, 0x7e, 0xff, 0x0c, 0xad, 0x3a, 0xe3, 0xb5,
+ 0x63, 0x4a, 0xa8, 0xed, 0xff, 0xe2, 0x31, 0xc2, 0x48, 0x92, 0xaf, 0x02,
+ 0x39, 0xfd, 0x89, 0xab, 0x0f, 0xdf, 0xe1, 0x95, 0xa7, 0x5c, 0x76, 0xac,
+ 0x69, 0x55, 0x1d, 0xbf, 0xfc, 0x46, 0x38, 0x49, 0x12, 0x55, 0xe0, 0x47,
+ 0x3f, 0xb1, 0x35, 0x61, 0xfb, 0xfc, 0xc4, 0x26, 0x89, 0xaa, 0xf2, 0xb1,
+ 0xa5, 0x54, 0x76, 0xff, 0xf1, 0x18, 0xe1, 0x24, 0x49, 0x57, 0x83, 0xac,
+ 0x6d, 0x12, 0x36, 0xa6, 0xff, 0x31, 0x09, 0xa2, 0x6a, 0xbc, 0xac, 0x69,
+ 0x55, 0x1d, 0xbf, 0xfc, 0x46, 0x38, 0x49, 0x12, 0x55, 0xe0, 0xeb, 0x1b,
+ 0x44, 0x8d, 0xa9, 0xbf, 0xcc, 0x42, 0x68, 0x9a, 0xaf, 0x2b, 0x1a, 0x55,
+ 0x47, 0x6f, 0xff, 0x10, 0xa3, 0x85, 0x22, 0x4a, 0xbc, 0x1d, 0x63, 0x68,
+ 0x91, 0xb5, 0x37, 0xf9, 0x88, 0x5a, 0x26, 0xab, 0xc0, 0xc1, 0xa5, 0x54,
+ 0x76, 0xff, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b,
+ 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0x9b, 0xfe, 0xa0,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xe3, 0x60, 0x31, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0x5e, 0xbe, 0x63, 0xe0, 0x18,
+ 0xe9, 0x3c, 0x04, 0xca, 0x9b, 0x31, 0x68, 0x66, 0x26, 0x2b, 0xff, 0xff,
+ 0x5f, 0xd7, 0x86, 0x0c, 0x0a, 0xd2, 0x07, 0x8c, 0x60, 0xb6, 0x10, 0x09,
+ 0x1d, 0xb7, 0xd3, 0x1c, 0x9a, 0x45, 0xac, 0x17, 0xa8, 0xcf, 0x60, 0x42,
+ 0x2e, 0xea, 0xe2, 0x33, 0xdb, 0xf7, 0xa5, 0x13, 0x37, 0xd4, 0x24, 0xe5,
+ 0x8e, 0xf2, 0xf1, 0x72, 0xc8, 0x1a, 0xa2, 0x18, 0x0f, 0xfb, 0xfe, 0x13,
+ 0x13, 0xcc, 0x65, 0xa3, 0x4a, 0xbc, 0xf4, 0x61, 0x65, 0x70, 0xb2, 0xe8,
+ 0x6c, 0x7e, 0x2b, 0xfe, 0xbd, 0x7c, 0x59, 0xb0, 0x91, 0x9d, 0xdc, 0x05,
+ 0x06, 0xa3, 0x42, 0xdf, 0x1b, 0x9b, 0x8f, 0x32, 0xdf, 0x82, 0x87, 0x7e,
+ 0x18, 0xfd, 0xef, 0xe9, 0x4b, 0x2f, 0x00, 0x43, 0x2b, 0x07, 0xc6, 0x3d,
+ 0xf9, 0x04, 0x83, 0xa9, 0x03, 0xab, 0xc9, 0x9c, 0x4f, 0x01, 0x03, 0xbe,
+ 0x03, 0xf6, 0xc0, 0xff, 0x38, 0xc8, 0x2a, 0x57, 0x59, 0x3f, 0xeb, 0xd7,
+ 0x86, 0x2b, 0x1b, 0x3f, 0xfe, 0x12, 0xf7, 0x9b, 0xa4, 0x02, 0x46, 0xe7,
+ 0x53, 0xcc, 0x94, 0xc8, 0x6c, 0x14, 0xb3, 0xc0, 0x17, 0xb7, 0xe1, 0x8c,
+ 0xcf, 0xd0, 0x21, 0x02, 0x66, 0x18, 0x0a, 0x7d, 0x34, 0xf8, 0x4f, 0x90,
+ 0x30, 0x33, 0x05, 0xb1, 0xd3, 0x83, 0xc7, 0x6c, 0x31, 0x48, 0xe9, 0xf4,
+ 0xa6, 0x2b, 0xa0, 0x5e, 0x7f, 0x18, 0x05, 0x5f, 0xbd, 0x63, 0x17, 0xaf,
+ 0x5e, 0xb2, 0x1e, 0x04, 0x1a, 0x92, 0xf7, 0xf5, 0xeb, 0xf1, 0xb0, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d, 0x81, 0x4b, 0xae, 0x5d, 0xe3,
+ 0x3e, 0xfe, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e,
+ 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff,
+ 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xf3, 0x99, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x79, 0x22, 0xcf,
+ 0x86, 0xfd, 0xe3, 0x52, 0xa0, 0x3e, 0x58, 0xaf, 0xff, 0xff, 0xff, 0xf9,
+ 0x84, 0x43, 0xd0, 0x83, 0xff, 0x2e, 0x81, 0x23, 0x3a, 0x06, 0x12, 0xf3,
+ 0x33, 0x7c, 0x31, 0x96, 0x99, 0x50, 0x26, 0xe0, 0x4c, 0xcf, 0x29, 0x0d,
+ 0x90, 0x8d, 0x63, 0x15, 0x5d, 0xb9, 0x72, 0x9d, 0x30, 0x06, 0x09, 0xca,
+ 0x44, 0xb5, 0x5b, 0xce, 0xf8, 0x1a, 0x49, 0xb6, 0x20, 0x0e, 0x81, 0x22,
+ 0xe0, 0x0b, 0x5f, 0x63, 0xf6, 0x08, 0x5d, 0x3f, 0xe8, 0x5b, 0x09, 0xf5,
+ 0x38, 0x1e, 0x22, 0x2c, 0xb7, 0xd8, 0x80, 0x59, 0x89, 0x16, 0xd0, 0xc0,
+ 0x74, 0x1f, 0x69, 0x85, 0x74, 0xc1, 0xc3, 0x90, 0xc2, 0x5a, 0xf0, 0x9e,
+ 0x45, 0x89, 0x19, 0x11, 0x76, 0xbc, 0x57, 0xff, 0xfe, 0x28, 0xdc, 0x65,
+ 0x38, 0x7c, 0x37, 0xc1, 0xff, 0x33, 0x41, 0x8c, 0x00, 0x06, 0x40, 0xdb,
+ 0x19, 0xbf, 0x5b, 0x3c, 0xd0, 0x1b, 0x7e, 0x00, 0xa3, 0xa1, 0x16, 0xb3,
+ 0xf3, 0x8b, 0xe5, 0x33, 0xc0, 0x51, 0x5a, 0x6d, 0x66, 0x5f, 0xbe, 0x68,
+ 0xac, 0xbd, 0x76, 0x61, 0x6a, 0xfa, 0xaf, 0xcc, 0xfb, 0xa8, 0xec, 0xff,
+ 0xf4, 0x57, 0xc3, 0x4c, 0xcf, 0xcc, 0x58, 0x24, 0x6c, 0x05, 0xef, 0xcf,
+ 0x91, 0x58, 0x20, 0x4e, 0xf8, 0xd4, 0xff, 0x33, 0x8e, 0xf8, 0x7f, 0xc2,
+ 0x50, 0x04, 0xc6, 0x2a, 0x1b, 0x86, 0xdf, 0x48, 0x18, 0xfb, 0x5c, 0xe7,
+ 0x7d, 0xf7, 0xff, 0x81, 0xd0, 0x22, 0x20, 0xf3, 0x0a, 0xc0, 0x57, 0xff,
+ 0x84, 0x9c, 0x82, 0x26, 0xa7, 0x9b, 0x81, 0xd5, 0xdd, 0x3d, 0x34, 0x64,
+ 0xf5, 0x7f, 0x89, 0x5c, 0x09, 0x1b, 0x00, 0x0d, 0xac, 0x30, 0xda, 0x91,
+ 0x98, 0xfa, 0x0c, 0x7a, 0xf0, 0x00, 0xf6, 0x7f, 0xbf, 0xfb, 0x7c, 0x66,
+ 0x0f, 0xe6, 0x19, 0xc4, 0x47, 0x06, 0x4f, 0xff, 0xfc, 0x88, 0xc1, 0x93,
+ 0x80, 0x03, 0x1c, 0x1a, 0x7f, 0x31, 0x40, 0x3c, 0x7f, 0xc2, 0x50, 0x4c,
+ 0xf6, 0xd4, 0xe1, 0xdf, 0x48, 0x5f, 0x40, 0x86, 0xc3, 0x26, 0xad, 0xd8,
+ 0xd9, 0x06, 0x23, 0xa4, 0xda, 0x37, 0x1f, 0xf3, 0xfa, 0x3c, 0xa1, 0xda,
+ 0x64, 0xdf, 0x6b, 0x7b, 0x58, 0xa1, 0x4c, 0x22, 0x62, 0xdf, 0x18, 0x13,
+ 0x67, 0x68, 0x3f, 0x39, 0xc0, 0x1f, 0xdc, 0x1d, 0xfb, 0xf0, 0x33, 0xf7,
+ 0x8e, 0xfe, 0x7a, 0xf1, 0xde, 0xc2, 0x7f, 0xff, 0xf8, 0x01, 0x81, 0xfa,
+ 0xbc, 0x74, 0xd6, 0xb1, 0x72, 0x26, 0xfc, 0x4e, 0x01, 0xad, 0x38, 0xea,
+ 0x05, 0x29, 0x2d, 0x67, 0x3e, 0x01, 0x8d, 0x3c, 0xf4, 0x3c, 0xfe, 0xbb,
+ 0xbd, 0x78, 0xef, 0x9e, 0x27, 0x11, 0xe1, 0x49, 0x3f, 0x02, 0xed, 0xdc,
+ 0x9d, 0x6e, 0x7d, 0xff, 0xfe, 0x03, 0x03, 0x11, 0x2f, 0xe3, 0x60, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64, 0x25, 0xf2, 0x7f, 0x07, 0x9f,
+ 0x89, 0xf1, 0x1e, 0x23, 0xc4, 0x7f, 0xbf, 0x19, 0xff, 0x7f, 0xf6, 0xa0,
+ 0x20, 0x7c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2,
+ 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xcd, 0xe2, 0xbf, 0xfc, 0x3e, 0x68,
+ 0x00, 0xef, 0x0a, 0xe9, 0xa2, 0x47, 0x5f, 0xfb, 0x7e, 0x65, 0x1c, 0x20,
+ 0x1f, 0xf0, 0xf2, 0x14, 0x8e, 0x29, 0x58, 0xa1, 0xb7, 0xd2, 0x02, 0xb1,
+ 0x9b, 0xd1, 0x5b, 0x9f, 0x7f, 0xcd, 0x80, 0x38, 0xff, 0xf0, 0x96, 0x00,
+ 0x22, 0x9c, 0x93, 0x46, 0x18, 0x94, 0x97, 0xfb, 0xe2, 0xa0, 0xda, 0xa5,
+ 0x88, 0x1c, 0x69, 0xc1, 0xa0, 0x28, 0xb7, 0x32, 0x71, 0x0f, 0xe6, 0xff,
+ 0xc0, 0x78, 0x00, 0x89, 0xc4, 0x44, 0xe2, 0x3c, 0x29, 0x10, 0x00, 0x80,
+ 0x59, 0xd9, 0xd9, 0xd8, 0x0f, 0x37, 0x9f, 0x03, 0x82, 0x21, 0x37, 0x3f,
+ 0xc0, 0xe0, 0x88, 0x4d, 0xcf, 0x34, 0x43, 0xff, 0xf0, 0x99, 0x80, 0x0d,
+ 0x97, 0xb3, 0x02, 0x5d, 0xd7, 0xbc, 0xc2, 0x23, 0x11, 0x33, 0x3c, 0x1c,
+ 0x07, 0x21, 0x19, 0x93, 0x38, 0x8b, 0x17, 0x88, 0xf1, 0x1e, 0x23, 0xc4,
+ 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
+ 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf0, 0xa6, 0x00, 0x17, 0xaa, 0xda,
+ 0xb6, 0xa6, 0xbf, 0xfc, 0xf8, 0x01, 0x4f, 0x1b, 0x22, 0x67, 0x55, 0xef,
+ 0xfc, 0x0e, 0x20, 0x85, 0xb9, 0xea, 0x04, 0x08, 0x10, 0x75, 0xfa, 0xfd,
+ 0x7e, 0xbe, 0x10, 0xff, 0xff, 0xff, 0x9e, 0x37, 0x3f, 0x9f, 0x9c, 0xfe,
+ 0x7e, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2e, 0x04, 0x1f, 0xff, 0x3f,
+ 0x27, 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x31,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfe, 0x63,
+ 0xe3, 0x26, 0xa0, 0x33, 0x19, 0xb4, 0x9b, 0x1f, 0x43, 0x31, 0x31, 0x5f,
+ 0xff, 0xff, 0x7e, 0xfe, 0x28, 0x24, 0x40, 0xce, 0x90, 0x80, 0x2c, 0xc0,
+ 0xf6, 0xc0, 0x34, 0x06, 0x49, 0xb3, 0x00, 0x9a, 0xb8, 0xc3, 0x85, 0x78,
+ 0xed, 0xc6, 0xbb, 0x37, 0x8f, 0xc3, 0x01, 0xfc, 0x3f, 0xc1, 0x00, 0xb3,
+ 0x37, 0x7d, 0x7d, 0x7f, 0xcc, 0x8e, 0xb9, 0xfd, 0x6f, 0x15, 0xff, 0x7e,
+ 0xfc, 0x31, 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x9a, 0xfa, 0x67, 0xd0,
+ 0xe0, 0x90, 0x6d, 0x3a, 0xda, 0xd4, 0x98, 0xa9, 0xe7, 0xe3, 0xe9, 0x49,
+ 0x9f, 0x3b, 0xf7, 0xef, 0xc3, 0x02, 0xbb, 0x8b, 0x7d, 0xa5, 0x89, 0x75,
+ 0xc2, 0x50, 0x9c, 0xf7, 0x00, 0xbb, 0x7d, 0x2d, 0xf8, 0x85, 0x26, 0x3f,
+ 0x84, 0x83, 0x1e, 0x57, 0x27, 0xfd, 0xff, 0x0c, 0x70, 0xc1, 0xff, 0xe1,
+ 0x25, 0x80, 0x96, 0xe7, 0x47, 0x88, 0x64, 0xcb, 0xc0, 0x93, 0xee, 0x5b,
+ 0x1f, 0x4f, 0xc3, 0x16, 0xb7, 0xc9, 0xbf, 0x09, 0x96, 0x92, 0x4b, 0xe8,
+ 0xc7, 0x47, 0x0e, 0xd3, 0xed, 0x63, 0xb6, 0x09, 0x70, 0x00, 0x87, 0xaf,
+ 0xfa, 0xbe, 0xff, 0xf8, 0x08, 0xf5, 0xed, 0xa6, 0x3e, 0xac, 0xef, 0x3a,
+ 0xb6, 0xca, 0x00, 0x9d, 0x06, 0x11, 0x8f, 0xb6, 0x3e, 0xf5, 0xac, 0x67,
+ 0x7e, 0x1a, 0x9f, 0x0d, 0x7b, 0xf0, 0xdf, 0x1d, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xb4, 0x95, 0x81, 0x4b, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xdf,
+ 0xbf, 0x7e, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xf8, 0x63,
+ 0xc5, 0x7f, 0xf8, 0x7c, 0xd0, 0x0b, 0xea, 0x80, 0xd4, 0x45, 0xfb, 0xf7,
+ 0xe1, 0x8f, 0xff, 0xf8, 0x78, 0xe2, 0x80, 0x01, 0xdf, 0x86, 0xfd, 0xfb,
+ 0xfc, 0x27, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0xeb, 0x97,
+ 0xff, 0xff, 0xfa, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf4,
+ 0xa1, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xfe, 0x53, 0xe0, 0x24, 0xff, 0x81,
+ 0xff, 0xd1, 0x20, 0xb7, 0x19, 0x74, 0xf9, 0x9f, 0x09, 0x16, 0x14, 0xdb,
+ 0xc3, 0x33, 0x2e, 0x00, 0x2c, 0xe2, 0x6d, 0x75, 0x5f, 0x66, 0xfe, 0xd3,
+ 0xc4, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xc8, 0x10, 0xe0, 0x23, 0xd7, 0xaf,
+ 0x3b, 0xf8, 0x43, 0x94, 0x0a, 0x76, 0x5e, 0x5f, 0xd5, 0xea, 0xa5, 0xc3,
+ 0xcf, 0x22, 0x8a, 0x5b, 0xa1, 0x38, 0xdb, 0xf2, 0x12, 0xbb, 0xb3, 0xfe,
+ 0x11, 0x64, 0xdc, 0x91, 0xa9, 0xd8, 0x87, 0xf8, 0x10, 0xf7, 0xfd, 0x43,
+ 0x8b, 0xd3, 0xa1, 0x8d, 0x16, 0x75, 0xe5, 0xbc, 0x9f, 0x89, 0x08, 0xe0,
+ 0x86, 0x30, 0x8e, 0x48, 0x1e, 0x93, 0xfe, 0x08, 0x01, 0xb5, 0xbe, 0x8b,
+ 0x4c, 0xfc, 0xa5, 0xd0, 0x50, 0x98, 0xe2, 0xe2, 0x40, 0x62, 0xa8, 0xcc,
+ 0xc3, 0xe8, 0xf0, 0x04, 0x7f, 0xb7, 0x60, 0xb1, 0x46, 0xa7, 0xca, 0x38,
+ 0xc6, 0x61, 0x8c, 0xa8, 0x7c, 0xee, 0x06, 0xde, 0x63, 0x72, 0x05, 0x63,
+ 0xf4, 0x12, 0xe8, 0x82, 0x2a, 0xf8, 0xbf, 0x80, 0xe8, 0x0f, 0x10, 0x41,
+ 0x12, 0x2f, 0xe0, 0xd6, 0x33, 0x0a, 0x8a, 0x86, 0xa1, 0x06, 0xed, 0x7c,
+ 0xa1, 0x3c, 0x04, 0x10, 0x82, 0x2a, 0x04, 0x6f, 0x3f, 0xe2, 0xbf, 0xff,
+ 0xf1, 0x66, 0x80, 0x31, 0xfa, 0xac, 0x71, 0x7f, 0x3f, 0xd8, 0x90, 0x7a,
+ 0x77, 0xf1, 0x6c, 0x26, 0x67, 0x7b, 0x08, 0xbd, 0x7d, 0x5f, 0x45, 0x2f,
+ 0x66, 0x96, 0x40, 0xb9, 0x1e, 0xe0, 0xde, 0x6f, 0xd7, 0x26, 0x60, 0xf7,
+ 0xe0, 0x01, 0x9b, 0x6d, 0xf1, 0x4d, 0xce, 0x69, 0x64, 0x68, 0xc8, 0x57,
+ 0x79, 0xfa, 0x0e, 0x41, 0x23, 0x6a, 0xa5, 0x76, 0xb0, 0x04, 0x72, 0x6d,
+ 0x20, 0x99, 0x85, 0xa4, 0x2d, 0xc7, 0x3a, 0x8c, 0x1e, 0x24, 0xcf, 0xe8,
+ 0x4c, 0x6e, 0x23, 0xe2, 0x3e, 0x23, 0xae, 0x61, 0x16, 0x81, 0x36, 0x96,
+ 0xcf, 0x7f, 0x91, 0x46, 0x80, 0xc4, 0x3e, 0x82, 0xfd, 0xcf, 0xba, 0xd0,
+ 0x5a, 0x43, 0x6b, 0x3f, 0xc4, 0x38, 0x41, 0xc3, 0xdc, 0x7b, 0x00, 0x01,
+ 0x04, 0x9f, 0x03, 0x7d, 0xb7, 0x98, 0x2a, 0xbf, 0xea, 0xb3, 0x82, 0x7f,
+ 0x00, 0x64, 0x7e, 0x5a, 0x7f, 0x48, 0x40, 0xfd, 0x51, 0xef, 0xe0, 0x00,
+ 0xcb, 0xee, 0xad, 0xfd, 0xe7, 0x34, 0xb3, 0xb0, 0x3f, 0xca, 0x7f, 0x40,
+ 0xe6, 0xff, 0xcf, 0xf0, 0x40, 0x5f, 0x80, 0x2f, 0x76, 0xd8, 0x1f, 0xbd,
+ 0x9e, 0xff, 0xff, 0xf1, 0x02, 0x21, 0xa5, 0x3c, 0x90, 0x9f, 0x03, 0xce,
+ 0xd8, 0xc9, 0x2e, 0x17, 0xe2, 0x38, 0x9f, 0xd8, 0x1b, 0xaf, 0x42, 0x7c,
+ 0x33, 0xb6, 0x93, 0x3f, 0xf8, 0xd1, 0xe0, 0x9a, 0xa0, 0x95, 0xbf, 0x58,
+ 0xff, 0xf4, 0x18, 0xd4, 0xce, 0xef, 0x9a, 0x3e, 0x1f, 0xf8, 0x4b, 0x0e,
+ 0x8c, 0x80, 0x61, 0x09, 0x80, 0xdb, 0x50, 0x30, 0x7e, 0x00, 0x76, 0x8c,
+ 0x80, 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x76, 0x9a, 0x01, 0x8c, 0xf2,
+ 0x03, 0x6d, 0x5e, 0x0c, 0x1c, 0xfc, 0x49, 0x60, 0x4f, 0xa9, 0x7e, 0x7b,
+ 0xba, 0x10, 0x11, 0xb7, 0x67, 0xfb, 0x78, 0xe6, 0xbb, 0x82, 0xc2, 0x67,
+ 0x81, 0xf3, 0x3f, 0x89, 0x89, 0xcd, 0xff, 0xfd, 0xe0, 0x84, 0xd8, 0x00,
+ 0x66, 0x36, 0xde, 0x89, 0x37, 0x30, 0xe7, 0x2b, 0x90, 0xef, 0x23, 0xf7,
+ 0xba, 0x63, 0x39, 0xf9, 0x3b, 0xce, 0x98, 0xb5, 0xd0, 0x30, 0xca, 0x0f,
+ 0xc3, 0x00, 0xf4, 0x9b, 0xe0, 0xa3, 0x99, 0xfc, 0x00, 0x3e, 0x9b, 0x39,
+ 0x11, 0xa0, 0x6a, 0x67, 0xef, 0x67, 0x87, 0x72, 0x4b, 0x1f, 0x10, 0x7e,
+ 0x0f, 0x09, 0xbf, 0x4a, 0xac, 0x67, 0x7a, 0xab, 0xc1, 0x8a, 0xd6, 0xbd,
+ 0x3d, 0xff, 0xff, 0xbf, 0x8e, 0xe2, 0xbc, 0x04, 0xbf, 0xb5, 0xef, 0xee,
+ 0x37, 0xf0, 0x3f, 0xcf, 0x7e, 0xcf, 0xe6, 0xff, 0xee, 0x44, 0x58, 0xcf,
+ 0x00, 0x25, 0x99, 0xc2, 0x47, 0x54, 0x5d, 0xac, 0x00, 0x96, 0x67, 0x09,
+ 0x1d, 0x51, 0x76, 0x81, 0xe7, 0x53, 0xcd, 0xa0, 0x9b, 0xe9, 0xc0, 0x05,
+ 0xdf, 0xe1, 0x45, 0x73, 0x0e, 0x2f, 0xd4, 0x9f, 0x71, 0xfa, 0xf0, 0x5e,
+ 0x69, 0x3b, 0xb9, 0x14, 0xbf, 0xc2, 0x58, 0x00, 0x7d, 0x36, 0x72, 0x26,
+ 0x81, 0xa9, 0x9f, 0xbd, 0x80, 0xde, 0x72, 0xba, 0x3b, 0x27, 0xef, 0x60,
+ 0x4a, 0xaf, 0xff, 0x8a, 0x2d, 0xf5, 0x07, 0xff, 0x8e, 0x52, 0xe6, 0xc3,
+ 0xa8, 0x5d, 0xbb, 0xc4, 0x90, 0xb0, 0x01, 0x37, 0x27, 0x6b, 0xd3, 0xbb,
+ 0xbe, 0x61, 0x11, 0x11, 0xf0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2,
+ 0x84, 0x1d, 0x7f, 0xcb, 0xef, 0xc6, 0x72, 0x08, 0x1b, 0x77, 0xf3, 0x0b,
+ 0x7d, 0x1e, 0x27, 0xff, 0x62, 0x20, 0x9d, 0xe0, 0x3e, 0xd6, 0xf7, 0xe3,
+ 0x79, 0x1c, 0x24, 0xc0, 0xa2, 0x7f, 0x68, 0xcd, 0xc7, 0xee, 0x98, 0x00,
+ 0x0f, 0xf1, 0x18, 0x75, 0x00, 0x53, 0x98, 0x33, 0xf7, 0x4c, 0x00, 0x07,
+ 0x93, 0xfc, 0x41, 0x81, 0x0b, 0xc0, 0x7c, 0xb1, 0x3c, 0xd5, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
+ 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfc, 0xca,
+ 0x7f, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60,
+ 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xae, 0xfd,
+ 0xfa, 0x2c, 0xa7, 0xc1, 0x1e, 0xcb, 0x2e, 0x8b, 0x8a, 0xff, 0xff, 0xdf,
+ 0xf7, 0xe8, 0x91, 0x42, 0x00, 0x08, 0xbd, 0x4b, 0x9b, 0xcf, 0xfa, 0xcd,
+ 0xa3, 0xc0, 0x84, 0x43, 0xb4, 0x24, 0x87, 0xbf, 0xf4, 0x00, 0xce, 0x5e,
+ 0x14, 0xa5, 0x5f, 0xef, 0x2a, 0x1c, 0x6b, 0xc8, 0x24, 0xe9, 0x8e, 0xac,
+ 0xcf, 0x86, 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x84, 0x40, 0x2f, 0x73, 0x2f,
+ 0x55, 0xee, 0x26, 0x0a, 0x17, 0x94, 0xbb, 0xdf, 0xc6, 0xc0, 0x0b, 0x17,
+ 0xca, 0x9c, 0xef, 0xf8, 0xaf, 0xfb, 0xf7, 0xeb, 0x18, 0xb8, 0xec, 0x6e,
+ 0xdb, 0x80, 0x2b, 0x71, 0xa0, 0x95, 0x07, 0x51, 0x57, 0xef, 0x33, 0x53,
+ 0xc1, 0x2b, 0xc5, 0x2c, 0xeb, 0x3c, 0x3c, 0xd3, 0xeb, 0x03, 0xde, 0xff,
+ 0xcf, 0x80, 0xdc, 0x79, 0x03, 0x4d, 0xe7, 0xf7, 0x34, 0xfb, 0xb6, 0xf9,
+ 0xdf, 0xbf, 0x7e, 0xfc, 0x30, 0x15, 0x5f, 0xf5, 0x38, 0xc1, 0x3b, 0xc3,
+ 0xd7, 0x08, 0x1d, 0xf8, 0x3d, 0x88, 0xe8, 0x20, 0x26, 0x78, 0x00, 0x58,
+ 0x0d, 0x9c, 0x4f, 0xf0, 0x1b, 0x35, 0x5d, 0xff, 0xdf, 0xbf, 0x27, 0x02,
+ 0xa0, 0x82, 0x02, 0x06, 0x97, 0xf6, 0xa7, 0xe6, 0x88, 0xe1, 0x9e, 0x00,
+ 0x8b, 0xee, 0xec, 0xfe, 0x2e, 0x00, 0xd6, 0x90, 0x96, 0xf6, 0x9b, 0x01,
+ 0x89, 0xfb, 0xc8, 0x10, 0xa1, 0x88, 0x78, 0xe3, 0x69, 0x12, 0x27, 0xe7,
+ 0x9d, 0xf5, 0xc9, 0x03, 0x2e, 0x61, 0x3c, 0x09, 0x1e, 0xcd, 0xfd, 0x61,
+ 0x8f, 0x27, 0x22, 0x22, 0x22, 0x2f, 0x12, 0x4e, 0x02, 0x3d, 0x7e, 0xdf,
+ 0x0e, 0x41, 0xf8, 0x63, 0xbc, 0x23, 0x71, 0x94, 0x47, 0xf4, 0x3b, 0xff,
+ 0xc0, 0x7e, 0x03, 0xf7, 0xb2, 0x03, 0xf0, 0x1f, 0xbd, 0x9f, 0x5c, 0x73,
+ 0xe4, 0x0c, 0x79, 0x13, 0x14, 0x8a, 0x5e, 0x32, 0x80, 0xec, 0x20, 0xfc,
+ 0x20, 0x0b, 0x55, 0x37, 0x01, 0x0e, 0xaf, 0x80, 0xed, 0xc0, 0x84, 0x00,
+ 0xed, 0x58, 0x25, 0xcf, 0xf3, 0xd6, 0x3b, 0x6b, 0xbc, 0x6c, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe,
+ 0xf1, 0xbd, 0xfb, 0xe4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xb8, 0x52, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x04, 0xf3, 0x60, 0x99, 0xb0, 0x3f,
+ 0x47, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xa1, 0xc1, 0x7f, 0xb8, 0x00, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff,
+ 0xe6, 0x13, 0xc0, 0x01, 0xeb, 0xdb, 0x43, 0x8c, 0xbb, 0xc8, 0xac, 0x33,
+ 0x2b, 0xe4, 0x9c, 0x5b, 0x99, 0xa1, 0x0f, 0xfb, 0x7c, 0x57, 0xff, 0xc2,
+ 0x62, 0x9d, 0xf3, 0x88, 0x36, 0x18, 0x7a, 0x0e, 0xff, 0xfc, 0xd9, 0x81,
+ 0xe4, 0x16, 0x7c, 0x7f, 0xe2, 0xa9, 0xea, 0xc6, 0x1d, 0x4f, 0xfb, 0xfc,
+ 0x21, 0x04, 0x3b, 0x1d, 0xd5, 0xf8, 0x6c, 0x03, 0x52, 0x01, 0x84, 0x38,
+ 0x1a, 0xf4, 0x07, 0xd7, 0x74, 0x47, 0x0e, 0x1c, 0xfe, 0x63, 0x40, 0x93,
+ 0xdd, 0x99, 0xe8, 0xab, 0xb4, 0x00, 0x27, 0xe7, 0xe8, 0xd3, 0x0c, 0xaf,
+ 0xfb, 0x19, 0xf7, 0x6e, 0x3c, 0xae, 0xd3, 0x38, 0x30, 0xc6, 0x95, 0xe1,
+ 0x77, 0xfe, 0x75, 0xfc, 0x4e, 0x84, 0x11, 0x74, 0xf3, 0xf5, 0x81, 0x8e,
+ 0x4d, 0x8e, 0xe4, 0x5e, 0xfe, 0xa3, 0xd5, 0x4c, 0x48, 0xb6, 0xb8, 0x05,
+ 0xb1, 0x27, 0x0d, 0x80, 0xcd, 0xe1, 0xda, 0xd8, 0x8c, 0xad, 0xe6, 0x82,
+ 0x85, 0x33, 0xf0, 0x3a, 0xf0, 0xc3, 0x4b, 0xe6, 0x5e, 0x49, 0xfe, 0x84,
+ 0xab, 0x57, 0x2f, 0x2a, 0x74, 0x13, 0x3b, 0xf3, 0x4d, 0x9f, 0xda, 0x7f,
+ 0x84, 0xc5, 0xf7, 0x4f, 0xa7, 0x23, 0x4d, 0x00, 0x00, 0x80, 0xa8, 0x3b,
+ 0x9d, 0xf0, 0x04, 0x17, 0x68, 0xaa, 0xff, 0x6d, 0xf4, 0x62, 0xd1, 0x41,
+ 0xdf, 0x7f, 0x6e, 0x5e, 0xde, 0xf8, 0xed, 0xb0, 0x3f, 0xc5, 0xe2, 0xbf,
+ 0xff, 0xf0, 0x89, 0xb2, 0xe0, 0xc8, 0x38, 0x0a, 0x36, 0x64, 0x5b, 0xd6,
+ 0x4c, 0xd8, 0xc7, 0x91, 0xe1, 0xc8, 0xbb, 0x3c, 0xdf, 0x8a, 0x91, 0x00,
+ 0xbb, 0xaa, 0xdf, 0x80, 0x18, 0x1e, 0x57, 0xc7, 0x6c, 0x40, 0x0d, 0x82,
+ 0x3e, 0x59, 0x30, 0xcc, 0x33, 0xac, 0x3f, 0xff, 0x3f, 0x40, 0x60, 0x85,
+ 0x0a, 0x5e, 0xe0, 0x5f, 0x30, 0xa9, 0x2e, 0xc0, 0x10, 0x80, 0x08, 0x91,
+ 0x2f, 0x54, 0x7d, 0x94, 0x24, 0xfa, 0x20, 0x54, 0xb9, 0xd1, 0x79, 0xd9,
+ 0x66, 0x13, 0x2b, 0x3f, 0x23, 0x1a, 0xa9, 0xfd, 0xfb, 0xaa, 0x60, 0x8b,
+ 0x49, 0x82, 0x7b, 0x39, 0xcd, 0xe2, 0xf9, 0x2e, 0xcf, 0xcc, 0x5a, 0x18,
+ 0x75, 0x65, 0xaf, 0x75, 0xf9, 0x50, 0x65, 0x0d, 0x87, 0xff, 0x93, 0x5a,
+ 0xf8, 0x87, 0x0c, 0x43, 0x68, 0xf4, 0x71, 0x30, 0x61, 0x7f, 0x09, 0xf8,
+ 0xfc, 0x58, 0xc0, 0x16, 0xd2, 0x21, 0xef, 0xf9, 0x4b, 0xc4, 0x4d, 0x47,
+ 0xff, 0xdd, 0xef, 0xff, 0xff, 0x20, 0x81, 0xf4, 0x2e, 0x86, 0xc1, 0x79,
+ 0x26, 0x0c, 0x8e, 0x04, 0x14, 0x74, 0x53, 0x41, 0xcd, 0xba, 0xee, 0x3f,
+ 0xf0, 0x94, 0x2d, 0x88, 0x8c, 0x68, 0x8b, 0x1f, 0x52, 0x4f, 0x04, 0x95,
+ 0x0f, 0x66, 0xe6, 0xec, 0x33, 0x80, 0x55, 0xad, 0x12, 0x58, 0xee, 0xfe,
+ 0x26, 0x04, 0xf0, 0x4b, 0x10, 0xe3, 0x8e, 0xbb, 0x6d, 0x95, 0xa5, 0x9d,
+ 0xe8, 0xa1, 0xbb, 0xff, 0xe8, 0xce, 0xbe, 0xf0, 0x00, 0x03, 0x3f, 0x10,
+ 0x59, 0xf6, 0x40, 0x69, 0x1d, 0xf0, 0x26, 0x3d, 0xff, 0x5e, 0x84, 0x44,
+ 0xe6, 0x33, 0xa6, 0x1f, 0x3a, 0x60, 0x9c, 0x45, 0x5e, 0x3f, 0x5e, 0x03,
+ 0xf7, 0x7e, 0x07, 0xef, 0x66, 0x0f, 0x57, 0x7c, 0xb6, 0x3e, 0x35, 0xe0,
+ 0x07, 0xcb, 0xd6, 0x89, 0xb8, 0xa5, 0xe3, 0x33, 0x77, 0xcb, 0xfd, 0xff,
+ 0x1d, 0xc9, 0x8c, 0x1b, 0x3b, 0xf9, 0xe2, 0x73, 0xf9, 0xbe, 0x90, 0xe3,
+ 0xc2, 0x30, 0x57, 0x80, 0x5f, 0x25, 0x01, 0xf5, 0x02, 0x12, 0xb9, 0x5c,
+ 0xda, 0x7c, 0xbd, 0x80, 0xe0, 0x88, 0x4b, 0x25, 0xb8, 0x33, 0x6f, 0xd5,
+ 0xb5, 0xfe, 0x00, 0x05, 0x69, 0x9c, 0xbd, 0x5e, 0xd7, 0x0a, 0x48, 0x8e,
+ 0xe6, 0x70, 0x24, 0xdc, 0x06, 0xfe, 0x43, 0x8c, 0x01, 0x4c, 0xdf, 0xff,
+ 0xf0, 0xf9, 0x60, 0x0a, 0x09, 0x91, 0x80, 0x41, 0xca, 0x02, 0x8d, 0xcf,
+ 0xf3, 0x0f, 0x71, 0xff, 0xe1, 0xf2, 0x00, 0x03, 0xca, 0x96, 0x5f, 0xa6,
+ 0x38, 0xbc, 0x5f, 0x68, 0x0f, 0x9a, 0xf8, 0xff, 0xf8, 0x48, 0xb8, 0x02,
+ 0x4c, 0x92, 0x48, 0x79, 0xfd, 0xb3, 0x8e, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xd6, 0xa4, 0x0b, 0x5c, 0x86, 0x84, 0x7e, 0x15, 0xff, 0x12,
+ 0xbe, 0x19, 0x80, 0x2b, 0xa4, 0x86, 0x65, 0xe3, 0x87, 0x25, 0xf7, 0xe3,
+ 0x38, 0x8c, 0xd9, 0x86, 0xc6, 0xfa, 0x72, 0x38, 0xea, 0xfc, 0xb0, 0xcc,
+ 0x5b, 0xaf, 0x28, 0x45, 0xf0, 0x8f, 0x81, 0x3e, 0xa0, 0x2e, 0x19, 0xd8,
+ 0x33, 0x0f, 0xa2, 0x96, 0x8c, 0x38, 0x87, 0x70, 0x39, 0xdd, 0x1f, 0xfd,
+ 0xf8, 0xee, 0xe3, 0x35, 0x30, 0x30, 0x1f, 0xf2, 0x7f, 0x94, 0xd9, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+ 0x57, 0xff, 0xe4, 0x31, 0x46, 0x31, 0x92, 0x8b, 0xff, 0xc2, 0x1f, 0xff,
+ 0xff, 0xff, 0xf4, 0x3d, 0x9f, 0x9b, 0xfc, 0x70, 0xac, 0x11, 0xb6, 0x04,
+ 0xef, 0xfe, 0x10, 0xb9, 0x7e, 0xf4, 0x89, 0x28, 0xda, 0x08, 0x7f, 0x2f,
+ 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60, 0x55, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xeb, 0xfe, 0x18, 0xff,
+ 0xd4, 0x38, 0x42, 0xa7, 0xc0, 0x09, 0xd2, 0x69, 0xe3, 0x84, 0x3f, 0x5f,
+ 0x80, 0x0e, 0xa6, 0x26, 0x52, 0x98, 0x0e, 0xb1, 0x9a, 0xbd, 0xc0, 0x72,
+ 0x04, 0x62, 0x31, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x68, 0x18, 0x2d, 0x99,
+ 0xcb, 0x5d, 0x8a, 0x19, 0xd4, 0xe6, 0x63, 0x11, 0x14, 0xef, 0xa7, 0xe1,
+ 0xe8, 0x8f, 0x6e, 0x94, 0x34, 0xec, 0xb1, 0xe2, 0x0b, 0x99, 0x05, 0x58,
+ 0xdd, 0x29, 0x2e, 0x41, 0x8d, 0xaf, 0xfc, 0x7c, 0x01, 0xbb, 0x34, 0x01,
+ 0x6b, 0x01, 0xb0, 0x40, 0x55, 0x4c, 0xf1, 0x1b, 0x40, 0x1c, 0x08, 0xfc,
+ 0x32, 0x6a, 0xb3, 0x23, 0xf8, 0x76, 0x58, 0x94, 0x30, 0x54, 0xfb, 0x4b,
+ 0xf0, 0x98, 0xb0, 0x09, 0x77, 0x0c, 0x2c, 0x3e, 0x21, 0xbb, 0x9f, 0x1e,
+ 0x52, 0x80, 0x68, 0x7f, 0xbf, 0x7e, 0xee, 0x4b, 0x38, 0x37, 0xe4, 0x3f,
+ 0xef, 0xcf, 0x2f, 0xe7, 0x8a, 0xff, 0xfe, 0x18, 0xe3, 0xc0, 0x0d, 0x1f,
+ 0x54, 0x8b, 0x36, 0x00, 0x19, 0xb6, 0xdf, 0x29, 0xb8, 0x6e, 0xd4, 0xb1,
+ 0xbb, 0x49, 0x80, 0xdf, 0x0e, 0xa3, 0x40, 0xd1, 0xc5, 0xb8, 0x02, 0x32,
+ 0xb4, 0xd1, 0xad, 0x5e, 0x51, 0x3e, 0x09, 0xa4, 0x70, 0xec, 0x8c, 0xc8,
+ 0x8d, 0xf9, 0xe1, 0x7a, 0x98, 0x95, 0x70, 0x67, 0x6a, 0xb7, 0xdf, 0xc7,
+ 0x7f, 0xfb, 0xf7, 0xfb, 0xff, 0xfe, 0x18, 0x05, 0x41, 0x0b, 0x97, 0xfc,
+ 0x24, 0xc3, 0x5b, 0x31, 0x23, 0xf4, 0xbb, 0xc0, 0xc6, 0x2b, 0xb6, 0x90,
+ 0xfb, 0xef, 0x1e, 0x02, 0xad, 0x25, 0x81, 0xaf, 0xfc, 0x2f, 0x8e, 0x43,
+ 0x7f, 0xfc, 0xd3, 0xb2, 0xcb, 0x5f, 0xed, 0x32, 0xed, 0xe5, 0x0b, 0xff,
+ 0xe0, 0x33, 0xbe, 0xb4, 0x1a, 0x8d, 0xdf, 0x1d, 0xbe, 0x18, 0xff, 0xfd,
+ 0xde, 0x15, 0x11, 0xc0, 0x0c, 0x4b, 0x88, 0x8d, 0xa5, 0xda, 0xc3, 0x36,
+ 0x6b, 0x48, 0xdf, 0xff, 0xae, 0x65, 0x74, 0xba, 0xff, 0xe9, 0x86, 0x3f,
+ 0xee, 0xf7, 0x7e, 0x33, 0xc0, 0x03, 0x13, 0x3e, 0xf4, 0x22, 0xd6, 0x00,
+ 0x18, 0x97, 0x11, 0x1b, 0x4b, 0xb4, 0x19, 0xb3, 0x5a, 0x46, 0xff, 0xfd,
+ 0x70, 0xfc, 0xca, 0xe9, 0x75, 0xff, 0xd2, 0x1f, 0xe1, 0x8d, 0xde, 0x62,
+ 0x9f, 0x08, 0x45, 0x2e, 0x74, 0x32, 0x9d, 0x0f, 0x8f, 0x40, 0xc2, 0xf7,
+ 0xbe, 0xef, 0x9e, 0x00, 0x18, 0x99, 0xf7, 0xa1, 0x16, 0xb2, 0xd9, 0x5c,
+ 0x93, 0xe3, 0xf1, 0x20, 0xbd, 0xe0, 0x48, 0x25, 0x1d, 0xc4, 0xb6, 0x98,
+ 0xaf, 0xae, 0xe4, 0x02, 0x65, 0x2c, 0xcf, 0x44, 0x8d, 0xa8, 0x63, 0x9f,
+ 0x61, 0x8f, 0xff, 0xf8, 0x7c, 0xf0, 0x05, 0xad, 0x30, 0x42, 0xb1, 0x0d,
+ 0xcf, 0xf4, 0x26, 0xe0, 0x3d, 0x9a, 0xe4, 0xd4, 0xdc, 0xfe, 0x0c, 0x38,
+ 0xf8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x82, 0xae, 0xf9,
+ 0x77, 0x8c, 0x7f, 0xbf, 0xbc, 0x77, 0xc9, 0xdf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0x7f,
+ 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x03, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x4e, 0xb1, 0xa5, 0x28, 0x9c, 0x01,
+ 0x4b, 0x7e, 0xa0, 0x3e, 0xfb, 0x17, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf9, 0x3f, 0x12, 0x5f, 0x14, 0x30, 0x01, 0x04, 0x35, 0x3e, 0x4c, 0xdb,
+ 0x41, 0x43, 0x49, 0xb1, 0xf1, 0x6a, 0x82, 0xac, 0x29, 0xfa, 0x94, 0xe3,
+ 0x91, 0x41, 0x68, 0x6b, 0x1b, 0xa5, 0xdd, 0xde, 0xe7, 0x3f, 0x12, 0x2e,
+ 0xe0, 0xaf, 0xc0, 0xf3, 0x36, 0x80, 0xcd, 0xe7, 0xb0, 0xa5, 0x22, 0x5f,
+ 0xee, 0x7f, 0x73, 0x70, 0x08, 0x2f, 0x7e, 0x1f, 0xf4, 0xf1, 0x5f, 0xff,
+ 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x64, 0xa9, 0x2b, 0x37, 0x00, 0x38, 0xb9,
+ 0x08, 0xbd, 0x87, 0x99, 0x5b, 0x72, 0x6e, 0x3c, 0x04, 0x22, 0x59, 0xa9,
+ 0x75, 0x32, 0x35, 0xc0, 0x02, 0x26, 0x50, 0x36, 0x7a, 0x72, 0x0e, 0xa5,
+ 0x00, 0x0d, 0xee, 0x80, 0x9a, 0xa8, 0x57, 0xa8, 0x55, 0xd6, 0xfe, 0x76,
+ 0xae, 0xd7, 0xa8, 0x00, 0x33, 0xba, 0x84, 0xd5, 0x12, 0x6a, 0x87, 0x1b,
+ 0x93, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xf8, 0x86, 0xd7, 0xb7,
+ 0x47, 0xaf, 0xc5, 0xa2, 0xf1, 0x0e, 0xa3, 0x41, 0x62, 0x05, 0x2a, 0xd8,
+ 0x39, 0xf7, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf6, 0xb0, 0xc8, 0x16, 0x63,
+ 0xbd, 0xe2, 0x73, 0x15, 0x57, 0x50, 0xf1, 0x5e, 0x28, 0xb8, 0xe8, 0xa6,
+ 0x00, 0xf1, 0xfa, 0xbd, 0x3a, 0xdd, 0xd4, 0x62, 0xf7, 0x1e, 0x01, 0x45,
+ 0xed, 0x81, 0xa8, 0x8b, 0xf3, 0x7f, 0xae, 0xba, 0xe1, 0x5c, 0x7a, 0xef,
+ 0xfe, 0xbf, 0xc0, 0x17, 0x95, 0x51, 0xde, 0xd1, 0x8e, 0x98, 0xf8, 0xc8,
+ 0x07, 0xf4, 0xbe, 0x6f, 0xff, 0xed, 0x04, 0x2e, 0x00, 0x45, 0x64, 0x7d,
+ 0x09, 0x47, 0x44, 0xf6, 0xe9, 0x55, 0x06, 0xc0, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xda, 0xc4, 0x37, 0xe4, 0xe4, 0x24, 0x00, 0x9e, 0x65, 0x89,
+ 0x5d, 0x15, 0x76, 0xbf, 0xe2, 0x0c, 0xe0, 0xe7, 0x40, 0x68, 0x14, 0xf7,
+ 0xe4, 0x6c, 0xb4, 0x68, 0x00, 0x0e, 0xbc, 0xff, 0x00, 0x00, 0x04, 0x00,
+ 0xe0, 0x0b, 0x2b, 0xd8, 0x18, 0xa9, 0x30, 0x02, 0x82, 0xe6, 0x07, 0x8e,
+ 0x8c, 0x06, 0xfc, 0x67, 0xfc, 0x9e, 0xfc, 0x77, 0xfc, 0x9f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
+ 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f,
+ 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb, 0x60, 0x67, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0xe1, 0x8f, 0xfd,
+ 0x43, 0x84, 0x2a, 0x7c, 0x00, 0xad, 0x34, 0xf1, 0xc6, 0x3e, 0xbf, 0x00,
+ 0x2e, 0xc8, 0x5d, 0xc8, 0x05, 0x58, 0x8e, 0xbd, 0xd5, 0x59, 0x5e, 0x12,
+ 0x31, 0x3c, 0xb1, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x68, 0x10, 0xd9, 0x99,
+ 0xca, 0xd2, 0xb1, 0x01, 0x9d, 0xd1, 0xa6, 0x37, 0x74, 0xd3, 0xbb, 0x4f,
+ 0x08, 0x6d, 0x30, 0x7c, 0x6e, 0x26, 0x86, 0xa8, 0x8c, 0x6d, 0x4d, 0x59,
+ 0xb6, 0x9e, 0x02, 0xc7, 0x44, 0x98, 0x19, 0x2d, 0x30, 0x0f, 0x64, 0x99,
+ 0xa0, 0x33, 0x6b, 0x85, 0x00, 0x95, 0x4c, 0xf8, 0x73, 0x41, 0xae, 0x47,
+ 0x0c, 0x3d, 0x0a, 0x57, 0xf2, 0x8c, 0x1f, 0xe8, 0x61, 0xbf, 0x9f, 0xf8,
+ 0x78, 0xe1, 0xa8, 0x98, 0x67, 0xaf, 0x64, 0x3e, 0x37, 0x95, 0x56, 0xf9,
+ 0xe2, 0xbf, 0xff, 0x86, 0x38, 0xf5, 0x07, 0x19, 0xb3, 0x1d, 0x9b, 0x00,
+ 0x30, 0x3c, 0xaf, 0x8e, 0xc3, 0xc4, 0x8c, 0xa5, 0xbc, 0x04, 0x5e, 0xb5,
+ 0xe7, 0xfc, 0x75, 0xb2, 0x1a, 0x43, 0x87, 0x2c, 0x19, 0xd7, 0x39, 0xa2,
+ 0xc9, 0xfb, 0x9f, 0xe0, 0xa6, 0x72, 0x51, 0x02, 0xaa, 0x77, 0xec, 0xf8,
+ 0x34, 0x8a, 0x3d, 0x40, 0x1d, 0xde, 0x3e, 0x7f, 0xff, 0xfb, 0xff, 0xfe,
+ 0x18, 0xb5, 0x36, 0xff, 0xc2, 0x47, 0x80, 0x50, 0x5a, 0x58, 0xf7, 0xf9,
+ 0x04, 0xf1, 0x1c, 0x58, 0x74, 0x8e, 0x46, 0xb8, 0xa0, 0xce, 0x04, 0x41,
+ 0xfe, 0x47, 0x82, 0x0e, 0x7d, 0x6f, 0x1d, 0xbd, 0x86, 0x3e, 0x90, 0xfe,
+ 0x10, 0xa6, 0x01, 0xba, 0xa3, 0xa8, 0x10, 0x16, 0xa5, 0xcf, 0xa3, 0xd3,
+ 0x1e, 0xbe, 0xdb, 0xe3, 0xb6, 0xfc, 0x30, 0x21, 0x0d, 0x43, 0xfe, 0x1f,
+ 0xe0, 0x0a, 0xf2, 0xe2, 0x15, 0x7d, 0x2e, 0x9c, 0x31, 0x88, 0x60, 0xbf,
+ 0xf0, 0x97, 0x03, 0x90, 0x06, 0x8c, 0x80, 0x10, 0xeb, 0xeb, 0xeb, 0xef,
+ 0xfb, 0xb8, 0xcb, 0x10, 0x9b, 0x1f, 0xe5, 0xc3, 0x1f, 0xe0, 0x1a, 0xad,
+ 0xa1, 0x58, 0x00, 0x64, 0x6e, 0xed, 0x7d, 0x8b, 0xfe, 0x0f, 0x02, 0x83,
+ 0xa3, 0x20, 0x35, 0x74, 0x05, 0xf1, 0x62, 0x43, 0xfb, 0x48, 0x6f, 0xff,
+ 0x8a, 0x80, 0x33, 0xc2, 0xb8, 0xc1, 0xfb, 0x1b, 0xc1, 0xb0, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x86, 0xf2, 0x2f, 0xde, 0x33, 0xef,
+ 0xef, 0x1d, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x15,
+ 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+ 0x98, 0xf8, 0x03, 0x23, 0xab, 0xeb, 0xd8, 0x4a, 0xdd, 0x68, 0xb1, 0x05,
+ 0x13, 0x2f, 0x0c, 0x56, 0xd2, 0x75, 0xaf, 0xbf, 0xe2, 0x31, 0x5f, 0xff,
+ 0xff, 0xff, 0xff, 0xef, 0x05, 0x31, 0x46, 0x31, 0x7a, 0xed, 0xa5, 0x6b,
+ 0x48, 0x2a, 0x40, 0x7d, 0xfe, 0x01, 0x1e, 0xbe, 0xd8, 0x35, 0x6e, 0x20,
+ 0xe9, 0xaa, 0xb1, 0x8b, 0xd7, 0x6c, 0x61, 0x11, 0x1a, 0x5a, 0xa0, 0x6d,
+ 0x0e, 0x10, 0x62, 0x32, 0x22, 0x32, 0x66, 0x0f, 0x11, 0x19, 0x33, 0x00,
+ 0xf3, 0x63, 0x1b, 0xd0, 0x41, 0x95, 0xd4, 0xc3, 0x80, 0x08, 0xcc, 0x78,
+ 0x14, 0x1b, 0x3d, 0x22, 0x40, 0x2b, 0xbf, 0xf0, 0xcb, 0x79, 0x9b, 0x6b,
+ 0xeb, 0x3f, 0x46, 0x5c, 0xfc, 0x6c, 0x6a, 0xde, 0xfd, 0xc2, 0xe1, 0xa4,
+ 0x33, 0x1f, 0xe8, 0x48, 0x20, 0x20, 0x81, 0x22, 0x41, 0xbd, 0xde, 0x72,
+ 0xe7, 0x7e, 0xf2, 0x81, 0x2b, 0x42, 0xd1, 0x4e, 0xf9, 0x1e, 0x16, 0xbf,
+ 0xc5, 0x7f, 0xff, 0xf9, 0xbf, 0xe5, 0x87, 0x8c, 0x58, 0x01, 0x0c, 0x65,
+ 0xe4, 0x38, 0x9a, 0xef, 0x80, 0x28, 0xb1, 0xdb, 0x03, 0x17, 0xf7, 0xfb,
+ 0x44, 0x69, 0xa2, 0x7d, 0x5f, 0xf9, 0xbf, 0x5b, 0x16, 0xa9, 0xd9, 0x38,
+ 0x03, 0x55, 0x23, 0x69, 0xf9, 0xc5, 0xba, 0x99, 0xe0, 0x91, 0xee, 0xc5,
+ 0x5e, 0x45, 0x80, 0x70, 0x1d, 0x9c, 0x98, 0xc7, 0x4c, 0x18, 0x6a, 0x6e,
+ 0x0b, 0x6f, 0x1e, 0xab, 0x4c, 0x62, 0xe7, 0xff, 0xff, 0xff, 0xfb, 0xff,
+ 0xff, 0xf3, 0x6e, 0x38, 0x07, 0xfc, 0x24, 0xf0, 0x06, 0xb9, 0x36, 0xe7,
+ 0x6c, 0x1b, 0x2f, 0x66, 0x12, 0x9b, 0xaf, 0x7c, 0x40, 0x0c, 0x43, 0x32,
+ 0x64, 0xfa, 0xf5, 0xe4, 0x88, 0x88, 0x59, 0x61, 0xe1, 0x1b, 0xfe, 0x1c,
+ 0x6d, 0x07, 0x3d, 0xf3, 0x4a, 0xea, 0x20, 0xa3, 0x0d, 0xd7, 0xe7, 0xf5,
+ 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x3f, 0xf9, 0x26, 0xcf,
+ 0xe8, 0x73, 0xf8, 0x4c, 0xb8, 0x65, 0x07, 0xe1, 0xcd, 0x78, 0x3f, 0x0d,
+ 0xe0, 0x23, 0x7a, 0x40, 0x7d, 0x2a, 0xcf, 0x13, 0xf8, 0xd8, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x11, 0xfb, 0x37, 0xe2, 0x7f, 0x4e,
+ 0x14, 0x10, 0x00, 0xa7, 0xd3, 0x04, 0x29, 0xf3, 0xc0, 0x7e, 0x70, 0x25,
+ 0x05, 0xcd, 0xfe, 0x74, 0x3f, 0x84, 0xde, 0xf0, 0x21, 0xed, 0x81, 0xfb,
+ 0xd9, 0xf4, 0xd8, 0xb5, 0x0a, 0x47, 0x7c, 0xdf, 0xb1, 0x7b, 0x4b, 0x18,
+ 0xa0, 0x4d, 0x84, 0x2a, 0x4c, 0x61, 0x5e, 0xf8, 0x11, 0x8a, 0x4c, 0x0f,
+ 0xc2, 0x0e, 0xc3, 0xd4, 0xfe, 0xfc, 0x67, 0xfd, 0xf1, 0xeb, 0x02, 0x47,
+ 0x4c, 0x8c, 0xde, 0x6f, 0x9e, 0x00, 0x06, 0x62, 0x80, 0x01, 0x98, 0x03,
+ 0x4d, 0xb1, 0x14, 0x0c, 0xa4, 0x6f, 0x80, 0x0e, 0xcf, 0x6f, 0x77, 0xef,
+ 0xcf, 0xcc, 0xc4, 0x5f, 0xff, 0x87, 0x8a, 0x3b, 0x88, 0xed, 0x40, 0x7f,
+ 0x8b, 0xbf, 0x07, 0xe1, 0xf7, 0xe3, 0xbf, 0xe4, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xff,
+ 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60,
+ 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
+ 0xd6, 0x63, 0xe1, 0xc7, 0x4a, 0x02, 0xbe, 0x2b, 0xff, 0xff, 0xfd, 0x7a,
+ 0xc5, 0x0a, 0x19, 0xdd, 0xed, 0x88, 0x81, 0x01, 0x95, 0x2f, 0x72, 0xb8,
+ 0x00, 0xc2, 0xf2, 0x01, 0x85, 0x24, 0x9a, 0x0f, 0xba, 0x3b, 0xb7, 0x15,
+ 0x93, 0x6a, 0x96, 0xba, 0x50, 0x1e, 0xdc, 0x43, 0x09, 0x0f, 0xb7, 0xf8,
+ 0x4c, 0x58, 0x1b, 0x1c, 0x28, 0x5c, 0xca, 0xa1, 0x56, 0x43, 0xee, 0xaf,
+ 0x5d, 0x95, 0x81, 0x2a, 0x59, 0xee, 0x2b, 0xfe, 0xbd, 0x7c, 0x59, 0xa6,
+ 0x0c, 0x84, 0x83, 0x14, 0xdc, 0x48, 0x0e, 0xd9, 0xd0, 0xb7, 0x41, 0x1f,
+ 0x8d, 0x43, 0x2e, 0x79, 0xf6, 0xe4, 0xd5, 0x6b, 0x0f, 0xff, 0xff, 0x7f,
+ 0xfe, 0xbd, 0x08, 0x88, 0x28, 0x3b, 0x80, 0x41, 0x53, 0x07, 0x01, 0xb7,
+ 0x10, 0xb0, 0x36, 0x08, 0xfd, 0xe0, 0x7b, 0xfa, 0x4f, 0xf3, 0xc9, 0xbf,
+ 0x12, 0x5d, 0x42, 0x85, 0xbe, 0x6c, 0x1a, 0x83, 0xd5, 0xfa, 0xaa, 0x6d,
+ 0xdf, 0xff, 0x20, 0xcf, 0xad, 0xe3, 0xb7, 0xbc, 0x76, 0xdc, 0x46, 0x18,
+ 0xcc, 0x3e, 0xb9, 0xd4, 0xe2, 0xde, 0x00, 0xf7, 0xdf, 0x1e, 0xc7, 0x80,
+ 0x81, 0xef, 0x3b, 0xc4, 0x5f, 0xfc, 0x37, 0x0e, 0xe3, 0x7f, 0x8d, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x83, 0x3d, 0xaf, 0x0c,
+ 0x75, 0xcf, 0xea, 0x71, 0x82, 0x71, 0x00, 0x08, 0x77, 0x41, 0xe3, 0x9e,
+ 0xfc, 0x00, 0x1f, 0x80, 0x81, 0xef, 0x3b, 0xc4, 0x50, 0xdc, 0x3b, 0x8f,
+ 0x86, 0x3f, 0x6e, 0x60, 0xd2, 0xc6, 0x60, 0x9a, 0x23, 0xa7, 0x12, 0xc1,
+ 0xf0, 0x05, 0xbf, 0x7c, 0x7b, 0x21, 0xea, 0x4f, 0x86, 0x81, 0x57, 0xfb,
+ 0xc6, 0x7d, 0xaf, 0x5b, 0xf9, 0x83, 0x87, 0xb5, 0xef, 0x1b, 0xfe, 0x4f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0x84, 0x3f,
+ 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xc6, 0xc0, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xf8, 0xc1, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09,
+ 0xc6, 0x8a, 0x81, 0x2b, 0x50, 0x1b, 0xdc, 0x9b, 0xc4, 0x4d, 0xc7, 0x88,
+ 0x40, 0x04, 0x6b, 0xd5, 0xf5, 0xfa, 0xef, 0x29, 0x73, 0xc2, 0x20, 0xbc,
+ 0x57, 0xff, 0xff, 0xf3, 0x0e, 0xc6, 0x5a, 0x3f, 0xff, 0xfe, 0x28, 0xa4,
+ 0x7f, 0x8f, 0xde, 0xda, 0x1b, 0xe0, 0x91, 0xe1, 0xfb, 0xd8, 0xc9, 0xc6,
+ 0x6b, 0x23, 0xfc, 0x7e, 0xf6, 0xd3, 0x26, 0x0e, 0x6e, 0x86, 0x8a, 0x2e,
+ 0x75, 0x18, 0xc2, 0x00, 0x5f, 0xf1, 0x96, 0x26, 0x46, 0xb9, 0x9d, 0x32,
+ 0x70, 0xf6, 0xdd, 0xe6, 0x70, 0x2c, 0xbd, 0x48, 0x1b, 0x5a, 0x00, 0x62,
+ 0x17, 0xa0, 0xa3, 0x7e, 0xbe, 0xd5, 0x79, 0x79, 0x61, 0xa0, 0x97, 0x80,
+ 0x03, 0x7a, 0xf9, 0xe4, 0x39, 0xfc, 0x3b, 0x1a, 0x81, 0x1d, 0x00, 0x5e,
+ 0xe1, 0x19, 0x11, 0x2a, 0x60, 0x78, 0x80, 0x58, 0x24, 0x58, 0xfd, 0xe2,
+ 0xc6, 0xfe, 0x0d, 0xd5, 0x46, 0x03, 0x81, 0x5c, 0x41, 0xeb, 0x5e, 0x0d,
+ 0xf2, 0x21, 0x53, 0x10, 0xcc, 0x43, 0x76, 0xbc, 0x57, 0xff, 0xfe, 0x63,
+ 0x42, 0x0e, 0x0e, 0x38, 0xa9, 0x4c, 0x78, 0xc2, 0xf0, 0x4c, 0xf6, 0xd7,
+ 0x02, 0x56, 0xee, 0x0e, 0x1a, 0xb7, 0xe2, 0x07, 0xf3, 0x71, 0x63, 0xec,
+ 0x60, 0x43, 0x77, 0xcd, 0xfa, 0xd9, 0xe6, 0x80, 0xdb, 0x5c, 0x00, 0xe0,
+ 0x3e, 0x63, 0x0f, 0x6a, 0x1e, 0x6d, 0xc2, 0x9d, 0x3f, 0x3c, 0x00, 0x7c,
+ 0xf8, 0xa6, 0x43, 0x56, 0x57, 0xfe, 0xb2, 0xeb, 0x92, 0x9f, 0xf7, 0xaf,
+ 0xe0, 0x56, 0xdb, 0xf9, 0x4f, 0x7f, 0xff, 0x5b, 0x0b, 0x5c, 0x90, 0xd7,
+ 0xbf, 0xfd, 0xf2, 0x73, 0xd0, 0x1f, 0xe8, 0xcf, 0x26, 0x18, 0xbf, 0xff,
+ 0xff, 0xff, 0xbf, 0xff, 0xff, 0xe2, 0x38, 0xf8, 0x0c, 0x54, 0x04, 0x0d,
+ 0x70, 0xc6, 0x42, 0x07, 0x31, 0x63, 0xff, 0xf0, 0x94, 0x02, 0x3a, 0xbe,
+ 0xda, 0x95, 0x37, 0x1b, 0xa4, 0xd5, 0xc1, 0xf4, 0xd0, 0x18, 0x8d, 0xaa,
+ 0xd4, 0x31, 0x95, 0x0b, 0x70, 0x91, 0xd7, 0x2b, 0x9f, 0xf2, 0x7b, 0xf5,
+ 0xef, 0xc6, 0x7a, 0xf7, 0xef, 0xc6, 0x7a, 0xf6, 0x6f, 0x87, 0xf1, 0xa4,
+ 0x10, 0x96, 0x07, 0x20, 0xc4, 0x4c, 0xc4, 0xcd, 0x66, 0xfe, 0xf9, 0xe2,
+ 0x6b, 0xc6, 0x7c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x15,
+ 0xfb, 0x36, 0x1f, 0xc7, 0xf0, 0x98, 0x80, 0x03, 0x15, 0xc4, 0x6c, 0x80,
+ 0x00, 0x40, 0x27, 0x57, 0x80, 0x60, 0xc2, 0x7e, 0xbb, 0x53, 0xff, 0x67,
+ 0xb2, 0xa4, 0xc6, 0x1c, 0x83, 0x11, 0x33, 0xc4, 0x44, 0xfc, 0x50, 0x88,
+ 0xf0, 0x98, 0x1a, 0x04, 0x07, 0x42, 0x8a, 0x79, 0xdd, 0xf8, 0xcf, 0xfa,
+ 0x32, 0x7f, 0xe3, 0xf0, 0x9c, 0x4c, 0xd6, 0x6f, 0xef, 0xff, 0x00, 0x0c,
+ 0xbf, 0xba, 0x77, 0x49, 0x14, 0xa9, 0x0e, 0x20, 0x04, 0xa8, 0x26, 0xff,
+ 0xee, 0x4e, 0x58, 0xcf, 0x00, 0x33, 0xef, 0xeb, 0x3b, 0x60, 0x06, 0x7d,
+ 0xfd, 0x67, 0x60, 0xff, 0xf2, 0x99, 0xef, 0xc0, 0x11, 0xda, 0x4c, 0x0f,
+ 0xf1, 0x3f, 0xda, 0xb0, 0x3f, 0xca, 0x00, 0x00, 0x3f, 0xf6, 0xc2, 0x6e,
+ 0x5e, 0xed, 0xe1, 0xe2, 0xcc, 0xe4, 0xbf, 0x1e, 0x68, 0x08, 0x3b, 0xff,
+ 0xf0, 0x92, 0x80, 0x33, 0x82, 0x12, 0x65, 0x20, 0xaa, 0x9b, 0x7f, 0xee,
+ 0x7c, 0x49, 0xdb, 0x94, 0x4e, 0x04, 0x5e, 0x45, 0x04, 0x5e, 0x4f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf0, 0xaf,
+ 0xff, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f,
+ 0x85, 0x20, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x6f, 0x60, 0x29, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xef, 0xde, 0x61,
+ 0x38, 0x23, 0xdc, 0xcc, 0x01, 0x9d, 0x8a, 0x66, 0x48, 0xf3, 0xfa, 0x19,
+ 0x89, 0x8a, 0xff, 0xf7, 0xff, 0xf7, 0xe1, 0x80, 0xe7, 0x00, 0x45, 0x17,
+ 0x6a, 0x04, 0x60, 0x48, 0x87, 0xab, 0x4e, 0x00, 0x00, 0x8f, 0x80, 0x47,
+ 0x25, 0xee, 0xe6, 0xe8, 0x7f, 0x02, 0x61, 0x4e, 0x9f, 0x30, 0xef, 0x72,
+ 0x71, 0xb5, 0x34, 0x35, 0x54, 0xf9, 0xc1, 0x03, 0xb0, 0xc4, 0xa2, 0xc1,
+ 0x8d, 0x34, 0xb6, 0x23, 0xe6, 0xbf, 0x78, 0x32, 0xc9, 0x3d, 0x08, 0xd9,
+ 0xaf, 0xde, 0x2b, 0xfe, 0xfd, 0xf8, 0x63, 0xf5, 0xb0, 0xc0, 0x3d, 0x93,
+ 0x80, 0x8c, 0xa3, 0xd3, 0xf3, 0x88, 0xdc, 0xb3, 0xd9, 0xe0, 0x0c, 0xc7,
+ 0x8d, 0x73, 0x4f, 0x4e, 0xed, 0x91, 0x18, 0xbf, 0xee, 0x7f, 0x27, 0x8a,
+ 0x67, 0xcf, 0xff, 0xff, 0x7f, 0xfe, 0xfc, 0x31, 0x88, 0x61, 0xf8, 0x70,
+ 0x97, 0x00, 0x4d, 0xd3, 0x9d, 0x4f, 0x33, 0x26, 0x5e, 0x00, 0x97, 0x24,
+ 0x95, 0x4f, 0x1f, 0x5b, 0xc7, 0x6f, 0x78, 0xed, 0xa8, 0x92, 0x17, 0x81,
+ 0x23, 0xf0, 0xef, 0xc9, 0x86, 0x30, 0xfa, 0x53, 0xf0, 0x40, 0xc0, 0x16,
+ 0xff, 0xf8, 0xef, 0x0c, 0xf9, 0x8f, 0x8e, 0xff, 0x8e, 0xb1, 0xb0, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x3d, 0x86, 0x3a, 0x7c,
+ 0x74, 0xa6, 0x09, 0xc4, 0x40, 0x4c, 0x5e, 0x80, 0x03, 0x8f, 0x50, 0x6e,
+ 0x05, 0xb0, 0x14, 0x60, 0xc0, 0x76, 0xe2, 0xb0, 0xf7, 0xfb, 0xc6, 0x7d,
+ 0x06, 0x3d, 0x12, 0x9f, 0x4e, 0x14, 0x69, 0x57, 0x77, 0xe0, 0x19, 0xfa,
+ 0x3e, 0x7d, 0xa5, 0x5d, 0xdf, 0xca, 0x80, 0x64, 0x6e, 0xeb, 0xdb, 0xc6,
+ 0x0d, 0xf8, 0x23, 0x3e, 0x5f, 0xde, 0x3d, 0x72, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf,
+ 0xe5, 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9,
+ 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x99, 0x84, 0xf0, 0x04,
+ 0x0a, 0xa9, 0xf1, 0xbf, 0x51, 0x3c, 0x4c, 0x57, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xcc, 0x1d, 0xac, 0x08, 0xa2, 0xef, 0x20, 0x8c, 0x09, 0x06, 0x91,
+ 0x63, 0x37, 0x01, 0xc8, 0x85, 0x41, 0x76, 0x03, 0x02, 0xfd, 0x19, 0x3b,
+ 0xfe, 0x68, 0xd9, 0x34, 0x72, 0xaf, 0x00, 0x06, 0xdb, 0xd0, 0xa3, 0x7e,
+ 0xae, 0xd9, 0x84, 0xc7, 0xa8, 0x17, 0x83, 0xc8, 0x46, 0x69, 0x64, 0x42,
+ 0x45, 0x70, 0xb2, 0xf0, 0x72, 0x11, 0x89, 0x2d, 0x40, 0xf2, 0x0f, 0x62,
+ 0x45, 0xfc, 0x21, 0x09, 0x8a, 0x95, 0x8e, 0xcc, 0x6e, 0xd7, 0xc2, 0x4f,
+ 0x02, 0x11, 0xce, 0x80, 0xec, 0xe7, 0xff, 0xc5, 0x7f, 0xff, 0xff, 0xcd,
+ 0xf8, 0x8c, 0x99, 0x83, 0xd9, 0x38, 0x00, 0x66, 0xdf, 0xf2, 0xbe, 0x6a,
+ 0x31, 0x0e, 0x24, 0xf4, 0xfc, 0x03, 0x05, 0x3c, 0x8a, 0xa7, 0x3e, 0x02,
+ 0x22, 0xf8, 0x75, 0x94, 0x75, 0x14, 0x3a, 0x5c, 0x20, 0x31, 0x4f, 0xe7,
+ 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0x9a, 0x3e, 0x1f, 0xf8, 0x4a,
+ 0x1f, 0x4d, 0x03, 0x11, 0xb1, 0x5a, 0xbf, 0xc0, 0x11, 0x4d, 0x03, 0x11,
+ 0xac, 0xad, 0x40, 0x08, 0xa7, 0x03, 0x11, 0x6c, 0xad, 0x5e, 0x1c, 0xfe,
+ 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3, 0x7c, 0x2d, 0xec, 0x6d, 0x85,
+ 0x0b, 0x00, 0x11, 0x86, 0xbe, 0xae, 0xfe, 0xff, 0x43, 0x2b, 0x55, 0x56,
+ 0xaf, 0x00, 0x10, 0xdd, 0x27, 0x7a, 0xfc, 0xf0, 0x62, 0x67, 0x9a, 0xbd,
+ 0x6f, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x37,
+ 0xe8, 0xdf, 0x96, 0xd6, 0xf8, 0x91, 0x1c, 0x00, 0xcc, 0xa9, 0x9a, 0x27,
+ 0xab, 0xc0, 0x01, 0x89, 0xae, 0x42, 0xd6, 0x10, 0x02, 0x81, 0xc3, 0xc2,
+ 0x4b, 0x7f, 0x74, 0xef, 0x10, 0x8e, 0xee, 0x5c, 0x48, 0xff, 0x9f, 0x44,
+ 0x44, 0xd7, 0xbf, 0x19, 0xe8, 0xcc, 0x61, 0xf6, 0xb7, 0xe1, 0x31, 0x00,
+ 0x43, 0xf8, 0xfd, 0x48, 0x30, 0x99, 0x6f, 0xb4, 0x9b, 0xe5, 0xef, 0x38,
+ 0xec, 0x90, 0x16, 0x81, 0x88, 0x35, 0x1b, 0x8d, 0xff, 0x3c, 0x4f, 0xff,
+ 0x7e, 0x37, 0x90, 0xd0, 0x06, 0x21, 0x46, 0x4c, 0x8f, 0xaf, 0x7e, 0x61,
+ 0x0f, 0x00, 0xff, 0x87, 0xb0, 0x91, 0x68, 0xaf, 0xe0, 0x5f, 0x81, 0x81,
+ 0xea, 0xf8, 0xed, 0xff, 0x60, 0x48, 0x08, 0xed, 0x40, 0x0e, 0xb5, 0x7f,
+ 0x05, 0xfa, 0x1f, 0x36, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0x4f, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xae, 0xb1, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xeb, 0xff, 0xaf, 0xfa, 0xcc, 0x27, 0x04, 0x34, 0xde, 0x65, 0x41, 0x48,
+ 0x58, 0x92, 0xc5, 0x7f, 0xff, 0xff, 0xf5, 0x8a, 0x10, 0x00, 0xda, 0xb5,
+ 0x17, 0x33, 0xfb, 0xfd, 0xac, 0xbc, 0x02, 0x11, 0x0e, 0xd1, 0xad, 0x7f,
+ 0xfa, 0x00, 0x63, 0x2f, 0x0a, 0xc2, 0xff, 0xec, 0xd2, 0xe3, 0x5a, 0x49,
+ 0x1c, 0x4f, 0x73, 0x3e, 0x18, 0x0a, 0x7c, 0x2f, 0xf8, 0x4c, 0xe0, 0x14,
+ 0x01, 0x7b, 0x90, 0x72, 0xaf, 0x98, 0x4c, 0x17, 0xbe, 0x16, 0xf6, 0x7c,
+ 0x50, 0x0d, 0x67, 0xa9, 0x4a, 0x7d, 0xfd, 0x51, 0x5f, 0xff, 0xd6, 0x33,
+ 0xc1, 0x2f, 0xf1, 0xaa, 0xf6, 0x00, 0x44, 0x5e, 0x8e, 0x41, 0x3a, 0xff,
+ 0x9a, 0xd7, 0xf8, 0x1e, 0x6c, 0xf0, 0x7c, 0xc2, 0xbb, 0xac, 0xf2, 0x94,
+ 0x86, 0xc0, 0xf1, 0x5e, 0xdb, 0xd0, 0x39, 0x20, 0x69, 0xbc, 0x1f, 0xf1,
+ 0x87, 0xdd, 0x6c, 0x7f, 0xff, 0xfb, 0xff, 0xfe, 0x4e, 0x06, 0x01, 0x08,
+ 0x20, 0x72, 0xff, 0x79, 0xf9, 0xa1, 0x2c, 0x73, 0xc0, 0x0c, 0xbe, 0xeb,
+ 0xb1, 0xfe, 0x5c, 0x01, 0xad, 0x21, 0x2d, 0xed, 0x36, 0x03, 0x13, 0xf7,
+ 0x90, 0x21, 0x43, 0x10, 0xf1, 0xc6, 0xd2, 0x24, 0x4f, 0xcf, 0x3e, 0xb7,
+ 0x8e, 0xde, 0xf1, 0xdb, 0x0c, 0x7c, 0x3f, 0xf8, 0x7c, 0xb0, 0x08, 0x9a,
+ 0xec, 0xfa, 0xda, 0xc3, 0xa0, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xba, 0xc5, 0x84, 0xf4, 0x18, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07,
+ 0x22, 0x30, 0x15, 0x32, 0x04, 0x5a, 0xaa, 0x9e, 0xbe, 0xb7, 0x8c, 0xd0,
+ 0x63, 0xff, 0xda, 0x18, 0x21, 0x80, 0x10, 0xdd, 0x5d, 0xeb, 0xf3, 0xdf,
+ 0xc1, 0x57, 0xde, 0x35, 0x7a, 0xc8, 0x80, 0x78, 0xc8, 0xe9, 0x85, 0x80,
+ 0x00, 0x80, 0x0f, 0xdf, 0x27, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xe1,
+ 0x5f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xfa, 0xd1, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xff,
+ 0x98, 0x4f, 0x00, 0x30, 0xb3, 0x5d, 0xdd, 0xef, 0xd6, 0x19, 0x95, 0xe3,
+ 0x11, 0xf5, 0xb8, 0x43, 0xfe, 0xdf, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf3, 0x07, 0x27, 0xba, 0x28, 0xba, 0x2a, 0xe3, 0x06, 0x00, 0x37, 0xd9,
+ 0x6d, 0x6a, 0x45, 0xb1, 0x02, 0x58, 0x74, 0xd0, 0x2a, 0xb3, 0x7d, 0x47,
+ 0xf3, 0xf3, 0x92, 0x65, 0xcf, 0x80, 0x0d, 0xb7, 0xa1, 0x46, 0xfd, 0x5d,
+ 0xb3, 0x09, 0x8f, 0x50, 0x2f, 0x09, 0x45, 0x7a, 0xd3, 0xd1, 0xbc, 0xb7,
+ 0xa9, 0x78, 0x9f, 0x12, 0x77, 0x34, 0xd9, 0xfd, 0xa7, 0xf8, 0x4c, 0x5d,
+ 0x77, 0xce, 0xe0, 0x00, 0x10, 0x03, 0x3b, 0x7c, 0xec, 0x60, 0x8b, 0xf1,
+ 0x9f, 0xdf, 0x5f, 0xcb, 0x33, 0x03, 0x2d, 0xf4, 0x97, 0x97, 0xb6, 0x1f,
+ 0xcf, 0xc5, 0xe2, 0xbf, 0xff, 0xff, 0xe6, 0xfc, 0x54, 0x89, 0x89, 0xdd,
+ 0x56, 0xcd, 0xc2, 0x67, 0xda, 0xf0, 0x71, 0x13, 0xb4, 0xb0, 0x89, 0xac,
+ 0x7f, 0x9f, 0xc0, 0x22, 0x95, 0xec, 0x0f, 0x90, 0x8d, 0xfd, 0x7c, 0x03,
+ 0x13, 0x0b, 0x2a, 0x7e, 0xa5, 0x9b, 0xa0, 0xd4, 0x84, 0x5f, 0xcf, 0xbb,
+ 0xec, 0x8b, 0x9f, 0x85, 0x81, 0x38, 0xec, 0xb2, 0x82, 0xec, 0x1c, 0xb5,
+ 0x58, 0x7f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf9, 0x82, 0x2b, 0x81,
+ 0x7f, 0xc2, 0x4c, 0x07, 0x76, 0xd4, 0xe3, 0xd0, 0x7c, 0x92, 0x1d, 0x97,
+ 0x50, 0xf6, 0x37, 0x2d, 0x62, 0x65, 0x8f, 0x6a, 0x05, 0x8a, 0xc9, 0x9e,
+ 0x59, 0xfa, 0x56, 0x94, 0xfa, 0xa4, 0xc5, 0xed, 0xdb, 0xa5, 0x9e, 0x0c,
+ 0xfe, 0xbd, 0xf8, 0xef, 0x7e, 0xfc, 0x77, 0xb3, 0x7c, 0x08, 0x64, 0x5f,
+ 0x8c, 0x2c, 0x00, 0x46, 0x1a, 0xfa, 0xbb, 0xfb, 0xfc, 0x03, 0xb7, 0x82,
+ 0x5e, 0x00, 0x03, 0x80, 0x2d, 0x5f, 0xd0, 0x10, 0xeb, 0x03, 0xb6, 0x04,
+ 0x3d, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb,
+ 0x44, 0x37, 0xf3, 0x7e, 0x59, 0x11, 0x7c, 0x13, 0x08, 0x80, 0x0b, 0xe9,
+ 0x4d, 0xcc, 0x11, 0x87, 0x3f, 0x5d, 0x00, 0x75, 0x7e, 0x09, 0x72, 0x00,
+ 0x0e, 0x07, 0x6c, 0x08, 0x40, 0x3a, 0xbf, 0x04, 0xb9, 0x3c, 0x07, 0x81,
+ 0xc3, 0xfc, 0x44, 0x4f, 0xef, 0xc6, 0x1a, 0x99, 0x91, 0xb7, 0xcf, 0x8a,
+ 0x11, 0x00, 0x0b, 0x46, 0xbb, 0xac, 0xe2, 0xbe, 0xdf, 0x69, 0xf7, 0x01,
+ 0xff, 0xff, 0x71, 0x6d, 0xf8, 0x25, 0xc8, 0x60, 0x63, 0xb5, 0x37, 0x77,
+ 0xcc, 0xdf, 0x1d, 0x9e, 0xea, 0xf8, 0x4d, 0xe0, 0x7e, 0xf6, 0x7e, 0x6c,
+ 0xbe, 0xb1, 0x3d, 0x71, 0x6f, 0xbf, 0xe3, 0x35, 0x81, 0xf8, 0xef, 0xf8,
+ 0x02, 0x35, 0xe9, 0x67, 0xb9, 0x77, 0x6e, 0x5e, 0x8f, 0x3f, 0xff, 0x7e,
+ 0x34, 0xdf, 0x5f, 0xfe, 0x1f, 0x26, 0x01, 0x7d, 0x28, 0x0d, 0x44, 0x5f,
+ 0xc0, 0xe3, 0xfc, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff,
+ 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xae, 0xf3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x3f, 0x18, 0x54, 0x4e, 0x00, 0x25,
+ 0xad, 0xcb, 0xf5, 0x57, 0xe0, 0x03, 0xb6, 0x44, 0xcc, 0x41, 0xfc, 0xad,
+ 0x5e, 0xd0, 0x83, 0x62, 0x31, 0x5f, 0xff, 0xff, 0xfc, 0x30, 0x1e, 0x07,
+ 0xa8, 0x38, 0xd7, 0x18, 0x29, 0xa8, 0x15, 0xa7, 0x1e, 0x2e, 0xc8, 0x93,
+ 0x2d, 0x48, 0x65, 0x6d, 0x55, 0xed, 0x00, 0x0a, 0xbd, 0xc4, 0x3b, 0x8b,
+ 0xba, 0x1f, 0xa0, 0xe0, 0xc3, 0x86, 0x7e, 0x2b, 0x79, 0xe9, 0xe1, 0xb4,
+ 0x83, 0x0c, 0x15, 0x03, 0xda, 0x5f, 0x84, 0xc5, 0x80, 0x4c, 0x20, 0xe1,
+ 0xe4, 0x1e, 0x7c, 0xc2, 0x1e, 0x5e, 0xf3, 0x84, 0x6d, 0xb8, 0xde, 0x47,
+ 0xfd, 0xf9, 0xf7, 0xde, 0xc5, 0x7f, 0xff, 0x0c, 0x71, 0xe0, 0x06, 0x8f,
+ 0xaa, 0x45, 0x88, 0xc0, 0x0c, 0x0f, 0x57, 0xc7, 0x65, 0xcd, 0x2c, 0xb9,
+ 0x93, 0x05, 0x62, 0x94, 0x0b, 0x14, 0xcb, 0xc0, 0x48, 0xdc, 0xea, 0x79,
+ 0x5b, 0xc4, 0xa4, 0x70, 0xda, 0xd9, 0x26, 0xfc, 0xf3, 0x5b, 0x70, 0x02,
+ 0xb3, 0xff, 0xff, 0xdf, 0xff, 0xf0, 0xc0, 0x2a, 0x0b, 0x03, 0x8f, 0xfc,
+ 0x24, 0x53, 0x28, 0x92, 0x3c, 0xab, 0xc0, 0xcc, 0x4d, 0xf2, 0x0f, 0xee,
+ 0xf1, 0xee, 0xa9, 0x60, 0x26, 0x45, 0xb2, 0xad, 0x9f, 0xe1, 0x19, 0xb4,
+ 0xf4, 0x67, 0x7c, 0xa5, 0xff, 0xc0, 0x0c, 0xfa, 0xde, 0x3b, 0x7b, 0xc7,
+ 0x6c, 0x31, 0xf0, 0x21, 0xf6, 0xf1, 0x85, 0x80, 0x89, 0xbb, 0x5e, 0xf6,
+ 0x00, 0x8f, 0x7e, 0x83, 0xfb, 0xd0, 0x00, 0x0f, 0x80, 0x2e, 0xde, 0x81,
+ 0x1d, 0x26, 0x2a, 0xd7, 0x43, 0xbf, 0x9f, 0xdd, 0xe3, 0x60, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xbb, 0xcd, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41,
+ 0x09, 0xa0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33,
+ 0x7e, 0x50, 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59,
+ 0xd9, 0xe3, 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb,
+ 0x06, 0xf7, 0x8c, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c,
+ 0x02, 0x47, 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0b,
+ 0xf5, 0xdd, 0xab, 0x67, 0xfe, 0x9f, 0x9c, 0xae, 0xab, 0x11, 0x6e, 0xde,
+ 0x1f, 0xb9, 0xbb, 0x37, 0x10, 0xdc, 0x4d, 0x7d, 0xe3, 0x43, 0x1f, 0x5f,
+ 0xfe, 0x1f, 0x24, 0x03, 0x75, 0x43, 0x44, 0x5f, 0xf2, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc,
+ 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x01,
+ 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4, 0x14, 0xa2, 0xf0,
+ 0x10, 0xbf, 0x40, 0x7d, 0xf6, 0x2f, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf2, 0x7e, 0x24, 0xb9, 0x21, 0x11, 0x80, 0x05, 0x08, 0xd6, 0x9f, 0x24,
+ 0x6f, 0x78, 0x2c, 0xca, 0x6c, 0x7c, 0xfd, 0x07, 0x30, 0xad, 0xfe, 0x3c,
+ 0xba, 0x4e, 0x2f, 0xd1, 0x86, 0x59, 0x6e, 0x9b, 0x85, 0x5b, 0xad, 0x3f,
+ 0x89, 0x13, 0x21, 0xf4, 0x01, 0xdb, 0xd8, 0x04, 0x3c, 0xf6, 0xad, 0x2b,
+ 0xfd, 0xcf, 0xeb, 0x38, 0x21, 0x7c, 0x0e, 0x0b, 0x15, 0xff, 0xff, 0xff,
+ 0x37, 0xeb, 0x65, 0x32, 0xa4, 0xac, 0x9c, 0x00, 0xe2, 0xe4, 0x22, 0xf6,
+ 0x1e, 0x6d, 0xce, 0x46, 0xba, 0x7b, 0xc0, 0x42, 0x25, 0xba, 0x5d, 0x44,
+ 0x8d, 0x40, 0x08, 0x99, 0x6e, 0x87, 0xbb, 0x75, 0x20, 0x01, 0xea, 0x81,
+ 0xb2, 0x9f, 0x26, 0x2c, 0xcc, 0x5f, 0x26, 0xdd, 0x57, 0xe2, 0x40, 0x19,
+ 0xd5, 0x42, 0x6a, 0xa8, 0x67, 0x5c, 0x93, 0x0c, 0x78, 0x62, 0xbf, 0xff,
+ 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0x43, 0x6b, 0x55, 0xe8, 0x2e, 0xf3,
+ 0x03, 0x83, 0xe6, 0x18, 0x69, 0x56, 0x62, 0xed, 0x6e, 0x1b, 0xf9, 0x3d,
+ 0xfa, 0xf7, 0xe3, 0x3d, 0x7b, 0xf7, 0xe3, 0x3d, 0x7c, 0xdf, 0xfd, 0xf7,
+ 0x78, 0x54, 0xb8, 0x01, 0x9f, 0x6f, 0xac, 0xec, 0x3a, 0x7d, 0x9a, 0x80,
+ 0x74, 0xec, 0xe2, 0xf2, 0x40, 0x31, 0x11, 0x86, 0x2f, 0x2e, 0x6f, 0xfb,
+ 0xee, 0x3c, 0x67, 0x80, 0x11, 0x4d, 0xcc, 0xc5, 0x14, 0x7e, 0x00, 0x21,
+ 0x1b, 0xf3, 0x05, 0x0a, 0x77, 0x81, 0x97, 0xbf, 0xc5, 0x1f, 0xdf, 0xb4,
+ 0x03, 0xf3, 0x26, 0xa9, 0x57, 0x81, 0xfe, 0x6d, 0xdc, 0x81, 0xc3, 0xc3,
+ 0xc2, 0x5c, 0x78, 0xc9, 0xce, 0xc0, 0x93, 0xea, 0xff, 0xf9, 0x80, 0x23,
+ 0xaf, 0xeb, 0xfe, 0x46, 0x41, 0x4c, 0x9b, 0xaf, 0x01, 0xfd, 0xf8, 0xcf,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x56, 0x42, 0x1a,
+ 0x00, 0x7a, 0x47, 0x4d, 0x09, 0x4c, 0xf5, 0xf9, 0xb4, 0xfa, 0x45, 0x3e,
+ 0x13, 0x80, 0x00, 0x38, 0x11, 0xb5, 0x1f, 0xab, 0x3c, 0xab, 0x5d, 0x1f,
+ 0x3d, 0x9f, 0xe0, 0x4c, 0xd4, 0x07, 0xfd, 0x54, 0x44, 0xf2, 0x7b, 0xf1,
+ 0x86, 0x9e, 0x73, 0x3f, 0x9f, 0x14, 0x23, 0x09, 0xec, 0x0f, 0xf1, 0x7f,
+ 0xf8, 0xd0, 0x1f, 0xce, 0x1a, 0x41, 0xf8, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf,
+ 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf,
+ 0x35, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xd7, 0xfc, 0x31, 0xff, 0x9f, 0x8c, 0x2a, 0x27, 0x00, 0x21, 0x77, 0x2f,
+ 0xac, 0xff, 0x7e, 0x00, 0x6b, 0x2c, 0xc4, 0x17, 0xc8, 0xeb, 0xdc, 0x07,
+ 0x5c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x07, 0x08, 0xb2, 0x28, 0xbf, 0x28,
+ 0xc3, 0x0e, 0xb3, 0x69, 0x46, 0xd4, 0xda, 0x43, 0xc0, 0x16, 0xca, 0x60,
+ 0xc8, 0x93, 0x00, 0x11, 0x47, 0x42, 0x89, 0xfd, 0x76, 0xdc, 0x37, 0xe8,
+ 0x38, 0xf8, 0x6e, 0x46, 0xb2, 0x40, 0x55, 0x3d, 0xda, 0x10, 0x0b, 0x19,
+ 0xc0, 0x27, 0x00, 0x62, 0xac, 0x5b, 0x7d, 0xfb, 0x63, 0xfa, 0xd6, 0xbc,
+ 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x36, 0x6d, 0x9b, 0x00, 0x8f,
+ 0x5f, 0x6c, 0x3d, 0x9d, 0x2d, 0xe1, 0x2f, 0x2f, 0x2c, 0x9b, 0xb5, 0xa0,
+ 0xf9, 0x37, 0xfd, 0x20, 0x3c, 0xf5, 0xff, 0x87, 0x5a, 0x90, 0xbf, 0xbf,
+ 0xd5, 0x22, 0xa0, 0xe6, 0x1c, 0x68, 0xf9, 0xff, 0xff, 0xef, 0xff, 0xf8,
+ 0x62, 0xd4, 0xdb, 0xff, 0x09, 0x1e, 0x01, 0x8e, 0xad, 0x3f, 0xc8, 0x09,
+ 0xad, 0x0d, 0x9d, 0x03, 0x6d, 0x42, 0xde, 0x09, 0x89, 0xc7, 0xc0, 0xe7,
+ 0xd6, 0xf1, 0xdb, 0xde, 0x39, 0x7a, 0x5d, 0x03, 0x89, 0x9c, 0x01, 0x91,
+ 0x7c, 0xf4, 0x3f, 0xfd, 0x00, 0x1e, 0xaa, 0x1d, 0xc8, 0xe1, 0xf8, 0xfa,
+ 0x83, 0x86, 0x3e, 0x0e, 0x2f, 0xfe, 0x25, 0x70, 0x04, 0xf9, 0xb1, 0x65,
+ 0x46, 0x50, 0x10, 0x96, 0xbd, 0xf9, 0x3f, 0x60, 0x7e, 0x13, 0xc7, 0xbd,
+ 0x1c, 0x67, 0x83, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc,
+ 0xd5, 0x82, 0x25, 0xe1, 0x8d, 0x3d, 0xd1, 0xc4, 0xde, 0x5b, 0x15, 0x80,
+ 0x10, 0x5b, 0xbf, 0x48, 0xfd, 0xc7, 0xe1, 0x0e, 0xda, 0xcd, 0x88, 0xe0,
+ 0x31, 0xd1, 0xaf, 0x3e, 0x7d, 0x09, 0x2c, 0x90, 0x60, 0x7a, 0x31, 0x99,
+ 0x9e, 0xec, 0x3f, 0xe3, 0x8e, 0xff, 0xd0, 0x38, 0x04, 0x0c, 0xa0, 0x4b,
+ 0xe8, 0xff, 0xe6, 0x83, 0x77, 0x7c, 0x92, 0x1f, 0xfe, 0xa3, 0xbf, 0xd8,
+ 0x19, 0x37, 0x8c, 0x0c, 0x53, 0x39, 0x9f, 0xcf, 0x8a, 0x5c, 0x40, 0x70,
+ 0x1f, 0xb8, 0x44, 0xe0, 0xfc, 0x27, 0x86, 0x90, 0x7e, 0x1f, 0xdf, 0xde,
+ 0x3b, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff,
+ 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfc, 0x6c, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
+ 0xff, 0x98, 0x4f, 0x01, 0xb7, 0xc2, 0xed, 0x89, 0x97, 0x80, 0x39, 0xfc,
+ 0xba, 0x7c, 0xe7, 0xe2, 0x31, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc,
+ 0x32, 0x08, 0x31, 0x91, 0x46, 0x00, 0x4d, 0xd3, 0x4d, 0x53, 0xcd, 0x81,
+ 0x89, 0x11, 0x47, 0xc5, 0xdc, 0x07, 0xbb, 0x80, 0x09, 0xbd, 0x37, 0x0f,
+ 0x74, 0x9d, 0xe1, 0xdd, 0x8d, 0x1b, 0xba, 0x7f, 0xc9, 0xe2, 0x43, 0x02,
+ 0x03, 0x02, 0x03, 0x25, 0x0c, 0x8e, 0x51, 0xe8, 0x29, 0x0b, 0x2d, 0x77,
+ 0xc5, 0x26, 0x0b, 0xdc, 0xc1, 0xca, 0xff, 0x80, 0x2e, 0xa3, 0x7a, 0xd7,
+ 0xa8, 0x40, 0xb0, 0xb6, 0x31, 0xb3, 0xad, 0x96, 0x5a, 0x72, 0x9c, 0x6a,
+ 0xf7, 0x3f, 0x3f, 0xf3, 0x24, 0x3e, 0xd2, 0xfc, 0x26, 0x70, 0xb3, 0x45,
+ 0x1b, 0xcb, 0x76, 0x60, 0x20, 0x7e, 0x4b, 0xdd, 0x3f, 0xe2, 0xbf, 0xff,
+ 0xfc, 0xdf, 0x89, 0xda, 0x34, 0x66, 0xb5, 0xc0, 0x47, 0xbe, 0x7e, 0x64,
+ 0x4d, 0x7b, 0x86, 0xc7, 0xc6, 0xbc, 0xd1, 0xe6, 0xff, 0xc6, 0xd5, 0x4d,
+ 0xff, 0xaa, 0x42, 0x48, 0x7f, 0x62, 0xd2, 0x09, 0x15, 0xe8, 0xb1, 0xa6,
+ 0xfd, 0x6c, 0x41, 0x54, 0xed, 0x70, 0x06, 0xaa, 0x46, 0xd3, 0xf3, 0x8b,
+ 0x75, 0x33, 0xc8, 0x8f, 0x76, 0x3a, 0xf2, 0x20, 0x0e, 0x71, 0xec, 0xe4,
+ 0xc6, 0x2d, 0x30, 0x61, 0xa9, 0xb8, 0x2d, 0xbc, 0x7a, 0xad, 0x31, 0x8b,
+ 0x9f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcd, 0x27, 0x28, 0x0f, 0xe1,
+ 0xc2, 0x4e, 0x00, 0x96, 0xbf, 0xd0, 0x63, 0x78, 0x01, 0xae, 0x4d, 0xb9,
+ 0xdb, 0x10, 0x20, 0x12, 0x32, 0x4b, 0x50, 0x21, 0x66, 0x56, 0x69, 0xc7,
+ 0xbc, 0xff, 0x6f, 0x89, 0xad, 0xad, 0x56, 0x59, 0x22, 0x34, 0x9b, 0xab,
+ 0x68, 0x82, 0xbf, 0xaf, 0xc3, 0xc1, 0x34, 0xd4, 0x9a, 0xf3, 0xfa, 0xf7,
+ 0xe3, 0xb9, 0x8b, 0x00, 0x2a, 0xd6, 0xb0, 0xa0, 0xeb, 0xfd, 0xa7, 0x80,
+ 0x01, 0xbc, 0xdf, 0xe2, 0x22, 0x2b, 0xe1, 0x5e, 0xc4, 0x40, 0xf3, 0x13,
+ 0x5f, 0x81, 0xe0, 0x11, 0x7a, 0xed, 0xa6, 0xff, 0xe3, 0xa8, 0xc2, 0xbc,
+ 0xbc, 0x44, 0x0e, 0x81, 0x56, 0x58, 0x4f, 0xf4, 0xc0, 0xf2, 0x38, 0xd7,
+ 0x3e, 0x47, 0x93, 0xc7, 0x1b, 0xe1, 0xfd, 0x21, 0x04, 0x2e, 0x08, 0x5a,
+ 0x4f, 0xc8, 0x1d, 0xd5, 0x69, 0xf3, 0x89, 0x9d, 0xe2, 0x3c, 0xc3, 0xc5,
+ 0xff, 0xf8, 0x48, 0x40, 0x04, 0x5e, 0xbb, 0x62, 0xf1, 0x1f, 0x81, 0xd0,
+ 0x2a, 0xc8, 0x4e, 0xdc, 0x86, 0xeb, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x11, 0x05, 0x24, 0x00, 0x08, 0xad, 0xdd,
+ 0xdd, 0x77, 0xc0, 0x1d, 0xb5, 0xa0, 0xcd, 0x4d, 0xff, 0xff, 0xc4, 0x4b,
+ 0x27, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x27, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57,
+ 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
+ 0xff, 0xff, 0xff, 0xff, 0xf8, 0xd8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf,
+ 0x77, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xd7, 0xeb, 0xd6, 0x61, 0x38, 0x45, 0xdc, 0x93, 0x47, 0xa8, 0xd8, 0xaf,
+ 0xff, 0xff, 0xf5, 0xf1, 0x42, 0x81, 0xfb, 0xb5, 0xb1, 0x06, 0x80, 0xc4,
+ 0xa1, 0x4a, 0x1b, 0x80, 0x0c, 0x2f, 0x20, 0x0c, 0x4e, 0x45, 0xa7, 0x06,
+ 0x3f, 0x37, 0x3f, 0x17, 0xe4, 0xda, 0xe9, 0x5d, 0x3c, 0xb9, 0x6f, 0x10,
+ 0xc2, 0x43, 0xed, 0xfe, 0x13, 0x16, 0x03, 0x67, 0x65, 0x1a, 0xcc, 0xaa,
+ 0x2c, 0x12, 0x1f, 0x75, 0x7a, 0xec, 0xac, 0x09, 0x52, 0xcf, 0x71, 0x5f,
+ 0xf5, 0xeb, 0xe2, 0xcd, 0x43, 0x04, 0x8f, 0x29, 0xb9, 0x20, 0x3b, 0x47,
+ 0x42, 0xdd, 0x86, 0x7e, 0x4a, 0x19, 0x73, 0xfd, 0xba, 0x95, 0x26, 0x1f,
+ 0xff, 0xfe, 0xff, 0xfd, 0x79, 0x04, 0x44, 0x44, 0x14, 0x8e, 0x80, 0x82,
+ 0xa5, 0x04, 0x4f, 0x68, 0x23, 0xce, 0xb8, 0x08, 0x7e, 0xbf, 0x9e, 0xff,
+ 0x72, 0x0e, 0xfa, 0x7a, 0x42, 0x30, 0x1d, 0x74, 0x93, 0x42, 0x8f, 0x8d,
+ 0x54, 0x79, 0x71, 0x6e, 0x5c, 0xbc, 0xfa, 0xde, 0x39, 0x7a, 0xf5, 0xfb,
+ 0xc7, 0x06, 0x3e, 0xdf, 0xd2, 0x10, 0xa3, 0xe0, 0x3c, 0x85, 0x25, 0xa8,
+ 0xfb, 0xc4, 0xdb, 0x13, 0xf6, 0x18, 0xc7, 0xb8, 0x8f, 0xf8, 0x79, 0xf8,
+ 0x12, 0xb7, 0x6f, 0xae, 0x18, 0xf8, 0xc7, 0xfe, 0x1f, 0x80, 0x90, 0x5a,
+ 0x9b, 0xf3, 0xff, 0x04, 0xd4, 0x00, 0x10, 0xbd, 0xdd, 0xd9, 0xdf, 0xc0,
+ 0x46, 0xa9, 0x88, 0x3a, 0xff, 0xfb, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xbd, 0xdd, 0x83, 0x20, 0x4d, 0x20, 0x00, 0x45, 0x6e, 0xee,
+ 0xeb, 0xbe, 0x00, 0xff, 0x70, 0x6d, 0x37, 0xff, 0xe5, 0xde, 0x33, 0xef,
+ 0xef, 0x1b, 0xfe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
+ 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff, 0xc6,
+ 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd, 0xe9, 0x03, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
+ 0xf5, 0xff, 0xf3, 0x09, 0xe3, 0x03, 0x06, 0xf1, 0x13, 0x73, 0x60, 0x01,
+ 0x11, 0xd5, 0x7f, 0x1f, 0xbf, 0x5e, 0x52, 0xf6, 0x5e, 0xc5, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xf1, 0x42, 0x83, 0xe8, 0x5b, 0x6e, 0x40, 0x39, 0xd3,
+ 0x27, 0x28, 0xc0, 0x64, 0xd0, 0x0d, 0x0c, 0x09, 0x8f, 0x98, 0xc1, 0xa6,
+ 0x2a, 0x4f, 0x19, 0x54, 0x6c, 0x80, 0x2a, 0xd7, 0xcd, 0xd9, 0xff, 0xc6,
+ 0xe9, 0xc9, 0x40, 0x57, 0xc7, 0x80, 0x35, 0x04, 0xb1, 0x36, 0x2e, 0x66,
+ 0xd1, 0xdb, 0xdf, 0x5f, 0x99, 0xc2, 0x25, 0xea, 0x60, 0xda, 0xd0, 0xe8,
+ 0xfc, 0x58, 0x7f, 0xce, 0xff, 0x80, 0x1d, 0xdf, 0x79, 0x06, 0x7e, 0x1d,
+ 0x8d, 0x41, 0x1d, 0x00, 0x5e, 0xe1, 0x19, 0x11, 0x25, 0x30, 0x3c, 0x40,
+ 0x2c, 0x12, 0x2f, 0x08, 0x9a, 0xf4, 0x94, 0x1b, 0xaa, 0x8c, 0x0e, 0x0e,
+ 0xc7, 0x1e, 0xb5, 0xe1, 0x3c, 0x42, 0xa4, 0x62, 0x33, 0x2e, 0xd7, 0x8a,
+ 0xff, 0xff, 0xfe, 0x30, 0x9c, 0x74, 0xdd, 0xad, 0xdf, 0x66, 0xee, 0x04,
+ 0x08, 0xd8, 0x93, 0x1b, 0x85, 0xa1, 0x4d, 0xfa, 0xd9, 0xe6, 0x80, 0xdb,
+ 0xf0, 0x03, 0x82, 0xe4, 0x10, 0xb6, 0x81, 0xe6, 0xdc, 0x29, 0xd3, 0xf3,
+ 0xc0, 0x1c, 0xf8, 0xa6, 0x46, 0x65, 0xaf, 0xff, 0x59, 0x75, 0xc9, 0x4f,
+ 0xfb, 0xd7, 0xf0, 0xc9, 0xfa, 0xbf, 0x7d, 0x7e, 0x66, 0xd7, 0x28, 0x76,
+ 0x7f, 0xfb, 0xe4, 0xf3, 0xc0, 0xff, 0x4b, 0xfc, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xc9, 0x86, 0x37, 0x06, 0x94, 0x53, 0x14, 0x03, 0xc3,
+ 0xfc, 0x25, 0x09, 0x8c, 0xdc, 0x34, 0xe0, 0x59, 0xba, 0x21, 0x7d, 0x03,
+ 0x96, 0x86, 0x73, 0x6b, 0x5b, 0x81, 0xea, 0x2f, 0x84, 0x8b, 0xf2, 0xb9,
+ 0xff, 0x39, 0xa5, 0x95, 0x40, 0xad, 0xaf, 0x65, 0x80, 0x32, 0x33, 0xd4,
+ 0xc7, 0x17, 0x7a, 0x8c, 0x1c, 0xf3, 0x30, 0x87, 0xc0, 0x6f, 0x7f, 0xc0,
+ 0xff, 0xff, 0xbf, 0xc8, 0xd4, 0x55, 0x68, 0x70, 0xf6, 0xf0, 0x05, 0x1e,
+ 0xa7, 0x9f, 0x24, 0x1e, 0xe7, 0x3e, 0x00, 0x7b, 0xb5, 0x7a, 0x48, 0xfb,
+ 0xcb, 0xf3, 0x7f, 0x9c, 0xcf, 0xe0, 0x81, 0xcb, 0x68, 0xfd, 0x79, 0x80,
+ 0xc3, 0x77, 0x5f, 0xff, 0x55, 0xe8, 0x3f, 0x09, 0x3c, 0x72, 0x08, 0x81,
+ 0x22, 0x10, 0x14, 0xb8, 0x02, 0x29, 0xbd, 0xca, 0x3d, 0x11, 0x44, 0xe6,
+ 0xc7, 0x15, 0x7e, 0x26, 0x25, 0xe6, 0x9e, 0xb1, 0x3f, 0xf8, 0x48, 0x47,
+ 0x99, 0x30, 0xfd, 0x7f, 0x01, 0xf4, 0xeb, 0x30, 0x23, 0x7f, 0xf8, 0x01,
+ 0xe5, 0x77, 0x92, 0x6e, 0x1c, 0xa6, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x00,
+ 0x19, 0xfe, 0xea, 0xdf, 0xbc, 0xe8, 0x1f, 0x81, 0x13, 0x78, 0x1f, 0xbd,
+ 0x9c, 0xe6, 0xc0, 0xfc, 0x77, 0x7e, 0x3b, 0x98, 0xb0, 0x40, 0xf0, 0xee,
+ 0xd5, 0x80, 0x02, 0xcd, 0xe6, 0xdf, 0xfc, 0x3f, 0x11, 0xfe, 0x3f, 0xff,
+ 0xb8, 0xea, 0xdb, 0x4a, 0xad, 0xd7, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x35, 0xfe, 0x53, 0x30, 0x1e, 0x37, 0x62,
+ 0x22, 0x79, 0x3d, 0xf8, 0xcf, 0xfb, 0xff, 0xbf, 0x1b, 0xff, 0xf9, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff,
+ 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60,
+ 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd,
+ 0xe6, 0x13, 0x87, 0xb1, 0x50, 0x19, 0x8c, 0x6c, 0x93, 0xdf, 0xa1, 0x98,
+ 0x98, 0xaf, 0xff, 0xff, 0xf7, 0xe1, 0x83, 0x06, 0x9c, 0x01, 0xe3, 0x69,
+ 0x85, 0x84, 0x80, 0x91, 0xbf, 0x5b, 0xfa, 0xad, 0x5c, 0xf3, 0x3d, 0x6a,
+ 0x40, 0x00, 0x47, 0xc1, 0xd5, 0x99, 0x9b, 0xe0, 0x99, 0x5d, 0xfa, 0x84,
+ 0xa3, 0x4e, 0x36, 0xa6, 0x33, 0xd6, 0xaf, 0x0e, 0x18, 0x0f, 0xe1, 0xfe,
+ 0x08, 0x05, 0x8c, 0xe6, 0xdc, 0xbf, 0xeb, 0x78, 0xc4, 0x7d, 0x6b, 0xfe,
+ 0xb7, 0x8a, 0xff, 0xf7, 0xe1, 0x8f, 0xd6, 0xc3, 0x00, 0xf6, 0x4e, 0x02,
+ 0x32, 0x9e, 0x9f, 0x9d, 0x5e, 0x5e, 0x5e, 0x00, 0x9b, 0xcd, 0x75, 0x3c,
+ 0xfb, 0x48, 0x98, 0x54, 0xf3, 0xfd, 0x65, 0x26, 0x7c, 0xeb, 0xff, 0xff,
+ 0x7f, 0xfe, 0xfc, 0x31, 0x88, 0x60, 0xff, 0xf0, 0x97, 0x00, 0x57, 0xa7,
+ 0x3a, 0x3c, 0x42, 0x93, 0x2f, 0x01, 0x16, 0x6f, 0x9d, 0xb1, 0xd6, 0x57,
+ 0x81, 0x3a, 0x15, 0x2f, 0xe2, 0xa7, 0xda, 0xeb, 0x93, 0x1c, 0x18, 0xfb,
+ 0x43, 0xed, 0x08, 0x51, 0xc3, 0xb2, 0x62, 0x62, 0xc4, 0xf3, 0xa3, 0x6b,
+ 0x30, 0x70, 0xc5, 0x75, 0x51, 0x5f, 0x87, 0x0f, 0xb0, 0x0f, 0xaf, 0x1e,
+ 0xc0, 0x81, 0xe8, 0x38, 0x63, 0x15, 0xff, 0x55, 0x0c, 0x13, 0xac, 0x01,
+ 0x7e, 0xed, 0x3f, 0x2a, 0xac, 0x5b, 0x50, 0xc1, 0x64, 0xa8, 0xb0, 0xfc,
+ 0x31, 0xf0, 0xf5, 0x5f, 0x82, 0x05, 0xc7, 0xc3, 0xba, 0xc0, 0xd0, 0xbc,
+ 0x73, 0xec, 0x31, 0x1d, 0x5f, 0xff, 0x87, 0xca, 0x03, 0xbf, 0x87, 0x76,
+ 0x27, 0x56, 0x90, 0xdd, 0x7f, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xbe, 0xe5, 0x83, 0x2e, 0xf9, 0x77, 0x8c, 0xfb, 0xfb, 0xc6, 0xff,
+ 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1,
+ 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xfe, 0xf1, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd,
+ 0xe1, 0x98, 0xb1, 0x38, 0x6e, 0x1b, 0x97, 0xc0, 0x05, 0x9c, 0xd9, 0x2e,
+ 0xab, 0xe4, 0xf7, 0xea, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xe6, 0x09, 0x61,
+ 0x96, 0x5b, 0xff, 0xff, 0xe2, 0x8b, 0x30, 0xb4, 0x64, 0x11, 0x87, 0x07,
+ 0xa2, 0x6d, 0xa5, 0x48, 0x10, 0x0f, 0x0e, 0x63, 0x06, 0xb5, 0x81, 0xe3,
+ 0x0c, 0x2c, 0x80, 0x1b, 0xa9, 0x3d, 0x0d, 0x6f, 0x3f, 0xf9, 0x94, 0x47,
+ 0x2e, 0x40, 0xed, 0xf3, 0xf8, 0x02, 0x3b, 0xaf, 0x97, 0x92, 0x76, 0xc1,
+ 0x23, 0x30, 0xa8, 0x2e, 0xc1, 0x12, 0x99, 0xb7, 0x08, 0xb1, 0xbb, 0xd3,
+ 0x4b, 0x21, 0xa3, 0xcd, 0x77, 0x80, 0xf4, 0x76, 0xd9, 0x1a, 0x8a, 0x7e,
+ 0xef, 0xf8, 0xf0, 0x88, 0x43, 0x25, 0x85, 0xa0, 0x42, 0x25, 0x21, 0x65,
+ 0x83, 0x84, 0x42, 0x19, 0x2d, 0x27, 0x83, 0x0f, 0xe2, 0x45, 0xfc, 0x14,
+ 0xd0, 0xdc, 0xdc, 0x75, 0x3d, 0x4a, 0x37, 0x6b, 0xee, 0x18, 0xed, 0x0c,
+ 0x51, 0x86, 0x54, 0x1f, 0xef, 0x3c, 0x38, 0xaf, 0xff, 0xfc, 0xc6, 0x87,
+ 0xe2, 0xda, 0xd4, 0x80, 0x13, 0xe2, 0xde, 0x08, 0x1f, 0x7f, 0x8f, 0xd5,
+ 0xb6, 0x50, 0x58, 0x45, 0xc1, 0x4e, 0x4d, 0xfa, 0xe4, 0xcc, 0x1e, 0xfc,
+ 0x00, 0x33, 0x1b, 0x6f, 0x44, 0x9b, 0x4e, 0xab, 0x65, 0x8d, 0x1d, 0x11,
+ 0x76, 0xbf, 0x40, 0xe4, 0x12, 0x36, 0xaa, 0x57, 0xab, 0x02, 0x39, 0x36,
+ 0x90, 0x4c, 0xc2, 0xd2, 0x16, 0xa3, 0x9d, 0x46, 0x0b, 0x89, 0x33, 0xf9,
+ 0x04, 0x46, 0xd9, 0xbf, 0xff, 0x22, 0x82, 0x13, 0x40, 0x05, 0xe9, 0x7f,
+ 0x05, 0x0a, 0x56, 0x3f, 0x30, 0x1d, 0xa0, 0x3f, 0x3f, 0xc3, 0xf0, 0x19,
+ 0xbf, 0x7b, 0xca, 0x29, 0x4b, 0x27, 0x00, 0x40, 0xc5, 0x60, 0x6a, 0x18,
+ 0xf7, 0xe4, 0x00, 0x7d, 0xe0, 0x64, 0x88, 0x40, 0x0e, 0x90, 0x87, 0x74,
+ 0x82, 0xa7, 0xc7, 0xba, 0x07, 0x28, 0x4f, 0x4c, 0x0a, 0x30, 0x7e, 0xb8,
+ 0x7c, 0x00, 0xff, 0xe1, 0x1e, 0x2d, 0xf4, 0x80, 0x7a, 0x39, 0x2d, 0x97,
+ 0x3b, 0xfa, 0x7d, 0x7f, 0xdf, 0xff, 0xfe, 0x42, 0x52, 0x6f, 0xff, 0xc4,
+ 0x3c, 0x78, 0x30, 0x11, 0xf0, 0x18, 0xeb, 0x07, 0xae, 0x80, 0x0e, 0x3c,
+ 0x5d, 0xcd, 0x1f, 0x0f, 0xfc, 0x25, 0x0e, 0x92, 0x32, 0x00, 0xc2, 0x13,
+ 0x41, 0xb6, 0xa0, 0x5f, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08, 0x49, 0x01,
+ 0xb6, 0xa0, 0x03, 0xa4, 0x8c, 0x80, 0x30, 0x84, 0x94, 0x1b, 0x6a, 0xf0,
+ 0xe7, 0x78, 0x29, 0x07, 0x02, 0x4b, 0x00, 0x28, 0xca, 0x33, 0x11, 0x1e,
+ 0xe7, 0xbe, 0x1c, 0x44, 0x39, 0x89, 0xdf, 0xcd, 0xf1, 0x5f, 0x37, 0xd3,
+ 0xff, 0x87, 0xcb, 0x08, 0x67, 0x26, 0x46, 0x9a, 0x3d, 0x5e, 0xfc, 0xc1,
+ 0x4f, 0xa6, 0x9f, 0x09, 0x9b, 0xe0, 0x0d, 0x07, 0x73, 0x60, 0x7d, 0x6c,
+ 0x78, 0x2e, 0x8f, 0xaf, 0x9a, 0x5f, 0xfe, 0xbf, 0xc0, 0x04, 0x95, 0x44,
+ 0xdd, 0xc5, 0xf7, 0x9f, 0x8e, 0xe2, 0x9c, 0x34, 0x93, 0xfa, 0xe0, 0x3b,
+ 0x87, 0x79, 0x3f, 0xa3, 0xc4, 0xe6, 0xa7, 0xa7, 0xd2, 0x98, 0xa1, 0x92,
+ 0x63, 0x6b, 0x03, 0xed, 0xe1, 0xff, 0xc0, 0x08, 0x23, 0x77, 0xe9, 0x1f,
+ 0xb8, 0xf4, 0x46, 0xb1, 0xf3, 0xfc, 0x04, 0x65, 0x69, 0xce, 0xd5, 0xef,
+ 0x7e, 0x3b, 0x98, 0xf1, 0x80, 0xa7, 0x47, 0x0b, 0xc9, 0x85, 0x2c, 0x00,
+ 0x22, 0xb7, 0x77, 0x75, 0xdf, 0xe0, 0x03, 0xe8, 0x3b, 0x5c, 0xee, 0x8c,
+ 0x9e, 0xaf, 0x7f, 0xfd, 0xf3, 0x28, 0xd8, 0x78, 0x69, 0x10, 0x7c, 0x46,
+ 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x09, 0x5c, 0x84,
+ 0x85, 0x61, 0x61, 0xfe, 0xd7, 0x08, 0x58, 0x0c, 0xfe, 0x02, 0xc3, 0xfb,
+ 0xe5, 0x5c, 0x32, 0xb9, 0x4f, 0xc6, 0x71, 0xf8, 0xc0, 0xb0, 0x3d, 0x50,
+ 0xb8, 0x1e, 0x90, 0x25, 0xf0, 0xff, 0xf7, 0xa6, 0x5d, 0xe7, 0xc0, 0x58,
+ 0xc5, 0xb5, 0x20, 0xed, 0xe3, 0x21, 0x43, 0xa5, 0x45, 0xe6, 0xdf, 0x32,
+ 0x82, 0x6f, 0x81, 0x9a, 0x5f, 0xdb, 0x08, 0x78, 0xfb, 0x3f, 0x7e, 0xdf,
+ 0x8d, 0xff, 0x71, 0xe0, 0x6c, 0x32, 0xc0, 0xd1, 0x9f, 0xe2, 0x14, 0x30,
+ 0x87, 0xbe, 0x04, 0xef, 0xeb, 0x37, 0x7d, 0x2c, 0x18, 0x12, 0x00, 0x79,
+ 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6,
+ 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xfb,
+ 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf,
+ 0xfa, 0x2c, 0xa2, 0x70, 0x12, 0xbd, 0x30, 0x3d, 0x07, 0x7d, 0x17, 0x15,
+ 0xff, 0xef, 0xff, 0xef, 0xd1, 0x21, 0x11, 0x00, 0x03, 0x29, 0xca, 0x2e,
+ 0x7b, 0xac, 0x59, 0x78, 0x08, 0x0b, 0x07, 0x6c, 0x09, 0x6f, 0x5f, 0xac,
+ 0x65, 0xa3, 0x00, 0x65, 0x2f, 0x0b, 0xc3, 0xb7, 0x6c, 0xf9, 0x07, 0x1a,
+ 0xf0, 0x39, 0x23, 0x88, 0xeb, 0xcc, 0x2d, 0xb2, 0x86, 0x02, 0x9f, 0x0b,
+ 0xfe, 0x13, 0x38, 0x44, 0x09, 0xf2, 0x5e, 0xab, 0xe6, 0x11, 0x9b, 0xff,
+ 0x8b, 0x7b, 0x3e, 0x28, 0x01, 0xa8, 0x5e, 0xd4, 0xa7, 0xdf, 0xbe, 0x45,
+ 0x7f, 0xdf, 0xbf, 0x58, 0x47, 0x9b, 0x20, 0x07, 0x66, 0x87, 0x31, 0x1c,
+ 0xcb, 0xc1, 0xba, 0xfa, 0xbc, 0x77, 0x9e, 0x06, 0x2c, 0x75, 0xa7, 0xd5,
+ 0xe7, 0x8f, 0x8c, 0x3b, 0xac, 0x3e, 0xf1, 0xff, 0x66, 0x3b, 0x85, 0x88,
+ 0x83, 0x2e, 0xd0, 0x3f, 0xe3, 0x0f, 0xba, 0xd8, 0xe1, 0x8f, 0xff, 0xc8,
+ 0xa0, 0x84, 0xb0, 0x00, 0xbc, 0x93, 0x75, 0xe8, 0x4e, 0x56, 0xef, 0xf0,
+ 0xe0, 0x1f, 0x87, 0x59, 0x49, 0xf0, 0x05, 0x5a, 0x68, 0x18, 0xe7, 0xcf,
+ 0x1f, 0xff, 0xef, 0xfe, 0xfd, 0xf9, 0x38, 0x1c, 0x04, 0x20, 0x26, 0xde,
+ 0x7f, 0xff, 0x79, 0x6e, 0xa8, 0x4b, 0x9c, 0xf0, 0x13, 0x77, 0x75, 0x73,
+ 0x0b, 0x80, 0x0d, 0x24, 0x84, 0xb1, 0xd6, 0x9b, 0x00, 0xc6, 0xfd, 0xe4,
+ 0x08, 0x50, 0x44, 0x1e, 0x40, 0x33, 0xd2, 0x12, 0x20, 0xe7, 0x9c, 0x31,
+ 0x2b, 0x43, 0x22, 0x6f, 0xc2, 0x65, 0x87, 0x20, 0xfc, 0x33, 0x07, 0x07,
+ 0xe1, 0x80, 0x1c, 0x6a, 0x79, 0xe9, 0x7f, 0x42, 0xc3, 0x00, 0x93, 0xd3,
+ 0x0c, 0xc0, 0x0e, 0x2b, 0xe0, 0x07, 0xf5, 0x56, 0xd9, 0xff, 0xf1, 0xe0,
+ 0x1f, 0xd8, 0x50, 0x04, 0x6f, 0xaf, 0x5f, 0xed, 0xff, 0x80, 0x2a, 0xdc,
+ 0xdc, 0x7c, 0x95, 0x77, 0x84, 0x03, 0x51, 0x38, 0x61, 0x26, 0x90, 0xe7,
+ 0x10, 0x9e, 0x2c, 0x60, 0x08, 0xb7, 0xeb, 0xfc, 0x0f, 0xfc, 0x11, 0xfc,
+ 0x77, 0x6f, 0xf0, 0x0d, 0x7d, 0xc7, 0xa1, 0xbc, 0x73, 0xec, 0x91, 0x19,
+ 0x04, 0xe0, 0x20, 0xd5, 0x01, 0xfe, 0x2f, 0xb7, 0xc6, 0xc0, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x8a, 0xef, 0x97, 0x78, 0xc7, 0xfb,
+ 0xfb, 0xc6, 0xf7, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xff, 0xf9, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x73,
+ 0x09, 0xe0, 0x03, 0x6b, 0x8d, 0x89, 0x94, 0xac, 0x7a, 0xbd, 0x37, 0x8f,
+ 0xc7, 0x86, 0x08, 0x3b, 0xc9, 0x1e, 0x27, 0xb2, 0x44, 0x4d, 0xc0, 0x07,
+ 0xc6, 0xf5, 0x90, 0x8e, 0xa4, 0xae, 0xe0, 0x04, 0x5f, 0xff, 0xff, 0xff,
+ 0xfc, 0x50, 0xa8, 0xf1, 0x11, 0x59, 0x32, 0x02, 0x22, 0xf1, 0xc6, 0x62,
+ 0xaf, 0xe5, 0x10, 0xa0, 0x2e, 0x2c, 0xd2, 0x67, 0x78, 0xcd, 0xb9, 0xe9,
+ 0x56, 0x57, 0x6c, 0xed, 0x80, 0xc4, 0x51, 0x10, 0x34, 0x3f, 0x5e, 0x0b,
+ 0xfc, 0xe9, 0x18, 0xf1, 0x31, 0xf1, 0xc3, 0x33, 0xa7, 0x33, 0x11, 0xe9,
+ 0xdf, 0x9c, 0x6d, 0x3f, 0x5b, 0x5e, 0x3d, 0x3f, 0x19, 0xe6, 0x71, 0x00,
+ 0x58, 0x4f, 0x89, 0x3b, 0x9a, 0x86, 0xba, 0xe8, 0x6f, 0xfa, 0x03, 0x8b,
+ 0x24, 0xc6, 0x91, 0xef, 0xf9, 0xbd, 0x8f, 0x59, 0xd1, 0x05, 0x63, 0x18,
+ 0x11, 0xeb, 0x4b, 0x0e, 0x2c, 0x50, 0x30, 0xbd, 0x6f, 0xd7, 0x23, 0x34,
+ 0xc0, 0xce, 0x2a, 0x31, 0xa1, 0x3b, 0xeb, 0xc9, 0x3a, 0x7b, 0xf5, 0x79,
+ 0x5e, 0x0c, 0x69, 0xc0, 0x16, 0xac, 0xb9, 0x8d, 0x33, 0x88, 0x33, 0x3d,
+ 0xa8, 0x16, 0x40, 0x27, 0xf6, 0xcc, 0xc5, 0x9c, 0x4e, 0x6c, 0xba, 0xba,
+ 0x36, 0x8b, 0x55, 0xdf, 0x39, 0x60, 0x00, 0xc7, 0xf9, 0x99, 0x3b, 0xb6,
+ 0x80, 0x2d, 0x7c, 0x0d, 0x53, 0x3c, 0x04, 0xe5, 0x93, 0x93, 0xf9, 0x87,
+ 0x79, 0xa4, 0x68, 0xda, 0x99, 0xb5, 0xd5, 0x3f, 0xe7, 0x04, 0x73, 0x07,
+ 0xf0, 0x97, 0xe0, 0x80, 0x58, 0x14, 0x5d, 0x2b, 0x3c, 0x93, 0x7d, 0xf5,
+ 0x80, 0xa6, 0x62, 0x8b, 0x57, 0x75, 0xe2, 0xbf, 0xff, 0xff, 0xe6, 0xfc,
+ 0x54, 0x9d, 0x89, 0xdd, 0x56, 0xcd, 0xd1, 0x60, 0x38, 0x84, 0x52, 0x4b,
+ 0x25, 0x97, 0x81, 0x40, 0x1a, 0x16, 0x03, 0xf0, 0x10, 0x0b, 0xde, 0x00,
+ 0xc4, 0xc5, 0x3a, 0x7e, 0x82, 0xf7, 0x43, 0xec, 0xdf, 0xcf, 0xb6, 0xa9,
+ 0x69, 0xf9, 0xc0, 0xdd, 0x96, 0xa1, 0x76, 0x0e, 0x6d, 0x13, 0xfd, 0xe0,
+ 0xe4, 0x30, 0x43, 0xe0, 0x05, 0x5f, 0x7c, 0xa4, 0xbe, 0xaf, 0x98, 0x71,
+ 0x77, 0x87, 0xfc, 0x24, 0x80, 0x1f, 0xef, 0xa7, 0xa0, 0x44, 0xdd, 0x3d,
+ 0x7f, 0xe0, 0x78, 0x0c, 0x22, 0x0f, 0x30, 0xac, 0x55, 0x58, 0xbd, 0xbd,
+ 0xf0, 0x01, 0x82, 0x99, 0x49, 0xac, 0xbf, 0xd7, 0xc3, 0x00, 0x3e, 0x63,
+ 0xc9, 0x9d, 0xdf, 0x16, 0xc9, 0xea, 0x16, 0xed, 0x45, 0x40, 0xfe, 0x00,
+ 0xc4, 0x4f, 0xa1, 0x29, 0x14, 0x47, 0xfd, 0xfe, 0x4f, 0xff, 0xff, 0xf9,
+ 0x82, 0xeb, 0x81, 0x7f, 0xc2, 0x48, 0x07, 0x76, 0xd4, 0x71, 0xe6, 0x39,
+ 0x54, 0x35, 0xbf, 0xbe, 0x3b, 0xd6, 0x2a, 0x88, 0xfa, 0x38, 0xe5, 0xd1,
+ 0xf6, 0xaf, 0x89, 0xaa, 0xfa, 0xa4, 0xe7, 0xea, 0xd7, 0x3c, 0x19, 0xfe,
+ 0x26, 0x37, 0x09, 0xc4, 0x7e, 0x87, 0x43, 0xfa, 0x1d, 0x0e, 0x80, 0x83,
+ 0x08, 0x44, 0xe1, 0x25, 0xf7, 0xd4, 0xef, 0x3f, 0x41, 0xbf, 0xe2, 0x49,
+ 0x27, 0x53, 0x79, 0xf0, 0x1c, 0x8c, 0x8e, 0x99, 0xaf, 0x1d, 0xee, 0x0c,
+ 0x62, 0xb0, 0x05, 0x51, 0x6f, 0xce, 0x2c, 0x7a, 0x19, 0x5a, 0xeb, 0x9d,
+ 0xe7, 0xe8, 0xe2, 0x42, 0xfc, 0xe2, 0x20, 0xea, 0x83, 0x1e, 0xc4, 0xb6,
+ 0xce, 0x8f, 0xf9, 0x33, 0x5b, 0xe5, 0xfe, 0x1e, 0x62, 0xe6, 0x6a, 0xf9,
+ 0xc6, 0x9a, 0x5f, 0x7d, 0xfc, 0x76, 0xbc, 0x77, 0xb1, 0x13, 0xc2, 0x10,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff, 0xe4, 0x44, 0x7b, 0xf1, 0x9e,
+ 0x4f, 0xf8, 0x47, 0xc3, 0x3e, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0x37, 0xff, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xa8, 0x3d, 0x60, 0x67, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xff,
+ 0xfa, 0xff, 0xe9, 0xf8, 0x63, 0xc7, 0xe3, 0xc3, 0x04, 0x05, 0xc1, 0xec,
+ 0x8e, 0xfe, 0x6e, 0x00, 0xae, 0xda, 0x59, 0xbd, 0xda, 0x80, 0xa3, 0x15,
+ 0xa5, 0x61, 0x12, 0x94, 0xb8, 0x4a, 0xf7, 0xaf, 0xf1, 0xfe, 0x2b, 0xff,
+ 0xff, 0x79, 0x05, 0x4a, 0xcc, 0x60, 0x37, 0x62, 0x5d, 0x03, 0x1c, 0xb3,
+ 0x90, 0xff, 0x29, 0xc7, 0x23, 0xfa, 0x01, 0xc6, 0x48, 0x97, 0x8b, 0x61,
+ 0x0b, 0x82, 0x77, 0x6a, 0xde, 0x1b, 0x63, 0x3a, 0xd5, 0xbc, 0x21, 0x83,
+ 0x40, 0xb3, 0xec, 0xce, 0xe8, 0x28, 0x36, 0x40, 0x03, 0x3b, 0xa7, 0x66,
+ 0x37, 0x4d, 0xba, 0x42, 0xd9, 0x70, 0x7d, 0xe9, 0x82, 0x30, 0xfa, 0x4e,
+ 0x1e, 0x0a, 0x65, 0x76, 0xc0, 0x6b, 0x91, 0x0d, 0xd3, 0xc1, 0xbb, 0x34,
+ 0x01, 0x6a, 0x0a, 0x89, 0x87, 0xa0, 0x15, 0x29, 0x9e, 0xdc, 0xf6, 0x97,
+ 0xbb, 0x04, 0x7e, 0x20, 0x1d, 0x35, 0xcd, 0xd8, 0xf9, 0x09, 0x25, 0xa1,
+ 0x84, 0xfe, 0xd2, 0xfc, 0x26, 0x76, 0x1a, 0x3a, 0x93, 0xe3, 0xcf, 0x47,
+ 0x0a, 0xeb, 0x7f, 0x21, 0x1e, 0x9d, 0xff, 0x15, 0xff, 0xfc, 0x31, 0xc7,
+ 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x4c, 0x00, 0x33, 0x6d, 0xbe, 0x53, 0x70,
+ 0xfb, 0x96, 0x3e, 0xd3, 0x01, 0xdc, 0x77, 0x34, 0x1a, 0x39, 0xea, 0x00,
+ 0x46, 0x6d, 0x34, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0xd2, 0x38, 0x76, 0x8f,
+ 0x16, 0x77, 0xe7, 0x88, 0xb2, 0x8c, 0xd0, 0x02, 0x5e, 0x93, 0xf3, 0xf0,
+ 0xc7, 0xef, 0x7f, 0xf1, 0x27, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7, 0xbf,
+ 0x20, 0x0b, 0x54, 0x81, 0xf3, 0x38, 0xe8, 0x7e, 0x10, 0x38, 0x3f, 0x0b,
+ 0xfe, 0x18, 0x1e, 0xe3, 0xff, 0xc3, 0xcc, 0x3b, 0x6b, 0xe7, 0x05, 0xf8,
+ 0x11, 0x5e, 0xba, 0xe1, 0xfb, 0xfe, 0xbf, 0xef, 0xff, 0xf8, 0x60, 0xd4,
+ 0xc4, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x59, 0x9c, 0x44, 0x35, 0x45, 0xda,
+ 0x0c, 0x31, 0x7d, 0xc9, 0xa7, 0xfe, 0xc1, 0xe2, 0x68, 0xa5, 0x81, 0x2f,
+ 0xfc, 0x29, 0x71, 0x59, 0xbf, 0xda, 0xb6, 0x76, 0xb4, 0xcc, 0xc8, 0x6f,
+ 0xbc, 0xa2, 0xff, 0xe0, 0x06, 0x7e, 0xfc, 0x35, 0x17, 0xae, 0xb1, 0xdb,
+ 0x0c, 0xfa, 0xeb, 0x1d, 0xc3, 0x1f, 0xc3, 0xfe, 0x14, 0x11, 0x00, 0xa8,
+ 0x3d, 0x8e, 0x31, 0x76, 0x7a, 0x2e, 0x00, 0xa3, 0xa6, 0x9a, 0x36, 0xa6,
+ 0x86, 0x22, 0x93, 0xb6, 0x10, 0x30, 0x67, 0xb2, 0x19, 0xe9, 0x85, 0xb4,
+ 0xbd, 0xb1, 0x71, 0x8e, 0x52, 0xff, 0xe2, 0xec, 0xcc, 0x08, 0x59, 0x00,
+ 0x32, 0xc7, 0x13, 0x7f, 0xd9, 0x42, 0x2c, 0xc8, 0x75, 0x83, 0x2b, 0x2d,
+ 0x14, 0x0c, 0x47, 0x86, 0x59, 0xff, 0x91, 0xdd, 0xee, 0xca, 0xd7, 0x28,
+ 0x85, 0xc4, 0x80, 0x40, 0x3b, 0xae, 0x98, 0x11, 0xdd, 0x86, 0x23, 0xac,
+ 0xd0, 0xa7, 0x0b, 0x35, 0xb0, 0x11, 0xe7, 0xcf, 0xcc, 0x5e, 0x66, 0xb6,
+ 0x2d, 0x93, 0xd1, 0x19, 0xb4, 0x70, 0x57, 0x6b, 0x6b, 0xfc, 0x91, 0x11,
+ 0x56, 0x35, 0x07, 0x49, 0x1a, 0x60, 0xc9, 0x24, 0xc3, 0x51, 0xd2, 0x8d,
+ 0xbe, 0x18, 0xd1, 0x04, 0xe7, 0x29, 0x88, 0x08, 0xdc, 0x07, 0x44, 0x56,
+ 0x96, 0x11, 0x94, 0xf7, 0xe7, 0x88, 0x0c, 0xb7, 0xf7, 0x27, 0x56, 0xc2,
+ 0x8a, 0x73, 0xfa, 0x04, 0xff, 0x28, 0xba, 0xcd, 0xd9, 0xda, 0x0e, 0x64,
+ 0xe5, 0x31, 0x83, 0xc9, 0xe9, 0x89, 0x53, 0xd6, 0x29, 0x58, 0xec, 0xdb,
+ 0x68, 0x63, 0x0a, 0x7a, 0x49, 0xa7, 0xb7, 0x03, 0xc0, 0x63, 0x20, 0xe0,
+ 0xc0, 0xa6, 0x92, 0x0f, 0x79, 0x6b, 0xfc, 0x03, 0x76, 0xd4, 0xa5, 0xe0,
+ 0x30, 0x73, 0xf0, 0x61, 0x2f, 0x3b, 0x05, 0x36, 0x81, 0xb2, 0x25, 0xea,
+ 0xfe, 0x3a, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0, 0xf5, 0x8b, 0x90,
+ 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x95, 0x87, 0xef, 0xe2, 0x26, 0x10, 0x8c,
+ 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xe0, 0x6a, 0x71, 0xff, 0xc4, 0x30,
+ 0x06, 0xcb, 0x49, 0xa7, 0xe1, 0x84, 0x21, 0x11, 0x2d, 0xfc, 0x8d, 0x63,
+ 0xfc, 0x31, 0xb4, 0x5c, 0x3f, 0xf0, 0x91, 0x00, 0xe4, 0x03, 0x08, 0x80,
+ 0x25, 0x14, 0xb0, 0x00, 0x10, 0x01, 0x7e, 0x00, 0xcb, 0x28, 0x1a, 0x2c,
+ 0x07, 0x08, 0x00, 0x04, 0x75, 0x01, 0x1c, 0x07, 0x57, 0x26, 0xa4, 0x1d,
+ 0x5d, 0xc3, 0x18, 0x5f, 0xff, 0xc2, 0x45, 0x80, 0x2b, 0x66, 0x44, 0xd3,
+ 0xf3, 0xe0, 0x8b, 0xf7, 0x8c, 0xc9, 0xf6, 0x18, 0xfa, 0xb7, 0xc3, 0x1b,
+ 0x14, 0x28, 0x0e, 0x03, 0x90, 0x84, 0x42, 0x66, 0x00, 0x21, 0x0f, 0x54,
+ 0x2a, 0xe2, 0xb3, 0xe0, 0x34, 0xde, 0x8f, 0x38, 0x91, 0xb9, 0x81, 0x75,
+ 0x61, 0x47, 0xf5, 0x0a, 0xea, 0x7e, 0xa7, 0x50, 0x62, 0xd4, 0x26, 0xd6,
+ 0xea, 0x47, 0x80, 0xe0, 0x39, 0x08, 0x44, 0x26, 0x61, 0x8b, 0x0d, 0x1e,
+ 0xd6, 0x75, 0x6f, 0x82, 0x16, 0xcb, 0x87, 0x10, 0x85, 0x4c, 0xc3, 0x18,
+ 0x6a, 0xdf, 0xe3, 0x19, 0x00, 0x10, 0x87, 0xaa, 0x15, 0x71, 0x59, 0xf0,
+ 0x1a, 0x6f, 0x47, 0x9c, 0x48, 0xdc, 0xc0, 0xba, 0xb0, 0xa3, 0xfa, 0x85,
+ 0x75, 0x3f, 0x53, 0xa8, 0x31, 0x6a, 0x13, 0x6b, 0x75, 0x20, 0x00, 0xcb,
+ 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa6, 0x18, 0xb0, 0xd1, 0xed, 0x67, 0x56,
+ 0xf8, 0x21, 0x6c, 0xb8, 0x71, 0x08, 0x54, 0xcc, 0x31, 0x86, 0xad, 0xfe,
+ 0x31, 0x90, 0x01, 0x08, 0x7a, 0xa1, 0x57, 0x15, 0x9f, 0x01, 0xa6, 0xf4,
+ 0x79, 0xc4, 0x8d, 0xcc, 0x0b, 0xab, 0x0a, 0x3f, 0xa8, 0x57, 0x53, 0xf5,
+ 0x3a, 0x83, 0x16, 0xa1, 0x36, 0xb7, 0x52, 0x00, 0x0c, 0xbf, 0xba, 0x77,
+ 0x40, 0xc9, 0x6a, 0x61, 0x8b, 0x0d, 0x1e, 0xd6, 0x75, 0x6f, 0x82, 0x16,
+ 0xcb, 0x87, 0x10, 0x85, 0x4c, 0xc3, 0x18, 0x6a, 0xc5, 0xf1, 0xa4, 0x64,
+ 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68, 0x0e, 0xbd, 0xf7, 0xed,
+ 0x0b, 0x7f, 0xf0, 0xb6, 0x2c, 0x1d, 0x26, 0xf4, 0xf7, 0x7b, 0x7f, 0x80,
+ 0x3d, 0x2d, 0xe0, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa0, 0x00,
+ 0x76, 0xff, 0x95, 0xf0, 0x1d, 0xef, 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10,
+ 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40, 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9,
+ 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2c, 0x69, 0x19, 0x00, 0x33, 0x29, 0x11,
+ 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf, 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d,
+ 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde, 0xdf, 0xe0, 0x0f, 0x4b, 0x7b, 0x8b,
+ 0x92, 0x2c, 0xf4, 0x00, 0x8d, 0xbd, 0xf2, 0xb6, 0xff, 0xfc, 0x1d, 0xef,
+ 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10, 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40,
+ 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9, 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2c,
+ 0x69, 0x19, 0x00, 0x33, 0x29, 0x11, 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf,
+ 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d, 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde,
+ 0xdf, 0xe0, 0x0f, 0x4b, 0x7b, 0x8b, 0x92, 0x2c, 0xf4, 0x00, 0x8d, 0xbd,
+ 0xf2, 0xb6, 0xff, 0xfc, 0x1d, 0xef, 0x30, 0x95, 0x4d, 0xbf, 0x57, 0x10,
+ 0x40, 0x1a, 0x20, 0x2e, 0x26, 0x40, 0x31, 0x1d, 0xea, 0x8c, 0x8f, 0xf9,
+ 0xf4, 0x31, 0x86, 0xac, 0x5a, 0x2d, 0x38, 0xc8, 0x01, 0x99, 0x48, 0x8c,
+ 0xc0, 0x63, 0x2e, 0xd0, 0x1d, 0x7b, 0xef, 0xda, 0x16, 0xff, 0xe1, 0x6c,
+ 0x58, 0x3a, 0x4d, 0xe9, 0xee, 0xc6, 0xaa, 0x00, 0x7a, 0x49, 0xdc, 0x5c,
+ 0x91, 0x67, 0xa0, 0x04, 0x6d, 0xef, 0x95, 0xb7, 0xff, 0xe0, 0xef, 0x79,
+ 0x84, 0xaa, 0x6d, 0xfa, 0xba, 0xef, 0x3a, 0xba, 0x64, 0x7f, 0x9f, 0x17,
+ 0x13, 0x35, 0x4b, 0x6e, 0xd5, 0xbe, 0x5e, 0x86, 0x3e, 0xa6, 0x41, 0x4b,
+ 0x27, 0x7f, 0x83, 0xc0, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19, 0x76, 0x80,
+ 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0xa4, 0x00, 0x05, 0xc1, 0x07, 0xe4,
+ 0x3b, 0x1a, 0xa8, 0x01, 0xe9, 0x26, 0x7c, 0x1b, 0xfe, 0xd2, 0xed, 0xfe,
+ 0x78, 0x30, 0xde, 0x44, 0xcd, 0x6a, 0xf0, 0x04, 0xeb, 0xc3, 0x2d, 0x89,
+ 0x9d, 0xd9, 0x77, 0x9d, 0x5d, 0x19, 0x1f, 0xe7, 0xdb, 0xe1, 0xaf, 0x55,
+ 0xdf, 0xdf, 0xea, 0xa5, 0xb7, 0x6a, 0xdf, 0x2f, 0x43, 0x1f, 0x53, 0x20,
+ 0xa5, 0x93, 0x8c, 0x80, 0x19, 0x94, 0x88, 0xcc, 0x06, 0x32, 0xed, 0x01,
+ 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xff, 0x48, 0x00, 0x0b, 0x82, 0x0f, 0xc8,
+ 0x76, 0x35, 0x50, 0x03, 0xd2, 0x4c, 0xf8, 0x37, 0xfd, 0xa5, 0xd9, 0xfe,
+ 0x78, 0x30, 0xde, 0x44, 0xcd, 0x6a, 0xf0, 0x06, 0xe7, 0xc3, 0x2d, 0x48,
+ 0x23, 0xb3, 0xaa, 0xf3, 0xab, 0x98, 0x9f, 0xf3, 0xad, 0xf0, 0xd7, 0xaa,
+ 0xef, 0xef, 0xf4, 0xd1, 0xdb, 0xb4, 0xc7, 0x0e, 0xea, 0x18, 0xfa, 0x99,
+ 0x05, 0x2c, 0x9c, 0x64, 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68,
+ 0x0e, 0xbd, 0xf7, 0xed, 0x0b, 0x7f, 0xfa, 0x40, 0x00, 0x5c, 0x10, 0x7e,
+ 0x43, 0xb1, 0xaa, 0x80, 0x1e, 0x92, 0x67, 0xc2, 0x3b, 0xb4, 0xbb, 0x3f,
+ 0xcf, 0x06, 0x1b, 0xc8, 0x99, 0xad, 0x5e, 0x00, 0xdc, 0xf8, 0x65, 0xa9,
+ 0x04, 0x76, 0x75, 0x5e, 0x75, 0x73, 0x13, 0xfe, 0x75, 0xbe, 0x1a, 0xf5,
+ 0x5d, 0xfd, 0xfe, 0x9a, 0x3b, 0x76, 0x98, 0xe1, 0xdd, 0x43, 0x1f, 0xaa,
+ 0x05, 0x1d, 0xa1, 0xbf, 0xc1, 0xe0, 0x01, 0x4e, 0xe6, 0x55, 0xac, 0x31,
+ 0x4a, 0x4e, 0x56, 0xcc, 0xcc, 0x05, 0x77, 0xcf, 0x4e, 0x00, 0x01, 0x50,
+ 0x42, 0xf2, 0x17, 0x8a, 0x81, 0xfc, 0x95, 0x7c, 0xdf, 0x08, 0xee, 0xd2,
+ 0xed, 0xfe, 0x78, 0x06, 0x8d, 0xcd, 0x8b, 0x5a, 0x56, 0x00, 0x31, 0x1e,
+ 0x4d, 0xc8, 0x16, 0x7f, 0xaa, 0x60, 0x19, 0x6f, 0x9c, 0x83, 0x8e, 0xd9,
+ 0x30, 0x3b, 0x54, 0x98, 0xe1, 0xdd, 0x66, 0xcd, 0x5f, 0xf6, 0xff, 0xdd,
+ 0xd0, 0xc7, 0xea, 0x81, 0x4b, 0x78, 0xc8, 0x00, 0x53, 0xb9, 0x95, 0x6b,
+ 0x0c, 0x52, 0x93, 0x95, 0xb3, 0x33, 0x01, 0x5d, 0xf3, 0xd3, 0x80, 0x00,
+ 0x54, 0x10, 0xbc, 0x85, 0xe2, 0xa0, 0x7f, 0x25, 0xfe, 0x6f, 0x87, 0xb4,
+ 0x76, 0x63, 0xae, 0xe0, 0x06, 0x8d, 0xdb, 0x16, 0xb4, 0xac, 0x00, 0x62,
+ 0x3c, 0x9b, 0x90, 0x28, 0xff, 0x54, 0xc0, 0x32, 0xdf, 0x39, 0x07, 0x1d,
+ 0xb2, 0x60, 0x76, 0xa9, 0x63, 0x87, 0x75, 0xbb, 0x35, 0x7f, 0xd7, 0xf7,
+ 0xa1, 0x8f, 0xd5, 0x02, 0x96, 0xf1, 0x90, 0x00, 0xa7, 0x73, 0x2a, 0xd6,
+ 0x18, 0xa5, 0x27, 0x2b, 0x66, 0x66, 0x02, 0xbb, 0xe7, 0xa7, 0x00, 0x00,
+ 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0x4b, 0xfc, 0xdf, 0x0f, 0x68,
+ 0xec, 0xc7, 0x5d, 0xc0, 0x0d, 0x1b, 0xb6, 0x2d, 0x69, 0x58, 0x00, 0xc4,
+ 0x79, 0x37, 0x20, 0x51, 0xfe, 0xa9, 0x80, 0x65, 0xbe, 0x72, 0x0e, 0x3b,
+ 0x64, 0xc0, 0xed, 0x52, 0xc7, 0x0e, 0xeb, 0x76, 0x6a, 0xff, 0xaf, 0xef,
+ 0x43, 0x1e, 0x02, 0x28, 0x14, 0x8a, 0x30, 0x46, 0x40, 0x02, 0x9d, 0xcc,
+ 0xa5, 0x2c, 0x37, 0xc7, 0xd8, 0x8e, 0x89, 0x33, 0xe6, 0xee, 0xfe, 0xe0,
+ 0x07, 0xe5, 0x8c, 0x9d, 0xd1, 0xb4, 0xbe, 0xbd, 0xf0, 0xf6, 0x8e, 0xcc,
+ 0x75, 0xdc, 0x0f, 0x10, 0x85, 0x52, 0x61, 0x02, 0x00, 0x99, 0x00, 0x48,
+ 0xe7, 0x8d, 0x2d, 0x67, 0x77, 0x3c, 0x0c, 0xe3, 0xd7, 0x4c, 0xa7, 0xfe,
+ 0xf8, 0x1c, 0x30, 0xa2, 0x54, 0x31, 0x60, 0xe2, 0x8c, 0x17, 0xb8, 0x9e,
+ 0xa8, 0x5d, 0xc0, 0x19, 0xcd, 0x66, 0x33, 0x55, 0x86, 0xeb, 0xa9, 0x48,
+ 0x06, 0xbf, 0xb8, 0x01, 0xf9, 0x62, 0x25, 0xfd, 0x40, 0x0f, 0x48, 0xd7,
+ 0x75, 0xf0, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x30, 0x42, 0x15, 0x09, 0x84,
+ 0x08, 0x02, 0x44, 0x01, 0x23, 0x9e, 0x34, 0xb5, 0x9d, 0xdc, 0xf0, 0x33,
+ 0x8f, 0x5d, 0x32, 0x4f, 0xfd, 0xf0, 0x38, 0x62, 0x83, 0x50, 0x64, 0x00,
+ 0xc5, 0x18, 0x2f, 0x81, 0x55, 0x74, 0xef, 0xc0, 0x14, 0xee, 0xeb, 0x98,
+ 0xdb, 0xfd, 0x9a, 0x45, 0x98, 0x0a, 0x2c, 0x54, 0x03, 0x6b, 0xb8, 0x07,
+ 0xaa, 0x0b, 0xe7, 0xd1, 0xba, 0x1f, 0x49, 0x5d, 0xd9, 0xee, 0x00, 0x19,
+ 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42, 0xa9, 0x30, 0x81, 0x00, 0x48, 0x80,
+ 0x1c, 0x73, 0xb1, 0xb5, 0xac, 0xdd, 0xde, 0x06, 0x71, 0xeb, 0xa6, 0x53,
+ 0xff, 0x7c, 0x04, 0x28, 0x61, 0xe1, 0x9b, 0x27, 0x88, 0x36, 0xfd, 0x5f,
+ 0x80, 0x06, 0x72, 0xb4, 0xb3, 0x8c, 0x19, 0xc1, 0x3d, 0x0d, 0x4e, 0xd9,
+ 0x20, 0xfc, 0xfd, 0x65, 0x5f, 0x70, 0x0f, 0x5c, 0x2e, 0xfe, 0xbf, 0xfe,
+ 0x23, 0x8b, 0x37, 0xff, 0xc7, 0xc0, 0x03, 0x2f, 0xee, 0x9d, 0xd0, 0xc1,
+ 0x08, 0x55, 0x26, 0x10, 0x20, 0x09, 0x10, 0x5f, 0x38, 0xd9, 0xad, 0x78,
+ 0x69, 0xc0, 0xce, 0x3d, 0x74, 0xc5, 0x1f, 0xfb, 0xe1, 0x1b, 0x4c, 0x43,
+ 0x1f, 0x32, 0x4f, 0xdb, 0x19, 0x00, 0x0c, 0xe5, 0x69, 0x67, 0x18, 0x33,
+ 0x82, 0x7a, 0x1a, 0x9d, 0xb2, 0x41, 0xf9, 0xfa, 0xad, 0x61, 0x9e, 0xbc,
+ 0x57, 0x56, 0xd7, 0xff, 0xc4, 0x71, 0x66, 0xff, 0xf8, 0xf0, 0x00, 0xcd,
+ 0xbf, 0xe5, 0x7c, 0xc9, 0x35, 0x04, 0x75, 0x01, 0x13, 0x8d, 0x9a, 0xd7,
+ 0x86, 0x9c, 0x08, 0x51, 0xb4, 0x7b, 0x23, 0x69, 0x88, 0x63, 0xe6, 0x49,
+ 0xfb, 0x63, 0x20, 0x01, 0x9c, 0xad, 0x2c, 0xe3, 0x06, 0x70, 0x4f, 0x43,
+ 0x53, 0xb6, 0x48, 0x3f, 0x3f, 0x55, 0xac, 0x33, 0xd7, 0x8a, 0xea, 0xda,
+ 0xff, 0xf8, 0x8e, 0x2c, 0xdf, 0xff, 0x1e, 0x00, 0x19, 0xb7, 0xfc, 0xaf,
+ 0x99, 0x26, 0xa0, 0x8e, 0xa0, 0x22, 0x71, 0xb3, 0x5a, 0xf0, 0xd3, 0x81,
+ 0x0a, 0x36, 0x8f, 0x64, 0x6d, 0x31, 0x0c, 0x7d, 0x49, 0x3e, 0x8c, 0x51,
+ 0x90, 0x00, 0xce, 0x56, 0x96, 0x71, 0x83, 0x38, 0x27, 0xa8, 0xfd, 0x06,
+ 0x26, 0xde, 0x6e, 0x3f, 0xc5, 0x16, 0x91, 0x81, 0xad, 0xe8, 0x77, 0x1d,
+ 0x5f, 0x65, 0x1e, 0x2e, 0xe7, 0xeb, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3,
+ 0x24, 0xd4, 0x0c, 0x19, 0x81, 0x53, 0x98, 0xed, 0x11, 0xff, 0xee, 0x81,
+ 0x09, 0x1b, 0x23, 0xd9, 0x00, 0x04, 0xaa, 0x99, 0x86, 0x2c, 0xc0, 0xc9,
+ 0x1e, 0x25, 0x2c, 0x4c, 0x80, 0x01, 0x2a, 0x26, 0x40, 0x85, 0x31, 0x5d,
+ 0x6d, 0xf4, 0x01, 0x5b, 0xd3, 0x71, 0x82, 0x08, 0xed, 0x75, 0x4b, 0x91,
+ 0x39, 0xb4, 0xf9, 0x78, 0x19, 0xc7, 0x72, 0xed, 0x27, 0xfc, 0xaf, 0x37,
+ 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73, 0x7f, 0xfc, 0x18, 0x80, 0x00,
+ 0x54, 0xac, 0x01, 0x44, 0xfd, 0x6f, 0xb5, 0xf7, 0xf8, 0x00, 0x3c, 0x7a,
+ 0xc2, 0x69, 0x27, 0x13, 0xea, 0xd5, 0xc0, 0x35, 0xe8, 0xfa, 0xbd, 0x0c,
+ 0x23, 0x05, 0x92, 0x23, 0x41, 0x2f, 0x70, 0x92, 0xbd, 0x3d, 0x6e, 0xfc,
+ 0xf1, 0x85, 0x31, 0x5d, 0x6d, 0xf4, 0x0c, 0x83, 0xfd, 0x57, 0x3f, 0xf7,
+ 0x7d, 0x4b, 0x91, 0x39, 0xb9, 0xf2, 0xf0, 0x33, 0x8e, 0xe5, 0xda, 0x4f,
+ 0xf9, 0x5e, 0x6e, 0x73, 0xb5, 0x7b, 0x74, 0xd7, 0x7a, 0xe6, 0xff, 0xf8,
+ 0x32, 0xc0, 0x00, 0xaa, 0x30, 0x05, 0x13, 0xf5, 0xbe, 0xcb, 0xef, 0xf0,
+ 0x01, 0x9c, 0x1a, 0xb8, 0xc4, 0xff, 0x9d, 0x56, 0xae, 0x01, 0xaf, 0x42,
+ 0xea, 0xf0, 0x7e, 0xf0, 0xc2, 0x30, 0x59, 0x22, 0x34, 0x12, 0xf7, 0x09,
+ 0x2b, 0xd3, 0xd6, 0xef, 0xcf, 0x18, 0x53, 0x15, 0xd6, 0xdf, 0x40, 0xc8,
+ 0x3f, 0xd5, 0x73, 0xff, 0x77, 0xd4, 0xb9, 0x13, 0x9b, 0x9f, 0x2f, 0x03,
+ 0x38, 0xee, 0x5d, 0xa4, 0xff, 0x95, 0xe6, 0xe7, 0x3b, 0x57, 0xb7, 0x4d,
+ 0x77, 0xae, 0x6f, 0xff, 0x83, 0x2c, 0x00, 0x0a, 0xa3, 0x00, 0x51, 0x3f,
+ 0x5b, 0xec, 0xbe, 0xff, 0x00, 0x19, 0xc1, 0xab, 0x8c, 0x4f, 0xf9, 0xd5,
+ 0x6a, 0xe0, 0x1a, 0xf4, 0x2e, 0xaf, 0x07, 0xef, 0x0c, 0x24, 0x19, 0x82,
+ 0xe2, 0x09, 0xc7, 0x13, 0x09, 0x2b, 0xd3, 0xd6, 0xef, 0xcf, 0x12, 0x6a,
+ 0x03, 0x20, 0xff, 0x55, 0xcf, 0xfd, 0xdf, 0x7d, 0x19, 0x25, 0xcd, 0x9f,
+ 0xe0, 0x0f, 0x26, 0xd4, 0x1d, 0xb9, 0x7a, 0xad, 0xf4, 0xff, 0xfe, 0xba,
+ 0xd4, 0x92, 0xb5, 0x78, 0x32, 0xc0, 0x00, 0xaa, 0x30, 0x05, 0xd7, 0x42,
+ 0xea, 0xf6, 0xa4, 0xb8, 0x00, 0xce, 0x0d, 0x5c, 0x62, 0x7f, 0xce, 0xab,
+ 0x57, 0x46, 0xc2, 0xda, 0xbd, 0x0c, 0x76, 0x60, 0x8a, 0x02, 0x36, 0x3b,
+ 0xcd, 0x99, 0x3d, 0xa8, 0x70, 0xea, 0x05, 0x02, 0xa0, 0xff, 0x47, 0x59,
+ 0x7d, 0xfe, 0xbe, 0x8c, 0x92, 0xe7, 0x9f, 0xe0, 0x0f, 0x26, 0xd4, 0x1d,
+ 0xd9, 0x7a, 0xad, 0xf5, 0xab, 0xad, 0x25, 0x2b, 0x57, 0x83, 0x08, 0x18,
+ 0xa0, 0x76, 0x1a, 0xff, 0xdf, 0x6d, 0x5d, 0x0b, 0xab, 0xda, 0x92, 0xe0,
+ 0xd0, 0x19, 0x6a, 0xce, 0x61, 0xc7, 0x6c, 0xc2, 0x72, 0x96, 0x0d, 0x6f,
+ 0xb1, 0xb7, 0x03, 0x1f, 0xf0, 0xc7, 0x66, 0x08, 0xa0, 0x23, 0x63, 0xbc,
+ 0xd9, 0x93, 0xda, 0x87, 0x0e, 0xa0, 0x50, 0x2a, 0x0f, 0xf4, 0x75, 0x97,
+ 0xdf, 0xeb, 0xe8, 0xc9, 0x2e, 0x79, 0xfe, 0x00, 0xf2, 0x6d, 0x41, 0xdd,
+ 0x97, 0xaa, 0xdf, 0x5a, 0xba, 0xd2, 0x52, 0xb5, 0x78, 0x30, 0x81, 0x8a,
+ 0x07, 0x61, 0xaf, 0xfd, 0xf6, 0xd5, 0xd0, 0xba, 0xbd, 0xa9, 0x2e, 0x0d,
+ 0x01, 0x96, 0xac, 0xe6, 0x1c, 0x76, 0xcc, 0x27, 0x29, 0x60, 0xd6, 0xfb,
+ 0x1b, 0x70, 0x31, 0xff, 0x0c, 0x76, 0x6d, 0xd0, 0x11, 0xbe, 0xf3, 0x66,
+ 0x4f, 0x6a, 0x1c, 0x3a, 0x81, 0x40, 0xa8, 0x3f, 0xd1, 0xd6, 0x5f, 0x7f,
+ 0xaf, 0xa3, 0x24, 0xb9, 0xe7, 0xf8, 0x03, 0x92, 0x36, 0xa0, 0xe2, 0xea,
+ 0x62, 0xba, 0xaa, 0x52, 0x5a, 0xbd, 0xe1, 0x03, 0x14, 0x0e, 0xc3, 0x5f,
+ 0xfb, 0xed, 0xab, 0xa1, 0x75, 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59,
+ 0xcc, 0x38, 0xed, 0x98, 0x4e, 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x7f,
+ 0xe1, 0x8e, 0xdb, 0x2a, 0x32, 0x34, 0xb8, 0x9e, 0x64, 0xfd, 0x7d, 0xcf,
+ 0xfd, 0xde, 0x7d, 0xa6, 0x10, 0xb4, 0x98, 0x16, 0x94, 0x4f, 0xf3, 0x2c,
+ 0xa6, 0x2e, 0x29, 0x92, 0x34, 0x6f, 0xfd, 0xf8, 0x03, 0x4a, 0x88, 0x3f,
+ 0x22, 0x4f, 0xcd, 0x18, 0x10, 0x96, 0x9e, 0x07, 0x1e, 0x90, 0x48, 0xe7,
+ 0x8d, 0x2d, 0x67, 0x77, 0x3d, 0x4f, 0x53, 0x83, 0x5f, 0xc9, 0xff, 0x3e,
+ 0x86, 0x3b, 0x6c, 0xe8, 0xc8, 0x5f, 0x13, 0xbc, 0x9f, 0xaf, 0xb3, 0xff,
+ 0x7f, 0x67, 0xda, 0x60, 0xf5, 0xc9, 0x30, 0x4a, 0x51, 0x3f, 0xd1, 0x42,
+ 0x98, 0xca, 0x98, 0x91, 0xa3, 0x7f, 0xef, 0xc0, 0x1a, 0x54, 0x41, 0xf9,
+ 0x12, 0x7e, 0x68, 0xc0, 0x84, 0xb4, 0xf0, 0x38, 0xf4, 0x82, 0x47, 0x3c,
+ 0x69, 0x6b, 0x3b, 0xb9, 0xea, 0x7d, 0xe7, 0x06, 0xaa, 0x6f, 0xd7, 0xd8,
+ 0x63, 0xb6, 0xc8, 0x8c, 0x85, 0x2e, 0x27, 0xb9, 0x3f, 0x5f, 0x75, 0xf7,
+ 0x1f, 0x69, 0x97, 0xa9, 0x82, 0x52, 0x89, 0xfe, 0x8a, 0x14, 0xc6, 0x54,
+ 0xc4, 0x8d, 0x1b, 0xff, 0x72, 0x7c, 0x6f, 0xfd, 0x80, 0x34, 0xa8, 0x83,
+ 0xf2, 0x26, 0xfc, 0xd1, 0x81, 0x09, 0x69, 0xe0, 0x71, 0xe9, 0x04, 0x8e,
+ 0x78, 0xd2, 0xd6, 0x77, 0x73, 0xd4, 0xfb, 0xce, 0x0d, 0x54, 0xdf, 0xaf,
+ 0xb0, 0xc6, 0x3d, 0x91, 0x19, 0x1a, 0x45, 0x89, 0x82, 0x16, 0xf0, 0x7f,
+ 0x9d, 0x7d, 0xf7, 0x10, 0x20, 0x08, 0xc8, 0x0b, 0x49, 0x81, 0x96, 0x0c,
+ 0x6b, 0x4c, 0x23, 0xbf, 0xd9, 0xa7, 0xdc, 0x6f, 0xfb, 0xc0, 0x9c, 0x42,
+ 0xf4, 0xd0, 0x38, 0xf4, 0x81, 0x7f, 0x65, 0x8e, 0x62, 0xa1, 0xef, 0x03,
+ 0xb3, 0x96, 0x1a, 0x7e, 0x4f, 0xf9, 0xf5, 0xda, 0xde, 0x35, 0xb6, 0x31,
+ 0xba, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8, 0x9e, 0xac, 0x67, 0x07,
+ 0xfa, 0xbd, 0x3f, 0xf6, 0x10, 0x20, 0x08, 0xc8, 0x09, 0x32, 0x60, 0x65,
+ 0x82, 0x19, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8, 0xdf, 0xde, 0x01, 0xef,
+ 0xb0, 0x4b, 0x4d, 0x83, 0x8f, 0x48, 0x17, 0xf6, 0x58, 0xe6, 0x2a, 0x1e,
+ 0xf0, 0x2b, 0x39, 0x61, 0xa7, 0xf1, 0xbf, 0xe5, 0xda, 0xde, 0x35, 0xb6,
+ 0x31, 0xba, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8, 0x99, 0x7d, 0x8c,
+ 0xe0, 0xff, 0x57, 0xa7, 0xfe, 0xc2, 0x04, 0x01, 0x19, 0x01, 0x26, 0x4c,
+ 0x0c, 0xb0, 0x43, 0x34, 0xc1, 0x1d, 0xfe, 0xd0, 0x7f, 0x1b, 0xfb, 0xc0,
+ 0x3d, 0xf6, 0x12, 0xd3, 0x60, 0xe3, 0xd2, 0x05, 0xfd, 0x96, 0x39, 0x8a,
+ 0x87, 0xbc, 0x0e, 0xce, 0x58, 0x69, 0xf9, 0x3f, 0xe7, 0xd7, 0x6b, 0x78,
+ 0xd6, 0xd8, 0xc6, 0xea, 0x86, 0x31, 0xc5, 0x91, 0x19, 0x1b, 0xe2, 0x65,
+ 0xf6, 0x00, 0x25, 0x72, 0x27, 0x36, 0x9f, 0x2f, 0x10, 0x20, 0x08, 0xc8,
+ 0x36, 0x62, 0xf4, 0xd7, 0x2e, 0xff, 0xff, 0xbc, 0x81, 0x08, 0x54, 0xcf,
+ 0x80, 0x8c, 0xdc, 0xe7, 0x6a, 0xf0, 0x07, 0xbe, 0xc2, 0xf4, 0xd8, 0x38,
+ 0xf4, 0x81, 0xaf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x07, 0x67, 0x2c, 0x34,
+ 0xfc, 0x9f, 0xf3, 0xe9, 0xa0, 0xcb, 0x3d, 0x86, 0x1c, 0x76, 0xc8, 0x63,
+ 0x4c, 0x59, 0x01, 0x91, 0x80, 0x38, 0x99, 0x2d, 0x40, 0x95, 0xc8, 0x9c,
+ 0xd9, 0x3e, 0x5e, 0x09, 0x2b, 0xd3, 0xcb, 0x77, 0xe7, 0x86, 0x98, 0xbd,
+ 0x35, 0xcb, 0xbf, 0xff, 0xef, 0x20, 0x42, 0x15, 0x33, 0xe0, 0x23, 0x37,
+ 0x39, 0xad, 0x5e, 0x04, 0xbf, 0x62, 0xca, 0xd6, 0xf6, 0xdf, 0xfb, 0x9f,
+ 0xc8, 0x3d, 0x22, 0xef, 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5, 0xf9, 0x1b,
+ 0x74, 0xd0, 0x65, 0x9e, 0xc3, 0x0e, 0x3b, 0x64, 0x31, 0xa6, 0x2c, 0x80,
+ 0xc8, 0xdf, 0x13, 0x25, 0x54, 0x09, 0x5c, 0x89, 0xcd, 0xa7, 0xcb, 0xc0,
+ 0xe4, 0xaf, 0x4f, 0x26, 0xef, 0xcf, 0x0d, 0x31, 0x7a, 0x6b, 0x97, 0x7f,
+ 0xff, 0xde, 0x40, 0x84, 0x2a, 0x67, 0xc0, 0x46, 0x6e, 0x73, 0xb5, 0x78,
+ 0x0b, 0x7e, 0xc5, 0x15, 0xad, 0xf2, 0xeb, 0x9f, 0xc8, 0x3d, 0x22, 0xef,
+ 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5, 0x5c, 0x8d, 0xba, 0x68, 0x32, 0xcf,
+ 0x61, 0x87, 0x1d, 0xb2, 0x18, 0xd3, 0x46, 0x00, 0x64, 0x6b, 0xf1, 0x32,
+ 0x5a, 0x81, 0x2b, 0x91, 0x39, 0xb2, 0x7c, 0xbc, 0x12, 0x57, 0xa7, 0x96,
+ 0xef, 0xcf, 0x03, 0x1d, 0xe9, 0xae, 0x5d, 0xff, 0xff, 0x7e, 0x68, 0xef,
+ 0x55, 0xb4, 0xff, 0x9e, 0x05, 0x17, 0xaa, 0xdf, 0x6f, 0xff, 0x81, 0x2f,
+ 0xd8, 0xb2, 0xb5, 0xbd, 0xb7, 0xfc, 0x1a, 0xfe, 0x41, 0xe9, 0x17, 0x7e,
+ 0x60, 0x37, 0x5a, 0x9e, 0x0d, 0x2f, 0xc8, 0xdb, 0xa6, 0x83, 0x2c, 0xf7,
+ 0x18, 0x71, 0xdb, 0x21, 0x84, 0x6e, 0x9c, 0x51, 0x84, 0x38, 0x99, 0xd2,
+ 0x48, 0xbf, 0xd0, 0x45, 0x1b, 0xe1, 0x35, 0x29, 0xfe, 0xef, 0x6a, 0xd4,
+ 0x8f, 0xda, 0x4f, 0x97, 0xb7, 0x27, 0xeb, 0xfb, 0x2f, 0xbf, 0xcc, 0xf2,
+ 0x48, 0x9b, 0xd8, 0x42, 0xed, 0x56, 0x71, 0xff, 0x20, 0xc2, 0x0b, 0xd4,
+ 0xfb, 0xff, 0xfe, 0xe0, 0x2a, 0x0f, 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00,
+ 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b, 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8,
+ 0x89, 0xff, 0x3a, 0x86, 0x11, 0xba, 0x71, 0x46, 0x10, 0xe2, 0x67, 0x49,
+ 0x22, 0xff, 0x41, 0x14, 0x6f, 0x84, 0xd4, 0xa7, 0xfb, 0xbd, 0xab, 0x52,
+ 0x3f, 0x69, 0x3e, 0x5e, 0xdc, 0x9f, 0xaf, 0xec, 0xbe, 0xff, 0x33, 0xc9,
+ 0x22, 0x6f, 0x61, 0x0b, 0xb5, 0x59, 0xc7, 0xfc, 0x83, 0x08, 0x2f, 0x53,
+ 0xef, 0xff, 0xfb, 0x80, 0xa8, 0x3f, 0xd3, 0xad, 0x7d, 0xfe, 0x10, 0x00,
+ 0x0a, 0xa3, 0x01, 0x4f, 0xf8, 0x6f, 0x23, 0x57, 0x03, 0x10, 0x7b, 0xe2,
+ 0x27, 0xfc, 0xea, 0x18, 0x46, 0xe9, 0x08, 0xa3, 0x0f, 0xb9, 0xd2, 0x48,
+ 0xbf, 0xd0, 0x45, 0x1b, 0xe2, 0x15, 0x73, 0xfd, 0xde, 0xd5, 0xa9, 0x1f,
+ 0xb4, 0x9f, 0x2f, 0x66, 0x4f, 0xd7, 0xda, 0x7f, 0xee, 0xe6, 0x7a, 0x91,
+ 0x37, 0xb0, 0xc5, 0xfc, 0xa0, 0xd1, 0xfe, 0xba, 0x0f, 0x90, 0x2a, 0x0f,
+ 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00, 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b,
+ 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8, 0x84, 0xff, 0x9d, 0x40, 0x71, 0x08,
+ 0x54, 0x26, 0x7f, 0xb3, 0xf6, 0xcf, 0x35, 0xa3, 0x49, 0xa5, 0x5c, 0x85,
+ 0x48, 0xc4, 0x46, 0x5d, 0xa0, 0xff, 0x65, 0x00, 0xa8, 0xa7, 0x19, 0x68,
+ 0x79, 0x17, 0x5d, 0xe4, 0x42, 0xa6, 0x21, 0x98, 0x86, 0xed, 0x07, 0xfb,
+ 0x80, 0x54, 0x53, 0x8c, 0xb4, 0x3c, 0x8b, 0xae, 0xf2, 0x21, 0x53, 0x10,
+ 0xcc, 0x43, 0x76, 0x83, 0xfd, 0xc0, 0x2a, 0x29, 0xc6, 0x5a, 0x1e, 0x45,
+ 0xd7, 0x79, 0x10, 0xa9, 0x88, 0x66, 0x21, 0xbb, 0x41, 0xfe, 0xd0, 0x34,
+ 0x99, 0x0e, 0x15, 0x88, 0xec, 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x46,
+ 0x63, 0x76, 0xbf, 0xf7, 0x06, 0x93, 0x21, 0xc2, 0xb1, 0x1d, 0x8d, 0xda,
+ 0xbb, 0xd1, 0x0a, 0x91, 0x88, 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64,
+ 0x38, 0x56, 0x23, 0xb1, 0xbb, 0x57, 0x7a, 0x21, 0x52, 0x31, 0x19, 0x8d,
+ 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc4, 0x76, 0x37, 0x6a, 0xef,
+ 0x44, 0x2a, 0x46, 0x23, 0x31, 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1,
+ 0x58, 0x8e, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc4, 0x66, 0x37, 0x6b,
+ 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x11, 0xd8, 0xdd, 0xab, 0xbd, 0x10,
+ 0xa9, 0x18, 0x8c, 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x62,
+ 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x11, 0x98, 0xdd, 0xaf, 0xfd,
+ 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x47, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4,
+ 0x62, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x88, 0xec,
+ 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x46, 0x63, 0x76, 0xbf, 0xf7, 0x06,
+ 0x93, 0x21, 0xc2, 0xb1, 0x1d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x88,
+ 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x23, 0xb1, 0xbb,
+ 0x57, 0x7a, 0x21, 0x52, 0x31, 0x19, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c,
+ 0x87, 0x0a, 0xc4, 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x23, 0x31,
+ 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1, 0x58, 0x8e, 0xc6, 0xed, 0x5d,
+ 0xe8, 0x85, 0x48, 0xc4, 0x66, 0x37, 0x6b, 0xff, 0x6c, 0x1a, 0x46, 0x43,
+ 0x87, 0x21, 0x9c, 0x86, 0xed, 0x7e, 0x0a, 0x51, 0x14, 0x85, 0x91, 0x37,
+ 0x87, 0xb8, 0x34, 0x8c, 0x87, 0x0e, 0x43, 0x39, 0x0d, 0xda, 0xfc, 0x14,
+ 0xa2, 0x29, 0x0b, 0x22, 0x6f, 0x0f, 0x64, 0x09, 0x34, 0x38, 0x56, 0x23,
+ 0xb2, 0xed, 0x76, 0x0d, 0x25, 0x22, 0x49, 0x27, 0x87, 0xff, 0xfc, 0x21,
+ 0xff, 0xff, 0xfc, 0xdf, 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xe0, 0xfd, 0x02, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xf9, 0x84, 0xe0,
+ 0x91, 0xe9, 0x98, 0x04, 0x04, 0xf2, 0x23, 0x32, 0xcf, 0xd5, 0x84, 0x44,
+ 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x84, 0x44, 0x61, 0x88,
+ 0xa1, 0x40, 0x89, 0xc2, 0x6f, 0x33, 0xf0, 0x79, 0x63, 0xec, 0x37, 0xa4,
+ 0x3f, 0xe2, 0x09, 0x3e, 0x00, 0x33, 0x79, 0xff, 0x37, 0xf7, 0x75, 0x59,
+ 0x24, 0x0e, 0x16, 0x8e, 0x1e, 0x18, 0x89, 0x16, 0xa0, 0x80, 0x08, 0x18,
+ 0x44, 0x61, 0xa6, 0x42, 0x88, 0x89, 0x9f, 0x55, 0x17, 0xef, 0x49, 0xbb,
+ 0x5f, 0xb8, 0x1a, 0x2b, 0xff, 0xff, 0xfe, 0x6e, 0x3d, 0x41, 0xc6, 0x6c,
+ 0xdb, 0x36, 0x01, 0x1e, 0xbe, 0xd8, 0x7b, 0x3a, 0x5b, 0xc2, 0x5e, 0x5e,
+ 0x59, 0x37, 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40, 0x79, 0xeb, 0xff, 0x0e,
+ 0xb5, 0x21, 0x7f, 0x7f, 0xaa, 0x45, 0x41, 0xca, 0x3c, 0xd1, 0xe7, 0xff,
+ 0xfe, 0x4f, 0xc0, 0x92, 0x11, 0x13, 0x02, 0x4c, 0x87, 0x00, 0x24, 0x37,
+ 0x5b, 0x97, 0x22, 0x39, 0xd7, 0xfe, 0x60, 0xaa, 0xfb, 0x33, 0x12, 0x9c,
+ 0xe2, 0xf8, 0x01, 0x8a, 0xdf, 0x2d, 0x3f, 0xf4, 0x81, 0x79, 0xd7, 0x46,
+ 0x4b, 0x7b, 0xad, 0x88, 0x1d, 0x5a, 0x2b, 0x1e, 0x2a, 0xc4, 0x16, 0x80,
+ 0xd6, 0xef, 0x9b, 0xd1, 0x54, 0xa6, 0xf7, 0x93, 0xff, 0xff, 0xfe, 0x6b,
+ 0x53, 0x6f, 0xfc, 0x25, 0x80, 0x63, 0xab, 0x4f, 0xf2, 0x01, 0xb5, 0xac,
+ 0x6c, 0xa8, 0x26, 0xdc, 0x2d, 0xe1, 0x21, 0x38, 0xc1, 0x07, 0x3f, 0xb3,
+ 0x7d, 0xa5, 0xed, 0x6c, 0x29, 0x82, 0x5f, 0xad, 0x86, 0x44, 0x2f, 0xa0,
+ 0x3e, 0x92, 0x80, 0x76, 0xec, 0x3b, 0xf7, 0xe9, 0xa2, 0xdf, 0xeb, 0xc7,
+ 0x7b, 0x09, 0xff, 0xff, 0xe0, 0x0c, 0xfb, 0xfa, 0x3b, 0x4d, 0x6b, 0x17,
+ 0x22, 0x6f, 0xc2, 0x78, 0x06, 0x7e, 0xce, 0xa0, 0x51, 0x25, 0xac, 0x00,
+ 0xdf, 0xa8, 0xf4, 0x3c, 0x10, 0x55, 0xe3, 0xbd, 0xf2, 0x16, 0x12, 0x5f,
+ 0x7d, 0x4e, 0xf3, 0xf7, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2f, 0x83, 0xf4, 0x23, 0xf2, 0xfb, 0xf1, 0x9f, 0xf7, 0xff, 0x7e, 0x37,
+ 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff,
+ 0xff, 0xcd, 0xff, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8d, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e,
+ 0x60, 0x0d, 0x41, 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8,
+ 0x20, 0x22, 0xff, 0x1f, 0x8b, 0x6e, 0x28, 0x00, 0x08, 0x08, 0xc0, 0x70,
+ 0x02, 0x08, 0x29, 0x49, 0x60, 0x1c, 0x00, 0x82, 0x0a, 0x51, 0x33, 0xcf,
+ 0x00, 0x02, 0xb0, 0x1c, 0x00, 0x82, 0x0a, 0x52, 0x58, 0x00, 0x19, 0xb4,
+ 0x49, 0x99, 0xb2, 0x12, 0x2a, 0xa7, 0x93, 0x31, 0x25, 0xd9, 0x55, 0x3f,
+ 0x9b, 0x9e, 0x00, 0x05, 0x70, 0x1c, 0x00, 0x82, 0x0a, 0x51, 0x33, 0xa3,
+ 0x40, 0x53, 0x94, 0x45, 0xea, 0x35, 0xf5, 0xdd, 0xe0, 0x0c, 0xa4, 0x43,
+ 0x27, 0xdf, 0x00, 0xe8, 0x4b, 0xff, 0xff, 0xcc, 0x0d, 0x39, 0xe3, 0x10,
+ 0xb8, 0x7b, 0x22, 0x6d, 0xff, 0xf3, 0x9a, 0x22, 0x01, 0x8a, 0x4d, 0xe6,
+ 0xfe, 0x9d, 0x7b, 0xbc, 0x75, 0x96, 0xc2, 0xa0, 0x76, 0x8f, 0x00, 0x02,
+ 0x70, 0x1c, 0x02, 0x18, 0x42, 0x52, 0xc1, 0x80, 0x08, 0xca, 0x59, 0x9e,
+ 0x85, 0x95, 0x79, 0xe0, 0x00, 0x4e, 0x03, 0x80, 0x43, 0x08, 0x4a, 0x5b,
+ 0x3c, 0x2b, 0x9c, 0xba, 0x7f, 0xfb, 0xc0, 0xc0, 0x56, 0x2e, 0xcc, 0x71,
+ 0xea, 0x6e, 0x0b, 0x69, 0x6b, 0xff, 0xd8, 0x04, 0x45, 0xc7, 0x83, 0x17,
+ 0x29, 0xc7, 0xc3, 0x5d, 0x63, 0x09, 0x69, 0x0e, 0x3a, 0xe2, 0xd2, 0xe3,
+ 0xff, 0xfe, 0xfc, 0x5a, 0x17, 0xa0, 0xb1, 0xd1, 0x0d, 0x21, 0xb5, 0xfd,
+ 0x85, 0x83, 0xb0, 0x86, 0x2a, 0x57, 0x56, 0x79, 0x80, 0x58, 0x00, 0xdc,
+ 0xd1, 0xd0, 0x85, 0x97, 0xde, 0x6f, 0x70, 0x81, 0x94, 0xc5, 0x81, 0x67,
+ 0x3d, 0x15, 0xb6, 0x77, 0xff, 0xb4, 0x19, 0x4f, 0xee, 0x1f, 0x2e, 0x5c,
+ 0xb7, 0x4f, 0xfd, 0xef, 0xf1, 0x11, 0x7c, 0x7b, 0x67, 0x80, 0x01, 0x58,
+ 0x0e, 0x00, 0x41, 0x05, 0x29, 0x2d, 0xcf, 0x00, 0x02, 0xb0, 0x1c, 0x00,
+ 0x82, 0x0a, 0x52, 0x58, 0x00, 0x56, 0x64, 0x61, 0xe1, 0x14, 0xd4, 0xa0,
+ 0xdd, 0xaf, 0x36, 0x43, 0x49, 0x3a, 0xa2, 0x6e, 0xdf, 0xf3, 0x46, 0x44,
+ 0x03, 0x26, 0xea, 0xfc, 0x81, 0x09, 0xff, 0x83, 0xd0, 0x88, 0x94, 0xe7,
+ 0x3a, 0xc5, 0xa7, 0x92, 0xff, 0xef, 0x02, 0x4b, 0x71, 0xde, 0x84, 0x25,
+ 0x2b, 0x62, 0xea, 0xfd, 0xff, 0xb8, 0x41, 0x08, 0x6a, 0xd4, 0x2b, 0x28,
+ 0x3a, 0x80, 0xd9, 0x83, 0x30, 0x54, 0x25, 0x2b, 0x59, 0x16, 0x77, 0x7e,
+ 0x80, 0x4f, 0x00, 0x4a, 0x09, 0x86, 0x2c, 0x3b, 0x1e, 0x90, 0xf9, 0x01,
+ 0x61, 0x85, 0xbd, 0x11, 0x4a, 0xc8, 0x88, 0x8e, 0x4b, 0xff, 0xac, 0x40,
+ 0x02, 0x14, 0xd9, 0x7f, 0x1e, 0x43, 0xd2, 0x55, 0x4d, 0x97, 0x5e, 0x3c,
+ 0x87, 0xa4, 0xaa, 0x9b, 0x2e, 0xa0, 0x70, 0x04, 0x29, 0xb2, 0xfa, 0x98,
+ 0xc8, 0x54, 0xa7, 0x23, 0x6e, 0xd6, 0xfa, 0x40, 0x00, 0x08, 0x01, 0xd3,
+ 0xd5, 0xdb, 0x29, 0x66, 0x60, 0x08, 0x5e, 0x8d, 0x24, 0x05, 0x0d, 0x5d,
+ 0xfc, 0x00, 0x84, 0xc7, 0xd6, 0xb2, 0xd5, 0xa1, 0x2b, 0x77, 0x21, 0xe5,
+ 0xce, 0x27, 0x6b, 0xb8, 0xf0, 0x01, 0xbf, 0x8f, 0x54, 0xdf, 0x40, 0xbd,
+ 0xc2, 0xce, 0x43, 0x68, 0xa0, 0xed, 0x56, 0xae, 0x6c, 0x3a, 0xed, 0x5a,
+ 0x11, 0xc9, 0x1f, 0xe6, 0x87, 0x1d, 0x55, 0xab, 0xd2, 0xb1, 0x23, 0x3d,
+ 0xc5, 0x7d, 0x09, 0x5c, 0x56, 0x36, 0x51, 0x40, 0x00, 0xac, 0x07, 0x00,
+ 0x20, 0x82, 0x94, 0x96, 0x00, 0x19, 0x34, 0x69, 0x19, 0x33, 0x12, 0xb2,
+ 0xae, 0xad, 0x36, 0x53, 0xc6, 0x8e, 0x89, 0x63, 0xc0, 0x00, 0xbc, 0x07,
+ 0x00, 0x20, 0x82, 0x96, 0x96, 0x0c, 0x00, 0x6c, 0x99, 0xb0, 0xd1, 0x32,
+ 0xb8, 0xc6, 0xe3, 0xb8, 0x6a, 0xc1, 0xe4, 0x40, 0x09, 0xa4, 0x6c, 0xa0,
+ 0x9d, 0x64, 0x19, 0xce, 0x62, 0x72, 0xfc, 0x40, 0x5f, 0xff, 0xf9, 0xc0,
+ 0x58, 0x45, 0x66, 0x2e, 0x27, 0xb6, 0x75, 0x0a, 0xff, 0xfd, 0x86, 0x0e,
+ 0xa9, 0xfa, 0x9d, 0x50, 0xad, 0x0f, 0xfe, 0x01, 0x33, 0x64, 0xd1, 0x93,
+ 0x21, 0xa2, 0x2c, 0xf2, 0x00, 0x76, 0x98, 0x6a, 0xd4, 0x26, 0xae, 0xcd,
+ 0x5d, 0xfb, 0x9b, 0x26, 0x8c, 0x99, 0x0f, 0x22, 0xeb, 0x18, 0x4b, 0x4c,
+ 0x29, 0x2d, 0xab, 0x59, 0x07, 0xff, 0xfd, 0xf8, 0x86, 0xb3, 0x15, 0xec,
+ 0xb7, 0x3c, 0x00, 0x0b, 0xc0, 0x70, 0x02, 0x08, 0x29, 0x69, 0x6f, 0x53,
+ 0x46, 0x83, 0x54, 0xea, 0xc1, 0x09, 0xd2, 0x3d, 0x6d, 0x12, 0x66, 0x6c,
+ 0x84, 0x8a, 0xb8, 0xf0, 0x00, 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5,
+ 0xb6, 0xe6, 0xb8, 0xd2, 0x77, 0x7e, 0xff, 0x0f, 0x03, 0x22, 0x53, 0x89,
+ 0x48, 0xe0, 0xa8, 0xc9, 0xb7, 0xeb, 0xf5, 0x3c, 0x9b, 0x08, 0x03, 0x2d,
+ 0x88, 0x53, 0xeb, 0xba, 0xe6, 0xcc, 0x33, 0x82, 0xa7, 0x77, 0x7f, 0x63,
+ 0x93, 0xf6, 0x88, 0x0c, 0x82, 0x2e, 0x36, 0xb1, 0x0a, 0xa3, 0x2b, 0xff,
+ 0xd9, 0x80, 0x00, 0x6c, 0x15, 0x8c, 0x4c, 0x00, 0x1e, 0x35, 0x98, 0x95,
+ 0x37, 0x4e, 0xb9, 0x76, 0x83, 0x3b, 0xd7, 0x7f, 0x7a, 0xed, 0xef, 0xfb,
+ 0xbc, 0x87, 0xaa, 0xb2, 0xa6, 0xe9, 0xd6, 0x2a, 0x7f, 0xa8, 0x80, 0xc4,
+ 0xd9, 0xee, 0x78, 0x00, 0x17, 0x80, 0xe0, 0x04, 0x10, 0x52, 0xd2, 0xdc,
+ 0xf0, 0x00, 0x2f, 0x01, 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x80, 0x05, 0x66,
+ 0x46, 0x1e, 0x11, 0x4d, 0x4a, 0x8d, 0xda, 0xdb, 0x9a, 0xe3, 0x4b, 0xeb,
+ 0xf7, 0xda, 0x17, 0x07, 0xc5, 0xe3, 0x29, 0x08, 0xf2, 0x69, 0x9f, 0xfa,
+ 0xfe, 0x6d, 0x00, 0x4a, 0x82, 0xe5, 0x11, 0x91, 0xa7, 0x67, 0xff, 0xe0,
+ 0xc0, 0x94, 0xc6, 0x91, 0x54, 0x29, 0x3a, 0xec, 0xad, 0xbf, 0xfd, 0xe0,
+ 0x05, 0xe8, 0x15, 0xe5, 0x5b, 0xe2, 0xe6, 0xe5, 0x33, 0x40, 0x49, 0x21,
+ 0xa2, 0xb0, 0xf4, 0xd8, 0x95, 0x95, 0x7f, 0xfd, 0xf0, 0xc1, 0xd5, 0x3a,
+ 0xa9, 0xd5, 0x0e, 0xd0, 0xff, 0xee, 0xa3, 0xe0, 0x23, 0x14, 0x06, 0xb4,
+ 0x78, 0x00, 0x13, 0x80, 0xe0, 0x10, 0xc2, 0x12, 0x96, 0xf2, 0x8c, 0x5e,
+ 0xd8, 0x8b, 0xee, 0x59, 0x9c, 0x21, 0xa9, 0x8a, 0xc5, 0x63, 0x6a, 0x63,
+ 0xc0, 0x00, 0x9c, 0x07, 0x00, 0x86, 0x10, 0x94, 0xb7, 0xfe, 0x70, 0x27,
+ 0xd2, 0x91, 0x09, 0x30, 0xda, 0xc7, 0x08, 0x00, 0x02, 0x01, 0x00, 0x8c,
+ 0x70, 0x70, 0xaa, 0xa3, 0xca, 0x65, 0x3c, 0x97, 0x21, 0x3e, 0x40, 0x00,
+ 0x08, 0x06, 0xdc, 0x20, 0x6e, 0xc8, 0x00, 0x3f, 0xc1, 0x40, 0x54, 0x2d,
+ 0x3a, 0x5c, 0x62, 0x5e, 0x60, 0x49, 0xab, 0x34, 0x46, 0x62, 0x47, 0x9f,
+ 0xd4, 0x0d, 0x0a, 0x40, 0xaa, 0x52, 0x77, 0x48, 0x77, 0x7c, 0xb7, 0x05,
+ 0x4a, 0x92, 0x97, 0xdf, 0x04, 0x2c, 0x0b, 0xce, 0x88, 0xcf, 0xc0, 0x9d,
+ 0xc7, 0xf4, 0x6b, 0xbf, 0x78, 0x1c, 0x00, 0x82, 0x0a, 0x97, 0x00, 0x26,
+ 0x46, 0x25, 0xbf, 0x22, 0xaf, 0x45, 0xd8, 0x1c, 0x00, 0x82, 0x0a, 0x96,
+ 0x18, 0x01, 0x09, 0xa3, 0x41, 0xaa, 0x75, 0x61, 0x8d, 0xd0, 0x78, 0x04,
+ 0x55, 0xab, 0x73, 0x14, 0xd3, 0x5e, 0xba, 0xb8, 0xd0, 0x13, 0xa4, 0xe4,
+ 0x41, 0x5f, 0x4e, 0xd3, 0x83, 0xd0, 0xf1, 0x55, 0x42, 0xda, 0x6d, 0x7c,
+ 0xb2, 0x10, 0xf7, 0x04, 0x89, 0xd3, 0xaf, 0xea, 0xb1, 0x76, 0xc1, 0x28,
+ 0x86, 0x10, 0x8c, 0xcc, 0x76, 0xde, 0xff, 0xdc, 0x12, 0x27, 0x4e, 0xbf,
+ 0xaa, 0xc5, 0xda, 0xc4, 0x12, 0x43, 0x08, 0x4b, 0x2a, 0x96, 0x47, 0xff,
+ 0xfd, 0xf8, 0x7d, 0x2d, 0xf8, 0x91, 0x25, 0x80, 0x00, 0x80, 0x2c, 0x07,
+ 0x00, 0x02, 0xc0, 0x08, 0x0c, 0x25, 0x2c, 0x1e, 0x78, 0x00, 0x08, 0x01,
+ 0xc0, 0x70, 0x00, 0x2c, 0x00, 0x80, 0xc2, 0x52, 0xcf, 0x60, 0x4e, 0x0f,
+ 0xb0, 0xbe, 0xcf, 0x28, 0x54, 0xad, 0xae, 0x6f, 0xff, 0xff, 0x22, 0x50,
+ 0x91, 0x1b, 0x49, 0x93, 0x6c, 0x18, 0xfc, 0x3c, 0x00, 0x08, 0x85, 0x24,
+ 0xb2, 0x4b, 0x2d, 0xe0, 0x6f, 0x5b, 0x10, 0x00, 0x05, 0xc0, 0x14, 0x1b,
+ 0x2f, 0xe0, 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80,
+ 0x20, 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80,
+ 0xe0, 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a,
+ 0x0d, 0x97, 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24,
+ 0x92, 0x49, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f,
+ 0xe0, 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20,
+ 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0,
+ 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d,
+ 0x97, 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92,
+ 0x49, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0,
+ 0x70, 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20, 0x00,
+ 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0, 0x00,
+ 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d, 0x97,
+ 0xff, 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92, 0x49,
+ 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0, 0x70,
+ 0x00, 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x20, 0x00, 0x08,
+ 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x37, 0xad, 0x80, 0xe0, 0x00, 0x5c,
+ 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d, 0x97, 0xff,
+ 0xf1, 0xf8, 0x02, 0x00, 0x00, 0x88, 0x52, 0x49, 0x24, 0x92, 0x49, 0x03,
+ 0x7a, 0xd8, 0x0e, 0x00, 0x05, 0xc0, 0x14, 0x1b, 0x2f, 0xe0, 0x70, 0x00,
+ 0x2e, 0x00, 0xa0, 0xd9, 0x7f, 0xff, 0x1f, 0x80, 0x02, 0x00, 0x00, 0x80,
+ 0x08, 0xcf, 0x7c, 0xbe, 0x62, 0x42, 0x7d, 0x04, 0xd3, 0xfc, 0x40, 0xe0,
+ 0x00, 0x5c, 0x01, 0x41, 0xb2, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x0a, 0x0d,
+ 0x96, 0x00, 0x4c, 0x64, 0x22, 0xb2, 0x98, 0xe1, 0x45, 0x73, 0x39, 0x27,
+ 0x87, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6d, 0xce, 0x3b, 0x00, 0x41,
+ 0x82, 0xdd, 0x53, 0x4d, 0xbb, 0x2d, 0xf5, 0x56, 0x5b, 0xc8, 0x00, 0x02,
+ 0xa0, 0x1c, 0x1b, 0x73, 0x85, 0x2d, 0x9e, 0x35, 0x00, 0x76, 0x7b, 0xa0,
+ 0x07, 0x00, 0x02, 0xa0, 0x1c, 0x1b, 0x73, 0x85, 0x07, 0x67, 0xba, 0x00,
+ 0xec, 0xf0, 0x07, 0xc9, 0x30, 0xcb, 0x50, 0x22, 0x09, 0x68, 0x7c, 0x3e,
+ 0x27, 0x86, 0x2f, 0xd8, 0x2f, 0x78, 0x78, 0xa0, 0x00, 0x53, 0x82, 0xb4,
+ 0xe3, 0x6a, 0x60, 0xc6, 0x78, 0xd1, 0x91, 0x0f, 0xbf, 0x00, 0x06, 0x4d,
+ 0x18, 0x1e, 0x46, 0xea, 0x11, 0x40, 0x5a, 0xa2, 0x1f, 0xfd, 0x43, 0xe0,
+ 0x81, 0xfd, 0x5b, 0x04, 0x42, 0x92, 0x16, 0xf0, 0xf8, 0x64, 0x1f, 0xff,
+ 0xfa, 0xc1, 0x0a, 0xc0, 0x01, 0x93, 0x46, 0x07, 0x91, 0xba, 0x84, 0x50,
+ 0x16, 0xa8, 0x87, 0x74, 0x42, 0x21, 0x49, 0x1e, 0xf0, 0xb4, 0x55, 0xff,
+ 0xc3, 0x81, 0xc2, 0xbc, 0x30, 0x00, 0xf9, 0x26, 0x19, 0x7b, 0x04, 0x41,
+ 0x2f, 0x60, 0xc3, 0xc5, 0x00, 0x02, 0x9c, 0x15, 0xa2, 0x0d, 0xa9, 0x83,
+ 0x19, 0xe3, 0x46, 0x48, 0x7c, 0x48, 0x90, 0xfe, 0x1f, 0x86, 0x78, 0x54,
+ 0x46, 0x00, 0x1f, 0x24, 0xc3, 0x2f, 0x60, 0x88, 0x25, 0xec, 0x01, 0xe2,
+ 0x80, 0x01, 0x4e, 0x0a, 0xd3, 0x8d, 0xa9, 0xb0, 0xdf, 0xc6, 0x8c, 0x88,
+ 0x1c, 0x0a, 0xc1, 0x2e, 0x0a, 0xb2, 0x0c, 0x24, 0xd2, 0x0f, 0x57, 0xbe,
+ 0x1f, 0x00, 0xf8, 0x20, 0xe5, 0x98, 0x82, 0x11, 0xef, 0x58, 0x42, 0xc0,
+ 0x01, 0x01, 0x0a, 0xd6, 0x31, 0x8d, 0x6b, 0x5a, 0xc6, 0x31, 0xad, 0x67,
+ 0xf0, 0xff, 0xfe, 0x00, 0x14, 0x99, 0x18, 0x1e, 0x66, 0xea, 0x08, 0xc0,
+ 0x3d, 0x7f, 0xfe, 0xbc, 0x02, 0x15, 0x5e, 0xf4, 0x42, 0x21, 0x49, 0x1f,
+ 0x8f, 0x45, 0x5f, 0xf7, 0xe0, 0x00, 0xfa, 0x2f, 0x98, 0x6a, 0x80, 0xca,
+ 0x34, 0xd2, 0xbf, 0xea, 0x3a, 0x00, 0x56, 0x51, 0xd7, 0x0e, 0xbe, 0xbf,
+ 0xf9, 0xfe, 0x08, 0x0b, 0x85, 0x6e, 0x43, 0xce, 0xcc, 0x1f, 0x52, 0xd7,
+ 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09,
+ 0x20, 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04,
+ 0x06, 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xff, 0xb4,
+ 0x3e, 0x93, 0xb2, 0x0a, 0x00, 0x06, 0xf0, 0x1c, 0x00, 0x08, 0x00, 0x81,
+ 0x4d, 0x26, 0x70, 0x49, 0x78, 0x24, 0x0e, 0x99, 0x66, 0x2f, 0xcc, 0x30,
+ 0x62, 0x7b, 0xe8, 0x78, 0x00, 0x1b, 0xc0, 0x70, 0x00, 0x20, 0x02, 0x05,
+ 0x34, 0x99, 0xc0, 0xec, 0xd9, 0x53, 0x1a, 0x7e, 0x23, 0xff, 0xd7, 0x6d,
+ 0x3d, 0x74, 0x10, 0x64, 0xec, 0x24, 0x88, 0x4b, 0x66, 0x92, 0x48, 0x49,
+ 0xf7, 0x50, 0x75, 0xc9, 0x90, 0xa8, 0x73, 0x1d, 0x39, 0x83, 0xcb, 0x1d,
+ 0xef, 0xf0, 0x45, 0xb5, 0xda, 0x5b, 0x5c, 0xdc, 0x39, 0xa6, 0x00, 0x0c,
+ 0x93, 0xf5, 0x1f, 0xae, 0xa1, 0xb2, 0x58, 0x0f, 0x0a, 0xde, 0x86, 0x01,
+ 0x6c, 0xda, 0x98, 0x13, 0xc9, 0x6f, 0x33, 0xe0, 0x9f, 0xf7, 0xe1, 0xb8,
+ 0x6d, 0x30, 0x88, 0x36, 0xa6, 0x01, 0xb6, 0x9b, 0x83, 0xc0, 0xb5, 0xc3,
+ 0xb9, 0xa3, 0xd4, 0x7a, 0x5e, 0x33, 0x3f, 0xa5, 0x1f, 0x7a, 0x89, 0x80,
+ 0x21, 0x33, 0x3d, 0x95, 0x0e, 0xfa, 0x7b, 0x8e, 0xd9, 0x0d, 0x1c, 0xa2,
+ 0xfe, 0xc3, 0x38, 0xd7, 0x6d, 0x8f, 0x1b, 0x53, 0x25, 0x83, 0xe2, 0x03,
+ 0xea, 0x63, 0xec, 0x48, 0xa5, 0x63, 0x80, 0x8c, 0xf2, 0x2c, 0x51, 0xc5,
+ 0xf8, 0x64, 0xc1, 0x94, 0xf3, 0x93, 0x46, 0x5c, 0x48, 0xc7, 0x5e, 0x1c,
+ 0xcc, 0x7f, 0xbf, 0xf5, 0x20, 0xf6, 0x24, 0x58, 0x52, 0x0f, 0x86, 0xf3,
+ 0x46, 0xaa, 0x3d, 0x55, 0x2f, 0x44, 0x48, 0x43, 0xe0, 0xed, 0x2e, 0x1b,
+ 0x98, 0x95, 0xc7, 0x53, 0x98, 0xb4, 0x6d, 0x92, 0x03, 0x0b, 0x08, 0x21,
+ 0x7f, 0xb2, 0xe7, 0x4a, 0x22, 0x79, 0xe2, 0x55, 0x4f, 0xf6, 0xda, 0x27,
+ 0x48, 0x23, 0x2b, 0xdb, 0x0c, 0x01, 0x59, 0xb2, 0xe6, 0x72, 0xdb, 0xfa,
+ 0x2b, 0x94, 0xe1, 0xcd, 0x30, 0x00, 0x19, 0x27, 0xea, 0x69, 0xee, 0x3b,
+ 0x62, 0x74, 0x73, 0x8f, 0xfb, 0x36, 0x12, 0xf6, 0xb5, 0x8d, 0xa0, 0x57,
+ 0x8f, 0x7e, 0xbc, 0x04, 0xbe, 0x6a, 0x3d, 0xff, 0x42, 0xe1, 0xdc, 0xd0,
+ 0xb5, 0x1e, 0x95, 0x8f, 0xf8, 0x2d, 0x85, 0x8b, 0x41, 0xeb, 0xde, 0x33,
+ 0x3f, 0xa5, 0x1f, 0x7a, 0xaa, 0x5e, 0x44, 0x2c, 0x41, 0xf5, 0x1b, 0x74,
+ 0x10, 0x64, 0x25, 0xb0, 0x95, 0xa1, 0x9c, 0x6b, 0xb6, 0xc7, 0xab, 0x00,
+ 0x70, 0xbf, 0x28, 0xad, 0xf8, 0x13, 0xa8, 0x37, 0x1a, 0xf7, 0x4a, 0x21,
+ 0x68, 0xc8, 0xb9, 0x5c, 0x0b, 0x5c, 0xc8, 0x54, 0x39, 0x8e, 0x9c, 0xc1,
+ 0xe1, 0x8f, 0xbb, 0xe0, 0xc4, 0x14, 0xd8, 0x8c, 0xa6, 0xfa, 0xe7, 0xd3,
+ 0x32, 0xfc, 0x23, 0xfe, 0x40, 0xfb, 0x9c, 0x0f, 0x0a, 0xde, 0x86, 0x01,
+ 0x74, 0xda, 0x9b, 0x2e, 0x4b, 0x79, 0x9f, 0x04, 0xff, 0xbf, 0x0d, 0xc0,
+ 0xda, 0x21, 0x0e, 0x36, 0xa6, 0x07, 0xf3, 0x3b, 0x7a, 0xa4, 0xf6, 0x7f,
+ 0x00, 0x0a, 0x64, 0xc6, 0xd0, 0xdc, 0xa1, 0x28, 0x35, 0x32, 0xd7, 0xed,
+ 0x33, 0x84, 0x5c, 0x7a, 0x3c, 0xb9, 0xdf, 0xfd, 0xa9, 0x75, 0x1a, 0x2f,
+ 0x97, 0xfd, 0xef, 0xda, 0xa9, 0x22, 0x28, 0x84, 0x8e, 0x7f, 0x81, 0x92,
+ 0xcc, 0xe6, 0x31, 0x42, 0xa0, 0x91, 0xad, 0x8e, 0x48, 0x0b, 0xd1, 0xe4,
+ 0xc7, 0x17, 0x90, 0x4b, 0x43, 0x97, 0x8e, 0x47, 0xe8, 0x6e, 0xbc, 0xc4,
+ 0x07, 0x38, 0xd5, 0x57, 0xf5, 0xff, 0xb3, 0x85, 0x34, 0x41, 0x31, 0x63,
+ 0x75, 0xb3, 0x04, 0x04, 0x58, 0x5d, 0x94, 0x56, 0xff, 0x28, 0x85, 0xa3,
+ 0x27, 0xca, 0xe0, 0x5a, 0xe3, 0x76, 0x5e, 0xe8, 0x1b, 0x21, 0x48, 0x73,
+ 0x1d, 0x39, 0x87, 0x0d, 0xf7, 0x7c, 0x02, 0xaa, 0x9c, 0xeb, 0x57, 0xff,
+ 0x7c, 0x01, 0xaf, 0xa9, 0x99, 0x78, 0x47, 0xfd, 0xb8, 0x3c, 0x2b, 0x7a,
+ 0x18, 0x05, 0xd3, 0x6a, 0x6b, 0x4f, 0x0d, 0xc3, 0x69, 0x86, 0x51, 0xb5,
+ 0x36, 0x5c, 0x96, 0xf3, 0x3d, 0x04, 0xff, 0xbf, 0x42, 0x4c, 0x90, 0x04,
+ 0x14, 0x97, 0x06, 0xda, 0x97, 0xef, 0xe1, 0x7b, 0xbd, 0xbf, 0x07, 0x3d,
+ 0x2a, 0xc2, 0xed, 0x9d, 0xb0, 0x00, 0x35, 0x99, 0x09, 0x84, 0x64, 0x0d,
+ 0xe1, 0x33, 0xed, 0xd8, 0x12, 0xfd, 0x39, 0x50, 0x86, 0x14, 0x7c, 0x14,
+ 0x4a, 0x7e, 0x71, 0xec, 0x87, 0x3f, 0xa4, 0x2b, 0x2b, 0x8f, 0xfb, 0xf3,
+ 0xf1, 0x21, 0x4a, 0x95, 0x8f, 0xef, 0x72, 0xcc, 0x4c, 0x75, 0x67, 0xe5,
+ 0x07, 0x2d, 0x84, 0x67, 0x16, 0x10, 0xef, 0xb6, 0x0f, 0x03, 0x6d, 0x30,
+ 0x92, 0xa0, 0xe3, 0xaa, 0x44, 0x2d, 0x9f, 0x8e, 0xa8, 0x89, 0x0b, 0x47,
+ 0x81, 0x45, 0xa1, 0xb8, 0x8a, 0x9f, 0x25, 0x8e, 0x07, 0x37, 0xdb, 0x5f,
+ 0x64, 0xd6, 0x34, 0x40, 0x58, 0xc6, 0x00, 0xac, 0xcc, 0xb9, 0x9c, 0xb6,
+ 0xc9, 0x4e, 0x0e, 0xcd, 0x30, 0x00, 0x08, 0x04, 0x2d, 0xf9, 0xdb, 0x2e,
+ 0xfc, 0x0a, 0xdb, 0x5a, 0xc0, 0x39, 0xa0, 0xd5, 0x48, 0x83, 0x9b, 0x0c,
+ 0x31, 0x7f, 0xbe, 0xed, 0x10, 0x5e, 0x89, 0x94, 0x8a, 0xbe, 0xf0, 0x12,
+ 0x97, 0x3a, 0x3d, 0x42, 0xe0, 0xea, 0x13, 0x1f, 0xe7, 0xa5, 0xe1, 0xbf,
+ 0x7e, 0x92, 0x3e, 0xf5, 0x13, 0x47, 0x16, 0x66, 0x72, 0x41, 0x5d, 0x93,
+ 0x4f, 0x71, 0xdb, 0x21, 0xa3, 0x94, 0x5f, 0xd8, 0x2a, 0xee, 0xbb, 0x6c,
+ 0x78, 0xda, 0x99, 0x2c, 0x6a, 0xc7, 0x68, 0xb4, 0x6c, 0x87, 0x5b, 0x27,
+ 0xf4, 0x22, 0x1d, 0x6a, 0x82, 0xf5, 0xaf, 0x06, 0x04, 0xa9, 0xb9, 0x81,
+ 0xfe, 0xf4, 0x02, 0x55, 0xbf, 0x40, 0x36, 0x24, 0xf0, 0xa4, 0x0e, 0x0d,
+ 0xe6, 0x8d, 0x2a, 0x3d, 0x2a, 0xbc, 0x88, 0x59, 0x01, 0xc1, 0x81, 0xae,
+ 0x89, 0x8a, 0x94, 0xd0, 0x1d, 0x22, 0x2d, 0x65, 0xe3, 0x96, 0x46, 0xd5,
+ 0x6f, 0x8c, 0x0f, 0x5c, 0x77, 0x89, 0x12, 0x54, 0xe8, 0x53, 0xe1, 0x7f,
+ 0xc2, 0x62, 0x7a, 0xd3, 0x57, 0x80, 0x18, 0xf1, 0x70, 0xa2, 0x3e, 0x0f,
+ 0x04, 0x83, 0xb0, 0x71, 0x10, 0xcd, 0xf3, 0x27, 0x4f, 0xef, 0xd5, 0xa5,
+ 0x2c, 0x00, 0x1a, 0x84, 0x3f, 0xdd, 0x77, 0xff, 0x7c, 0x63, 0xd4, 0x61,
+ 0xde, 0x7f, 0x1e, 0xa2, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xb8, 0xe8, 0x80,
+ 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49, 0x04, 0x90, 0x07, 0x9b, 0xcf,
+ 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0x81, 0xc0, 0x00, 0xb8,
+ 0x02, 0x03, 0x6e, 0x7f, 0xff, 0xca, 0x16, 0x8f, 0x00, 0x03, 0xf8, 0x0e,
+ 0x00, 0x04, 0x80, 0x60, 0x43, 0xc9, 0x9e, 0xe0, 0x01, 0x9b, 0x7f, 0xca,
+ 0xf8, 0x78, 0x00, 0x1f, 0xc0, 0x70, 0x00, 0x24, 0x03, 0x02, 0x1e, 0x4c,
+ 0xf8, 0x68, 0xf1, 0x03, 0x57, 0xdd, 0xd8, 0x69, 0x27, 0xc9, 0x8e, 0x00,
+ 0x76, 0x02, 0x6f, 0xd6, 0xf3, 0xf2, 0x3d, 0x87, 0xb2, 0x7d, 0xe4, 0x07,
+ 0x51, 0x8b, 0x71, 0xb5, 0x37, 0xfe, 0x00, 0x82, 0x32, 0x98, 0xc3, 0xa5,
+ 0x4f, 0xca, 0x07, 0xd0, 0xd5, 0x14, 0x47, 0x1f, 0x74, 0x02, 0x64, 0xbf,
+ 0x42, 0xf4, 0xb3, 0x02, 0x7e, 0xff, 0x0e, 0x00, 0x00, 0x13, 0x83, 0xde,
+ 0xfa, 0x07, 0xcd, 0x91, 0x33, 0x51, 0xec, 0x1d, 0x18, 0x19, 0xff, 0x05,
+ 0x82, 0x0e, 0x29, 0xd8, 0xc4, 0x86, 0x89, 0x8f, 0xf0, 0x00, 0x20, 0x68,
+ 0xa2, 0xad, 0x67, 0x50, 0xe0, 0xa9, 0x93, 0xca, 0xff, 0x07, 0x73, 0x2b,
+ 0x31, 0x15, 0x18, 0x7d, 0xff, 0x80, 0x18, 0x1e, 0xaf, 0x8e, 0xc3, 0x50,
+ 0x07, 0x51, 0x8d, 0x71, 0xb5, 0x36, 0x0a, 0xd2, 0x1e, 0xa2, 0x72, 0xdb,
+ 0x0f, 0x2d, 0x07, 0xdf, 0x20, 0x00, 0x9a, 0x21, 0x56, 0xb0, 0x79, 0x24,
+ 0x93, 0x01, 0xd9, 0xe0, 0xb2, 0xd1, 0x16, 0x97, 0xf1, 0xd4, 0x0d, 0x66,
+ 0x46, 0xe6, 0x0d, 0xe3, 0x6b, 0x9b, 0x40, 0x00, 0x46, 0x89, 0xbb, 0xe8,
+ 0x1f, 0x38, 0x6b, 0x60, 0x10, 0x00, 0xc6, 0x7f, 0xc0, 0x10, 0x46, 0xe4,
+ 0x30, 0xfe, 0xa7, 0xe0, 0x07, 0xcd, 0x7a, 0x34, 0x9d, 0xa8, 0x0d, 0x92,
+ 0x7a, 0x17, 0xa5, 0x98, 0x11, 0xfa, 0xff, 0x02, 0x19, 0xe9, 0xc1, 0x74,
+ 0x1e, 0x55, 0xb5, 0x9a, 0x20, 0x38, 0x3e, 0xef, 0x81, 0xe5, 0x26, 0x61,
+ 0x14, 0xa1, 0x1d, 0xcf, 0x33, 0xf7, 0xc6, 0xb4, 0x99, 0xb3, 0x1f, 0x0e,
+ 0x07, 0x28, 0x51, 0x9a, 0xde, 0x18, 0x00, 0xda, 0x63, 0xf0, 0x8c, 0x57,
+ 0x6b, 0xef, 0x84, 0xee, 0xb6, 0x47, 0x10, 0xfb, 0xf0, 0x27, 0x28, 0x05,
+ 0x33, 0xfe, 0x1e, 0x7c, 0x14, 0x55, 0xff, 0xf7, 0xf9, 0xf0, 0xd0, 0xc4,
+ 0x95, 0xab, 0x29, 0x57, 0xa9, 0xa1, 0x25, 0xc5, 0xf0, 0x23, 0x3f, 0xec,
+ 0xb1, 0x79, 0xe8, 0x5e, 0x42, 0xa1, 0xfa, 0xde, 0x91, 0xcd, 0xe5, 0x95,
+ 0x5e, 0xac, 0x3d, 0x41, 0x95, 0x4a, 0x96, 0xb5, 0x0e, 0x00, 0x30, 0x84,
+ 0x37, 0xd4, 0x81, 0x0d, 0xf7, 0x5f, 0xbe, 0x09, 0x7c, 0x73, 0x7e, 0x61,
+ 0xe9, 0x57, 0xef, 0x07, 0x2d, 0x30, 0xc4, 0x8b, 0x6f, 0x2f, 0x7e, 0xd5,
+ 0x5b, 0x80, 0x79, 0x2e, 0x00, 0x0c, 0x55, 0x7b, 0x59, 0xc4, 0x3f, 0x62,
+ 0x27, 0xb1, 0xc6, 0x40, 0x00, 0x6b, 0x94, 0x76, 0x03, 0x05, 0xd5, 0x6e,
+ 0x85, 0x16, 0x93, 0x0d, 0xaf, 0x3d, 0x5f, 0xc1, 0x9d, 0xd9, 0x09, 0x3a,
+ 0x68, 0xf6, 0x99, 0x80, 0x01, 0xbc, 0x51, 0xda, 0x14, 0x2e, 0xaa, 0x2c,
+ 0x85, 0xe4, 0x54, 0xf1, 0x7b, 0xfc, 0x91, 0xe5, 0xb7, 0xfb, 0xfd, 0xfe,
+ 0xff, 0x5f, 0xff, 0xf9, 0x14, 0x10, 0x9a, 0x00, 0x16, 0xc8, 0xb7, 0xfa,
+ 0x02, 0xc2, 0xb5, 0x9f, 0xb0, 0x01, 0xe2, 0x97, 0xfa, 0xc3, 0xff, 0xc3,
+ 0x65, 0x7d, 0xff, 0xf9, 0xff, 0xff, 0xe3, 0xfb, 0xde, 0x5f, 0xb5, 0xc0,
+ 0x10, 0x03, 0x89, 0xb8, 0x15, 0x23, 0x8f, 0x7e, 0x40, 0x0c, 0x60, 0x0b,
+ 0x4c, 0xc0, 0x5f, 0x39, 0xdd, 0x20, 0xce, 0xfb, 0xff, 0x7f, 0xef, 0xfd,
+ 0x07, 0x05, 0xc8, 0xaa, 0xf7, 0x1b, 0xff, 0xab, 0x43, 0x0f, 0xdf, 0xb8,
+ 0xfc, 0x3f, 0xe1, 0x24, 0x33, 0x01, 0x8d, 0x21, 0x5c, 0x47, 0x7d, 0x20,
+ 0x0a, 0xab, 0x9a, 0xd1, 0xc9, 0xde, 0x18, 0x28, 0x1c, 0x02, 0x01, 0xc2,
+ 0x90, 0x6f, 0x50, 0xaa, 0xff, 0xf0, 0x93, 0xc0, 0x01, 0xe1, 0x33, 0x63,
+ 0x1c, 0x27, 0x42, 0x1a, 0x8f, 0x23, 0xff, 0xa1, 0xe8, 0xa2, 0x40, 0x03,
+ 0x97, 0xb8, 0xc7, 0xdc, 0x8a, 0xef, 0xc0, 0x2b, 0xd1, 0x40, 0x12, 0x07,
+ 0x8f, 0x9c, 0x83, 0xc4, 0x7f, 0xfe, 0xf0, 0xe1, 0x55, 0xf0, 0xea, 0xa0,
+ 0x90, 0x4e, 0x83, 0x80, 0x03, 0xc3, 0x44, 0x2c, 0x8f, 0x97, 0xa1, 0x94,
+ 0x9f, 0xda, 0x00, 0xcb, 0x35, 0x8e, 0x8d, 0xbf, 0x8c, 0xff, 0x80, 0x01,
+ 0xcd, 0x9f, 0xa3, 0xb7, 0xea, 0xc9, 0xc8, 0xbf, 0xf7, 0x02, 0x63, 0xe5,
+ 0xd3, 0xd4, 0x2a, 0xe2, 0x5f, 0x83, 0xd0, 0x8b, 0x09, 0xd3, 0x9b, 0x8e,
+ 0x92, 0xae, 0xbf, 0xe7, 0xff, 0x3f, 0xc1, 0x01, 0xc3, 0x81, 0xaa, 0xd4,
+ 0x47, 0xd0, 0x9c, 0x57, 0xe7, 0xde, 0xa5, 0x8e, 0x88, 0x00, 0x40, 0x00,
+ 0x11, 0x08, 0x49, 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00,
+ 0x0b, 0x80, 0x20, 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36,
+ 0xe7, 0xfd, 0x27, 0xff, 0x12, 0x8f, 0x00, 0x03, 0xf8, 0x0e, 0x00, 0x04,
+ 0x80, 0x60, 0x43, 0xc9, 0x9c, 0x06, 0xc0, 0x02, 0x9a, 0xad, 0x80, 0x77,
+ 0x26, 0x8a, 0xff, 0xf6, 0xb4, 0x34, 0xeb, 0x87, 0xc7, 0x80, 0x01, 0xfc,
+ 0x07, 0x00, 0x02, 0x40, 0x30, 0x21, 0xe4, 0xce, 0x8c, 0x24, 0x88, 0x47,
+ 0xff, 0x09, 0x2c, 0x38, 0x4b, 0x56, 0xe4, 0x23, 0xba, 0x5b, 0xb6, 0x01,
+ 0x4e, 0x96, 0x83, 0xb6, 0x7e, 0xdd, 0xf9, 0xca, 0x00, 0x3b, 0xc2, 0xa8,
+ 0x83, 0x6a, 0x6a, 0xc6, 0xaa, 0x84, 0x3e, 0xcd, 0xaa, 0x30, 0x5e, 0xe1,
+ 0x54, 0x7b, 0x29, 0x23, 0xe0, 0x4e, 0x97, 0x3b, 0xff, 0x00, 0xe0, 0x57,
+ 0x04, 0x4a, 0xa9, 0xce, 0x41, 0x33, 0x7d, 0xeb, 0x33, 0xd0, 0x10, 0x3f,
+ 0xe1, 0x2e, 0xa9, 0xb0, 0xe7, 0xbc, 0x33, 0xb1, 0x2f, 0xfe, 0xff, 0xb1,
+ 0xe9, 0x84, 0x68, 0xaa, 0x20, 0xa8, 0xf5, 0xd8, 0x46, 0xea, 0xb1, 0x65,
+ 0x36, 0x12, 0x0f, 0x7c, 0x00, 0xa4, 0xf6, 0x01, 0x58, 0x9a, 0x23, 0xf7,
+ 0xc1, 0xe2, 0x27, 0x2b, 0x18, 0x54, 0x1b, 0x53, 0x0c, 0x43, 0x4e, 0xb3,
+ 0xef, 0xb9, 0x40, 0x07, 0x78, 0x55, 0x10, 0x6d, 0x4d, 0x69, 0x70, 0x0f,
+ 0xf8, 0x49, 0x76, 0xc0, 0x29, 0x75, 0xa0, 0xad, 0x9f, 0xb7, 0x7e, 0x0e,
+ 0x71, 0x95, 0x50, 0x38, 0x14, 0xcd, 0x30, 0x9c, 0xc2, 0xa1, 0xa8, 0x3d,
+ 0x5e, 0xd9, 0x0a, 0x32, 0xf2, 0x72, 0x90, 0xbf, 0xfc, 0x24, 0xe0, 0x02,
+ 0xef, 0x3c, 0x11, 0x15, 0x57, 0xb1, 0xfb, 0xaf, 0x00, 0x04, 0xea, 0xc7,
+ 0x48, 0x84, 0x87, 0x16, 0x17, 0x98, 0x00, 0x02, 0x36, 0xd0, 0x00, 0x49,
+ 0x74, 0x9a, 0x03, 0x0e, 0x44, 0x89, 0x03, 0x79, 0x7f, 0x94, 0x65, 0x99,
+ 0x85, 0x16, 0x9c, 0x82, 0xa3, 0x81, 0x77, 0x20, 0x0c, 0x53, 0xd2, 0xd3,
+ 0x1c, 0x4a, 0xff, 0x7a, 0x13, 0x54, 0x01, 0x2f, 0xf8, 0x4b, 0x9b, 0x54,
+ 0x61, 0x7b, 0x05, 0x51, 0xee, 0xa6, 0x83, 0xb0, 0xcc, 0x04, 0x94, 0x2e,
+ 0xcf, 0xf8, 0x6b, 0x6c, 0xbd, 0x04, 0x54, 0xb0, 0x24, 0x33, 0xff, 0xed,
+ 0xaa, 0x31, 0xda, 0x25, 0xe2, 0xb8, 0xf4, 0xa2, 0xec, 0xef, 0x84, 0x69,
+ 0x61, 0x84, 0x3d, 0xdc, 0x83, 0x33, 0xd9, 0xd0, 0x8a, 0x43, 0xe0, 0x75,
+ 0x1b, 0xeb, 0xae, 0xba, 0xeb, 0xe5, 0x69, 0x14, 0x89, 0xbf, 0x12, 0x22,
+ 0x00, 0x85, 0x2f, 0xf8, 0x0f, 0xfe, 0xd9, 0x81, 0xb1, 0x2a, 0xfa, 0x3c,
+ 0xe7, 0xeb, 0xf9, 0xfe, 0xff, 0x81, 0xff, 0xff, 0x70, 0xc3, 0x80, 0x16,
+ 0x43, 0xb7, 0x4c, 0x8e, 0xef, 0x55, 0x06, 0x0c, 0xef, 0xbf, 0xff, 0x7e,
+ 0xf7, 0xfd, 0x44, 0xd4, 0x44, 0x74, 0xa0, 0x01, 0x11, 0xfa, 0xaf, 0xe9,
+ 0xff, 0xff, 0x00, 0x0a, 0xc9, 0x9b, 0x42, 0x6c, 0xa5, 0x56, 0x6f, 0x93,
+ 0xb1, 0x11, 0x11, 0x17, 0xb2, 0x70, 0x00, 0x6c, 0x99, 0xb4, 0x44, 0x8c,
+ 0x6a, 0x88, 0xa0, 0x01, 0xe9, 0xba, 0xba, 0xf7, 0xbf, 0xff, 0xff, 0xfa,
+ 0xaa, 0x22, 0x45, 0x26, 0x0e, 0x9f, 0xf7, 0xad, 0xf0, 0xbf, 0x6d, 0x22,
+ 0xa9, 0xfe, 0xee, 0x06, 0x00, 0x32, 0x2f, 0xaa, 0xf9, 0xff, 0xff, 0xf8,
+ 0xc1, 0xb7, 0xfd, 0x72, 0x9b, 0xfd, 0xfc, 0xd1, 0xb7, 0xff, 0x5a, 0xaf,
+ 0xff, 0x41, 0x83, 0xfc, 0xe9, 0xfe, 0x74, 0xc1, 0x3e, 0x75, 0xee, 0xe1,
+ 0xff, 0xff, 0xc2, 0xe9, 0xd5, 0xf8, 0x7f, 0xf8, 0x6c, 0xec, 0x09, 0xc9,
+ 0xdd, 0xf1, 0x6f, 0xbb, 0x00, 0x16, 0x42, 0xb7, 0x5e, 0x8c, 0xaf, 0x55,
+ 0x78, 0x42, 0x6d, 0x7d, 0xe7, 0xef, 0xfb, 0xfa, 0x89, 0x8e, 0x88, 0x00,
+ 0x40, 0x00, 0x11, 0x08, 0x49, 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8,
+ 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80,
+ 0x20, 0x36, 0xe7, 0x1d, 0x87, 0x80, 0x01, 0x10, 0xa4, 0x92, 0x49, 0x2f,
+ 0x2c, 0x0f, 0x37, 0x84, 0x00, 0x01, 0x50, 0x05, 0x07, 0xdc, 0xff, 0x81,
+ 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee, 0x7f, 0xdc, 0x4d, 0xf7, 0xdf, 0x7d,
+ 0x75, 0xd7, 0x5d, 0x7f, 0xda, 0xdf, 0x09, 0x42, 0x82, 0x20, 0x02, 0x98,
+ 0xe5, 0xd5, 0x24, 0x5c, 0x7b, 0xff, 0xf2, 0x1b, 0x86, 0x46, 0x90, 0xa7,
+ 0x1c, 0x5d, 0xc4, 0x06, 0xca, 0xf4, 0xe3, 0x4d, 0x2f, 0xfd, 0x0c, 0x91,
+ 0x21, 0xbe, 0xa2, 0x3f, 0x22, 0x62, 0x91, 0x7e, 0x09, 0xa0, 0x00, 0x72,
+ 0xdf, 0x55, 0xf3, 0xff, 0xff, 0xf1, 0x63, 0x6f, 0xfa, 0xe5, 0x1f, 0xef,
+ 0xff, 0xc0, 0x91, 0x68, 0xf6, 0x3d, 0x95, 0x8c, 0xbf, 0xbf, 0xc0, 0xf0,
+ 0x02, 0xc0, 0xc8, 0xb6, 0xe9, 0x28, 0xf8, 0x7a, 0x00, 0x2c, 0x0c, 0x8b,
+ 0xfe, 0x92, 0x8f, 0x87, 0xa0, 0xc9, 0x12, 0x1f, 0xe9, 0x4f, 0x84, 0x21,
+ 0x41, 0x1e, 0x00, 0x07, 0x8a, 0x4d, 0x35, 0x91, 0x33, 0xdf, 0xc8, 0x42,
+ 0x01, 0xb6, 0x35, 0xe4, 0x29, 0xff, 0xfb, 0x88, 0x04, 0xea, 0xdb, 0x68,
+ 0x93, 0x3a, 0x1a, 0x89, 0xf1, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09,
+ 0x20, 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04,
+ 0x06, 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xe3, 0xb0,
+ 0x04, 0x00, 0x01, 0x10, 0xa4, 0x92, 0x49, 0x24, 0x92, 0x07, 0x9b, 0xc0,
+ 0x38, 0x00, 0x15, 0x00, 0x50, 0x7d, 0xcf, 0xf8, 0x1c, 0x00, 0x0a, 0x80,
+ 0x28, 0x3e, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7,
+ 0xfc, 0x3f, 0xa5, 0x20, 0x84, 0xd0, 0x00, 0xa4, 0x8a, 0x52, 0x12, 0xae,
+ 0xf8, 0x9f, 0xfd, 0xa8, 0x0e, 0x7b, 0x4a, 0xd4, 0xcf, 0xbb, 0xe8, 0xa7,
+ 0xae, 0x3e, 0x40, 0x00, 0x8a, 0xdd, 0xdd, 0xd7, 0x7c, 0x00, 0x1e, 0x62,
+ 0x22, 0xdd, 0xdd, 0x97, 0xa3, 0x78, 0x7f, 0xe3, 0xe5, 0x3f, 0xb2, 0xc0,
+ 0x9a, 0x7a, 0x69, 0xff, 0xeb, 0xff, 0xff, 0xb4, 0x10, 0x9a, 0x00, 0x11,
+ 0x45, 0x38, 0xc8, 0x42, 0xed, 0x63, 0x9b, 0x9a, 0x00, 0xcf, 0x0a, 0xb0,
+ 0xc3, 0x8e, 0xd8, 0xa7, 0x8e, 0x88, 0x00, 0x40, 0x00, 0x11, 0x08, 0x49,
+ 0x04, 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20,
+ 0x36, 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0x1d, 0x80,
+ 0x20, 0x00, 0x08, 0x85, 0x24, 0x92, 0x49, 0x24, 0x90, 0x3c, 0xde, 0x01,
+ 0xc0, 0x00, 0xa8, 0x02, 0x83, 0xee, 0x7f, 0xc0, 0xe0, 0x00, 0x54, 0x01,
+ 0x41, 0xf7, 0x3f, 0xea, 0x26, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xaf, 0x00,
+ 0x00, 0x01, 0x25, 0x01, 0x2e, 0xe0, 0x80, 0x83, 0xff, 0xff, 0xf0, 0xf4,
+ 0x50, 0x00, 0x10, 0x5f, 0xf1, 0xf2, 0x00, 0x02, 0x1b, 0x3b, 0xb3, 0xb3,
+ 0xb3, 0xb3, 0xb3, 0x3b, 0x7c, 0x00, 0xb6, 0x05, 0x2b, 0x91, 0x58, 0x05,
+ 0x7a, 0xe6, 0xff, 0xff, 0x4f, 0xa4, 0x53, 0xe2, 0xd0, 0x70, 0x00, 0xe4,
+ 0xce, 0x9c, 0xbf, 0x25, 0xde, 0xf0, 0x78, 0x87, 0x36, 0xf6, 0x5c, 0xf5,
+ 0xf4, 0xff, 0x00, 0x07, 0xda, 0x77, 0xe9, 0x26, 0x5f, 0xfb, 0x07, 0xb9,
+ 0xc5, 0x6f, 0xbe, 0xff, 0xf6, 0x2f, 0x62, 0x2c, 0x60, 0x88, 0x01, 0x20,
+ 0xed, 0x76, 0xcc, 0x04, 0x0f, 0x7d, 0x73, 0x00, 0x13, 0x5b, 0xd5, 0xf3,
+ 0xff, 0xec, 0x8f, 0xfe, 0xe0, 0x01, 0x73, 0x72, 0xa9, 0x83, 0xe6, 0x31,
+ 0xff, 0x60, 0x5e, 0x14, 0xd7, 0xdb, 0x24, 0xf5, 0xb0, 0x60, 0xca, 0x48,
+ 0x90, 0x18, 0xf8, 0x80, 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49, 0x04,
+ 0x90, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f,
+ 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0xff, 0xfc, 0x27, 0x14,
+ 0x00, 0x04, 0x0c, 0x70, 0x1c, 0x00, 0x0b, 0x00, 0x20, 0x30, 0xa2, 0x66,
+ 0x78, 0x00, 0x08, 0x01, 0xdc, 0x07, 0x00, 0x02, 0xc0, 0x08, 0x0c, 0x24,
+ 0x99, 0x92, 0x26, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xba, 0xfa, 0x67,
+ 0x33, 0xf9, 0xf1, 0x42, 0x38, 0x46, 0xbb, 0xad, 0xca, 0x7e, 0xbf, 0xfe,
+ 0x10, 0x7d, 0x77, 0xe7, 0xff, 0xff, 0xef, 0x04, 0x4d, 0x5d, 0xd3, 0xb3,
+ 0xff, 0xdd, 0x86, 0x1f, 0x74, 0x1f, 0xff, 0xfb, 0x9e, 0x0b, 0x9a, 0xaf,
+ 0xaf, 0x7f, 0xdf, 0xf1, 0xff, 0xfa, 0xe7, 0xae, 0x15, 0x60, 0x4b, 0x65,
+ 0xaf, 0x99, 0x5b, 0xbe, 0xef, 0xf0, 0x02, 0xc0, 0xa5, 0xa9, 0xf9, 0x11,
+ 0x5e, 0xb9, 0x60, 0x31, 0x3d, 0xad, 0xdd, 0xff, 0x83, 0x53, 0xd7, 0xff,
+ 0xf7, 0x22, 0x2c, 0x60, 0x8e, 0x00, 0x11, 0x17, 0xc9, 0x4c, 0xda, 0x4f,
+ 0x00, 0x08, 0x8b, 0xe4, 0xa6, 0x6d, 0x27, 0x20, 0x1f, 0x3f, 0xd6, 0xa4,
+ 0x79, 0xde, 0x00, 0x2e, 0x6e, 0x56, 0x3a, 0xcc, 0xe7, 0xff, 0x1a, 0x6d,
+ 0xff, 0x52, 0xa8, 0x7f, 0xb0, 0x00, 0x00, 0x5e, 0x1d, 0x98, 0x88, 0xb9,
+ 0x7f, 0x84, 0xd8, 0x00, 0x44, 0x5f, 0x25, 0x66, 0xd2, 0xf0, 0x66, 0xdf,
+ 0x5e, 0x48, 0x9b, 0xf5, 0xfd, 0x83, 0x6f, 0xfa, 0xe5, 0x6f, 0xf7, 0xf0,
+ 0x30, 0x7e, 0xa7, 0x8e, 0x88, 0x00, 0x40, 0x00, 0x11, 0x08, 0x49, 0x04,
+ 0x90, 0x49, 0x00, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36,
+ 0xe7, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0xe7, 0x1d, 0x87, 0x80,
+ 0x01, 0x10, 0xa4, 0x92, 0x49, 0x24, 0x96, 0x07, 0x9b, 0xc2, 0x00, 0x00,
+ 0xb8, 0x02, 0x83, 0x6e, 0x7f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x41, 0xb7,
+ 0x3f, 0xea, 0x26, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xfe,
+ 0xbf, 0xfc, 0x3e, 0x40, 0xc0, 0x02, 0xf7, 0x41, 0x54, 0x9a, 0x44, 0x9a,
+ 0xff, 0x7e, 0xa3, 0x84, 0x03, 0xfe, 0x1e, 0x41, 0x8c, 0x01, 0xa4, 0x96,
+ 0x98, 0xae, 0xef, 0x9c, 0x01, 0x32, 0x93, 0x33, 0xd1, 0x23, 0x35, 0xe1,
+ 0xf0, 0x07, 0x7f, 0xfe, 0x12, 0x50, 0x00, 0x8c, 0xac, 0x5b, 0xcc, 0xa7,
+ 0x12, 0x97, 0x0e, 0xb8, 0x01, 0xb3, 0xa9, 0x73, 0x3a, 0xed, 0xc3, 0x08,
+ 0x0d, 0x7b, 0x48, 0x61, 0x1d, 0xf4, 0xbf, 0xee, 0x5f, 0xff, 0xc3, 0xc2,
+ 0x66, 0xdf, 0x36, 0x3e, 0xa0, 0xe0, 0xfe, 0xfa, 0xe3, 0xa2, 0x00, 0x10,
+ 0x00, 0x04, 0x42, 0x12, 0x41, 0x24, 0x12, 0x40, 0x1e, 0x6f, 0x3e, 0x07,
+ 0x00, 0x02, 0xe0, 0x08, 0x0d, 0xb9, 0xfe, 0x07, 0x00, 0x02, 0xe0, 0x08,
+ 0x0d, 0xb9, 0xf1, 0x0f, 0xff, 0xc2, 0x66, 0x00, 0x14, 0x87, 0x8e, 0x77,
+ 0x38, 0xe1, 0x5f, 0xd1, 0xea, 0xf7, 0x41, 0x98, 0x00, 0x10, 0x20, 0xe6,
+ 0x13, 0x33, 0xc0, 0x00, 0xce, 0x03, 0x80, 0x04, 0x08, 0x39, 0x84, 0xcd,
+ 0xda, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb, 0xef, 0xbe, 0xfb,
+ 0xef, 0xbe, 0x3f, 0x00, 0x04, 0x19, 0x36, 0xe5, 0x36, 0xe5, 0x26, 0xb4,
+ 0xa6, 0xf8, 0x00, 0xec, 0x25, 0xc2, 0xfb, 0x1c, 0xb2, 0x7d, 0x5e, 0xff,
+ 0xc0, 0xe0, 0x00, 0x44, 0x04, 0x0b, 0xb9, 0xc7, 0x4a, 0x1e, 0x00, 0x04,
+ 0x42, 0x92, 0x49, 0x65, 0x96, 0xf0, 0x3c, 0xde, 0x10, 0x00, 0x05, 0x40,
+ 0x14, 0x1b, 0x73, 0x9f, 0x81, 0xc0, 0x00, 0xa8, 0x02, 0x83, 0x6e, 0x73,
+ 0xf5, 0x13, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
+ 0x75, 0xd7, 0x5c, 0x74, 0x40, 0x02, 0x00, 0x00, 0x88, 0x42, 0x48, 0x24,
+ 0x82, 0x48, 0x03, 0xcd, 0xe7, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb7,
+ 0x3f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb7, 0x3f, 0xf0, 0xff, 0xc4,
+ 0x8a, 0x14, 0x00, 0x09, 0xe0, 0x38, 0x04, 0x30, 0x84, 0x93, 0x30, 0x1c,
+ 0x00, 0x0c, 0x07, 0x59, 0x49, 0x81, 0xc0, 0x00, 0x40, 0x10, 0xc0, 0x04,
+ 0x41, 0xe7, 0x80, 0x01, 0x3c, 0x07, 0x00, 0x86, 0x10, 0x92, 0x67, 0xf8,
+ 0xc3, 0xe1, 0x08, 0xa4, 0x1c, 0x00, 0x04, 0x00, 0x8c, 0x01, 0x90, 0x07,
+ 0x00, 0x01, 0x00, 0x23, 0x00, 0x22, 0x0f, 0x00, 0xb3, 0x00, 0xc2, 0x10,
+ 0x46, 0xe6, 0x06, 0x09, 0xb7, 0x78, 0x59, 0x80, 0x61, 0x33, 0x70, 0x92,
+ 0x03, 0x6d, 0x5c, 0x85, 0x98, 0x06, 0x13, 0x37, 0x09, 0x28, 0x36, 0xd5,
+ 0xe1, 0x66, 0x01, 0x84, 0xcd, 0xc2, 0x48, 0x0d, 0xb5, 0x73, 0xf8, 0xc3,
+ 0xfe, 0x14, 0x80, 0x1e, 0x38, 0x08, 0x7c, 0xcd, 0x24, 0xa0, 0xdb, 0x51,
+ 0x60, 0x10, 0x0e, 0xa4, 0x2c, 0x70, 0x10, 0xf9, 0x9a, 0x49, 0x01, 0xb6,
+ 0xaf, 0x0b, 0x1c, 0x04, 0x3e, 0x66, 0x92, 0x50, 0x6d, 0xab, 0xc2, 0xc7,
+ 0x01, 0x0f, 0x99, 0xa4, 0x90, 0x1b, 0x6a, 0xff, 0xc6, 0x1e, 0x58, 0x45,
+ 0x41, 0xc0, 0x20, 0x1d, 0x48, 0x38, 0x04, 0x03, 0xa9, 0xc0, 0x0e, 0x92,
+ 0x32, 0x01, 0x84, 0x24, 0xb0, 0xdb, 0x57, 0x87, 0x49, 0x19, 0x00, 0xc2,
+ 0x3c, 0xa0, 0xdb, 0x57, 0x87, 0x49, 0x19, 0x00, 0xc2, 0x12, 0x40, 0x6d,
+ 0xab, 0xc3, 0xa4, 0x8c, 0x80, 0x61, 0x1e, 0x40, 0x6d, 0xab, 0xfe, 0x31,
+ 0xf8, 0xc7, 0x0a, 0x40, 0x14, 0x13, 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37,
+ 0x3f, 0x1c, 0x13, 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37, 0x3f, 0x1c, 0x13,
+ 0x33, 0x01, 0x04, 0x20, 0x0a, 0x37, 0x3f, 0x1c, 0x13, 0x33, 0x01, 0x04,
+ 0x20, 0x0a, 0x37, 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
+ 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x02, 0x21, 0x09, 0x20,
+ 0x92, 0x09, 0x20, 0x0f, 0x37, 0x9f, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06,
+ 0xdc, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xdc, 0xff, 0x10, 0x0f,
+ 0xfc, 0x49, 0x0f, 0x00, 0x03, 0x78, 0x0e, 0x00, 0x04, 0x00, 0x40, 0xa6,
+ 0x93, 0x30, 0x38, 0x01, 0x00, 0x38, 0xe4, 0x1f, 0x3c, 0x00, 0x0d, 0xe0,
+ 0x38, 0x00, 0x10, 0x01, 0x02, 0x9a, 0x4c, 0xe0, 0x18, 0x7f, 0xf8, 0x2c,
+ 0x12, 0xc9, 0x34, 0x17, 0xc4, 0x00, 0x01, 0x01, 0x20, 0x00, 0xf1, 0x01,
+ 0x6c, 0x0e, 0x04, 0x21, 0x97, 0x21, 0xc0, 0x84, 0x32, 0xe4, 0x2e, 0xdc,
+ 0x93, 0xb7, 0x3f, 0x0f, 0xfe, 0x0b, 0x13, 0x20, 0x4a, 0x83, 0xe1, 0x80,
+ 0x01, 0xd0, 0x1e, 0x61, 0x90, 0x00, 0x10, 0x12, 0x00, 0x17, 0x81, 0xc0,
+ 0x10, 0xe2, 0x6e, 0x61, 0xc0, 0x10, 0xe2, 0x6e, 0x60, 0x70, 0x21, 0x0c,
+ 0xb9, 0x87, 0x02, 0x10, 0xcb, 0x90, 0x0c, 0x3f, 0xfa, 0x05, 0x8d, 0x92,
+ 0x68, 0x3e, 0x20, 0x00, 0x08, 0x09, 0x00, 0x02, 0xc4, 0x05, 0x38, 0x1c,
+ 0x08, 0x43, 0x2e, 0x61, 0xc0, 0x84, 0x32, 0xe6, 0x17, 0x6e, 0x64, 0xed,
+ 0xcf, 0xff, 0xfc, 0x16, 0x26, 0x40, 0x9d, 0x04, 0xd1, 0x43, 0x00, 0x02,
+ 0x60, 0x05, 0x22, 0x18, 0x00, 0x19, 0x00, 0x0e, 0x77, 0x03, 0x80, 0x21,
+ 0xc4, 0xdc, 0xc3, 0x80, 0x21, 0xc4, 0xdc, 0xc0, 0xe0, 0x00, 0x81, 0x47,
+ 0xdc, 0xc3, 0x80, 0x02, 0x05, 0x1f, 0x73, 0xff, 0xfe, 0x81, 0x63, 0x06,
+ 0x84, 0xa8, 0x3e, 0x20, 0x00, 0x08, 0x09, 0x00, 0x07, 0x88, 0x09, 0xb8,
+ 0x1c, 0x08, 0x43, 0x2e, 0x61, 0xc0, 0x84, 0x32, 0xe6, 0x17, 0x6e, 0x64,
+ 0xed, 0xcf, 0xff, 0xfc, 0x16, 0x20, 0x3a, 0x08, 0xe8, 0x3e, 0x18, 0x08,
+ 0x00, 0x28, 0x74, 0x30, 0x00, 0x3c, 0x09, 0x9c, 0x0e, 0x00, 0x87, 0x13,
+ 0x73, 0x0e, 0x00, 0x87, 0x13, 0x73, 0x03, 0x81, 0x08, 0x65, 0xcc, 0x38,
+ 0x10, 0x86, 0x5c, 0xf8, 0xff, 0xf8, 0x2c, 0x83, 0xa1, 0x29, 0xe1, 0x80,
+ 0x01, 0xe1, 0x99, 0x0d, 0x6f, 0x81, 0xc0, 0x8c, 0x55, 0xcc, 0x38, 0x11,
+ 0x8a, 0xb9, 0x8f, 0xdc, 0xd7, 0xdc, 0x4c, 0xf5, 0xd7, 0x5d, 0x7f, 0xff,
+ 0xf3, 0x82, 0x11, 0x10, 0x00, 0xf0, 0x66, 0x00, 0xc3, 0x6d, 0xad, 0x2c,
+ 0x4f, 0x8b, 0x6c, 0x30, 0xff, 0x7a, 0x80, 0xa9, 0x84, 0x32, 0x66, 0xa5,
+ 0xea, 0x6d, 0x54, 0x57, 0xff, 0xff, 0xea, 0xec, 0x51, 0x2c, 0xac, 0x56,
+ 0x00, 0x08, 0x50, 0xa9, 0xc5, 0x42, 0xb2, 0x6e, 0x2d, 0x7a, 0xe5, 0x00,
+ 0x00, 0x80, 0x7c, 0xc2, 0x50, 0x6e, 0x05, 0x80, 0x2c, 0xdb, 0xd2, 0x10,
+ 0xa9, 0x3c, 0x2c, 0x6f, 0xfc, 0x01, 0x59, 0xc2, 0xd5, 0x21, 0x78, 0xb4,
+ 0xd5, 0x2b, 0xf7, 0x03, 0x64, 0x75, 0xa4, 0x13, 0xa1, 0x3d, 0xd5, 0x3f,
+ 0xff, 0xf9, 0x06, 0x71, 0xb6, 0xf5, 0x6b, 0xdf, 0xd5, 0x4c, 0xff, 0xff,
+ 0xeb, 0xdb, 0x62, 0xef, 0x5e, 0x98, 0x44, 0x7f, 0xfe, 0x0e, 0xc0, 0x8c,
+ 0x36, 0xa6, 0x9f, 0xa8, 0x4c, 0xc1, 0xff, 0xef, 0xf4, 0x80, 0x00, 0x32,
+ 0x1d, 0x49, 0x90, 0x09, 0x16, 0xb2, 0x39, 0x8b, 0xaa, 0x7e, 0x99, 0x34,
+ 0x2c, 0xf1, 0xe1, 0x84, 0x47, 0xff, 0xee, 0x23, 0xac, 0x19, 0x44, 0xc1,
+ 0xde, 0xdf, 0xe1, 0x62, 0xa2, 0x8e, 0x86, 0x65, 0xec, 0x5b, 0x75, 0x90,
+ 0x13, 0x80, 0x1a, 0x02, 0x69, 0xaa, 0x0e, 0xc7, 0xa5, 0x81, 0x21, 0x61,
+ 0xd5, 0x39, 0xf7, 0xf9, 0x93, 0x35, 0xfb, 0xe0, 0x72, 0x34, 0x83, 0x43,
+ 0x0a, 0x96, 0x3e, 0xbb, 0xb0, 0x62, 0x00, 0x4d, 0x4e, 0xb4, 0x44, 0xab,
+ 0x51, 0x05, 0xea, 0x10, 0xae, 0x52, 0xda, 0x3d, 0x63, 0x66, 0x5d, 0x5a,
+ 0x91, 0x8c, 0xb8, 0x54, 0xad, 0x3e, 0x6e, 0xd7, 0x86, 0x3e, 0x2e, 0x57,
+ 0xf1, 0xaf, 0x96, 0x4a, 0x54, 0xd0, 0x42, 0xca, 0xda, 0x30, 0x69, 0xf0,
+ 0xab, 0x87, 0xff, 0xbc, 0x02, 0x3b, 0xd2, 0x2d, 0xe2, 0x42, 0x22, 0x4a,
+ 0x11, 0xae, 0xb8, 0xe8, 0x80, 0x04, 0x00, 0x01, 0x10, 0x84, 0x90, 0x49,
+ 0x04, 0x90, 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e,
+ 0x7f, 0x81, 0xc0, 0x00, 0xb8, 0x02, 0x03, 0x6e, 0x7f, 0x80, 0x7c, 0x3e,
+ 0x2e, 0x78, 0x00, 0x08, 0x01, 0xdc, 0x07, 0x00, 0x02, 0xc0, 0x08, 0x0c,
+ 0x24, 0x99, 0x9e, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x24, 0x46, 0x22, 0xb0,
+ 0x55, 0xa8, 0x81, 0x5c, 0x68, 0x99, 0x20, 0x80, 0x78, 0x0e, 0x00, 0x05,
+ 0xc0, 0x10, 0x1a, 0x4a, 0x5b, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09,
+ 0x24, 0x82, 0x89, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0,
+ 0x10, 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea,
+ 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6,
+ 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05,
+ 0xc0, 0x10, 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24,
+ 0x82, 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
+ 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea, 0x00,
+ 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xff,
+ 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05, 0xc0,
+ 0x10, 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82,
+ 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b,
+ 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xea, 0x00, 0x80,
+ 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xff, 0xc0,
+ 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
+ 0x1b, 0x2f, 0x1e, 0xa0, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82, 0x09,
+ 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f,
+ 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02, 0x00, 0x00,
+ 0x88, 0x42, 0x49, 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80,
+ 0x01, 0x70, 0x04, 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c,
+ 0xbc, 0x76, 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00,
+ 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xfc, 0x0e,
+ 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0x1d, 0x80, 0x20, 0x00, 0x08, 0x84,
+ 0x24, 0x92, 0x08, 0x24, 0x80, 0x37, 0xad, 0xbf, 0xf0, 0x38, 0x00, 0x17,
+ 0x00, 0x40, 0x6c, 0xbf, 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xcb, 0xc7,
+ 0x60, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24, 0x82, 0x09, 0x20, 0x0d, 0xeb,
+ 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0xc0, 0xe0, 0x00,
+ 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02, 0x00, 0x00, 0x88, 0x42, 0x49,
+ 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x01, 0x70, 0x04,
+ 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c, 0xbc, 0x7e, 0x00,
+ 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20, 0x92, 0x00, 0xde, 0xb6, 0xf8,
+ 0x7e, 0x07, 0x00, 0x02, 0xe0, 0x08, 0x0d, 0x97, 0xe0, 0x70, 0x00, 0x2e,
+ 0x00, 0x80, 0xd9, 0x78, 0xfd, 0xc0, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20,
+ 0x92, 0x00, 0xde, 0xb6, 0x0f, 0x86, 0x1f, 0x81, 0xc0, 0x00, 0xb8, 0x02,
+ 0x03, 0x65, 0xf8, 0x1c, 0x00, 0x0b, 0x80, 0x20, 0x36, 0x5e, 0x3f, 0x70,
+ 0x00, 0x08, 0x84, 0x24, 0x92, 0x08, 0x24, 0x80, 0x37, 0xad, 0x83, 0xff,
+ 0xc3, 0xf0, 0x38, 0x00, 0x17, 0x00, 0x40, 0x6c, 0xbf, 0x03, 0x80, 0x01,
+ 0x70, 0x04, 0x06, 0xcb, 0xc7, 0x60, 0x08, 0x00, 0x02, 0x21, 0x09, 0x24,
+ 0x82, 0x09, 0x20, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10,
+ 0x1b, 0x2f, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2, 0xf1, 0xd8, 0x02,
+ 0x00, 0x00, 0x88, 0x42, 0x49, 0x20, 0x82, 0x48, 0x03, 0x7a, 0xdb, 0xff,
+ 0x03, 0x80, 0x01, 0x70, 0x04, 0x06, 0xcb, 0xf0, 0x38, 0x00, 0x17, 0x00,
+ 0x40, 0x6c, 0xbc, 0x76, 0x00, 0x80, 0x00, 0x22, 0x10, 0x92, 0x48, 0x20,
+ 0x92, 0x00, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x00, 0x5c, 0x01, 0x01, 0xb2,
+ 0xfc, 0x0e, 0x00, 0x05, 0xc0, 0x10, 0x1b, 0x2f, 0x1d, 0x40, 0x05, 0x80,
+ 0x01, 0xf1, 0x9c, 0xf7, 0xb9, 0xcf, 0x78, 0xe1, 0xfc, 0x17, 0xc0, 0xe0,
+ 0x00, 0x4c, 0x06, 0x04, 0xdc, 0xf8, 0x1c, 0x00, 0x09, 0x80, 0xc0, 0x99,
+ 0x7c, 0x0e, 0x00, 0x04, 0xc0, 0x60, 0x4d, 0xc0, 0x38, 0x00, 0x13, 0x01,
+ 0x81, 0x32, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe1, 0x09, 0x02, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0x95, 0x70, 0x81, 0x86, 0xe9, 0x7f, 0xca, 0x2f,
+ 0x02, 0x0f, 0x66, 0x7b, 0x9f, 0x0a, 0x73, 0x2c, 0x00, 0x5b, 0x62, 0x53,
+ 0x20, 0x9a, 0xdd, 0x24, 0xaf, 0xdf, 0x6b, 0x30, 0xb4, 0x71, 0x05, 0x2e,
+ 0x00, 0xfd, 0x44, 0x42, 0x55, 0xb7, 0xc3, 0x7f, 0xbe, 0xf1, 0x3f, 0xff,
+ 0xff, 0xff, 0xf2, 0x9b, 0x81, 0x2f, 0xb7, 0xe3, 0xca, 0x6e, 0x03, 0xef,
+ 0x96, 0xff, 0x90, 0xbc, 0x38, 0xb6, 0x92, 0x7e, 0x40, 0x86, 0x22, 0x28,
+ 0x80, 0xba, 0xcd, 0x80, 0x1b, 0x45, 0x70, 0x0c, 0x65, 0x46, 0x98, 0xf4,
+ 0x73, 0x5e, 0xf8, 0x05, 0x71, 0x59, 0xef, 0x11, 0x2b, 0x3c, 0x1f, 0x84,
+ 0x5c, 0x51, 0x31, 0x20, 0x86, 0xe5, 0x51, 0x02, 0x48, 0x24, 0x5e, 0x29,
+ 0x24, 0x96, 0x00, 0xe8, 0x29, 0xe7, 0xfe, 0x78, 0x75, 0x1a, 0x5c, 0x8b,
+ 0x8c, 0xfd, 0xf0, 0xdf, 0xdc, 0xa8, 0x7f, 0xf0, 0xe7, 0xfe, 0x2b, 0xff,
+ 0xff, 0x31, 0xa0, 0x39, 0x5b, 0x4c, 0x83, 0x95, 0xb4, 0xc9, 0x3c, 0x4f,
+ 0x12, 0x20, 0x44, 0x5b, 0xc0, 0x9b, 0xda, 0x3f, 0xf7, 0xfb, 0x82, 0x82,
+ 0x4c, 0x68, 0x00, 0x5f, 0x40, 0x0a, 0x3f, 0x57, 0x05, 0x23, 0x0d, 0xf3,
+ 0xf6, 0xf2, 0x51, 0x26, 0x03, 0x20, 0x2e, 0x2b, 0xde, 0x9b, 0xf5, 0xb1,
+ 0x05, 0x53, 0xb5, 0xf8, 0x02, 0x26, 0x62, 0x63, 0xab, 0x3f, 0x31, 0xd5,
+ 0x32, 0x1e, 0x47, 0xe7, 0x80, 0xe3, 0xa5, 0xba, 0x3d, 0x47, 0x63, 0x5b,
+ 0x11, 0x8d, 0xde, 0x9e, 0x31, 0x46, 0x49, 0x86, 0x05, 0xbb, 0xa6, 0x51,
+ 0x4a, 0x34, 0x24, 0x72, 0xc7, 0xa7, 0x6f, 0xcc, 0x05, 0x37, 0x4c, 0x07,
+ 0x92, 0x93, 0x04, 0x7f, 0xfc, 0x87, 0x82, 0x47, 0x80, 0xd7, 0xd7, 0xfc,
+ 0xcb, 0x80, 0x0b, 0xd2, 0x7e, 0x82, 0x85, 0x29, 0x0f, 0xcd, 0x58, 0x64,
+ 0x33, 0x5e, 0xbf, 0xc8, 0xa1, 0xd8, 0x6e, 0x5f, 0xc8, 0xa0, 0xe5, 0x6d,
+ 0x33, 0xd8, 0x98, 0x88, 0x87, 0x80, 0x01, 0x35, 0x1e, 0x43, 0x2b, 0x43,
+ 0x2b, 0x5e, 0x00, 0x1b, 0x8a, 0x44, 0x23, 0x2b, 0xa9, 0x4f, 0x57, 0xad,
+ 0xbd, 0x30, 0xb6, 0x44, 0x57, 0x3f, 0xf5, 0xb5, 0xc5, 0x7e, 0x03, 0xe2,
+ 0xad, 0x67, 0xea, 0x66, 0x75, 0x40, 0x00, 0x20, 0x07, 0x62, 0x00, 0x11,
+ 0xff, 0xfd, 0x83, 0x05, 0xe3, 0xd9, 0x15, 0x56, 0x26, 0x5d, 0xff, 0x63,
+ 0x72, 0x08, 0xc0, 0xf6, 0x9a, 0x75, 0x7e, 0x82, 0xb9, 0x4f, 0xdb, 0x11,
+ 0xe8, 0x0f, 0xa4, 0x1f, 0x74, 0xda, 0x67, 0xf5, 0x71, 0xce, 0xd4, 0x63,
+ 0x8f, 0x04, 0x2e, 0xd9, 0xc3, 0xd0, 0xff, 0xfe, 0x60, 0xcf, 0xed, 0x70,
+ 0x73, 0x88, 0x8d, 0xcc, 0x67, 0x4c, 0x3e, 0x74, 0xc1, 0x38, 0xa0, 0x06,
+ 0x2b, 0xbb, 0x87, 0xff, 0xff, 0x05, 0xa2, 0x3b, 0xab, 0xdb, 0xff, 0xff,
+ 0xef, 0x03, 0x58, 0xbe, 0xb3, 0xc6, 0xeb, 0x63, 0xf5, 0x00, 0x16, 0x13,
+ 0x7e, 0x95, 0x58, 0xce, 0xf5, 0x57, 0x81, 0x8e, 0x9a, 0xd7, 0xa7, 0xdf,
+ 0xf7, 0xfc, 0x77, 0x90, 0xdf, 0xff, 0xbb, 0xc2, 0xaf, 0x80, 0x13, 0x68,
+ 0xb1, 0xab, 0x23, 0xae, 0xd6, 0x07, 0x5f, 0x93, 0x4d, 0x96, 0x9f, 0xff,
+ 0x01, 0x84, 0xa9, 0xcd, 0x5e, 0x7f, 0xd3, 0x7f, 0xdd, 0xee, 0xfc, 0x67,
+ 0x80, 0x06, 0x53, 0x92, 0x72, 0x30, 0xc4, 0xa4, 0x80, 0x09, 0xb4, 0x58,
+ 0xd5, 0x91, 0xd7, 0x68, 0x0e, 0xbf, 0x26, 0x9b, 0x2d, 0x3f, 0xfe, 0x07,
+ 0xe0, 0xc2, 0x54, 0xe6, 0xaf, 0x3f, 0xe0, 0xff, 0x36, 0xee, 0x88, 0x21,
+ 0xfc, 0x22, 0xbc, 0xbe, 0x9b, 0x65, 0xb1, 0xf1, 0xe8, 0x0c, 0xd5, 0xa5,
+ 0x44, 0xbb, 0x40, 0x35, 0x39, 0x27, 0x4c, 0x31, 0x29, 0x2c, 0x33, 0x14,
+ 0xb1, 0xa4, 0x11, 0xd7, 0xef, 0x6f, 0x81, 0xc2, 0x57, 0x25, 0xcd, 0xa7,
+ 0xcb, 0xd0, 0x66, 0xdf, 0xab, 0x6b, 0xfc, 0xf8, 0xef, 0x66, 0xff, 0xff,
+ 0x87, 0xcb, 0x00, 0x56, 0x8c, 0x80, 0x61, 0x09, 0x02, 0x8d, 0xcf, 0xfc,
+ 0x22, 0xe1, 0xe8, 0xd0, 0xe5, 0x21, 0x98, 0xda, 0x98, 0x3f, 0x93, 0xc5,
+ 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x84, 0x24, 0x09, 0x0b, 0xff,
+ 0xdf, 0xbf, 0x1f, 0xff, 0x2f, 0x8c, 0xf2, 0x7b, 0xf0, 0xa7, 0xff, 0xff,
+ 0xff, 0xc2, 0x1f, 0xf1, 0x9c, 0xc2, 0x38, 0x22, 0xd0, 0x1f, 0xc9, 0x78,
+ 0xb1, 0x5e, 0x10, 0x3c, 0xed, 0x98, 0x3c, 0xfa, 0x87, 0xf1, 0xdf, 0xff,
+ 0x9b, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81, 0x60, 0xdf,
+ 0xe5, 0xe1, 0xb4, 0x1e, 0x81, 0xfe, 0x6e, 0x1d, 0x9f, 0xed, 0xa0, 0xff,
+ 0xef, 0xfe, 0x14, 0x59, 0x84, 0xe0, 0x03, 0x5e, 0x16, 0xe1, 0x7d, 0xce,
+ 0x79, 0xf3, 0x80, 0xf8, 0x6f, 0x9b, 0x94, 0xd0, 0x82, 0xae, 0xa1, 0x98,
+ 0x98, 0x9f, 0xff, 0xfd, 0xfb, 0xfe, 0xfc, 0x30, 0x68, 0x16, 0xb0, 0x35,
+ 0xc4, 0x46, 0x36, 0x12, 0x00, 0x13, 0xf3, 0xf4, 0x68, 0xc6, 0x57, 0xfd,
+ 0x8c, 0xfb, 0xb6, 0x83, 0x99, 0xe9, 0x8d, 0x17, 0x63, 0xb9, 0x78, 0xff,
+ 0x53, 0x71, 0x70, 0x24, 0x23, 0x0e, 0x82, 0xec, 0x11, 0x24, 0x66, 0xdc,
+ 0x22, 0xc6, 0xef, 0x4d, 0x2c, 0x45, 0x62, 0xe9, 0x77, 0x80, 0x2d, 0x89,
+ 0x38, 0x68, 0x06, 0x6f, 0x0e, 0x4c, 0x34, 0xc2, 0xa6, 0x3c, 0x34, 0xa4,
+ 0x52, 0x7e, 0x06, 0x60, 0x11, 0x8a, 0x6c, 0xb0, 0x94, 0x0b, 0x0c, 0xde,
+ 0x17, 0x2c, 0x1c, 0x08, 0xc5, 0x32, 0x5a, 0x18, 0x0f, 0xfb, 0xfe, 0x13,
+ 0x17, 0xf0, 0x53, 0x21, 0xb8, 0x96, 0xf6, 0x12, 0xc6, 0x1b, 0xb5, 0xea,
+ 0x02, 0x04, 0xe1, 0x4c, 0xb6, 0x2e, 0x58, 0x37, 0xd2, 0x2c, 0x4c, 0x46,
+ 0x63, 0x76, 0xbc, 0x57, 0xfd, 0xfa, 0xf8, 0xb3, 0x00, 0x85, 0xeb, 0x5e,
+ 0xff, 0xa1, 0x6b, 0x1f, 0x55, 0x0e, 0x2c, 0x88, 0x6a, 0x8b, 0xce, 0xfb,
+ 0x34, 0xb0, 0x03, 0x25, 0x21, 0x03, 0xc4, 0x6f, 0xd2, 0x7c, 0xa6, 0xd2,
+ 0x0a, 0xdc, 0x99, 0x9f, 0x2f, 0x00, 0x4c, 0xe4, 0x0f, 0x31, 0xfe, 0x3d,
+ 0xa4, 0x15, 0x4c, 0x83, 0xa8, 0x47, 0xef, 0xe6, 0x2f, 0x02, 0x3f, 0x60,
+ 0x7b, 0xff, 0x25, 0xef, 0xdf, 0xaf, 0x42, 0x22, 0x23, 0xac, 0x1e, 0xa0,
+ 0x02, 0x01, 0x20, 0x45, 0x39, 0xff, 0x88, 0x1e, 0x77, 0xe9, 0x07, 0x0b,
+ 0x97, 0x01, 0x31, 0xdb, 0x09, 0xda, 0x5c, 0xbe, 0x7f, 0xf5, 0x1f, 0x01,
+ 0xaf, 0x2a, 0x07, 0x0f, 0xd5, 0xd1, 0xa3, 0x14, 0x41, 0x99, 0x75, 0x58,
+ 0x75, 0x5f, 0xf7, 0x3d, 0x4f, 0x8a, 0x42, 0x89, 0xa6, 0xd3, 0x6e, 0x0b,
+ 0x11, 0xaa, 0x41, 0x65, 0xb7, 0xfe, 0x0c, 0xfb, 0x7e, 0x80, 0xb2, 0x11,
+ 0x31, 0x70, 0x00, 0x88, 0xbe, 0x22, 0x99, 0xb2, 0x27, 0xef, 0xa4, 0x3f,
+ 0xa5, 0xfb, 0x45, 0xf0, 0xc1, 0x9d, 0x30, 0x93, 0x88, 0xa5, 0x31, 0x64,
+ 0x00, 0x28, 0xa9, 0xdd, 0xc3, 0xff, 0xff, 0x81, 0x24, 0x8b, 0x2c, 0x92,
+ 0xd9, 0xe5, 0xff, 0xf9, 0xe0, 0x81, 0x93, 0xf8, 0xb1, 0xa6, 0x7e, 0x7f,
+ 0xff, 0xdc, 0x00, 0x3f, 0xd2, 0x2d, 0x99, 0x30, 0x24, 0x15, 0xfb, 0xda,
+ 0x6d, 0x51, 0x73, 0x62, 0x3b, 0xe9, 0x0d, 0x11, 0xf0, 0xe1, 0xf4, 0xd4,
+ 0x4e, 0xfe, 0x9f, 0x19, 0xac, 0xdf, 0xdf, 0xe3, 0xb2, 0x06, 0x3f, 0xfb,
+ 0x91, 0x16, 0x31, 0xf0, 0x02, 0x6d, 0x0a, 0x95, 0xc8, 0xce, 0xbb, 0x58,
+ 0x01, 0x36, 0x85, 0x4a, 0xe4, 0x67, 0x5d, 0xa0, 0x59, 0xe5, 0xb1, 0x32,
+ 0x22, 0x9f, 0x7f, 0xce, 0x00, 0x2c, 0x4a, 0x90, 0x1d, 0x62, 0x05, 0x1c,
+ 0x5f, 0xaa, 0x31, 0xaa, 0xc3, 0xff, 0xff, 0x70, 0x1f, 0xe4, 0x07, 0x01,
+ 0x98, 0x10, 0x04, 0x40, 0x46, 0x67, 0xa7, 0xe0, 0x20, 0xd7, 0x13, 0x5d,
+ 0x05, 0x99, 0x61, 0xfb, 0xf7, 0xa5, 0xcd, 0xb2, 0x40, 0xb3, 0x3b, 0xc0,
+ 0xe6, 0x31, 0x15, 0xdb, 0x6d, 0x83, 0xfd, 0x02, 0x00, 0x51, 0x58, 0xcd,
+ 0xa8, 0x9d, 0x09, 0xc9, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xa2, 0x05, 0x81, 0x61, 0x7f, 0xbd, 0xe3, 0xfe, 0x5c, 0x27, 0x85, 0x3f,
+ 0xff, 0xe1, 0x1d, 0x62, 0x9f, 0xbf, 0xc7, 0x7f, 0x9b, 0xea, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xe2, 0x11, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf1, 0x5e, 0x7f, 0x7f, 0x58, 0x99, 0x45, 0xe1, 0x13, 0x02, 0xa2, 0xc4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x80, 0x98, 0x14, 0x28, 0x01,
+ 0x09, 0xa1, 0xaa, 0x32, 0x1b, 0x53, 0x56, 0x7d, 0xaf, 0xc0, 0x7a, 0x89,
+ 0x18, 0x06, 0x11, 0x26, 0x8f, 0x80, 0xce, 0x02, 0x35, 0x90, 0x1c, 0x91,
+ 0x10, 0x91, 0x1f, 0x98, 0x40, 0x16, 0x31, 0x22, 0x94, 0x0f, 0x14, 0xa7,
+ 0xa6, 0x7c, 0xf7, 0x14, 0x9b, 0x6a, 0x17, 0x89, 0xff, 0xff, 0xff, 0xfc,
+ 0xdf, 0xad, 0x9e, 0x68, 0x0d, 0xb2, 0x70, 0x03, 0x80, 0xf9, 0x8c, 0x3d,
+ 0xa8, 0x79, 0xb7, 0x0a, 0x74, 0xfc, 0xf0, 0x01, 0xf3, 0xe2, 0x99, 0x0d,
+ 0x59, 0x5f, 0xfa, 0xcb, 0xae, 0x4a, 0x7f, 0xde, 0xbf, 0x81, 0x5b, 0x6f,
+ 0xe5, 0x3d, 0xff, 0xfd, 0x6c, 0x2d, 0x72, 0x43, 0x5e, 0xff, 0xf7, 0xc9,
+ 0xcf, 0x40, 0x7f, 0xa3, 0x3c, 0x47, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0x98, 0xa0, 0x1e, 0x1f, 0xe1, 0x28, 0x04, 0x75, 0x7d, 0xb5, 0x2a, 0x6e,
+ 0x36, 0xa4, 0xd5, 0xc1, 0xf4, 0xd0, 0x62, 0xb2, 0xab, 0x76, 0x29, 0xca,
+ 0x85, 0xb8, 0x48, 0xeb, 0x95, 0xcf, 0xf9, 0xfc, 0xbe, 0xbc, 0x67, 0x90,
+ 0xf1, 0xb9, 0xfc, 0xdf, 0x4a, 0x7c, 0x21, 0x0a, 0x08, 0x80, 0x0b, 0xd8,
+ 0x52, 0x68, 0x96, 0x26, 0x3d, 0xff, 0xf9, 0x0d, 0x40, 0x6e, 0x25, 0xe2,
+ 0x3c, 0x71, 0x77, 0x10, 0x19, 0x94, 0xb3, 0x3c, 0x59, 0x55, 0x3f, 0xf4,
+ 0x31, 0xde, 0xf1, 0x39, 0x84, 0x21, 0xa8, 0x7f, 0xc3, 0xfc, 0x01, 0x46,
+ 0x3b, 0x31, 0xd7, 0xd2, 0x2f, 0xd2, 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8,
+ 0x1c, 0x40, 0x09, 0x59, 0x00, 0x06, 0x2e, 0xbe, 0xbf, 0xbb, 0x24, 0xcd,
+ 0x04, 0x5f, 0x8f, 0xf3, 0xe6, 0xff, 0x00, 0xd5, 0xed, 0x0a, 0xc0, 0x03,
+ 0x1f, 0xbb, 0x9d, 0x70, 0x8a, 0x5e, 0x0f, 0x02, 0xe1, 0x9d, 0x1c, 0x0d,
+ 0x5d, 0x01, 0x55, 0x91, 0xb3, 0x41, 0xa8, 0x9c, 0x7e, 0xfe, 0xdf, 0x8b,
+ 0x39, 0xb4, 0x55, 0xe0, 0xd8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x88,
+ 0x44, 0x14, 0x57, 0x8d, 0xff, 0xbf, 0x7e, 0x3f, 0xfe, 0x4f, 0xf8, 0xcf,
+ 0x27, 0xbf, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff,
+ 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8,
+ 0xc3, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xec, 0x31, 0xff, 0xa8,
+ 0x7c, 0x2a, 0x27, 0x00, 0x2b, 0x4d, 0x3c, 0x71, 0x8f, 0xaf, 0xe0, 0x07,
+ 0x82, 0x92, 0xe6, 0x03, 0xf8, 0xa1, 0x6a, 0x13, 0x89, 0xff, 0xff, 0xff,
+ 0xfe, 0x28, 0x50, 0x00, 0xc6, 0xa0, 0x51, 0xbf, 0xe5, 0x9c, 0x71, 0x38,
+ 0x80, 0x91, 0x13, 0xa0, 0x62, 0x0e, 0x0f, 0xf5, 0x04, 0x8f, 0xe7, 0xec,
+ 0x80, 0x9b, 0x1d, 0x80, 0x15, 0x8e, 0x74, 0xec, 0x73, 0x01, 0x3a, 0x45,
+ 0x32, 0xc5, 0x5f, 0x16, 0xdf, 0x89, 0xda, 0x73, 0x8a, 0x95, 0x8b, 0x0c,
+ 0x63, 0x79, 0xec, 0xd3, 0xbc, 0xfc, 0xba, 0x46, 0x27, 0xff, 0xff, 0x0c,
+ 0x7e, 0xb6, 0x18, 0x07, 0xb2, 0x70, 0x05, 0x16, 0x44, 0x3e, 0x8f, 0xcc,
+ 0x22, 0xee, 0xbe, 0xbf, 0xbe, 0xf0, 0x03, 0x32, 0x5a, 0x1a, 0x79, 0xab,
+ 0xd3, 0xb2, 0xcc, 0x26, 0x71, 0x3f, 0xee, 0x7f, 0x92, 0xc9, 0x9f, 0x88,
+ 0xff, 0xef, 0xff, 0xff, 0x0c, 0x70, 0xc1, 0xff, 0xe1, 0x2e, 0x00, 0x3b,
+ 0xd9, 0x32, 0x1a, 0x3a, 0x6a, 0xf3, 0xab, 0x2f, 0x00, 0x51, 0x51, 0x19,
+ 0xb9, 0xdb, 0x1f, 0x2e, 0xb1, 0x99, 0x03, 0x31, 0xbb, 0xf0, 0xc7, 0xd2,
+ 0x9c, 0x61, 0x08, 0xc1, 0x90, 0x02, 0x75, 0x52, 0xe5, 0x3e, 0xef, 0xf2,
+ 0x1c, 0x1e, 0x15, 0xa4, 0x28, 0x6d, 0xdc, 0x60, 0x3c, 0x64, 0x79, 0x6e,
+ 0x05, 0x63, 0x6d, 0xc4, 0x9b, 0x9f, 0xe0, 0x09, 0x1e, 0xad, 0x3c, 0x88,
+ 0x56, 0xc8, 0x76, 0xd7, 0x86, 0x07, 0xb8, 0xff, 0xf0, 0xf9, 0x40, 0x08,
+ 0xef, 0x3b, 0x92, 0x3f, 0x7e, 0xf6, 0x0f, 0x7f, 0x5b, 0x28, 0x38, 0x4c,
+ 0x32, 0xa5, 0xbf, 0x5d, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xa3, 0x0d, 0x86, 0x2b, 0x1b, 0xf7, 0xbc, 0x7f, 0xc9, 0xf1, 0x99, 0x37,
+ 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xf8, 0xbf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xe3, 0x19, 0x02, 0x3f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf0, 0xa3, 0xc2, 0x33, 0x09, 0xc0, 0x03, 0xa8, 0x3e, 0x8a,
+ 0xac, 0x8b, 0x11, 0x65, 0xff, 0xe6, 0xc7, 0xe8, 0xdf, 0xdc, 0xe3, 0x04,
+ 0x94, 0xb9, 0x8f, 0x77, 0x23, 0xfe, 0x4f, 0x13, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x98, 0xd0, 0x2c, 0xe8, 0xac, 0xce, 0x44, 0xe6, 0xf6, 0x38,
+ 0x00, 0x67, 0xbf, 0x46, 0x8c, 0x65, 0x7f, 0xd9, 0xbb, 0xdb, 0x8e, 0xca,
+ 0x98, 0xe0, 0xde, 0x42, 0x3c, 0xa3, 0x13, 0xb6, 0x8c, 0xe6, 0xd8, 0xd2,
+ 0xd8, 0x57, 0xf6, 0xa4, 0x74, 0xd2, 0xd2, 0x2a, 0x79, 0xb5, 0xdb, 0xe0,
+ 0x2d, 0x89, 0x38, 0x68, 0x06, 0x6f, 0x58, 0xe0, 0xd0, 0x52, 0x93, 0xf3,
+ 0xc2, 0x10, 0x2e, 0xc8, 0x45, 0xe8, 0x3f, 0x45, 0x3a, 0x97, 0xb8, 0xe3,
+ 0x83, 0x39, 0x6d, 0x8b, 0x48, 0xbb, 0xa9, 0xe3, 0xc8, 0xa8, 0xba, 0x64,
+ 0x20, 0xfb, 0x4b, 0xf0, 0x98, 0xba, 0x4e, 0x16, 0xa2, 0xcc, 0x55, 0xed,
+ 0xfd, 0xf4, 0x69, 0x9e, 0x20, 0x9b, 0x02, 0x38, 0xbd, 0xef, 0xa1, 0x5b,
+ 0x3b, 0x0a, 0xb7, 0x7d, 0xbb, 0xbc, 0x1e, 0x2b, 0xff, 0xff, 0xfe, 0x6f,
+ 0xd7, 0x26, 0x60, 0xf6, 0x4e, 0x00, 0x19, 0x8d, 0xb7, 0xa2, 0x4d, 0xa7,
+ 0x55, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5f, 0xa0, 0x72, 0x09, 0x1b, 0x55,
+ 0x2b, 0xf5, 0x80, 0x23, 0x91, 0xb4, 0x82, 0x66, 0x16, 0x90, 0xb5, 0x1c,
+ 0xea, 0x30, 0x5c, 0x93, 0x3f, 0x88, 0xff, 0xff, 0xcc, 0xf8, 0x4c, 0xc3,
+ 0x7f, 0xef, 0xd7, 0xff, 0xff, 0x9a, 0x30, 0xc3, 0xff, 0x09, 0x20, 0xe9,
+ 0x23, 0x20, 0x0c, 0x21, 0x30, 0x1b, 0x6a, 0x05, 0xf0, 0x03, 0xa4, 0x8c,
+ 0x80, 0x30, 0x84, 0x90, 0x1b, 0x6a, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08,
+ 0x49, 0x81, 0xb6, 0xaf, 0x0e, 0x7f, 0x2f, 0x8e, 0xf3, 0x72, 0x16, 0x04,
+ 0xfa, 0x80, 0xfe, 0x63, 0xd8, 0x83, 0x26, 0xbc, 0x67, 0xbe, 0x47, 0x00,
+ 0x08, 0x65, 0x5b, 0x7a, 0x24, 0xda, 0x87, 0x36, 0x61, 0xf5, 0xce, 0xa7,
+ 0x16, 0x83, 0x80, 0x16, 0x1d, 0x6e, 0xbd, 0xb7, 0x7a, 0xe5, 0xfe, 0x00,
+ 0x58, 0xb3, 0x4b, 0x65, 0xa6, 0xfb, 0xcf, 0xb4, 0xfb, 0x80, 0xff, 0xff,
+ 0xbf, 0xce, 0xf0, 0xff, 0x3c, 0x02, 0x1a, 0x5f, 0xcd, 0x5e, 0xf7, 0x4f,
+ 0x13, 0x9b, 0xff, 0xfb, 0x41, 0x08, 0x88, 0x00, 0x36, 0x6c, 0x9a, 0x1b,
+ 0x18, 0x2a, 0x73, 0x8e, 0x2f, 0x46, 0x80, 0x51, 0x65, 0x1d, 0x78, 0xe7,
+ 0xdd, 0xf4, 0x5e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64,
+ 0x09, 0x39, 0xba, 0xe7, 0xf5, 0x38, 0xc5, 0x08, 0x00, 0x40, 0x73, 0x7e,
+ 0x09, 0xe2, 0x8f, 0x7e, 0x00, 0x00, 0x04, 0x3e, 0x00, 0x58, 0xb3, 0x4b,
+ 0x65, 0x93, 0x7d, 0xe6, 0xd3, 0xee, 0x03, 0xff, 0xfe, 0xff, 0x3b, 0xc3,
+ 0xfc, 0xf0, 0x08, 0x69, 0x7f, 0x35, 0x7b, 0xdd, 0xfc, 0xdf, 0xb1, 0x66,
+ 0xec, 0x47, 0x8c, 0x50, 0x01, 0xf4, 0x07, 0x69, 0x48, 0x84, 0x00, 0xc0,
+ 0x7b, 0xeb, 0x98, 0x00, 0x6d, 0x67, 0xc5, 0x36, 0x8f, 0xff, 0xf9, 0x27,
+ 0xdf, 0x6b, 0xf8, 0x01, 0xe1, 0xd7, 0x5e, 0x99, 0x5c, 0x39, 0x02, 0x10,
+ 0xd5, 0x23, 0x65, 0x0b, 0xa8, 0x51, 0xfb, 0xae, 0x05, 0xb0, 0x29, 0xba,
+ 0xdb, 0x22, 0x7a, 0xd8, 0x33, 0xfb, 0xd8, 0xff, 0xf9, 0x3b, 0x2f, 0x80,
+ 0xfe, 0x6e, 0x99, 0xb4, 0x94, 0xbe, 0x86, 0xbc, 0x7f, 0xfc, 0xbe, 0x33,
+ 0xc9, 0xef, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xc6, 0x7f, 0xfe,
+ 0x3b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05,
+ 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xed, 0xe6, 0x13, 0x84, 0x4d,
+ 0xe6, 0xec, 0xb2, 0xbc, 0x11, 0x3c, 0xbc, 0x96, 0x27, 0xff, 0xff, 0xff,
+ 0xaf, 0x8a, 0x18, 0x03, 0xcb, 0x76, 0xc2, 0xdb, 0x58, 0xb5, 0x05, 0x40,
+ 0xde, 0xaa, 0x4d, 0x31, 0x20, 0xb0, 0x00, 0x49, 0x8e, 0xb0, 0x0c, 0x51,
+ 0x97, 0x78, 0xe1, 0x96, 0xea, 0xdb, 0x8b, 0x22, 0xc7, 0xae, 0xa0, 0xee,
+ 0x55, 0xe9, 0x68, 0x9a, 0x7e, 0x43, 0x00, 0x5f, 0xef, 0xf8, 0x4c, 0x48,
+ 0x80, 0xb2, 0x05, 0x87, 0xc6, 0xea, 0xf0, 0x77, 0xa6, 0x0a, 0xa2, 0x2a,
+ 0x9f, 0xf5, 0xf5, 0xc8, 0x3a, 0x87, 0xfa, 0xaf, 0x9f, 0x78, 0x71, 0x3f,
+ 0xff, 0xfa, 0xc6, 0x78, 0x08, 0x4f, 0x7b, 0xf3, 0xb3, 0xc6, 0xc0, 0x07,
+ 0xe8, 0xf2, 0x0e, 0x6a, 0x42, 0xa8, 0x9b, 0x5f, 0x56, 0xc7, 0x79, 0xe0,
+ 0x41, 0x63, 0xb0, 0xd2, 0xee, 0xf1, 0x72, 0x43, 0x30, 0x3c, 0x57, 0xd7,
+ 0x8e, 0xe1, 0xe2, 0x20, 0x44, 0x67, 0x5b, 0x21, 0x97, 0xdd, 0xdf, 0xd7,
+ 0xc4, 0x7f, 0xdf, 0x7f, 0xff, 0xf9, 0x38, 0x38, 0x10, 0x80, 0x4d, 0xbf,
+ 0x3f, 0xff, 0xff, 0x91, 0x79, 0x48, 0x27, 0xc5, 0x3c, 0x03, 0x3c, 0xee,
+ 0xea, 0xd3, 0x1c, 0xf7, 0x02, 0xa6, 0x7e, 0x5c, 0xb6, 0x9a, 0x73, 0x00,
+ 0x61, 0x1e, 0x3d, 0x04, 0xd2, 0x0c, 0xa1, 0xf4, 0x83, 0x3f, 0x48, 0x48,
+ 0x80, 0xe0, 0xcf, 0x97, 0x58, 0xcc, 0xcf, 0xac, 0x66, 0xd7, 0x86, 0x02,
+ 0xab, 0xaf, 0xc5, 0x78, 0xa2, 0xe1, 0xb9, 0x6d, 0x80, 0x3c, 0xd7, 0xf4,
+ 0xdd, 0x6e, 0xe9, 0xf2, 0xf7, 0x1e, 0x01, 0x7a, 0x94, 0x06, 0xa2, 0x2f,
+ 0xc3, 0x1f, 0xeb, 0xae, 0xb8, 0x57, 0x01, 0x77, 0xff, 0xd7, 0xf8, 0x02,
+ 0xdd, 0xff, 0x9d, 0xed, 0x18, 0xe0, 0xe5, 0x64, 0x60, 0x3f, 0xa5, 0xf0,
+ 0xc7, 0xff, 0xf6, 0x82, 0x1c, 0x00, 0x22, 0x8a, 0x71, 0x90, 0x85, 0xda,
+ 0xc2, 0x1b, 0x9a, 0x00, 0xcf, 0x0a, 0xf0, 0xc3, 0x8e, 0xd8, 0x36, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x86, 0x76, 0x0a, 0x41, 0xc6,
+ 0xb1, 0x02, 0x80, 0x10, 0x62, 0xf0, 0x25, 0x08, 0x7b, 0xf2, 0x38, 0x29,
+ 0x93, 0x00, 0x01, 0x00, 0x0a, 0xf3, 0xfc, 0x00, 0x00, 0x10, 0x02, 0x80,
+ 0x24, 0x5a, 0x90, 0x11, 0x83, 0xf2, 0x60, 0x05, 0x4a, 0xd0, 0x17, 0x10,
+ 0x07, 0x01, 0x8f, 0xf9, 0x17, 0x58, 0xff, 0x93, 0xe3, 0x32, 0x6f, 0x0a,
+ 0x7f, 0xff, 0xc7, 0xff, 0xf1, 0x7f, 0xe4, 0xc5, 0x7f, 0x9b, 0xea, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf1, 0x5e, 0x7f, 0x5c, 0xc2, 0x70, 0x00, 0xcd, 0xb6, 0xf9, 0x4d,
+ 0xcd, 0xf3, 0x77, 0x1d, 0xab, 0xee, 0xb0, 0x84, 0x44, 0x5f, 0x07, 0x3c,
+ 0x93, 0x69, 0x3b, 0x7f, 0xff, 0x3f, 0x80, 0x1b, 0x13, 0x7a, 0x49, 0x88,
+ 0x7e, 0x03, 0x18, 0x22, 0x6c, 0xab, 0x53, 0x29, 0xe9, 0xe2, 0x62, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x63, 0x14, 0x3b, 0xb7, 0xe6, 0xb9,
+ 0xc9, 0xc9, 0x55, 0x68, 0x42, 0x4a, 0x81, 0xf0, 0x7e, 0x00, 0x19, 0xb6,
+ 0xdf, 0x2b, 0xe5, 0xc7, 0x9a, 0xd0, 0x87, 0xd2, 0x3d, 0xdb, 0xb7, 0xe6,
+ 0xb9, 0xc9, 0xc3, 0x02, 0x61, 0x95, 0x2d, 0x30, 0x73, 0xe8, 0xa2, 0xed,
+ 0x40, 0x8c, 0x21, 0x94, 0x5c, 0xa5, 0xdb, 0xeb, 0x00, 0x00, 0x46, 0x49,
+ 0xba, 0xfe, 0x41, 0xb6, 0xf4, 0x28, 0xdf, 0xf7, 0x6b, 0xc9, 0x3b, 0x0d,
+ 0x04, 0xbc, 0x00, 0x2a, 0xe9, 0x93, 0xa2, 0xb4, 0x3b, 0xcd, 0x23, 0x46,
+ 0xd4, 0xc2, 0xbf, 0xe5, 0x45, 0xff, 0x38, 0x3e, 0x08, 0x25, 0x16, 0x03,
+ 0x11, 0x63, 0x4d, 0x3b, 0x98, 0x7c, 0x50, 0x3e, 0xe0, 0xa1, 0x27, 0x9d,
+ 0x8c, 0x36, 0x28, 0x18, 0x9f, 0xff, 0xff, 0xff, 0xcd, 0xf8, 0xa9, 0x13,
+ 0x13, 0xba, 0xad, 0x9b, 0x84, 0xcf, 0xb5, 0xe0, 0xe2, 0x27, 0x69, 0x62,
+ 0x13, 0x43, 0xfc, 0xf8, 0x04, 0x52, 0xbd, 0x81, 0xf2, 0x11, 0xbf, 0xaf,
+ 0x80, 0x62, 0x61, 0x65, 0x4f, 0xd4, 0xb3, 0x74, 0x1a, 0x90, 0x8b, 0xf9,
+ 0xf7, 0x7d, 0x91, 0x73, 0xf3, 0x00, 0x9c, 0x76, 0x59, 0x41, 0x76, 0x0e,
+ 0x5a, 0xac, 0x11, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xe6, 0x0a, 0xae,
+ 0x05, 0xff, 0x09, 0x30, 0x1d, 0xdb, 0x53, 0x8f, 0x41, 0xf2, 0x48, 0x76,
+ 0x5d, 0x4f, 0x1b, 0x96, 0xb1, 0x32, 0xc7, 0xb5, 0x02, 0xc5, 0x64, 0xcf,
+ 0x2c, 0xfd, 0x2b, 0x4a, 0x7d, 0x52, 0x64, 0xfd, 0x26, 0x5c, 0xf0, 0x67,
+ 0xf2, 0xfa, 0xf1, 0x9e, 0x6f, 0x5e, 0x33, 0xde, 0x19, 0x21, 0x78, 0x00,
+ 0xbb, 0xbf, 0xba, 0xf3, 0xff, 0xed, 0xa6, 0xc3, 0xe9, 0x4f, 0xc1, 0x03,
+ 0x00, 0x59, 0x55, 0x50, 0xef, 0x0c, 0xf0, 0xfc, 0xfa, 0xb5, 0xff, 0xdf,
+ 0x93, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x90, 0x84, 0x33,
+ 0x3c, 0x14, 0x01, 0xc4, 0x26, 0x22, 0x00, 0x65, 0x56, 0xc9, 0x18, 0x00,
+ 0x08, 0x02, 0x6a, 0xf4, 0x36, 0x3b, 0x5a, 0x01, 0x8c, 0x38, 0x73, 0x00,
+ 0x25, 0xec, 0x91, 0xba, 0x7b, 0xc1, 0x2d, 0x31, 0xd9, 0x69, 0x5e, 0xbd,
+ 0x77, 0xc4, 0xc4, 0xe4, 0xff, 0x08, 0x06, 0x7a, 0xf1, 0xbf, 0xf4, 0x6f,
+ 0x44, 0xa7, 0xd3, 0x85, 0x0d, 0x07, 0xd1, 0xbf, 0xee, 0xab, 0x3f, 0x91,
+ 0xe0, 0xd1, 0xaf, 0x3e, 0x7d, 0x84, 0x3e, 0xe3, 0x7f, 0xdf, 0xf9, 0xbf,
+ 0xd2, 0x8e, 0x44, 0x58, 0xc2, 0x70, 0x00, 0xc2, 0x3c, 0x94, 0xcd, 0xa4,
+ 0xdd, 0x0a, 0x00, 0x2f, 0x37, 0xc4, 0x88, 0xfe, 0x2f, 0xfe, 0x0f, 0x03,
+ 0xe7, 0xba, 0xe9, 0x5e, 0x74, 0x00, 0x5d, 0xb9, 0x43, 0x66, 0x51, 0xff,
+ 0xea, 0x05, 0xba, 0x54, 0x30, 0xfe, 0xf4, 0x00, 0x00, 0x19, 0xfe, 0x20,
+ 0x4b, 0x60, 0x0a, 0x25, 0x36, 0x40, 0x00, 0x20, 0x08, 0x83, 0xa8, 0x05,
+ 0xf6, 0x6e, 0x9b, 0x69, 0x12, 0x5f, 0x57, 0xda, 0x14, 0x66, 0x67, 0xf1,
+ 0x06, 0xbc, 0x29, 0xff, 0x19, 0xe4, 0xf7, 0xe1, 0x4f, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xff, 0xe2, 0xff, 0xff, 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x47, 0x60, 0x77, 0xff, 0xff, 0xff,
+ 0xe2, 0xb3, 0xe9, 0xf9, 0x32, 0xc5, 0x9f, 0x00, 0x51, 0x34, 0x58, 0x9c,
+ 0x0a, 0xb6, 0xfc, 0x01, 0x98, 0xf7, 0x5b, 0xfa, 0x6f, 0xae, 0x27, 0xff,
+ 0xff, 0xff, 0x86, 0x3d, 0x16, 0x0b, 0x29, 0x3a, 0x0c, 0x61, 0x80, 0x8f,
+ 0xd7, 0xdb, 0x85, 0x74, 0xc2, 0xc9, 0xf9, 0xef, 0xff, 0x65, 0xc0, 0x09,
+ 0xbf, 0x51, 0x86, 0x84, 0x3f, 0xd7, 0x8d, 0x3e, 0x9b, 0x7f, 0xcb, 0xd0,
+ 0x18, 0x06, 0x11, 0xdc, 0xc5, 0x48, 0xbf, 0xfe, 0xf4, 0x37, 0x7f, 0x33,
+ 0x31, 0x52, 0xd0, 0xc0, 0x76, 0x7d, 0x16, 0xe8, 0x28, 0x36, 0x81, 0xfc,
+ 0x4e, 0x3d, 0x1f, 0xe8, 0x08, 0x0d, 0xd8, 0x0d, 0x34, 0xe0, 0xea, 0xe9,
+ 0xc1, 0x83, 0x6d, 0xe8, 0x51, 0xbf, 0xee, 0xd9, 0x84, 0xc0, 0x68, 0x25,
+ 0xe0, 0x35, 0xc1, 0xcb, 0x00, 0x7f, 0xe2, 0x03, 0xa6, 0xb9, 0xbb, 0x1f,
+ 0x22, 0x52, 0xd5, 0x12, 0x24, 0x48, 0x75, 0x72, 0xce, 0x83, 0xb1, 0x72,
+ 0xf0, 0x80, 0x53, 0x1a, 0x4c, 0x55, 0x73, 0xc6, 0xb3, 0xc4, 0xff, 0xff,
+ 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48, 0xb3, 0x60, 0x01, 0x9b, 0x7f,
+ 0xca, 0xf8, 0x49, 0xbc, 0x49, 0xa8, 0x01, 0x39, 0xdc, 0x90, 0x48, 0xc5,
+ 0xa8, 0x01, 0x19, 0xb9, 0xcd, 0x6a, 0xf2, 0x8b, 0xe1, 0x24, 0x8e, 0x1b,
+ 0x5b, 0x24, 0x6f, 0xcf, 0x38, 0x93, 0x70, 0x02, 0x93, 0x49, 0xf8, 0x8f,
+ 0xfe, 0xff, 0xff, 0xf0, 0xc5, 0x50, 0x58, 0x1c, 0x5f, 0xfc, 0x24, 0xc2,
+ 0x59, 0x9c, 0x44, 0x66, 0x97, 0x68, 0x1a, 0x18, 0x9b, 0xd5, 0x0f, 0xa7,
+ 0xe3, 0xc5, 0x95, 0x2c, 0x67, 0x10, 0x93, 0x2a, 0xdc, 0xfc, 0x31, 0x9f,
+ 0x5a, 0x66, 0x61, 0x9d, 0xf2, 0x8b, 0xff, 0x80, 0x73, 0xe5, 0xd6, 0x33,
+ 0x36, 0xb1, 0x9b, 0x51, 0x38, 0x63, 0x3f, 0xa1, 0xcf, 0x0c, 0x26, 0x5c,
+ 0x3d, 0x07, 0xe1, 0xc4, 0x4f, 0x40, 0x7f, 0x8f, 0x98, 0x77, 0xf8, 0x09,
+ 0xb5, 0xb7, 0x07, 0xe7, 0x31, 0x31, 0x70, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xa5, 0x1d, 0x89, 0x83, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02,
+ 0xa3, 0x46, 0x40, 0x61, 0x0f, 0x9e, 0x03, 0xf0, 0x7c, 0x04, 0x84, 0x6c,
+ 0xfe, 0x7f, 0x86, 0x3f, 0xce, 0x87, 0xf0, 0x9b, 0xd6, 0x26, 0x6a, 0x03,
+ 0xf7, 0xb3, 0xc3, 0xad, 0xaf, 0x9a, 0x2e, 0xe3, 0x18, 0x7e, 0xbe, 0x3f,
+ 0xe9, 0x78, 0x62, 0x78, 0x4c, 0x3b, 0x89, 0x08, 0xda, 0xf0, 0x1f, 0xbe,
+ 0xb1, 0xff, 0xf8, 0x7f, 0xf0, 0x03, 0x77, 0xab, 0x70, 0x80, 0x05, 0x11,
+ 0xd2, 0x99, 0xf2, 0x6f, 0xb0, 0x09, 0x1f, 0xaf, 0x61, 0x3f, 0xac, 0xf7,
+ 0x10, 0xc7, 0xcf, 0x49, 0x8f, 0x81, 0x3f, 0xcb, 0x90, 0x31, 0x1d, 0xf5,
+ 0x00, 0x00, 0x7f, 0xc2, 0x39, 0x7e, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xfe,
+ 0x14, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x57, 0xf9, 0x31, 0x5f, 0xe6, 0xfa,
+ 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x03, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0x5f, 0x78, 0x99, 0x8f, 0x82, 0x2f,
+ 0x99, 0xf6, 0x03, 0xca, 0x7e, 0xa7, 0xe6, 0xc2, 0x25, 0x29, 0x76, 0xd7,
+ 0xbd, 0x7f, 0x8f, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xca,
+ 0x40, 0x88, 0xc0, 0x05, 0x2e, 0x7d, 0xb4, 0xb4, 0x68, 0x39, 0xd6, 0x3b,
+ 0xfb, 0xaf, 0x18, 0xc6, 0x0d, 0x44, 0x95, 0x32, 0xf2, 0x01, 0x20, 0x30,
+ 0x3e, 0xda, 0x30, 0x05, 0x64, 0x68, 0x1f, 0x31, 0x73, 0x2b, 0xf3, 0x5f,
+ 0xbb, 0x9f, 0xbe, 0x6d, 0x3e, 0x17, 0xfc, 0x26, 0x26, 0x74, 0x8e, 0x58,
+ 0x01, 0x2a, 0xf3, 0xbe, 0x8a, 0x63, 0x12, 0x36, 0xee, 0x09, 0x5e, 0xdf,
+ 0x3c, 0x80, 0xe9, 0x0f, 0xc9, 0x7d, 0x7b, 0xef, 0x21, 0x80, 0xc4, 0xff,
+ 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x19, 0x50, 0x95, 0x25, 0x66, 0xe0, 0x07,
+ 0x17, 0x21, 0x17, 0xb0, 0xf3, 0x2b, 0x6e, 0x4d, 0xc7, 0x80, 0x84, 0x4b,
+ 0x35, 0x2e, 0xa6, 0x46, 0xb8, 0x00, 0x44, 0xca, 0x05, 0x4f, 0x57, 0x99,
+ 0xbe, 0xa0, 0x01, 0xbd, 0xd0, 0x1b, 0x55, 0x0a, 0xf5, 0x0a, 0xba, 0xdf,
+ 0xce, 0xd5, 0xda, 0xf5, 0x00, 0x06, 0x77, 0x51, 0xb5, 0x44, 0x9a, 0xa1,
+ 0xc6, 0xe4, 0x98, 0x62, 0x4f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xe2,
+ 0x1b, 0x5e, 0xdc, 0x3e, 0xcc, 0x0e, 0x0f, 0x98, 0x50, 0xd2, 0xac, 0xc5,
+ 0xda, 0xdc, 0x37, 0xf3, 0xf9, 0x7d, 0x78, 0xcf, 0x37, 0xaf, 0x19, 0xee,
+ 0x20, 0x0d, 0x24, 0x2c, 0x00, 0x30, 0x9f, 0xa0, 0x9a, 0xcb, 0xdf, 0xe8,
+ 0x73, 0xc4, 0x86, 0xbd, 0x78, 0xb8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0x94, 0xa4, 0x32, 0x9b, 0xfb, 0x7c, 0x38, 0x7c, 0xd0, 0x1c, 0x41, 0x8a,
+ 0x10, 0x99, 0x01, 0x8b, 0xfb, 0xdb, 0x5d, 0xde, 0x07, 0xcd, 0x7a, 0xf1,
+ 0xbe, 0x8d, 0xff, 0xed, 0x00, 0x82, 0x18, 0x00, 0xda, 0xa6, 0xd7, 0x47,
+ 0xf9, 0xef, 0xfc, 0xf3, 0xec, 0x30, 0x11, 0xc5, 0x88, 0xc0, 0x02, 0x4d,
+ 0xf1, 0x12, 0x66, 0xc8, 0x98, 0x33, 0xb8, 0x27, 0xc5, 0xfb, 0xbf, 0xd7,
+ 0x8f, 0x32, 0x88, 0xf0, 0x0f, 0xf8, 0x7a, 0x03, 0xa9, 0x33, 0xd4, 0x23,
+ 0x6b, 0xef, 0xb7, 0xf9, 0x3f, 0xfc, 0x44, 0x50, 0x00, 0x10, 0x08, 0x80,
+ 0x0c, 0xa1, 0x4e, 0x98, 0xc9, 0x00, 0x30, 0xf8, 0x6c, 0x4f, 0x66, 0x02,
+ 0x40, 0x30, 0x87, 0x20, 0xd0, 0x5f, 0x10, 0x0b, 0x0c, 0x21, 0xcb, 0xfc,
+ 0x9f, 0xf1, 0x9e, 0x7f, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff,
+ 0x17, 0xff, 0xf9, 0x3c, 0x57, 0xff, 0xe6, 0xff, 0xa8, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xa9, 0x89, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa,
+ 0xef, 0x30, 0x9c, 0x02, 0x6f, 0x3c, 0xbe, 0xb7, 0x4a, 0xe5, 0x89, 0xff,
+ 0xff, 0xff, 0xfc, 0x30, 0x1c, 0xc6, 0x48, 0xa2, 0xe5, 0x1c, 0x60, 0xa2,
+ 0x82, 0x72, 0x91, 0x2d, 0x19, 0xdf, 0x36, 0xf2, 0xa4, 0x9b, 0x62, 0x00,
+ 0xe8, 0x00, 0xca, 0xa2, 0x89, 0xfa, 0xf8, 0xff, 0x41, 0x82, 0x17, 0x4f,
+ 0xfa, 0x16, 0xc2, 0x79, 0x4e, 0x1f, 0x21, 0x34, 0xb7, 0x0e, 0x18, 0x1b,
+ 0x7d, 0x65, 0xf8, 0x4c, 0x59, 0x20, 0xd8, 0x00, 0x44, 0x1c, 0xab, 0xdb,
+ 0xb5, 0xe0, 0x7c, 0xd7, 0x82, 0xb4, 0xb9, 0xe3, 0x2b, 0x10, 0xaf, 0xef,
+ 0x08, 0xd5, 0xfc, 0x94, 0xdf, 0xf7, 0x89, 0xff, 0xff, 0xc3, 0x1c, 0x7a,
+ 0x83, 0x8c, 0xc1, 0x8a, 0xcd, 0x80, 0x47, 0xaf, 0xb6, 0x1e, 0x28, 0xe9,
+ 0x6f, 0x0e, 0xcb, 0xc0, 0x4d, 0xcd, 0x68, 0x3e, 0x41, 0x1d, 0xee, 0xd2,
+ 0x8f, 0xdf, 0xbd, 0xfe, 0x0d, 0x79, 0x52, 0x0a, 0xf7, 0x7e, 0xc8, 0xba,
+ 0x44, 0xee, 0x61, 0xc6, 0x8f, 0x88, 0xff, 0xef, 0xff, 0xff, 0x0c, 0x5a,
+ 0x9b, 0x7f, 0xe1, 0x23, 0xc0, 0x28, 0xea, 0xc7, 0xbf, 0xc8, 0x4d, 0x35,
+ 0x8e, 0xb2, 0xb3, 0x74, 0x16, 0xb4, 0x13, 0x13, 0x8c, 0x39, 0xf2, 0xeb,
+ 0x19, 0x9b, 0x58, 0xcd, 0x86, 0x3e, 0x1f, 0xc6, 0x90, 0x43, 0x81, 0xd1,
+ 0x15, 0x33, 0xa1, 0x43, 0x31, 0x32, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xa6, 0x25, 0x84, 0x55, 0xe8, 0x14, 0x02, 0x11, 0x22, 0x00,
+ 0x14, 0xed, 0x26, 0xe3, 0xc1, 0x85, 0x1b, 0xcf, 0x83, 0x7b, 0xce, 0xf0,
+ 0xee, 0x2b, 0xf6, 0x1a, 0x7b, 0xda, 0xeb, 0x74, 0x7b, 0xd6, 0xb1, 0xbf,
+ 0xaf, 0x0c, 0x21, 0x43, 0xf8, 0xfc, 0x27, 0xc4, 0x3a, 0x3e, 0x01, 0x33,
+ 0x77, 0xed, 0x1e, 0xef, 0x4c, 0x87, 0x80, 0xf2, 0x0b, 0xfd, 0x63, 0xd7,
+ 0x86, 0x28, 0x37, 0x7f, 0xfe, 0x12, 0xc0, 0x22, 0xf5, 0x76, 0xcb, 0x57,
+ 0xbd, 0xf1, 0x50, 0x6d, 0x57, 0x44, 0x0e, 0x34, 0xe1, 0x84, 0x06, 0xad,
+ 0xac, 0x41, 0x1d, 0xf4, 0xbf, 0xc9, 0xf7, 0xff, 0xff, 0xff, 0xf2, 0xff,
+ 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0x15, 0xfe, 0x4c, 0x57, 0xf9, 0xbe,
+ 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31, 0x01, 0x4f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xf9, 0x8f, 0x80, 0x0e, 0xcc,
+ 0xa2, 0xcd, 0x8c, 0x9a, 0xfb, 0x74, 0xf1, 0x32, 0xbc, 0x04, 0xd5, 0xf0,
+ 0x1e, 0xf9, 0x5f, 0x13, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0xf8,
+ 0xcc, 0x44, 0x83, 0x09, 0x40, 0x65, 0xa2, 0x24, 0xcd, 0x3d, 0xab, 0xaa,
+ 0x8a, 0xa4, 0xba, 0x98, 0x60, 0x52, 0x84, 0x04, 0x04, 0x91, 0x8b, 0x8c,
+ 0x61, 0xb9, 0x4b, 0x7e, 0xaf, 0x3a, 0xd5, 0xb3, 0xdf, 0x89, 0xff, 0xff,
+ 0xff, 0x9b, 0xf8, 0x5a, 0xc1, 0xe3, 0x16, 0x00, 0x4d, 0xf6, 0x88, 0x75,
+ 0x07, 0xdf, 0x1d, 0x37, 0x40, 0x7d, 0x18, 0xe3, 0x55, 0xd8, 0x15, 0xde,
+ 0xd0, 0xa5, 0x91, 0x1c, 0xf2, 0x62, 0x74, 0xe6, 0xfd, 0x6c, 0x5a, 0xa7,
+ 0x64, 0xe0, 0x23, 0x29, 0xe9, 0xf9, 0xc5, 0xf5, 0x33, 0xc3, 0x8e, 0xb6,
+ 0x7e, 0x40, 0x1c, 0xe9, 0x69, 0x8c, 0x5a, 0x61, 0xa4, 0xdb, 0x80, 0x33,
+ 0xdf, 0xae, 0x45, 0xc4, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0xd1, 0xb7, 0xe2,
+ 0xff, 0xf0, 0x93, 0x90, 0x20, 0x13, 0x32, 0x01, 0x16, 0x6f, 0x9d, 0xb7,
+ 0x84, 0xe8, 0x99, 0x9a, 0xb5, 0x37, 0xa2, 0x66, 0x6a, 0xd4, 0x40, 0x80,
+ 0x44, 0x64, 0x4e, 0xf3, 0x48, 0x6e, 0xb6, 0x5c, 0x82, 0x32, 0x7d, 0xda,
+ 0xda, 0x20, 0xaf, 0xcd, 0x78, 0x4e, 0xea, 0x3a, 0x49, 0xd3, 0xfd, 0xf9,
+ 0xfc, 0xbe, 0xbc, 0x67, 0x9b, 0xd7, 0x8c, 0xf6, 0x6f, 0x81, 0x0f, 0xb7,
+ 0x8c, 0x2c, 0x24, 0x70, 0xf7, 0xa0, 0x48, 0xf8, 0x1f, 0xbe, 0x1e, 0x07,
+ 0xc0, 0x16, 0xd5, 0x86, 0x44, 0x98, 0xc5, 0xc3, 0xb0, 0xfc, 0xdf, 0xaf,
+ 0x17, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x18, 0x86, 0xff,
+ 0xfe, 0xd0, 0x42, 0x68, 0x03, 0x23, 0x14, 0x66, 0x87, 0xc0, 0xd1, 0x70,
+ 0xef, 0xc6, 0x80, 0xa1, 0x07, 0x80, 0xf5, 0xc0, 0x18, 0xee, 0xb2, 0x64,
+ 0x6f, 0xbf, 0xdb, 0xe1, 0x6a, 0xad, 0xfa, 0x0d, 0x9e, 0x83, 0x88, 0x9e,
+ 0xbd, 0x78, 0xe3, 0x7b, 0x11, 0x55, 0x84, 0xf5, 0xd8, 0xae, 0x13, 0x3e,
+ 0xd6, 0x1d, 0x93, 0x1c, 0xfe, 0x9a, 0x0c, 0xa4, 0x03, 0xcc, 0xbe, 0x28,
+ 0x9d, 0x6b, 0xd3, 0xe5, 0xee, 0x37, 0xff, 0x5e, 0x3b, 0x90, 0xb8, 0x02,
+ 0xeb, 0x81, 0x52, 0x38, 0xfc, 0xca, 0x38, 0x40, 0x3f, 0xe1, 0xe4, 0x50,
+ 0x72, 0x84, 0xa0, 0x3f, 0x88, 0x23, 0x6f, 0xe5, 0xdf, 0xfb, 0xcf, 0xff,
+ 0x93, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xbf, 0xff, 0xfc, 0x29,
+ 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xef, 0xcf, 0xff, 0xf9, 0x3c,
+ 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xa9, 0xcb, 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xeb,
+ 0x31, 0xf0, 0x0b, 0x0b, 0x22, 0x6e, 0x06, 0x55, 0x35, 0x36, 0xd7, 0x34,
+ 0x33, 0x13, 0x13, 0xff, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x10, 0xc5,
+ 0xc8, 0x78, 0xc0, 0x96, 0x20, 0x71, 0x17, 0x92, 0x33, 0xd8, 0x42, 0xf3,
+ 0x8f, 0x9e, 0x63, 0x32, 0xe7, 0x43, 0x80, 0x26, 0x0a, 0xff, 0x9b, 0x1c,
+ 0xcf, 0xe3, 0xe4, 0x2f, 0x2c, 0x74, 0xc4, 0x70, 0xb9, 0x60, 0xf2, 0x12,
+ 0xcb, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0xf8, 0x65, 0x56, 0x64, 0x68,
+ 0x97, 0x6b, 0xd5, 0x81, 0x84, 0x52, 0x8b, 0x96, 0x64, 0xa9, 0x55, 0x79,
+ 0xe2, 0x7f, 0xfd, 0x7a, 0xf8, 0xb3, 0x48, 0xd0, 0x51, 0xae, 0xe0, 0x28,
+ 0x0e, 0xd9, 0xd0, 0xb7, 0x9f, 0x92, 0x86, 0x5c, 0xff, 0x6e, 0xbb, 0x56,
+ 0x08, 0xff, 0xef, 0xff, 0xd7, 0xaf, 0x62, 0x22, 0x0a, 0x0b, 0x38, 0x08,
+ 0x74, 0xe0, 0x39, 0x3f, 0x34, 0x08, 0x52, 0xbd, 0xc0, 0x62, 0x6b, 0xb8,
+ 0x77, 0xcc, 0xa3, 0xfd, 0x4f, 0x2c, 0xfe, 0x28, 0x95, 0x53, 0x5e, 0x6c,
+ 0x6a, 0x0f, 0x16, 0xc8, 0x5e, 0x7c, 0xba, 0xc6, 0x66, 0xd6, 0x33, 0x61,
+ 0x8f, 0x85, 0xbd, 0x8b, 0x85, 0x1c, 0x12, 0x3e, 0x3d, 0xfb, 0xa1, 0x82,
+ 0x3d, 0xa7, 0xe7, 0x21, 0xe0, 0xd1, 0x06, 0xf5, 0x8b, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x83, 0x11, 0x7a, 0x06, 0x01, 0x91,
+ 0xc2, 0x20, 0x62, 0x4d, 0x32, 0x11, 0x36, 0xb8, 0xf0, 0xc2, 0xbe, 0xcd,
+ 0x90, 0x30, 0xff, 0x80, 0x80, 0x17, 0xc9, 0x6b, 0x1e, 0xb1, 0xbd, 0x7a,
+ 0x0c, 0x03, 0x01, 0x30, 0x09, 0x86, 0xb2, 0x60, 0x87, 0xf0, 0x05, 0xe7,
+ 0xfc, 0x97, 0x5e, 0x4e, 0xf8, 0x44, 0xba, 0xf5, 0xf5, 0x8e, 0x91, 0xc0,
+ 0x1b, 0xf5, 0xfc, 0xbd, 0xfe, 0x18, 0x51, 0x18, 0x08, 0x7f, 0xe1, 0xe4,
+ 0xc9, 0xc5, 0x09, 0x40, 0x7f, 0x10, 0x33, 0x6f, 0xe5, 0xf7, 0xdf, 0x7f,
+ 0xf2, 0x7d, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0xfc, 0x29, 0xff, 0xff, 0x1f,
+ 0xff, 0xfb, 0xcf, 0xfe, 0x4c, 0x4f, 0xff, 0xff, 0xff, 0xfa, 0x80, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xff, 0x13, 0x89, 0xff, 0xff, 0xff, 0xf3,
+ 0x2c, 0x65, 0xa3, 0xff, 0xff, 0xfb, 0xc2, 0xa0, 0xa0, 0x53, 0x00, 0x55,
+ 0x8d, 0xa2, 0x46, 0xd4, 0xda, 0xd5, 0x62, 0xdc, 0x80, 0x04, 0x76, 0x52,
+ 0xc5, 0x85, 0xd2, 0xf6, 0x3e, 0x0d, 0xc1, 0x1a, 0xc8, 0x0d, 0x24, 0x44,
+ 0x89, 0xf9, 0x84, 0x01, 0x63, 0x38, 0x03, 0x70, 0x18, 0xaa, 0xf7, 0x7c,
+ 0xf6, 0xe1, 0xfe, 0xff, 0xe2, 0x7f, 0xff, 0xff, 0x98, 0xd0, 0xca, 0x99,
+ 0x42, 0xa6, 0x7e, 0x6f, 0xd6, 0xcf, 0x34, 0x06, 0xdb, 0xe0, 0x0a, 0x3a,
+ 0x11, 0x6b, 0x3f, 0x38, 0xbe, 0xa6, 0x78, 0x01, 0xc5, 0x69, 0xb5, 0x99,
+ 0x7e, 0xf9, 0xa2, 0xb2, 0xf5, 0xe6, 0x16, 0xaf, 0xaa, 0xfc, 0xcf, 0xba,
+ 0x8e, 0xcf, 0xff, 0x45, 0x7c, 0x34, 0xcc, 0x47, 0xff, 0xff, 0x7f, 0xff,
+ 0xff, 0xc9, 0xa1, 0x53, 0x3f, 0x88, 0xf1, 0x93, 0x86, 0x65, 0x0b, 0xcc,
+ 0x50, 0x0f, 0x1f, 0xf0, 0x94, 0x13, 0x3d, 0xb5, 0x38, 0x77, 0xd2, 0x17,
+ 0xd0, 0x21, 0xb0, 0xc9, 0xab, 0x76, 0x36, 0x41, 0x88, 0xe9, 0x36, 0x8d,
+ 0xc7, 0xfc, 0xfe, 0x5f, 0x5e, 0x33, 0xcd, 0xeb, 0xc6, 0x7a, 0x37, 0xff,
+ 0xe4, 0xf0, 0x42, 0x78, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0x00, 0x17, 0x7f,
+ 0xe2, 0x94, 0xbc, 0x43, 0xdf, 0xfa, 0x3f, 0xa5, 0xe0, 0x9b, 0xe0, 0xe2,
+ 0xf2, 0xfc, 0x4a, 0xe0, 0x07, 0xe7, 0xa4, 0x3e, 0xc8, 0xca, 0x00, 0x9f,
+ 0xb4, 0xd2, 0x1d, 0x48, 0x78, 0x0f, 0xc2, 0x02, 0x95, 0xd6, 0xc8, 0x07,
+ 0x4c, 0x00, 0x1f, 0xdf, 0xaf, 0x17, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0x9c, 0xe4, 0x26, 0x6d, 0x3d, 0xd0, 0x85, 0x1c, 0x8b, 0x62, 0x30, 0xf5,
+ 0xd9, 0xe0, 0x11, 0xeb, 0xed, 0x8a, 0xeb, 0x62, 0x01, 0xd3, 0x1e, 0x83,
+ 0xc0, 0x0c, 0x6f, 0x8a, 0x17, 0x99, 0xf7, 0xfe, 0x20, 0x6e, 0xd5, 0xd4,
+ 0xb5, 0x27, 0xe0, 0x18, 0x7f, 0xf9, 0xaf, 0xff, 0xfc, 0x24, 0xc0, 0x0b,
+ 0xcf, 0xd2, 0x0d, 0x59, 0xbc, 0x9f, 0x1f, 0xe0, 0x3f, 0xca, 0x00, 0x07,
+ 0xe0, 0xbf, 0x02, 0x87, 0xf8, 0x89, 0xff, 0x5e, 0x34, 0xd4, 0xce, 0x67,
+ 0xf3, 0xe2, 0x84, 0x41, 0x13, 0x5d, 0xdb, 0x94, 0x7e, 0xe7, 0xff, 0x69,
+ 0xf7, 0x01, 0xff, 0xff, 0x7f, 0x11, 0xee, 0x78, 0x1f, 0xbd, 0x90, 0x9b,
+ 0x8f, 0xff, 0xef, 0xe3, 0xfd, 0x83, 0xf0, 0xf9, 0xbf, 0xd7, 0x3d, 0x70,
+ 0xac, 0x01, 0x7b, 0x5d, 0xf6, 0xad, 0xbf, 0xf6, 0xff, 0xf8, 0x01, 0x61,
+ 0xd6, 0xeb, 0xdb, 0x77, 0xae, 0x58, 0x62, 0x7b, 0xef, 0xfe, 0xf9, 0xe8,
+ 0xf1, 0x3f, 0xfd, 0x78, 0xef, 0xf6, 0x20, 0x64, 0x29, 0xbd, 0x2f, 0xf9,
+ 0x3f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xff, 0xfe, 0x14,
+ 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf1, 0x5f, 0xff, 0x93, 0xc5,
+ 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x0d,
+ 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xf3, 0x1f, 0x00, 0x36,
+ 0x5c, 0x98, 0x2c, 0x2f, 0x5e, 0x0f, 0x5d, 0x29, 0xb7, 0xe5, 0xf1, 0x3f,
+ 0xff, 0xdf, 0xff, 0xf8, 0x60, 0x3b, 0x3c, 0x11, 0x45, 0xd1, 0x57, 0x18,
+ 0x28, 0x7f, 0xed, 0x64, 0x60, 0xf3, 0xe0, 0xa8, 0xdc, 0xba, 0x61, 0x68,
+ 0x01, 0x31, 0x5f, 0xf3, 0x7f, 0xc6, 0xb5, 0xac, 0xb6, 0x8f, 0x19, 0xb9,
+ 0x55, 0x2b, 0x16, 0xd6, 0xfb, 0x68, 0xf8, 0xff, 0x89, 0xff, 0xf7, 0xfc,
+ 0x31, 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x47, 0x4f, 0x4f, 0xcf, 0x38,
+ 0x99, 0xc1, 0x20, 0xad, 0x3a, 0xda, 0xd4, 0x98, 0xa9, 0xe7, 0xd6, 0xa6,
+ 0x93, 0x3e, 0x7f, 0xff, 0xdf, 0xff, 0xbf, 0x7e, 0x18, 0xe1, 0x83, 0xff,
+ 0xc2, 0x5c, 0x04, 0xb7, 0x35, 0x1e, 0x21, 0x49, 0x97, 0x80, 0x8b, 0x7f,
+ 0x3b, 0x63, 0xe5, 0xd6, 0x33, 0x36, 0xb1, 0x9a, 0x5e, 0x18, 0xf8, 0x10,
+ 0xc8, 0xbf, 0x04, 0xc5, 0x84, 0x8e, 0x1e, 0xf4, 0x11, 0x60, 0x4b, 0xc3,
+ 0xc3, 0x94, 0x08, 0x50, 0x24, 0xbd, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xa8, 0x35, 0x81, 0x0d, 0x78, 0x63, 0xf2, 0xc8, 0xb9, 0x63,
+ 0x04, 0x40, 0x45, 0x8c, 0xc4, 0x04, 0x7a, 0x28, 0x10, 0xf3, 0x94, 0x08,
+ 0x34, 0x04, 0x25, 0xf3, 0xef, 0xbd, 0x63, 0x63, 0xf0, 0xd3, 0xdc, 0xb0,
+ 0x18, 0x08, 0xb1, 0x9e, 0x04, 0x7a, 0x0d, 0x27, 0xfb, 0x3c, 0x0f, 0x0e,
+ 0xfb, 0xc3, 0x1f, 0xe7, 0x15, 0xd4, 0x22, 0xe7, 0x9f, 0x09, 0xa9, 0x3c,
+ 0x0f, 0xf1, 0x7f, 0x80, 0x1e, 0x65, 0xe9, 0xc4, 0xeb, 0x77, 0x51, 0x83,
+ 0xdd, 0xef, 0xeb, 0x1d, 0xdf, 0xae, 0x4f, 0xbf, 0xff, 0xff, 0xff, 0x93,
+ 0xff, 0x85, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0x79, 0xff, 0xc9, 0x89, 0xff,
+ 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe8, 0x41, 0x03,
+ 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0x5f, 0x78, 0x99,
+ 0x8f, 0x80, 0x02, 0x72, 0xb4, 0xff, 0xb5, 0x4c, 0x13, 0xc6, 0x09, 0x29,
+ 0x70, 0xc4, 0x33, 0x87, 0x13, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x98,
+ 0x3b, 0x3a, 0x2a, 0x28, 0xb9, 0x39, 0xbc, 0x60, 0xe5, 0x70, 0xd2, 0x2e,
+ 0xe2, 0x8a, 0x37, 0x10, 0x8a, 0xd0, 0xb5, 0x85, 0x7a, 0xdb, 0xd3, 0x7a,
+ 0x00, 0x22, 0x8e, 0x85, 0x13, 0xfe, 0xed, 0xb8, 0x6f, 0xd0, 0x63, 0x8e,
+ 0x88, 0xf9, 0xf8, 0xbf, 0xd9, 0xbf, 0x21, 0xb9, 0xf2, 0x5f, 0xfd, 0x68,
+ 0x55, 0xd7, 0x32, 0x43, 0xec, 0x27, 0xf8, 0x4c, 0x58, 0xe2, 0x96, 0x1c,
+ 0x87, 0x3f, 0xef, 0xcf, 0x45, 0x01, 0x78, 0x13, 0x2f, 0x5b, 0xdf, 0x69,
+ 0x65, 0x81, 0x72, 0x77, 0xfc, 0x4f, 0xff, 0xff, 0xff, 0x8b, 0x52, 0x87,
+ 0x23, 0xc0, 0x86, 0x09, 0x31, 0x2d, 0x7f, 0x9b, 0xf1, 0x09, 0x33, 0x07,
+ 0xb5, 0xc0, 0x0c, 0x0f, 0x2b, 0xe3, 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8,
+ 0x58, 0xc2, 0x9e, 0x45, 0xe7, 0x3e, 0x01, 0x9f, 0x82, 0x14, 0x6a, 0xb1,
+ 0xce, 0xa2, 0xc1, 0x8a, 0x7f, 0x11, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
+ 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x80, 0xba, 0x68, 0x19, 0x8f, 0xab, 0x50,
+ 0x7e, 0x00, 0x8a, 0x68, 0x19, 0x8e, 0x6a, 0xd4, 0x00, 0x8a, 0x68, 0x19,
+ 0x8a, 0x6a, 0xd5, 0xe1, 0xcf, 0xe5, 0xf5, 0xe3, 0x3c, 0xde, 0xbc, 0x61,
+ 0xbe, 0x1f, 0xd2, 0x90, 0xa1, 0x78, 0x0e, 0x23, 0x38, 0x12, 0x5a, 0x00,
+ 0x5a, 0x95, 0x42, 0x55, 0xdf, 0x37, 0xef, 0x45, 0x00, 0x33, 0xd2, 0xa1,
+ 0x03, 0xf6, 0x37, 0x93, 0x60, 0x1b, 0x80, 0x07, 0xf0, 0xf3, 0xf0, 0x01,
+ 0x0f, 0xdd, 0xce, 0xd3, 0xff, 0xa6, 0xc0, 0x20, 0x1f, 0xf8, 0x7e, 0x00,
+ 0x62, 0x5c, 0x48, 0xda, 0x5d, 0xac, 0x8d, 0x1f, 0xcd, 0xf0, 0x8f, 0xfc,
+ 0x3e, 0xa0, 0x11, 0x96, 0x8d, 0x2a, 0xf3, 0xef, 0xd7, 0x8b, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa1, 0x04, 0x57, 0x21, 0xa0, 0x06, 0xc7,
+ 0x6b, 0x20, 0x18, 0x83, 0x87, 0x37, 0xe8, 0x08, 0x00, 0x60, 0x04, 0x00,
+ 0xc0, 0xab, 0x80, 0x07, 0x8d, 0xd2, 0x95, 0xa7, 0x4b, 0xf1, 0x9f, 0xcc,
+ 0x0a, 0x00, 0xf7, 0xf8, 0x88, 0x9a, 0xf5, 0xe3, 0x60, 0x84, 0x12, 0x8a,
+ 0x11, 0x84, 0x8c, 0x3f, 0xff, 0xe1, 0xc8, 0x7f, 0xdf, 0x01, 0x22, 0x09,
+ 0x73, 0xc4, 0xd7, 0xfd, 0x78, 0xee, 0x43, 0x42, 0x6e, 0x0c, 0x57, 0xff,
+ 0xe4, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xf8,
+ 0x53, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f,
+ 0x15, 0xff, 0xf9, 0xbf, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0x4f,
+ 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xef, 0xd9, 0x71, 0x3f,
+ 0xff, 0xff, 0xff, 0x86, 0x03, 0xb0, 0xc5, 0x0c, 0x5e, 0x0b, 0x8c, 0x20,
+ 0x0a, 0x8d, 0x36, 0x5a, 0x42, 0x00, 0x2d, 0x40, 0x19, 0x5f, 0xf6, 0xce,
+ 0x40, 0x85, 0x90, 0x13, 0x05, 0x7f, 0xcd, 0x8e, 0x67, 0xf2, 0x15, 0x9b,
+ 0x05, 0x66, 0x16, 0x8c, 0x53, 0x4b, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62,
+ 0xc0, 0x7c, 0xa0, 0x1c, 0x2a, 0x6e, 0xaf, 0x32, 0x22, 0x4d, 0xd7, 0xff,
+ 0xab, 0xce, 0x83, 0x9e, 0xc1, 0x56, 0xfc, 0xc4, 0xff, 0xff, 0x7e, 0xb0,
+ 0x8a, 0xcd, 0x90, 0x05, 0xdc, 0x71, 0x1e, 0xea, 0x3a, 0xff, 0x99, 0xb3,
+ 0xc0, 0x51, 0x2b, 0xb3, 0xcc, 0xfd, 0x97, 0xb0, 0x21, 0xfc, 0x31, 0x83,
+ 0x83, 0x4d, 0xe5, 0xdb, 0x53, 0x6d, 0xac, 0x47, 0xff, 0x7f, 0xff, 0xf9,
+ 0x30, 0xc8, 0x40, 0x42, 0x01, 0x23, 0xde, 0x76, 0x1c, 0x4f, 0xf4, 0x4e,
+ 0x33, 0xc3, 0x33, 0x5d, 0xd7, 0xe2, 0xe0, 0x0d, 0x49, 0x08, 0x97, 0xd6,
+ 0x72, 0x3f, 0x52, 0x50, 0x1d, 0x89, 0xf6, 0xc3, 0xd1, 0x24, 0xe3, 0xcf,
+ 0x97, 0x58, 0xcc, 0xda, 0xc6, 0x2f, 0x0c, 0x7f, 0xf1, 0xdd, 0xe1, 0x52,
+ 0xe1, 0x33, 0xed, 0x60, 0x76, 0x9e, 0x52, 0x2c, 0x65, 0xe7, 0xaa, 0xa8,
+ 0x63, 0xfe, 0xfb, 0xf8, 0xcf, 0x01, 0x35, 0x1e, 0x83, 0x80, 0x23, 0xa1,
+ 0xd6, 0x33, 0xc4, 0x6d, 0x19, 0xbf, 0x97, 0x9f, 0x9e, 0xfe, 0x39, 0xf0,
+ 0xc6, 0xee, 0x40, 0xe3, 0xff, 0x15, 0xc7, 0xf7, 0x4e, 0xd2, 0x30, 0x50,
+ 0x45, 0xe0, 0x20, 0x98, 0x67, 0x4f, 0xcf, 0xe5, 0x7b, 0xd6, 0x2e, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x83, 0x29, 0x0d, 0x00, 0x62,
+ 0x6b, 0xf8, 0x1d, 0xfb, 0xe5, 0xd6, 0x35, 0xfe, 0xfe, 0xb1, 0xdd, 0x7e,
+ 0x4f, 0xbf, 0xff, 0xff, 0xff, 0x93, 0xff, 0x85, 0x3f, 0xff, 0xe3, 0xff,
+ 0xff, 0x79, 0xff, 0xc9, 0x89, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xe9, 0x49, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf1, 0x5e, 0x7f, 0x5c, 0xc7, 0xe0, 0x0d, 0x8c, 0xdc, 0x46, 0xc9, 0x62,
+ 0x64, 0x8b, 0xe0, 0x4c, 0x87, 0xed, 0xc9, 0xe6, 0x5f, 0x9e, 0xfc, 0x00,
+ 0xe4, 0xfd, 0x91, 0x75, 0xf3, 0x01, 0xdf, 0xe8, 0x59, 0xca, 0x88, 0xe7,
+ 0xfe, 0x9e, 0x26, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x4f,
+ 0x19, 0x14, 0x38, 0x00, 0x6b, 0xd9, 0x32, 0x1a, 0x3b, 0x1e, 0xaf, 0x67,
+ 0xd7, 0x51, 0x1b, 0x2d, 0xf6, 0xf0, 0x88, 0xfc, 0x2c, 0x57, 0x63, 0xf3,
+ 0x00, 0x13, 0x69, 0x35, 0x19, 0xa7, 0x3d, 0xd8, 0xd6, 0x78, 0x07, 0x7b,
+ 0x44, 0x0d, 0x4f, 0x5f, 0x50, 0xe5, 0xe4, 0x9f, 0x27, 0xd3, 0x31, 0x83,
+ 0x4e, 0x00, 0xf1, 0xb4, 0xc2, 0xd4, 0xdb, 0x2f, 0x46, 0x77, 0x9f, 0xfd,
+ 0xed, 0x1e, 0xb9, 0x00, 0xaf, 0x9f, 0xc3, 0x39, 0xd9, 0xc5, 0x2b, 0xef,
+ 0xc6, 0x00, 0x00, 0xcc, 0x92, 0x4d, 0xbf, 0xe1, 0x83, 0x6d, 0x8d, 0xcf,
+ 0xff, 0xbb, 0xf5, 0xb8, 0x01, 0x0e, 0xd9, 0x18, 0x96, 0x4f, 0x7a, 0x0f,
+ 0x49, 0x8f, 0x23, 0xe3, 0x6a, 0x60, 0xce, 0x76, 0xe2, 0x92, 0xee, 0xf8,
+ 0x73, 0x07, 0xf0, 0x97, 0xe0, 0x80, 0x48, 0x14, 0x45, 0xc4, 0xa6, 0x3e,
+ 0x88, 0xff, 0xff, 0xc0, 0xa8, 0xa2, 0x23, 0x1d, 0x26, 0x5a, 0xff, 0x78,
+ 0x9f, 0xff, 0xff, 0xe6, 0x35, 0xef, 0xe5, 0x2c, 0x26, 0xff, 0xf6, 0xa8,
+ 0x7e, 0x4d, 0xf8, 0xa9, 0x13, 0x13, 0xba, 0xad, 0xae, 0x13, 0x3e, 0xd7,
+ 0x82, 0x03, 0x0c, 0x73, 0x53, 0x84, 0xbe, 0x8f, 0xfe, 0x7a, 0x03, 0x00,
+ 0x8a, 0x2b, 0xd8, 0x07, 0xc6, 0x63, 0x7f, 0x5f, 0x01, 0x28, 0x23, 0x36,
+ 0x53, 0x9f, 0xea, 0x59, 0x5c, 0x81, 0xa9, 0x8c, 0xbf, 0x9f, 0x77, 0x6c,
+ 0x85, 0xe3, 0xf1, 0x71, 0xa1, 0xfe, 0x7d, 0x56, 0x25, 0xa9, 0x04, 0xde,
+ 0xe7, 0x37, 0x1e, 0x83, 0xc4, 0x11, 0x1b, 0x27, 0xff, 0xff, 0x7f, 0xff,
+ 0xff, 0xff, 0x99, 0x02, 0xbb, 0x8f, 0x8f, 0x84, 0x86, 0x19, 0x04, 0x56,
+ 0xbe, 0xdf, 0x98, 0xf8, 0xb6, 0x75, 0x8b, 0x7d, 0x86, 0x70, 0xb2, 0xf0,
+ 0xa9, 0x1d, 0xdf, 0xc3, 0x8b, 0x17, 0x99, 0xe5, 0xab, 0x93, 0x46, 0x29,
+ 0xba, 0x60, 0x4c, 0xf7, 0x84, 0x65, 0xff, 0xd4, 0x00, 0x03, 0x3f, 0x29,
+ 0x70, 0x00, 0xa7, 0xf2, 0x9d, 0xf0, 0x03, 0xc1, 0xbf, 0xee, 0xef, 0xee,
+ 0x9d, 0xa8, 0x5f, 0x5e, 0x30, 0xdf, 0x6b, 0x7c, 0x25, 0x0a, 0x60, 0x02,
+ 0xe6, 0x1c, 0xba, 0xa4, 0x8b, 0x8f, 0x7f, 0xfe, 0x43, 0x70, 0x33, 0x12,
+ 0x41, 0x5a, 0x38, 0xbb, 0x88, 0x0d, 0x85, 0x3c, 0x8e, 0x1e, 0x5d, 0xbf,
+ 0xf4, 0x16, 0x6a, 0x80, 0x2a, 0xd7, 0xe1, 0xc2, 0x4c, 0x15, 0x32, 0xe1,
+ 0xfe, 0x0f, 0xc0, 0x58, 0x3e, 0xc9, 0x2e, 0x3d, 0xfd, 0x1a, 0xbd, 0x6b,
+ 0xcf, 0xff, 0xd1, 0x70, 0xff, 0x04, 0xc1, 0x55, 0xff, 0x55, 0x0c, 0x13,
+ 0xaf, 0x81, 0x40, 0x6e, 0x56, 0x03, 0x57, 0x40, 0xd9, 0xd7, 0xd3, 0xbb,
+ 0xe7, 0x00, 0x50, 0x5e, 0xd8, 0x1a, 0x88, 0x86, 0xce, 0xbb, 0x58, 0xf8,
+ 0xbf, 0xe6, 0xff, 0xd5, 0x7e, 0x08, 0x17, 0xc0, 0x1f, 0x95, 0x47, 0x77,
+ 0x00, 0x1f, 0xdd, 0x5d, 0x23, 0xde, 0x3f, 0x5e, 0x30, 0xdf, 0x0f, 0xe9,
+ 0x08, 0x21, 0x70, 0x00, 0xe4, 0x8a, 0x48, 0x4a, 0xfb, 0xe2, 0x7e, 0xf4,
+ 0x11, 0x40, 0xed, 0x72, 0x32, 0x32, 0xb9, 0xea, 0xf4, 0xf1, 0x2f, 0x11,
+ 0xe6, 0x1e, 0xaf, 0xff, 0xc3, 0xe6, 0x00, 0x59, 0x4a, 0xa8, 0xef, 0x68,
+ 0x0f, 0xc4, 0x8d, 0x37, 0x5a, 0xdf, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24, 0x15, 0x7f, 0xcb, 0xeb, 0xc6, 0xf2,
+ 0x08, 0x67, 0x23, 0x86, 0xc0, 0x8f, 0xc5, 0xc9, 0x0c, 0xbf, 0x0c, 0x40,
+ 0xea, 0xdf, 0xfd, 0x78, 0xef, 0xf7, 0x09, 0xf8, 0x7e, 0xe2, 0x20, 0x6e,
+ 0x03, 0xc0, 0xd7, 0xfe, 0xf0, 0x45, 0xb1, 0xbe, 0x6e, 0x4f, 0xf8, 0xcf,
+ 0x27, 0xbf, 0x0a, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff,
+ 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
+ 0x91, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0x7e, 0x41, 0x32,
+ 0xc5, 0x9f, 0x04, 0x2d, 0x1f, 0xfb, 0x7f, 0x1e, 0x95, 0x5c, 0x4f, 0xff,
+ 0xff, 0xff, 0x7e, 0x18, 0x30, 0x6b, 0x3e, 0xf1, 0xa0, 0xaa, 0xd8, 0x80,
+ 0x15, 0x6b, 0xe6, 0xec, 0xff, 0xe4, 0xec, 0x94, 0x9f, 0x1e, 0x00, 0xfc,
+ 0x7a, 0x7f, 0xa3, 0x06, 0xec, 0x06, 0x9a, 0x70, 0x75, 0x3a, 0x78, 0xe8,
+ 0xfc, 0x58, 0xff, 0x9d, 0xff, 0x35, 0xa0, 0xe5, 0x84, 0x3a, 0x03, 0x36,
+ 0x57, 0x03, 0xf9, 0x27, 0x73, 0x54, 0x48, 0x91, 0x2d, 0xdd, 0xd2, 0xc5,
+ 0xcb, 0xc1, 0xf4, 0xb1, 0xa4, 0x8e, 0xa4, 0xf2, 0xe6, 0x3f, 0x89, 0xff,
+ 0xfe, 0xfc, 0x31, 0xc7, 0x80, 0x1a, 0x3e, 0x69, 0x16, 0x6c, 0x00, 0xc0,
+ 0xf2, 0xbe, 0x3b, 0x0f, 0x56, 0xa5, 0x87, 0xab, 0x49, 0x82, 0xb1, 0x45,
+ 0x01, 0x20, 0xa6, 0x5e, 0x02, 0x46, 0x73, 0xa9, 0xe5, 0x17, 0xc4, 0x52,
+ 0x38, 0x6d, 0x6d, 0x26, 0xfc, 0xf1, 0xcb, 0xab, 0x60, 0x1a, 0xc8, 0x7e,
+ 0x23, 0xff, 0xbf, 0xff, 0xfc, 0x31, 0x54, 0x10, 0xb8, 0xff, 0xc2, 0x4c,
+ 0xca, 0x24, 0x8d, 0xaa, 0xf0, 0x33, 0x13, 0x7d, 0x07, 0xf7, 0x78, 0xf7,
+ 0x25, 0x2c, 0x63, 0x93, 0x87, 0x83, 0xb7, 0xcc, 0xd4, 0xab, 0x72, 0xb1,
+ 0x9d, 0xf2, 0x97, 0xff, 0x00, 0x33, 0xae, 0x5d, 0x63, 0x16, 0x62, 0xc0,
+ 0x04, 0xcb, 0xef, 0x38, 0x1d, 0x08, 0xef, 0xf4, 0xf0, 0x00, 0x10, 0x00,
+ 0xc3, 0x1f, 0xe2, 0x3a, 0xf8, 0x56, 0x7a, 0x60, 0x74, 0x45, 0x6b, 0xe8,
+ 0x78, 0x04, 0xad, 0xf7, 0xb4, 0x31, 0xff, 0xc7, 0x51, 0x85, 0x78, 0xf7,
+ 0x7c, 0xb0, 0x78, 0x0f, 0x32, 0xc2, 0x06, 0x9c, 0x07, 0x91, 0xc7, 0x6f,
+ 0x4a, 0x47, 0xd7, 0x7a, 0xc6, 0x06, 0x3e, 0x1f, 0xd2, 0x10, 0x43, 0x80,
+ 0x09, 0x2a, 0x89, 0xb5, 0xa2, 0xfb, 0xd0, 0x90, 0xea, 0xa4, 0xc9, 0xfb,
+ 0xe5, 0xe8, 0x6e, 0x25, 0x61, 0xaf, 0xa8, 0xc1, 0x02, 0x00, 0x25, 0x68,
+ 0x28, 0xdb, 0x0f, 0x7a, 0x96, 0xfc, 0x1e, 0xb7, 0x2c, 0x61, 0xe7, 0xa3,
+ 0xde, 0xb1, 0x70, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x84,
+ 0xbe, 0x5d, 0x63, 0x5f, 0xbe, 0xfe, 0xb1, 0xdd, 0xfb, 0xe4, 0xfb, 0xff,
+ 0xff, 0xff, 0xf9, 0x3f, 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xff, 0xf1, 0x5f,
+ 0xe4, 0xc5, 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51,
+ 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xd7, 0xde,
+ 0x26, 0x63, 0xe0, 0x85, 0xb3, 0xf7, 0xe2, 0x03, 0xf7, 0xf4, 0xfc, 0xd8,
+ 0x44, 0xa5, 0x2f, 0x15, 0xbc, 0x7e, 0xc7, 0xf8, 0x9f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0xe5, 0x20, 0x44, 0x60, 0x03, 0x0f, 0xef, 0x97, 0x1a,
+ 0xb6, 0x0d, 0x79, 0xec, 0x7e, 0xf1, 0xaa, 0x3e, 0x4a, 0xc5, 0xcd, 0x8c,
+ 0xb4, 0x60, 0x0d, 0xad, 0x07, 0xc8, 0x5c, 0xcb, 0xdf, 0x7e, 0xea, 0x32,
+ 0xfc, 0xda, 0x7c, 0x2f, 0xf8, 0x4c, 0x4b, 0xe8, 0x1b, 0x00, 0x0b, 0x2f,
+ 0x55, 0xf5, 0x19, 0x85, 0x17, 0xf8, 0x2a, 0xf6, 0xf6, 0xa0, 0x07, 0x17,
+ 0xa0, 0xca, 0xdf, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xcd, 0xf8, 0x83, 0x2a,
+ 0x12, 0xa5, 0xac, 0xdc, 0x01, 0x47, 0x44, 0x3a, 0x8f, 0xcd, 0xb0, 0x75,
+ 0x6f, 0xcf, 0x01, 0x54, 0x9c, 0x9f, 0x85, 0x1a, 0x00, 0x9a, 0x12, 0x8c,
+ 0xbb, 0xab, 0x16, 0x07, 0xae, 0x0d, 0x94, 0xf9, 0x31, 0x66, 0x62, 0xfa,
+ 0x9e, 0x4e, 0x8b, 0x01, 0xeb, 0xc4, 0xca, 0x92, 0xdb, 0x3b, 0x9c, 0xdf,
+ 0xff, 0x91, 0x41, 0x09, 0xe0, 0x04, 0x46, 0xd8, 0x48, 0x57, 0x63, 0xfd,
+ 0xe0, 0x03, 0xd4, 0xbe, 0x03, 0xf7, 0x98, 0xfb, 0xff, 0x07, 0xff, 0xfe,
+ 0xe7, 0x97, 0xf1, 0xcf, 0xa6, 0x08, 0x63, 0xe7, 0x8f, 0x5f, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0x10, 0x42, 0x35, 0xdf, 0x9b, 0x85, 0xb0, 0x41, 0xa3,
+ 0x4b, 0x80, 0x3c, 0x29, 0xff, 0x9c, 0xd2, 0xb4, 0x8a, 0x44, 0xdf, 0x89,
+ 0x2c, 0x01, 0xea, 0x5f, 0x01, 0xfb, 0xcc, 0x01, 0x72, 0x55, 0xd3, 0xdd,
+ 0x3f, 0x53, 0x7b, 0xfc, 0x7f, 0xff, 0x70, 0x30, 0xe0, 0x05, 0xc7, 0x6e,
+ 0x99, 0x15, 0x5e, 0xaa, 0x0c, 0x67, 0x7f, 0xfd, 0xef, 0xf7, 0xf9, 0x85,
+ 0x27, 0xa7, 0xcc, 0x27, 0x04, 0xff, 0x00, 0x6c, 0xfd, 0x4b, 0xfc, 0x0f,
+ 0x40, 0xc0, 0x91, 0xe8, 0x77, 0xb7, 0xfe, 0x00, 0xe6, 0xe5, 0x9e, 0x91,
+ 0x3d, 0x78, 0xce, 0x6c, 0x27, 0xc4, 0xb3, 0xf0, 0x3c, 0x62, 0x22, 0x73,
+ 0x24, 0xd2, 0x1c, 0xf0, 0x9e, 0x2c, 0x60, 0x09, 0x5e, 0xa5, 0xfe, 0x07,
+ 0xfe, 0x1c, 0x45, 0xbb, 0xfc, 0x01, 0xcd, 0xd6, 0x7a, 0x5e, 0xfd, 0x78,
+ 0xcf, 0x66, 0xf1, 0x6f, 0xfe, 0x1f, 0x13, 0xe0, 0x03, 0x3f, 0xe2, 0x2f,
+ 0xe7, 0xfd, 0xff, 0xf7, 0xeb, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xa9, 0x44, 0x25, 0xff, 0x2f, 0xaf, 0x1b, 0xff, 0x7f, 0xf5, 0xe3,
+ 0xbf, 0xff, 0x27, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff,
+ 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0x2b, 0xff,
+ 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xaa, 0xd3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfa, 0xed, 0x45,
+ 0x9f, 0x0c, 0xce, 0x97, 0x84, 0x82, 0xa0, 0xcb, 0xb5, 0x89, 0xff, 0xff,
+ 0xff, 0xfd, 0xb8, 0xa1, 0x01, 0x18, 0xed, 0x11, 0xc6, 0xf5, 0xbc, 0x3c,
+ 0x01, 0xbc, 0x52, 0x8b, 0x40, 0x75, 0xf2, 0x00, 0x90, 0x61, 0xca, 0x40,
+ 0xcf, 0xca, 0x3d, 0x51, 0x14, 0xf6, 0x13, 0x91, 0x4a, 0x80, 0xe1, 0x88,
+ 0x17, 0xd6, 0xff, 0x84, 0xc4, 0x81, 0x82, 0x00, 0x24, 0x11, 0x1d, 0x0c,
+ 0x96, 0x0f, 0xcb, 0x98, 0xca, 0xdb, 0xbd, 0x78, 0x66, 0xad, 0x25, 0x4b,
+ 0xb5, 0xe2, 0x7f, 0xff, 0xf0, 0xc7, 0x1e, 0xa0, 0xe3, 0x30, 0x62, 0xb3,
+ 0x60, 0x11, 0xeb, 0xed, 0x87, 0xb3, 0xa5, 0xbc, 0x3b, 0x2f, 0x01, 0x37,
+ 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40, 0x79, 0xeb, 0xff, 0x0e, 0xb5, 0x21,
+ 0x7f, 0x7f, 0xa8, 0xd1, 0x56, 0x9d, 0x4f, 0x22, 0x5d, 0x9d, 0x7a, 0xff,
+ 0xf7, 0xff, 0xff, 0x86, 0x2d, 0x4d, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea,
+ 0xd3, 0xfc, 0x80, 0x9a, 0xd0, 0xd9, 0x50, 0x36, 0xd4, 0x2d, 0xe1, 0x21,
+ 0x38, 0xf8, 0x1c, 0xe1, 0x89, 0x58, 0xaa, 0x04, 0x4d, 0xaf, 0x6a, 0x01,
+ 0x23, 0xd5, 0x87, 0xff, 0xdd, 0xc2, 0xea, 0x8f, 0x33, 0x00, 0x83, 0xfe,
+ 0x9f, 0x35, 0x7b, 0x03, 0xa4, 0x60, 0x07, 0xcf, 0xe4, 0x8d, 0xb8, 0xa4,
+ 0x1b, 0x7b, 0xfe, 0x6f, 0xfb, 0xfe, 0x40, 0x40, 0xf7, 0x9d, 0xe2, 0x2f,
+ 0xc3, 0x1f, 0xe7, 0x33, 0xf8, 0x20, 0x2f, 0x00, 0xe0, 0x4a, 0x7f, 0x43,
+ 0xe5, 0xb2, 0x83, 0xf0, 0x93, 0x58, 0xc7, 0xd0, 0x62, 0x7a, 0xc4, 0xff,
+ 0xe1, 0xf4, 0x00, 0xf7, 0xed, 0x01, 0x2e, 0xdf, 0x00, 0x7b, 0xef, 0x8f,
+ 0x62, 0x18, 0xff, 0x33, 0x9e, 0xb8, 0x55, 0x01, 0x0e, 0xa0, 0x35, 0xde,
+ 0x7f, 0x81, 0x2f, 0xa0, 0x3f, 0x7b, 0x3b, 0x70, 0x60, 0xbb, 0xd6, 0x33,
+ 0x6e, 0x24, 0x85, 0xc0, 0x4d, 0xba, 0x03, 0xfb, 0x91, 0xf7, 0xac, 0x5c,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x82, 0x2f, 0x97, 0x58,
+ 0xdf, 0xbf, 0xac, 0x77, 0xf9, 0x3e, 0xff, 0xff, 0xff, 0xfe, 0x4f, 0xfe,
+ 0x14, 0xff, 0xff, 0x8f, 0xff, 0xfc, 0x57, 0xf9, 0x31, 0x3f, 0xff, 0xff,
+ 0xff, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59, 0x01, 0xaf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9d, 0xe2, 0x4b, 0xc4, 0xca, 0x5c,
+ 0x01, 0x6e, 0xa1, 0x72, 0xcc, 0xfc, 0x4f, 0x97, 0xf8, 0x9f, 0xff, 0xff,
+ 0xff, 0xff, 0xc5, 0x1a, 0x03, 0x19, 0x33, 0xc9, 0x11, 0x68, 0x3a, 0x22,
+ 0x04, 0xac, 0x3d, 0xf9, 0x3e, 0x24, 0x44, 0xb2, 0x44, 0xb3, 0x77, 0xf0,
+ 0x14, 0x40, 0xb0, 0xb8, 0xee, 0x26, 0xaa, 0xed, 0x29, 0xe6, 0xd0, 0xd6,
+ 0xb9, 0x29, 0x4e, 0x01, 0xd7, 0x75, 0xe4, 0xff, 0x11, 0x88, 0x15, 0x02,
+ 0x6e, 0xe0, 0xf5, 0x72, 0xba, 0x54, 0x99, 0x26, 0x0b, 0xac, 0x58, 0xf0,
+ 0x59, 0x44, 0xdc, 0x27, 0xa4, 0x8e, 0x72, 0x62, 0x7a, 0xe7, 0x12, 0x79,
+ 0x46, 0x87, 0x61, 0x0e, 0x31, 0x06, 0xbb, 0xf1, 0x71, 0xcd, 0x77, 0xd4,
+ 0x47, 0xa0, 0xf0, 0x0c, 0x76, 0x17, 0xa2, 0x83, 0xb2, 0xc0, 0x48, 0xc7,
+ 0x48, 0x12, 0x4a, 0xc7, 0x2f, 0xab, 0x23, 0x9c, 0xbb, 0x40, 0x7e, 0x64,
+ 0x87, 0xda, 0x5f, 0x84, 0xca, 0xf0, 0xcc, 0xec, 0x59, 0xf8, 0x9f, 0xff,
+ 0xff, 0xf9, 0xbf, 0x15, 0x84, 0xc0, 0xa9, 0x6b, 0x80, 0x9a, 0x9e, 0x83,
+ 0x9f, 0x50, 0xee, 0xe9, 0x46, 0x9d, 0x73, 0x21, 0x8d, 0x17, 0x48, 0xb9,
+ 0xa8, 0x89, 0x63, 0x91, 0x11, 0x75, 0x93, 0x7e, 0x20, 0x44, 0x15, 0x4e,
+ 0xfe, 0x04, 0xdf, 0xa6, 0x76, 0x9a, 0x8e, 0x87, 0x58, 0xad, 0x9d, 0x6a,
+ 0x61, 0xc2, 0x98, 0x93, 0xb9, 0x6d, 0xbd, 0x97, 0x62, 0xe7, 0xf9, 0x3f,
+ 0xc0, 0xc2, 0x06, 0x00, 0x2c, 0x81, 0xf0, 0x43, 0xe0, 0x58, 0x72, 0x14,
+ 0x21, 0x20, 0x2a, 0x03, 0x16, 0x00, 0x65, 0x80, 0x1c, 0xce, 0x3b, 0x8f,
+ 0xff, 0x0f, 0x30, 0xf4, 0x65, 0x90, 0x87, 0x7f, 0x7d, 0xbf, 0x97, 0xff,
+ 0xff, 0xfe, 0x6d, 0xce, 0x12, 0xff, 0x84, 0x94, 0x4a, 0x5d, 0x4c, 0x04,
+ 0x8f, 0xda, 0x6a, 0x41, 0xa5, 0xd9, 0x63, 0x48, 0x5a, 0x36, 0xe9, 0x77,
+ 0x65, 0x92, 0xeb, 0xb1, 0x4b, 0x9f, 0xe2, 0x62, 0x71, 0x1d, 0xfa, 0xf1,
+ 0x9e, 0xc2, 0x72, 0x00, 0x04, 0x66, 0xaf, 0xab, 0xbf, 0xff, 0x83, 0x67,
+ 0x73, 0xef, 0xd7, 0x8c, 0xf9, 0xbf, 0x87, 0xfc, 0x28, 0x48, 0x42, 0x4f,
+ 0xe7, 0xe1, 0x1f, 0x70, 0xd3, 0x45, 0x27, 0x6c, 0x20, 0x60, 0xdb, 0x43,
+ 0x1f, 0xe6, 0x90, 0x5e, 0xe8, 0xb1, 0x83, 0xbc, 0x2f, 0xf3, 0xc8, 0xed,
+ 0x6c, 0x23, 0xc6, 0x71, 0xcc, 0xc2, 0x6e, 0x1c, 0x03, 0xc1, 0x62, 0xd8,
+ 0x69, 0x57, 0xe0, 0x3a, 0x60, 0xe5, 0xb1, 0x81, 0x8a, 0x72, 0xc6, 0xbd,
+ 0xc3, 0x70, 0x1e, 0x6d, 0x10, 0x0e, 0x72, 0x9c, 0x23, 0x68, 0x15, 0xf2,
+ 0xd1, 0x51, 0x02, 0x8f, 0x72, 0x1b, 0x68, 0xfa, 0x9d, 0x39, 0xe9, 0xc2,
+ 0x07, 0xf4, 0x9b, 0x0a, 0x7a, 0x49, 0xa7, 0xb7, 0x06, 0x93, 0x41, 0xde,
+ 0xcd, 0x3d, 0xf0, 0x65, 0xd3, 0x7e, 0xdf, 0x8b, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xad, 0x64, 0x04, 0x17, 0xf9, 0x04, 0x43, 0xec, 0xb7,
+ 0xf6, 0xd5, 0x5b, 0x96, 0x55, 0x6e, 0x5b, 0xfc, 0x44, 0x0d, 0x5b, 0x96,
+ 0x55, 0x6e, 0x5b, 0xd5, 0x5b, 0x96, 0xff, 0xe2, 0x10, 0x34, 0x9a, 0x0a,
+ 0x83, 0x3c, 0x35, 0x1c, 0x9d, 0x01, 0x77, 0x96, 0xf6, 0x99, 0xfb, 0x2c,
+ 0x10, 0xb7, 0x8f, 0xf5, 0xe3, 0x7c, 0x9f, 0xf5, 0xf3, 0x4e, 0x02, 0xf6,
+ 0x6c, 0x7e, 0xc5, 0x07, 0x05, 0x3d, 0x4d, 0x44, 0x58, 0x73, 0x11, 0x81,
+ 0x47, 0x70, 0x8d, 0xb4, 0x07, 0x3a, 0xad, 0x16, 0xbf, 0x4c, 0x5e, 0x20,
+ 0x38, 0x39, 0x5c, 0x98, 0x40, 0x05, 0x4b, 0xf7, 0xe1, 0xd2, 0x99, 0x9e,
+ 0x9f, 0xcd, 0x50, 0xc6, 0xcd, 0x8f, 0xdc, 0xd7, 0xfe, 0xe0, 0xde, 0x8d,
+ 0xfa, 0x31, 0xe0, 0x34, 0x7d, 0xc2, 0x34, 0x44, 0xe6, 0xa7, 0x33, 0x8a,
+ 0x45, 0xf2, 0x98, 0x1b, 0x2a, 0x25, 0x9b, 0x59, 0x02, 0x00, 0x55, 0xaf,
+ 0x58, 0x96, 0x99, 0xbb, 0x3f, 0x98, 0x54, 0x22, 0xf6, 0x6c, 0x7e, 0xe9,
+ 0x7f, 0xb9, 0x9b, 0xd1, 0xbf, 0x83, 0xc0, 0xa3, 0xb8, 0x46, 0xda, 0x03,
+ 0x9a, 0xab, 0x02, 0x46, 0x74, 0xc8, 0x6c, 0xa8, 0x96, 0x70, 0x60, 0x40,
+ 0x0a, 0xb5, 0xeb, 0x12, 0xd3, 0x37, 0x67, 0xf3, 0x54, 0x31, 0xdb, 0x1d,
+ 0x37, 0x35, 0xff, 0xb8, 0x37, 0xa3, 0x7e, 0x8c, 0x78, 0x4a, 0xed, 0x04,
+ 0x12, 0x62, 0x64, 0x2c, 0xba, 0x32, 0xd9, 0x80, 0xd9, 0x51, 0x2c, 0xda,
+ 0xc8, 0x78, 0x53, 0xd0, 0x51, 0x96, 0x64, 0x69, 0x3f, 0x98, 0x14, 0x41,
+ 0xdf, 0xe2, 0x54, 0xdc, 0xd0, 0x63, 0xc2, 0x58, 0x85, 0x7c, 0x21, 0x9c,
+ 0x26, 0x7d, 0x08, 0x36, 0x8d, 0xda, 0x19, 0x93, 0x3a, 0x87, 0xa3, 0x0d,
+ 0xd3, 0x3c, 0x0d, 0x68, 0x96, 0x48, 0xec, 0x5d, 0xde, 0x5e, 0x5f, 0x34,
+ 0xd0, 0x23, 0xf3, 0x2a, 0x6f, 0x50, 0x73, 0xc5, 0x42, 0x14, 0x36, 0x9c,
+ 0x46, 0x78, 0x4a, 0xed, 0x04, 0x12, 0x60, 0x99, 0x0b, 0x2e, 0x8c, 0xf4,
+ 0x63, 0xe5, 0x18, 0x26, 0x15, 0x29, 0xfc, 0x09, 0xd8, 0xbb, 0xbf, 0x02,
+ 0x7f, 0x30, 0x28, 0x83, 0xbf, 0xd1, 0x3d, 0xcd, 0x06, 0x3c, 0x25, 0x88,
+ 0x53, 0xc2, 0x19, 0xc2, 0x67, 0xd0, 0x83, 0x63, 0x07, 0xf6, 0xaa, 0xa6,
+ 0x75, 0x36, 0xe1, 0xba, 0x67, 0x82, 0x8a, 0x12, 0xf2, 0xb4, 0xb8, 0xfd,
+ 0x49, 0xe3, 0xa1, 0x34, 0xd8, 0x07, 0xcf, 0xc7, 0x7a, 0x83, 0x9e, 0x26,
+ 0x8b, 0x22, 0xae, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47, 0x6c,
+ 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x54, 0xd3, 0x3a, 0x2e, 0x03,
+ 0x77, 0x92, 0xca, 0x53, 0x09, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c,
+ 0x4d, 0x16, 0x44, 0x6e, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47,
+ 0x6c, 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x55, 0xa6, 0x6f, 0x51,
+ 0xc0, 0xdd, 0x92, 0xcd, 0x29, 0x84, 0xd8, 0x07, 0xcf, 0xc7, 0x7a, 0x83,
+ 0x9e, 0x26, 0x8b, 0x22, 0x37, 0x7b, 0xcf, 0x18, 0x4a, 0xed, 0x04, 0x11,
+ 0xa3, 0xb6, 0x55, 0x71, 0xd1, 0xf5, 0xa8, 0x4c, 0x03, 0xaa, 0xd3, 0x37,
+ 0xa8, 0xe0, 0x6e, 0xc9, 0x66, 0x94, 0xc2, 0x74, 0x55, 0x0f, 0xf2, 0xbc,
+ 0xae, 0xc7, 0x2b, 0x43, 0x4e, 0xe2, 0x48, 0x65, 0x8f, 0x20, 0x33, 0xff,
+ 0x68, 0x5c, 0xd1, 0xd6, 0xc5, 0x1b, 0xf7, 0x64, 0xa5, 0x26, 0x16, 0xa6,
+ 0x7f, 0x92, 0x00, 0x18, 0xaa, 0xd2, 0x93, 0x4e, 0x82, 0xe1, 0x60, 0x0f,
+ 0x6b, 0xc2, 0xef, 0x1d, 0x6c, 0x29, 0xdb, 0x71, 0xad, 0x6f, 0x21, 0x3f,
+ 0x68, 0x55, 0x70, 0xdf, 0xdb, 0x10, 0x4e, 0x3e, 0x8c, 0x0b, 0xcb, 0xdf,
+ 0x8d, 0xd4, 0xf0, 0x5f, 0x24, 0x00, 0x31, 0x52, 0xd2, 0x93, 0x4e, 0x82,
+ 0xe1, 0x60, 0x0f, 0x2b, 0xc2, 0xef, 0x1d, 0x6c, 0x29, 0xdd, 0x63, 0x5a,
+ 0xde, 0x42, 0x7e, 0xd0, 0xaa, 0xe1, 0xbf, 0xb6, 0x20, 0x9c, 0x7d, 0x18,
+ 0x2e, 0x55, 0xff, 0x75, 0x3d, 0xfc, 0x90, 0x00, 0xc5, 0x53, 0x4a, 0x4d,
+ 0x38, 0xd0, 0x24, 0x01, 0xb7, 0x78, 0x5d, 0xe3, 0xad, 0x85, 0x3b, 0xac,
+ 0x1c, 0x55, 0x26, 0x10, 0xd6, 0x43, 0x34, 0xf3, 0xd1, 0xc0, 0xda, 0x6d,
+ 0xe7, 0xf8, 0x2f, 0x01, 0x8a, 0xb2, 0x59, 0x37, 0xf1, 0xc7, 0x6e, 0xe0,
+ 0x3d, 0x37, 0xc4, 0x26, 0xdb, 0x9a, 0x0b, 0x08, 0x88, 0xe3, 0x12, 0x69,
+ 0x83, 0x53, 0x93, 0x23, 0x5a, 0x4c, 0x19, 0xb2, 0x59, 0xff, 0xe0, 0x31,
+ 0xac, 0x96, 0x4d, 0xee, 0xa1, 0x0b, 0x6d, 0xde, 0x11, 0x9e, 0x9c, 0x50,
+ 0x17, 0x40, 0xc0, 0x68, 0x88, 0x21, 0x0e, 0xa7, 0x29, 0x51, 0xd6, 0x24,
+ 0xcb, 0x94, 0x69, 0xa9, 0x80, 0xb4, 0xa8, 0x7a, 0xff, 0xff, 0x03, 0x1a,
+ 0x25, 0x99, 0x88, 0xe2, 0xae, 0x1d, 0xb2, 0xee, 0x17, 0x11, 0xc2, 0x0a,
+ 0x94, 0xef, 0x38, 0x21, 0x91, 0x1b, 0xa2, 0x19, 0x90, 0xd1, 0xb7, 0x91,
+ 0xa0, 0xb6, 0x63, 0x75, 0xa1, 0xea, 0x60, 0x2d, 0x2a, 0x1e, 0xb8, 0xfc,
+ 0x5f, 0x9a, 0x78, 0xfa, 0x08, 0x4b, 0xbc, 0x07, 0x3a, 0xaa, 0xe6, 0x15,
+ 0xde, 0xdf, 0xac, 0x4e, 0x31, 0x55, 0x0d, 0x1b, 0x78, 0x8d, 0x04, 0x5a,
+ 0x4c, 0x6e, 0xb6, 0x03, 0x15, 0xc4, 0xb0, 0x09, 0x41, 0x76, 0xbd, 0x67,
+ 0x07, 0xe2, 0xfc, 0xd5, 0xc6, 0x2d, 0x41, 0x00, 0x2e, 0xf1, 0x3a, 0x39,
+ 0xcf, 0x57, 0x7a, 0x5d, 0x61, 0xff, 0x42, 0x38, 0xc5, 0xa7, 0x80, 0xd1,
+ 0xb7, 0x88, 0xd0, 0xc2, 0x49, 0x9b, 0x63, 0x6c, 0xc6, 0x29, 0x92, 0xc8,
+ 0x12, 0x82, 0xed, 0x7a, 0xce, 0x0f, 0xe7, 0x9a, 0x61, 0x77, 0x8d, 0x04,
+ 0x3e, 0xd4, 0x4f, 0x1c, 0xe7, 0xde, 0xde, 0xfd, 0xac, 0xa7, 0x0d, 0xa4,
+ 0x21, 0x7d, 0x8b, 0x38, 0x3d, 0xc9, 0x82, 0xc5, 0x31, 0x05, 0x79, 0x2c,
+ 0x80, 0xc1, 0xed, 0xac, 0xe0, 0xfc, 0x1c, 0x93, 0x10, 0x69, 0x74, 0x9a,
+ 0x1f, 0x4e, 0x82, 0x01, 0xbb, 0x2b, 0x4c, 0xf9, 0x7c, 0x07, 0xaf, 0x4c,
+ 0xf0, 0x35, 0x2f, 0x40, 0x1a, 0xbd, 0x33, 0x61, 0x49, 0x92, 0x64, 0x48,
+ 0x83, 0x85, 0x58, 0xbb, 0xcc, 0x20, 0x1e, 0xdd, 0x04, 0x03, 0x6c, 0x20,
+ 0xe4, 0xfd, 0xff, 0x80, 0xe4, 0xbd, 0x31, 0xf0, 0xc1, 0x1a, 0x9a, 0x74,
+ 0x65, 0x03, 0x19, 0xa6, 0x1b, 0x2c, 0x3d, 0x64, 0x1c, 0x2e, 0xc7, 0xf0,
+ 0xb3, 0x08, 0x07, 0xb7, 0x41, 0x00, 0xdc, 0xc3, 0x93, 0xf7, 0xfe, 0x03,
+ 0x92, 0xf4, 0xc7, 0xc3, 0x04, 0x6a, 0x69, 0xd1, 0x94, 0x0c, 0x66, 0x98,
+ 0x6c, 0xb0, 0xf5, 0x90, 0x70, 0xbb, 0x1f, 0xc2, 0xcc, 0x20, 0x1b, 0x7f,
+ 0xf7, 0x30, 0xe4, 0xfd, 0xe8, 0xff, 0x8f, 0x9e, 0x64, 0x3a, 0xfd, 0x32,
+ 0x81, 0x8c, 0xd3, 0x28, 0x12, 0x02, 0xf0, 0x3b, 0x1a, 0x47, 0x34, 0x58,
+ 0x01, 0xb6, 0xff, 0x7c, 0x6a, 0x7a, 0x61, 0x21, 0x38, 0x7e, 0x3e, 0x79,
+ 0x90, 0xeb, 0xf4, 0x51, 0x93, 0x3b, 0x99, 0x38, 0x60, 0x25, 0x0c, 0x07,
+ 0xc1, 0xdb, 0x34, 0x8e, 0x6d, 0x36, 0xff, 0xef, 0x8d, 0x5b, 0x4c, 0x25,
+ 0xa0, 0xfe, 0x08, 0x7c, 0xf3, 0x21, 0xd7, 0xe8, 0xa9, 0xe9, 0xec, 0x09,
+ 0x01, 0x78, 0x0e, 0xd8, 0xd2, 0x39, 0xb6, 0xfb, 0x7f, 0xbe, 0x1d, 0x3e,
+ 0x87, 0x16, 0x3f, 0x06, 0x85, 0x13, 0x3c, 0x18, 0xa4, 0xce, 0xd5, 0xce,
+ 0x18, 0x0c, 0x1b, 0x74, 0x01, 0x41, 0xa3, 0x1e, 0x9b, 0x28, 0x90, 0x9a,
+ 0xc8, 0x00, 0x3f, 0xc7, 0xbe, 0x0b, 0xb3, 0xa2, 0x0d, 0xd3, 0xcf, 0xe0,
+ 0xc0, 0x71, 0x56, 0x99, 0xfa, 0x3f, 0x1b, 0xc1, 0x50, 0xaa, 0x02, 0x82,
+ 0x62, 0x41, 0xe1, 0x80, 0xcd, 0x64, 0x00, 0x1c, 0x3c, 0x7b, 0xe0, 0xbb,
+ 0x3a, 0x21, 0xa4, 0xc7, 0xea, 0xc0, 0x38, 0xab, 0x4c, 0xef, 0x63, 0xcb,
+ 0x10, 0x68, 0x55, 0x00, 0x30, 0x46, 0x24, 0x1e, 0x18, 0x0c, 0xd6, 0x40,
+ 0x01, 0xc3, 0xfd, 0xf0, 0x5d, 0x9d, 0x10, 0xd2, 0x63, 0xf5, 0x60, 0x1c,
+ 0x55, 0xa6, 0x77, 0xb1, 0xe5, 0x89, 0xa2, 0x0c, 0x11, 0x89, 0x00, 0xdf,
+ 0x32, 0x59, 0x33, 0x68, 0x00, 0x1f, 0x1f, 0x71, 0x9a, 0xde, 0x75, 0xb4,
+ 0x45, 0xde, 0x00, 0xe5, 0x69, 0x9f, 0xff, 0x47, 0xc1, 0x80, 0xf4, 0x0e,
+ 0x8b, 0x43, 0x01, 0x2a, 0x46, 0x24, 0x26, 0x6d, 0x04, 0x03, 0xe3, 0xe2,
+ 0xa1, 0x03, 0x7f, 0xdd, 0xec, 0x05, 0x67, 0x80, 0x39, 0x5a, 0x67, 0xf8,
+ 0x30, 0x15, 0x40, 0xf8, 0x34, 0x30, 0x12, 0xa4, 0xc4, 0x84, 0xcd, 0xa0,
+ 0x80, 0x7c, 0x7c, 0x54, 0x06, 0x6e, 0xff, 0xbb, 0xd8, 0x0a, 0xcf, 0x00,
+ 0x72, 0xb4, 0xcf, 0xf0, 0x60, 0x2a, 0x81, 0xd1, 0x68, 0x60, 0x25, 0x48,
+ 0xc4, 0x84, 0xcd, 0x92, 0x43, 0x4f, 0xee, 0x03, 0x37, 0x7f, 0xdd, 0xec,
+ 0x07, 0xa2, 0xe2, 0x87, 0x1d, 0xc7, 0x72, 0x3b, 0xf5, 0xfa, 0xf4, 0xde,
+ 0x8f, 0xac, 0x70, 0x4b, 0x83, 0xf8, 0x69, 0x13, 0x0e, 0x49, 0x0d, 0x3f,
+ 0xb8, 0xc4, 0xb4, 0xcf, 0x09, 0xb0, 0x78, 0x81, 0xc7, 0x71, 0xc1, 0xc8,
+ 0xef, 0xd7, 0xeb, 0xd3, 0x5a, 0x18, 0x0d, 0x1f, 0x8e, 0x89, 0x08, 0x3f,
+ 0x8d, 0x22, 0x61, 0xc9, 0x21, 0xa7, 0xf7, 0x51, 0x26, 0x99, 0xe1, 0xe8,
+ 0xb8, 0xa1, 0xc7, 0x71, 0xab, 0x12, 0x2d, 0xfa, 0xfd, 0x7a, 0x6b, 0x43,
+ 0x01, 0xa3, 0xf6, 0x05, 0x01, 0xfc, 0x34, 0x89, 0x87, 0x2d, 0xb4, 0xc0,
+ 0x7b, 0xa8, 0x93, 0x4c, 0xf0, 0xf4, 0x5c, 0x58, 0x0e, 0x2a, 0x69, 0x84,
+ 0x53, 0x3a, 0xef, 0xeb, 0xd3, 0x5a, 0x18, 0x0d, 0x1f, 0x60, 0xe1, 0x56,
+ 0x27, 0x84, 0xdf, 0xb7, 0xe3, 0xdf, 0xc2, 0x47, 0x27, 0xee, 0xb5, 0xb7,
+ 0x41, 0xc5, 0x4d, 0x30, 0x35, 0x8d, 0xfa, 0x7c, 0xb1, 0x01, 0x8d, 0x64,
+ 0xb1, 0x57, 0xd3, 0x38, 0x20, 0x70, 0xab, 0x19, 0xe1, 0x37, 0x2d, 0xbf,
+ 0x1e, 0xfe, 0x1c, 0x49, 0xeb, 0x2e, 0x78, 0x0e, 0x2a, 0x69, 0x81, 0xac,
+ 0x6f, 0xd3, 0xe5, 0x80, 0x0c, 0x69, 0x92, 0xc5, 0x5f, 0x4c, 0xf0, 0x70,
+ 0xbb, 0x1b, 0x29, 0xbf, 0x61, 0xdb, 0x1e, 0xfa, 0x29, 0x35, 0x62, 0x72,
+ 0xd6, 0xd8, 0x87, 0x12, 0x69, 0x90, 0xd6, 0x37, 0xe8, 0xc8, 0x7a, 0x08,
+ 0xed, 0xd0, 0x8c, 0x39, 0x18, 0xed, 0xa7, 0x04, 0x38, 0x7b, 0x18, 0x2a,
+ 0x5a, 0x67, 0x88, 0x38, 0x4c, 0x3c, 0xa3, 0x6a, 0x66, 0xd1, 0x97, 0x3f,
+ 0x03, 0xfa, 0xbf, 0x6b, 0x08, 0x0c, 0xa9, 0xf9, 0xff, 0x88, 0x63, 0xac,
+ 0xda, 0x48, 0xda, 0x99, 0xb4, 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6,
+ 0x68, 0x29, 0x49, 0xf9, 0xff, 0xe2, 0x23, 0xac, 0xda, 0x48, 0xda, 0x99,
+ 0xb4, 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x68, 0x29, 0x49, 0xf9,
+ 0xff, 0xe2, 0x23, 0xac, 0xda, 0x48, 0xda, 0x99, 0xb4, 0x52, 0xd3, 0xf3,
+ 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44, 0x64, 0x79,
+ 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb, 0x63, 0x06,
+ 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4, 0x52, 0xd3,
+ 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44, 0x64,
+ 0x79, 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb, 0x63,
+ 0x06, 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4, 0x52,
+ 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x44,
+ 0x64, 0x79, 0x14, 0x8b, 0x9b, 0x45, 0x2d, 0x3f, 0x3f, 0xcc, 0x5e, 0xbb,
+ 0x63, 0x06, 0xaa, 0xdb, 0xff, 0xc4, 0x46, 0x47, 0x91, 0x48, 0xb9, 0xb4,
+ 0x52, 0xd3, 0xf3, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc,
+ 0x45, 0xa0, 0xa5, 0x27, 0xe0, 0xca, 0xfa, 0x2d, 0x17, 0x7f, 0x98, 0xbd,
+ 0x76, 0xc6, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x19,
+ 0x5f, 0x45, 0xa2, 0xef, 0xf3, 0x17, 0xae, 0xd8, 0xc1, 0xaa, 0xb6, 0xff,
+ 0xf1, 0x16, 0x82, 0x94, 0x9f, 0x83, 0x2b, 0xe8, 0xb4, 0x5d, 0xfe, 0x62,
+ 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0xd0, 0x52, 0x93, 0xf0,
+ 0x65, 0x7d, 0x16, 0x8b, 0xbf, 0xcc, 0x5e, 0xbb, 0x63, 0x06, 0xaa, 0xdb,
+ 0xff, 0xc4, 0x5a, 0x0a, 0x52, 0x7e, 0x0c, 0xaf, 0xa2, 0xd1, 0x77, 0xf9,
+ 0x8b, 0xd7, 0x6c, 0x60, 0xd5, 0x5b, 0x7f, 0xf8, 0x8b, 0x41, 0x4a, 0x4f,
+ 0xc1, 0x95, 0xf4, 0x5a, 0x2e, 0xff, 0x31, 0x7a, 0xed, 0x8c, 0x1a, 0xab,
+ 0x6f, 0xff, 0x11, 0x68, 0x29, 0x49, 0xf8, 0x32, 0xbe, 0x8b, 0x45, 0xdf,
+ 0xed, 0xa2, 0x96, 0x9f, 0x86, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14,
+ 0xa4, 0xfc, 0x1d, 0x66, 0xd2, 0x46, 0xd4, 0xdf, 0xed, 0xa2, 0x96, 0x9f,
+ 0x86, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x1d, 0x66,
+ 0xd2, 0x46, 0xd4, 0xdf, 0xed, 0xa2, 0x96, 0x9f, 0x86, 0x0d, 0x55, 0xb7,
+ 0xff, 0x88, 0x4d, 0x06, 0x54, 0xfc, 0x6e, 0x1e, 0x51, 0xb5, 0x37, 0xfb,
+ 0x68, 0xcb, 0x9f, 0x92, 0x35, 0xb5, 0xf8, 0x57, 0xff, 0xff, 0xbf, 0x3f,
+ 0xff, 0xe4, 0xf1, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x39, 0xff, 0xff, 0xff, 0xf8,
+ 0xac, 0xeb, 0xd7, 0xaf, 0x98, 0xf8, 0x23, 0xde, 0x08, 0x5f, 0xed, 0x0c,
+ 0xc4, 0xc4, 0xff, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30, 0x2b, 0x58, 0x1e,
+ 0x31, 0x80, 0x58, 0x40, 0x7c, 0x61, 0xe9, 0x8e, 0x4d, 0x68, 0xc8, 0x2f,
+ 0x53, 0x3d, 0x88, 0xdb, 0x86, 0x79, 0xa1, 0xb7, 0x57, 0xc4, 0xc9, 0x13,
+ 0xea, 0x4b, 0x96, 0x1f, 0x5f, 0x4b, 0x19, 0x25, 0x2d, 0x04, 0xb1, 0x20,
+ 0x19, 0xdd, 0x2f, 0xd2, 0x73, 0xb5, 0x96, 0x9a, 0xef, 0x3f, 0xd1, 0x39,
+ 0x11, 0x39, 0x70, 0x0a, 0x54, 0xf3, 0xfc, 0x4f, 0xff, 0xaf, 0x5f, 0x16,
+ 0x6c, 0xd2, 0x00, 0xed, 0x4f, 0x6f, 0x82, 0x6e, 0x7b, 0x74, 0x14, 0xc3,
+ 0xf0, 0xc7, 0xef, 0x7e, 0x29, 0x4b, 0x2f, 0x00, 0x43, 0x2b, 0x0f, 0x98,
+ 0xf7, 0xe4, 0x1a, 0xa2, 0x15, 0x72, 0xc8, 0x9e, 0x02, 0x07, 0xb4, 0x07,
+ 0xec, 0x83, 0xff, 0x94, 0x20, 0x0d, 0x75, 0xbf, 0xff, 0xeb, 0xd0, 0x88,
+ 0x88, 0x34, 0x02, 0x74, 0x07, 0x1e, 0x23, 0xba, 0xe9, 0x61, 0x9f, 0xee,
+ 0x3c, 0xdd, 0x54, 0x40, 0x5c, 0x79, 0xd8, 0xeb, 0x68, 0x3c, 0x19, 0x79,
+ 0xfa, 0x04, 0x20, 0x4c, 0xc3, 0x01, 0x4f, 0xa6, 0x9f, 0x09, 0xf4, 0x05,
+ 0x40, 0x7d, 0xeb, 0x19, 0xb0, 0xc5, 0x3d, 0x3e, 0x94, 0xc5, 0x66, 0x0c,
+ 0x0f, 0x9f, 0xd0, 0x0e, 0xc3, 0xbd, 0x63, 0x3a, 0xf5, 0xeb, 0x21, 0xe1,
+ 0x8e, 0xb7, 0xd7, 0xaf, 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xac, 0x55, 0x81, 0xcb, 0xae, 0x5d, 0x63, 0x7e, 0xfe, 0xba, 0xf5, 0xeb,
+ 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a,
+ 0xf5, 0xeb, 0xd7, 0xef, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xe1, 0x4f, 0xff,
+ 0xf8, 0xff, 0xff, 0xde, 0x7f, 0xf2, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xd4,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xec, 0x61, 0x01, 0x6f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xfb, 0xc4, 0x79, 0x31, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0x91, 0x70, 0xd3, 0x7a, 0xff, 0xfc, 0x52, 0x01, 0x82,
+ 0x49, 0x89, 0x18, 0xe0, 0x4a, 0xc0, 0x03, 0xe9, 0xb6, 0x16, 0xd0, 0x10,
+ 0x96, 0xef, 0xe5, 0x0c, 0xf9, 0x4a, 0x87, 0x58, 0xa4, 0x94, 0xb7, 0xe2,
+ 0x01, 0x60, 0x91, 0x61, 0x99, 0x33, 0xf4, 0x94, 0xd4, 0x17, 0x66, 0x49,
+ 0x60, 0x48, 0x49, 0x12, 0x55, 0xe7, 0x89, 0xff, 0xff, 0xfe, 0x63, 0x46,
+ 0x53, 0x15, 0x29, 0x8f, 0x17, 0xc7, 0x81, 0x27, 0x49, 0x2e, 0x1e, 0x60,
+ 0xc1, 0xa0, 0x25, 0xc2, 0x26, 0x6f, 0xd6, 0xcf, 0xa0, 0x36, 0xdf, 0x00,
+ 0x5b, 0xc4, 0x3a, 0x93, 0x3c, 0xbb, 0xc0, 0x1a, 0xf9, 0xe9, 0x07, 0x7a,
+ 0xeb, 0x57, 0x5f, 0xcd, 0x9f, 0x6b, 0x95, 0x9e, 0xf7, 0xd6, 0xb3, 0x8c,
+ 0xcf, 0xcc, 0x58, 0x10, 0xb7, 0x1f, 0xbb, 0x3f, 0xe2, 0x17, 0x0c, 0xc4,
+ 0xb1, 0x1a, 0xc2, 0xf9, 0x9e, 0x67, 0x1d, 0xf0, 0xff, 0x84, 0xa0, 0x7a,
+ 0xa3, 0x39, 0x52, 0x01, 0x17, 0xd3, 0xb8, 0xfd, 0xbf, 0xe4, 0x1a, 0x05,
+ 0x90, 0x79, 0x85, 0x60, 0x3f, 0xfe, 0x12, 0x78, 0xd4, 0x47, 0x4d, 0x3c,
+ 0x93, 0x3d, 0x3d, 0x3f, 0xe2, 0x57, 0x0b, 0x00, 0x01, 0x3c, 0x80, 0x81,
+ 0xa8, 0xd8, 0x7a, 0x0d, 0x90, 0x07, 0xb5, 0x5f, 0x72, 0xc0, 0xbf, 0x66,
+ 0x30, 0x32, 0xcf, 0x7f, 0xff, 0xff, 0xff, 0x98, 0x88, 0x03, 0xdf, 0xfc,
+ 0x24, 0x86, 0xf3, 0x30, 0xbf, 0x50, 0x63, 0x04, 0x33, 0x29, 0x0d, 0xcc,
+ 0x12, 0x69, 0x29, 0xf7, 0xc7, 0xfc, 0xfe, 0xb8, 0xa2, 0xc1, 0xa0, 0x4e,
+ 0x82, 0x54, 0x09, 0xd0, 0x4a, 0x81, 0x3a, 0x09, 0x50, 0x27, 0x41, 0x37,
+ 0xda, 0xde, 0xc6, 0xd8, 0x53, 0x61, 0xc2, 0x66, 0x07, 0xc2, 0x14, 0x2d,
+ 0xe1, 0x94, 0x59, 0x7a, 0xf5, 0xe3, 0x3d, 0x84, 0xff, 0xe8, 0xec, 0x7f,
+ 0x63, 0x80, 0x8d, 0xab, 0x6f, 0xf3, 0x5a, 0xcf, 0xc8, 0x9b, 0xf1, 0x38,
+ 0x74, 0x93, 0x15, 0xc2, 0x73, 0x9f, 0x02, 0x2d, 0xe7, 0xa5, 0xe1, 0xc9,
+ 0xe3, 0x3e, 0x78, 0x9c, 0x47, 0x85, 0x24, 0xfc, 0x67, 0xdd, 0x7b, 0x79,
+ 0xff, 0xff, 0xe2, 0x65, 0xf8, 0x8f, 0xf5, 0xe2, 0xe0, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xb1, 0x84, 0x08, 0x5f, 0x7c, 0x46, 0x27, 0xf0, 0x79,
+ 0x89, 0xf1, 0x1f, 0xeb, 0xcd, 0xe7, 0xff, 0xaf, 0xff, 0xd7, 0xd4, 0x04,
+ 0x0f, 0x89, 0xf3, 0xf8, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e,
+ 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe6, 0xf1, 0x5f, 0xfe, 0x1f, 0x34, 0x02,
+ 0xfa, 0x50, 0x1a, 0x88, 0xbf, 0x30, 0xf0, 0x80, 0x7f, 0xc3, 0xc8, 0x38,
+ 0x32, 0x9b, 0x68, 0x2f, 0xc0, 0xc0, 0xf2, 0x9f, 0x1d, 0xbf, 0xe6, 0xc0,
+ 0x1c, 0x7f, 0xf8, 0x4b, 0x00, 0x22, 0x9b, 0x98, 0xda, 0x28, 0xfd, 0xf2,
+ 0xa7, 0x67, 0x40, 0x34, 0xe1, 0xc1, 0x4e, 0x25, 0x80, 0xfc, 0xdf, 0xf8,
+ 0x0f, 0xc0, 0x13, 0x38, 0x88, 0x9c, 0x47, 0xe0, 0x30, 0x73, 0x47, 0xff,
+ 0xf8, 0x4c, 0x70, 0x04, 0xeb, 0x61, 0x79, 0x2f, 0x6c, 0x41, 0x32, 0x42,
+ 0x64, 0xcc, 0xf1, 0xc0, 0x79, 0x09, 0x13, 0x38, 0x8b, 0x78, 0x8f, 0x11,
+ 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2,
+ 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x0a, 0x60, 0x25,
+ 0xf7, 0x01, 0xe6, 0xf3, 0xe0, 0x0d, 0x5d, 0x26, 0xf9, 0xef, 0xfc, 0x0e,
+ 0x88, 0xb7, 0x3c, 0x27, 0x28, 0x7a, 0xdb, 0x6d, 0x98, 0x1e, 0x6f, 0x08,
+ 0x11, 0x96, 0xe6, 0xc8, 0x7c, 0x38, 0x8c, 0xb7, 0x36, 0x43, 0xf1, 0x11,
+ 0x38, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
+ 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f,
+ 0xc0, 0x40, 0x7f, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xdf, 0x9f, 0xff,
+ 0xf2, 0x78, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xab, 0x57, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xf8, 0xac,
+ 0xff, 0xf7, 0x98, 0xfc, 0x04, 0x8f, 0x5c, 0xad, 0x0c, 0xc4, 0xc4, 0xff,
+ 0xff, 0xfd, 0xff, 0xe1, 0x83, 0x40, 0x9f, 0x66, 0x7b, 0x50, 0x22, 0x82,
+ 0x47, 0xfa, 0x18, 0xf1, 0xd1, 0xe2, 0x3b, 0x8e, 0xda, 0x64, 0xce, 0x1a,
+ 0x1c, 0x07, 0x0c, 0x07, 0xf0, 0xff, 0x04, 0x02, 0xc8, 0x8d, 0xdf, 0x4e,
+ 0x95, 0xed, 0x31, 0x3f, 0xfe, 0xfd, 0xf8, 0x63, 0xf5, 0x8c, 0x40, 0x3c,
+ 0x59, 0x38, 0x24, 0x7b, 0x01, 0x0b, 0x7a, 0x4e, 0xeb, 0xf3, 0x77, 0x29,
+ 0x93, 0x3f, 0x3b, 0xf7, 0xef, 0xc3, 0x02, 0xbb, 0x88, 0x7c, 0x84, 0xb0,
+ 0x4c, 0xc0, 0xdb, 0x8d, 0x21, 0x1b, 0x5b, 0xf3, 0x34, 0x33, 0xfc, 0x6a,
+ 0x95, 0xdf, 0xff, 0xfe, 0xc4, 0xc4, 0x28, 0x04, 0xe1, 0x55, 0xb0, 0x7e,
+ 0x72, 0xfd, 0x07, 0xff, 0x3e, 0x83, 0x32, 0xe1, 0x8b, 0x43, 0xe4, 0xdf,
+ 0x84, 0xfe, 0xc7, 0x8e, 0x26, 0xeb, 0x58, 0xcd, 0x82, 0x5c, 0x08, 0xf7,
+ 0xa5, 0xdf, 0xff, 0xcc, 0xe8, 0x78, 0x5a, 0xca, 0xdb, 0x28, 0x0b, 0xa0,
+ 0xc5, 0xdd, 0x33, 0x5a, 0xc6, 0x77, 0xe1, 0x99, 0xf0, 0xd7, 0xbf, 0x0d,
+ 0x77, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x80,
+ 0x82, 0xef, 0x97, 0x59, 0xb3, 0xfd, 0xfd, 0x77, 0xef, 0xdf, 0xbf, 0x0d,
+ 0x78, 0x6b, 0xdf, 0xbf, 0x7e, 0xfc, 0x35, 0xe1, 0xaf, 0x0d, 0x7b, 0xf7,
+ 0xef, 0xc3, 0x1f, 0xff, 0xf0, 0xf4, 0x50, 0x00, 0x27, 0xf0, 0xcf, 0x86,
+ 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xa3, 0xff,
+ 0xbc, 0xff, 0xe4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xed, 0x69, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1,
+ 0x5e, 0x77, 0x93, 0xf2, 0x9f, 0x04, 0x9e, 0x03, 0xfb, 0xe5, 0x05, 0xe6,
+ 0x7c, 0x38, 0x89, 0x36, 0xf0, 0xac, 0xcb, 0x80, 0x49, 0x6b, 0x6d, 0x17,
+ 0xff, 0x4f, 0x13, 0x13, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xa0, 0x84, 0xe8,
+ 0xa3, 0xa3, 0xf2, 0xd1, 0xf8, 0xd6, 0x7e, 0x3b, 0x0f, 0xf9, 0xd2, 0xf7,
+ 0xe4, 0x3c, 0x3b, 0x6c, 0x80, 0x1c, 0xff, 0x89, 0xa1, 0x70, 0x20, 0x35,
+ 0x7e, 0x29, 0xc2, 0x2d, 0xf2, 0xc6, 0xac, 0xea, 0x6c, 0x6e, 0x61, 0xa7,
+ 0x25, 0x0c, 0x0b, 0xe0, 0xd5, 0x37, 0xcc, 0x68, 0x16, 0xb0, 0x35, 0xc4,
+ 0x70, 0xb2, 0x19, 0xee, 0xd9, 0x98, 0xb7, 0x49, 0x95, 0x32, 0x0f, 0xbd,
+ 0x30, 0x23, 0xe1, 0xfc, 0xc4, 0xe5, 0x24, 0x31, 0xcb, 0x61, 0x01, 0x7f,
+ 0x23, 0x97, 0x7a, 0x36, 0x76, 0x8e, 0xaf, 0x78, 0xee, 0xda, 0x00, 0xb4,
+ 0x34, 0x4d, 0x43, 0x58, 0xf4, 0x8c, 0xae, 0x77, 0x98, 0x44, 0x67, 0x96,
+ 0x44, 0x2c, 0xaa, 0x16, 0x58, 0x39, 0x11, 0x9a, 0x5a, 0x4f, 0x03, 0x64,
+ 0x0c, 0x10, 0x30, 0xf1, 0x22, 0xfe, 0x13, 0x6c, 0x54, 0xac, 0x54, 0x45,
+ 0xda, 0xf6, 0x1c, 0x08, 0xc2, 0x2a, 0x07, 0xc3, 0xff, 0xe2, 0x7f, 0xff,
+ 0xff, 0xfc, 0x20, 0x6e, 0x08, 0x7e, 0x77, 0xed, 0xbc, 0xe4, 0xe9, 0xc8,
+ 0x4c, 0xa4, 0xda, 0x8e, 0x6f, 0xc4, 0x64, 0xcc, 0x1e, 0xdf, 0x00, 0x30,
+ 0x3c, 0xaf, 0x8e, 0xd8, 0xb4, 0x8e, 0x28, 0x13, 0xe1, 0x63, 0x0a, 0x79,
+ 0x17, 0x9c, 0xf8, 0x06, 0x7e, 0x08, 0x51, 0xaa, 0xc7, 0x3a, 0x8b, 0x06,
+ 0x29, 0xfc, 0x82, 0x63, 0x78, 0x8e, 0xb9, 0x84, 0x41, 0x23, 0x60, 0x2f,
+ 0x7e, 0x7c, 0x8a, 0x50, 0x30, 0x13, 0xbf, 0xaf, 0x4f, 0xfe, 0xe0, 0x9b,
+ 0x60, 0x6f, 0x78, 0xab, 0x0f, 0x3f, 0xe2, 0x1c, 0x33, 0x15, 0xf3, 0xc2,
+ 0x3c, 0x17, 0x98, 0x2a, 0xbf, 0xea, 0x73, 0x82, 0x7e, 0x1e, 0xb8, 0x40,
+ 0x8f, 0xd0, 0xf6, 0x00, 0x25, 0x68, 0x0f, 0xea, 0x42, 0x17, 0xe8, 0x0f,
+ 0xf1, 0x7f, 0x37, 0xfe, 0x7f, 0x82, 0x02, 0xfc, 0x32, 0x83, 0xf0, 0xef,
+ 0xff, 0xff, 0xf8, 0x81, 0x13, 0x60, 0xc8, 0x92, 0x20, 0xe8, 0x09, 0x82,
+ 0xaa, 0x2b, 0x08, 0x9b, 0x1c, 0xf3, 0x39, 0x70, 0xe0, 0x1d, 0xf3, 0x47,
+ 0xc3, 0xff, 0x09, 0x43, 0xe9, 0xa0, 0x66, 0x3c, 0xad, 0x41, 0xf8, 0x02,
+ 0x29, 0xa0, 0x66, 0x38, 0x95, 0xa8, 0x01, 0x14, 0xd0, 0x33, 0x14, 0xd5,
+ 0xab, 0xc3, 0x9f, 0x94, 0xa1, 0xb8, 0x7f, 0x3f, 0x41, 0x3f, 0xf6, 0x3b,
+ 0x1f, 0xd8, 0xec, 0x71, 0x11, 0x2f, 0x37, 0xff, 0xf7, 0x82, 0x13, 0x60,
+ 0x01, 0x9b, 0x7f, 0xca, 0xf9, 0x7d, 0xaa, 0x8f, 0x61, 0x1f, 0xbe, 0x74,
+ 0xc6, 0x73, 0xf2, 0x71, 0x13, 0xa6, 0x2d, 0x61, 0x94, 0x1f, 0x86, 0x03,
+ 0xd5, 0xf9, 0x18, 0xe3, 0xf4, 0x00, 0x43, 0x1a, 0x5c, 0x3e, 0xc6, 0xbd,
+ 0x9f, 0x2b, 0xb4, 0xb1, 0xf4, 0x02, 0x3f, 0x07, 0x91, 0x5b, 0xaf, 0xc4,
+ 0xef, 0x55, 0x78, 0x65, 0xeb, 0xbf, 0xf7, 0xfb, 0xbc, 0x77, 0xb3, 0xf9,
+ 0xbf, 0xfb, 0x93, 0x96, 0x33, 0xc0, 0x25, 0x14, 0x8d, 0xaa, 0xf3, 0x00,
+ 0x94, 0x52, 0x36, 0xab, 0xc0, 0xbf, 0x7b, 0xe1, 0x23, 0x73, 0x80, 0x0f,
+ 0xff, 0x96, 0x62, 0x0f, 0xc3, 0xd2, 0x2f, 0x8b, 0xc0, 0x5e, 0x69, 0x3b,
+ 0xbf, 0x2f, 0xf0, 0x96, 0x00, 0x43, 0x1a, 0x5c, 0x3e, 0xc6, 0xbd, 0x83,
+ 0x2e, 0xe9, 0xe4, 0xfd, 0xff, 0x40, 0xdf, 0xef, 0xa2, 0x37, 0xb9, 0x07,
+ 0xf7, 0xe3, 0x39, 0xb3, 0x28, 0x87, 0xe4, 0xf4, 0xf1, 0x24, 0x2c, 0x01,
+ 0x98, 0x75, 0xf3, 0x5b, 0x7f, 0xdf, 0xbe, 0xff, 0xfb, 0xff, 0x06, 0x1c,
+ 0x9e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4, 0x57, 0xff,
+ 0x80, 0x99, 0xc4, 0x77, 0xeb, 0xc6, 0xff, 0xdf, 0xfd, 0x78, 0xee, 0x43,
+ 0x41, 0x0e, 0x9f, 0xfb, 0xfe, 0xd2, 0xc0, 0x65, 0x23, 0xbe, 0x7b, 0xf3,
+ 0xfe, 0x23, 0x01, 0x23, 0x56, 0x7b, 0xf3, 0xf8, 0x81, 0x62, 0x8e, 0x2e,
+ 0xaf, 0x27, 0xfb, 0x30, 0xd8, 0x5e, 0xd8, 0xcf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x39, 0xbf, 0xe2, 0x4a,
+ 0x7f, 0xe7, 0xfe, 0x13, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf1,
+ 0x5f, 0xff, 0x93, 0xc5, 0x7f, 0xfe, 0x6f, 0xfa, 0x80, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xab, 0x99, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfd,
+ 0xff, 0x5e, 0x8b, 0x89, 0xff, 0xff, 0xfb, 0xf7, 0xef, 0xe2, 0x90, 0x03,
+ 0x13, 0x4e, 0x9f, 0x7b, 0xa9, 0x26, 0xdb, 0x58, 0x01, 0xad, 0x0d, 0x5f,
+ 0xc1, 0x72, 0xbb, 0x09, 0x4e, 0x1d, 0x25, 0xe3, 0x91, 0x18, 0x55, 0x67,
+ 0x8d, 0xf9, 0x24, 0x08, 0x88, 0x12, 0x27, 0x87, 0x44, 0xa6, 0x7b, 0xb7,
+ 0xff, 0x99, 0x00, 0x61, 0x5e, 0xb1, 0xe7, 0xff, 0xf1, 0x3f, 0xff, 0xdf,
+ 0xac, 0x62, 0xe1, 0x84, 0xd2, 0xdd, 0x90, 0x04, 0xcc, 0xe8, 0x8c, 0xcb,
+ 0xc2, 0x5f, 0xbe, 0x68, 0xf0, 0x0a, 0x65, 0x76, 0xee, 0x51, 0x94, 0x74,
+ 0xe1, 0xd6, 0x0c, 0x49, 0x99, 0xab, 0xb3, 0xa4, 0x77, 0xef, 0xdf, 0xbf,
+ 0x0c, 0x05, 0x57, 0xfd, 0x4e, 0x30, 0x4e, 0xf5, 0x60, 0x2e, 0x04, 0x61,
+ 0x3e, 0x1c, 0xd5, 0x75, 0xff, 0xfd, 0xf9, 0x38, 0x1f, 0x04, 0x10, 0x6c,
+ 0x77, 0x99, 0xf2, 0x73, 0xff, 0x02, 0x66, 0xee, 0xbf, 0xc1, 0x22, 0x44,
+ 0x28, 0x1e, 0xef, 0x06, 0x4f, 0x78, 0x7c, 0x84, 0x89, 0x91, 0xaa, 0x4e,
+ 0x3c, 0xfa, 0xef, 0x30, 0x9e, 0x01, 0x1e, 0xbe, 0xda, 0x18, 0xf2, 0x72,
+ 0x22, 0x22, 0x22, 0xf1, 0x24, 0xe1, 0x33, 0xed, 0x6c, 0x03, 0x5e, 0x4e,
+ 0xe4, 0xbc, 0xef, 0xd0, 0x1a, 0x08, 0x3f, 0x00, 0xdb, 0x40, 0x73, 0xf5,
+ 0xd6, 0x33, 0x6f, 0xc3, 0x1e, 0x44, 0x45, 0x22, 0x97, 0x82, 0x6f, 0x80,
+ 0x10, 0x24, 0xfe, 0x04, 0x38, 0xf8, 0xe8, 0x10, 0x98, 0x09, 0x93, 0x18,
+ 0xfb, 0x71, 0x17, 0xac, 0x5c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xae,
+ 0x65, 0x81, 0x0b, 0xe5, 0xd6, 0x37, 0xef, 0xeb, 0x1c, 0xfd, 0xfb, 0xe4,
+ 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x4f, 0xff, 0xfe,
+ 0x3f, 0xff, 0xf7, 0x9f, 0xfc, 0x98, 0x9f, 0xff, 0xff, 0xff, 0xf5, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xee, 0x71, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xc2, 0x3c, 0xc7, 0xc3, 0x75, 0xbf, 0xc5, 0xf0, 0x4e, 0xd3, 0x1e,
+ 0xab, 0x5f, 0x1d, 0x5e, 0x3f, 0x33, 0xe1, 0x94, 0xac, 0xbc, 0xcb, 0x80,
+ 0x08, 0x8b, 0x68, 0xe2, 0xd7, 0x7b, 0xfe, 0xac, 0x33, 0x2b, 0xc1, 0x77,
+ 0x2f, 0xb3, 0x53, 0x9e, 0xef, 0x13, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x85,
+ 0x5e, 0x3e, 0x68, 0xf1, 0x97, 0x05, 0x5a, 0x88, 0x24, 0x72, 0xd1, 0xe5,
+ 0x04, 0x3f, 0x37, 0x72, 0x77, 0x66, 0xb8, 0x6f, 0x56, 0xc6, 0xf7, 0x1e,
+ 0x5c, 0x73, 0x39, 0xa6, 0x55, 0xff, 0xc5, 0x30, 0xcc, 0x89, 0xd3, 0xc2,
+ 0x2e, 0x32, 0xec, 0xa2, 0x56, 0x90, 0x70, 0x6c, 0x07, 0x31, 0xa0, 0x49,
+ 0xee, 0xcc, 0xe4, 0x8a, 0xbb, 0x20, 0x00, 0xcf, 0x7e, 0x8d, 0x31, 0x95,
+ 0xff, 0x66, 0xef, 0x7c, 0x70, 0xd2, 0xfc, 0x18, 0xce, 0x1b, 0xc5, 0xd6,
+ 0xf3, 0xaa, 0xf3, 0xa1, 0x04, 0x4d, 0x3f, 0xd6, 0x06, 0x39, 0x36, 0x7a,
+ 0x4b, 0xdf, 0xd2, 0x3a, 0xab, 0x16, 0x55, 0xdb, 0xe0, 0x2d, 0x89, 0x38,
+ 0x68, 0x06, 0x6f, 0x0e, 0xed, 0x90, 0xbb, 0x79, 0xa0, 0xa5, 0x13, 0xf0,
+ 0x1e, 0x7c, 0x8d, 0x2d, 0x9a, 0xf2, 0x93, 0xfd, 0x0b, 0xaf, 0x5c, 0xbc,
+ 0x49, 0xe1, 0x22, 0xdc, 0xd3, 0x67, 0xf6, 0x9f, 0xe1, 0x31, 0x7d, 0xdf,
+ 0xa7, 0x47, 0x34, 0x00, 0x02, 0x01, 0xa0, 0xe7, 0x62, 0x01, 0x0f, 0x74,
+ 0x44, 0x3f, 0xa6, 0xfa, 0x31, 0x68, 0xa1, 0xdb, 0x7f, 0x6c, 0x5e, 0xde,
+ 0xf8, 0xfe, 0xc0, 0xff, 0x17, 0x8a, 0xff, 0xff, 0xc8, 0x6e, 0x1b, 0x8b,
+ 0xbf, 0xc2, 0x3c, 0x07, 0x7f, 0x96, 0x09, 0x5b, 0xd2, 0xc7, 0xd3, 0x0d,
+ 0x3a, 0x57, 0x31, 0x84, 0xca, 0xa3, 0x81, 0xef, 0x34, 0xee, 0xf1, 0xe0,
+ 0x1c, 0xdf, 0x8a, 0x91, 0x00, 0xbb, 0xaa, 0xdb, 0xfc, 0x00, 0xc0, 0xf5,
+ 0x7c, 0x76, 0xc5, 0x83, 0x0c, 0x3a, 0xa9, 0xc0, 0x23, 0x2a, 0x75, 0x4f,
+ 0xfd, 0xfe, 0x60, 0x85, 0x15, 0xb3, 0x00, 0x35, 0x08, 0x44, 0x97, 0x60,
+ 0x07, 0x40, 0x44, 0x89, 0x7a, 0x83, 0xd7, 0x45, 0xbe, 0x98, 0x7f, 0x63,
+ 0x37, 0x7f, 0x76, 0x59, 0x84, 0x4f, 0x9f, 0x8d, 0x8d, 0x43, 0xfc, 0xf1,
+ 0x55, 0x84, 0xf5, 0xb0, 0xde, 0xae, 0x73, 0x71, 0xe8, 0x3c, 0x4c, 0x31,
+ 0x7c, 0xc5, 0xb4, 0x00, 0xcf, 0xaa, 0xff, 0xf7, 0xf9, 0xdd, 0x7e, 0x45,
+ 0x42, 0x0f, 0xa1, 0xf2, 0xfe, 0xe3, 0x81, 0x8d, 0x32, 0x03, 0xdf, 0xae,
+ 0x06, 0x01, 0x0d, 0x46, 0x03, 0x80, 0x57, 0x43, 0x06, 0x21, 0xc0, 0x3f,
+ 0xe1, 0x3e, 0x12, 0x30, 0xfe, 0x65, 0x26, 0xf0, 0x87, 0xbc, 0xe3, 0xd8,
+ 0x1f, 0xd7, 0xaf, 0xff, 0x90, 0x91, 0x94, 0xc7, 0xf1, 0x1c, 0x3b, 0x3b,
+ 0x40, 0x4f, 0xac, 0x07, 0x7f, 0x6c, 0x18, 0x1d, 0x04, 0x88, 0x2f, 0xa9,
+ 0xba, 0x38, 0x51, 0x38, 0x03, 0xec, 0xc8, 0x15, 0xdc, 0xbf, 0xe1, 0x28,
+ 0xc8, 0x08, 0xad, 0x87, 0x62, 0x52, 0x4f, 0x09, 0x25, 0xc7, 0xbb, 0x9f,
+ 0xfc, 0x33, 0x81, 0x56, 0xb4, 0xd4, 0xce, 0xef, 0xe2, 0x60, 0x5e, 0x17,
+ 0x98, 0xa3, 0x8e, 0xbb, 0x6d, 0x95, 0xa5, 0x9d, 0xe8, 0xa3, 0x31, 0xdf,
+ 0x68, 0x8e, 0xbe, 0xf0, 0x67, 0xe3, 0x8b, 0x00, 0x67, 0xd5, 0x7f, 0xfb,
+ 0xfe, 0x30, 0x92, 0xbf, 0x7c, 0x09, 0x8f, 0x7f, 0xc3, 0xac, 0x18, 0xe4,
+ 0x8e, 0xf8, 0x17, 0x62, 0x79, 0x5e, 0x84, 0x44, 0xe6, 0x33, 0xa6, 0x1f,
+ 0x3a, 0x60, 0x9c, 0x40, 0x25, 0xf1, 0xfa, 0xf0, 0x83, 0xf0, 0x3f, 0x79,
+ 0xc0, 0x57, 0xdc, 0xb6, 0x1f, 0xf6, 0xb8, 0x01, 0xf2, 0xfb, 0x44, 0xdc,
+ 0x52, 0xf6, 0xe6, 0xec, 0xdf, 0xf7, 0xf8, 0xee, 0x2b, 0x0e, 0xfa, 0x03,
+ 0xde, 0xab, 0x03, 0xed, 0xf0, 0xcc, 0x68, 0x0d, 0xa1, 0x77, 0xf3, 0xc4,
+ 0xe7, 0xf3, 0x7d, 0x21, 0xc7, 0x84, 0x60, 0xaf, 0x00, 0xbe, 0xa8, 0x0f,
+ 0xa8, 0x10, 0xe0, 0xa5, 0xcf, 0x41, 0xa7, 0xb0, 0x1c, 0x13, 0x0e, 0xa9,
+ 0x6e, 0x18, 0x1f, 0x57, 0xc7, 0x70, 0x00, 0x56, 0xb6, 0x97, 0xd7, 0xb5,
+ 0xc5, 0xb6, 0xa3, 0xb9, 0x9c, 0x20, 0xc0, 0xff, 0x03, 0x08, 0x5e, 0xa0,
+ 0x3e, 0xaa, 0x30, 0xa4, 0xa0, 0x00, 0x93, 0x49, 0xa6, 0x9a, 0x69, 0xb4,
+ 0xfe, 0x00, 0xa0, 0x99, 0x18, 0x08, 0x29, 0x06, 0xda, 0xbf, 0xff, 0x30,
+ 0xf7, 0x1f, 0xfe, 0x1f, 0x20, 0x00, 0x60, 0xac, 0xbf, 0x4c, 0x71, 0x78,
+ 0x1c, 0x3c, 0xd7, 0xdc, 0x7f, 0xf8, 0x48, 0xb0, 0x06, 0x95, 0x25, 0x3f,
+ 0x3f, 0xcf, 0x7e, 0x2e, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb9, 0xc4,
+ 0x09, 0x5c, 0x86, 0x8e, 0x1c, 0x3d, 0xf0, 0xe8, 0x95, 0xc3, 0x6c, 0x3d,
+ 0xb5, 0x9b, 0x81, 0x3b, 0xd0, 0x17, 0xec, 0x0f, 0xff, 0xff, 0xe1, 0xc8,
+ 0xfe, 0x3f, 0xb4, 0xe6, 0x75, 0x6e, 0xfb, 0x8a, 0x8d, 0xb7, 0x44, 0xfa,
+ 0xfb, 0xf3, 0xff, 0x0e, 0x7e, 0xb0, 0xe1, 0xa7, 0x04, 0x01, 0x1f, 0x74,
+ 0x7f, 0x73, 0x89, 0x0e, 0x86, 0x40, 0xfc, 0x3f, 0xcf, 0x5e, 0x3b, 0x91,
+ 0xc2, 0x4c, 0x1e, 0xa7, 0xf0, 0xe3, 0x49, 0x12, 0x8d, 0x50, 0x00, 0x23,
+ 0xfc, 0x91, 0x81, 0xfa, 0x89, 0x93, 0xcb, 0xc5, 0x99, 0xdc, 0x61, 0x33,
+ 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x91, 0xc1, 0x27, 0xc0, 0xed, 0x5e, 0x14, 0xf5, 0xff, 0xff, 0xc2,
+ 0x1f, 0xf1, 0x9f, 0xff, 0x8e, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xab, 0xdb, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xbf,
+ 0x7e, 0xfc, 0x31, 0xff, 0xa8, 0x70, 0x85, 0x4f, 0x80, 0x1f, 0x4d, 0x3c,
+ 0xe1, 0x0f, 0x5f, 0x80, 0x0e, 0xd9, 0x13, 0x19, 0x01, 0x52, 0x66, 0xaf,
+ 0x17, 0x88, 0x36, 0x23, 0x13, 0xff, 0xff, 0xf7, 0xff, 0x86, 0x0d, 0x03,
+ 0x05, 0xb3, 0x39, 0x6b, 0xb1, 0x46, 0x7b, 0xb6, 0x66, 0x2d, 0xd2, 0x65,
+ 0x4c, 0x87, 0xda, 0x60, 0x71, 0x8d, 0x32, 0x71, 0xe2, 0xf9, 0x10, 0xab,
+ 0x37, 0x54, 0x97, 0x28, 0xcf, 0xf3, 0xde, 0x0d, 0xdb, 0x40, 0x16, 0xbc,
+ 0x41, 0x55, 0x33, 0xe0, 0xc0, 0xe0, 0xcf, 0xc5, 0xe4, 0xff, 0x3e, 0xa5,
+ 0xa2, 0x18, 0x2a, 0x7d, 0x80, 0xbf, 0x09, 0x8b, 0x00, 0x67, 0x98, 0x1c,
+ 0x3c, 0x9d, 0xcf, 0x8f, 0x9a, 0x07, 0xa1, 0xeb, 0xf5, 0xe1, 0x1b, 0x67,
+ 0x0d, 0x7a, 0x1f, 0xf7, 0xe7, 0x83, 0x28, 0x9f, 0xff, 0x7e, 0xfc, 0x31,
+ 0xc7, 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x6c, 0x00, 0x33, 0x6f, 0xf9, 0x5f,
+ 0x09, 0x2b, 0xc4, 0x95, 0x40, 0x09, 0xce, 0xe4, 0x82, 0x46, 0x35, 0x40,
+ 0x08, 0xcd, 0xce, 0x76, 0xaf, 0x28, 0xbe, 0x12, 0x48, 0xe1, 0xb5, 0xb2,
+ 0x46, 0xfc, 0xf3, 0x89, 0x37, 0x00, 0x29, 0x61, 0xf9, 0xdf, 0xbf, 0x7e,
+ 0xfd, 0xfe, 0xbf, 0xfd, 0xff, 0x0c, 0x55, 0x05, 0x81, 0xc7, 0xfe, 0x12,
+ 0x61, 0x2c, 0xce, 0x22, 0x33, 0x4b, 0xb4, 0x0d, 0x0c, 0x4d, 0xe9, 0x43,
+ 0xe9, 0xf8, 0xf1, 0x69, 0x4b, 0x06, 0x36, 0xc2, 0x4c, 0xaa, 0xdf, 0x3f,
+ 0x8c, 0x67, 0x5a, 0xdf, 0xb4, 0x7d, 0xf2, 0x8b, 0xff, 0x80, 0x19, 0xdf,
+ 0x5a, 0x7e, 0xf8, 0xe7, 0xdf, 0x0c, 0x7f, 0xfe, 0xef, 0x0a, 0x97, 0x80,
+ 0x4a, 0x29, 0x1b, 0x55, 0xe6, 0x2b, 0x6e, 0x9e, 0x1f, 0x33, 0xcd, 0x6d,
+ 0x7f, 0xff, 0x58, 0x63, 0xfe, 0xe2, 0x2e, 0x3c, 0x67, 0x80, 0x10, 0x87,
+ 0xb4, 0x43, 0xa8, 0x3f, 0x00, 0x4a, 0x29, 0x1b, 0x55, 0xe0, 0xad, 0xba,
+ 0x78, 0x7c, 0xcf, 0x07, 0xed, 0x6d, 0x7f, 0xff, 0x50, 0xff, 0x58, 0x84,
+ 0x28, 0x00, 0x1f, 0x8a, 0x00, 0x02, 0x00, 0x31, 0x9b, 0x58, 0x1d, 0x15,
+ 0x7f, 0xa1, 0xba, 0xdb, 0x6d, 0xf8, 0x00, 0x4b, 0xf7, 0x10, 0xe8, 0x14,
+ 0xdc, 0x32, 0x3b, 0x7b, 0x7d, 0x78, 0x3f, 0x1c, 0xf9, 0x10, 0x9b, 0x38,
+ 0x01, 0x6f, 0x6b, 0x4d, 0xbb, 0xeb, 0x60, 0xfe, 0x4c, 0x5c, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xaf, 0x6d, 0x8a, 0xef, 0x97, 0x58, 0xd7, 0xfb,
+ 0xfa, 0xc7, 0x77, 0xf9, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xdf, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3,
+ 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xef, 0x79, 0x03, 0xbf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xef, 0x0a, 0x78, 0x82,
+ 0x94, 0x4e, 0x00, 0x73, 0xbf, 0xac, 0x3f, 0x63, 0xa7, 0xc4, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x49, 0x7c, 0x50, 0xc0, 0x04, 0x11,
+ 0xa9, 0xf2, 0x66, 0xda, 0x0b, 0x34, 0x9b, 0x1f, 0x3f, 0x42, 0xb8, 0x5f,
+ 0xa8, 0xac, 0x39, 0x14, 0x16, 0x83, 0x8d, 0xd0, 0x8d, 0xef, 0x39, 0xf1,
+ 0x22, 0xe4, 0x0d, 0xf8, 0x3c, 0xcc, 0xa0, 0x71, 0xe7, 0x93, 0x64, 0xaf,
+ 0xf7, 0x3f, 0xb5, 0xc1, 0x08, 0xf8, 0x1c, 0x16, 0x27, 0xff, 0xff, 0xff,
+ 0xf3, 0x7e, 0xa0, 0xca, 0x85, 0x49, 0x59, 0xb8, 0x01, 0xc5, 0xc8, 0x45,
+ 0xec, 0x3c, 0xdb, 0x9c, 0x8d, 0x74, 0xf7, 0x80, 0x84, 0x4b, 0x6a, 0x5d,
+ 0x44, 0x8d, 0x40, 0x04, 0xd1, 0x6e, 0x97, 0xb6, 0x7a, 0xa0, 0x01, 0xea,
+ 0x80, 0x99, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0x93, 0x6e, 0xab, 0xf1, 0x20,
+ 0x0c, 0xea, 0xa3, 0x6a, 0xa8, 0x67, 0x5c, 0x9f, 0xff, 0xff, 0xff, 0xeb,
+ 0xff, 0xff, 0xff, 0xfe, 0x21, 0x81, 0x7d, 0xb8, 0x3d, 0x7a, 0x2c, 0x3f,
+ 0x20, 0x68, 0xd2, 0xb3, 0x17, 0xe2, 0x3f, 0x7a, 0x7d, 0xf9, 0xfd, 0x7b,
+ 0xf5, 0xe3, 0x3d, 0xfb, 0x58, 0x0b, 0x10, 0x30, 0x98, 0xb0, 0x06, 0x3b,
+ 0xac, 0x99, 0x3e, 0xbc, 0x67, 0xbc, 0x4e, 0x60, 0xaa, 0xeb, 0xf1, 0x5e,
+ 0x2b, 0x9c, 0x34, 0x00, 0xb1, 0xfa, 0xe3, 0xdf, 0x97, 0x31, 0xb5, 0xef,
+ 0x7e, 0x01, 0x47, 0xfc, 0x0d, 0x44, 0x5f, 0x9b, 0xfd, 0x75, 0xc3, 0x0a,
+ 0xe3, 0xee, 0xff, 0xeb, 0xfc, 0x03, 0xea, 0x87, 0x77, 0x60, 0x2b, 0x6f,
+ 0x92, 0x61, 0x7e, 0x7c, 0xdf, 0xff, 0xda, 0x08, 0x5c, 0x01, 0x88, 0x9f,
+ 0x44, 0x64, 0x8b, 0xef, 0x45, 0x5e, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xbd, 0xe4, 0x5f, 0x93, 0x90, 0x90, 0x03, 0x32, 0xb2, 0x33,
+ 0x46, 0xbb, 0x5f, 0xf1, 0x06, 0x71, 0xdd, 0x03, 0xc3, 0x9e, 0xfc, 0x7b,
+ 0xb4, 0xd0, 0x00, 0x37, 0xe7, 0xf8, 0x00, 0x00, 0x7e, 0x00, 0xbd, 0xf8,
+ 0x33, 0xa4, 0xc0, 0x0a, 0x2e, 0x60, 0xf1, 0xd1, 0x80, 0xc7, 0xff, 0xdf,
+ 0xbf, 0x1d, 0xff, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff,
+ 0xff, 0xfe, 0x2b, 0xff, 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2,
+ 0xb3, 0xff, 0xc3, 0x1f, 0xfa, 0x87, 0x08, 0x54, 0xf8, 0x01, 0xf4, 0xd3,
+ 0xce, 0x10, 0xf5, 0xf8, 0x01, 0x76, 0x44, 0xcc, 0x20, 0x54, 0x99, 0xd7,
+ 0xbe, 0xb2, 0xbc, 0x37, 0xd2, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x18, 0x34,
+ 0x08, 0x45, 0x99, 0x9c, 0xb9, 0x58, 0x80, 0xce, 0xe9, 0xcc, 0xcd, 0xd3,
+ 0x4e, 0xfa, 0x78, 0x5b, 0xa8, 0xd5, 0x87, 0x6c, 0x6d, 0x22, 0x36, 0xa6,
+ 0xbc, 0xdd, 0xbe, 0x03, 0xd8, 0x96, 0x0d, 0x92, 0x60, 0x0d, 0xd9, 0xa0,
+ 0x0b, 0x5c, 0x0c, 0x40, 0x54, 0xa6, 0x7c, 0x7c, 0x0c, 0xa3, 0x35, 0x90,
+ 0x29, 0xf5, 0x3f, 0xeb, 0x42, 0x01, 0x63, 0x38, 0x6e, 0xb0, 0x71, 0xde,
+ 0x38, 0x9d, 0xf7, 0xf1, 0x8d, 0x6f, 0x3e, 0xba, 0xf1, 0x3f, 0xff, 0xf8,
+ 0x63, 0x8f, 0x50, 0x71, 0x9b, 0x36, 0xcd, 0x80, 0x18, 0x1e, 0xaf, 0x8e,
+ 0xc3, 0xd4, 0x6a, 0x5b, 0xc0, 0x89, 0xac, 0x7f, 0x9f, 0xc6, 0x51, 0xa3,
+ 0xb6, 0x1c, 0x19, 0xde, 0x76, 0x84, 0xfe, 0xfd, 0xff, 0xe1, 0x2f, 0x25,
+ 0x20, 0x95, 0xd7, 0xff, 0x53, 0x46, 0x92, 0x0f, 0x48, 0x07, 0x99, 0xe3,
+ 0xcf, 0xff, 0xff, 0x5f, 0xff, 0xf8, 0x62, 0xd4, 0x93, 0x7f, 0xe1, 0x23,
+ 0xc0, 0x28, 0xea, 0xc7, 0xbf, 0xc8, 0x2b, 0x23, 0x8b, 0x1d, 0x23, 0xb1,
+ 0x5c, 0x51, 0xb8, 0x4c, 0x3f, 0xc8, 0xe4, 0x10, 0x73, 0xeb, 0x7a, 0xc6,
+ 0x6f, 0x61, 0x8f, 0xa4, 0x3f, 0x8c, 0x29, 0x87, 0x21, 0xce, 0xc0, 0x5b,
+ 0x5d, 0xf4, 0x7a, 0xd7, 0xbd, 0x6c, 0xf8, 0xed, 0xbf, 0x0c, 0x08, 0x5f,
+ 0x50, 0xff, 0x87, 0xf8, 0x02, 0xbc, 0xb9, 0x15, 0x7d, 0x2d, 0xa9, 0x0c,
+ 0x62, 0x18, 0x2f, 0xfc, 0x25, 0xc0, 0xe4, 0x03, 0xcc, 0x80, 0x31, 0x1f,
+ 0xfa, 0xb3, 0xbc, 0xf0, 0xf9, 0x2c, 0xbc, 0x10, 0xc7, 0xf8, 0x06, 0xab,
+ 0x68, 0x56, 0x00, 0x62, 0xfa, 0xfb, 0x3b, 0x67, 0x68, 0xfc, 0x18, 0x3a,
+ 0x64, 0x03, 0x74, 0x00, 0xb6, 0x2c, 0x88, 0x3f, 0x5b, 0xef, 0xbc, 0x36,
+ 0x03, 0x3c, 0x75, 0x86, 0x1c, 0x76, 0xc1, 0xb0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xb0, 0x75, 0x8b, 0xc8, 0xbf, 0x58, 0xdf, 0xbf, 0xac, 0x77,
+ 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff,
+ 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xf0, 0x81, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfc, 0x57, 0x9f, 0xff, 0xe6, 0x3e, 0x00, 0x44, 0x7e, 0x57, 0xcb, 0x18,
+ 0x59, 0xda, 0x35, 0x3f, 0x62, 0x04, 0x89, 0x97, 0x81, 0x67, 0xa4, 0xda,
+ 0x2d, 0xab, 0x7f, 0xef, 0xc4, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xf0, 0x53, 0x14, 0x60, 0xca, 0xd3, 0xae, 0x3b, 0x39, 0x59, 0x20, 0xb9,
+ 0x83, 0x6f, 0xf0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x75, 0x84, 0x72, 0x31,
+ 0x98, 0x32, 0xb4, 0xeb, 0x8e, 0xc6, 0x10, 0x8c, 0x49, 0x6a, 0x81, 0xc4,
+ 0x38, 0x20, 0x62, 0x30, 0x88, 0xcc, 0x99, 0x83, 0x91, 0x19, 0x93, 0x30,
+ 0x0e, 0x47, 0xca, 0x1b, 0xd0, 0x20, 0xc9, 0x23, 0x6a, 0x61, 0xc0, 0x00,
+ 0x88, 0x46, 0x3c, 0x0a, 0x0a, 0xc7, 0x76, 0x4c, 0x12, 0x77, 0xfe, 0x0c,
+ 0x8c, 0xf1, 0xaf, 0xfe, 0xeb, 0x31, 0xda, 0x4e, 0x99, 0x38, 0xd5, 0x57,
+ 0xf5, 0xfb, 0xe8, 0x7f, 0x4b, 0x4b, 0x1f, 0x85, 0x42, 0x41, 0x01, 0x04,
+ 0x09, 0x12, 0x0c, 0xe7, 0x5e, 0x39, 0xac, 0x6d, 0xfb, 0xca, 0x01, 0x29,
+ 0x31, 0x68, 0xa7, 0x7c, 0x8e, 0x85, 0xaf, 0xfc, 0x4f, 0xff, 0xff, 0xfc,
+ 0x9f, 0x0e, 0x89, 0xc3, 0x30, 0x80, 0x44, 0xd8, 0x03, 0x45, 0x35, 0xb7,
+ 0xe7, 0xc0, 0x0b, 0x79, 0xdc, 0x44, 0xff, 0xff, 0xdc, 0x35, 0xa4, 0x6e,
+ 0x75, 0x33, 0xa2, 0x7d, 0xac, 0xbf, 0x01, 0xac, 0x57, 0x6c, 0x9e, 0x3f,
+ 0xf1, 0x6c, 0xb4, 0x18, 0x43, 0x27, 0x96, 0x4c, 0x4c, 0x48, 0xbf, 0x60,
+ 0x06, 0x5f, 0xfc, 0x44, 0xf5, 0xfd, 0x01, 0xc5, 0x92, 0x63, 0x48, 0xf5,
+ 0xfc, 0xb4, 0x13, 0xe2, 0x30, 0xfb, 0x06, 0x0a, 0xec, 0x5c, 0x77, 0xff,
+ 0xce, 0xec, 0xdf, 0x45, 0x98, 0x4d, 0x88, 0xe2, 0xec, 0x1d, 0x51, 0x36,
+ 0x24, 0x8f, 0x1f, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xa3, 0x41, 0xcc,
+ 0xc0, 0x4b, 0xfe, 0x12, 0x72, 0x50, 0x51, 0x2a, 0xef, 0xe0, 0x01, 0xae,
+ 0x4d, 0xb9, 0xdb, 0x0c, 0x5d, 0x45, 0xf9, 0x12, 0x09, 0xfb, 0xde, 0x87,
+ 0x8b, 0x21, 0x4b, 0x5e, 0x83, 0x39, 0x71, 0x04, 0x88, 0xb6, 0x59, 0x61,
+ 0xe6, 0x37, 0xfc, 0x38, 0xdc, 0x7d, 0x77, 0x1a, 0x46, 0xf7, 0xb1, 0xfc,
+ 0xc9, 0x1a, 0x26, 0xbf, 0xcf, 0xeb, 0xdf, 0xaf, 0x19, 0xef, 0xdf, 0xaf,
+ 0x19, 0xec, 0xdf, 0x09, 0xff, 0xc3, 0xe7, 0xec, 0x0e, 0x6c, 0xfe, 0x87,
+ 0x3f, 0x84, 0xd6, 0x19, 0x41, 0xf8, 0x72, 0x2e, 0xc0, 0xff, 0x1b, 0xc0,
+ 0x23, 0x7a, 0x58, 0x7e, 0x73, 0x4f, 0x13, 0xfa, 0xf1, 0x70, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x27, 0xec, 0xdf, 0x89, 0xfd, 0x38,
+ 0x50, 0x40, 0x02, 0x9f, 0x4c, 0x10, 0xe7, 0xcf, 0x00, 0xfe, 0x07, 0x7c,
+ 0x08, 0x6e, 0x15, 0xe6, 0xc3, 0xe7, 0x43, 0xf8, 0x20, 0x60, 0x43, 0xfc,
+ 0x0f, 0xde, 0xcf, 0x1c, 0xf7, 0x71, 0xc3, 0x93, 0x51, 0x01, 0x9b, 0xf6,
+ 0x2f, 0x69, 0x63, 0x14, 0x01, 0x6f, 0x50, 0x43, 0xa4, 0xc6, 0x15, 0xfe,
+ 0x04, 0x62, 0x93, 0x03, 0xf0, 0x80, 0xdf, 0x07, 0xa9, 0xfc, 0x7f, 0xfd,
+ 0xf1, 0xeb, 0xc0, 0x0e, 0xed, 0xa6, 0x25, 0x37, 0x9b, 0xe7, 0x80, 0x01,
+ 0xb8, 0xa0, 0x00, 0x6e, 0x00, 0xc0, 0x1b, 0xd8, 0x47, 0x11, 0x1d, 0x42,
+ 0x00, 0x0d, 0xac, 0xf0, 0x9c, 0x5b, 0xdb, 0xf3, 0xf3, 0x11, 0x11, 0x7f,
+ 0xfc, 0x3c, 0x50, 0x48, 0xf3, 0x38, 0xae, 0xc0, 0xff, 0x1c, 0xe0, 0x7f,
+ 0xe1, 0x0f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff,
+ 0xfe, 0x2b, 0xff, 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xac, 0x5f, 0x60, 0x29, 0xff, 0xff, 0xff, 0xf8, 0xac,
+ 0xff, 0xaf, 0x59, 0x8f, 0x84, 0x5c, 0x2a, 0x54, 0x05, 0x44, 0x71, 0x3f,
+ 0xff, 0xff, 0xfd, 0x7c, 0x50, 0xa1, 0xed, 0x0b, 0x11, 0x03, 0x82, 0x88,
+ 0x86, 0xe0, 0x03, 0x0b, 0xc8, 0x02, 0x30, 0xa4, 0xe1, 0x8f, 0x42, 0x55,
+ 0x6e, 0x2b, 0x26, 0xd5, 0x2d, 0x74, 0x90, 0xf7, 0x8a, 0x18, 0x48, 0x7d,
+ 0xbf, 0xc2, 0x62, 0xc0, 0x37, 0x1d, 0xa9, 0xcb, 0x32, 0xa8, 0xb0, 0x98,
+ 0xfb, 0xab, 0xdf, 0x74, 0xb6, 0x04, 0x7a, 0xf3, 0xdc, 0x4f, 0xff, 0xf5,
+ 0xf1, 0x66, 0xc1, 0x23, 0xcc, 0xee, 0x05, 0x01, 0xda, 0x3a, 0x16, 0xe5,
+ 0x0d, 0xb6, 0x65, 0x03, 0xae, 0x7b, 0x7d, 0xbe, 0x62, 0xad, 0x51, 0xff,
+ 0xff, 0xeb, 0xff, 0xd7, 0xaf, 0x62, 0x22, 0x0a, 0x12, 0xb6, 0x02, 0x1e,
+ 0x3d, 0x0a, 0x7b, 0x90, 0x47, 0xeb, 0xf0, 0x66, 0x6b, 0xbe, 0xe8, 0xa3,
+ 0xbb, 0xa7, 0xab, 0x3e, 0x92, 0x24, 0xa1, 0x0f, 0xfb, 0x1f, 0x1a, 0xa8,
+ 0xf2, 0x61, 0xdf, 0xd5, 0xe7, 0xd6, 0xf5, 0x8c, 0xde, 0xf5, 0x8c, 0xdb,
+ 0x88, 0xc3, 0x19, 0x87, 0xd7, 0x3a, 0x9c, 0x5b, 0xc0, 0x16, 0xfc, 0xf8,
+ 0xf6, 0x5f, 0xe0, 0x20, 0x7b, 0xce, 0xf1, 0x17, 0xff, 0x0d, 0xc3, 0xb8,
+ 0xdf, 0xeb, 0x17, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x83,
+ 0x2f, 0xb5, 0xe1, 0x8e, 0xb9, 0xfd, 0x4e, 0x30, 0x4e, 0x20, 0x01, 0x0e,
+ 0xe8, 0x3c, 0x73, 0xdf, 0x80, 0x03, 0xf0, 0x10, 0x3d, 0xe7, 0x78, 0x8a,
+ 0x1b, 0x87, 0x71, 0xf0, 0xc7, 0xed, 0xcc, 0x1a, 0x58, 0xcc, 0x13, 0x44,
+ 0x74, 0xe2, 0x58, 0x3e, 0x00, 0xb7, 0xef, 0x8f, 0x64, 0x3d, 0x49, 0xf0,
+ 0xd0, 0x2a, 0xff, 0x1f, 0xf6, 0xbd, 0x6f, 0xe2, 0x0d, 0xeb, 0x7f, 0x7e,
+ 0xb1, 0xdf, 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29,
+ 0xff, 0xff, 0x1f, 0xff, 0xfb, 0xcf, 0xfe, 0x4c, 0x4f, 0xff, 0xff, 0xff,
+ 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x02, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf0, 0x8f, 0xff, 0xcc, 0x7c, 0x7c, 0x2f, 0x1b,
+ 0x61, 0xd0, 0x0b, 0xc4, 0x4d, 0xc6, 0xa5, 0x00, 0x2b, 0x4d, 0xab, 0x4f,
+ 0xd3, 0xf7, 0xaf, 0x29, 0x7a, 0x8f, 0x8b, 0x13, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0x28, 0x52, 0x24, 0x3e, 0x59, 0x5e, 0x1d, 0xee, 0xfc, 0x23,
+ 0x70, 0x7f, 0x29, 0x07, 0xc7, 0xd6, 0x1a, 0xf0, 0x7f, 0x2f, 0xcc, 0x1c,
+ 0xc5, 0x89, 0x14, 0x5c, 0xea, 0x31, 0x84, 0x00, 0x7d, 0xfe, 0x1d, 0x3c,
+ 0x4c, 0x99, 0xfd, 0x09, 0xe4, 0xcc, 0xfe, 0xdb, 0xc3, 0x3a, 0x22, 0x57,
+ 0x57, 0x19, 0xf5, 0x58, 0x01, 0x88, 0x5e, 0x41, 0x42, 0x75, 0x5f, 0x63,
+ 0x13, 0x5f, 0x1f, 0x5d, 0xfc, 0x8d, 0x0f, 0xf3, 0xc3, 0x72, 0xb7, 0x3c,
+ 0x43, 0x9f, 0xc3, 0xb0, 0x64, 0x82, 0x3f, 0x00, 0x5e, 0xe7, 0x58, 0x84,
+ 0xdb, 0x3f, 0x06, 0x49, 0x62, 0x01, 0x60, 0x91, 0x62, 0xf7, 0x61, 0xd7,
+ 0x58, 0xd3, 0x10, 0x4e, 0xa9, 0x46, 0x01, 0xc0, 0xe4, 0x14, 0xf7, 0xaf,
+ 0xbb, 0xc8, 0x82, 0xa6, 0x20, 0x88, 0x41, 0xbb, 0x5e, 0x2b, 0xff, 0xff,
+ 0xf8, 0x44, 0xd8, 0xda, 0xf0, 0x43, 0xf0, 0x37, 0x92, 0xe1, 0x49, 0x6f,
+ 0x01, 0xbe, 0x1a, 0x26, 0xf9, 0xbc, 0xb8, 0x2d, 0x4c, 0xd3, 0x7e, 0xb6,
+ 0x79, 0xa0, 0x36, 0xdf, 0x00, 0x26, 0x3f, 0x2a, 0x08, 0x4d, 0xb0, 0x7d,
+ 0x8d, 0xed, 0x1a, 0x27, 0xe7, 0x80, 0x3e, 0x3e, 0x14, 0xe8, 0xee, 0xd5,
+ 0x7f, 0xfc, 0xcb, 0xad, 0x44, 0x4b, 0x7f, 0xb0, 0x30, 0x2b, 0x6d, 0xbd,
+ 0x24, 0xdb, 0xff, 0xfa, 0xd9, 0x6b, 0x94, 0x35, 0xef, 0xff, 0x8c, 0x87,
+ 0x8f, 0x41, 0xff, 0x3b, 0x3c, 0x98, 0x62, 0xff, 0xff, 0xff, 0xfe, 0xbd,
+ 0x7f, 0xfc, 0x98, 0x0e, 0x56, 0xd3, 0x3f, 0x88, 0xe3, 0xa2, 0x18, 0x3e,
+ 0x81, 0xf3, 0x2d, 0xf7, 0x84, 0x4d, 0x7c, 0xea, 0x96, 0x74, 0xcf, 0x41,
+ 0xac, 0x08, 0x1c, 0xc5, 0x8f, 0xff, 0xc2, 0x50, 0x98, 0xcd, 0xc3, 0x51,
+ 0x29, 0xb8, 0xda, 0x49, 0xab, 0x83, 0xe9, 0xa0, 0x18, 0xcf, 0xca, 0xd4,
+ 0x34, 0x41, 0xa5, 0x16, 0xe0, 0x99, 0xd5, 0x15, 0xcf, 0xf9, 0x3d, 0xfa,
+ 0xf5, 0x87, 0x3f, 0x19, 0xeb, 0xdf, 0xbe, 0x62, 0xc2, 0x07, 0x2d, 0x31,
+ 0xd7, 0x8a, 0xf5, 0xec, 0xdf, 0x0f, 0xe3, 0x48, 0x21, 0xc0, 0xe1, 0x38,
+ 0xc9, 0x98, 0x4c, 0xdd, 0x9b, 0xfe, 0xf9, 0xe2, 0x4f, 0xd7, 0x31, 0xa1,
+ 0x1e, 0x1d, 0xb8, 0xdc, 0x07, 0x5e, 0x2b, 0xe0, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xc6, 0x24, 0x1d, 0xfb, 0x36, 0x1f, 0xc7, 0xf0, 0x98, 0x80,
+ 0x01, 0xce, 0x8d, 0x10, 0xd5, 0x80, 0x05, 0xd5, 0xe0, 0xc0, 0xb3, 0x5f,
+ 0x27, 0xf3, 0xbe, 0xff, 0x7d, 0xea, 0x66, 0x1c, 0x27, 0x19, 0x33, 0xf0,
+ 0x10, 0x3e, 0x02, 0x00, 0x23, 0x94, 0x16, 0x36, 0x08, 0x2d, 0x5c, 0x21,
+ 0x77, 0x5f, 0xb4, 0xbf, 0xbe, 0xc7, 0xff, 0xd1, 0x93, 0xff, 0x1f, 0x84,
+ 0xe1, 0x33, 0x76, 0x6f, 0xfb, 0xff, 0xc0, 0x03, 0x2f, 0xd3, 0xa7, 0x34,
+ 0x91, 0x86, 0x60, 0x70, 0x41, 0xb5, 0x04, 0xdf, 0xfd, 0xc9, 0xcb, 0x19,
+ 0xe0, 0x06, 0x7d, 0xbe, 0xb3, 0xb6, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x07,
+ 0x9d, 0xf2, 0x99, 0xef, 0xc0, 0x11, 0xda, 0x46, 0x07, 0xf8, 0xa3, 0xec,
+ 0xbb, 0x0f, 0xfa, 0xc0, 0x00, 0x03, 0xff, 0x6c, 0x32, 0x87, 0xfd, 0x5b,
+ 0x16, 0x4c, 0xf0, 0xdd, 0x9e, 0xbc, 0x20, 0x68, 0x08, 0x3b, 0xff, 0xf0,
+ 0x92, 0x80, 0x33, 0x82, 0x09, 0x32, 0x98, 0x75, 0x4d, 0xbf, 0xf7, 0x3e,
+ 0x54, 0xec, 0xd4, 0x03, 0x4e, 0x38, 0xbd, 0x08, 0x06, 0x22, 0xfc, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ 0x29, 0xeb, 0xff, 0xff, 0x84, 0x3f, 0xe3, 0x3f, 0xff, 0x1d, 0xff, 0xf9,
+ 0xbf, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xa1, 0x60, 0x21, 0xff,
+ 0xff, 0xff, 0xf8, 0xac, 0xff, 0xbf, 0x79, 0x8f, 0x81, 0x1f, 0xa7, 0xfb,
+ 0x42, 0x3a, 0x8a, 0x36, 0x48, 0x79, 0xfd, 0x0c, 0xc4, 0xc4, 0xff, 0xff,
+ 0xff, 0xf7, 0xe1, 0x80, 0xe7, 0x10, 0x45, 0x17, 0x6a, 0x04, 0x60, 0x48,
+ 0xa2, 0xe5, 0x52, 0x7c, 0x40, 0x01, 0x8f, 0xf3, 0x32, 0x00, 0xc7, 0x28,
+ 0xb7, 0xfc, 0x74, 0x3f, 0x80, 0x9c, 0xb4, 0xe4, 0xfe, 0x61, 0xde, 0xd2,
+ 0x68, 0xda, 0x9a, 0x1a, 0xaa, 0x7c, 0xe0, 0x81, 0xc3, 0x01, 0xfc, 0x25,
+ 0xf8, 0x20, 0x16, 0x0c, 0x2e, 0x95, 0x9b, 0x4f, 0xef, 0xde, 0x10, 0x0a,
+ 0x67, 0x8a, 0x2d, 0x6f, 0x78, 0x9f, 0xff, 0xef, 0xc3, 0x1f, 0xad, 0x86,
+ 0x01, 0xec, 0x9c, 0x01, 0xaa, 0x91, 0xb2, 0x7e, 0x6d, 0x5e, 0xb5, 0xe7,
+ 0xff, 0xc0, 0x19, 0x8f, 0x1a, 0x73, 0x4f, 0x56, 0xed, 0x89, 0x22, 0x98,
+ 0xf7, 0xbf, 0xac, 0xb1, 0x4f, 0x9f, 0xff, 0xfe, 0xbf, 0xfd, 0xff, 0x0c,
+ 0x70, 0xc1, 0xff, 0xe1, 0x2e, 0x00, 0x9b, 0xa3, 0x46, 0xa9, 0xe2, 0x14,
+ 0x4c, 0xbc, 0x01, 0xae, 0x4d, 0xb9, 0xdb, 0x1f, 0x5b, 0xd6, 0x33, 0x7b,
+ 0x7d, 0x63, 0x36, 0xa3, 0x48, 0x5e, 0x12, 0xf0, 0xdf, 0x78, 0x63, 0x0f,
+ 0xa5, 0x3f, 0x04, 0x0c, 0x01, 0x6f, 0xff, 0x8e, 0xf0, 0xcf, 0x10, 0xab,
+ 0xec, 0x77, 0xf3, 0xc9, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xb2, 0x85, 0x84, 0xf6, 0x18, 0xe9, 0xf1, 0xd2, 0x98, 0xa1, 0x10, 0x05,
+ 0x59, 0x36, 0x80, 0x01, 0xc7, 0xa8, 0x37, 0x02, 0xd8, 0x41, 0xfd, 0x02,
+ 0x80, 0x63, 0x5c, 0x05, 0xa2, 0x3d, 0xfe, 0xb1, 0xbf, 0x41, 0x8f, 0x44,
+ 0xa7, 0xd3, 0x85, 0x19, 0xa7, 0x7f, 0x3d, 0xa6, 0x38, 0x06, 0x7e, 0x8f,
+ 0x9f, 0x64, 0x46, 0xde, 0x37, 0xfc, 0xa8, 0x06, 0x46, 0xee, 0xbd, 0xbc,
+ 0x30, 0x6e, 0xf0, 0x21, 0x3f, 0x9d, 0xfd, 0x63, 0xb4, 0xb9, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe,
+ 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xf2, 0x91, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f,
+ 0xff, 0xef, 0x0c, 0xcc, 0x27, 0x80, 0x16, 0x2a, 0x5a, 0x7d, 0x2f, 0xfe,
+ 0x53, 0xc4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x0e, 0xd6,
+ 0x04, 0x51, 0x77, 0x90, 0x46, 0x04, 0x81, 0x1f, 0xc7, 0xf2, 0xdf, 0xc0,
+ 0x72, 0x21, 0x50, 0x5d, 0x80, 0x60, 0x5f, 0xc8, 0xe2, 0xef, 0x46, 0xc9,
+ 0xa3, 0x95, 0x78, 0x00, 0x36, 0xde, 0x85, 0x1b, 0xfe, 0xed, 0x98, 0x4c,
+ 0x7b, 0x03, 0x66, 0x10, 0x8c, 0xd2, 0xc8, 0x84, 0x8a, 0xa1, 0x65, 0x83,
+ 0x90, 0x8c, 0x49, 0x6a, 0x06, 0x10, 0x63, 0x12, 0x2f, 0xe1, 0x08, 0x4c,
+ 0x54, 0xac, 0x76, 0x63, 0x76, 0xbe, 0x12, 0xf0, 0x21, 0x1c, 0xe8, 0x7c,
+ 0xe7, 0xff, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x64, 0xcc, 0x1e,
+ 0xc9, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3, 0x51, 0x88, 0x71, 0x27, 0xa7,
+ 0xe0, 0x18, 0x29, 0xe4, 0x55, 0x39, 0xf0, 0x11, 0x17, 0xc3, 0xac, 0xa3,
+ 0xa8, 0xa1, 0xd2, 0xe1, 0x01, 0x8a, 0x7f, 0x3f, 0xff, 0xff, 0xff, 0xd7,
+ 0xff, 0xff, 0xff, 0xe6, 0x8f, 0x87, 0xfe, 0x12, 0x87, 0xd3, 0x40, 0xc4,
+ 0x6c, 0x56, 0xaf, 0xf0, 0x04, 0x53, 0x40, 0xc4, 0x6b, 0x2b, 0x50, 0x02,
+ 0x29, 0xc0, 0xc4, 0x5b, 0x2b, 0x57, 0x87, 0x3f, 0xaf, 0x7e, 0xbc, 0x67,
+ 0xbf, 0x7e, 0xbc, 0x67, 0xb3, 0x7c, 0x2d, 0xec, 0x7c, 0x28, 0x58, 0x00,
+ 0x8c, 0x35, 0xf5, 0x77, 0xf7, 0xfa, 0x32, 0xb5, 0x54, 0xd7, 0x76, 0x00,
+ 0x43, 0x74, 0x9d, 0xeb, 0xf3, 0xc1, 0x90, 0x20, 0x08, 0x54, 0x1b, 0xf5,
+ 0xe2, 0xe0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44, 0x37, 0xe8,
+ 0x9f, 0x81, 0x60, 0x1e, 0x81, 0x60, 0x18, 0xe3, 0x84, 0x70, 0x03, 0x32,
+ 0xa6, 0x68, 0x9e, 0xaf, 0x00, 0x06, 0x26, 0xb9, 0x0b, 0x58, 0x46, 0x06,
+ 0x1e, 0x0e, 0x5d, 0xdf, 0x52, 0xf9, 0xfa, 0x3a, 0xc6, 0x05, 0x90, 0x53,
+ 0x6a, 0x68, 0x98, 0x9a, 0xf5, 0xe3, 0x7d, 0x19, 0x89, 0xbe, 0x16, 0xfc,
+ 0x26, 0x20, 0x08, 0x7f, 0x1f, 0xa9, 0x06, 0x2a, 0x3e, 0x6e, 0x20, 0xfc,
+ 0x6a, 0x78, 0x48, 0xf6, 0x8a, 0x5e, 0xf9, 0x7b, 0xe8, 0x61, 0xbf, 0x3e,
+ 0x78, 0x9f, 0xfe, 0xbc, 0x77, 0x21, 0xa0, 0x03, 0xb7, 0x34, 0xc9, 0x93,
+ 0x6e, 0xbd, 0xf9, 0x84, 0x3d, 0xc3, 0xfe, 0x1e, 0xba, 0x49, 0x4c, 0xd8,
+ 0x0f, 0xcf, 0x0c, 0x0f, 0x53, 0xe3, 0xb7, 0xfc, 0x9e, 0x04, 0x40, 0x8f,
+ 0xed, 0x41, 0x27, 0xc0, 0xd1, 0x50, 0x06, 0x77, 0x6f, 0xf2, 0xe0, 0xc9,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0x14, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xfe, 0x2f, 0xff, 0xf2,
+ 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac,
+ 0xe3, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e,
+ 0x00, 0xc9, 0xf9, 0x4d, 0xee, 0xe3, 0x21, 0x69, 0x21, 0x62, 0x4b, 0x13,
+ 0xff, 0xff, 0xff, 0xfa, 0xc2, 0x22, 0x01, 0xda, 0x48, 0xb9, 0xe7, 0x95,
+ 0x23, 0xba, 0xfb, 0xc0, 0x3f, 0x6c, 0x1d, 0x81, 0x2d, 0x7f, 0xf2, 0xc6,
+ 0x5a, 0x30, 0x02, 0x8e, 0xbc, 0x2b, 0x0f, 0xff, 0xb3, 0x48, 0xb1, 0xad,
+ 0x24, 0x6f, 0x4c, 0x75, 0x5f, 0x83, 0x79, 0x0c, 0x07, 0xfd, 0xff, 0x09,
+ 0x9c, 0x22, 0x00, 0x4b, 0x73, 0x2f, 0x55, 0xee, 0x26, 0x0a, 0x3f, 0x29,
+ 0x77, 0xbf, 0xbd, 0x00, 0x2c, 0x5f, 0xaa, 0x73, 0xbf, 0x7c, 0x89, 0xff,
+ 0xff, 0xd6, 0x10, 0xf0, 0x22, 0x6f, 0x70, 0x00, 0x76, 0x68, 0x73, 0x11,
+ 0xcc, 0xbc, 0xd6, 0xb6, 0xf0, 0x3c, 0xd9, 0xe0, 0xb8, 0x64, 0x96, 0x77,
+ 0x9f, 0x28, 0x68, 0xf5, 0x81, 0xe4, 0x7f, 0xd1, 0x8e, 0xe1, 0x60, 0xc9,
+ 0xbb, 0xe3, 0xe8, 0xc3, 0xee, 0xb6, 0x3f, 0xff, 0xfd, 0x7f, 0xff, 0xe4,
+ 0xe0, 0x60, 0x10, 0x80, 0x9b, 0x79, 0xff, 0xfd, 0xe7, 0xe6, 0x84, 0xf1,
+ 0xcf, 0x01, 0x97, 0xdd, 0x5d, 0x86, 0xcc, 0x2a, 0x47, 0x12, 0xc7, 0x5a,
+ 0x6c, 0x03, 0x1b, 0xf7, 0x95, 0x90, 0xa0, 0x88, 0xd6, 0x40, 0xcf, 0x48,
+ 0x48, 0x83, 0x81, 0x9f, 0x5b, 0xd6, 0x33, 0x7b, 0xd6, 0x33, 0x61, 0x8f,
+ 0x87, 0xff, 0x0f, 0x96, 0x00, 0x4d, 0xdd, 0x5d, 0xbb, 0xcf, 0xdc, 0x74,
+ 0x7a, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d, 0x8b,
+ 0xd0, 0x63, 0xfb, 0x7c, 0x38, 0x7c, 0xd0, 0x1c, 0x84, 0x60, 0x1d, 0x32,
+ 0x03, 0x2e, 0x94, 0xa6, 0x9e, 0xbe, 0xb5, 0x8d, 0xd0, 0x63, 0xff, 0xda,
+ 0x03, 0x04, 0x30, 0x02, 0x1b, 0xa4, 0xef, 0x5f, 0x9e, 0xfe, 0x0a, 0xbe,
+ 0xb1, 0xcb, 0xd6, 0x44, 0x03, 0x91, 0x99, 0xd3, 0x0b, 0x00, 0x01, 0x00,
+ 0x3f, 0xbe, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
+ 0xff, 0xf1, 0xff, 0xff, 0x8a, 0xff, 0x26, 0x2b, 0xfc, 0xdf, 0x50, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xfc, 0xc2, 0x78, 0x01, 0xab, 0x34, 0xee,
+ 0x57, 0x7e, 0xb0, 0xcc, 0xaf, 0x6a, 0x1b, 0x70, 0x1a, 0x56, 0xf8, 0x9f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xc1, 0xc9, 0xee, 0x8a, 0x2e, 0x8a,
+ 0xb8, 0xc1, 0x80, 0x0d, 0xf6, 0x5b, 0x5a, 0x91, 0x6c, 0x81, 0x2c, 0x3a,
+ 0x68, 0x15, 0x59, 0xbe, 0x51, 0xfc, 0xfc, 0xe4, 0x99, 0x73, 0xe0, 0x03,
+ 0x6d, 0xe8, 0x51, 0xbf, 0xee, 0xd9, 0x84, 0xc7, 0xb0, 0x36, 0x4a, 0xaf,
+ 0xb4, 0xf4, 0xed, 0xa5, 0xb6, 0xb9, 0x79, 0x5f, 0x12, 0x6f, 0xcd, 0x34,
+ 0x0f, 0xed, 0x3f, 0xc2, 0x62, 0xeb, 0xbe, 0x77, 0x00, 0x00, 0x80, 0x09,
+ 0xdb, 0xe7, 0x6c, 0x11, 0x6e, 0x33, 0xfb, 0xeb, 0xf8, 0x79, 0x81, 0x96,
+ 0xf2, 0x1f, 0x4f, 0x7a, 0xe1, 0xf3, 0xf1, 0x78, 0x9f, 0xff, 0xff, 0xff,
+ 0xcd, 0xf8, 0xa9, 0x13, 0x13, 0xba, 0xad, 0x9b, 0x82, 0x67, 0xb6, 0xb0,
+ 0x71, 0x13, 0xb4, 0xb0, 0x89, 0xac, 0x7f, 0x9f, 0xc0, 0x22, 0x95, 0xec,
+ 0x0f, 0x90, 0x8d, 0xfd, 0x7c, 0x03, 0x13, 0x0b, 0x2a, 0x7e, 0xa5, 0x9b,
+ 0xa0, 0xd4, 0x84, 0x5f, 0xcf, 0xbb, 0xec, 0x8b, 0x9f, 0x83, 0x01, 0xb7,
+ 0x65, 0x94, 0x17, 0x40, 0xe5, 0xaa, 0xc3, 0xff, 0xff, 0xff, 0xfd, 0x7f,
+ 0xff, 0xff, 0xfe, 0x60, 0xba, 0xe0, 0x5f, 0xf0, 0x93, 0x01, 0xdd, 0xb5,
+ 0x1c, 0x79, 0xcf, 0x92, 0x43, 0xb7, 0x5b, 0xf8, 0xdc, 0xb5, 0x89, 0x96,
+ 0x3d, 0xa8, 0x16, 0x2b, 0x26, 0x79, 0x67, 0xe9, 0x5a, 0x53, 0xea, 0x93,
+ 0x27, 0xe9, 0x32, 0xe7, 0x83, 0x3f, 0xaf, 0x7e, 0xbc, 0x67, 0xbf, 0x7e,
+ 0xbc, 0x67, 0xb3, 0x7c, 0x08, 0x64, 0x45, 0xf1, 0x85, 0x80, 0x08, 0xc3,
+ 0x5f, 0x57, 0x7f, 0x7f, 0x80, 0x3b, 0x7e, 0x09, 0x78, 0x00, 0x03, 0x80,
+ 0x75, 0x7e, 0x09, 0x72, 0x07, 0x6c, 0x08, 0x4f, 0x00, 0x7d, 0xf7, 0xeb,
+ 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64, 0x37, 0xf3,
+ 0x7e, 0x59, 0x11, 0x7c, 0x60, 0x88, 0x00, 0xbe, 0x94, 0xdc, 0xc1, 0x18,
+ 0x73, 0xf5, 0xd0, 0x07, 0x57, 0xe0, 0x97, 0x20, 0x00, 0xe0, 0x76, 0xc0,
+ 0x84, 0x03, 0xab, 0xf0, 0x4b, 0x93, 0xc0, 0x7d, 0xfc, 0x0d, 0x9f, 0xd7,
+ 0xaf, 0x1a, 0x6a, 0x66, 0x46, 0xdf, 0x38, 0xc5, 0x60, 0x02, 0xd1, 0xae,
+ 0xe6, 0x71, 0x47, 0xee, 0x7f, 0xf6, 0x9b, 0xb8, 0x0f, 0xff, 0xfb, 0x8b,
+ 0x6f, 0xc1, 0x2e, 0x46, 0x06, 0x39, 0x4c, 0x47, 0x7c, 0x9b, 0xe3, 0xb3,
+ 0xdd, 0x5f, 0x09, 0xb6, 0x07, 0xef, 0x67, 0xe6, 0xff, 0x5c, 0xf5, 0xc5,
+ 0xbe, 0xff, 0x8c, 0xd6, 0x07, 0xe3, 0xbf, 0xe0, 0x08, 0xd7, 0xab, 0x3d,
+ 0xcb, 0xa4, 0xe5, 0xe4, 0x34, 0x79, 0xff, 0xfa, 0xf1, 0xc6, 0xfa, 0xff,
+ 0xf0, 0xf9, 0x30, 0x0b, 0xd4, 0xa0, 0x35, 0x11, 0x7f, 0x03, 0x6f, 0xf2,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x85, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x8b, 0xff, 0xfc,
+ 0x9e, 0x2b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad,
+ 0x25, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf0, 0xc7, 0xfe,
+ 0x7e, 0x30, 0xa9, 0xf0, 0x01, 0x2d, 0x6e, 0x5f, 0xaa, 0xbf, 0x00, 0x1d,
+ 0xb2, 0x26, 0x62, 0x0f, 0xe6, 0x6a, 0xf7, 0x01, 0xc8, 0x11, 0x88, 0xc4,
+ 0xff, 0xff, 0xff, 0xfe, 0x18, 0x0f, 0x03, 0xa2, 0x8b, 0x8d, 0x71, 0x82,
+ 0x9a, 0x81, 0x5a, 0x71, 0xe2, 0xec, 0x89, 0x32, 0xd4, 0x86, 0x56, 0xd5,
+ 0x5e, 0xd0, 0x01, 0x8e, 0x51, 0x6f, 0xf8, 0xce, 0x6c, 0xfe, 0x0c, 0x1c,
+ 0x33, 0xf1, 0x5b, 0xcf, 0x4f, 0xa9, 0x68, 0x86, 0x0a, 0x9f, 0x69, 0x7e,
+ 0x13, 0x16, 0x02, 0x70, 0x41, 0x9e, 0x4a, 0xe5, 0xe3, 0x6d, 0x03, 0xd2,
+ 0xdf, 0xeb, 0xc3, 0x36, 0xd9, 0xb6, 0x4f, 0xfd, 0xf6, 0x7f, 0xc4, 0xff,
+ 0xff, 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48, 0xb3, 0x60, 0x06, 0x07,
+ 0x95, 0xf1, 0xd9, 0x5e, 0xa5, 0x95, 0xe9, 0x30, 0x56, 0x28, 0xa0, 0x24,
+ 0x39, 0x97, 0x80, 0x91, 0xb9, 0xd4, 0xf2, 0x8b, 0xe1, 0x24, 0x8e, 0x1b,
+ 0x5b, 0x24, 0xdf, 0x9e, 0x71, 0x4d, 0xc0, 0x0a, 0x83, 0x3f, 0xff, 0xfd,
+ 0x7f, 0xff, 0xe1, 0x80, 0x54, 0x16, 0x07, 0x1f, 0xf8, 0x49, 0x99, 0x44,
+ 0x91, 0xea, 0xbc, 0x0c, 0xc4, 0xdf, 0x41, 0xfd, 0xde, 0x3d, 0xc9, 0x4b,
+ 0x04, 0xe0, 0x76, 0x5f, 0x67, 0xf0, 0x8d, 0xb4, 0xf4, 0x67, 0x7c, 0xa5,
+ 0xff, 0xc0, 0x0c, 0xfa, 0xde, 0xb1, 0x9b, 0xde, 0xb1, 0x9b, 0x0c, 0x7c,
+ 0x08, 0x7d, 0xbc, 0x61, 0x60, 0x22, 0x6e, 0xd7, 0xbd, 0x80, 0x23, 0xdf,
+ 0xa0, 0xfe, 0xf4, 0x00, 0x03, 0xe0, 0x0b, 0xb7, 0xa0, 0x47, 0x49, 0x8e,
+ 0xb5, 0xc3, 0xbf, 0xe7, 0xfb, 0xbd, 0x62, 0xe0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xb4, 0x95, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41, 0x09, 0xa0,
+ 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33, 0x7e, 0x50,
+ 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59, 0xd9, 0xe3,
+ 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb, 0x06, 0xf5,
+ 0x8d, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c, 0x02, 0x47,
+ 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0b, 0xf5, 0xdd,
+ 0xab, 0x67, 0xfe, 0x9f, 0x9c, 0xae, 0xab, 0x11, 0x6e, 0xde, 0x1f, 0xb9,
+ 0xbb, 0x37, 0x10, 0xcc, 0x4a, 0x6b, 0xeb, 0x1c, 0x18, 0xfa, 0xff, 0xf0,
+ 0xf9, 0x20, 0x1b, 0xaa, 0x1a, 0x22, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xfc, 0x7f, 0xff, 0xe2, 0xbf, 0xc9,
+ 0x8a, 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf4, 0xa1, 0x01,
+ 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xfb, 0xc2,
+ 0x9e, 0x20, 0x49, 0x45, 0xe0, 0x05, 0xf5, 0x77, 0xc9, 0x7f, 0xcb, 0xc4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x28, 0x81, 0x43, 0x00, 0x10,
+ 0xbc, 0xd5, 0x43, 0xf8, 0x1f, 0xbe, 0xce, 0xc6, 0x5c, 0x3b, 0x94, 0x60,
+ 0xd7, 0x3c, 0xc9, 0xce, 0x88, 0xb8, 0xb6, 0x89, 0x5f, 0x0f, 0xe5, 0x28,
+ 0x91, 0x34, 0x97, 0xa0, 0x1d, 0xb5, 0x80, 0x87, 0xcf, 0x6e, 0x65, 0x7f,
+ 0xb9, 0xfd, 0x67, 0x04, 0x2f, 0x81, 0xc1, 0x62, 0x7f, 0xff, 0xff, 0xff,
+ 0x37, 0xe2, 0x0c, 0xa6, 0x4a, 0x96, 0xb2, 0x70, 0x05, 0x1d, 0x10, 0xea,
+ 0x3f, 0x36, 0xc1, 0xd5, 0xbf, 0x3c, 0x05, 0x52, 0x69, 0x3f, 0x07, 0x1b,
+ 0x80, 0x26, 0x84, 0x8c, 0xbb, 0xae, 0x45, 0x81, 0xeb, 0x82, 0x65, 0x36,
+ 0x49, 0x66, 0x63, 0x9e, 0x83, 0x1f, 0x8b, 0x01, 0xeb, 0xc4, 0xca, 0xa3,
+ 0xdd, 0x59, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xff, 0xff, 0xff, 0xed, 0x89,
+ 0xbf, 0x07, 0xb3, 0x03, 0x83, 0xe6, 0x18, 0x69, 0x47, 0xf5, 0xef, 0xd7,
+ 0x8c, 0xf7, 0xef, 0xd7, 0x8c, 0xf9, 0xbf, 0xfb, 0xe2, 0xf0, 0xa9, 0x70,
+ 0x09, 0x1f, 0xaf, 0x61, 0x3f, 0xda, 0x95, 0x78, 0x0f, 0x53, 0xa4, 0x6f,
+ 0xcd, 0xa0, 0x6e, 0x6f, 0xfb, 0xef, 0xe3, 0x3c, 0x00, 0xa6, 0xec, 0xc5,
+ 0x14, 0xb8, 0x01, 0x93, 0xe6, 0x0a, 0x15, 0x7f, 0xa3, 0x23, 0xf9, 0x20,
+ 0xfb, 0xfb, 0x5f, 0xed, 0x9a, 0xa9, 0xe0, 0x0f, 0xf3, 0x6e, 0xe4, 0x02,
+ 0x3f, 0xf0, 0x97, 0x16, 0xc5, 0xf7, 0x02, 0x4f, 0xdf, 0xfd, 0x00, 0x5b,
+ 0xfc, 0xfe, 0x43, 0x45, 0x35, 0xb7, 0xe7, 0xfb, 0xf5, 0xe2, 0xe0, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x25, 0x90, 0x86, 0x80, 0x21,
+ 0x47, 0x34, 0x46, 0x83, 0xab, 0xf3, 0x69, 0xf4, 0x8a, 0x7c, 0x27, 0x00,
+ 0x07, 0x0f, 0xc5, 0xa9, 0xc6, 0xb4, 0x1e, 0x13, 0xc1, 0x3e, 0x80, 0xf9,
+ 0x54, 0x44, 0xee, 0x4f, 0x5e, 0x34, 0xd3, 0xce, 0x67, 0xf3, 0xe2, 0x84,
+ 0x48, 0x4d, 0x81, 0xf8, 0x5f, 0xe3, 0x40, 0x7f, 0x38, 0x69, 0x07, 0xe1,
+ 0xff, 0x7f, 0xf5, 0xe3, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xff,
+ 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f, 0x15, 0xff, 0xf9, 0xbf,
+ 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x67, 0x60, 0x29, 0xff, 0xff,
+ 0xff, 0xf8, 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x00, 0x1f, 0xea, 0xca, 0x59,
+ 0xe6, 0x2f, 0xfd, 0xbe, 0xb2, 0xbc, 0x60, 0xf1, 0x89, 0xff, 0xff, 0xff,
+ 0xfc, 0x30, 0x1c, 0x20, 0xc8, 0xa2, 0xf1, 0x02, 0x8c, 0x10, 0x3a, 0xcd,
+ 0xa4, 0x8d, 0xa9, 0xb8, 0x5e, 0x00, 0xb6, 0x53, 0x06, 0x64, 0x98, 0x00,
+ 0x8a, 0x3a, 0x14, 0x4f, 0xfb, 0xb6, 0xe1, 0xbf, 0x41, 0xc7, 0xc3, 0x73,
+ 0x35, 0x91, 0x02, 0xad, 0xfa, 0xd4, 0x20, 0x16, 0x33, 0x80, 0xdc, 0x06,
+ 0x2a, 0xc5, 0xdf, 0x7e, 0x98, 0x72, 0x5f, 0x62, 0x7f, 0xff, 0xf0, 0xc7,
+ 0x1e, 0xa0, 0xe3, 0x30, 0x62, 0xb3, 0x60, 0x11, 0xeb, 0xed, 0x87, 0xb3,
+ 0xa5, 0xbc, 0x3b, 0x2f, 0x01, 0x37, 0x6b, 0x41, 0xf2, 0x6f, 0xfa, 0x40,
+ 0x79, 0xeb, 0xff, 0x0e, 0xb5, 0x21, 0x7f, 0x7f, 0xa8, 0xd1, 0x56, 0x9d,
+ 0x4f, 0x22, 0x5d, 0x9f, 0xff, 0xfe, 0xbf, 0xff, 0xf0, 0xc5, 0xa9, 0xb7,
+ 0xfe, 0x12, 0x3c, 0x03, 0x1d, 0x5a, 0x7f, 0x90, 0x13, 0x5a, 0x1b, 0x2a,
+ 0x06, 0xda, 0x85, 0xbc, 0x26, 0x27, 0x1f, 0x03, 0x9f, 0x5b, 0xd6, 0x33,
+ 0x7b, 0xd6, 0x31, 0x7a, 0xf4, 0x0e, 0x26, 0x70, 0x06, 0x45, 0xf7, 0xa1,
+ 0xff, 0xe8, 0x00, 0xf5, 0x51, 0xe8, 0x86, 0x1f, 0x8f, 0xa8, 0x38, 0x63,
+ 0xe0, 0xe2, 0xff, 0xe2, 0x57, 0x00, 0x4f, 0x9b, 0x16, 0x54, 0x65, 0x01,
+ 0x09, 0x6b, 0xdf, 0x93, 0xf6, 0x07, 0xe1, 0x3c, 0x7b, 0xd1, 0xc6, 0x78,
+ 0x3e, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb5, 0x9d,
+ 0x82, 0x25, 0xe1, 0x8d, 0x3d, 0xd1, 0xc4, 0xde, 0x1b, 0x15, 0x80, 0x18,
+ 0x5b, 0xbd, 0x27, 0xf7, 0x2f, 0xc2, 0x1d, 0xb5, 0x9b, 0x11, 0xc0, 0x62,
+ 0xa3, 0x5d, 0x1f, 0x3d, 0x8d, 0x96, 0x2c, 0x50, 0x3d, 0x18, 0xf3, 0x33,
+ 0xdd, 0x87, 0xfc, 0x71, 0xdf, 0xfb, 0x02, 0x28, 0x21, 0x65, 0x00, 0x17,
+ 0xf2, 0xa8, 0xcf, 0x82, 0xde, 0xa3, 0xef, 0x25, 0x07, 0xfd, 0xd0, 0x7e,
+ 0x4d, 0x63, 0x43, 0x14, 0xce, 0x67, 0xf3, 0xe2, 0x97, 0x10, 0x1c, 0x07,
+ 0xf0, 0x89, 0xc1, 0xf8, 0x4f, 0x0d, 0x20, 0xfc, 0x3f, 0xbf, 0xac, 0x7f,
+ 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xfe,
+ 0x3f, 0xff, 0xf1, 0x5f, 0xe4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xa8, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf5, 0xa9, 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xe6, 0x13, 0xc0, 0x7f, 0xa9, 0x6c, 0x4c,
+ 0xbc, 0x01, 0xa7, 0xcb, 0xa7, 0xdf, 0xcf, 0xc4, 0x62, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x4f, 0xc3, 0x20, 0x83, 0x19, 0x14, 0x60, 0x04, 0xdd,
+ 0x34, 0x6a, 0x9e, 0x6c, 0x31, 0x11, 0x14, 0x7b, 0x5e, 0xf8, 0xdf, 0x20,
+ 0x06, 0x2f, 0x4d, 0xd3, 0xdd, 0x05, 0xe1, 0xdd, 0x84, 0x84, 0xdd, 0x3f,
+ 0xa0, 0xa4, 0xf1, 0x31, 0x11, 0x12, 0xc7, 0x27, 0xff, 0x08, 0xf1, 0x79,
+ 0xe3, 0xd4, 0x4c, 0x17, 0xc9, 0xba, 0xf0, 0x11, 0x1a, 0xf4, 0x1f, 0xff,
+ 0x60, 0x85, 0xe4, 0x2c, 0x41, 0xe8, 0xde, 0xb6, 0x00, 0x11, 0xc6, 0x13,
+ 0xf0, 0xfb, 0x9f, 0x9f, 0xa1, 0x2c, 0xc9, 0x0f, 0xb4, 0xbf, 0x09, 0x9c,
+ 0x1d, 0x9c, 0x50, 0x9d, 0xf5, 0x78, 0x10, 0x3f, 0x0f, 0xf2, 0xcf, 0xf8,
+ 0x9f, 0xff, 0xff, 0xf9, 0xbf, 0x1d, 0x7b, 0x36, 0xc9, 0xc0, 0x09, 0xbe,
+ 0xd1, 0x0e, 0xa0, 0xfb, 0xd2, 0x80, 0x06, 0x7d, 0x6f, 0xb3, 0xf7, 0x44,
+ 0xf3, 0x1b, 0x10, 0xba, 0x5c, 0x8d, 0x78, 0x39, 0x4b, 0xc7, 0xe1, 0xf7,
+ 0xff, 0x99, 0xe0, 0xaf, 0xd8, 0xd4, 0x9b, 0x0e, 0xb6, 0x20, 0xaa, 0x77,
+ 0xfc, 0x01, 0xaa, 0x91, 0xb4, 0xfc, 0xe2, 0xdd, 0x4c, 0xf9, 0x8f, 0x76,
+ 0x3a, 0xf2, 0x20, 0x0e, 0x71, 0xec, 0xe4, 0xc6, 0x2d, 0x30, 0x61, 0xa9,
+ 0xb8, 0x2d, 0xbc, 0x7a, 0xad, 0x31, 0x8b, 0x9f, 0xff, 0xff, 0xff, 0xeb,
+ 0xff, 0xff, 0xfe, 0x6d, 0xed, 0x28, 0xff, 0x84, 0x8f, 0x80, 0x28, 0xa9,
+ 0x33, 0x73, 0xb6, 0xf0, 0x38, 0x62, 0xd7, 0xdf, 0x9e, 0x06, 0x2d, 0xb4,
+ 0x86, 0xf4, 0xbe, 0xf2, 0x44, 0x10, 0x42, 0xd6, 0x1e, 0x11, 0xbf, 0xe1,
+ 0xc6, 0xd7, 0xcf, 0x7c, 0xd2, 0xca, 0x08, 0x40, 0xcd, 0x5d, 0x7e, 0x7f,
+ 0x5e, 0xfd, 0x78, 0xce, 0x62, 0xc0, 0x0a, 0xb5, 0xa8, 0x28, 0x3a, 0xff,
+ 0x53, 0xc0, 0x00, 0xde, 0x6f, 0xf1, 0x1d, 0x7c, 0x2b, 0xd8, 0x88, 0x1e,
+ 0x62, 0x6b, 0xf0, 0x3c, 0x04, 0x5e, 0xbd, 0xbf, 0x37, 0xff, 0x1d, 0x46,
+ 0x15, 0xe4, 0x69, 0x90, 0x74, 0x0b, 0xb2, 0xc2, 0x7f, 0xac, 0x0f, 0x23,
+ 0x8d, 0x73, 0xe4, 0x79, 0x3d, 0x78, 0xc8, 0x76, 0x29, 0xc0, 0x72, 0x36,
+ 0x08, 0x99, 0x07, 0x23, 0x60, 0x89, 0x90, 0x18, 0x2b, 0x34, 0xc0, 0x21,
+ 0x1d, 0x59, 0x12, 0xfc, 0x18, 0xc9, 0xc4, 0x4c, 0xfc, 0x47, 0xcc, 0x3c,
+ 0x5f, 0xff, 0x84, 0x84, 0x00, 0x45, 0xeb, 0xb6, 0x2f, 0x11, 0xf8, 0x1d,
+ 0x02, 0xac, 0x84, 0xed, 0xc8, 0x6e, 0xbf, 0xbf, 0x5e, 0x2e, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4, 0x11, 0x21, 0x01, 0x0f, 0xe5, 0x30,
+ 0x11, 0xb5, 0x81, 0xff, 0xb7, 0xff, 0x38, 0xaf, 0xe2, 0x67, 0xbf, 0x5e,
+ 0x35, 0x44, 0xfc, 0x48, 0x9b, 0xff, 0xaf, 0x1d, 0xff, 0xf9, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2,
+ 0x9f, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0x2b, 0xff, 0xf2, 0x78,
+ 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xad, 0xa9, 0x60, 0x31, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xaf,
+ 0x59, 0x84, 0xe3, 0x87, 0x2e, 0x06, 0x71, 0x3f, 0xff, 0xff, 0xfd, 0x7a,
+ 0xc5, 0x0a, 0x54, 0x6d, 0x62, 0x20, 0xc0, 0x66, 0xbb, 0x55, 0x90, 0x00,
+ 0x27, 0x02, 0x80, 0xce, 0x56, 0x9c, 0x38, 0xe9, 0x83, 0xc5, 0x65, 0x15,
+ 0x4a, 0xea, 0x69, 0x2d, 0xe2, 0x18, 0x4b, 0xfd, 0xbf, 0xc2, 0x62, 0xc1,
+ 0x20, 0x33, 0x53, 0x8c, 0xd8, 0x01, 0x84, 0xa2, 0x73, 0x96, 0x66, 0x04,
+ 0xa9, 0x7d, 0xc4, 0xff, 0xff, 0x5f, 0x16, 0x6a, 0x18, 0x48, 0xc5, 0x37,
+ 0x01, 0x40, 0x74, 0x8a, 0x85, 0xb9, 0x4f, 0xb9, 0xc3, 0x68, 0x6c, 0xee,
+ 0xa6, 0x93, 0x0f, 0xff, 0xff, 0x5f, 0xfe, 0xbd, 0x7b, 0x11, 0x10, 0x51,
+ 0x2f, 0x02, 0x1d, 0x26, 0x0e, 0x4f, 0xe4, 0x11, 0xfa, 0xfc, 0x66, 0x6a,
+ 0xf9, 0x7f, 0xf4, 0x51, 0xdd, 0xd3, 0xd5, 0x8a, 0x28, 0x95, 0x41, 0x5b,
+ 0xd2, 0x35, 0xd9, 0x30, 0xf3, 0xeb, 0xce, 0xba, 0xde, 0xb1, 0x8b, 0xc3,
+ 0x71, 0x7a, 0xfd, 0xeb, 0x18, 0x18, 0xf8, 0x47, 0xe9, 0x08, 0x50, 0x47,
+ 0x03, 0x09, 0x52, 0xd6, 0x25, 0x8f, 0x09, 0xa8, 0x63, 0x00, 0xdc, 0x07,
+ 0xfc, 0x3c, 0xf8, 0x0c, 0x22, 0x6d, 0xb6, 0x18, 0xc0, 0x20, 0x1f, 0xf8,
+ 0x7e, 0x02, 0x41, 0xd5, 0xbf, 0x37, 0xa7, 0xe0, 0x9a, 0x80, 0x02, 0x17,
+ 0xbb, 0xbb, 0xef, 0xe0, 0x23, 0x54, 0xc4, 0x1d, 0x7f, 0xfd, 0xeb, 0x17,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x81, 0x08, 0x13, 0x48,
+ 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x80, 0x3f, 0xdc, 0x36, 0x9b, 0xff,
+ 0xf2, 0xeb, 0x1b, 0xf7, 0xf5, 0x8e, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xf8, 0xff, 0xff, 0xde, 0x7f, 0xf2,
+ 0x62, 0x7f, 0xff, 0xff, 0xff, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf6,
+ 0xb1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff,
+ 0xfb, 0xc4, 0x45, 0x89, 0xc3, 0xb2, 0xd8, 0x7d, 0x40, 0x04, 0x47, 0x57,
+ 0xdf, 0xae, 0xfe, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xc6,
+ 0x0d, 0x31, 0x06, 0x78, 0xca, 0xa3, 0x62, 0x80, 0x55, 0xaf, 0x9b, 0xb3,
+ 0xff, 0xa2, 0xd2, 0xdc, 0xf0, 0x06, 0xa0, 0xbc, 0xd1, 0x0b, 0x99, 0xf5,
+ 0xf7, 0xed, 0xbc, 0x6e, 0x48, 0xdb, 0x04, 0x05, 0x7a, 0x01, 0xd7, 0xe4,
+ 0xcf, 0xf9, 0xdf, 0xad, 0x20, 0x08, 0xdf, 0x79, 0x7f, 0x87, 0x63, 0x50,
+ 0x45, 0xc0, 0x2f, 0x71, 0x25, 0x12, 0x53, 0x01, 0xac, 0x40, 0x28, 0x12,
+ 0x2f, 0x1d, 0x5c, 0x0d, 0xe3, 0xfd, 0xc7, 0xd3, 0xaa, 0x30, 0x70, 0x55,
+ 0x29, 0xbb, 0x5e, 0x13, 0xc8, 0xb0, 0x98, 0x88, 0xcb, 0xb5, 0xe2, 0x7f,
+ 0xff, 0xff, 0xff, 0x36, 0x1d, 0x6c, 0xf3, 0x40, 0x6d, 0x93, 0x80, 0x28,
+ 0x3a, 0x08, 0xf4, 0x8f, 0xcd, 0xb9, 0x9c, 0x9f, 0x9e, 0x00, 0x71, 0x89,
+ 0xa3, 0x64, 0x6b, 0xbe, 0x30, 0xc9, 0x58, 0x7b, 0xd7, 0x8c, 0x0f, 0x57,
+ 0xff, 0x5f, 0x99, 0xeb, 0xa8, 0xec, 0xff, 0xf5, 0x8b, 0xe0, 0x3d, 0x33,
+ 0x3f, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xf2, 0x28, 0x65, 0x4c, 0xfe,
+ 0x43, 0x8c, 0x82, 0xcb, 0xe2, 0x23, 0x7a, 0x00, 0xd6, 0xf9, 0x8b, 0x1f,
+ 0xff, 0x84, 0x88, 0x02, 0x63, 0x37, 0x0d, 0x38, 0x16, 0x7d, 0x10, 0xbe,
+ 0x83, 0x97, 0x06, 0x63, 0xea, 0xd4, 0x1c, 0xc7, 0xc8, 0x8d, 0xaa, 0xfc,
+ 0xff, 0x9c, 0xd2, 0xca, 0xa0, 0xd6, 0xd6, 0x36, 0x58, 0x04, 0x8c, 0xe9,
+ 0x87, 0xe1, 0xd2, 0x8c, 0x1c, 0xf6, 0xc2, 0x1f, 0x01, 0xbd, 0xff, 0x03,
+ 0xff, 0xfe, 0xfe, 0xc3, 0x45, 0x68, 0x0f, 0xa3, 0x3c, 0x01, 0xed, 0xfa,
+ 0x15, 0x40, 0xe8, 0x5f, 0x00, 0x3d, 0xdd, 0x7a, 0x91, 0xf7, 0x97, 0xe6,
+ 0xff, 0x39, 0x9f, 0xc1, 0x03, 0x96, 0xd1, 0xfa, 0xf3, 0x01, 0x86, 0xee,
+ 0xbf, 0xfe, 0xab, 0xd0, 0x7e, 0x12, 0x7a, 0xf1, 0x88, 0x22, 0x04, 0x88,
+ 0xc1, 0x4b, 0x80, 0x23, 0x3f, 0xea, 0x3d, 0x19, 0x3a, 0xe9, 0xbf, 0xdb,
+ 0x9f, 0x89, 0x89, 0x79, 0xa7, 0xac, 0x4f, 0xfe, 0x12, 0x11, 0xf0, 0x0f,
+ 0x00, 0x5d, 0x5d, 0xb0, 0x21, 0xd7, 0xfe, 0x00, 0x8d, 0x7a, 0x59, 0xee,
+ 0x53, 0x7f, 0x99, 0xcf, 0x5c, 0x2a, 0x80, 0x19, 0x9f, 0xab, 0x10, 0xf3,
+ 0xa0, 0x7e, 0x04, 0x4d, 0xe0, 0x7e, 0xf6, 0x75, 0xb8, 0x3f, 0x0b, 0xbf,
+ 0x5e, 0x33, 0xd9, 0xbc, 0xdb, 0xff, 0x87, 0xca, 0x64, 0xc3, 0xf5, 0xe0,
+ 0x5d, 0x6d, 0x24, 0x37, 0xf7, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xda, 0xc4, 0x57, 0x21, 0x2c, 0x0a, 0x1d, 0xba, 0x9f,
+ 0x2a, 0x18, 0x1d, 0x1f, 0x1c, 0x02, 0xb2, 0xfa, 0xf1, 0xbf, 0xf7, 0xff,
+ 0x5e, 0x3b, 0xff, 0xf2, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0xff, 0xfe, 0x3f, 0xff,
+ 0xff, 0xfc, 0x57, 0xff, 0xe4, 0xf1, 0x5f, 0xff, 0x9b, 0xfe, 0xa0, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xf8,
+ 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x1e, 0xc5, 0x40, 0x4d, 0x9b, 0x48, 0xe3,
+ 0xe8, 0x66, 0x26, 0x27, 0xff, 0xff, 0xff, 0xf0, 0xc1, 0x83, 0x4e, 0x00,
+ 0xf1, 0xb4, 0xc2, 0xc2, 0x40, 0x48, 0xdf, 0xad, 0xfd, 0x56, 0xae, 0x79,
+ 0x9e, 0xb5, 0x27, 0x80, 0x23, 0xe0, 0xea, 0xd9, 0x9b, 0xe0, 0x99, 0x5d,
+ 0xfa, 0x84, 0xa3, 0x4e, 0x36, 0xa6, 0x33, 0x35, 0xab, 0xf0, 0xc7, 0xf8,
+ 0x7f, 0x82, 0x01, 0x66, 0x73, 0x6e, 0x57, 0xdd, 0x7e, 0x31, 0x1f, 0x5a,
+ 0xff, 0xad, 0xe2, 0x7f, 0xff, 0xf0, 0xc7, 0xeb, 0x51, 0x80, 0x7b, 0x27,
+ 0x01, 0x19, 0x4f, 0x4f, 0xce, 0x63, 0x6b, 0xde, 0xf0, 0x13, 0x29, 0xcc,
+ 0xe5, 0xdc, 0xed, 0x22, 0xa6, 0x2e, 0x3f, 0xcf, 0x14, 0xcf, 0x9d, 0x7f,
+ 0xff, 0xeb, 0xff, 0xdf, 0xbf, 0x0c, 0x70, 0xc3, 0xf0, 0xe1, 0x2e, 0x00,
+ 0xaf, 0x4d, 0x35, 0x1e, 0x20, 0x64, 0xcb, 0xc0, 0x14, 0xc9, 0x25, 0x47,
+ 0x8e, 0xb2, 0xbc, 0x09, 0xf8, 0x4f, 0xfa, 0x6a, 0x9f, 0x6b, 0xae, 0x4d,
+ 0x63, 0x03, 0x1f, 0x68, 0x7d, 0xa1, 0x0a, 0x3b, 0x02, 0x84, 0x2e, 0x4f,
+ 0xda, 0x36, 0xb3, 0x07, 0x0c, 0x57, 0x55, 0x05, 0xff, 0x87, 0xd8, 0x07,
+ 0xd7, 0x8f, 0x60, 0x40, 0xfc, 0x31, 0xaa, 0xf8, 0x75, 0x50, 0xc1, 0x3a,
+ 0xc0, 0x3f, 0xa7, 0x2e, 0x54, 0x58, 0x46, 0x0b, 0x26, 0x8f, 0x78, 0x63,
+ 0xe1, 0xea, 0xbf, 0x04, 0x0b, 0x1f, 0x0e, 0xeb, 0x03, 0x42, 0xf5, 0x8c,
+ 0xd8, 0x62, 0x3a, 0xbf, 0xff, 0x0f, 0x94, 0x07, 0x7f, 0x0e, 0xec, 0x4e,
+ 0xad, 0x21, 0xba, 0xfe, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xb7, 0xad, 0x83, 0x27, 0xf9, 0x75, 0x8d, 0xfb, 0xfa, 0xc7, 0x7f,
+ 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xfc,
+ 0x7f, 0xff, 0xef, 0x3f, 0xf9, 0x31, 0x3f, 0xff, 0xff, 0xff, 0xea, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf7, 0xb9, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf0, 0x8f, 0xff, 0xcc, 0x27, 0x64, 0x12, 0x30, 0xdc, 0x9b, 0xc3,
+ 0x31, 0x7c, 0x89, 0xbb, 0x77, 0xf0, 0x01, 0x66, 0x99, 0x2e, 0x5b, 0xec,
+ 0x97, 0xd3, 0xc4, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8a, 0x1c,
+ 0x11, 0xb8, 0x3b, 0xb3, 0x73, 0x54, 0x06, 0xff, 0x0e, 0xe2, 0x3d, 0x81,
+ 0x67, 0xf0, 0x4d, 0x81, 0x37, 0xb1, 0xde, 0x80, 0xb3, 0xf8, 0x41, 0xac,
+ 0xef, 0x3d, 0xc0, 0xdf, 0x31, 0xb3, 0x5b, 0x07, 0x01, 0x8e, 0x16, 0x40,
+ 0xdc, 0x52, 0x7a, 0x1a, 0xde, 0x7f, 0xf8, 0xe8, 0x8e, 0x5d, 0x83, 0xb7,
+ 0xcf, 0xe0, 0x08, 0xee, 0xbe, 0x5e, 0x49, 0xdb, 0x04, 0x8c, 0xc2, 0xa0,
+ 0xbb, 0x04, 0x4a, 0x66, 0xdc, 0x22, 0xc6, 0xef, 0x4d, 0x2c, 0x86, 0x8f,
+ 0x35, 0xde, 0x4b, 0x06, 0xdb, 0x23, 0x71, 0x4f, 0xdd, 0xfd, 0xc7, 0x84,
+ 0x42, 0x1b, 0x2c, 0x2d, 0x02, 0x11, 0x29, 0x0b, 0x2c, 0x1c, 0x22, 0x10,
+ 0xc9, 0x6a, 0x07, 0x10, 0x73, 0x12, 0x2f, 0xe0, 0xa6, 0x86, 0xe6, 0xe3,
+ 0xa9, 0xea, 0x51, 0xbb, 0x5f, 0x69, 0x9f, 0x80, 0x28, 0x10, 0xc3, 0x2a,
+ 0x8d, 0xda, 0xf3, 0xe4, 0x0b, 0x9c, 0x57, 0xff, 0xff, 0xf1, 0x86, 0xe1,
+ 0x94, 0x3a, 0x1e, 0xa0, 0x93, 0x03, 0xf2, 0xa1, 0x33, 0xfe, 0xbf, 0x1f,
+ 0x7f, 0xd0, 0xa0, 0x51, 0x02, 0x5d, 0xe6, 0x4a, 0x8e, 0xf4, 0x3f, 0xdf,
+ 0x13, 0x61, 0xd7, 0x26, 0x60, 0xf6, 0xfc, 0x00, 0x33, 0x1b, 0x6f, 0x44,
+ 0x9b, 0x4e, 0xab, 0x65, 0x8d, 0x1d, 0x11, 0x76, 0xbf, 0xa0, 0x72, 0x09,
+ 0x1b, 0x55, 0x2b, 0xd5, 0x8d, 0x72, 0x6d, 0x20, 0x99, 0x85, 0xa4, 0x2d,
+ 0x47, 0x3a, 0x8c, 0x17, 0x12, 0x67, 0xf2, 0x09, 0x8d, 0xb3, 0x7f, 0xfe,
+ 0x45, 0x04, 0x26, 0x80, 0x0b, 0xd2, 0xfe, 0x0a, 0x14, 0xac, 0x7e, 0x60,
+ 0x3b, 0x40, 0x7e, 0x7f, 0x87, 0xe0, 0x33, 0x7e, 0xf7, 0x94, 0x52, 0x96,
+ 0x4e, 0x00, 0x81, 0x8a, 0xc0, 0xd4, 0x31, 0xef, 0xc8, 0x00, 0xfb, 0xc0,
+ 0xc9, 0x10, 0x80, 0x1d, 0x21, 0x0e, 0xe9, 0x05, 0x4f, 0x8f, 0x74, 0x0e,
+ 0x50, 0x9e, 0x98, 0x14, 0x60, 0xfd, 0x70, 0xf8, 0x01, 0xff, 0xc2, 0x3c,
+ 0x5b, 0xe9, 0x00, 0xf4, 0x72, 0x5b, 0x2e, 0x77, 0xf4, 0xff, 0xff, 0xf5,
+ 0xeb, 0xff, 0xff, 0x10, 0xf0, 0x06, 0x47, 0xab, 0x84, 0xfd, 0xfc, 0xff,
+ 0x00, 0xb7, 0x69, 0x89, 0xf3, 0x47, 0xc3, 0xff, 0x09, 0x10, 0x3a, 0x48,
+ 0xc8, 0x03, 0x08, 0x4d, 0x06, 0xda, 0x83, 0xf0, 0x03, 0xa4, 0x8c, 0x80,
+ 0x30, 0x84, 0x94, 0x1b, 0x6a, 0x00, 0x3a, 0x48, 0xc8, 0x03, 0x08, 0x49,
+ 0x41, 0xb6, 0xaf, 0x0e, 0x77, 0xc0, 0xf0, 0x38, 0xb0, 0x01, 0xfd, 0x29,
+ 0x8e, 0xb1, 0x14, 0xe7, 0x7d, 0x01, 0xbb, 0xff, 0xef, 0xfc, 0x18, 0x70,
+ 0xcc, 0x3a, 0xfc, 0xdd, 0x86, 0xfb, 0x39, 0xbe, 0x9f, 0xfc, 0x3e, 0x58,
+ 0x43, 0x39, 0x32, 0x34, 0xe3, 0xd5, 0xef, 0xcc, 0x14, 0xfa, 0x69, 0xf1,
+ 0x26, 0xf8, 0x05, 0x07, 0x6d, 0x81, 0xf5, 0x03, 0xec, 0x58, 0x2e, 0x8f,
+ 0x57, 0xcd, 0x2f, 0xff, 0x5f, 0xe0, 0x02, 0x4a, 0xa2, 0x6e, 0xe2, 0xfb,
+ 0xcf, 0xb7, 0x19, 0x03, 0x80, 0x3c, 0x77, 0x27, 0x84, 0xce, 0x0e, 0x65,
+ 0x09, 0x89, 0xcd, 0x4f, 0x4f, 0xa5, 0x31, 0x43, 0x24, 0xc6, 0xd6, 0x07,
+ 0xdb, 0xc3, 0xff, 0x80, 0x10, 0x46, 0xef, 0xd2, 0x3f, 0x71, 0xe8, 0x8d,
+ 0x63, 0xe7, 0xf8, 0x08, 0xca, 0xd3, 0x9d, 0xab, 0xde, 0xfd, 0x78, 0xce,
+ 0x63, 0xc2, 0x1c, 0x1e, 0xd9, 0x33, 0xa0, 0x55, 0x4c, 0x29, 0x60, 0x01,
+ 0x15, 0xbb, 0xbb, 0xae, 0xff, 0x00, 0x1f, 0x41, 0xda, 0xe7, 0x74, 0x64,
+ 0xf5, 0x7b, 0xff, 0xef, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xde, 0xe4, 0x09, 0x5f, 0xe5, 0x33, 0x6c, 0x14, 0x09, 0xf5, 0x19,
+ 0xbc, 0x2f, 0x8f, 0xe3, 0xd6, 0xec, 0x31, 0x1d, 0xc2, 0x03, 0x1d, 0x0c,
+ 0x54, 0x2c, 0x3c, 0xbb, 0xcf, 0xe2, 0xda, 0xb1, 0xe3, 0xe1, 0x84, 0x3d,
+ 0x8e, 0x43, 0x6c, 0xf7, 0x4e, 0xf9, 0x17, 0x0c, 0x43, 0xe5, 0xfa, 0xf1,
+ 0xdf, 0xed, 0x8f, 0x03, 0x61, 0x93, 0x03, 0x4c, 0x7f, 0xda, 0x87, 0xa5,
+ 0xb5, 0x1f, 0x21, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xd7, 0xff, 0xff, 0x08, 0x7f, 0xc6,
+ 0x7f, 0xfe, 0x3b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xae, 0x2d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xff, 0xbf, 0x45,
+ 0x94, 0x4e, 0x08, 0xf3, 0x37, 0x75, 0xd7, 0x13, 0xff, 0xff, 0xff, 0xdf,
+ 0xac, 0x50, 0x80, 0x01, 0x91, 0x59, 0x45, 0xcc, 0xfb, 0xfe, 0xc3, 0x7b,
+ 0xc0, 0x84, 0x43, 0xb4, 0x25, 0x87, 0xbf, 0xf4, 0x00, 0x4d, 0xe4, 0xf0,
+ 0xac, 0x3e, 0xff, 0x68, 0xc2, 0x6c, 0x6b, 0x43, 0xdc, 0x47, 0x11, 0xd5,
+ 0x98, 0x32, 0x41, 0x86, 0x34, 0xf8, 0x5f, 0xf0, 0x99, 0xc2, 0x20, 0x6c,
+ 0x00, 0x24, 0x5e, 0xab, 0xe4, 0xcc, 0x62, 0x5d, 0xdd, 0x2e, 0xf6, 0x7c,
+ 0x50, 0x03, 0xd8, 0xbd, 0xa9, 0x4f, 0xbc, 0xb7, 0xd8, 0x9f, 0xff, 0xef,
+ 0xd6, 0x33, 0xc0, 0x91, 0xbe, 0xcf, 0x5b, 0x80, 0x1d, 0x99, 0x0e, 0x62,
+ 0x14, 0xcb, 0xd1, 0x63, 0xf5, 0xe1, 0xf3, 0x37, 0x81, 0xb6, 0x3a, 0x49,
+ 0xf5, 0x79, 0xf1, 0xe6, 0x9e, 0xac, 0x0f, 0x7b, 0xff, 0x2f, 0x1d, 0xc2,
+ 0xc4, 0x19, 0x36, 0x8f, 0xee, 0x69, 0xf7, 0x6d, 0xf3, 0x86, 0x3f, 0xff,
+ 0x22, 0x82, 0x12, 0xc0, 0x02, 0xf2, 0x4d, 0xd7, 0xa1, 0x39, 0x5b, 0xbf,
+ 0xc3, 0x80, 0x7e, 0x1d, 0x65, 0x27, 0xc0, 0x15, 0x69, 0xa0, 0x63, 0x9f,
+ 0x3c, 0x7f, 0xff, 0xaf, 0xff, 0xef, 0xc9, 0x86, 0x42, 0x02, 0x10, 0x13,
+ 0x6f, 0x3f, 0xff, 0xbc, 0xb7, 0x54, 0x25, 0xce, 0x78, 0x0d, 0xbb, 0xba,
+ 0xec, 0x7f, 0x97, 0x00, 0x1a, 0x49, 0x09, 0x97, 0xf4, 0xc3, 0x8d, 0xfd,
+ 0x47, 0x4c, 0x14, 0x44, 0xa4, 0xf4, 0x0c, 0xf4, 0x84, 0x88, 0x38, 0x19,
+ 0xc3, 0x12, 0xb4, 0x32, 0x26, 0xfc, 0x26, 0x58, 0x72, 0x0f, 0xc3, 0x30,
+ 0x70, 0x7e, 0x18, 0x01, 0xc6, 0xa7, 0x9e, 0x97, 0xf4, 0x2c, 0x30, 0x09,
+ 0x36, 0xa6, 0x19, 0x80, 0x1c, 0x57, 0xc0, 0x0f, 0xea, 0xad, 0xe7, 0xff,
+ 0xc7, 0x51, 0x01, 0xfb, 0x0a, 0x00, 0x8d, 0xf5, 0xeb, 0xfd, 0xbf, 0xf0,
+ 0x05, 0x5b, 0xb7, 0x1f, 0x25, 0x5d, 0xeb, 0x18, 0xfa, 0x0d, 0x44, 0xe1,
+ 0x84, 0x9a, 0x43, 0x9e, 0x13, 0xc5, 0x8c, 0x02, 0x2d, 0xe3, 0xff, 0xe3,
+ 0xfc, 0x03, 0xc2, 0x3e, 0x1d, 0xd9, 0xfc, 0x01, 0xd7, 0xb7, 0x1e, 0x97,
+ 0xbd, 0x63, 0x1f, 0x64, 0x88, 0xc8, 0x27, 0xc0, 0x41, 0xaa, 0x03, 0xfc,
+ 0x5f, 0x7a, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5,
+ 0x8a, 0xef, 0x97, 0x58, 0xd7, 0xfb, 0xfa, 0xc7, 0x77, 0xf9, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe,
+ 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xf8, 0xc1, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f,
+ 0x98, 0x4f, 0x00, 0x3f, 0x9b, 0x21, 0x29, 0x52, 0x9e, 0xb1, 0x1c, 0xbc,
+ 0x2d, 0x50, 0x45, 0x53, 0x90, 0x44, 0xf8, 0xe7, 0x13, 0xd9, 0x22, 0x26,
+ 0xe0, 0x03, 0xe6, 0xf5, 0x90, 0x8e, 0xa4, 0xae, 0xc4, 0x06, 0x22, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0x14, 0x22, 0x18, 0xfd, 0x91, 0xc5, 0xff, 0xfd,
+ 0xe3, 0xc8, 0xc8, 0x54, 0xc8, 0x44, 0x36, 0x9c, 0x7b, 0xf3, 0x3e, 0xcd,
+ 0xda, 0x6d, 0xce, 0xcb, 0x18, 0xd5, 0x67, 0xdf, 0xf8, 0x3a, 0xc2, 0x9c,
+ 0x2d, 0xad, 0xf9, 0xd8, 0xd1, 0x0d, 0x61, 0x1e, 0xd3, 0x69, 0x1f, 0xd2,
+ 0xec, 0x27, 0xd9, 0xe5, 0x43, 0xdc, 0x00, 0x30, 0xdf, 0x7a, 0x5c, 0x60,
+ 0x7c, 0x01, 0x22, 0xc4, 0x9c, 0xad, 0x1f, 0x7e, 0x6f, 0x63, 0x0a, 0x81,
+ 0xd1, 0x01, 0x63, 0x10, 0x11, 0xeb, 0x4b, 0x0e, 0x2c, 0x50, 0x30, 0xbd,
+ 0x6f, 0xd7, 0x23, 0x34, 0xc0, 0x4d, 0xfa, 0x8c, 0x68, 0x43, 0xfd, 0x78,
+ 0xd3, 0xe9, 0xef, 0xf9, 0x78, 0xdd, 0xd0, 0x31, 0x93, 0xe0, 0x0b, 0x76,
+ 0xb3, 0x59, 0x8d, 0x33, 0xec, 0xcf, 0x6a, 0x05, 0x90, 0x09, 0xfd, 0xb3,
+ 0x31, 0x5f, 0x49, 0x8d, 0x97, 0x6b, 0x0f, 0xd1, 0x6a, 0xbb, 0xe7, 0x20,
+ 0x00, 0x19, 0x2e, 0x7b, 0x99, 0x3b, 0xb6, 0x80, 0x2d, 0x7c, 0x83, 0x54,
+ 0x60, 0x27, 0x2c, 0x9c, 0x9f, 0xcc, 0x3b, 0xcd, 0x23, 0x8d, 0xa9, 0x9b,
+ 0x5d, 0x53, 0xfe, 0x71, 0x9a, 0x4c, 0x1f, 0xc2, 0x5f, 0x82, 0x01, 0x60,
+ 0x51, 0x74, 0xac, 0xf2, 0x5b, 0xef, 0xac, 0x04, 0x99, 0x8a, 0x2d, 0x5d,
+ 0xd7, 0x89, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91, 0x31, 0x3b, 0xaa,
+ 0xd9, 0xba, 0x2c, 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2, 0xf0, 0x40, 0x0e,
+ 0x7d, 0x83, 0xe4, 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29, 0x53, 0xf5, 0x06,
+ 0xe8, 0x7d, 0x9b, 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38, 0x1b, 0xb2, 0xd4,
+ 0x17, 0x60, 0xe7, 0x19, 0xfe, 0xf0, 0x72, 0x18, 0x21, 0xf0, 0x02, 0xaf,
+ 0xbe, 0x52, 0x5f, 0x57, 0xcc, 0x38, 0xbb, 0xc3, 0xfe, 0x12, 0x40, 0x0f,
+ 0xf7, 0xd3, 0xd0, 0x22, 0x6e, 0x9e, 0xbf, 0xf0, 0x3c, 0x06, 0x11, 0x07,
+ 0x98, 0x56, 0x2a, 0xac, 0x5e, 0xde, 0xf8, 0x00, 0xc1, 0x4c, 0xa4, 0xd6,
+ 0x5f, 0xeb, 0xe1, 0x80, 0x1f, 0x31, 0xe4, 0xce, 0xef, 0x8b, 0x73, 0xd4,
+ 0x2d, 0xda, 0x8a, 0x81, 0xcf, 0x00, 0x62, 0x27, 0xd0, 0x94, 0x88, 0x2e,
+ 0xbf, 0xe8, 0xff, 0x7f, 0xff, 0xff, 0xe8, 0xc8, 0x02, 0xb8, 0x17, 0xfc,
+ 0x24, 0x81, 0x89, 0x67, 0x6b, 0x18, 0xe5, 0x50, 0xd6, 0xfe, 0xe5, 0x7a,
+ 0xc4, 0xc3, 0x7d, 0xa7, 0x1c, 0xba, 0x3e, 0xd5, 0xf1, 0x35, 0x5f, 0x54,
+ 0x9c, 0xfd, 0x4d, 0x73, 0xc0, 0xe7, 0xf8, 0x88, 0xdc, 0x27, 0x11, 0xfa,
+ 0x1d, 0x0f, 0xe8, 0x74, 0x39, 0x81, 0xac, 0x23, 0xc9, 0xbf, 0x09, 0xe2,
+ 0x8f, 0xf7, 0x07, 0x77, 0xf0, 0xce, 0xee, 0xe2, 0x9f, 0xfa, 0x77, 0xc0,
+ 0x3d, 0xce, 0x3d, 0x6b, 0xd7, 0x8c, 0xf6, 0x6f, 0x87, 0xff, 0x04, 0x38,
+ 0x01, 0x9f, 0x6f, 0xac, 0xed, 0x0d, 0x77, 0xf4, 0xc4, 0x7a, 0x26, 0xdb,
+ 0xf9, 0x7e, 0x13, 0x60, 0xe0, 0x39, 0x1d, 0x33, 0x01, 0xab, 0x57, 0xdb,
+ 0xfe, 0xf8, 0x0f, 0xf5, 0xeb, 0xc6, 0x7b, 0x11, 0x3c, 0xbe, 0x2e, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xe3, 0x04, 0x5f, 0x97, 0xd7, 0x8d, 0xf2,
+ 0x7f, 0xd7, 0x84, 0x3c, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2d, 0xff, 0xf8, 0x47, 0xff, 0xff, 0x8a,
+ 0xff, 0xfc, 0x9e, 0x2b, 0xff, 0xf3, 0x7f, 0xd4, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xae, 0x6f, 0x60, 0x67, 0xff, 0xff, 0xff, 0xe2, 0xb3, 0xbf, 0x7e,
+ 0xfe, 0x62, 0xe0, 0x24, 0x5a, 0x59, 0xbd, 0xda, 0x80, 0x91, 0x95, 0xa5,
+ 0x21, 0xca, 0x15, 0x12, 0x52, 0xe9, 0xbd, 0x89, 0xff, 0xff, 0xfb, 0xfe,
+ 0xf1, 0x66, 0x1f, 0x87, 0xe0, 0x3d, 0x1c, 0x3f, 0x3b, 0x50, 0xc1, 0xa0,
+ 0x59, 0xf6, 0x67, 0x24, 0x13, 0x1b, 0x20, 0x03, 0x3a, 0x9d, 0x98, 0xc4,
+ 0x45, 0x94, 0xc8, 0xb6, 0x5c, 0x3e, 0xd3, 0x23, 0x98, 0x7d, 0x27, 0x8f,
+ 0x05, 0x32, 0xbb, 0xc0, 0x6b, 0x93, 0x0c, 0x99, 0xf0, 0x6e, 0x66, 0x40,
+ 0x16, 0xa0, 0xa8, 0x98, 0x79, 0xa3, 0x2a, 0x7e, 0x07, 0x37, 0xa1, 0xcb,
+ 0x00, 0x7f, 0xe2, 0x01, 0xd3, 0x5c, 0xd6, 0x3e, 0x42, 0xd2, 0xd0, 0xc2,
+ 0x7f, 0x69, 0x7e, 0x13, 0x38, 0xb6, 0x9a, 0x29, 0xc7, 0x1d, 0xd8, 0x8c,
+ 0x9d, 0xfc, 0x42, 0x3d, 0x3b, 0xfa, 0x51, 0x3f, 0xff, 0xf8, 0x63, 0x1f,
+ 0x00, 0x34, 0x7d, 0x52, 0x2c, 0x98, 0x01, 0x1b, 0x37, 0xcb, 0x7f, 0xfb,
+ 0xdd, 0xdc, 0xb5, 0xda, 0x60, 0x3b, 0x8e, 0xe6, 0x83, 0x47, 0x3d, 0x40,
+ 0x08, 0xcd, 0xa6, 0x9a, 0xd5, 0xe5, 0x13, 0xe0, 0x9a, 0x47, 0x0e, 0xd1,
+ 0xe2, 0xce, 0xfc, 0xf1, 0x16, 0x53, 0x34, 0x00, 0x99, 0x0f, 0xcf, 0xc3,
+ 0x1f, 0xbd, 0xff, 0xc4, 0x9f, 0x80, 0x21, 0x95, 0x83, 0xe3, 0x1e, 0xfc,
+ 0x80, 0x2d, 0x52, 0x07, 0xcc, 0xe3, 0xa1, 0xf8, 0x40, 0xe0, 0xfc, 0x2f,
+ 0xf8, 0x60, 0x7b, 0x8f, 0xff, 0x0f, 0x30, 0xed, 0xaf, 0x9c, 0x17, 0xe0,
+ 0x45, 0x7a, 0xeb, 0x87, 0xef, 0xfa, 0xff, 0xaf, 0xff, 0xd0, 0x60, 0xd4,
+ 0xc4, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x59, 0x9c, 0x44, 0x35, 0x45, 0xda,
+ 0x0c, 0x21, 0x7e, 0x72, 0x68, 0xff, 0xa8, 0x78, 0x99, 0x14, 0xb0, 0x25,
+ 0xff, 0x85, 0x2e, 0x29, 0x1b, 0xfd, 0xa7, 0x65, 0xad, 0x33, 0xf6, 0x86,
+ 0xfb, 0xca, 0x17, 0xff, 0x00, 0x33, 0xf0, 0xdc, 0x5e, 0x1a, 0xf0, 0xd7,
+ 0x5a, 0xc6, 0x6c, 0x33, 0xeb, 0xad, 0x63, 0x38, 0x63, 0xf8, 0x7f, 0xc2,
+ 0x82, 0x20, 0x15, 0x07, 0xb1, 0xc6, 0x2e, 0xcf, 0x45, 0xc0, 0x14, 0x74,
+ 0xd3, 0x46, 0xd4, 0xd0, 0xc4, 0x52, 0x76, 0xc2, 0x06, 0x0c, 0xf6, 0x43,
+ 0x3d, 0x30, 0xb6, 0x97, 0xb6, 0x2e, 0x31, 0xca, 0x5f, 0xfc, 0x5d, 0x99,
+ 0x81, 0x0b, 0x20, 0x06, 0x58, 0xe2, 0x6f, 0xfb, 0x28, 0x45, 0x99, 0x0e,
+ 0xb0, 0x65, 0x65, 0xa2, 0x81, 0x88, 0xf0, 0xcb, 0x3f, 0xf2, 0x3b, 0xbd,
+ 0xd9, 0x5a, 0xe5, 0x10, 0xb8, 0x90, 0x08, 0x07, 0x75, 0xd3, 0x02, 0x3b,
+ 0xb0, 0xc4, 0x75, 0x9a, 0x14, 0xe1, 0x66, 0xb6, 0x02, 0x3c, 0xf9, 0xf9,
+ 0x8b, 0xcc, 0xd6, 0xc5, 0xb2, 0x7a, 0x23, 0x36, 0x8e, 0x0a, 0xed, 0x6d,
+ 0x7f, 0x92, 0x22, 0x2a, 0xc6, 0xa0, 0xe9, 0x23, 0x4c, 0x19, 0x24, 0x98,
+ 0x6a, 0x3a, 0x51, 0xb7, 0xc3, 0x1a, 0x20, 0x9c, 0xe5, 0x31, 0x01, 0x1b,
+ 0x80, 0xe8, 0x8a, 0xd2, 0xc2, 0x32, 0x9e, 0xfc, 0xf1, 0x01, 0x96, 0xfe,
+ 0xe4, 0xea, 0xd8, 0x51, 0x4e, 0x7f, 0x40, 0x9f, 0xe5, 0x17, 0x59, 0x9e,
+ 0x9b, 0x43, 0x08, 0x9c, 0xa6, 0x30, 0x79, 0x3d, 0x31, 0x2a, 0x7a, 0xc5,
+ 0x2b, 0x1d, 0x9b, 0x6d, 0x0c, 0x61, 0x4f, 0x49, 0x34, 0xf6, 0xe0, 0x78,
+ 0x0c, 0x64, 0x1c, 0x18, 0x14, 0xd2, 0x41, 0xef, 0x2d, 0x7f, 0x80, 0x6e,
+ 0xda, 0x94, 0xbc, 0x06, 0x0e, 0x7e, 0x0c, 0x25, 0xe7, 0x60, 0xa6, 0xd0,
+ 0x36, 0x44, 0xbd, 0x5f, 0xde, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xb9, 0xbd, 0x8b, 0x90, 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x95, 0x07, 0xef,
+ 0xe2, 0x26, 0x10, 0x8c, 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xda, 0x35,
+ 0x4f, 0xc0, 0xff, 0x88, 0x60, 0x0d, 0x96, 0x93, 0x4f, 0xc3, 0x08, 0x42,
+ 0x22, 0x5b, 0xf9, 0x1a, 0xc7, 0xf8, 0x63, 0x68, 0xb8, 0x7f, 0xe1, 0x22,
+ 0x01, 0xc8, 0x06, 0x11, 0x00, 0x4a, 0x29, 0x60, 0x00, 0x20, 0x02, 0xfc,
+ 0x01, 0x96, 0x50, 0x34, 0x58, 0x0e, 0x10, 0x00, 0x08, 0xea, 0x02, 0x38,
+ 0x0e, 0xae, 0x4d, 0x48, 0x3a, 0xbb, 0x86, 0x30, 0xbf, 0xff, 0x84, 0x8b,
+ 0x00, 0x56, 0xcc, 0x89, 0xa7, 0xe7, 0xc1, 0x17, 0xeb, 0x1b, 0x93, 0xeb,
+ 0x86, 0x3e, 0xad, 0xf0, 0xc6, 0xc5, 0x0a, 0x00, 0xe0, 0x39, 0x08, 0x44,
+ 0x26, 0x60, 0x02, 0x10, 0xf5, 0x42, 0xae, 0x2b, 0x3e, 0x03, 0x4d, 0xe8,
+ 0xf3, 0x89, 0x1b, 0x98, 0x17, 0x56, 0x14, 0x7f, 0x50, 0xae, 0xa7, 0xea,
+ 0x75, 0x06, 0x2d, 0x42, 0x6d, 0x6e, 0xa4, 0x78, 0x0e, 0x03, 0x90, 0x84,
+ 0x42, 0x66, 0x18, 0xb0, 0xd1, 0xed, 0x67, 0x56, 0xf8, 0x21, 0x6c, 0xb8,
+ 0x71, 0x08, 0x54, 0xcc, 0x31, 0x86, 0xad, 0xfe, 0x31, 0x90, 0x01, 0x08,
+ 0x7a, 0xa1, 0x57, 0x15, 0x9f, 0x01, 0xa6, 0xf4, 0x79, 0xc4, 0x8d, 0xcc,
+ 0x0b, 0xab, 0x0a, 0x3f, 0xa8, 0x57, 0x53, 0xf5, 0x3a, 0x83, 0x16, 0xa1,
+ 0x36, 0xb7, 0x52, 0x00, 0x0c, 0xbf, 0xba, 0x77, 0x40, 0xc9, 0x6a, 0x61,
+ 0x8b, 0x0d, 0x1e, 0xd6, 0x75, 0x6f, 0x82, 0x16, 0xcb, 0x87, 0x10, 0x85,
+ 0x4c, 0xc3, 0x18, 0x6a, 0xdf, 0xe3, 0x19, 0x00, 0x10, 0x87, 0xaa, 0x15,
+ 0x71, 0x59, 0xf0, 0x1a, 0x6f, 0x47, 0x9c, 0x48, 0xdc, 0xc0, 0xba, 0xb0,
+ 0xa3, 0xfa, 0x85, 0x75, 0x3f, 0x53, 0xa8, 0x31, 0x6a, 0x13, 0x6b, 0x75,
+ 0x20, 0x00, 0xcb, 0xfb, 0xa7, 0x74, 0x0c, 0x96, 0xa6, 0x18, 0xb0, 0xd1,
+ 0xed, 0x67, 0x56, 0xf8, 0x21, 0x6c, 0xb8, 0x71, 0x08, 0x54, 0xcc, 0x31,
+ 0x86, 0xac, 0x5f, 0x1a, 0x46, 0x40, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19,
+ 0x76, 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0x0b, 0x62, 0xc1, 0xd2,
+ 0x6f, 0x4f, 0x77, 0xb7, 0xf8, 0x03, 0xd2, 0xde, 0x00, 0x0c, 0xbf, 0xba,
+ 0x77, 0x40, 0xc9, 0x6a, 0x00, 0x07, 0x6f, 0xf9, 0x5f, 0x01, 0xde, 0xf3,
+ 0x09, 0x54, 0xdb, 0xf5, 0x71, 0x04, 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03,
+ 0x11, 0xde, 0xa8, 0xc8, 0xff, 0x9f, 0x43, 0x18, 0x6a, 0xc5, 0xa2, 0xc6,
+ 0x91, 0x90, 0x03, 0x32, 0x91, 0x19, 0x80, 0xc6, 0x5d, 0xa0, 0x3a, 0xf7,
+ 0xdf, 0xb4, 0x2d, 0xff, 0xc2, 0xd8, 0xb0, 0x74, 0x9b, 0xd3, 0xdd, 0xed,
+ 0xfe, 0x00, 0xf4, 0xb7, 0xb8, 0xb9, 0x22, 0xcf, 0x40, 0x08, 0xdb, 0xdf,
+ 0x2b, 0x6f, 0xff, 0xc1, 0xde, 0xf3, 0x09, 0x54, 0xdb, 0xf5, 0x71, 0x04,
+ 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03, 0x11, 0xde, 0xa8, 0xc8, 0xff, 0x9f,
+ 0x43, 0x18, 0x6a, 0xc5, 0xa6, 0x34, 0x8c, 0x80, 0x19, 0x94, 0x88, 0xcc,
+ 0x06, 0x32, 0xed, 0x01, 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xfe, 0x16, 0xc5,
+ 0x83, 0xa4, 0xde, 0x9e, 0xef, 0x6f, 0xf0, 0x07, 0xa5, 0xbd, 0xc5, 0x92,
+ 0x44, 0xcf, 0x40, 0x01, 0xdb, 0xfe, 0x57, 0xc0, 0x77, 0xbc, 0xc2, 0x55,
+ 0x36, 0xfd, 0x5c, 0x41, 0x00, 0x68, 0x80, 0xb8, 0x99, 0x00, 0xc4, 0x77,
+ 0xaa, 0x32, 0x3f, 0xe7, 0xd0, 0xc6, 0x1a, 0xb1, 0x68, 0xb4, 0xe3, 0x20,
+ 0x06, 0x65, 0x22, 0x33, 0x01, 0x8c, 0xbb, 0x40, 0x75, 0xef, 0xbf, 0x68,
+ 0x5b, 0xff, 0x85, 0xb1, 0x60, 0xe9, 0x37, 0xa7, 0xbb, 0x1a, 0xa8, 0x01,
+ 0xe9, 0x27, 0x71, 0x72, 0x45, 0x9e, 0x80, 0x11, 0xb7, 0xbe, 0x56, 0xdf,
+ 0xff, 0x83, 0xbd, 0xe6, 0x12, 0xa9, 0xb7, 0xea, 0xeb, 0xbc, 0xea, 0xe9,
+ 0x91, 0xfe, 0x7c, 0x5c, 0x4c, 0xd5, 0x2d, 0xbb, 0x56, 0xf9, 0x7a, 0x18,
+ 0xfa, 0x99, 0x05, 0x2c, 0x9d, 0xfe, 0x0f, 0x00, 0x33, 0x29, 0x11, 0x98,
+ 0x0c, 0x65, 0xda, 0x03, 0xaf, 0x7d, 0xfb, 0x42, 0xdf, 0xfe, 0x90, 0x00,
+ 0x17, 0x04, 0x1f, 0x90, 0xec, 0x6a, 0xa0, 0x07, 0xa4, 0x99, 0xf0, 0x6f,
+ 0xfb, 0x4b, 0xb7, 0xf9, 0xe0, 0xc3, 0x79, 0x13, 0x35, 0xab, 0xc0, 0x13,
+ 0xaf, 0x0c, 0xb6, 0x26, 0x77, 0x65, 0xde, 0x75, 0x74, 0x64, 0x7f, 0x9f,
+ 0x6f, 0x86, 0xbd, 0x57, 0x7f, 0x7f, 0xaa, 0x96, 0xdd, 0xab, 0x7c, 0xbd,
+ 0x0c, 0x7d, 0x4c, 0x82, 0x96, 0x4e, 0x32, 0x00, 0x66, 0x52, 0x23, 0x30,
+ 0x18, 0xcb, 0xb4, 0x07, 0x5e, 0xfb, 0xf6, 0x85, 0xbf, 0xfd, 0x20, 0x00,
+ 0x2e, 0x08, 0x3f, 0x21, 0xd8, 0xd5, 0x40, 0x0f, 0x49, 0x33, 0xe0, 0xdf,
+ 0xf6, 0x97, 0x67, 0xf9, 0xe0, 0xc3, 0x79, 0x13, 0x35, 0xab, 0xc0, 0x1b,
+ 0x9f, 0x0c, 0xb5, 0x20, 0x8e, 0xce, 0xab, 0xce, 0xae, 0x62, 0x7f, 0xce,
+ 0xb7, 0xc3, 0x5e, 0xab, 0xbf, 0xbf, 0xd3, 0x47, 0x6e, 0xd3, 0x1c, 0x3b,
+ 0xa8, 0x63, 0xea, 0x64, 0x14, 0xb2, 0x71, 0x90, 0x03, 0x32, 0x91, 0x19,
+ 0x80, 0xc6, 0x5d, 0xa0, 0x3a, 0xf7, 0xdf, 0xb4, 0x2d, 0xff, 0xe9, 0x00,
+ 0x01, 0x70, 0x41, 0xf9, 0x0e, 0xc6, 0xaa, 0x00, 0x7a, 0x49, 0x9f, 0x08,
+ 0xee, 0xd2, 0xec, 0xff, 0x3c, 0x18, 0x6f, 0x22, 0x66, 0xb5, 0x78, 0x03,
+ 0x73, 0xe1, 0x96, 0xa4, 0x11, 0xd9, 0xd5, 0x79, 0xd5, 0xcc, 0x4f, 0xf9,
+ 0xd6, 0xf8, 0x6b, 0xd5, 0x77, 0xf7, 0xfa, 0x68, 0xed, 0xda, 0x63, 0x87,
+ 0x75, 0x0c, 0x7c, 0xd5, 0x02, 0x8e, 0xd0, 0xdf, 0xe0, 0xf0, 0x00, 0xa7,
+ 0x73, 0x2a, 0xd6, 0x18, 0xa5, 0x2b, 0x0e, 0x67, 0x8d, 0x91, 0x7f, 0xf5,
+ 0x27, 0x00, 0x00, 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0xd5, 0x7c,
+ 0xdf, 0x08, 0xee, 0xd2, 0xed, 0xfe, 0x78, 0x06, 0x8d, 0xcd, 0x8b, 0x5a,
+ 0x56, 0x00, 0x31, 0x1e, 0x46, 0x72, 0x05, 0x1f, 0xea, 0x98, 0x06, 0x5b,
+ 0xe5, 0x61, 0xc7, 0x6c, 0x98, 0x1d, 0xa5, 0x26, 0x38, 0x77, 0x59, 0xb3,
+ 0x57, 0xfd, 0xbf, 0xf7, 0x74, 0x31, 0xfa, 0xa0, 0x52, 0xde, 0x32, 0x00,
+ 0x14, 0xee, 0x65, 0x5a, 0xc3, 0x14, 0xa4, 0xe5, 0x6c, 0xcc, 0xc0, 0x57,
+ 0x7c, 0xf4, 0xe0, 0x00, 0x15, 0x04, 0x2f, 0x21, 0x78, 0xa8, 0x1f, 0xc9,
+ 0x7f, 0x9b, 0xe1, 0xed, 0x1d, 0x98, 0xeb, 0xb8, 0x01, 0xa3, 0x76, 0xc5,
+ 0xad, 0x2b, 0x00, 0x18, 0x8f, 0x26, 0xe4, 0x0a, 0x3f, 0xd5, 0x30, 0x0c,
+ 0xb7, 0xce, 0x41, 0xc7, 0x6c, 0x98, 0x1d, 0xaa, 0x58, 0xe1, 0xdd, 0x6e,
+ 0xcd, 0x5f, 0xf5, 0xfd, 0xe8, 0x63, 0xf5, 0x40, 0xa5, 0xbc, 0x64, 0x00,
+ 0x29, 0xdc, 0xca, 0xb5, 0x86, 0x29, 0x49, 0xca, 0xd9, 0x99, 0x80, 0xae,
+ 0xf9, 0xe9, 0xc0, 0x00, 0x2a, 0x08, 0x5e, 0x42, 0xf1, 0x50, 0x3f, 0x92,
+ 0xff, 0x37, 0xc3, 0xda, 0x3b, 0x31, 0xd7, 0x70, 0x03, 0x46, 0xed, 0x8b,
+ 0x5a, 0x56, 0x00, 0x31, 0x1e, 0x4d, 0xc8, 0x14, 0x7f, 0xaa, 0x60, 0x19,
+ 0x6f, 0x9c, 0x83, 0x8e, 0xd9, 0x30, 0x3b, 0x54, 0xb1, 0xc3, 0xba, 0xdd,
+ 0x9a, 0xbf, 0xeb, 0xfb, 0xd0, 0xc7, 0x80, 0x8a, 0x05, 0x22, 0x8c, 0x11,
+ 0x90, 0x00, 0xa7, 0x73, 0x29, 0x4b, 0x0d, 0xf1, 0xf6, 0x23, 0xa2, 0x4c,
+ 0xf9, 0xbb, 0xbf, 0xb8, 0x01, 0xf9, 0x63, 0x27, 0x74, 0x6d, 0x2f, 0xaf,
+ 0x7c, 0x3d, 0xa3, 0xb3, 0x1d, 0x77, 0x03, 0xc4, 0x21, 0x50, 0x98, 0x40,
+ 0x80, 0x26, 0x40, 0x12, 0x39, 0xe3, 0x4b, 0x51, 0xdd, 0xcf, 0x03, 0x38,
+ 0xf5, 0xd6, 0x49, 0xff, 0xbe, 0x02, 0xc3, 0x0a, 0x25, 0x43, 0x16, 0x0e,
+ 0x28, 0xc1, 0x7b, 0x89, 0xea, 0x85, 0xdc, 0x01, 0x9c, 0xd6, 0x63, 0x35,
+ 0x59, 0x3c, 0x6a, 0x52, 0x01, 0xaf, 0xee, 0x00, 0x7e, 0x58, 0x89, 0x7f,
+ 0x50, 0x03, 0xd2, 0x35, 0xdd, 0x7c, 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x0c,
+ 0x10, 0x85, 0x42, 0x61, 0x02, 0x00, 0x91, 0x00, 0x48, 0xe7, 0x8d, 0x2d,
+ 0x67, 0x77, 0x3c, 0x0c, 0xe3, 0xd7, 0x4c, 0x93, 0xff, 0x7c, 0x0e, 0x18,
+ 0xc4, 0x54, 0x19, 0x03, 0x8a, 0x30, 0x5f, 0x02, 0xaa, 0x74, 0xef, 0xb0,
+ 0x05, 0x3b, 0xba, 0xe6, 0x32, 0x7f, 0xb3, 0x48, 0xb3, 0x01, 0x45, 0x8a,
+ 0x80, 0x6d, 0x77, 0x00, 0xf5, 0x41, 0x7c, 0xfa, 0x37, 0x43, 0xe9, 0xab,
+ 0xbb, 0xee, 0x00, 0x19, 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42, 0xa1, 0x30,
+ 0x81, 0x00, 0x59, 0x00, 0x38, 0xe7, 0x63, 0x4b, 0x51, 0xbb, 0xbc, 0x0c,
+ 0xe3, 0xd7, 0x4c, 0x93, 0xff, 0x7c, 0x2d, 0x20, 0x86, 0x1e, 0x19, 0xb2,
+ 0x78, 0x83, 0x6f, 0xd5, 0xf8, 0x00, 0x67, 0x2b, 0x4b, 0x38, 0xc1, 0x9c,
+ 0x13, 0xd0, 0xd4, 0xed, 0x92, 0x0f, 0xcf, 0xd6, 0x55, 0xf7, 0x00, 0xf5,
+ 0xc2, 0xef, 0xeb, 0xff, 0xe2, 0x38, 0xb3, 0x7f, 0xfc, 0x7c, 0x00, 0x37,
+ 0xf7, 0x4e, 0xe8, 0x60, 0x84, 0x2a, 0x93, 0x08, 0x10, 0x04, 0x88, 0x2f,
+ 0x9c, 0x6c, 0xd6, 0xbc, 0x34, 0xe0, 0x67, 0x1e, 0xba, 0x62, 0x8f, 0xfd,
+ 0xf0, 0x8d, 0xa6, 0x21, 0x8f, 0x99, 0x27, 0xed, 0x8c, 0x80, 0x06, 0x72,
+ 0xb4, 0xb3, 0x8c, 0x19, 0xc1, 0x3d, 0x0d, 0x4e, 0xd9, 0x20, 0xfc, 0xfd,
+ 0x56, 0xb0, 0xcf, 0x5e, 0x2b, 0xab, 0x6b, 0xff, 0xe2, 0x38, 0xb3, 0x7f,
+ 0xfc, 0x78, 0x00, 0x66, 0xdf, 0xf2, 0xbe, 0x64, 0x9a, 0x82, 0x3a, 0x80,
+ 0x89, 0xc6, 0xcd, 0x6b, 0xc3, 0x4e, 0x04, 0x28, 0xda, 0x3d, 0x91, 0xb4,
+ 0xc4, 0x31, 0xf3, 0x24, 0xfd, 0xb1, 0x90, 0x00, 0xce, 0x56, 0x96, 0x71,
+ 0x83, 0x38, 0x27, 0xa1, 0xa9, 0xdb, 0x24, 0x1f, 0x9f, 0xaa, 0xd6, 0x19,
+ 0xeb, 0xc5, 0x75, 0x6d, 0x7f, 0xfc, 0x47, 0x16, 0x6f, 0xff, 0x8f, 0x00,
+ 0x0c, 0xdb, 0xfe, 0x57, 0xcc, 0x93, 0x50, 0x47, 0x50, 0x11, 0x38, 0xd9,
+ 0xad, 0x78, 0x69, 0xc0, 0x85, 0x1b, 0x47, 0xb2, 0x36, 0x98, 0x86, 0x3e,
+ 0xa4, 0x9f, 0x46, 0x28, 0xc8, 0x00, 0x67, 0x2b, 0x4b, 0x38, 0xc1, 0x9c,
+ 0x13, 0xd4, 0x7e, 0x83, 0x13, 0x6f, 0x37, 0x1f, 0xe2, 0x8b, 0x48, 0xc0,
+ 0xd6, 0xf4, 0x3b, 0x8e, 0xaf, 0xb2, 0x8f, 0x17, 0x73, 0xf5, 0xe0, 0x01,
+ 0x9b, 0x7f, 0xca, 0xf9, 0x92, 0x6a, 0x06, 0x0c, 0xc0, 0xa9, 0xcc, 0x76,
+ 0x88, 0xff, 0xf7, 0x40, 0x84, 0x8d, 0x91, 0xec, 0x80, 0x02, 0x55, 0x4c,
+ 0xc3, 0x16, 0x6b, 0x20, 0x0c, 0x08, 0x4a, 0x58, 0x99, 0x00, 0x02, 0x54,
+ 0x4c, 0x81, 0x0a, 0x62, 0xba, 0xdb, 0xe8, 0x02, 0xb7, 0xa6, 0xe3, 0x04,
+ 0x11, 0xda, 0xe7, 0x91, 0x89, 0x61, 0x81, 0xf5, 0x50, 0x19, 0xc7, 0x72,
+ 0xed, 0x27, 0xfc, 0xaf, 0x37, 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73,
+ 0x7f, 0xfc, 0x18, 0x80, 0x00, 0x55, 0xd8, 0x06, 0x13, 0xf4, 0xfb, 0x9f,
+ 0xfb, 0x78, 0x01, 0x3f, 0x53, 0x09, 0x15, 0x29, 0x9b, 0xde, 0xad, 0x5c,
+ 0x03, 0x5e, 0x85, 0xd5, 0xe8, 0x61, 0x18, 0x2c, 0x91, 0x1a, 0x09, 0x7b,
+ 0x84, 0x95, 0xe9, 0xeb, 0x77, 0xe7, 0x8c, 0x29, 0x8a, 0xeb, 0x6f, 0xa0,
+ 0x64, 0x1f, 0xea, 0xb9, 0xff, 0xbb, 0xea, 0x5c, 0x89, 0xcd, 0xcf, 0x97,
+ 0x81, 0x9c, 0x77, 0x2e, 0xd2, 0x7f, 0xca, 0xf3, 0x73, 0x9d, 0xab, 0xdb,
+ 0xa6, 0xbb, 0xd7, 0x37, 0xff, 0xc1, 0x96, 0x00, 0x05, 0x51, 0x80, 0x28,
+ 0x9f, 0xad, 0xf6, 0x5f, 0x7f, 0x80, 0x0c, 0xe0, 0xd5, 0xc6, 0x27, 0xfc,
+ 0xea, 0xb5, 0x70, 0x0d, 0x7a, 0x17, 0x57, 0x83, 0xf7, 0x86, 0x11, 0x82,
+ 0xc9, 0x11, 0xa0, 0x97, 0xb8, 0x49, 0x5e, 0x9e, 0xb7, 0x7e, 0x78, 0xc2,
+ 0x98, 0xae, 0xb6, 0xfa, 0x06, 0x41, 0xfe, 0xab, 0x9f, 0xfb, 0xbe, 0xa5,
+ 0xc8, 0x9c, 0xdc, 0xf9, 0x78, 0x19, 0xc7, 0x72, 0xed, 0x27, 0xfc, 0xaf,
+ 0x37, 0x39, 0xda, 0xbd, 0xba, 0x6b, 0xbd, 0x73, 0x7f, 0xfc, 0x19, 0x60,
+ 0x00, 0x55, 0x18, 0x02, 0x89, 0xfa, 0xdf, 0x65, 0xf7, 0xf8, 0x00, 0xce,
+ 0x0d, 0x5c, 0x62, 0x7f, 0xce, 0xab, 0x57, 0x00, 0xd7, 0xa1, 0x75, 0x78,
+ 0x3f, 0x78, 0x61, 0x20, 0xcc, 0x17, 0x10, 0x4e, 0x38, 0x98, 0x49, 0x5e,
+ 0x9e, 0xb7, 0x7e, 0x78, 0x93, 0x50, 0x19, 0x07, 0xfa, 0xae, 0x7f, 0xee,
+ 0xfb, 0xe8, 0xc9, 0x2e, 0x6c, 0xff, 0x00, 0x79, 0x36, 0xa0, 0xed, 0xcb,
+ 0xd5, 0x6f, 0xa7, 0xff, 0xf5, 0xd6, 0xa4, 0x95, 0xab, 0xc1, 0x96, 0x00,
+ 0x05, 0x51, 0x80, 0x2e, 0xba, 0x17, 0x57, 0xb5, 0x25, 0xc0, 0x06, 0x70,
+ 0x6a, 0xe3, 0x13, 0xfe, 0x75, 0x5a, 0xba, 0x36, 0x16, 0xd5, 0xe8, 0x63,
+ 0xb3, 0x04, 0x50, 0x11, 0xb1, 0xde, 0x6c, 0xc9, 0xed, 0x43, 0x87, 0x50,
+ 0x28, 0x15, 0x07, 0xfa, 0x3a, 0xcb, 0xef, 0xf5, 0xf4, 0x64, 0x97, 0x3c,
+ 0xff, 0x00, 0x79, 0x36, 0xa0, 0xee, 0xcb, 0xd5, 0x6f, 0xad, 0x5d, 0x69,
+ 0x29, 0x5a, 0xbc, 0x18, 0x40, 0xc5, 0x03, 0xb0, 0xd7, 0xfe, 0xfb, 0x6a,
+ 0xe8, 0x5d, 0x5e, 0xd4, 0x97, 0x06, 0x80, 0xcb, 0x56, 0x73, 0x0e, 0x3b,
+ 0x66, 0x13, 0x94, 0xb0, 0x6b, 0x7d, 0x8d, 0xb8, 0x18, 0xff, 0x86, 0x3b,
+ 0x30, 0x45, 0x01, 0x1b, 0x1d, 0xe6, 0xcc, 0x8f, 0x69, 0x0e, 0x1d, 0x44,
+ 0x9a, 0x80, 0x54, 0x1f, 0xe8, 0xeb, 0x2f, 0xbf, 0xd7, 0xd1, 0x92, 0x5c,
+ 0xd9, 0xfe, 0x00, 0xf2, 0x6d, 0x41, 0xdd, 0x97, 0xaa, 0xdf, 0x5a, 0xba,
+ 0xd2, 0x52, 0xb5, 0x78, 0x30, 0x81, 0x8a, 0x07, 0x61, 0xaf, 0xfd, 0xf6,
+ 0xd5, 0xd0, 0xba, 0xbd, 0xa9, 0x2e, 0x0d, 0x01, 0x96, 0xac, 0xe6, 0x1c,
+ 0x76, 0xcc, 0x27, 0x29, 0x60, 0xd6, 0xfb, 0x1b, 0x70, 0x31, 0xff, 0x0c,
+ 0x76, 0x6d, 0xd0, 0x11, 0xbe, 0xf3, 0x66, 0x4f, 0x6a, 0x1c, 0x3a, 0x81,
+ 0x40, 0xa8, 0x3f, 0xd1, 0xd6, 0x5f, 0x7f, 0xaf, 0xa3, 0x24, 0xb9, 0xe7,
+ 0xf8, 0x03, 0x92, 0x36, 0xa0, 0xe2, 0xea, 0x62, 0xba, 0xaa, 0x52, 0x5a,
+ 0xbd, 0xe1, 0x03, 0x14, 0x0e, 0xc3, 0x5f, 0xfb, 0xed, 0xab, 0xa1, 0x75,
+ 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59, 0xcc, 0x38, 0xed, 0x98, 0x4e,
+ 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x7f, 0xe1, 0x8e, 0xdb, 0x2a, 0x32,
+ 0x34, 0xb8, 0x9e, 0x64, 0xfd, 0x7d, 0xcf, 0xfd, 0xde, 0x7d, 0xa6, 0x10,
+ 0xb4, 0x98, 0x16, 0x94, 0x4f, 0xf3, 0x2c, 0xa6, 0x2e, 0x29, 0x92, 0x34,
+ 0x6f, 0xfd, 0xf8, 0x03, 0x4a, 0x88, 0x3f, 0x22, 0x4f, 0xcd, 0x18, 0x10,
+ 0x96, 0x9e, 0x07, 0x1e, 0x90, 0x48, 0xe7, 0x8d, 0x2d, 0x67, 0x77, 0x3d,
+ 0x4f, 0x53, 0x83, 0x5f, 0xc9, 0xff, 0x3e, 0x86, 0x3b, 0x6c, 0xe8, 0xc8,
+ 0x5f, 0x13, 0xbc, 0x9f, 0xaf, 0xb3, 0xff, 0x7f, 0x67, 0xda, 0x60, 0xf5,
+ 0xc9, 0x30, 0x4a, 0x51, 0x3f, 0xd1, 0x42, 0x98, 0xca, 0x98, 0x91, 0xa3,
+ 0x7f, 0xef, 0xc0, 0x1a, 0x54, 0x41, 0xf9, 0x12, 0x7e, 0x68, 0xc0, 0x84,
+ 0xb4, 0xf0, 0x38, 0xf4, 0x82, 0x47, 0x3c, 0x69, 0x6b, 0x3b, 0xb9, 0xea,
+ 0x7d, 0xe7, 0x06, 0xaa, 0x6f, 0xd7, 0xd8, 0x63, 0xb6, 0xc8, 0x8c, 0x85,
+ 0x2e, 0x27, 0xb9, 0x3f, 0x5f, 0x75, 0xf7, 0x1f, 0x69, 0x97, 0xa9, 0x82,
+ 0x52, 0x89, 0xfe, 0x8a, 0x14, 0xc6, 0x54, 0xc4, 0x8d, 0x1b, 0xff, 0x72,
+ 0x7c, 0x6f, 0xfd, 0x80, 0x34, 0xa8, 0x83, 0xf2, 0x26, 0xfc, 0xd1, 0x81,
+ 0x09, 0x69, 0xe0, 0x71, 0xe9, 0x04, 0x8e, 0x78, 0xd2, 0xd6, 0x77, 0x73,
+ 0xd4, 0xfb, 0xce, 0x0d, 0x54, 0xdf, 0xaf, 0xb0, 0xc6, 0x3d, 0x91, 0x19,
+ 0x1a, 0x5c, 0x4c, 0x10, 0xb7, 0x83, 0xfc, 0xeb, 0xef, 0xb8, 0x81, 0x00,
+ 0x46, 0x40, 0x5a, 0x4c, 0x16, 0xe8, 0x43, 0x69, 0x82, 0x3b, 0xfd, 0xa0,
+ 0xfe, 0x37, 0xf7, 0x81, 0x38, 0x85, 0xe9, 0xa0, 0x71, 0xe9, 0x02, 0xfe,
+ 0xcb, 0x1c, 0xc5, 0x43, 0xde, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f, 0xf3,
+ 0xea, 0xb5, 0xbc, 0x6b, 0x6b, 0x3b, 0xb9, 0xe8, 0x63, 0x1e, 0xc8, 0x8c,
+ 0x8d, 0x2e, 0x27, 0xab, 0x19, 0xc1, 0xfe, 0xaf, 0x4f, 0xfd, 0x84, 0x08,
+ 0x02, 0x32, 0x02, 0x4c, 0x98, 0x19, 0x60, 0x86, 0x69, 0x82, 0x3b, 0xfd,
+ 0xa0, 0xfe, 0x37, 0xf7, 0x80, 0x7b, 0xec, 0x2f, 0x4d, 0x83, 0x8f, 0x48,
+ 0x17, 0xf6, 0x58, 0xe6, 0x2a, 0x1e, 0xf0, 0x3b, 0x39, 0x61, 0xa7, 0xe4,
+ 0xff, 0x9f, 0x5d, 0xad, 0xe3, 0x5b, 0x63, 0x1b, 0xaa, 0x18, 0xc7, 0xb2,
+ 0x23, 0x23, 0x4b, 0x89, 0x97, 0xd8, 0xce, 0x0f, 0xf5, 0x7a, 0x7f, 0xec,
+ 0x20, 0x40, 0x11, 0x90, 0x12, 0x64, 0xc0, 0xcb, 0x04, 0x33, 0x4c, 0x11,
+ 0xdf, 0xed, 0x07, 0xf1, 0xbf, 0xbc, 0x03, 0xdf, 0x61, 0x7a, 0x6c, 0x1c,
+ 0x7a, 0x40, 0xbf, 0xb2, 0xc7, 0x31, 0x50, 0xf7, 0x81, 0xd9, 0xcb, 0x0d,
+ 0x3f, 0x27, 0xfc, 0xfa, 0xed, 0x6f, 0x1a, 0xdb, 0x18, 0xdd, 0x50, 0xc6,
+ 0x38, 0xb2, 0x23, 0x23, 0x7c, 0x4c, 0xbe, 0xc0, 0x04, 0xae, 0x44, 0xe6,
+ 0xc9, 0xf2, 0xf1, 0x02, 0x00, 0x8c, 0x83, 0x66, 0x2b, 0x4d, 0x72, 0xef,
+ 0xff, 0xee, 0x40, 0x84, 0x2a, 0x67, 0xc0, 0x46, 0x6e, 0x73, 0xb5, 0x78,
+ 0x03, 0xdf, 0x61, 0x7a, 0x6c, 0x1c, 0x7a, 0x40, 0xd7, 0xf2, 0x0f, 0x48,
+ 0xbb, 0xf3, 0x03, 0xb3, 0x96, 0x1a, 0x7e, 0x4f, 0xf9, 0xf4, 0xd0, 0x65,
+ 0x9e, 0xc3, 0x0e, 0x3b, 0x64, 0x31, 0xa6, 0x2c, 0x80, 0xc8, 0xc0, 0x1c,
+ 0x4c, 0x96, 0xa0, 0x4a, 0xe4, 0x4e, 0x6c, 0x9f, 0x2f, 0x04, 0x95, 0xe9,
+ 0xe5, 0xbb, 0xf3, 0xc3, 0x4c, 0x5e, 0x9a, 0xe5, 0xdf, 0xff, 0xf7, 0x90,
+ 0x21, 0x0a, 0x99, 0xf0, 0x11, 0x9b, 0x9c, 0xd6, 0xaf, 0x02, 0x5f, 0xb1,
+ 0x65, 0x6b, 0x7b, 0x6f, 0xfd, 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03,
+ 0x75, 0xa9, 0xe0, 0xd2, 0xfc, 0x8d, 0xba, 0x68, 0x32, 0xcf, 0x61, 0x87,
+ 0x1d, 0xb2, 0x18, 0xd3, 0x16, 0x40, 0x64, 0x6f, 0x89, 0x92, 0xd4, 0x09,
+ 0x5c, 0x89, 0xcd, 0x93, 0xe5, 0xe0, 0x72, 0x57, 0xa7, 0xad, 0xdf, 0x9e,
+ 0x1a, 0x62, 0xf4, 0xd7, 0x2e, 0xff, 0xff, 0xbc, 0x81, 0x08, 0x54, 0xcf,
+ 0x80, 0x8c, 0xdc, 0xe7, 0x6a, 0xf0, 0x25, 0xfb, 0x14, 0x56, 0xb6, 0xb6,
+ 0xff, 0xdc, 0xfe, 0x41, 0xe9, 0x17, 0x7e, 0x60, 0x37, 0x5a, 0x9e, 0x0d,
+ 0x2f, 0xc8, 0xdb, 0xa6, 0x83, 0x2c, 0xf6, 0x18, 0x71, 0xdb, 0x21, 0x8d,
+ 0x34, 0x60, 0x06, 0x46, 0xbf, 0x13, 0x25, 0xa8, 0x12, 0xb9, 0x13, 0x9b,
+ 0x4f, 0x97, 0x82, 0x4a, 0xf4, 0xf4, 0xdd, 0xf9, 0xe1, 0xa6, 0x2f, 0x4d,
+ 0x72, 0xef, 0xff, 0xfb, 0xf3, 0x47, 0x7a, 0xad, 0xa7, 0xfc, 0xf0, 0x28,
+ 0xbd, 0x56, 0xfb, 0x7f, 0xfc, 0x05, 0xbf, 0x62, 0xca, 0xd6, 0xd9, 0x75,
+ 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03, 0x75, 0xa9, 0xe0, 0xd2, 0xfd,
+ 0x9b, 0x74, 0xd0, 0x65, 0x9e, 0xe3, 0x0e, 0x3b, 0x64, 0x30, 0x8d, 0xd3,
+ 0x8a, 0x30, 0x87, 0x13, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x26,
+ 0xa5, 0x3f, 0xdd, 0xed, 0x5a, 0x91, 0xfb, 0x49, 0xf2, 0xf6, 0xe4, 0xfd,
+ 0x7f, 0x65, 0xf7, 0xf9, 0x9e, 0x49, 0x13, 0x7b, 0x08, 0x5d, 0xaa, 0xce,
+ 0x3f, 0xe4, 0x18, 0x41, 0x7a, 0x9f, 0x7f, 0xff, 0xdc, 0x05, 0x41, 0xfe,
+ 0x9d, 0x6b, 0xef, 0xf0, 0x80, 0x00, 0x55, 0x18, 0x0a, 0x7f, 0xc3, 0x79,
+ 0x1a, 0xb8, 0x18, 0x83, 0xdf, 0x11, 0x3f, 0xe7, 0x50, 0xc2, 0x37, 0x4e,
+ 0x28, 0xc2, 0x1c, 0x4c, 0xe9, 0x24, 0x5f, 0xe8, 0x22, 0x8d, 0xf0, 0x9a,
+ 0x94, 0xff, 0x77, 0xb5, 0x6a, 0x47, 0xed, 0x27, 0xcb, 0xdb, 0x93, 0xf5,
+ 0xfd, 0x97, 0xdf, 0xe6, 0x79, 0x24, 0x4d, 0xec, 0x21, 0x76, 0xab, 0x38,
+ 0xff, 0x90, 0x61, 0x05, 0xea, 0x7d, 0xff, 0xff, 0x70, 0x15, 0x07, 0xfa,
+ 0x75, 0xaf, 0xbf, 0xc2, 0x00, 0x01, 0x54, 0x60, 0x29, 0xff, 0x0d, 0xe4,
+ 0x6a, 0xe0, 0x62, 0x0f, 0x7c, 0x44, 0xff, 0x9d, 0x43, 0x08, 0xdd, 0x21,
+ 0x14, 0x61, 0xf7, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x42, 0xae,
+ 0x7f, 0xbb, 0xda, 0xb5, 0x23, 0xf6, 0x93, 0xe5, 0xec, 0xc9, 0xfa, 0xfb,
+ 0x4f, 0xfd, 0xdc, 0xcf, 0x52, 0x26, 0xf6, 0x18, 0xbf, 0x94, 0x1a, 0x3f,
+ 0xd7, 0x41, 0xf2, 0x05, 0x41, 0xfe, 0x9d, 0x6b, 0xef, 0xf0, 0x80, 0x00,
+ 0x55, 0x18, 0x0a, 0x7f, 0xc3, 0x79, 0x1a, 0xb8, 0x18, 0x83, 0xdf, 0x10,
+ 0x9f, 0xf3, 0xa8, 0x0e, 0x21, 0x0a, 0x84, 0xcf, 0xf6, 0x7e, 0xd9, 0xe6,
+ 0xb4, 0x69, 0x34, 0xab, 0x90, 0xa9, 0x18, 0x88, 0x8b, 0xb4, 0x1f, 0xec,
+ 0xa0, 0x15, 0x14, 0xe3, 0x2d, 0x0f, 0x22, 0xeb, 0xbc, 0x88, 0x54, 0xc4,
+ 0x33, 0x10, 0xdd, 0xa0, 0xff, 0x70, 0x0a, 0x8a, 0x71, 0x96, 0x87, 0x91,
+ 0x75, 0xde, 0x44, 0x2a, 0x62, 0x19, 0x88, 0x6e, 0xd0, 0x7f, 0xb8, 0x05,
+ 0x45, 0x38, 0xcb, 0x43, 0xc8, 0xba, 0xef, 0x22, 0x15, 0x31, 0x0c, 0xc4,
+ 0x37, 0x68, 0x3f, 0xda, 0x06, 0x93, 0x21, 0xc2, 0xb1, 0x9d, 0x8d, 0xda,
+ 0xbb, 0xd1, 0x0a, 0x91, 0x8c, 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64,
+ 0x38, 0x56, 0x33, 0xb1, 0xbb, 0x57, 0x7a, 0x21, 0x52, 0x31, 0x99, 0x8d,
+ 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc6, 0x76, 0x37, 0x6a, 0xef,
+ 0x44, 0x2a, 0x46, 0x33, 0x31, 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1,
+ 0x58, 0xce, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b,
+ 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10,
+ 0xa9, 0x18, 0xcc, 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x63,
+ 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x19, 0x98, 0xdd, 0xaf, 0xfd,
+ 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x67, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4,
+ 0x63, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x8c, 0xec,
+ 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x66, 0x63, 0x76, 0xbf, 0xf7, 0x06,
+ 0x93, 0x21, 0xc2, 0xb1, 0x9d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x8c,
+ 0xcc, 0x6e, 0xd7, 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x33, 0xb1, 0xbb,
+ 0x57, 0x7a, 0x21, 0x52, 0x31, 0x99, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c,
+ 0x87, 0x0a, 0xc6, 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x33, 0x31,
+ 0xbb, 0x5f, 0xfb, 0x83, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6, 0xed, 0x5d,
+ 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69, 0x32, 0x1c,
+ 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc, 0xc6, 0xed,
+ 0x7f, 0xed, 0x83, 0x48, 0xc8, 0x70, 0xe4, 0x33, 0x90, 0xdd, 0xaf, 0xc1,
+ 0x4a, 0x22, 0x90, 0xb2, 0x26, 0xf0, 0xf7, 0x06, 0x91, 0x90, 0xe1, 0xc8,
+ 0x67, 0x21, 0xbb, 0x5f, 0x82, 0x94, 0x45, 0x21, 0x64, 0x4d, 0xe1, 0xec,
+ 0x81, 0x26, 0x87, 0x0a, 0xc4, 0x76, 0x5d, 0xae, 0xc1, 0xa4, 0xa4, 0x49,
+ 0x24, 0xf0, 0xd7, 0xc2, 0x5f, 0xfc, 0x57, 0xf9, 0x31, 0x5f, 0xe6, 0xfa,
+ 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x03, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xb2, 0x73, 0x09, 0xc7, 0x31, 0xf9,
+ 0x9f, 0x0d, 0x20, 0xca, 0xde, 0x26, 0x2d, 0x68, 0x90, 0xd0, 0xbc, 0x04,
+ 0x5b, 0x71, 0x99, 0x83, 0xca, 0x6d, 0xe9, 0x3f, 0x2b, 0x12, 0x52, 0x97,
+ 0x07, 0x6f, 0xd3, 0xee, 0x5f, 0xf6, 0xde, 0x27, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x94, 0x40, 0xe8, 0x65, 0x70, 0x81, 0x56, 0x2c, 0xbf, 0x16, 0x87,
+ 0xe1, 0xf8, 0x0f, 0x47, 0x0f, 0xce, 0xd4, 0x9f, 0x8d, 0x11, 0x8d, 0x8f,
+ 0x22, 0xf0, 0x00, 0x16, 0x2f, 0xa1, 0x04, 0x01, 0x9c, 0x64, 0x4d, 0x1b,
+ 0xb4, 0x85, 0xd2, 0x77, 0xdf, 0x80, 0xc6, 0x0c, 0x35, 0x12, 0xd4, 0xcb,
+ 0xc0, 0x05, 0x65, 0x8e, 0x52, 0xd2, 0x24, 0xed, 0x32, 0x86, 0x62, 0x8d,
+ 0xff, 0x36, 0x9f, 0x0b, 0xfe, 0x13, 0x13, 0x3a, 0x47, 0x2c, 0x00, 0x95,
+ 0x79, 0xdf, 0x26, 0x31, 0x89, 0xb7, 0x70, 0xfb, 0xd9, 0xf5, 0xc8, 0x0f,
+ 0x90, 0xfc, 0x95, 0x7c, 0xfb, 0xef, 0xbf, 0x62, 0x7f, 0xff, 0xff, 0xff,
+ 0x37, 0xe2, 0x0c, 0xa6, 0x4a, 0x92, 0xb2, 0x70, 0x02, 0x66, 0xec, 0x82,
+ 0x3f, 0x61, 0xf6, 0x2a, 0xc7, 0x92, 0xc7, 0x9e, 0x02, 0x11, 0x15, 0x7d,
+ 0x2e, 0xa7, 0x60, 0x32, 0x40, 0x32, 0xa1, 0xa7, 0x0d, 0x9e, 0x9c, 0x83,
+ 0xa9, 0x90, 0x01, 0xbd, 0xd8, 0x0c, 0x2e, 0xa9, 0x57, 0xa8, 0x5d, 0xe2,
+ 0x81, 0xbd, 0x5d, 0x14, 0xfd, 0x40, 0x01, 0x9d, 0xdc, 0x36, 0xa8, 0x93,
+ 0x52, 0x1c, 0x6e, 0x4f, 0xfe, 0x43, 0xe3, 0x19, 0x7f, 0x93, 0xf0, 0x24,
+ 0x84, 0x44, 0xc0, 0x93, 0x19, 0x70, 0xca, 0x0c, 0x0a, 0xf8, 0x03, 0xeb,
+ 0x06, 0x77, 0xa8, 0x54, 0x66, 0x37, 0x6b, 0x60, 0x37, 0x7b, 0xbb, 0xbd,
+ 0xef, 0xe1, 0x05, 0x80, 0x04, 0x2f, 0x77, 0x77, 0xc0, 0x00, 0x20, 0x10,
+ 0xe0, 0xe7, 0x40, 0x34, 0x04, 0x3d, 0xf8, 0x00, 0x00, 0x08, 0x05, 0x4f,
+ 0x00, 0x01, 0x00, 0x88, 0xa0, 0x00, 0x20, 0x15, 0x14, 0x00, 0x04, 0x02,
+ 0x20, 0x04, 0x56, 0xf1, 0x57, 0x60, 0x08, 0x7f, 0xc8, 0x20, 0xfa, 0x1c,
+ 0x76, 0x63, 0xff, 0x83, 0xc0, 0x00, 0x40, 0x22, 0x04, 0xc6, 0x96, 0x5c,
+ 0x6c, 0xd0, 0x40, 0x36, 0x9f, 0xff, 0xff, 0xfa, 0xe2, 0x10, 0xdc, 0xaf,
+ 0x76, 0x17, 0xfa, 0x1f, 0xea, 0xf8, 0x41, 0xea, 0x3f, 0x7a, 0x56, 0x62,
+ 0xfc, 0x66, 0x79, 0x87, 0xbe, 0x1f, 0x9f, 0xd7, 0xc2, 0xd1, 0x2f, 0xff,
+ 0xfc, 0x00, 0x32, 0x2f, 0x92, 0x99, 0xb4, 0xbc, 0x71, 0x05, 0x00, 0x01,
+ 0x00, 0xc8, 0xa0, 0x00, 0x20, 0x19, 0x14, 0x00, 0x04, 0x03, 0x20, 0x01,
+ 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06, 0x00, 0x08, 0x7a, 0xc7, 0x59,
+ 0x80, 0x10, 0xfc, 0xdd, 0x8d, 0x2a, 0x95, 0x52, 0xba, 0xa8, 0x89, 0x11,
+ 0x6a, 0xf0, 0x60, 0x01, 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06, 0x2f,
+ 0xed, 0x42, 0x8c, 0xcc, 0x7e, 0x6b, 0xfb, 0x50, 0xa3, 0x33, 0x1f, 0x98,
+ 0x3f, 0xaf, 0x19, 0xec, 0xfb, 0xcd, 0xe4, 0x44, 0x52, 0x22, 0xf8, 0x26,
+ 0x8c, 0x87, 0xe6, 0xfe, 0xb0, 0x3f, 0x7b, 0x00, 0x21, 0x56, 0xdf, 0xd1,
+ 0x3f, 0x9a, 0x0e, 0x01, 0xff, 0xc0, 0x97, 0x20, 0x0f, 0xba, 0xb0, 0x21,
+ 0x76, 0xbd, 0x78, 0xcf, 0x7c, 0x85, 0x80, 0x04, 0xb1, 0x3b, 0x69, 0xe9,
+ 0x6b, 0xe8, 0x6f, 0xd7, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xe7, 0x24, 0x15, 0x7f, 0xcb, 0xeb, 0xc6, 0xff, 0xdf, 0xfd, 0x78, 0xef,
+ 0x5e, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf0, 0xa7, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xfe, 0x33, 0xff,
+ 0xf2, 0x78, 0xaf, 0xff, 0xcd, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xae, 0xb1, 0x60, 0x25, 0xff, 0xff, 0xff, 0xf8, 0xac, 0xfd, 0xfb, 0xf7,
+ 0x98, 0x4e, 0x04, 0xdd, 0xaf, 0xb9, 0x74, 0x2b, 0x96, 0x27, 0xff, 0xff,
+ 0xfd, 0xff, 0x8a, 0x14, 0x31, 0x83, 0xb9, 0x49, 0x97, 0xb6, 0x97, 0x80,
+ 0x37, 0x85, 0x28, 0xb4, 0x07, 0x5f, 0x20, 0x05, 0x15, 0x0e, 0x52, 0x76,
+ 0xd1, 0xfa, 0x44, 0x50, 0x7b, 0x80, 0xfd, 0xc4, 0x52, 0x0e, 0x07, 0x20,
+ 0x82, 0x4a, 0x24, 0x58, 0x1d, 0x04, 0x22, 0x0c, 0x64, 0x62, 0x14, 0x37,
+ 0x6f, 0x9e, 0xf7, 0xe0, 0x58, 0xb9, 0x40, 0xa1, 0xfa, 0xf6, 0xcc, 0xaa,
+ 0xbc, 0xef, 0x13, 0xff, 0xff, 0x86, 0x31, 0xf5, 0x07, 0x19, 0xb3, 0x6c,
+ 0xd8, 0x23, 0xdb, 0x3d, 0xa0, 0xe2, 0x8d, 0x4b, 0x78, 0x4b, 0xcb, 0xcb,
+ 0x05, 0xb9, 0xa5, 0x8f, 0x41, 0x1d, 0xee, 0xd2, 0x8f, 0xdf, 0xbd, 0xf8,
+ 0x35, 0xe5, 0x48, 0x2b, 0xdd, 0xfb, 0x36, 0x31, 0x41, 0xe5, 0x8e, 0xe4,
+ 0x7a, 0xcf, 0xff, 0x0c, 0x0a, 0xe2, 0xa2, 0x3e, 0x1e, 0x12, 0x3c, 0x00,
+ 0x60, 0xa6, 0x52, 0x6b, 0x2f, 0xf5, 0xf0, 0x90, 0xd1, 0x6e, 0x9d, 0x15,
+ 0xce, 0x86, 0x40, 0xc7, 0xc3, 0x61, 0x1d, 0xf4, 0xbf, 0xe1, 0x80, 0xaa,
+ 0xfb, 0x33, 0x12, 0x98, 0x9c, 0x5f, 0xe0, 0x04, 0x2b, 0x7f, 0x16, 0x47,
+ 0xfc, 0x81, 0x79, 0xdc, 0xb3, 0x24, 0x6f, 0x34, 0xa7, 0x87, 0x52, 0x8c,
+ 0x55, 0x8d, 0x1b, 0x01, 0x0a, 0xea, 0x83, 0xb0, 0xfe, 0x87, 0x90, 0x10,
+ 0xa6, 0x78, 0x00, 0x5e, 0xff, 0xff, 0x41, 0x8b, 0x52, 0x4d, 0xff, 0x84,
+ 0xb0, 0x0c, 0x75, 0x69, 0xfe, 0x40, 0x2b, 0x26, 0xb1, 0xd6, 0x74, 0x6e,
+ 0x82, 0xdd, 0x09, 0x89, 0xc6, 0x1c, 0xfb, 0x0c, 0x7d, 0xa5, 0xed, 0x6c,
+ 0x29, 0x87, 0x65, 0xbe, 0x88, 0x5f, 0x40, 0x7d, 0x25, 0x00, 0x7b, 0x77,
+ 0x8e, 0xfe, 0x7d, 0x86, 0xb5, 0x07, 0x7e, 0xfa, 0xfd, 0x63, 0x36, 0xe2,
+ 0x30, 0xc5, 0xac, 0x5c, 0x89, 0xbf, 0x13, 0x80, 0x67, 0xec, 0xea, 0x05,
+ 0x10, 0x96, 0xb3, 0xbf, 0x00, 0xdf, 0xa8, 0xf4, 0x3d, 0x05, 0xdd, 0xeb,
+ 0x58, 0xcd, 0xbe, 0xf5, 0x8b, 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xba, 0xc5, 0x84, 0xbe, 0x5d, 0x63, 0x7e, 0xfe, 0xb1, 0xdf, 0xe4, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff, 0x1f, 0xff,
+ 0xf8, 0xaf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xfa, 0xd1, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f,
+ 0xff, 0xff, 0x31, 0xf0, 0x01, 0xd9, 0x8b, 0x27, 0x7e, 0x53, 0x6b, 0xed,
+ 0xc0, 0x7c, 0x41, 0x4b, 0x80, 0x15, 0xc9, 0x26, 0xfc, 0x47, 0xfb, 0xfb,
+ 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4, 0xfc, 0x81, 0x0c, 0x91,
+ 0x43, 0x07, 0x1c, 0x1e, 0xbc, 0x24, 0x79, 0xb4, 0x68, 0xc9, 0xff, 0xbc,
+ 0x55, 0x12, 0xea, 0x60, 0xe6, 0xb5, 0xdb, 0x8b, 0x51, 0x05, 0x20, 0x91,
+ 0x71, 0x86, 0x06, 0x51, 0x5b, 0x5d, 0x5e, 0x4e, 0xd2, 0xc7, 0x1e, 0xff,
+ 0xad, 0x81, 0xfe, 0x5f, 0x13, 0xff, 0xff, 0xff, 0x37, 0xe2, 0xb2, 0xa5,
+ 0x05, 0xac, 0xdc, 0x09, 0xbf, 0x59, 0x8f, 0x14, 0x6a, 0x5b, 0x9d, 0x87,
+ 0x5a, 0xee, 0xa8, 0x1d, 0x49, 0xe9, 0xb0, 0xdf, 0x10, 0x33, 0x73, 0x80,
+ 0x92, 0x1e, 0xc9, 0x6f, 0xa8, 0x7d, 0x00, 0xf3, 0x50, 0x76, 0xb4, 0x9b,
+ 0x26, 0xfd, 0x6c, 0x41, 0x54, 0xef, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xce,
+ 0x2d, 0xd4, 0xcf, 0x98, 0xf7, 0x61, 0xbb, 0xf2, 0x20, 0x1d, 0xee, 0x3d,
+ 0x9c, 0x98, 0x41, 0x2d, 0x31, 0x38, 0x65, 0x33, 0x85, 0x3b, 0xc8, 0x56,
+ 0x98, 0x62, 0xe7, 0xff, 0xff, 0xfe, 0x62, 0xf0, 0x08, 0x65, 0x36, 0x4e,
+ 0x05, 0x61, 0x10, 0x8d, 0x7f, 0xff, 0xff, 0xcd, 0x07, 0x3c, 0x0b, 0xfe,
+ 0x12, 0x50, 0x17, 0x6c, 0x3d, 0x2b, 0x6d, 0xf0, 0x06, 0xb9, 0x36, 0xe7,
+ 0x6c, 0x5c, 0xd9, 0xa8, 0xd9, 0xb7, 0x30, 0x5d, 0x60, 0x7e, 0x57, 0x9b,
+ 0x10, 0x3c, 0xd1, 0xf6, 0x59, 0x22, 0x26, 0xcc, 0xe4, 0xd5, 0x07, 0x0f,
+ 0xe4, 0xfb, 0xc8, 0xb8, 0x80, 0xa6, 0xa4, 0xd7, 0x9f, 0xd7, 0xd7, 0x07,
+ 0xb8, 0x88, 0xd5, 0x98, 0xce, 0x98, 0x7c, 0xe9, 0x82, 0x71, 0x40, 0x22,
+ 0xf5, 0x81, 0xff, 0xff, 0x71, 0x7b, 0xf0, 0x7e, 0x13, 0xc0, 0x23, 0x5d,
+ 0xda, 0xdc, 0xfe, 0xe9, 0xc0, 0x07, 0xc5, 0x6e, 0xb9, 0x2b, 0x8a, 0x5e,
+ 0x19, 0x9b, 0xbe, 0xef, 0x9e, 0x3b, 0xdf, 0xcd, 0xff, 0xfb, 0xbc, 0x2a,
+ 0xf8, 0x03, 0x6b, 0x69, 0x37, 0xe6, 0x1a, 0x7b, 0xee, 0x1d, 0xe3, 0x63,
+ 0xd7, 0xfd, 0x34, 0xdf, 0xf7, 0x7b, 0xbf, 0x19, 0xe0, 0x05, 0x37, 0x66,
+ 0x28, 0xa5, 0xc0, 0x0d, 0xad, 0xa4, 0xdf, 0x81, 0xa7, 0xbe, 0xe1, 0xde,
+ 0x07, 0xed, 0x8f, 0x5f, 0xf4, 0xc1, 0xfe, 0x6d, 0xdc, 0x11, 0xc3, 0xf8,
+ 0x45, 0x78, 0x2e, 0x99, 0xbe, 0xd4, 0xcc, 0x96, 0x0a, 0x05, 0x37, 0x66,
+ 0x28, 0xa5, 0xe0, 0x9e, 0xa5, 0x09, 0xaf, 0x7d, 0xb6, 0x07, 0x10, 0xcb,
+ 0xbd, 0x2e, 0xf1, 0xff, 0x5d, 0x7c, 0x77, 0xb0, 0xa4, 0xa0, 0x01, 0x15,
+ 0xbb, 0xbb, 0xae, 0xf8, 0x05, 0x14, 0x19, 0x0b, 0xda, 0xbf, 0xff, 0x89,
+ 0x12, 0xe3, 0xac, 0x6d, 0x12, 0x36, 0xa6, 0x0f, 0xe4, 0xf1, 0x70, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44, 0x25, 0xff, 0x2f, 0xaf, 0x1b,
+ 0xff, 0x7f, 0xf5, 0xe3, 0xbf, 0xff, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xff, 0xff,
+ 0xe3, 0xff, 0xff, 0xff, 0xc5, 0x7f, 0xfe, 0x4f, 0x15, 0xff, 0xf9, 0xbf,
+ 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xf3, 0x60, 0x29, 0xff, 0xff,
+ 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e, 0x00, 0xa7, 0x1f, 0x44, 0x50,
+ 0xc1, 0x8f, 0xb2, 0x46, 0x7d, 0x7a, 0x19, 0x89, 0x89, 0xff, 0xff, 0xff,
+ 0xfc, 0x30, 0x68, 0x16, 0xb0, 0x35, 0xc8, 0x31, 0xb0, 0x90, 0x04, 0xfe,
+ 0xdb, 0x31, 0x77, 0xab, 0x08, 0x54, 0xca, 0x4e, 0x1c, 0x5b, 0x59, 0x92,
+ 0x31, 0xcb, 0x66, 0x07, 0xd3, 0x9c, 0xfe, 0x66, 0xf0, 0xa7, 0x3f, 0x38,
+ 0x12, 0x2d, 0x00, 0x5a, 0x87, 0x8d, 0x87, 0x90, 0x7e, 0xf3, 0x24, 0x2d,
+ 0x2c, 0x89, 0x26, 0x61, 0x65, 0x83, 0xc8, 0x4b, 0x2d, 0x0c, 0x07, 0xfd,
+ 0xff, 0x09, 0x8b, 0xf8, 0x4d, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5e, 0xac,
+ 0x03, 0x0c, 0x73, 0x8b, 0x96, 0xd8, 0x52, 0x55, 0x79, 0xfe, 0x27, 0xff,
+ 0xfa, 0xf8, 0xb3, 0x22, 0x20, 0x42, 0x04, 0xd7, 0xcb, 0x3b, 0x92, 0x00,
+ 0xed, 0x9d, 0x0b, 0x76, 0x19, 0xfb, 0x68, 0x1d, 0xf1, 0x50, 0xed, 0xd3,
+ 0x6b, 0x58, 0x7f, 0xff, 0x7e, 0x18, 0xff, 0xcf, 0xf0, 0x40, 0x27, 0x00,
+ 0x7e, 0xef, 0x03, 0xf7, 0x9d, 0x7f, 0xff, 0x5e, 0x84, 0x44, 0x10, 0x7b,
+ 0x80, 0x20, 0xe8, 0x04, 0xc7, 0x6d, 0x98, 0xc2, 0xc0, 0x80, 0x63, 0x3d,
+ 0x7c, 0x39, 0xfd, 0x48, 0x3f, 0xd3, 0xd3, 0x5e, 0x8b, 0x59, 0x89, 0x1b,
+ 0xee, 0x46, 0x32, 0x95, 0xbe, 0xaf, 0x99, 0x5c, 0x66, 0xee, 0xff, 0xd0,
+ 0x67, 0xd7, 0x0d, 0xc5, 0xbd, 0x03, 0x90, 0x62, 0x63, 0x60, 0x48, 0xf5,
+ 0xbe, 0xba, 0xdc, 0x62, 0x90, 0xc1, 0x9d, 0x30, 0x93, 0xe9, 0x4c, 0x59,
+ 0x16, 0x87, 0xe2, 0x0f, 0xc0, 0xfd, 0xe7, 0x01, 0x6a, 0xfe, 0x78, 0x1f,
+ 0xfd, 0x94, 0x00, 0xc9, 0xfb, 0x28, 0xdd, 0x75, 0x8f, 0x29, 0xea, 0x07,
+ 0xcc, 0x70, 0x55, 0x9f, 0x1d, 0x90, 0x31, 0xff, 0xdc, 0x9c, 0xb1, 0x8f,
+ 0x80, 0x90, 0x5a, 0x9b, 0xf3, 0x01, 0x20, 0xb5, 0x37, 0xe0, 0x5b, 0x75,
+ 0x59, 0xa3, 0x73, 0x80, 0x90, 0x19, 0x18, 0x1d, 0xe9, 0x02, 0x0c, 0x1f,
+ 0x20, 0x28, 0x12, 0x0e, 0x01, 0x40, 0x8c, 0x13, 0x4d, 0x01, 0xed, 0x61,
+ 0x57, 0xe5, 0x19, 0xaa, 0xf6, 0x8d, 0x79, 0xbd, 0xab, 0xff, 0x5d, 0x63,
+ 0x36, 0xa2, 0x74, 0x27, 0x26, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xbb, 0xcd, 0x82, 0x2f, 0x97, 0x58, 0xdf, 0xbf, 0xac, 0x77, 0xf9, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xc7, 0xff,
+ 0xfe, 0x2b, 0xfc, 0x98, 0x9f, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xfb, 0xd9, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+ 0x8f, 0x30, 0x9e, 0x10, 0xb0, 0xbf, 0x3f, 0xff, 0x99, 0x67, 0x08, 0x04,
+ 0x08, 0xff, 0x1a, 0xe6, 0xac, 0x4c, 0xa5, 0xe5, 0x5a, 0x02, 0xd2, 0x58,
+ 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x13, 0x32, 0x01, 0x04, 0x7c, 0x6f,
+ 0xc6, 0xc3, 0x30, 0xfa, 0xe2, 0xde, 0x73, 0xf3, 0x1a, 0x05, 0xc6, 0xcc,
+ 0xcf, 0x1c, 0xac, 0x80, 0x06, 0x61, 0x69, 0xa6, 0x32, 0xbb, 0xc9, 0xbb,
+ 0xdf, 0x1c, 0xcf, 0x4c, 0x70, 0x61, 0xe9, 0xa1, 0xaa, 0x22, 0x1b, 0x53,
+ 0x3e, 0xf7, 0xdb, 0x6f, 0x0f, 0x1e, 0x16, 0xe2, 0xa2, 0xd3, 0x00, 0xb6,
+ 0x24, 0xe1, 0xa0, 0x19, 0xbd, 0x43, 0x7a, 0x34, 0x52, 0x93, 0xf3, 0xf1,
+ 0x66, 0x00, 0xce, 0x11, 0xcb, 0x20, 0x1f, 0x4b, 0xf2, 0xb1, 0xfb, 0xe2,
+ 0x01, 0x63, 0x12, 0x17, 0xd8, 0x0d, 0x1c, 0xe7, 0xa6, 0x7c, 0xf6, 0x4c,
+ 0x9b, 0x65, 0x5f, 0xe2, 0xbf, 0xff, 0xff, 0x8c, 0x37, 0x0c, 0xdf, 0xf3,
+ 0x65, 0x32, 0x07, 0xc0, 0xdd, 0xc6, 0xf0, 0xc0, 0xe8, 0x8c, 0x04, 0xed,
+ 0x70, 0x1a, 0xff, 0x09, 0xb4, 0x97, 0x1c, 0xdf, 0xad, 0x9e, 0x68, 0x0d,
+ 0xb7, 0xc0, 0x09, 0x8f, 0xca, 0x82, 0x13, 0x6c, 0x1f, 0x63, 0x7b, 0x46,
+ 0x89, 0xf9, 0xe0, 0x88, 0xf8, 0x53, 0xa3, 0xbb, 0x55, 0xff, 0xf3, 0x2e,
+ 0xb5, 0x11, 0x2d, 0xfe, 0xc0, 0xc0, 0xad, 0xb6, 0xf4, 0x93, 0x6f, 0xff,
+ 0xeb, 0x65, 0xae, 0x50, 0xd7, 0xbf, 0xfe, 0x32, 0x1e, 0x3e, 0x0f, 0xf9,
+ 0xd9, 0xe8, 0x4c, 0x6d, 0x61, 0x8b, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff,
+ 0xff, 0xf1, 0x03, 0x2c, 0x61, 0x3b, 0x81, 0xf5, 0x21, 0x36, 0x07, 0xec,
+ 0x03, 0x82, 0xde, 0x97, 0x72, 0x42, 0x7f, 0x40, 0x6f, 0x27, 0x31, 0x63,
+ 0xff, 0xf0, 0x94, 0x04, 0xc6, 0x6e, 0x1a, 0x89, 0x4d, 0xc6, 0xe9, 0x35,
+ 0x73, 0x94, 0xd0, 0x0c, 0x67, 0xe5, 0x6a, 0x1a, 0x20, 0xd2, 0x8b, 0x70,
+ 0x4c, 0xea, 0x8a, 0xe7, 0xfc, 0x9e, 0xfc, 0xbc, 0x26, 0xc2, 0xb4, 0xc0,
+ 0x44, 0xd7, 0x9f, 0xff, 0xd9, 0xef, 0x44, 0xac, 0x26, 0xe6, 0xb5, 0x20,
+ 0x61, 0xc6, 0x7a, 0xf2, 0x1e, 0x2f, 0x3f, 0x9b, 0xe9, 0x4f, 0x84, 0x21,
+ 0x41, 0x18, 0x00, 0x5e, 0xc2, 0x93, 0x44, 0xb2, 0x46, 0x4d, 0xff, 0x41,
+ 0x76, 0x0e, 0xe3, 0x5b, 0x46, 0x7b, 0xeb, 0xb9, 0x00, 0x99, 0x25, 0x99,
+ 0xe8, 0x48, 0xbd, 0x21, 0x8c, 0xf5, 0xef, 0x13, 0x98, 0x40, 0x43, 0x50,
+ 0xff, 0x84, 0xab, 0x5e, 0x00, 0x71, 0x87, 0x2c, 0x52, 0xd7, 0xce, 0xee,
+ 0x6c, 0x43, 0x05, 0xff, 0x84, 0xb8, 0x1c, 0x10, 0x6d, 0x64, 0x00, 0x5e,
+ 0xb6, 0x97, 0xd6, 0xee, 0xff, 0xbb, 0x79, 0x61, 0x2b, 0x78, 0xff, 0x7f,
+ 0x9b, 0xfc, 0x03, 0x50, 0xb4, 0x2b, 0x00, 0x0c, 0x7e, 0x6b, 0x9c, 0x9c,
+ 0x3c, 0x65, 0x83, 0xc0, 0x6e, 0x18, 0xad, 0x0a, 0x06, 0xa9, 0xc0, 0x7d,
+ 0x91, 0xa3, 0x20, 0xe4, 0x31, 0xdf, 0xbb, 0x78, 0xe9, 0xf3, 0x69, 0x01,
+ 0x4d, 0x41, 0x9f, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x1d,
+ 0x7f, 0xcb, 0xe3, 0xff, 0xef, 0xfe, 0xbc, 0x77, 0xaf, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f,
+ 0xff, 0xff, 0xfc, 0x21, 0xff, 0x19, 0xff, 0xf8, 0xef, 0xff, 0xcd, 0xff,
+ 0x50, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x25, 0xff, 0xff,
+ 0xff, 0xf8, 0xac, 0xef, 0xff, 0x98, 0x4e, 0x00, 0x6c, 0x26, 0x88, 0x61,
+ 0x38, 0xbe, 0xbc, 0x1e, 0x23, 0xd9, 0x32, 0xab, 0xf2, 0xf2, 0xbe, 0xd2,
+ 0xad, 0x89, 0xff, 0xff, 0xff, 0x7f, 0xe2, 0x86, 0x04, 0x38, 0x51, 0x2d,
+ 0xef, 0x3e, 0x30, 0xb4, 0x12, 0x6d, 0xc0, 0x47, 0x0f, 0xd5, 0x08, 0x1f,
+ 0x36, 0xd0, 0x24, 0x87, 0x60, 0x07, 0x06, 0x6b, 0x11, 0x58, 0x17, 0xd8,
+ 0x68, 0xd9, 0xad, 0xee, 0xaa, 0xfe, 0x05, 0x6a, 0x56, 0x2c, 0xc2, 0xef,
+ 0x6c, 0xdf, 0x8f, 0x5f, 0xfd, 0x9b, 0x8c, 0x4f, 0xff, 0xf7, 0xe1, 0x8f,
+ 0xd7, 0x18, 0x07, 0xb2, 0x70, 0x06, 0xaa, 0x46, 0xd3, 0xf3, 0x31, 0x7a,
+ 0xe3, 0xef, 0xfd, 0xf0, 0x03, 0x32, 0xb4, 0xd3, 0x5a, 0xbd, 0x5b, 0xb6,
+ 0x24, 0x8a, 0x63, 0xdf, 0x7e, 0xfc, 0x55, 0x8f, 0x3f, 0xff, 0xfd, 0x7f,
+ 0xff, 0x7e, 0x18, 0xe1, 0x83, 0xff, 0xc2, 0x5c, 0x01, 0x37, 0x46, 0x8d,
+ 0x53, 0xc4, 0x28, 0x99, 0x78, 0x03, 0x5c, 0x9b, 0x73, 0xb6, 0x3e, 0xb6,
+ 0xfa, 0xc6, 0x64, 0x7e, 0x19, 0x8d, 0xc3, 0x1f, 0x48, 0x71, 0xa7, 0x18,
+ 0x32, 0x01, 0x7c, 0x94, 0x07, 0xd4, 0x08, 0x4a, 0xe4, 0xb9, 0xe9, 0xf2,
+ 0xf6, 0x03, 0xcc, 0x4b, 0x2d, 0xc2, 0x37, 0x7a, 0x38, 0x9f, 0xbf, 0x40,
+ 0x95, 0xb3, 0x3e, 0x12, 0xfe, 0x1d, 0xb5, 0xe1, 0x81, 0xee, 0x3f, 0xfc,
+ 0x24, 0x55, 0xe0, 0x27, 0x79, 0x20, 0x3c, 0x8e, 0xc0, 0xd1, 0xfd, 0x6c,
+ 0xa0, 0xe4, 0x23, 0x12, 0x5b, 0xf5, 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xbc, 0xd5, 0x84, 0xbe, 0x5d, 0x63, 0x7e, 0xfe, 0xb1, 0xdf,
+ 0xe4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xff,
+ 0x1f, 0xff, 0xf8, 0xaf, 0xf2, 0x62, 0xbf, 0xcd, 0xf5, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xfc, 0xe1, 0x06, 0xff, 0xfc, 0xbc, 0x36, 0x83, 0xd0, 0x3f,
+ 0xfc, 0xdc, 0x3b, 0x3f, 0xdb, 0x41, 0xff, 0xff, 0xff, 0xf0, 0x8f, 0x30,
+ 0x9d, 0x4d, 0x9f, 0xf3, 0x3e, 0x19, 0x4d, 0x49, 0x3f, 0xf1, 0x33, 0x2c,
+ 0x00, 0x11, 0xa2, 0x59, 0x06, 0xbd, 0x77, 0x64, 0x42, 0xa3, 0x5f, 0x8b,
+ 0xc8, 0xc6, 0x09, 0x29, 0x70, 0x17, 0xf5, 0x39, 0x9d, 0xfe, 0x1f, 0x89,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50, 0xc8, 0xf8, 0x06, 0x44, 0xbe, 0x8e,
+ 0xb4, 0xf7, 0xb0, 0x37, 0xf8, 0xe2, 0xc0, 0x0b, 0x2f, 0x1d, 0x07, 0xe0,
+ 0xc7, 0x7b, 0xfd, 0xe1, 0xca, 0x04, 0x08, 0x9a, 0x33, 0xc3, 0xe8, 0x7e,
+ 0x11, 0x47, 0x48, 0x63, 0x81, 0xb8, 0xb6, 0x06, 0x46, 0xc0, 0xa1, 0xd6,
+ 0xa2, 0x68, 0x33, 0x26, 0x07, 0x82, 0xd0, 0xa6, 0x34, 0x0b, 0x3a, 0x2b,
+ 0x33, 0x91, 0x39, 0xbd, 0x90, 0x01, 0x3f, 0x3d, 0xa3, 0x4c, 0x32, 0xbf,
+ 0xec, 0x67, 0xdd, 0xb4, 0x1c, 0x34, 0xbe, 0x14, 0xcc, 0x48, 0x60, 0xf2,
+ 0x8c, 0x5e, 0xf8, 0xc2, 0x63, 0xd8, 0x69, 0x6c, 0x2b, 0xfe, 0xc9, 0x1d,
+ 0x76, 0xa3, 0x64, 0x54, 0xf3, 0x3e, 0xb8, 0x3d, 0x89, 0x38, 0x68, 0x06,
+ 0x6f, 0x48, 0xd7, 0x66, 0x82, 0x8a, 0x4f, 0xcf, 0xde, 0xcd, 0xde, 0x41,
+ 0x1f, 0xa1, 0x23, 0x36, 0xa9, 0x6d, 0xee, 0xdc, 0x19, 0xd2, 0x6c, 0xc4,
+ 0x9b, 0xf7, 0xf3, 0xd7, 0x3f, 0x22, 0x84, 0x3e, 0x99, 0x21, 0xf6, 0x97,
+ 0xe1, 0x31, 0x72, 0x81, 0x8d, 0xa8, 0x5a, 0xcb, 0x6d, 0xed, 0xf4, 0x34,
+ 0x63, 0xac, 0x1b, 0xe0, 0x67, 0x97, 0xbd, 0xf8, 0x2b, 0x33, 0xb8, 0x15,
+ 0x25, 0x57, 0xa7, 0x83, 0xc5, 0x7f, 0xff, 0xff, 0x29, 0xa5, 0x18, 0x33,
+ 0x4e, 0x6f, 0xd7, 0x26, 0x60, 0xf6, 0xf8, 0x00, 0x43, 0xab, 0x6f, 0x44,
+ 0x9b, 0x5d, 0x56, 0xcb, 0x1b, 0x15, 0x11, 0x76, 0xbf, 0x20, 0x0c, 0x83,
+ 0x47, 0xd5, 0x2f, 0x6c, 0xfc, 0x02, 0x39, 0x19, 0xa4, 0x13, 0x30, 0x2c,
+ 0x88, 0x2d, 0x47, 0x3a, 0x8c, 0x06, 0xb2, 0x26, 0x7f, 0x20, 0x98, 0xdf,
+ 0x7f, 0xff, 0x62, 0x83, 0xc8, 0x31, 0x62, 0x3f, 0xc7, 0xff, 0xe7, 0xff,
+ 0x88, 0x70, 0xd4, 0xaf, 0xdc, 0xcf, 0x05, 0xc7, 0x0b, 0xf8, 0x4d, 0x61,
+ 0xad, 0xd8, 0x99, 0x0f, 0x49, 0x80, 0xc3, 0x48, 0x7b, 0xea, 0x6e, 0xe0,
+ 0x39, 0xf9, 0x4b, 0xd0, 0xb3, 0xce, 0xbd, 0x7f, 0xfc, 0x82, 0x23, 0x29,
+ 0x8f, 0xf9, 0xa3, 0x8f, 0xff, 0x84, 0x98, 0x74, 0x91, 0x90, 0x03, 0x0c,
+ 0x5d, 0x06, 0xda, 0x8b, 0x8c, 0xbc, 0x05, 0x49, 0x19, 0x00, 0x30, 0xc5,
+ 0x98, 0x1b, 0x6a, 0x01, 0x52, 0x46, 0x60, 0x0c, 0x31, 0x86, 0x06, 0xda,
+ 0xbc, 0x18, 0x39, 0xfc, 0xbc, 0x26, 0xd0, 0xc5, 0xda, 0x45, 0x87, 0xba,
+ 0xf0, 0x0b, 0xf5, 0xc6, 0xfe, 0x8f, 0x1d, 0xcc, 0xe1, 0xd4, 0xf1, 0x3c,
+ 0xdc, 0xd8, 0x27, 0x78, 0xbf, 0x1d, 0x78, 0xcf, 0x7c, 0x8e, 0x00, 0x09,
+ 0x6d, 0x29, 0xb3, 0x68, 0x91, 0x98, 0xa1, 0xcd, 0x98, 0x7d, 0x73, 0xa9,
+ 0xc5, 0xa0, 0xe0, 0x05, 0x85, 0x2d, 0xd7, 0xb2, 0x77, 0xae, 0x5f, 0xe0,
+ 0x05, 0x8b, 0x34, 0xb6, 0x59, 0x37, 0xde, 0x7d, 0xa6, 0xee, 0x03, 0xff,
+ 0xfe, 0xff, 0x3b, 0xc3, 0xfc, 0xf0, 0x07, 0x5a, 0x5e, 0xe6, 0xac, 0xf7,
+ 0xba, 0x78, 0x9c, 0xdf, 0xff, 0xda, 0x08, 0x44, 0x40, 0x01, 0xb3, 0x32,
+ 0x34, 0x36, 0x10, 0xd4, 0xe7, 0x08, 0x57, 0x46, 0x80, 0x28, 0xb2, 0x85,
+ 0x5d, 0x14, 0xfb, 0xbe, 0x8b, 0xc5, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xf3, 0x84, 0x0b, 0x5c, 0x84, 0x87, 0x11, 0x4f, 0xaa, 0xc1, 0x11,
+ 0xed, 0x7d, 0x9f, 0xc1, 0xaf, 0xe8, 0xdd, 0x73, 0xfa, 0x9c, 0x62, 0x90,
+ 0x02, 0x00, 0xe2, 0x7e, 0x04, 0x48, 0x41, 0xef, 0xc0, 0x00, 0x00, 0x87,
+ 0xc0, 0x0b, 0x16, 0x64, 0xb6, 0x59, 0x37, 0xde, 0x6d, 0x3e, 0xe0, 0x3f,
+ 0xff, 0xef, 0xf3, 0xbc, 0x3f, 0xcf, 0x00, 0x75, 0xa5, 0xee, 0x6a, 0xcf,
+ 0x7b, 0xbf, 0x9b, 0xf6, 0x2c, 0xdd, 0x88, 0xf1, 0x8a, 0x00, 0x3e, 0x40,
+ 0x3b, 0xce, 0x66, 0x30, 0x03, 0x00, 0xf7, 0xd7, 0x30, 0x00, 0xac, 0x58,
+ 0xec, 0x49, 0xfe, 0x3f, 0xff, 0xe4, 0xbf, 0x77, 0xb5, 0xf0, 0x02, 0xc3,
+ 0xad, 0xd7, 0xb2, 0x2b, 0xd7, 0x20, 0x41, 0x3b, 0xb4, 0x64, 0x50, 0x5f,
+ 0x52, 0x8f, 0xdd, 0x70, 0x20, 0xc6, 0x89, 0xcb, 0xd9, 0x98, 0xac, 0xf7,
+ 0xb0, 0x69, 0xf7, 0xda, 0xf1, 0xff, 0x50, 0x7b, 0xdf, 0x2b, 0xc3, 0x10,
+ 0xf9, 0x69, 0x7b, 0x7a, 0x92, 0x01, 0x76, 0x66, 0xe4, 0xc7, 0x62, 0x68,
+ 0x9f, 0xa1, 0xaf, 0x1d, 0xc8, 0xe1, 0x06, 0x7d, 0x4e, 0xb9, 0x08, 0x34,
+ 0x58, 0x5c, 0x47, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x85, 0x3d, 0x7f, 0xff, 0xf0, 0x8f, 0xaf, 0x15,
+ 0xff, 0xf2, 0x88, 0xc7, 0x4b, 0xfc, 0x77, 0xff, 0xe6, 0xff, 0xa8, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xaf, 0x77, 0x60, 0x67, 0xf7, 0xff, 0xff, 0xfe,
+ 0x2b, 0x3f, 0xfd, 0xe6, 0x13, 0x82, 0x27, 0x8d, 0x92, 0xec, 0xb2, 0xbc,
+ 0x08, 0x9b, 0x8d, 0x73, 0x78, 0x9f, 0xff, 0xff, 0xbf, 0x7e, 0xfe, 0x11,
+ 0x18, 0x03, 0x64, 0xca, 0xeb, 0x7b, 0x28, 0xcd, 0xc9, 0x2a, 0x00, 0x1b,
+ 0xe1, 0xe5, 0xbc, 0x3e, 0x3e, 0x00, 0x81, 0x79, 0x63, 0x0f, 0xbc, 0x18,
+ 0x95, 0x06, 0x5c, 0x56, 0x70, 0x87, 0xf4, 0x06, 0x66, 0xe1, 0x65, 0x5f,
+ 0xf2, 0x14, 0x29, 0x4c, 0x7d, 0x34, 0xf3, 0xbe, 0xd1, 0x34, 0xfc, 0x86,
+ 0x03, 0xfe, 0xff, 0x84, 0xc4, 0x8e, 0x04, 0x98, 0x16, 0x89, 0xab, 0x75,
+ 0x78, 0x55, 0xa6, 0x04, 0x44, 0x52, 0xff, 0xfd, 0x5f, 0x47, 0x50, 0x1d,
+ 0x63, 0xf9, 0x57, 0xcf, 0xbd, 0x30, 0xce, 0xe5, 0x89, 0xff, 0xfe, 0xfd,
+ 0x63, 0x3c, 0x08, 0x95, 0xee, 0x3a, 0xdd, 0xe0, 0xb8, 0x01, 0xe9, 0x0d,
+ 0x0b, 0x10, 0x44, 0x99, 0x7a, 0x7c, 0x2f, 0x73, 0xc7, 0x3e, 0xd7, 0x81,
+ 0x05, 0x87, 0x60, 0x95, 0x35, 0x69, 0xad, 0xa3, 0xe3, 0xa9, 0x81, 0xe4,
+ 0x7f, 0xe1, 0x83, 0xb8, 0x2c, 0x44, 0x0a, 0x8c, 0xeb, 0xa0, 0x19, 0x7c,
+ 0xee, 0x8e, 0xc7, 0xfd, 0xff, 0xdf, 0xff, 0xbf, 0xe4, 0xe0, 0x50, 0x10,
+ 0x80, 0x08, 0x7a, 0xff, 0xa3, 0xff, 0xff, 0xfd, 0x3d, 0xb2, 0x90, 0x4f,
+ 0x8a, 0xd7, 0x00, 0x77, 0x9d, 0xae, 0xae, 0x66, 0x37, 0x01, 0x53, 0x38,
+ 0xb9, 0x6d, 0x32, 0x38, 0xc0, 0x0c, 0x33, 0xc7, 0xa0, 0x89, 0x10, 0x42,
+ 0x87, 0xd2, 0x0c, 0xfd, 0x10, 0x48, 0xc0, 0xe0, 0xcf, 0xad, 0xbe, 0xb1,
+ 0x8f, 0xbd, 0xeb, 0x19, 0xb5, 0xe1, 0x80, 0xaa, 0xeb, 0xf1, 0x5e, 0x28,
+ 0xb8, 0xd0, 0xb4, 0x00, 0xf2, 0xaf, 0xeb, 0x75, 0xbb, 0x6d, 0x6f, 0x97,
+ 0x9f, 0xff, 0xf0, 0x0b, 0xe9, 0x40, 0x6a, 0x22, 0xfc, 0x31, 0xfe, 0xba,
+ 0xeb, 0x85, 0x6d, 0x07, 0x69, 0xdf, 0xfd, 0x7f, 0x80, 0x2c, 0x77, 0xfe,
+ 0x77, 0xb4, 0x62, 0x91, 0xca, 0xc4, 0xe1, 0xb7, 0xd2, 0xf8, 0x63, 0xff,
+ 0xfb, 0x41, 0x0e, 0x00, 0x11, 0x45, 0x38, 0xc8, 0x42, 0xfd, 0x61, 0x0d,
+ 0xd5, 0x05, 0x3c, 0xa7, 0x7c, 0x67, 0xdd, 0xf4, 0x1b, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x2e, 0xbd, 0xdd, 0x82, 0xaf, 0x91, 0x82, 0x90, 0x71, 0xac,
+ 0x40, 0xa0, 0x04, 0x18, 0xbc, 0x04, 0xa1, 0x8f, 0x7e, 0x4e, 0xac, 0x99,
+ 0x30, 0x00, 0x10, 0x04, 0xbb, 0xcf, 0xf0, 0x00, 0x00, 0x40, 0x22, 0x00,
+ 0x70, 0x73, 0x28, 0x80, 0x42, 0x06, 0xcb, 0x00, 0x2b, 0x5a, 0x01, 0x28,
+ 0xc0, 0x38, 0x0c, 0x7f, 0x7d, 0xbf, 0x5d, 0x61, 0x07, 0xc9, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xfc, 0x67,
+ 0xf9, 0x31, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfd,
+ 0xe9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff,
+ 0x98, 0x4e, 0x00, 0x23, 0x76, 0xf8, 0xa6, 0xe6, 0x06, 0x6f, 0x38, 0xd6,
+ 0xa7, 0xe7, 0x62, 0x0a, 0x2f, 0x85, 0x8a, 0x46, 0x64, 0x43, 0x95, 0xff,
+ 0xdf, 0xc0, 0x4c, 0x37, 0x40, 0x4f, 0x9a, 0x11, 0x80, 0xa6, 0x5e, 0x79,
+ 0x26, 0xa9, 0xe2, 0x62, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0x45,
+ 0x80, 0x81, 0x49, 0xd0, 0x63, 0x07, 0x03, 0x1f, 0xbb, 0xae, 0xff, 0x25,
+ 0xe4, 0x60, 0x91, 0xba, 0x9e, 0xff, 0xf5, 0x64, 0x00, 0x3f, 0x9b, 0x32,
+ 0x43, 0xf5, 0x04, 0xb1, 0xe1, 0xf4, 0x5b, 0x23, 0x6f, 0xf9, 0x78, 0xf0,
+ 0x7e, 0x00, 0x41, 0x1c, 0xe3, 0x0a, 0x9a, 0x2d, 0x7e, 0x02, 0x26, 0xee,
+ 0x71, 0xfe, 0xf3, 0x5a, 0x96, 0x98, 0x39, 0xc0, 0x11, 0x6e, 0xd4, 0x0b,
+ 0x20, 0x3f, 0x87, 0x7b, 0x72, 0x97, 0x6f, 0xb4, 0x00, 0x01, 0x39, 0x24,
+ 0xb6, 0xff, 0x06, 0x21, 0x7a, 0x0a, 0x37, 0xff, 0xda, 0xaf, 0x2f, 0x2c,
+ 0x34, 0x12, 0xf0, 0x00, 0x6e, 0xe8, 0xc8, 0xea, 0xad, 0x0e, 0x9c, 0xd1,
+ 0x19, 0x1b, 0x53, 0x06, 0xfd, 0xb2, 0x57, 0x3d, 0x07, 0x30, 0x7f, 0x09,
+ 0x7e, 0x08, 0x05, 0x83, 0x08, 0xb2, 0x53, 0x1f, 0x89, 0xf7, 0xff, 0x83,
+ 0x21, 0x22, 0x31, 0xd2, 0x67, 0xbd, 0xef, 0x13, 0xff, 0xff, 0xff, 0xf9,
+ 0xbf, 0x15, 0x22, 0x62, 0x77, 0x55, 0xb3, 0x70, 0x4c, 0xf6, 0xd6, 0x0e,
+ 0x09, 0x0a, 0xd2, 0xc2, 0x26, 0xb1, 0xfe, 0x7f, 0x00, 0x8a, 0x57, 0xb0,
+ 0x1f, 0x31, 0x9b, 0xfa, 0xf8, 0x06, 0x26, 0x16, 0x74, 0xfd, 0x4b, 0x2b,
+ 0x90, 0x6a, 0x42, 0x2f, 0xe7, 0xdd, 0xf6, 0x44, 0xd3, 0xf0, 0xf1, 0x2f,
+ 0x03, 0x89, 0x19, 0x40, 0x95, 0x83, 0x95, 0x77, 0xa1, 0xff, 0xff, 0xff,
+ 0xdf, 0xff, 0xff, 0xff, 0xe6, 0x08, 0xae, 0x05, 0xff, 0x09, 0x30, 0x6c,
+ 0xd4, 0x34, 0xd3, 0x1f, 0x16, 0xce, 0xb1, 0x6e, 0xc6, 0x70, 0xb5, 0x85,
+ 0x58, 0x47, 0x7a, 0x38, 0xb1, 0x59, 0x9e, 0x5a, 0xbe, 0x55, 0x4a, 0x7d,
+ 0x52, 0x69, 0xfa, 0x4c, 0x9c, 0xf0, 0x0c, 0xfe, 0xbd, 0xfa, 0xf1, 0x9e,
+ 0xfd, 0xfa, 0xf1, 0x9e, 0xf0, 0x89, 0x0b, 0xc0, 0x03, 0x22, 0xd2, 0xfa,
+ 0x7b, 0x5d, 0x36, 0x1f, 0x4a, 0x7e, 0x08, 0x18, 0x02, 0x0a, 0x55, 0x52,
+ 0x1f, 0x27, 0x85, 0xe3, 0xeb, 0xb3, 0xff, 0xa7, 0xe4, 0xf1, 0x70, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf7, 0xa4, 0x15, 0x7f, 0xdb, 0xc0, 0x90,
+ 0x05, 0x90, 0x98, 0x88, 0x01, 0x95, 0x59, 0x92, 0x30, 0x00, 0x10, 0x08,
+ 0xd5, 0xe8, 0x6c, 0x76, 0x5a, 0x00, 0xc2, 0x0e, 0x1c, 0xc0, 0x06, 0x55,
+ 0x66, 0x48, 0xcf, 0x57, 0xbc, 0x15, 0xa6, 0x3b, 0x2d, 0x2b, 0xfd, 0x77,
+ 0xf0, 0x63, 0xc0, 0x92, 0x02, 0x20, 0xab, 0x00, 0x40, 0xe7, 0x40, 0x34,
+ 0x0c, 0x7b, 0xf3, 0xd7, 0x8d, 0xff, 0xa3, 0x7a, 0x25, 0x3e, 0x9c, 0x28,
+ 0x53, 0x13, 0x77, 0x38, 0xff, 0x7c, 0x5f, 0x2f, 0x8d, 0xe1, 0xe8, 0xe4,
+ 0xf2, 0xc3, 0xe7, 0xa5, 0xa7, 0xdc, 0x6f, 0xfb, 0xff, 0x37, 0xfa, 0x51,
+ 0xc8, 0x8b, 0x18, 0x4e, 0x00, 0x11, 0x05, 0xb8, 0x8a, 0x66, 0xc8, 0x9e,
+ 0xe2, 0xb0, 0x00, 0xfc, 0x6b, 0x72, 0x22, 0x3f, 0xb2, 0x2f, 0xff, 0x07,
+ 0x81, 0x59, 0xfe, 0xb7, 0x47, 0x9d, 0xe0, 0x05, 0xcc, 0xe2, 0x86, 0xcc,
+ 0xe3, 0xff, 0xd5, 0x1b, 0x7f, 0x4a, 0x8d, 0xff, 0x5a, 0x00, 0x00, 0x0e,
+ 0xfe, 0xc3, 0x01, 0xdd, 0xb0, 0x5c, 0xe4, 0xd3, 0x87, 0x1a, 0x78, 0x0d,
+ 0x66, 0x37, 0x75, 0xf5, 0x23, 0x22, 0x3f, 0xe6, 0x87, 0xd6, 0xd4, 0xd7,
+ 0x12, 0x23, 0x6f, 0x03, 0x5e, 0x14, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f, 0xff, 0xff, 0xfc,
+ 0x7f, 0xff, 0xe3, 0x3f, 0xff, 0x27, 0x8a, 0xff, 0xfc, 0xdf, 0xf5, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xaf, 0xb9, 0x60, 0x77, 0xff, 0xff, 0xff, 0xe2,
+ 0xb3, 0xfe, 0xfd, 0x96, 0x2c, 0x4e, 0x00, 0x70, 0x72, 0x92, 0xd8, 0x69,
+ 0xef, 0xc0, 0x18, 0x2e, 0xdd, 0xfd, 0xbc, 0x0f, 0xad, 0xba, 0xda, 0xdf,
+ 0xea, 0xe2, 0x7f, 0xff, 0xff, 0xfb, 0xcc, 0x6e, 0x07, 0xad, 0xa2, 0x18,
+ 0x0e, 0xcf, 0xa2, 0x8b, 0xa0, 0xa0, 0xda, 0xef, 0x89, 0xc3, 0xb9, 0x7f,
+ 0x50, 0xb2, 0xbb, 0x00, 0xd3, 0x4e, 0x0e, 0xa7, 0x4f, 0x00, 0x18, 0x85,
+ 0xe8, 0x28, 0xdf, 0xff, 0x6b, 0xb2, 0xf0, 0x06, 0x82, 0x5e, 0x08, 0xcf,
+ 0x21, 0xfe, 0x58, 0x23, 0xf1, 0x00, 0xe9, 0xae, 0x63, 0xd8, 0xf9, 0x09,
+ 0x25, 0xa1, 0x84, 0xfe, 0xd2, 0xfc, 0x26, 0x71, 0x2d, 0x39, 0x29, 0xcf,
+ 0x1c, 0x76, 0x21, 0x5d, 0x6f, 0xe2, 0x11, 0xe9, 0xdf, 0xdc, 0x4f, 0xff,
+ 0xfe, 0x18, 0xe3, 0xc0, 0x0d, 0x1f, 0x54, 0x8b, 0x36, 0x00, 0x19, 0xb7,
+ 0xfc, 0xaf, 0x84, 0x95, 0xe2, 0x4a, 0xa0, 0x04, 0xe7, 0x72, 0x41, 0x23,
+ 0x1a, 0xa0, 0x04, 0x66, 0xe7, 0x3b, 0x57, 0x94, 0x5f, 0x09, 0x24, 0x70,
+ 0xda, 0xd9, 0x23, 0x7e, 0x79, 0xc4, 0x9b, 0x80, 0x14, 0xb0, 0xfc, 0xff,
+ 0xff, 0xf5, 0xff, 0xff, 0x86, 0x0d, 0x50, 0x58, 0x1c, 0x7f, 0xe1, 0x22,
+ 0x84, 0xb3, 0x38, 0x88, 0x6b, 0x97, 0x68, 0x1a, 0x18, 0xae, 0xda, 0x43,
+ 0xef, 0xbc, 0x78, 0x2b, 0xa4, 0xb0, 0x4b, 0xf3, 0x04, 0x99, 0x55, 0xbe,
+ 0x7f, 0x18, 0xce, 0xb5, 0x9f, 0xb4, 0x37, 0xde, 0x51, 0x7f, 0xf0, 0x03,
+ 0x3e, 0xb7, 0xac, 0x66, 0xf7, 0xac, 0x66, 0xd4, 0x4e, 0x18, 0xcf, 0xe8,
+ 0x73, 0xc3, 0x09, 0x97, 0x02, 0x66, 0xa0, 0x3f, 0x7b, 0x3c, 0x71, 0xbf,
+ 0xa0, 0x3f, 0xcb, 0xe6, 0x1d, 0xfe, 0x03, 0xb5, 0x5b, 0x60, 0x7d, 0x2a,
+ 0x93, 0x17, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbe, 0xe5, 0x86, 0xbe,
+ 0xc3, 0x1f, 0x89, 0xfd, 0x38, 0x50, 0x40, 0x02, 0xa3, 0x46, 0x40, 0x30,
+ 0xc7, 0xcf, 0x00, 0xbe, 0x01, 0xf5, 0xc0, 0x97, 0x31, 0x0f, 0xe3, 0x7f,
+ 0x7f, 0xe1, 0x8c, 0x3e, 0x74, 0x3f, 0x82, 0x07, 0x19, 0xa8, 0x0f, 0xde,
+ 0xcf, 0x0e, 0xb6, 0xbe, 0xd1, 0x77, 0x18, 0xc3, 0xf5, 0xf1, 0xff, 0x41,
+ 0x99, 0xf0, 0xc4, 0xfc, 0xc3, 0xba, 0x11, 0x6c, 0x47, 0x80, 0xbc, 0xfa,
+ 0xda, 0xff, 0x73, 0xff, 0x80, 0x0c, 0xdd, 0xf5, 0x6e, 0x6a, 0x00, 0xa0,
+ 0xb7, 0x11, 0x4c, 0xda, 0x27, 0x80, 0x48, 0xfd, 0x7b, 0x07, 0xff, 0x94,
+ 0xcf, 0x7e, 0x06, 0x3c, 0xfd, 0x09, 0x5f, 0xe8, 0x9f, 0xe5, 0xc8, 0x62,
+ 0x3b, 0xea, 0x00, 0x00, 0xff, 0x84, 0xb2, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0x8f, 0xff, 0xe2, 0xff, 0xc9, 0x8a,
+ 0xff, 0x37, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfe, 0xf1, 0x03, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x5e, 0x7f, 0xff, 0xef, 0x13, 0x30,
+ 0x9c, 0x01, 0x95, 0xab, 0xe1, 0xcf, 0xe4, 0x1e, 0x49, 0xef, 0x49, 0xf9,
+ 0x84, 0x4a, 0x52, 0xe3, 0xbf, 0xd7, 0xaf, 0xf1, 0xfe, 0x27, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0xc2, 0xb6, 0x10, 0x1e, 0x9b, 0x45, 0xe5, 0x20,
+ 0x45, 0x02, 0x94, 0xf5, 0xb4, 0x4d, 0x32, 0x4f, 0x8e, 0x4a, 0xf7, 0x9f,
+ 0xaf, 0x09, 0x78, 0xe0, 0xd4, 0x69, 0x66, 0x7e, 0x40, 0x88, 0x11, 0x0f,
+ 0x5b, 0x42, 0x80, 0x4c, 0x00, 0xac, 0x8d, 0x01, 0xf1, 0x0b, 0x99, 0xed,
+ 0x4e, 0x69, 0x05, 0xdc, 0x3a, 0xe4, 0x02, 0x67, 0xd1, 0x36, 0x9f, 0x0b,
+ 0xfe, 0x13, 0x3c, 0xe9, 0x1c, 0xb0, 0x02, 0x55, 0xe7, 0x7d, 0x14, 0x63,
+ 0x12, 0x36, 0xee, 0x1e, 0xbd, 0xbe, 0xb9, 0x01, 0xf2, 0x1f, 0x92, 0xaf,
+ 0x9f, 0x78, 0xc8, 0x60, 0xc4, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xc4, 0x19,
+ 0x4c, 0x95, 0x2d, 0x64, 0xe0, 0x04, 0xcd, 0xd9, 0x04, 0x7e, 0x41, 0xf6,
+ 0x2a, 0xc7, 0x92, 0xc7, 0x9e, 0x02, 0x11, 0x15, 0x5d, 0x2e, 0xa2, 0x41,
+ 0x92, 0x01, 0x15, 0x4b, 0x70, 0xd9, 0xe9, 0xc8, 0x3a, 0x99, 0x00, 0x1b,
+ 0xdd, 0x80, 0x82, 0xea, 0x85, 0x7a, 0x42, 0xee, 0xb7, 0xf2, 0xb5, 0x75,
+ 0x5f, 0xa8, 0x00, 0x33, 0xbb, 0x86, 0xd5, 0x12, 0x7e, 0xc7, 0x1d, 0xd8,
+ 0x98, 0xfc, 0x47, 0xbf, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x10,
+ 0x31, 0xae, 0xbd, 0x0f, 0x8f, 0xd1, 0x6a, 0xbc, 0x08, 0x1a, 0x52, 0x0f,
+ 0xb6, 0x58, 0x81, 0x4a, 0x47, 0xc0, 0xe3, 0xf7, 0xe7, 0xf5, 0xef, 0xd7,
+ 0x8c, 0xf7, 0xef, 0xd7, 0x8c, 0xf7, 0x10, 0x06, 0x52, 0x16, 0x00, 0x18,
+ 0x4f, 0xd0, 0x4d, 0x65, 0xef, 0xf4, 0x38, 0x98, 0x90, 0xd7, 0xaf, 0x17,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xfb, 0xc4, 0x15, 0x7f, 0xd1, 0xbf,
+ 0xb7, 0xca, 0x10, 0xa1, 0xa0, 0x38, 0x27, 0x1c, 0x31, 0x32, 0x02, 0x15,
+ 0xed, 0xef, 0xd5, 0xef, 0x3c, 0x4c, 0xfe, 0xbd, 0x78, 0xdf, 0x46, 0xff,
+ 0xf6, 0x86, 0x08, 0x4c, 0x00, 0x26, 0xba, 0x36, 0xb9, 0x1f, 0xde, 0xfd,
+ 0x58, 0xcf, 0x3e, 0xc3, 0x01, 0x1c, 0xa2, 0xb0, 0x00, 0x88, 0x2f, 0x91,
+ 0x4c, 0xd9, 0x26, 0x1f, 0xd7, 0x8f, 0x30, 0xfd, 0xc3, 0xfe, 0x1e, 0x60,
+ 0x07, 0x14, 0xa7, 0xb8, 0x2f, 0xc0, 0xc0, 0xf5, 0x7c, 0x76, 0xff, 0x9b,
+ 0x00, 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x23, 0x0a, 0x62, 0x45, 0x99, 0xc5,
+ 0x23, 0x1b, 0x0e, 0xb8, 0x00, 0x6c, 0xee, 0x7c, 0x67, 0x5d, 0xb8, 0x17,
+ 0x58, 0x74, 0xbe, 0xc1, 0x18, 0xee, 0xf9, 0xdf, 0xe4, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x7f,
+ 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xe3, 0x3f, 0xff, 0x27, 0x8a, 0xff, 0xfc,
+ 0xdf, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0xfb, 0x60, 0x21, 0xff,
+ 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf7, 0x98, 0x4e, 0x00, 0xc2, 0xcb, 0x3c,
+ 0x87, 0x3d, 0xc6, 0xc6, 0x68, 0x22, 0x26, 0x27, 0xff, 0xff, 0xff, 0xbf,
+ 0x0c, 0x07, 0x31, 0x46, 0x45, 0x17, 0x3a, 0x8c, 0x60, 0xa1, 0xa8, 0x8e,
+ 0x6d, 0x8b, 0x9a, 0x17, 0x6f, 0x7d, 0x7e, 0x37, 0x24, 0x6d, 0x81, 0x01,
+ 0x5e, 0x80, 0x08, 0xa3, 0xa1, 0x44, 0xf7, 0xbb, 0x6e, 0x1b, 0xf4, 0x18,
+ 0x02, 0x37, 0xde, 0x5f, 0xe1, 0xd8, 0xd4, 0x11, 0x70, 0x0b, 0xdc, 0x49,
+ 0x24, 0x94, 0xc0, 0xe1, 0x81, 0xb7, 0xd6, 0xff, 0x84, 0xc5, 0x92, 0x03,
+ 0x28, 0x08, 0xa1, 0xca, 0xbe, 0x7d, 0xaa, 0xf1, 0xc2, 0x9f, 0x4e, 0x94,
+ 0xf0, 0xca, 0x46, 0x6e, 0xbd, 0xe3, 0x35, 0x69, 0x0b, 0x5d, 0xf3, 0xfc,
+ 0x4f, 0xff, 0xfe, 0x18, 0xe3, 0xd4, 0x1c, 0x66, 0xcd, 0xb3, 0x60, 0x06,
+ 0x07, 0xab, 0xe3, 0xb0, 0xf5, 0x1a, 0x96, 0xf0, 0x22, 0x6b, 0x1f, 0xe7,
+ 0xf1, 0x94, 0x68, 0xed, 0x87, 0x06, 0x77, 0x9d, 0xa1, 0x3f, 0xbf, 0x7f,
+ 0x7e, 0x12, 0xf2, 0x52, 0x09, 0x5d, 0x7f, 0xf5, 0x34, 0x69, 0x20, 0xf4,
+ 0x80, 0x79, 0x9e, 0x3c, 0xff, 0xff, 0xf5, 0xff, 0xff, 0x86, 0x2d, 0x49,
+ 0x37, 0xfe, 0x12, 0x3c, 0x02, 0x8e, 0xac, 0x7b, 0xfc, 0x82, 0xb1, 0x1c,
+ 0x58, 0xe9, 0x1d, 0x8a, 0xe2, 0x8d, 0xc2, 0x61, 0xfe, 0x47, 0x20, 0x83,
+ 0x9f, 0x5b, 0xd6, 0x33, 0x7b, 0xd6, 0x33, 0x61, 0x8f, 0x87, 0xf1, 0xa4,
+ 0x10, 0xe0, 0x71, 0x11, 0xd3, 0x34, 0x77, 0xf3, 0x86, 0x62, 0x6b, 0x58,
+ 0xb8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbf, 0xed, 0x8a, 0xfa, 0x5e,
+ 0x81, 0x40, 0x21, 0x12, 0x20, 0x01, 0x2f, 0x69, 0x1b, 0xa7, 0x83, 0x07,
+ 0x3a, 0xf3, 0xe0, 0x65, 0x5f, 0x3b, 0xc3, 0xb8, 0x97, 0xec, 0x34, 0xf7,
+ 0xb5, 0x95, 0xb5, 0x1e, 0xf5, 0xac, 0x6f, 0xeb, 0xc3, 0x08, 0xd0, 0xfe,
+ 0x3f, 0x09, 0xed, 0xdf, 0xcf, 0xc0, 0x0c, 0x4d, 0xae, 0xf3, 0xb7, 0x3a,
+ 0x62, 0x1c, 0x80, 0x79, 0x05, 0xfe, 0xb1, 0xeb, 0xc3, 0x14, 0x71, 0x77,
+ 0xff, 0xe1, 0x2c, 0x02, 0x2d, 0x92, 0xe6, 0x62, 0xaa, 0xf7, 0xbe, 0x64,
+ 0x00, 0xce, 0xa5, 0x20, 0x70, 0xdf, 0x40, 0xc2, 0x03, 0x5e, 0xd8, 0x43,
+ 0x3b, 0xbe, 0x77, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0x7f, 0xff, 0xc7, 0xff, 0xfe, 0x2b, 0xfc, 0x98, 0xaf, 0xf3, 0x7d,
+ 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xff, 0xf9, 0x01, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0x57, 0x9f, 0xff, 0xff, 0x31, 0xf0, 0x01, 0x59,
+ 0x8b, 0x35, 0x7e, 0x5a, 0x6c, 0xfd, 0xa8, 0x20, 0x78, 0x82, 0xbc, 0x02,
+ 0x42, 0x9f, 0xe1, 0xc3, 0xdf, 0xde, 0x27, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x27, 0xe4, 0x08, 0x62, 0x24, 0x18, 0xd6, 0x00, 0xeb, 0x42, 0x47,
+ 0x9b, 0x73, 0x2d, 0xf4, 0x8a, 0xa4, 0xba, 0x98, 0x3a, 0x88, 0x12, 0x46,
+ 0x2d, 0xf1, 0x0d, 0xce, 0x7a, 0xd5, 0xe5, 0x5a, 0x5d, 0xbe, 0xdf, 0x13,
+ 0xff, 0xff, 0xff, 0x27, 0xe4, 0xc4, 0xc4, 0x8b, 0x34, 0x05, 0xd9, 0x59,
+ 0xe8, 0x88, 0x7e, 0xfd, 0x38, 0x1d, 0x28, 0x55, 0xcb, 0x8c, 0x41, 0xd6,
+ 0xfb, 0x13, 0x3c, 0x51, 0xcb, 0x8c, 0x32, 0x52, 0x1a, 0xf4, 0xff, 0xb2,
+ 0xbc, 0x23, 0xcf, 0x4e, 0x01, 0x2f, 0xf2, 0x41, 0xf3, 0xfd, 0x47, 0x1c,
+ 0x93, 0x35, 0x1e, 0xbf, 0xf2, 0x12, 0xc6, 0x41, 0x76, 0x18, 0x37, 0x13,
+ 0x0f, 0x9f, 0xeb, 0xbf, 0xbe, 0xb9, 0x89, 0x23, 0x28, 0xbb, 0x06, 0xf2,
+ 0x6c, 0x94, 0x78, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x3c, 0x40,
+ 0xc1, 0x05, 0x8d, 0x88, 0x04, 0xbb, 0x01, 0x76, 0xd0, 0x45, 0xd1, 0xcf,
+ 0x36, 0x45, 0xbf, 0xb0, 0x7b, 0x17, 0x08, 0xcd, 0xf9, 0xe8, 0xd8, 0xcf,
+ 0x9d, 0xbe, 0xcc, 0x5b, 0x8f, 0x27, 0xec, 0x69, 0x49, 0x10, 0x97, 0x3e,
+ 0xec, 0x99, 0x70, 0xf1, 0x5e, 0x5f, 0x04, 0x0a, 0x86, 0x26, 0xbf, 0x3f,
+ 0xaf, 0x7e, 0xbc, 0x67, 0xbf, 0x7e, 0xbc, 0x67, 0xb3, 0x7c, 0x08, 0x7d,
+ 0xbc, 0x61, 0x60, 0x12, 0xfe, 0xe3, 0xeb, 0x60, 0x12, 0x3d, 0x30, 0x3f,
+ 0x78, 0x00, 0x0f, 0x80, 0x2d, 0x95, 0x83, 0x22, 0x4d, 0x05, 0xfc, 0x77,
+ 0xa7, 0xff, 0x7e, 0xbc, 0x5c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xff,
+ 0xe4, 0x11, 0x7f, 0xe6, 0xff, 0xfe, 0xd0, 0x42, 0x68, 0x03, 0x23, 0x14,
+ 0x66, 0x43, 0xe0, 0x4e, 0x7f, 0xc7, 0x7e, 0x74, 0x05, 0x80, 0x12, 0x21,
+ 0x8b, 0x80, 0x19, 0x1e, 0x3a, 0x12, 0xaf, 0x7e, 0x8f, 0xbf, 0xfe, 0xc2,
+ 0xab, 0x7b, 0x90, 0x69, 0xe0, 0xff, 0x11, 0x3f, 0xeb, 0xc6, 0xfc, 0xde,
+ 0xc4, 0x55, 0x61, 0x3d, 0x76, 0x2b, 0x84, 0xcf, 0xb5, 0x87, 0x64, 0xc7,
+ 0x3f, 0x20, 0x41, 0x5f, 0x81, 0x94, 0x80, 0x79, 0x8b, 0xe1, 0x44, 0x75,
+ 0xaf, 0x37, 0xe3, 0xfc, 0xfe, 0x78, 0xba, 0xff, 0xaf, 0x1d, 0xc8, 0x6c,
+ 0x01, 0x5d, 0xa0, 0x54, 0xc0, 0x38, 0xfc, 0xca, 0x2f, 0x08, 0x07, 0xfc,
+ 0x3c, 0x86, 0xa3, 0x94, 0x25, 0x02, 0x8f, 0x88, 0x19, 0xb3, 0x7c, 0xb7,
+ 0x7d, 0xf7, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x14, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
+ 0xff, 0xf1, 0x5f, 0xff, 0x93, 0xc4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa8, 0x3d, 0x60, 0x29, 0xff,
+ 0xff, 0xff, 0xf8, 0xac, 0xff, 0xf5, 0x98, 0x4e, 0x00, 0xa6, 0x1f, 0x44,
+ 0x50, 0xe1, 0x8c, 0xb4, 0x8c, 0xeb, 0x9a, 0x19, 0x89, 0x89, 0xff, 0xff,
+ 0xff, 0xfc, 0x30, 0x1d, 0xac, 0x08, 0xa2, 0xe5, 0x84, 0x60, 0x4b, 0x10,
+ 0x38, 0x93, 0x99, 0x23, 0x1c, 0xb6, 0x03, 0x03, 0xfa, 0x69, 0xdf, 0xf3,
+ 0x37, 0x85, 0x39, 0xf9, 0xc0, 0x11, 0xc9, 0x7b, 0xb9, 0xba, 0x1f, 0xc7,
+ 0xc8, 0x4b, 0x2c, 0x89, 0x26, 0xc2, 0xcb, 0x07, 0x90, 0x92, 0x5a, 0x09,
+ 0x62, 0xc2, 0x3b, 0x91, 0x7e, 0x44, 0xe7, 0xc3, 0x65, 0x96, 0x34, 0x74,
+ 0xfb, 0x5f, 0xe8, 0x20, 0xb9, 0x8c, 0x4e, 0x58, 0x6f, 0x45, 0x89, 0x19,
+ 0x3e, 0xd7, 0xf8, 0x9f, 0xff, 0xeb, 0xe2, 0xcd, 0x24, 0x80, 0x9a, 0xf9,
+ 0x67, 0x72, 0x40, 0x76, 0xce, 0x85, 0xba, 0x02, 0x3b, 0x26, 0x50, 0x32,
+ 0xe2, 0xdb, 0xed, 0xe9, 0xaa, 0xd6, 0x1f, 0xff, 0xfe, 0xbf, 0xff, 0xaf,
+ 0x0c, 0x56, 0x36, 0x22, 0xff, 0x84, 0x8b, 0xe3, 0xdd, 0x77, 0x48, 0x01,
+ 0x99, 0x5a, 0x69, 0xad, 0x5e, 0x10, 0x96, 0x19, 0x00, 0x0b, 0x5f, 0xb8,
+ 0x65, 0xf6, 0xe9, 0x1c, 0x31, 0x19, 0xf5, 0xbd, 0x63, 0x37, 0xbd, 0x63,
+ 0x36, 0x18, 0xf8, 0x5b, 0xdb, 0xc2, 0x8e, 0x02, 0x5f, 0xda, 0xf7, 0xf7,
+ 0x9c, 0x4e, 0x00, 0x48, 0x3d, 0xcd, 0xf5, 0xaf, 0x22, 0x06, 0x44, 0x1b,
+ 0xd6, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa0, 0xf5, 0x82, 0x2f,
+ 0xd7, 0xa0, 0x60, 0x19, 0x1c, 0x22, 0x06, 0x24, 0xd3, 0x22, 0x33, 0xda,
+ 0x4c, 0x30, 0xaf, 0xb3, 0x64, 0x0c, 0x3f, 0xe0, 0x0c, 0x13, 0x7e, 0x95,
+ 0xe7, 0x3d, 0x63, 0x7a, 0xf0, 0xc3, 0x13, 0x7d, 0xad, 0xf8, 0x4e, 0x51,
+ 0x5f, 0x00, 0xec, 0xa6, 0x55, 0xe6, 0x0f, 0x9b, 0x26, 0x35, 0xf3, 0x3a,
+ 0xfa, 0xc7, 0x48, 0xe0, 0x09, 0xfa, 0x7e, 0xe5, 0xff, 0xf7, 0xb5, 0x94,
+ 0xb3, 0x50, 0x04, 0x3f, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0x53, 0xff, 0xfe, 0x3f, 0xff, 0xf1, 0x5f, 0xe4, 0xc4, 0xff, 0xff,
+ 0xff, 0xff, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xe0, 0xfd, 0x02, 0xdf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xaf, 0x3f, 0xff, 0xf7, 0x87, 0x66,
+ 0x3f, 0x00, 0x6e, 0xdd, 0x75, 0xfd, 0x18, 0x9c, 0x4f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x4f, 0xe2, 0x71, 0xb1, 0x42, 0x80, 0x5b, 0xf0, 0xbf,
+ 0x38, 0xff, 0x8d, 0x07, 0x91, 0x41, 0xc4, 0x9f, 0xaf, 0x03, 0x8f, 0x96,
+ 0xba, 0xfe, 0x20, 0xac, 0x5b, 0x5b, 0xfb, 0x47, 0xc7, 0xfc, 0x4f, 0xff,
+ 0xff, 0xff, 0xe6, 0xfd, 0x6c, 0x30, 0x0f, 0x64, 0xe0, 0x23, 0xa7, 0xa7,
+ 0xe7, 0x9c, 0x4c, 0xe0, 0x90, 0x56, 0x9d, 0x6d, 0x6a, 0x4c, 0x54, 0xf3,
+ 0xeb, 0x53, 0x49, 0x9f, 0x3f, 0xff, 0xff, 0xff, 0xd7, 0xff, 0xff, 0xff,
+ 0xe6, 0xe1, 0x83, 0xff, 0xc2, 0x5c, 0x04, 0xb7, 0x3a, 0x3c, 0x42, 0x93,
+ 0x2f, 0x01, 0x16, 0xfe, 0x76, 0xc7, 0xf5, 0xef, 0xd7, 0x8c, 0xf7, 0xef,
+ 0xd7, 0x8c, 0xf6, 0x6f, 0x81, 0x0c, 0x8a, 0x5e, 0x30, 0xb0, 0x91, 0xc3,
+ 0xde, 0x83, 0x10, 0x1e, 0x1e, 0x1c, 0xa0, 0x42, 0x81, 0x32, 0xcf, 0xbf,
+ 0x5e, 0x2e, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0x83, 0xf4, 0x10, 0xbf,
+ 0xf3, 0x7e, 0x59, 0x17, 0x2c, 0x60, 0x88, 0x08, 0xb1, 0x98, 0x80, 0x8f,
+ 0x45, 0x02, 0x1e, 0x72, 0x81, 0x06, 0x80, 0x84, 0xbe, 0x7e, 0x0f, 0x3f,
+ 0xaf, 0x5e, 0x34, 0xd4, 0xcc, 0x8f, 0xe2, 0x7c, 0x29, 0x94, 0x08, 0x00,
+ 0xc4, 0xdd, 0x3c, 0x7c, 0x7d, 0x68, 0x41, 0xdd, 0xae, 0xf7, 0xdf, 0xf8,
+ 0x4d, 0xe0, 0x7e, 0xf6, 0x7e, 0x6f, 0xf5, 0xcf, 0x50, 0x85, 0x71, 0xba,
+ 0xc0, 0xff, 0x2d, 0xff, 0x00, 0x41, 0xaf, 0x49, 0x9e, 0xe5, 0xcb, 0xf2,
+ 0xf7, 0xbd, 0x1e, 0x27, 0xff, 0xaf, 0x1d, 0xff, 0xf9, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x9f,
+ 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xfe, 0xfc, 0xff, 0xff, 0x93, 0xc4,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x00,
+ 0x01, 0x27, 0x4d, 0x40, 0x0d, 0xa9, 0x18, 0x28, 0x3e, 0x60, 0x0d, 0x41,
+ 0x80, 0x41, 0xad, 0xb0, 0xad, 0x7b, 0xdf, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x28, 0xde, 0x09, 0x88, 0x00, 0x00, 0x01, 0x25, 0xb8, 0x20, 0x20, 0xaf,
+ 0xf1, 0xf8, 0xb0, 0xdc, 0x50, 0x00, 0x3f, 0x01, 0xc2, 0x21, 0x0c, 0x96,
+ 0x01, 0xc2, 0x21, 0x0c, 0x4c, 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19,
+ 0x2c, 0x00, 0x10, 0xea, 0xdb, 0xd1, 0x26, 0xd7, 0x4e, 0x4b, 0x9b, 0x5b,
+ 0xa7, 0xf8, 0xf0, 0x01, 0xc0, 0x70, 0x88, 0x43, 0x13, 0x3a, 0xa2, 0x95,
+ 0x59, 0xfa, 0x77, 0xd7, 0x77, 0x81, 0xaa, 0x66, 0xd6, 0x58, 0x1f, 0x35,
+ 0xff, 0xff, 0xe6, 0x0b, 0xf9, 0x11, 0xc1, 0xd3, 0x57, 0x7f, 0x9e, 0xd7,
+ 0x24, 0x19, 0xee, 0xeb, 0x4f, 0x5f, 0x77, 0x8e, 0xb2, 0x8b, 0x0a, 0x81,
+ 0xda, 0x3c, 0x01, 0x80, 0xe1, 0x30, 0xca, 0x96, 0x04, 0x80, 0x03, 0xb6,
+ 0xdf, 0x29, 0xbc, 0x78, 0x03, 0x01, 0xc2, 0x61, 0x95, 0x2d, 0x3d, 0xce,
+ 0xb9, 0xfd, 0xff, 0xbe, 0x02, 0xe5, 0xa4, 0x32, 0xcb, 0x61, 0xdc, 0xef,
+ 0xff, 0xac, 0x24, 0xf1, 0xe1, 0x0e, 0xb8, 0xb0, 0xdd, 0xb5, 0x19, 0x32,
+ 0x19, 0x5e, 0x55, 0x23, 0xfb, 0xfd, 0xf7, 0x47, 0xc0, 0xe2, 0x47, 0x33,
+ 0xcf, 0xed, 0x32, 0x0a, 0x32, 0xef, 0xf0, 0xe0, 0xf0, 0x1c, 0x0d, 0x5a,
+ 0x2e, 0x45, 0xb6, 0xb3, 0xfd, 0xed, 0xa4, 0x35, 0x65, 0x3d, 0xca, 0x93,
+ 0xd1, 0x3e, 0xfd, 0xa3, 0x31, 0xdb, 0x0b, 0xad, 0x23, 0x92, 0xff, 0xde,
+ 0xff, 0x11, 0x07, 0x88, 0xc6, 0xd9, 0xe0, 0x03, 0x01, 0xc2, 0x21, 0x0c,
+ 0x96, 0xe7, 0x80, 0x0c, 0x07, 0x08, 0x84, 0x32, 0x58, 0x00, 0x8a, 0x59,
+ 0xc2, 0x67, 0x56, 0x37, 0x6b, 0xae, 0x35, 0x6d, 0x29, 0xdb, 0xfc, 0x04,
+ 0x66, 0x90, 0x6d, 0x2f, 0x5e, 0x86, 0x7f, 0xf8, 0x3b, 0x11, 0x2c, 0x6a,
+ 0xbe, 0x75, 0x86, 0xff, 0xff, 0x8f, 0x02, 0x55, 0x86, 0x54, 0x45, 0x57,
+ 0x67, 0x97, 0xdf, 0xfb, 0x91, 0x30, 0xbf, 0xc4, 0x6a, 0x0e, 0xa0, 0x4a,
+ 0xc8, 0x1a, 0x2b, 0xab, 0x9a, 0x89, 0xdf, 0xa0, 0x5e, 0x0b, 0x89, 0x4c,
+ 0xd0, 0xec, 0x7a, 0x43, 0xe4, 0x05, 0x99, 0x6f, 0x1a, 0xae, 0x0d, 0x17,
+ 0xa5, 0xff, 0xd6, 0x20, 0x43, 0x16, 0x5f, 0xb7, 0x3a, 0xda, 0xae, 0xdf,
+ 0x01, 0x7c, 0xeb, 0x6a, 0xbb, 0x7c, 0x07, 0x10, 0xc5, 0x97, 0xcd, 0x28,
+ 0xb3, 0x32, 0x2f, 0xb5, 0xc0, 0x88, 0x00, 0x02, 0xb5, 0x6a, 0xcf, 0x6d,
+ 0xb0, 0x4f, 0xb9, 0x4f, 0xfe, 0x02, 0x4f, 0xaf, 0xa1, 0x93, 0x1b, 0x17,
+ 0xd3, 0x8f, 0xb4, 0x4c, 0xb3, 0x23, 0xb8, 0xc5, 0xbb, 0xb2, 0xc1, 0xfa,
+ 0xb7, 0xa5, 0x85, 0x4f, 0xbf, 0x01, 0x36, 0xe6, 0x53, 0x03, 0x76, 0xeb,
+ 0x5d, 0x43, 0xcd, 0x65, 0x11, 0x91, 0xfc, 0xfe, 0xc3, 0x8d, 0xb5, 0x9e,
+ 0x68, 0x8b, 0xdf, 0xee, 0x2b, 0xe8, 0x4a, 0xee, 0xa2, 0xb6, 0x51, 0x40,
+ 0x06, 0x03, 0x84, 0x42, 0x19, 0x2c, 0x00, 0x10, 0x6e, 0x9a, 0xd9, 0x69,
+ 0xbb, 0xd3, 0xad, 0xa3, 0x44, 0x6e, 0xd1, 0xe0, 0x03, 0x01, 0xc2, 0x21,
+ 0x0c, 0x96, 0xf0, 0x01, 0x22, 0xf3, 0x4a, 0x66, 0x10, 0xb4, 0x8d, 0x3a,
+ 0xce, 0x48, 0x00, 0x94, 0xdd, 0x0f, 0xbf, 0xf5, 0xa6, 0x63, 0x44, 0xab,
+ 0x62, 0x0b, 0xff, 0xff, 0x2c, 0x28, 0xcd, 0xb3, 0xa7, 0xe8, 0xc7, 0xff,
+ 0xdb, 0x6b, 0x3b, 0xdf, 0xf7, 0xf9, 0x62, 0x40, 0x02, 0xaa, 0xe6, 0xb4,
+ 0x69, 0x3b, 0xd0, 0x76, 0xb1, 0x27, 0x45, 0x96, 0x8f, 0xb3, 0xfd, 0x57,
+ 0x35, 0xa3, 0x93, 0x54, 0x64, 0xf4, 0x61, 0x9e, 0x15, 0x9f, 0xff, 0xfb,
+ 0xbf, 0xac, 0xeb, 0xd9, 0x6e, 0x78, 0x00, 0xc0, 0x70, 0x88, 0x43, 0x25,
+ 0xbf, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb4, 0x7e, 0xea, 0xdb, 0xd1, 0x26,
+ 0xf3, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19, 0x2d, 0x7e, 0x69, 0xd7, 0xc7,
+ 0xfd, 0xf6, 0x1e, 0x0c, 0x96, 0x36, 0x88, 0x80, 0x93, 0x0d, 0x7e, 0xbf,
+ 0x55, 0xde, 0x40, 0x04, 0xec, 0x88, 0xfa, 0xee, 0xb5, 0xec, 0xc6, 0x2e,
+ 0xcd, 0xde, 0xdd, 0x7f, 0xdf, 0xda, 0x43, 0x46, 0x79, 0xe6, 0x46, 0x82,
+ 0x47, 0xff, 0xb3, 0x00, 0x00, 0x88, 0xbd, 0xc9, 0x80, 0x03, 0x3b, 0x64,
+ 0xd5, 0xad, 0xce, 0xc1, 0x9b, 0xcd, 0xff, 0xd6, 0xff, 0xff, 0x6f, 0xd7,
+ 0x6c, 0x9a, 0xb4, 0xf9, 0xdf, 0xea, 0x21, 0x89, 0xb3, 0xdc, 0xf0, 0x01,
+ 0x80, 0xe1, 0x10, 0x86, 0x4b, 0x73, 0xc0, 0x06, 0x03, 0x84, 0x42, 0x19,
+ 0x2c, 0x00, 0x45, 0x2c, 0xe1, 0x33, 0xab, 0x1b, 0xb5, 0x7e, 0x69, 0xd7,
+ 0xc7, 0xfd, 0xf7, 0xa2, 0xc0, 0x79, 0xf1, 0x22, 0x22, 0x96, 0x37, 0xfe,
+ 0xbf, 0x9f, 0x02, 0xf9, 0xb4, 0x36, 0x84, 0x44, 0xff, 0xfc, 0x18, 0x13,
+ 0x66, 0xa6, 0xc1, 0x9f, 0x93, 0x4b, 0x7f, 0xfb, 0x00, 0xb8, 0xe9, 0x54,
+ 0xa6, 0x26, 0x76, 0x61, 0xef, 0xd0, 0x1b, 0x21, 0x7c, 0x5c, 0x58, 0xe6,
+ 0xb5, 0xfb, 0xe6, 0xb3, 0xbd, 0xef, 0x7f, 0x96, 0xe8, 0x78, 0xe3, 0x01,
+ 0x1d, 0x01, 0xad, 0x1e, 0x00, 0xc0, 0x70, 0x98, 0x65, 0x4b, 0x00, 0xe6,
+ 0xbe, 0x4f, 0xe7, 0x2f, 0x9c, 0x9e, 0x25, 0x47, 0xc6, 0xd4, 0xc7, 0x80,
+ 0x30, 0x1c, 0x26, 0x19, 0x52, 0xdf, 0xed, 0x17, 0x95, 0x32, 0x42, 0x76,
+ 0x27, 0xde, 0x10, 0x00, 0x0c, 0x08, 0xc7, 0x1c, 0x6d, 0x87, 0x56, 0xae,
+ 0x52, 0x22, 0xf9, 0x00, 0x09, 0xbe, 0x30, 0xdd, 0x90, 0x00, 0xdc, 0x85,
+ 0xcf, 0xdb, 0x5c, 0x56, 0x9e, 0x41, 0x8a, 0xe4, 0xda, 0x5a, 0xbd, 0x43,
+ 0x46, 0x40, 0xd9, 0x97, 0xf3, 0x3b, 0xbe, 0x53, 0x8d, 0x55, 0x3d, 0xf9,
+ 0xe1, 0x0b, 0x02, 0xf7, 0x89, 0x97, 0x02, 0xfc, 0xa6, 0x9d, 0xdf, 0xbc,
+ 0x0e, 0x11, 0x08, 0x97, 0x00, 0x28, 0xc9, 0xfc, 0x9b, 0xd3, 0xb0, 0x38,
+ 0x44, 0x22, 0x58, 0x60, 0x01, 0x37, 0x1b, 0x5b, 0x20, 0x85, 0xb0, 0x79,
+ 0x1a, 0xa7, 0xd9, 0x1c, 0x57, 0xae, 0xae, 0xa2, 0x5d, 0x2a, 0x67, 0x2c,
+ 0x27, 0x18, 0x3d, 0x1c, 0x6d, 0x83, 0xab, 0x5d, 0x1c, 0xc8, 0xf7, 0x09,
+ 0x2d, 0x6f, 0xdb, 0x9d, 0x61, 0x52, 0x30, 0x46, 0xdb, 0x13, 0xdd, 0xff,
+ 0xb8, 0x49, 0x6b, 0x7e, 0xdc, 0xea, 0xc8, 0x94, 0x26, 0x3b, 0x48, 0xe6,
+ 0xff, 0xff, 0xbf, 0x0f, 0xa5, 0xbf, 0x12, 0x24, 0xb0, 0x00, 0x2f, 0x01,
+ 0xc0, 0x08, 0x20, 0xa5, 0xa5, 0x83, 0xcf, 0x00, 0x02, 0xf0, 0x1c, 0x00,
+ 0x82, 0x0a, 0x5a, 0x5b, 0x81, 0x17, 0x90, 0xd5, 0xb9, 0x82, 0x46, 0x67,
+ 0x46, 0x0f, 0x15, 0x49, 0x22, 0xa4, 0xa7, 0xff, 0xfe, 0xfe, 0x3f, 0x0f,
+ 0x00, 0x4e, 0x72, 0x9c, 0xa5, 0x14, 0x0d, 0xeb, 0x62, 0x00, 0x04, 0x14,
+ 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f, 0xc0, 0x10,
+ 0x00, 0x9c, 0xe7, 0x39, 0xce, 0x70, 0x37, 0xad, 0x80, 0xe0, 0x02, 0x0a,
+ 0x2e, 0x5f, 0xc0, 0xe0, 0x02, 0x0a, 0x2e, 0x5f, 0xff, 0xc7, 0xe0, 0x08,
+ 0x00, 0x4e, 0x73, 0x9c, 0xe7, 0x38, 0x1b, 0xd6, 0xc0, 0x70, 0x01, 0x05,
+ 0x17, 0x2f, 0xe0, 0x70, 0x01, 0x05, 0x17, 0x2f, 0xff, 0xe3, 0xf0, 0x04,
+ 0x00, 0x27, 0x39, 0xce, 0x73, 0x9c, 0x0d, 0xeb, 0x60, 0x38, 0x00, 0x82,
+ 0x8b, 0x97, 0xf0, 0x38, 0x00, 0x82, 0x8b, 0x97, 0xff, 0xf1, 0xf8, 0x02,
+ 0x00, 0x13, 0x9c, 0xe7, 0x39, 0xce, 0x06, 0xf5, 0xb0, 0x1c, 0x00, 0x41,
+ 0x45, 0xcb, 0xf8, 0x1c, 0x00, 0x41, 0x45, 0xcb, 0xff, 0xf8, 0xfc, 0x01,
+ 0x00, 0x09, 0xce, 0x73, 0x9c, 0xe7, 0x03, 0x7a, 0xd8, 0x0e, 0x00, 0x20,
+ 0xa2, 0xe5, 0xfc, 0x0e, 0x00, 0x20, 0xa2, 0xe5, 0xff, 0xfc, 0x7e, 0x00,
+ 0x80, 0x04, 0xe7, 0x39, 0xce, 0x73, 0x81, 0xbd, 0x6c, 0x07, 0x00, 0x10,
+ 0x51, 0x72, 0xfe, 0x07, 0x00, 0x10, 0x51, 0x72, 0xff, 0xfe, 0x3f, 0x00,
+ 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xde, 0xb6, 0x03, 0x80, 0x08,
+ 0x28, 0xb9, 0x7f, 0x03, 0x80, 0x08, 0x28, 0xb9, 0x7f, 0xff, 0x1f, 0x80,
+ 0x20, 0x01, 0x39, 0xce, 0x73, 0x9c, 0xe0, 0x6f, 0x5b, 0x01, 0xc0, 0x04,
+ 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0xff, 0x8f, 0xc0,
+ 0x01, 0x00, 0x19, 0x0a, 0x5a, 0x5b, 0x28, 0x2a, 0x21, 0xad, 0x4c, 0x81,
+ 0xc0, 0x04, 0x14, 0x5c, 0xbf, 0x81, 0xc0, 0x04, 0x14, 0x5c, 0xb0, 0x02,
+ 0x1a, 0x46, 0xb2, 0x30, 0xc6, 0xeb, 0xd3, 0x70, 0xfe, 0x07, 0x00, 0x10,
+ 0x41, 0x77, 0x38, 0xec, 0x01, 0x31, 0x66, 0x23, 0xdb, 0x32, 0x94, 0xc4,
+ 0x4f, 0xac, 0x80, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0xeb, 0x00, 0xcb, 0x08,
+ 0x70, 0x04, 0x14, 0x5d, 0xcd, 0x8f, 0x96, 0x12, 0xc0, 0x00, 0x80, 0x99,
+ 0xe8, 0x12, 0x14, 0xa1, 0xf0, 0xf8, 0x9e, 0x38, 0x57, 0x8d, 0x80, 0x03,
+ 0x29, 0xdc, 0x63, 0x6a, 0x63, 0x2d, 0xcd, 0x42, 0xdf, 0x80, 0x04, 0x1b,
+ 0x1c, 0xda, 0xf3, 0x30, 0x0e, 0xd1, 0x9f, 0x0f, 0xaf, 0xe0, 0x81, 0xf9,
+ 0xb0, 0x28, 0xa9, 0x16, 0x9f, 0x08, 0x7f, 0xdf, 0xff, 0xfe, 0xb0, 0x42,
+ 0xb0, 0x00, 0x83, 0x63, 0x9b, 0x5e, 0x66, 0x01, 0xda, 0x3a, 0xf6, 0x12,
+ 0x32, 0x3c, 0x38, 0x67, 0xf5, 0xff, 0xfc, 0x0e, 0x15, 0xfe, 0x00, 0x30,
+ 0x26, 0x7a, 0x04, 0x85, 0x29, 0x06, 0x36, 0x00, 0x0c, 0xa7, 0x71, 0x8d,
+ 0xa9, 0x8c, 0xb7, 0x3a, 0x16, 0x24, 0x4f, 0x7f, 0x11, 0xf8, 0x67, 0x85,
+ 0x44, 0x60, 0x03, 0x02, 0x67, 0xa0, 0x48, 0x52, 0xb0, 0x1b, 0x00, 0x06,
+ 0x53, 0xb8, 0xc6, 0xd4, 0xd8, 0xcc, 0xce, 0x6a, 0x07, 0x02, 0x8b, 0xb0,
+ 0xd4, 0x86, 0x29, 0xc9, 0x9f, 0xdf, 0x0f, 0x80, 0x67, 0x85, 0x78, 0xf0,
+ 0xde, 0x92, 0xde, 0x00, 0x14, 0x9e, 0x44, 0xcc, 0x89, 0xbc, 0x96, 0x0f,
+ 0xff, 0xfd, 0xe0, 0x87, 0x80, 0x04, 0x3a, 0xb6, 0xf4, 0x49, 0xb4, 0xf4,
+ 0x03, 0x10, 0x47, 0xc0, 0x14, 0x47, 0x7f, 0xf3, 0xe4, 0x10, 0xaf, 0x02,
+ 0x13, 0xc9, 0x33, 0x21, 0x2f, 0xe9, 0xb0, 0x78, 0x00, 0x6e, 0xb3, 0x11,
+ 0x14, 0xa2, 0x40, 0xde, 0xbc, 0xfd, 0xb6, 0x7f, 0xf0, 0xfc, 0x10, 0x3c,
+ 0x00, 0x0b, 0x1e, 0xa6, 0x63, 0x8f, 0x2a, 0x73, 0x5e, 0x6f, 0x53, 0xd7,
+ 0x5d, 0x75, 0xd7, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c,
+ 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0,
+ 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xfd, 0xa1, 0xf4, 0x9d, 0x90, 0xb0, 0x00,
+ 0x23, 0x80, 0xe0, 0x10, 0x87, 0x10, 0x99, 0xc5, 0x01, 0xc2, 0xea, 0x2b,
+ 0x50, 0x7a, 0x8b, 0x5f, 0xa1, 0xe0, 0x00, 0x47, 0x01, 0xc0, 0x21, 0x0e,
+ 0x21, 0x33, 0x80, 0x4b, 0xeb, 0x35, 0xe2, 0x7f, 0xe9, 0xdb, 0x4f, 0x5d,
+ 0x36, 0x3c, 0x58, 0x5d, 0x10, 0x96, 0xcd, 0x2b, 0x24, 0xed, 0x81, 0xae,
+ 0x4a, 0x34, 0xe9, 0x4e, 0x60, 0xc6, 0xfa, 0xb9, 0x0f, 0x69, 0xfa, 0xac,
+ 0xd9, 0x82, 0xb0, 0x1a, 0x1d, 0xb8, 0xfd, 0x72, 0xf2, 0xe1, 0xf7, 0xe8,
+ 0x41, 0xe4, 0xda, 0x98, 0x64, 0xef, 0xe4, 0x23, 0xd3, 0x8a, 0x9f, 0x11,
+ 0x1b, 0xa9, 0x81, 0xab, 0x75, 0x80, 0x2e, 0xe5, 0x1e, 0x80, 0x27, 0x2d,
+ 0xab, 0xf5, 0xd3, 0x50, 0x42, 0x66, 0x72, 0xaa, 0x0d, 0xf3, 0xf7, 0xe9,
+ 0xa6, 0x37, 0x7f, 0xd8, 0xcf, 0xbb, 0xd0, 0x71, 0xf1, 0x4c, 0xeb, 0x0d,
+ 0x07, 0x45, 0x33, 0x5e, 0x03, 0x2a, 0x92, 0x98, 0xec, 0x23, 0x7b, 0xfb,
+ 0x6f, 0x9d, 0x1e, 0x9c, 0x0b, 0xcc, 0xc5, 0x84, 0x77, 0xf2, 0x0f, 0x62,
+ 0x4e, 0x32, 0x03, 0x37, 0xa8, 0x6f, 0x59, 0x81, 0x48, 0xa4, 0x3c, 0xf0,
+ 0xd0, 0x58, 0x92, 0xf2, 0xb6, 0x62, 0xe7, 0xb5, 0x0e, 0x95, 0x08, 0xbf,
+ 0xf7, 0x41, 0x07, 0x72, 0xf2, 0x4b, 0xff, 0xb7, 0x6d, 0x13, 0xa4, 0x11,
+ 0x95, 0xed, 0xf8, 0x03, 0x8e, 0xbb, 0x4b, 0x6f, 0xe8, 0x9d, 0x73, 0xa0,
+ 0x00, 0x10, 0x06, 0x70, 0x36, 0x25, 0x97, 0xcf, 0xd1, 0xa3, 0x19, 0x5f,
+ 0xf6, 0x22, 0xb4, 0xc0, 0x9d, 0x8f, 0x02, 0x26, 0xe0, 0xf7, 0xf8, 0x5e,
+ 0x38, 0xa3, 0xd0, 0x5c, 0x05, 0xbe, 0x54, 0x1d, 0x60, 0xda, 0xf9, 0xcb,
+ 0xd5, 0xa6, 0x7c, 0x14, 0x52, 0x7e, 0x51, 0xb7, 0x41, 0x06, 0x42, 0x3b,
+ 0x0b, 0xda, 0x33, 0xee, 0xf4, 0x1c, 0xe8, 0xc1, 0xf4, 0x9e, 0x3d, 0xeb,
+ 0x6d, 0x32, 0x56, 0x4b, 0xb6, 0x01, 0xae, 0x4a, 0x34, 0xe4, 0xa7, 0x3f,
+ 0x2a, 0xe9, 0x91, 0xdd, 0xb2, 0x17, 0x6f, 0x0c, 0xfd, 0xde, 0x4f, 0xe9,
+ 0xc0, 0xf9, 0x54, 0x3e, 0xfd, 0x08, 0x3d, 0x9b, 0x53, 0x0c, 0x9d, 0xfc,
+ 0x84, 0x7a, 0x71, 0x5f, 0x88, 0x8d, 0xd4, 0xc0, 0xd7, 0x99, 0xdb, 0x6a,
+ 0xac, 0xf6, 0x7c, 0x00, 0x25, 0xb3, 0x28, 0xb3, 0x05, 0x01, 0xda, 0x22,
+ 0xe5, 0xac, 0x8e, 0x19, 0x4c, 0x41, 0x1d, 0xfc, 0xa3, 0x57, 0x5c, 0x7e,
+ 0xbf, 0x7e, 0x71, 0xa5, 0x25, 0xef, 0xbf, 0xc0, 0xca, 0x88, 0xc4, 0xca,
+ 0x54, 0x38, 0x52, 0x43, 0xa4, 0x15, 0xf5, 0x9b, 0xc8, 0x55, 0x2f, 0xa9,
+ 0xe7, 0xa2, 0xde, 0x24, 0x51, 0xe5, 0x89, 0x9e, 0xce, 0x14, 0x48, 0xa0,
+ 0x98, 0xb4, 0xb6, 0x41, 0xc3, 0x07, 0xda, 0x78, 0xf4, 0xac, 0x49, 0xdb,
+ 0x00, 0x35, 0xc9, 0x45, 0x69, 0x9e, 0xa3, 0x47, 0x25, 0x39, 0xdf, 0x7c,
+ 0xee, 0xa3, 0xf7, 0xfb, 0x87, 0x76, 0x7c, 0x04, 0x36, 0xdd, 0xe4, 0xff,
+ 0xd3, 0x83, 0xcb, 0xf4, 0x20, 0x59, 0x36, 0xa6, 0xe1, 0x15, 0x3e, 0x22,
+ 0x27, 0x53, 0x0c, 0x9d, 0xfc, 0x84, 0x7a, 0x77, 0x83, 0x2d, 0xc6, 0xcd,
+ 0x2b, 0x50, 0xf9, 0xd9, 0x6f, 0x1a, 0x55, 0x51, 0xff, 0x7c, 0x07, 0x33,
+ 0xf4, 0x14, 0x50, 0x3d, 0xff, 0xef, 0x3c, 0x1d, 0x97, 0x18, 0x1b, 0xc1,
+ 0x96, 0xbf, 0xac, 0x98, 0xdd, 0x61, 0xc0, 0x0e, 0xef, 0xca, 0xdc, 0xdf,
+ 0xe4, 0x37, 0xda, 0xc5, 0x8f, 0xbe, 0x80, 0x59, 0x34, 0x3a, 0x8b, 0xdb,
+ 0x6b, 0x60, 0x5f, 0x00, 0x14, 0xb8, 0x6a, 0x66, 0xae, 0x2a, 0x9c, 0xe5,
+ 0x99, 0xfa, 0x28, 0x02, 0xce, 0x4e, 0x83, 0x18, 0xbb, 0xad, 0xce, 0x9d,
+ 0x77, 0xfd, 0x72, 0x92, 0x18, 0x98, 0x8f, 0xdb, 0x5e, 0x0f, 0x3a, 0x00,
+ 0x3b, 0x8d, 0xb2, 0x41, 0x8b, 0x1c, 0xc5, 0xfe, 0xf9, 0x28, 0xbd, 0xe4,
+ 0x6c, 0x1f, 0xde, 0x01, 0x1e, 0xbf, 0x0f, 0xff, 0xfd, 0xc0, 0x1a, 0x26,
+ 0xcd, 0x18, 0x2e, 0x26, 0x6d, 0xff, 0x04, 0x56, 0xe7, 0x54, 0x7f, 0xff,
+ 0xcc, 0x78, 0xcb, 0x43, 0x86, 0xc8, 0xb7, 0x8c, 0xa3, 0x21, 0xe8, 0xf1,
+ 0x5d, 0x88, 0x86, 0xd4, 0xc1, 0x81, 0xea, 0xf8, 0xed, 0xe1, 0xe0, 0xdc,
+ 0xc9, 0xc7, 0x45, 0xa6, 0xec, 0x93, 0x8d, 0x90, 0x16, 0x32, 0xbb, 0xff,
+ 0xaf, 0xcd, 0x3a, 0xec, 0xff, 0xbe, 0x06, 0x18, 0x35, 0x55, 0x3f, 0xf7,
+ 0xfe, 0xf8, 0xe1, 0xe0, 0x06, 0x2c, 0x94, 0x04, 0xdd, 0x3c, 0x2b, 0x45,
+ 0xec, 0xaf, 0xbe, 0xf6, 0xfe, 0x5f, 0xe1, 0xe3, 0xcc, 0x82, 0xe7, 0x16,
+ 0x53, 0x71, 0x0f, 0xbe, 0xa9, 0x15, 0xca, 0x73, 0xd4, 0x4d, 0x75, 0xd7,
+ 0x5d, 0x75, 0xd7, 0x1d, 0x10, 0x00, 0x80, 0x04, 0xc7, 0x31, 0xcc, 0x73,
+ 0x01, 0xe6, 0xf3, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x73, 0xfc, 0x0e, 0x00,
+ 0x20, 0x82, 0xee, 0x7f, 0xff, 0xca, 0x16, 0x8f, 0x00, 0x02, 0xb8, 0x0e,
+ 0x01, 0x0c, 0x21, 0x24, 0xcf, 0xc0, 0x47, 0xaf, 0xdb, 0xe7, 0x80, 0x01,
+ 0x3c, 0x07, 0x00, 0x86, 0x10, 0x92, 0x67, 0x06, 0xda, 0x02, 0x8b, 0x6d,
+ 0x07, 0x38, 0xf8, 0x9b, 0x00, 0x0d, 0x1a, 0x77, 0x4f, 0x3f, 0x23, 0x10,
+ 0x61, 0xec, 0x9f, 0x2a, 0x0c, 0xac, 0x72, 0x75, 0x37, 0xf8, 0x02, 0x2c,
+ 0xc4, 0xc5, 0x56, 0x7e, 0x48, 0x3a, 0x2d, 0x31, 0x10, 0x55, 0xbf, 0xc3,
+ 0x03, 0xc5, 0x9c, 0x04, 0xfe, 0xef, 0x98, 0x38, 0xf0, 0x18, 0x7a, 0xb0,
+ 0x71, 0xd2, 0xdd, 0x1e, 0xa3, 0x98, 0x6f, 0x68, 0xaa, 0x72, 0x9a, 0xbe,
+ 0x1e, 0xcd, 0x26, 0x18, 0x1d, 0xd5, 0x33, 0xa8, 0xfa, 0xa6, 0x4f, 0x1b,
+ 0xfc, 0x3a, 0xd3, 0x46, 0x90, 0xf3, 0xfe, 0x13, 0x3e, 0xd6, 0x06, 0x83,
+ 0x29, 0x8e, 0x6e, 0xa6, 0xb2, 0xa8, 0xec, 0x59, 0xde, 0x1c, 0xbc, 0xc1,
+ 0x14, 0xe9, 0x80, 0xf5, 0x49, 0x80, 0x4a, 0x06, 0x76, 0x75, 0x0f, 0xeb,
+ 0x24, 0x17, 0x25, 0x88, 0x4b, 0x2d, 0x6c, 0x3c, 0x06, 0x91, 0x56, 0x1e,
+ 0xf9, 0xe3, 0x5b, 0x00, 0x80, 0x06, 0x33, 0xf8, 0x02, 0x2c, 0xc8, 0x45,
+ 0x56, 0x7e, 0x03, 0x30, 0xd3, 0xa7, 0x73, 0xfe, 0xff, 0x18, 0x18, 0xb3,
+ 0x80, 0x87, 0xc3, 0xf9, 0x81, 0x6f, 0x71, 0x68, 0x3a, 0xde, 0x68, 0x78,
+ 0x0c, 0x7a, 0xb0, 0x3a, 0x2d, 0xa3, 0x30, 0x88, 0x85, 0x10, 0xf7, 0xc0,
+ 0x87, 0xff, 0xf3, 0x95, 0x1e, 0xa1, 0x7f, 0xe0, 0x01, 0x9b, 0x7f, 0xca,
+ 0xf9, 0xf4, 0xa2, 0x34, 0xb1, 0xbd, 0x64, 0x00, 0xc3, 0xfa, 0x6f, 0xd7,
+ 0x90, 0xa2, 0x98, 0x19, 0x3f, 0xcd, 0x79, 0x59, 0xf4, 0xa8, 0xc9, 0x07,
+ 0x6f, 0x82, 0x03, 0xc2, 0xbe, 0xe3, 0x1f, 0xbb, 0xdd, 0x17, 0xbb, 0x48,
+ 0x5d, 0xef, 0xbf, 0x7f, 0x4c, 0xa1, 0xd5, 0x62, 0x39, 0x87, 0xa8, 0x33,
+ 0x89, 0xa5, 0xb6, 0xff, 0x00, 0x26, 0x3f, 0x2a, 0x08, 0x4d, 0xb0, 0x7d,
+ 0xc6, 0xf6, 0x8d, 0x13, 0xf3, 0xc0, 0xdb, 0x3e, 0x14, 0x54, 0x77, 0x6a,
+ 0x7f, 0xff, 0x32, 0xeb, 0x51, 0x12, 0xdf, 0xec, 0x0c, 0x06, 0xdb, 0x6f,
+ 0x49, 0x37, 0x3a, 0x2f, 0x89, 0x97, 0x28, 0x77, 0xf0, 0x71, 0x90, 0xf0,
+ 0xee, 0x0f, 0xf9, 0xd9, 0xee, 0x35, 0x5f, 0xef, 0xf7, 0xd7, 0x5f, 0xff,
+ 0xf9, 0x14, 0x10, 0x9a, 0x00, 0x2f, 0x4b, 0xf8, 0x51, 0xdd, 0x8f, 0xcc,
+ 0x03, 0xb5, 0x03, 0xf0, 0xc7, 0xdf, 0xf4, 0x1f, 0xff, 0xfb, 0x9f, 0xde,
+ 0xf2, 0xfd, 0xae, 0x00, 0x81, 0x8a, 0xc0, 0x6a, 0x18, 0xf7, 0xe4, 0x00,
+ 0xd4, 0x55, 0x20, 0x1f, 0x10, 0x43, 0x94, 0x77, 0xf1, 0xfe, 0xfe, 0x18,
+ 0x49, 0x55, 0xb9, 0xcf, 0xfe, 0x38, 0x30, 0xfd, 0xfb, 0x8f, 0xc3, 0xfe,
+ 0x12, 0x42, 0xac, 0xa8, 0xd8, 0x6d, 0xf4, 0x81, 0x8f, 0xf7, 0x35, 0xdf,
+ 0x7d, 0xff, 0xb1, 0x20, 0x39, 0x00, 0x30, 0x64, 0x18, 0x2d, 0x42, 0xab,
+ 0xff, 0xc2, 0x4f, 0x00, 0x0a, 0x44, 0xa1, 0x39, 0x34, 0x47, 0x45, 0x27,
+ 0xff, 0x43, 0xb2, 0x50, 0x1d, 0xaa, 0x41, 0x66, 0x48, 0x35, 0x70, 0x13,
+ 0xf2, 0x81, 0x63, 0xfb, 0x20, 0xac, 0xff, 0x7d, 0xff, 0x0a, 0xaf, 0x87,
+ 0x55, 0x03, 0x82, 0x75, 0xf0, 0x00, 0xe6, 0x91, 0xc7, 0x3d, 0x0a, 0xa7,
+ 0xd0, 0x20, 0x35, 0x91, 0x76, 0xde, 0xc4, 0xfe, 0xe0, 0x00, 0x7d, 0x1e,
+ 0x9a, 0xf6, 0x96, 0x4f, 0xfe, 0xd1, 0x23, 0x9d, 0x68, 0x76, 0x25, 0xfb,
+ 0x83, 0x08, 0x57, 0x77, 0x79, 0xff, 0xff, 0xfb, 0xff, 0x9f, 0xe0, 0x80,
+ 0xbf, 0x01, 0x49, 0x16, 0x59, 0x25, 0xb3, 0xcb, 0x3f, 0xff, 0x86, 0xa7,
+ 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98, 0xe6, 0x39, 0x80, 0xf3, 0x79,
+ 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe, 0x07, 0x00, 0x10, 0x41, 0x77,
+ 0x3f, 0xe9, 0x3f, 0xf8, 0x94, 0x78, 0x00, 0x13, 0xc0, 0x70, 0x08, 0x61,
+ 0x09, 0x26, 0x70, 0x0e, 0x03, 0xa7, 0x0a, 0x8d, 0xa5, 0x5f, 0xcd, 0x6b,
+ 0x6b, 0xbe, 0x0f, 0x00, 0x02, 0x78, 0x0e, 0x01, 0x0c, 0x21, 0x24, 0xce,
+ 0x0c, 0x04, 0x88, 0x47, 0xff, 0x09, 0x20, 0xf4, 0x99, 0x90, 0x8a, 0x86,
+ 0xd4, 0xc0, 0x53, 0x0a, 0xd7, 0x81, 0xba, 0xd2, 0x7e, 0xf9, 0xe0, 0x00,
+ 0x6d, 0x3b, 0x18, 0xda, 0x99, 0x31, 0xb1, 0xf5, 0xeb, 0x15, 0xb0, 0xa8,
+ 0x66, 0x55, 0x3e, 0x12, 0xeb, 0x95, 0xff, 0x90, 0x38, 0x27, 0xc9, 0xb5,
+ 0x8d, 0x19, 0x3f, 0x7a, 0xd7, 0x24, 0x03, 0x0f, 0xf8, 0x4b, 0x7b, 0x07,
+ 0xc1, 0x13, 0x29, 0x6f, 0xf8, 0xa2, 0xf2, 0x31, 0xb5, 0x47, 0x73, 0x2a,
+ 0x76, 0xdb, 0xc5, 0x18, 0xfd, 0x07, 0x00, 0xa9, 0x80, 0xd9, 0x61, 0x2f,
+ 0x98, 0x3d, 0x26, 0x64, 0x22, 0xb1, 0xb5, 0x34, 0xbd, 0x32, 0x70, 0xd0,
+ 0x01, 0xb4, 0xec, 0x21, 0xb5, 0x35, 0xa5, 0xc0, 0x3f, 0xe1, 0x24, 0x0a,
+ 0xa5, 0xde, 0x0d, 0xfd, 0x67, 0xbe, 0xf5, 0xc6, 0xb0, 0x00, 0xd7, 0xb2,
+ 0x64, 0x34, 0x76, 0x3d, 0x5e, 0xd9, 0x24, 0xcb, 0xcd, 0xc1, 0x59, 0xce,
+ 0x1f, 0xc2, 0x4f, 0x29, 0xb3, 0xc2, 0x00, 0x15, 0xb3, 0xc9, 0x10, 0xde,
+ 0x29, 0x5f, 0xb5, 0x4e, 0x41, 0xad, 0xe7, 0xa0, 0x8b, 0x3b, 0x7a, 0x5e,
+ 0x8c, 0x98, 0x10, 0x21, 0x63, 0xfe, 0x35, 0xe5, 0xd3, 0x3c, 0xcd, 0xfc,
+ 0xfc, 0x4c, 0x0b, 0x3f, 0xc1, 0x19, 0x7f, 0xf5, 0x03, 0xca, 0x43, 0xff,
+ 0xf0, 0x94, 0xc7, 0x53, 0x76, 0xd4, 0x4a, 0x6e, 0x37, 0x49, 0xab, 0x83,
+ 0xb4, 0x68, 0x06, 0x33, 0xf0, 0x36, 0xd4, 0x5c, 0x65, 0x6a, 0x2d, 0xd0,
+ 0x4c, 0xea, 0x8b, 0xde, 0x1d, 0x46, 0xd7, 0x5d, 0x75, 0xd7, 0xca, 0x59,
+ 0x48, 0x9b, 0xf1, 0x22, 0x20, 0x91, 0xe0, 0x3f, 0x79, 0x80, 0xc1, 0xa6,
+ 0xdb, 0x1f, 0xfe, 0x9b, 0xdf, 0xe3, 0xff, 0xfb, 0x81, 0x83, 0xc0, 0x0f,
+ 0x9f, 0xd2, 0x66, 0xe2, 0x90, 0x66, 0x77, 0xff, 0x4f, 0xfd, 0xfe, 0xa2,
+ 0x6a, 0x21, 0xdc, 0x4d, 0xf9, 0x9d, 0x3f, 0xce, 0x98, 0x27, 0x15, 0x9a,
+ 0xbb, 0xbb, 0xe7, 0xff, 0xff, 0xe0, 0x09, 0x49, 0xdd, 0x5f, 0x3b, 0xff,
+ 0xf9, 0xe0, 0x6b, 0x26, 0xbb, 0x85, 0xd6, 0xc7, 0xea, 0x00, 0x2c, 0x82,
+ 0xfd, 0x2a, 0xb1, 0x1d, 0xea, 0xaf, 0x02, 0x95, 0xad, 0x7a, 0x7d, 0xff,
+ 0x7f, 0xd4, 0x5c, 0x74, 0x40, 0x02, 0x00, 0x13, 0x1c, 0xc7, 0x31, 0xcc,
+ 0x07, 0x9b, 0xcf, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0xf0, 0x38, 0x00,
+ 0x82, 0x0b, 0xb9, 0xc7, 0x61, 0xe0, 0x09, 0xce, 0x72, 0x9c, 0xae, 0x07,
+ 0x9b, 0xc2, 0x00, 0x04, 0x14, 0x6d, 0xcf, 0xf8, 0x1c, 0x00, 0x41, 0x46,
+ 0xdc, 0xff, 0xa8, 0x95, 0x7d, 0xf7, 0xdf, 0x5d, 0x75, 0xd7, 0x5f, 0xf6,
+ 0xb7, 0xc2, 0x50, 0xa0, 0x88, 0x03, 0x56, 0xa7, 0x01, 0xf5, 0xa2, 0x1d,
+ 0xd2, 0xa3, 0x18, 0x6d, 0xdc, 0x41, 0x97, 0xf6, 0xed, 0x5f, 0xe7, 0x92,
+ 0x44, 0x82, 0xbe, 0xa2, 0x2a, 0x26, 0xbf, 0xe9, 0x4f, 0x84, 0x21, 0x41,
+ 0x1e, 0x00, 0x17, 0x98, 0x52, 0x24, 0x4b, 0x24, 0x64, 0xdf, 0xf4, 0x09,
+ 0xb8, 0x1d, 0xf8, 0xde, 0xf8, 0x23, 0x7f, 0xbe, 0x80, 0x8d, 0xa2, 0x4c,
+ 0xcd, 0x90, 0x91, 0x5f, 0x43, 0x51, 0x3e, 0x3a, 0x20, 0x01, 0x00, 0x09,
+ 0x8e, 0x63, 0x98, 0xe6, 0x03, 0xcd, 0xe7, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
+ 0xe7, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xe3, 0xb0, 0x04, 0x00, 0x27,
+ 0x39, 0xc5, 0x5a, 0xd6, 0x07, 0x9b, 0xc0, 0x38, 0x00, 0x82, 0x8d, 0xb9,
+ 0xff, 0x03, 0x80, 0x08, 0x28, 0xdb, 0x9f, 0xf5, 0x13, 0x5d, 0x75, 0xd7,
+ 0x5d, 0x75, 0xd7, 0x5f, 0xf0, 0xfe, 0x90, 0x82, 0x13, 0x40, 0x04, 0x95,
+ 0x49, 0xbb, 0x8b, 0xef, 0x42, 0x47, 0x99, 0x48, 0xb6, 0xf9, 0x79, 0x4f,
+ 0xff, 0xfe, 0x4f, 0x04, 0x26, 0x80, 0x04, 0x3a, 0xb6, 0xf4, 0x49, 0xb4,
+ 0x00, 0x2d, 0x36, 0xdb, 0x02, 0xdc, 0x7d, 0x28, 0xf7, 0xfe, 0xab, 0xef,
+ 0xbf, 0xf7, 0xfe, 0xff, 0xdf, 0xc1, 0xc5, 0xe5, 0xf8, 0x95, 0xc0, 0x05,
+ 0xa4, 0x7f, 0x31, 0x20, 0xbe, 0xad, 0xda, 0x00, 0x4d, 0xb2, 0xc6, 0x8e,
+ 0x88, 0xbb, 0x40, 0x6d, 0x2a, 0xbd, 0xd3, 0x9f, 0xf9, 0x07, 0x7e, 0x4a,
+ 0xed, 0xe8, 0xdf, 0xdb, 0x80, 0x00, 0x30, 0xea, 0x27, 0xd7, 0xff, 0xff,
+ 0x68, 0x21, 0x11, 0x00, 0x06, 0xcd, 0x93, 0x46, 0x41, 0x0f, 0xf9, 0x86,
+ 0x13, 0xa3, 0x40, 0x53, 0xca, 0x2a, 0x69, 0x8f, 0xbb, 0xe8, 0xa2, 0x63,
+ 0xa2, 0x00, 0x10, 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde, 0x7c,
+ 0x0e, 0x00, 0x20, 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xce,
+ 0x3b, 0x00, 0x40, 0x02, 0x73, 0x9c, 0xe7, 0x39, 0xc0, 0xf3, 0x78, 0x07,
+ 0x00, 0x10, 0x51, 0xb7, 0x3f, 0xe0, 0x70, 0x01, 0x05, 0x1b, 0x73, 0xfe,
+ 0xa2, 0x6b, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xf0, 0x00, 0x00, 0x01, 0x25,
+ 0x01, 0x2e, 0xe0, 0x80, 0x87, 0xff, 0xff, 0xc3, 0xd1, 0x40, 0x00, 0x40,
+ 0xc7, 0xc7, 0xc8, 0x00, 0x09, 0xa6, 0xd3, 0x4d, 0x34, 0xd2, 0x65, 0xf0,
+ 0x04, 0xc1, 0xaa, 0x9d, 0x03, 0xb8, 0x73, 0x7f, 0xff, 0xa7, 0xba, 0x10,
+ 0xa3, 0x91, 0x6c, 0x80, 0xb0, 0x02, 0x0b, 0x77, 0xe9, 0x1f, 0xb8, 0xfc,
+ 0x00, 0x33, 0x6d, 0xbe, 0x53, 0x72, 0xbc, 0x95, 0x6d, 0x89, 0xdf, 0xd3,
+ 0x8e, 0x8d, 0x79, 0xf3, 0xe8, 0x03, 0xd3, 0x6d, 0xe0, 0xb5, 0x17, 0x4a,
+ 0x3d, 0xff, 0xac, 0x01, 0x66, 0x5a, 0xf7, 0x28, 0x5d, 0x32, 0x4f, 0xdf,
+ 0xff, 0x7f, 0x5d, 0x86, 0x1f, 0x7f, 0xff, 0xe1, 0xe6, 0x00, 0x06, 0x90,
+ 0xed, 0x9d, 0x98, 0x74, 0xb1, 0xee, 0xd8, 0x49, 0x55, 0xf9, 0xce, 0x7f,
+ 0xed, 0xc0, 0x00, 0x1f, 0x92, 0x7b, 0xef, 0xff, 0x62, 0xf6, 0x22, 0xc6,
+ 0x0a, 0x80, 0x0f, 0xa0, 0x76, 0x94, 0x88, 0x40, 0x18, 0x0b, 0x7d, 0x73,
+ 0x00, 0x09, 0xac, 0xf8, 0xa9, 0xb4, 0xff, 0xff, 0xc9, 0x7e, 0xfb, 0x3a,
+ 0xf8, 0x00, 0x5a, 0x33, 0x95, 0x4c, 0x07, 0xc6, 0x73, 0xff, 0x60, 0x43,
+ 0x05, 0x2e, 0xeb, 0x7c, 0xc9, 0xef, 0x60, 0xdb, 0xef, 0xfb, 0xec, 0xf2,
+ 0x45, 0x86, 0x3e, 0x20, 0x01, 0x00, 0x09, 0x8e, 0x63, 0x98, 0xe6, 0x03,
+ 0xcd, 0xe7, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x1c, 0x00, 0x41,
+ 0x05, 0xdc, 0xff, 0xff, 0xf8, 0x4e, 0x28, 0x00, 0x08, 0x08, 0xe0, 0x38,
+ 0x01, 0x04, 0x14, 0xa2, 0x66, 0x78, 0x00, 0x15, 0xc0, 0x70, 0x02, 0x08,
+ 0x29, 0x44, 0xcd, 0xc4, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x5f,
+ 0x4c, 0xe6, 0x7f, 0x3e, 0x28, 0x47, 0x42, 0x74, 0xfa, 0xcd, 0xdf, 0x24,
+ 0xbd, 0xbe, 0x0a, 0x4e, 0x75, 0xdf, 0x9f, 0xff, 0xff, 0xbc, 0x05, 0x46,
+ 0x57, 0x7d, 0x4e, 0xbf, 0xff, 0xf8, 0xa7, 0x3a, 0xef, 0xe7, 0xff, 0xff,
+ 0xe0, 0x30, 0x25, 0x19, 0x5d, 0xf5, 0x3b, 0xff, 0xf9, 0xff, 0xfa, 0xe7,
+ 0xae, 0x15, 0x81, 0xa6, 0xad, 0x77, 0x9d, 0xa5, 0x78, 0xff, 0xcb, 0xfc,
+ 0x00, 0x58, 0x26, 0xf5, 0x3c, 0x78, 0x66, 0x2f, 0x9b, 0x02, 0xcd, 0x39,
+ 0x93, 0x75, 0xff, 0xbe, 0xf5, 0x13, 0x5f, 0xff, 0xdc, 0x88, 0xb1, 0x82,
+ 0xb8, 0x00, 0x44, 0x16, 0xe2, 0x29, 0x8f, 0xa2, 0x7c, 0x00, 0x22, 0x0b,
+ 0x71, 0x14, 0xc7, 0xd1, 0x3d, 0x01, 0x2d, 0x8b, 0xf5, 0xa9, 0x3f, 0xbb,
+ 0xc0, 0x02, 0xd1, 0x9a, 0x25, 0xf8, 0xe9, 0x08, 0x5f, 0xe7, 0x8d, 0xbf,
+ 0xfa, 0xe5, 0x50, 0x60, 0x00, 0x01, 0xf8, 0x76, 0x62, 0x22, 0xe5, 0xfe,
+ 0x25, 0x80, 0x04, 0x41, 0x6e, 0x25, 0x33, 0x69, 0x3c, 0x0d, 0xd7, 0xf9,
+ 0x3d, 0x6c, 0x95, 0xfa, 0xff, 0xd1, 0x99, 0xff, 0xd7, 0x29, 0xff, 0xfc,
+ 0x07, 0x05, 0xe0, 0xfd, 0x44, 0xc7, 0x44, 0x00, 0x20, 0x01, 0x31, 0xcc,
+ 0x73, 0x1c, 0xc0, 0x79, 0xbc, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xdc, 0xff,
+ 0x03, 0x80, 0x08, 0x20, 0xbb, 0x9c, 0x76, 0x1e, 0x00, 0x9c, 0xe7, 0x29,
+ 0x4a, 0x50, 0x3c, 0xde, 0x10, 0x00, 0x20, 0xa2, 0xee, 0x7f, 0xc0, 0xe0,
+ 0x02, 0x0a, 0x2e, 0xe7, 0xfd, 0x44, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75,
+ 0xd7, 0x5d, 0x7f, 0xd7, 0xff, 0x87, 0xcd, 0xe0, 0x01, 0x79, 0xd0, 0x2a,
+ 0xd1, 0x24, 0x68, 0x97, 0xfb, 0xf5, 0x1c, 0x20, 0x1f, 0xf0, 0xf2, 0x03,
+ 0x6b, 0xc1, 0xf3, 0x69, 0xe8, 0xcf, 0x7f, 0xb7, 0xc0, 0x23, 0x68, 0x96,
+ 0x66, 0xc8, 0x59, 0xd5, 0x3c, 0x3e, 0x00, 0xef, 0xff, 0xc2, 0x58, 0x00,
+ 0x37, 0x4c, 0x98, 0x48, 0xb9, 0x1c, 0x73, 0x31, 0xf0, 0xe8, 0xd4, 0x05,
+ 0x67, 0x28, 0xb4, 0xa7, 0x5d, 0xb8, 0x0d, 0xa9, 0xc0, 0xf9, 0xfd, 0x82,
+ 0x10, 0xff, 0xff, 0x3b, 0xfe, 0xe5, 0xff, 0xfc, 0x24, 0x26, 0xef, 0x63,
+ 0xb5, 0xd5, 0x54, 0xb7, 0xc1, 0xfe, 0xf9, 0x3a, 0xe3, 0xa2, 0x00, 0x10,
+ 0x00, 0x98, 0xe6, 0x39, 0x8e, 0x60, 0x3c, 0xde, 0x7c, 0x0e, 0x00, 0x20,
+ 0x82, 0xee, 0x7f, 0x81, 0xc0, 0x04, 0x10, 0x5d, 0xcf, 0x88, 0x7f, 0xfe,
+ 0x13, 0x30, 0x00, 0xd3, 0x86, 0xfd, 0xca, 0x08, 0x9c, 0x3d, 0x5e, 0xd3,
+ 0x0c, 0x02, 0x21, 0x4c, 0x4c, 0xcf, 0x00, 0x1c, 0x07, 0x02, 0x31, 0x4c,
+ 0x4c, 0xdd, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf, 0x7d, 0xf7, 0xdf,
+ 0x7d, 0xf7, 0xdf, 0x1f, 0x80, 0x02, 0x32, 0xac, 0xca, 0xcc, 0xaf, 0x32,
+ 0xf8, 0x01, 0x32, 0x70, 0xd4, 0x84, 0x73, 0xfa, 0xbd, 0xff, 0x81, 0xc0,
+ 0x10, 0x87, 0xdc, 0xe3, 0xa5, 0x0f, 0x00, 0x4e, 0x73, 0x94, 0xa5, 0x28,
+ 0x1e, 0x6f, 0x08, 0x00, 0x10, 0x51, 0x77, 0x3f, 0xe0, 0x70, 0x01, 0x05,
+ 0x17, 0x73, 0xfe, 0xa2, 0x6b, 0xae, 0xba, 0xeb, 0xae, 0xba, 0xeb, 0xae,
+ 0xba, 0xeb, 0xae, 0xba, 0xeb, 0x8e, 0x88, 0x00, 0x40, 0x02, 0x63, 0x98,
+ 0xe6, 0x39, 0x80, 0xf3, 0x79, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0xb9, 0xfe,
+ 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xf0, 0xff, 0xc4, 0x8a, 0x14, 0x00,
+ 0x70, 0x1c, 0x26, 0x19, 0x49, 0x98, 0x0e, 0x00, 0x13, 0xb9, 0x93, 0x03,
+ 0x80, 0x01, 0x66, 0x02, 0x20, 0xf3, 0xc0, 0x1c, 0x07, 0x09, 0x86, 0x52,
+ 0x67, 0xf8, 0xc3, 0xe1, 0x08, 0xa2, 0x07, 0x00, 0x02, 0x08, 0x19, 0x00,
+ 0x70, 0x00, 0x20, 0x81, 0x90, 0x78, 0x0a, 0x02, 0x42, 0x12, 0xc8, 0x18,
+ 0x2f, 0x77, 0x11, 0x40, 0x49, 0x62, 0xb0, 0x0f, 0x2e, 0x21, 0xc0, 0x49,
+ 0x2c, 0x72, 0x00, 0xf5, 0x71, 0x0e, 0x02, 0x49, 0x62, 0xb0, 0x0f, 0x56,
+ 0x99, 0xf8, 0xc3, 0xfe, 0x14, 0x80, 0x2a, 0x17, 0x92, 0x94, 0x80, 0x3d,
+ 0x45, 0x90, 0x0d, 0x48, 0xe8, 0x5e, 0x4a, 0x53, 0x00, 0xf5, 0x78, 0xe8,
+ 0x5e, 0x4a, 0x52, 0x00, 0xf5, 0x78, 0xe8, 0x5e, 0x4e, 0x53, 0x00, 0xf5,
+ 0x7f, 0xe2, 0x3f, 0x1c, 0x22, 0xa0, 0xe4, 0x03, 0x52, 0x0e, 0x40, 0x35,
+ 0x38, 0x08, 0x63, 0x21, 0x4b, 0x5a, 0xba, 0x0d, 0xa6, 0x32, 0x15, 0xeb,
+ 0x56, 0xe4, 0x16, 0x98, 0xc8, 0x57, 0xad, 0x5b, 0x90, 0x5a, 0x48, 0xc8,
+ 0xe4, 0xad, 0x5d, 0x07, 0xf1, 0x8f, 0xc6, 0x38, 0x51, 0x80, 0x2d, 0x6d,
+ 0x84, 0x42, 0x21, 0xb9, 0xf8, 0x85, 0xb6, 0x11, 0x08, 0x86, 0xe7, 0xd8,
+ 0x7a, 0xdb, 0x08, 0x84, 0xb5, 0xab, 0xc4, 0x2d, 0xb0, 0x88, 0x44, 0x37,
+ 0x3f, 0x50, 0xad, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d, 0x75, 0xd7, 0x5d,
+ 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c, 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f,
+ 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77, 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e,
+ 0xe7, 0xf8, 0x80, 0x7f, 0xe2, 0x48, 0x78, 0x00, 0x38, 0x0e, 0x01, 0x08,
+ 0x71, 0x09, 0x98, 0x1c, 0x08, 0x1c, 0xa4, 0x13, 0xcf, 0x00, 0x02, 0x38,
+ 0x0e, 0x01, 0x08, 0x71, 0x09, 0x9c, 0x03, 0x0f, 0xff, 0x05, 0x82, 0x59,
+ 0xb4, 0x17, 0xc4, 0x00, 0x01, 0x00, 0x00, 0x0b, 0x10, 0x4b, 0x03, 0x90,
+ 0x84, 0xb9, 0x0e, 0x42, 0x12, 0xe4, 0xf0, 0x9e, 0x1f, 0x10, 0xff, 0xe0,
+ 0xb1, 0x32, 0x52, 0x0f, 0x88, 0x00, 0x04, 0xc3, 0xb0, 0x60, 0x00, 0x3c,
+ 0x07, 0xe0, 0x70, 0x4e, 0x3d, 0xcc, 0x38, 0x27, 0x1e, 0xe4, 0x0e, 0x13,
+ 0x09, 0x72, 0x1c, 0x26, 0x12, 0xe4, 0x03, 0x0f, 0xfe, 0x81, 0x63, 0x66,
+ 0xd0, 0x5f, 0x10, 0x00, 0x04, 0x00, 0x00, 0x2c, 0x41, 0x5c, 0x0e, 0x42,
+ 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf, 0x0f, 0xff, 0xfc, 0x16,
+ 0x26, 0x49, 0xa0, 0xbe, 0x18, 0x00, 0x81, 0x59, 0x0c, 0x00, 0x10, 0x1d,
+ 0xdc, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3, 0xdc, 0x81, 0xc0, 0x47,
+ 0x2e, 0xe4, 0x38, 0x08, 0xe5, 0xdc, 0xff, 0xff, 0xa0, 0x58, 0xc1, 0xb6,
+ 0x82, 0xf8, 0x80, 0x00, 0x20, 0x00, 0x01, 0x62, 0x08, 0x5c, 0x0e, 0x42,
+ 0x12, 0xe6, 0x1c, 0x84, 0x25, 0xcc, 0xf0, 0xcf, 0x0f, 0x88, 0xff, 0xf0,
+ 0x58, 0x81, 0xa1, 0x44, 0x1f, 0x0c, 0x40, 0x00, 0x40, 0x04, 0x09, 0x0c,
+ 0x00, 0x08, 0x09, 0x9c, 0x0e, 0x09, 0xc7, 0xb9, 0x87, 0x04, 0xe3, 0xdc,
+ 0x81, 0xc2, 0x61, 0x2e, 0x43, 0x84, 0xc2, 0x5c, 0xf8, 0xff, 0xf8, 0x2c,
+ 0x89, 0x2a, 0x78, 0x60, 0x00, 0x40, 0x84, 0x82, 0xde, 0x07, 0x21, 0x1a,
+ 0xe6, 0x1c, 0x84, 0x6b, 0x99, 0xe1, 0x9e, 0x09, 0x9e, 0xba, 0xeb, 0xaf,
+ 0xff, 0xfe, 0x70, 0x42, 0x22, 0x00, 0x1e, 0x68, 0x08, 0x4d, 0x66, 0x30,
+ 0xde, 0x66, 0x83, 0x1f, 0xef, 0x50, 0x26, 0xc8, 0x25, 0xb2, 0x95, 0x9e,
+ 0x49, 0xff, 0xf7, 0xfa, 0xd8, 0xa2, 0x59, 0x58, 0xac, 0x00, 0x1e, 0x8d,
+ 0x63, 0x46, 0xd6, 0xd7, 0xe4, 0xff, 0xe5, 0x00, 0x27, 0xd8, 0xe8, 0x6e,
+ 0x05, 0x80, 0x2f, 0x27, 0x91, 0x1a, 0xb8, 0xe6, 0xff, 0xc0, 0x27, 0x72,
+ 0x94, 0x78, 0xe1, 0x59, 0xbe, 0x68, 0xc9, 0x37, 0x90, 0x91, 0x72, 0x4b,
+ 0xff, 0x7f, 0x11, 0xb9, 0x3d, 0xee, 0xff, 0xf6, 0x7f, 0xff, 0xff, 0xf7,
+ 0xef, 0x96, 0xf6, 0x26, 0xdf, 0xfd, 0x83, 0xa0, 0x98, 0x9d, 0x61, 0x7a,
+ 0x2c, 0x7f, 0xfd, 0xf9, 0x20, 0x00, 0x13, 0xb2, 0x64, 0x06, 0x8d, 0xa7,
+ 0x6b, 0x69, 0xbb, 0x5e, 0x28, 0xe7, 0x09, 0x93, 0xff, 0xf7, 0x11, 0xd6,
+ 0x0c, 0xa4, 0x60, 0xef, 0x6f, 0x01, 0x54, 0x69, 0x86, 0xcd, 0xaf, 0x8f,
+ 0xc9, 0xff, 0xe8, 0x2e, 0x07, 0x84, 0xb6, 0xf0, 0x76, 0x3d, 0x2c, 0x0d,
+ 0x28, 0x56, 0xbb, 0xdf, 0xb5, 0x8f, 0xff, 0x78, 0x12, 0x74, 0x68, 0x4e,
+ 0xac, 0xfa, 0xee, 0xc1, 0x88, 0x05, 0x6c, 0x7d, 0x95, 0xba, 0x43, 0xf4,
+ 0x46, 0xf5, 0xe1, 0x9c, 0xd1, 0x34, 0x6e, 0xd5, 0xe0, 0x51, 0xc3, 0x66,
+ 0x57, 0x37, 0x6b, 0x86, 0x1e, 0x7a, 0xeb, 0xcb, 0x5a, 0xab, 0x3f, 0xf0,
+ 0xc2, 0x9c, 0xeb, 0x31, 0xeb, 0x1e, 0x2b, 0xff, 0xde, 0xef, 0xf9, 0x69,
+ 0x12, 0x23, 0x76, 0x94, 0x23, 0x5d, 0x71, 0xd1, 0x00, 0x08, 0x00, 0x4c,
+ 0x73, 0x1c, 0xc7, 0x30, 0x1e, 0x6f, 0x3e, 0x07, 0x00, 0x10, 0x41, 0x77,
+ 0x3f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0xe7, 0xf8, 0x07, 0xc3, 0xe2, 0xe7,
+ 0x80, 0x01, 0x7c, 0x07, 0x00, 0x20, 0x82, 0x94, 0x4c, 0xcf, 0x00, 0x02,
+ 0xb8, 0x00, 0x32, 0x68, 0xd0, 0x6a, 0x84, 0x1b, 0x9c, 0x69, 0x81, 0xc1,
+ 0xe0, 0x38, 0x00, 0x82, 0x0b, 0x52, 0x5b, 0x1e, 0xa0, 0x08, 0x00, 0x4c,
+ 0x73, 0x98, 0x85, 0x30, 0x1b, 0xd6, 0xdf, 0xf8, 0x1c, 0x00, 0x41, 0x05,
+ 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8f, 0x50, 0x04, 0x00, 0x26,
+ 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x20, 0x82,
+ 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7, 0xa8, 0x02, 0x00, 0x13,
+ 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe, 0x07, 0x00, 0x10, 0x41,
+ 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xd4, 0x01, 0x00, 0x09,
+ 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x08, 0x20,
+ 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xea, 0x00, 0x80, 0x04,
+ 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xc0, 0x04, 0x10,
+ 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78, 0xf5, 0x00, 0x40, 0x02,
+ 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02, 0x08,
+ 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x7a, 0x80, 0x20, 0x01,
+ 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f, 0xe0, 0x70, 0x01, 0x04,
+ 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e, 0x3b, 0x00, 0x40, 0x02,
+ 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02, 0x08,
+ 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x76, 0x00, 0x80, 0x04,
+ 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0x81, 0xc0, 0x04, 0x10,
+ 0x5c, 0xbf, 0x03, 0x80, 0x08, 0x20, 0xb9, 0x78, 0xec, 0x01, 0x00, 0x09,
+ 0x8e, 0x73, 0x18, 0xe6, 0x03, 0x7a, 0xdb, 0xff, 0x03, 0x80, 0x08, 0x20,
+ 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xd8, 0x02, 0x00, 0x13,
+ 0x1c, 0xe6, 0x31, 0xcc, 0x06, 0xf5, 0xb7, 0xfe, 0x07, 0x00, 0x10, 0x41,
+ 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xb0, 0x04, 0x00, 0x26,
+ 0x39, 0xcc, 0x63, 0x98, 0x0d, 0xeb, 0x6f, 0xfc, 0x0e, 0x00, 0x20, 0x82,
+ 0xe5, 0xf8, 0x1c, 0x00, 0x41, 0x05, 0xcb, 0xc7, 0xe0, 0x08, 0x00, 0x4c,
+ 0x73, 0x98, 0xc7, 0x30, 0x1b, 0xd6, 0xdf, 0xff, 0x03, 0x80, 0x08, 0x20,
+ 0xb9, 0x7e, 0x07, 0x00, 0x10, 0x41, 0x72, 0xf1, 0xf8, 0x78, 0x02, 0x63,
+ 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xfe, 0x18, 0x7e, 0x07, 0x00, 0x10,
+ 0x41, 0x72, 0xfc, 0x0e, 0x00, 0x20, 0x82, 0xe5, 0xe3, 0xf0, 0xf0, 0x04,
+ 0xc7, 0x39, 0x8c, 0x73, 0x01, 0xbd, 0x6d, 0xff, 0xff, 0xf8, 0x1c, 0x00,
+ 0x41, 0x05, 0xcb, 0xf0, 0x38, 0x00, 0x82, 0x0b, 0x97, 0x8e, 0xc0, 0x10,
+ 0x00, 0x98, 0xe7, 0x31, 0x8e, 0x60, 0x37, 0xad, 0xbf, 0xf0, 0x38, 0x00,
+ 0x82, 0x0b, 0x97, 0xe0, 0x70, 0x01, 0x04, 0x17, 0x2f, 0x1d, 0x80, 0x20,
+ 0x01, 0x31, 0xce, 0x63, 0x1c, 0xc0, 0x6f, 0x5b, 0x7f, 0xe0, 0x70, 0x01,
+ 0x04, 0x17, 0x2f, 0xc0, 0xe0, 0x02, 0x08, 0x2e, 0x5e, 0x3b, 0x00, 0x40,
+ 0x02, 0x63, 0x9c, 0xc6, 0x39, 0x80, 0xde, 0xb6, 0xff, 0xc0, 0xe0, 0x02,
+ 0x08, 0x2e, 0x5f, 0x81, 0xc0, 0x04, 0x10, 0x5c, 0xbc, 0x75, 0x00, 0x16,
+ 0x00, 0x04, 0xc8, 0x42, 0x94, 0x84, 0x29, 0x43, 0x0f, 0xe0, 0xbe, 0x07,
+ 0x00, 0x43, 0x09, 0xb9, 0xf0, 0x38, 0x02, 0x18, 0x4c, 0xbe, 0x07, 0x00,
+ 0x43, 0x09, 0xb8, 0x07, 0x00, 0x43, 0x09, 0x97, 0xc0, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xe1, 0x09, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfc, 0x9f,
+ 0xf8, 0x99, 0x8f, 0x80, 0x08, 0x85, 0xfb, 0xb5, 0x27, 0x6f, 0xc6, 0x09,
+ 0x29, 0x70, 0xc4, 0x30, 0x38, 0xaf, 0xf2, 0x0c, 0xe3, 0x29, 0x8f, 0xff,
+ 0xff, 0xff, 0xfc, 0xcf, 0x81, 0xf6, 0xd1, 0x30, 0x76, 0x74, 0x54, 0x51,
+ 0x72, 0x73, 0x78, 0xc2, 0x15, 0x87, 0x53, 0x3d, 0xb4, 0x97, 0x6d, 0xab,
+ 0x7a, 0xe8, 0xaf, 0x7b, 0xe4, 0xd8, 0x00, 0x45, 0x1d, 0x0a, 0x27, 0xfd,
+ 0xdb, 0x70, 0xd8, 0x68, 0x30, 0x1c, 0x74, 0x47, 0xcf, 0xc5, 0xfe, 0xcd,
+ 0xf9, 0x0d, 0xcf, 0x92, 0xff, 0xeb, 0x42, 0xae, 0xb9, 0x90, 0x03, 0xed,
+ 0x2f, 0xc2, 0x62, 0xc3, 0x8a, 0x87, 0x64, 0xa8, 0x57, 0xbe, 0x7a, 0x28,
+ 0x2f, 0x02, 0x75, 0xeb, 0x7c, 0x1f, 0xe2, 0xcb, 0x0d, 0xde, 0xef, 0xee,
+ 0x2b, 0xff, 0xff, 0x31, 0xa1, 0x95, 0x32, 0x0f, 0xbd, 0x33, 0xf3, 0x7e,
+ 0x21, 0x26, 0x60, 0xf6, 0xf8, 0x01, 0x81, 0xe5, 0x7c, 0x76, 0xc5, 0xa4,
+ 0x71, 0x40, 0x9f, 0x0b, 0x18, 0x53, 0xc8, 0xbc, 0xe7, 0xc0, 0x33, 0xf0,
+ 0x42, 0x8d, 0x56, 0x39, 0xd4, 0x58, 0x31, 0x4f, 0xe7, 0xff, 0xff, 0xfe,
+ 0x62, 0xc6, 0x40, 0xff, 0xfd, 0xff, 0xff, 0xe4, 0x24, 0x1f, 0x7a, 0x67,
+ 0xfc, 0xd1, 0x86, 0x18, 0x7f, 0x09, 0x40, 0x5d, 0x34, 0x0c, 0xc7, 0x95,
+ 0xa8, 0x17, 0xc0, 0x11, 0x4d, 0x03, 0x31, 0xcd, 0x5a, 0x80, 0x11, 0x4d,
+ 0x03, 0x31, 0x4d, 0x5a, 0xbc, 0x39, 0xfc, 0xbe, 0x3b, 0xcd, 0xe3, 0x8d,
+ 0xf0, 0xfe, 0x94, 0x85, 0x0b, 0xc0, 0x71, 0x19, 0xc0, 0x92, 0xd0, 0x05,
+ 0xd2, 0xa8, 0x4a, 0xbb, 0xe6, 0xfb, 0xd1, 0x40, 0x0c, 0xf4, 0xa8, 0x40,
+ 0xfd, 0x8d, 0xe4, 0xd8, 0x06, 0xe0, 0x01, 0xfc, 0x3c, 0xfc, 0x00, 0x43,
+ 0xf7, 0x73, 0xb4, 0xff, 0xe9, 0xb0, 0x08, 0x07, 0xfe, 0x1f, 0x80, 0x18,
+ 0x97, 0x12, 0x36, 0x97, 0x6b, 0x23, 0x47, 0xf3, 0x7c, 0x23, 0xff, 0x0f,
+ 0xa8, 0x03, 0x19, 0xda, 0x34, 0xbb, 0x5f, 0x7e, 0x36, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0x84, 0x24, 0x57, 0x21, 0xa0, 0x07, 0x4e, 0xd6, 0x80,
+ 0x63, 0x06, 0xb9, 0xbf, 0x36, 0x9f, 0x48, 0xa7, 0xc2, 0x68, 0x16, 0x00,
+ 0x24, 0xdd, 0x3b, 0xf2, 0x27, 0xee, 0x78, 0x5a, 0x1c, 0xd3, 0xcb, 0x1c,
+ 0x5e, 0x9f, 0xe0, 0x00, 0xfb, 0x4e, 0xfd, 0x4b, 0x5f, 0xfa, 0xc0, 0xf9,
+ 0xff, 0xfa, 0xf7, 0xe3, 0x3f, 0x03, 0xef, 0x3c, 0x4d, 0x7f, 0xdf, 0x8d,
+ 0xff, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xe1, 0x4f, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff,
+ 0xff, 0xf3, 0x7f, 0x94, 0x21, 0xc6, 0x5a, 0x3e, 0x5f, 0x0a, 0x40, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xa8, 0x81, 0x60, 0x67, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf, 0xef, 0x31, 0xf0, 0x87, 0x8e, 0xf0,
+ 0x76, 0x59, 0x5e, 0x02, 0x3f, 0xba, 0xdf, 0xeb, 0xc5, 0x77, 0xfe, 0x61,
+ 0x58, 0x76, 0x7f, 0xbf, 0xff, 0xef, 0xc3, 0x01, 0xe1, 0x04, 0x51, 0x7a,
+ 0xa8, 0xc6, 0x20, 0x1f, 0x6c, 0x38, 0x4d, 0xba, 0x87, 0xd1, 0x80, 0x6d,
+ 0x43, 0x60, 0x1d, 0xea, 0xf7, 0xd4, 0x4a, 0x34, 0x43, 0x34, 0x26, 0x00,
+ 0x1b, 0x6f, 0x42, 0x8d, 0xff, 0x76, 0xcc, 0x26, 0x3d, 0x40, 0xbc, 0x38,
+ 0x0e, 0x4b, 0xc5, 0x5b, 0x0a, 0x8d, 0x96, 0x7f, 0x73, 0x83, 0xe9, 0x14,
+ 0xb4, 0x30, 0x03, 0xfe, 0xff, 0x84, 0xc5, 0x8e, 0x04, 0x8c, 0x1e, 0x9f,
+ 0x16, 0xea, 0xf9, 0x6d, 0x30, 0x22, 0x22, 0x97, 0xff, 0xea, 0xf9, 0x1a,
+ 0x80, 0xd0, 0xff, 0x5b, 0xe9, 0xdf, 0xc0, 0xe2, 0xbf, 0xef, 0xfa, 0xc6,
+ 0x2e, 0x04, 0x4d, 0xee, 0x3c, 0x26, 0xb8, 0x01, 0xb1, 0x32, 0x1c, 0x43,
+ 0x3d, 0xeb, 0xcf, 0xe1, 0x6d, 0xe0, 0x7b, 0xec, 0xf0, 0x25, 0x63, 0xb0,
+ 0xda, 0xce, 0x5d, 0xe1, 0x70, 0x7f, 0xec, 0xc3, 0xb8, 0x78, 0x81, 0x11,
+ 0x9d, 0x70, 0x3f, 0x83, 0x2f, 0xbb, 0xa3, 0xb1, 0xff, 0xfd, 0xfe, 0xff,
+ 0xef, 0xf9, 0x38, 0x1f, 0x04, 0x20, 0x09, 0xb7, 0xf3, 0xfe, 0x3e, 0x91,
+ 0x6c, 0xa4, 0x13, 0xe2, 0x9e, 0x02, 0x6d, 0x77, 0x57, 0x30, 0xd9, 0x82,
+ 0xa6, 0x71, 0x52, 0xda, 0x68, 0xd8, 0x03, 0x08, 0xbf, 0x79, 0xe8, 0x26,
+ 0x90, 0x65, 0x0f, 0xa4, 0x19, 0xfa, 0x42, 0x44, 0x07, 0x06, 0x7c, 0xb8,
+ 0xec, 0xd8, 0xe5, 0xe1, 0x8f, 0xfe, 0xfb, 0xbc, 0x2a, 0x5c, 0x00, 0x33,
+ 0x6f, 0xf9, 0x5f, 0x22, 0x46, 0x91, 0x3c, 0x38, 0xd3, 0xb3, 0xb5, 0x19,
+ 0x80, 0xc4, 0x40, 0x33, 0xbf, 0xfd, 0x7b, 0xe4, 0x31, 0xff, 0x1d, 0xc7,
+ 0x8c, 0xf0, 0x00, 0xc4, 0xcf, 0xbd, 0x08, 0xb5, 0x80, 0x01, 0x91, 0x7d,
+ 0xf4, 0x21, 0x65, 0x5d, 0xba, 0x57, 0x5d, 0xbc, 0xbb, 0xfe, 0x05, 0x0c,
+ 0x61, 0x7b, 0xfe, 0xef, 0x9e, 0x09, 0x7e, 0x18, 0xdd, 0xc8, 0x1c, 0x07,
+ 0xfc, 0x25, 0xd8, 0x2e, 0x99, 0x73, 0x09, 0x5e, 0x9f, 0xff, 0x40, 0x0c,
+ 0x8b, 0xba, 0xff, 0xfa, 0x83, 0x2a, 0xb3, 0x46, 0x92, 0xed, 0x07, 0xef,
+ 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa2, 0x05, 0x86, 0x9e, 0x43,
+ 0x40, 0x11, 0xd1, 0x19, 0xa6, 0xfc, 0xff, 0x2e, 0xf1, 0x8b, 0x92, 0x65,
+ 0x0f, 0x43, 0xe5, 0xfd, 0xe3, 0x7a, 0xfb, 0xc3, 0xa8, 0x15, 0x7c, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x3f, 0xff, 0x08, 0x7f,
+ 0xff, 0xff, 0x37, 0x7f, 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xe2, 0x11, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x95, 0x70, 0xc2, 0x1b,
+ 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xaf,
+ 0xff, 0x98, 0x4f, 0x00, 0xb1, 0xcf, 0x23, 0x34, 0xd6, 0x26, 0x22, 0x2f,
+ 0x81, 0x61, 0xad, 0xb1, 0xbe, 0xcb, 0xf3, 0xdf, 0x80, 0x13, 0x21, 0xad,
+ 0xa8, 0x99, 0xdc, 0xf0, 0x0b, 0xbd, 0x89, 0x22, 0xad, 0x6c, 0xf7, 0xa7,
+ 0x89, 0x8a, 0xff, 0xff, 0xcc, 0x10, 0xc3, 0xb3, 0xfd, 0xff, 0xf2, 0x97,
+ 0x87, 0xa1, 0xb9, 0x7f, 0xf2, 0x7e, 0x19, 0x04, 0x18, 0xc8, 0xa4, 0x00,
+ 0x3b, 0xd9, 0x32, 0x1a, 0x3a, 0x6a, 0xf5, 0xff, 0x50, 0xb1, 0x19, 0x8e,
+ 0x9e, 0x11, 0x17, 0x5d, 0xf1, 0xef, 0xfe, 0x40, 0x05, 0x14, 0x4c, 0xa3,
+ 0x74, 0xf7, 0x63, 0x59, 0xb0, 0x1d, 0xed, 0x10, 0x34, 0x3d, 0x7d, 0x65,
+ 0xd2, 0x06, 0xa6, 0x30, 0x69, 0xc0, 0x1e, 0x36, 0x98, 0x5a, 0x9b, 0x65,
+ 0xe8, 0xce, 0xf3, 0xff, 0xc5, 0xa3, 0x97, 0x24, 0x0d, 0x55, 0xe1, 0x9c,
+ 0xe6, 0x71, 0x49, 0x5e, 0xfc, 0x60, 0x00, 0x0c, 0xc9, 0x24, 0xdb, 0xfe,
+ 0x18, 0x36, 0xd8, 0xdc, 0xff, 0xfb, 0xbf, 0xe0, 0x04, 0x3b, 0x64, 0x62,
+ 0x59, 0x3d, 0xe8, 0x3d, 0x26, 0x3c, 0x8f, 0x8d, 0xa9, 0x83, 0x39, 0xdb,
+ 0x89, 0x25, 0xdd, 0xf0, 0xe6, 0xff, 0x09, 0x7e, 0x08, 0x04, 0x81, 0x44,
+ 0x5c, 0x4a, 0x63, 0xe8, 0x8f, 0xff, 0xfc, 0x0a, 0x8a, 0x22, 0x31, 0xd2,
+ 0x65, 0xaf, 0xf7, 0x8a, 0xff, 0xff, 0xff, 0x9b, 0xf1, 0x52, 0x26, 0x27,
+ 0x75, 0x5b, 0x27, 0x84, 0xcf, 0xb5, 0xe0, 0x80, 0xc3, 0x1c, 0xd4, 0xe1,
+ 0x2f, 0xa3, 0xff, 0x9f, 0x00, 0x8a, 0x2b, 0xd8, 0x07, 0xc6, 0x63, 0x7f,
+ 0x5f, 0x00, 0xb0, 0x8c, 0x99, 0x4e, 0x7e, 0xa5, 0x95, 0xc8, 0x1a, 0x98,
+ 0xcb, 0xf9, 0xf7, 0x76, 0xc8, 0x5e, 0x3f, 0x17, 0x1a, 0x1f, 0xe7, 0xd5,
+ 0x62, 0x5a, 0x90, 0x4d, 0xee, 0x73, 0x71, 0xe8, 0x3c, 0x7f, 0xff, 0xff,
+ 0xff, 0xbf, 0xff, 0xff, 0xf9, 0x82, 0x0b, 0x81, 0x7f, 0xc2, 0x51, 0xdd,
+ 0x9a, 0x87, 0x1e, 0x63, 0xe2, 0xd9, 0xd6, 0x2d, 0xf8, 0xce, 0x16, 0xb0,
+ 0xab, 0x08, 0xef, 0x47, 0x16, 0x2f, 0x33, 0xcb, 0x57, 0x26, 0x8c, 0x53,
+ 0x75, 0x26, 0x4f, 0xd2, 0x64, 0xe7, 0x80, 0x19, 0xf9, 0x4b, 0x80, 0x07,
+ 0xfc, 0xa7, 0x7c, 0x00, 0xf0, 0x6d, 0xf0, 0x0d, 0x7f, 0x74, 0xed, 0x42,
+ 0xf7, 0x84, 0x2c, 0x0f, 0xe5, 0xe3, 0x8d, 0xf6, 0xb7, 0xc2, 0x50, 0xa6,
+ 0x00, 0x2e, 0x61, 0xcb, 0xaa, 0x48, 0xb8, 0xf7, 0xff, 0xe4, 0x37, 0x03,
+ 0x31, 0x24, 0x15, 0xa3, 0x8b, 0xb8, 0x80, 0xd8, 0x53, 0xc8, 0xe1, 0xe5,
+ 0xc9, 0xff, 0xa0, 0xb3, 0x57, 0x55, 0xaf, 0xc3, 0x84, 0x98, 0x2a, 0x65,
+ 0xc3, 0xfc, 0x1f, 0x80, 0xb0, 0x7d, 0x92, 0x5c, 0x7b, 0xfa, 0x35, 0x7a,
+ 0xd7, 0x9f, 0xff, 0xa2, 0xe1, 0xfe, 0x09, 0xb1, 0x3f, 0xf5, 0x50, 0xc1,
+ 0x3a, 0xf8, 0x04, 0x8d, 0x3e, 0x5a, 0x6e, 0x74, 0x31, 0x9b, 0xf5, 0xf7,
+ 0xf8, 0x05, 0x1f, 0x78, 0x1a, 0x88, 0x86, 0xce, 0xbb, 0x58, 0xf8, 0xbf,
+ 0xe6, 0xf8, 0x7a, 0xaf, 0xc1, 0x02, 0xf8, 0x03, 0xf2, 0xa8, 0xee, 0xe0,
+ 0x03, 0xfb, 0xab, 0xe4, 0x7b, 0xe6, 0xfc, 0x71, 0xbe, 0x1f, 0xd2, 0x90,
+ 0x42, 0xe0, 0x01, 0xc9, 0x14, 0x90, 0x95, 0xf7, 0xc4, 0xfd, 0xe8, 0x2e,
+ 0x81, 0xcf, 0x69, 0xc9, 0x46, 0x7d, 0xdf, 0x48, 0x98, 0x9c, 0x47, 0x9a,
+ 0x3a, 0xbf, 0xff, 0x0f, 0x98, 0x00, 0xf2, 0x95, 0x5d, 0x23, 0x73, 0x83,
+ 0xf1, 0x23, 0x47, 0xd6, 0xb7, 0xfb, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0x88, 0x44, 0x15, 0x7f, 0xcb, 0xef, 0xc6, 0x72, 0x08, 0x04,
+ 0x8d, 0x3f, 0xe7, 0xfe, 0xf9, 0xb0, 0x9f, 0x03, 0xf9, 0x7f, 0xdf, 0x8d,
+ 0xff, 0x70, 0xf5, 0xff, 0xff, 0xef, 0x09, 0x58, 0x08, 0xaf, 0x2f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
+ 0x53, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xe6,
+ 0x11, 0x87, 0x90, 0xdc, 0x1f, 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xa8, 0xc3, 0x60, 0x21, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0xbf, 0xfa, 0xfd, 0xf9, 0x04, 0xcb, 0x16, 0x7c, 0x11, 0xb4, 0x77,
+ 0xd5, 0xf9, 0x90, 0x18, 0xc6, 0x84, 0x62, 0xbf, 0xef, 0xff, 0xfd, 0xf8,
+ 0x60, 0xc1, 0xac, 0xfb, 0xc6, 0x82, 0xab, 0x62, 0x00, 0x55, 0xaf, 0x9b,
+ 0xb3, 0xff, 0x9d, 0x19, 0x2b, 0x71, 0x80, 0x3f, 0x1e, 0x9f, 0xe9, 0xa3,
+ 0xd8, 0x19, 0xa9, 0xc1, 0xd5, 0xd3, 0xb0, 0x1d, 0x7e, 0x2c, 0x7f, 0xce,
+ 0xff, 0x9a, 0xe0, 0xe5, 0x82, 0x3a, 0x03, 0xa6, 0xb9, 0xb1, 0x3e, 0x49,
+ 0xdc, 0xd5, 0x12, 0xc4, 0xc6, 0x5d, 0x0f, 0x9c, 0xbc, 0x29, 0x98, 0xd2,
+ 0x42, 0xb9, 0x3c, 0x57, 0xff, 0xf0, 0xc7, 0x1e, 0x00, 0x68, 0xf9, 0xa4,
+ 0x59, 0xb0, 0x03, 0x03, 0xca, 0xf8, 0xec, 0x3d, 0x5a, 0x96, 0x1e, 0xad,
+ 0x26, 0x0a, 0xc5, 0x14, 0x04, 0x82, 0x99, 0x78, 0x09, 0x19, 0xce, 0xa7,
+ 0x94, 0x5f, 0x11, 0x48, 0xe1, 0xb5, 0xb4, 0x9b, 0xf3, 0xc7, 0x2e, 0xad,
+ 0x80, 0x6b, 0x21, 0xf9, 0xff, 0xff, 0xef, 0xff, 0xf8, 0x62, 0xa8, 0x21,
+ 0x71, 0xff, 0x84, 0x99, 0x94, 0x49, 0x1b, 0x55, 0xe0, 0x66, 0x26, 0xf9,
+ 0x07, 0xf7, 0x78, 0xf7, 0x4a, 0x58, 0xc7, 0x27, 0x0f, 0x07, 0x6f, 0x99,
+ 0xa9, 0x57, 0xca, 0xc6, 0x77, 0xca, 0x5f, 0xfc, 0x00, 0xce, 0xb9, 0x5f,
+ 0x1c, 0xb3, 0x16, 0x00, 0x1b, 0x2f, 0xbc, 0xec, 0x1d, 0x09, 0x93, 0xc0,
+ 0x00, 0xf6, 0x18, 0xff, 0x11, 0x0a, 0xc3, 0x0a, 0xf1, 0x34, 0x07, 0x44,
+ 0x56, 0xbc, 0xd0, 0xf0, 0x09, 0x5b, 0xef, 0x68, 0x63, 0xff, 0x8e, 0xa3,
+ 0x0a, 0xf1, 0xee, 0xf9, 0x60, 0xf0, 0x1e, 0x65, 0x84, 0x0d, 0x38, 0x0f,
+ 0x23, 0x8e, 0xde, 0x94, 0x8f, 0xae, 0xf1, 0xc1, 0x8f, 0x87, 0xf4, 0x84,
+ 0x29, 0xaf, 0x00, 0x12, 0x55, 0x13, 0x6b, 0x45, 0xf7, 0xa1, 0x21, 0xd5,
+ 0x49, 0x93, 0xf7, 0xcb, 0xd0, 0xdc, 0x4a, 0xc3, 0x5f, 0x51, 0x82, 0x04,
+ 0x00, 0x4a, 0xd0, 0x51, 0xb6, 0x1e, 0xf5, 0x2d, 0xf8, 0x3d, 0x6e, 0x58,
+ 0x41, 0xfd, 0xf8, 0xfd, 0xe3, 0x60, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xa3, 0x0d, 0x84, 0xbe, 0x5d, 0xe3, 0x1f, 0xed, 0xfe, 0xf1, 0xbd, 0xfb,
+ 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x29, 0xff, 0xf8,
+ 0x43, 0xff, 0xff, 0xf9, 0xbb, 0xfc, 0xb8, 0x52, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x21, 0xe3, 0x19, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x99,
+ 0x8f, 0x81, 0x2e, 0xf0, 0x3c, 0xf4, 0x87, 0xe7, 0xfa, 0x9f, 0x98, 0x44,
+ 0xa5, 0x2f, 0x49, 0xcb, 0x5f, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0xe5, 0x20, 0xa1, 0x81, 0x87, 0xce, 0x5c, 0xbb, 0x53, 0x23, 0x5e, 0x7b,
+ 0x2f, 0x78, 0xd5, 0x1f, 0x35, 0x21, 0x73, 0x00, 0x36, 0x9a, 0x0f, 0x90,
+ 0xb9, 0x97, 0xbe, 0xfd, 0xce, 0xf6, 0x3e, 0x6d, 0x3e, 0x17, 0xfc, 0x26,
+ 0x25, 0xf4, 0x0d, 0x80, 0x05, 0x97, 0xaa, 0xf9, 0x84, 0xc2, 0xff, 0xc1,
+ 0x6f, 0x67, 0xbd, 0x00, 0x28, 0x5e, 0xd5, 0x39, 0xdf, 0xd5, 0x15, 0xff,
+ 0xff, 0xff, 0x37, 0xe2, 0x0c, 0xa8, 0x4a, 0x96, 0xb3, 0x70, 0x05, 0x1d,
+ 0x10, 0xea, 0x3f, 0x36, 0xc1, 0xd5, 0xbf, 0x3c, 0x05, 0x52, 0x72, 0x7e,
+ 0x14, 0x68, 0x02, 0x68, 0x4a, 0x32, 0xee, 0xac, 0x58, 0x1e, 0xb8, 0x36,
+ 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07, 0xaf, 0x13,
+ 0x2a, 0x0b, 0x76, 0xf7, 0x1c, 0xdf, 0xff, 0x91, 0x41, 0x09, 0xe0, 0x04,
+ 0x46, 0xd8, 0x48, 0x57, 0x63, 0xfd, 0xe0, 0x03, 0xd4, 0xbe, 0x03, 0xf7,
+ 0x98, 0xfb, 0xff, 0x07, 0xff, 0xfe, 0xe7, 0x97, 0xf1, 0xcf, 0xa6, 0x08,
+ 0x63, 0xe7, 0x8f, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xe2, 0x08, 0x46, 0xf7,
+ 0xe6, 0xe1, 0x6c, 0x10, 0x68, 0xd2, 0xe0, 0x0e, 0xc2, 0x11, 0xff, 0xce,
+ 0x69, 0x5a, 0x45, 0x22, 0x6f, 0xc4, 0x96, 0x00, 0xf5, 0x2f, 0x80, 0xfd,
+ 0xe6, 0x00, 0xb9, 0x2a, 0xe9, 0xee, 0x9f, 0xa9, 0xbd, 0xfe, 0x3f, 0xff,
+ 0xb8, 0x18, 0x70, 0x02, 0xe3, 0xb7, 0x4c, 0x8a, 0xaf, 0x55, 0x06, 0x33,
+ 0xbf, 0xfe, 0xf7, 0xfb, 0xfc, 0xc2, 0x93, 0xd3, 0xe6, 0x13, 0x82, 0x7f,
+ 0x80, 0x36, 0x7e, 0xa5, 0xfe, 0x07, 0xa0, 0x60, 0x48, 0xf4, 0x3b, 0xdb,
+ 0xff, 0x00, 0x73, 0x72, 0xcf, 0x48, 0x9e, 0x3b, 0x9b, 0x09, 0xf1, 0x2c,
+ 0xfc, 0x0f, 0x98, 0x88, 0x9c, 0xc9, 0x34, 0x87, 0x3c, 0x27, 0x8b, 0x18,
+ 0x02, 0x57, 0xa9, 0x7f, 0x81, 0xff, 0x87, 0x11, 0x6e, 0xff, 0x00, 0x73,
+ 0x75, 0x9e, 0x97, 0xbf, 0x1d, 0xec, 0x29, 0x12, 0x00, 0x10, 0xbd, 0xdd,
+ 0xdf, 0x7f, 0xe0, 0x00, 0x7e, 0xb7, 0x28, 0x75, 0xd7, 0xe7, 0xff, 0xdf,
+ 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x8c, 0x64, 0x25, 0xff,
+ 0x2f, 0xbf, 0x19, 0xff, 0x7f, 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x53,
+ 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
+ 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xa9, 0x05, 0x60, 0x25, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfe, 0x63, 0xe0,
+ 0x91, 0xe9, 0xe0, 0x4d, 0xf5, 0x6d, 0x72, 0xc5, 0x7f, 0xff, 0xff, 0xf7,
+ 0x8a, 0x10, 0x04, 0x60, 0xe7, 0x22, 0x43, 0xba, 0x01, 0x2f, 0x00, 0x6f,
+ 0x14, 0xa3, 0xc0, 0x1d, 0x7c, 0x80, 0x24, 0x1a, 0x1d, 0x20, 0x67, 0xec,
+ 0x8f, 0x54, 0x8a, 0x7b, 0x07, 0xee, 0x45, 0x20, 0xe0, 0x70, 0xc4, 0x8b,
+ 0xeb, 0x7f, 0xc2, 0x62, 0x40, 0xc1, 0x00, 0x12, 0x08, 0x8e, 0x86, 0x4b,
+ 0x07, 0xe5, 0xcc, 0x65, 0x64, 0xef, 0x5e, 0x19, 0xb6, 0x92, 0xa5, 0xda,
+ 0xf1, 0x5f, 0xff, 0xc3, 0x1c, 0x7a, 0x83, 0x8c, 0xd9, 0xb6, 0x6c, 0x02,
+ 0x3d, 0x7d, 0xb0, 0xf6, 0x74, 0xb7, 0x84, 0xbc, 0xbc, 0xb2, 0x6e, 0xd6,
+ 0x83, 0xe4, 0xdf, 0xf4, 0x80, 0xf3, 0xd7, 0xfe, 0x1d, 0x6a, 0x42, 0xfe,
+ 0xff, 0x54, 0x8a, 0x83, 0x98, 0x71, 0xa3, 0xe7, 0x5e, 0xbf, 0xff, 0xbf,
+ 0xff, 0xe1, 0x8b, 0x53, 0x6f, 0xfc, 0x24, 0x78, 0x06, 0x3a, 0xb4, 0xff,
+ 0x20, 0x26, 0xb4, 0x36, 0x54, 0x0d, 0xb5, 0x0b, 0x78, 0x26, 0x27, 0x1f,
+ 0x03, 0x9c, 0x31, 0x2b, 0x15, 0x40, 0x89, 0xb3, 0xed, 0x40, 0x19, 0x1f,
+ 0xab, 0x1f, 0xf3, 0x5c, 0x2e, 0xa8, 0xf3, 0x30, 0x08, 0x3f, 0xe9, 0xf4,
+ 0xaf, 0x83, 0xa6, 0x60, 0x07, 0xcf, 0xe4, 0x8d, 0xb8, 0xa4, 0x1b, 0x7b,
+ 0xfe, 0x6f, 0xfb, 0xff, 0x02, 0x0f, 0xa3, 0xbd, 0x2f, 0xc3, 0x1f, 0xe7,
+ 0x53, 0xf8, 0x20, 0x2d, 0x95, 0xde, 0x64, 0x5f, 0xa9, 0x5a, 0x14, 0x1f,
+ 0x80, 0x49, 0x8e, 0x7d, 0x06, 0x27, 0xac, 0x4f, 0xfe, 0x1f, 0x40, 0x0b,
+ 0x7e, 0xd6, 0x04, 0x3a, 0x7f, 0x80, 0x77, 0xde, 0x3d, 0xdc, 0x31, 0xfe,
+ 0x67, 0x3d, 0x70, 0xaa, 0x02, 0x1d, 0x40, 0x6b, 0xbc, 0xff, 0x02, 0x5f,
+ 0x40, 0x7e, 0xf6, 0x74, 0x58, 0x1f, 0x85, 0xde, 0x3b, 0x6e, 0x24, 0x85,
+ 0xc0, 0x0c, 0xda, 0xbf, 0x9f, 0xff, 0xf1, 0x7d, 0xe3, 0x60, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xa4, 0x15, 0x82, 0x2f, 0x97, 0x78, 0xcf, 0xbf,
+ 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
+ 0x7f, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x1b,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd,
+ 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00,
+ 0x80, 0x00, 0x00, 0x01, 0x21, 0xe4, 0x21, 0x01, 0xaf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xae, 0x62, 0xf0, 0x47, 0xbe, 0xd8, 0x89, 0x56, 0x46, 0xfc, 0xf2, 0x21,
+ 0xee, 0x79, 0x62, 0x7f, 0xfc, 0x57, 0xff, 0xff, 0xff, 0xfc, 0x51, 0x22,
+ 0x5e, 0xed, 0xd5, 0x98, 0xf7, 0x68, 0x89, 0x9a, 0x0f, 0x7e, 0x67, 0x82,
+ 0xa5, 0xa8, 0xea, 0xe0, 0xe2, 0x97, 0x5c, 0xa6, 0x3a, 0xe1, 0xd8, 0x92,
+ 0xaa, 0x85, 0x49, 0xb9, 0x74, 0x61, 0xcf, 0x5e, 0x73, 0x77, 0x53, 0xee,
+ 0xb7, 0x13, 0xa9, 0xd9, 0x7a, 0x2c, 0x13, 0x7f, 0xfb, 0x7c, 0xde, 0xc6,
+ 0x11, 0x12, 0xa2, 0x56, 0x31, 0x9d, 0x20, 0x2f, 0x0a, 0xed, 0x32, 0xed,
+ 0x50, 0x03, 0x3e, 0xfc, 0xae, 0x7e, 0xfa, 0x3e, 0xee, 0x78, 0xec, 0x77,
+ 0x98, 0xd3, 0x67, 0xd9, 0x9c, 0x91, 0x4c, 0x6d, 0x23, 0x56, 0x6f, 0x52,
+ 0xe1, 0xa7, 0x48, 0x90, 0x01, 0x1c, 0x81, 0xdb, 0xa6, 0x8f, 0x52, 0x45,
+ 0xcb, 0x65, 0xfb, 0x3c, 0x21, 0x71, 0x02, 0xe2, 0x9a, 0x5a, 0x64, 0xfe,
+ 0xd2, 0xfc, 0x26, 0x57, 0x86, 0x66, 0x67, 0xcf, 0x8a, 0xff, 0xfe, 0x4f,
+ 0xfc, 0x22, 0x41, 0x6a, 0x1d, 0x5d, 0x4f, 0x30, 0x0d, 0xe8, 0x0d, 0x49,
+ 0x39, 0x3a, 0x61, 0x52, 0x73, 0x96, 0xc9, 0xff, 0x13, 0x28, 0xb7, 0x8f,
+ 0x47, 0x60, 0xfd, 0xda, 0xd7, 0x82, 0x00, 0xc2, 0xaa, 0x75, 0x30, 0x2b,
+ 0xbf, 0xb4, 0xdf, 0x88, 0x91, 0x05, 0x53, 0xb5, 0xc0, 0x9b, 0xf4, 0xce,
+ 0xd3, 0x51, 0xb0, 0xeb, 0x15, 0xb3, 0xe5, 0x4c, 0x38, 0x53, 0x12, 0x77,
+ 0x2d, 0xb7, 0xb2, 0xec, 0x5c, 0xff, 0x27, 0xf8, 0x18, 0x40, 0xc0, 0x06,
+ 0x10, 0x3e, 0x08, 0x7c, 0x0b, 0x0e, 0x42, 0x84, 0x12, 0x03, 0x94, 0x81,
+ 0xe0, 0x18, 0x1e, 0x00, 0x73, 0x38, 0xee, 0x3f, 0xfc, 0x24, 0xc1, 0xe8,
+ 0xd9, 0xea, 0x10, 0xef, 0xef, 0xb7, 0xff, 0x7d, 0x7f, 0xdf, 0xff, 0xf7,
+ 0x88, 0x10, 0x20, 0x90, 0xdf, 0xa1, 0x13, 0xdd, 0x1e, 0x11, 0x80, 0xd2,
+ 0x4c, 0xf2, 0x9a, 0x35, 0x03, 0xee, 0x18, 0x13, 0x10, 0xf0, 0x3a, 0x68,
+ 0x2f, 0x3b, 0xa4, 0x6f, 0x60, 0x71, 0xa6, 0x73, 0xed, 0x22, 0xfa, 0x73,
+ 0xcf, 0x01, 0x76, 0x49, 0x33, 0xfc, 0x4c, 0x4e, 0x23, 0xbf, 0x1d, 0xec,
+ 0x29, 0x20, 0x00, 0x46, 0x6a, 0xfa, 0xbb, 0xff, 0xf8, 0x36, 0x77, 0x3e,
+ 0xfd, 0x78, 0xcf, 0x9b, 0xf8, 0x7f, 0xc2, 0x84, 0x84, 0x24, 0xfe, 0x7e,
+ 0x11, 0xf7, 0x0d, 0x34, 0x52, 0x76, 0xc2, 0x06, 0x0d, 0xb4, 0x31, 0xfe,
+ 0x69, 0x05, 0xee, 0x8b, 0x18, 0x3b, 0xc2, 0xff, 0x3c, 0x8e, 0xd6, 0xc2,
+ 0x3c, 0x67, 0x1c, 0xcc, 0x26, 0xe1, 0xc0, 0x3c, 0x16, 0x2d, 0x86, 0x95,
+ 0x7e, 0x03, 0xa6, 0x0e, 0x5b, 0x18, 0x18, 0xa7, 0x2c, 0x6b, 0xdc, 0x37,
+ 0x01, 0xe6, 0xd1, 0x00, 0xe7, 0x29, 0xc2, 0x36, 0x81, 0x5f, 0x2d, 0x15,
+ 0x10, 0x28, 0xf7, 0x21, 0xb6, 0x8f, 0xa9, 0xd3, 0x9e, 0x9c, 0x20, 0x7f,
+ 0x49, 0xb0, 0xa7, 0xa4, 0x9a, 0x7b, 0x70, 0x69, 0x34, 0x1d, 0xec, 0xd3,
+ 0xdf, 0x06, 0x5d, 0x37, 0xec, 0x74, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0x90, 0x84, 0x04, 0x17, 0xf9, 0x04, 0x43, 0xec, 0xb7, 0xf6, 0xd5, 0x5b,
+ 0x96, 0x55, 0x6e, 0x5b, 0xfc, 0x44, 0x0d, 0x5b, 0x96, 0x55, 0x6e, 0x5b,
+ 0xd5, 0x5b, 0x96, 0xff, 0xe2, 0x10, 0x34, 0x9a, 0x0a, 0x83, 0x3c, 0x35,
+ 0x1c, 0x9d, 0x01, 0x77, 0x96, 0xf6, 0x99, 0xfb, 0x2c, 0x10, 0xb7, 0x8f,
+ 0xf7, 0xe3, 0x3c, 0x9f, 0xf6, 0x6a, 0xc1, 0xc6, 0xcd, 0x8f, 0xd8, 0xa0,
+ 0xe0, 0xa7, 0xa6, 0xea, 0xd5, 0x4b, 0x0e, 0x63, 0x5e, 0x03, 0x47, 0xf8,
+ 0x8d, 0x0d, 0x9f, 0x38, 0x35, 0x81, 0x22, 0xfd, 0x31, 0x78, 0x80, 0xe0,
+ 0xe5, 0x72, 0x61, 0x00, 0x15, 0x2f, 0xdf, 0xa5, 0x29, 0x9b, 0xb3, 0xf9,
+ 0x85, 0x42, 0x2f, 0x66, 0xc7, 0xee, 0x97, 0xfb, 0x99, 0xbd, 0x1b, 0xf8,
+ 0x3c, 0x0a, 0x3b, 0x84, 0x6d, 0xa0, 0x39, 0xaa, 0xb0, 0x24, 0x67, 0x4c,
+ 0x86, 0xca, 0x89, 0x67, 0x06, 0x04, 0x00, 0xab, 0x5e, 0xb1, 0x2d, 0x33,
+ 0x76, 0x7f, 0x35, 0x43, 0x1b, 0x36, 0x3f, 0x73, 0x5f, 0xfb, 0x83, 0x7a,
+ 0x37, 0xe8, 0xc7, 0x80, 0xd1, 0xf7, 0x08, 0xd1, 0x13, 0x9a, 0x9c, 0xce,
+ 0x29, 0x17, 0xca, 0x60, 0x6c, 0xa8, 0x96, 0x6d, 0x64, 0x08, 0x01, 0x56,
+ 0xbd, 0x62, 0x5a, 0x66, 0xec, 0xfe, 0x61, 0x50, 0xa8, 0xed, 0x8e, 0x9b,
+ 0xa5, 0xfe, 0xe6, 0x6f, 0x46, 0xfe, 0x0f, 0x09, 0x5d, 0xa0, 0x82, 0x4c,
+ 0x4d, 0x0b, 0x2e, 0x8c, 0xb6, 0x60, 0x36, 0x54, 0x4b, 0x38, 0x30, 0xf0,
+ 0xa7, 0xa0, 0xa3, 0x2c, 0xc8, 0xd2, 0x7f, 0x30, 0x28, 0x83, 0xbf, 0xd0,
+ 0xa9, 0xb9, 0xa0, 0xc7, 0x84, 0xb1, 0x0a, 0xf8, 0x43, 0x38, 0x4c, 0xfa,
+ 0x10, 0x6d, 0x1b, 0xb4, 0x33, 0x26, 0x75, 0x0f, 0x46, 0x1b, 0xa6, 0x78,
+ 0x28, 0xa1, 0x2f, 0x23, 0xb1, 0x77, 0x79, 0x74, 0xbe, 0x69, 0xa0, 0x47,
+ 0xe6, 0x54, 0xde, 0xa0, 0xe7, 0x8a, 0x84, 0x28, 0x6d, 0x38, 0x8c, 0xf0,
+ 0x95, 0xda, 0x08, 0x24, 0xc1, 0x32, 0x16, 0x5d, 0x19, 0xe8, 0xc7, 0xca,
+ 0x30, 0x4c, 0x2a, 0x53, 0xf8, 0x13, 0xb1, 0x77, 0x7e, 0x04, 0xfe, 0x60,
+ 0x51, 0x07, 0x7f, 0xa2, 0x7b, 0x9a, 0x0c, 0x78, 0x4b, 0x10, 0xa7, 0x84,
+ 0x33, 0x84, 0xcf, 0xa1, 0x06, 0xc6, 0x0f, 0xed, 0x55, 0x4c, 0xea, 0x6d,
+ 0xc3, 0x74, 0xcf, 0x05, 0x14, 0x25, 0xe5, 0x69, 0x71, 0xfa, 0x93, 0xc7,
+ 0x42, 0x69, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c, 0x4d, 0x16, 0x45,
+ 0x5d, 0xef, 0x3c, 0x61, 0x2b, 0xb4, 0x10, 0x46, 0x8e, 0xd9, 0x55, 0xc7,
+ 0x47, 0xd6, 0xa1, 0x30, 0x0e, 0xa9, 0xa6, 0x74, 0x5c, 0x06, 0xef, 0x25,
+ 0x94, 0xa6, 0x13, 0x60, 0x1f, 0x3f, 0x1d, 0xea, 0x0e, 0x78, 0x9a, 0x2c,
+ 0x88, 0xdd, 0xef, 0x3c, 0x61, 0x2b, 0xb4, 0x10, 0x46, 0x8e, 0xd9, 0x55,
+ 0xc7, 0x47, 0xd6, 0xa1, 0x30, 0x0e, 0xab, 0x4c, 0xde, 0xa3, 0x81, 0xbb,
+ 0x25, 0x9a, 0x53, 0x09, 0xb0, 0x0f, 0x9f, 0x8e, 0xf5, 0x07, 0x3c, 0x4d,
+ 0x16, 0x44, 0x6e, 0xf7, 0x9e, 0x30, 0x95, 0xda, 0x08, 0x23, 0x47, 0x6c,
+ 0xaa, 0xe3, 0xa3, 0xeb, 0x50, 0x98, 0x07, 0x55, 0xa6, 0x6f, 0x51, 0xc0,
+ 0xdd, 0x92, 0xcd, 0x29, 0x84, 0xe8, 0xaa, 0x1f, 0xe5, 0x79, 0x5d, 0x8e,
+ 0x56, 0x86, 0x9d, 0xc4, 0x90, 0xcb, 0x1e, 0x40, 0x67, 0xfe, 0xd0, 0xb9,
+ 0xa3, 0xad, 0x8a, 0x37, 0xee, 0xc9, 0x4a, 0x4c, 0x2d, 0x4c, 0xff, 0x24,
+ 0x00, 0x31, 0x55, 0xa5, 0x26, 0x9d, 0x05, 0xc2, 0xc0, 0x1e, 0xd7, 0x85,
+ 0xde, 0x3a, 0xd8, 0x53, 0xb6, 0xe3, 0x5a, 0xde, 0x42, 0x7e, 0xd0, 0xaa,
+ 0xe1, 0xbf, 0xb6, 0x20, 0x9c, 0x7d, 0x18, 0x17, 0x97, 0xbf, 0x1b, 0xa9,
+ 0xe0, 0xbe, 0x48, 0x00, 0x62, 0xa5, 0xa5, 0x26, 0x9d, 0x05, 0xc2, 0xc0,
+ 0x1e, 0x57, 0x85, 0xde, 0x3a, 0xd8, 0x53, 0xba, 0xc6, 0xb5, 0xbc, 0x84,
+ 0xfd, 0xa1, 0x55, 0xc3, 0x7f, 0x6c, 0x41, 0x38, 0xfa, 0x30, 0x5c, 0xab,
+ 0xfe, 0xea, 0x7b, 0xf9, 0x20, 0x01, 0x8a, 0xa6, 0x94, 0x9a, 0x71, 0xa0,
+ 0x48, 0x03, 0x6e, 0xf0, 0xbb, 0xc7, 0x5b, 0x0a, 0x77, 0x58, 0x38, 0xaa,
+ 0x4c, 0x21, 0xac, 0x86, 0x69, 0xe7, 0xa3, 0x81, 0xb4, 0xdb, 0xcf, 0xf0,
+ 0x5e, 0x03, 0x15, 0x64, 0xb2, 0x6f, 0xe3, 0x8e, 0xdd, 0xc0, 0x7a, 0x6f,
+ 0x88, 0x4d, 0xb7, 0x34, 0x16, 0x11, 0x11, 0xc6, 0x24, 0xd3, 0x06, 0xa7,
+ 0x26, 0x46, 0xb4, 0x98, 0x33, 0x64, 0xb3, 0xff, 0xc0, 0x63, 0x59, 0x2c,
+ 0x9b, 0xdd, 0x42, 0x16, 0xdb, 0xbc, 0x23, 0x3d, 0x38, 0xa0, 0x2e, 0x81,
+ 0x80, 0xd1, 0x10, 0x42, 0x1d, 0x4e, 0x52, 0xa3, 0xac, 0x49, 0x97, 0x28,
+ 0xd3, 0x53, 0x01, 0x69, 0x50, 0xf5, 0xff, 0xfe, 0x06, 0x34, 0x4b, 0x33,
+ 0x11, 0xc6, 0xe1, 0xdb, 0x2e, 0xe2, 0xe2, 0x32, 0x0e, 0x86, 0x9c, 0xc9,
+ 0xc1, 0x0c, 0x88, 0xd6, 0x42, 0x19, 0x90, 0xd1, 0xbf, 0x23, 0x41, 0xe8,
+ 0xdd, 0xd2, 0x21, 0xea, 0x60, 0x2d, 0x54, 0x3d, 0x71, 0xfc, 0xf3, 0x09,
+ 0xee, 0x3d, 0x04, 0x25, 0xde, 0x27, 0x8e, 0x73, 0xeb, 0x98, 0x57, 0x7d,
+ 0x75, 0x9b, 0xa2, 0xd5, 0x40, 0xa3, 0x3c, 0x8d, 0xb0, 0x3d, 0xf2, 0x66,
+ 0x64, 0x88, 0x18, 0xa6, 0x4b, 0x20, 0x4a, 0x0b, 0xb5, 0xeb, 0x38, 0x3f,
+ 0x9e, 0x69, 0xee, 0xa2, 0xd4, 0x10, 0x0f, 0x78, 0x9d, 0x1c, 0xe7, 0xd7,
+ 0x30, 0xae, 0xfa, 0xeb, 0x23, 0xb0, 0xb4, 0xf0, 0x1a, 0x36, 0xf2, 0x34,
+ 0x30, 0x92, 0x67, 0x1c, 0x26, 0x03, 0x14, 0xe2, 0x58, 0x04, 0xa0, 0xbb,
+ 0x5e, 0xb3, 0x83, 0xf6, 0x31, 0xcd, 0x30, 0xbb, 0xc7, 0x6c, 0x7b, 0x50,
+ 0x1c, 0xea, 0xaf, 0x6f, 0x7c, 0xc1, 0xa7, 0x0d, 0xa4, 0x21, 0x7d, 0x8b,
+ 0x38, 0x3d, 0xc9, 0x82, 0xc6, 0x63, 0x03, 0xbc, 0x98, 0x02, 0xcd, 0x17,
+ 0x53, 0xce, 0x28, 0x07, 0x06, 0x97, 0x49, 0xa1, 0xf4, 0xe9, 0xf7, 0x65,
+ 0x69, 0x9f, 0x2f, 0x80, 0xf5, 0xe9, 0x9e, 0x06, 0xa5, 0xe8, 0x03, 0x57,
+ 0xa6, 0x6c, 0x29, 0x32, 0xb4, 0x48, 0x80, 0xea, 0x9a, 0x66, 0xea, 0x3b,
+ 0xe6, 0x10, 0x0f, 0x6e, 0x82, 0x01, 0xb6, 0x10, 0x72, 0x7e, 0xff, 0xc0,
+ 0x72, 0x5e, 0x98, 0xf8, 0x60, 0x8d, 0x4d, 0x3a, 0x32, 0x81, 0x8c, 0xd3,
+ 0x0d, 0x96, 0x1e, 0xb2, 0x0e, 0x17, 0x63, 0xf8, 0x59, 0x84, 0x03, 0xdb,
+ 0xa0, 0x80, 0x6e, 0x61, 0xc9, 0xfb, 0xff, 0x01, 0xc9, 0x7a, 0x63, 0xe1,
+ 0x82, 0x35, 0x34, 0xe8, 0xca, 0x06, 0x33, 0x4c, 0x36, 0x58, 0x7a, 0xc8,
+ 0x38, 0x5d, 0x8f, 0xe1, 0x66, 0x10, 0x0d, 0xbf, 0xfb, 0x98, 0x72, 0x7e,
+ 0xf4, 0x7f, 0xc7, 0xcf, 0x32, 0x1d, 0x7e, 0x99, 0x40, 0xc6, 0x69, 0x94,
+ 0x09, 0x01, 0x70, 0x60, 0x76, 0x1a, 0x47, 0x36, 0xdb, 0x6d, 0xfe, 0xf8,
+ 0x74, 0xdd, 0x09, 0x09, 0xc3, 0xa3, 0x1f, 0x3c, 0xc8, 0x75, 0xfa, 0x28,
+ 0xc9, 0x9d, 0xcc, 0xb0, 0x24, 0x05, 0xe0, 0x3b, 0x63, 0x48, 0xe6, 0xd3,
+ 0x6f, 0xfe, 0xf8, 0xd5, 0xb4, 0xc2, 0x5a, 0x0f, 0xe0, 0x87, 0xcf, 0x32,
+ 0x1d, 0x7e, 0x8a, 0x9e, 0x9e, 0xc0, 0x90, 0x17, 0x80, 0xed, 0x8d, 0x23,
+ 0x9b, 0x6f, 0xb7, 0xfb, 0xe1, 0xd3, 0xe8, 0x71, 0x63, 0xf0, 0x68, 0x51,
+ 0x33, 0xc1, 0x8a, 0x4c, 0xed, 0x5c, 0xe1, 0x80, 0xc1, 0xb7, 0x40, 0x14,
+ 0x1a, 0x31, 0xe9, 0xb2, 0x89, 0x09, 0xac, 0x80, 0x03, 0xfc, 0x7b, 0xe0,
+ 0xbb, 0x3a, 0x20, 0xdd, 0x3c, 0xfe, 0x0c, 0x07, 0x15, 0x69, 0x9f, 0xa3,
+ 0xf1, 0xbc, 0x15, 0x0a, 0xa0, 0x28, 0x26, 0x24, 0x1e, 0x18, 0x0c, 0xd6,
+ 0x40, 0x01, 0xc3, 0xc7, 0xbe, 0x0b, 0xb3, 0xa2, 0x1a, 0x4c, 0x7e, 0xac,
+ 0x03, 0x8a, 0xb4, 0xce, 0xf6, 0x3c, 0xb1, 0x06, 0x85, 0x50, 0x03, 0x04,
+ 0x62, 0x41, 0xe1, 0x80, 0xcd, 0x64, 0x00, 0x1c, 0x3f, 0xdf, 0x05, 0xd9,
+ 0xd1, 0x0d, 0x26, 0x3f, 0x56, 0x01, 0xc5, 0x5a, 0x67, 0x7b, 0x1e, 0x58,
+ 0x9a, 0x20, 0xc1, 0x18, 0x90, 0x0d, 0xf3, 0x25, 0x93, 0x36, 0x80, 0x01,
+ 0xf1, 0xf7, 0x19, 0xad, 0xe7, 0x5b, 0x44, 0x5d, 0xe0, 0x0e, 0x56, 0x99,
+ 0xff, 0xf4, 0x7c, 0x18, 0x0f, 0x40, 0xe8, 0xb4, 0x30, 0x12, 0xa4, 0x62,
+ 0x42, 0x66, 0xd0, 0x40, 0x3e, 0x3e, 0x2a, 0x10, 0x37, 0xfd, 0xde, 0xc0,
+ 0x56, 0x78, 0x03, 0x95, 0xa6, 0x7f, 0x83, 0x01, 0x54, 0x0f, 0x83, 0x43,
+ 0x01, 0x2a, 0x4c, 0x48, 0x4c, 0xda, 0x08, 0x07, 0xc7, 0xc5, 0x40, 0x66,
+ 0xef, 0xfb, 0xbd, 0x80, 0xac, 0xf0, 0x07, 0x2b, 0x4c, 0xff, 0x06, 0x02,
+ 0xa8, 0x1d, 0x16, 0x86, 0x02, 0x54, 0x8c, 0x48, 0x4c, 0xd9, 0x24, 0x34,
+ 0xfe, 0xe0, 0x33, 0x77, 0xfd, 0xde, 0xc0, 0x7a, 0x2e, 0x28, 0x71, 0xdc,
+ 0x77, 0x23, 0xbf, 0x5f, 0xaf, 0x4d, 0xe8, 0xfa, 0xc7, 0x04, 0xb8, 0x3f,
+ 0x86, 0x91, 0x30, 0xe4, 0x90, 0xd3, 0xfb, 0x8c, 0x4b, 0x4c, 0xf0, 0x9b,
+ 0x07, 0x88, 0x1c, 0x77, 0x1c, 0x1c, 0x8e, 0xfd, 0x7e, 0xbd, 0x35, 0xa1,
+ 0x80, 0xd1, 0xf8, 0xe8, 0x90, 0x83, 0xf8, 0xd2, 0x26, 0x1c, 0x92, 0x1a,
+ 0x7f, 0x75, 0x12, 0x69, 0x9e, 0x1e, 0x8b, 0x8a, 0x1c, 0x77, 0x1a, 0xb1,
+ 0x22, 0xdf, 0xaf, 0xd7, 0xa6, 0xb4, 0x30, 0x1a, 0x3f, 0x60, 0x50, 0x1f,
+ 0xc3, 0x48, 0x9b, 0x96, 0x9a, 0x60, 0x3d, 0xd4, 0x12, 0x69, 0x9e, 0x1e,
+ 0x8b, 0x8b, 0x01, 0xc5, 0x5a, 0x60, 0x2d, 0x9b, 0xaa, 0xfa, 0xf4, 0xd8,
+ 0x05, 0x47, 0xd8, 0x38, 0x5d, 0x8b, 0x29, 0xb9, 0x6d, 0xf8, 0xf7, 0xf0,
+ 0xe2, 0x4f, 0x5d, 0x6d, 0xd0, 0x71, 0x53, 0x4c, 0x0d, 0x63, 0x7e, 0x9f,
+ 0x44, 0x03, 0x1a, 0xc9, 0x60, 0xd7, 0xd3, 0x20, 0x81, 0xc2, 0xac, 0x67,
+ 0x84, 0xdf, 0xb7, 0xe3, 0xdf, 0xc2, 0x47, 0x27, 0xef, 0x73, 0xc0, 0x71,
+ 0x56, 0x98, 0x03, 0x58, 0xff, 0x4f, 0x96, 0x20, 0x31, 0xac, 0x96, 0x2a,
+ 0xed, 0x33, 0xb0, 0x70, 0xbb, 0x1b, 0x29, 0xb9, 0x6c, 0x3b, 0xe3, 0xdf,
+ 0x8c, 0x25, 0x62, 0x72, 0xed, 0x88, 0x71, 0x26, 0x99, 0x01, 0x76, 0x37,
+ 0x6a, 0x32, 0x1e, 0x82, 0x88, 0x18, 0x58, 0x80, 0x8d, 0x76, 0x99, 0xaa,
+ 0x81, 0xc3, 0xd8, 0xc1, 0x52, 0xd3, 0x3c, 0x41, 0xc2, 0x61, 0xe5, 0x1b,
+ 0x53, 0x36, 0x8c, 0xb9, 0xf8, 0x1f, 0xd5, 0xfb, 0x58, 0x40, 0x65, 0x4f,
+ 0xcf, 0xfc, 0x43, 0x1d, 0x66, 0xd2, 0x46, 0xd4, 0xcd, 0xa2, 0x96, 0x9f,
+ 0x9f, 0xe6, 0x2f, 0x5d, 0xb3, 0x41, 0x4a, 0x4f, 0xcf, 0xff, 0x11, 0x1d,
+ 0x66, 0xd2, 0x46, 0xd4, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d,
+ 0xb3, 0x41, 0x4a, 0x4f, 0xcf, 0xff, 0x11, 0x1d, 0x66, 0xd2, 0x46, 0xd4,
+ 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83, 0x55, 0x6d,
+ 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69, 0xf9, 0xfe,
+ 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32, 0x3c, 0x8a,
+ 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83, 0x55,
+ 0x6d, 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69, 0xf9,
+ 0xfe, 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32, 0x3c,
+ 0x8a, 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1, 0x83,
+ 0x55, 0x6d, 0xff, 0xe2, 0x23, 0x23, 0xc8, 0xa4, 0x5c, 0xda, 0x29, 0x69,
+ 0xf9, 0xfe, 0x62, 0xf5, 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0x32,
+ 0x3c, 0x8a, 0x45, 0xcd, 0xa2, 0x96, 0x9f, 0x9f, 0xe6, 0x2f, 0x5d, 0xb1,
+ 0x83, 0x55, 0x6d, 0xff, 0xe2, 0x2d, 0x05, 0x29, 0x3f, 0x06, 0x57, 0xd1,
+ 0x68, 0xbb, 0xfc, 0xc5, 0xeb, 0xb6, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x45,
+ 0xa0, 0xa5, 0x27, 0xe0, 0xca, 0xfa, 0x2d, 0x17, 0x7f, 0x98, 0xbd, 0x76,
+ 0xc6, 0x0d, 0x55, 0xb7, 0xff, 0x88, 0xb4, 0x14, 0xa4, 0xfc, 0x19, 0x5f,
+ 0x45, 0xa2, 0xef, 0xf3, 0x17, 0xae, 0xd8, 0xc1, 0xaa, 0xb6, 0xff, 0xf1,
+ 0x16, 0x82, 0x94, 0x9f, 0x83, 0x2b, 0xe8, 0xb4, 0x5d, 0xfe, 0x62, 0xf5,
+ 0xdb, 0x18, 0x35, 0x56, 0xdf, 0xfe, 0x22, 0xd0, 0x52, 0x93, 0xf0, 0x65,
+ 0x7d, 0x16, 0x8b, 0xbf, 0xcc, 0x5e, 0xbb, 0x63, 0x06, 0xaa, 0xdb, 0xff,
+ 0xc4, 0x5a, 0x0a, 0x52, 0x7e, 0x0c, 0xaf, 0xa2, 0xd1, 0x77, 0xf9, 0x8b,
+ 0xd7, 0x6c, 0x60, 0xd5, 0x5b, 0x7f, 0xf8, 0x8b, 0x41, 0x4a, 0x4f, 0xc1,
+ 0x95, 0xf4, 0x5a, 0x2e, 0xff, 0x6d, 0x14, 0xb4, 0xfc, 0x30, 0x6a, 0xad,
+ 0xbf, 0xfc, 0x45, 0xa0, 0xa5, 0x27, 0xe0, 0xeb, 0x36, 0x92, 0x36, 0xa6,
+ 0xff, 0x6d, 0x14, 0xb4, 0xfc, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x45, 0xa0,
+ 0xa5, 0x27, 0xe0, 0xeb, 0x36, 0x92, 0x36, 0xa6, 0xff, 0x6d, 0x14, 0xb4,
+ 0xfc, 0x30, 0x6a, 0xad, 0xbf, 0xfc, 0x42, 0x68, 0x32, 0xa7, 0xe3, 0x70,
+ 0xf2, 0x8d, 0xa9, 0xbf, 0xdb, 0x46, 0x5c, 0xfc, 0x91, 0xad, 0xd7, 0xff,
+ 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97,
+ 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xfc, 0xdf, 0xf5, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xa9, 0x47, 0x60, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xd2, 0xf5, 0xeb, 0xe6, 0x3e, 0x01, 0x8e, 0x97, 0x82,
+ 0x15, 0xfd, 0xa1, 0x98, 0x98, 0xaf, 0xff, 0xfd, 0x7f, 0x5e, 0x18, 0x30,
+ 0x2b, 0x48, 0x1e, 0x31, 0xc2, 0xc2, 0x03, 0xe3, 0x0f, 0x4c, 0x72, 0x78,
+ 0x26, 0xa6, 0x7b, 0x00, 0xc7, 0xb9, 0xdf, 0x96, 0xde, 0xbc, 0x99, 0x22,
+ 0x7c, 0x64, 0xb9, 0x62, 0x2b, 0x89, 0xc6, 0x4a, 0x96, 0x82, 0x58, 0x90,
+ 0x0c, 0xee, 0x97, 0xe9, 0x39, 0xc2, 0x32, 0xd3, 0x5d, 0xe7, 0xfa, 0x27,
+ 0x22, 0x27, 0x2e, 0x01, 0x4a, 0x9e, 0x7f, 0x8a, 0xff, 0xaf, 0x5e, 0x48,
+ 0x9a, 0x08, 0x1b, 0x8d, 0x7a, 0xa3, 0xf4, 0x49, 0xed, 0x74, 0x89, 0xe5,
+ 0x83, 0x3f, 0x0c, 0x7e, 0xf7, 0xe2, 0x94, 0xb2, 0xf0, 0x04, 0x32, 0xb0,
+ 0xf9, 0x8f, 0x7e, 0x41, 0xaa, 0x21, 0x57, 0x2c, 0x89, 0xe0, 0x20, 0x7b,
+ 0x40, 0x7e, 0xc8, 0x3f, 0xf9, 0x42, 0x00, 0xd7, 0x5f, 0x7f, 0xf5, 0xeb,
+ 0xc8, 0x22, 0x32, 0x22, 0x0d, 0x00, 0x9d, 0x01, 0xc7, 0x88, 0xee, 0xba,
+ 0x58, 0x67, 0xfb, 0x8f, 0x15, 0xa5, 0x50, 0x07, 0x9a, 0xc7, 0x5b, 0xbe,
+ 0x67, 0xe8, 0x10, 0x81, 0x33, 0x0c, 0x05, 0x3e, 0x9a, 0x7c, 0x27, 0xd0,
+ 0x15, 0x01, 0xf7, 0x8e, 0xd8, 0x62, 0x9e, 0x9f, 0x4a, 0x62, 0xb3, 0x06,
+ 0x07, 0xcf, 0xe8, 0x07, 0x61, 0xde, 0xb1, 0x9d, 0x7a, 0xf5, 0x90, 0xf1,
+ 0x88, 0x7f, 0x5e, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa5,
+ 0x1d, 0x81, 0xcb, 0xae, 0x5d, 0xe3, 0x3e, 0xfe, 0xd7, 0xaf, 0x5e, 0xbd,
+ 0x7a, 0xf5, 0xeb, 0xd7, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xeb, 0xd7, 0xaf,
+ 0x5e, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa7, 0xff,
+ 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff, 0xff, 0xf5, 0xfe, 0x6f,
+ 0xa8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe5, 0x29, 0x01, 0x6f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xaf, 0xff, 0xef, 0x27, 0xcb, 0x15, 0xff, 0xff, 0xff, 0xff, 0xf8,
+ 0x41, 0x10, 0xc9, 0x59, 0x6e, 0x10, 0xd8, 0x81, 0x2b, 0xbb, 0xec, 0x44,
+ 0xdf, 0xe6, 0x74, 0x01, 0x8c, 0x35, 0x98, 0xd0, 0x31, 0x02, 0x66, 0x79,
+ 0x48, 0x6c, 0x81, 0x10, 0xe9, 0xba, 0x21, 0xb4, 0x00, 0x62, 0xc8, 0x26,
+ 0x54, 0xd9, 0xf0, 0x3d, 0x7e, 0x2d, 0xa0, 0x91, 0x80, 0x5a, 0xfd, 0x29,
+ 0x0c, 0x97, 0xf0, 0xaa, 0x4e, 0x96, 0x19, 0x2e, 0x5b, 0x87, 0x42, 0x01,
+ 0x66, 0x24, 0x5b, 0x03, 0x7c, 0x39, 0x66, 0xa0, 0xbb, 0x32, 0x4b, 0x32,
+ 0x12, 0x44, 0x95, 0x79, 0xe2, 0xbf, 0xff, 0xf1, 0x46, 0xc3, 0xb9, 0x6d,
+ 0x64, 0x09, 0xf5, 0x64, 0x3f, 0x16, 0xf9, 0x34, 0x64, 0xd5, 0x86, 0x30,
+ 0x36, 0x86, 0xa6, 0xfd, 0x6c, 0xfa, 0x03, 0x6f, 0xc0, 0x16, 0xf1, 0x0e,
+ 0xa4, 0xcf, 0x2e, 0xf0, 0x11, 0x33, 0xd2, 0x0e, 0xf5, 0xd5, 0x57, 0x5f,
+ 0xcd, 0x9f, 0x6b, 0x95, 0x9e, 0xf7, 0xd8, 0x61, 0x93, 0x3f, 0x31, 0x60,
+ 0x42, 0xdc, 0x7e, 0xec, 0xff, 0x91, 0x61, 0xfd, 0xc7, 0x33, 0x8e, 0xf8,
+ 0x7f, 0xc2, 0x50, 0x0f, 0x51, 0x9c, 0x11, 0x00, 0xcb, 0xe9, 0xf7, 0xff,
+ 0xd3, 0xfe, 0x41, 0xa0, 0x59, 0x07, 0x98, 0x56, 0x03, 0xff, 0xe1, 0x27,
+ 0x8d, 0x44, 0x74, 0xd3, 0xc9, 0x33, 0xd3, 0xd3, 0xfe, 0x25, 0x70, 0x89,
+ 0x00, 0x7d, 0x01, 0x03, 0x51, 0xb0, 0xf4, 0x1b, 0x20, 0x0f, 0x69, 0x9c,
+ 0xda, 0x05, 0xfb, 0x31, 0x81, 0x96, 0x79, 0x3f, 0xff, 0xf1, 0x04, 0x87,
+ 0xb7, 0xae, 0xc1, 0x02, 0x30, 0x35, 0x7f, 0x10, 0x5d, 0xb8, 0xc9, 0xd8,
+ 0x23, 0x7b, 0x6f, 0x9e, 0xd8, 0x13, 0xf6, 0x75, 0xfc, 0xc4, 0x40, 0x1e,
+ 0x1f, 0xe1, 0x24, 0xaf, 0x33, 0x0b, 0xf5, 0x06, 0x30, 0x43, 0x32, 0x90,
+ 0xdc, 0xc1, 0x26, 0x93, 0x3e, 0xf8, 0xff, 0x9f, 0xd7, 0x14, 0x58, 0x34,
+ 0x09, 0xd0, 0x4a, 0x81, 0x2a, 0x09, 0x50, 0x25, 0x41, 0x2a, 0x04, 0xa8,
+ 0x26, 0xfb, 0x5b, 0xd8, 0xdb, 0x0a, 0x6c, 0x38, 0x4c, 0xc0, 0xf8, 0x42,
+ 0x85, 0xbc, 0x32, 0x8b, 0x2f, 0x5e, 0x3b, 0xd8, 0x4f, 0x1a, 0x4c, 0xfe,
+ 0x8e, 0xc7, 0xf6, 0x38, 0x08, 0xda, 0xb6, 0xff, 0x35, 0xac, 0x5c, 0xad,
+ 0xf8, 0x9c, 0x3a, 0x49, 0x8a, 0xe1, 0x39, 0xcf, 0x81, 0x16, 0xf3, 0xd2,
+ 0xf0, 0xe4, 0xf1, 0x9f, 0x13, 0x13, 0x88, 0xf0, 0xa4, 0x9f, 0x8c, 0xfb,
+ 0xaf, 0x6f, 0x3f, 0xff, 0xfc, 0x4c, 0xbf, 0x11, 0xfe, 0x36, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0x94, 0xa4, 0x08, 0x5f, 0x27, 0xf0, 0x79, 0xff,
+ 0xfe, 0x27, 0xc4, 0x7f, 0xbf, 0x2f, 0x9f, 0xf8, 0x3d, 0xbf, 0xfa, 0xfa,
+ 0x80, 0x81, 0xf3, 0xf8, 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1e,
+ 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0xde, 0x2b, 0xff, 0xc3, 0xe6,
+ 0x80, 0x5f, 0x4a, 0x03, 0x51, 0x17, 0xe6, 0x1e, 0x10, 0x0f, 0xf8, 0x79,
+ 0x07, 0x06, 0x53, 0xda, 0x0b, 0xf0, 0x30, 0x3c, 0xa7, 0xc7, 0x6f, 0xf9,
+ 0xb0, 0x07, 0x7f, 0xfe, 0x12, 0xc0, 0x06, 0x53, 0x74, 0xc6, 0xd1, 0x47,
+ 0xca, 0x9d, 0x9c, 0x80, 0x69, 0xc7, 0x17, 0x91, 0x00, 0xc4, 0x5f, 0xe0,
+ 0x3d, 0x00, 0x48, 0xe2, 0x22, 0x71, 0x1f, 0x80, 0xc1, 0xcd, 0x1f, 0xff,
+ 0xe1, 0x31, 0xc0, 0x13, 0xad, 0x85, 0xe4, 0xbd, 0xb1, 0x04, 0xc9, 0x09,
+ 0x93, 0x33, 0xc7, 0x01, 0xe4, 0x24, 0x4c, 0xe2, 0x2f, 0x11, 0xe2, 0x3c,
+ 0x47, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe2, 0x3c, 0x47,
+ 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78, 0x8f, 0x11, 0xe1, 0x4c, 0x04, 0xbe,
+ 0xe0, 0x3c, 0xde, 0x7c, 0x01, 0xab, 0xa4, 0xdf, 0x3d, 0xff, 0x81, 0xd1,
+ 0x16, 0xe7, 0x84, 0xe5, 0x0f, 0x5b, 0x6d, 0xb6, 0x07, 0x9b, 0xc2, 0x04,
+ 0x65, 0xb9, 0xb2, 0x1f, 0x0e, 0x23, 0x2d, 0xcd, 0x90, 0xfc, 0xf1, 0x39,
+ 0xfc, 0xfe, 0x7f, 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xfc, 0xfe, 0x7f,
+ 0x3f, 0x9f, 0xcf, 0xe7, 0xf3, 0xf9, 0xff, 0x01, 0x01, 0xff, 0xff, 0xff,
+ 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x5f, 0xff, 0x9b, 0xfe, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xa9, 0x89, 0x60, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xd7, 0xfd, 0xe6, 0x3f, 0x00, 0x57, 0x7d, 0x71, 0xe8, 0x66, 0x26,
+ 0x2b, 0xff, 0xff, 0xef, 0xdf, 0xc5, 0x04, 0x8c, 0x08, 0x12, 0x01, 0x89,
+ 0x48, 0x2e, 0x35, 0x6e, 0xb0, 0xe0, 0x2c, 0xc3, 0x51, 0xf9, 0xb9, 0x5f,
+ 0xc1, 0x2c, 0x58, 0x4d, 0xfa, 0x8f, 0x7f, 0xe0, 0x33, 0xef, 0x47, 0x03,
+ 0xde, 0x32, 0x7e, 0x45, 0x03, 0xdf, 0xe2, 0xbf, 0xef, 0xdf, 0x86, 0x3f,
+ 0x5c, 0x60, 0x1e, 0x2c, 0x9c, 0x12, 0x3d, 0x80, 0x87, 0xfa, 0xe7, 0x72,
+ 0xfc, 0xeb, 0x29, 0x93, 0x3f, 0x3b, 0xfe, 0xfc, 0x30, 0x2b, 0xb8, 0x87,
+ 0xc8, 0x43, 0x12, 0xeb, 0x83, 0x6c, 0x94, 0x23, 0x6b, 0x7e, 0x65, 0x42,
+ 0x23, 0xf8, 0xd5, 0x2b, 0x93, 0xfe, 0xff, 0x86, 0x38, 0x61, 0xfe, 0x10,
+ 0x92, 0xc1, 0x0f, 0xbb, 0x13, 0x59, 0x78, 0x20, 0xd7, 0x63, 0xe8, 0x33,
+ 0x2e, 0x18, 0xb4, 0x07, 0xc9, 0xbf, 0x09, 0xfd, 0x8f, 0x1c, 0x4d, 0xd6,
+ 0x3b, 0x60, 0x97, 0x02, 0x3d, 0xe9, 0x77, 0xff, 0xf3, 0x3a, 0x1e, 0x16,
+ 0xb2, 0xc1, 0x05, 0xb2, 0x17, 0x93, 0xcf, 0xad, 0x63, 0x3b, 0xf0, 0xcc,
+ 0xf8, 0x6b, 0xc3, 0x5e, 0x1a, 0xe3, 0xa0, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xa6, 0x25, 0x80, 0x82, 0xef, 0x97, 0x79, 0x73, 0xfd, 0xfd, 0x77,
+ 0xef, 0xdf, 0x86, 0xbd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x0d, 0x78, 0x6b,
+ 0xc3, 0x5e, 0xfd, 0xfb, 0xf0, 0xc3, 0xff, 0xff, 0x87, 0xa3, 0xf9, 0x7e,
+ 0x1b, 0xf0, 0xdf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd,
+ 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe6, 0x31, 0x03, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0x7f, 0xff, 0xf5, 0xcc, 0x7e, 0x01, 0x33, 0x5d, 0x22, 0xee, 0x7e, 0x5f,
+ 0x57, 0x0d, 0x5c, 0x6a, 0xc3, 0x73, 0xbc, 0xcf, 0x82, 0x5f, 0x8a, 0xb6,
+ 0xf0, 0xac, 0x5a, 0xc4, 0x5f, 0x9c, 0x7f, 0x00, 0x93, 0x69, 0xe8, 0xff,
+ 0xea, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xff, 0xf8, 0xa0, 0x86, 0x97, 0x0a,
+ 0xba, 0xd0, 0xd4, 0x78, 0x5d, 0x7f, 0x19, 0xca, 0x08, 0xba, 0x84, 0x48,
+ 0x8f, 0x2e, 0xb3, 0x08, 0xa5, 0x32, 0x0a, 0x54, 0x8f, 0x76, 0x22, 0xac,
+ 0xec, 0x1c, 0x61, 0x25, 0x4f, 0x33, 0x36, 0x2f, 0x52, 0xd9, 0x7f, 0xc2,
+ 0x2c, 0x68, 0x4b, 0xd0, 0x20, 0x17, 0xa8, 0x62, 0xe3, 0xee, 0x5a, 0xb2,
+ 0xb3, 0x8d, 0x55, 0xa1, 0x4c, 0x68, 0x16, 0xb0, 0x35, 0xe3, 0x11, 0xb2,
+ 0x19, 0xfd, 0xb6, 0x62, 0xef, 0x65, 0xca, 0x74, 0xc0, 0xd8, 0x38, 0x24,
+ 0xe5, 0x24, 0x31, 0xcb, 0x60, 0x20, 0x2d, 0xe8, 0xe5, 0xde, 0xa3, 0x67,
+ 0x68, 0xea, 0xf7, 0x81, 0xbb, 0x68, 0x02, 0xd3, 0x48, 0x2a, 0x1a, 0xc7,
+ 0xa4, 0x1a, 0xa3, 0xcc, 0x22, 0x33, 0xcb, 0x22, 0x16, 0x57, 0x0b, 0x2c,
+ 0x1c, 0x88, 0xcf, 0x2d, 0x40, 0x50, 0x81, 0x46, 0x24, 0x5f, 0xc2, 0x6d,
+ 0x8a, 0x95, 0x8a, 0x88, 0xbb, 0x5e, 0xc3, 0x81, 0x18, 0x45, 0x40, 0xf8,
+ 0x7f, 0xe8, 0x3f, 0x15, 0xff, 0xff, 0x8b, 0x34, 0x02, 0x16, 0xea, 0x71,
+ 0xef, 0xcf, 0xf0, 0x88, 0x78, 0x08, 0xf7, 0xef, 0x9e, 0x43, 0xcb, 0xac,
+ 0xf1, 0x6e, 0x10, 0x33, 0x6b, 0x4a, 0xba, 0x43, 0x0a, 0x06, 0x20, 0x82,
+ 0xc4, 0xb6, 0xb9, 0xbf, 0x10, 0x93, 0x30, 0x7b, 0xf0, 0x03, 0x03, 0xca,
+ 0xf8, 0xed, 0x8b, 0x48, 0xe2, 0x81, 0x3f, 0x0b, 0x18, 0x53, 0xc8, 0xbc,
+ 0xe7, 0xc1, 0x9f, 0x82, 0x14, 0x6a, 0xb1, 0xce, 0xa2, 0xc1, 0x8a, 0x7f,
+ 0x20, 0x98, 0xdd, 0xf3, 0x08, 0x82, 0x46, 0xc0, 0x5e, 0xfc, 0xf8, 0x85,
+ 0xc3, 0x31, 0x2c, 0x48, 0x00, 0x13, 0x77, 0x18, 0xef, 0xfb, 0x82, 0x6d,
+ 0x81, 0xbd, 0x62, 0xb0, 0xf3, 0xfe, 0x31, 0xa8, 0x66, 0x2b, 0xe2, 0xf0,
+ 0x8f, 0x05, 0x95, 0x55, 0x55, 0xae, 0x62, 0xaa, 0xe1, 0xf5, 0x31, 0x38,
+ 0x27, 0xe1, 0xeb, 0x84, 0x07, 0x7e, 0xa3, 0xdd, 0x00, 0x9f, 0x60, 0x6b,
+ 0xc4, 0x42, 0xf4, 0x07, 0xe1, 0x7c, 0xcd, 0xff, 0x9f, 0xe0, 0x80, 0xbf,
+ 0x02, 0x1f, 0xe0, 0x7e, 0xf6, 0x7b, 0xff, 0xff, 0xc8, 0x2a, 0x0b, 0xf0,
+ 0x0e, 0xf7, 0x61, 0x11, 0xaf, 0xfc, 0x41, 0x74, 0xd2, 0x81, 0xe2, 0xb3,
+ 0x77, 0x1e, 0xd4, 0x25, 0x6b, 0xa9, 0x43, 0x7a, 0xe6, 0x8f, 0x87, 0xfe,
+ 0x12, 0x41, 0xf4, 0xd0, 0x33, 0x1e, 0x56, 0xa0, 0xfc, 0x01, 0x14, 0xd0,
+ 0x33, 0x1c, 0xd5, 0xa8, 0x01, 0x14, 0xd0, 0x33, 0x14, 0xd5, 0xab, 0xc3,
+ 0x9f, 0x94, 0xa1, 0xb8, 0x7f, 0x3f, 0x41, 0x3f, 0xf6, 0x3b, 0x1f, 0xd8,
+ 0xec, 0x71, 0x11, 0x39, 0xbf, 0xff, 0xbc, 0x10, 0x9b, 0x00, 0x0c, 0xdb,
+ 0xfe, 0x57, 0xcb, 0xed, 0x54, 0x7b, 0x08, 0xfd, 0xf3, 0xa6, 0x33, 0x9f,
+ 0x93, 0x88, 0x9d, 0x31, 0x6b, 0xc3, 0x28, 0x3f, 0x0c, 0x03, 0xd5, 0xfc,
+ 0x51, 0x99, 0xfc, 0x00, 0x86, 0x34, 0xb4, 0x3e, 0xc6, 0xbd, 0x97, 0x23,
+ 0x43, 0xf6, 0x08, 0x11, 0xf8, 0x05, 0x91, 0x5a, 0x97, 0xa3, 0x77, 0xaa,
+ 0xbc, 0x31, 0x36, 0xbb, 0xdf, 0xdf, 0xef, 0xe3, 0xbd, 0x9f, 0xcd, 0xff,
+ 0xdc, 0x9c, 0xb1, 0x9e, 0x01, 0x28, 0xa4, 0x6d, 0x57, 0x98, 0x04, 0xa2,
+ 0x91, 0xb5, 0x5e, 0x05, 0xfb, 0xdf, 0x09, 0x1b, 0x9c, 0x00, 0x7f, 0xfc,
+ 0xb3, 0x10, 0x7e, 0x1e, 0x91, 0x7c, 0x5e, 0x02, 0xf3, 0x49, 0xdd, 0xf9,
+ 0x7f, 0x84, 0xb0, 0x02, 0x18, 0xd2, 0xe1, 0xf6, 0x35, 0xec, 0x19, 0x77,
+ 0x4f, 0x27, 0xef, 0xfa, 0x06, 0xff, 0x7d, 0x11, 0xbd, 0xc8, 0x3f, 0x8f,
+ 0xe6, 0xcc, 0xa2, 0x3c, 0x22, 0x1e, 0x24, 0x85, 0x80, 0x33, 0x0e, 0xbe,
+ 0x6b, 0x6f, 0xfb, 0xf7, 0xdf, 0xff, 0x7f, 0xe0, 0xc3, 0xf0, 0x12, 0x31,
+ 0xd0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0x98, 0xc4, 0x57, 0xfc, 0xbe,
+ 0xfc, 0x67, 0xfd, 0xff, 0xdf, 0x8d, 0xe4, 0x34, 0x10, 0xe9, 0xff, 0xbf,
+ 0xed, 0x24, 0x45, 0x2a, 0x08, 0xdf, 0xf0, 0x3f, 0x7e, 0x7f, 0xf8, 0x8c,
+ 0x12, 0xec, 0xf4, 0x3b, 0x42, 0x61, 0x3e, 0x2d, 0xcb, 0x97, 0xb3, 0x0d,
+ 0x85, 0xed, 0x8c, 0xe2, 0x2c, 0xb4, 0x88, 0xf1, 0x1e, 0x23, 0xc4, 0x78,
+ 0x8f, 0x11, 0xe2, 0x3c, 0x47, 0x88, 0xf1, 0x1f, 0xff, 0xff, 0xff, 0xff,
+ 0xf9, 0xb3, 0x7f, 0xc4, 0x94, 0xff, 0xcf, 0xfc, 0x29, 0xff, 0xff, 0xfe,
+ 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xe1, 0x48, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xa9, 0xcb, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xd3, 0xf7, 0xef, 0xd1, 0x7a, 0x2e, 0x2b,
+ 0xff, 0xff, 0x7f, 0xdf, 0xa2, 0x45, 0x20, 0x06, 0x52, 0xbb, 0xda, 0x76,
+ 0xa2, 0xbe, 0x01, 0x71, 0xc1, 0x5b, 0x3e, 0x00, 0x26, 0x72, 0xb1, 0xff,
+ 0xbc, 0x96, 0xbd, 0x6b, 0x8b, 0xc7, 0x70, 0x1c, 0x30, 0x1f, 0xf7, 0xfc,
+ 0x26, 0x24, 0x07, 0x13, 0x92, 0x66, 0x3a, 0x89, 0x3d, 0x55, 0xde, 0xfe,
+ 0x24, 0x1c, 0xb6, 0x5e, 0xec, 0xf7, 0x15, 0xff, 0x7e, 0xfd, 0x63, 0x17,
+ 0x0c, 0x26, 0x96, 0xec, 0x80, 0x4b, 0x74, 0x46, 0x65, 0xe1, 0x6f, 0xfc,
+ 0xd9, 0xe0, 0x14, 0xca, 0xed, 0xdc, 0xa2, 0x97, 0x04, 0xb7, 0xc3, 0x60,
+ 0xc4, 0x99, 0x9a, 0xbb, 0x3a, 0x47, 0x7e, 0xfd, 0xfb, 0xf0, 0xc1, 0x55,
+ 0x70, 0xfa, 0x9c, 0x62, 0xde, 0x93, 0x01, 0x57, 0xe0, 0x46, 0x13, 0xd0,
+ 0xe6, 0xab, 0xbf, 0xfb, 0xf7, 0xe4, 0xe0, 0x7c, 0x10, 0x41, 0xb1, 0xde,
+ 0x67, 0xc9, 0xc7, 0xfe, 0x04, 0xcd, 0xdd, 0x7f, 0x82, 0x44, 0x88, 0x50,
+ 0x3d, 0xde, 0x0c, 0x9e, 0xf0, 0xf9, 0x09, 0x13, 0x23, 0x54, 0x9c, 0x79,
+ 0xf4, 0x19, 0x97, 0x98, 0xbc, 0x02, 0x3d, 0x7d, 0xb4, 0x31, 0xe4, 0xec,
+ 0x24, 0x44, 0x45, 0xe2, 0x49, 0xc1, 0x33, 0xdb, 0x46, 0x00, 0x0d, 0x73,
+ 0x3b, 0x96, 0x61, 0x39, 0xe8, 0x0f, 0x10, 0x00, 0x4c, 0x00, 0x7f, 0xd7,
+ 0x1d, 0xb7, 0xe1, 0x8f, 0x22, 0x2c, 0x88, 0xbe, 0x09, 0xbe, 0x00, 0x40,
+ 0x93, 0xf8, 0x10, 0xe3, 0xe6, 0x02, 0x07, 0x60, 0x84, 0xc9, 0x8c, 0x7d,
+ 0xae, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa7, 0x2d, 0x81,
+ 0x0b, 0xe5, 0xde, 0x33, 0xef, 0xef, 0x1a, 0xfd, 0xfb, 0xe5, 0x7e, 0xfd,
+ 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xff, 0xff, 0xff, 0xfc,
+ 0x29, 0xff, 0xf8, 0x43, 0xff, 0xff, 0xf9, 0xbf, 0xcb, 0xff, 0xff, 0xfd,
+ 0x7f, 0x9b, 0xea, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xe7, 0x39, 0x06, 0xf3,
+ 0x61, 0x2f, 0x1e, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x5c, 0x30, 0x81,
+ 0xe1, 0xff, 0x94, 0x4e, 0x02, 0x0f, 0xd9, 0xbc, 0xe7, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xae, 0x6f, 0x0d, 0x29, 0xc7, 0x8b,
+ 0xe9, 0xd0, 0x3e, 0x2d, 0x1b, 0xc0, 0x21, 0xdf, 0x5b, 0xef, 0xff, 0x9b,
+ 0xc0, 0x0c, 0x22, 0xd1, 0x96, 0xbf, 0xdf, 0xde, 0xb0, 0xcc, 0xaf, 0x0a,
+ 0x32, 0xf5, 0x9c, 0x21, 0xff, 0x6f, 0x8a, 0xff, 0xf9, 0x85, 0x35, 0x61,
+ 0x8f, 0x01, 0xd7, 0xff, 0xff, 0x15, 0xa1, 0x81, 0xf7, 0x54, 0x3b, 0x2a,
+ 0xe2, 0x7f, 0x8c, 0xe3, 0x48, 0x5c, 0x3a, 0xdc, 0x08, 0x0a, 0xe0, 0xc9,
+ 0xb5, 0xd8, 0x7a, 0xe0, 0x6b, 0xc1, 0x67, 0x40, 0x63, 0xa0, 0x7b, 0x06,
+ 0x08, 0xbc, 0xbd, 0x67, 0xf8, 0x45, 0x93, 0x48, 0x10, 0x17, 0x68, 0x60,
+ 0x28, 0x60, 0x88, 0x6c, 0xb8, 0x44, 0xff, 0xf7, 0x64, 0x78, 0x7d, 0x3b,
+ 0x73, 0x1a, 0x04, 0x9e, 0xec, 0xce, 0x48, 0xab, 0xb2, 0x00, 0x0c, 0xf7,
+ 0xe9, 0xa6, 0x37, 0x7f, 0xd9, 0xbb, 0xdf, 0x1c, 0x6f, 0x69, 0x9c, 0x18,
+ 0x63, 0x4a, 0xf1, 0x55, 0xfe, 0x75, 0x5e, 0x74, 0x20, 0x89, 0xa6, 0xfa,
+ 0xc0, 0xc7, 0x27, 0x9e, 0xa5, 0xef, 0xe9, 0x1d, 0x55, 0x8b, 0x2a, 0xed,
+ 0xf0, 0x16, 0xc4, 0x9c, 0x34, 0x03, 0x37, 0x84, 0x6f, 0x21, 0x70, 0xf3,
+ 0x45, 0x28, 0x9f, 0x80, 0xf1, 0xe1, 0x1a, 0x5b, 0x8f, 0xa7, 0xa4, 0xff,
+ 0x42, 0xeb, 0xd7, 0x2e, 0x84, 0x54, 0xf0, 0x91, 0x5f, 0x9a, 0x6c, 0xfe,
+ 0xd3, 0xfc, 0x26, 0x2f, 0xbb, 0xf4, 0xe8, 0xe6, 0x80, 0x00, 0x40, 0x3c,
+ 0x1c, 0xec, 0x40, 0x21, 0xee, 0x88, 0x87, 0xf4, 0xdf, 0x46, 0x2d, 0x14,
+ 0x3b, 0x6f, 0x6d, 0x8b, 0xdb, 0xdf, 0x1f, 0xf0, 0x3f, 0xc5, 0xe2, 0xbf,
+ 0xff, 0xf0, 0x89, 0xb0, 0x91, 0x9d, 0xe2, 0x02, 0x03, 0xaf, 0xb9, 0xf7,
+ 0x5b, 0x43, 0xe8, 0x1d, 0x5e, 0x8e, 0x00, 0x28, 0x10, 0x0c, 0x8d, 0xf3,
+ 0xfe, 0xf7, 0x50, 0x0c, 0x9e, 0x5f, 0xe6, 0x63, 0xe1, 0x42, 0x8a, 0x1c,
+ 0x35, 0xc0, 0xe6, 0xfc, 0x54, 0x88, 0x05, 0xdd, 0x56, 0xfc, 0x00, 0xc0,
+ 0xf5, 0x7c, 0x76, 0xc5, 0x83, 0x0c, 0x3a, 0xa9, 0xc0, 0x33, 0x34, 0xea,
+ 0x1f, 0xf3, 0xf8, 0xc1, 0x0a, 0x2b, 0x66, 0x00, 0x6a, 0x10, 0x89, 0x2e,
+ 0xc0, 0x0e, 0x80, 0x89, 0x12, 0xf4, 0x07, 0xae, 0x8b, 0x7d, 0x30, 0xfe,
+ 0xc6, 0x6e, 0xfe, 0xec, 0xb3, 0x08, 0x9f, 0x3f, 0x1b, 0x1a, 0x87, 0xf9,
+ 0xe2, 0xab, 0x09, 0xeb, 0x61, 0xbd, 0x5c, 0xe6, 0xe3, 0xd0, 0x79, 0x09,
+ 0x8d, 0xc4, 0x72, 0x73, 0x08, 0xb4, 0x00, 0xcf, 0xaa, 0xff, 0xf7, 0xfb,
+ 0x95, 0xf2, 0x29, 0xc3, 0x01, 0x09, 0xdc, 0x1b, 0xfd, 0xfe, 0xe1, 0xc4,
+ 0x33, 0x34, 0xc8, 0x0f, 0x6e, 0xfc, 0x43, 0x8c, 0x07, 0x00, 0xf4, 0x30,
+ 0x62, 0x1c, 0x03, 0xfe, 0x13, 0xe0, 0x24, 0x7a, 0xcf, 0xe7, 0xf5, 0x46,
+ 0x04, 0x2d, 0x66, 0x97, 0xf4, 0x0f, 0xd8, 0x1f, 0xdf, 0xf8, 0x82, 0x04,
+ 0x7d, 0xe7, 0x1f, 0xe4, 0xbf, 0x26, 0x11, 0xe7, 0x9d, 0xfe, 0x21, 0x60,
+ 0x81, 0xe5, 0xff, 0xb4, 0x24, 0xba, 0x80, 0xfb, 0x64, 0xbc, 0x10, 0xb6,
+ 0xb7, 0xf7, 0xe2, 0xf1, 0x05, 0xc7, 0x8a, 0x99, 0xa3, 0x97, 0xd4, 0xb8,
+ 0x72, 0xf0, 0x01, 0x80, 0xcc, 0xc8, 0x0e, 0xbb, 0x97, 0xc7, 0x84, 0x90,
+ 0xc8, 0x08, 0xad, 0x87, 0x21, 0x29, 0x27, 0x84, 0x92, 0xe3, 0xdd, 0xcf,
+ 0xfe, 0x19, 0xc0, 0xab, 0x5a, 0x6a, 0x67, 0x77, 0xf1, 0x50, 0xde, 0x17,
+ 0x98, 0xb1, 0xf7, 0x57, 0x36, 0xca, 0xd2, 0xce, 0xf4, 0x51, 0x98, 0xef,
+ 0xb4, 0x47, 0x5f, 0x78, 0x33, 0xf1, 0xc5, 0x80, 0x33, 0xea, 0xbf, 0xfd,
+ 0xff, 0x18, 0x49, 0x5f, 0xbe, 0x04, 0xc7, 0xbf, 0xe1, 0xd6, 0x0c, 0x72,
+ 0x47, 0x7c, 0x0b, 0xb1, 0x3c, 0xaf, 0x42, 0x22, 0x73, 0x19, 0xd3, 0x0c,
+ 0x73, 0xa6, 0x09, 0xc4, 0x0e, 0x87, 0xe2, 0x0f, 0xc0, 0xfd, 0xe7, 0x01,
+ 0x5f, 0x72, 0xf0, 0xff, 0xb5, 0xc0, 0x11, 0x2e, 0xd1, 0x67, 0xc9, 0x7b,
+ 0x73, 0x76, 0x6f, 0xfb, 0xfc, 0x77, 0x15, 0x87, 0x7d, 0x01, 0xef, 0x55,
+ 0x81, 0xf6, 0xf8, 0x67, 0x7c, 0x0f, 0xf4, 0xfb, 0xf9, 0xe2, 0x73, 0xf9,
+ 0xbe, 0x90, 0xfe, 0x11, 0x82, 0xbc, 0x02, 0xfa, 0xa0, 0x3e, 0xa0, 0x43,
+ 0x82, 0x97, 0x3d, 0x06, 0x9e, 0xc0, 0x70, 0x4c, 0x3a, 0xa5, 0xb8, 0x60,
+ 0x7d, 0x5f, 0x1d, 0xc0, 0x01, 0x5a, 0xda, 0x5f, 0x5e, 0xd7, 0x1e, 0xf2,
+ 0xc3, 0xb9, 0x9c, 0x31, 0x07, 0xa0, 0xe8, 0x6c, 0x29, 0x28, 0x00, 0x24,
+ 0xd2, 0x69, 0xa6, 0x9a, 0x6d, 0x3f, 0x80, 0x28, 0x26, 0x46, 0x02, 0x0a,
+ 0x41, 0xb6, 0xaf, 0xff, 0xcc, 0x3d, 0xc7, 0xff, 0x87, 0xc8, 0x00, 0x18,
+ 0x2b, 0x2f, 0xd3, 0x1c, 0x5e, 0x07, 0x0f, 0x35, 0xf7, 0x1f, 0xfe, 0x12,
+ 0x2c, 0x01, 0xa5, 0x49, 0x4f, 0xcf, 0xf3, 0xc7, 0x40, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0x9c, 0xe4, 0x09, 0x5c, 0x86, 0x82, 0x07, 0x8c, 0x53,
+ 0xf9, 0x50, 0x6a, 0x6d, 0x78, 0xcd, 0x45, 0xf7, 0xe3, 0x3f, 0xcb, 0xe0,
+ 0x41, 0xfc, 0xcf, 0xb0, 0xb0, 0xcf, 0xff, 0x7e, 0x37, 0x91, 0xc1, 0x26,
+ 0x87, 0xa8, 0xfe, 0xd2, 0x44, 0xa3, 0x7f, 0xe4, 0x8c, 0x0f, 0xd4, 0x71,
+ 0x37, 0xf9, 0x79, 0x4d, 0x8c, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xe0, 0x93, 0xe0, 0x76, 0xaf,
+ 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xfc,
+ 0xa4, 0x78, 0x46, 0xe3, 0x36, 0x20, 0x3f, 0x36, 0x10, 0x72, 0x7e, 0x86,
+ 0xaf, 0xf5, 0xb0, 0xb1, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
+ 0x0d, 0x60, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff,
+ 0xeb, 0xfe, 0x18, 0xff, 0xd4, 0x38, 0x42, 0xa7, 0xc0, 0x11, 0x4d, 0x33,
+ 0x84, 0xff, 0x8f, 0xc0, 0x07, 0x6c, 0x89, 0x8c, 0x80, 0xa9, 0x33, 0x57,
+ 0x8b, 0xc4, 0x1b, 0x11, 0x8a, 0xff, 0xff, 0xff, 0xe1, 0x83, 0x40, 0xc1,
+ 0x6c, 0xce, 0x4d, 0x5d, 0x8a, 0x33, 0xfb, 0x66, 0x62, 0xbc, 0x93, 0x86,
+ 0xcb, 0xdb, 0xa6, 0x34, 0xc9, 0xc7, 0x8b, 0xe4, 0x43, 0xac, 0xdd, 0x52,
+ 0x69, 0xe8, 0xcf, 0xf3, 0xd8, 0x03, 0x76, 0xd0, 0x05, 0xaf, 0x20, 0x6a,
+ 0xe7, 0x72, 0x60, 0x62, 0x4f, 0x35, 0x6f, 0x3d, 0x2c, 0xbd, 0x48, 0xc3,
+ 0x05, 0x4f, 0xb4, 0xbf, 0x09, 0x8b, 0x00, 0x67, 0x98, 0x1c, 0x3c, 0x9d,
+ 0xcf, 0x9f, 0x2a, 0x81, 0xe9, 0x7f, 0x7e, 0xbe, 0xbd, 0xb3, 0x1a, 0xf4,
+ 0x7f, 0xef, 0xb3, 0xfa, 0x51, 0x5f, 0xff, 0xc3, 0x1c, 0x78, 0x01, 0xa3,
+ 0xea, 0x91, 0x66, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf0, 0x93, 0x78, 0x93,
+ 0x50, 0x02, 0x73, 0xb9, 0x20, 0x91, 0x8b, 0x50, 0x02, 0x33, 0x73, 0x9a,
+ 0xd5, 0xe5, 0x17, 0xc2, 0x49, 0x1c, 0x36, 0xb6, 0x48, 0xdf, 0x9e, 0x71,
+ 0x26, 0xe0, 0x05, 0x26, 0x93, 0xf3, 0xff, 0xff, 0xdf, 0xff, 0xf0, 0xc5,
+ 0x50, 0x58, 0x1c, 0x47, 0xfc, 0x24, 0xc2, 0x59, 0x9c, 0x44, 0x66, 0x97,
+ 0x68, 0x1a, 0x18, 0x9b, 0xd5, 0x0f, 0xa7, 0xe3, 0xc5, 0x95, 0x2c, 0x67,
+ 0x10, 0x93, 0x2a, 0xdc, 0xfc, 0x31, 0x9f, 0x5a, 0x66, 0x61, 0x9d, 0xf2,
+ 0x8b, 0xff, 0x80, 0x73, 0xeb, 0x78, 0xed, 0xf0, 0xc7, 0xff, 0xee, 0xf0,
+ 0xa9, 0x78, 0x04, 0xa2, 0x91, 0xb5, 0x5e, 0x62, 0xb6, 0xe9, 0xe1, 0xf3,
+ 0x3c, 0xd6, 0xd7, 0xff, 0xf5, 0x86, 0x3f, 0xee, 0x22, 0xe3, 0xc6, 0x78,
+ 0x01, 0x08, 0x7b, 0x44, 0x3a, 0x83, 0xf0, 0x04, 0xa2, 0x91, 0xb5, 0x5e,
+ 0x0a, 0xdb, 0xa7, 0x87, 0xcc, 0xf0, 0x7e, 0xd6, 0xd7, 0xff, 0xf5, 0x0f,
+ 0xf5, 0x88, 0x42, 0x80, 0x01, 0xf8, 0xa0, 0x00, 0x20, 0x03, 0x19, 0xb5,
+ 0x81, 0xd1, 0x57, 0xfa, 0x1b, 0xad, 0xb6, 0xdf, 0x80, 0x04, 0x21, 0xee,
+ 0x21, 0xd0, 0x28, 0xfc, 0x31, 0x3b, 0x6d, 0xb6, 0x9e, 0x0f, 0xc7, 0x64,
+ 0x0c, 0x38, 0xc0, 0x7f, 0xfc, 0x3c, 0x70, 0x09, 0x5d, 0x27, 0x5f, 0xfd,
+ 0x23, 0x37, 0xf1, 0xf0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xa8, 0x35,
+ 0x8a, 0xef, 0x97, 0x78, 0xce, 0xfb, 0xfb, 0xc6, 0xf7, 0xf9, 0x5f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x0a, 0x7f, 0xfe, 0x10, 0xff,
+ 0xff, 0xfe, 0x6e, 0xfd, 0xf2, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xe8, 0x41, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4,
+ 0x14, 0xa2, 0x70, 0x10, 0xbf, 0x40, 0x7d, 0xf6, 0x2f, 0x15, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0x28, 0x60, 0x02, 0x26, 0x63, 0x9a, 0x6d, 0xa1,
+ 0x1a, 0x66, 0xc3, 0xe3, 0xa0, 0x05, 0xb6, 0x96, 0x09, 0x9e, 0x38, 0xc5,
+ 0xc6, 0x38, 0xdd, 0x08, 0xdf, 0x4b, 0xca, 0x24, 0x5c, 0x81, 0xbf, 0x05,
+ 0x99, 0x9e, 0x18, 0x79, 0xed, 0xcc, 0xaf, 0xf7, 0x3f, 0xd3, 0x82, 0x17,
+ 0xc0, 0xe0, 0xb1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x64, 0xa9,
+ 0x6b, 0x37, 0x00, 0x51, 0xd1, 0x0e, 0xa3, 0xf3, 0x6c, 0x1d, 0x5b, 0xf3,
+ 0xc0, 0x55, 0x27, 0x27, 0xe1, 0x46, 0x80, 0x26, 0x84, 0xa3, 0x2e, 0xeb,
+ 0x91, 0x60, 0x7a, 0xe0, 0xd9, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0xa9, 0xe4,
+ 0xe8, 0xb0, 0x1e, 0xbc, 0x4c, 0xa8, 0x0f, 0x63, 0x8e, 0xe7, 0xff, 0xff,
+ 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf1, 0x0c, 0x4d, 0xf8, 0x3d, 0x7a, 0x2c,
+ 0x3f, 0x20, 0x68, 0xd2, 0xc4, 0x0e, 0x11, 0xfb, 0xd3, 0xef, 0xcf, 0xeb,
+ 0xdf, 0x8e, 0xf7, 0xed, 0x61, 0x90, 0x2c, 0xc7, 0x7b, 0xc4, 0xe6, 0x0a,
+ 0xae, 0xbf, 0x15, 0xe2, 0x8b, 0xb0, 0x20, 0x05, 0xbf, 0x5c, 0x7b, 0xf2,
+ 0xf2, 0x9d, 0xf8, 0x05, 0x1f, 0xf0, 0x35, 0x11, 0x7e, 0x6f, 0xf5, 0xd7,
+ 0x5c, 0x2b, 0x8f, 0xbb, 0xff, 0xaf, 0xf0, 0x07, 0xea, 0xa3, 0xbb, 0x8c,
+ 0x1e, 0xda, 0x3d, 0x5c, 0xdf, 0xff, 0xda, 0x08, 0x5c, 0x01, 0x8a, 0xfa,
+ 0x26, 0x48, 0xfb, 0xd1, 0x1d, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xa1, 0x04, 0x27, 0xe4, 0xe4, 0x24, 0x00, 0xcc, 0xac, 0x99, 0xa6, 0xbb,
+ 0x5f, 0xf1, 0x06, 0x71, 0xdd, 0x03, 0xc2, 0x9e, 0xfc, 0x7f, 0x0a, 0x70,
+ 0x00, 0x6f, 0xcf, 0xf0, 0x00, 0x00, 0xdc, 0x01, 0x75, 0xec, 0x19, 0x52,
+ 0x60, 0x05, 0x17, 0x60, 0xe1, 0x51, 0x80, 0xdf, 0x8c, 0xff, 0x93, 0xdf,
+ 0x8e, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff,
+ 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa,
+ 0x4f, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff,
+ 0xaf, 0xf8, 0x63, 0xff, 0x50, 0xe1, 0x0a, 0x9f, 0x00, 0x45, 0x76, 0x71,
+ 0x3f, 0xe3, 0xf0, 0x03, 0x52, 0x59, 0x88, 0x3a, 0x4a, 0xeb, 0xdd, 0x55,
+ 0x95, 0xe3, 0x49, 0x8c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x04, 0x3b,
+ 0x33, 0xec, 0x05, 0x62, 0x0c, 0xf7, 0x66, 0x66, 0x4a, 0xce, 0x4c, 0x3f,
+ 0x5f, 0x0a, 0x61, 0xdb, 0x1b, 0x49, 0x1b, 0x53, 0x70, 0xbc, 0x01, 0x6a,
+ 0x53, 0x06, 0x64, 0x98, 0x03, 0x76, 0xd0, 0x05, 0xaf, 0x10, 0x6a, 0x7e,
+ 0x77, 0xda, 0x00, 0x7e, 0x45, 0xcf, 0x4d, 0x3a, 0xe7, 0xb8, 0x86, 0x1a,
+ 0xdf, 0x3f, 0xf0, 0xf1, 0xc0, 0x6a, 0x26, 0x32, 0xac, 0x4b, 0xd7, 0xae,
+ 0x34, 0x9f, 0x98, 0xaf, 0xff, 0xe1, 0x8e, 0x3d, 0x41, 0xc6, 0x60, 0xc5,
+ 0x66, 0xc0, 0x23, 0xd7, 0xdb, 0x0f, 0x14, 0x74, 0xb7, 0x87, 0x65, 0xe0,
+ 0x26, 0xe6, 0xb4, 0x1f, 0x20, 0x8e, 0xf7, 0x69, 0x47, 0xef, 0xde, 0xff,
+ 0x06, 0xbc, 0xa9, 0x05, 0x7b, 0xbf, 0x64, 0x5d, 0x22, 0x77, 0x30, 0xe3,
+ 0x47, 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc3, 0x16, 0xa6, 0xdf, 0xf8, 0x48,
+ 0xf0, 0x0a, 0x3a, 0xb1, 0xef, 0xf2, 0x13, 0x4d, 0x63, 0xac, 0xa8, 0xdd,
+ 0x05, 0xad, 0x04, 0x84, 0xe3, 0x0e, 0x7d, 0x6f, 0x1d, 0xbd, 0x86, 0x3e,
+ 0x90, 0xfe, 0x10, 0xa6, 0x30, 0x27, 0x60, 0x3d, 0xab, 0xe4, 0xab, 0x59,
+ 0xb6, 0xae, 0x3b, 0x6f, 0xc3, 0x02, 0x10, 0xd4, 0x3f, 0xe1, 0xfe, 0x01,
+ 0x9e, 0x45, 0x2a, 0x4f, 0x25, 0x0c, 0x62, 0x18, 0x2f, 0xfc, 0x25, 0xc0,
+ 0xf0, 0x1e, 0x64, 0x24, 0x7a, 0x37, 0x0e, 0x71, 0xec, 0xb9, 0x6a, 0x1c,
+ 0x31, 0xfe, 0x01, 0xaa, 0xda, 0x15, 0x80, 0x4a, 0xdf, 0x7b, 0x0f, 0x77,
+ 0xcb, 0x7e, 0x08, 0xe9, 0x94, 0x74, 0x00, 0xd8, 0xe4, 0x87, 0xea, 0x7d,
+ 0xf7, 0x86, 0xc1, 0x96, 0xba, 0xc2, 0x0e, 0x3a, 0xa0, 0xd8, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xa9, 0x3d, 0x84, 0xf2, 0x2f, 0xde, 0x33, 0xef,
+ 0xef, 0x1d, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf,
+ 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2e, 0x14, 0x80, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xe9, 0x49, 0x01, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
+ 0x98, 0xf8, 0x01, 0x81, 0xea, 0xf8, 0xec, 0xd3, 0x76, 0x90, 0x4f, 0xd8,
+ 0x82, 0x89, 0x97, 0x87, 0x69, 0xb9, 0x3a, 0xbf, 0xf9, 0xfc, 0x46, 0x2b,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0xde, 0x87, 0x05, 0x94, 0x9d, 0x06, 0x30,
+ 0xd6, 0xee, 0xbd, 0xa0, 0x45, 0x11, 0x5f, 0xdc, 0xfc, 0x00, 0xca, 0xf4,
+ 0x63, 0xcc, 0x7f, 0xaf, 0x24, 0xeb, 0xdf, 0xab, 0xe0, 0x09, 0xd9, 0x96,
+ 0x2f, 0xfd, 0xe8, 0xd0, 0xeb, 0x23, 0x13, 0x59, 0x83, 0xb3, 0xc1, 0x16,
+ 0xe8, 0xab, 0xb4, 0x08, 0x5c, 0x02, 0x8e, 0xac, 0x3c, 0xd1, 0xec, 0x19,
+ 0xa9, 0xc4, 0x0d, 0xd3, 0xc6, 0x32, 0x51, 0x3d, 0xfc, 0x7f, 0xd6, 0x5c,
+ 0x08, 0xeb, 0x6c, 0xd4, 0xb1, 0x79, 0x2e, 0x9a, 0x84, 0x87, 0x21, 0x51,
+ 0x22, 0x41, 0xba, 0xec, 0x7b, 0xcf, 0x1d, 0xbc, 0xce, 0x13, 0x28, 0xfe,
+ 0xdb, 0xd7, 0x1d, 0x0b, 0x5f, 0xf8, 0xaf, 0xff, 0xff, 0x37, 0xf8, 0x14,
+ 0x03, 0xc6, 0x2c, 0x00, 0x86, 0x32, 0xf2, 0x1c, 0x4d, 0x77, 0xc0, 0x0e,
+ 0x2c, 0x76, 0xc0, 0xd2, 0xad, 0xef, 0xb4, 0x46, 0x9a, 0x27, 0xd5, 0xff,
+ 0x9b, 0xf5, 0xb1, 0x6a, 0x9d, 0x93, 0x80, 0x35, 0x52, 0x36, 0x9f, 0x9c,
+ 0x5b, 0xa9, 0x9e, 0x09, 0x1e, 0xec, 0x55, 0xe4, 0x58, 0x07, 0x03, 0xb6,
+ 0x99, 0x63, 0xa6, 0x0c, 0x35, 0x37, 0x05, 0xb7, 0x8f, 0x55, 0xa6, 0x31,
+ 0x73, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf9, 0xbf, 0x00, 0x87, 0xf0,
+ 0x91, 0x78, 0x01, 0xb2, 0xf6, 0x60, 0x4a, 0x37, 0x5e, 0xf8, 0x80, 0x12,
+ 0xb3, 0x26, 0x4e, 0x9e, 0xbc, 0x91, 0x08, 0x42, 0xd6, 0x1e, 0x11, 0xbf,
+ 0xe1, 0xc6, 0xe0, 0x3a, 0xee, 0x34, 0x93, 0xbe, 0x3f, 0x98, 0xb3, 0x13,
+ 0x77, 0xe7, 0xf5, 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x3f,
+ 0xf8, 0x7c, 0xfd, 0x81, 0xcd, 0x9f, 0xd0, 0xe7, 0xf0, 0x9a, 0xc3, 0x28,
+ 0x3f, 0x0e, 0x6b, 0xc1, 0xf8, 0x6f, 0x01, 0x1b, 0xd4, 0x07, 0xd2, 0xac,
+ 0xf1, 0x3f, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa5, 0x24,
+ 0x11, 0xfb, 0x37, 0xe2, 0x7f, 0x4e, 0x14, 0x10, 0x00, 0xa7, 0xd3, 0x04,
+ 0x29, 0xf3, 0xc0, 0x7e, 0x70, 0x25, 0x05, 0xcd, 0xfe, 0x74, 0x3f, 0x84,
+ 0xde, 0xf0, 0x21, 0xed, 0x81, 0xfb, 0xd9, 0xf4, 0xd8, 0xb5, 0x0a, 0x47,
+ 0x7c, 0xdf, 0xb1, 0x7b, 0x4b, 0x18, 0xa0, 0x4d, 0x84, 0x2a, 0x4c, 0x61,
+ 0x5e, 0xf8, 0x11, 0x8a, 0x4c, 0x0f, 0xc2, 0x0e, 0xc3, 0xd4, 0xfe, 0xfc,
+ 0x67, 0xfd, 0xf1, 0xeb, 0x02, 0x47, 0x4c, 0x8c, 0xde, 0x6f, 0x9e, 0x00,
+ 0x06, 0x62, 0x80, 0x01, 0x98, 0x02, 0x4d, 0xec, 0x45, 0x0e, 0xba, 0x73,
+ 0x80, 0x0f, 0x6b, 0xc0, 0xbb, 0xbd, 0xcc, 0xfc, 0xcc, 0x45, 0xff, 0xf8,
+ 0x78, 0xa3, 0xb8, 0x8e, 0xd4, 0x07, 0xf8, 0xbb, 0xf0, 0x7e, 0x1f, 0x7e,
+ 0x3b, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x37, 0xff, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x36, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xaa, 0x91, 0x60, 0x2d, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb, 0xd7, 0xa2, 0x38, 0xaf, 0xff, 0xff,
+ 0xf5, 0xf1, 0x44, 0x0d, 0xf5, 0xac, 0x22, 0x16, 0x06, 0x60, 0xbd, 0xca,
+ 0xe0, 0x0c, 0x2f, 0x20, 0x23, 0x0a, 0x4e, 0x18, 0xf4, 0x77, 0x7c, 0x56,
+ 0x4a, 0x55, 0x2d, 0x25, 0xbc, 0x43, 0x09, 0xfd, 0xbf, 0xc2, 0x62, 0xc2,
+ 0x40, 0x62, 0x9c, 0xed, 0xf0, 0x75, 0xb2, 0x0e, 0xae, 0xe5, 0x9b, 0x02,
+ 0x54, 0xbc, 0xf7, 0x15, 0xff, 0xeb, 0xe2, 0xcd, 0x43, 0x09, 0x18, 0xa6,
+ 0xe0, 0x28, 0x0e, 0x91, 0x50, 0xb7, 0x29, 0xf7, 0x38, 0x6d, 0x0d, 0x9d,
+ 0xd4, 0xd2, 0x61, 0xff, 0xff, 0xef, 0xff, 0xd7, 0x90, 0x44, 0x44, 0x41,
+ 0x44, 0xae, 0x04, 0x3a, 0x58, 0x38, 0x3f, 0x21, 0x14, 0x37, 0xed, 0xcd,
+ 0x79, 0xbf, 0xb9, 0x4f, 0xb4, 0xf4, 0x86, 0x60, 0xa5, 0x52, 0x9b, 0x73,
+ 0xe3, 0x55, 0x1e, 0x5c, 0x7d, 0xe3, 0x2f, 0x3e, 0xb7, 0x8e, 0xde, 0xf5,
+ 0x8c, 0xdb, 0x88, 0xc3, 0x19, 0x87, 0xd7, 0x4a, 0x9c, 0x5b, 0xc1, 0x3b,
+ 0xc7, 0xb1, 0xe1, 0x94, 0x37, 0x8f, 0xf0, 0x8f, 0x8e, 0xe3, 0xbf, 0xc6,
+ 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaa, 0x45, 0x81, 0x0f, 0x6b,
+ 0xc3, 0x1d, 0x74, 0xfa, 0x9c, 0x60, 0x9c, 0x40, 0x09, 0xf0, 0xe1, 0xcf,
+ 0x7e, 0x00, 0x0f, 0xc3, 0x28, 0x6f, 0x18, 0x47, 0xc7, 0x71, 0xf8, 0x63,
+ 0xf6, 0x2c, 0xc1, 0xa5, 0x8c, 0xc1, 0x34, 0x83, 0x4e, 0x3f, 0x02, 0x7f,
+ 0xc7, 0xb2, 0xb8, 0xf1, 0x42, 0x5e, 0xf1, 0x9f, 0x6b, 0xd6, 0xfe, 0x61,
+ 0xc3, 0xde, 0x3b, 0xc6, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37, 0xf9, 0x7f, 0xff,
+ 0xff, 0xaf, 0xf3, 0x7d, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xea, 0x51,
+ 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x09, 0xc3, 0x68, 0x3f, 0x8e,
+ 0x00, 0x00, 0xde, 0x22, 0x6e, 0x3d, 0x50, 0x00, 0x63, 0xab, 0xeb, 0xf5,
+ 0xde, 0x52, 0xe5, 0x9c, 0xf1, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x22,
+ 0x28, 0x8f, 0xb1, 0xfa, 0x9e, 0xad, 0xce, 0xa4, 0x68, 0x07, 0x77, 0xf8,
+ 0xf0, 0x7e, 0x10, 0xb5, 0x9f, 0xfd, 0x24, 0x46, 0xd6, 0x7f, 0xdf, 0x1e,
+ 0x03, 0x98, 0x39, 0x8a, 0x12, 0x28, 0xb9, 0xd4, 0x6c, 0x85, 0x51, 0xe0,
+ 0x17, 0xfc, 0x65, 0x89, 0x91, 0xae, 0x68, 0x4f, 0x2c, 0xdf, 0xdb, 0x78,
+ 0xce, 0x05, 0xaa, 0xaa, 0x98, 0x4d, 0x58, 0x18, 0x85, 0xe8, 0x51, 0xbf,
+ 0xfe, 0xd3, 0x7e, 0xbc, 0xbb, 0xd0, 0x4b, 0xc0, 0x02, 0xb5, 0xbb, 0xc8,
+ 0x33, 0xf0, 0xec, 0x6a, 0x04, 0x2e, 0x00, 0xbd, 0xc2, 0x32, 0x22, 0x4a,
+ 0x60, 0x3e, 0x20, 0x16, 0x09, 0x16, 0x23, 0x2a, 0xf1, 0xfe, 0x6f, 0xc1,
+ 0x8a, 0x0a, 0xaa, 0x8f, 0x01, 0xc1, 0xdc, 0x41, 0x5d, 0xe1, 0x1c, 0x24,
+ 0x2a, 0x62, 0x19, 0x88, 0x6e, 0xd7, 0x8a, 0xff, 0xff, 0xfe, 0x39, 0x70,
+ 0x99, 0xf6, 0xbc, 0x25, 0x6e, 0xc0, 0xdb, 0x7d, 0xf9, 0x01, 0xf3, 0x7e,
+ 0x1f, 0x9b, 0xf5, 0xb3, 0xcd, 0x01, 0xb6, 0xb8, 0x01, 0xc0, 0x7c, 0xc6,
+ 0x1e, 0xd4, 0x3c, 0xdb, 0x85, 0x3a, 0x7e, 0x78, 0x00, 0xf9, 0xf1, 0x4c,
+ 0x86, 0xac, 0xaf, 0xfd, 0x65, 0xd7, 0x25, 0x3f, 0xef, 0x5f, 0xc0, 0xad,
+ 0xb7, 0xf2, 0x9e, 0xff, 0xfe, 0xb6, 0x16, 0xb9, 0x21, 0xaf, 0x7f, 0xfb,
+ 0xe4, 0xe7, 0xc0, 0x7f, 0xa3, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff,
+ 0xff, 0xc4, 0x78, 0x69, 0x0b, 0x3e, 0x43, 0x30, 0x82, 0xe6, 0x2c, 0x7f,
+ 0xfe, 0x12, 0x80, 0x47, 0x57, 0xdb, 0x52, 0xa6, 0xe3, 0x74, 0x9a, 0xb8,
+ 0x3e, 0x9a, 0x03, 0x11, 0xb5, 0x5a, 0x86, 0x32, 0xa1, 0x6e, 0x12, 0x2a,
+ 0xe5, 0x73, 0xfe, 0x7f, 0x5e, 0xfc, 0x77, 0xbf, 0x7e, 0x3b, 0xd9, 0xbe,
+ 0x1f, 0xc6, 0x90, 0x42, 0x58, 0x1c, 0x83, 0x11, 0x33, 0x13, 0x35, 0x9b,
+ 0xfb, 0xe7, 0x89, 0xae, 0x63, 0x43, 0x68, 0x76, 0x06, 0xbc, 0x05, 0x86,
+ 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xa9, 0x44, 0x15, 0xfb, 0x36,
+ 0x1f, 0xc7, 0xf0, 0x98, 0x80, 0x03, 0x15, 0xc4, 0x6c, 0x80, 0x00, 0x40,
+ 0x27, 0x57, 0x80, 0x60, 0xc2, 0x7e, 0xbb, 0x53, 0xff, 0x67, 0xb2, 0xa4,
+ 0xc6, 0x1c, 0x83, 0x11, 0x33, 0xc4, 0x44, 0xfc, 0x50, 0x89, 0xc3, 0x63,
+ 0x40, 0x80, 0xe8, 0x51, 0x4f, 0x3b, 0xbf, 0x19, 0xff, 0x46, 0x4f, 0xfc,
+ 0x7e, 0x13, 0x89, 0x9a, 0xcd, 0xfd, 0xff, 0xe0, 0x01, 0x97, 0xf7, 0x4e,
+ 0xe9, 0x22, 0x95, 0x21, 0xc4, 0x00, 0x95, 0x04, 0xdf, 0xfd, 0xc9, 0xcb,
+ 0x19, 0xe0, 0x06, 0x7d, 0xfd, 0x67, 0x6c, 0x00, 0xcf, 0xbf, 0xac, 0xec,
+ 0x1f, 0xfe, 0x53, 0x3d, 0xf8, 0x02, 0x3b, 0x49, 0x81, 0xfe, 0x27, 0xfb,
+ 0x56, 0x07, 0xf9, 0x40, 0x00, 0x07, 0xf5, 0xc0, 0xc0, 0xd8, 0x71, 0x77,
+ 0x6f, 0x0f, 0x16, 0x67, 0x25, 0xf8, 0xf3, 0x40, 0x41, 0xdf, 0xff, 0x84,
+ 0x94, 0x01, 0x9c, 0x10, 0x93, 0x29, 0x05, 0x54, 0xdb, 0xff, 0x73, 0xe2,
+ 0x4e, 0xdc, 0xa2, 0x70, 0x22, 0xf2, 0x28, 0x22, 0xf9, 0x3f, 0xfe, 0x4f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0x15, 0xff, 0xff, 0xff, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x37, 0xff,
+ 0xe5, 0xf0, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaa, 0xd3, 0x60, 0x29,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6,
+ 0x13, 0x84, 0x7a, 0x6a, 0x80, 0x8f, 0x24, 0x66, 0x48, 0xcb, 0xfa, 0x19,
+ 0x89, 0x8a, 0xff, 0xff, 0xff, 0x7e, 0x18, 0x0e, 0x71, 0x0a, 0x83, 0xb5,
+ 0x02, 0x30, 0x24, 0x67, 0xad, 0x48, 0x00, 0x02, 0x3e, 0x01, 0x3f, 0x91,
+ 0xae, 0xde, 0xff, 0x81, 0x30, 0xa7, 0x4f, 0x98, 0x77, 0xb9, 0x38, 0xda,
+ 0x9a, 0x1a, 0xaa, 0x7c, 0xe0, 0x81, 0xc3, 0x01, 0xfc, 0x25, 0xf8, 0x20,
+ 0x16, 0x18, 0xd4, 0xb6, 0xe5, 0xbe, 0xbf, 0xe1, 0x00, 0xad, 0xe5, 0x1e,
+ 0xde, 0xf1, 0x5f, 0xfe, 0xfc, 0x31, 0xfa, 0x83, 0x0c, 0x03, 0xd9, 0x38,
+ 0x08, 0xca, 0x3d, 0x3f, 0x38, 0x8d, 0xcb, 0x3d, 0x9e, 0x01, 0x31, 0xe3,
+ 0x5a, 0x27, 0xb9, 0xdd, 0xb2, 0x23, 0x0b, 0xfe, 0xe7, 0xf2, 0x78, 0xa6,
+ 0x7c, 0xff, 0xff, 0xf7, 0xff, 0xef, 0xc3, 0x1c, 0x30, 0x7f, 0xf8, 0x4b,
+ 0x80, 0x26, 0xe9, 0xa7, 0x53, 0xc4, 0x28, 0x99, 0x78, 0x03, 0x5c, 0x9b,
+ 0x73, 0xb6, 0x3e, 0xb7, 0x8e, 0xde, 0xf1, 0xdb, 0x51, 0xa4, 0x2f, 0x09,
+ 0x78, 0x6f, 0xbc, 0x31, 0x87, 0xd2, 0x9f, 0x82, 0x06, 0x00, 0xf7, 0xff,
+ 0x1d, 0xfb, 0x30, 0x37, 0x7d, 0x8e, 0xfe, 0x7a, 0x7c, 0x6c, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xab, 0x4d, 0x82, 0x3d, 0x86, 0x3a, 0x7c, 0x74,
+ 0xa6, 0x09, 0xc4, 0x40, 0x4c, 0x5e, 0x80, 0x03, 0x8f, 0x50, 0x6e, 0x05,
+ 0xb0, 0x14, 0x60, 0xc0, 0x76, 0xe2, 0xb0, 0xf7, 0xfb, 0xc6, 0x7d, 0x06,
+ 0x3d, 0x12, 0x9f, 0x4e, 0x14, 0x69, 0x57, 0x77, 0xe0, 0x19, 0xfa, 0x3e,
+ 0x7d, 0xa5, 0x5d, 0xdf, 0xca, 0x80, 0x64, 0x6e, 0xeb, 0xdb, 0xc6, 0x0d,
+ 0xf8, 0x23, 0x3e, 0x5f, 0xde, 0x3d, 0x72, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f,
+ 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xeb, 0x59, 0x03,
+ 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x99, 0x84, 0xf0, 0x03, 0xc5,
+ 0x25, 0xcd, 0xc9, 0xff, 0xa2, 0x78, 0x98, 0xaf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x98, 0x3b, 0x58, 0x11, 0x45, 0xc7, 0x1b, 0x09, 0x27, 0xc0, 0x8f,
+ 0xf0, 0xfe, 0x4f, 0xe0, 0x39, 0x10, 0xa8, 0x2e, 0xc2, 0x02, 0xfe, 0x47,
+ 0x2e, 0xf4, 0x6c, 0x9a, 0x39, 0x57, 0x80, 0x03, 0x10, 0xbd, 0x0a, 0x37,
+ 0xeb, 0xed, 0x76, 0x5e, 0x0f, 0x60, 0x6c, 0xc2, 0x23, 0x34, 0xb2, 0x21,
+ 0x22, 0xb8, 0x59, 0x60, 0xe4, 0x23, 0x16, 0x5a, 0x4f, 0x06, 0x1f, 0xc4,
+ 0x8b, 0xf8, 0x35, 0x99, 0x8a, 0x95, 0x8e, 0xcc, 0x6e, 0xd7, 0xca, 0x58,
+ 0x14, 0x11, 0xcc, 0x88, 0x11, 0xa3, 0xfe, 0x2b, 0xff, 0xff, 0xfe, 0x6f,
+ 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x03, 0x36, 0xff, 0x95, 0xf3, 0x51,
+ 0x88, 0x71, 0x27, 0xa7, 0xe0, 0x18, 0x29, 0xe4, 0x55, 0x39, 0xf0, 0x11,
+ 0x17, 0xc3, 0xac, 0xa3, 0xa8, 0xa1, 0xd2, 0xe1, 0x01, 0x8a, 0x7f, 0x3f,
+ 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xfc, 0xd1, 0xf0, 0xff, 0xc2, 0x50,
+ 0xfa, 0x68, 0x18, 0x8d, 0x8a, 0xd5, 0xfe, 0x00, 0x8a, 0x68, 0x18, 0x8d,
+ 0x55, 0x6a, 0x00, 0x45, 0x38, 0x18, 0x8b, 0x65, 0x6a, 0xf0, 0xe7, 0xf5,
+ 0xef, 0xc7, 0x7b, 0xf7, 0xe3, 0xbd, 0x9b, 0xe1, 0x6f, 0x63, 0xe1, 0x42,
+ 0xc0, 0x04, 0x61, 0xaf, 0xab, 0xbf, 0xbf, 0xd1, 0x95, 0xaa, 0xa6, 0xbb,
+ 0xb0, 0x02, 0x1b, 0xa4, 0xef, 0x5f, 0x9e, 0x0c, 0x81, 0x00, 0x42, 0xa0,
+ 0xe2, 0x62, 0x7d, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xad,
+ 0x64, 0x37, 0xe8, 0xdf, 0x96, 0xd6, 0xf8, 0x91, 0x1c, 0x00, 0xcc, 0xa9,
+ 0x9a, 0x27, 0xab, 0xc0, 0x01, 0x89, 0xae, 0x42, 0xd6, 0x10, 0x02, 0x81,
+ 0xc3, 0xc2, 0x4b, 0x7f, 0x74, 0xef, 0x10, 0x8e, 0xee, 0x5c, 0x48, 0xff,
+ 0x9f, 0x44, 0x44, 0xd7, 0xbf, 0x19, 0xe8, 0xcc, 0x61, 0xf6, 0xb7, 0xe1,
+ 0x31, 0x00, 0x21, 0xdf, 0x1f, 0x8e, 0x41, 0x84, 0xcb, 0x7a, 0xd2, 0x6f,
+ 0x97, 0xbc, 0xe3, 0xb2, 0x40, 0x5a, 0x06, 0x20, 0xd4, 0x6e, 0x37, 0xfc,
+ 0xf1, 0x3f, 0xfd, 0xf8, 0xde, 0x43, 0x40, 0x0c, 0xb3, 0x8c, 0x99, 0x1b,
+ 0x75, 0xef, 0xcc, 0x21, 0xe0, 0x1f, 0xf0, 0xf6, 0x12, 0x4a, 0x6d, 0xc1,
+ 0x7e, 0x0c, 0x0f, 0x53, 0xff, 0xaf, 0xff, 0xc9, 0xe0, 0x44, 0x08, 0xfe,
+ 0xd4, 0x24, 0x70, 0x68, 0x90, 0x13, 0x8f, 0xbc, 0x39, 0xe5, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
+ 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f,
+ 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0x15, 0x60, 0x25, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa, 0xcc, 0x27,
+ 0x02, 0x46, 0x4c, 0xdc, 0xcb, 0xa0, 0xab, 0x29, 0x70, 0x9f, 0x04, 0x2c,
+ 0x57, 0xff, 0xff, 0xff, 0x58, 0x44, 0x60, 0x36, 0xad, 0x4b, 0x9b, 0xfb,
+ 0xfd, 0xac, 0xbc, 0x04, 0x22, 0x1d, 0x09, 0x66, 0x7f, 0x96, 0x32, 0xd1,
+ 0x80, 0x19, 0x55, 0xe1, 0x58, 0x5d, 0xfe, 0xcd, 0x23, 0x99, 0xe4, 0x91,
+ 0xc4, 0x75, 0x66, 0x7c, 0x30, 0x14, 0xf8, 0x5f, 0xf0, 0x99, 0xc9, 0x00,
+ 0x5e, 0xe4, 0x1c, 0xab, 0xe6, 0x13, 0x05, 0xef, 0xc5, 0xbd, 0x9f, 0x14,
+ 0x03, 0x51, 0xee, 0xa5, 0x3e, 0xfe, 0xa8, 0xaf, 0xff, 0xeb, 0x19, 0xe0,
+ 0x97, 0xf8, 0xd5, 0x7b, 0x00, 0x22, 0x2f, 0x47, 0x20, 0x9d, 0x7f, 0xcd,
+ 0x6b, 0xfc, 0x0f, 0x36, 0x78, 0x3e, 0x61, 0x5d, 0xd6, 0x79, 0x4a, 0x43,
+ 0x60, 0x78, 0xaf, 0x6d, 0xe8, 0x1c, 0x90, 0x34, 0xdf, 0x0f, 0xf9, 0xa7,
+ 0xdd, 0xb7, 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc9, 0xc0, 0xf0, 0x21, 0x04,
+ 0x0e, 0x5f, 0xef, 0x3f, 0x34, 0x25, 0x8e, 0x78, 0x01, 0x97, 0xdd, 0x76,
+ 0x3f, 0xcb, 0x80, 0x0d, 0x69, 0x09, 0x6f, 0x69, 0xb0, 0x18, 0x9f, 0xbc,
+ 0x81, 0x0a, 0x18, 0x87, 0x8e, 0x36, 0x91, 0x22, 0x7e, 0x79, 0xf5, 0xbc,
+ 0x76, 0xf7, 0x8e, 0xd8, 0x63, 0xe1, 0xff, 0xc3, 0xe5, 0x80, 0x44, 0xd7,
+ 0x67, 0xd6, 0xd6, 0x1d, 0x03, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x2e, 0xac, 0x55, 0x84, 0xf4, 0x18, 0xfe, 0xdf, 0x0e, 0x1f, 0x34, 0x07,
+ 0x22, 0x30, 0x15, 0x32, 0x04, 0x5a, 0xaa, 0x9e, 0xbe, 0xb7, 0x8c, 0xd0,
+ 0x63, 0xff, 0xda, 0x18, 0x21, 0x80, 0x10, 0xdd, 0x5d, 0xeb, 0xf3, 0xdf,
+ 0xc1, 0x57, 0xde, 0x35, 0x7a, 0xc8, 0x80, 0x78, 0xc8, 0xe9, 0x85, 0x80,
+ 0x00, 0x80, 0x0f, 0xdf, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xec, 0x61, 0x03, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
+ 0xff, 0x98, 0x4f, 0x00, 0x30, 0xa9, 0xa6, 0xbb, 0xbd, 0xfa, 0xc3, 0x32,
+ 0xbc, 0xc4, 0x5a, 0xdc, 0x1c, 0x7a, 0xdf, 0x15, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf3, 0x07, 0x27, 0xbd, 0x41, 0xd1, 0x57, 0x63, 0x10, 0xb8, 0x03,
+ 0x7d, 0x96, 0xd6, 0xa4, 0x5b, 0x10, 0x25, 0x87, 0x4d, 0x02, 0xab, 0x37,
+ 0xd4, 0x7f, 0x3f, 0x39, 0x26, 0x5c, 0xf8, 0x01, 0x08, 0x7b, 0x42, 0x7a,
+ 0x83, 0xf5, 0xd9, 0x78, 0x3d, 0x81, 0xb2, 0x51, 0x5e, 0xb4, 0xf4, 0x6f,
+ 0x2d, 0xea, 0x5e, 0x27, 0xc4, 0x9d, 0xcd, 0x36, 0x7f, 0x69, 0xfe, 0x13,
+ 0x17, 0x5d, 0xf3, 0xb8, 0x00, 0x04, 0x00, 0xce, 0xdf, 0x3b, 0x18, 0x22,
+ 0xfc, 0x67, 0xf7, 0xd7, 0xf2, 0xf3, 0x03, 0x2d, 0xf4, 0xd7, 0x97, 0xb6,
+ 0x1f, 0x67, 0xe2, 0xf1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x2a, 0x44, 0xc4,
+ 0xee, 0xab, 0x66, 0xe1, 0x33, 0xed, 0x78, 0x38, 0x89, 0xda, 0x58, 0x44,
+ 0xd6, 0x3f, 0xcf, 0xe0, 0x11, 0x4a, 0xf6, 0x07, 0xc8, 0x46, 0xfe, 0xbe,
+ 0x01, 0x89, 0x85, 0x95, 0x3f, 0x52, 0xcd, 0xd0, 0x6a, 0x42, 0x2f, 0xe7,
+ 0xdd, 0xf6, 0x45, 0xcf, 0xc2, 0xc0, 0x9c, 0x76, 0x59, 0x41, 0x76, 0x0e,
+ 0x64, 0xc1, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xe6, 0x08, 0xae,
+ 0x05, 0xff, 0x09, 0x30, 0x1d, 0xdb, 0x51, 0xc7, 0xa0, 0xf9, 0x24, 0x3b,
+ 0x2e, 0xa1, 0xec, 0x6e, 0x5a, 0xc4, 0xcb, 0x1e, 0xd4, 0x0b, 0x15, 0x93,
+ 0x3c, 0xb3, 0xf4, 0x2d, 0x49, 0xff, 0xd4, 0x99, 0x3f, 0x49, 0x97, 0x3c,
+ 0x19, 0xfd, 0x7b, 0xf1, 0xde, 0xfd, 0xf8, 0xef, 0x66, 0xf8, 0x10, 0xc8,
+ 0xb9, 0x63, 0x0b, 0x00, 0x11, 0x86, 0xbe, 0xae, 0xfe, 0xff, 0x00, 0xed,
+ 0xe0, 0x97, 0x80, 0x00, 0xe0, 0x0b, 0x57, 0xf4, 0x04, 0x3a, 0xc0, 0xed,
+ 0x81, 0x09, 0xef, 0xbe, 0xfc, 0x6c, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xb1, 0x84, 0x37, 0xf3, 0x7e, 0x59, 0x11, 0x7c, 0x13, 0x08, 0x80, 0x0b,
+ 0xe9, 0x4d, 0xcc, 0x11, 0x87, 0x3f, 0x5d, 0x00, 0x75, 0x7e, 0x09, 0x72,
+ 0x00, 0x0e, 0x07, 0x6c, 0x08, 0x40, 0x3a, 0xbf, 0x04, 0xb9, 0x3c, 0x07,
+ 0x81, 0xb3, 0xfc, 0x44, 0x4f, 0xef, 0xc6, 0x1a, 0x99, 0x91, 0xb7, 0xcf,
+ 0x8a, 0x11, 0x00, 0x0b, 0x46, 0xbb, 0xac, 0xe2, 0xbe, 0xdf, 0x69, 0xf7,
+ 0x01, 0xff, 0xff, 0x71, 0x6d, 0xf8, 0x25, 0xc8, 0x40, 0x63, 0xb5, 0xcc,
+ 0xdd, 0xa6, 0xf8, 0xec, 0xf7, 0x57, 0xc2, 0x6d, 0x81, 0xfb, 0xd9, 0xf9,
+ 0xb2, 0xfa, 0xc4, 0xf5, 0xc5, 0xbe, 0xff, 0x8c, 0xd6, 0x07, 0xe3, 0xbf,
+ 0xe0, 0x08, 0xd7, 0xab, 0x3d, 0xcb, 0xa4, 0xe5, 0xe4, 0x34, 0x79, 0xff,
+ 0xfb, 0xf1, 0xa6, 0xfa, 0xff, 0xf0, 0xf9, 0x30, 0x0b, 0xd4, 0x90, 0x1a,
+ 0x88, 0xbf, 0x81, 0xb7, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff,
+ 0xff, 0xff, 0xff, 0xfc, 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xab, 0x57, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x3f, 0x18, 0x54, 0xf8, 0x00,
+ 0x96, 0xb7, 0x2f, 0xd5, 0x5f, 0x80, 0x0e, 0xd9, 0x13, 0x31, 0x07, 0xf3,
+ 0x35, 0x7b, 0x80, 0xec, 0x46, 0x2b, 0xff, 0xff, 0xff, 0x86, 0x03, 0xc0,
+ 0xe8, 0xa2, 0xfa, 0xe3, 0x05, 0x35, 0x02, 0xb4, 0xe3, 0xc5, 0xd9, 0x12,
+ 0x65, 0xa9, 0x0c, 0xad, 0xaa, 0xbd, 0xa0, 0x01, 0x8d, 0x8a, 0x2d, 0xe6,
+ 0xdb, 0xc3, 0xf2, 0x60, 0xcd, 0x3c, 0xd5, 0x9e, 0x7c, 0x89, 0xa4, 0x61,
+ 0x82, 0xa0, 0x7b, 0x4b, 0xf0, 0x98, 0xb0, 0x09, 0x84, 0x1c, 0x3c, 0x83,
+ 0xcf, 0x98, 0x43, 0xcb, 0xde, 0x70, 0x8d, 0xb7, 0x1b, 0xc8, 0xff, 0xbf,
+ 0x3e, 0xfb, 0xd8, 0xaf, 0xff, 0xe1, 0x8e, 0x3c, 0x00, 0xd1, 0xf5, 0x48,
+ 0xb3, 0x60, 0x06, 0x07, 0x95, 0xf1, 0xd8, 0x7a, 0xba, 0x58, 0x7a, 0xb9,
+ 0x30, 0x56, 0x28, 0xa0, 0x24, 0x39, 0x97, 0x80, 0x91, 0xb9, 0xaa, 0x79,
+ 0x45, 0xf0, 0xb4, 0x8e, 0x1b, 0x5b, 0x24, 0xdf, 0x9e, 0x71, 0x4d, 0xc0,
+ 0x0a, 0x83, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0x0c, 0x02, 0xa0, 0xb0, 0x38,
+ 0xff, 0xc2, 0x4c, 0xca, 0x24, 0x8f, 0x55, 0xe0, 0x6d, 0x4f, 0xc8, 0x0f,
+ 0xdb, 0xc8, 0x74, 0xd4, 0x27, 0x03, 0xb7, 0xf6, 0x7f, 0x08, 0xdb, 0x4f,
+ 0x46, 0x77, 0xca, 0x2f, 0xfe, 0x00, 0x67, 0xd6, 0xf1, 0xdb, 0xde, 0x3b,
+ 0x61, 0x8f, 0x81, 0x0f, 0xb7, 0x8c, 0x2c, 0x04, 0x4d, 0xda, 0xf7, 0xb0,
+ 0x04, 0x7b, 0xf4, 0x1f, 0xde, 0x80, 0x00, 0x7c, 0x01, 0x76, 0xf4, 0x08,
+ 0xe9, 0x31, 0xd6, 0xb8, 0x77, 0xfc, 0xff, 0x77, 0x8d, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xad, 0x5d, 0x84, 0xf8, 0x63, 0xff, 0xfb, 0x41,
+ 0x09, 0xa0, 0x0c, 0x7c, 0xf2, 0x23, 0x1f, 0x02, 0x16, 0xba, 0xe9, 0x33,
+ 0x7e, 0x50, 0xc5, 0xd8, 0xbc, 0xbf, 0xc3, 0xd0, 0x03, 0x3e, 0xdf, 0x59,
+ 0xd9, 0xe3, 0x51, 0x80, 0x7f, 0x75, 0x03, 0xf7, 0xba, 0xac, 0x45, 0xbb,
+ 0x06, 0xf7, 0x8c, 0x5e, 0x18, 0xf6, 0x22, 0xab, 0x0a, 0xeb, 0x89, 0x5c,
+ 0x02, 0x47, 0xeb, 0xd8, 0x03, 0x3f, 0x67, 0x50, 0x01, 0xc3, 0x80, 0x0f,
+ 0xf5, 0xde, 0xa7, 0x3f, 0xf8, 0xe9, 0xca, 0xea, 0xb1, 0x16, 0xed, 0xe1,
+ 0xfb, 0xb7, 0x66, 0xe2, 0x1b, 0x89, 0xaf, 0xbc, 0x68, 0x63, 0xeb, 0xff,
+ 0xc3, 0xe4, 0x80, 0x6e, 0xa8, 0x68, 0x8b, 0xfe, 0x5f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0x15, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdf,
+ 0xe5, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xed, 0x69, 0x01, 0x2f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x53, 0xc4, 0x14, 0xa2, 0xf0, 0x23,
+ 0x7a, 0x3b, 0xec, 0x5e, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50,
+ 0xc0, 0x03, 0x41, 0x3c, 0x39, 0xb6, 0xa7, 0x83, 0xf7, 0x19, 0xe1, 0xf4,
+ 0xe6, 0xa8, 0xbf, 0xb6, 0xb1, 0x4b, 0xc7, 0x10, 0xb8, 0xc6, 0xad, 0x43,
+ 0xcc, 0xe1, 0xbc, 0xe7, 0xca, 0x24, 0x4c, 0x87, 0xd0, 0x0e, 0xda, 0xc0,
+ 0x43, 0xcf, 0x6e, 0x65, 0x7f, 0xb9, 0xfd, 0x67, 0x04, 0x2f, 0x81, 0xc1,
+ 0x62, 0xbf, 0xff, 0xff, 0xe6, 0xfc, 0x41, 0x95, 0x09, 0x52, 0xd6, 0x4e,
+ 0x00, 0xa3, 0xa2, 0x1d, 0x47, 0xe6, 0xd8, 0x3a, 0xb7, 0xe7, 0x80, 0xaa,
+ 0x4e, 0x4f, 0xc2, 0x8d, 0x00, 0x4d, 0x09, 0x48, 0xae, 0xbc, 0x58, 0x1e,
+ 0xb8, 0x36, 0x53, 0xe4, 0xc5, 0x99, 0x8b, 0xea, 0x79, 0x3a, 0x2c, 0x07,
+ 0xaf, 0x13, 0x2a, 0x03, 0xd8, 0xe3, 0xb9, 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0xff, 0xff, 0xfd, 0xb0, 0x8d, 0xaf, 0x41, 0x77, 0x98, 0x1c, 0x1f, 0x30,
+ 0xc3, 0x4a, 0x3f, 0xaf, 0x7e, 0x3b, 0xdf, 0xbf, 0x1d, 0xf3, 0x7f, 0xf7,
+ 0xc5, 0xe1, 0x52, 0xe0, 0x12, 0x3f, 0x5e, 0xc2, 0x7f, 0xb5, 0x2a, 0xf0,
+ 0x1e, 0xa7, 0x48, 0xdf, 0x9b, 0x40, 0xdc, 0xdf, 0xf7, 0xdf, 0xc6, 0x78,
+ 0x01, 0x4d, 0xd9, 0x8a, 0x29, 0x70, 0x03, 0x27, 0xcc, 0x14, 0x2a, 0xff,
+ 0x46, 0x47, 0xf2, 0x83, 0xef, 0xed, 0x7f, 0xb6, 0x6a, 0xa7, 0x80, 0x3f,
+ 0xcd, 0xbb, 0x90, 0x08, 0xff, 0xc2, 0x5c, 0x5b, 0x17, 0xdc, 0x09, 0x3f,
+ 0x7f, 0xf4, 0x01, 0x6f, 0xf3, 0xf9, 0x0d, 0x14, 0xd6, 0xdf, 0x9f, 0xef,
+ 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xb5, 0xa4, 0x25, 0x90,
+ 0x86, 0x80, 0x2b, 0x73, 0x44, 0xd0, 0x75, 0x7e, 0x6d, 0x3e, 0x91, 0x4f,
+ 0x84, 0xe0, 0x00, 0x38, 0x7e, 0x2d, 0x4e, 0x1a, 0xf4, 0x3d, 0x33, 0xc1,
+ 0x3e, 0xc0, 0xf9, 0x15, 0x00, 0x98, 0xff, 0xc4, 0x4f, 0x5e, 0xfc, 0x61,
+ 0xa7, 0x9c, 0xcf, 0xe7, 0xc5, 0x08, 0x90, 0x9b, 0x03, 0xf0, 0xbf, 0x31,
+ 0xa0, 0x3f, 0xf0, 0xd2, 0x0f, 0xc3, 0xeb, 0x01, 0x33, 0xcf, 0x13, 0x5f,
+ 0xf7, 0xe3, 0x7f, 0xff, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff,
+ 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2, 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xab, 0x99, 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13, 0x80, 0x07, 0xfa, 0xb2, 0x96, 0x6c,
+ 0xc5, 0xff, 0xb7, 0xd6, 0x57, 0x8c, 0x1e, 0x31, 0x5f, 0xff, 0xff, 0xfc,
+ 0x30, 0x1c, 0x20, 0xd5, 0x07, 0x1c, 0xa3, 0x04, 0x0e, 0xb3, 0x69, 0x23,
+ 0x6a, 0x6e, 0x17, 0x80, 0x2d, 0x94, 0xc1, 0x99, 0x26, 0x00, 0x31, 0x0f,
+ 0x68, 0x87, 0x8f, 0xde, 0xd4, 0x53, 0xd0, 0x71, 0xf0, 0xdc, 0xcd, 0x64,
+ 0x40, 0xab, 0x7e, 0xb5, 0x08, 0x05, 0x8c, 0xe0, 0x5c, 0x05, 0x56, 0x2e,
+ 0xfa, 0xfe, 0x43, 0xe9, 0x6b, 0x15, 0xff, 0xfc, 0x31, 0xc7, 0xa8, 0x38,
+ 0xcc, 0x18, 0xac, 0xd8, 0x08, 0xf5, 0xfb, 0x7c, 0x7b, 0x1a, 0x96, 0xf0,
+ 0xec, 0xbc, 0x06, 0xdd, 0xa5, 0x8f, 0x4d, 0xff, 0x48, 0x0f, 0x3d, 0x7f,
+ 0x83, 0xbd, 0x52, 0x15, 0xea, 0x7d, 0x96, 0x15, 0x69, 0xd4, 0xf2, 0x25,
+ 0xd9, 0xff, 0xff, 0xef, 0xff, 0xf8, 0x62, 0xc0, 0x9b, 0x63, 0xfc, 0x24,
+ 0x78, 0x06, 0x3d, 0x34, 0xff, 0x20, 0x1b, 0x5a, 0xcc, 0x4a, 0x82, 0x6d,
+ 0xc2, 0xde, 0x16, 0x27, 0x18, 0x73, 0xeb, 0x78, 0xed, 0xef, 0x1c, 0xbd,
+ 0x7a, 0x05, 0x01, 0x03, 0x38, 0x03, 0x23, 0xf3, 0xd0, 0xff, 0xf4, 0x00,
+ 0x7a, 0xa8, 0xf4, 0x86, 0x1f, 0xe7, 0xa8, 0x38, 0x63, 0xe0, 0xe2, 0xff,
+ 0xe2, 0x57, 0x00, 0x4f, 0x9b, 0x16, 0x54, 0x65, 0x01, 0x09, 0x6b, 0xdf,
+ 0x93, 0xf6, 0x07, 0xe1, 0x3c, 0x5b, 0xd7, 0x01, 0x8f, 0x07, 0xde, 0x36,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xae, 0x65, 0x82, 0x25, 0xe1, 0x8d,
+ 0x3d, 0xd1, 0xc4, 0xde, 0x5b, 0x15, 0x80, 0x10, 0x5b, 0xbf, 0x48, 0xfd,
+ 0xc7, 0xe0, 0x87, 0x7b, 0x46, 0xc4, 0xe0, 0x32, 0x23, 0x58, 0xf9, 0xf8,
+ 0x49, 0x64, 0x8c, 0x0f, 0x46, 0x36, 0xe6, 0xec, 0x0f, 0xde, 0x3b, 0xbe,
+ 0xf4, 0x0e, 0x01, 0x03, 0x28, 0x12, 0xfa, 0x3f, 0xf9, 0xa0, 0xdd, 0xdf,
+ 0x24, 0x87, 0xff, 0xa8, 0xef, 0xf6, 0x06, 0x4d, 0xe3, 0x03, 0x14, 0xce,
+ 0x67, 0xf3, 0xe2, 0x96, 0xdc, 0x1c, 0x1b, 0xf4, 0x01, 0xc2, 0x27, 0x07,
+ 0xe1, 0x3d, 0xf8, 0x66, 0x26, 0xbe, 0xf1, 0xdf, 0x2f, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f,
+ 0xf2, 0xff, 0xff, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xee, 0x71,
+ 0x01, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0x98, 0x4f, 0x01, 0xbf, 0x85,
+ 0xdb, 0x13, 0x2f, 0x00, 0x49, 0xff, 0x2a, 0xfb, 0xde, 0xfc, 0x46, 0x2b,
+ 0xff, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x89, 0x26, 0x32, 0x28, 0xc0, 0x09,
+ 0xba, 0x69, 0xaa, 0x79, 0xb2, 0xa5, 0x05, 0xef, 0x32, 0xa5, 0x19, 0x90,
+ 0x7d, 0x60, 0x04, 0x47, 0x53, 0x65, 0xff, 0x6c, 0xa7, 0x0e, 0xf4, 0xc6,
+ 0x8b, 0xbc, 0xe0, 0x7f, 0x27, 0x89, 0x88, 0x88, 0x96, 0x31, 0x37, 0x90,
+ 0x8f, 0x16, 0x78, 0xf6, 0x13, 0x05, 0xee, 0x4b, 0x7f, 0xc0, 0x44, 0x69,
+ 0xf6, 0xff, 0xd5, 0x94, 0x17, 0x90, 0xd4, 0x41, 0xe9, 0x1b, 0x6f, 0xcd,
+ 0x83, 0x1c, 0xb4, 0xd0, 0x35, 0x5b, 0xe1, 0xcf, 0xd0, 0x97, 0x70, 0x8d,
+ 0xa4, 0x33, 0x1f, 0x32, 0x43, 0xed, 0x2f, 0xc2, 0x67, 0x07, 0x67, 0x14,
+ 0x27, 0x7d, 0x5e, 0x20, 0x7e, 0x1f, 0xe5, 0x9f, 0xf1, 0x5f, 0xff, 0xfe,
+ 0x6f, 0xc5, 0x01, 0xa1, 0x46, 0x6b, 0x5c, 0x04, 0x7b, 0xe7, 0xe6, 0x44,
+ 0xd7, 0xb8, 0x6c, 0x7c, 0x6b, 0xcd, 0x1e, 0x6f, 0xfc, 0x6d, 0x54, 0xdf,
+ 0xfa, 0xa4, 0x09, 0x10, 0xfe, 0xc5, 0xa4, 0x12, 0x29, 0xfa, 0x1d, 0x53,
+ 0x9b, 0xf5, 0xb1, 0x05, 0x53, 0xb5, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xce,
+ 0x2d, 0xd4, 0xcf, 0x22, 0x3d, 0xd8, 0xab, 0xc8, 0xb0, 0x0e, 0x0f, 0x6e,
+ 0x4c, 0x63, 0xa6, 0x0c, 0x35, 0x37, 0x05, 0xb7, 0x8f, 0x55, 0xa6, 0x31,
+ 0x73, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xf9, 0xa5, 0x18, 0x0f, 0xe1,
+ 0xc2, 0x4e, 0x00, 0x96, 0xbf, 0xd0, 0x63, 0x7a, 0x40, 0x80, 0x48, 0xca,
+ 0x91, 0x81, 0x0b, 0x32, 0xb3, 0x4e, 0x3d, 0xe7, 0xfc, 0x78, 0x9b, 0xa1,
+ 0xb9, 0x5e, 0x48, 0x8c, 0xbd, 0xf6, 0x11, 0xbf, 0xe1, 0xc6, 0xd7, 0xd7,
+ 0x71, 0xa5, 0x65, 0x04, 0x20, 0x66, 0xae, 0xbf, 0x3f, 0xaf, 0x7e, 0x3b,
+ 0x98, 0xb0, 0x03, 0xad, 0x68, 0x28, 0x3a, 0x7f, 0x49, 0xe0, 0x00, 0x77,
+ 0x37, 0xf8, 0x8e, 0xbe, 0x15, 0xbf, 0x22, 0x07, 0x98, 0x9a, 0xfc, 0x0f,
+ 0x00, 0x8b, 0xd7, 0x6d, 0x37, 0xff, 0x1d, 0x56, 0x15, 0xe5, 0xe2, 0x20,
+ 0x74, 0x0a, 0xb2, 0xc2, 0x7f, 0xa6, 0x07, 0x91, 0xd3, 0x7f, 0x82, 0x78,
+ 0xe8, 0x76, 0x29, 0xc0, 0x72, 0x36, 0x08, 0x99, 0x07, 0x23, 0x60, 0x89,
+ 0x90, 0x18, 0x2b, 0x34, 0xc0, 0x21, 0x1d, 0x59, 0x12, 0xfa, 0x0c, 0x64,
+ 0xe2, 0xc0, 0x5a, 0x00, 0xa8, 0xf1, 0x13, 0xe6, 0x1e, 0x2f, 0xff, 0xc2,
+ 0x42, 0x00, 0x22, 0xf5, 0xdb, 0x17, 0x88, 0xfc, 0x0e, 0x81, 0x56, 0x42,
+ 0x76, 0xe4, 0x37, 0x5f, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xb9, 0xc4, 0x11, 0x21, 0x01, 0x0f, 0xe5, 0x30, 0x23, 0xd0, 0x1f,
+ 0xca, 0x3d, 0x7f, 0xff, 0xc4, 0x4f, 0xfb, 0xf1, 0x8a, 0x27, 0xe2, 0x42,
+ 0x3a, 0xfc, 0xff, 0xff, 0x7e, 0x37, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xff,
+ 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xab, 0xdb, 0x60,
+ 0x31, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xeb,
+ 0xd7, 0xbe, 0x2b, 0xff, 0xff, 0xfd, 0x7a, 0xc5, 0x22, 0xa1, 0x18, 0x09,
+ 0x40, 0x30, 0x18, 0x97, 0x6a, 0xb8, 0x00, 0x04, 0xc2, 0xf2, 0x02, 0x72,
+ 0x93, 0x86, 0x56, 0x8e, 0xe7, 0xc5, 0x64, 0x96, 0xab, 0x1a, 0x4b, 0x78,
+ 0x86, 0x12, 0x1f, 0x6f, 0xf0, 0x98, 0xb1, 0x61, 0x8a, 0x17, 0x6f, 0x96,
+ 0x13, 0x20, 0xea, 0xf9, 0x66, 0xc0, 0x95, 0x2c, 0xf7, 0x15, 0xff, 0xeb,
+ 0xe2, 0xcd, 0x43, 0x08, 0x5b, 0x6e, 0x05, 0x01, 0xd2, 0x2a, 0x16, 0xe5,
+ 0x3e, 0xe7, 0x0d, 0xa1, 0xb3, 0xba, 0x9a, 0x4c, 0x3f, 0xff, 0xfd, 0xff,
+ 0xfa, 0xf6, 0x22, 0x20, 0xa2, 0x57, 0x02, 0x15, 0x2c, 0x0e, 0x4f, 0xe4,
+ 0x11, 0xfa, 0xfc, 0x65, 0xd7, 0x72, 0xbb, 0x28, 0xee, 0xe9, 0xea, 0xc5,
+ 0x14, 0x4a, 0xa0, 0xad, 0xe9, 0x1a, 0xec, 0x79, 0x4f, 0x57, 0x9d, 0x75,
+ 0xbc, 0x72, 0xf0, 0xdc, 0x5e, 0xbf, 0x7a, 0xc6, 0x06, 0x3e, 0x11, 0xfa,
+ 0x42, 0x14, 0x11, 0xc0, 0xc2, 0x54, 0xb5, 0x89, 0x63, 0xc2, 0x6a, 0x18,
+ 0xc0, 0x37, 0x01, 0xff, 0x0f, 0x3e, 0x03, 0x08, 0x9b, 0x6d, 0x86, 0x30,
+ 0x08, 0x07, 0xfe, 0x1f, 0x80, 0x90, 0x75, 0x6f, 0xcd, 0xe9, 0xf8, 0x26,
+ 0xa0, 0x00, 0x85, 0xee, 0xee, 0xfb, 0xf8, 0x08, 0xd5, 0x31, 0x07, 0x5f,
+ 0xff, 0x78, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xaf, 0x6d, 0x81,
+ 0x08, 0x13, 0x48, 0x00, 0x11, 0x5b, 0xbb, 0xba, 0xef, 0x80, 0x3f, 0xdc,
+ 0x36, 0x9b, 0xff, 0xf2, 0xef, 0x19, 0xf7, 0xf7, 0x8d, 0xff, 0x2f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff,
+ 0xfe, 0x6f, 0xf2, 0xff, 0xff, 0xff, 0x5f, 0xe6, 0xfa, 0x80, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x21, 0xef, 0x79, 0x01, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xfd, 0x7f, 0xff,
+ 0x78, 0x89, 0x84, 0xea, 0x00, 0x44, 0x7b, 0xbf, 0x8f, 0xdf, 0x2f, 0x8a,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x30, 0xe8, 0x1e, 0x30, 0x10, 0x2a,
+ 0x46, 0x87, 0x31, 0x83, 0x11, 0x88, 0xb3, 0xc4, 0x0a, 0xa3, 0x64, 0x00,
+ 0x3a, 0xd7, 0xcd, 0xd9, 0xff, 0xd1, 0x19, 0x2d, 0xcf, 0x00, 0x6a, 0x0b,
+ 0xc4, 0x98, 0xb9, 0x9b, 0x5d, 0xbd, 0xf5, 0xf8, 0xdc, 0x91, 0xb6, 0x08,
+ 0x0a, 0xf4, 0x3a, 0x3f, 0x16, 0x3f, 0xe7, 0x7d, 0x96, 0x5b, 0x00, 0x46,
+ 0xfb, 0xcb, 0xfc, 0x3b, 0x1a, 0x82, 0x2e, 0x01, 0x7b, 0x89, 0x28, 0x92,
+ 0x98, 0x1e, 0x20, 0x14, 0x09, 0x17, 0xbe, 0x60, 0x6f, 0x1f, 0xee, 0x3e,
+ 0x9d, 0x51, 0x83, 0x82, 0xa9, 0x4d, 0xda, 0xf0, 0x9e, 0x45, 0x84, 0xc4,
+ 0x44, 0x5d, 0xaf, 0x15, 0xff, 0xff, 0xfc, 0x59, 0x24, 0xdc, 0xb4, 0x2a,
+ 0x36, 0x3b, 0x9b, 0xf5, 0xb3, 0xc1, 0x01, 0xb7, 0xe0, 0x0a, 0x0e, 0x82,
+ 0x3d, 0x67, 0xe6, 0xdc, 0xce, 0x4f, 0xcf, 0x00, 0x38, 0xc4, 0xd1, 0xb2,
+ 0x35, 0xde, 0xf8, 0x64, 0xa0, 0x3b, 0xd7, 0xf3, 0x03, 0xab, 0xef, 0xb7,
+ 0xcc, 0xda, 0xea, 0x3b, 0x3f, 0xfd, 0xa3, 0xbd, 0x01, 0xec, 0x67, 0x9f,
+ 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xfe, 0x62, 0x20, 0x0f, 0x0f, 0xf0,
+ 0x94, 0x02, 0x3d, 0x7d, 0xb4, 0xe0, 0x77, 0xd2, 0x17, 0xd0, 0x72, 0xd0,
+ 0xca, 0x69, 0x5b, 0xb0, 0x79, 0x8f, 0x91, 0x1b, 0x55, 0xf9, 0xff, 0x39,
+ 0xa5, 0x95, 0x41, 0xad, 0xac, 0x6c, 0xb0, 0x09, 0x19, 0xd3, 0x0f, 0xc3,
+ 0xa5, 0x18, 0x39, 0xed, 0x84, 0x3e, 0x03, 0x7b, 0xfe, 0x07, 0xff, 0xfd,
+ 0xfd, 0xc6, 0x8a, 0xb4, 0x07, 0xd1, 0x9e, 0x00, 0xf6, 0xfd, 0x0a, 0xa0,
+ 0x74, 0x2f, 0x80, 0x1e, 0xee, 0xbd, 0x48, 0xfb, 0xcb, 0xf3, 0x7f, 0x9c,
+ 0xcf, 0xe0, 0x81, 0xcb, 0x68, 0xfd, 0x79, 0x80, 0xc3, 0x77, 0x5f, 0xff,
+ 0x55, 0xe8, 0x3f, 0x09, 0x3c, 0x71, 0xbe, 0xd0, 0xfb, 0x4a, 0x14, 0x50,
+ 0xec, 0x98, 0x81, 0xf7, 0xf2, 0x7c, 0xa2, 0x11, 0xb7, 0xba, 0xbf, 0xc0,
+ 0x40, 0x66, 0x9e, 0xb1, 0x3f, 0xf8, 0x4b, 0xf0, 0x0f, 0x00, 0x5d, 0x5d,
+ 0xb0, 0x21, 0xd7, 0xfe, 0x00, 0x8d, 0x7a, 0x59, 0xee, 0x53, 0x7f, 0x99,
+ 0xcf, 0x5c, 0x2a, 0x80, 0x19, 0x9f, 0xab, 0x10, 0xf3, 0xa0, 0x7e, 0x04,
+ 0x4d, 0xe0, 0x7e, 0xf6, 0x75, 0xb8, 0x3f, 0x0b, 0xbf, 0x1d, 0xec, 0xde,
+ 0x6d, 0xff, 0xc3, 0xe5, 0x54, 0x3b, 0xc0, 0x6e, 0xb6, 0x95, 0x5b, 0xaf,
+ 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xbd, 0xe4, 0x57,
+ 0x21, 0x27, 0x0b, 0xc7, 0x47, 0x5f, 0x95, 0x18, 0x39, 0x87, 0x50, 0x5f,
+ 0x4b, 0xef, 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf,
+ 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe,
+ 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x1d, 0x60, 0x2d, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x13,
+ 0x87, 0xb1, 0x50, 0x13, 0x63, 0x69, 0x38, 0xfa, 0x19, 0x89, 0x8a, 0xff,
+ 0xff, 0xff, 0x7e, 0x18, 0x30, 0x22, 0x38, 0x83, 0xc4, 0x1a, 0x61, 0x61,
+ 0x20, 0x25, 0x6d, 0xe7, 0xff, 0x78, 0xe4, 0xc8, 0x7a, 0xb4, 0xe0, 0x00,
+ 0x23, 0xe0, 0xea, 0xcc, 0xcd, 0xb4, 0x83, 0x04, 0xca, 0xef, 0xd4, 0x25,
+ 0x1a, 0x71, 0xb5, 0x31, 0x9e, 0xb5, 0x78, 0x70, 0xc0, 0x7f, 0x0f, 0xf0,
+ 0x40, 0x2c, 0x67, 0x36, 0xe5, 0xff, 0x5b, 0xc6, 0x23, 0xeb, 0x5f, 0xf5,
+ 0xbc, 0x57, 0xff, 0xbf, 0x0c, 0x7e, 0xb6, 0x18, 0x07, 0xb2, 0x70, 0x11,
+ 0x94, 0xf4, 0xfc, 0xea, 0xf2, 0xf2, 0xf0, 0x04, 0xde, 0x6b, 0xa9, 0xe7,
+ 0xda, 0x44, 0xc5, 0x4f, 0x3f, 0xd6, 0x52, 0x67, 0xce, 0xbf, 0xff, 0xf7,
+ 0xff, 0xfc, 0x31, 0xc3, 0x07, 0xff, 0x84, 0xb8, 0x02, 0xbd, 0x34, 0xd4,
+ 0x78, 0x81, 0x49, 0x97, 0x80, 0x8b, 0x37, 0xce, 0xd8, 0xeb, 0x2b, 0xc0,
+ 0x9f, 0x84, 0xff, 0xa6, 0xa9, 0xf6, 0xb8, 0x6e, 0x2e, 0x4c, 0x70, 0x63,
+ 0xed, 0x0f, 0xb4, 0x21, 0x41, 0x16, 0x05, 0x08, 0x5c, 0x9f, 0xb4, 0x6d,
+ 0x66, 0x0e, 0x18, 0xae, 0xaa, 0x0b, 0xff, 0x0f, 0xb0, 0x0f, 0xaf, 0x1e,
+ 0xc0, 0x81, 0xf8, 0x63, 0x55, 0xf0, 0xea, 0xa1, 0x82, 0x75, 0x80, 0x7f,
+ 0x4e, 0x5c, 0xa8, 0xb0, 0x8c, 0x16, 0x4d, 0x1e, 0xf0, 0xc7, 0xc3, 0xd5,
+ 0x7e, 0x08, 0x16, 0x3e, 0x1d, 0xd6, 0x06, 0x85, 0xe3, 0xb6, 0x18, 0x8e,
+ 0xaf, 0xff, 0xc3, 0xe5, 0x01, 0xdf, 0xc3, 0xbb, 0x13, 0xab, 0x48, 0x6e,
+ 0xbf, 0xbc, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb0, 0x75, 0x83,
+ 0x27, 0xf9, 0x77, 0x8c, 0xfb, 0xfb, 0xc6, 0xff, 0x97, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f, 0xff, 0xff, 0x37,
+ 0xf9, 0x7f, 0xff, 0xff, 0x8d, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf0,
+ 0x81, 0x02, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x98, 0xb1, 0x38,
+ 0x09, 0xfd, 0xd7, 0x53, 0x7f, 0x00, 0x15, 0x34, 0x9a, 0xe5, 0xbe, 0x43,
+ 0xbe, 0xe9, 0xe2, 0x62, 0xbf, 0xff, 0xff, 0xff, 0xff, 0x28, 0x43, 0x09,
+ 0xb0, 0xdc, 0x97, 0x83, 0x7c, 0x22, 0xc3, 0xe8, 0x5b, 0x40, 0x9d, 0xee,
+ 0x83, 0xfe, 0xef, 0xf1, 0x02, 0x81, 0x36, 0x52, 0xd1, 0xe1, 0x70, 0x24,
+ 0x7d, 0x01, 0x7f, 0x49, 0x03, 0xe0, 0x7c, 0x9d, 0xd9, 0xfe, 0x66, 0x32,
+ 0x60, 0x6b, 0x03, 0xc6, 0x31, 0x0b, 0x24, 0xd8, 0xa4, 0xf4, 0x35, 0xbc,
+ 0xff, 0xe6, 0x51, 0x1c, 0xb9, 0x03, 0xb7, 0xcf, 0xe0, 0x08, 0xee, 0xbe,
+ 0x5e, 0x49, 0xdb, 0x04, 0x8c, 0xc2, 0xa0, 0xbb, 0x05, 0xca, 0x66, 0xd8,
+ 0x8b, 0x1b, 0xbd, 0x4d, 0x2c, 0x86, 0x8f, 0x12, 0xef, 0x21, 0x83, 0x6c,
+ 0x8d, 0xcf, 0xfd, 0x77, 0xe3, 0x65, 0x8f, 0x08, 0x84, 0x2e, 0x58, 0x5a,
+ 0x04, 0x22, 0x52, 0x16, 0x58, 0x38, 0x44, 0x21, 0x92, 0xd2, 0x78, 0x38,
+ 0x03, 0xc7, 0xe2, 0x45, 0xfc, 0x14, 0xd0, 0xdc, 0xdc, 0x75, 0x3d, 0x4a,
+ 0x37, 0x6b, 0xed, 0x33, 0xf0, 0x05, 0x02, 0x18, 0x65, 0x51, 0xbb, 0x5e,
+ 0x58, 0x2c, 0x71, 0x5f, 0xff, 0xff, 0xc6, 0x13, 0x82, 0x3d, 0xb3, 0xdd,
+ 0x99, 0x36, 0x3f, 0x90, 0x5f, 0x9f, 0x63, 0xde, 0x43, 0x56, 0xc0, 0xc1,
+ 0x69, 0xa6, 0x81, 0x66, 0xfd, 0x60, 0x4c, 0xc1, 0xef, 0xc0, 0x03, 0x31,
+ 0xb6, 0xf4, 0x49, 0xb9, 0xd5, 0x6d, 0x63, 0x47, 0x44, 0x5d, 0xaf, 0xd0,
+ 0x39, 0x04, 0x8d, 0xaa, 0x95, 0xea, 0xc0, 0x11, 0xc8, 0xda, 0x41, 0x33,
+ 0x8b, 0x48, 0x5a, 0x54, 0x13, 0x18, 0x2d, 0x12, 0x67, 0xf6, 0x22, 0x37,
+ 0x11, 0xec, 0xdf, 0xff, 0x91, 0x41, 0x09, 0xa0, 0x02, 0xf4, 0xbf, 0x82,
+ 0x85, 0x2b, 0x1f, 0x98, 0x0e, 0xd0, 0x1f, 0x9f, 0xe1, 0xf8, 0x0c, 0xdf,
+ 0xbd, 0xe5, 0x14, 0xa5, 0x93, 0x80, 0x20, 0x62, 0xb0, 0x35, 0x0c, 0x7b,
+ 0xf2, 0x00, 0x3e, 0xf0, 0x32, 0x44, 0x20, 0x07, 0x48, 0x43, 0xba, 0x41,
+ 0x53, 0xe3, 0xdd, 0x03, 0x94, 0x27, 0xa6, 0x05, 0x18, 0x3f, 0x5c, 0x3e,
+ 0x00, 0x7f, 0xf0, 0x8f, 0x16, 0xfa, 0x40, 0x3d, 0x1c, 0x96, 0xcb, 0x9d,
+ 0xfd, 0x3f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x22, 0x09, 0x33, 0xc6, 0xec,
+ 0x20, 0x3f, 0x12, 0x69, 0xf7, 0x4d, 0x18, 0x61, 0xff, 0x84, 0xa1, 0xd2,
+ 0x46, 0x40, 0x18, 0x42, 0x60, 0x36, 0xd4, 0x0b, 0xe0, 0x07, 0x49, 0x19,
+ 0x00, 0x61, 0x09, 0x20, 0x36, 0xd4, 0x00, 0x74, 0x91, 0x90, 0x06, 0x10,
+ 0x92, 0x83, 0x6d, 0x5e, 0x1c, 0xef, 0x06, 0x20, 0x40, 0x12, 0x58, 0x00,
+ 0xfe, 0x94, 0xc7, 0x58, 0x8a, 0x73, 0xbe, 0x86, 0x61, 0xd7, 0xe6, 0xec,
+ 0x37, 0xd9, 0xcd, 0xf4, 0xff, 0xe1, 0xf2, 0xc2, 0x19, 0xc9, 0x91, 0xa7,
+ 0x1e, 0xaf, 0x7e, 0x60, 0xa7, 0xd3, 0x4f, 0x89, 0x37, 0xc0, 0x28, 0x3b,
+ 0x6c, 0x0f, 0xa8, 0x1f, 0x62, 0xc1, 0x74, 0x7a, 0xbe, 0x69, 0x7f, 0xfa,
+ 0xff, 0x00, 0x12, 0x55, 0x13, 0x77, 0x17, 0xde, 0x42, 0x22, 0xff, 0x3e,
+ 0x18, 0xf0, 0xc4, 0xdc, 0x50, 0x88, 0x47, 0xc1, 0xf5, 0x19, 0x19, 0xe0,
+ 0x39, 0x9d, 0x2a, 0x1f, 0x6f, 0x42, 0x62, 0x73, 0x53, 0xd3, 0xe9, 0x4c,
+ 0x50, 0xc9, 0x31, 0xb5, 0x81, 0xf6, 0xf0, 0xff, 0xe0, 0x04, 0x11, 0xbb,
+ 0xf4, 0x8f, 0xdc, 0x7a, 0x23, 0x58, 0xf9, 0xfe, 0x02, 0x32, 0xb4, 0xe7,
+ 0x6a, 0xf7, 0xbf, 0x3f, 0x9f, 0x98, 0xf0, 0xd4, 0x9b, 0x2a, 0x40, 0xed,
+ 0x85, 0x2c, 0x00, 0x22, 0xb7, 0x77, 0x75, 0xdf, 0xe0, 0x03, 0xe8, 0x3b,
+ 0x5c, 0xee, 0x8c, 0x9e, 0xaf, 0x7f, 0xfd, 0xf9, 0xfc, 0xd0, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xc2, 0x04, 0x09, 0x5c, 0x84, 0x8d, 0xc0, 0xab,
+ 0x69, 0xe5, 0x41, 0x23, 0x0b, 0x17, 0xe0, 0x4f, 0xb8, 0xce, 0xd9, 0x79,
+ 0x57, 0x0c, 0xae, 0x53, 0xf1, 0x9c, 0x54, 0xe2, 0xb1, 0xd0, 0xc4, 0xba,
+ 0x23, 0x4c, 0xbb, 0xcf, 0xe2, 0xdb, 0x45, 0xb0, 0xc2, 0x1e, 0xc7, 0x21,
+ 0xb6, 0x7b, 0xa7, 0x7c, 0xca, 0x09, 0xbe, 0x06, 0x69, 0x7f, 0x6c, 0x08,
+ 0x5a, 0x8f, 0xfb, 0xd5, 0xfb, 0xed, 0xf8, 0xdf, 0xf7, 0x38, 0x54, 0x08,
+ 0x9e, 0x80, 0xd2, 0xe3, 0xfe, 0xd4, 0x37, 0x05, 0xd8, 0x7c, 0x7d, 0xf9,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xdf,
+ 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0x5f, 0x60,
+ 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa,
+ 0x2c, 0xa2, 0x70, 0x23, 0xf6, 0x68, 0xd2, 0xfa, 0xe2, 0xbf, 0xff, 0xfe,
+ 0xfd, 0xfa, 0xc2, 0x22, 0x00, 0x06, 0x45, 0x65, 0x17, 0x37, 0xdf, 0xf6,
+ 0x1b, 0xde, 0x04, 0x22, 0x1d, 0xa1, 0x2c, 0x3d, 0xff, 0xa7, 0x8c, 0xb4,
+ 0x60, 0x04, 0xde, 0x9e, 0x17, 0x87, 0xdf, 0xed, 0x18, 0x4d, 0x8d, 0x78,
+ 0x7b, 0x88, 0xe2, 0x3a, 0xb3, 0x01, 0xa8, 0x63, 0x4f, 0x85, 0xff, 0x09,
+ 0x9c, 0x22, 0x06, 0xc0, 0x02, 0x45, 0xea, 0xbe, 0x4c, 0xc6, 0x25, 0xdd,
+ 0xd2, 0xef, 0x67, 0xc5, 0x00, 0x3d, 0x8b, 0xd2, 0x94, 0xfb, 0xfb, 0x8a,
+ 0xff, 0xf7, 0xeb, 0x19, 0xe0, 0x45, 0xed, 0xdb, 0xfc, 0x5e, 0xc0, 0x0a,
+ 0xcc, 0x87, 0x35, 0x67, 0xa4, 0xd6, 0x3f, 0xe0, 0x79, 0xb3, 0xc0, 0xdb,
+ 0x1d, 0x24, 0xbb, 0xbc, 0xf8, 0xf3, 0x4f, 0x53, 0x03, 0xde, 0xff, 0xdb,
+ 0xc7, 0x70, 0xb1, 0x10, 0x64, 0xdf, 0x3f, 0xf8, 0xc3, 0xee, 0xb6, 0x38,
+ 0x63, 0xff, 0xf2, 0x28, 0x21, 0x2c, 0x00, 0x2f, 0x24, 0xdd, 0x7a, 0x13,
+ 0x95, 0xbb, 0xfc, 0x38, 0x07, 0xe1, 0xd6, 0x52, 0x7c, 0x01, 0x56, 0x9a,
+ 0x06, 0x39, 0xf3, 0xc7, 0xff, 0xfb, 0xff, 0xf7, 0xe4, 0xe0, 0x7c, 0x10,
+ 0x80, 0x4d, 0xbe, 0x3f, 0xff, 0xb3, 0x2d, 0xca, 0x84, 0xb9, 0xcf, 0x01,
+ 0xb7, 0x77, 0x5c, 0xc7, 0xf9, 0x70, 0x01, 0xa4, 0x90, 0x96, 0x3a, 0xd3,
+ 0x60, 0x18, 0xdf, 0xbc, 0xac, 0x85, 0x04, 0x46, 0xb2, 0x06, 0x7a, 0x42,
+ 0x44, 0x1c, 0x0c, 0xe1, 0x89, 0x5a, 0x19, 0x13, 0x7e, 0x13, 0x2c, 0x39,
+ 0x07, 0xe1, 0x98, 0x38, 0x3f, 0x0c, 0x00, 0xe3, 0x53, 0xcf, 0x4b, 0xfa,
+ 0x16, 0x18, 0x04, 0x9e, 0x98, 0x66, 0x00, 0x71, 0x5f, 0x00, 0x3f, 0xaa,
+ 0xb6, 0xcf, 0xff, 0x8f, 0x00, 0xfe, 0xc2, 0x80, 0x23, 0x7d, 0x7a, 0xff,
+ 0x6f, 0xfc, 0x01, 0x56, 0xe6, 0xe3, 0xe4, 0xab, 0xbc, 0x73, 0xe8, 0x35,
+ 0x13, 0x86, 0x12, 0x69, 0x0e, 0x71, 0x09, 0xe2, 0xc6, 0x00, 0x8b, 0x7e,
+ 0xbf, 0xc0, 0xff, 0xc1, 0x1f, 0xc7, 0x76, 0xff, 0x00, 0xd7, 0xdc, 0x7a,
+ 0x1b, 0xc7, 0x3e, 0xc9, 0x11, 0x90, 0x4e, 0x02, 0x0d, 0x50, 0x1f, 0xe2,
+ 0xfb, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb1, 0x7d, 0x8a,
+ 0x7f, 0x97, 0x78, 0xc7, 0xfb, 0xfb, 0xc6, 0xf7, 0xf9, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf8, 0x57, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xf3,
+ 0x7f, 0x97, 0x0a, 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf1, 0x89, 0x01,
+ 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x5f, 0xff, 0xfd, 0x7e, 0x49, 0x44, 0xe0, 0x26, 0xd3, 0x6f, 0xf5,
+ 0x71, 0xec, 0x4f, 0x64, 0x88, 0x9b, 0x80, 0x0f, 0x9b, 0xd6, 0x42, 0x3a,
+ 0x92, 0xbb, 0x60, 0x88, 0xbf, 0xff, 0xff, 0xff, 0xf8, 0xa1, 0x50, 0xd2,
+ 0x4d, 0xd0, 0x74, 0x86, 0x84, 0xdd, 0x01, 0x04, 0x66, 0x53, 0x26, 0x64,
+ 0xc5, 0xeb, 0xb6, 0x98, 0xd4, 0xcd, 0x21, 0x11, 0xb9, 0x40, 0xed, 0x8e,
+ 0xb2, 0x28, 0x04, 0x78, 0xf0, 0xe3, 0xa9, 0x8e, 0x47, 0x85, 0x4d, 0x2d,
+ 0xc3, 0xdf, 0x5c, 0x1f, 0x7e, 0xfe, 0x36, 0xf4, 0xb3, 0xf7, 0xf5, 0x6c,
+ 0x43, 0xb3, 0x3c, 0xe6, 0x60, 0x7c, 0x09, 0xdf, 0x98, 0x65, 0x4b, 0x7f,
+ 0x80, 0x28, 0xb2, 0x4c, 0x69, 0x1e, 0xfc, 0xde, 0xc7, 0xac, 0xe8, 0x80,
+ 0xb1, 0x8c, 0x23, 0xe4, 0xfc, 0x03, 0x16, 0x28, 0x18, 0x5e, 0xb2, 0xb6,
+ 0x98, 0x23, 0x34, 0xc0, 0xce, 0x2a, 0x31, 0xa1, 0x3b, 0xeb, 0xc9, 0x3a,
+ 0x7b, 0xf5, 0x7b, 0xb8, 0x31, 0xa7, 0x00, 0x5a, 0xa2, 0xcd, 0x66, 0x34,
+ 0xce, 0x20, 0xcc, 0xf6, 0xa0, 0x59, 0x00, 0x9f, 0xdb, 0x33, 0x13, 0xa4,
+ 0xe1, 0xb2, 0xe3, 0xf5, 0x0d, 0xab, 0x55, 0xdf, 0x39, 0x00, 0x00, 0xc9,
+ 0x73, 0xdc, 0xc9, 0xdd, 0xb4, 0x01, 0x6b, 0x99, 0x06, 0xa8, 0xf0, 0x09,
+ 0xcb, 0x27, 0x45, 0x68, 0x77, 0x9a, 0x47, 0x1b, 0x53, 0x36, 0xba, 0xa7,
+ 0xfc, 0xe0, 0x8e, 0x60, 0xfe, 0x12, 0xfc, 0x10, 0x0b, 0x02, 0x8b, 0xa5,
+ 0x67, 0x92, 0xdf, 0x7d, 0x60, 0x24, 0xcc, 0x51, 0x6a, 0xee, 0xbc, 0x57,
+ 0xff, 0xff, 0xfc, 0xdf, 0x8a, 0x91, 0x31, 0x3b, 0xaa, 0xd9, 0xba, 0x2c,
+ 0x07, 0x10, 0x8a, 0x49, 0x64, 0xb2, 0xf0, 0x40, 0x0e, 0x7d, 0x83, 0xe4,
+ 0x20, 0x63, 0x7c, 0x03, 0x16, 0x29, 0x53, 0xf5, 0x06, 0xe8, 0x7d, 0x9b,
+ 0xf9, 0xf6, 0xd5, 0x2d, 0x3f, 0x38, 0x1b, 0xb2, 0xd4, 0x17, 0x60, 0xe7,
+ 0x19, 0xfe, 0xf0, 0x72, 0x18, 0x21, 0xf0, 0x02, 0xaf, 0xbe, 0x52, 0x5f,
+ 0x57, 0xcc, 0x38, 0xbb, 0xc3, 0xfe, 0x12, 0x40, 0x0f, 0xf7, 0xd3, 0xd0,
+ 0x22, 0x6e, 0x9e, 0xbf, 0xf0, 0x3c, 0x06, 0x11, 0x07, 0x98, 0x56, 0x2a,
+ 0xac, 0x5e, 0xde, 0xf8, 0x00, 0xc1, 0x4c, 0xa4, 0xd6, 0x5f, 0xeb, 0xe1,
+ 0x80, 0x1f, 0x31, 0xe4, 0xce, 0xef, 0x85, 0xac, 0x7a, 0x85, 0xbb, 0x51,
+ 0x50, 0x3f, 0x80, 0x31, 0x13, 0xe8, 0x4a, 0x45, 0x11, 0xff, 0x7f, 0x93,
+ 0xff, 0xff, 0xfe, 0x64, 0x01, 0x5c, 0x0b, 0xfe, 0x12, 0x40, 0xc4, 0xb3,
+ 0xb5, 0x8c, 0x72, 0xa8, 0x6b, 0x7f, 0x72, 0xbd, 0x64, 0x21, 0xbe, 0xd3,
+ 0x8e, 0x5d, 0x1f, 0x6a, 0xf8, 0x9a, 0xaf, 0xaa, 0x4e, 0x7e, 0xad, 0x73,
+ 0xc0, 0xe7, 0xfe, 0x07, 0x8c, 0x27, 0x2f, 0xe8, 0x74, 0x3f, 0xa1, 0xd0,
+ 0xe8, 0x08, 0x30, 0x84, 0x4e, 0x18, 0x1e, 0xfa, 0x9d, 0xe7, 0xe8, 0x37,
+ 0xfc, 0x49, 0x24, 0xea, 0x6f, 0x3e, 0x03, 0x91, 0x91, 0xd3, 0x38, 0x88,
+ 0x9f, 0xc7, 0x7b, 0x83, 0x18, 0xa1, 0x10, 0x05, 0x51, 0x6f, 0xce, 0x2c,
+ 0x7a, 0x19, 0x5a, 0xeb, 0x9d, 0xe7, 0xe8, 0xe2, 0x42, 0xfc, 0xe2, 0x20,
+ 0xea, 0x83, 0x1e, 0xc4, 0xb6, 0xce, 0x8f, 0xf9, 0x33, 0x5b, 0xe5, 0xfe,
+ 0x1e, 0x62, 0xe6, 0x6a, 0xf9, 0xc6, 0x9a, 0x5f, 0x7d, 0xfc, 0x76, 0xbc,
+ 0x77, 0xb1, 0x13, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f,
+ 0xc6, 0x24, 0x44, 0x7b, 0xf1, 0x9e, 0x4f, 0xf8, 0x4b, 0xcb, 0xe3, 0x3f,
+ 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff,
+ 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01,
+ 0xac, 0xa1, 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf,
+ 0xfe, 0xbb, 0xf7, 0xf3, 0x17, 0x01, 0x55, 0x26, 0xcf, 0x68, 0x25, 0xa1,
+ 0xb5, 0xa5, 0x61, 0x51, 0x31, 0x5f, 0xff, 0xfb, 0xcc, 0x68, 0xfc, 0xaa,
+ 0xf1, 0x65, 0x89, 0x61, 0xc4, 0x85, 0x56, 0xc0, 0x4a, 0xf3, 0x35, 0x41,
+ 0xa0, 0x60, 0x10, 0x7d, 0xb4, 0x5d, 0xe1, 0x16, 0x74, 0x9b, 0x84, 0x2e,
+ 0x09, 0xdd, 0xab, 0x78, 0x71, 0x9d, 0xd3, 0xcf, 0x1a, 0x18, 0x34, 0x0b,
+ 0x3c, 0x59, 0x9c, 0x92, 0x63, 0x64, 0x00, 0x67, 0x53, 0xb3, 0x18, 0x88,
+ 0xb5, 0x60, 0xb6, 0x5c, 0x3e, 0x69, 0x81, 0xcc, 0x3e, 0x93, 0xc7, 0x83,
+ 0x99, 0x5d, 0x80, 0x69, 0xa7, 0x28, 0x36, 0x99, 0xe0, 0xdc, 0xcc, 0x80,
+ 0x2d, 0x08, 0xde, 0x8b, 0x0f, 0x40, 0xaa, 0x99, 0xe6, 0xcd, 0xa1, 0xcb,
+ 0x00, 0x7f, 0xe2, 0x01, 0xd3, 0x5c, 0xd6, 0x3e, 0x42, 0xd2, 0xd0, 0xc2,
+ 0x43, 0xed, 0x2f, 0xc2, 0x67, 0x10, 0xd3, 0xe4, 0x9f, 0x5f, 0x9e, 0x23,
+ 0x85, 0x75, 0xb7, 0xc4, 0x23, 0xd3, 0xbf, 0xa5, 0x15, 0xff, 0xfc, 0x31,
+ 0xc7, 0x80, 0x1a, 0x3e, 0xa9, 0x16, 0x4c, 0x00, 0x33, 0x6d, 0xbe, 0x53,
+ 0x70, 0xfb, 0x96, 0x3e, 0xd3, 0x01, 0xdc, 0x77, 0x34, 0x1a, 0x38, 0x95,
+ 0x00, 0x23, 0x36, 0x9a, 0x6b, 0x57, 0x94, 0x4f, 0x82, 0x49, 0x1c, 0x3b,
+ 0x47, 0x8b, 0x2b, 0xf3, 0xc4, 0x59, 0x4c, 0xd0, 0x02, 0x5e, 0x93, 0xf3,
+ 0xf0, 0xc7, 0xef, 0x7f, 0xf1, 0x27, 0xe0, 0x08, 0x65, 0x60, 0xf8, 0xc7,
+ 0xbf, 0x20, 0x0b, 0x54, 0x81, 0xf3, 0x38, 0xe8, 0x7e, 0x10, 0x38, 0x3f,
+ 0x0b, 0xfe, 0x18, 0x1e, 0xe3, 0xff, 0xc3, 0xcc, 0x3b, 0x6b, 0xe7, 0x05,
+ 0xf8, 0x11, 0x5e, 0xba, 0xe1, 0xfb, 0xfe, 0xbf, 0xef, 0xff, 0xf8, 0x60,
+ 0x55, 0x04, 0x2e, 0x3f, 0xf0, 0x91, 0x82, 0x5b, 0x38, 0x48, 0xeb, 0x97,
+ 0x68, 0x31, 0x88, 0x6f, 0x4a, 0x1f, 0x4f, 0xc7, 0x89, 0x95, 0x2c, 0x09,
+ 0x7f, 0xe1, 0x4b, 0x8a, 0x46, 0xff, 0x6a, 0xd9, 0xf5, 0xa6, 0x66, 0x43,
+ 0x7d, 0xe5, 0x0b, 0xff, 0x80, 0x19, 0xf8, 0x6e, 0x2f, 0x0d, 0x7a, 0xeb,
+ 0x1d, 0xb0, 0xcf, 0xae, 0xb1, 0xdc, 0x31, 0xfc, 0x3f, 0xe1, 0x41, 0x10,
+ 0x0a, 0x83, 0xd8, 0xe3, 0x17, 0x67, 0x65, 0x1c, 0x01, 0x47, 0x4d, 0x34,
+ 0x6d, 0x4d, 0x0c, 0x45, 0x27, 0x6c, 0x20, 0x60, 0xcf, 0x64, 0x33, 0xd3,
+ 0x0b, 0x69, 0x7b, 0x62, 0xe3, 0x1c, 0xa5, 0xff, 0xc5, 0xd9, 0x98, 0x10,
+ 0xb2, 0x00, 0x65, 0x8e, 0x26, 0xff, 0xb2, 0x84, 0x59, 0x90, 0xeb, 0x06,
+ 0x56, 0x5a, 0x28, 0x0c, 0x45, 0x86, 0xaf, 0xfc, 0x8d, 0x77, 0xbb, 0x2b,
+ 0x5c, 0xa2, 0x17, 0x12, 0x01, 0x00, 0xee, 0xba, 0x60, 0x47, 0x76, 0x18,
+ 0x8e, 0xb3, 0x42, 0x9c, 0x2c, 0xd6, 0xc0, 0x47, 0x9f, 0x3f, 0x31, 0x79,
+ 0x9a, 0xd8, 0xb6, 0x4f, 0x44, 0x66, 0xd1, 0xc1, 0x5d, 0xad, 0xaf, 0xf2,
+ 0x44, 0x45, 0x58, 0xd4, 0x1d, 0x24, 0x69, 0x83, 0x24, 0x93, 0x0d, 0x47,
+ 0x4a, 0x36, 0xf8, 0x63, 0x44, 0x13, 0x9c, 0xa6, 0x20, 0x23, 0x70, 0x1d,
+ 0x11, 0x5a, 0x58, 0x46, 0x53, 0xdf, 0x9e, 0x20, 0x32, 0xdf, 0xdc, 0x9d,
+ 0x5b, 0x0a, 0x29, 0xcf, 0xe8, 0x13, 0xfc, 0xa2, 0xeb, 0x33, 0xd3, 0x68,
+ 0x61, 0x13, 0x94, 0xc6, 0x0f, 0x27, 0xa6, 0x25, 0x4f, 0x58, 0xa5, 0x63,
+ 0xb3, 0x6d, 0xa1, 0x8c, 0x29, 0xe9, 0x26, 0x9e, 0xdc, 0x0f, 0x01, 0x8c,
+ 0x83, 0x83, 0x02, 0x9a, 0x48, 0x3d, 0xe5, 0xaf, 0xf0, 0x0d, 0xdb, 0x52,
+ 0x97, 0x80, 0xc1, 0xcf, 0xc1, 0x84, 0xbc, 0xec, 0x14, 0xda, 0x06, 0xc8,
+ 0x97, 0xab, 0xff, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb2, 0x85,
+ 0x8b, 0x90, 0xd0, 0x02, 0x39, 0xfd, 0x88, 0x9d, 0x07, 0xef, 0xe2, 0x26,
+ 0x10, 0x8c, 0x49, 0x61, 0xe4, 0x23, 0x12, 0x5b, 0xe0, 0x6a, 0x71, 0xff,
+ 0xc4, 0x30, 0x06, 0xcb, 0x49, 0xa7, 0xe1, 0x84, 0x21, 0x11, 0x2d, 0xfc,
+ 0x8d, 0x63, 0xfc, 0x31, 0xb4, 0x5c, 0x3f, 0xf0, 0x91, 0x00, 0xe4, 0x03,
+ 0x08, 0x80, 0x25, 0x14, 0xb0, 0x00, 0x10, 0x01, 0x7e, 0x00, 0xcb, 0x28,
+ 0x1a, 0x2c, 0x07, 0x08, 0x00, 0x04, 0x75, 0x01, 0x1c, 0x07, 0x57, 0x26,
+ 0xa4, 0x1d, 0x5d, 0xc3, 0x18, 0x5f, 0xff, 0xc2, 0x45, 0x80, 0x2b, 0x66,
+ 0x44, 0xd3, 0xf3, 0xe0, 0x8b, 0xf7, 0x8c, 0xc9, 0xf6, 0x18, 0xfa, 0xb7,
+ 0xc3, 0x1b, 0x14, 0x28, 0x03, 0x80, 0xe4, 0x21, 0x10, 0x99, 0x80, 0x08,
+ 0x43, 0xd5, 0x0a, 0xb8, 0xac, 0xf8, 0x0d, 0x37, 0xa3, 0xce, 0x24, 0x6e,
+ 0x60, 0x5d, 0x58, 0x51, 0xfd, 0x42, 0xba, 0x9f, 0xa9, 0xd4, 0x18, 0xb5,
+ 0x09, 0xb5, 0xba, 0x91, 0xe0, 0x38, 0x0e, 0x42, 0x11, 0x09, 0x98, 0x62,
+ 0xc3, 0x47, 0xb5, 0x9d, 0x5b, 0xe0, 0x85, 0xb2, 0xe1, 0xc4, 0x21, 0x53,
+ 0x30, 0xc6, 0x1a, 0xb7, 0xf8, 0xc6, 0x40, 0x04, 0x21, 0xea, 0x85, 0x5c,
+ 0x56, 0x7c, 0x06, 0x9b, 0xd1, 0xe7, 0x12, 0x37, 0x30, 0x2e, 0xac, 0x28,
+ 0xfe, 0xa1, 0x5d, 0x4f, 0xd4, 0xea, 0x0c, 0x5a, 0x84, 0xda, 0xdd, 0x48,
+ 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x03, 0x25, 0xa9, 0x86, 0x2c, 0x34, 0x7b,
+ 0x59, 0xd5, 0xbe, 0x08, 0x5b, 0x2e, 0x1c, 0x42, 0x15, 0x33, 0x0c, 0x61,
+ 0xab, 0x7f, 0x8c, 0x64, 0x00, 0x42, 0x1e, 0xa8, 0x55, 0xc5, 0x67, 0xc0,
+ 0x69, 0xbd, 0x1e, 0x71, 0x23, 0x73, 0x02, 0xea, 0xc2, 0x8f, 0xea, 0x15,
+ 0xd4, 0xfd, 0x4e, 0xa0, 0xc5, 0xa8, 0x4d, 0xad, 0xd4, 0x80, 0x03, 0x2f,
+ 0xee, 0x9d, 0xd0, 0x32, 0x5a, 0x98, 0x62, 0xc3, 0x47, 0xb5, 0x9d, 0x5b,
+ 0xe0, 0x85, 0xb2, 0xe1, 0xc4, 0x21, 0x53, 0x30, 0xc6, 0x1a, 0xb1, 0x7c,
+ 0x69, 0x19, 0x00, 0x33, 0x29, 0x11, 0x98, 0x0c, 0x65, 0xda, 0x03, 0xaf,
+ 0x7d, 0xfb, 0x42, 0xdf, 0xfc, 0x2d, 0x8b, 0x07, 0x49, 0xbd, 0x3d, 0xde,
+ 0xdf, 0xe0, 0x0f, 0x4b, 0x78, 0x00, 0x32, 0xfe, 0xe9, 0xdd, 0x03, 0x25,
+ 0xa8, 0x00, 0x1d, 0xbf, 0xe5, 0x7c, 0x07, 0x7b, 0xcc, 0x25, 0x53, 0x6f,
+ 0xd5, 0xc4, 0x10, 0x06, 0x88, 0x0b, 0x89, 0x90, 0x0c, 0x47, 0x7a, 0xa3,
+ 0x23, 0xfe, 0x7d, 0x0c, 0x61, 0xab, 0x16, 0x8b, 0x1a, 0x46, 0x40, 0x0c,
+ 0xca, 0x44, 0x66, 0x03, 0x19, 0x76, 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7,
+ 0xff, 0x0b, 0x62, 0xc1, 0xd2, 0x6f, 0x4f, 0x77, 0xb7, 0xf8, 0x03, 0xd2,
+ 0xde, 0xe2, 0xe4, 0x8b, 0x3d, 0x00, 0x23, 0x6f, 0x7c, 0xad, 0xbf, 0xff,
+ 0x07, 0x7b, 0xcc, 0x25, 0x53, 0x6f, 0xd5, 0xc4, 0x10, 0x06, 0x88, 0x0b,
+ 0x89, 0x90, 0x0c, 0x47, 0x7a, 0xa3, 0x23, 0xfe, 0x7d, 0x0c, 0x61, 0xab,
+ 0x16, 0x98, 0xd2, 0x32, 0x00, 0x66, 0x52, 0x23, 0x30, 0x18, 0xcb, 0xb4,
+ 0x07, 0x5e, 0xfb, 0xf6, 0x85, 0xbf, 0xf8, 0x5b, 0x16, 0x0e, 0x93, 0x7a,
+ 0x7b, 0xbd, 0xbf, 0xc0, 0x1e, 0x96, 0xf7, 0x16, 0x49, 0x13, 0x3d, 0x00,
+ 0x07, 0x6f, 0xf9, 0x5f, 0x01, 0xde, 0xf3, 0x09, 0x54, 0xdb, 0xf5, 0x71,
+ 0x04, 0x01, 0xa2, 0x02, 0xe2, 0x64, 0x03, 0x11, 0xde, 0xa8, 0xc8, 0xff,
+ 0x9f, 0x43, 0x18, 0x6a, 0xc5, 0xa2, 0xd3, 0x8c, 0x80, 0x19, 0x94, 0x88,
+ 0xcc, 0x06, 0x32, 0xed, 0x01, 0xd7, 0xbe, 0xfd, 0xa1, 0x6f, 0xfe, 0x16,
+ 0xc5, 0x83, 0xa4, 0xde, 0x9e, 0xec, 0x6a, 0xa0, 0x07, 0xa4, 0x9d, 0xc5,
+ 0xc9, 0x16, 0x7a, 0x00, 0x46, 0xde, 0xf9, 0x5b, 0x7f, 0xfe, 0x0e, 0xf7,
+ 0x98, 0x4a, 0xa6, 0xdf, 0xab, 0xae, 0xf3, 0xab, 0xa6, 0x47, 0xf9, 0xf1,
+ 0x71, 0x33, 0x54, 0xb6, 0xed, 0x5b, 0xe5, 0xe8, 0x63, 0xea, 0x64, 0x14,
+ 0xb2, 0x77, 0xf8, 0x3c, 0x00, 0xcc, 0xa4, 0x46, 0x60, 0x31, 0x97, 0x68,
+ 0x0e, 0xbd, 0xf7, 0xed, 0x0b, 0x7f, 0xfa, 0x40, 0x00, 0x5c, 0x10, 0x7e,
+ 0x43, 0xb1, 0xaa, 0x80, 0x1e, 0x92, 0x67, 0xc1, 0xbf, 0xed, 0x2e, 0xdf,
+ 0xe7, 0x83, 0x0d, 0xe4, 0x4c, 0xd6, 0xaf, 0x00, 0x4e, 0xbc, 0x32, 0xd8,
+ 0x99, 0xdd, 0x97, 0x79, 0xd5, 0xd1, 0x91, 0xfe, 0x7d, 0xbe, 0x1a, 0xf5,
+ 0x5d, 0xfd, 0xfe, 0xaa, 0x5b, 0x76, 0xad, 0xf2, 0xf4, 0x31, 0xf5, 0x32,
+ 0x0a, 0x59, 0x38, 0xc8, 0x01, 0x99, 0x48, 0x8c, 0xc0, 0x63, 0x2e, 0xd0,
+ 0x1d, 0x7b, 0xef, 0xda, 0x16, 0xff, 0xf4, 0x80, 0x00, 0xb8, 0x20, 0xfc,
+ 0x87, 0x63, 0x55, 0x00, 0x3d, 0x24, 0xcf, 0x83, 0x7f, 0xda, 0x5d, 0x9f,
+ 0xe7, 0x83, 0x0d, 0xe4, 0x4c, 0xd6, 0xaf, 0x00, 0x6e, 0x7c, 0x32, 0xd4,
+ 0x82, 0x3b, 0x3a, 0xaf, 0x3a, 0xb9, 0x89, 0xff, 0x3a, 0xdf, 0x0d, 0x7a,
+ 0xae, 0xfe, 0xff, 0x4d, 0x1d, 0xbb, 0x4c, 0x70, 0xee, 0xa1, 0x8f, 0xa9,
+ 0x90, 0x52, 0xc9, 0xc6, 0x40, 0x0c, 0xca, 0x44, 0x66, 0x03, 0x19, 0x76,
+ 0x80, 0xeb, 0xdf, 0x7e, 0xd0, 0xb7, 0xff, 0xa4, 0x00, 0x05, 0xc1, 0x07,
+ 0xe4, 0x3b, 0x1a, 0xa8, 0x01, 0xe9, 0x26, 0x7c, 0x23, 0xbb, 0x4b, 0xb3,
+ 0xfc, 0xf0, 0x61, 0xbc, 0x89, 0x9a, 0xd5, 0xe0, 0x0d, 0xcf, 0x86, 0x5a,
+ 0x90, 0x47, 0x67, 0x55, 0xe7, 0x57, 0x31, 0x3f, 0xe7, 0x5b, 0xe1, 0xaf,
+ 0x55, 0xdf, 0xdf, 0xe9, 0xa3, 0xb7, 0x69, 0x8e, 0x1d, 0xd4, 0x31, 0xf3,
+ 0x54, 0x0a, 0x3b, 0x43, 0x7f, 0x83, 0xc0, 0x02, 0x9d, 0xcc, 0xab, 0x58,
+ 0x62, 0x94, 0xac, 0x39, 0x9e, 0x36, 0x45, 0xff, 0xd4, 0x9c, 0x00, 0x02,
+ 0xa0, 0x85, 0xe4, 0x2f, 0x15, 0x03, 0xfb, 0x55, 0xf3, 0x7c, 0x23, 0xbb,
+ 0x4b, 0xb7, 0xf9, 0xe0, 0x1a, 0x37, 0x36, 0x2d, 0x69, 0x58, 0x00, 0xc4,
+ 0x79, 0x19, 0xc8, 0x14, 0x7f, 0xaa, 0x60, 0x19, 0x6f, 0x95, 0x87, 0x1d,
+ 0xb2, 0x60, 0x76, 0x94, 0x98, 0xe1, 0xdd, 0x66, 0xcd, 0x5f, 0xf6, 0xff,
+ 0xdd, 0xd0, 0xc7, 0xea, 0x81, 0x4b, 0x78, 0xc8, 0x00, 0x53, 0xb9, 0x95,
+ 0x6b, 0x0c, 0x52, 0x93, 0x95, 0xb3, 0x33, 0x01, 0x5d, 0xf3, 0xd3, 0x80,
+ 0x00, 0x54, 0x10, 0xbc, 0x85, 0xe2, 0xa0, 0x7f, 0x25, 0xfe, 0x6f, 0x87,
+ 0xb4, 0x76, 0x63, 0xae, 0xe0, 0x06, 0x8d, 0xdb, 0x16, 0xb4, 0xac, 0x00,
+ 0x62, 0x3c, 0x9b, 0x90, 0x28, 0xff, 0x54, 0xc0, 0x32, 0xdf, 0x39, 0x07,
+ 0x1d, 0xb2, 0x60, 0x76, 0xa9, 0x63, 0x87, 0x75, 0xbb, 0x35, 0x7f, 0xd7,
+ 0xf7, 0xa1, 0x8f, 0xd5, 0x02, 0x96, 0xf1, 0x90, 0x00, 0xa7, 0x73, 0x2a,
+ 0xd6, 0x18, 0xa5, 0x27, 0x2b, 0x66, 0x66, 0x02, 0xbb, 0xe7, 0xa7, 0x00,
+ 0x00, 0xa8, 0x21, 0x79, 0x0b, 0xc5, 0x40, 0xfe, 0x4b, 0xfc, 0xdf, 0x0f,
+ 0x68, 0xec, 0xc7, 0x5d, 0xc0, 0x0d, 0x1b, 0xb6, 0x2d, 0x69, 0x58, 0x00,
+ 0xc4, 0x79, 0x37, 0x20, 0x51, 0xfe, 0xa9, 0x80, 0x65, 0xbe, 0x72, 0x0e,
+ 0x3b, 0x64, 0xc0, 0xed, 0x52, 0xc7, 0x0e, 0xeb, 0x76, 0x6a, 0xff, 0xaf,
+ 0xef, 0x43, 0x1e, 0x02, 0xc8, 0x14, 0x8a, 0x30, 0x46, 0x40, 0x02, 0x9d,
+ 0xcc, 0xa5, 0x2c, 0x37, 0xc7, 0xd8, 0x8e, 0x89, 0x33, 0xe6, 0xba, 0xbb,
+ 0x80, 0x7a, 0xa0, 0xfe, 0x7d, 0x3b, 0xa3, 0x69, 0x7d, 0x7b, 0xe1, 0xed,
+ 0x1d, 0x98, 0xeb, 0xb8, 0x1e, 0x21, 0x0a, 0xa4, 0xc2, 0x04, 0x01, 0x22,
+ 0x00, 0x51, 0xce, 0x63, 0x4b, 0x6a, 0x15, 0xe0, 0x67, 0x1e, 0xba, 0x65,
+ 0x3f, 0xf7, 0xc0, 0x42, 0x86, 0x14, 0x4a, 0x86, 0x2c, 0x1c, 0x51, 0x82,
+ 0xf7, 0x13, 0xd5, 0x0b, 0xb8, 0x03, 0x39, 0xac, 0xc6, 0x6a, 0xb0, 0xdd,
+ 0x75, 0x29, 0x00, 0xd7, 0xf7, 0x00, 0x3f, 0x2c, 0x44, 0xbf, 0xa8, 0x01,
+ 0xe9, 0x1a, 0xee, 0xbe, 0x00, 0x19, 0x7f, 0x74, 0xee, 0x86, 0x08, 0x42,
+ 0xa1, 0x30, 0x81, 0x00, 0x48, 0x80, 0x24, 0x73, 0xc6, 0x96, 0xb3, 0xbb,
+ 0x9e, 0x06, 0x71, 0xeb, 0xa6, 0x49, 0xff, 0xbe, 0x07, 0x0c, 0x63, 0x50,
+ 0x64, 0x00, 0xc5, 0x18, 0x2f, 0x81, 0x55, 0x3a, 0x77, 0xe0, 0x0a, 0x77,
+ 0x75, 0xcc, 0x64, 0xff, 0x66, 0x91, 0x66, 0x02, 0x8b, 0x15, 0x00, 0xda,
+ 0xee, 0x01, 0xea, 0x82, 0xf9, 0xf4, 0x6e, 0x87, 0xd2, 0x57, 0x76, 0x7b,
+ 0x80, 0x06, 0x5f, 0xdd, 0x3b, 0xa1, 0x82, 0x10, 0xaa, 0x4c, 0x20, 0x40,
+ 0x16, 0x40, 0x0e, 0x39, 0xd8, 0xd2, 0xd6, 0x6e, 0xef, 0x03, 0x38, 0xf5,
+ 0xd3, 0x16, 0x7f, 0xef, 0x83, 0x2a, 0x61, 0x87, 0x86, 0x6c, 0x9e, 0x20,
+ 0xdb, 0xf5, 0x7e, 0x00, 0x19, 0xca, 0xd2, 0xce, 0x30, 0x67, 0x04, 0xf4,
+ 0x35, 0x3b, 0x64, 0x83, 0xf3, 0xf5, 0x95, 0x7d, 0xc0, 0x3d, 0x70, 0xbb,
+ 0xfa, 0xff, 0xf8, 0x8e, 0x2c, 0xdf, 0xff, 0x1f, 0x00, 0x0c, 0xbf, 0xba,
+ 0x77, 0x43, 0x04, 0x21, 0x54, 0x98, 0x40, 0x80, 0x24, 0x41, 0x7c, 0xe3,
+ 0x66, 0xb5, 0xe1, 0xa7, 0x03, 0x38, 0xf5, 0xd3, 0x14, 0x7f, 0xef, 0x84,
+ 0x6d, 0x31, 0x0c, 0x7c, 0xc9, 0x3f, 0x6c, 0x64, 0x00, 0x33, 0x95, 0xa5,
+ 0x9c, 0x60, 0xce, 0x09, 0xe8, 0x6a, 0x76, 0xc9, 0x07, 0xe7, 0xea, 0x8b,
+ 0xa8, 0x67, 0xaf, 0x15, 0xd5, 0xb5, 0xff, 0xf1, 0x1c, 0x59, 0xbf, 0xfe,
+ 0x3c, 0x00, 0x33, 0x6f, 0xf9, 0x5f, 0x32, 0x4d, 0x41, 0xb5, 0x01, 0x13,
+ 0x8d, 0x9a, 0xd7, 0x86, 0x9c, 0x08, 0x51, 0xb4, 0x7b, 0x23, 0x69, 0x88,
+ 0x63, 0xe6, 0x49, 0xfb, 0x63, 0x20, 0x01, 0x9c, 0xad, 0x2c, 0xe3, 0x06,
+ 0x70, 0x4f, 0x43, 0x53, 0xb6, 0x48, 0x3f, 0x3f, 0x54, 0x5d, 0x43, 0x3d,
+ 0x78, 0xae, 0xad, 0xaf, 0xff, 0x88, 0xe2, 0xcd, 0xff, 0xf1, 0xe0, 0x01,
+ 0x9b, 0x7f, 0xca, 0xf9, 0x92, 0x6a, 0x0d, 0xa8, 0x08, 0x9c, 0x6c, 0xd6,
+ 0xbc, 0x34, 0xe0, 0x42, 0x8d, 0xa3, 0xd9, 0x1b, 0x4c, 0x43, 0x1f, 0x52,
+ 0x4f, 0xa3, 0x14, 0x64, 0x00, 0x33, 0x95, 0xa5, 0x9c, 0x60, 0xce, 0x09,
+ 0xea, 0x3f, 0x41, 0x89, 0xb7, 0x9b, 0x8f, 0xf1, 0x45, 0xa4, 0x60, 0x6b,
+ 0x7a, 0x1d, 0xc7, 0x57, 0xd9, 0x47, 0x8b, 0xb9, 0xfa, 0xf0, 0x00, 0xcd,
+ 0xbf, 0xe5, 0x7c, 0xc9, 0x35, 0x03, 0x06, 0x60, 0x54, 0xe6, 0x3b, 0x44,
+ 0x7f, 0xfb, 0xa0, 0x42, 0x46, 0xc8, 0xf6, 0x40, 0x01, 0x2a, 0xa6, 0x61,
+ 0x8b, 0x30, 0x32, 0x47, 0x89, 0x4b, 0x13, 0x20, 0x00, 0x4a, 0x89, 0x90,
+ 0x85, 0x31, 0x5d, 0x6f, 0xfe, 0x00, 0xad, 0xe9, 0x9c, 0x60, 0x41, 0x1d,
+ 0xae, 0xa9, 0x72, 0x27, 0x3e, 0x7c, 0xbc, 0x0c, 0xe3, 0xb9, 0x76, 0x93,
+ 0xfe, 0x57, 0x9b, 0x9c, 0xed, 0x5e, 0xdd, 0x35, 0xde, 0xb9, 0xbf, 0xfe,
+ 0x0c, 0x40, 0x00, 0x2a, 0x56, 0x00, 0xa2, 0x7e, 0xb7, 0xda, 0xfb, 0xfc,
+ 0x00, 0x1e, 0x3d, 0x61, 0x34, 0x93, 0x89, 0xf5, 0x6a, 0xe0, 0x1a, 0xf4,
+ 0x7d, 0x5e, 0x86, 0x11, 0x82, 0xc9, 0x11, 0xa0, 0x97, 0xb8, 0x39, 0x2b,
+ 0xd3, 0xd6, 0xef, 0xcf, 0x18, 0x53, 0x15, 0xd6, 0xdf, 0x41, 0x10, 0x7f,
+ 0xab, 0x8f, 0xfd, 0xef, 0xa9, 0x72, 0x27, 0x37, 0x3e, 0x5e, 0x06, 0x71,
+ 0xdc, 0xbb, 0x49, 0xff, 0x2b, 0xcd, 0xce, 0x76, 0xaf, 0x6e, 0x9a, 0xef,
+ 0x5c, 0xdf, 0xff, 0x06, 0x58, 0x00, 0x15, 0x46, 0x00, 0xa2, 0x7e, 0xb7,
+ 0xd9, 0x7d, 0xfe, 0x00, 0x33, 0x83, 0x57, 0x18, 0x9f, 0xf3, 0xaa, 0xd5,
+ 0xc0, 0x35, 0xe8, 0x5d, 0x5e, 0x0f, 0xde, 0x18, 0x46, 0x0b, 0x24, 0x46,
+ 0x82, 0x5e, 0xe1, 0x25, 0x7a, 0x7a, 0xdd, 0xf9, 0xe3, 0x0a, 0x62, 0xba,
+ 0xdb, 0xe8, 0x19, 0x07, 0xfa, 0xae, 0x7f, 0xee, 0xfa, 0x97, 0x22, 0x73,
+ 0x73, 0xe5, 0xe0, 0x67, 0x1d, 0xcb, 0xb4, 0x9f, 0xf2, 0xbc, 0xdc, 0xe7,
+ 0x6a, 0xf6, 0xe9, 0xae, 0xf5, 0xcd, 0xff, 0xf0, 0x65, 0x80, 0x01, 0x54,
+ 0x60, 0x0a, 0x27, 0xeb, 0x7d, 0x97, 0xdf, 0xe0, 0x03, 0x38, 0x35, 0x71,
+ 0x89, 0xff, 0x3a, 0xad, 0x5c, 0x03, 0x5e, 0x85, 0xd5, 0xe0, 0xfd, 0xe1,
+ 0x84, 0x83, 0x30, 0x5c, 0x41, 0x38, 0xe2, 0x61, 0x25, 0x7a, 0x7a, 0xdd,
+ 0xf9, 0xe2, 0x4d, 0x40, 0x64, 0x1f, 0xea, 0xb9, 0xff, 0xbb, 0xef, 0xa3,
+ 0x24, 0xb9, 0xb3, 0xfc, 0x01, 0xe4, 0xda, 0x83, 0xb7, 0x2f, 0x55, 0xbe,
+ 0x9f, 0xff, 0xd7, 0x5a, 0x92, 0x56, 0xaf, 0x06, 0x58, 0x00, 0x15, 0x46,
+ 0x00, 0xba, 0xe8, 0x5d, 0x5e, 0xd4, 0x97, 0x00, 0x19, 0xc1, 0xab, 0x8c,
+ 0x4f, 0xf9, 0xd5, 0x6a, 0xe8, 0xd8, 0x5b, 0x57, 0xa1, 0x8e, 0xcc, 0x11,
+ 0x40, 0x46, 0xc7, 0x79, 0xb3, 0x27, 0xb5, 0x0e, 0x1d, 0x40, 0xa0, 0x54,
+ 0x1f, 0xe8, 0xeb, 0x2f, 0xbf, 0xd7, 0xd1, 0x92, 0x5c, 0xf3, 0xfc, 0x01,
+ 0xe4, 0xda, 0x83, 0xbb, 0x2f, 0x55, 0xbe, 0xb5, 0x75, 0xa4, 0xa5, 0x6a,
+ 0xf0, 0x61, 0x03, 0x14, 0x0e, 0xc3, 0x5f, 0xfb, 0xed, 0xab, 0xa1, 0x75,
+ 0x7b, 0x52, 0x5c, 0x1a, 0x03, 0x2d, 0x59, 0xcc, 0x38, 0xed, 0x98, 0x4e,
+ 0x52, 0xc1, 0xad, 0xf6, 0x36, 0xe0, 0x63, 0xfe, 0x18, 0xec, 0xc1, 0x14,
+ 0x04, 0x6c, 0x77, 0x9b, 0x32, 0x3d, 0xa4, 0x38, 0x75, 0x12, 0x6a, 0x01,
+ 0x50, 0x7f, 0xa3, 0xac, 0xbe, 0xff, 0x5f, 0x46, 0x49, 0x73, 0x67, 0xf8,
+ 0x03, 0xc9, 0xb5, 0x07, 0x76, 0x5e, 0xab, 0x7d, 0x6a, 0xeb, 0x49, 0x4a,
+ 0xd5, 0xe0, 0xc2, 0x06, 0x28, 0x1d, 0x86, 0xbf, 0xf7, 0xdb, 0x57, 0x42,
+ 0xea, 0xf6, 0xa4, 0xb8, 0x34, 0x06, 0x5a, 0xb3, 0x98, 0x71, 0xdb, 0x30,
+ 0x9c, 0xa5, 0x83, 0x5b, 0xec, 0x6d, 0xc0, 0xc7, 0xfc, 0x31, 0xd9, 0xb7,
+ 0x40, 0x46, 0xfb, 0xcd, 0x99, 0x3d, 0xa8, 0x70, 0xea, 0x05, 0x02, 0xa0,
+ 0xff, 0x47, 0x59, 0x7d, 0xfe, 0xbe, 0x8c, 0x92, 0xe7, 0x9f, 0xe0, 0x0e,
+ 0x48, 0xda, 0x83, 0x8b, 0xa9, 0x8a, 0xea, 0xa9, 0x49, 0x6a, 0xf7, 0x84,
+ 0x0c, 0x50, 0x3b, 0x0d, 0x7f, 0xef, 0xb6, 0xae, 0x85, 0xd5, 0xed, 0x49,
+ 0x70, 0x68, 0x0c, 0xb5, 0x67, 0x30, 0xe3, 0xb6, 0x61, 0x39, 0x4b, 0x06,
+ 0xb7, 0xd8, 0xdb, 0x81, 0xff, 0x86, 0x3b, 0x6c, 0xa8, 0xc8, 0xd2, 0xe2,
+ 0x79, 0x93, 0xf5, 0xf7, 0x3f, 0xf7, 0x79, 0xf6, 0x98, 0x42, 0xd2, 0x60,
+ 0x5a, 0x51, 0x3f, 0xcc, 0xb2, 0x98, 0xb8, 0xa6, 0x48, 0xd1, 0xbf, 0xf7,
+ 0xe0, 0x0d, 0x2a, 0x20, 0xfc, 0x89, 0x3f, 0x34, 0x60, 0x42, 0x5a, 0x78,
+ 0x1c, 0x7a, 0x41, 0x23, 0x9e, 0x34, 0xb5, 0x9d, 0xdc, 0xf5, 0x3d, 0x4e,
+ 0x0d, 0x7f, 0x27, 0xfc, 0xfa, 0x18, 0xed, 0xb3, 0xa3, 0x21, 0x7c, 0x4e,
+ 0xf2, 0x7e, 0xbe, 0xcf, 0xfd, 0xfd, 0x9f, 0x69, 0x83, 0xd7, 0x24, 0xc1,
+ 0x29, 0x44, 0xff, 0x45, 0x0a, 0x63, 0x2a, 0x62, 0x46, 0x8d, 0xff, 0xbf,
+ 0x00, 0x69, 0x51, 0x07, 0xe4, 0x49, 0xf9, 0xa3, 0x02, 0x12, 0xd3, 0xc0,
+ 0xe3, 0xd2, 0x09, 0x1c, 0xf1, 0xa5, 0xac, 0xee, 0xe7, 0xa9, 0xf7, 0x9c,
+ 0x1a, 0xa9, 0xbf, 0x5f, 0x61, 0x8e, 0xdb, 0x22, 0x32, 0x14, 0xb8, 0x9e,
+ 0xe4, 0xfd, 0x7d, 0xd7, 0xdc, 0x7d, 0xa6, 0x5e, 0xa6, 0x09, 0x4a, 0x27,
+ 0xfa, 0x28, 0x53, 0x19, 0x53, 0x12, 0x34, 0x6f, 0xfd, 0xc9, 0xf1, 0xbf,
+ 0xf6, 0x00, 0xd2, 0xa2, 0x0f, 0xc8, 0x9b, 0xf3, 0x46, 0x04, 0x25, 0xa7,
+ 0x81, 0xc7, 0xa4, 0x12, 0x39, 0xe3, 0x4b, 0x59, 0xdd, 0xcf, 0x53, 0xef,
+ 0x38, 0x35, 0x53, 0x7e, 0xbe, 0xc3, 0x18, 0xf6, 0x44, 0x64, 0x69, 0x71,
+ 0x30, 0x42, 0xde, 0x0f, 0xf3, 0xaf, 0xbe, 0xe2, 0x04, 0x01, 0x19, 0x01,
+ 0x69, 0x30, 0x5b, 0xa1, 0x0d, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8, 0xdf,
+ 0xde, 0x04, 0xe2, 0x17, 0xa6, 0x81, 0xc7, 0xa4, 0x0b, 0xfb, 0x2c, 0x73,
+ 0x15, 0x0f, 0x78, 0x1d, 0x9c, 0xb0, 0xd3, 0xf2, 0x7f, 0xcf, 0xaa, 0xd6,
+ 0xf1, 0xad, 0xac, 0xee, 0xe7, 0xa1, 0x8c, 0x7b, 0x22, 0x32, 0x34, 0xb8,
+ 0x9e, 0xac, 0x67, 0x07, 0xfa, 0xbd, 0x3f, 0xf6, 0x10, 0x20, 0x08, 0xc8,
+ 0x09, 0x32, 0x60, 0x65, 0x82, 0x19, 0xa6, 0x08, 0xef, 0xf6, 0x83, 0xf8,
+ 0xdf, 0xde, 0x01, 0xef, 0xb0, 0xbd, 0x36, 0x0e, 0x3d, 0x20, 0x5f, 0xd9,
+ 0x63, 0x98, 0xa8, 0x7b, 0xc0, 0xec, 0xe5, 0x86, 0x9f, 0x93, 0xfe, 0x7d,
+ 0x76, 0xb7, 0x8d, 0x6d, 0x8c, 0x6e, 0xa8, 0x63, 0x1e, 0xc8, 0x8c, 0x8d,
+ 0x2e, 0x26, 0x5f, 0x63, 0x38, 0x3f, 0xd5, 0xe9, 0xff, 0xb0, 0x81, 0x00,
+ 0x46, 0x40, 0x49, 0x93, 0x03, 0x2c, 0x10, 0xcd, 0x30, 0x47, 0x7f, 0xb4,
+ 0x1f, 0xc6, 0xfe, 0xf0, 0x0f, 0x7d, 0x85, 0xe9, 0xb0, 0x71, 0xe9, 0x02,
+ 0xfe, 0xcb, 0x1c, 0xc5, 0x43, 0xde, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f,
+ 0xf3, 0xeb, 0xb5, 0xbc, 0x6b, 0x6c, 0x63, 0x75, 0x43, 0x18, 0xe2, 0xc8,
+ 0x8c, 0x8c, 0x01, 0xc4, 0xcb, 0xec, 0x00, 0x4a, 0xe4, 0x4e, 0x6d, 0x3e,
+ 0x5e, 0x20, 0x40, 0x11, 0x90, 0x6c, 0xc5, 0xe9, 0xae, 0x5d, 0xff, 0xff,
+ 0x79, 0x02, 0x10, 0xa9, 0x9f, 0x01, 0x19, 0xb9, 0xcd, 0x6a, 0xf0, 0x07,
+ 0xbe, 0xc2, 0xf4, 0xd8, 0x38, 0xf4, 0x81, 0xaf, 0xe4, 0x1e, 0x91, 0x77,
+ 0xe6, 0x07, 0x67, 0x2c, 0x34, 0xfc, 0x9f, 0xf3, 0xe9, 0xa0, 0xcb, 0x3d,
+ 0x86, 0x1c, 0x76, 0xc8, 0x63, 0x4c, 0x59, 0x01, 0x91, 0x80, 0x38, 0x99,
+ 0x2d, 0x40, 0x95, 0xc8, 0x9c, 0xd9, 0x3e, 0x5e, 0x07, 0x25, 0x7a, 0x7a,
+ 0xdd, 0xf9, 0xe1, 0xa6, 0x2f, 0x4d, 0x72, 0xef, 0xff, 0xfb, 0xc8, 0x10,
+ 0x85, 0x4c, 0xf8, 0x08, 0xcd, 0xce, 0x6b, 0x57, 0x81, 0x2f, 0xd8, 0xa2,
+ 0xb5, 0xb5, 0xb7, 0xfe, 0xe7, 0xf2, 0x0f, 0x48, 0xbb, 0xf3, 0x01, 0xba,
+ 0xd4, 0xf0, 0x69, 0x7e, 0x46, 0xdd, 0x34, 0x19, 0x67, 0xb0, 0xc3, 0x8e,
+ 0xd9, 0x0c, 0x69, 0x8b, 0x20, 0x32, 0x30, 0x07, 0x13, 0x25, 0x54, 0x09,
+ 0x5c, 0x89, 0xcd, 0xa7, 0xcb, 0xc0, 0xe4, 0xaf, 0x4f, 0x26, 0xef, 0xcf,
+ 0x0d, 0x31, 0x7a, 0x6b, 0x97, 0x7f, 0xff, 0xde, 0x40, 0x84, 0x2a, 0x67,
+ 0xc0, 0x46, 0x6e, 0x73, 0x5a, 0xbc, 0x05, 0xbf, 0x62, 0x8a, 0xd6, 0xf9,
+ 0x75, 0xcf, 0xe4, 0x1e, 0x91, 0x77, 0xe6, 0x03, 0x75, 0xa9, 0xe0, 0xd2,
+ 0xae, 0x46, 0xdd, 0x34, 0x19, 0x67, 0xb0, 0xc3, 0x8e, 0xd9, 0x0c, 0x69,
+ 0xa3, 0x00, 0x32, 0x35, 0xf8, 0x99, 0x2d, 0x40, 0x95, 0xc8, 0x9c, 0xd9,
+ 0x3e, 0x5e, 0x07, 0x25, 0x7a, 0x7a, 0xdd, 0xf9, 0xe0, 0x63, 0xbd, 0x35,
+ 0xcb, 0xbf, 0xff, 0xef, 0xcd, 0x1d, 0xea, 0xb6, 0x9f, 0xf3, 0xc0, 0xa2,
+ 0xf5, 0x5b, 0xed, 0xff, 0xf0, 0x25, 0xfb, 0x14, 0x56, 0xb6, 0xb6, 0xff,
+ 0x83, 0x5f, 0xc8, 0x3d, 0x22, 0xef, 0xcc, 0x06, 0xeb, 0x53, 0xc1, 0xa5,
+ 0xf9, 0x1b, 0x74, 0xd0, 0x65, 0x9e, 0xe3, 0x0e, 0x3b, 0x64, 0x30, 0x8d,
+ 0xd3, 0x8a, 0x34, 0x38, 0x99, 0xd2, 0x48, 0xbf, 0xd0, 0x45, 0x1b, 0xe1,
+ 0x35, 0x29, 0xfe, 0xef, 0x6a, 0xd4, 0x8f, 0xda, 0x4f, 0x97, 0xb7, 0x27,
+ 0xeb, 0xfb, 0x2f, 0xbf, 0xcc, 0xf2, 0x48, 0x9b, 0xd8, 0x42, 0xed, 0x56,
+ 0x71, 0xff, 0x20, 0xc2, 0x0b, 0xd4, 0xfb, 0xff, 0xfe, 0xe0, 0x2a, 0x0f,
+ 0xf4, 0xeb, 0x5f, 0x7f, 0x84, 0x00, 0x02, 0xa8, 0xc0, 0x53, 0xfe, 0x1b,
+ 0xc8, 0xd5, 0xc0, 0xc4, 0x1e, 0xf8, 0x89, 0xff, 0x3a, 0x86, 0x11, 0xba,
+ 0x71, 0x46, 0x80, 0xe2, 0x67, 0x49, 0x22, 0xff, 0x41, 0x14, 0x6f, 0x84,
+ 0xd4, 0xa7, 0xfb, 0xbd, 0xab, 0x52, 0x3f, 0x69, 0x3e, 0x5e, 0xdc, 0x9f,
+ 0xaf, 0xec, 0xbe, 0xff, 0x33, 0xc9, 0x22, 0x6f, 0x61, 0x0b, 0xb5, 0x59,
+ 0xc7, 0xfc, 0x83, 0x08, 0x2f, 0x53, 0xef, 0xff, 0xfb, 0x80, 0xa8, 0x3f,
+ 0xd3, 0xad, 0x7d, 0xfe, 0x10, 0x00, 0x0a, 0xa3, 0x01, 0xcf, 0xf8, 0x6f,
+ 0x11, 0x5f, 0xa0, 0xc4, 0x1e, 0xf8, 0x84, 0xff, 0x9d, 0x43, 0x08, 0xdd,
+ 0x21, 0x14, 0x61, 0xf7, 0x3a, 0x49, 0x17, 0xfa, 0x08, 0xa3, 0x7c, 0x42,
+ 0xae, 0x7f, 0xbb, 0xda, 0xb5, 0x23, 0xf6, 0x93, 0xe5, 0xec, 0xc9, 0xfa,
+ 0xfb, 0x4f, 0xfd, 0xdc, 0xcf, 0x52, 0x26, 0xf6, 0x18, 0xbf, 0x94, 0x1a,
+ 0x3f, 0xd7, 0x41, 0xf2, 0x05, 0x41, 0xfe, 0x9d, 0x6b, 0xef, 0xf0, 0x80,
+ 0x00, 0x55, 0x18, 0x0e, 0x7f, 0xc3, 0x78, 0x8a, 0xfd, 0x06, 0x20, 0xf7,
+ 0xc4, 0x27, 0xfc, 0xea, 0x03, 0x88, 0x42, 0xa1, 0x33, 0xfd, 0x9f, 0xb6,
+ 0x79, 0xad, 0x1a, 0x4e, 0x55, 0xc8, 0x54, 0x8c, 0x44, 0x65, 0xda, 0x0f,
+ 0xf6, 0x50, 0x0a, 0x8a, 0x71, 0x96, 0x87, 0x91, 0x75, 0xde, 0x44, 0x2a,
+ 0x62, 0x19, 0x88, 0x6e, 0xd0, 0x7f, 0xb8, 0x05, 0x45, 0x38, 0xcb, 0x43,
+ 0xc8, 0xba, 0xef, 0x22, 0x15, 0x31, 0x0c, 0xc4, 0x37, 0x68, 0x3f, 0xdc,
+ 0x02, 0xa2, 0x9c, 0x65, 0xa1, 0xe4, 0x5d, 0x77, 0x91, 0x0a, 0x98, 0x86,
+ 0x62, 0x1b, 0xb4, 0x1f, 0xed, 0x03, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6,
+ 0xed, 0x5d, 0xe8, 0x85, 0x48, 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69,
+ 0x32, 0x1c, 0x2b, 0x19, 0xd8, 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc,
+ 0xc6, 0xed, 0x7f, 0xee, 0x0d, 0x26, 0x43, 0x85, 0x63, 0x3b, 0x1b, 0xb5,
+ 0x77, 0xa2, 0x15, 0x23, 0x19, 0x98, 0xdd, 0xaf, 0xfd, 0xc1, 0xa4, 0xc8,
+ 0x70, 0xac, 0x67, 0x63, 0x76, 0xae, 0xf4, 0x42, 0xa4, 0x63, 0x33, 0x1b,
+ 0xb5, 0xff, 0xb8, 0x34, 0x99, 0x0e, 0x15, 0x8c, 0xec, 0x6e, 0xd5, 0xde,
+ 0x88, 0x54, 0x8c, 0x66, 0x63, 0x76, 0xbf, 0xf7, 0x06, 0x93, 0x21, 0xc2,
+ 0xb1, 0x9d, 0x8d, 0xda, 0xbb, 0xd1, 0x0a, 0x91, 0x8c, 0xcc, 0x6e, 0xd7,
+ 0xfe, 0xe0, 0xd2, 0x64, 0x38, 0x56, 0x33, 0xb1, 0xbb, 0x57, 0x7a, 0x21,
+ 0x52, 0x31, 0x99, 0x8d, 0xda, 0xff, 0xdc, 0x1a, 0x4c, 0x87, 0x0a, 0xc6,
+ 0x76, 0x37, 0x6a, 0xef, 0x44, 0x2a, 0x46, 0x33, 0x31, 0xbb, 0x5f, 0xfb,
+ 0x83, 0x49, 0x90, 0xe1, 0x58, 0xce, 0xc6, 0xed, 0x5d, 0xe8, 0x85, 0x48,
+ 0xc6, 0x66, 0x37, 0x6b, 0xff, 0x70, 0x69, 0x32, 0x1c, 0x2b, 0x19, 0xd8,
+ 0xdd, 0xab, 0xbd, 0x10, 0xa9, 0x18, 0xcc, 0xc6, 0xed, 0x7f, 0xee, 0x0d,
+ 0x26, 0x43, 0x85, 0x63, 0x3b, 0x1b, 0xb5, 0x77, 0xa2, 0x15, 0x23, 0x19,
+ 0x98, 0xdd, 0xaf, 0xfd, 0xc1, 0xa4, 0xc8, 0x70, 0xac, 0x67, 0x63, 0x76,
+ 0xae, 0xf4, 0x42, 0xa4, 0x63, 0x33, 0x1b, 0xb5, 0xff, 0xb8, 0x34, 0x99,
+ 0x0e, 0x15, 0x8c, 0xec, 0x6e, 0xd5, 0xde, 0x88, 0x54, 0x8c, 0x66, 0x63,
+ 0x76, 0xbf, 0xf6, 0xc1, 0xa4, 0x64, 0x38, 0x72, 0x19, 0xc8, 0x6e, 0xd7,
+ 0xe0, 0xa5, 0x11, 0x48, 0x59, 0x13, 0x78, 0x7b, 0x83, 0x48, 0xc8, 0x70,
+ 0xe4, 0x33, 0x90, 0xdd, 0xaf, 0xc1, 0x4a, 0x22, 0x90, 0xb2, 0x26, 0xf0,
+ 0xf6, 0x40, 0x93, 0x43, 0x85, 0x62, 0x3b, 0x2e, 0xd7, 0x60, 0xd2, 0x52,
+ 0x24, 0x92, 0x78, 0x7f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c,
+ 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf2, 0x91, 0x03, 0x3f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff,
+ 0xf5, 0xcc, 0x27, 0x81, 0x2b, 0x5a, 0x4d, 0xff, 0x33, 0xe0, 0x99, 0xe1,
+ 0xc6, 0xbc, 0x4c, 0xcb, 0x01, 0x2e, 0xdc, 0xf9, 0x83, 0x84, 0x8f, 0x6d,
+ 0x25, 0xf9, 0x58, 0x92, 0x94, 0xb8, 0x3b, 0x7f, 0x2f, 0xb5, 0xff, 0xff,
+ 0x7c, 0x57, 0xff, 0xff, 0xff, 0xfc, 0xc3, 0xa3, 0xf2, 0xab, 0xc5, 0x97,
+ 0x89, 0x61, 0xc4, 0x85, 0x56, 0xc0, 0x4a, 0xf3, 0x35, 0x41, 0xa0, 0x60,
+ 0x10, 0x7d, 0xb4, 0x5f, 0x84, 0x59, 0xd2, 0x7d, 0xc2, 0x17, 0x04, 0xee,
+ 0xd5, 0xbc, 0x38, 0xce, 0xe9, 0xe7, 0x8d, 0x79, 0x48, 0x28, 0x80, 0x59,
+ 0x7c, 0xf9, 0xa2, 0xd5, 0xfe, 0x85, 0x1e, 0x9d, 0x7f, 0xb7, 0x5e, 0x63,
+ 0x10, 0xd4, 0x49, 0x52, 0x1c, 0xc0, 0x0a, 0xc8, 0xd0, 0x3e, 0x62, 0xe6,
+ 0x5e, 0xdd, 0xfb, 0x6d, 0x1a, 0xe7, 0xe5, 0x0f, 0x4d, 0x36, 0x9f, 0x0b,
+ 0xfe, 0x13, 0x13, 0x3a, 0x47, 0x2c, 0x00, 0x95, 0x79, 0xdf, 0x45, 0x18,
+ 0xc4, 0x8d, 0xbb, 0x87, 0xaf, 0x6f, 0xae, 0x40, 0x74, 0x87, 0xe4, 0xab,
+ 0xe7, 0xde, 0x32, 0x18, 0x31, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca,
+ 0x64, 0xa9, 0x6b, 0x27, 0x00, 0x26, 0x6e, 0xc8, 0x23, 0xf2, 0x0f, 0xb1,
+ 0x56, 0x3c, 0x93, 0x1e, 0x78, 0x08, 0x44, 0x55, 0x74, 0xba, 0x89, 0x06,
+ 0x48, 0x04, 0x54, 0x2d, 0xc3, 0x67, 0xa7, 0x20, 0xea, 0x64, 0x00, 0x6f,
+ 0x76, 0x02, 0x0b, 0xaa, 0x55, 0xe9, 0x0b, 0xbc, 0x50, 0x37, 0xab, 0xa2,
+ 0x9f, 0xa8, 0x00, 0x33, 0xbb, 0x86, 0xd5, 0x12, 0x7e, 0xc7, 0x1d, 0xc8,
+ 0x26, 0x3e, 0xff, 0xc8, 0x23, 0x18, 0xcb, 0xfc, 0x9f, 0x81, 0x24, 0x22,
+ 0x26, 0x04, 0x98, 0xcb, 0x86, 0x50, 0x60, 0x57, 0xc0, 0x1f, 0x58, 0x33,
+ 0xbd, 0x42, 0xa3, 0x31, 0xbb, 0x5b, 0x01, 0xbb, 0xdd, 0xdd, 0xef, 0x7f,
+ 0x08, 0x2c, 0x00, 0x31, 0x7a, 0x76, 0xbe, 0x00, 0x01, 0x00, 0x8f, 0xce,
+ 0x0e, 0x74, 0x03, 0x40, 0xc7, 0xbf, 0x00, 0x00, 0x03, 0x01, 0x00, 0xa9,
+ 0xe0, 0x00, 0x20, 0x11, 0x14, 0x00, 0x04, 0x02, 0x22, 0x80, 0x00, 0x80,
+ 0x44, 0x00, 0x8a, 0xde, 0x2a, 0xec, 0x01, 0x0f, 0xf9, 0x01, 0x47, 0xd7,
+ 0x0e, 0x3b, 0x27, 0xec, 0x78, 0x00, 0x08, 0x04, 0x74, 0x8d, 0x2c, 0xb8,
+ 0xd9, 0xa0, 0x40, 0x36, 0x89, 0xff, 0xff, 0xff, 0xe2, 0x11, 0x8c, 0xde,
+ 0x71, 0x82, 0xff, 0x43, 0xfd, 0x5f, 0x08, 0x3c, 0x91, 0xfb, 0xd2, 0xb3,
+ 0x17, 0xe3, 0x0b, 0x72, 0xc3, 0xdf, 0x0f, 0xcf, 0xeb, 0xe1, 0x58, 0x97,
+ 0xff, 0xfe, 0x00, 0x19, 0x17, 0xc9, 0x4c, 0xda, 0x5e, 0x38, 0x82, 0x80,
+ 0x00, 0x80, 0x64, 0x50, 0x00, 0x10, 0x0c, 0x8a, 0x00, 0x02, 0x01, 0x90,
+ 0x00, 0xc2, 0xf5, 0x5b, 0xe8, 0x00, 0x04, 0x03, 0x00, 0x04, 0x3d, 0x63,
+ 0xac, 0xc0, 0x08, 0x7e, 0x6e, 0xc6, 0xaa, 0x95, 0x52, 0xba, 0xa8, 0x89,
+ 0x11, 0x6a, 0xf0, 0x60, 0x01, 0x85, 0xea, 0xb7, 0xd0, 0x00, 0x08, 0x06,
+ 0x2f, 0xed, 0x42, 0x8c, 0xcc, 0x7e, 0x6b, 0xfb, 0x50, 0xa3, 0x33, 0x1f,
+ 0x98, 0x3f, 0x8e, 0xf6, 0x7f, 0x37, 0x91, 0x11, 0x48, 0x8b, 0xe0, 0x9a,
+ 0x32, 0x1f, 0x9b, 0xfa, 0xc0, 0xfd, 0xec, 0x00, 0x85, 0x5b, 0x7f, 0x44,
+ 0xfe, 0x68, 0x38, 0x07, 0xbf, 0x81, 0x2e, 0x40, 0x11, 0x7f, 0x56, 0x04,
+ 0x7a, 0xed, 0x78, 0xef, 0x7c, 0x85, 0x80, 0x04, 0xb1, 0x3b, 0x69, 0xf2,
+ 0xef, 0xa1, 0xbf, 0x1b, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xca, 0x44,
+ 0x15, 0x7f, 0xcb, 0xef, 0xc6, 0x7f, 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff,
+ 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xac, 0xe3, 0x60,
+ 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xa7, 0xfd,
+ 0xfb, 0x24, 0x58, 0x9c, 0x37, 0xef, 0x0e, 0xcf, 0x57, 0x41, 0x11, 0x31,
+ 0x5f, 0xff, 0xfb, 0xf7, 0xfd, 0xe2, 0x85, 0x01, 0x18, 0xe7, 0x22, 0x43,
+ 0xba, 0xde, 0x1e, 0x00, 0xde, 0x29, 0x47, 0xa0, 0x3a, 0xf9, 0x00, 0x34,
+ 0x61, 0xca, 0x4f, 0xf2, 0x8f, 0xd2, 0x22, 0x9d, 0xc0, 0x8d, 0x11, 0x4a,
+ 0x60, 0x72, 0x08, 0x24, 0xa2, 0x45, 0x81, 0xd0, 0x42, 0x20, 0xcc, 0xb4,
+ 0x28, 0x6e, 0x9e, 0x7b, 0xe3, 0x81, 0x62, 0xf0, 0xa1, 0xb3, 0x9e, 0xd9,
+ 0xea, 0xaf, 0xaf, 0xc5, 0x7f, 0xff, 0x0c, 0x71, 0xea, 0x0e, 0x33, 0x06,
+ 0x2b, 0x36, 0x01, 0x1e, 0xbe, 0xd8, 0x78, 0xa3, 0xa5, 0xbc, 0x3b, 0x2f,
+ 0x01, 0x37, 0x35, 0xa0, 0xf9, 0x04, 0x77, 0xbb, 0x4a, 0x3f, 0x7e, 0xf7,
+ 0xf8, 0x35, 0xe5, 0x48, 0x2b, 0xdd, 0xfb, 0x22, 0xe9, 0x13, 0xb9, 0x87,
+ 0x1a, 0x3e, 0x7f, 0xf8, 0x60, 0x57, 0x15, 0x11, 0xf0, 0xf0, 0x91, 0xe0,
+ 0x03, 0x05, 0x32, 0x93, 0x59, 0x7f, 0xaf, 0x84, 0x86, 0x8b, 0x74, 0xe8,
+ 0xae, 0x74, 0x32, 0x06, 0x3e, 0x1b, 0x08, 0xef, 0xa5, 0xff, 0x0c, 0x15,
+ 0x57, 0x0b, 0x33, 0x12, 0x98, 0x9c, 0x5f, 0xe0, 0x04, 0x2b, 0x7f, 0x16,
+ 0x47, 0xfc, 0x81, 0x79, 0xdc, 0xb3, 0x24, 0x6f, 0x34, 0xa7, 0x87, 0x52,
+ 0x8c, 0x55, 0x8d, 0x1b, 0x01, 0x0a, 0xea, 0x83, 0xb0, 0xfe, 0x87, 0x90,
+ 0x10, 0xa6, 0x78, 0x00, 0x5e, 0x4f, 0xff, 0xe1, 0x8b, 0x53, 0x6f, 0xfc,
+ 0x25, 0x80, 0x51, 0xd5, 0x8f, 0x7f, 0x90, 0x9a, 0x6b, 0x1d, 0x67, 0x66,
+ 0xe8, 0x2d, 0x68, 0x26, 0x27, 0x18, 0x73, 0xec, 0x31, 0xf6, 0x97, 0xb5,
+ 0xb0, 0xa6, 0x1d, 0x96, 0xfa, 0x21, 0x7d, 0x01, 0xf4, 0x94, 0x01, 0xed,
+ 0xde, 0x3b, 0xf9, 0xf6, 0x1a, 0xd4, 0x1d, 0xfb, 0xeb, 0xf1, 0xdb, 0x71,
+ 0x18, 0x62, 0xd6, 0x2e, 0x44, 0xdf, 0x89, 0xc0, 0x33, 0xf6, 0x75, 0x02,
+ 0x88, 0x4b, 0x59, 0xdf, 0x80, 0x6f, 0xd4, 0x7a, 0x1e, 0x82, 0xee, 0xf5,
+ 0x8e, 0xdb, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb3, 0x8d,
+ 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd,
+ 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf3, 0x99, 0x01, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x5f, 0xff, 0xfd, 0x7f, 0xff, 0x78, 0x89, 0x8f, 0x80, 0x16, 0x32, 0x25,
+ 0xb3, 0x31, 0x37, 0x5b, 0x05, 0x14, 0xab, 0xf9, 0x59, 0x61, 0x1e, 0x52,
+ 0xe1, 0x1b, 0x2f, 0xdd, 0x1e, 0xff, 0x9b, 0xc5, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xfc, 0x9f, 0x90, 0x21, 0x92, 0x28, 0x60, 0xe3, 0x81, 0xef, 0xc1,
+ 0xa3, 0xd1, 0xd1, 0xa3, 0x15, 0x1f, 0x1b, 0x87, 0x44, 0x46, 0xd4, 0xc1,
+ 0xcd, 0x6b, 0xb5, 0x04, 0xcb, 0xe4, 0xf8, 0x43, 0x93, 0x12, 0x2e, 0x71,
+ 0xb0, 0x33, 0x8e, 0xff, 0xf7, 0x78, 0xad, 0xb9, 0x71, 0x9f, 0xbf, 0x3b,
+ 0x40, 0x7f, 0x91, 0xf8, 0xaf, 0xff, 0xff, 0xe2, 0xc9, 0x00, 0x0a, 0xce,
+ 0x73, 0xa2, 0x0a, 0xee, 0x5f, 0xff, 0xa1, 0x8d, 0x82, 0x82, 0x4c, 0x42,
+ 0x00, 0x26, 0x0b, 0xdb, 0xc5, 0x54, 0x53, 0x79, 0x5c, 0x36, 0x1a, 0x0b,
+ 0x58, 0xf4, 0xd3, 0x7e, 0xb6, 0x20, 0xaa, 0x76, 0xb8, 0x03, 0x54, 0x88,
+ 0xda, 0x7e, 0x6d, 0xca, 0x72, 0x7e, 0x78, 0x9b, 0xb8, 0x3c, 0xf6, 0xbd,
+ 0x22, 0x01, 0xde, 0xe6, 0x29, 0xa4, 0xc1, 0xe5, 0x63, 0x4c, 0x8c, 0x0c,
+ 0x53, 0x30, 0xbb, 0x7f, 0x8f, 0x6b, 0x4c, 0x50, 0x99, 0x3f, 0xff, 0xff,
+ 0xf3, 0x17, 0x80, 0x19, 0x1e, 0x28, 0xcc, 0x9f, 0xc5, 0x61, 0x10, 0x8f,
+ 0x7f, 0xff, 0xfe, 0x4f, 0xc6, 0x7c, 0x46, 0x00, 0x44, 0xb0, 0xed, 0x24,
+ 0x63, 0x9e, 0xba, 0x85, 0x58, 0x55, 0xf1, 0x4a, 0x2a, 0xfe, 0x23, 0xe8,
+ 0x7d, 0x7b, 0xfa, 0x75, 0x58, 0x01, 0xf6, 0x01, 0xad, 0xf4, 0x1a, 0x64,
+ 0x33, 0x56, 0x48, 0x91, 0x2e, 0xd5, 0x84, 0x72, 0x08, 0x46, 0xca, 0xe4,
+ 0xd4, 0x05, 0xf8, 0xff, 0x92, 0x0f, 0xe1, 0x75, 0x9f, 0xd6, 0xeb, 0x0e,
+ 0x72, 0x38, 0xba, 0x33, 0xcb, 0xcf, 0xeb, 0xeb, 0x83, 0x1c, 0x44, 0x6a,
+ 0xcc, 0x67, 0x4c, 0x3e, 0x74, 0xc1, 0x38, 0xa0, 0x11, 0x7a, 0xc0, 0xff,
+ 0xff, 0xb8, 0xbd, 0xf8, 0x3f, 0x09, 0xe0, 0x0f, 0xd3, 0xbb, 0xcb, 0x71,
+ 0xfb, 0xb7, 0x00, 0x17, 0x15, 0xba, 0xf4, 0x6e, 0xf5, 0x57, 0x99, 0x7d,
+ 0xdb, 0x8f, 0xf7, 0xf8, 0xef, 0x21, 0xbf, 0xff, 0x77, 0x85, 0x5f, 0x00,
+ 0x88, 0xb6, 0x49, 0xd7, 0x98, 0xa3, 0xde, 0xa0, 0xf9, 0x9e, 0x6c, 0xfd,
+ 0x7f, 0xf5, 0x9b, 0xfe, 0xe2, 0x2e, 0x3c, 0x67, 0x80, 0x11, 0x4d, 0xcc,
+ 0xc5, 0x14, 0x7e, 0x00, 0x88, 0xb6, 0x49, 0xd7, 0x82, 0x8f, 0x7a, 0x83,
+ 0xe6, 0x78, 0x3f, 0x6c, 0xfd, 0x7f, 0xf5, 0x0f, 0xf3, 0x6e, 0xe8, 0x8f,
+ 0x1f, 0x08, 0xc5, 0x73, 0x23, 0xeb, 0xc3, 0xef, 0xa2, 0x26, 0xa4, 0x3d,
+ 0x40, 0x8a, 0x67, 0x66, 0x29, 0xc7, 0xf0, 0x3b, 0xaa, 0x50, 0x89, 0x7b,
+ 0xed, 0xb0, 0x62, 0xdb, 0x46, 0x4d, 0x21, 0x1b, 0x5f, 0xbb, 0xfe, 0x3b,
+ 0xd8, 0x52, 0x50, 0x00, 0x8a, 0xdd, 0xdd, 0xd7, 0x7c, 0x01, 0x74, 0xd0,
+ 0x64, 0x2f, 0x6a, 0xff, 0xff, 0x08, 0xb8, 0xea, 0x8c, 0xc8, 0x91, 0xb5,
+ 0x30, 0x7f, 0x5e, 0x36, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xce, 0x64,
+ 0x57, 0xfc, 0xbe, 0xfc, 0x67, 0xfd, 0xff, 0xdf, 0x8d, 0xff, 0xfc, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ 0x2b, 0xff, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff,
+ 0xcb, 0xe1, 0x48, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0x25, 0x60, 0x25,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfa, 0xcc,
+ 0x27, 0x00, 0x36, 0xd8, 0xfb, 0x32, 0x83, 0x81, 0xb7, 0xc9, 0x94, 0x8c,
+ 0xf3, 0xd0, 0xcc, 0x4c, 0x57, 0xff, 0xff, 0xff, 0x0c, 0x1a, 0x05, 0xac,
+ 0x0d, 0x71, 0x0c, 0x2c, 0x24, 0x01, 0x3f, 0xb6, 0x66, 0x2c, 0xa7, 0x0e,
+ 0x0d, 0xaa, 0x2d, 0x22, 0xc6, 0x6b, 0x32, 0x43, 0x1c, 0xb6, 0x03, 0x03,
+ 0xfa, 0x39, 0xdf, 0xf3, 0x35, 0xda, 0x73, 0xf3, 0x81, 0x22, 0xe0, 0x0b,
+ 0x4d, 0x23, 0x43, 0x58, 0xf2, 0x0f, 0xde, 0x64, 0x44, 0x49, 0x64, 0x42,
+ 0xdd, 0x42, 0xcb, 0x07, 0x88, 0x89, 0x2d, 0x0c, 0x07, 0xfc, 0xbf, 0x09,
+ 0x8b, 0xf8, 0x4d, 0xb2, 0xc6, 0x8e, 0x88, 0xbb, 0x5e, 0xa2, 0x0a, 0x08,
+ 0x94, 0x8b, 0x96, 0x11, 0xab, 0xf9, 0x53, 0x7f, 0xde, 0x2b, 0xff, 0xd7,
+ 0xc5, 0x99, 0x10, 0x6a, 0x2e, 0x50, 0x26, 0xbe, 0x59, 0xdc, 0xc0, 0x00,
+ 0xa6, 0xc5, 0x97, 0xdb, 0xa0, 0x11, 0xf8, 0x67, 0xe1, 0x6f, 0x8b, 0x3f,
+ 0xf6, 0xe4, 0xd5, 0x6b, 0x0f, 0xff, 0xef, 0xc3, 0x1f, 0xf9, 0xfe, 0x08,
+ 0x04, 0xe0, 0x0f, 0xa7, 0x78, 0x1f, 0xbc, 0xef, 0xff, 0xd7, 0xb1, 0x11,
+ 0x04, 0x10, 0xc7, 0x30, 0x04, 0x1d, 0x26, 0xba, 0x47, 0xe7, 0x20, 0x20,
+ 0xf3, 0xc0, 0x29, 0x9e, 0xb9, 0xf3, 0x58, 0xc0, 0xb7, 0x72, 0x7e, 0x7e,
+ 0x7e, 0x85, 0x91, 0x34, 0xd1, 0xaf, 0x3e, 0x2a, 0x54, 0x79, 0xbd, 0xb6,
+ 0x3f, 0x0c, 0x83, 0x3e, 0xb8, 0x72, 0x2f, 0x0c, 0x7f, 0xff, 0x78, 0x21,
+ 0x36, 0x00, 0x67, 0xdb, 0xeb, 0x3b, 0x18, 0x5f, 0x50, 0xc3, 0x8f, 0x52,
+ 0x18, 0x33, 0xa6, 0x12, 0x71, 0x14, 0xa6, 0x2c, 0x84, 0x2f, 0x01, 0xff,
+ 0xfc, 0x0f, 0xbb, 0xc0, 0xfd, 0xe7, 0x00, 0xb4, 0xbf, 0x94, 0xf1, 0xfc,
+ 0x7a, 0xc0, 0x08, 0x9f, 0x76, 0x48, 0xcd, 0x7b, 0x27, 0x39, 0x6c, 0xc1,
+ 0xba, 0x79, 0x8e, 0x0a, 0xb3, 0xe3, 0xb2, 0x06, 0x3f, 0xfb, 0x93, 0xf1,
+ 0x8f, 0x80, 0x36, 0xb6, 0x93, 0x7e, 0x60, 0x0d, 0xad, 0xa4, 0xdf, 0x81,
+ 0x6d, 0xd2, 0xb3, 0x46, 0xe7, 0x00, 0x49, 0x8d, 0x10, 0x61, 0xf8, 0x7a,
+ 0x43, 0x02, 0x81, 0xea, 0x04, 0x91, 0x18, 0x00, 0xff, 0x92, 0xe8, 0x74,
+ 0x8f, 0xef, 0xdc, 0x6d, 0x6e, 0xcf, 0xbe, 0xf0, 0x3a, 0xc6, 0xaa, 0xa3,
+ 0xb0, 0x7f, 0xae, 0x3b, 0x6a, 0x27, 0x42, 0x75, 0x8d, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x2e, 0xb4, 0x95, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe,
+ 0xf1, 0xbf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f,
+ 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x21, 0xf4, 0xa1, 0x02, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xff, 0x98,
+ 0xfb, 0x04, 0x1b, 0x44, 0xb7, 0x89, 0x94, 0xb8, 0x0c, 0xf9, 0x7f, 0x3e,
+ 0xeb, 0xbc, 0x57, 0xff, 0xff, 0xff, 0xff, 0xe4, 0x15, 0x8c, 0x1d, 0xfe,
+ 0x66, 0x32, 0x77, 0x00, 0x3e, 0x4f, 0xe0, 0x83, 0x81, 0x40, 0x62, 0x02,
+ 0x67, 0xf0, 0x3e, 0x89, 0xec, 0x1a, 0xfa, 0xf1, 0xc0, 0x62, 0x15, 0x9d,
+ 0xce, 0x00, 0x63, 0x1e, 0xac, 0x00, 0xa8, 0x2e, 0xf6, 0xc6, 0xe4, 0xb2,
+ 0x50, 0xc4, 0x7c, 0x5f, 0x88, 0x10, 0x23, 0x06, 0xee, 0x18, 0xb3, 0x00,
+ 0x67, 0x00, 0x8e, 0x59, 0x01, 0x74, 0x42, 0x62, 0x23, 0x3f, 0x31, 0x00,
+ 0xb1, 0x89, 0x83, 0xb0, 0x1a, 0x14, 0xe7, 0xa6, 0x7c, 0xf7, 0x4a, 0x4d,
+ 0x9c, 0x53, 0xff, 0x15, 0xff, 0xff, 0xe8, 0xbc, 0x59, 0x21, 0x13, 0x97,
+ 0x4b, 0xb1, 0x2b, 0x10, 0x42, 0xef, 0x1f, 0x30, 0xc1, 0xfb, 0xf9, 0xbf,
+ 0x5b, 0x3c, 0xd0, 0x1b, 0x7e, 0x00, 0x4c, 0x7e, 0x54, 0x10, 0x9b, 0x60,
+ 0xfb, 0x1b, 0xda, 0x34, 0x9f, 0x9e, 0x00, 0x2e, 0x3e, 0x14, 0xe8, 0xee,
+ 0xd5, 0x7f, 0xfc, 0xcb, 0xad, 0x44, 0x4b, 0x7f, 0xb0, 0x30, 0x2b, 0x6d,
+ 0xbd, 0x24, 0xdb, 0xff, 0xfa, 0xd8, 0x5a, 0xe5, 0x0d, 0x7b, 0xff, 0xe3,
+ 0x21, 0xc7, 0x6e, 0x0f, 0xf9, 0xb7, 0x9f, 0xff, 0xff, 0xfc, 0x9f, 0xff,
+ 0xff, 0xc4, 0x38, 0x71, 0x16, 0x0a, 0x96, 0x29, 0x2b, 0xe9, 0x64, 0xe1,
+ 0x01, 0x6c, 0xa4, 0x83, 0x77, 0x05, 0x7f, 0x31, 0x63, 0xff, 0xf0, 0x92,
+ 0x09, 0x8c, 0xdc, 0x35, 0x12, 0x9b, 0x8d, 0xa9, 0x35, 0x70, 0x7d, 0x34,
+ 0x03, 0x19, 0xf9, 0x5a, 0x86, 0x88, 0x34, 0xa2, 0xdc, 0x26, 0x75, 0x45,
+ 0x73, 0xfe, 0x7f, 0x2f, 0x09, 0xb5, 0x00, 0x21, 0x35, 0x7d, 0xdf, 0xff,
+ 0xff, 0xfd, 0x6f, 0x0c, 0x20, 0xb1, 0x63, 0xbc, 0x87, 0x8b, 0xcf, 0xe6,
+ 0xfa, 0x53, 0xe1, 0x08, 0x50, 0x46, 0x00, 0x1f, 0xb0, 0xa4, 0xd1, 0x2c,
+ 0x89, 0x9e, 0xfe, 0x41, 0x76, 0x0e, 0xe3, 0x5b, 0xc6, 0x7b, 0xeb, 0xb9,
+ 0x00, 0x99, 0x25, 0x99, 0xe8, 0x48, 0xae, 0x90, 0xc7, 0x7b, 0x7c, 0x49,
+ 0x1c, 0x5f, 0x98, 0x42, 0xfa, 0x87, 0xfc, 0x24, 0x87, 0x9a, 0x3f, 0x80,
+ 0x28, 0xc3, 0x95, 0xcb, 0x5f, 0x4b, 0x0f, 0xa6, 0xc4, 0x30, 0x5f, 0xf8,
+ 0x4b, 0x87, 0x04, 0x1b, 0x59, 0x00, 0x17, 0xad, 0xa5, 0xf5, 0xbb, 0xbf,
+ 0xee, 0xde, 0x58, 0x4a, 0xde, 0x3f, 0xdf, 0xe6, 0xff, 0x00, 0xd5, 0xed,
+ 0x0a, 0xc0, 0x03, 0x1f, 0x9a, 0xe7, 0x27, 0x0f, 0x19, 0x60, 0xf0, 0x2e,
+ 0x18, 0xac, 0xe0, 0x6a, 0xe8, 0x08, 0xc9, 0x91, 0xb1, 0xa1, 0x54, 0x6e,
+ 0x3f, 0x7f, 0x6f, 0xca, 0x9c, 0xdc, 0x80, 0xb5, 0x41, 0xb0, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xd2, 0x84, 0x1d, 0x7f, 0xcb, 0xef, 0xc6, 0x7f,
+ 0xdf, 0xfd, 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xad, 0x67, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xf8, 0x63, 0xff, 0x50, 0xf8, 0x54, 0x4e,
+ 0x00, 0x8a, 0x6b, 0x38, 0x4f, 0xf8, 0xfe, 0x00, 0xb1, 0x48, 0x80, 0x0d,
+ 0x41, 0x1c, 0x5f, 0x15, 0xff, 0xff, 0xf7, 0xef, 0xd6, 0x28, 0x50, 0x04,
+ 0xc0, 0x61, 0x3a, 0xf3, 0xaf, 0x1d, 0x8c, 0x41, 0x1b, 0x5e, 0x41, 0xd3,
+ 0x8f, 0xfa, 0xa3, 0x00, 0x7f, 0x50, 0xa3, 0x1b, 0x60, 0x2b, 0x1c, 0xba,
+ 0x88, 0x98, 0x00, 0xb4, 0x58, 0x9a, 0x2e, 0xf1, 0xd0, 0xaa, 0x56, 0x2d,
+ 0xad, 0x7b, 0x68, 0xf8, 0xf3, 0xf2, 0xe9, 0xb1, 0x5f, 0xfe, 0xfc, 0x31,
+ 0xfa, 0xd8, 0x60, 0x1e, 0xc9, 0xc0, 0x1a, 0xa9, 0x1b, 0x4f, 0xcd, 0xa9,
+ 0xae, 0x5e, 0xff, 0x7c, 0x00, 0xcc, 0xae, 0x34, 0xed, 0x5e, 0xad, 0x96,
+ 0xc4, 0x91, 0x4c, 0x7b, 0xdf, 0xd6, 0x51, 0xa7, 0xcf, 0xff, 0xf9, 0x3f,
+ 0xfd, 0xf8, 0x63, 0x86, 0x0f, 0xff, 0x09, 0x70, 0x04, 0xdd, 0x1a, 0x35,
+ 0x4f, 0x10, 0xa2, 0x65, 0xe0, 0x0d, 0x72, 0x6d, 0xce, 0xd8, 0xfa, 0xdb,
+ 0xe3, 0xb2, 0x06, 0x63, 0x70, 0xcf, 0x86, 0x3e, 0x90, 0xe3, 0xc2, 0x30,
+ 0x64, 0x02, 0xfa, 0x50, 0x1f, 0x50, 0x21, 0x2b, 0x92, 0x73, 0x69, 0xf2,
+ 0xf6, 0x03, 0xcc, 0x4b, 0x2d, 0xc1, 0x9b, 0x7e, 0xad, 0xaf, 0xf0, 0x12,
+ 0xb6, 0x67, 0xc2, 0x5f, 0xc3, 0xb6, 0xe2, 0x30, 0xc0, 0xf7, 0x1f, 0xfe,
+ 0x12, 0x2a, 0xf0, 0x13, 0xbc, 0xa0, 0x3c, 0x8e, 0xc0, 0xd1, 0xfd, 0x6c,
+ 0xa0, 0xe4, 0x23, 0x12, 0x5b, 0xf5, 0xc6, 0xc0, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x2e, 0xb5, 0x9d, 0x84, 0xbe, 0x5d, 0xe3, 0x3e, 0xfe, 0xf1, 0xbf,
+ 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x5f, 0xff, 0xc2,
+ 0x1f, 0xff, 0xff, 0xcd, 0xfe, 0x5c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06,
+ 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94,
+ 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0xf5, 0xa9, 0x04, 0xff, 0xff, 0xff, 0xf9, 0xb8, 0x7d, 0x0f, 0x01, 0xff,
+ 0xe5, 0x43, 0x82, 0xff, 0xa0, 0x13, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd7, 0xff, 0xff, 0x5f, 0xe5, 0x17, 0x82, 0x36, 0x97, 0x7d,
+ 0xa0, 0x7e, 0x67, 0xa1, 0x00, 0x83, 0x7e, 0x07, 0xd6, 0xa6, 0x4f, 0xfc,
+ 0x6c, 0x5a, 0xe2, 0xb5, 0x81, 0xee, 0xeb, 0xf0, 0x00, 0xfc, 0xb6, 0x27,
+ 0x54, 0xf4, 0x89, 0x5b, 0xf7, 0x36, 0x3d, 0x66, 0xfe, 0x6c, 0x60, 0x92,
+ 0x97, 0x05, 0x2d, 0xa4, 0x75, 0xd1, 0xef, 0xfa, 0xbc, 0x57, 0xff, 0xd8,
+ 0xe7, 0x7f, 0xfe, 0x6c, 0xc0, 0xf2, 0x0b, 0x52, 0xf0, 0x91, 0xc7, 0x44,
+ 0x6f, 0x5e, 0x12, 0x71, 0x3e, 0x3c, 0x51, 0xa1, 0x23, 0x0c, 0x49, 0x8a,
+ 0x28, 0x47, 0xc1, 0xfd, 0xb2, 0x2e, 0xc0, 0xfe, 0x6f, 0xc2, 0x0e, 0x9e,
+ 0x07, 0x41, 0x9b, 0x38, 0xfe, 0x1a, 0x90, 0x70, 0xd4, 0x70, 0xfe, 0x7e,
+ 0x04, 0x62, 0xcf, 0x25, 0x82, 0x3f, 0x80, 0x58, 0x71, 0x75, 0xfa, 0x17,
+ 0x84, 0x98, 0x72, 0x10, 0xba, 0x38, 0x1b, 0xd7, 0xc0, 0x25, 0xa2, 0x56,
+ 0x61, 0xc3, 0x72, 0x39, 0x8d, 0x02, 0xce, 0x8a, 0xcc, 0xe4, 0x4e, 0x6f,
+ 0x64, 0x04, 0xfc, 0xf6, 0x46, 0x8c, 0x33, 0xbf, 0xec, 0x33, 0xb5, 0xd9,
+ 0xb1, 0xed, 0xd4, 0x68, 0xbc, 0x24, 0x28, 0x1e, 0x55, 0xcf, 0xdf, 0x42,
+ 0xea, 0x3c, 0xcd, 0x2d, 0x85, 0x67, 0xdb, 0x24, 0x75, 0xda, 0x8c, 0xf1,
+ 0x34, 0x9e, 0xaa, 0xdf, 0x7c, 0x00, 0xf6, 0xc5, 0xbc, 0x2b, 0x07, 0x06,
+ 0xf4, 0x8d, 0x7e, 0xcc, 0x0a, 0x45, 0x21, 0xe0, 0x7b, 0xd2, 0x67, 0x78,
+ 0x8c, 0x2e, 0xe1, 0x03, 0x36, 0xa9, 0x0d, 0xc7, 0x6c, 0x06, 0x77, 0x26,
+ 0x66, 0x12, 0x69, 0xfe, 0xaa, 0xab, 0xe2, 0x14, 0x41, 0xf4, 0xc9, 0x0f,
+ 0xb4, 0xbf, 0x09, 0x8b, 0xaa, 0x38, 0x44, 0xa1, 0xeb, 0x35, 0xf6, 0xf6,
+ 0xfb, 0x1a, 0x3c, 0x75, 0x81, 0xbe, 0x82, 0x10, 0x7b, 0xdf, 0x82, 0xb6,
+ 0x67, 0x60, 0xb9, 0x2f, 0x7f, 0xdd, 0xe0, 0xf1, 0x5f, 0xe5, 0x33, 0x99,
+ 0xdf, 0xfc, 0xd4, 0x0c, 0x70, 0x7c, 0x71, 0x78, 0xa7, 0x84, 0x78, 0x3e,
+ 0xef, 0x64, 0xc6, 0x47, 0x68, 0xe8, 0x7a, 0x5c, 0x04, 0x19, 0xbf, 0x5d,
+ 0x9a, 0x1e, 0xfe, 0x00, 0x10, 0xca, 0x59, 0x9e, 0x85, 0x95, 0x77, 0x55,
+ 0xb1, 0x57, 0x42, 0xb3, 0x2e, 0xd7, 0xf9, 0x61, 0xa2, 0x42, 0x43, 0x8f,
+ 0x8a, 0xb7, 0xff, 0x78, 0x05, 0x7f, 0x09, 0x55, 0x03, 0x82, 0x68, 0x05,
+ 0x94, 0x41, 0x24, 0x73, 0x1e, 0x30, 0x07, 0xa3, 0x26, 0x7f, 0x42, 0x63,
+ 0x75, 0x86, 0x2f, 0xfc, 0x24, 0x22, 0x38, 0x51, 0x9c, 0x19, 0x86, 0x11,
+ 0x7a, 0xff, 0xed, 0x26, 0x41, 0x8b, 0x11, 0xfe, 0x3f, 0xff, 0x3f, 0xfc,
+ 0x43, 0x84, 0x38, 0x75, 0xfb, 0x90, 0xda, 0x19, 0xc7, 0x0b, 0x6f, 0xc2,
+ 0x6b, 0x09, 0x99, 0xec, 0x93, 0x66, 0x1e, 0x88, 0x68, 0x3d, 0xa3, 0x87,
+ 0x84, 0xe8, 0x44, 0xff, 0x22, 0xbc, 0x3e, 0x80, 0x7f, 0xfe, 0xd1, 0x81,
+ 0x00, 0x4f, 0xb6, 0xfc, 0x85, 0x21, 0xbe, 0x04, 0xae, 0xec, 0x10, 0x05,
+ 0x50, 0x4e, 0xe0, 0x5c, 0xd1, 0xf0, 0xff, 0xc2, 0x48, 0x3a, 0x16, 0x76,
+ 0x07, 0x38, 0xfa, 0x0d, 0xb5, 0x02, 0xf8, 0x01, 0xd0, 0xb3, 0xb0, 0x39,
+ 0xc7, 0x9c, 0x1b, 0x6a, 0x00, 0x3a, 0x14, 0x76, 0x05, 0x38, 0xf1, 0x01,
+ 0xb6, 0xaf, 0x18, 0x8c, 0xfc, 0x71, 0x61, 0x23, 0x8f, 0x50, 0xab, 0x14,
+ 0xeb, 0x8b, 0x0f, 0xc8, 0x29, 0x8f, 0x8a, 0xac, 0x82, 0x22, 0x7e, 0xc5,
+ 0x15, 0x7c, 0x64, 0x6a, 0x1d, 0xe6, 0xe2, 0x9c, 0x39, 0x0b, 0x6d, 0x1c,
+ 0x56, 0x39, 0x1d, 0xb3, 0xe6, 0xee, 0x3b, 0xe7, 0x89, 0xae, 0x43, 0x40,
+ 0x01, 0x27, 0xa2, 0x4d, 0x9b, 0x42, 0x8e, 0xfa, 0x1c, 0xd9, 0x87, 0xd6,
+ 0x27, 0x53, 0x8b, 0x41, 0xc0, 0x0b, 0x02, 0x96, 0xa7, 0xe4, 0x4e, 0xf5,
+ 0xcb, 0xfc, 0x00, 0xb1, 0x63, 0x4d, 0x7b, 0x54, 0x6f, 0xbc, 0xf9, 0x86,
+ 0xee, 0x83, 0xff, 0xff, 0x73, 0xe1, 0xee, 0x3f, 0xf9, 0xe0, 0xab, 0x24,
+ 0xf7, 0x19, 0x59, 0xef, 0x74, 0xf1, 0x39, 0xbf, 0xff, 0xb4, 0x10, 0x88,
+ 0x80, 0x03, 0x66, 0x62, 0x5c, 0x52, 0x08, 0x7a, 0xf9, 0x03, 0x17, 0xd0,
+ 0xd0, 0x02, 0xcb, 0xa8, 0x56, 0xe1, 0x0f, 0xbb, 0xe8, 0x36, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xd6, 0xa4, 0x0d, 0xe0, 0x7c, 0xf0, 0x3e, 0x90,
+ 0x93, 0xd2, 0x8b, 0xca, 0x83, 0xa8, 0xb7, 0x0b, 0x87, 0xb6, 0x03, 0x21,
+ 0xb1, 0x5c, 0xc3, 0xd4, 0xf8, 0xa4, 0x00, 0x80, 0x0a, 0x19, 0x54, 0x0c,
+ 0xb0, 0xa3, 0xdf, 0x80, 0x00, 0x01, 0x0f, 0x80, 0x16, 0x2c, 0x69, 0xaf,
+ 0x6a, 0x8d, 0xf7, 0x99, 0x86, 0xee, 0x83, 0xff, 0xff, 0x73, 0xe1, 0xee,
+ 0x3f, 0xf9, 0xe0, 0xab, 0x24, 0xf7, 0x19, 0x59, 0xef, 0x77, 0xfc, 0xdf,
+ 0xb1, 0x66, 0xec, 0x47, 0x8c, 0x50, 0x01, 0xe9, 0x00, 0xef, 0x15, 0x9c,
+ 0xc0, 0x60, 0x65, 0xf5, 0xcc, 0x00, 0x07, 0x16, 0x3b, 0x1a, 0x4e, 0xa8,
+ 0xff, 0xff, 0xc9, 0xfe, 0xff, 0xed, 0xff, 0x80, 0x16, 0x05, 0x2d, 0xd7,
+ 0xb2, 0x2b, 0xd7, 0x20, 0x34, 0x8a, 0xf1, 0xa1, 0x11, 0x41, 0xfd, 0x8c,
+ 0x7f, 0xfa, 0xe0, 0x41, 0x8d, 0x13, 0x9b, 0xf3, 0x71, 0x59, 0xef, 0x60,
+ 0xe3, 0xef, 0xff, 0xb7, 0xbf, 0x20, 0x88, 0xbc, 0x47, 0x88, 0xe6, 0xe2,
+ 0x04, 0x41, 0xbc, 0x31, 0x75, 0x04, 0x8d, 0xa0, 0x14, 0x0b, 0xca, 0xc2,
+ 0x2e, 0x1e, 0xdd, 0xe3, 0x04, 0x57, 0xc2, 0x4b, 0x82, 0x4d, 0x81, 0xfc,
+ 0xb6, 0x1c, 0x41, 0x8c, 0xa4, 0x36, 0xfb, 0x7e, 0x02, 0x73, 0x1f, 0x93,
+ 0x2b, 0xf4, 0x44, 0x88, 0x6e, 0xe5, 0xff, 0xa1, 0xbf, 0x1b, 0xc8, 0xe1,
+ 0x03, 0x17, 0xfd, 0x7f, 0xf9, 0x08, 0x1d, 0x83, 0x02, 0x23, 0x41, 0x6b,
+ 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xe0, 0xc3, 0x5f,
+ 0xaf, 0xd7, 0xeb, 0xf5, 0xfa, 0xff, 0x94, 0x8e, 0xf8, 0xdf, 0x11, 0xfe,
+ 0x28, 0x40, 0x6a, 0x58, 0x7a, 0x18, 0x2e, 0x1d, 0x50, 0xb0, 0xe8, 0x60,
+ 0xb8, 0x67, 0xc2, 0x30, 0x4b, 0xb0, 0x1e, 0x6b, 0x22, 0xec, 0x07, 0x9a,
+ 0xaf, 0x55, 0x22, 0xec, 0x07, 0x9a, 0xeb, 0xbd, 0x05, 0xd2, 0xbf, 0x08,
+ 0xcc, 0x00, 0x5c, 0x39, 0x05, 0xd3, 0x6d, 0xb6, 0xdb, 0x34, 0xe0, 0xba,
+ 0x0d, 0x2a, 0x07, 0xdf, 0xf1, 0x1e, 0x8f, 0x0a, 0xe7, 0xe5, 0xff, 0xff,
+ 0xff, 0xff, 0xa3, 0x33, 0xf2, 0xff, 0x06, 0x3f, 0x10, 0x33, 0x04, 0x6d,
+ 0x81, 0x3b, 0xff, 0x84, 0x2e, 0x5f, 0xbf, 0xc2, 0x2f, 0x87, 0x65, 0xae,
+ 0x9c, 0x3b, 0x0f, 0xdb, 0xdc, 0x78, 0x3c, 0x18, 0x98, 0x46, 0x4f, 0x0a,
+ 0x40, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xa9, 0x60, 0x67, 0xff, 0xff,
+ 0xef, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xeb, 0xbe, 0xa6, 0x13, 0x84,
+ 0xac, 0xe4, 0xb8, 0x63, 0xff, 0x5f, 0xc1, 0x03, 0xc0, 0x1a, 0x37, 0x34,
+ 0x07, 0xff, 0xd6, 0xf8, 0xaf, 0xff, 0x7f, 0xdf, 0xff, 0x14, 0x30, 0x05,
+ 0xf3, 0x8a, 0xed, 0xba, 0xd0, 0xb9, 0x27, 0x40, 0x03, 0xe1, 0x66, 0xdc,
+ 0x27, 0x0f, 0x80, 0x24, 0x9b, 0x81, 0x80, 0x31, 0x29, 0x06, 0x58, 0x56,
+ 0x50, 0x87, 0xf4, 0x06, 0x66, 0xe1, 0x22, 0xaf, 0xf9, 0x0a, 0x6a, 0x63,
+ 0x8b, 0xc9, 0x8e, 0xc9, 0x35, 0x32, 0x18, 0x0f, 0xfb, 0xfe, 0x13, 0x12,
+ 0x38, 0x12, 0x20, 0x2d, 0x36, 0x2d, 0xd5, 0xe1, 0x56, 0x98, 0x11, 0x11,
+ 0x4b, 0xff, 0xf5, 0x7d, 0x1d, 0x40, 0x75, 0x0f, 0xf5, 0x5f, 0x3e, 0xf1,
+ 0x9c, 0x8a, 0xff, 0xbf, 0x7e, 0xb1, 0x9e, 0x04, 0x4a, 0xf7, 0x1d, 0x46,
+ 0xb1, 0xb0, 0x03, 0xd2, 0x1a, 0x16, 0x20, 0x8b, 0x32, 0xf4, 0xf8, 0x5e,
+ 0xe6, 0xc7, 0x3e, 0xd7, 0x81, 0x05, 0x87, 0x61, 0xb5, 0xdc, 0xb9, 0x71,
+ 0xb0, 0xa9, 0x81, 0xe5, 0xff, 0x86, 0x1d, 0xc1, 0x62, 0x20, 0x64, 0x67,
+ 0x5c, 0x00, 0xcb, 0xe7, 0x74, 0x76, 0x3f, 0x7f, 0xfe, 0x4e, 0xff, 0xbf,
+ 0x7e, 0x4e, 0x07, 0xc1, 0x08, 0x00, 0xcd, 0xbf, 0xeb, 0xff, 0xff, 0xf4,
+ 0xf6, 0xca, 0x41, 0x17, 0x15, 0xae, 0x00, 0xef, 0x3b, 0x5d, 0x5c, 0xcc,
+ 0x6e, 0x02, 0xa6, 0x71, 0x52, 0xda, 0x64, 0x66, 0x00, 0x61, 0x97, 0xef,
+ 0x45, 0x04, 0x48, 0x98, 0x21, 0x80, 0xc8, 0x33, 0xf4, 0x41, 0x23, 0x03,
+ 0x83, 0x3b, 0xeb, 0x6b, 0x8e, 0xcc, 0xf8, 0xed, 0xaf, 0x0c, 0x05, 0x57,
+ 0x5f, 0x8a, 0xf1, 0x45, 0xc8, 0x1a, 0x00, 0x3c, 0xcb, 0xfa, 0x6e, 0xb7,
+ 0x6d, 0xad, 0xf2, 0xf3, 0xff, 0xfe, 0x01, 0x7d, 0x28, 0x0d, 0x44, 0x5f,
+ 0x86, 0x3f, 0xd7, 0x5d, 0x70, 0xad, 0xa0, 0xed, 0x3b, 0xff, 0xaf, 0xf0,
+ 0x05, 0x8e, 0xff, 0xce, 0xf6, 0x8c, 0x52, 0x39, 0x58, 0x9c, 0x36, 0xfa,
+ 0x5f, 0x7c, 0x6c, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb6, 0xa5, 0x82,
+ 0xb7, 0xc8, 0xb2, 0x12, 0x00, 0x49, 0xa3, 0x86, 0x8c, 0xa8, 0xbb, 0x5f,
+ 0xc4, 0x19, 0xc3, 0x17, 0x80, 0x94, 0x31, 0xef, 0xca, 0xd5, 0xc4, 0xc9,
+ 0x80, 0x00, 0x80, 0x22, 0xed, 0x7f, 0x80, 0x00, 0x02, 0x01, 0x10, 0x02,
+ 0x47, 0xec, 0x91, 0x00, 0x42, 0x3e, 0xb9, 0x80, 0x0e, 0xd5, 0xa0, 0x17,
+ 0x18, 0x2e, 0x41, 0xbc, 0x63, 0xe5, 0x5d, 0xe3, 0xbb, 0xe5, 0xff, 0xff,
+ 0xff, 0xff, 0xf7, 0xef, 0xdf, 0xbf, 0x7e, 0xfd, 0xfb, 0xe1, 0x5e, 0xfd,
+ 0xfb, 0xfc, 0x21, 0xff, 0xff, 0xfc, 0xdd, 0xfb, 0xe5, 0xc2, 0x90, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x21, 0xf6, 0xb1, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff,
+ 0xf3, 0x09, 0xc0, 0x03, 0x31, 0xb6, 0xf9, 0x4f, 0x9b, 0xe5, 0x73, 0x8d,
+ 0x35, 0x7d, 0xd2, 0x7f, 0x84, 0x24, 0x8b, 0xe0, 0x93, 0xc9, 0x36, 0x96,
+ 0x69, 0xef, 0xfb, 0xf8, 0x00, 0xe4, 0x7d, 0xec, 0x8b, 0x2f, 0xf0, 0x26,
+ 0xde, 0x85, 0x8a, 0x56, 0x42, 0xf7, 0xf4, 0xf1, 0x31, 0x5f, 0xff, 0xff,
+ 0xfe, 0x51, 0x9c, 0x25, 0xf3, 0xd1, 0xff, 0xcd, 0xe8, 0xb0, 0x59, 0x49,
+ 0xd0, 0x63, 0x16, 0x69, 0xba, 0xeb, 0xb7, 0xd2, 0xe9, 0x18, 0x24, 0x6e,
+ 0xa7, 0xbf, 0xfd, 0x59, 0x00, 0x26, 0xf6, 0xa0, 0xce, 0xc6, 0x3f, 0xd7,
+ 0x8e, 0x56, 0xc9, 0xef, 0xf9, 0x78, 0x6e, 0x0f, 0xf0, 0x02, 0x08, 0xe7,
+ 0x18, 0x54, 0xd1, 0x6b, 0xf0, 0x11, 0x37, 0x73, 0x8f, 0xf7, 0x9a, 0xaa,
+ 0x5a, 0x60, 0xe7, 0xd1, 0x6e, 0xd4, 0x08, 0xc2, 0x07, 0x7b, 0x72, 0x97,
+ 0x6f, 0xac, 0x00, 0x01, 0x39, 0x26, 0xeb, 0xf9, 0x06, 0x21, 0x7a, 0x0a,
+ 0x37, 0xff, 0xda, 0x53, 0x63, 0xfc, 0xb0, 0xd0, 0x4b, 0xc0, 0x01, 0xbb,
+ 0xa3, 0x12, 0xc9, 0x56, 0x87, 0x4e, 0x68, 0x8c, 0x8d, 0xa9, 0x83, 0x39,
+ 0xdb, 0x29, 0x6b, 0xba, 0x0e, 0x6f, 0xf0, 0x97, 0xe0, 0x80, 0x58, 0x30,
+ 0x8b, 0x25, 0x31, 0xf8, 0x9f, 0x7f, 0xf8, 0x32, 0x12, 0x23, 0x1d, 0x24,
+ 0x7b, 0xde, 0xf1, 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x2a, 0x44, 0xc4, 0xee,
+ 0xab, 0x66, 0xf0, 0x4c, 0xf6, 0xd6, 0x0e, 0x09, 0x0a, 0xd2, 0xc1, 0x17,
+ 0xad, 0x79, 0xff, 0x80, 0x45, 0x2b, 0xd8, 0x0f, 0x98, 0xcd, 0xfd, 0x7c,
+ 0x03, 0x13, 0x0b, 0x3a, 0x7e, 0xa5, 0x95, 0xc8, 0x35, 0x21, 0x17, 0xf3,
+ 0xee, 0xfb, 0x22, 0x69, 0xf8, 0x78, 0x97, 0x81, 0xc4, 0x8c, 0xa0, 0x4a,
+ 0xc1, 0xca, 0xbb, 0xd0, 0xff, 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0x98,
+ 0x20, 0xb8, 0x17, 0xfc, 0x24, 0xc1, 0xb3, 0x50, 0xd3, 0x4c, 0x7c, 0x5b,
+ 0x3a, 0xc5, 0xbc, 0x67, 0x0b, 0x58, 0x55, 0x84, 0x77, 0xa3, 0x8b, 0x15,
+ 0x99, 0xe5, 0xab, 0xe5, 0x54, 0xa7, 0xd5, 0x26, 0x4f, 0xd2, 0x64, 0xe7,
+ 0x80, 0x67, 0xf5, 0xef, 0xb6, 0x1a, 0x89, 0x17, 0xc7, 0x79, 0xbc, 0x77,
+ 0xb5, 0x08, 0xe4, 0x7c, 0x00, 0x44, 0x5c, 0xba, 0x7b, 0xbb, 0xd3, 0x61,
+ 0xf4, 0xa7, 0xe0, 0x81, 0x80, 0x1e, 0x52, 0xae, 0x91, 0xbe, 0xa7, 0x85,
+ 0xe3, 0xeb, 0xb3, 0xff, 0xa7, 0xe3, 0xe0, 0x00, 0x00, 0x01, 0x21, 0x01,
+ 0x2f, 0xda, 0xc4, 0x15, 0x7f, 0xd9, 0x3f, 0x80, 0x91, 0xc4, 0x00, 0x89,
+ 0x09, 0x88, 0x80, 0x19, 0x55, 0x99, 0x23, 0x00, 0x01, 0x00, 0x8d, 0x5e,
+ 0x86, 0xc7, 0x65, 0xa0, 0x0c, 0x20, 0xe1, 0xcc, 0x00, 0x65, 0x56, 0xc9,
+ 0x19, 0xea, 0xf7, 0x82, 0xd4, 0x63, 0xfa, 0xd2, 0xbd, 0x37, 0x7f, 0xf8,
+ 0x09, 0x02, 0xac, 0x01, 0x03, 0x9d, 0x00, 0xd0, 0x31, 0xef, 0xcf, 0x7e,
+ 0x33, 0xd9, 0xbd, 0x12, 0x9f, 0x4e, 0x14, 0x2b, 0x4f, 0xb8, 0xdf, 0xf7,
+ 0xca, 0x78, 0xdf, 0x91, 0xe0, 0x2d, 0x1c, 0x96, 0xc8, 0x7c, 0xfb, 0x2d,
+ 0x3e, 0xe3, 0x7f, 0xdf, 0xf9, 0xbf, 0xd2, 0x8e, 0x44, 0x58, 0xc2, 0x70,
+ 0x00, 0x88, 0x2d, 0xc4, 0x53, 0x36, 0x44, 0xf7, 0x15, 0x80, 0x07, 0xe3,
+ 0x5b, 0x91, 0x11, 0xfd, 0x91, 0x7f, 0xf8, 0x3c, 0x0a, 0xcf, 0xf5, 0xba,
+ 0x3c, 0xef, 0x00, 0x2e, 0x67, 0x14, 0x36, 0x67, 0x1f, 0xfe, 0xa8, 0xdb,
+ 0xfa, 0x54, 0x6f, 0xfa, 0xd0, 0x00, 0x00, 0x77, 0xf2, 0x78, 0x40, 0x2b,
+ 0xfb, 0x60, 0x8b, 0x78, 0x2d, 0xd6, 0xb8, 0xc4, 0x3c, 0x03, 0x3b, 0x6f,
+ 0xff, 0x92, 0x5f, 0xfa, 0xa0, 0xff, 0xdb, 0x36, 0x44, 0x47, 0xe6, 0x0d,
+ 0xf8, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f, 0xff, 0xff, 0xff, 0xff,
+ 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xad, 0xeb,
+ 0x60, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xfe, 0xbf,
+ 0x7f, 0x16, 0x27, 0x00, 0x74, 0x61, 0x56, 0x74, 0xb6, 0xfc, 0x00, 0x7f,
+ 0xa9, 0xde, 0x51, 0xfb, 0x4d, 0x75, 0xb5, 0x1e, 0xae, 0x2b, 0xff, 0xfb,
+ 0xff, 0xde, 0x63, 0x6c, 0x20, 0x1e, 0xb7, 0x2d, 0x0c, 0x00, 0x6c, 0xfa,
+ 0x28, 0xba, 0x0a, 0x0d, 0xad, 0x7f, 0x12, 0x61, 0xf4, 0x5f, 0xd0, 0x53,
+ 0x2b, 0xb6, 0x01, 0xae, 0x41, 0xdb, 0xa7, 0x80, 0x06, 0x1b, 0x9e, 0x41,
+ 0x46, 0x5e, 0xbf, 0xe7, 0xd3, 0x5c, 0xbd, 0xfe, 0x87, 0x23, 0x43, 0xfc,
+ 0xf3, 0x3f, 0x76, 0x9f, 0xdd, 0x82, 0x2f, 0x44, 0x00, 0xe9, 0xae, 0x60,
+ 0xc5, 0xf1, 0x22, 0x58, 0xd5, 0x12, 0x24, 0xe1, 0xd5, 0xc9, 0x9c, 0x83,
+ 0xb1, 0x72, 0xf0, 0x80, 0x51, 0x86, 0x9b, 0x1c, 0xae, 0x79, 0xf6, 0x0a,
+ 0x27, 0xf1, 0x5f, 0xff, 0xc3, 0x1c, 0x78, 0x01, 0xa3, 0xea, 0x91, 0x66,
+ 0xc0, 0x03, 0x36, 0xdb, 0xe5, 0x37, 0x0f, 0xb9, 0x63, 0xed, 0x30, 0x1d,
+ 0xc7, 0x73, 0x41, 0xa3, 0x89, 0x50, 0x02, 0x32, 0xb4, 0xd3, 0x5a, 0xbc,
+ 0xa2, 0x7c, 0x26, 0x91, 0xc3, 0xb4, 0x78, 0xb2, 0xbf, 0x3c, 0x4d, 0x93,
+ 0x34, 0x00, 0xa5, 0x87, 0xe7, 0xff, 0xfc, 0x9f, 0xff, 0xc3, 0x04, 0xa8,
+ 0x2c, 0xce, 0x5f, 0xf0, 0x91, 0x42, 0x59, 0x9c, 0x24, 0x75, 0x45, 0xda,
+ 0x0c, 0x31, 0x5d, 0xb4, 0xa7, 0xea, 0xfc, 0x78, 0x0a, 0xa6, 0x96, 0x00,
+ 0x97, 0xe6, 0x09, 0xb3, 0xab, 0x7c, 0xfe, 0x2b, 0x50, 0xa5, 0x22, 0x19,
+ 0x7a, 0x65, 0xdb, 0xc5, 0x1b, 0xff, 0xe0, 0x01, 0x9f, 0x5b, 0x7c, 0x76,
+ 0x6c, 0x76, 0xd4, 0x4e, 0x18, 0xcc, 0x3d, 0x0c, 0x4f, 0xe1, 0x32, 0xe0,
+ 0x4c, 0xd4, 0x07, 0xef, 0x67, 0x83, 0xee, 0xed, 0xd4, 0x3e, 0x33, 0xf4,
+ 0xd8, 0x7e, 0xbf, 0xc0, 0x3b, 0x4b, 0xb6, 0xe1, 0xc2, 0xd8, 0x7c, 0x00,
+ 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb7, 0xad, 0x82, 0xaf, 0xb0, 0xc7, 0xe2,
+ 0x7f, 0x4e, 0x14, 0x10, 0x00, 0xa8, 0xd1, 0x90, 0x06, 0x08, 0x7c, 0xf0,
+ 0x1f, 0x80, 0x7d, 0x70, 0x25, 0xcc, 0x43, 0xf8, 0xdf, 0xdf, 0xf8, 0x63,
+ 0x0f, 0x9d, 0x0f, 0xe1, 0x36, 0xbe, 0x21, 0xee, 0x48, 0x0f, 0xde, 0xcf,
+ 0x0e, 0xb6, 0xbd, 0x34, 0x5d, 0xc4, 0x26, 0xe3, 0xff, 0xfb, 0xdf, 0x78,
+ 0xcd, 0xaf, 0x0c, 0x4f, 0xcc, 0x3b, 0xa1, 0x16, 0xd7, 0x83, 0xf3, 0xea,
+ 0xdd, 0x7f, 0xea, 0xff, 0xc0, 0x03, 0xfe, 0xb7, 0xd5, 0xb9, 0xa8, 0x06,
+ 0x82, 0xd9, 0x14, 0xc7, 0xe2, 0x5f, 0xd8, 0x01, 0x9f, 0x7f, 0x59, 0xd8,
+ 0x3f, 0xfc, 0xa6, 0x7b, 0xf0, 0x21, 0xe9, 0xbd, 0x09, 0x4f, 0xfa, 0x48,
+ 0xfd, 0x17, 0x20, 0x62, 0x3b, 0xea, 0x00, 0x00, 0x3f, 0xef, 0x1d, 0x9b,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0x08, 0x7f,
+ 0xff, 0xff, 0x37, 0xf9, 0x70, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05,
+ 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a,
+ 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf7,
+ 0xb9, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66, 0x13, 0x80,
+ 0x10, 0x5a, 0xaf, 0x77, 0xb8, 0x20, 0xcf, 0xc9, 0x3f, 0x36, 0x11, 0x29,
+ 0x4b, 0x89, 0xfa, 0xf5, 0xb1, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0x61, 0x5b, 0x08, 0x07, 0xad, 0xcb, 0x5e, 0x52, 0x04, 0x50, 0x29, 0x4f,
+ 0xb6, 0x8b, 0x99, 0x27, 0xc7, 0x27, 0x7e, 0xa7, 0xeb, 0xc3, 0x54, 0xe0,
+ 0xd4, 0x6b, 0x53, 0x2f, 0x14, 0x60, 0xa1, 0x03, 0xef, 0x96, 0x60, 0x4c,
+ 0x01, 0x34, 0x8d, 0x01, 0xf1, 0x1d, 0xcc, 0xc2, 0x9c, 0xd6, 0x1e, 0x25,
+ 0x65, 0xc8, 0x0c, 0x2d, 0x13, 0x69, 0xf0, 0xbf, 0xe1, 0x33, 0xce, 0x91,
+ 0xcb, 0x00, 0x25, 0x5e, 0x77, 0xd1, 0x46, 0x31, 0x23, 0x6e, 0xe1, 0xeb,
+ 0xdb, 0xeb, 0x90, 0x1f, 0x21, 0xf9, 0x2a, 0xf9, 0xf7, 0xa7, 0x7d, 0x71,
+ 0x5f, 0xff, 0xff, 0xf3, 0x7e, 0x20, 0xca, 0x84, 0xa9, 0x6b, 0x27, 0x00,
+ 0x26, 0x6e, 0xc8, 0x23, 0xf2, 0x0f, 0xb1, 0x56, 0x3c, 0x96, 0x3c, 0xf0,
+ 0x10, 0x88, 0xaa, 0xe9, 0x75, 0x3b, 0x01, 0x92, 0x01, 0x15, 0x4d, 0x38,
+ 0x64, 0x1e, 0xaf, 0xbd, 0xbe, 0xc8, 0x00, 0xde, 0xec, 0x04, 0x17, 0x54,
+ 0x2b, 0xd2, 0x17, 0x75, 0xbf, 0x95, 0xab, 0xaa, 0xfd, 0x40, 0x01, 0x9d,
+ 0xdc, 0x36, 0xa8, 0x93, 0xf6, 0x38, 0xee, 0x7f, 0xff, 0xff, 0xf2, 0x7f,
+ 0xff, 0xff, 0xf8, 0x86, 0xd7, 0x5e, 0x87, 0xc7, 0xe8, 0xb5, 0x5e, 0x04,
+ 0x0d, 0x29, 0x07, 0xdb, 0x2c, 0x40, 0xa5, 0x23, 0xe0, 0x71, 0xfb, 0xf3,
+ 0xfa, 0xf7, 0xe3, 0xbc, 0xde, 0x3b, 0xdc, 0x40, 0x18, 0x48, 0x58, 0x00,
+ 0x61, 0x3f, 0x41, 0x35, 0x97, 0xbf, 0xd0, 0xe7, 0x89, 0x0d, 0x78, 0xd8,
+ 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xde, 0xe4, 0x15, 0x7f, 0xd1, 0xbf,
+ 0xb7, 0xca, 0x10, 0xa1, 0xa0, 0x38, 0x27, 0x1c, 0x31, 0x32, 0x02, 0x15,
+ 0xed, 0xef, 0xd5, 0xef, 0x3c, 0x4c, 0xfe, 0xbd, 0xf8, 0xcf, 0x46, 0xff,
+ 0xf6, 0x86, 0x08, 0x4c, 0x00, 0x26, 0xba, 0x36, 0xb9, 0x1f, 0xde, 0xfd,
+ 0x58, 0xcf, 0x3e, 0xc3, 0x01, 0x1c, 0xa2, 0xb0, 0x00, 0x88, 0x2f, 0x91,
+ 0x4c, 0xd9, 0x26, 0x1f, 0xdf, 0x8e, 0x32, 0x8f, 0x80, 0x7f, 0xc3, 0xcc,
+ 0x07, 0x51, 0x19, 0xea, 0x02, 0x07, 0xeb, 0xbf, 0xfb, 0x7f, 0x9b, 0x00,
+ 0x77, 0xff, 0xe1, 0x2c, 0x00, 0x23, 0x0a, 0x62, 0x45, 0x99, 0xc5, 0x23,
+ 0x1b, 0x0e, 0xb8, 0x00, 0x6c, 0xee, 0x7c, 0x67, 0x5d, 0xb8, 0x17, 0x58,
+ 0x74, 0xbe, 0xc1, 0x18, 0xee, 0xf9, 0xdf, 0xe5, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x2f, 0xff, 0xe1, 0x5f, 0xff, 0xff, 0xf0, 0x87,
+ 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xfe, 0x5f, 0x0a, 0x40, 0x00, 0x00,
+ 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b,
+ 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00,
+ 0x00, 0x01, 0x01, 0xae, 0x2d, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0xcc, 0x27, 0x00, 0x4a, 0xd2, 0xda,
+ 0x4f, 0xfc, 0xb5, 0x1e, 0xb9, 0x62, 0xbf, 0xff, 0xff, 0xdf, 0xc5, 0x0a,
+ 0x0e, 0x39, 0xe6, 0xa2, 0x43, 0xb3, 0x79, 0xf8, 0x04, 0xc1, 0x0a, 0x50,
+ 0xb4, 0x1e, 0xff, 0x90, 0x01, 0xf9, 0xd0, 0x73, 0x93, 0xfd, 0x9f, 0xc1,
+ 0x88, 0x91, 0xe8, 0x29, 0x88, 0x51, 0x1e, 0x03, 0x86, 0x36, 0xfa, 0xdf,
+ 0xf0, 0x98, 0xb0, 0x0a, 0x03, 0x28, 0x09, 0xc3, 0x95, 0x7c, 0xfb, 0x55,
+ 0xe3, 0x85, 0x3e, 0xdd, 0x2e, 0x78, 0xca, 0x44, 0x2b, 0xfb, 0xc3, 0x35,
+ 0x69, 0x25, 0x2e, 0xd7, 0x8a, 0xff, 0xfe, 0x18, 0xe3, 0xd4, 0x1c, 0x26,
+ 0xcd, 0xb3, 0x60, 0x06, 0x07, 0xab, 0xe3, 0xb0, 0xf5, 0x1a, 0x96, 0xf0,
+ 0x22, 0x6b, 0x1f, 0xe7, 0xf1, 0x94, 0x68, 0xed, 0x87, 0x06, 0x77, 0x9d,
+ 0xa1, 0x3f, 0xbf, 0x7f, 0xf8, 0x4b, 0xc9, 0x48, 0x25, 0x75, 0xff, 0xd4,
+ 0xd1, 0xa4, 0x83, 0xd2, 0x01, 0xe6, 0x78, 0xf3, 0xff, 0xfe, 0x4f, 0xff,
+ 0xe1, 0x81, 0x6a, 0x6d, 0xff, 0x84, 0x8f, 0x00, 0xa3, 0xab, 0x1e, 0xff,
+ 0x20, 0xac, 0x47, 0x16, 0x3a, 0x47, 0x62, 0xb8, 0xa3, 0x70, 0x98, 0x7f,
+ 0x91, 0xe3, 0x08, 0x67, 0xd6, 0xf1, 0xd9, 0xb1, 0xdb, 0x0c, 0x7c, 0x3f,
+ 0x8d, 0x20, 0x87, 0x03, 0x88, 0x8e, 0x99, 0xa3, 0xbf, 0x9c, 0x33, 0x13,
+ 0x58, 0xd8, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb8, 0xb5, 0x8a, 0xfa,
+ 0x5e, 0x40, 0x50, 0x08, 0x41, 0x88, 0x38, 0x12, 0x20, 0x01, 0x2c, 0xda,
+ 0x52, 0xa7, 0x83, 0x07, 0x3b, 0x67, 0x73, 0xd7, 0x9f, 0x43, 0x93, 0xf1,
+ 0x83, 0x44, 0xaf, 0xfd, 0x6b, 0x78, 0xcd, 0x2f, 0x20, 0x38, 0x07, 0x38,
+ 0x98, 0x08, 0x4b, 0x29, 0xc8, 0x00, 0x7b, 0xeb, 0xbd, 0xe0, 0x00, 0x23,
+ 0x00, 0x03, 0x23, 0x77, 0x78, 0xf8, 0x50, 0x00, 0x23, 0x24, 0x4f, 0x7a,
+ 0x58, 0x28, 0x00, 0x11, 0x95, 0x3d, 0x81, 0xd0, 0xf5, 0xfe, 0xf1, 0xcb,
+ 0xc3, 0x14, 0x1b, 0xbf, 0xff, 0x09, 0x60, 0xbb, 0x64, 0xb9, 0x98, 0xba,
+ 0xbd, 0xef, 0x8c, 0x80, 0x19, 0xd4, 0xb0, 0x82, 0x2d, 0xb8, 0x61, 0x01,
+ 0xaf, 0x69, 0x04, 0x11, 0xdf, 0x4b, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff,
+ 0xf7, 0xff, 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xb8,
+ 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e,
+ 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f,
+ 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf8, 0xc1, 0x01, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xaf, 0xff, 0xfc, 0xc7, 0xc0, 0x07, 0x66, 0x2c, 0xdd, 0xf9, 0x4d,
+ 0xaf, 0xb6, 0xa4, 0xb8, 0x82, 0xbc, 0x01, 0x36, 0x4f, 0xf0, 0xe1, 0xef,
+ 0xef, 0x15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7f, 0x08, 0x62, 0x24,
+ 0x18, 0x4a, 0x00, 0xeb, 0xc2, 0x24, 0xc3, 0x0b, 0x73, 0x28, 0xbd, 0x15,
+ 0x44, 0xba, 0x98, 0x62, 0xea, 0x20, 0x49, 0x04, 0x8b, 0x7c, 0x43, 0x73,
+ 0x9e, 0xb5, 0x78, 0xdd, 0xa5, 0xc8, 0x3e, 0xdf, 0xa9, 0x87, 0xe4, 0x7e,
+ 0x2b, 0xff, 0xff, 0xcd, 0xfc, 0x01, 0xac, 0x90, 0xc6, 0x2c, 0x00, 0x84,
+ 0x3d, 0xa2, 0x1d, 0x4b, 0xef, 0x84, 0x8f, 0xeb, 0x80, 0xfa, 0x30, 0xf1,
+ 0x2a, 0xed, 0x0c, 0x5b, 0x25, 0xc0, 0x08, 0xfb, 0x9b, 0xcc, 0x71, 0xaa,
+ 0x67, 0x37, 0xeb, 0x62, 0xd5, 0x3b, 0x27, 0x00, 0x6a, 0xa4, 0x6d, 0x3f,
+ 0x38, 0xb7, 0x53, 0x3c, 0x12, 0x3d, 0xd8, 0xeb, 0xc8, 0x80, 0x39, 0xc1,
+ 0xd9, 0xc9, 0x8c, 0x5a, 0x60, 0xc3, 0x53, 0x70, 0x5b, 0x78, 0xf5, 0x5a,
+ 0x63, 0x17, 0x3f, 0xff, 0xff, 0xf9, 0x3f, 0xff, 0xfc, 0xd1, 0xc2, 0x2f,
+ 0xff, 0x09, 0x39, 0x02, 0x01, 0x11, 0x97, 0x6e, 0x89, 0xdc, 0x95, 0xa9,
+ 0xbd, 0x13, 0x31, 0x2b, 0x51, 0x02, 0x01, 0x11, 0x91, 0x3b, 0xa6, 0x90,
+ 0xdd, 0x6c, 0xb2, 0x44, 0x64, 0xfb, 0xb5, 0x17, 0x0f, 0x15, 0xfe, 0x70,
+ 0x40, 0x88, 0x1a, 0x4d, 0x79, 0xfd, 0x7b, 0xf1, 0xde, 0x6f, 0x1d, 0xec,
+ 0xdf, 0x02, 0x1f, 0x6f, 0x18, 0x58, 0x04, 0xbf, 0xb8, 0xfa, 0xd8, 0x04,
+ 0x8f, 0x4c, 0x0f, 0xde, 0x00, 0x03, 0xe0, 0x0b, 0x65, 0x60, 0xc8, 0x93,
+ 0x41, 0x7f, 0x1d, 0xe9, 0xff, 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21,
+ 0x01, 0x2f, 0xe3, 0x04, 0x11, 0x7f, 0xe6, 0xff, 0xfe, 0xd0, 0x42, 0x68,
+ 0x03, 0x23, 0x14, 0x66, 0x43, 0xe0, 0x4e, 0x7f, 0xc7, 0x7e, 0x74, 0x05,
+ 0x80, 0x12, 0x21, 0x8b, 0x80, 0x19, 0x1e, 0x3a, 0x12, 0xaf, 0x7e, 0x8f,
+ 0xbf, 0xfe, 0xc2, 0xab, 0x7b, 0x90, 0x69, 0xe0, 0xff, 0x11, 0x3f, 0xef,
+ 0xc6, 0x7c, 0xde, 0xc4, 0x55, 0x61, 0x3d, 0x76, 0x2b, 0x84, 0xcf, 0xb5,
+ 0x87, 0x64, 0xc7, 0x3f, 0x20, 0x41, 0x4f, 0xe0, 0x65, 0x08, 0x07, 0x98,
+ 0xbe, 0x14, 0x47, 0x5a, 0xf4, 0x9c, 0xbc, 0xfe, 0x26, 0x2e, 0xbf, 0xef,
+ 0xc6, 0xf2, 0x1b, 0x00, 0x5d, 0x68, 0x15, 0x33, 0x8f, 0xcc, 0xa2, 0x30,
+ 0x80, 0x7f, 0xc3, 0xc8, 0x6a, 0x39, 0x42, 0x50, 0x28, 0xf8, 0x81, 0x9b,
+ 0x37, 0xcb, 0x77, 0xdf, 0x7f, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xff, 0xff, 0xfe, 0x10,
+ 0xff, 0xff, 0xff, 0xff, 0xfe, 0x6f, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff,
+ 0xfc, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0x6f, 0x60, 0x25, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0x66, 0x3e,
+ 0x00, 0x6d, 0xb1, 0xf6, 0x45, 0x07, 0x06, 0x55, 0x6c, 0x91, 0xbd, 0x5e,
+ 0x86, 0x62, 0x62, 0xbf, 0xff, 0xff, 0xf8, 0x60, 0x3b, 0x58, 0x11, 0x45,
+ 0xdf, 0x18, 0xc0, 0x96, 0x20, 0x71, 0x27, 0x32, 0x46, 0x39, 0x6c, 0x04,
+ 0x07, 0xf4, 0xe5, 0xde, 0x9b, 0xc2, 0x9c, 0xfc, 0xe0, 0x08, 0xe4, 0xbf,
+ 0xb9, 0xb7, 0x43, 0xf1, 0xf2, 0x0b, 0x4b, 0x22, 0x49, 0x98, 0x59, 0x60,
+ 0xf2, 0x12, 0xcb, 0x43, 0x01, 0xff, 0x7f, 0xc2, 0x62, 0xfe, 0x13, 0x6c,
+ 0xb1, 0xa3, 0xa2, 0x2e, 0xd7, 0xab, 0x00, 0xc3, 0x1c, 0xe2, 0xe5, 0xb6,
+ 0x14, 0x95, 0x5e, 0x7f, 0x8a, 0xff, 0xf5, 0xf1, 0x66, 0x91, 0xa0, 0x4d,
+ 0x7c, 0xb3, 0xb9, 0x20, 0x0e, 0xd9, 0xd0, 0xb7, 0x29, 0xf3, 0xf3, 0x28,
+ 0x1d, 0xf1, 0x61, 0xbb, 0x72, 0x34, 0xad, 0x61, 0xff, 0xff, 0x27, 0xff,
+ 0xaf, 0x42, 0x22, 0x0a, 0x75, 0xf0, 0x04, 0x0a, 0x94, 0x0e, 0xc7, 0x6c,
+ 0xc4, 0x3f, 0x5f, 0x81, 0x19, 0xeb, 0xc3, 0xef, 0xee, 0x52, 0xde, 0x9e,
+ 0x9b, 0x7d, 0x0b, 0x59, 0x21, 0x21, 0x6f, 0x9b, 0x06, 0xa4, 0x9a, 0xfe,
+ 0x65, 0x71, 0xe6, 0x6e, 0xf8, 0x19, 0xf5, 0xbc, 0x76, 0x6c, 0x76, 0xc3,
+ 0x1f, 0x0b, 0x7b, 0x78, 0x51, 0xc0, 0x4b, 0xfb, 0x5e, 0xfe, 0xf3, 0x89,
+ 0xc0, 0x09, 0x07, 0xb9, 0xbe, 0xb5, 0xe4, 0x40, 0xc8, 0x83, 0x78, 0xd8,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xb9, 0xbd, 0x82, 0x2f, 0xd7, 0xa0,
+ 0x60, 0x19, 0x1c, 0x22, 0x06, 0x24, 0xd3, 0x22, 0x33, 0xda, 0x4c, 0x30,
+ 0xaf, 0xb3, 0x64, 0x0c, 0x3f, 0xe0, 0x0c, 0x13, 0x7e, 0x95, 0xe7, 0x3d,
+ 0xe3, 0x3a, 0xf4, 0x08, 0x02, 0x02, 0x60, 0x0c, 0x60, 0xd5, 0x82, 0x39,
+ 0x03, 0x0f, 0x66, 0xae, 0x71, 0xef, 0xf8, 0x03, 0x3d, 0x7e, 0x48, 0x9e,
+ 0xbe, 0xf1, 0xb2, 0x38, 0x01, 0xbf, 0x5f, 0xfe, 0x7e, 0xf6, 0x93, 0x5c,
+ 0x66, 0x32, 0x80, 0x21, 0xfe, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xc9, 0xff,
+ 0xc2, 0xbf, 0xff, 0x84, 0x3f, 0xff, 0xff, 0x9b, 0xfc, 0xbf, 0xff, 0xff,
+ 0xc6, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xf9, 0xc9, 0x03, 0xbf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x7f,
+ 0xff, 0xf5, 0xff, 0xff, 0xf1, 0x32, 0x89, 0xc2, 0x26, 0x05, 0x45, 0x8a,
+ 0xff, 0xff, 0xfe, 0x61, 0x58, 0xcb, 0x47, 0xff, 0xff, 0xf2, 0x7f, 0x04,
+ 0x1c, 0x0a, 0x82, 0x98, 0x4e, 0xe3, 0x64, 0x85, 0x7b, 0x26, 0xe0, 0x3d,
+ 0x53, 0x01, 0x51, 0xdc, 0x81, 0xed, 0x35, 0x46, 0x11, 0x7b, 0xbf, 0xe3,
+ 0xe0, 0x65, 0x02, 0x35, 0x90, 0x1c, 0xa2, 0x21, 0x64, 0x7e, 0x62, 0x01,
+ 0x63, 0x3b, 0x58, 0x00, 0xe5, 0x77, 0x41, 0xff, 0xbe, 0xdc, 0x5b, 0xab,
+ 0xff, 0x15, 0xff, 0xff, 0xff, 0x37, 0xeb, 0x67, 0x9a, 0x03, 0x6c, 0x9c,
+ 0x01, 0x41, 0xd0, 0x47, 0xa4, 0x7e, 0x6d, 0xcc, 0xe4, 0xfc, 0xf0, 0x03,
+ 0x8c, 0x4d, 0x1b, 0x23, 0x5d, 0xf1, 0x86, 0x4a, 0xc3, 0xde, 0xbc, 0x60,
+ 0x7a, 0xbf, 0xfa, 0xfc, 0xcf, 0x5d, 0x47, 0x67, 0xff, 0xac, 0x5f, 0x01,
+ 0xe9, 0x99, 0xff, 0xff, 0xff, 0xc9, 0xff, 0xff, 0xfc, 0x92, 0xc4, 0x9b,
+ 0xcc, 0x58, 0xff, 0xfc, 0x25, 0x01, 0x31, 0x9b, 0x86, 0x9c, 0x0b, 0x7d,
+ 0x10, 0xbe, 0x83, 0x97, 0x06, 0x63, 0xea, 0xd4, 0x1c, 0xc7, 0xc8, 0x8d,
+ 0xaa, 0xfc, 0xff, 0x9f, 0xd7, 0xbf, 0x1d, 0xe6, 0xf1, 0xde, 0x8d, 0xff,
+ 0xf9, 0x3c, 0x10, 0x9e, 0x00, 0x19, 0xb7, 0xfc, 0xaf, 0x80, 0x02, 0xef,
+ 0xfc, 0x29, 0x4f, 0xc6, 0x3d, 0xff, 0xa4, 0xfb, 0x97, 0x9f, 0x37, 0xc1,
+ 0xc5, 0xe5, 0xf8, 0x95, 0xc0, 0x0b, 0xcf, 0xd2, 0x0d, 0x59, 0xbc, 0xa0,
+ 0x0c, 0x67, 0x68, 0xd2, 0xed, 0x34, 0x7f, 0x80, 0xff, 0x28, 0x0a, 0xcf,
+ 0x6d, 0x90, 0x0d, 0x38, 0x00, 0x3e, 0x6f, 0xc6, 0xc0, 0x00, 0x00, 0x01,
+ 0x21, 0x01, 0x2f, 0xe7, 0x24, 0x57, 0xcd, 0xa7, 0xba, 0x10, 0xa3, 0x91,
+ 0x6c, 0x46, 0x1e, 0xbb, 0x3c, 0x00, 0xc0, 0xf2, 0xbe, 0x3b, 0x15, 0xd6,
+ 0xc8, 0x07, 0x4c, 0x55, 0xc3, 0xd0, 0x03, 0xef, 0xfc, 0x52, 0x97, 0x88,
+ 0x7b, 0xff, 0x58, 0x13, 0xb5, 0x7d, 0x45, 0xa9, 0x76, 0x3f, 0xa5, 0xe0,
+ 0xf0, 0xf3, 0x5f, 0xff, 0xf8, 0x49, 0x80, 0x0b, 0xa7, 0xf6, 0x48, 0x1a,
+ 0x93, 0x76, 0x78, 0xdb, 0xe0, 0x3f, 0xca, 0x00, 0x01, 0xf8, 0x2f, 0x89,
+ 0x9d, 0x5f, 0xbf, 0x18, 0x6a, 0x67, 0x33, 0xf9, 0xf1, 0x42, 0x20, 0x4c,
+ 0x6b, 0xba, 0xce, 0x57, 0xdb, 0xed, 0x3e, 0xe0, 0x3f, 0xff, 0xef, 0xe1,
+ 0xf6, 0xab, 0xb0, 0x3f, 0xfb, 0x65, 0xa7, 0xdc, 0x07, 0xff, 0xfd, 0xfc,
+ 0x1f, 0x6a, 0xee, 0x78, 0xff, 0xe3, 0x67, 0xe6, 0xff, 0x5c, 0xf5, 0xc2,
+ 0xb0, 0x46, 0xcb, 0xbb, 0x2b, 0x67, 0xfe, 0x9f, 0xff, 0x00, 0x2c, 0x0a,
+ 0x5b, 0xaf, 0x64, 0x57, 0xae, 0x58, 0x61, 0xfa, 0xfb, 0x7f, 0xef, 0xfd,
+ 0xf7, 0xff, 0x7e, 0x37, 0xfd, 0xc2, 0x2e, 0x33, 0x19, 0x04, 0x13, 0x3f,
+ 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf8, 0x57, 0xff, 0xff, 0xfc, 0x21, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ 0xdf, 0xff, 0x97, 0xc2, 0x90, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11,
+ 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3,
+ 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xae, 0xb1,
+ 0x60, 0x29, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7,
+ 0xfe, 0x63, 0xe0, 0x06, 0xcb, 0x91, 0x81, 0x20, 0xfd, 0x78, 0x3d, 0x3a,
+ 0x53, 0x6f, 0xcb, 0xe2, 0xbf, 0xfd, 0xff, 0xff, 0x86, 0x03, 0xb3, 0xc1,
+ 0x14, 0x5d, 0x15, 0x71, 0x82, 0x85, 0xff, 0xbd, 0x09, 0xe2, 0xb0, 0xbc,
+ 0x08, 0x6d, 0x7e, 0xd3, 0x61, 0x8b, 0xb0, 0x04, 0x72, 0x5f, 0xdc, 0xdd,
+ 0xfd, 0x16, 0xef, 0x50, 0xff, 0xe3, 0xc6, 0x6e, 0x55, 0x4a, 0xc5, 0x98,
+ 0xdf, 0xdb, 0x2f, 0xd7, 0xfc, 0x57, 0xff, 0xf0, 0xc7, 0xeb, 0x61, 0x80,
+ 0x0f, 0x64, 0xe0, 0x23, 0x29, 0xe9, 0xf9, 0xcd, 0xf2, 0xf2, 0xcc, 0x01,
+ 0x37, 0x9a, 0xea, 0x79, 0xf6, 0x91, 0x30, 0xa9, 0xe7, 0xfb, 0x19, 0x07,
+ 0xcf, 0xff, 0xff, 0x7f, 0xff, 0xc3, 0x1b, 0x06, 0x0f, 0xff, 0x09, 0x70,
+ 0x05, 0x7a, 0x69, 0xd1, 0xe2, 0x05, 0x26, 0x5e, 0x02, 0x2c, 0xdf, 0x3b,
+ 0x63, 0xeb, 0x78, 0xec, 0xd8, 0xed, 0x2f, 0x0c, 0x7c, 0x08, 0x64, 0x5f,
+ 0x82, 0x62, 0xc2, 0x47, 0x0f, 0x7a, 0x08, 0xb0, 0x25, 0xe1, 0xe1, 0xca,
+ 0x04, 0x28, 0x12, 0x5e, 0x36, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xba,
+ 0xc5, 0x83, 0x2e, 0xbc, 0x31, 0xf9, 0x64, 0x5f, 0x8c, 0x11, 0x01, 0x16,
+ 0x33, 0x10, 0x11, 0xe8, 0x36, 0x82, 0x06, 0x78, 0x72, 0x81, 0x0a, 0x04,
+ 0x99, 0xf7, 0xde, 0xf1, 0x91, 0xf8, 0x69, 0xee, 0x58, 0x03, 0x01, 0x16,
+ 0x33, 0xc0, 0x8f, 0x41, 0xa4, 0xff, 0x67, 0x80, 0x78, 0x77, 0xde, 0x18,
+ 0xff, 0x38, 0x9e, 0xb8, 0xb9, 0xe1, 0xf0, 0x19, 0x9b, 0x49, 0xe3, 0xff,
+ 0xd7, 0xf8, 0x01, 0xe5, 0x76, 0xc9, 0x1b, 0x87, 0x2e, 0x2b, 0x78, 0xff,
+ 0x7f, 0xf7, 0xf7, 0x8d, 0xef, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6, 0xff, 0x2f, 0xff,
+ 0xff, 0xf1, 0xb0, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87,
+ 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b,
+ 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfa, 0xd1, 0x03, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe1, 0x19, 0x8f, 0x80, 0x0d, 0x9a, 0x6d,
+ 0x27, 0x26, 0x6e, 0xff, 0xd8, 0x19, 0x8c, 0x13, 0x15, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf3, 0x07, 0x67, 0x45, 0x45, 0x17, 0x17, 0x37, 0x8c, 0x14,
+ 0x56, 0x1d, 0x4c, 0xb6, 0xd2, 0x56, 0x6d, 0xaa, 0xac, 0x16, 0xe8, 0xdf,
+ 0x7b, 0x66, 0xd9, 0xe0, 0x03, 0x6d, 0xe8, 0x51, 0x3f, 0xee, 0xdd, 0x0f,
+ 0xd0, 0x61, 0x19, 0x27, 0xa7, 0xe2, 0xff, 0x66, 0xfc, 0x83, 0x33, 0xf9,
+ 0x2f, 0xfe, 0xeb, 0x8d, 0x5c, 0xe9, 0x92, 0x1f, 0x69, 0x7e, 0x13, 0x16,
+ 0x03, 0x8a, 0x87, 0x25, 0x39, 0xf3, 0x7c, 0xf4, 0x60, 0xbc, 0x09, 0x97,
+ 0xad, 0xf0, 0x7f, 0x8b, 0x2c, 0x37, 0x7b, 0xbc, 0x1e, 0x2b, 0xff, 0xff,
+ 0xfe, 0x6f, 0xc4, 0x24, 0xcc, 0x1e, 0xc9, 0xc0, 0x0c, 0x0f, 0x2b, 0xe3,
+ 0xb6, 0x2d, 0x23, 0x8a, 0x04, 0xf8, 0x58, 0xc2, 0x9e, 0x45, 0xe7, 0x3e,
+ 0x01, 0x9f, 0x82, 0x14, 0xea, 0x87, 0x4b, 0x8b, 0x06, 0x29, 0xfc, 0xff,
+ 0xff, 0xff, 0xe4, 0xff, 0xff, 0xff, 0x9a, 0x3e, 0x1f, 0xf8, 0x4a, 0x02,
+ 0xe9, 0xa0, 0x66, 0x3e, 0xad, 0x5f, 0xe0, 0x08, 0xa6, 0x81, 0x98, 0xe6,
+ 0xad, 0x40, 0x08, 0xa6, 0x81, 0x98, 0xa2, 0x56, 0xaf, 0x0e, 0x7f, 0x5e,
+ 0xfc, 0x77, 0x9b, 0xc7, 0x1b, 0xe1, 0xfd, 0x29, 0x0a, 0x17, 0x80, 0xe2,
+ 0x33, 0x81, 0x25, 0xa0, 0x05, 0xa9, 0x54, 0x25, 0x5d, 0xf3, 0x7e, 0xf4,
+ 0x50, 0x03, 0x3d, 0x2a, 0x10, 0x3f, 0x63, 0x79, 0x36, 0x01, 0xb8, 0x00,
+ 0x7f, 0x0f, 0x3f, 0x00, 0x10, 0xfd, 0xdc, 0xed, 0x3f, 0xfa, 0x6c, 0x02,
+ 0x01, 0xff, 0x87, 0xe0, 0x06, 0x25, 0xc4, 0x8d, 0xa5, 0xda, 0xc8, 0xd1,
+ 0xfc, 0xdf, 0x08, 0xff, 0xc3, 0xea, 0x00, 0xc6, 0x76, 0x8d, 0x2e, 0xd7,
+ 0xdf, 0x8d, 0x80, 0x00, 0x00, 0x01, 0x21, 0x01, 0x2f, 0xeb, 0x44, 0x57,
+ 0x21, 0xa0, 0x0a, 0xd9, 0x68, 0x06, 0x30, 0x15, 0x37, 0xe6, 0xd3, 0xe9,
+ 0x14, 0xf8, 0x4d, 0x07, 0x00, 0x12, 0x6e, 0x9d, 0xfa, 0x4f, 0xdc, 0xf0,
+ 0x7a, 0x1c, 0xd3, 0xd9, 0x73, 0xd7, 0xd3, 0xfc, 0x00, 0x1f, 0x69, 0xdf,
+ 0xa9, 0x6b, 0xff, 0x44, 0x44, 0x93, 0x09, 0xef, 0xc6, 0x7f, 0xdf, 0xfd,
+ 0xf8, 0xdf, 0xff, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc2, 0xbf, 0xff, 0xff, 0xe1, 0x0f, 0xff, 0xff,
+ 0xff, 0xff, 0xe6, 0xff, 0xfc, 0xbe, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01,
+ 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1,
+ 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x01, 0xae, 0xf3, 0x60, 0x25, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xd7, 0xfd, 0xe6, 0x3e, 0x12, 0xb3, 0x92, 0xe1, 0x8f, 0xfd,
+ 0x7f, 0x04, 0x0f, 0x02, 0x16, 0xe0, 0x3f, 0xd5, 0xbe, 0x2b, 0xff, 0xff,
+ 0xff, 0x86, 0x03, 0xc2, 0x28, 0xa2, 0xf5, 0x51, 0x8c, 0x18, 0x07, 0xbc,
+ 0x69, 0x19, 0xb0, 0x50, 0x41, 0xb5, 0x00, 0x58, 0xdf, 0xef, 0xa9, 0xc8,
+ 0x04, 0x2c, 0x80, 0x47, 0x25, 0xfd, 0xcd, 0xba, 0x1f, 0x8f, 0x14, 0xbd,
+ 0x7a, 0x6b, 0xe9, 0xf8, 0xca, 0xa5, 0xa1, 0x80, 0xff, 0xbf, 0xe1, 0x31,
+ 0x62, 0x49, 0x40, 0x71, 0xd9, 0xb9, 0xcc, 0x88, 0x49, 0xbb, 0xff, 0xf5,
+ 0x79, 0xd0, 0x1c, 0xf6, 0x0a, 0xb7, 0xf8, 0xaf, 0xff, 0xeb, 0x08, 0x2e,
+ 0x09, 0x7f, 0x80, 0x04, 0x5a, 0x3a, 0x13, 0xeb, 0xc4, 0xef, 0xf8, 0x1e,
+ 0x6c, 0xf0, 0x6a, 0xc5, 0x2c, 0xab, 0x3c, 0x72, 0x9f, 0x04, 0x37, 0x96,
+ 0x30, 0x72, 0x04, 0x9b, 0xcf, 0xae, 0xa6, 0xdb, 0x59, 0xff, 0xff, 0x27,
+ 0xff, 0xf2, 0x70, 0x3e, 0x08, 0x44, 0x17, 0x19, 0xcd, 0x13, 0x8c, 0xf0,
+ 0x00, 0x8b, 0xee, 0xbb, 0x1f, 0xe5, 0xc0, 0x1a, 0xd2, 0x12, 0xde, 0xd3,
+ 0x60, 0x66, 0xfd, 0xe3, 0x22, 0x23, 0x26, 0x38, 0xdc, 0x89, 0x13, 0xf3,
+ 0xcf, 0xad, 0xe3, 0xb3, 0x63, 0x97, 0x86, 0x3f, 0xfb, 0xe2, 0xf0, 0xa9,
+ 0x70, 0x08, 0xf5, 0xf6, 0xc3, 0xd9, 0x33, 0x5e, 0x03, 0xee, 0xdf, 0x3f,
+ 0x37, 0x43, 0x86, 0x3f, 0xe3, 0xbb, 0xf1, 0x9e, 0x00, 0xcf, 0xe4, 0x7a,
+ 0x2e, 0x00, 0x63, 0x69, 0x07, 0x59, 0x7f, 0xa6, 0xed, 0xe8, 0xde, 0x4e,
+ 0x7e, 0x9b, 0x96, 0xcc, 0x0f, 0xc3, 0x1b, 0xb9, 0x00, 0x8f, 0xfc, 0x25,
+ 0xc5, 0xf3, 0x95, 0xc1, 0x1f, 0x73, 0xfa, 0x02, 0x3d, 0x6f, 0xe4, 0xdc,
+ 0x29, 0xc9, 0xf9, 0xfe, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e,
+ 0xbb, 0xcd, 0x82, 0x29, 0x0d, 0x00, 0x32, 0x9e, 0x9f, 0xcc, 0xf7, 0xef,
+ 0x97, 0x78, 0xcf, 0xbf, 0xbc, 0x6f, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf8, 0x57, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xf3, 0x7f, 0x97,
+ 0xff, 0xff, 0xf8, 0xd8, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfb, 0xd9, 0x02,
+ 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xf3, 0x1f, 0x80, 0x58, 0x9b, 0x88, 0xd0,
+ 0x2c, 0x4c, 0x44, 0x5f, 0x02, 0x68, 0x7f, 0xdc, 0xd7, 0x22, 0xfc, 0xf7,
+ 0xe0, 0x06, 0xc1, 0x7f, 0xd3, 0x22, 0x88, 0x7e, 0x01, 0x99, 0xb1, 0x91,
+ 0xb3, 0xbd, 0x6c, 0xf7, 0xa7, 0x89, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xfc,
+ 0xa1, 0x0c, 0x23, 0xf6, 0xa3, 0x93, 0xf0, 0xc8, 0x8c, 0x64, 0x53, 0x00,
+ 0x1d, 0xec, 0x98, 0x8a, 0x85, 0x6d, 0x5e, 0xbf, 0xea, 0x0b, 0x10, 0x8c,
+ 0x74, 0xf0, 0x88, 0xfc, 0x16, 0x3b, 0x90, 0xfc, 0xc0, 0x03, 0x23, 0xb4,
+ 0x4c, 0x91, 0x9b, 0xff, 0xff, 0x6e, 0xb5, 0x9e, 0x01, 0xf5, 0x69, 0x18,
+ 0x12, 0x36, 0x24, 0xd7, 0xad, 0xfa, 0x5e, 0xee, 0x79, 0x4c, 0x60, 0xd3,
+ 0x80, 0x3c, 0x6d, 0x30, 0xb5, 0x36, 0x29, 0x3d, 0x0d, 0x6f, 0x3f, 0xfc,
+ 0x74, 0x47, 0xae, 0x40, 0xed, 0xf3, 0xf8, 0x47, 0x56, 0x67, 0x14, 0xbd,
+ 0xef, 0xbe, 0x00, 0x00, 0xdc, 0x92, 0x6d, 0xff, 0xe8, 0xe1, 0x83, 0x6c,
+ 0x8d, 0xcf, 0xfd, 0x77, 0x83, 0x50, 0x02, 0x1d, 0xb2, 0x19, 0x1e, 0x4f,
+ 0x7a, 0x0f, 0x49, 0x8d, 0x11, 0xd0, 0xda, 0x98, 0x33, 0x96, 0xce, 0x16,
+ 0xcb, 0xbb, 0xe0, 0x81, 0xcd, 0xfe, 0x12, 0xfc, 0x10, 0x09, 0x01, 0xa2,
+ 0xdc, 0x45, 0x31, 0xdc, 0x9f, 0xff, 0xc3, 0xc7, 0x48, 0x48, 0xaf, 0x4d,
+ 0x9f, 0xf7, 0xbc, 0x57, 0xff, 0xff, 0xf0, 0x8a, 0xc1, 0x2f, 0x9b, 0x9b,
+ 0x82, 0x16, 0x97, 0xb5, 0xc8, 0x8d, 0x8f, 0xfe, 0x75, 0xf8, 0x5f, 0x5f,
+ 0x5e, 0x6f, 0xc5, 0x48, 0x98, 0x9d, 0xd5, 0x6d, 0x70, 0x08, 0xf5, 0xf6,
+ 0xd8, 0xb0, 0x18, 0x41, 0x51, 0x4e, 0x01, 0x17, 0x3a, 0xeb, 0xfb, 0xe4,
+ 0x17, 0x45, 0x79, 0x80, 0x35, 0x19, 0xcd, 0xfd, 0x7c, 0x01, 0x5e, 0x63,
+ 0x13, 0x12, 0x73, 0xfd, 0x53, 0x2d, 0x74, 0xc2, 0xfb, 0x19, 0x77, 0xf7,
+ 0x7d, 0x89, 0xba, 0x3f, 0x17, 0x1a, 0x1f, 0xe7, 0xd5, 0x62, 0x7a, 0xd8,
+ 0x4d, 0x47, 0x39, 0xfd, 0xfa, 0x8f, 0x10, 0x44, 0x6d, 0xff, 0xff, 0xff,
+ 0x93, 0xff, 0xff, 0xf9, 0x06, 0x07, 0xa5, 0xbd, 0x5c, 0x5d, 0xc4, 0xf0,
+ 0xd4, 0xc1, 0x55, 0xdc, 0xbf, 0xe1, 0x28, 0xee, 0x66, 0x91, 0xc7, 0xa9,
+ 0x4f, 0x0a, 0x5c, 0x5b, 0x37, 0x37, 0x86, 0x70, 0xb2, 0xf0, 0xa9, 0x1d,
+ 0xdf, 0xc4, 0x0b, 0x0b, 0xcc, 0x59, 0x2c, 0xcf, 0xba, 0xea, 0xde, 0xf9,
+ 0x31, 0x99, 0xef, 0x04, 0x22, 0xff, 0xea, 0x0c, 0xfc, 0xa5, 0xc0, 0x03,
+ 0xfe, 0x49, 0xdf, 0x00, 0x1e, 0x04, 0xdf, 0x00, 0xd7, 0xe9, 0xd3, 0x9a,
+ 0x42, 0xf9, 0xf0, 0xc4, 0xe6, 0xfb, 0x5b, 0xe1, 0x28, 0x53, 0x00, 0x17,
+ 0x30, 0xe5, 0xd5, 0x24, 0x74, 0x3d, 0xff, 0xf9, 0x05, 0xf8, 0x29, 0x8d,
+ 0x2e, 0x14, 0x97, 0xd7, 0x72, 0x01, 0x61, 0x27, 0x91, 0xc8, 0x68, 0xa8,
+ 0x90, 0xe6, 0xae, 0xab, 0x5f, 0x87, 0x09, 0x30, 0x35, 0xcb, 0x63, 0xfc,
+ 0xff, 0xc0, 0x3c, 0x1f, 0xe4, 0x96, 0xe7, 0x5b, 0x9a, 0xae, 0xb5, 0xe7,
+ 0xff, 0xe4, 0xb6, 0x3f, 0xcf, 0x9b, 0x55, 0xff, 0x55, 0x0c, 0x13, 0xaf,
+ 0x80, 0x90, 0x1b, 0x73, 0xd6, 0x0e, 0x34, 0xe0, 0xd9, 0xcb, 0xe9, 0xdd,
+ 0xf3, 0x80, 0x1a, 0x0b, 0xf7, 0x81, 0xad, 0x30, 0xa9, 0xd7, 0xcc, 0xf7,
+ 0xd2, 0xff, 0x9b, 0xe1, 0xea, 0xbf, 0x04, 0x0b, 0xe0, 0x0b, 0x32, 0xaa,
+ 0x3b, 0xda, 0x02, 0xfb, 0xab, 0xe4, 0x7b, 0xe6, 0x11, 0x37, 0xc3, 0xfa,
+ 0x52, 0x08, 0x5c, 0x00, 0x29, 0x22, 0x94, 0x82, 0x77, 0x4e, 0x84, 0xff,
+ 0xed, 0x14, 0x07, 0x3d, 0xa2, 0xa2, 0xc8, 0x7d, 0xdf, 0x48, 0x98, 0x9c,
+ 0xfe, 0x61, 0xea, 0xff, 0xfc, 0x3e, 0x60, 0x03, 0xca, 0x55, 0x72, 0x46,
+ 0xe7, 0x07, 0xd1, 0x23, 0x23, 0x75, 0xad, 0xfe, 0xfc, 0x6c, 0x00, 0x00,
+ 0x01, 0x21, 0x01, 0x2f, 0xef, 0x64, 0x1d, 0x7f, 0x94, 0x40, 0xc1, 0x65,
+ 0xee, 0x5f, 0x7e, 0x33, 0x92, 0x52, 0xb0, 0x26, 0xf7, 0xcf, 0x32, 0x8f,
+ 0x5f, 0x17, 0x09, 0x58, 0x12, 0x91, 0xe1, 0x03, 0x4f, 0x0f, 0x52, 0x4b,
+ 0xdf, 0xfd, 0xf8, 0xde, 0x47, 0x81, 0x36, 0xb0, 0x37, 0xd0, 0xff, 0xff,
+ 0x10, 0xa0, 0x91, 0xb9, 0xfd, 0x70, 0x4f, 0xf4, 0x0a, 0x4f, 0x2f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a,
+ 0xff, 0xff, 0xff, 0x84, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0xf2,
+ 0xf8, 0x52, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4,
+ 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17,
+ 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x01, 0xaf, 0x35, 0x60, 0x21, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xff, 0xaf, 0xdf, 0x90, 0x4c,
+ 0xb1, 0x67, 0xc1, 0x0b, 0x47, 0xfe, 0xdf, 0x99, 0x00, 0x21, 0x7a, 0x7e,
+ 0x55, 0xc5, 0x7f, 0xff, 0xfd, 0xfb, 0xf0, 0xc1, 0x83, 0x59, 0xf7, 0x8d,
+ 0x05, 0x56, 0xc4, 0x00, 0xab, 0x5f, 0x1b, 0xb3, 0xff, 0x9b, 0x8d, 0x25,
+ 0x39, 0xe0, 0x0f, 0xc7, 0xa7, 0xfa, 0x68, 0xf6, 0x03, 0x35, 0x38, 0x3a,
+ 0xba, 0x78, 0x0e, 0xbf, 0x16, 0x3f, 0xe7, 0x7f, 0xcd, 0x70, 0x72, 0xc2,
+ 0x1d, 0x01, 0x9b, 0x2b, 0x82, 0x64, 0x9d, 0x35, 0x44, 0xb1, 0x26, 0x63,
+ 0x9d, 0xa3, 0xd7, 0x1e, 0x14, 0xcc, 0x69, 0x23, 0xa9, 0x3c, 0x57, 0xff,
+ 0xbf, 0x0c, 0x71, 0xe0, 0x06, 0x8f, 0xaa, 0x45, 0x9b, 0x00, 0x30, 0x3c,
+ 0xaf, 0x8e, 0xc3, 0xd5, 0xa9, 0x61, 0xea, 0xd2, 0x60, 0xac, 0x51, 0x40,
+ 0x48, 0x73, 0x2f, 0x01, 0x23, 0x39, 0xd4, 0xf2, 0x8b, 0xe2, 0x29, 0x1c,
+ 0x36, 0xb6, 0x91, 0xbf, 0x3c, 0xd4, 0xb7, 0x00, 0x29, 0xc8, 0x0f, 0xff,
+ 0xf9, 0x3f, 0xfd, 0xf8, 0x62, 0xa8, 0x2c, 0x0e, 0x3f, 0xf0, 0x93, 0x32,
+ 0x89, 0x23, 0x6a, 0xbc, 0x0c, 0xc4, 0xdf, 0x20, 0xfe, 0xef, 0x1e, 0xe9,
+ 0x4b, 0x04, 0xe0, 0x53, 0x2f, 0xb3, 0xf6, 0xa1, 0x53, 0x72, 0xb1, 0x9d,
+ 0xf2, 0x97, 0xff, 0x00, 0x33, 0xae, 0xb7, 0x8e, 0x59, 0x8b, 0x00, 0x13,
+ 0x2f, 0xbc, 0xf0, 0x74, 0x23, 0xbf, 0xa7, 0x80, 0x00, 0x80, 0x06, 0x18,
+ 0xff, 0x11, 0xd7, 0xc2, 0xbd, 0xa8, 0x07, 0x44, 0x56, 0xbf, 0x43, 0xc0,
+ 0x25, 0x6f, 0xbd, 0xa1, 0x8f, 0xfe, 0x3a, 0x8c, 0x2b, 0xc7, 0xbb, 0xe5,
+ 0x83, 0xc0, 0x79, 0x96, 0x10, 0x34, 0xe0, 0x3c, 0x8e, 0x3b, 0x7a, 0x52,
+ 0x3e, 0xbb, 0xc7, 0x06, 0x3e, 0x50, 0xfa, 0x42, 0x08, 0x70, 0x01, 0x25,
+ 0x51, 0x36, 0xb4, 0x5f, 0x7a, 0x12, 0x1d, 0x54, 0x99, 0x3f, 0x7c, 0xbd,
+ 0x0d, 0xc4, 0xac, 0x35, 0xf2, 0x46, 0x44, 0x88, 0x10, 0x01, 0x23, 0xd5,
+ 0x7d, 0x61, 0xee, 0xf8, 0xbf, 0xc0, 0xcd, 0x7e, 0x5e, 0x07, 0xd7, 0x9f,
+ 0x77, 0xef, 0x1b, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbc, 0xd5, 0x84,
+ 0xf2, 0xef, 0x18, 0xfd, 0xf7, 0xf7, 0x8d, 0xfd, 0xf2, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xe1, 0x0f, 0xff, 0xff, 0xe6,
+ 0xff, 0x2e, 0x14, 0x80, 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03,
+ 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4,
+ 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00, 0x01, 0x21, 0xfc, 0xe1, 0x03,
+ 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfd, 0x7f, 0xff, 0xf5, 0xff, 0xfd, 0xe2, 0x66, 0x3e, 0x04, 0x5f, 0x8c,
+ 0xf2, 0x0f, 0xa7, 0xfa, 0x9f, 0x96, 0x24, 0xb9, 0x4b, 0xb6, 0xbd, 0xeb,
+ 0xfc, 0x7f, 0x8a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xca, 0x41, 0x43,
+ 0x00, 0x60, 0xf7, 0xdb, 0x4b, 0xa9, 0xd8, 0x34, 0xcf, 0x67, 0xe8, 0x31,
+ 0x4b, 0x0d, 0x4d, 0x48, 0xa7, 0x80, 0x1b, 0x13, 0x41, 0xf3, 0x17, 0x32,
+ 0xf7, 0xdf, 0xb9, 0xde, 0xc7, 0xcd, 0xa7, 0xc2, 0xff, 0x84, 0xc4, 0xbe,
+ 0x80, 0x65, 0x01, 0x31, 0x7a, 0xaf, 0xa2, 0x98, 0xc4, 0x8d, 0xbb, 0xa7,
+ 0xaf, 0x6f, 0x9e, 0x40, 0xeb, 0x1f, 0xb5, 0xf5, 0xef, 0xfc, 0x57, 0xff,
+ 0xff, 0xfc, 0xdf, 0xad, 0x95, 0x0a, 0x92, 0xb3, 0x70, 0x03, 0x8b, 0x90,
+ 0x8b, 0xd8, 0x79, 0xb7, 0x39, 0x1a, 0xe9, 0xef, 0x01, 0x08, 0x96, 0xd4,
+ 0xba, 0x89, 0x1a, 0x80, 0x09, 0xa2, 0xdd, 0x0f, 0x7e, 0xf9, 0xd0, 0x00,
+ 0xf5, 0x40, 0xd9, 0x4f, 0x93, 0x16, 0x66, 0x2f, 0x93, 0x6e, 0xab, 0xf1,
+ 0x20, 0x0c, 0xea, 0xa3, 0x6a, 0xa8, 0x67, 0x5c, 0x9c, 0xdf, 0xff, 0x91,
+ 0x41, 0x09, 0xe0, 0x01, 0xb5, 0xf6, 0xe0, 0x90, 0xa5, 0x27, 0xf8, 0x00,
+ 0xf5, 0x2f, 0x40, 0x7e, 0xf3, 0x1f, 0x7f, 0xc8, 0x3f, 0xff, 0xf7, 0x3c,
+ 0xbf, 0x8e, 0x1f, 0x23, 0x02, 0x08, 0x7c, 0xf1, 0xeb, 0xfe, 0x4f, 0xff,
+ 0xff, 0xff, 0x10, 0x48, 0x5f, 0xad, 0xab, 0xe0, 0xe8, 0xbe, 0x21, 0xd4,
+ 0x68, 0x2a, 0x78, 0x3a, 0x2f, 0xfc, 0xe6, 0x95, 0xa4, 0x52, 0x26, 0x0f,
+ 0x89, 0x2c, 0x01, 0x0a, 0x5f, 0xf0, 0x1f, 0xfd, 0xb3, 0x04, 0x44, 0xab,
+ 0xa3, 0xcd, 0x1f, 0xb9, 0xf1, 0x9d, 0xff, 0x83, 0xff, 0xff, 0x70, 0x30,
+ 0xe0, 0x05, 0x90, 0xed, 0xd3, 0x23, 0xbb, 0xd5, 0x41, 0x84, 0x77, 0xdf,
+ 0xfe, 0x7e, 0xff, 0xbf, 0xcc, 0x29, 0x3d, 0x3e, 0x60, 0x27, 0x15, 0xf0,
+ 0x03, 0xd9, 0xff, 0x28, 0xff, 0xf8, 0xf4, 0x0f, 0xe8, 0x28, 0x02, 0x1e,
+ 0xbe, 0x97, 0xfb, 0x7f, 0xe0, 0x0a, 0x7b, 0x4b, 0x3e, 0x48, 0x9e, 0x3b,
+ 0x8a, 0xf0, 0xec, 0x5f, 0x8d, 0x2c, 0x3c, 0x0b, 0xc4, 0xc4, 0xfc, 0x47,
+ 0x99, 0x26, 0x90, 0xe7, 0x84, 0xf1, 0x63, 0x00, 0x4a, 0xf5, 0x2f, 0xf0,
+ 0x3f, 0xf0, 0x48, 0xf0, 0xef, 0xe1, 0xfc, 0x01, 0xcd, 0xcb, 0x3d, 0x2f,
+ 0x7e, 0x3b, 0xd8, 0x52, 0x24, 0x00, 0x21, 0x7b, 0xbb, 0xbe, 0xff, 0xc0,
+ 0x03, 0xf7, 0xad, 0xc5, 0x0e, 0xba, 0xfc, 0xff, 0xfb, 0xf1, 0xb0, 0x00,
+ 0x00, 0x01, 0x21, 0x01, 0x2f, 0xf3, 0x84, 0x57, 0xfc, 0xbe, 0xfc, 0x67,
+ 0xfd, 0xff, 0xdf, 0x8e, 0xff, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x85, 0x7f, 0xff, 0xff, 0xc2, 0x1f,
+ 0xff, 0xff, 0xff, 0xff, 0xcd, 0xff, 0xf9, 0x7c, 0x29, 0x00, 0x00, 0x00,
+ 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a, 0x4b, 0xdc,
+ 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80, 0x00, 0x00,
+ 0x01, 0x01, 0xaf, 0x77, 0x60, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xeb, 0xff, 0xaf, 0xfb, 0x51, 0x67, 0xc2, 0x26, 0x83, 0x87, 0x82,
+ 0x6b, 0x9e, 0x32, 0xe4, 0x08, 0x89, 0x58, 0xaf, 0xff, 0xff, 0xfe, 0xdc,
+ 0x50, 0x80, 0x18, 0xc7, 0x3b, 0x22, 0x65, 0xfb, 0x3e, 0x9e, 0x03, 0x72,
+ 0x14, 0xa1, 0x68, 0x0e, 0xbe, 0x40, 0x07, 0x73, 0xa0, 0xf9, 0x83, 0x3f,
+ 0x64, 0x7a, 0x48, 0x85, 0x1e, 0xc1, 0xfb, 0x88, 0x51, 0x03, 0x81, 0xc3,
+ 0x1b, 0x7d, 0x6f, 0xf8, 0x4c, 0x48, 0x14, 0x1b, 0x00, 0x09, 0x87, 0x2a,
+ 0xf6, 0xf6, 0xb0, 0x3e, 0x6b, 0xfb, 0x74, 0xb9, 0xe3, 0x2b, 0x31, 0x5f,
+ 0xde, 0x19, 0xb6, 0x92, 0x49, 0x76, 0xbc, 0x57, 0xff, 0xf0, 0xc7, 0x1e,
+ 0xa0, 0xe1, 0x30, 0x6d, 0x9b, 0x00, 0x8f, 0x5f, 0x6c, 0x3c, 0x51, 0xd2,
+ 0xde, 0x12, 0xe2, 0xf2, 0x06, 0xdc, 0xd2, 0xc7, 0xa0, 0xce, 0xf7, 0x69,
+ 0x3f, 0xbf, 0x7f, 0xe0, 0xd7, 0x95, 0x20, 0xaf, 0x57, 0xec, 0xaa, 0xd2,
+ 0xd3, 0xa9, 0x63, 0xb9, 0x1e, 0xb3, 0xaf, 0x5f, 0xfe, 0x4f, 0xff, 0xe1,
+ 0x8b, 0x0a, 0x45, 0xbf, 0xf0, 0x91, 0xe0, 0x18, 0xea, 0xd3, 0xfc, 0x80,
+ 0x4d, 0x35, 0x8e, 0xb2, 0xb3, 0x74, 0x12, 0xdc, 0x12, 0x2f, 0x23, 0xc3,
+ 0x9c, 0x31, 0x2b, 0x15, 0x40, 0x89, 0xb5, 0xed, 0x40, 0x06, 0xd7, 0xf5,
+ 0x7c, 0x7f, 0xd5, 0x0b, 0xaa, 0x3c, 0x6a, 0x10, 0x3f, 0xe9, 0xf1, 0xab,
+ 0xfd, 0x81, 0xd3, 0x78, 0x01, 0xf3, 0xf9, 0x23, 0x37, 0x14, 0x83, 0x33,
+ 0xbf, 0xfa, 0x7f, 0xdf, 0xfc, 0x04, 0x0f, 0x79, 0xde, 0x22, 0xfc, 0x31,
+ 0xfe, 0x73, 0x3f, 0x82, 0x02, 0xea, 0x20, 0x30, 0x12, 0x9f, 0xea, 0xf9,
+ 0x59, 0x41, 0xf8, 0x49, 0x8e, 0xef, 0xc3, 0x13, 0xd6, 0x27, 0xff, 0x09,
+ 0x2f, 0xa0, 0x78, 0x03, 0xd7, 0xda, 0x02, 0x5d, 0xbe, 0x01, 0xdf, 0x78,
+ 0xf7, 0x70, 0xc7, 0xf9, 0x9c, 0xf5, 0xc2, 0xa8, 0x02, 0x1c, 0xbe, 0x0e,
+ 0x39, 0xbf, 0xc3, 0xb0, 0x7e, 0x1c, 0xc5, 0x81, 0xf8, 0x5d, 0xe3, 0xb6,
+ 0x48, 0x88, 0x92, 0x17, 0x00, 0x6d, 0x5f, 0xe0, 0x51, 0x97, 0xde, 0x36,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x2e, 0xbd, 0xdd, 0x84, 0xbe, 0x5d, 0xe3,
+ 0x3e, 0xfe, 0xf1, 0xdf, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x0a, 0xff, 0xfe, 0x10, 0xff, 0xff, 0xfe, 0x6f, 0xf2, 0xe1, 0x48, 0x00,
+ 0x00, 0x00, 0x01, 0x06, 0x05, 0x11, 0x03, 0x87, 0xf4, 0x4e, 0xcd, 0x0a,
+ 0x4b, 0xdc, 0xa1, 0x94, 0x3a, 0xc3, 0xd4, 0x9b, 0x17, 0x1f, 0x00, 0x80,
+ 0x00, 0x00, 0x01, 0x01, 0xfd, 0xe5, 0x02, 0x5f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f,
+ 0xff, 0xde, 0x11, 0x98, 0xfc, 0x01, 0x93, 0x76, 0xf6, 0xff, 0xfe, 0x9e,
+ 0x26, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x36, 0x6b, 0x60, 0xe0,
+ 0x31, 0x80, 0xd8, 0x40, 0x02, 0x6f, 0xcf, 0xb3, 0xff, 0xa2, 0xca, 0xd8,
+ 0xc6, 0x81, 0xc4, 0x9c, 0xc9, 0x0c, 0x72, 0xd8, 0x08, 0x0f, 0xe9, 0xcb,
+ 0xbd, 0x35, 0xda, 0x73, 0xf3, 0x81, 0xac, 0xb3, 0x7d, 0xdf, 0x1f, 0x11,
+ 0x16, 0x59, 0x10, 0xb7, 0x50, 0xb2, 0xc1, 0xe2, 0x23, 0xcb, 0x42, 0x71,
+ 0x21, 0x1d, 0xc8, 0xbf, 0x22, 0x73, 0xe1, 0xb2, 0xcb, 0x1a, 0x3a, 0x7d,
+ 0xaf, 0xf4, 0x10, 0x5c, 0xc6, 0x27, 0x2c, 0x37, 0xa2, 0xc4, 0x8c, 0x9f,
+ 0x6b, 0xfc, 0x57, 0xff, 0xff, 0xfd, 0x71, 0x22, 0xcd, 0x00, 0x62, 0x64,
+ 0x28, 0x95, 0x54, 0x1d, 0x5a, 0x90, 0xe9, 0x75, 0xa5, 0xae, 0xb8, 0x30,
+ 0x57, 0x94, 0xfd, 0x73, 0xe1, 0x8d, 0xc9, 0x1e, 0xb9, 0xe2, 0xb4, 0xf2,
+ 0x41, 0xe3, 0xf3, 0x1e, 0x01, 0x2f, 0xaf, 0x0f, 0x9d, 0x5f, 0xeb, 0x02,
+ 0x08, 0x38, 0x1e, 0xb8, 0x02, 0x19, 0x58, 0x7c, 0xc7, 0xbf, 0x30, 0xab,
+ 0xfb, 0xd8, 0x84, 0x6f, 0x97, 0xd6, 0xf8, 0xff, 0x00, 0x7f, 0x4d, 0x18,
+ 0xbd, 0x1f, 0x93, 0xff, 0xff, 0xfe, 0xc2, 0x22, 0x48, 0x20, 0x47, 0x0d,
+ 0xdb, 0x30, 0x24, 0x41, 0xde, 0xbe, 0x60, 0x06, 0x53, 0xa7, 0x35, 0xd7,
+ 0xa3, 0x20, 0xb2, 0x11, 0x10, 0x33, 0xf2, 0x9e, 0x06, 0x28, 0x49, 0x05,
+ 0x70, 0x62, 0x43, 0x63, 0xf9, 0xfe, 0x81, 0xc0, 0x30, 0x81, 0xe3, 0x30,
+ 0x53, 0xe9, 0xa7, 0xc2, 0x7c, 0x60, 0x4e, 0xe6, 0x8c, 0x1d, 0xf8, 0xf8,
+ 0x26, 0xfa, 0x7f, 0x0f, 0xc7, 0x7b, 0x35, 0x23, 0xa7, 0xd2, 0x98, 0xad,
+ 0x70, 0x89, 0xfc, 0x32, 0xbb, 0x31, 0x9b, 0x0f, 0x53, 0x36, 0x6f, 0x5e,
+ 0xfc, 0x77, 0xbe, 0x43, 0xe0, 0x10, 0x6a, 0xa7, 0xdf, 0x5f, 0xdf, 0x8d,
+ 0x80, 0x00, 0x00, 0x01, 0x01, 0x01, 0x2f, 0xf7, 0x94, 0x22, 0xff, 0x97,
+ 0xdf, 0x8c, 0xff, 0xbf, 0xfb, 0xf1, 0xdf, 0xf2, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xaf, 0xff, 0xff,
+ 0xf8, 0x43, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xbf, 0xff, 0x2f, 0xff, 0xff,
+ 0xff, 0xff, 0xf1, 0xb0};
+#endif // USE_VP8_TESTDATA_INSTEAD_OF_H264
+
} // namespace
-#endif // PPAPI_EXAMPLES_GLES2_TESTDATA_H_
+#endif // PPAPI_EXAMPLES_VIDEO_DECODE_TESTDATA_H_
diff --git a/chromium/ppapi/examples/video_decode/video_decode.cc b/chromium/ppapi/examples/video_decode/video_decode.cc
index d1f7181dedf..a5dccacd02a 100644
--- a/chromium/ppapi/examples/video_decode/video_decode.cc
+++ b/chromium/ppapi/examples/video_decode/video_decode.cc
@@ -1,28 +1,31 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <stdio.h>
#include <string.h>
#include <iostream>
+#include <queue>
#include <sstream>
-#include <list>
-#include <map>
-#include <set>
-#include <vector>
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_console.h"
#include "ppapi/c/ppb_opengles2.h"
-#include "ppapi/cpp/dev/video_decoder_client_dev.h"
-#include "ppapi/cpp/dev/video_decoder_dev.h"
#include "ppapi/cpp/graphics_3d.h"
#include "ppapi/cpp/graphics_3d_client.h"
+#include "ppapi/cpp/input_event.h"
#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/rect.h"
#include "ppapi/cpp/var.h"
+#include "ppapi/cpp/video_decoder.h"
+
+// VP8 is more likely to work on different versions of Chrome. Undefine this
+// to decode H264.
+#define USE_VP8_TESTDATA_INSTEAD_OF_H264
#include "ppapi/examples/video_decode/testdata.h"
+
#include "ppapi/lib/gl/include/GLES2/gl2.h"
#include "ppapi/lib/gl/include/GLES2/gl2ext.h"
#include "ppapi/utility/completion_callback_factory.h"
@@ -35,34 +38,39 @@
// Assert |context_| isn't holding any GL Errors. Done as a macro instead of a
// function to preserve line number information in the failure message.
-#define assertNoGLError() \
- assert(!gles2_if_->GetError(context_->pp_resource()));
+#define assertNoGLError() assert(!gles2_if_->GetError(context_->pp_resource()));
namespace {
-struct PictureBufferInfo {
- PP_PictureBuffer_Dev buffer;
- GLenum texture_target;
-};
-
struct Shader {
- Shader() : program(0),
- texcoord_scale_location(0) {}
+ Shader() : program(0), texcoord_scale_location(0) {}
+ ~Shader() {}
GLuint program;
GLint texcoord_scale_location;
};
-class VideoDecodeDemoInstance : public pp::Instance,
- public pp::Graphics3DClient,
- public pp::VideoDecoderClient_Dev {
+class Decoder;
+class MyInstance;
+
+struct PendingPicture {
+ PendingPicture(Decoder* decoder, const PP_VideoPicture& picture)
+ : decoder(decoder), picture(picture) {}
+ ~PendingPicture() {}
+
+ Decoder* decoder;
+ PP_VideoPicture picture;
+};
+
+class MyInstance : public pp::Instance, public pp::Graphics3DClient {
public:
- VideoDecodeDemoInstance(PP_Instance instance, pp::Module* module);
- virtual ~VideoDecodeDemoInstance();
+ MyInstance(PP_Instance instance, pp::Module* module);
+ virtual ~MyInstance();
- // pp::Instance implementation (see PPP_Instance).
+ // pp::Instance implementation.
virtual void DidChangeView(const pp::Rect& position,
const pp::Rect& clip_ignored);
+ virtual bool HandleInputEvent(const pp::InputEvent& event);
// pp::Graphics3DClient implementation.
virtual void Graphics3DContextLost() {
@@ -73,109 +81,55 @@ class VideoDecodeDemoInstance : public pp::Instance,
assert(false && "Unexpectedly lost graphics context");
}
- // pp::VideoDecoderClient_Dev implementation.
- virtual void ProvidePictureBuffers(
- PP_Resource decoder,
- uint32_t req_num_of_bufs,
- const PP_Size& dimensions,
- uint32_t texture_target);
- virtual void DismissPictureBuffer(PP_Resource decoder,
- int32_t picture_buffer_id);
- virtual void PictureReady(PP_Resource decoder, const PP_Picture_Dev& picture);
- virtual void NotifyError(PP_Resource decoder, PP_VideoDecodeError_Dev error);
+ void PaintPicture(Decoder* decoder, const PP_VideoPicture& picture);
private:
- enum { kNumConcurrentDecodes = 7,
- kNumDecoders = 2 }; // Baked into viewport rendering.
-
- // A single decoder's client interface.
- class DecoderClient {
- public:
- DecoderClient(VideoDecodeDemoInstance* gles2,
- pp::VideoDecoder_Dev* decoder);
- ~DecoderClient();
-
- void DecodeNextNALUs();
-
- // Per-decoder implementation of part of pp::VideoDecoderClient_Dev.
- void ProvidePictureBuffers(
- uint32_t req_num_of_bufs,
- PP_Size dimensions,
- uint32_t texture_target);
- void DismissPictureBuffer(int32_t picture_buffer_id);
-
- const PictureBufferInfo& GetPictureBufferInfoById(int id);
- pp::VideoDecoder_Dev* decoder() { return decoder_; }
-
- private:
- void DecodeNextNALU();
- static void GetNextNALUBoundary(size_t start_pos, size_t* end_pos);
- void DecoderBitstreamDone(int32_t result, int bitstream_buffer_id);
- void DecoderFlushDone(int32_t result);
-
- VideoDecodeDemoInstance* gles2_;
- pp::VideoDecoder_Dev* decoder_;
- pp::CompletionCallbackFactory<DecoderClient> callback_factory_;
- int next_picture_buffer_id_;
- int next_bitstream_buffer_id_;
- size_t encoded_data_next_pos_to_decode_;
- std::set<int> bitstream_ids_at_decoder_;
- // Map of texture buffers indexed by buffer id.
- typedef std::map<int, PictureBufferInfo> PictureBufferMap;
- PictureBufferMap picture_buffers_by_id_;
- // Map of bitstream buffers indexed by id.
- typedef std::map<int, pp::Buffer_Dev*> BitstreamBufferMap;
- BitstreamBufferMap bitstream_buffers_by_id_;
- };
-
- // Initialize Video Decoders.
- void InitializeDecoders();
-
- // GL-related functions.
- void InitGL();
- GLuint CreateTexture(int32_t width, int32_t height, GLenum texture_target);
- void CreateGLObjects();
- void Create2DProgramOnce();
- void CreateRectangleARBProgramOnce();
- Shader CreateProgram(const char* vertex_shader,
- const char* fragment_shader);
- void CreateShader(GLuint program, GLenum type, const char* source, int size);
- void DeleteTexture(GLuint id);
- void PaintFinished(int32_t result, PP_Resource decoder,
- int picture_buffer_id);
-
- // Log an error to the developer console and stderr (though the latter may be
- // closed due to sandboxing or blackholed for other reasons) by creating a
- // temporary of this type and streaming to it. Example usage:
+ // Log an error to the developer console and stderr by creating a temporary
+ // object of this type and streaming to it. Example usage:
// LogError(this).s() << "Hello world: " << 42;
class LogError {
public:
- LogError(VideoDecodeDemoInstance* demo) : demo_(demo) {}
+ LogError(MyInstance* instance) : instance_(instance) {}
~LogError() {
const std::string& msg = stream_.str();
- demo_->console_if_->Log(demo_->pp_instance(), PP_LOGLEVEL_ERROR,
- pp::Var(msg).pp_var());
+ instance_->console_if_->Log(
+ instance_->pp_instance(), PP_LOGLEVEL_ERROR, pp::Var(msg).pp_var());
std::cerr << msg << std::endl;
}
// Impl note: it would have been nicer to have LogError derive from
// std::ostringstream so that it can be streamed to directly, but lookup
// rules turn streamed string literals to hex pointers on output.
std::ostringstream& s() { return stream_; }
+
private:
- VideoDecodeDemoInstance* demo_; // Unowned.
+ MyInstance* instance_;
std::ostringstream stream_;
};
+ void InitializeDecoders();
+
+ // GL-related functions.
+ void InitGL();
+ void CreateGLObjects();
+ void Create2DProgramOnce();
+ void CreateRectangleARBProgramOnce();
+ Shader CreateProgram(const char* vertex_shader, const char* fragment_shader);
+ void CreateShader(GLuint program, GLenum type, const char* source, int size);
+ void PaintNextPicture();
+ void PaintFinished(int32_t result);
+
pp::Size plugin_size_;
bool is_painting_;
// When decode outpaces render, we queue up decoded pictures for later
- // painting. Elements are <decoder,picture>.
- std::list<std::pair<PP_Resource, PP_Picture_Dev> > pictures_pending_paint_;
+ // painting.
+ typedef std::queue<PendingPicture> PendingPictureQueue;
+ PendingPictureQueue pending_pictures_;
+
int num_frames_rendered_;
PP_TimeTicks first_frame_delivered_ticks_;
PP_TimeTicks last_swap_request_ticks_;
PP_TimeTicks swap_ticks_;
- pp::CompletionCallbackFactory<VideoDecodeDemoInstance> callback_factory_;
+ pp::CompletionCallbackFactory<MyInstance> callback_factory_;
// Unowned pointers.
const PPB_Console* console_if_;
@@ -184,8 +138,8 @@ class VideoDecodeDemoInstance : public pp::Instance,
// Owned data.
pp::Graphics3D* context_;
- typedef std::map<int, DecoderClient*> Decoders;
- Decoders video_decoders_;
+ typedef std::vector<Decoder*> DecoderList;
+ DecoderList video_decoders_;
// Shader program to draw GL_TEXTURE_2D target.
Shader shader_2d_;
@@ -193,307 +147,411 @@ class VideoDecodeDemoInstance : public pp::Instance,
Shader shader_rectangle_arb_;
};
-VideoDecodeDemoInstance::DecoderClient::DecoderClient(
- VideoDecodeDemoInstance* gles2, pp::VideoDecoder_Dev* decoder)
- : gles2_(gles2), decoder_(decoder), callback_factory_(this),
- next_picture_buffer_id_(0),
- next_bitstream_buffer_id_(0), encoded_data_next_pos_to_decode_(0) {
-}
+class Decoder {
+ public:
+ Decoder(MyInstance* instance, int id, const pp::Graphics3D& graphics_3d);
+ ~Decoder();
-VideoDecodeDemoInstance::DecoderClient::~DecoderClient() {
- delete decoder_;
- decoder_ = NULL;
+ int id() const { return id_; }
+ bool flushing() const { return flushing_; }
+ bool resetting() const { return resetting_; }
+
+ void Reset();
+ void RecyclePicture(const PP_VideoPicture& picture);
- for (BitstreamBufferMap::iterator it = bitstream_buffers_by_id_.begin();
- it != bitstream_buffers_by_id_.end(); ++it) {
- delete it->second;
+ PP_TimeTicks GetAverageLatency() {
+ return num_pictures_ ? total_latency_ / num_pictures_ : 0;
}
- bitstream_buffers_by_id_.clear();
- for (PictureBufferMap::iterator it = picture_buffers_by_id_.begin();
- it != picture_buffers_by_id_.end(); ++it) {
- gles2_->DeleteTexture(it->second.buffer.texture_id);
+ private:
+ void InitializeDone(int32_t result);
+ void Start();
+ void DecodeNextFrame();
+ void DecodeDone(int32_t result);
+ void PictureReady(int32_t result, PP_VideoPicture picture);
+ void FlushDone(int32_t result);
+ void ResetDone(int32_t result);
+
+ MyInstance* instance_;
+ int id_;
+
+ pp::VideoDecoder* decoder_;
+ pp::CompletionCallbackFactory<Decoder> callback_factory_;
+
+ size_t encoded_data_next_pos_to_decode_;
+ int next_picture_id_;
+ bool flushing_;
+ bool resetting_;
+
+ const PPB_Core* core_if_;
+ static const int kMaxDecodeDelay = 128;
+ PP_TimeTicks decode_time_[kMaxDecodeDelay];
+ PP_TimeTicks total_latency_;
+ int num_pictures_;
+};
+
+#if defined USE_VP8_TESTDATA_INSTEAD_OF_H264
+
+// VP8 is stored in an IVF container.
+// Helpful description: http://wiki.multimedia.cx/index.php?title=IVF
+
+static void GetNextFrame(size_t* start_pos, size_t* end_pos) {
+ size_t current_pos = *start_pos;
+ if (current_pos == 0)
+ current_pos = 32; // Skip stream header.
+ uint32_t frame_size = kData[current_pos] + (kData[current_pos + 1] << 8) +
+ (kData[current_pos + 2] << 16) +
+ (kData[current_pos + 3] << 24);
+ current_pos += 12; // Skip frame header.
+ *start_pos = current_pos;
+ *end_pos = current_pos + frame_size;
+}
+
+#else // !USE_VP8_TESTDATA_INSTEAD_OF_H264
+
+// Returns true if the current position is at the start of a NAL unit.
+static bool LookingAtNAL(const unsigned char* encoded, size_t pos) {
+ // H264 frames start with 0, 0, 0, 1 in our test data.
+ return pos + 3 < kDataLen && encoded[pos] == 0 && encoded[pos + 1] == 0 &&
+ encoded[pos + 2] == 0 && encoded[pos + 3] == 1;
+}
+
+static void GetNextFrame(size_t* start_pos, size_t* end_pos) {
+ assert(LookingAtNAL(kData, *start_pos));
+ *end_pos = *start_pos;
+ *end_pos += 4;
+ while (*end_pos < kDataLen && !LookingAtNAL(kData, *end_pos)) {
+ ++*end_pos;
}
- picture_buffers_by_id_.clear();
}
-VideoDecodeDemoInstance::VideoDecodeDemoInstance(PP_Instance instance,
- pp::Module* module)
- : pp::Instance(instance), pp::Graphics3DClient(this),
- pp::VideoDecoderClient_Dev(this),
- is_painting_(false),
- num_frames_rendered_(0),
- first_frame_delivered_ticks_(-1),
- swap_ticks_(0),
+#endif // USE_VP8_TESTDATA_INSTEAD_OF_H264
+
+Decoder::Decoder(MyInstance* instance,
+ int id,
+ const pp::Graphics3D& graphics_3d)
+ : instance_(instance),
+ id_(id),
+ decoder_(new pp::VideoDecoder(instance)),
callback_factory_(this),
- context_(NULL) {
- assert((console_if_ = static_cast<const PPB_Console*>(
- module->GetBrowserInterface(PPB_CONSOLE_INTERFACE))));
- assert((core_if_ = static_cast<const PPB_Core*>(
- module->GetBrowserInterface(PPB_CORE_INTERFACE))));
- assert((gles2_if_ = static_cast<const PPB_OpenGLES2*>(
- module->GetBrowserInterface(PPB_OPENGLES2_INTERFACE))));
+ encoded_data_next_pos_to_decode_(0),
+ next_picture_id_(0),
+ flushing_(false),
+ resetting_(false),
+ total_latency_(0.0),
+ num_pictures_(0) {
+ core_if_ = static_cast<const PPB_Core*>(
+ pp::Module::Get()->GetBrowserInterface(PPB_CORE_INTERFACE));
+
+#if defined USE_VP8_TESTDATA_INSTEAD_OF_H264
+ const PP_VideoProfile kBitstreamProfile = PP_VIDEOPROFILE_VP8MAIN;
+#else
+ const PP_VideoProfile kBitstreamProfile = PP_VIDEOPROFILE_H264MAIN;
+#endif
+
+ assert(!decoder_->is_null());
+ decoder_->Initialize(graphics_3d,
+ kBitstreamProfile,
+ PP_TRUE /* allow_software_fallback */,
+ callback_factory_.NewCallback(&Decoder::InitializeDone));
}
-VideoDecodeDemoInstance::~VideoDecodeDemoInstance() {
- if (shader_2d_.program)
- gles2_if_->DeleteProgram(context_->pp_resource(), shader_2d_.program);
- if (shader_rectangle_arb_.program) {
- gles2_if_->DeleteProgram(
- context_->pp_resource(), shader_rectangle_arb_.program);
- }
+Decoder::~Decoder() {
+ delete decoder_;
+}
- for (Decoders::iterator it = video_decoders_.begin();
- it != video_decoders_.end(); ++it) {
- delete it->second;
- }
- video_decoders_.clear();
- delete context_;
+void Decoder::InitializeDone(int32_t result) {
+ assert(decoder_);
+ assert(result == PP_OK);
+ Start();
}
-void VideoDecodeDemoInstance::DidChangeView(
- const pp::Rect& position, const pp::Rect& clip_ignored) {
- if (position.width() == 0 || position.height() == 0)
- return;
- if (plugin_size_.width()) {
- assert(position.size() == plugin_size_);
- return;
- }
- plugin_size_ = position.size();
+void Decoder::Start() {
+ assert(decoder_);
- // Initialize graphics.
- InitGL();
- InitializeDecoders();
+ encoded_data_next_pos_to_decode_ = 0;
+
+ // Register callback to get the first picture. We call GetPicture again in
+ // PictureReady to continuously receive pictures as they're decoded.
+ decoder_->GetPicture(
+ callback_factory_.NewCallbackWithOutput(&Decoder::PictureReady));
+
+ // Start the decode loop.
+ DecodeNextFrame();
}
-void VideoDecodeDemoInstance::InitializeDecoders() {
- assert(video_decoders_.empty());
- for (int i = 0; i < kNumDecoders; ++i) {
- DecoderClient* client = new DecoderClient(
- this, new pp::VideoDecoder_Dev(
- this, *context_, PP_VIDEODECODER_H264PROFILE_MAIN));
- assert(!client->decoder()->is_null());
- assert(video_decoders_.insert(std::make_pair(
- client->decoder()->pp_resource(), client)).second);
- client->DecodeNextNALUs();
+void Decoder::Reset() {
+ assert(decoder_);
+ assert(!resetting_);
+ resetting_ = true;
+ decoder_->Reset(callback_factory_.NewCallback(&Decoder::ResetDone));
+}
+
+void Decoder::RecyclePicture(const PP_VideoPicture& picture) {
+ assert(decoder_);
+ decoder_->RecyclePicture(picture);
+}
+
+void Decoder::DecodeNextFrame() {
+ assert(decoder_);
+ if (encoded_data_next_pos_to_decode_ <= kDataLen) {
+ // If we've just reached the end of the bitstream, flush and wait.
+ if (!flushing_ && encoded_data_next_pos_to_decode_ == kDataLen) {
+ flushing_ = true;
+ decoder_->Flush(callback_factory_.NewCallback(&Decoder::FlushDone));
+ return;
+ }
+
+ // Find the start of the next frame.
+ size_t start_pos = encoded_data_next_pos_to_decode_;
+ size_t end_pos;
+ GetNextFrame(&start_pos, &end_pos);
+ encoded_data_next_pos_to_decode_ = end_pos;
+ // Decode the frame. On completion, DecodeDone will call DecodeNextFrame
+ // to implement a decode loop.
+ uint32_t size = static_cast<uint32_t>(end_pos - start_pos);
+ decode_time_[next_picture_id_ % kMaxDecodeDelay] = core_if_->GetTimeTicks();
+ decoder_->Decode(next_picture_id_++,
+ size,
+ kData + start_pos,
+ callback_factory_.NewCallback(&Decoder::DecodeDone));
}
}
-void VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone(
- int32_t result, int bitstream_buffer_id) {
- assert(bitstream_ids_at_decoder_.erase(bitstream_buffer_id) == 1);
- BitstreamBufferMap::iterator it =
- bitstream_buffers_by_id_.find(bitstream_buffer_id);
- assert(it != bitstream_buffers_by_id_.end());
- delete it->second;
- bitstream_buffers_by_id_.erase(it);
- DecodeNextNALUs();
+void Decoder::DecodeDone(int32_t result) {
+ assert(decoder_);
+ // Break out of the decode loop on abort.
+ if (result == PP_ERROR_ABORTED)
+ return;
+ assert(result == PP_OK);
+ if (!flushing_ && !resetting_)
+ DecodeNextFrame();
}
-void VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone(int32_t result) {
+void Decoder::PictureReady(int32_t result, PP_VideoPicture picture) {
+ assert(decoder_);
+ // Break out of the get picture loop on abort.
+ if (result == PP_ERROR_ABORTED)
+ return;
assert(result == PP_OK);
- // Check that each bitstream buffer ID we handed to the decoder got handed
- // back to us.
- assert(bitstream_ids_at_decoder_.empty());
- delete decoder_;
- decoder_ = NULL;
+
+ num_pictures_++;
+ PP_TimeTicks latency = core_if_->GetTimeTicks() -
+ decode_time_[picture.decode_id % kMaxDecodeDelay];
+ total_latency_ += latency;
+
+ decoder_->GetPicture(
+ callback_factory_.NewCallbackWithOutput(&Decoder::PictureReady));
+ instance_->PaintPicture(this, picture);
}
-static bool LookingAtNAL(const unsigned char* encoded, size_t pos) {
- return pos + 3 < kDataLen &&
- encoded[pos] == 0 && encoded[pos + 1] == 0 &&
- encoded[pos + 2] == 0 && encoded[pos + 3] == 1;
+void Decoder::FlushDone(int32_t result) {
+ assert(decoder_);
+ assert(result == PP_OK || result == PP_ERROR_ABORTED);
+ assert(flushing_);
+ flushing_ = false;
}
-void VideoDecodeDemoInstance::DecoderClient::GetNextNALUBoundary(
- size_t start_pos, size_t* end_pos) {
- assert(LookingAtNAL(kData, start_pos));
- *end_pos = start_pos;
- *end_pos += 4;
- while (*end_pos + 3 < kDataLen &&
- !LookingAtNAL(kData, *end_pos)) {
- ++*end_pos;
- }
- if (*end_pos + 3 >= kDataLen) {
- *end_pos = kDataLen;
- return;
- }
+void Decoder::ResetDone(int32_t result) {
+ assert(decoder_);
+ assert(result == PP_OK);
+ assert(resetting_);
+ resetting_ = false;
+
+ Start();
}
-void VideoDecodeDemoInstance::DecoderClient::DecodeNextNALUs() {
- while (encoded_data_next_pos_to_decode_ <= kDataLen &&
- bitstream_ids_at_decoder_.size() < kNumConcurrentDecodes) {
- DecodeNextNALU();
- }
+MyInstance::MyInstance(PP_Instance instance, pp::Module* module)
+ : pp::Instance(instance),
+ pp::Graphics3DClient(this),
+ is_painting_(false),
+ num_frames_rendered_(0),
+ first_frame_delivered_ticks_(-1),
+ last_swap_request_ticks_(-1),
+ swap_ticks_(0),
+ callback_factory_(this),
+ context_(NULL) {
+ console_if_ = static_cast<const PPB_Console*>(
+ pp::Module::Get()->GetBrowserInterface(PPB_CONSOLE_INTERFACE));
+ core_if_ = static_cast<const PPB_Core*>(
+ pp::Module::Get()->GetBrowserInterface(PPB_CORE_INTERFACE));
+ gles2_if_ = static_cast<const PPB_OpenGLES2*>(
+ pp::Module::Get()->GetBrowserInterface(PPB_OPENGLES2_INTERFACE));
+
+ RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
}
-void VideoDecodeDemoInstance::DecoderClient::DecodeNextNALU() {
- if (encoded_data_next_pos_to_decode_ == kDataLen) {
- ++encoded_data_next_pos_to_decode_;
- pp::CompletionCallback cb = callback_factory_.NewCallback(
- &VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone);
- decoder_->Flush(cb);
+MyInstance::~MyInstance() {
+ if (!context_)
return;
- }
- size_t start_pos = encoded_data_next_pos_to_decode_;
- size_t end_pos;
- GetNextNALUBoundary(start_pos, &end_pos);
- pp::Buffer_Dev* buffer = new pp::Buffer_Dev(gles2_, end_pos - start_pos);
- PP_VideoBitstreamBuffer_Dev bitstream_buffer;
- int id = ++next_bitstream_buffer_id_;
- bitstream_buffer.id = id;
- bitstream_buffer.size = end_pos - start_pos;
- bitstream_buffer.data = buffer->pp_resource();
- memcpy(buffer->data(), kData + start_pos, end_pos - start_pos);
- assert(bitstream_buffers_by_id_.insert(std::make_pair(id, buffer)).second);
-
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(
- &VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone, id);
- assert(bitstream_ids_at_decoder_.insert(id).second);
- encoded_data_next_pos_to_decode_ = end_pos;
- decoder_->Decode(bitstream_buffer, cb);
-}
-void VideoDecodeDemoInstance::ProvidePictureBuffers(PP_Resource decoder,
- uint32_t req_num_of_bufs,
- const PP_Size& dimensions,
- uint32_t texture_target) {
- DecoderClient* client = video_decoders_[decoder];
- assert(client);
- client->ProvidePictureBuffers(req_num_of_bufs, dimensions, texture_target);
+ PP_Resource graphics_3d = context_->pp_resource();
+ if (shader_2d_.program)
+ gles2_if_->DeleteProgram(graphics_3d, shader_2d_.program);
+ if (shader_rectangle_arb_.program)
+ gles2_if_->DeleteProgram(graphics_3d, shader_rectangle_arb_.program);
+
+ for (DecoderList::iterator it = video_decoders_.begin();
+ it != video_decoders_.end();
+ ++it)
+ delete *it;
+
+ delete context_;
}
-void VideoDecodeDemoInstance::DecoderClient::ProvidePictureBuffers(
- uint32_t req_num_of_bufs,
- PP_Size dimensions,
- uint32_t texture_target) {
- std::vector<PP_PictureBuffer_Dev> buffers;
- for (uint32_t i = 0; i < req_num_of_bufs; ++i) {
- PictureBufferInfo info;
- info.buffer.size = dimensions;
- info.texture_target = texture_target;
- info.buffer.texture_id = gles2_->CreateTexture(
- dimensions.width, dimensions.height, info.texture_target);
- int id = ++next_picture_buffer_id_;
- info.buffer.id = id;
- buffers.push_back(info.buffer);
- assert(picture_buffers_by_id_.insert(std::make_pair(id, info)).second);
+void MyInstance::DidChangeView(const pp::Rect& position,
+ const pp::Rect& clip_ignored) {
+ if (position.width() == 0 || position.height() == 0)
+ return;
+ if (plugin_size_.width()) {
+ assert(position.size() == plugin_size_);
+ return;
}
- decoder_->AssignPictureBuffers(buffers);
-}
+ plugin_size_ = position.size();
-const PictureBufferInfo&
-VideoDecodeDemoInstance::DecoderClient::GetPictureBufferInfoById(
- int id) {
- PictureBufferMap::iterator it = picture_buffers_by_id_.find(id);
- assert(it != picture_buffers_by_id_.end());
- return it->second;
+ // Initialize graphics.
+ InitGL();
+ InitializeDecoders();
}
-void VideoDecodeDemoInstance::DismissPictureBuffer(PP_Resource decoder,
- int32_t picture_buffer_id) {
- DecoderClient* client = video_decoders_[decoder];
- assert(client);
- client->DismissPictureBuffer(picture_buffer_id);
+bool MyInstance::HandleInputEvent(const pp::InputEvent& event) {
+ switch (event.GetType()) {
+ case PP_INPUTEVENT_TYPE_MOUSEDOWN: {
+ pp::MouseInputEvent mouse_event(event);
+ // Reset all decoders on mouse down.
+ if (mouse_event.GetButton() == PP_INPUTEVENT_MOUSEBUTTON_LEFT) {
+ // Reset decoders.
+ for (size_t i = 0; i < video_decoders_.size(); i++) {
+ if (!video_decoders_[i]->resetting())
+ video_decoders_[i]->Reset();
+ }
+ }
+ return true;
+ }
+
+ default:
+ return false;
+ }
}
-void VideoDecodeDemoInstance::DecoderClient::DismissPictureBuffer(
- int32_t picture_buffer_id) {
- gles2_->DeleteTexture(GetPictureBufferInfoById(
- picture_buffer_id).buffer.texture_id);
- picture_buffers_by_id_.erase(picture_buffer_id);
+void MyInstance::InitializeDecoders() {
+ assert(video_decoders_.empty());
+ // Create two decoders with ids 0 and 1.
+ video_decoders_.push_back(new Decoder(this, 0, *context_));
+ video_decoders_.push_back(new Decoder(this, 1, *context_));
}
-void VideoDecodeDemoInstance::PictureReady(PP_Resource decoder,
- const PP_Picture_Dev& picture) {
+void MyInstance::PaintPicture(Decoder* decoder,
+ const PP_VideoPicture& picture) {
if (first_frame_delivered_ticks_ == -1)
assert((first_frame_delivered_ticks_ = core_if_->GetTimeTicks()) != -1);
- if (is_painting_) {
- pictures_pending_paint_.push_back(std::make_pair(decoder, picture));
- return;
- }
- DecoderClient* client = video_decoders_[decoder];
- assert(client);
- const PictureBufferInfo& info =
- client->GetPictureBufferInfoById(picture.picture_buffer_id);
+
+ pending_pictures_.push(PendingPicture(decoder, picture));
+ if (!is_painting_)
+ PaintNextPicture();
+}
+
+void MyInstance::PaintNextPicture() {
assert(!is_painting_);
is_painting_ = true;
+
+ const PendingPicture& next = pending_pictures_.front();
+ Decoder* decoder = next.decoder;
+ const PP_VideoPicture& picture = next.picture;
+
int x = 0;
int y = 0;
- if (client != video_decoders_.begin()->second) {
- x = plugin_size_.width() / kNumDecoders;
- y = plugin_size_.height() / kNumDecoders;
+ int half_width = plugin_size_.width() / 2;
+ int half_height = plugin_size_.height() / 2;
+ if (decoder->id() != 0) {
+ x = half_width;
+ y = half_height;
}
- if (info.texture_target == GL_TEXTURE_2D) {
+ PP_Resource graphics_3d = context_->pp_resource();
+ if (picture.texture_target == GL_TEXTURE_2D) {
Create2DProgramOnce();
- gles2_if_->UseProgram(context_->pp_resource(), shader_2d_.program);
+ gles2_if_->UseProgram(graphics_3d, shader_2d_.program);
gles2_if_->Uniform2f(
- context_->pp_resource(), shader_2d_.texcoord_scale_location, 1.0, 1.0);
+ graphics_3d, shader_2d_.texcoord_scale_location, 1.0, 1.0);
} else {
- assert(info.texture_target == GL_TEXTURE_RECTANGLE_ARB);
+ assert(picture.texture_target == GL_TEXTURE_RECTANGLE_ARB);
CreateRectangleARBProgramOnce();
- gles2_if_->UseProgram(
- context_->pp_resource(), shader_rectangle_arb_.program);
- gles2_if_->Uniform2f(context_->pp_resource(),
+ gles2_if_->UseProgram(graphics_3d, shader_rectangle_arb_.program);
+ gles2_if_->Uniform2f(graphics_3d,
shader_rectangle_arb_.texcoord_scale_location,
- info.buffer.size.width,
- info.buffer.size.height);
+ picture.texture_size.width,
+ picture.texture_size.height);
}
- gles2_if_->Viewport(context_->pp_resource(), x, y,
- plugin_size_.width() / kNumDecoders,
- plugin_size_.height() / kNumDecoders);
- gles2_if_->ActiveTexture(context_->pp_resource(), GL_TEXTURE0);
+ gles2_if_->Viewport(graphics_3d, x, y, half_width, half_height);
+ gles2_if_->ActiveTexture(graphics_3d, GL_TEXTURE0);
gles2_if_->BindTexture(
- context_->pp_resource(), info.texture_target, info.buffer.texture_id);
- gles2_if_->DrawArrays(context_->pp_resource(), GL_TRIANGLE_STRIP, 0, 4);
+ graphics_3d, picture.texture_target, picture.texture_id);
+ gles2_if_->DrawArrays(graphics_3d, GL_TRIANGLE_STRIP, 0, 4);
- gles2_if_->UseProgram(context_->pp_resource(), 0);
+ gles2_if_->UseProgram(graphics_3d, 0);
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(
- &VideoDecodeDemoInstance::PaintFinished, decoder, info.buffer.id);
last_swap_request_ticks_ = core_if_->GetTimeTicks();
- assert(context_->SwapBuffers(cb) == PP_OK_COMPLETIONPENDING);
+ context_->SwapBuffers(
+ callback_factory_.NewCallback(&MyInstance::PaintFinished));
}
-void VideoDecodeDemoInstance::NotifyError(PP_Resource decoder,
- PP_VideoDecodeError_Dev error) {
- LogError(this).s() << "Received error: " << error;
- assert(false && "Unexpected error; see stderr for details");
-}
+void MyInstance::PaintFinished(int32_t result) {
+ assert(result == PP_OK);
+ swap_ticks_ += core_if_->GetTimeTicks() - last_swap_request_ticks_;
+ is_painting_ = false;
+ ++num_frames_rendered_;
+ if (num_frames_rendered_ % 50 == 0) {
+ double elapsed = core_if_->GetTimeTicks() - first_frame_delivered_ticks_;
+ double fps = (elapsed > 0) ? num_frames_rendered_ / elapsed : 1000;
+ double ms_per_swap = (swap_ticks_ * 1e3) / num_frames_rendered_;
+ double secs_average_latency = 0;
+ for (DecoderList::iterator it = video_decoders_.begin();
+ it != video_decoders_.end();
+ ++it)
+ secs_average_latency += (*it)->GetAverageLatency();
+ secs_average_latency /= video_decoders_.size();
+ double ms_average_latency = 1000 * secs_average_latency;
+ LogError(this).s() << "Rendered frames: " << num_frames_rendered_
+ << ", fps: " << fps
+ << ", with average ms/swap of: " << ms_per_swap
+ << ", with average latency (ms) of: "
+ << ms_average_latency;
+ }
-// This object is the global object representing this plugin library as long
-// as it is loaded.
-class VideoDecodeDemoModule : public pp::Module {
- public:
- VideoDecodeDemoModule() : pp::Module() {}
- virtual ~VideoDecodeDemoModule() {}
+ // If the decoders were reset, this will be empty.
+ if (pending_pictures_.empty())
+ return;
- virtual pp::Instance* CreateInstance(PP_Instance instance) {
- return new VideoDecodeDemoInstance(instance, this);
- }
-};
+ const PendingPicture& next = pending_pictures_.front();
+ Decoder* decoder = next.decoder;
+ const PP_VideoPicture& picture = next.picture;
+ decoder->RecyclePicture(picture);
+ pending_pictures_.pop();
+
+ // Keep painting as long as we have pictures.
+ if (!pending_pictures_.empty())
+ PaintNextPicture();
+}
-void VideoDecodeDemoInstance::InitGL() {
+void MyInstance::InitGL() {
assert(plugin_size_.width() && plugin_size_.height());
is_painting_ = false;
assert(!context_);
int32_t context_attributes[] = {
- PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
- PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
- PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
- PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
- PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
- PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
- PP_GRAPHICS3DATTRIB_SAMPLES, 0,
- PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
- PP_GRAPHICS3DATTRIB_WIDTH, plugin_size_.width(),
- PP_GRAPHICS3DATTRIB_HEIGHT, plugin_size_.height(),
- PP_GRAPHICS3DATTRIB_NONE,
+ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
+ PP_GRAPHICS3DATTRIB_WIDTH, plugin_size_.width(),
+ PP_GRAPHICS3DATTRIB_HEIGHT, plugin_size_.height(),
+ PP_GRAPHICS3DATTRIB_NONE,
};
context_ = new pp::Graphics3D(this, context_attributes);
assert(!context_->is_null());
@@ -508,80 +566,23 @@ void VideoDecodeDemoInstance::InitGL() {
CreateGLObjects();
}
-void VideoDecodeDemoInstance::PaintFinished(int32_t result, PP_Resource decoder,
- int picture_buffer_id) {
- assert(result == PP_OK);
- swap_ticks_ += core_if_->GetTimeTicks() - last_swap_request_ticks_;
- is_painting_ = false;
- ++num_frames_rendered_;
- if (num_frames_rendered_ % 50 == 0) {
- double elapsed = core_if_->GetTimeTicks() - first_frame_delivered_ticks_;
- double fps = (elapsed > 0) ? num_frames_rendered_ / elapsed : 1000;
- double ms_per_swap = (swap_ticks_ * 1e3) / num_frames_rendered_;
- LogError(this).s() << "Rendered frames: " << num_frames_rendered_
- << ", fps: " << fps << ", with average ms/swap of: "
- << ms_per_swap;
- }
- DecoderClient* client = video_decoders_[decoder];
- if (client && client->decoder())
- client->decoder()->ReusePictureBuffer(picture_buffer_id);
- if (!pictures_pending_paint_.empty()) {
- std::pair<PP_Resource, PP_Picture_Dev> decoder_picture =
- pictures_pending_paint_.front();
- pictures_pending_paint_.pop_front();
- PictureReady(decoder_picture.first, decoder_picture.second);
- }
-}
-
-GLuint VideoDecodeDemoInstance::CreateTexture(int32_t width,
- int32_t height,
- GLenum texture_target) {
- GLuint texture_id;
- gles2_if_->GenTextures(context_->pp_resource(), 1, &texture_id);
- assertNoGLError();
- // Assign parameters.
- gles2_if_->ActiveTexture(context_->pp_resource(), GL_TEXTURE0);
- gles2_if_->BindTexture(context_->pp_resource(), texture_target, texture_id);
- gles2_if_->TexParameteri(
- context_->pp_resource(), texture_target, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
- gles2_if_->TexParameteri(
- context_->pp_resource(), texture_target, GL_TEXTURE_MAG_FILTER,
- GL_NEAREST);
- gles2_if_->TexParameterf(
- context_->pp_resource(), texture_target, GL_TEXTURE_WRAP_S,
- GL_CLAMP_TO_EDGE);
- gles2_if_->TexParameterf(
- context_->pp_resource(), texture_target, GL_TEXTURE_WRAP_T,
- GL_CLAMP_TO_EDGE);
-
- if (texture_target == GL_TEXTURE_2D) {
- gles2_if_->TexImage2D(
- context_->pp_resource(), texture_target, 0, GL_RGBA, width, height, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- }
- assertNoGLError();
- return texture_id;
-}
-
-void VideoDecodeDemoInstance::DeleteTexture(GLuint id) {
- gles2_if_->DeleteTextures(context_->pp_resource(), 1, &id);
-}
-
-void VideoDecodeDemoInstance::CreateGLObjects() {
+void MyInstance::CreateGLObjects() {
// Assign vertex positions and texture coordinates to buffers for use in
// shader program.
static const float kVertices[] = {
- -1, 1, -1, -1, 1, 1, 1, -1, // Position coordinates.
- 0, 1, 0, 0, 1, 1, 1, 0, // Texture coordinates.
+ -1, -1, -1, 1, 1, -1, 1, 1, // Position coordinates.
+ 0, 1, 0, 0, 1, 1, 1, 0, // Texture coordinates.
};
GLuint buffer;
gles2_if_->GenBuffers(context_->pp_resource(), 1, &buffer);
gles2_if_->BindBuffer(context_->pp_resource(), GL_ARRAY_BUFFER, buffer);
- gles2_if_->BufferData(context_->pp_resource(), GL_ARRAY_BUFFER,
- sizeof(kVertices), kVertices, GL_STATIC_DRAW);
+ gles2_if_->BufferData(context_->pp_resource(),
+ GL_ARRAY_BUFFER,
+ sizeof(kVertices),
+ kVertices,
+ GL_STATIC_DRAW);
assertNoGLError();
}
@@ -596,7 +597,7 @@ static const char kVertexShader[] =
" gl_Position = a_position; \n"
"}";
-void VideoDecodeDemoInstance::Create2DProgramOnce() {
+void MyInstance::Create2DProgramOnce() {
if (shader_2d_.program)
return;
static const char kFragmentShader2D[] =
@@ -611,7 +612,7 @@ void VideoDecodeDemoInstance::Create2DProgramOnce() {
assertNoGLError();
}
-void VideoDecodeDemoInstance::CreateRectangleARBProgramOnce() {
+void MyInstance::CreateRectangleARBProgramOnce() {
if (shader_rectangle_arb_.program)
return;
static const char kFragmentShaderRectangle[] =
@@ -627,22 +628,25 @@ void VideoDecodeDemoInstance::CreateRectangleARBProgramOnce() {
CreateProgram(kVertexShader, kFragmentShaderRectangle);
}
-Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader,
- const char* fragment_shader) {
+Shader MyInstance::CreateProgram(const char* vertex_shader,
+ const char* fragment_shader) {
Shader shader;
// Create shader program.
shader.program = gles2_if_->CreateProgram(context_->pp_resource());
- CreateShader(shader.program, GL_VERTEX_SHADER, vertex_shader,
- strlen(vertex_shader));
- CreateShader(shader.program, GL_FRAGMENT_SHADER, fragment_shader,
+ CreateShader(
+ shader.program, GL_VERTEX_SHADER, vertex_shader, strlen(vertex_shader));
+ CreateShader(shader.program,
+ GL_FRAGMENT_SHADER,
+ fragment_shader,
strlen(fragment_shader));
gles2_if_->LinkProgram(context_->pp_resource(), shader.program);
gles2_if_->UseProgram(context_->pp_resource(), shader.program);
gles2_if_->Uniform1i(
context_->pp_resource(),
gles2_if_->GetUniformLocation(
- context_->pp_resource(), shader.program, "s_texture"), 0);
+ context_->pp_resource(), shader.program, "s_texture"),
+ 0);
assertNoGLError();
shader.texcoord_scale_location = gles2_if_->GetUniformLocation(
@@ -655,11 +659,16 @@ Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader,
assertNoGLError();
gles2_if_->EnableVertexAttribArray(context_->pp_resource(), pos_location);
- gles2_if_->VertexAttribPointer(context_->pp_resource(), pos_location, 2,
- GL_FLOAT, GL_FALSE, 0, 0);
+ gles2_if_->VertexAttribPointer(
+ context_->pp_resource(), pos_location, 2, GL_FLOAT, GL_FALSE, 0, 0);
gles2_if_->EnableVertexAttribArray(context_->pp_resource(), tc_location);
gles2_if_->VertexAttribPointer(
- context_->pp_resource(), tc_location, 2, GL_FLOAT, GL_FALSE, 0,
+ context_->pp_resource(),
+ tc_location,
+ 2,
+ GL_FLOAT,
+ GL_FALSE,
+ 0,
static_cast<float*>(0) + 8); // Skip position coordinates.
gles2_if_->UseProgram(context_->pp_resource(), 0);
@@ -667,19 +676,34 @@ Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader,
return shader;
}
-void VideoDecodeDemoInstance::CreateShader(
- GLuint program, GLenum type, const char* source, int size) {
+void MyInstance::CreateShader(GLuint program,
+ GLenum type,
+ const char* source,
+ int size) {
GLuint shader = gles2_if_->CreateShader(context_->pp_resource(), type);
gles2_if_->ShaderSource(context_->pp_resource(), shader, 1, &source, &size);
gles2_if_->CompileShader(context_->pp_resource(), shader);
gles2_if_->AttachShader(context_->pp_resource(), program, shader);
gles2_if_->DeleteShader(context_->pp_resource(), shader);
}
+
+// This object is the global object representing this plugin library as long
+// as it is loaded.
+class MyModule : public pp::Module {
+ public:
+ MyModule() : pp::Module() {}
+ virtual ~MyModule() {}
+
+ virtual pp::Instance* CreateInstance(PP_Instance instance) {
+ return new MyInstance(instance, this);
+ }
+};
+
} // anonymous namespace
namespace pp {
// Factory function for your specialization of the Module object.
Module* CreateModule() {
- return new VideoDecodeDemoModule();
+ return new MyModule();
}
} // namespace pp
diff --git a/chromium/ppapi/examples/video_decode/video_decode.html b/chromium/ppapi/examples/video_decode/video_decode.html
index 13d42fc176b..f25f0db45fc 100644
--- a/chromium/ppapi/examples/video_decode/video_decode.html
+++ b/chromium/ppapi/examples/video_decode/video_decode.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<!--
- Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Copyright (c) 2014 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
diff --git a/chromium/ppapi/examples/video_decode/video_decode_dev.cc b/chromium/ppapi/examples/video_decode/video_decode_dev.cc
new file mode 100644
index 00000000000..d6cb592bfa1
--- /dev/null
+++ b/chromium/ppapi/examples/video_decode/video_decode_dev.cc
@@ -0,0 +1,685 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string.h>
+
+#include <iostream>
+#include <list>
+#include <map>
+#include <set>
+#include <sstream>
+#include <vector>
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_console.h"
+#include "ppapi/c/ppb_opengles2.h"
+#include "ppapi/cpp/dev/video_decoder_client_dev.h"
+#include "ppapi/cpp/dev/video_decoder_dev.h"
+#include "ppapi/cpp/graphics_3d.h"
+#include "ppapi/cpp/graphics_3d_client.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/module.h"
+#include "ppapi/cpp/rect.h"
+#include "ppapi/cpp/var.h"
+#include "ppapi/examples/video_decode/testdata.h"
+#include "ppapi/lib/gl/include/GLES2/gl2.h"
+#include "ppapi/lib/gl/include/GLES2/gl2ext.h"
+#include "ppapi/utility/completion_callback_factory.h"
+
+// Use assert as a poor-man's CHECK, even in non-debug mode.
+// Since <assert.h> redefines assert on every inclusion (it doesn't use
+// include-guards), make sure this is the last file #include'd in this file.
+#undef NDEBUG
+#include <assert.h>
+
+// Assert |context_| isn't holding any GL Errors. Done as a macro instead of a
+// function to preserve line number information in the failure message.
+#define assertNoGLError() \
+ assert(!gles2_if_->GetError(context_->pp_resource()));
+
+namespace {
+
+struct PictureBufferInfo {
+ PP_PictureBuffer_Dev buffer;
+ GLenum texture_target;
+};
+
+struct Shader {
+ Shader() : program(0),
+ texcoord_scale_location(0) {}
+
+ GLuint program;
+ GLint texcoord_scale_location;
+};
+
+class VideoDecodeDemoInstance : public pp::Instance,
+ public pp::Graphics3DClient,
+ public pp::VideoDecoderClient_Dev {
+ public:
+ VideoDecodeDemoInstance(PP_Instance instance, pp::Module* module);
+ virtual ~VideoDecodeDemoInstance();
+
+ // pp::Instance implementation (see PPP_Instance).
+ virtual void DidChangeView(const pp::Rect& position,
+ const pp::Rect& clip_ignored);
+
+ // pp::Graphics3DClient implementation.
+ virtual void Graphics3DContextLost() {
+ // TODO(vrk/fischman): Properly reset after a lost graphics context. In
+ // particular need to delete context_ and re-create textures.
+ // Probably have to recreate the decoder from scratch, because old textures
+ // can still be outstanding in the decoder!
+ assert(false && "Unexpectedly lost graphics context");
+ }
+
+ // pp::VideoDecoderClient_Dev implementation.
+ virtual void ProvidePictureBuffers(
+ PP_Resource decoder,
+ uint32_t req_num_of_bufs,
+ const PP_Size& dimensions,
+ uint32_t texture_target);
+ virtual void DismissPictureBuffer(PP_Resource decoder,
+ int32_t picture_buffer_id);
+ virtual void PictureReady(PP_Resource decoder, const PP_Picture_Dev& picture);
+ virtual void NotifyError(PP_Resource decoder, PP_VideoDecodeError_Dev error);
+
+ private:
+ enum { kNumConcurrentDecodes = 7,
+ kNumDecoders = 2 }; // Baked into viewport rendering.
+
+ // A single decoder's client interface.
+ class DecoderClient {
+ public:
+ DecoderClient(VideoDecodeDemoInstance* gles2,
+ pp::VideoDecoder_Dev* decoder);
+ ~DecoderClient();
+
+ void DecodeNextNALUs();
+
+ // Per-decoder implementation of part of pp::VideoDecoderClient_Dev.
+ void ProvidePictureBuffers(
+ uint32_t req_num_of_bufs,
+ PP_Size dimensions,
+ uint32_t texture_target);
+ void DismissPictureBuffer(int32_t picture_buffer_id);
+
+ const PictureBufferInfo& GetPictureBufferInfoById(int id);
+ pp::VideoDecoder_Dev* decoder() { return decoder_; }
+
+ private:
+ void DecodeNextNALU();
+ static void GetNextNALUBoundary(size_t start_pos, size_t* end_pos);
+ void DecoderBitstreamDone(int32_t result, int bitstream_buffer_id);
+ void DecoderFlushDone(int32_t result);
+
+ VideoDecodeDemoInstance* gles2_;
+ pp::VideoDecoder_Dev* decoder_;
+ pp::CompletionCallbackFactory<DecoderClient> callback_factory_;
+ int next_picture_buffer_id_;
+ int next_bitstream_buffer_id_;
+ size_t encoded_data_next_pos_to_decode_;
+ std::set<int> bitstream_ids_at_decoder_;
+ // Map of texture buffers indexed by buffer id.
+ typedef std::map<int, PictureBufferInfo> PictureBufferMap;
+ PictureBufferMap picture_buffers_by_id_;
+ // Map of bitstream buffers indexed by id.
+ typedef std::map<int, pp::Buffer_Dev*> BitstreamBufferMap;
+ BitstreamBufferMap bitstream_buffers_by_id_;
+ };
+
+ // Initialize Video Decoders.
+ void InitializeDecoders();
+
+ // GL-related functions.
+ void InitGL();
+ GLuint CreateTexture(int32_t width, int32_t height, GLenum texture_target);
+ void CreateGLObjects();
+ void Create2DProgramOnce();
+ void CreateRectangleARBProgramOnce();
+ Shader CreateProgram(const char* vertex_shader,
+ const char* fragment_shader);
+ void CreateShader(GLuint program, GLenum type, const char* source, int size);
+ void DeleteTexture(GLuint id);
+ void PaintFinished(int32_t result, PP_Resource decoder,
+ int picture_buffer_id);
+
+ // Log an error to the developer console and stderr (though the latter may be
+ // closed due to sandboxing or blackholed for other reasons) by creating a
+ // temporary of this type and streaming to it. Example usage:
+ // LogError(this).s() << "Hello world: " << 42;
+ class LogError {
+ public:
+ LogError(VideoDecodeDemoInstance* demo) : demo_(demo) {}
+ ~LogError() {
+ const std::string& msg = stream_.str();
+ demo_->console_if_->Log(demo_->pp_instance(), PP_LOGLEVEL_ERROR,
+ pp::Var(msg).pp_var());
+ std::cerr << msg << std::endl;
+ }
+ // Impl note: it would have been nicer to have LogError derive from
+ // std::ostringstream so that it can be streamed to directly, but lookup
+ // rules turn streamed string literals to hex pointers on output.
+ std::ostringstream& s() { return stream_; }
+ private:
+ VideoDecodeDemoInstance* demo_; // Unowned.
+ std::ostringstream stream_;
+ };
+
+ pp::Size plugin_size_;
+ bool is_painting_;
+ // When decode outpaces render, we queue up decoded pictures for later
+ // painting. Elements are <decoder,picture>.
+ std::list<std::pair<PP_Resource, PP_Picture_Dev> > pictures_pending_paint_;
+ int num_frames_rendered_;
+ PP_TimeTicks first_frame_delivered_ticks_;
+ PP_TimeTicks last_swap_request_ticks_;
+ PP_TimeTicks swap_ticks_;
+ pp::CompletionCallbackFactory<VideoDecodeDemoInstance> callback_factory_;
+
+ // Unowned pointers.
+ const PPB_Console* console_if_;
+ const PPB_Core* core_if_;
+ const PPB_OpenGLES2* gles2_if_;
+
+ // Owned data.
+ pp::Graphics3D* context_;
+ typedef std::map<int, DecoderClient*> Decoders;
+ Decoders video_decoders_;
+
+ // Shader program to draw GL_TEXTURE_2D target.
+ Shader shader_2d_;
+ // Shader program to draw GL_TEXTURE_RECTANGLE_ARB target.
+ Shader shader_rectangle_arb_;
+};
+
+VideoDecodeDemoInstance::DecoderClient::DecoderClient(
+ VideoDecodeDemoInstance* gles2, pp::VideoDecoder_Dev* decoder)
+ : gles2_(gles2), decoder_(decoder), callback_factory_(this),
+ next_picture_buffer_id_(0),
+ next_bitstream_buffer_id_(0), encoded_data_next_pos_to_decode_(0) {
+}
+
+VideoDecodeDemoInstance::DecoderClient::~DecoderClient() {
+ delete decoder_;
+ decoder_ = NULL;
+
+ for (BitstreamBufferMap::iterator it = bitstream_buffers_by_id_.begin();
+ it != bitstream_buffers_by_id_.end(); ++it) {
+ delete it->second;
+ }
+ bitstream_buffers_by_id_.clear();
+
+ for (PictureBufferMap::iterator it = picture_buffers_by_id_.begin();
+ it != picture_buffers_by_id_.end(); ++it) {
+ gles2_->DeleteTexture(it->second.buffer.texture_id);
+ }
+ picture_buffers_by_id_.clear();
+}
+
+VideoDecodeDemoInstance::VideoDecodeDemoInstance(PP_Instance instance,
+ pp::Module* module)
+ : pp::Instance(instance), pp::Graphics3DClient(this),
+ pp::VideoDecoderClient_Dev(this),
+ is_painting_(false),
+ num_frames_rendered_(0),
+ first_frame_delivered_ticks_(-1),
+ swap_ticks_(0),
+ callback_factory_(this),
+ context_(NULL) {
+ assert((console_if_ = static_cast<const PPB_Console*>(
+ module->GetBrowserInterface(PPB_CONSOLE_INTERFACE))));
+ assert((core_if_ = static_cast<const PPB_Core*>(
+ module->GetBrowserInterface(PPB_CORE_INTERFACE))));
+ assert((gles2_if_ = static_cast<const PPB_OpenGLES2*>(
+ module->GetBrowserInterface(PPB_OPENGLES2_INTERFACE))));
+}
+
+VideoDecodeDemoInstance::~VideoDecodeDemoInstance() {
+ if (shader_2d_.program)
+ gles2_if_->DeleteProgram(context_->pp_resource(), shader_2d_.program);
+ if (shader_rectangle_arb_.program) {
+ gles2_if_->DeleteProgram(
+ context_->pp_resource(), shader_rectangle_arb_.program);
+ }
+
+ for (Decoders::iterator it = video_decoders_.begin();
+ it != video_decoders_.end(); ++it) {
+ delete it->second;
+ }
+ video_decoders_.clear();
+ delete context_;
+}
+
+void VideoDecodeDemoInstance::DidChangeView(
+ const pp::Rect& position, const pp::Rect& clip_ignored) {
+ if (position.width() == 0 || position.height() == 0)
+ return;
+ if (plugin_size_.width()) {
+ assert(position.size() == plugin_size_);
+ return;
+ }
+ plugin_size_ = position.size();
+
+ // Initialize graphics.
+ InitGL();
+ InitializeDecoders();
+}
+
+void VideoDecodeDemoInstance::InitializeDecoders() {
+ assert(video_decoders_.empty());
+ for (int i = 0; i < kNumDecoders; ++i) {
+ DecoderClient* client = new DecoderClient(
+ this, new pp::VideoDecoder_Dev(
+ this, *context_, PP_VIDEODECODER_H264PROFILE_MAIN));
+ assert(!client->decoder()->is_null());
+ assert(video_decoders_.insert(std::make_pair(
+ client->decoder()->pp_resource(), client)).second);
+ client->DecodeNextNALUs();
+ }
+}
+
+void VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone(
+ int32_t result, int bitstream_buffer_id) {
+ assert(bitstream_ids_at_decoder_.erase(bitstream_buffer_id) == 1);
+ BitstreamBufferMap::iterator it =
+ bitstream_buffers_by_id_.find(bitstream_buffer_id);
+ assert(it != bitstream_buffers_by_id_.end());
+ delete it->second;
+ bitstream_buffers_by_id_.erase(it);
+ DecodeNextNALUs();
+}
+
+void VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone(int32_t result) {
+ assert(result == PP_OK);
+ // Check that each bitstream buffer ID we handed to the decoder got handed
+ // back to us.
+ assert(bitstream_ids_at_decoder_.empty());
+ delete decoder_;
+ decoder_ = NULL;
+}
+
+static bool LookingAtNAL(const unsigned char* encoded, size_t pos) {
+ return pos + 3 < kDataLen &&
+ encoded[pos] == 0 && encoded[pos + 1] == 0 &&
+ encoded[pos + 2] == 0 && encoded[pos + 3] == 1;
+}
+
+void VideoDecodeDemoInstance::DecoderClient::GetNextNALUBoundary(
+ size_t start_pos, size_t* end_pos) {
+ assert(LookingAtNAL(kData, start_pos));
+ *end_pos = start_pos;
+ *end_pos += 4;
+ while (*end_pos + 3 < kDataLen &&
+ !LookingAtNAL(kData, *end_pos)) {
+ ++*end_pos;
+ }
+ if (*end_pos + 3 >= kDataLen) {
+ *end_pos = kDataLen;
+ return;
+ }
+}
+
+void VideoDecodeDemoInstance::DecoderClient::DecodeNextNALUs() {
+ while (encoded_data_next_pos_to_decode_ <= kDataLen &&
+ bitstream_ids_at_decoder_.size() < kNumConcurrentDecodes) {
+ DecodeNextNALU();
+ }
+}
+
+void VideoDecodeDemoInstance::DecoderClient::DecodeNextNALU() {
+ if (encoded_data_next_pos_to_decode_ == kDataLen) {
+ ++encoded_data_next_pos_to_decode_;
+ pp::CompletionCallback cb = callback_factory_.NewCallback(
+ &VideoDecodeDemoInstance::DecoderClient::DecoderFlushDone);
+ decoder_->Flush(cb);
+ return;
+ }
+ size_t start_pos = encoded_data_next_pos_to_decode_;
+ size_t end_pos;
+ GetNextNALUBoundary(start_pos, &end_pos);
+ pp::Buffer_Dev* buffer = new pp::Buffer_Dev(gles2_, end_pos - start_pos);
+ PP_VideoBitstreamBuffer_Dev bitstream_buffer;
+ int id = ++next_bitstream_buffer_id_;
+ bitstream_buffer.id = id;
+ bitstream_buffer.size = end_pos - start_pos;
+ bitstream_buffer.data = buffer->pp_resource();
+ memcpy(buffer->data(), kData + start_pos, end_pos - start_pos);
+ assert(bitstream_buffers_by_id_.insert(std::make_pair(id, buffer)).second);
+
+ pp::CompletionCallback cb =
+ callback_factory_.NewCallback(
+ &VideoDecodeDemoInstance::DecoderClient::DecoderBitstreamDone, id);
+ assert(bitstream_ids_at_decoder_.insert(id).second);
+ encoded_data_next_pos_to_decode_ = end_pos;
+ decoder_->Decode(bitstream_buffer, cb);
+}
+
+void VideoDecodeDemoInstance::ProvidePictureBuffers(PP_Resource decoder,
+ uint32_t req_num_of_bufs,
+ const PP_Size& dimensions,
+ uint32_t texture_target) {
+ DecoderClient* client = video_decoders_[decoder];
+ assert(client);
+ client->ProvidePictureBuffers(req_num_of_bufs, dimensions, texture_target);
+}
+
+void VideoDecodeDemoInstance::DecoderClient::ProvidePictureBuffers(
+ uint32_t req_num_of_bufs,
+ PP_Size dimensions,
+ uint32_t texture_target) {
+ std::vector<PP_PictureBuffer_Dev> buffers;
+ for (uint32_t i = 0; i < req_num_of_bufs; ++i) {
+ PictureBufferInfo info;
+ info.buffer.size = dimensions;
+ info.texture_target = texture_target;
+ info.buffer.texture_id = gles2_->CreateTexture(
+ dimensions.width, dimensions.height, info.texture_target);
+ int id = ++next_picture_buffer_id_;
+ info.buffer.id = id;
+ buffers.push_back(info.buffer);
+ assert(picture_buffers_by_id_.insert(std::make_pair(id, info)).second);
+ }
+ decoder_->AssignPictureBuffers(buffers);
+}
+
+const PictureBufferInfo&
+VideoDecodeDemoInstance::DecoderClient::GetPictureBufferInfoById(
+ int id) {
+ PictureBufferMap::iterator it = picture_buffers_by_id_.find(id);
+ assert(it != picture_buffers_by_id_.end());
+ return it->second;
+}
+
+void VideoDecodeDemoInstance::DismissPictureBuffer(PP_Resource decoder,
+ int32_t picture_buffer_id) {
+ DecoderClient* client = video_decoders_[decoder];
+ assert(client);
+ client->DismissPictureBuffer(picture_buffer_id);
+}
+
+void VideoDecodeDemoInstance::DecoderClient::DismissPictureBuffer(
+ int32_t picture_buffer_id) {
+ gles2_->DeleteTexture(GetPictureBufferInfoById(
+ picture_buffer_id).buffer.texture_id);
+ picture_buffers_by_id_.erase(picture_buffer_id);
+}
+
+void VideoDecodeDemoInstance::PictureReady(PP_Resource decoder,
+ const PP_Picture_Dev& picture) {
+ if (first_frame_delivered_ticks_ == -1)
+ assert((first_frame_delivered_ticks_ = core_if_->GetTimeTicks()) != -1);
+ if (is_painting_) {
+ pictures_pending_paint_.push_back(std::make_pair(decoder, picture));
+ return;
+ }
+ DecoderClient* client = video_decoders_[decoder];
+ assert(client);
+ const PictureBufferInfo& info =
+ client->GetPictureBufferInfoById(picture.picture_buffer_id);
+ assert(!is_painting_);
+ is_painting_ = true;
+ int x = 0;
+ int y = 0;
+ if (client != video_decoders_.begin()->second) {
+ x = plugin_size_.width() / kNumDecoders;
+ y = plugin_size_.height() / kNumDecoders;
+ }
+
+ if (info.texture_target == GL_TEXTURE_2D) {
+ Create2DProgramOnce();
+ gles2_if_->UseProgram(context_->pp_resource(), shader_2d_.program);
+ gles2_if_->Uniform2f(
+ context_->pp_resource(), shader_2d_.texcoord_scale_location, 1.0, 1.0);
+ } else {
+ assert(info.texture_target == GL_TEXTURE_RECTANGLE_ARB);
+ CreateRectangleARBProgramOnce();
+ gles2_if_->UseProgram(
+ context_->pp_resource(), shader_rectangle_arb_.program);
+ gles2_if_->Uniform2f(context_->pp_resource(),
+ shader_rectangle_arb_.texcoord_scale_location,
+ info.buffer.size.width,
+ info.buffer.size.height);
+ }
+
+ gles2_if_->Viewport(context_->pp_resource(), x, y,
+ plugin_size_.width() / kNumDecoders,
+ plugin_size_.height() / kNumDecoders);
+ gles2_if_->ActiveTexture(context_->pp_resource(), GL_TEXTURE0);
+ gles2_if_->BindTexture(
+ context_->pp_resource(), info.texture_target, info.buffer.texture_id);
+ gles2_if_->DrawArrays(context_->pp_resource(), GL_TRIANGLE_STRIP, 0, 4);
+
+ gles2_if_->UseProgram(context_->pp_resource(), 0);
+
+ pp::CompletionCallback cb =
+ callback_factory_.NewCallback(
+ &VideoDecodeDemoInstance::PaintFinished, decoder, info.buffer.id);
+ last_swap_request_ticks_ = core_if_->GetTimeTicks();
+ assert(context_->SwapBuffers(cb) == PP_OK_COMPLETIONPENDING);
+}
+
+void VideoDecodeDemoInstance::NotifyError(PP_Resource decoder,
+ PP_VideoDecodeError_Dev error) {
+ LogError(this).s() << "Received error: " << error;
+ assert(false && "Unexpected error; see stderr for details");
+}
+
+// This object is the global object representing this plugin library as long
+// as it is loaded.
+class VideoDecodeDemoModule : public pp::Module {
+ public:
+ VideoDecodeDemoModule() : pp::Module() {}
+ virtual ~VideoDecodeDemoModule() {}
+
+ virtual pp::Instance* CreateInstance(PP_Instance instance) {
+ return new VideoDecodeDemoInstance(instance, this);
+ }
+};
+
+void VideoDecodeDemoInstance::InitGL() {
+ assert(plugin_size_.width() && plugin_size_.height());
+ is_painting_ = false;
+
+ assert(!context_);
+ int32_t context_attributes[] = {
+ PP_GRAPHICS3DATTRIB_ALPHA_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_BLUE_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_GREEN_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_RED_SIZE, 8,
+ PP_GRAPHICS3DATTRIB_DEPTH_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_STENCIL_SIZE, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLES, 0,
+ PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS, 0,
+ PP_GRAPHICS3DATTRIB_WIDTH, plugin_size_.width(),
+ PP_GRAPHICS3DATTRIB_HEIGHT, plugin_size_.height(),
+ PP_GRAPHICS3DATTRIB_NONE,
+ };
+ context_ = new pp::Graphics3D(this, context_attributes);
+ assert(!context_->is_null());
+ assert(BindGraphics(*context_));
+
+ // Clear color bit.
+ gles2_if_->ClearColor(context_->pp_resource(), 1, 0, 0, 1);
+ gles2_if_->Clear(context_->pp_resource(), GL_COLOR_BUFFER_BIT);
+
+ assertNoGLError();
+
+ CreateGLObjects();
+}
+
+void VideoDecodeDemoInstance::PaintFinished(int32_t result, PP_Resource decoder,
+ int picture_buffer_id) {
+ assert(result == PP_OK);
+ swap_ticks_ += core_if_->GetTimeTicks() - last_swap_request_ticks_;
+ is_painting_ = false;
+ ++num_frames_rendered_;
+ if (num_frames_rendered_ % 50 == 0) {
+ double elapsed = core_if_->GetTimeTicks() - first_frame_delivered_ticks_;
+ double fps = (elapsed > 0) ? num_frames_rendered_ / elapsed : 1000;
+ double ms_per_swap = (swap_ticks_ * 1e3) / num_frames_rendered_;
+ LogError(this).s() << "Rendered frames: " << num_frames_rendered_
+ << ", fps: " << fps << ", with average ms/swap of: "
+ << ms_per_swap;
+ }
+ DecoderClient* client = video_decoders_[decoder];
+ if (client && client->decoder())
+ client->decoder()->ReusePictureBuffer(picture_buffer_id);
+ if (!pictures_pending_paint_.empty()) {
+ std::pair<PP_Resource, PP_Picture_Dev> decoder_picture =
+ pictures_pending_paint_.front();
+ pictures_pending_paint_.pop_front();
+ PictureReady(decoder_picture.first, decoder_picture.second);
+ }
+}
+
+GLuint VideoDecodeDemoInstance::CreateTexture(int32_t width,
+ int32_t height,
+ GLenum texture_target) {
+ GLuint texture_id;
+ gles2_if_->GenTextures(context_->pp_resource(), 1, &texture_id);
+ assertNoGLError();
+ // Assign parameters.
+ gles2_if_->ActiveTexture(context_->pp_resource(), GL_TEXTURE0);
+ gles2_if_->BindTexture(context_->pp_resource(), texture_target, texture_id);
+ gles2_if_->TexParameteri(
+ context_->pp_resource(), texture_target, GL_TEXTURE_MIN_FILTER,
+ GL_NEAREST);
+ gles2_if_->TexParameteri(
+ context_->pp_resource(), texture_target, GL_TEXTURE_MAG_FILTER,
+ GL_NEAREST);
+ gles2_if_->TexParameterf(
+ context_->pp_resource(), texture_target, GL_TEXTURE_WRAP_S,
+ GL_CLAMP_TO_EDGE);
+ gles2_if_->TexParameterf(
+ context_->pp_resource(), texture_target, GL_TEXTURE_WRAP_T,
+ GL_CLAMP_TO_EDGE);
+
+ if (texture_target == GL_TEXTURE_2D) {
+ gles2_if_->TexImage2D(
+ context_->pp_resource(), texture_target, 0, GL_RGBA, width, height, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+ }
+ assertNoGLError();
+ return texture_id;
+}
+
+void VideoDecodeDemoInstance::DeleteTexture(GLuint id) {
+ gles2_if_->DeleteTextures(context_->pp_resource(), 1, &id);
+}
+
+void VideoDecodeDemoInstance::CreateGLObjects() {
+ // Assign vertex positions and texture coordinates to buffers for use in
+ // shader program.
+ static const float kVertices[] = {
+ -1, 1, -1, -1, 1, 1, 1, -1, // Position coordinates.
+ 0, 1, 0, 0, 1, 1, 1, 0, // Texture coordinates.
+ };
+
+ GLuint buffer;
+ gles2_if_->GenBuffers(context_->pp_resource(), 1, &buffer);
+ gles2_if_->BindBuffer(context_->pp_resource(), GL_ARRAY_BUFFER, buffer);
+
+ gles2_if_->BufferData(context_->pp_resource(), GL_ARRAY_BUFFER,
+ sizeof(kVertices), kVertices, GL_STATIC_DRAW);
+ assertNoGLError();
+}
+
+static const char kVertexShader[] =
+ "varying vec2 v_texCoord; \n"
+ "attribute vec4 a_position; \n"
+ "attribute vec2 a_texCoord; \n"
+ "uniform vec2 v_scale; \n"
+ "void main() \n"
+ "{ \n"
+ " v_texCoord = v_scale * a_texCoord; \n"
+ " gl_Position = a_position; \n"
+ "}";
+
+void VideoDecodeDemoInstance::Create2DProgramOnce() {
+ if (shader_2d_.program)
+ return;
+ static const char kFragmentShader2D[] =
+ "precision mediump float; \n"
+ "varying vec2 v_texCoord; \n"
+ "uniform sampler2D s_texture; \n"
+ "void main() \n"
+ "{"
+ " gl_FragColor = texture2D(s_texture, v_texCoord); \n"
+ "}";
+ shader_2d_ = CreateProgram(kVertexShader, kFragmentShader2D);
+ assertNoGLError();
+}
+
+void VideoDecodeDemoInstance::CreateRectangleARBProgramOnce() {
+ if (shader_rectangle_arb_.program)
+ return;
+ static const char kFragmentShaderRectangle[] =
+ "#extension GL_ARB_texture_rectangle : require\n"
+ "precision mediump float; \n"
+ "varying vec2 v_texCoord; \n"
+ "uniform sampler2DRect s_texture; \n"
+ "void main() \n"
+ "{"
+ " gl_FragColor = texture2DRect(s_texture, v_texCoord).rgba; \n"
+ "}";
+ shader_rectangle_arb_ =
+ CreateProgram(kVertexShader, kFragmentShaderRectangle);
+}
+
+Shader VideoDecodeDemoInstance::CreateProgram(const char* vertex_shader,
+ const char* fragment_shader) {
+ Shader shader;
+
+ // Create shader program.
+ shader.program = gles2_if_->CreateProgram(context_->pp_resource());
+ CreateShader(shader.program, GL_VERTEX_SHADER, vertex_shader,
+ strlen(vertex_shader));
+ CreateShader(shader.program, GL_FRAGMENT_SHADER, fragment_shader,
+ strlen(fragment_shader));
+ gles2_if_->LinkProgram(context_->pp_resource(), shader.program);
+ gles2_if_->UseProgram(context_->pp_resource(), shader.program);
+ gles2_if_->Uniform1i(
+ context_->pp_resource(),
+ gles2_if_->GetUniformLocation(
+ context_->pp_resource(), shader.program, "s_texture"), 0);
+ assertNoGLError();
+
+ shader.texcoord_scale_location = gles2_if_->GetUniformLocation(
+ context_->pp_resource(), shader.program, "v_scale");
+
+ GLint pos_location = gles2_if_->GetAttribLocation(
+ context_->pp_resource(), shader.program, "a_position");
+ GLint tc_location = gles2_if_->GetAttribLocation(
+ context_->pp_resource(), shader.program, "a_texCoord");
+ assertNoGLError();
+
+ gles2_if_->EnableVertexAttribArray(context_->pp_resource(), pos_location);
+ gles2_if_->VertexAttribPointer(context_->pp_resource(), pos_location, 2,
+ GL_FLOAT, GL_FALSE, 0, 0);
+ gles2_if_->EnableVertexAttribArray(context_->pp_resource(), tc_location);
+ gles2_if_->VertexAttribPointer(
+ context_->pp_resource(), tc_location, 2, GL_FLOAT, GL_FALSE, 0,
+ static_cast<float*>(0) + 8); // Skip position coordinates.
+
+ gles2_if_->UseProgram(context_->pp_resource(), 0);
+ assertNoGLError();
+ return shader;
+}
+
+void VideoDecodeDemoInstance::CreateShader(
+ GLuint program, GLenum type, const char* source, int size) {
+ GLuint shader = gles2_if_->CreateShader(context_->pp_resource(), type);
+ gles2_if_->ShaderSource(context_->pp_resource(), shader, 1, &source, &size);
+ gles2_if_->CompileShader(context_->pp_resource(), shader);
+ gles2_if_->AttachShader(context_->pp_resource(), program, shader);
+ gles2_if_->DeleteShader(context_->pp_resource(), shader);
+}
+} // anonymous namespace
+
+namespace pp {
+// Factory function for your specialization of the Module object.
+Module* CreateModule() {
+ return new VideoDecodeDemoModule();
+}
+} // namespace pp
diff --git a/chromium/ppapi/examples/video_decode/video_decode_dev.html b/chromium/ppapi/examples/video_decode/video_decode_dev.html
new file mode 100644
index 00000000000..8e098ca5992
--- /dev/null
+++ b/chromium/ppapi/examples/video_decode/video_decode_dev.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <!--
+ Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ -->
+<head>
+ <title>Video Decode (Dev) Example</title>
+</head>
+
+<body>
+
+<embed id="plugin" type="application/x-ppapi-example-video-decode-dev"
+ width="640" height="480"/>
+
+</body>
+</html>
diff --git a/chromium/ppapi/examples/video_effects/video_effects.html b/chromium/ppapi/examples/video_effects/video_effects.html
index 82d813fad88..f7dd0ce0abd 100644
--- a/chromium/ppapi/examples/video_effects/video_effects.html
+++ b/chromium/ppapi/examples/video_effects/video_effects.html
@@ -52,7 +52,7 @@ textarea {
var RTCPeerConnection = webkitRTCPeerConnection;
var getUserMedia = navigator.webkitGetUserMedia.bind(navigator);
var attachMediaStream = function(element, stream) {
- element.src = webkitURL.createObjectURL(stream);
+ element.src = URL.createObjectURL(stream);
};
var startButton = document.getElementById('startButton');
var toggleEffectButton = document.getElementById('toggleEffectButton');
@@ -95,7 +95,7 @@ function start() {
}
function onRegisterStreamDone() {
- vidprocessedlocal.src = webkitURL.createObjectURL(processedLocalstream);
+ vidprocessedlocal.src = URL.createObjectURL(processedLocalstream);
toggleEffectButton.disabled = false;
}
@@ -110,9 +110,9 @@ function HandleMessage(message_event) {
}
function initEffect() {
- var url = webkitURL.createObjectURL(localstream);
+ var url = URL.createObjectURL(localstream);
processedLocalstream = new webkitMediaStream([]);
- var processedStreamUrl = webkitURL.createObjectURL(processedLocalstream);
+ var processedStreamUrl = URL.createObjectURL(processedLocalstream);
effectsPlugin.postMessage(
'registerStream' + ' ' + url + ' ' + processedStreamUrl);
}
@@ -177,7 +177,7 @@ function hangup() {
}
function gotRemoteStream(e){
- vidremote.src = webkitURL.createObjectURL(e.stream);
+ vidremote.src = URL.createObjectURL(e.stream);
trace("Received remote stream");
}
diff --git a/chromium/ppapi/generators/idl_ast.py b/chromium/ppapi/generators/idl_ast.py
index 74dce942a8e..515dbb0c128 100644
--- a/chromium/ppapi/generators/idl_ast.py
+++ b/chromium/ppapi/generators/idl_ast.py
@@ -21,7 +21,10 @@ class IDLLabelResolver(IDLVisitor):
def Depart(self, node, ignore, childdata):
# Build list of Release=Version
if node.IsA('LabelItem'):
- return (node.GetName(), node.GetProperty('VALUE'))
+ channel = node.GetProperty('channel')
+ if not channel:
+ channel = 'stable'
+ return (node.GetName(), node.GetProperty('VALUE'), channel)
# On completion of the Label, apply to the parent File if the
# name of the label matches the generation label.
@@ -75,7 +78,9 @@ class IDLNamespaceVersionResolver(IDLVisitor):
if parent_namespace and node.cls in IDLNode.NamedSet:
# Set version min and max based on properties
if self.release_map:
- vmin = node.GetProperty('version')
+ vmin = node.GetProperty('dev_version')
+ if vmin == None:
+ vmin = node.GetProperty('version')
vmax = node.GetProperty('deprecate')
# If no min is available, the use the parent File's min
if vmin == None:
diff --git a/chromium/ppapi/generators/idl_c_header.py b/chromium/ppapi/generators/idl_c_header.py
index d3a1b32a3e4..b4b98227df4 100755
--- a/chromium/ppapi/generators/idl_c_header.py
+++ b/chromium/ppapi/generators/idl_c_header.py
@@ -288,12 +288,36 @@ class HGen(GeneratorByFile):
# Skip this interface if there are no matching versions
if not unique: continue
+ # Skip this interface if it should have no interface string.
+ if node.GetProperty('no_interface_string'): continue
+
+ last_stable_ver = None
+ last_dev_rel = None
+ for rel in unique:
+ channel = node.GetProperty('FILE').release_map.GetChannel(rel)
+ if channel == 'dev':
+ last_dev_rel = rel
+
for rel in unique:
version = node.GetVersion(rel)
name = cgen.GetInterfaceString(node, version)
strver = str(version).replace('.', '_')
- idefs += cgen.GetDefine('%s_%s' % (macro, strver), '"%s"' % name)
- idefs += cgen.GetDefine(macro, '%s_%s' % (macro, strver)) + '\n'
+ channel = node.GetProperty('FILE').release_map.GetChannel(rel)
+ if channel == 'dev':
+ # Skip dev channel interface versions that are
+ # Not the newest version, and
+ # Don't have an equivalent stable version.
+ if rel != last_dev_rel and not node.DevInterfaceMatchesStable(rel):
+ continue
+ value_string = '"%s" /* dev */' % name
+ else:
+ value_string = '"%s"' % name
+ last_stable_ver = strver
+ idefs += cgen.GetDefine('%s_%s' % (macro, strver), value_string)
+ if last_stable_ver:
+ idefs += cgen.GetDefine(macro, '%s_%s' % (macro, last_stable_ver))
+ idefs += '\n'
+
out.Write(idefs)
# Generate the @file comment
@@ -337,11 +361,11 @@ def main(args):
filenames = glob.glob(idldir)
ast = ParseFiles(filenames)
- if hgen.GenerateRange(ast, ['M13', 'M14', 'M15'], {}):
- print "Golden file for M13-M15 failed."
+ if hgen.GenerateRange(ast, ['M13', 'M14', 'M15', 'M16', 'M17'], {}):
+ print "Golden file for M13-M17 failed."
failed =1
else:
- print "Golden file for M13-M15 passed."
+ print "Golden file for M13-M17 passed."
return failed
diff --git a/chromium/ppapi/generators/idl_c_proto.py b/chromium/ppapi/generators/idl_c_proto.py
index 34d5361a82c..a6179a8f4b6 100755
--- a/chromium/ppapi/generators/idl_c_proto.py
+++ b/chromium/ppapi/generators/idl_c_proto.py
@@ -538,17 +538,25 @@ class CGen(object):
def DefineStructInternals(self, node, release,
include_version=False, comment=True):
+ channel = node.GetProperty('FILE').release_map.GetChannel(release)
+ if channel == 'dev':
+ channel_comment = ' /* dev */'
+ else:
+ channel_comment = ''
out = ''
if node.GetProperty('union'):
- out += 'union %s {\n' % (
- self.GetStructName(node, release, include_version))
+ out += 'union %s {%s\n' % (
+ self.GetStructName(node, release, include_version), channel_comment)
else:
- out += 'struct %s {\n' % (
- self.GetStructName(node, release, include_version))
+ out += 'struct %s {%s\n' % (
+ self.GetStructName(node, release, include_version), channel_comment)
+ channel = node.GetProperty('FILE').release_map.GetChannel(release)
# Generate Member Functions
members = []
for child in node.GetListOf('Member'):
+ if channel == 'stable' and child.NodeIsDevOnly():
+ continue
member = self.Define(child, [release], tabs=1, comment=comment)
if not member:
continue
@@ -563,27 +571,52 @@ class CGen(object):
out = ''
build_list = node.GetUniqueReleases(releases)
+ newest_stable = None
+ newest_dev = None
+ for rel in build_list:
+ channel = node.GetProperty('FILE').release_map.GetChannel(rel)
+ if channel == 'stable':
+ newest_stable = rel
+ if channel == 'dev':
+ newest_dev = rel
+ last_rel = build_list[-1]
+
# TODO(noelallen) : Bug 157017 finish multiversion support
if node.IsA('Struct'):
if len(build_list) != 1:
node.Error('Can not support multiple versions of node.')
assert len(build_list) == 1
- out = self.DefineStructInternals(node, build_list[-1],
+ # Build the most recent one versioned, with comments
+ out = self.DefineStructInternals(node, last_rel,
include_version=False, comment=True)
if node.IsA('Interface'):
# Build the most recent one versioned, with comments
- out = self.DefineStructInternals(node, build_list[-1],
+ out = self.DefineStructInternals(node, last_rel,
include_version=True, comment=True)
- # Define an unversioned typedef for the most recent version
- out += '\ntypedef struct %s %s;\n' % (
- self.GetStructName(node, build_list[-1], include_version=True),
- self.GetStructName(node, build_list[-1], include_version=False))
+ if last_rel == newest_stable:
+ # Define an unversioned typedef for the most recent version
+ out += '\ntypedef struct %s %s;\n' % (
+ self.GetStructName(node, last_rel, include_version=True),
+ self.GetStructName(node, last_rel, include_version=False))
+
# Build the rest without comments and with the version number appended
for rel in build_list[0:-1]:
+ channel = node.GetProperty('FILE').release_map.GetChannel(rel)
+ # Skip dev channel interface versions that are
+ # Not the newest version, and
+ # Don't have an equivalent stable version.
+ if channel == 'dev' and rel != newest_dev:
+ if not node.DevInterfaceMatchesStable(rel):
+ continue
out += '\n' + self.DefineStructInternals(node, rel,
include_version=True,
comment=False)
+ if rel == newest_stable:
+ # Define an unversioned typedef for the most recent version
+ out += '\ntypedef struct %s %s;\n' % (
+ self.GetStructName(node, rel, include_version=True),
+ self.GetStructName(node, rel, include_version=False))
self.LogExit('Exit DefineStruct')
return out
@@ -609,7 +642,7 @@ class CGen(object):
# Add indentation
line = tab + line
space_break = line.rfind(' ', 0, 80)
- if len(line) <= 80 or 'http' in line:
+ if len(line) <= 80 or 'http://' in line:
# Ignore normal line and URLs permitted by the style guide.
lines.append(line.rstrip())
elif not '(' in line and space_break >= 0:
diff --git a/chromium/ppapi/generators/idl_gen_pnacl.py b/chromium/ppapi/generators/idl_gen_pnacl.py
index 2dc631b6872..dd1ce0cd9eb 100755
--- a/chromium/ppapi/generators/idl_gen_pnacl.py
+++ b/chromium/ppapi/generators/idl_gen_pnacl.py
@@ -48,7 +48,7 @@ class PnaclGen(WrapperGen):
def OwnHeaderFile(self):
"""Return the header file that specifies the API of this wrapper.
We do not generate the header files. """
- return 'ppapi/generators/pnacl_shim.h'
+ return 'ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h'
def InterfaceVersionNeedsWrapping(self, iface, version):
@@ -59,6 +59,12 @@ class PnaclGen(WrapperGen):
return True
if iface.GetName().endswith('Trusted'):
return False
+ # TODO(dmichael): We have no way to wrap PPP_ interfaces without an
+ # interface string. If any ever need wrapping, we'll need to figure out a
+ # way to get the plugin-side of the Pepper proxy (within the IRT) to access
+ # and use the wrapper.
+ if iface.GetProperty("no_interface_string"):
+ return False
for member in iface.GetListOf('Member'):
release = member.GetRelease(version)
if self.MemberNeedsWrapping(member, release):
diff --git a/chromium/ppapi/generators/idl_gen_wrapper.py b/chromium/ppapi/generators/idl_gen_wrapper.py
index bbcfd71faeb..5d38eff8c9a 100644
--- a/chromium/ppapi/generators/idl_gen_wrapper.py
+++ b/chromium/ppapi/generators/idl_gen_wrapper.py
@@ -168,11 +168,7 @@ const void *__%(wrapper_prefix)s_PPBGetInterface(const char *name) {
wrapper->real_iface = iface;
}
- if (wrapper->wrapped_iface) {
- return wrapper->wrapped_iface;
- } else {
- return wrapper->real_iface;
- }
+ return wrapper->wrapped_iface;
}
const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
@@ -189,11 +185,7 @@ const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
wrapper->real_iface = iface;
}
- if (wrapper->wrapped_iface) {
- return wrapper->wrapped_iface;
- } else {
- return wrapper->real_iface;
- }
+ return wrapper->wrapped_iface;
}
""" % { 'wrapper_struct' : self.GetWrapperMetadataName(),
'wrapper_prefix' : self.wrapper_prefix,
@@ -251,13 +243,11 @@ const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
# Get typedefs for PPB_GetInterface.
out.Write('#include "%s"\n' % self.GetHeaderName('ppb.h'))
- # Get a conservative list of all #includes that are needed,
- # whether it requires wrapping or not. We currently depend on the macro
- # string for comparison, even when it is not wrapped, to decide when
- # to use the original/real interface.
+ # Only include headers where *some* interface needs wrapping.
header_files = set()
for iface in iface_releases:
- header_files.add(iface.header_file)
+ if iface.needs_wrapping:
+ header_files.add(iface.header_file)
for header in sorted(header_files):
out.Write('#include "%s"\n' % header)
out.Write('\n')
@@ -324,9 +314,8 @@ const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
iface.struct_name)
continue
- out.Write('struct %s %s_Wrappers_%s = {\n' % (iface.struct_name,
- self.wrapper_prefix,
- iface.struct_name))
+ out.Write('static const struct %s %s_Wrappers_%s = {\n' % (
+ iface.struct_name, self.wrapper_prefix, iface.struct_name))
methods = []
for member in iface.node.GetListOf('Member'):
# Skip the method if it's not actually in the release.
@@ -362,8 +351,8 @@ const void *__%(wrapper_prefix)s_PPPGetInterface(const char *name) {
for iface in iface_releases:
iface_macro = self.cgen.GetInterfaceMacro(iface.node, iface.version)
if iface.needs_wrapping:
- wrap_iface = '(void *) &%s_Wrappers_%s' % (self.wrapper_prefix,
- iface.struct_name)
+ wrap_iface = '(const void *) &%s_Wrappers_%s' % (self.wrapper_prefix,
+ iface.struct_name)
out.Write("""static struct %s %s = {
.iface_macro = %s,
.wrapped_iface = %s,
diff --git a/chromium/ppapi/generators/idl_lexer.py b/chromium/ppapi/generators/idl_lexer.py
index 4120ac7cfdd..47d64a243b3 100755
--- a/chromium/ppapi/generators/idl_lexer.py
+++ b/chromium/ppapi/generators/idl_lexer.py
@@ -54,6 +54,7 @@ class IDLLexer(object):
'INTERFACE',
'STRUCT',
'TYPEDEF',
+ 'OR',
# Extra WebIDL keywords
'CALLBACK',
@@ -92,6 +93,8 @@ class IDLLexer(object):
'optional' : 'OPTIONAL',
'static' : 'STATIC',
'namespace' : 'NAMESPACE',
+
+ 'or' : 'OR',
}
# 'literals' is a value expected by lex which specifies a list of valid
diff --git a/chromium/ppapi/generators/idl_node.py b/chromium/ppapi/generators/idl_node.py
index 3c9470709c1..55b24d19b01 100755
--- a/chromium/ppapi/generators/idl_node.py
+++ b/chromium/ppapi/generators/idl_node.py
@@ -276,6 +276,10 @@ class IDLNode(IDLRelease):
else:
my_releases = set([my_min])
+ r = self.GetRelease(self.GetProperty('version'))
+ if not r in my_releases:
+ my_releases |= set([r])
+
# Break cycle if we reference ourselves
if self in visited:
return [my_min]
@@ -338,6 +342,22 @@ class IDLNode(IDLRelease):
def GetPropertyLocal(self, name):
return self._property_node.GetPropertyLocal(name)
+ def NodeIsDevOnly(self):
+ """Returns true iff a node is only in dev channel."""
+ return self.GetProperty('dev_version') and not self.GetProperty('version')
+
+ def DevInterfaceMatchesStable(self, release):
+ """Returns true if an interface has an equivalent stable version."""
+ assert(self.IsA('Interface'))
+ for child in self.GetListOf('Member'):
+ unique = child.GetUniqueReleases([release])
+ if not unique or not child.InReleases([release]):
+ continue
+ if child.NodeIsDevOnly():
+ return False
+ return True
+
+
#
# IDLFile
#
@@ -352,7 +372,7 @@ class IDLFile(IDLNode):
IDLNode.__init__(self, 'File', name, 1, 0, attrs + children)
# TODO(teravest): Why do we set release map like this here? This looks
# suspicious...
- self.release_map = IDLReleaseMap([('M13', 1.0)])
+ self.release_map = IDLReleaseMap([('M13', 1.0, 'stable')])
#
diff --git a/chromium/ppapi/generators/idl_parser.py b/chromium/ppapi/generators/idl_parser.py
index df330702a50..51941d7cd9c 100755
--- a/chromium/ppapi/generators/idl_parser.py
+++ b/chromium/ppapi/generators/idl_parser.py
@@ -268,6 +268,33 @@ class IDLParser(IDLLexer):
if self.parse_debug: DumpReduction('modifiers', p)
#
+# Scoped name is a name with an optional scope.
+#
+# Used for types and namespace names. eg. foo_bar.hello_world, or
+# foo_bar.hello_world.SomeType.
+#
+ def p_scoped_name(self, p):
+ """scoped_name : SYMBOL scoped_name_rest"""
+ p[0] = ''.join(p[1:])
+ if self.parse_debug: DumpReduction('scoped_name', p)
+
+ def p_scoped_name_rest(self, p):
+ """scoped_name_rest : '.' scoped_name
+ |"""
+ p[0] = ''.join(p[1:])
+ if self.parse_debug: DumpReduction('scoped_name_rest', p)
+
+#
+# Type reference
+#
+#
+ def p_typeref(self, p):
+ """typeref : scoped_name"""
+ p[0] = p[1]
+ if self.parse_debug: DumpReduction('typeref', p)
+
+
+#
# Comments
#
# Comments are optional list of C style comment objects. Comments are returned
@@ -296,9 +323,8 @@ class IDLParser(IDLLexer):
# We allow namespace names of the form foo.bar.baz.
def p_namespace_name(self, p):
- """namespace_name : SYMBOL
- | SYMBOL '.' namespace_name"""
- p[0] = "".join(p[1:])
+ """namespace_name : scoped_name"""
+ p[0] = p[1]
#
@@ -534,17 +560,17 @@ class IDLParser(IDLLexer):
if self.parse_debug: DumpReduction('expression_unop', p)
def p_expression_term(self, p):
- "expression : '(' expression ')'"
+ """expression : '(' expression ')'"""
p[0] = "%s%s%s" % (str(p[1]), str(p[2]), str(p[3]))
if self.parse_debug: DumpReduction('expression_term', p)
def p_expression_symbol(self, p):
- "expression : SYMBOL"
+ """expression : SYMBOL"""
p[0] = p[1]
if self.parse_debug: DumpReduction('expression_symbol', p)
def p_expression_integer(self, p):
- "expression : integer"
+ """expression : integer"""
p[0] = p[1]
if self.parse_debug: DumpReduction('expression_integer', p)
@@ -583,6 +609,27 @@ class IDLParser(IDLLexer):
# them.
p.set_lineno(0, p.lineno(1))
+
+#
+# Union
+#
+# A union allows multiple choices of types for a parameter or member.
+#
+
+ def p_union_option(self, p):
+ """union_option : modifiers SYMBOL arrays"""
+ typeref = self.BuildAttribute('TYPEREF', p[2])
+ children = ListFromConcat(p[1], typeref, p[3])
+ p[0] = self.BuildProduction('Option', p, 2, children)
+
+ def p_union_list(self, p):
+ """union_list : union_option OR union_list
+ | union_option"""
+ if len(p) > 2:
+ p[0] = ListFromConcat(p[1], p[3])
+ else:
+ p[0] = p[1]
+
#
# Parameter List
#
@@ -600,12 +647,19 @@ class IDLParser(IDLLexer):
if self.parse_debug: DumpReduction('param_list', p)
def p_param_item(self, p):
- """param_item : modifiers optional SYMBOL arrays identifier"""
+ """param_item : modifiers optional typeref arrays identifier"""
typeref = self.BuildAttribute('TYPEREF', p[3])
children = ListFromConcat(p[1], p[2], typeref, p[4])
p[0] = self.BuildNamed('Param', p, 5, children)
if self.parse_debug: DumpReduction('param_item', p)
+ def p_param_item_union(self, p):
+ """param_item : modifiers optional '(' union_list ')' identifier"""
+ union = self.BuildAttribute('Union', True)
+ children = ListFromConcat(p[1], p[2], p[4], union)
+ p[0] = self.BuildNamed('Param', p, 6, children)
+ if self.parse_debug: DumpReduction('param_item', p)
+
def p_optional(self, p):
"""optional : OPTIONAL
| """
@@ -732,14 +786,21 @@ class IDLParser(IDLLexer):
# A member attribute or function of a struct or interface.
#
def p_member_attribute(self, p):
- """member_attribute : modifiers SYMBOL arrays questionmark identifier"""
+ """member_attribute : modifiers typeref arrays questionmark identifier"""
typeref = self.BuildAttribute('TYPEREF', p[2])
children = ListFromConcat(p[1], typeref, p[3], p[4])
p[0] = self.BuildNamed('Member', p, 5, children)
if self.parse_debug: DumpReduction('attribute', p)
+ def p_member_attribute_union(self, p):
+ """member_attribute : modifiers '(' union_list ')' questionmark identifier"""
+ union = self.BuildAttribute('Union', True)
+ children = ListFromConcat(p[1], p[3], p[5], union)
+ p[0] = self.BuildNamed('Member', p, 6, children)
+ if self.parse_debug: DumpReduction('attribute', p)
+
def p_member_function(self, p):
- """member_function : modifiers static SYMBOL arrays SYMBOL param_list"""
+ """member_function : modifiers static typeref arrays SYMBOL param_list"""
typeref = self.BuildAttribute('TYPEREF', p[3])
children = ListFromConcat(p[1], p[2], typeref, p[4], p[6])
p[0] = self.BuildNamed('Member', p, 5, children)
@@ -1178,8 +1239,7 @@ def TestVersionFiles(filter):
return errs
-default_dirs = ['.', 'trusted', 'dev', 'private', 'extensions',
- 'extensions/dev']
+default_dirs = ['.', 'trusted', 'dev', 'private']
def ParseFiles(filenames):
parser = IDLParser()
filenodes = []
diff --git a/chromium/ppapi/generators/idl_release.py b/chromium/ppapi/generators/idl_release.py
index eafc95f3ba5..ff4aa01db04 100755
--- a/chromium/ppapi/generators/idl_release.py
+++ b/chromium/ppapi/generators/idl_release.py
@@ -214,9 +214,11 @@ class IDLReleaseMap(object):
def __init__(self, release_info):
self.version_to_release = {}
self.release_to_version = {}
- for release, version in release_info:
+ self.release_to_channel = {}
+ for release, version, channel in release_info:
self.version_to_release[version] = release
self.release_to_version[release] = version
+ self.release_to_channel[release] = channel
self.releases = sorted(self.release_to_version.keys())
self.versions = sorted(self.version_to_release.keys())
@@ -238,6 +240,9 @@ class IDLReleaseMap(object):
def GetVersionRange(self):
return (self.versions[0], self.version[-1])
+ def GetChannel(self, release):
+ return self.release_to_channel.get(release, None)
+
#
# Test Code
#
diff --git a/chromium/ppapi/generators/idl_thunk.py b/chromium/ppapi/generators/idl_thunk.py
index 023335c9a2d..5db7abcccd9 100755
--- a/chromium/ppapi/generators/idl_thunk.py
+++ b/chromium/ppapi/generators/idl_thunk.py
@@ -360,7 +360,12 @@ def DefineMember(filenode, node, member, release, include_version, meta):
"""
cgen = CGen()
rtype, name, arrays, args = cgen.GetComponents(member, release, 'return')
- body = 'VLOG(4) << \"%s::%s()\";\n' % (node.GetName(), member.GetName())
+ log_body = '\"%s::%s()\";' % (node.GetName(), member.GetName())
+ if len(log_body) > 69: # Prevent lines over 80 characters.
+ body = 'VLOG(4) <<\n'
+ body += ' %s\n' % log_body
+ else:
+ body = 'VLOG(4) << %s\n' % log_body
if _IsTypeCheck(node, member, args):
body += '%s\n' % _MakeEnterLine(filenode, node, member, args[0], False,
@@ -460,9 +465,7 @@ class TGen(GeneratorByFile):
includes = ['ppapi/c/pp_errors.h',
'ppapi/shared_impl/tracked_callback.h',
'ppapi/thunk/enter.h',
- 'ppapi/thunk/ppb_instance_api.h',
- 'ppapi/thunk/resource_creation_api.h',
- 'ppapi/thunk/thunk.h']
+ 'ppapi/thunk/ppapi_thunk_export.h']
includes.append(_GetHeaderFileName(filenode))
for api in meta.Apis():
includes.append('%s' % api.lower())
@@ -547,10 +550,11 @@ class TGen(GeneratorByFile):
out.Write('} // namespace\n')
out.Write('\n')
for thunk_type, thunk_name in version_list:
- thunk_decl = 'const %s* Get%s_Thunk() {\n' % (thunk_type, thunk_type)
+ thunk_decl = ('PPAPI_THUNK_EXPORT const %s* Get%s_Thunk() {\n' %
+ (thunk_type, thunk_type))
if len(thunk_decl) > 80:
- thunk_decl = 'const %s*\n Get%s_Thunk() {\n' % (thunk_type,
- thunk_type)
+ thunk_decl = ('PPAPI_THUNK_EXPORT const %s*\n Get%s_Thunk() {\n' %
+ (thunk_type, thunk_type))
out.Write(thunk_decl)
out.Write(' return &%s;\n' % thunk_name)
out.Write('}\n')
diff --git a/chromium/ppapi/generators/test_cgen/interface.h b/chromium/ppapi/generators/test_cgen/interface.h
index fccafcb0dc9..7288830ea53 100644
--- a/chromium/ppapi/generators/test_cgen/interface.h
+++ b/chromium/ppapi/generators/test_cgen/interface.h
@@ -66,6 +66,12 @@ struct ifaceBar_1_0 {
};
typedef struct ifaceBar_1_0 ifaceBar;
+
+struct ifaceNoString_1_0 {
+ void (*mem)(void);
+};
+
+typedef struct ifaceNoString_1_0 ifaceNoString;
/**
* @}
*/
diff --git a/chromium/ppapi/generators/test_cgen/interface.idl b/chromium/ppapi/generators/test_cgen/interface.idl
index d7ca86e56eb..202a73a0dac 100644
--- a/chromium/ppapi/generators/test_cgen/interface.idl
+++ b/chromium/ppapi/generators/test_cgen/interface.idl
@@ -41,6 +41,11 @@ interface ifaceBar {
ifaceFoo createIface([in] str_t name);
};
+[no_interface_string]
+interface ifaceNoString {
+ void mem();
+};
+
struct struct2 {
ifaceBar bar;
};
diff --git a/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.h b/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.h
new file mode 100644
index 00000000000..325a770a765
--- /dev/null
+++ b/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.h
@@ -0,0 +1,101 @@
+/* Copyright 2013 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* From test_cgen_range/dev_channel_interface.idl,
+ * modified Tue Dec 3 14:58:15 2013.
+ */
+
+#ifndef PPAPI_C_TEST_CGEN_RANGE_DEV_CHANNEL_INTERFACE_H_
+#define PPAPI_C_TEST_CGEN_RANGE_DEV_CHANNEL_INTERFACE_H_
+
+#include "ppapi/c/pp_macros.h"
+
+#define TESTDEV_INTERFACE_1_0 "TestDev;1.0"
+#define TESTDEV_INTERFACE_1_2 "TestDev;1.2"
+#define TESTDEV_INTERFACE_1_3 "TestDev;1.3" /* dev */
+#define TESTDEV_INTERFACE TESTDEV_INTERFACE_1_2
+
+#define TESTDEVTOSTABLE_INTERFACE_1_0 "TestDevToStable;1.0"
+#define TESTDEVTOSTABLE_INTERFACE_1_1 "TestDevToStable;1.1" /* dev */
+#define TESTDEVTOSTABLE_INTERFACE_1_2 "TestDevToStable;1.2"
+#define TESTDEVTOSTABLE_INTERFACE TESTDEVTOSTABLE_INTERFACE_1_2
+
+/**
+ * @file
+ */
+
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+/**
+ * TestDev
+ */
+struct TestDev_1_3 { /* dev */
+ /**
+ * TestDev1()
+ */
+ void (*TestDev1)(void);
+ /**
+ * TestDev2()
+ */
+ void (*TestDev2)(void);
+ /**
+ * TestDev3()
+ */
+ void (*TestDev3)(void);
+ /**
+ * TestDev4()
+ */
+ void (*TestDev4)(void);
+};
+
+struct TestDev_1_0 {
+ void (*TestDev1)(void);
+};
+
+struct TestDev_1_2 {
+ void (*TestDev1)(void);
+ void (*TestDev3)(void);
+};
+
+typedef struct TestDev_1_2 TestDev;
+
+/**
+ * TestDevToStable
+ */
+struct TestDevToStable_1_2 {
+ /**
+ * Foo() comment.
+ */
+ void (*Foo)(int32_t x);
+ /**
+ * Bar() comment.
+ */
+ void (*Bar)(int32_t x);
+ /**
+ * Baz() comment.
+ */
+ void (*Baz)(int32_t x);
+};
+
+typedef struct TestDevToStable_1_2 TestDevToStable;
+
+struct TestDevToStable_1_0 {
+ void (*Foo)(int32_t x);
+};
+
+struct TestDevToStable_1_1 { /* dev */
+ void (*Foo)(int32_t x);
+ void (*Bar)(int32_t x);
+ void (*Baz)(int32_t x);
+};
+/**
+ * @}
+ */
+
+#endif /* PPAPI_C_TEST_CGEN_RANGE_DEV_CHANNEL_INTERFACE_H_ */
+
diff --git a/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.idl b/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.idl
new file mode 100644
index 00000000000..d3ae0ec4d81
--- /dev/null
+++ b/chromium/ppapi/generators/test_cgen_range/dev_channel_interface.idl
@@ -0,0 +1,67 @@
+/* Copyright 2013 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+label Chrome {
+ M13 = 1.0,
+ [channel=dev] M14 = 1.1,
+ M15 = 1.2,
+ [channel=dev] M16 = 1.3,
+ M17 = 1.4
+};
+
+describe {
+ int32_t;
+ void;
+};
+
+/**
+ * TestDev
+ */
+interface TestDev {
+ /**
+ * TestDev1()
+ */
+ void TestDev1();
+
+ /**
+ * TestDev2()
+ */
+ [dev_version=1.1]
+ void TestDev2();
+
+ /**
+ * TestDev3()
+ */
+ [version=1.2]
+ void TestDev3();
+
+ /**
+ * TestDev4()
+ */
+ [dev_version=1.3]
+ void TestDev4();
+};
+
+/**
+ * TestDevToStable
+ */
+interface TestDevToStable {
+ /**
+ * Foo() comment.
+ */
+ void Foo([in] int32_t x);
+
+ /**
+ * Bar() comment.
+ */
+ [dev_version=1.1, version=1.2]
+ void Bar([in] int32_t x);
+
+ /**
+ * Baz() comment.
+ */
+ [dev_version=1.1, version=1.2]
+ void Baz([in] int32_t x);
+};
diff --git a/chromium/ppapi/generators/test_cgen_range/versions.h b/chromium/ppapi/generators/test_cgen_range/versions.h
index bb0f2b1821a..9d837db872d 100644
--- a/chromium/ppapi/generators/test_cgen_range/versions.h
+++ b/chromium/ppapi/generators/test_cgen_range/versions.h
@@ -9,6 +9,7 @@
#define PPAPI_C_TEST_CGEN_RANGE_VERSIONS_H_
#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/test_cgen_range/dev_channel_interface.h"
#define FOO_INTERFACE_0_0 "Foo;0.0"
#define FOO_INTERFACE_1_0 "Foo;1.0"
diff --git a/chromium/ppapi/generators/test_cgen_range/versions.idl b/chromium/ppapi/generators/test_cgen_range/versions.idl
index 3dcc87ebeff..e00686e654f 100644
--- a/chromium/ppapi/generators/test_cgen_range/versions.idl
+++ b/chromium/ppapi/generators/test_cgen_range/versions.idl
@@ -8,11 +8,9 @@
label Chrome {
M13 = 0.0,
M14 = 1.0,
- M15 = 2.0
-};
-
-describe {
- int32_t;
+ M15 = 2.0,
+ M16 = 3.0,
+ M17 = 4.0
};
/* Bogus Interface Foo */
diff --git a/chromium/ppapi/generators/test_gen_pnacl/test_interfaces.idl b/chromium/ppapi/generators/test_gen_pnacl/test_interfaces.idl
index f487a76263d..0abe79934a7 100644
--- a/chromium/ppapi/generators/test_gen_pnacl/test_interfaces.idl
+++ b/chromium/ppapi/generators/test_gen_pnacl/test_interfaces.idl
@@ -153,3 +153,9 @@ interface PPP_SomeWrap {
[version=2.0]
void foo2([in] int32_t a);
};
+
+[no_interface_string]
+interface PPP_NoIFString {
+ int32_t Dummy([in] some_struct a);
+};
+
diff --git a/chromium/ppapi/host/error_conversion.cc b/chromium/ppapi/host/error_conversion.cc
index da985d39966..2b7d73c9ad7 100644
--- a/chromium/ppapi/host/error_conversion.cc
+++ b/chromium/ppapi/host/error_conversion.cc
@@ -4,7 +4,7 @@
#include "ppapi/host/error_conversion.h"
-#include "base/safe_numerics.h"
+#include "base/numerics/safe_conversions.h"
#include "net/base/net_errors.h"
#include "ppapi/c/pp_errors.h"
@@ -13,7 +13,7 @@ namespace host {
int32_t NetErrorToPepperError(int net_error) {
if (net_error > 0)
- return base::checked_numeric_cast<int32_t>(net_error);
+ return base::checked_cast<int32_t>(net_error);
switch (net_error) {
case net::OK:
diff --git a/chromium/ppapi/host/host_message_context.cc b/chromium/ppapi/host/host_message_context.cc
index 28df040074c..c60b8a32321 100644
--- a/chromium/ppapi/host/host_message_context.cc
+++ b/chromium/ppapi/host/host_message_context.cc
@@ -7,8 +7,8 @@
namespace ppapi {
namespace host {
-ReplyMessageContext::ReplyMessageContext() {
-}
+ReplyMessageContext::ReplyMessageContext()
+ : sync_reply_msg(NULL), routing_id(MSG_ROUTING_NONE) {}
ReplyMessageContext::ReplyMessageContext(
const ppapi::proxy::ResourceMessageReplyParams& cp,
diff --git a/chromium/ppapi/host/host_message_context.h b/chromium/ppapi/host/host_message_context.h
index 916dab51b64..4074904b4cf 100644
--- a/chromium/ppapi/host/host_message_context.h
+++ b/chromium/ppapi/host/host_message_context.h
@@ -22,6 +22,9 @@ struct PPAPI_HOST_EXPORT ReplyMessageContext {
int routing_id);
~ReplyMessageContext();
+ // Returns a value indicating whether this context is valid or "null".
+ bool is_valid() const { return params.pp_resource() != 0; }
+
// The "reply params" struct with the same resource and sequence number
// as the original resource message call.
ppapi::proxy::ResourceMessageReplyParams params;
diff --git a/chromium/ppapi/host/ppapi_host.cc b/chromium/ppapi/host/ppapi_host.cc
index cbb989b5dc0..130bc875569 100644
--- a/chromium/ppapi/host/ppapi_host.cc
+++ b/chromium/ppapi/host/ppapi_host.cc
@@ -12,11 +12,14 @@
#include "ppapi/host/resource_host.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/resource_message_params.h"
+#include "ppapi/proxy/serialized_handle.h"
#include "ppapi/shared_impl/host_resource.h"
namespace ppapi {
namespace host {
+using proxy::SerializedHandle;
+
namespace {
// Put a cap on the maximum number of resources so we don't explode if the
@@ -99,11 +102,23 @@ void PpapiHost::SendReply(const ReplyMessageContext& context,
void PpapiHost::SendUnsolicitedReply(PP_Resource resource,
const IPC::Message& msg) {
- TRACE_EVENT2("ppapi proxy", "PpapiHost::SendUnsolicitedReply",
+ SendUnsolicitedReplyWithHandles(
+ resource, msg, std::vector<SerializedHandle>());
+}
+
+void PpapiHost::SendUnsolicitedReplyWithHandles(
+ PP_Resource resource,
+ const IPC::Message& msg,
+ const std::vector<SerializedHandle>& handles) {
+ TRACE_EVENT2("ppapi proxy", "PpapiHost::SendUnsolicitedReplyWithHandles",
"Class", IPC_MESSAGE_ID_CLASS(msg.type()),
"Line", IPC_MESSAGE_ID_LINE(msg.type()));
DCHECK(resource); // If this fails, host is probably pending.
proxy::ResourceMessageReplyParams params(resource, 0);
+ for (std::vector<SerializedHandle>::const_iterator it = handles.begin();
+ it != handles.end(); ++it) {
+ params.AppendHandle(*it);
+ }
Send(new PpapiPluginMsg_ResourceReply(params, msg));
}
diff --git a/chromium/ppapi/host/ppapi_host.h b/chromium/ppapi/host/ppapi_host.h
index 5a7c5c45c2a..4280c3cb745 100644
--- a/chromium/ppapi/host/ppapi_host.h
+++ b/chromium/ppapi/host/ppapi_host.h
@@ -6,6 +6,7 @@
#define PPAPI_HOST_PPAPI_HOST_H_
#include <map>
+#include <vector>
#include "base/compiler_specific.h"
#include "base/memory/linked_ptr.h"
@@ -24,6 +25,7 @@ namespace ppapi {
namespace proxy {
class ResourceMessageCallParams;
class ResourceMessageReplyParams;
+class SerializedHandle;
}
namespace host {
@@ -61,6 +63,12 @@ class PPAPI_HOST_EXPORT PpapiHost : public IPC::Sender, public IPC::Listener {
// Sends the given unsolicited reply message to the plugin.
void SendUnsolicitedReply(PP_Resource resource, const IPC::Message& msg);
+ // Similar to |SendUnsolicitedReply()|, but also sends handles.
+ void SendUnsolicitedReplyWithHandles(
+ PP_Resource resource,
+ const IPC::Message& msg,
+ const std::vector<proxy::SerializedHandle>& handles);
+
// Create a ResourceHost with the given |nested_msg|.
scoped_ptr<ResourceHost> CreateResourceHost(
const proxy::ResourceMessageCallParams& params,
diff --git a/chromium/ppapi/host/resource_host.cc b/chromium/ppapi/host/resource_host.cc
index 4e12260517e..2d5af581fcf 100644
--- a/chromium/ppapi/host/resource_host.cc
+++ b/chromium/ppapi/host/resource_host.cc
@@ -48,6 +48,10 @@ void ResourceHost::SendReply(const ReplyMessageContext& context,
host_->SendReply(context, msg);
}
+bool ResourceHost::IsCompositorHost() {
+ return false;
+}
+
bool ResourceHost::IsFileRefHost() {
return false;
}
@@ -56,6 +60,10 @@ bool ResourceHost::IsFileSystemHost() {
return false;
}
+bool ResourceHost::IsMediaStreamVideoTrackHost() {
+ return false;
+}
+
bool ResourceHost::IsGraphics2DHost() {
return false;
}
diff --git a/chromium/ppapi/host/resource_host.h b/chromium/ppapi/host/resource_host.h
index 37ccbed2aa2..a2d3885a828 100644
--- a/chromium/ppapi/host/resource_host.h
+++ b/chromium/ppapi/host/resource_host.h
@@ -56,9 +56,11 @@ class PPAPI_HOST_EXPORT ResourceHost : public ResourceMessageHandler {
// Simple RTTI. A subclass that is a host for one of these APIs will override
// the appropriate function and return true.
+ virtual bool IsCompositorHost();
virtual bool IsFileRefHost();
virtual bool IsFileSystemHost();
virtual bool IsGraphics2DHost();
+ virtual bool IsMediaStreamVideoTrackHost();
protected:
// Adds a ResourceMessageFilter to handle resource messages. Incoming
diff --git a/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.c b/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.c
index a310114b9f5..e5872b506c0 100644
--- a/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.c
+++ b/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.c
@@ -38,6 +38,8 @@ static const struct PPB_OpenGLES2ChromiumMapSub*
g_gles2_chromium_map_sub_interface = NULL;
static const struct PPB_OpenGLES2Query*
g_gles2_query_interface = NULL;
+static const struct PPB_OpenGLES2DrawBuffers_Dev*
+ g_gles2_draw_buffers_interface = NULL;
// TODO(alokp): Make sure PP_TLS works on all supported platforms.
static PP_TLS PP_Resource g_current_context = 0;
@@ -73,6 +75,10 @@ GLboolean GL_APIENTRY glInitializePPAPI(
g_gles2_query_interface =
get_browser_interface(PPB_OPENGLES2_QUERY_INTERFACE);
}
+ if (!g_gles2_draw_buffers_interface) {
+ g_gles2_draw_buffers_interface =
+ get_browser_interface(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE);
+ }
return g_gles2_interface ? GL_TRUE : GL_FALSE;
}
@@ -122,3 +128,8 @@ const struct PPB_OpenGLES2Query* GL_APIENTRY
glGetQueryInterfacePPAPI(void) {
return g_gles2_query_interface;
}
+
+const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY
+ glGetDrawBuffersInterfacePPAPI(void) {
+ return g_gles2_draw_buffers_interface;
+}
diff --git a/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.h b/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.h
index 146d9144460..ff593c24745 100644
--- a/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.h
+++ b/chromium/ppapi/lib/gl/gles2/gl2ext_ppapi.h
@@ -49,6 +49,8 @@ GL_APICALL const struct PPB_OpenGLES2ChromiumMapSub* GL_APIENTRY
glGetChromiumMapSubInterfacePPAPI(void);
GL_APICALL const struct PPB_OpenGLES2Query* GL_APIENTRY
glGetQueryInterfacePPAPI(void);
+GL_APICALL const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY
+ glGetDrawBuffersInterfacePPAPI(void);
#ifdef __cplusplus
}
diff --git a/chromium/ppapi/lib/gl/gles2/gles2.c b/chromium/ppapi/lib/gl/gles2/gles2.c
index 430a2cfd19d..60922cd722c 100644
--- a/chromium/ppapi/lib/gl/gles2/gles2.c
+++ b/chromium/ppapi/lib/gl/gles2/gles2.c
@@ -1,9 +1,11 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
+// It's formatted by clang-format using chromium coding style:
+// clang-format -i -style=chromium filename
// DO NOT EDIT!
#ifndef GL_GLEXT_PROTOTYPES
@@ -22,15 +24,14 @@ void GL_APIENTRY glAttachShader(GLuint program, GLuint shader) {
glGetCurrentContextPPAPI(), program, shader);
}
-void GL_APIENTRY glBindAttribLocation(
- GLuint program, GLuint index, const char* name) {
+void GL_APIENTRY
+glBindAttribLocation(GLuint program, GLuint index, const char* name) {
glGetInterfacePPAPI()->BindAttribLocation(
glGetCurrentContextPPAPI(), program, index, name);
}
void GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer) {
- glGetInterfacePPAPI()->BindBuffer(
- glGetCurrentContextPPAPI(), target, buffer);
+ glGetInterfacePPAPI()->BindBuffer(glGetCurrentContextPPAPI(), target, buffer);
}
void GL_APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer) {
@@ -48,8 +49,8 @@ void GL_APIENTRY glBindTexture(GLenum target, GLuint texture) {
glGetCurrentContextPPAPI(), target, texture);
}
-void GL_APIENTRY glBlendColor(
- GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+void GL_APIENTRY
+glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
glGetInterfacePPAPI()->BlendColor(
glGetCurrentContextPPAPI(), red, green, blue, alpha);
}
@@ -68,20 +69,24 @@ void GL_APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor) {
glGetCurrentContextPPAPI(), sfactor, dfactor);
}
-void GL_APIENTRY glBlendFuncSeparate(
- GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
+void GL_APIENTRY glBlendFuncSeparate(GLenum srcRGB,
+ GLenum dstRGB,
+ GLenum srcAlpha,
+ GLenum dstAlpha) {
glGetInterfacePPAPI()->BlendFuncSeparate(
glGetCurrentContextPPAPI(), srcRGB, dstRGB, srcAlpha, dstAlpha);
}
-void GL_APIENTRY glBufferData(
- GLenum target, GLsizeiptr size, const void* data, GLenum usage) {
+void GL_APIENTRY
+glBufferData(GLenum target, GLsizeiptr size, const void* data, GLenum usage) {
glGetInterfacePPAPI()->BufferData(
glGetCurrentContextPPAPI(), target, size, data, usage);
}
-void GL_APIENTRY glBufferSubData(
- GLenum target, GLintptr offset, GLsizeiptr size, const void* data) {
+void GL_APIENTRY glBufferSubData(GLenum target,
+ GLintptr offset,
+ GLsizeiptr size,
+ const void* data) {
glGetInterfacePPAPI()->BufferSubData(
glGetCurrentContextPPAPI(), target, offset, size, data);
}
@@ -95,8 +100,8 @@ void GL_APIENTRY glClear(GLbitfield mask) {
glGetInterfacePPAPI()->Clear(glGetCurrentContextPPAPI(), mask);
}
-void GL_APIENTRY glClearColor(
- GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+void GL_APIENTRY
+glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
glGetInterfacePPAPI()->ClearColor(
glGetCurrentContextPPAPI(), red, green, blue, alpha);
}
@@ -109,8 +114,8 @@ void GL_APIENTRY glClearStencil(GLint s) {
glGetInterfacePPAPI()->ClearStencil(glGetCurrentContextPPAPI(), s);
}
-void GL_APIENTRY glColorMask(
- GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
+void GL_APIENTRY
+glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
glGetInterfacePPAPI()->ColorMask(
glGetCurrentContextPPAPI(), red, green, blue, alpha);
}
@@ -119,36 +124,82 @@ void GL_APIENTRY glCompileShader(GLuint shader) {
glGetInterfacePPAPI()->CompileShader(glGetCurrentContextPPAPI(), shader);
}
-void GL_APIENTRY glCompressedTexImage2D(
- GLenum target, GLint level, GLenum internalformat, GLsizei width,
- GLsizei height, GLint border, GLsizei imageSize, const void* data) {
- glGetInterfacePPAPI()->CompressedTexImage2D(
- glGetCurrentContextPPAPI(), target, level, internalformat, width, height,
- border, imageSize, data);
-}
-
-void GL_APIENTRY glCompressedTexSubImage2D(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
- GLsizei height, GLenum format, GLsizei imageSize, const void* data) {
- glGetInterfacePPAPI()->CompressedTexSubImage2D(
- glGetCurrentContextPPAPI(), target, level, xoffset, yoffset, width,
- height, format, imageSize, data);
-}
-
-void GL_APIENTRY glCopyTexImage2D(
- GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
- GLsizei width, GLsizei height, GLint border) {
- glGetInterfacePPAPI()->CopyTexImage2D(
- glGetCurrentContextPPAPI(), target, level, internalformat, x, y, width,
- height, border);
-}
-
-void GL_APIENTRY glCopyTexSubImage2D(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y,
- GLsizei width, GLsizei height) {
- glGetInterfacePPAPI()->CopyTexSubImage2D(
- glGetCurrentContextPPAPI(), target, level, xoffset, yoffset, x, y, width,
- height);
+void GL_APIENTRY glCompressedTexImage2D(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLsizei imageSize,
+ const void* data) {
+ glGetInterfacePPAPI()->CompressedTexImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ imageSize,
+ data);
+}
+
+void GL_APIENTRY glCompressedTexSubImage2D(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data) {
+ glGetInterfacePPAPI()->CompressedTexSubImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ imageSize,
+ data);
+}
+
+void GL_APIENTRY glCopyTexImage2D(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border) {
+ glGetInterfacePPAPI()->CopyTexImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ internalformat,
+ x,
+ y,
+ width,
+ height,
+ border);
+}
+
+void GL_APIENTRY glCopyTexSubImage2D(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
+ glGetInterfacePPAPI()->CopyTexSubImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ xoffset,
+ yoffset,
+ x,
+ y,
+ width,
+ height);
}
GLuint GL_APIENTRY glCreateProgram() {
@@ -176,8 +227,7 @@ void GL_APIENTRY glDeleteProgram(GLuint program) {
glGetInterfacePPAPI()->DeleteProgram(glGetCurrentContextPPAPI(), program);
}
-void GL_APIENTRY glDeleteRenderbuffers(
- GLsizei n, const GLuint* renderbuffers) {
+void GL_APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) {
glGetInterfacePPAPI()->DeleteRenderbuffers(
glGetCurrentContextPPAPI(), n, renderbuffers);
}
@@ -213,8 +263,8 @@ void GL_APIENTRY glDisable(GLenum cap) {
}
void GL_APIENTRY glDisableVertexAttribArray(GLuint index) {
- glGetInterfacePPAPI()->DisableVertexAttribArray(
- glGetCurrentContextPPAPI(), index);
+ glGetInterfacePPAPI()->DisableVertexAttribArray(glGetCurrentContextPPAPI(),
+ index);
}
void GL_APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count) {
@@ -222,8 +272,8 @@ void GL_APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count) {
glGetCurrentContextPPAPI(), mode, first, count);
}
-void GL_APIENTRY glDrawElements(
- GLenum mode, GLsizei count, GLenum type, const void* indices) {
+void GL_APIENTRY
+glDrawElements(GLenum mode, GLsizei count, GLenum type, const void* indices) {
glGetInterfacePPAPI()->DrawElements(
glGetCurrentContextPPAPI(), mode, count, type, indices);
}
@@ -233,8 +283,8 @@ void GL_APIENTRY glEnable(GLenum cap) {
}
void GL_APIENTRY glEnableVertexAttribArray(GLuint index) {
- glGetInterfacePPAPI()->EnableVertexAttribArray(
- glGetCurrentContextPPAPI(), index);
+ glGetInterfacePPAPI()->EnableVertexAttribArray(glGetCurrentContextPPAPI(),
+ index);
}
void GL_APIENTRY glFinish() {
@@ -245,20 +295,28 @@ void GL_APIENTRY glFlush() {
glGetInterfacePPAPI()->Flush(glGetCurrentContextPPAPI());
}
-void GL_APIENTRY glFramebufferRenderbuffer(
- GLenum target, GLenum attachment, GLenum renderbuffertarget,
- GLuint renderbuffer) {
- glGetInterfacePPAPI()->FramebufferRenderbuffer(
- glGetCurrentContextPPAPI(), target, attachment, renderbuffertarget,
- renderbuffer);
+void GL_APIENTRY glFramebufferRenderbuffer(GLenum target,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer) {
+ glGetInterfacePPAPI()->FramebufferRenderbuffer(glGetCurrentContextPPAPI(),
+ target,
+ attachment,
+ renderbuffertarget,
+ renderbuffer);
}
-void GL_APIENTRY glFramebufferTexture2D(
- GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
- GLint level) {
- glGetInterfacePPAPI()->FramebufferTexture2D(
- glGetCurrentContextPPAPI(), target, attachment, textarget, texture,
- level);
+void GL_APIENTRY glFramebufferTexture2D(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level) {
+ glGetInterfacePPAPI()->FramebufferTexture2D(glGetCurrentContextPPAPI(),
+ target,
+ attachment,
+ textarget,
+ texture,
+ level);
}
void GL_APIENTRY glFrontFace(GLenum mode) {
@@ -287,24 +345,44 @@ void GL_APIENTRY glGenTextures(GLsizei n, GLuint* textures) {
glGetInterfacePPAPI()->GenTextures(glGetCurrentContextPPAPI(), n, textures);
}
-void GL_APIENTRY glGetActiveAttrib(
- GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
- GLenum* type, char* name) {
- glGetInterfacePPAPI()->GetActiveAttrib(
- glGetCurrentContextPPAPI(), program, index, bufsize, length, size, type,
- name);
-}
-
-void GL_APIENTRY glGetActiveUniform(
- GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
- GLenum* type, char* name) {
- glGetInterfacePPAPI()->GetActiveUniform(
- glGetCurrentContextPPAPI(), program, index, bufsize, length, size, type,
- name);
-}
-
-void GL_APIENTRY glGetAttachedShaders(
- GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) {
+void GL_APIENTRY glGetActiveAttrib(GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
+ glGetInterfacePPAPI()->GetActiveAttrib(glGetCurrentContextPPAPI(),
+ program,
+ index,
+ bufsize,
+ length,
+ size,
+ type,
+ name);
+}
+
+void GL_APIENTRY glGetActiveUniform(GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
+ glGetInterfacePPAPI()->GetActiveUniform(glGetCurrentContextPPAPI(),
+ program,
+ index,
+ bufsize,
+ length,
+ size,
+ type,
+ name);
+}
+
+void GL_APIENTRY glGetAttachedShaders(GLuint program,
+ GLsizei maxcount,
+ GLsizei* count,
+ GLuint* shaders) {
glGetInterfacePPAPI()->GetAttachedShaders(
glGetCurrentContextPPAPI(), program, maxcount, count, shaders);
}
@@ -315,12 +393,11 @@ GLint GL_APIENTRY glGetAttribLocation(GLuint program, const char* name) {
}
void GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean* params) {
- glGetInterfacePPAPI()->GetBooleanv(
- glGetCurrentContextPPAPI(), pname, params);
+ glGetInterfacePPAPI()->GetBooleanv(glGetCurrentContextPPAPI(), pname, params);
}
-void GL_APIENTRY glGetBufferParameteriv(
- GLenum target, GLenum pname, GLint* params) {
+void GL_APIENTRY
+glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) {
glGetInterfacePPAPI()->GetBufferParameteriv(
glGetCurrentContextPPAPI(), target, pname, params);
}
@@ -333,15 +410,16 @@ void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params) {
glGetInterfacePPAPI()->GetFloatv(glGetCurrentContextPPAPI(), pname, params);
}
-void GL_APIENTRY glGetFramebufferAttachmentParameteriv(
- GLenum target, GLenum attachment, GLenum pname, GLint* params) {
+void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint* params) {
glGetInterfacePPAPI()->GetFramebufferAttachmentParameteriv(
glGetCurrentContextPPAPI(), target, attachment, pname, params);
}
void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params) {
- glGetInterfacePPAPI()->GetIntegerv(
- glGetCurrentContextPPAPI(), pname, params);
+ glGetInterfacePPAPI()->GetIntegerv(glGetCurrentContextPPAPI(), pname, params);
}
void GL_APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint* params) {
@@ -349,14 +427,16 @@ void GL_APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint* params) {
glGetCurrentContextPPAPI(), program, pname, params);
}
-void GL_APIENTRY glGetProgramInfoLog(
- GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) {
+void GL_APIENTRY glGetProgramInfoLog(GLuint program,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
glGetInterfacePPAPI()->GetProgramInfoLog(
glGetCurrentContextPPAPI(), program, bufsize, length, infolog);
}
-void GL_APIENTRY glGetRenderbufferParameteriv(
- GLenum target, GLenum pname, GLint* params) {
+void GL_APIENTRY
+glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) {
glGetInterfacePPAPI()->GetRenderbufferParameteriv(
glGetCurrentContextPPAPI(), target, pname, params);
}
@@ -366,20 +446,26 @@ void GL_APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint* params) {
glGetCurrentContextPPAPI(), shader, pname, params);
}
-void GL_APIENTRY glGetShaderInfoLog(
- GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) {
+void GL_APIENTRY glGetShaderInfoLog(GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
glGetInterfacePPAPI()->GetShaderInfoLog(
glGetCurrentContextPPAPI(), shader, bufsize, length, infolog);
}
-void GL_APIENTRY glGetShaderPrecisionFormat(
- GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) {
+void GL_APIENTRY glGetShaderPrecisionFormat(GLenum shadertype,
+ GLenum precisiontype,
+ GLint* range,
+ GLint* precision) {
glGetInterfacePPAPI()->GetShaderPrecisionFormat(
glGetCurrentContextPPAPI(), shadertype, precisiontype, range, precision);
}
-void GL_APIENTRY glGetShaderSource(
- GLuint shader, GLsizei bufsize, GLsizei* length, char* source) {
+void GL_APIENTRY glGetShaderSource(GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* source) {
glGetInterfacePPAPI()->GetShaderSource(
glGetCurrentContextPPAPI(), shader, bufsize, length, source);
}
@@ -388,26 +474,25 @@ const GLubyte* GL_APIENTRY glGetString(GLenum name) {
return glGetInterfacePPAPI()->GetString(glGetCurrentContextPPAPI(), name);
}
-void GL_APIENTRY glGetTexParameterfv(
- GLenum target, GLenum pname, GLfloat* params) {
+void GL_APIENTRY
+glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) {
glGetInterfacePPAPI()->GetTexParameterfv(
glGetCurrentContextPPAPI(), target, pname, params);
}
-void GL_APIENTRY glGetTexParameteriv(
- GLenum target, GLenum pname, GLint* params) {
+void GL_APIENTRY
+glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) {
glGetInterfacePPAPI()->GetTexParameteriv(
glGetCurrentContextPPAPI(), target, pname, params);
}
-void GL_APIENTRY glGetUniformfv(
- GLuint program, GLint location, GLfloat* params) {
+void GL_APIENTRY
+glGetUniformfv(GLuint program, GLint location, GLfloat* params) {
glGetInterfacePPAPI()->GetUniformfv(
glGetCurrentContextPPAPI(), program, location, params);
}
-void GL_APIENTRY glGetUniformiv(
- GLuint program, GLint location, GLint* params) {
+void GL_APIENTRY glGetUniformiv(GLuint program, GLint location, GLint* params) {
glGetInterfacePPAPI()->GetUniformiv(
glGetCurrentContextPPAPI(), program, location, params);
}
@@ -417,20 +502,20 @@ GLint GL_APIENTRY glGetUniformLocation(GLuint program, const char* name) {
glGetCurrentContextPPAPI(), program, name);
}
-void GL_APIENTRY glGetVertexAttribfv(
- GLuint index, GLenum pname, GLfloat* params) {
+void GL_APIENTRY
+glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) {
glGetInterfacePPAPI()->GetVertexAttribfv(
glGetCurrentContextPPAPI(), index, pname, params);
}
-void GL_APIENTRY glGetVertexAttribiv(
- GLuint index, GLenum pname, GLint* params) {
+void GL_APIENTRY
+glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params) {
glGetInterfacePPAPI()->GetVertexAttribiv(
glGetCurrentContextPPAPI(), index, pname, params);
}
-void GL_APIENTRY glGetVertexAttribPointerv(
- GLuint index, GLenum pname, void** pointer) {
+void GL_APIENTRY
+glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer) {
glGetInterfacePPAPI()->GetVertexAttribPointerv(
glGetCurrentContextPPAPI(), index, pname, pointer);
}
@@ -448,8 +533,8 @@ GLboolean GL_APIENTRY glIsEnabled(GLenum cap) {
}
GLboolean GL_APIENTRY glIsFramebuffer(GLuint framebuffer) {
- return glGetInterfacePPAPI()->IsFramebuffer(
- glGetCurrentContextPPAPI(), framebuffer);
+ return glGetInterfacePPAPI()->IsFramebuffer(glGetCurrentContextPPAPI(),
+ framebuffer);
}
GLboolean GL_APIENTRY glIsProgram(GLuint program) {
@@ -457,8 +542,8 @@ GLboolean GL_APIENTRY glIsProgram(GLuint program) {
}
GLboolean GL_APIENTRY glIsRenderbuffer(GLuint renderbuffer) {
- return glGetInterfacePPAPI()->IsRenderbuffer(
- glGetCurrentContextPPAPI(), renderbuffer);
+ return glGetInterfacePPAPI()->IsRenderbuffer(glGetCurrentContextPPAPI(),
+ renderbuffer);
}
GLboolean GL_APIENTRY glIsShader(GLuint shader) {
@@ -486,9 +571,13 @@ void GL_APIENTRY glPolygonOffset(GLfloat factor, GLfloat units) {
glGetCurrentContextPPAPI(), factor, units);
}
-void GL_APIENTRY glReadPixels(
- GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
- void* pixels) {
+void GL_APIENTRY glReadPixels(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ void* pixels) {
glGetInterfacePPAPI()->ReadPixels(
glGetCurrentContextPPAPI(), x, y, width, height, format, type, pixels);
}
@@ -497,8 +586,10 @@ void GL_APIENTRY glReleaseShaderCompiler() {
glGetInterfacePPAPI()->ReleaseShaderCompiler(glGetCurrentContextPPAPI());
}
-void GL_APIENTRY glRenderbufferStorage(
- GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
+void GL_APIENTRY glRenderbufferStorage(GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
glGetInterfacePPAPI()->RenderbufferStorage(
glGetCurrentContextPPAPI(), target, internalformat, width, height);
}
@@ -513,15 +604,19 @@ void GL_APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
glGetCurrentContextPPAPI(), x, y, width, height);
}
-void GL_APIENTRY glShaderBinary(
- GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
- GLsizei length) {
+void GL_APIENTRY glShaderBinary(GLsizei n,
+ const GLuint* shaders,
+ GLenum binaryformat,
+ const void* binary,
+ GLsizei length) {
glGetInterfacePPAPI()->ShaderBinary(
glGetCurrentContextPPAPI(), n, shaders, binaryformat, binary, length);
}
-void GL_APIENTRY glShaderSource(
- GLuint shader, GLsizei count, const char** str, const GLint* length) {
+void GL_APIENTRY glShaderSource(GLuint shader,
+ GLsizei count,
+ const char** str,
+ const GLint* length) {
glGetInterfacePPAPI()->ShaderSource(
glGetCurrentContextPPAPI(), shader, count, str, length);
}
@@ -531,8 +626,8 @@ void GL_APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask) {
glGetCurrentContextPPAPI(), func, ref, mask);
}
-void GL_APIENTRY glStencilFuncSeparate(
- GLenum face, GLenum func, GLint ref, GLuint mask) {
+void GL_APIENTRY
+glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) {
glGetInterfacePPAPI()->StencilFuncSeparate(
glGetCurrentContextPPAPI(), face, func, ref, mask);
}
@@ -551,19 +646,31 @@ void GL_APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
glGetCurrentContextPPAPI(), fail, zfail, zpass);
}
-void GL_APIENTRY glStencilOpSeparate(
- GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
+void GL_APIENTRY
+glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
glGetInterfacePPAPI()->StencilOpSeparate(
glGetCurrentContextPPAPI(), face, fail, zfail, zpass);
}
-void GL_APIENTRY glTexImage2D(
- GLenum target, GLint level, GLint internalformat, GLsizei width,
- GLsizei height, GLint border, GLenum format, GLenum type,
- const void* pixels) {
- glGetInterfacePPAPI()->TexImage2D(
- glGetCurrentContextPPAPI(), target, level, internalformat, width, height,
- border, format, type, pixels);
+void GL_APIENTRY glTexImage2D(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ glGetInterfacePPAPI()->TexImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ pixels);
}
void GL_APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
@@ -571,8 +678,8 @@ void GL_APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
glGetCurrentContextPPAPI(), target, pname, param);
}
-void GL_APIENTRY glTexParameterfv(
- GLenum target, GLenum pname, const GLfloat* params) {
+void GL_APIENTRY
+glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) {
glGetInterfacePPAPI()->TexParameterfv(
glGetCurrentContextPPAPI(), target, pname, params);
}
@@ -582,26 +689,38 @@ void GL_APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param) {
glGetCurrentContextPPAPI(), target, pname, param);
}
-void GL_APIENTRY glTexParameteriv(
- GLenum target, GLenum pname, const GLint* params) {
+void GL_APIENTRY
+glTexParameteriv(GLenum target, GLenum pname, const GLint* params) {
glGetInterfacePPAPI()->TexParameteriv(
glGetCurrentContextPPAPI(), target, pname, params);
}
-void GL_APIENTRY glTexSubImage2D(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
- GLsizei height, GLenum format, GLenum type, const void* pixels) {
- glGetInterfacePPAPI()->TexSubImage2D(
- glGetCurrentContextPPAPI(), target, level, xoffset, yoffset, width,
- height, format, type, pixels);
+void GL_APIENTRY glTexSubImage2D(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ glGetInterfacePPAPI()->TexSubImage2D(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ pixels);
}
void GL_APIENTRY glUniform1f(GLint location, GLfloat x) {
glGetInterfacePPAPI()->Uniform1f(glGetCurrentContextPPAPI(), location, x);
}
-void GL_APIENTRY glUniform1fv(
- GLint location, GLsizei count, const GLfloat* v) {
+void GL_APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat* v) {
glGetInterfacePPAPI()->Uniform1fv(
glGetCurrentContextPPAPI(), location, count, v);
}
@@ -619,8 +738,7 @@ void GL_APIENTRY glUniform2f(GLint location, GLfloat x, GLfloat y) {
glGetInterfacePPAPI()->Uniform2f(glGetCurrentContextPPAPI(), location, x, y);
}
-void GL_APIENTRY glUniform2fv(
- GLint location, GLsizei count, const GLfloat* v) {
+void GL_APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat* v) {
glGetInterfacePPAPI()->Uniform2fv(
glGetCurrentContextPPAPI(), location, count, v);
}
@@ -639,8 +757,7 @@ void GL_APIENTRY glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) {
glGetCurrentContextPPAPI(), location, x, y, z);
}
-void GL_APIENTRY glUniform3fv(
- GLint location, GLsizei count, const GLfloat* v) {
+void GL_APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat* v) {
glGetInterfacePPAPI()->Uniform3fv(
glGetCurrentContextPPAPI(), location, count, v);
}
@@ -655,20 +772,19 @@ void GL_APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint* v) {
glGetCurrentContextPPAPI(), location, count, v);
}
-void GL_APIENTRY glUniform4f(
- GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
+void GL_APIENTRY
+glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
glGetInterfacePPAPI()->Uniform4f(
glGetCurrentContextPPAPI(), location, x, y, z, w);
}
-void GL_APIENTRY glUniform4fv(
- GLint location, GLsizei count, const GLfloat* v) {
+void GL_APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat* v) {
glGetInterfacePPAPI()->Uniform4fv(
glGetCurrentContextPPAPI(), location, count, v);
}
-void GL_APIENTRY glUniform4i(
- GLint location, GLint x, GLint y, GLint z, GLint w) {
+void GL_APIENTRY
+glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
glGetInterfacePPAPI()->Uniform4i(
glGetCurrentContextPPAPI(), location, x, y, z, w);
}
@@ -678,20 +794,26 @@ void GL_APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint* v) {
glGetCurrentContextPPAPI(), location, count, v);
}
-void GL_APIENTRY glUniformMatrix2fv(
- GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+void GL_APIENTRY glUniformMatrix2fv(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
glGetInterfacePPAPI()->UniformMatrix2fv(
glGetCurrentContextPPAPI(), location, count, transpose, value);
}
-void GL_APIENTRY glUniformMatrix3fv(
- GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+void GL_APIENTRY glUniformMatrix3fv(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
glGetInterfacePPAPI()->UniformMatrix3fv(
glGetCurrentContextPPAPI(), location, count, transpose, value);
}
-void GL_APIENTRY glUniformMatrix4fv(
- GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+void GL_APIENTRY glUniformMatrix4fv(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
glGetInterfacePPAPI()->UniformMatrix4fv(
glGetCurrentContextPPAPI(), location, count, transpose, value);
}
@@ -714,8 +836,7 @@ void GL_APIENTRY glVertexAttrib1fv(GLuint indx, const GLfloat* values) {
}
void GL_APIENTRY glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) {
- glGetInterfacePPAPI()->VertexAttrib2f(
- glGetCurrentContextPPAPI(), indx, x, y);
+ glGetInterfacePPAPI()->VertexAttrib2f(glGetCurrentContextPPAPI(), indx, x, y);
}
void GL_APIENTRY glVertexAttrib2fv(GLuint indx, const GLfloat* values) {
@@ -723,8 +844,8 @@ void GL_APIENTRY glVertexAttrib2fv(GLuint indx, const GLfloat* values) {
glGetCurrentContextPPAPI(), indx, values);
}
-void GL_APIENTRY glVertexAttrib3f(
- GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
+void GL_APIENTRY
+glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
glGetInterfacePPAPI()->VertexAttrib3f(
glGetCurrentContextPPAPI(), indx, x, y, z);
}
@@ -734,8 +855,8 @@ void GL_APIENTRY glVertexAttrib3fv(GLuint indx, const GLfloat* values) {
glGetCurrentContextPPAPI(), indx, values);
}
-void GL_APIENTRY glVertexAttrib4f(
- GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
+void GL_APIENTRY
+glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
glGetInterfacePPAPI()->VertexAttrib4f(
glGetCurrentContextPPAPI(), indx, x, y, z, w);
}
@@ -745,9 +866,12 @@ void GL_APIENTRY glVertexAttrib4fv(GLuint indx, const GLfloat* values) {
glGetCurrentContextPPAPI(), indx, values);
}
-void GL_APIENTRY glVertexAttribPointer(
- GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
- const void* ptr) {
+void GL_APIENTRY glVertexAttribPointer(GLuint indx,
+ GLint size,
+ GLenum type,
+ GLboolean normalized,
+ GLsizei stride,
+ const void* ptr) {
glGetInterfacePPAPI()->VertexAttribPointer(
glGetCurrentContextPPAPI(), indx, size, type, normalized, stride, ptr);
}
@@ -757,26 +881,46 @@ void GL_APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
glGetCurrentContextPPAPI(), x, y, width, height);
}
-void GL_APIENTRY glBlitFramebufferEXT(
- GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
- GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
+void GL_APIENTRY glBlitFramebufferEXT(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
const struct PPB_OpenGLES2FramebufferBlit* ext =
glGetFramebufferBlitInterfacePPAPI();
if (ext)
- ext->BlitFramebufferEXT(
- glGetCurrentContextPPAPI(), srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
- dstX1, dstY1, mask, filter);
-}
-
-void GL_APIENTRY glRenderbufferStorageMultisampleEXT(
- GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
- GLsizei height) {
+ ext->BlitFramebufferEXT(glGetCurrentContextPPAPI(),
+ srcX0,
+ srcY0,
+ srcX1,
+ srcY1,
+ dstX0,
+ dstY0,
+ dstX1,
+ dstY1,
+ mask,
+ filter);
+}
+
+void GL_APIENTRY glRenderbufferStorageMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
const struct PPB_OpenGLES2FramebufferMultisample* ext =
glGetFramebufferMultisampleInterfacePPAPI();
if (ext)
- ext->RenderbufferStorageMultisampleEXT(
- glGetCurrentContextPPAPI(), target, samples, internalformat, width,
- height);
+ ext->RenderbufferStorageMultisampleEXT(glGetCurrentContextPPAPI(),
+ target,
+ samples,
+ internalformat,
+ width,
+ height);
}
void GL_APIENTRY glGenQueriesEXT(GLsizei n, GLuint* queries) {
@@ -816,8 +960,8 @@ void GL_APIENTRY glGetQueryivEXT(GLenum target, GLenum pname, GLint* params) {
ext->GetQueryivEXT(glGetCurrentContextPPAPI(), target, pname, params);
}
-void GL_APIENTRY glGetQueryObjectuivEXT(
- GLuint id, GLenum pname, GLuint* params) {
+void GL_APIENTRY
+glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) {
const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
if (ext)
ext->GetQueryObjectuivEXT(glGetCurrentContextPPAPI(), id, pname, params);
@@ -831,8 +975,10 @@ GLboolean GL_APIENTRY glEnableFeatureCHROMIUM(const char* feature) {
return 0;
}
-void* GL_APIENTRY glMapBufferSubDataCHROMIUM(
- GLuint target, GLintptr offset, GLsizeiptr size, GLenum access) {
+void* GL_APIENTRY glMapBufferSubDataCHROMIUM(GLuint target,
+ GLintptr offset,
+ GLsizeiptr size,
+ GLenum access) {
const struct PPB_OpenGLES2ChromiumMapSub* ext =
glGetChromiumMapSubInterfacePPAPI();
if (ext)
@@ -848,15 +994,28 @@ void GL_APIENTRY glUnmapBufferSubDataCHROMIUM(const void* mem) {
ext->UnmapBufferSubDataCHROMIUM(glGetCurrentContextPPAPI(), mem);
}
-void* GL_APIENTRY glMapTexSubImage2DCHROMIUM(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
- GLsizei height, GLenum format, GLenum type, GLenum access) {
+void* GL_APIENTRY glMapTexSubImage2DCHROMIUM(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLenum access) {
const struct PPB_OpenGLES2ChromiumMapSub* ext =
glGetChromiumMapSubInterfacePPAPI();
if (ext)
- return ext->MapTexSubImage2DCHROMIUM(
- glGetCurrentContextPPAPI(), target, level, xoffset, yoffset, width,
- height, format, type, access);
+ return ext->MapTexSubImage2DCHROMIUM(glGetCurrentContextPPAPI(),
+ target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ type,
+ access);
return 0;
}
@@ -867,8 +1026,10 @@ void GL_APIENTRY glUnmapTexSubImage2DCHROMIUM(const void* mem) {
ext->UnmapTexSubImage2DCHROMIUM(glGetCurrentContextPPAPI(), mem);
}
-void GL_APIENTRY glDrawArraysInstancedANGLE(
- GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode,
+ GLint first,
+ GLsizei count,
+ GLsizei primcount) {
const struct PPB_OpenGLES2InstancedArrays* ext =
glGetInstancedArraysInterfacePPAPI();
if (ext)
@@ -876,9 +1037,11 @@ void GL_APIENTRY glDrawArraysInstancedANGLE(
glGetCurrentContextPPAPI(), mode, first, count, primcount);
}
-void GL_APIENTRY glDrawElementsInstancedANGLE(
- GLenum mode, GLsizei count, GLenum type, const void* indices,
- GLsizei primcount) {
+void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
const struct PPB_OpenGLES2InstancedArrays* ext =
glGetInstancedArraysInterfacePPAPI();
if (ext)
@@ -893,3 +1056,9 @@ void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
ext->VertexAttribDivisorANGLE(glGetCurrentContextPPAPI(), index, divisor);
}
+void GL_APIENTRY glDrawBuffersEXT(GLsizei count, const GLenum* bufs) {
+ const struct PPB_OpenGLES2DrawBuffers_Dev* ext =
+ glGetDrawBuffersInterfacePPAPI();
+ if (ext)
+ ext->DrawBuffersEXT(glGetCurrentContextPPAPI(), count, bufs);
+}
diff --git a/chromium/ppapi/lib/gl/include/GLES2/gl2ext.h b/chromium/ppapi/lib/gl/include/GLES2/gl2ext.h
index ce2cbf05471..d82e8385e28 100644
--- a/chromium/ppapi/lib/gl/include/GLES2/gl2ext.h
+++ b/chromium/ppapi/lib/gl/include/GLES2/gl2ext.h
@@ -1876,16 +1876,6 @@ typedef void (GL_APIENTRYP PFNGLPOSTSUBBUFFERCHROMIUM) (GLint x, GLint y, GLint
#endif
#endif
-/* GL_CHROMIUM_front_buffer_cached */
-/* This extension implies that there is a cache of the front buffer of the
- * surface supporting this extension (e.g. on OSX the front buffer
- * is often backed by an IOSurface). Hence we do not need to redraw
- * (via a SwapBuffers) in order to display the last frame.
- */
-#ifndef GL_CHROMIUM_front_buffer_cached
-#define GL_CHROMIUM_front_buffer_cached 1
-#endif
-
/* GL_ARB_robustness */
/* This extension is subsetted for the moment, incorporating only the
* enums necessary to describe the reasons that we might encounter for
diff --git a/chromium/ppapi/lib/gl/include/KHR/khrplatform.h b/chromium/ppapi/lib/gl/include/KHR/khrplatform.h
index acf43bc5cee..1eb0b483af7 100644
--- a/chromium/ppapi/lib/gl/include/KHR/khrplatform.h
+++ b/chromium/ppapi/lib/gl/include/KHR/khrplatform.h
@@ -26,7 +26,7 @@
/* Khronos platform-specific types and definitions.
*
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
+ * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
*
* Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos
@@ -231,10 +231,23 @@ typedef signed char khronos_int8_t;
typedef unsigned char khronos_uint8_t;
typedef signed short int khronos_int16_t;
typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef _WIN64
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
typedef signed long int khronos_intptr_t;
typedef unsigned long int khronos_uintptr_t;
typedef signed long int khronos_ssize_t;
typedef unsigned long int khronos_usize_t;
+#endif
#if KHRONOS_SUPPORT_FLOAT
/*
diff --git a/chromium/ppapi/nacl_irt/DEPS b/chromium/ppapi/nacl_irt/DEPS
new file mode 100644
index 00000000000..8e4bc776b36
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/DEPS
@@ -0,0 +1,16 @@
+include_rules = [
+ "+components/tracing",
+
+ # We don't want the proxy to depend on the C++ layer, which is appropriate
+ # for plugins only.
+ "-ppapi/cpp",
+
+ # The untrusted build references the NaCl integrated runtime (IRT).
+ "+native_client/src/public",
+ "+native_client/src/shared/srpc/nacl_srpc.h",
+ "+native_client/src/untrusted/irt/irt.h",
+ "+native_client/src/untrusted/irt/irt_private.h",
+ # The IRT also needs to know the errno and sysconf enums.
+ "+native_client/src/trusted/service_runtime/include/sys/errno.h",
+ "+native_client/src/trusted/service_runtime/include/sys/unistd.h",
+]
diff --git a/chromium/ppapi/nacl_irt/irt_manifest.h b/chromium/ppapi/nacl_irt/irt_manifest.h
new file mode 100644
index 00000000000..b1e09235747
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/irt_manifest.h
@@ -0,0 +1,21 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_IRT_MANIFEST_H_
+#define PPAPI_NACL_IRT_IRT_MANIFEST_H_
+
+#include "ppapi/proxy/ppapi_proxy_export.h"
+
+namespace ppapi {
+
+// The implementation of irt_open_resource() based on ManifestService.
+// This communicates with the renderer process via Chrome IPC to obtain the
+// read-only file descriptor of the resource specified in the manifest file
+// with the key |file| in files section. Returns 0 on success, or error number
+// on failure. See also irt_open_resource()'s comment.
+PPAPI_PROXY_EXPORT int IrtOpenResource(const char* file, int* fd);
+
+} // namespace ppapi
+
+#endif // PPAPI_NACL_IRT_IRT_MANIFEST_H_
diff --git a/chromium/ppapi/nacl_irt/irt_ppapi.cc b/chromium/ppapi/nacl_irt/irt_ppapi.cc
new file mode 100644
index 00000000000..1d41f518c4f
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/irt_ppapi.cc
@@ -0,0 +1,64 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "native_client/src/public/irt_core.h"
+#include "native_client/src/trusted/service_runtime/include/sys/unistd.h"
+#include "native_client/src/untrusted/irt/irt.h"
+#include "native_client/src/untrusted/irt/irt_private.h"
+#include "ppapi/nacl_irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/plugin_main.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
+
+static struct PP_StartFunctions g_pp_functions;
+
+int irt_ppapi_start(const struct PP_StartFunctions* funcs) {
+ // Disable NaCl's open_resource() interface on this thread.
+ g_is_main_thread = 1;
+
+ g_pp_functions = *funcs;
+ return PpapiPluginMain();
+}
+
+int32_t PPP_InitializeModule(PP_Module module_id,
+ PPB_GetInterface get_browser_interface) {
+ return g_pp_functions.PPP_InitializeModule(module_id, get_browser_interface);
+}
+
+void PPP_ShutdownModule(void) {
+ g_pp_functions.PPP_ShutdownModule();
+}
+
+const void* PPP_GetInterface(const char* interface_name) {
+ return g_pp_functions.PPP_GetInterface(interface_name);
+}
+
+static const struct nacl_irt_ppapihook nacl_irt_ppapihook = {
+ irt_ppapi_start,
+ PpapiPluginRegisterThreadCreator,
+};
+
+static int ppapihook_pnacl_private_filter(void) {
+ int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE);
+ if (pnacl_mode == -1)
+ return 0;
+ return pnacl_mode;
+}
+
+static const struct nacl_irt_interface irt_interfaces[] = {
+ { NACL_IRT_PPAPIHOOK_v0_1, &nacl_irt_ppapihook, sizeof(nacl_irt_ppapihook),
+ NULL },
+ { NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1,
+ &nacl_irt_ppapihook_pnacl_private, sizeof(nacl_irt_ppapihook_pnacl_private),
+ ppapihook_pnacl_private_filter },
+};
+
+size_t chrome_irt_query(const char* interface_ident,
+ void* table, size_t tablesize) {
+ size_t result = nacl_irt_query_core(interface_ident, table, tablesize);
+ if (result != 0)
+ return result;
+ return nacl_irt_query_list(interface_ident, table, tablesize,
+ irt_interfaces, sizeof(irt_interfaces));
+}
diff --git a/chromium/ppapi/nacl_irt/irt_ppapi.h b/chromium/ppapi/nacl_irt/irt_ppapi.h
new file mode 100644
index 00000000000..bc2e74c7494
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/irt_ppapi.h
@@ -0,0 +1,13 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_IRT_PPAPI_H_
+#define PPAPI_NACL_IRT_IRT_PPAPI_H_
+
+extern "C" int irt_ppapi_start(const struct PP_StartFunctions* funcs);
+
+size_t chrome_irt_query(const char* interface_ident,
+ void* table, size_t tablesize);
+
+#endif // PPAPI_NACL_IRT_IRT_PPAPI_H_
diff --git a/chromium/ppapi/nacl_irt/irt_start.cc b/chromium/ppapi/nacl_irt/irt_start.cc
new file mode 100644
index 00000000000..a7c12e6c312
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/irt_start.cc
@@ -0,0 +1,26 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/at_exit.h"
+#include "native_client/src/public/chrome_main.h"
+#include "native_client/src/public/irt_core.h"
+#include "ppapi/nacl_irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/plugin_startup.h"
+
+void nacl_irt_start(uint32_t* info) {
+ nacl_irt_init(info);
+
+ // Though it isn't referenced here, we must instantiate an AtExitManager.
+ base::AtExitManager exit_manager;
+
+ // In SFI mode, the FDs of IPC channels are NACL_CHROME_DESC_BASE and its
+ // successor, which is set in nacl_listener.cc.
+ ppapi::SetIPCFileDescriptors(
+ NACL_CHROME_DESC_BASE,
+ NACL_CHROME_DESC_BASE + 1,
+ -1); // Currently manifest service is disabled on NaCl in SFI mode.
+ ppapi::StartUpPlugin();
+
+ nacl_irt_enter_user_code(info, chrome_irt_query);
+}
diff --git a/chromium/ppapi/nacl_irt/manifest_service.cc b/chromium/ppapi/nacl_irt/manifest_service.cc
new file mode 100644
index 00000000000..441c401e923
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/manifest_service.cc
@@ -0,0 +1,112 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/nacl_irt/manifest_service.h"
+
+#include "base/message_loop/message_loop_proxy.h"
+#include "ipc/ipc_channel_handle.h"
+#include "ipc/ipc_channel_proxy.h"
+#include "ipc/ipc_sync_message_filter.h"
+#include "native_client/src/trusted/service_runtime/include/sys/errno.h"
+#include "ppapi/nacl_irt/irt_manifest.h"
+#include "ppapi/nacl_irt/plugin_startup.h"
+#include "ppapi/proxy/ppapi_messages.h"
+
+namespace ppapi {
+
+const char kFilePrefix[] = "files/";
+
+// IPC channel is asynchronously set up. So, the NaCl process may try to
+// send a OpenResource message to the host before the connection is
+// established. In such a case, it is necessary to wait for the set up
+// completion.
+class ManifestMessageFilter : public IPC::SyncMessageFilter {
+ public:
+ ManifestMessageFilter(base::WaitableEvent* shutdown_event)
+ : SyncMessageFilter(shutdown_event),
+ connected_event_(
+ true /* manual_reset */, false /* initially_signaled */) {
+ }
+
+ virtual bool Send(IPC::Message* message) OVERRIDE {
+ // Wait until set up is actually done.
+ connected_event_.Wait();
+ return SyncMessageFilter::Send(message);
+ }
+
+ // When set up is done, OnFilterAdded is called on IO thread. Unblocks the
+ // Send().
+ virtual void OnFilterAdded(IPC::Sender* sender) OVERRIDE {
+ SyncMessageFilter::OnFilterAdded(sender);
+ connected_event_.Signal();
+ }
+
+ // If an error is found, unblocks the Send(), too, to return an error.
+ virtual void OnChannelError() OVERRIDE {
+ SyncMessageFilter::OnChannelError();
+ connected_event_.Signal();
+ }
+
+ // Similar to OnChannelError, unblocks the Send() on the channel closing.
+ virtual void OnChannelClosing() OVERRIDE {
+ SyncMessageFilter::OnChannelClosing();
+ connected_event_.Signal();
+ }
+
+ private:
+ base::WaitableEvent connected_event_;
+
+ DISALLOW_COPY_AND_ASSIGN(ManifestMessageFilter);
+};
+
+ManifestService::ManifestService(
+ const IPC::ChannelHandle& handle,
+ scoped_refptr<base::MessageLoopProxy> io_message_loop,
+ base::WaitableEvent* shutdown_event) {
+ filter_ = new ManifestMessageFilter(shutdown_event);
+ channel_ = IPC::ChannelProxy::Create(handle,
+ IPC::Channel::MODE_SERVER,
+ NULL, // Listener
+ io_message_loop);
+ channel_->AddFilter(filter_.get());
+}
+
+ManifestService::~ManifestService() {
+}
+
+void ManifestService::StartupInitializationComplete() {
+ filter_->Send(new PpapiHostMsg_StartupInitializationComplete);
+}
+
+bool ManifestService::OpenResource(const char* file, int* fd) {
+ // OpenResource will return INVALID SerializedHandle, if it is not supported.
+ // Specifically, PNaCl doesn't support open resource.
+ ppapi::proxy::SerializedHandle ipc_fd;
+ if (!filter_->Send(new PpapiHostMsg_OpenResource(
+ std::string(kFilePrefix) + file, &ipc_fd)) ||
+ !ipc_fd.is_file()) {
+ LOG(ERROR) << "ManifestService::OpenResource failed:" << file;
+ *fd = -1;
+ return false;
+ }
+
+ *fd = ipc_fd.descriptor().fd;
+ return true;
+}
+
+int IrtOpenResource(const char* file, int* fd) {
+ // Remove leading '/' character.
+ if (file[0] == '/')
+ ++file;
+
+ ManifestService* manifest_service = GetManifestService();
+ if (manifest_service == NULL ||
+ !manifest_service->OpenResource(file, fd)) {
+ return NACL_ABI_EIO;
+ }
+
+ return (*fd == -1) ? NACL_ABI_ENOENT : 0;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/nacl_irt/manifest_service.h b/chromium/ppapi/nacl_irt/manifest_service.h
new file mode 100644
index 00000000000..ce414cc0182
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/manifest_service.h
@@ -0,0 +1,44 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
+#define PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
+
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+
+namespace base {
+class MessageLoopProxy;
+class WaitableEvent;
+} // namespace base
+
+namespace IPC {
+struct ChannelHandle;
+class ChannelProxy;
+class SyncMessageFilter;
+} // namespace IPC
+
+namespace ppapi {
+
+class ManifestService {
+ public:
+ ManifestService(const IPC::ChannelHandle& handle,
+ scoped_refptr<base::MessageLoopProxy> io_message_loop,
+ base::WaitableEvent* shutdown_event);
+ ~ManifestService();
+
+ void StartupInitializationComplete();
+ bool OpenResource(const char* file, int* fd);
+
+ private:
+ scoped_ptr<IPC::ChannelProxy> channel_;
+ scoped_refptr<IPC::SyncMessageFilter> filter_;
+
+ DISALLOW_COPY_AND_ASSIGN(ManifestService);
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_NACL_IRT_MANIFEST_SERVICE_H_
diff --git a/chromium/ppapi/nacl_irt/plugin_main.cc b/chromium/ppapi/nacl_irt/plugin_main.cc
new file mode 100644
index 00000000000..668f67a3b0e
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/plugin_main.cc
@@ -0,0 +1,60 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/nacl_irt/plugin_main.h"
+
+#include "build/build_config.h"
+// Need to include this before most other files because it defines
+// IPC_MESSAGE_LOG_ENABLED. We need to use it to define
+// IPC_MESSAGE_MACROS_LOG_ENABLED so ppapi_messages.h will generate the
+// ViewMsgLog et al. functions.
+
+#include "base/message_loop/message_loop.h"
+#include "base/threading/thread.h"
+#include "ipc/ipc_logging.h"
+#include "ppapi/nacl_irt/plugin_startup.h"
+#include "ppapi/nacl_irt/ppapi_dispatcher.h"
+#include "ppapi/proxy/plugin_globals.h"
+#include "ppapi/shared_impl/ppb_audio_shared.h"
+
+#if defined(__native_client__)
+#include "native_client/src/shared/srpc/nacl_srpc.h"
+#endif
+
+void PpapiPluginRegisterThreadCreator(
+ const struct PP_ThreadFunctions* thread_functions) {
+ // Initialize all classes that need to create threads that call back into
+ // user code.
+ ppapi::PPB_Audio_Shared::SetThreadFunctions(thread_functions);
+}
+
+int PpapiPluginMain() {
+ base::MessageLoop loop;
+ ppapi::proxy::PluginGlobals plugin_globals;
+
+#if defined(__native_client__)
+ // Currently on non-SFI mode, we don't use SRPC server on plugin.
+ // TODO(hidehiko): Make sure this SRPC is actually used on SFI-mode.
+
+ // Start up the SRPC server on another thread. Otherwise, when it blocks
+ // on an RPC, the PPAPI proxy will hang. Do this before we initialize the
+ // module and start the PPAPI proxy so that the NaCl plugin can continue
+ // loading the app.
+ static struct NaClSrpcHandlerDesc srpc_methods[] = { { NULL, NULL } };
+ if (!NaClSrpcAcceptClientOnThread(srpc_methods)) {
+ return 1;
+ }
+#endif
+
+ ppapi::PpapiDispatcher ppapi_dispatcher(
+ ppapi::GetIOThread()->message_loop_proxy(),
+ ppapi::GetShutdownEvent(),
+ ppapi::GetBrowserIPCFileDescriptor(),
+ ppapi::GetRendererIPCFileDescriptor());
+ plugin_globals.set_plugin_proxy_delegate(&ppapi_dispatcher);
+
+ loop.Run();
+
+ return 0;
+}
diff --git a/chromium/ppapi/nacl_irt/plugin_main.h b/chromium/ppapi/nacl_irt/plugin_main.h
new file mode 100644
index 00000000000..75fc1124aff
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/plugin_main.h
@@ -0,0 +1,25 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_PLUGIN_MAIN_H_
+#define PPAPI_NACL_IRT_PLUGIN_MAIN_H_
+
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// The entry point for the main thread of the PPAPI plugin process.
+PPAPI_PROXY_EXPORT int PpapiPluginMain(void);
+
+PPAPI_PROXY_EXPORT void PpapiPluginRegisterThreadCreator(
+ const struct PP_ThreadFunctions* new_funcs);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // PPAPI_NACL_IRT_PLUGIN_MAIN_H_
diff --git a/chromium/ppapi/nacl_irt/plugin_startup.cc b/chromium/ppapi/nacl_irt/plugin_startup.cc
new file mode 100644
index 00000000000..2061fc831ec
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/plugin_startup.cc
@@ -0,0 +1,115 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/nacl_irt/plugin_startup.h"
+
+#include "base/bind.h"
+#include "base/file_descriptor_posix.h"
+#include "base/logging.h"
+#include "base/synchronization/waitable_event.h"
+#include "base/threading/thread.h"
+#include "ipc/ipc_channel_handle.h"
+#include "ppapi/nacl_irt/manifest_service.h"
+#include "ppapi/shared_impl/ppb_audio_shared.h"
+
+namespace ppapi {
+namespace {
+
+int g_nacl_browser_ipc_fd = -1;
+int g_nacl_renderer_ipc_fd = -1;
+int g_manifest_service_fd = -1;
+
+base::WaitableEvent* g_shutdown_event = NULL;
+base::Thread* g_io_thread = NULL;
+ManifestService* g_manifest_service = NULL;
+
+// Creates the manifest service on IO thread so that its Listener's thread and
+// IO thread are shared. Upon completion of the manifest service creation,
+// event is signaled.
+void StartUpManifestServiceOnIOThread(base::WaitableEvent* event) {
+ // The start up must be called only once.
+ DCHECK(!g_manifest_service);
+ // manifest_service_fd must be set.
+ DCHECK_NE(g_manifest_service_fd, -1);
+ // IOThread and shutdown event must be initialized in advance.
+ DCHECK(g_io_thread);
+ DCHECK(g_shutdown_event);
+
+ g_manifest_service = new ManifestService(
+ IPC::ChannelHandle(
+ "NaCl IPC", base::FileDescriptor(g_manifest_service_fd, false)),
+ g_io_thread->message_loop_proxy(),
+ g_shutdown_event);
+ event->Signal();
+}
+
+} // namespace
+
+void SetIPCFileDescriptors(
+ int browser_ipc_fd, int renderer_ipc_fd, int manifest_service_fd) {
+ // The initialization must be only once.
+ DCHECK_EQ(g_nacl_browser_ipc_fd, -1);
+ DCHECK_EQ(g_nacl_renderer_ipc_fd, -1);
+ DCHECK_EQ(g_manifest_service_fd, -1);
+ g_nacl_browser_ipc_fd = browser_ipc_fd;
+ g_nacl_renderer_ipc_fd = renderer_ipc_fd;
+ g_manifest_service_fd = manifest_service_fd;
+}
+
+void StartUpPlugin() {
+ // The start up must be called only once.
+ DCHECK(!g_shutdown_event);
+ DCHECK(!g_io_thread);
+
+ g_shutdown_event = new base::WaitableEvent(true, false);
+ g_io_thread = new base::Thread("Chrome_NaClIOThread");
+ g_io_thread->StartWithOptions(
+ base::Thread::Options(base::MessageLoop::TYPE_IO, 0));
+
+ if (g_manifest_service_fd != -1) {
+ // Manifest service must be created on IOThread so that the main message
+ // handling will be done on the thread, which has a message loop
+ // even before irt_ppapi_start invocation.
+ // TODO(hidehiko,dmichael): This works, but is probably not well designed
+ // usage. Once a better approach is made, replace this by that way.
+ // (crbug.com/364241).
+ base::WaitableEvent event(true, false);
+ g_io_thread->message_loop_proxy()->PostTask(
+ FROM_HERE,
+ base::Bind(StartUpManifestServiceOnIOThread, &event));
+ event.Wait();
+ }
+
+ PPB_Audio_Shared::SetNaClMode();
+}
+
+int GetBrowserIPCFileDescriptor() {
+ // The descriptor must be initialized in advance.
+ DCHECK_NE(g_nacl_browser_ipc_fd, -1);
+ return g_nacl_browser_ipc_fd;
+}
+
+int GetRendererIPCFileDescriptor() {
+ // The descriptor must be initialized in advance.
+ DCHECK_NE(g_nacl_renderer_ipc_fd, -1);
+ return g_nacl_renderer_ipc_fd;
+}
+
+base::WaitableEvent* GetShutdownEvent() {
+ // The shutdown event must be initialized in advance.
+ DCHECK(g_shutdown_event);
+ return g_shutdown_event;
+}
+
+base::Thread* GetIOThread() {
+ // The IOThread must be initialized in advance.
+ DCHECK(g_io_thread);
+ return g_io_thread;
+}
+
+ManifestService* GetManifestService() {
+ return g_manifest_service;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/nacl_irt/plugin_startup.h b/chromium/ppapi/nacl_irt/plugin_startup.h
new file mode 100644
index 00000000000..ea14836e60e
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/plugin_startup.h
@@ -0,0 +1,51 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
+#define PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
+
+#include "ppapi/proxy/ppapi_proxy_export.h"
+
+namespace base {
+class Thread;
+class WaitableEvent;
+} // namespace base
+
+namespace ppapi {
+
+class ManifestService;
+
+// Sets the IPC channels for the browser and the renderer by the given FD
+// numbers. This will be used for non-SFI mode. Must be called before
+// PpapiPluginMain is called.
+PPAPI_PROXY_EXPORT void SetIPCFileDescriptors(
+ int browser_ipc_fd, int renderer_ipc_fd, int manifest_service_fd);
+
+// Runs start up procedure for the plugin.
+// Specifically, start background IO thread for IPC, and prepare
+// shutdown event instance.
+PPAPI_PROXY_EXPORT void StartUpPlugin();
+
+// Returns IPC file descriptor for PPAPI to the browser.
+int GetBrowserIPCFileDescriptor();
+
+// Returns IPC file descriptor for PPAPI to the renderer.
+int GetRendererIPCFileDescriptor();
+
+// Returns the shutdown event instance for the plugin.
+// Must be called after StartUpPlugin().
+base::WaitableEvent* GetShutdownEvent();
+
+// Returns the IOThread for the plugin. Must be called after StartUpPlugin().
+base::Thread* GetIOThread();
+
+// Returns the ManifestService interface. To use this, manifest_service_fd
+// needs to be set via SetIPCFileDescriptors. Must be called after
+// StartUpPlugin().
+// If not available, returns NULL.
+ManifestService* GetManifestService();
+
+} // namespace ppapi
+
+#endif // PPAPI_NACL_IRT_PLUGIN_STARTUP_H_
diff --git a/chromium/ppapi/nacl_irt/ppapi_dispatcher.cc b/chromium/ppapi/nacl_irt/ppapi_dispatcher.cc
new file mode 100644
index 00000000000..0600fc19a27
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/ppapi_dispatcher.cc
@@ -0,0 +1,226 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/nacl_irt/ppapi_dispatcher.h"
+
+#include <map>
+#include <set>
+
+#include "build/build_config.h"
+// Need to include this before most other files because it defines
+// IPC_MESSAGE_LOG_ENABLED. We need to use it to define
+// IPC_MESSAGE_MACROS_LOG_ENABLED so ppapi_messages.h will generate the
+// ViewMsgLog et al. functions.
+
+#include "base/command_line.h"
+#include "base/memory/ref_counted.h"
+#include "base/message_loop/message_loop.h"
+#include "base/synchronization/waitable_event.h"
+#include "components/tracing/child_trace_message_filter.h"
+#include "ipc/ipc_channel_handle.h"
+#include "ipc/ipc_logging.h"
+#include "ipc/ipc_message.h"
+#include "ppapi/c/ppp.h"
+#include "ppapi/c/ppp_instance.h"
+#include "ppapi/nacl_irt/manifest_service.h"
+#include "ppapi/nacl_irt/plugin_startup.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
+#include "ppapi/proxy/plugin_globals.h"
+#include "ppapi/proxy/plugin_message_filter.h"
+#include "ppapi/proxy/plugin_proxy_delegate.h"
+#include "ppapi/proxy/resource_reply_thread_registrar.h"
+
+#if defined(IPC_MESSAGE_LOG_ENABLED)
+#include "base/containers/hash_tables.h"
+
+LogFunctionMap g_log_function_mapping;
+
+#define IPC_MESSAGE_MACROS_LOG_ENABLED
+#define IPC_LOG_TABLE_ADD_ENTRY(msg_id, logger) \
+ g_log_function_mapping[msg_id] = logger
+
+#endif
+#include "ppapi/proxy/ppapi_messages.h"
+
+namespace ppapi {
+
+PpapiDispatcher::PpapiDispatcher(scoped_refptr<base::MessageLoopProxy> io_loop,
+ base::WaitableEvent* shutdown_event,
+ int browser_ipc_fd,
+ int renderer_ipc_fd)
+ : next_plugin_dispatcher_id_(0),
+ message_loop_(io_loop),
+ shutdown_event_(shutdown_event),
+ renderer_ipc_fd_(renderer_ipc_fd) {
+#if defined(IPC_MESSAGE_LOG_ENABLED)
+ IPC::Logging::set_log_function_map(&g_log_function_mapping);
+#endif
+
+ IPC::ChannelHandle channel_handle(
+ "NaCl IPC", base::FileDescriptor(browser_ipc_fd, false));
+
+ // Delay initializing the SyncChannel until after we add filters. This
+ // ensures that the filters won't miss any messages received by
+ // the channel.
+ channel_ =
+ IPC::SyncChannel::Create(this, GetIPCMessageLoop(), GetShutdownEvent());
+ channel_->AddFilter(new proxy::PluginMessageFilter(
+ NULL, proxy::PluginGlobals::Get()->resource_reply_thread_registrar()));
+ channel_->AddFilter(
+ new tracing::ChildTraceMessageFilter(message_loop_.get()));
+ channel_->Init(channel_handle, IPC::Channel::MODE_SERVER, true);
+}
+
+base::MessageLoopProxy* PpapiDispatcher::GetIPCMessageLoop() {
+ return message_loop_.get();
+}
+
+base::WaitableEvent* PpapiDispatcher::GetShutdownEvent() {
+ return shutdown_event_;
+}
+
+IPC::PlatformFileForTransit PpapiDispatcher::ShareHandleWithRemote(
+ base::PlatformFile handle,
+ base::ProcessId peer_pid,
+ bool should_close_source) {
+ return IPC::InvalidPlatformFileForTransit();
+}
+
+std::set<PP_Instance>* PpapiDispatcher::GetGloballySeenInstanceIDSet() {
+ return &instances_;
+}
+
+uint32 PpapiDispatcher::Register(proxy::PluginDispatcher* plugin_dispatcher) {
+ if (!plugin_dispatcher ||
+ plugin_dispatchers_.size() >= std::numeric_limits<uint32>::max()) {
+ return 0;
+ }
+
+ uint32 id = 0;
+ do {
+ // Although it is unlikely, make sure that we won't cause any trouble
+ // when the counter overflows.
+ id = next_plugin_dispatcher_id_++;
+ } while (id == 0 ||
+ plugin_dispatchers_.find(id) != plugin_dispatchers_.end());
+ plugin_dispatchers_[id] = plugin_dispatcher;
+ return id;
+}
+
+void PpapiDispatcher::Unregister(uint32 plugin_dispatcher_id) {
+ plugin_dispatchers_.erase(plugin_dispatcher_id);
+}
+
+IPC::Sender* PpapiDispatcher::GetBrowserSender() {
+ return this;
+}
+
+std::string PpapiDispatcher::GetUILanguage() {
+ NOTIMPLEMENTED();
+ return std::string();
+}
+
+void PpapiDispatcher::PreCacheFont(const void* logfontw) {
+ NOTIMPLEMENTED();
+}
+
+void PpapiDispatcher::SetActiveURL(const std::string& url) {
+ NOTIMPLEMENTED();
+}
+
+PP_Resource PpapiDispatcher::CreateBrowserFont(
+ proxy::Connection connection,
+ PP_Instance instance,
+ const PP_BrowserFont_Trusted_Description& desc,
+ const Preferences& prefs) {
+ NOTIMPLEMENTED();
+ return 0;
+}
+
+bool PpapiDispatcher::OnMessageReceived(const IPC::Message& msg) {
+ IPC_BEGIN_MESSAGE_MAP(PpapiDispatcher, msg)
+ IPC_MESSAGE_HANDLER(PpapiMsg_InitializeNaClDispatcher,
+ OnMsgInitializeNaClDispatcher)
+ // All other messages are simply forwarded to a PluginDispatcher.
+ IPC_MESSAGE_UNHANDLED(OnPluginDispatcherMessageReceived(msg))
+ IPC_END_MESSAGE_MAP()
+ return true;
+}
+
+void PpapiDispatcher::OnChannelError() {
+ exit(1);
+}
+
+bool PpapiDispatcher::Send(IPC::Message* msg) {
+ return channel_->Send(msg);
+}
+
+void PpapiDispatcher::OnMsgInitializeNaClDispatcher(
+ const PpapiNaClPluginArgs& args) {
+ static bool command_line_and_logging_initialized = false;
+ if (command_line_and_logging_initialized) {
+ LOG(FATAL) << "InitializeNaClDispatcher must be called once per plugin.";
+ return;
+ }
+
+ command_line_and_logging_initialized = true;
+ CommandLine::Init(0, NULL);
+ for (size_t i = 0; i < args.switch_names.size(); ++i) {
+ DCHECK(i < args.switch_values.size());
+ CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+ args.switch_names[i], args.switch_values[i]);
+ }
+ logging::LoggingSettings settings;
+ settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
+ logging::InitLogging(settings);
+
+ proxy::PluginGlobals::Get()->set_keepalive_throttle_interval_milliseconds(
+ args.keepalive_throttle_interval_milliseconds);
+
+ // Tell the process-global GetInterface which interfaces it can return to the
+ // plugin.
+ proxy::InterfaceList::SetProcessGlobalPermissions(args.permissions);
+
+ int32_t error = ::PPP_InitializeModule(
+ 0 /* module */,
+ &proxy::PluginDispatcher::GetBrowserInterface);
+ if (error)
+ ::exit(error);
+
+ proxy::PluginDispatcher* dispatcher =
+ new proxy::PluginDispatcher(::PPP_GetInterface, args.permissions,
+ args.off_the_record);
+ IPC::ChannelHandle channel_handle(
+ "nacl",
+ base::FileDescriptor(renderer_ipc_fd_, false));
+ if (!dispatcher->InitPluginWithChannel(this, base::kNullProcessId,
+ channel_handle, false)) {
+ delete dispatcher;
+ return;
+ }
+ // From here, the dispatcher will manage its own lifetime according to the
+ // lifetime of the attached channel.
+
+ // Notify the renderer process, if necessary.
+ ManifestService* manifest_service = GetManifestService();
+ if (manifest_service)
+ manifest_service->StartupInitializationComplete();
+}
+
+void PpapiDispatcher::OnPluginDispatcherMessageReceived(
+ const IPC::Message& msg) {
+ // The first parameter should be a plugin dispatcher ID.
+ PickleIterator iter(msg);
+ uint32 id = 0;
+ if (!msg.ReadUInt32(&iter, &id)) {
+ NOTREACHED();
+ return;
+ }
+ std::map<uint32, proxy::PluginDispatcher*>::iterator dispatcher =
+ plugin_dispatchers_.find(id);
+ if (dispatcher != plugin_dispatchers_.end())
+ dispatcher->second->OnMessageReceived(msg);
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/nacl_irt/ppapi_dispatcher.h b/chromium/ppapi/nacl_irt/ppapi_dispatcher.h
new file mode 100644
index 00000000000..ebbef8207f9
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/ppapi_dispatcher.h
@@ -0,0 +1,100 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
+#define PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
+
+#include <map>
+#include <set>
+#include <string>
+
+#include "base/files/file.h"
+#include "base/memory/ref_counted.h"
+#include "base/process/process_handle.h"
+#include "ipc/ipc_listener.h"
+#include "ipc/ipc_platform_file.h"
+#include "ipc/ipc_sender.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
+#include "ppapi/proxy/connection.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
+#include "ppapi/proxy/plugin_proxy_delegate.h"
+
+struct PP_BrowserFont_Trusted_Description;
+
+namespace base {
+class MessageLoopProxy;
+class WaitableEvent;
+} // namespace base
+
+namespace IPC {
+class Message;
+class SyncChannel;
+} // namespace IPC
+
+namespace ppapi {
+
+struct PpapiNaClPluginArgs;
+struct Preferences;
+
+// This class manages communication between the plugin and the browser, and
+// manages the PluginDispatcher instances for communication between the plugin
+// and the renderer.
+class PpapiDispatcher : public proxy::PluginDispatcher::PluginDelegate,
+ public proxy::PluginProxyDelegate,
+ public IPC::Listener,
+ public IPC::Sender {
+ public:
+ PpapiDispatcher(scoped_refptr<base::MessageLoopProxy> io_loop,
+ base::WaitableEvent* shutdown_event,
+ int browser_ipc_fd,
+ int renderer_ipc_fd);
+
+ // PluginDispatcher::PluginDelegate implementation.
+ virtual base::MessageLoopProxy* GetIPCMessageLoop() OVERRIDE;
+ virtual base::WaitableEvent* GetShutdownEvent() OVERRIDE;
+ virtual IPC::PlatformFileForTransit ShareHandleWithRemote(
+ base::PlatformFile handle,
+ base::ProcessId peer_pid,
+ bool should_close_source) OVERRIDE;
+ virtual std::set<PP_Instance>* GetGloballySeenInstanceIDSet() OVERRIDE;
+ virtual uint32 Register(
+ proxy::PluginDispatcher* plugin_dispatcher) OVERRIDE;
+ virtual void Unregister(uint32 plugin_dispatcher_id) OVERRIDE;
+
+ // PluginProxyDelegate implementation.
+ virtual IPC::Sender* GetBrowserSender() OVERRIDE;
+ virtual std::string GetUILanguage() OVERRIDE;
+ virtual void PreCacheFont(const void* logfontw) OVERRIDE;
+ virtual void SetActiveURL(const std::string& url) OVERRIDE;
+ virtual PP_Resource CreateBrowserFont(
+ proxy::Connection connection,
+ PP_Instance instance,
+ const PP_BrowserFont_Trusted_Description& desc,
+ const Preferences& prefs) OVERRIDE;
+
+ // IPC::Listener implementation.
+ virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+ virtual void OnChannelError() OVERRIDE;
+
+ // IPC::Sender implementation
+ virtual bool Send(IPC::Message* message) OVERRIDE;
+
+ private:
+ void OnMsgInitializeNaClDispatcher(const PpapiNaClPluginArgs& args);
+ void OnPluginDispatcherMessageReceived(const IPC::Message& msg);
+
+ std::set<PP_Instance> instances_;
+ std::map<uint32, proxy::PluginDispatcher*> plugin_dispatchers_;
+ uint32 next_plugin_dispatcher_id_;
+
+ scoped_refptr<base::MessageLoopProxy> message_loop_;
+ base::WaitableEvent* shutdown_event_;
+ int renderer_ipc_fd_;
+ scoped_ptr<IPC::SyncChannel> channel_;
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_NACL_IRT_PPAPI_DISPATCHER_H_
diff --git a/chromium/ppapi/nacl_irt/public/README b/chromium/ppapi/nacl_irt/public/README
new file mode 100644
index 00000000000..5e222a8e862
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/public/README
@@ -0,0 +1,10 @@
+
+This directory is for header files that are part of Native Client's
+stable ABI, as exposed under Chromium by NaCl's IRT interfaces. It
+defines how PPAPI is exposed to user code as a NaCl IRT interface. It
+does not define PPAPI itself, whose stable ABI is defined by the
+ppapi/c/ directory.
+
+This directory only defines NaCl IRT interfaces that are specific to
+Chromium's embedding of NaCl. Non-PPAPI-specific NaCl IRT
+interfaces are defined in native_client/src/untrusted/irt/irt.h.
diff --git a/chromium/ppapi/nacl_irt/public/irt_nonsfi.h b/chromium/ppapi/nacl_irt/public/irt_nonsfi.h
new file mode 100644
index 00000000000..acc0eaccf90
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/public/irt_nonsfi.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef PPAPI_NACL_IRT_PUBLIC_IRT_NONSFI_H_
+#define PPAPI_NACL_IRT_PUBLIC_IRT_NONSFI_H_
+
+#include <stddef.h>
+
+/*
+ * This interface is only available on ARM, only for Non-SFI.
+ */
+#define NACL_IRT_ICACHE_v0_1 "nacl-irt-icache-0.1"
+struct nacl_irt_icache {
+ /*
+ * clear_cache() makes instruction cache and data cache for the address
+ * range from |addr| to |(intptr_t)addr + size| (exclusive) coherent.
+ */
+ int (*clear_cache)(void* addr, size_t size);
+};
+
+#endif // PPAPI_NACL_IRT_PUBLIC_IRT_NONSFI_H_
diff --git a/chromium/ppapi/nacl_irt/public/irt_ppapi.h b/chromium/ppapi/nacl_irt/public/irt_ppapi.h
new file mode 100644
index 00000000000..c64dbabb1de
--- /dev/null
+++ b/chromium/ppapi/nacl_irt/public/irt_ppapi.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
+#define PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
+
+#include <stddef.h>
+
+#include "ppapi/c/ppp.h"
+
+struct PP_StartFunctions {
+ int32_t (*PPP_InitializeModule)(PP_Module module_id,
+ PPB_GetInterface get_browser_interface);
+ void (*PPP_ShutdownModule)(void);
+ const void* (*PPP_GetInterface)(const char* interface_name);
+};
+
+struct PP_ThreadFunctions {
+ /*
+ * This is a cut-down version of pthread_create()/pthread_join().
+ * We omit thread creation attributes and the thread's return value.
+ *
+ * We use uintptr_t as the thread ID type because pthread_t is not
+ * part of the stable ABI; a user thread library might choose an
+ * arbitrary size for its own pthread_t.
+ */
+ int (*thread_create)(uintptr_t* tid,
+ void (*func)(void* thread_argument),
+ void* thread_argument);
+ int (*thread_join)(uintptr_t tid);
+};
+
+#define NACL_IRT_PPAPIHOOK_v0_1 "nacl-irt-ppapihook-0.1"
+struct nacl_irt_ppapihook {
+ int (*ppapi_start)(const struct PP_StartFunctions*);
+ void (*ppapi_register_thread_creator)(const struct PP_ThreadFunctions*);
+};
+
+#endif // PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
diff --git a/chromium/ppapi/native_client/DEPS b/chromium/ppapi/native_client/DEPS
index dbcded943de..60de970472d 100644
--- a/chromium/ppapi/native_client/DEPS
+++ b/chromium/ppapi/native_client/DEPS
@@ -2,16 +2,7 @@ include_rules = [
"+native_client/src/include",
"+native_client/src/public",
"+native_client/src/shared/platform",
-
- # TODO(bradnelson): Eliminate these as they are actually incorrectly rooted
- # internal references.
- "+native_client/src/shared/ppapi_proxy",
"+native_client/src/shared/srpc",
"+native_client/src/trusted/weak_ref",
"+native_client/src/untrusted",
- "+native_client/tests/ppapi_geturl",
- "+native_client/tests/ppapi_test_lib",
- "+srpcgen",
- "+trusted/srpcgen",
- "+untrusted/srpcgen",
]
diff --git a/chromium/ppapi/native_client/chrome_main.scons b/chromium/ppapi/native_client/chrome_main.scons
index e8593a4dabe..2e75425731c 100644
--- a/chromium/ppapi/native_client/chrome_main.scons
+++ b/chromium/ppapi/native_client/chrome_main.scons
@@ -37,11 +37,6 @@ ppapi_scons_files['untrusted_irt_scons_files'] = []
ppapi_scons_files['nonvariant_test_scons_files'] = [
'tests/breakpad_crash_test/nacl.scons',
'tests/nacl_browser/browser_dynamic_library/nacl.scons',
- 'tests/nacl_browser/manifest_file/nacl.scons',
- 'tests/nacl_browser/nameservice/nacl.scons',
- 'tests/ppapi_browser/bad/nacl.scons',
- 'tests/ppapi_browser/extension_mime_handler/nacl.scons',
- 'tests/ppapi_browser/manifest/nacl.scons',
'tests/ppapi_test_lib/nacl.scons',
]
@@ -229,10 +224,6 @@ def WhitelistLibsForExtensionCommand(target, source, env):
# to be made available to webpages that use this NaCl extension,
# which are in a different origin.
# See: http://code.google.com/chrome/extensions/manifest.html
-#
-# Alternatively, we could try to use the chrome commandline switch
-# '--disable-extensions-resource-whitelist', but that would not be what
-# users will need to do.
def WhitelistLibsForExtension(env, target_dir, nmf, extension_manifest):
if env.Bit('nacl_static_link'):
# For static linking, assume the nexe and nmf files are already
@@ -421,11 +412,6 @@ def PPAPIBrowserTester(env,
if 'TRUSTED_ENV' not in env:
return []
- # No browser tests run on arm-thumb2
- # Bug http://code.google.com/p/nativeclient/issues/detail?id=2224
- if env.Bit('target_arm_thumb2'):
- return []
-
# Handle issues with mutating any python default arg lists.
if browser_flags is None:
browser_flags = []
@@ -549,8 +535,7 @@ pre_base_env.AddMethod(PPAPIBrowserTester)
# Disabled for ARM and MIPS because Chrome binaries for ARM and MIPS are not
# available.
def PPAPIBrowserTesterIsBroken(env):
- return (env.Bit('target_arm') or env.Bit('target_arm_thumb2')
- or env.Bit('target_mips32'))
+ return env.Bit('target_arm') or env.Bit('target_mips32')
pre_base_env.AddMethod(PPAPIBrowserTesterIsBroken)
diff --git a/chromium/ppapi/native_client/native_client.gyp b/chromium/ppapi/native_client/native_client.gyp
index ca4601f6667..c0b8fc9178f 100644
--- a/chromium/ppapi/native_client/native_client.gyp
+++ b/chromium/ppapi/native_client/native_client.gyp
@@ -36,7 +36,7 @@
},
],
'conditions': [
- ['target_arch!="arm"', {
+ ['target_arch=="ia32" or target_arch=="x64"', {
'copies': [
{
'destination': '>(tc_include_dir_glibc)/include/nacl',
@@ -84,6 +84,16 @@
],
},
]
+ }],
+ ['target_arch=="mipsel"', {
+ 'copies': [
+ {
+ 'destination': '>(tc_lib_dir_newlib_mips)',
+ 'files': [
+ 'src/untrusted/irt_stub/libppapi.a',
+ ],
+ },
+ ]
}]
],
},
@@ -93,10 +103,12 @@
'variables': {
'nexe_target': 'nacl_irt',
# These out_* fields override the default filenames, which
- # include a "_newlib" suffix.
+ # include a "_newlib" suffix and places them in the target
+ # directory.
'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
+ 'out_newlib_mips': '<(PRODUCT_DIR)/nacl_irt_mips32.nexe',
'build_glibc': 0,
'build_newlib': 0,
'build_irt': 1,
@@ -107,19 +119,21 @@
'link_flags': [
'-Wl,--start-group',
'-lirt_browser',
- '-lppapi_proxy_untrusted',
- '-lppapi_ipc_untrusted',
- '-lppapi_shared_untrusted',
- '-lgles2_implementation_untrusted',
- '-lgles2_cmd_helper_untrusted',
- '-lgles2_utils_untrusted',
- '-lcommand_buffer_client_untrusted',
- '-lcommand_buffer_common_untrusted',
- '-ltracing_untrusted',
- '-lgpu_ipc_untrusted',
- '-lipc_untrusted',
- '-lbase_untrusted',
- '-lshared_memory_support_untrusted',
+ '-llatency_info_nacl',
+ '-lpnacl_irt_shim_for_irt',
+ '-lppapi_proxy_nacl',
+ '-lppapi_ipc_nacl',
+ '-lppapi_shared_nacl',
+ '-lgles2_implementation_nacl',
+ '-lgles2_cmd_helper_nacl',
+ '-lgles2_utils_nacl',
+ '-lcommand_buffer_client_nacl',
+ '-lcommand_buffer_common_nacl',
+ '-ltracing_nacl',
+ '-lgpu_ipc_nacl',
+ '-lipc_nacl',
+ '-lbase_nacl',
+ '-lshared_memory_support_nacl',
'-lsrpc',
'-limc_syscalls',
'-lplatform',
@@ -145,42 +159,44 @@
'enable_x86_32': 0
}
],
- ['target_arch!="arm"', {
+ ['target_arch=="ia32" or target_arch=="x64"', {
'extra_deps_newlib64': [
- '>(tc_lib_dir_irt64)/libppapi_proxy_untrusted.a',
- '>(tc_lib_dir_irt64)/libppapi_ipc_untrusted.a',
- '>(tc_lib_dir_irt64)/libppapi_shared_untrusted.a',
- '>(tc_lib_dir_irt64)/libgles2_implementation_untrusted.a',
- '>(tc_lib_dir_irt64)/libcommand_buffer_client_untrusted.a',
- '>(tc_lib_dir_irt64)/libcommand_buffer_common_untrusted.a',
- '>(tc_lib_dir_irt64)/libgpu_ipc_untrusted.a',
- '>(tc_lib_dir_irt64)/libtracing_untrusted.a',
- '>(tc_lib_dir_irt64)/libgles2_cmd_helper_untrusted.a',
- '>(tc_lib_dir_irt64)/libgles2_utils_untrusted.a',
- '>(tc_lib_dir_irt64)/libipc_untrusted.a',
- '>(tc_lib_dir_irt64)/libbase_untrusted.a',
+ '>(tc_lib_dir_irt64)/libppapi_proxy_nacl.a',
+ '>(tc_lib_dir_irt64)/libppapi_ipc_nacl.a',
+ '>(tc_lib_dir_irt64)/libppapi_shared_nacl.a',
+ '>(tc_lib_dir_irt64)/libgles2_implementation_nacl.a',
+ '>(tc_lib_dir_irt64)/libcommand_buffer_client_nacl.a',
+ '>(tc_lib_dir_irt64)/libcommand_buffer_common_nacl.a',
+ '>(tc_lib_dir_irt64)/libgpu_ipc_nacl.a',
+ '>(tc_lib_dir_irt64)/libtracing_nacl.a',
+ '>(tc_lib_dir_irt64)/libgles2_cmd_helper_nacl.a',
+ '>(tc_lib_dir_irt64)/libgles2_utils_nacl.a',
+ '>(tc_lib_dir_irt64)/libipc_nacl.a',
+ '>(tc_lib_dir_irt64)/libbase_nacl.a',
'>(tc_lib_dir_irt64)/libirt_browser.a',
- '>(tc_lib_dir_irt64)/libshared_memory_support_untrusted.a',
+ '>(tc_lib_dir_irt64)/libpnacl_irt_shim_for_irt.a',
+ '>(tc_lib_dir_irt64)/libshared_memory_support_nacl.a',
'>(tc_lib_dir_irt64)/libsrpc.a',
'>(tc_lib_dir_irt64)/libplatform.a',
'>(tc_lib_dir_irt64)/libimc_syscalls.a',
'>(tc_lib_dir_irt64)/libgio.a',
],
'extra_deps_newlib32': [
- '>(tc_lib_dir_irt32)/libppapi_proxy_untrusted.a',
- '>(tc_lib_dir_irt32)/libppapi_ipc_untrusted.a',
- '>(tc_lib_dir_irt32)/libppapi_shared_untrusted.a',
- '>(tc_lib_dir_irt32)/libgles2_implementation_untrusted.a',
- '>(tc_lib_dir_irt32)/libcommand_buffer_client_untrusted.a',
- '>(tc_lib_dir_irt32)/libcommand_buffer_common_untrusted.a',
- '>(tc_lib_dir_irt32)/libgpu_ipc_untrusted.a',
- '>(tc_lib_dir_irt32)/libtracing_untrusted.a',
- '>(tc_lib_dir_irt32)/libgles2_cmd_helper_untrusted.a',
- '>(tc_lib_dir_irt32)/libgles2_utils_untrusted.a',
- '>(tc_lib_dir_irt32)/libipc_untrusted.a',
- '>(tc_lib_dir_irt32)/libbase_untrusted.a',
+ '>(tc_lib_dir_irt32)/libppapi_proxy_nacl.a',
+ '>(tc_lib_dir_irt32)/libppapi_ipc_nacl.a',
+ '>(tc_lib_dir_irt32)/libppapi_shared_nacl.a',
+ '>(tc_lib_dir_irt32)/libgles2_implementation_nacl.a',
+ '>(tc_lib_dir_irt32)/libcommand_buffer_client_nacl.a',
+ '>(tc_lib_dir_irt32)/libcommand_buffer_common_nacl.a',
+ '>(tc_lib_dir_irt32)/libgpu_ipc_nacl.a',
+ '>(tc_lib_dir_irt32)/libtracing_nacl.a',
+ '>(tc_lib_dir_irt32)/libgles2_cmd_helper_nacl.a',
+ '>(tc_lib_dir_irt32)/libgles2_utils_nacl.a',
+ '>(tc_lib_dir_irt32)/libipc_nacl.a',
+ '>(tc_lib_dir_irt32)/libbase_nacl.a',
'>(tc_lib_dir_irt32)/libirt_browser.a',
- '>(tc_lib_dir_irt32)/libshared_memory_support_untrusted.a',
+ '>(tc_lib_dir_irt32)/libpnacl_irt_shim_for_irt.a',
+ '>(tc_lib_dir_irt32)/libshared_memory_support_nacl.a',
'>(tc_lib_dir_irt32)/libsrpc.a',
'>(tc_lib_dir_irt32)/libplatform.a',
'>(tc_lib_dir_irt32)/libimc_syscalls.a',
@@ -189,45 +205,71 @@
}],
['target_arch=="arm"', {
'extra_deps_arm': [
- '>(tc_lib_dir_irt_arm)/libppapi_proxy_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libppapi_ipc_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libppapi_shared_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libgles2_implementation_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libgpu_ipc_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libtracing_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libgles2_utils_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libipc_untrusted.a',
- '>(tc_lib_dir_irt_arm)/libbase_untrusted.a',
+ '>(tc_lib_dir_irt_arm)/libppapi_proxy_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libppapi_ipc_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libppapi_shared_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libgles2_implementation_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libgpu_ipc_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libtracing_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libgles2_utils_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libipc_nacl.a',
+ '>(tc_lib_dir_irt_arm)/libbase_nacl.a',
'>(tc_lib_dir_irt_arm)/libirt_browser.a',
- '>(tc_lib_dir_irt_arm)/libshared_memory_support_untrusted.a',
+ '>(tc_lib_dir_irt_arm)/libpnacl_irt_shim_for_irt.a',
+ '>(tc_lib_dir_irt_arm)/libshared_memory_support_nacl.a',
'>(tc_lib_dir_irt_arm)/libsrpc.a',
'>(tc_lib_dir_irt_arm)/libplatform.a',
'>(tc_lib_dir_irt_arm)/libimc_syscalls.a',
'>(tc_lib_dir_irt_arm)/libgio.a',
],
}],
+ ['target_arch=="mipsel"', {
+ 'extra_deps_mips': [
+ '>(tc_lib_dir_irt_mips)/libppapi_proxy_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libppapi_ipc_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libppapi_shared_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libgles2_implementation_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libcommand_buffer_client_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libcommand_buffer_common_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libgpu_ipc_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libtracing_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libgles2_cmd_helper_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libgles2_utils_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libipc_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libbase_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libirt_browser.a',
+ '>(tc_lib_dir_irt_mips)/libpnacl_irt_shim_for_irt.a',
+ '>(tc_lib_dir_irt_mips)/libshared_memory_support_nacl.a',
+ '>(tc_lib_dir_irt_mips)/libsrpc.a',
+ '>(tc_lib_dir_irt_mips)/libplatform.a',
+ '>(tc_lib_dir_irt_mips)/libimc_syscalls.a',
+ '>(tc_lib_dir_irt_mips)/libgio.a',
+ ],
+ }],
],
},
'dependencies': [
- '../ppapi_proxy_untrusted.gyp:ppapi_proxy_untrusted',
- '../ppapi_ipc_untrusted.gyp:ppapi_ipc_untrusted',
- '../ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
- '../../gpu/command_buffer/command_buffer_untrusted.gyp:gles2_utils_untrusted',
- '../../gpu/gpu_untrusted.gyp:command_buffer_client_untrusted',
- '../../gpu/gpu_untrusted.gyp:command_buffer_common_untrusted',
- '../../gpu/gpu_untrusted.gyp:gles2_implementation_untrusted',
- '../../gpu/gpu_untrusted.gyp:gles2_cmd_helper_untrusted',
- '../../gpu/gpu_untrusted.gyp:gpu_ipc_untrusted',
- '../../components/tracing_untrusted.gyp:tracing_untrusted',
- '../../ipc/ipc_untrusted.gyp:ipc_untrusted',
- '../../base/base_untrusted.gyp:base_untrusted',
- '../../media/media_untrusted.gyp:shared_memory_support_untrusted',
+ 'src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_for_irt',
+ '../ppapi_proxy_nacl.gyp:ppapi_proxy_nacl',
+ '../ppapi_ipc_nacl.gyp:ppapi_ipc_nacl',
+ '../ppapi_shared_nacl.gyp:ppapi_shared_nacl',
+ '../../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
+ '../../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
+ '../../gpu/gpu_nacl.gyp:command_buffer_common_nacl',
+ '../../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
+ '../../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl',
+ '../../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
+ '../../components/tracing_nacl.gyp:tracing_nacl',
+ '../../ipc/ipc_nacl.gyp:ipc_nacl',
+ '../../base/base_nacl.gyp:base_nacl',
+ '../../media/media_nacl.gyp:shared_memory_support_nacl',
'../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
'../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
'../../native_client/src/shared/platform/platform.gyp:platform_lib',
+ '../../native_client/src/tools/tls_edit/tls_edit.gyp:tls_edit#host',
'../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
'../../native_client/src/shared/gio/gio.gyp:gio_lib',
],
diff --git a/chromium/ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h b/chromium/ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h
index 487a47085e1..d8618fbc934 100644
--- a/chromium/ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h
+++ b/chromium/ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h
@@ -8,21 +8,13 @@
#define NATIVE_CLIENT_SRC_SHARED_PPAPI_PROXY_PPRUNTIME_H_
#include "native_client/src/include/portability.h"
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
EXTERN_C_BEGIN
-// Initialize srpc connection to the browser. Some APIs like manifest file
-// opening do not need full ppapi initialization and so can be used after
-// this function returns.
-int IrtInit(void);
-
// The entry point for the main thread of the PPAPI plugin process.
int PpapiPluginMain(void);
-void PpapiPluginRegisterThreadCreator(
- const struct PP_ThreadFunctions* new_funcs);
-
EXTERN_C_END
#endif // NATIVE_CLIENT_SRC_SHARED_PPAPI_PROXY_PPRUNTIME_H_
diff --git a/chromium/ppapi/native_client/src/tools/srpcgen.py b/chromium/ppapi/native_client/src/tools/srpcgen.py
deleted file mode 100755
index 91901c10e2b..00000000000
--- a/chromium/ppapi/native_client/src/tools/srpcgen.py
+++ /dev/null
@@ -1,466 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Native Client Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Build "SRPC" interfaces from specifications.
-
-SRPC interfaces consist of one or more interface classes, typically defined
-in a set of .srpc files. The specifications are Python dictionaries, with a
-top level 'name' element and an 'rpcs' element. The rpcs element is a list
-containing a number of rpc methods, each of which has a 'name', an 'inputs',
-and an 'outputs' element. These elements are lists of input or output
-parameters, which are lists pairs containing a name and type. The set of
-types includes all the SRPC basic types.
-
-These SRPC specifications are used to generate a header file and either a
-server or client stub file, as determined by the command line flag -s or -c.
-"""
-
-import getopt
-import sys
-import os
-
-COPYRIGHT_AND_AUTOGEN_COMMENT = """\
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-//
-// Automatically generated code. See srpcgen.py
-//
-// NaCl Simple Remote Procedure Call interface abstractions.
-"""
-
-HEADER_INCLUDE_GUARD_START = """\
-#ifndef %(include_guard)s
-#define %(include_guard)s
-"""
-
-HEADER_INCLUDE_GUARD_END = """\
-\n\n#endif // %(include_guard)s
-"""
-
-HEADER_FILE_INCLUDES = """\
-#ifndef __native_client__
-#include "native_client/src/include/portability.h"
-#endif // __native_client__
-%(EXTRA_INCLUDES)s
-"""
-
-SOURCE_FILE_INCLUDES = """\
-#include "%(srpcgen_h)s"
-#ifdef __native_client__
-#ifndef UNREFERENCED_PARAMETER
-#define UNREFERENCED_PARAMETER(P) do { (void) P; } while (0)
-#endif // UNREFERENCED_PARAMETER
-#else
-#include "native_client/src/include/portability.h"
-#endif // __native_client__
-%(EXTRA_INCLUDES)s
-"""
-
-# For both .cc and .h files.
-EXTRA_INCLUDES = [
- '#include "native_client/src/shared/srpc/nacl_srpc.h"',
-]
-
-types = {'bool': ['b', 'bool', 'u.bval', ''],
- 'char[]': ['C', 'char*', 'arrays.carr', 'u.count'],
- 'double': ['d', 'double', 'u.dval', ''],
- 'double[]': ['D', 'double*', 'arrays.darr', 'u.count'],
- 'handle': ['h', 'NaClSrpcImcDescType', 'u.hval', ''],
- 'int32_t': ['i', 'int32_t', 'u.ival', ''],
- 'int32_t[]': ['I', 'int32_t*', 'arrays.iarr', 'u.count'],
- 'int64_t': ['l', 'int64_t', 'u.lval', ''],
- 'int64_t[]': ['L', 'int64_t', 'arrays.larr', 'u.count'],
- 'PP_Instance': ['i', 'PP_Instance', 'u.ival', ''],
- 'PP_Module': ['i', 'PP_Module', 'u.ival', ''],
- 'PP_Resource': ['i', 'PP_Resource', 'u.ival', ''],
- 'string': ['s', 'const char*', 'arrays.str', ''],
- }
-
-def AddInclude(name):
- """Adds an include to the include section of both .cc and .h files."""
- EXTRA_INCLUDES.append('#include "%s"' % name)
-
-
-def HeaderFileIncludes():
- """Includes are sorted alphabetically."""
- EXTRA_INCLUDES.sort()
- return HEADER_FILE_INCLUDES % {
- 'EXTRA_INCLUDES': '\n'.join(EXTRA_INCLUDES),
- }
-
-
-def SourceFileIncludes(srpcgen_h_file):
- """Includes are sorted alphabetically."""
- EXTRA_INCLUDES.sort()
- return SOURCE_FILE_INCLUDES % {
- 'EXTRA_INCLUDES': '\n'.join(EXTRA_INCLUDES),
- 'srpcgen_h': srpcgen_h_file
- }
-
-
-def PrintHeaderFileTop(output, include_guard):
- """Prints the header of the .h file including copyright,
- header comment, include guard and includes."""
- print >>output, COPYRIGHT_AND_AUTOGEN_COMMENT
- print >>output, HEADER_INCLUDE_GUARD_START % {'include_guard': include_guard}
- print >>output, HeaderFileIncludes()
-
-
-def PrintHeaderFileBottom(output, include_guard):
- """Prints the footer of the .h file including copyright,
- header comment, include guard and includes."""
- print >>output, HEADER_INCLUDE_GUARD_END % {'include_guard': include_guard}
-
-
-def PrintSourceFileTop(output, srpcgen_h_file):
- """Prints the header of the .cc file including copyright,
- header comment and includes."""
- print >>output, COPYRIGHT_AND_AUTOGEN_COMMENT
- print >>output, SourceFileIncludes(srpcgen_h_file)
-
-
-def CountName(name):
- """Returns the name of the auxiliary count member used for array typed."""
- return '%s_bytes' % name
-
-
-def FormatRpcPrototype(is_server, class_name, indent, rpc):
- """Returns a string for the prototype of an individual RPC."""
-
- def FormatArgs(is_output, args):
- """Returns a string containing the formatted arguments for an RPC."""
-
- def FormatArg(is_output, arg):
- """Returns a string containing a formatted argument to an RPC."""
- if is_output:
- suffix = '* '
- else:
- suffix = ' '
- s = ''
- type_info = types[arg[1]]
- if type_info[3]:
- s += 'nacl_abi_size_t%s%s, %s %s' % (suffix,
- CountName(arg[0]),
- type_info[1],
- arg[0])
- else:
- s += '%s%s%s' % (type_info[1], suffix, arg[0])
- return s
- s = ''
- for arg in args:
- s += ',\n %s%s' % (indent, FormatArg(is_output, arg))
- return s
- if is_server:
- ret_type = 'void'
- else:
- ret_type = 'NaClSrpcError'
- s = '%s %s%s(\n' % (ret_type, class_name, rpc['name'])
- # Until SRPC uses RPC/Closure on the client side, these must be different.
- if is_server:
- s += ' %sNaClSrpcRpc* rpc,\n' % indent
- s += ' %sNaClSrpcClosure* done' % indent
- else:
- s += ' %sNaClSrpcChannel* channel' % indent
- s += '%s' % FormatArgs(False, rpc['inputs'])
- s += '%s' % FormatArgs(True, rpc['outputs'])
- s += ')'
- return s
-
-
-def PrintHeaderFile(output, is_server, guard_name, interface_name, specs):
- """Prints out the header file containing the prototypes for the RPCs."""
- PrintHeaderFileTop(output, guard_name)
- s = ''
- # iterate over all the specified interfaces
- if is_server:
- suffix = 'Server'
- else:
- suffix = 'Client'
- for spec in specs:
- class_name = spec['name'] + suffix
- rpcs = spec['rpcs']
- s += 'class %s {\n public:\n' % class_name
- for rpc in rpcs:
- s += ' static %s;\n' % FormatRpcPrototype(is_server, '', ' ', rpc)
- s += '\n private:\n %s();\n' % class_name
- s += ' %s(const %s&);\n' % (class_name, class_name)
- s += ' void operator=(const %s);\n' % class_name
- s += '}; // class %s\n\n' % class_name
- if is_server:
- s += 'class %s {\n' % interface_name
- s += ' public:\n'
- s += ' static NaClSrpcHandlerDesc srpc_methods[];\n'
- s += '}; // class %s' % interface_name
- print >>output, s
- PrintHeaderFileBottom(output, guard_name)
-
-
-def PrintServerFile(output, header_name, interface_name, specs):
- """Print the server (stub) .cc file."""
-
- def FormatDispatchPrototype(indent, rpc):
- """Format the prototype of a dispatcher method."""
- s = '%sstatic void %sDispatcher(\n' % (indent, rpc['name'])
- s += '%s NaClSrpcRpc* rpc,\n' % indent
- s += '%s NaClSrpcArg** inputs,\n' % indent
- s += '%s NaClSrpcArg** outputs,\n' % indent
- s += '%s NaClSrpcClosure* done\n' % indent
- s += '%s)' % indent
- return s
-
- def FormatMethodString(rpc):
- """Format the SRPC text string for a single rpc method."""
-
- def FormatTypes(args):
- s = ''
- for arg in args:
- s += types[arg[1]][0]
- return s
- s = ' { "%s:%s:%s", %sDispatcher },\n' % (rpc['name'],
- FormatTypes(rpc['inputs']),
- FormatTypes(rpc['outputs']),
- rpc['name'])
- return s
-
- def FormatCall(class_name, indent, rpc):
- """Format a call from a dispatcher method to its stub."""
-
- def FormatArgs(is_output, args):
- """Format the arguments passed to the stub."""
-
- def FormatArg(is_output, num, arg):
- """Format an argument passed to a stub."""
- if is_output:
- prefix = 'outputs[' + str(num) + ']->'
- addr_prefix = '&('
- addr_suffix = ')'
- else:
- prefix = 'inputs[' + str(num) + ']->'
- addr_prefix = ''
- addr_suffix = ''
- type_info = types[arg[1]]
- if type_info[3]:
- s = '%s%s%s%s, %s%s' % (addr_prefix,
- prefix,
- type_info[3],
- addr_suffix,
- prefix,
- type_info[2])
- else:
- s = '%s%s%s%s' % (addr_prefix, prefix, type_info[2], addr_suffix)
- return s
- # end FormatArg
- s = ''
- num = 0
- for arg in args:
- s += ',\n%s %s' % (indent, FormatArg(is_output, num, arg))
- num += 1
- return s
- # end FormatArgs
- s = '%s::%s(\n%s rpc,\n' % (class_name, rpc['name'], indent)
- s += '%s done' % indent
- s += FormatArgs(False, rpc['inputs'])
- s += FormatArgs(True, rpc['outputs'])
- s += '\n%s)' % indent
- return s
- # end FormatCall
-
- PrintSourceFileTop(output, header_name)
- s = 'namespace {\n\n'
- for spec in specs:
- class_name = spec['name'] + 'Server'
- rpcs = spec['rpcs']
- for rpc in rpcs:
- s += '%s {\n' % FormatDispatchPrototype('', rpc)
- if rpc['inputs'] == []:
- s += ' UNREFERENCED_PARAMETER(inputs);\n'
- if rpc['outputs'] == []:
- s += ' UNREFERENCED_PARAMETER(outputs);\n'
- s += ' %s;\n' % FormatCall(class_name, ' ', rpc)
- s += '}\n\n'
- s += '} // namespace\n\n'
- s += 'NaClSrpcHandlerDesc %s::srpc_methods[] = {\n' % interface_name
- for spec in specs:
- class_name = spec['name'] + 'Server'
- rpcs = spec['rpcs']
- for rpc in rpcs:
- s += FormatMethodString(rpc)
- s += ' { NULL, NULL }\n};\n'
- print >>output, s
-
-
-def PrintClientFile(output, header_name, specs, thread_check):
- """Prints the client (proxy) .cc file."""
-
- def InstanceInputArg(rpc):
- """Returns the name of the PP_Instance arg or None if there is none."""
- for arg in rpc['inputs']:
- if arg[1] == 'PP_Instance':
- return arg[0]
- return None
-
- def DeadNexeHandling(rpc, retval):
- """Generates the code necessary to handle death of a nexe during the rpc
- call. This is only possible if PP_Instance arg is present, otherwise"""
- instance = InstanceInputArg(rpc);
- if instance is not None:
- check = (' if (%s == NACL_SRPC_RESULT_INTERNAL)\n'
- ' ppapi_proxy::CleanUpAfterDeadNexe(%s);\n')
- return check % (retval, instance)
- return '' # No handling
-
-
- def FormatCall(rpc):
- """Format a call to the generic dispatcher, NaClSrpcInvokeBySignature."""
-
- def FormatTypes(args):
- """Format a the type signature string for either inputs or outputs."""
- s = ''
- for arg in args:
- s += types[arg[1]][0]
- return s
- def FormatArgs(args):
- """Format the arguments for the call to the generic dispatcher."""
-
- def FormatArg(arg):
- """Format a single argument for the call to the generic dispatcher."""
- s = ''
- type_info = types[arg[1]]
- if type_info[3]:
- s += '%s, ' % CountName(arg[0])
- s += arg[0]
- return s
- # end FormatArg
- s = ''
- for arg in args:
- s += ',\n %s' % FormatArg(arg)
- return s
- #end FormatArgs
- s = '(\n channel,\n "%s:%s:%s"' % (rpc['name'],
- FormatTypes(rpc['inputs']),
- FormatTypes(rpc['outputs']))
- s += FormatArgs(rpc['inputs'])
- s += FormatArgs(rpc['outputs']) + '\n )'
- return s
- # end FormatCall
-
- # We need this to handle dead nexes.
- if header_name.startswith('trusted'):
- AddInclude('native_client/src/shared/ppapi_proxy/browser_globals.h')
- if thread_check:
- AddInclude('native_client/src/shared/ppapi_proxy/plugin_globals.h')
- AddInclude('ppapi/c/ppb_core.h')
- AddInclude('native_client/src/shared/platform/nacl_check.h')
- PrintSourceFileTop(output, header_name)
- s = ''
-
- for spec in specs:
- class_name = spec['name'] + 'Client'
- rpcs = spec['rpcs']
- for rpc in rpcs:
- s += '%s {\n' % FormatRpcPrototype('', class_name + '::', '', rpc)
- if thread_check and rpc['name'] not in ['PPB_GetInterface',
- 'PPB_Core_CallOnMainThread']:
- error = '"%s: PPAPI calls are not supported off the main thread\\n"'
- s += ' VCHECK(ppapi_proxy::PPBCoreInterface()->IsMainThread(),\n'
- s += ' (%s,\n' % error
- s += ' __FUNCTION__));\n'
- s += ' NaClSrpcError retval;\n'
- s += ' retval = NaClSrpcInvokeBySignature%s;\n' % FormatCall(rpc)
- if header_name.startswith('trusted'):
- s += DeadNexeHandling(rpc, 'retval')
- s += ' return retval;\n'
- s += '}\n\n'
- print >>output, s
-
-def MakePath(name):
- paths = name.split(os.sep)
- path = os.sep.join(paths[:-1])
- try:
- os.makedirs(path)
- except OSError:
- return
-
-
-def main(argv):
- usage = 'Usage: srpcgen.py <-c | -s> [--include=<name>] [--ppapi]'
- usage = usage + ' <iname> <gname> <.h> <.cc> <specs>'
-
- mode = None
- ppapi = False
- thread_check = False
- try:
- long_opts = ['include=', 'ppapi', 'thread-check']
- opts, pargs = getopt.getopt(argv[1:], 'cs', long_opts)
- except getopt.error, e:
- print >>sys.stderr, 'Illegal option:', str(e)
- print >>sys.stderr, usage
- return 1
-
- # Get the class name for the interface.
- interface_name = pargs[0]
- # Get the name for the token used as a multiple inclusion guard in the header.
- include_guard_name = pargs[1]
- # Get the name of the header file to be generated.
- h_file_name = pargs[2]
- MakePath(h_file_name)
- # Note we open output files in binary mode so that on Windows the files
- # will always get LF line-endings rather than CRLF.
- h_file = open(h_file_name, 'wb')
- # Get the name of the source file to be generated. Depending upon whether
- # -c or -s is generated, this file contains either client or server methods.
- cc_file_name = pargs[3]
- MakePath(cc_file_name)
- cc_file = open(cc_file_name, 'wb')
- # The remaining arguments are the spec files to be compiled.
- spec_files = pargs[4:]
-
- for opt, val in opts:
- if opt == '-c':
- mode = 'client'
- elif opt == '-s':
- mode = 'server'
- elif opt == '--include':
- h_file_name = val
- elif opt == '--ppapi':
- ppapi = True
- elif opt == '--thread-check':
- thread_check = True
-
- if ppapi:
- AddInclude("ppapi/c/pp_instance.h")
- AddInclude("ppapi/c/pp_module.h")
- AddInclude("ppapi/c/pp_resource.h")
-
- # Convert to forward slash paths if needed
- h_file_name = "/".join(h_file_name.split("\\"))
-
- # Verify we picked server or client mode
- if not mode:
- print >>sys.stderr, 'Neither -c nor -s specified'
- usage()
- return 1
-
- # Combine the rpc specs from spec_files into rpcs.
- specs = []
- for spec_file in spec_files:
- code_obj = compile(open(spec_file, 'r').read(), 'file', 'eval')
- specs.append(eval(code_obj))
- # Print out the requested files.
- if mode == 'client':
- PrintHeaderFile(h_file, False, include_guard_name, interface_name, specs)
- PrintClientFile(cc_file, h_file_name, specs, thread_check)
- elif mode == 'server':
- PrintHeaderFile(h_file, True, include_guard_name, interface_name, specs)
- PrintServerFile(cc_file, h_file_name, interface_name, specs)
-
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/DEPS b/chromium/ppapi/native_client/src/trusted/plugin/DEPS
index c7f3a6be9eb..34d9609d757 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/DEPS
+++ b/chromium/ppapi/native_client/src/trusted/plugin/DEPS
@@ -1,6 +1,8 @@
include_rules = [
- "+native_client/src/shared/imc",
- "+native_client/src/shared/srpc",
- "+native_client/src/trusted",
- "+third_party/jsoncpp",
+ "+native_client/src/shared/imc/nacl_imc_c.h",
+ "+native_client/src/trusted/desc",
+ "+native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h",
+ "+native_client/src/trusted/reverse_service/reverse_service.h",
+ "+native_client/src/trusted/service_runtime/include",
+ "+native_client/src/trusted/service_runtime/nacl_error_code.h",
]
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/arch_arm/sandbox_isa.cc b/chromium/ppapi/native_client/src/trusted/plugin/arch_arm/sandbox_isa.cc
deleted file mode 100644
index 108f49be226..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/arch_arm/sandbox_isa.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/native_client/src/trusted/plugin/nexe_arch.h"
-
-namespace {
-// The list of supported ISA strings for ARM. See issue:
-// http://code.google.com/p/nativeclient/issues/detail?id=1040 for more
-// information. Note that these string are to be case-insensitive compared.
-const char* const kNexeArchARM = "arm";
-} // namespace
-
-namespace plugin {
-const char* GetSandboxISA() {
- return kNexeArchARM;
-}
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/arch_x86/sandbox_isa.cc b/chromium/ppapi/native_client/src/trusted/plugin/arch_x86/sandbox_isa.cc
deleted file mode 100644
index 99e033925f9..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/arch_x86/sandbox_isa.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "native_client/src/trusted/platform_qualify/nacl_os_qualify.h"
-#include "ppapi/native_client/src/trusted/plugin/nexe_arch.h"
-
-// The list of supported ISA strings for x86. See issue:
-// http://code.google.com/p/nativeclient/issues/detail?id=1040 for more
-// information. Note that these string are to be case-insensitive compared.
-const char kNexeArchX86_64[] = "x86-64";
-#if !((NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 && NACL_BUILD_SUBARCH == 64) && \
- (defined(NACL_LINUX) || defined(NACL_OSX)))
-const char kNexeArchX86_32[] = "x86-32";
-#endif
-
-namespace plugin {
-const char* GetSandboxISA() {
-#if (NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 && NACL_BUILD_SUBARCH == 64) && \
- (defined(NACL_LINUX) || defined(NACL_OSX))
- return kNexeArchX86_64; // 64-bit Linux or Mac.
-#else
- return NaClOsIs64BitWindows() == 1
- ? kNexeArchX86_64 // 64-bit Windows (Chrome, Firefox)
- : kNexeArchX86_32; // everything else.
-#endif
-}
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.cc b/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.cc
index f8d3a4c4572..ccddfe8f693 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.cc
@@ -12,96 +12,36 @@
#include "native_client/src/shared/platform/nacl_check.h"
#include "native_client/src/shared/platform/nacl_time.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/cpp/file_io.h"
-#include "ppapi/cpp/file_ref.h"
#include "ppapi/cpp/url_request_info.h"
#include "ppapi/cpp/url_response_info.h"
#include "ppapi/native_client/src/trusted/plugin/callback_source.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include "ppapi/native_client/src/trusted/plugin/utility.h"
-namespace {
-
-const int32_t kExtensionUrlRequestStatusOk = 200;
-const int32_t kDataUriRequestStatusOk = 0;
-
-struct NaClFileInfo NoFileInfo() {
- struct NaClFileInfo info;
- memset(&info, 0, sizeof(info));
- info.desc = -1;
- return info;
-}
-
-// Converts a PP_FileHandle to a POSIX file descriptor.
-int32_t ConvertFileDescriptor(PP_FileHandle handle) {
- PLUGIN_PRINTF(("ConvertFileDescriptor, handle=%d\n", handle));
-#if NACL_WINDOWS
- int32_t file_desc = NACL_NO_FILE_DESC;
- // On Windows, valid handles are 32 bit unsigned integers so this is safe.
- file_desc = reinterpret_cast<uintptr_t>(handle);
- // Convert the Windows HANDLE from Pepper to a POSIX file descriptor.
- int32_t posix_desc = _open_osfhandle(file_desc, _O_RDWR | _O_BINARY);
- if (posix_desc == -1) {
- // Close the Windows HANDLE if it can't be converted.
- CloseHandle(reinterpret_cast<HANDLE>(file_desc));
- return -1;
- }
- return posix_desc;
-#else
- return handle;
-#endif
-}
-
-} // namespace
-
namespace plugin {
-void FileDownloader::Initialize(Plugin* instance) {
- PLUGIN_PRINTF(("FileDownloader::FileDownloader (this=%p)\n",
- static_cast<void*>(this)));
- CHECK(instance != NULL);
- CHECK(instance_ == NULL); // Can only initialize once.
- instance_ = instance;
+FileDownloader::FileDownloader(Plugin* instance)
+ : instance_(instance),
+ file_open_notify_callback_(pp::BlockUntilComplete()),
+ stream_finish_callback_(pp::BlockUntilComplete()),
+ mode_(DOWNLOAD_NONE),
+ data_stream_callback_source_(NULL) {
callback_factory_.Initialize(this);
- file_io_private_interface_ = static_cast<const PPB_FileIO_Private*>(
- pp::Module::Get()->GetBrowserInterface(PPB_FILEIO_PRIVATE_INTERFACE));
- url_loader_trusted_interface_ = static_cast<const PPB_URLLoaderTrusted*>(
- pp::Module::Get()->GetBrowserInterface(PPB_URLLOADERTRUSTED_INTERFACE));
temp_buffer_.resize(kTempBufferSize);
- cached_file_info_ = NoFileInfo();
}
bool FileDownloader::OpenStream(
const nacl::string& url,
const pp::CompletionCallback& callback,
StreamCallbackSource* stream_callback_source) {
- open_and_stream_ = false;
data_stream_callback_source_ = stream_callback_source;
- return Open(url, DOWNLOAD_STREAM, callback, true, NULL);
-}
-
-bool FileDownloader::Open(
- const nacl::string& url,
- DownloadMode mode,
- const pp::CompletionCallback& callback,
- bool record_progress,
- PP_URLLoaderTrusted_StatusCallback progress_callback) {
PLUGIN_PRINTF(("FileDownloader::Open (url=%s)\n", url.c_str()));
- if (callback.pp_completion_callback().func == NULL ||
- instance_ == NULL ||
- file_io_private_interface_ == NULL)
+ if (callback.pp_completion_callback().func == NULL || instance_ == NULL)
return false;
- CHECK(instance_ != NULL);
- open_time_ = NaClGetTimeOfDayMicroseconds();
status_code_ = -1;
- url_to_open_ = url;
- url_ = url;
file_open_notify_callback_ = callback;
- mode_ = mode;
- buffer_.clear();
- cached_file_info_ = NoFileInfo();
+ mode_ = DOWNLOAD_TO_BUFFER_AND_STREAM;
pp::URLRequestInfo url_request(instance_);
// Allow CORS.
@@ -115,52 +55,14 @@ bool FileDownloader::Open(
if (!extra_request_headers_.empty())
url_request.SetHeaders(extra_request_headers_);
- do {
- // Reset the url loader and file reader.
- // Note that we have the only reference to the underlying objects, so
- // this will implicitly close any pending IO and destroy them.
- url_loader_ = pp::URLLoader(instance_);
- url_scheme_ = instance_->GetUrlScheme(url);
- bool grant_universal_access = false;
- if (url_scheme_ == SCHEME_DATA) {
- // TODO(elijahtaylor) Remove this when data URIs can be read without
- // universal access.
- // https://bugs.webkit.org/show_bug.cgi?id=17352
- if (streaming_to_buffer()) {
- grant_universal_access = true;
- } else {
- // Open is to invoke a callback on success or failure. Schedule
- // it asynchronously to follow PPAPI's convention and avoid reentrancy.
- pp::Core* core = pp::Module::Get()->core();
- core->CallOnMainThread(0, callback, PP_ERROR_NOACCESS);
- PLUGIN_PRINTF(("FileDownloader::Open (pp_error=PP_ERROR_NOACCESS)\n"));
- return true;
- }
- }
-
- url_request.SetRecordDownloadProgress(record_progress);
-
- if (url_loader_trusted_interface_ != NULL) {
- if (grant_universal_access) {
- // TODO(sehr,jvoung): See if we can remove this -- currently
- // only used for data URIs.
- url_loader_trusted_interface_->GrantUniversalAccess(
- url_loader_.pp_resource());
- }
- if (progress_callback != NULL) {
- url_loader_trusted_interface_->RegisterStatusCallback(
- url_loader_.pp_resource(), progress_callback);
- }
- }
-
- // Prepare the url request.
- url_request.SetURL(url_);
+ // Reset the url loader and file reader.
+ // Note that we have the only reference to the underlying objects, so
+ // this will implicitly close any pending IO and destroy them.
+ url_loader_ = pp::URLLoader(instance_);
+ url_request.SetRecordDownloadProgress(true);
- if (streaming_to_file()) {
- file_reader_ = pp::FileIO(instance_);
- url_request.SetStreamToFile(true);
- }
- } while (0);
+ // Prepare the url request.
+ url_request.SetURL(url);
// Request asynchronous download of the url providing an on-load callback.
// As long as this step is guaranteed to be asynchronous, we can call
@@ -175,45 +77,6 @@ bool FileDownloader::Open(
return true;
}
-void FileDownloader::OpenFast(const nacl::string& url,
- PP_FileHandle file_handle,
- uint64_t file_token_lo, uint64_t file_token_hi) {
- PLUGIN_PRINTF(("FileDownloader::OpenFast (url=%s)\n", url.c_str()));
-
- cached_file_info_ = NoFileInfo();
- CHECK(instance_ != NULL);
- open_time_ = NaClGetTimeOfDayMicroseconds();
- status_code_ = NACL_HTTP_STATUS_OK;
- url_to_open_ = url;
- url_ = url;
- mode_ = DOWNLOAD_NONE;
- file_handle_ = file_handle;
- file_token_.lo = file_token_lo;
- file_token_.hi = file_token_hi;
-}
-
-struct NaClFileInfo FileDownloader::GetFileInfo() {
- PLUGIN_PRINTF(("FileDownloader::GetFileInfo\n"));
- if (cached_file_info_.desc != -1) {
- return cached_file_info_;
- } else if (not_streaming() && file_handle_ != PP_kInvalidFileHandle) {
- cached_file_info_.desc = ConvertFileDescriptor(file_handle_);
- if (cached_file_info_.desc != -1)
- cached_file_info_.file_token = file_token_;
- return cached_file_info_;
- }
- return NoFileInfo();
-}
-
-int64_t FileDownloader::TimeSinceOpenMilliseconds() const {
- int64_t now = NaClGetTimeOfDayMicroseconds();
- // If Open() wasn't called or we somehow return an earlier time now, just
- // return the 0 rather than worse nonsense values.
- if (open_time_ < 0 || now < open_time_)
- return 0;
- return (now - open_time_) / NACL_MICROS_PER_MILLI;
-}
-
bool FileDownloader::InitialResponseIsValid() {
// Process the response, validating the headers to confirm successful loading.
url_response_ = url_loader_.GetResponseInfo();
@@ -229,32 +92,12 @@ bool FileDownloader::InitialResponseIsValid() {
"FileDownloader::InitialResponseIsValid (url is not a string)\n"));
return false;
}
- url_ = full_url.AsString();
+ full_url_ = full_url.AsString();
- // Note that URLs in the data-URI scheme produce different error
- // codes than other schemes. This is because data-URI are really a
- // special kind of file scheme, and therefore do not produce HTTP
- // status codes.
- bool status_ok = false;
status_code_ = url_response_.GetStatusCode();
- switch (url_scheme_) {
- case SCHEME_CHROME_EXTENSION:
- PLUGIN_PRINTF(("FileDownloader::InitialResponseIsValid (chrome-extension "
- "response status_code=%" NACL_PRId32 ")\n", status_code_));
- status_ok = (status_code_ == kExtensionUrlRequestStatusOk);
- break;
- case SCHEME_DATA:
- PLUGIN_PRINTF(("FileDownloader::InitialResponseIsValid (data URI "
- "response status_code=%" NACL_PRId32 ")\n", status_code_));
- status_ok = (status_code_ == kDataUriRequestStatusOk);
- break;
- case SCHEME_OTHER:
- PLUGIN_PRINTF(("FileDownloader::InitialResponseIsValid (HTTP response "
- "status_code=%" NACL_PRId32 ")\n", status_code_));
- status_ok = (status_code_ == NACL_HTTP_STATUS_OK);
- break;
- }
- return status_ok;
+ PLUGIN_PRINTF(("FileDownloader::InitialResponseIsValid ("
+ "response status_code=%" NACL_PRId32 ")\n", status_code_));
+ return status_code_ == NACL_HTTP_STATUS_OK;
}
void FileDownloader::URLLoadStartNotify(int32_t pp_error) {
@@ -270,95 +113,23 @@ void FileDownloader::URLLoadStartNotify(int32_t pp_error) {
return;
}
- if (open_and_stream_) {
- FinishStreaming(file_open_notify_callback_);
- return;
- }
-
file_open_notify_callback_.RunAndClear(PP_OK);
}
-void FileDownloader::FinishStreaming(
+void FileDownloader::BeginStreaming(
const pp::CompletionCallback& callback) {
stream_finish_callback_ = callback;
// Finish streaming the body providing an optional callback.
- if (streaming_to_file()) {
- pp::CompletionCallback onload_callback =
- callback_factory_.NewOptionalCallback(
- &FileDownloader::URLLoadFinishNotify);
- int32_t pp_error = url_loader_.FinishStreamingToFile(onload_callback);
- bool async_notify_ok = (pp_error == PP_OK_COMPLETIONPENDING);
- PLUGIN_PRINTF(("FileDownloader::FinishStreaming (async_notify_ok=%d)\n",
- async_notify_ok));
- if (!async_notify_ok) {
- // Call manually to free allocated memory and report errors. This calls
- // |stream_finish_callback_| with |pp_error| as the parameter.
- onload_callback.RunAndClear(pp_error);
- }
- } else {
- pp::CompletionCallback onread_callback =
- callback_factory_.NewOptionalCallback(
- &FileDownloader::URLReadBodyNotify);
- int32_t temp_size = static_cast<int32_t>(temp_buffer_.size());
- int32_t pp_error = url_loader_.ReadResponseBody(&temp_buffer_[0],
- temp_size,
- onread_callback);
- bool async_notify_ok = (pp_error == PP_OK_COMPLETIONPENDING);
- PLUGIN_PRINTF((
- "FileDownloader::FinishStreaming (async_notify_ok=%d)\n",
- async_notify_ok));
- if (!async_notify_ok) {
- onread_callback.RunAndClear(pp_error);
- }
- }
-}
-
-void FileDownloader::URLLoadFinishNotify(int32_t pp_error) {
- PLUGIN_PRINTF(("FileDownloader::URLLoadFinishNotify (pp_error=%"
- NACL_PRId32")\n", pp_error));
- if (pp_error != PP_OK) { // Streaming failed.
- stream_finish_callback_.RunAndClear(pp_error);
- return;
- }
-
- // Validate response again on load (though it should be the same
- // as it was during InitialResponseIsValid?).
- url_response_ = url_loader_.GetResponseInfo();
- CHECK(url_response_.GetStatusCode() == NACL_HTTP_STATUS_OK ||
- url_response_.GetStatusCode() == kExtensionUrlRequestStatusOk);
-
- // Record the full url from the response.
- pp::Var full_url = url_response_.GetURL();
- PLUGIN_PRINTF(("FileDownloader::URLLoadFinishNotify (full_url=%s)\n",
- full_url.DebugString().c_str()));
- if (!full_url.is_string()) {
- stream_finish_callback_.RunAndClear(PP_ERROR_FAILED);
- return;
- }
- url_ = full_url.AsString();
-
- // The file is now fully downloaded.
- pp::FileRef file(url_response_.GetBodyAsFileRef());
- if (file.is_null()) {
- PLUGIN_PRINTF(("FileDownloader::URLLoadFinishNotify (file=NULL)\n"));
- stream_finish_callback_.RunAndClear(PP_ERROR_FAILED);
- return;
- }
-
- // Open the file providing an optional callback.
- pp::CompletionCallback onopen_callback =
+ pp::CompletionCallback onread_callback =
callback_factory_.NewOptionalCallback(
- &FileDownloader::StreamFinishNotify);
- pp_error = file_reader_.Open(file, PP_FILEOPENFLAG_READ, onopen_callback);
- bool async_notify_ok = (pp_error == PP_OK_COMPLETIONPENDING);
- PLUGIN_PRINTF(("FileDownloader::URLLoadFinishNotify (async_notify_ok=%d)\n",
- async_notify_ok));
- if (!async_notify_ok) {
- // Call manually to free allocated memory and report errors. This calls
- // |stream_finish_callback_| with |pp_error| as the parameter.
- onopen_callback.RunAndClear(pp_error);
- }
+ &FileDownloader::URLReadBodyNotify);
+ int32_t temp_size = static_cast<int32_t>(temp_buffer_.size());
+ int32_t pp_error = url_loader_.ReadResponseBody(&temp_buffer_[0],
+ temp_size,
+ onread_callback);
+ if (pp_error != PP_OK_COMPLETIONPENDING)
+ onread_callback.RunAndClear(pp_error);
}
void FileDownloader::URLReadBodyNotify(int32_t pp_error) {
@@ -367,20 +138,15 @@ void FileDownloader::URLReadBodyNotify(int32_t pp_error) {
if (pp_error < PP_OK) {
stream_finish_callback_.RunAndClear(pp_error);
} else if (pp_error == PP_OK) {
- if (streaming_to_user()) {
- data_stream_callback_source_->GetCallback().RunAndClear(PP_OK);
- }
- StreamFinishNotify(PP_OK);
+ data_stream_callback_source_->GetCallback().RunAndClear(PP_OK);
+ stream_finish_callback_.RunAndClear(PP_OK);
} else {
- if (streaming_to_buffer()) {
- buffer_.insert(buffer_.end(), &temp_buffer_[0], &temp_buffer_[pp_error]);
- } else if (streaming_to_user()) {
- PLUGIN_PRINTF(("Running data_stream_callback, temp_buffer_=%p\n",
- &temp_buffer_[0]));
- StreamCallback cb = data_stream_callback_source_->GetCallback();
- *(cb.output()) = &temp_buffer_;
- cb.RunAndClear(pp_error);
- }
+ PLUGIN_PRINTF(("Running data_stream_callback, temp_buffer_=%p\n",
+ &temp_buffer_[0]));
+ StreamCallback cb = data_stream_callback_source_->GetCallback();
+ *(cb.output()) = &temp_buffer_;
+ cb.RunAndClear(pp_error);
+
pp::CompletionCallback onread_callback =
callback_factory_.NewOptionalCallback(
&FileDownloader::URLReadBodyNotify);
@@ -388,10 +154,8 @@ void FileDownloader::URLReadBodyNotify(int32_t pp_error) {
pp_error = url_loader_.ReadResponseBody(&temp_buffer_[0],
temp_size,
onread_callback);
- bool async_notify_ok = (pp_error == PP_OK_COMPLETIONPENDING);
- if (!async_notify_ok) {
+ if (pp_error != PP_OK_COMPLETIONPENDING)
onread_callback.RunAndClear(pp_error);
- }
}
}
@@ -412,50 +176,4 @@ nacl::string FileDownloader::GetResponseHeaders() const {
return headers.AsString();
}
-void FileDownloader::StreamFinishNotify(int32_t pp_error) {
- PLUGIN_PRINTF((
- "FileDownloader::StreamFinishNotify (pp_error=%" NACL_PRId32 ")\n",
- pp_error));
-
- // Run the callback if we have an error, or if we don't have a file_reader_
- // to get a file handle for.
- if (pp_error != PP_OK || file_reader_.pp_resource() == 0) {
- stream_finish_callback_.RunAndClear(pp_error);
- return;
- }
-
- pp::CompletionCallbackWithOutput<PP_FileHandle> cb =
- callback_factory_.NewCallbackWithOutput(
- &FileDownloader::GotFileHandleNotify);
- file_io_private_interface_->RequestOSFileHandle(
- file_reader_.pp_resource(), cb.output(), cb.pp_completion_callback());
-}
-
-bool FileDownloader::streaming_to_file() const {
- return mode_ == DOWNLOAD_TO_FILE;
-}
-
-bool FileDownloader::streaming_to_buffer() const {
- return mode_ == DOWNLOAD_TO_BUFFER;
-}
-
-bool FileDownloader::streaming_to_user() const {
- return mode_ == DOWNLOAD_STREAM;
-}
-
-bool FileDownloader::not_streaming() const {
- return mode_ == DOWNLOAD_NONE;
-}
-
-void FileDownloader::GotFileHandleNotify(int32_t pp_error,
- PP_FileHandle handle) {
- PLUGIN_PRINTF((
- "FileDownloader::GotFileHandleNotify (pp_error=%" NACL_PRId32 ")\n",
- pp_error));
- if (pp_error == PP_OK)
- cached_file_info_.desc = ConvertFileDescriptor(handle);
-
- stream_finish_callback_.RunAndClear(pp_error);
-}
-
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.h b/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.h
index 4fd7997cc92..4a1a71accf8 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/file_downloader.h
@@ -9,10 +9,8 @@
#include "native_client/src/include/nacl_macros.h"
#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/trusted/validator/nacl_file_info.h"
-#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/c/private/ppb_file_io_private.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
+#include "native_client/src/public/nacl_file_info.h"
+#include "ppapi/c/private/ppb_nacl_private.h"
#include "ppapi/cpp/file_io.h"
#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/url_loader.h"
@@ -25,18 +23,10 @@ namespace plugin {
class Plugin;
typedef enum {
- DOWNLOAD_TO_FILE = 0,
- DOWNLOAD_TO_BUFFER,
- DOWNLOAD_STREAM,
+ DOWNLOAD_TO_BUFFER_AND_STREAM = 0,
DOWNLOAD_NONE
} DownloadMode;
-typedef enum {
- SCHEME_CHROME_EXTENSION,
- SCHEME_DATA,
- SCHEME_OTHER
-} UrlSchemeType;
-
typedef std::vector<char>* FileStreamData;
typedef CallbackSource<FileStreamData> StreamCallbackSource;
typedef pp::CompletionCallbackWithOutput<FileStreamData> StreamCallback;
@@ -45,85 +35,39 @@ typedef pp::CompletionCallbackWithOutput<FileStreamData> StreamCallback;
// the url into a file and providing an open file descriptor.
class FileDownloader {
public:
- // Ctor initializes |instance_| to NULL, be sure to call Initialize() before
- // calling Open(), or Open() will fail.
- FileDownloader()
- : instance_(NULL),
- file_open_notify_callback_(pp::BlockUntilComplete()),
- stream_finish_callback_(pp::BlockUntilComplete()),
- file_handle_(PP_kInvalidFileHandle),
- file_io_private_interface_(NULL),
- url_loader_trusted_interface_(NULL),
- open_time_(-1),
- mode_(DOWNLOAD_NONE),
- open_and_stream_(true),
- url_scheme_(SCHEME_OTHER),
- data_stream_callback_source_(NULL) {}
+ explicit FileDownloader(Plugin* instance);
~FileDownloader() {}
- // Initialize() can only be called once during the lifetime of this instance.
- void Initialize(Plugin* instance);
-
// Issues a GET on |url| to start downloading the response into a file,
// and finish streaming it. |callback| will be run after streaming is
// done or if an error prevents streaming from completing.
// Returns true when callback is scheduled to be called on success or failure.
- // Returns false if callback is NULL, Initialize() has not been called or if
- // the PPB_FileIO_Trusted interface is not available.
+ // Returns false if callback is NULL, or if the PPB_FileIO_Trusted interface
+ // is not available.
// If |record_progress| is true, then download progress will be recorded,
// and can be polled through GetDownloadProgress().
// If |progress_callback| is not NULL and |record_progress| is true,
// then the callback will be invoked for every progress update received
// by the loader.
- bool Open(const nacl::string& url,
- DownloadMode mode,
- const pp::CompletionCallback& callback,
- bool record_progress,
- PP_URLLoaderTrusted_StatusCallback progress_callback);
// Similar to Open(), but used for streaming the |url| data directly to the
// caller without writing to a temporary file. The callbacks provided by
// |stream_callback_source| are expected to copy the data before returning.
// |callback| is called once the response headers are received,
- // and streaming must be completed separately via FinishStreaming().
+ // and streaming must be completed separately via BeginStreaming().
bool OpenStream(const nacl::string& url,
const pp::CompletionCallback& callback,
StreamCallbackSource* stream_callback_source);
// Finish streaming the response body for a URL request started by either
- // Open() or OpenStream(). If DownloadMode is DOWNLOAD_TO_FILE,
- // then the response body is streamed to a file, the file is opened and
- // a file descriptor is made available. Runs the given |callback| when
- // streaming is done.
- void FinishStreaming(const pp::CompletionCallback& callback);
-
- // Bypasses downloading and takes a handle to the open file. To get the fd,
- // call GetFileInfo().
- void OpenFast(const nacl::string& url, PP_FileHandle file_handle,
- uint64_t file_token_lo, uint64_t file_token_hi);
-
- // Return a structure describing the file opened, including a file desc.
- // If downloading and opening succeeded, this returns a valid read-only
- // POSIX file descriptor. On failure, the return value is an invalid
- // descriptor. The file descriptor is owned by this instance, so the
- // delegate does not have to close it.
- struct NaClFileInfo GetFileInfo();
-
- // Returns the time delta between the call to Open() and this function.
- int64_t TimeSinceOpenMilliseconds() const;
-
- // The value of |url_| changes over the life of this instance. When the file
- // is first opened, |url_| is a copy of the URL used to open the file, which
- // can be a relative URL. Once the GET request has finished, and the contents
- // of the file represented by |url_| are available, |url_| is the full URL
- // including the scheme, host and full path.
- const nacl::string& url() const { return url_; }
-
- // Returns the url passed to Open().
- const nacl::string& url_to_open() const { return url_to_open_; }
-
- // Returns the PP_Resource of the active URL loader, or kInvalidResource.
- PP_Resource url_loader() const { return url_loader_.pp_resource(); }
+ // OpenStream(). Runs the given |callback| when streaming is done.
+ void BeginStreaming(const pp::CompletionCallback& callback);
+
+ // Once the GET request has finished, and the contents of the file
+ // represented by |url_| are available, |full_url_| is the full URL including
+ // the scheme, host and full path.
+ // Returns an empty string before the GET request has finished.
+ const nacl::string& full_url() const { return full_url_; }
// GetDownloadProgress() returns the current download progress, which is
// meaningful after Open() has been called. Progress only refers to the
@@ -138,14 +82,6 @@ class FileDownloader {
bool GetDownloadProgress(int64_t* bytes_received,
int64_t* total_bytes_to_be_received) const;
- // Returns the buffer used for DOWNLOAD_TO_BUFFER mode.
- const std::deque<char>& buffer() const { return buffer_; }
-
- bool streaming_to_file() const;
- bool streaming_to_buffer() const;
- bool streaming_to_user() const;
- bool not_streaming() const;
-
int status_code() const { return status_code_; }
nacl::string GetResponseHeaders() const;
@@ -153,54 +89,37 @@ class FileDownloader {
extra_request_headers_ = extra_request_headers;
}
-
private:
NACL_DISALLOW_COPY_AND_ASSIGN(FileDownloader);
- // This class loads and opens the file in three steps for DOWNLOAD_TO_FILE:
- // 1) Ask the browser to start streaming |url_| as a file.
- // 2) Ask the browser to finish streaming if headers indicate success.
- // 3) Ask the browser to open the file, so we can get the file descriptor.
- // For DOWNLOAD_TO_BUFFER, the process is very similar:
+
+ // For DOWNLOAD_TO_BUFFER_AND_STREAM, the process is very similar:
// 1) Ask the browser to start streaming |url_| to an internal buffer.
// 2) Ask the browser to finish streaming to |temp_buffer_| on success.
- // 3) Wait for streaming to finish, filling |buffer_| incrementally.
+ // 3) Wait for streaming to finish, passing the data directly to the user.
// Each step is done asynchronously using callbacks. We create callbacks
// through a factory to take advantage of ref-counting.
- // DOWNLOAD_STREAM is similar to DOWNLOAD_TO_BUFFER except the downloaded
- // data is passed directly to the user instead of saved in a buffer.
- // The public Open*() functions start step 1), and the public FinishStreaming
+ // The public Open*() functions start step 1), and the public BeginStreaming
// function proceeds to step 2) and 3).
bool InitialResponseIsValid();
void URLLoadStartNotify(int32_t pp_error);
- void URLLoadFinishNotify(int32_t pp_error);
void URLReadBodyNotify(int32_t pp_error);
- void StreamFinishNotify(int32_t pp_error);
- void GotFileHandleNotify(int32_t pp_error, PP_FileHandle handle);
Plugin* instance_;
- nacl::string url_to_open_;
- nacl::string url_;
+ nacl::string full_url_;
+
nacl::string extra_request_headers_;
pp::URLResponseInfo url_response_;
pp::CompletionCallback file_open_notify_callback_;
pp::CompletionCallback stream_finish_callback_;
- pp::FileIO file_reader_;
- PP_FileHandle file_handle_;
- struct NaClFileToken file_token_;
- const PPB_FileIO_Private* file_io_private_interface_;
- const PPB_URLLoaderTrusted* url_loader_trusted_interface_;
pp::URLLoader url_loader_;
pp::CompletionCallbackFactory<FileDownloader> callback_factory_;
- int64_t open_time_;
int32_t status_code_;
DownloadMode mode_;
- bool open_and_stream_;
- static const uint32_t kTempBufferSize = 2048;
+ static const uint32_t kTempBufferSize = 16384;
std::vector<char> temp_buffer_;
- std::deque<char> buffer_;
- UrlSchemeType url_scheme_;
StreamCallbackSource* data_stream_callback_source_;
- NaClFileInfo cached_file_info_;
};
-} // namespace plugin;
+
+} // namespace plugin
+
#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_DOWNLOADER_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/file_utils.cc b/chromium/ppapi/native_client/src/trusted/plugin/file_utils.cc
deleted file mode 100644
index d83432785b2..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/file_utils.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Some common file utilities for plugin code.
-
-#include "ppapi/native_client/src/trusted/plugin/file_utils.h"
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "native_client/src/include/nacl_scoped_ptr.h"
-#include "native_client/src/include/portability_io.h"
-#include "native_client/src/include/portability_string.h"
-
-
-namespace plugin {
-namespace file_utils {
-
-StatusCode SlurpFile(int32_t fd,
- nacl::string& out_buf,
- size_t max_size_to_read) {
- struct stat stat_buf;
- if (fstat(fd, &stat_buf) != 0) {
- CLOSE(fd);
- return PLUGIN_FILE_ERROR_STAT;
- }
-
- // Figure out how large a buffer we need to slurp the whole file (with a
- // '\0' at the end).
- size_t bytes_to_read = static_cast<size_t>(stat_buf.st_size);
- if (bytes_to_read > max_size_to_read - 1) {
- CLOSE(fd);
- return PLUGIN_FILE_ERROR_FILE_TOO_LARGE;
- }
-
- FILE* input_file = fdopen(fd, "rb");
- if (!input_file) {
- CLOSE(fd);
- return PLUGIN_FILE_ERROR_OPEN;
- }
- // From here on, closing input_file will automatically close fd.
-
- nacl::scoped_array<char> buffer(new char[bytes_to_read + 1]);
- if (buffer == NULL) {
- fclose(input_file);
- return PLUGIN_FILE_ERROR_MEM_ALLOC;
- }
-
- size_t total_bytes_read = 0;
- while (bytes_to_read > 0) {
- size_t bytes_this_read = fread(&buffer[total_bytes_read],
- sizeof(char),
- bytes_to_read,
- input_file);
- if (bytes_this_read < bytes_to_read && (feof(input_file) ||
- ferror(input_file))) {
- fclose(input_file);
- return PLUGIN_FILE_ERROR_READ;
- }
- total_bytes_read += bytes_this_read;
- bytes_to_read -= bytes_this_read;
- }
-
- fclose(input_file);
- buffer[total_bytes_read] = '\0';
- out_buf = buffer.get();
- return PLUGIN_FILE_SUCCESS;
-}
-
-} // namespace file_utils
-} // namespace plugin
-
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/file_utils.h b/chromium/ppapi/native_client/src/trusted/plugin/file_utils.h
deleted file mode 100644
index 223bf66edac..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/file_utils.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Some common file utilities for plugin code.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_
-
-#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/include/portability_io.h"
-#include "ppapi/c/pp_stdint.h"
-
-namespace plugin {
-namespace file_utils {
-
-enum StatusCode {
- PLUGIN_FILE_SUCCESS = 0,
- PLUGIN_FILE_ERROR_MEM_ALLOC = 1,
- PLUGIN_FILE_ERROR_OPEN = 2,
- PLUGIN_FILE_ERROR_FILE_TOO_LARGE = 3,
- PLUGIN_FILE_ERROR_STAT = 4,
- PLUGIN_FILE_ERROR_READ = 5
-};
-
-// Slurp the whole contents of the given file (|fd| - open file descriptor) into
-// |out_buf|. |max_size_to_read| is the maximal allowed size of the file.
-// If the file turns out to be larger, an error is returned. In any case,
-// |fd| is closed.
-StatusCode SlurpFile(int32_t fd,
- nacl::string& out_buf,
- size_t max_size_to_read = (1 << 20));
-
-} // namespace file_utils
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_FILE_UTILS_H_
-
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.cc b/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.cc
deleted file mode 100644
index 4a3640f5042..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.cc
+++ /dev/null
@@ -1,651 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include <algorithm>
-
-#include "ppapi/native_client/src/trusted/plugin/json_manifest.h"
-
-#include <stdlib.h>
-
-#include "native_client/src/include/nacl_base.h"
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/include/portability.h"
-#include "native_client/src/shared/platform/nacl_check.h"
-#include "ppapi/cpp/dev/url_util_dev.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
-#include "ppapi/native_client/src/trusted/plugin/pnacl_options.h"
-#include "ppapi/native_client/src/trusted/plugin/utility.h"
-#include "third_party/jsoncpp/source/include/json/reader.h"
-
-namespace plugin {
-
-namespace {
-// Top-level section name keys
-const char* const kProgramKey = "program";
-const char* const kInterpreterKey = "interpreter";
-const char* const kFilesKey = "files";
-
-// ISA Dictionary keys
-const char* const kX8632Key = "x86-32";
-const char* const kX8664Key = "x86-64";
-const char* const kArmKey = "arm";
-const char* const kPortableKey = "portable";
-
-// Url Resolution keys
-const char* const kPnaclTranslateKey = "pnacl-translate";
-const char* const kUrlKey = "url";
-
-// PNaCl keys
-const char* const kOptLevelKey = "optlevel";
-
-// Sample NaCl manifest file:
-// {
-// "program": {
-// "x86-32": {"url": "myprogram_x86-32.nexe"},
-// "x86-64": {"url": "myprogram_x86-64.nexe"},
-// "arm": {"url": "myprogram_arm.nexe"}
-// },
-// "interpreter": {
-// "x86-32": {"url": "interpreter_x86-32.nexe"},
-// "x86-64": {"url": "interpreter_x86-64.nexe"},
-// "arm": {"url": "interpreter_arm.nexe"}
-// },
-// "files": {
-// "foo.txt": {
-// "portable": {"url": "foo.txt"}
-// },
-// "bar.txt": {
-// "x86-32": {"url": "x86-32/bar.txt"},
-// "portable": {"url": "bar.txt"}
-// },
-// "libfoo.so": {
-// "x86-64" : { "url": "..." }
-// }
-// }
-// }
-
-// Sample PNaCl manifest file:
-// {
-// "program": {
-// "portable": {
-// "pnacl-translate": {
-// "url": "myprogram.pexe",
-// "optlevel": 0
-// }
-// }
-// },
-// "files": {
-// "foo.txt": {
-// "portable": {"url": "foo.txt"}
-// },
-// "bar.txt": {
-// "portable": {"url": "bar.txt"}
-// }
-// }
-// }
-
-// Looks up |property_name| in the vector |valid_names| with length
-// |valid_name_count|. Returns true if |property_name| is found.
-bool FindMatchingProperty(const nacl::string& property_name,
- const char** valid_names,
- size_t valid_name_count) {
- for (size_t i = 0; i < valid_name_count; ++i) {
- if (property_name == valid_names[i]) {
- return true;
- }
- }
- return false;
-}
-
-// Return true if this is a valid dictionary. Having only keys present in
-// |valid_keys| and having at least the keys in |required_keys|.
-// Error messages will be placed in |error_string|, given that the dictionary
-// was the property value of |container_key|.
-// E.g., "container_key" : dictionary
-bool IsValidDictionary(const Json::Value& dictionary,
- const nacl::string& container_key,
- const nacl::string& parent_key,
- const char** valid_keys,
- size_t valid_key_count,
- const char** required_keys,
- size_t required_key_count,
- nacl::string* error_string) {
- if (!dictionary.isObject()) {
- nacl::stringstream error_stream;
- error_stream << parent_key << " property '" << container_key
- << "' is non-dictionary value '"
- << dictionary.toStyledString() << "'.";
- *error_string = error_stream.str();
- return false;
- }
- // Check for unknown dictionary members.
- Json::Value::Members members = dictionary.getMemberNames();
- for (size_t i = 0; i < members.size(); ++i) {
- nacl::string property_name = members[i];
- if (!FindMatchingProperty(property_name,
- valid_keys,
- valid_key_count)) {
- // For forward compatibility, we do not prohibit other keys being in
- // the dictionary.
- PLUGIN_PRINTF(("WARNING: '%s' property '%s' has unknown key '%s'.\n",
- parent_key.c_str(),
- container_key.c_str(), property_name.c_str()));
- }
- }
- // Check for required members.
- for (size_t i = 0; i < required_key_count; ++i) {
- if (!dictionary.isMember(required_keys[i])) {
- nacl::stringstream error_stream;
- error_stream << parent_key << " property '" << container_key
- << "' does not have required key: '"
- << required_keys[i] << "'.";
- *error_string = error_stream.str();
- return false;
- }
- }
- return true;
-}
-
-// Validate a "url" dictionary assuming it was resolved from container_key.
-// E.g., "container_key" : { "url": "foo.txt" }
-bool IsValidUrlSpec(const Json::Value& url_spec,
- const nacl::string& container_key,
- const nacl::string& parent_key,
- const nacl::string& sandbox_isa,
- nacl::string* error_string) {
- static const char* kManifestUrlSpecRequired[] = {
- kUrlKey
- };
- const char** urlSpecPlusOptional;
- size_t urlSpecPlusOptionalLength;
- if (sandbox_isa == kPortableKey) {
- static const char* kPnaclUrlSpecPlusOptional[] = {
- kUrlKey,
- kOptLevelKey,
- };
- urlSpecPlusOptional = kPnaclUrlSpecPlusOptional;
- urlSpecPlusOptionalLength = NACL_ARRAY_SIZE(kPnaclUrlSpecPlusOptional);
- } else {
- // URL specifications must not contain "pnacl-translate" keys.
- // This prohibits NaCl clients from invoking PNaCl.
- if (url_spec.isMember(kPnaclTranslateKey)) {
- nacl::stringstream error_stream;
- error_stream << "PNaCl-like NMF with application/x-nacl mimetype instead "
- << "of x-pnacl mimetype (has " << kPnaclTranslateKey << ").";
- *error_string = error_stream.str();
- return false;
- }
- urlSpecPlusOptional = kManifestUrlSpecRequired;
- urlSpecPlusOptionalLength = NACL_ARRAY_SIZE(kManifestUrlSpecRequired);
- }
- if (!IsValidDictionary(url_spec, container_key, parent_key,
- urlSpecPlusOptional,
- urlSpecPlusOptionalLength,
- kManifestUrlSpecRequired,
- NACL_ARRAY_SIZE(kManifestUrlSpecRequired),
- error_string)) {
- return false;
- }
- // Verify the correct types of the fields if they exist.
- Json::Value url = url_spec[kUrlKey];
- if (!url.isString()) {
- nacl::stringstream error_stream;
- error_stream << parent_key << " property '" << container_key <<
- "' has non-string value '" << url.toStyledString() <<
- "' for key '" << kUrlKey << "'.";
- *error_string = error_stream.str();
- return false;
- }
- Json::Value opt_level = url_spec[kOptLevelKey];
- if (!opt_level.empty() && !opt_level.isNumeric()) {
- nacl::stringstream error_stream;
- error_stream << parent_key << " property '" << container_key <<
- "' has non-numeric value '" << opt_level.toStyledString() <<
- "' for key '" << kOptLevelKey << "'.";
- *error_string = error_stream.str();
- return false;
- }
- return true;
-}
-
-// Validate a "pnacl-translate" dictionary, assuming it was resolved from
-// container_key. E.g., "container_key" : { "pnacl_translate" : URLSpec }
-bool IsValidPnaclTranslateSpec(const Json::Value& pnacl_spec,
- const nacl::string& container_key,
- const nacl::string& parent_key,
- const nacl::string& sandbox_isa,
- nacl::string* error_string) {
- static const char* kManifestPnaclSpecProperties[] = {
- kPnaclTranslateKey
- };
- if (!IsValidDictionary(pnacl_spec, container_key, parent_key,
- kManifestPnaclSpecProperties,
- NACL_ARRAY_SIZE(kManifestPnaclSpecProperties),
- kManifestPnaclSpecProperties,
- NACL_ARRAY_SIZE(kManifestPnaclSpecProperties),
- error_string)) {
- return false;
- }
- Json::Value url_spec = pnacl_spec[kPnaclTranslateKey];
- if (!IsValidUrlSpec(url_spec, kPnaclTranslateKey,
- container_key, sandbox_isa, error_string)) {
- return false;
- }
- return true;
-}
-
-// Validates that |dictionary| is a valid ISA dictionary. An ISA dictionary
-// is validated to have keys from within the set of recognized ISAs. Unknown
-// ISAs are allowed, but ignored and warnings are produced. It is also validated
-// that it must have an entry to match the ISA specified in |sandbox_isa| or
-// have a fallback 'portable' entry if there is no match. Returns true if
-// |dictionary| is an ISA to URL map. Sets |error_info| to something
-// descriptive if it fails.
-bool IsValidISADictionary(const Json::Value& dictionary,
- const nacl::string& parent_key,
- const nacl::string& sandbox_isa,
- bool must_find_matching_entry,
- ErrorInfo* error_info) {
- if (error_info == NULL) return false;
-
- // An ISA to URL dictionary has to be an object.
- if (!dictionary.isObject()) {
- error_info->SetReport(ERROR_MANIFEST_SCHEMA_VALIDATE,
- nacl::string("manifest: ") + parent_key +
- " property is not an ISA to URL dictionary");
- return false;
- }
- // Build the set of reserved ISA dictionary keys.
- const char** isaProperties;
- size_t isaPropertiesLength;
- if (sandbox_isa == kPortableKey) {
- // The known values for PNaCl ISA dictionaries in the manifest.
- static const char* kPnaclManifestISAProperties[] = {
- kPortableKey
- };
- isaProperties = kPnaclManifestISAProperties;
- isaPropertiesLength = NACL_ARRAY_SIZE(kPnaclManifestISAProperties);
- } else {
- // The known values for NaCl ISA dictionaries in the manifest.
- static const char* kNaClManifestISAProperties[] = {
- kX8632Key,
- kX8664Key,
- kArmKey,
- // "portable" is here to allow checking that, if present, it can
- // only refer to an URL, such as for a data file, and not to
- // "pnacl-translate", which would cause the creation of a nexe.
- kPortableKey
- };
- isaProperties = kNaClManifestISAProperties;
- isaPropertiesLength = NACL_ARRAY_SIZE(kNaClManifestISAProperties);
- }
- // Check that entries in the dictionary are structurally correct.
- Json::Value::Members members = dictionary.getMemberNames();
- for (size_t i = 0; i < members.size(); ++i) {
- nacl::string property_name = members[i];
- Json::Value property_value = dictionary[property_name];
- nacl::string error_string;
- if (FindMatchingProperty(property_name,
- isaProperties,
- isaPropertiesLength)) {
- // For NaCl, arch entries can only be
- // "arch/portable" : URLSpec
- // For PNaCl arch in "program" dictionary entries can only be
- // "portable" : { "pnacl-translate": URLSpec }
- // For PNaCl arch elsewhere, dictionary entries can only be
- // "portable" : URLSpec
- if ((sandbox_isa != kPortableKey &&
- !IsValidUrlSpec(property_value, property_name, parent_key,
- sandbox_isa, &error_string)) ||
- (sandbox_isa == kPortableKey &&
- parent_key == kProgramKey &&
- !IsValidPnaclTranslateSpec(property_value, property_name, parent_key,
- sandbox_isa, &error_string)) ||
- (sandbox_isa == kPortableKey &&
- parent_key != kProgramKey &&
- !IsValidUrlSpec(property_value, property_name, parent_key,
- sandbox_isa, &error_string))) {
- error_info->SetReport(ERROR_MANIFEST_SCHEMA_VALIDATE,
- nacl::string("manifest: ") + error_string);
- return false;
- }
- } else {
- // For forward compatibility, we do not prohibit other keys being in
- // the dictionary, as they may be architectures supported in later
- // versions. However, the value of these entries must be an URLSpec.
- PLUGIN_PRINTF(("IsValidISADictionary: unrecognized key '%s'.\n",
- property_name.c_str()));
- if (!IsValidUrlSpec(property_value, property_name, parent_key,
- sandbox_isa, &error_string)) {
- error_info->SetReport(ERROR_MANIFEST_SCHEMA_VALIDATE,
- nacl::string("manifest: ") + error_string);
- return false;
- }
- }
- }
-
- if (sandbox_isa == kPortableKey) {
- bool has_portable = dictionary.isMember(kPortableKey);
-
- if (!has_portable) {
- error_info->SetReport(
- ERROR_MANIFEST_PROGRAM_MISSING_ARCH,
- nacl::string("manifest: no version of ") + parent_key +
- " given for portable.");
- return false;
- }
- } else if (must_find_matching_entry) {
- // TODO(elijahtaylor) add ISA resolver here if we expand ISAs to include
- // micro-architectures that can resolve to multiple valid sandboxes.
- bool has_isa = dictionary.isMember(sandbox_isa);
- bool has_portable = dictionary.isMember(kPortableKey);
-
- if (!has_isa && !has_portable) {
- error_info->SetReport(
- ERROR_MANIFEST_PROGRAM_MISSING_ARCH,
- nacl::string("manifest: no version of ") + parent_key +
- " given for current arch and no portable version found.");
- return false;
- }
- }
-
- return true;
-}
-
-void GrabUrlAndPnaclOptions(const Json::Value& url_spec,
- nacl::string* url,
- PnaclOptions* pnacl_options) {
- *url = url_spec[kUrlKey].asString();
- if (url_spec.isMember(kOptLevelKey)) {
- int32_t opt_raw = url_spec[kOptLevelKey].asInt();
- // set_opt_level will normalize the values.
- pnacl_options->set_opt_level(opt_raw);
- }
-}
-
-bool GetURLFromISADictionary(const Json::Value& dictionary,
- const nacl::string& parent_key,
- const nacl::string& sandbox_isa,
- nacl::string* url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) {
- if (url == NULL || pnacl_options == NULL || error_info == NULL)
- return false;
-
- // When the application actually requests a resolved URL, we must have
- // a matching entry (sandbox_isa or portable) for NaCl.
- if (!IsValidISADictionary(dictionary, parent_key, sandbox_isa, true,
- error_info)) {
- error_info->SetReport(ERROR_MANIFEST_RESOLVE_URL,
- "architecture " + sandbox_isa +
- " is not found for file " + parent_key);
- return false;
- }
-
- *url = "";
-
- // The call to IsValidISADictionary() above guarantees that either
- // sandbox_isa or kPortableKey is present in the dictionary.
- bool has_portable = dictionary.isMember(kPortableKey);
- bool has_isa = dictionary.isMember(sandbox_isa);
- nacl::string chosen_isa;
- if ((sandbox_isa == kPortableKey) || (has_portable && !has_isa)) {
- chosen_isa = kPortableKey;
- } else {
- chosen_isa = sandbox_isa;
- }
- const Json::Value& isa_spec = dictionary[chosen_isa];
- // Check if this requires a pnacl-translate, otherwise just grab the URL.
- // We may have pnacl-translate for isa-specific bitcode for CPU tuning.
- if (isa_spec.isMember(kPnaclTranslateKey)) {
- // PNaCl
- GrabUrlAndPnaclOptions(isa_spec[kPnaclTranslateKey], url, pnacl_options);
- pnacl_options->set_translate(true);
- } else {
- // NaCl
- *url = isa_spec[kUrlKey].asString();
- pnacl_options->set_translate(false);
- }
-
- return true;
-}
-
-bool GetKeyUrl(const Json::Value& dictionary,
- const nacl::string& key,
- const nacl::string& sandbox_isa,
- const Manifest* manifest,
- nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) {
- CHECK(full_url != NULL && error_info != NULL);
- if (!dictionary.isMember(key)) {
- error_info->SetReport(ERROR_MANIFEST_RESOLVE_URL,
- "file key not found in manifest");
- return false;
- }
- const Json::Value& isa_dict = dictionary[key];
- nacl::string relative_url;
- if (!GetURLFromISADictionary(isa_dict, key, sandbox_isa, &relative_url,
- pnacl_options, error_info)) {
- return false;
- }
- return manifest->ResolveURL(relative_url, full_url, error_info);
-}
-
-} // namespace
-
-bool JsonManifest::Init(const nacl::string& manifest_json,
- ErrorInfo* error_info) {
- if (error_info == NULL) {
- return false;
- }
- Json::Reader reader;
- if (!reader.parse(manifest_json, dictionary_)) {
- std::string json_error = reader.getFormatedErrorMessages();
- error_info->SetReport(ERROR_MANIFEST_PARSING,
- "manifest JSON parsing failed: " + json_error);
- return false;
- }
- // Parse has ensured the string was valid JSON. Check that it matches the
- // manifest schema.
- return MatchesSchema(error_info);
-}
-
-bool JsonManifest::MatchesSchema(ErrorInfo* error_info) {
- pp::Var exception;
- if (error_info == NULL) {
- return false;
- }
- if (!dictionary_.isObject()) {
- error_info->SetReport(
- ERROR_MANIFEST_SCHEMA_VALIDATE,
- "manifest: is not a json dictionary.");
- return false;
- }
- Json::Value::Members members = dictionary_.getMemberNames();
- for (size_t i = 0; i < members.size(); ++i) {
- // The top level dictionary entries valid in the manifest file.
- static const char* kManifestTopLevelProperties[] = { kProgramKey,
- kInterpreterKey,
- kFilesKey };
- nacl::string property_name = members[i];
- if (!FindMatchingProperty(property_name,
- kManifestTopLevelProperties,
- NACL_ARRAY_SIZE(kManifestTopLevelProperties))) {
- PLUGIN_PRINTF(("JsonManifest::MatchesSchema: WARNING: unknown top-level "
- "section '%s' in manifest.\n", property_name.c_str()));
- }
- }
-
- // A manifest file must have a program section.
- if (!dictionary_.isMember(kProgramKey)) {
- error_info->SetReport(
- ERROR_MANIFEST_SCHEMA_VALIDATE,
- nacl::string("manifest: missing '") + kProgramKey + "' section.");
- return false;
- }
-
- // Validate the program section.
- // There must be a matching (portable or sandbox_isa_) entry for program for
- // NaCl.
- if (!IsValidISADictionary(dictionary_[kProgramKey],
- kProgramKey,
- sandbox_isa_,
- true,
- error_info)) {
- return false;
- }
-
- // Validate the interpreter section (if given).
- // There must be a matching (portable or sandbox_isa_) entry for interpreter
- // for NaCl.
- if (dictionary_.isMember(kInterpreterKey)) {
- if (!IsValidISADictionary(dictionary_[kInterpreterKey],
- kInterpreterKey,
- sandbox_isa_,
- true,
- error_info)) {
- return false;
- }
- }
-
- // Validate the file dictionary (if given).
- // The "files" key does not require a matching (portable or sandbox_isa_)
- // entry at schema validation time for NaCl. This allows manifests to specify
- // resources that are only loaded for a particular sandbox_isa.
- if (dictionary_.isMember(kFilesKey)) {
- const Json::Value& files = dictionary_[kFilesKey];
- if (!files.isObject()) {
- error_info->SetReport(
- ERROR_MANIFEST_SCHEMA_VALIDATE,
- nacl::string("manifest: '") + kFilesKey + "' is not a dictionary.");
- }
- Json::Value::Members members = files.getMemberNames();
- for (size_t i = 0; i < members.size(); ++i) {
- nacl::string file_name = members[i];
- if (!IsValidISADictionary(files[file_name],
- file_name,
- sandbox_isa_,
- false,
- error_info)) {
- return false;
- }
- }
- }
-
- return true;
-}
-
-bool JsonManifest::ResolveURL(const nacl::string& relative_url,
- nacl::string* full_url,
- ErrorInfo* error_info) const {
- // The contents of the manifest are resolved relative to the manifest URL.
- CHECK(url_util_ != NULL);
- pp::Var resolved_url =
- url_util_->ResolveRelativeToURL(pp::Var(manifest_base_url_),
- relative_url);
- if (!resolved_url.is_string()) {
- error_info->SetReport(
- ERROR_MANIFEST_RESOLVE_URL,
- "could not resolve url '" + relative_url +
- "' relative to manifest base url '" + manifest_base_url_.c_str() +
- "'.");
- return false;
- }
- *full_url = resolved_url.AsString();
- return true;
-}
-
-bool JsonManifest::GetProgramURL(nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const {
- if (full_url == NULL || pnacl_options == NULL || error_info == NULL)
- return false;
-
- Json::Value program = dictionary_[kProgramKey];
-
- nacl::string nexe_url;
- nacl::string error_string;
-
- if (!GetURLFromISADictionary(program,
- kProgramKey,
- sandbox_isa_,
- &nexe_url,
- pnacl_options,
- error_info)) {
- return false;
- }
-
- return ResolveURL(nexe_url, full_url, error_info);
-}
-
-bool JsonManifest::GetFileKeys(std::set<nacl::string>* keys) const {
- if (!dictionary_.isMember(kFilesKey)) {
- // trivial success: no keys when there is no "files" section.
- return true;
- }
- const Json::Value& files = dictionary_[kFilesKey];
- CHECK(files.isObject());
- Json::Value::Members members = files.getMemberNames();
- for (size_t i = 0; i < members.size(); ++i) {
- keys->insert(members[i]);
- }
- return true;
-}
-
-bool JsonManifest::ResolveKey(const nacl::string& key,
- nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const {
- NaClLog(3, "JsonManifest::ResolveKey(%s)\n", key.c_str());
- // key must be one of kProgramKey or kFileKey '/' file-section-key
-
- if (full_url == NULL || pnacl_options == NULL || error_info == NULL)
- return false;
-
- if (key == kProgramKey) {
- return GetKeyUrl(dictionary_, key, sandbox_isa_, this, full_url,
- pnacl_options, error_info);
- }
- nacl::string::const_iterator p = find(key.begin(), key.end(), '/');
- if (p == key.end()) {
- error_info->SetReport(ERROR_MANIFEST_RESOLVE_URL,
- nacl::string("ResolveKey: invalid key, no slash: ")
- + key);
- return false;
- }
-
- // generalize to permit other sections?
- nacl::string prefix(key.begin(), p);
- if (prefix != kFilesKey) {
- error_info->SetReport(ERROR_MANIFEST_RESOLVE_URL,
- nacl::string("ResolveKey: invalid key: not \"files\""
- " prefix: ") + key);
- return false;
- }
-
- nacl::string rest(p + 1, key.end());
-
- const Json::Value& files = dictionary_[kFilesKey];
- if (!files.isObject()) {
- error_info->SetReport(
- ERROR_MANIFEST_RESOLVE_URL,
- nacl::string("ResolveKey: no \"files\" dictionary"));
- return false;
- }
- if (!files.isMember(rest)) {
- error_info->SetReport(
- ERROR_MANIFEST_RESOLVE_URL,
- nacl::string("ResolveKey: no such \"files\" entry: ") + key);
- return false;
- }
- return GetKeyUrl(files, rest, sandbox_isa_, this, full_url, pnacl_options,
- error_info);
-}
-
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.h b/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.h
deleted file mode 100644
index 24dd28a1639..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/json_manifest.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// Manifest processing for JSON manifests.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_JSON_MANIFEST_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_JSON_MANIFEST_H_
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/nacl_string.h"
-#include "ppapi/native_client/src/trusted/plugin/manifest.h"
-#include "third_party/jsoncpp/source/include/json/value.h"
-
-namespace pp {
-class URLUtil_Dev;
-} // namespace pp
-
-namespace plugin {
-
-class ErrorInfo;
-class PnaclOptions;
-
-class JsonManifest : public Manifest {
- public:
- JsonManifest(const pp::URLUtil_Dev* url_util,
- const nacl::string& manifest_base_url,
- const nacl::string& sandbox_isa)
- : url_util_(url_util),
- manifest_base_url_(manifest_base_url),
- sandbox_isa_(sandbox_isa),
- dictionary_(Json::nullValue) { }
- virtual ~JsonManifest() { }
-
- // Initialize the manifest object for use by later lookups. The return
- // value is true if the manifest parses correctly and matches the schema.
- bool Init(const nacl::string& json, ErrorInfo* error_info);
-
- // Gets the full program URL for the current sandbox ISA from the
- // manifest file.
- virtual bool GetProgramURL(nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const;
-
- // Resolves a URL relative to the manifest base URL
- virtual bool ResolveURL(const nacl::string& relative_url,
- nacl::string* full_url,
- ErrorInfo* error_info) const;
-
- // Gets the file names from the "files" section of the manifest. No
- // checking that the keys' values are proper ISA dictionaries -- it
- // is assumed that other consistency checks take care of that, and
- // that the keys are appropriate for use with ResolveKey.
- virtual bool GetFileKeys(std::set<nacl::string>* keys) const;
-
- // Resolves a key from the "files" section to a fully resolved URL,
- // i.e., relative URL values are fully expanded relative to the
- // manifest's URL (via ResolveURL).
- // If there was an error, details are reported via error_info.
- virtual bool ResolveKey(const nacl::string& key,
- nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const;
-
- private:
- NACL_DISALLOW_COPY_AND_ASSIGN(JsonManifest);
-
- // Checks that |dictionary_| is a valid manifest, according to the schema.
- // Returns true on success, and sets |error_info| to a detailed message
- // if not.
- bool MatchesSchema(ErrorInfo* error_info);
-
- const pp::URLUtil_Dev* url_util_;
- nacl::string manifest_base_url_;
- nacl::string sandbox_isa_;
-
- Json::Value dictionary_;
-};
-
-
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_JSON_MANIFEST_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/manifest.h b/chromium/ppapi/native_client/src/trusted/plugin/manifest.h
deleted file mode 100644
index b828aeac5e9..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/manifest.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// Manifest interface class.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_MANIFEST_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_MANIFEST_H_
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/nacl_string.h"
-#include "third_party/jsoncpp/source/include/json/value.h"
-
-namespace pp {
-class URLUtil_Dev;
-} // namespace pp
-
-namespace plugin {
-
-class ErrorInfo;
-class PnaclOptions;
-
-class Manifest {
- public:
- Manifest() { }
- virtual ~Manifest() { }
-
- // A convention in the interfaces below regarding permit_extension_url:
- // Some manifests (e.g., the pnacl coordinator manifest) need to access
- // resources from an extension origin distinct from the plugin's origin
- // (e.g., the pnacl coordinator needs to load llc, ld, and some libraries).
- // This out-parameter is true if this manifest lookup confers access to
- // a resource in the extension origin.
-
- // Gets the full program URL for the current sandbox ISA from the
- // manifest file. Fills in |pnacl_options| if the program requires
- // PNaCl translation.
- virtual bool GetProgramURL(nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const = 0;
-
- // Resolves a URL relative to the manifest base URL
- virtual bool ResolveURL(const nacl::string& relative_url,
- nacl::string* full_url,
- ErrorInfo* error_info) const = 0;
-
- // Gets the file names from the "files" section of the manifest. No
- // checking that the keys' values are proper ISA dictionaries -- it
- // is assumed that other consistency checks take care of that, and
- // that the keys are appropriate for use with ResolveKey.
- virtual bool GetFileKeys(std::set<nacl::string>* keys) const = 0;
-
- // Resolves a key from the "files" section to a fully resolved URL,
- // i.e., relative URL values are fully expanded relative to the
- // manifest's URL (via ResolveURL). Fills in |pnacl_options| if
- // the resolved key requires a pnacl translation step to obtain
- // the final requested resource.
- // If there was an error, details are reported via error_info.
- virtual bool ResolveKey(const nacl::string& key,
- nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const = 0;
-
- protected:
- NACL_DISALLOW_COPY_AND_ASSIGN(Manifest);
-};
-
-
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_MANIFEST_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/module_ppapi.cc b/chromium/ppapi/native_client/src/trusted/plugin/module_ppapi.cc
index b73a1a3ac3b..bcdaf7d47e0 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/module_ppapi.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/module_ppapi.cc
@@ -10,8 +10,8 @@
#include "native_client/src/trusted/desc/nrd_all_modules.h"
#include "ppapi/native_client/src/trusted/plugin/module_ppapi.h"
-#include "ppapi/native_client/src/trusted/plugin/nacl_entry_points.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
+#include "ppapi/native_client/src/trusted/plugin/utility.h"
namespace plugin {
@@ -41,9 +41,7 @@ bool ModulePpapi::Init() {
"GetBrowserInterface returned NULL\n"));
return false;
}
-
- launch_nacl_process = reinterpret_cast<LaunchNaClProcessFunc>(
- private_interface_->LaunchSelLdr);
+ SetNaClInterface(private_interface_);
#if NACL_LINUX || NACL_OSX
// Note that currently we do not need random numbers inside the
@@ -70,7 +68,7 @@ pp::Instance* ModulePpapi::CreateInstance(PP_Instance pp_instance) {
MODULE_PRINTF(("ModulePpapi::CreateInstance (pp_instance=%" NACL_PRId32
")\n",
pp_instance));
- Plugin* plugin = Plugin::New(pp_instance);
+ Plugin* plugin = new Plugin(pp_instance);
MODULE_PRINTF(("ModulePpapi::CreateInstance (return %p)\n",
static_cast<void* >(plugin)));
return plugin;
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/nacl_entry_points.h b/chromium/ppapi/native_client/src/trusted/plugin/nacl_entry_points.h
deleted file mode 100644
index 0d182087d66..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/nacl_entry_points.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_ENTRY_POINTS_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_ENTRY_POINTS_H_
-
-#include <stddef.h>
-
-#include <map>
-#include <string>
-
-#include "native_client/src/shared/imc/nacl_imc_c.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/private/ppb_instance_private.h"
-
-typedef PP_ExternalPluginResult (*LaunchNaClProcessFunc)(
- PP_Instance instance,
- const char* alleged_url,
- PP_Bool uses_irt,
- PP_Bool uses_ppapi,
- PP_Bool enable_ppapi_dev,
- PP_Bool enable_dyncode_syscalls,
- PP_Bool enable_exception_handling,
- PP_Bool enable_crash_throttling,
- NaClHandle* result_socket,
- struct PP_Var* error_message);
-
-
-extern LaunchNaClProcessFunc launch_nacl_process;
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_ENTRY_POINTS_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.cc b/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.cc
deleted file mode 100644
index ca358781dda..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h"
-
-#include <algorithm>
-#include <sstream>
-
-namespace {
-
-// TODO(jvoung): Use Tokenize from base/strings/string_util.h when this moves
-// to Chromium.
-void SplitString(const std::string& str,
- char delim,
- std::vector<std::string>* elems) {
- std::stringstream ss(str);
- std::string item;
- while (std::getline(ss, item, delim)) {
- elems->push_back(item);
- }
-}
-
-bool SplitOnce(const std::string& str,
- char delim,
- std::vector<std::string>* elems) {
- size_t pos = str.find(delim);
- if (pos != std::string::npos) {
- elems->push_back(str.substr(0, pos));
- elems->push_back(str.substr(pos + 1));
- return true;
- }
- return false;
-}
-
-} // namespace
-
-namespace plugin {
-
-NaClHttpResponseHeaders::NaClHttpResponseHeaders() {}
-
-NaClHttpResponseHeaders::~NaClHttpResponseHeaders() {}
-
-void NaClHttpResponseHeaders::Parse(const std::string& headers_str) {
- // PPAPI response headers are \n delimited. Separate out the lines.
- std::vector<std::string> lines;
- SplitString(headers_str, '\n', &lines);
-
- for (size_t i = 0; i < lines.size(); ++i) {
- std::vector<std::string> tokens;
- // Split along the key-value pair separator char.
- if (!SplitOnce(lines[i], ':', &tokens)) {
- // Ignore funny header lines that don't have the key-value separator.
- continue;
- }
- std::string key = tokens[0];
- // Also ignore keys that start with white-space (they are invalid).
- // See: HttpResponseHeadersTest.NormalizeHeadersLeadingWhitespace.
- if (key.length() == 0 || key[0] == ' ' || key[0] == '\t')
- continue;
- // TODO(jvoung): replace some of this with TrimWhitespaceASCII when
- // we move code to chromium.
- // Strip trailing whitespace from the key to normalize.
- size_t pos = key.find_last_not_of(" \t");
- if (pos != std::string::npos)
- key.erase(pos + 1);
- // Strip leading whitespace from the value to normalize.
- std::string value = tokens[1];
- value.erase(0, value.find_first_not_of(" \t"));
- header_entries_.push_back(Entry(key, value));
- }
-}
-
-std::string NaClHttpResponseHeaders::GetHeader(const std::string& name) {
- for (size_t i = 0; i < header_entries_.size(); ++i) {
- const Entry& entry = header_entries_[i];
- std::string key = entry.first;
- // TODO(jvoung): replace with LowerCaseEqualsASCII later.
- std::transform(key.begin(), key.end(), key.begin(), ::tolower);
- if (key.compare(name) == 0)
- return entry.second;
- }
- return std::string();
-}
-
-std::string NaClHttpResponseHeaders::GetCacheValidators() {
- std::string result = GetHeader("etag");
- if (!result.empty())
- result = "etag:" + result;
- std::string lm = GetHeader("last-modified");
- if (!lm.empty()) {
- if (!result.empty())
- result += "&";
- result += "last-modified:" + lm;
- }
- return result;
-}
-
-bool NaClHttpResponseHeaders::CacheControlNoStore() {
- for (size_t i = 0; i < header_entries_.size(); ++i) {
- const Entry& entry = header_entries_[i];
- std::string key = entry.first;
- // TODO(jvoung): replace with LowerCaseEqualsASCII later.
- std::transform(key.begin(), key.end(), key.begin(), ::tolower);
- if (key.compare("cache-control") == 0) {
- std::string cc = entry.second;
- std::transform(cc.begin(), cc.end(), cc.begin(), ::tolower);
- if (entry.second.find("no-store") != std::string::npos)
- return true;
- }
- }
- return false;
-}
-
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h b/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h
deleted file mode 100644
index 60ab2c50a8f..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Some code to parse HTTP response headers in the format given by
-// PPAPI's ppb_url_response.
-// Once we move the trusted NaCl plugin code into chrome,
-// we should use the standard net/http/http_response_headers.h code.
-
-// Keep this file very light on dependencies so that it is easy
-// build a unittest for this (see the gyp file). Do not depend on anything
-// other than the standard libraries.
-
-// NOTE when switching over to net/http/http_response_headers.h:
-// There are differences between the "raw" headers that can be parsed by
-// net/http/http_response_headers and the headers returned by ppb_url_response.
-// The ppb_url_response headers are \n delimited, while the
-// http_response_headers are \0 delimited and end in \0\0.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_
-
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "native_client/src/include/nacl_macros.h"
-
-namespace plugin {
-
-class NaClHttpResponseHeaders {
- public:
- NaClHttpResponseHeaders();
- ~NaClHttpResponseHeaders();
-
- typedef std::pair<std::string, std::string> Entry;
-
- // Parse and prepare the headers for use with other methods.
- // Assumes that the headers are \n delimited, which ppb_url_response gives.
- // Invalid header lines are skipped.
- void Parse(const std::string& headers_str);
-
- // Get the value of the header named |name|
- std::string GetHeader(const std::string& name);
-
- // Return a concatenated string of HTTP caching validators.
- // E.g., Last-Modified time and ETags.
- std::string GetCacheValidators();
-
- // Return true if the headers indicate that the data should not be stored.
- bool CacheControlNoStore();
-
- private:
- std::vector<Entry> header_entries_;
- NACL_DISALLOW_COPY_AND_ASSIGN(NaClHttpResponseHeaders);
-};
-
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NACL_HTTP_RESPONSE_HEADERS_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers_unittest.cc b/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers_unittest.cc
deleted file mode 100644
index ea66f4614a4..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/nacl_http_response_headers_unittest.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h"
-
-#include <string>
-
-#include "testing/gtest/include/gtest/gtest.h"
-
-// Test that we are able to discover the cache validator headers.
-TEST(NaClHttpResponseHeadersTest, TestGetValidators) {
- // Test a single (weak) ETag.
- std::string one_val_headers("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Server: Apache/2.0.52 (CentOS)\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Connection: close\n"
- "Accept-Ranges: bytes\n"
- "ETag: w\"abcdefg\"\n"
- "Content-Length: 2912652\n");
- std::string one_val_expected("etag:w\"abcdefg\"");
- plugin::NaClHttpResponseHeaders parser_1;
- parser_1.Parse(one_val_headers);
- EXPECT_EQ(one_val_expected, parser_1.GetCacheValidators());
- EXPECT_EQ(std::string("w\"abcdefg\""), parser_1.GetHeader("etag"));
- EXPECT_EQ(std::string(), parser_1.GetHeader("last-modified"));
-
- // Test a Last-Modified Header.
- std::string mod_val_headers("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Server: Apache/2.0.52 (CentOS)\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Connection: close\n"
- "Accept-Ranges: bytes\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "Content-Length: 2912652\n");
- std::string mod_val_expected("last-modified:Wed, 15 Nov 1995 04:58:08 GMT");
- plugin::NaClHttpResponseHeaders parser_1b;
- parser_1b.Parse(mod_val_headers);
- EXPECT_EQ(mod_val_expected, parser_1b.GetCacheValidators());
- EXPECT_EQ(std::string("Wed, 15 Nov 1995 04:58:08 GMT"),
- parser_1b.GetHeader("last-modified"));
-
- // Test both (strong) ETag and Last-Modified, with some whitespace.
- std::string two_val_headers("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "Server: Apache/2.0.52 (CentOS)\n"
- "etag \t :\t \"/abcdefg:A-Z0-9+/==\"\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "cache-control: no-cache\n"
- "Connection: close\n"
- "Accept-Ranges: bytes\n"
- "Content-Length: 2912652\n");
- // Note that the value can still have white-space.
- std::string two_val_expected("etag:\"/abcdefg:A-Z0-9+/==\"&"
- "last-modified:Wed, 15 Nov 1995 04:58:08 GMT");
- plugin::NaClHttpResponseHeaders parser_2;
- parser_2.Parse(two_val_headers);
- EXPECT_EQ(two_val_expected, parser_2.GetCacheValidators());
- EXPECT_EQ(std::string("\"/abcdefg:A-Z0-9+/==\""),
- parser_2.GetHeader("etag"));
-
- // Some etag generators like python HTTP server use ' instead of "
- std::string single_q_headers("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Server: BaseHTTP/0.3 Python/2.7.3\n"
- "ETag: '/usr/local/some_file.nmf'\n");
- std::string single_q_expected("etag:'/usr/local/some_file.nmf'");
- plugin::NaClHttpResponseHeaders parser_3;
- parser_3.Parse(single_q_headers);
- EXPECT_EQ(single_q_expected, parser_3.GetCacheValidators());
- EXPECT_EQ(std::string("'/usr/local/some_file.nmf'"),
- parser_3.GetHeader("etag"));
-
- // Keys w/ leading whitespace are invalid.
- // See: HttpResponseHeadersTest.NormalizeHeadersLeadingWhitespace.
- std::string bad_headers("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Server: BaseHTTP/0.3 Python/2.7.3\n"
- " ETag: '/usr/local/some_file.nmf'\n");
- std::string bad_expected("");
- plugin::NaClHttpResponseHeaders parser_4;
- parser_4.Parse(bad_headers);
- EXPECT_EQ(bad_expected, parser_4.GetCacheValidators());
- EXPECT_EQ(bad_expected, parser_4.GetHeader("etag"));
-}
-
-// Test that we are able to determine when there is a no-store
-// Cache-Control header, among all the Cache-Control headers.
-TEST(NaClHttpResponseHeadersTest, TestFindNoStore) {
- // Say that there isn't one, when there isn't one.
- std::string headers_0("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "ETag: '/tmp/blah.nmf'\n"
- "Cache-Control: max-age=3600\n");
- plugin::NaClHttpResponseHeaders parser_0;
- parser_0.Parse(headers_0);
- EXPECT_FALSE(parser_0.CacheControlNoStore());
-
- // Say that there is one, when there is one.
- std::string headers_1("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "ETag: \"/abcdefgA-Z0-9+/\"\n"
- "Cache-Control: no-store\n");
- plugin::NaClHttpResponseHeaders parser_1;
- parser_1.Parse(headers_1);
- EXPECT_TRUE(parser_1.CacheControlNoStore());
-
- // Say that there is one, when comma separated.
- std::string headers_2("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "ETag: \"/abcdefgA-Z0-9+/\"\n"
- "Cache-Control: no-store, no-cache\n");
- plugin::NaClHttpResponseHeaders parser_2;
- parser_2.Parse(headers_2);
- EXPECT_TRUE(parser_2.CacheControlNoStore());
-
- // Comma separated, in a different position.
- std::string headers_3("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "ETag: \"/abcdefgA-Z0-9+/\"\n"
- "Cache-control: no-cache, max-age=60, no-store\n");
- plugin::NaClHttpResponseHeaders parser_3;
- parser_3.Parse(headers_3);
- EXPECT_TRUE(parser_3.CacheControlNoStore());
-
- // Test multiple cache-control lines, plus extra space before colon.
- std::string headers_4("Date: Wed, 15 Nov 1995 06:25:24 GMT\n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT\n"
- "ETag: \"/abcdefgA-Z0-9+/\"\n"
- "cache-control: no-cache\n"
- "cache-control \t : max-age=60, no-store, max-stale\n");
- plugin::NaClHttpResponseHeaders parser_4;
- parser_4.Parse(headers_4);
- EXPECT_TRUE(parser_4.CacheControlNoStore());
-
- // Test with extra whitespace, in the values.
- std::string headers_5("Date: Wed, 15 Nov 1995 06:25:24 GMT \n"
- "Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT \n"
- "ETag: \"/abcdefgA-Z0-9+/\" \n"
- ": empty key \n"
- ": empty key2 \n"
- "Blank-Header : \n"
- "Connection: close\n"
- "cache-control:max-age=60, no-store \n"
- "cache-control: no-cache\n");
- plugin::NaClHttpResponseHeaders parser_5;
- parser_5.Parse(headers_5);
- EXPECT_TRUE(parser_5.CacheControlNoStore());
-}
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/nexe_arch.h b/chromium/ppapi/native_client/src/trusted/plugin/nexe_arch.h
deleted file mode 100644
index 0f8d24619ec..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/nexe_arch.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2012 The Chromium Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// Routines for determining the most appropriate NaCl executable for
-// the current CPU's architecture.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_
-
-#include "native_client/src/include/portability.h"
-
-namespace plugin {
-// Returns the kind of SFI sandbox implemented by sel_ldr on this
-// platform. See the implementation in nexe_arch.cc for possible values.
-//
-// This is a function of the current CPU, OS, browser, installed
-// sel_ldr(s). It is not sufficient to derive the result only from
-// build-time parameters since, for example, an x86-32 plugin is
-// capable of launching a 64-bit NaCl sandbox if a 64-bit sel_ldr is
-// installed (and indeed, may only be capable of launching a 64-bit
-// sandbox).
-//
-// Note: The platform-sepcific implementations for this are under
-// <platform>/nexe_arch.cc
-const char* GetSandboxISA();
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/plugin.cc b/chromium/ppapi/native_client/src/trusted/plugin/plugin.cc
index 2bf3021efac..7bb9cf884e6 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/plugin.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/plugin.cc
@@ -2,20 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifdef _MSC_VER
-// Do not warn about use of std::copy with raw pointers.
-#pragma warning(disable : 4996)
-#endif
-
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include <sys/stat.h>
#include <sys/types.h>
-#include <algorithm>
-#include <deque>
#include <string>
-#include <vector>
#include "native_client/src/include/nacl_base.h"
#include "native_client/src/include/nacl_macros.h"
@@ -24,28 +16,19 @@
#include "native_client/src/include/portability.h"
#include "native_client/src/include/portability_io.h"
#include "native_client/src/include/portability_string.h"
+#include "native_client/src/public/nacl_file_info.h"
#include "native_client/src/shared/platform/nacl_check.h"
#include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
#include "native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h"
#include "native_client/src/trusted/service_runtime/nacl_error_code.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/ppp_instance.h"
#include "ppapi/c/private/ppb_nacl_private.h"
-#include "ppapi/c/private/ppb_uma_private.h"
#include "ppapi/cpp/dev/url_util_dev.h"
#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/text_input_controller.h"
-#include "ppapi/native_client/src/trusted/plugin/file_utils.h"
-#include "ppapi/native_client/src/trusted/plugin/json_manifest.h"
-#include "ppapi/native_client/src/trusted/plugin/nacl_entry_points.h"
#include "ppapi/native_client/src/trusted/plugin/nacl_subprocess.h"
-#include "ppapi/native_client/src/trusted/plugin/nexe_arch.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
-#include "ppapi/native_client/src/trusted/plugin/scriptable_plugin.h"
#include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
#include "ppapi/native_client/src/trusted/plugin/utility.h"
@@ -53,245 +36,13 @@ namespace plugin {
namespace {
-const char* const kTypeAttribute = "type";
-// The "src" attribute of the <embed> tag. The value is expected to be either
-// a URL or URI pointing to the manifest file (which is expected to contain
-// JSON matching ISAs with .nexe URLs).
-const char* const kSrcManifestAttribute = "src";
-// The "nacl" attribute of the <embed> tag. We use the value of this attribute
-// to find the manifest file when NaCl is registered as a plug-in for another
-// MIME type because the "src" attribute is used to supply us with the resource
-// of that MIME type that we're supposed to display.
-const char* const kNaClManifestAttribute = "nacl";
-// The pseudo-ISA used to indicate portable native client.
-const char* const kPortableISA = "portable";
-// This is a pretty arbitrary limit on the byte size of the NaCl manfest file.
-// Note that the resulting string object has to have at least one byte extra
-// for the null termination character.
-const size_t kNaClManifestMaxFileBytes = 1024 * 1024;
-
-// Define an argument name to enable 'dev' interfaces. To make sure it doesn't
-// collide with any user-defined HTML attribute, make the first character '@'.
-const char* const kDevAttribute = "@dev";
-
-// URL schemes that we treat in special ways.
-const char* const kChromeExtensionUriScheme = "chrome-extension";
-const char* const kDataUriScheme = "data";
-
// Up to 20 seconds
const int64_t kTimeSmallMin = 1; // in ms
const int64_t kTimeSmallMax = 20000; // in ms
const uint32_t kTimeSmallBuckets = 100;
-// Up to 3 minutes, 20 seconds
-const int64_t kTimeMediumMin = 10; // in ms
-const int64_t kTimeMediumMax = 200000; // in ms
-const uint32_t kTimeMediumBuckets = 100;
-
-// Up to 33 minutes.
-const int64_t kTimeLargeMin = 100; // in ms
-const int64_t kTimeLargeMax = 2000000; // in ms
-const uint32_t kTimeLargeBuckets = 100;
-
-const int64_t kSizeKBMin = 1;
-const int64_t kSizeKBMax = 512*1024; // very large .nexe
-const uint32_t kSizeKBBuckets = 100;
-
-const PPB_NaCl_Private* GetNaClInterface() {
- pp::Module *module = pp::Module::Get();
- CHECK(module);
- return static_cast<const PPB_NaCl_Private*>(
- module->GetBrowserInterface(PPB_NACL_PRIVATE_INTERFACE));
-}
-
-const PPB_UMA_Private* GetUMAInterface() {
- pp::Module *module = pp::Module::Get();
- CHECK(module);
- return static_cast<const PPB_UMA_Private*>(
- module->GetBrowserInterface(PPB_UMA_PRIVATE_INTERFACE));
-}
-
-void HistogramTimeSmall(const std::string& name, int64_t ms) {
- if (ms < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomTimes(pp::Var(name).pp_var(),
- ms,
- kTimeSmallMin, kTimeSmallMax,
- kTimeSmallBuckets);
-}
-
-void HistogramTimeMedium(const std::string& name, int64_t ms) {
- if (ms < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomTimes(pp::Var(name).pp_var(),
- ms,
- kTimeMediumMin, kTimeMediumMax,
- kTimeMediumBuckets);
-}
-
-void HistogramTimeLarge(const std::string& name, int64_t ms) {
- if (ms < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomTimes(pp::Var(name).pp_var(),
- ms,
- kTimeLargeMin, kTimeLargeMax,
- kTimeLargeBuckets);
-}
-
-void HistogramSizeKB(const std::string& name, int32_t sample) {
- if (sample < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomCounts(pp::Var(name).pp_var(),
- sample,
- kSizeKBMin, kSizeKBMax,
- kSizeKBBuckets);
-}
-
-void HistogramEnumerate(const std::string& name, int sample, int maximum,
- int out_of_range_replacement) {
- if (sample < 0 || sample >= maximum) {
- if (out_of_range_replacement < 0)
- // No replacement for bad input, abort.
- return;
- else
- // Use a specific value to signal a bad input.
- sample = out_of_range_replacement;
- }
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
- ptr->HistogramEnumeration(pp::Var(name).pp_var(), sample, maximum);
-}
-
-void HistogramEnumerateOsArch(const std::string& sandbox_isa) {
- enum NaClOSArch {
- kNaClLinux32 = 0,
- kNaClLinux64,
- kNaClLinuxArm,
- kNaClMac32,
- kNaClMac64,
- kNaClMacArm,
- kNaClWin32,
- kNaClWin64,
- kNaClWinArm,
- kNaClOSArchMax
- };
-
- NaClOSArch os_arch = kNaClOSArchMax;
-#if NACL_LINUX
- os_arch = kNaClLinux32;
-#elif NACL_OSX
- os_arch = kNaClMac32;
-#elif NACL_WINDOWS
- os_arch = kNaClWin32;
-#endif
-
- if (sandbox_isa == "x86-64")
- os_arch = static_cast<NaClOSArch>(os_arch + 1);
- if (sandbox_isa == "arm")
- os_arch = static_cast<NaClOSArch>(os_arch + 2);
-
- HistogramEnumerate("NaCl.Client.OSArch", os_arch, kNaClOSArchMax, -1);
-}
-
-void HistogramEnumerateLoadStatus(PluginErrorCode error_code,
- bool is_installed) {
- HistogramEnumerate("NaCl.LoadStatus.Plugin", error_code, ERROR_MAX,
- ERROR_UNKNOWN);
-
- // Gather data to see if being installed changes load outcomes.
- const char* name = is_installed ? "NaCl.LoadStatus.Plugin.InstalledApp" :
- "NaCl.LoadStatus.Plugin.NotInstalledApp";
- HistogramEnumerate(name, error_code, ERROR_MAX,
- ERROR_UNKNOWN);
-}
-
-void HistogramEnumerateSelLdrLoadStatus(NaClErrorCode error_code,
- bool is_installed) {
- HistogramEnumerate("NaCl.LoadStatus.SelLdr", error_code, NACL_ERROR_CODE_MAX,
- LOAD_STATUS_UNKNOWN);
-
- // Gather data to see if being installed changes load outcomes.
- const char* name = is_installed ? "NaCl.LoadStatus.SelLdr.InstalledApp" :
- "NaCl.LoadStatus.SelLdr.NotInstalledApp";
- HistogramEnumerate(name, error_code, NACL_ERROR_CODE_MAX,
- LOAD_STATUS_UNKNOWN);
-}
-
-void HistogramEnumerateManifestIsDataURI(bool is_data_uri) {
- HistogramEnumerate("NaCl.Manifest.IsDataURI", is_data_uri, 2, -1);
-}
-
-void HistogramHTTPStatusCode(const std::string& name, int status) {
- // Log the status codes in rough buckets - 1XX, 2XX, etc.
- int sample = status / 100;
- // HTTP status codes only go up to 5XX, using "6" to indicate an internal
- // error.
- // Note: installed files may have "0" for a status code.
- if (status < 0 || status >= 600)
- sample = 6;
- HistogramEnumerate(name, sample, 7, 6);
-}
-
} // namespace
-bool Plugin::EarlyInit(int argc, const char* argn[], const char* argv[]) {
- PLUGIN_PRINTF(("Plugin::EarlyInit (instance=%p)\n",
- static_cast<void*>(this)));
-
-#ifdef NACL_OSX
- // TODO(kochi): For crbug.com/102808, this is a stopgap solution for Lion
- // until we expose IME API to .nexe. This disables any IME interference
- // against key inputs, so you cannot use off-the-spot IME input for NaCl apps.
- // This makes discrepancy among platforms and therefore we should remove
- // this hack when IME API is made available.
- // The default for non-Mac platforms is still off-the-spot IME mode.
- pp::TextInputController(this).SetTextInputType(PP_TEXTINPUT_TYPE_NONE);
-#endif
-
- // Remember the embed/object argn/argv pairs.
- argn_ = new char*[argc];
- argv_ = new char*[argc];
- argc_ = 0;
- for (int i = 0; i < argc; ++i) {
- if (NULL != argn_ && NULL != argv_) {
- argn_[argc_] = strdup(argn[i]);
- argv_[argc_] = strdup(argv[i]);
- if (NULL == argn_[argc_] || NULL == argv_[argc_]) {
- // Give up on passing arguments.
- free(argn_[argc_]);
- free(argv_[argc_]);
- continue;
- }
- ++argc_;
- }
- }
- // TODO(sehr): this leaks strings if there is a subsequent failure.
-
- // Set up the factory used to produce DescWrappers.
- wrapper_factory_ = new nacl::DescWrapperFactory();
- if (NULL == wrapper_factory_) {
- return false;
- }
- PLUGIN_PRINTF(("Plugin::Init (wrapper_factory=%p)\n",
- static_cast<void*>(wrapper_factory_)));
-
- PLUGIN_PRINTF(("Plugin::Init (return 1)\n"));
- // Return success.
- return true;
-}
-
void Plugin::ShutDownSubprocesses() {
PLUGIN_PRINTF(("Plugin::ShutDownSubprocesses (this=%p)\n",
static_cast<void*>(this)));
@@ -306,149 +57,187 @@ void Plugin::ShutDownSubprocesses() {
static_cast<void*>(this)));
}
-void Plugin::StartSelLdrOnMainThread(int32_t pp_error,
- ServiceRuntime* service_runtime,
- const SelLdrStartParams& params,
- bool* success) {
- if (pp_error != PP_OK) {
- PLUGIN_PRINTF(("Plugin::StartSelLdrOnMainThread: non-PP_OK arg "
- "-- SHOULD NOT HAPPEN\n"));
- *success = false;
- return;
- }
- *success = service_runtime->StartSelLdr(params);
- // Signal outside of StartSelLdr here, so that the write to *success
- // is done before signaling.
- service_runtime->SignalStartSelLdrDone();
+void Plugin::HistogramTimeSmall(const std::string& name,
+ int64_t ms) {
+ if (ms < 0) return;
+ uma_interface_.HistogramCustomTimes(name,
+ ms,
+ kTimeSmallMin, kTimeSmallMax,
+ kTimeSmallBuckets);
}
-bool Plugin::LoadNaClModuleCommon(nacl::DescWrapper* wrapper,
+bool Plugin::LoadHelperNaClModule(PP_FileHandle file_handle,
NaClSubprocess* subprocess,
- const Manifest* manifest,
- bool should_report_uma,
- const SelLdrStartParams& params,
- const pp::CompletionCallback& init_done_cb,
- const pp::CompletionCallback& crash_cb) {
- ServiceRuntime* new_service_runtime =
- new ServiceRuntime(this, manifest, should_report_uma, init_done_cb,
- crash_cb);
- subprocess->set_service_runtime(new_service_runtime);
- PLUGIN_PRINTF(("Plugin::LoadNaClModuleCommon (service_runtime=%p)\n",
- static_cast<void*>(new_service_runtime)));
- if (NULL == new_service_runtime) {
- params.error_info->SetReport(
- ERROR_SEL_LDR_INIT,
- "sel_ldr init failure " + subprocess->description());
- return false;
- }
+ const SelLdrStartParams& params) {
+ CHECK(!pp::Module::Get()->core()->IsMainThread());
+ ServiceRuntime* service_runtime =
+ new ServiceRuntime(this,
+ false, // No main_service_runtime.
+ false, // No non-SFI mode (i.e. in SFI-mode).
+ pp::BlockUntilComplete(), pp::BlockUntilComplete());
+ subprocess->set_service_runtime(service_runtime);
+ PLUGIN_PRINTF(("Plugin::LoadHelperNaClModule "
+ "(service_runtime=%p)\n",
+ static_cast<void*>(service_runtime)));
// Now start the SelLdr instance. This must be created on the main thread.
- pp::Core* core = pp::Module::Get()->core();
- bool service_runtime_started;
- if (core->IsMainThread()) {
- StartSelLdrOnMainThread(PP_OK, new_service_runtime, params,
- &service_runtime_started);
- } else {
- pp::CompletionCallback callback =
- callback_factory_.NewCallback(&Plugin::StartSelLdrOnMainThread,
- new_service_runtime, params,
- &service_runtime_started);
- core->CallOnMainThread(0, callback, 0);
- new_service_runtime->WaitForSelLdrStart();
+ bool service_runtime_started = false;
+ pp::CompletionCallback sel_ldr_callback =
+ callback_factory_.NewCallback(&Plugin::SignalStartSelLdrDone,
+ &service_runtime_started,
+ service_runtime);
+ pp::CompletionCallback callback =
+ callback_factory_.NewCallback(&Plugin::StartSelLdrOnMainThread,
+ service_runtime, params,
+ sel_ldr_callback);
+ pp::Module::Get()->core()->CallOnMainThread(0, callback, 0);
+ if (!service_runtime->WaitForSelLdrStart()) {
+ PLUGIN_PRINTF(("Plugin::LoadHelperNaClModule "
+ "WaitForSelLdrStart timed out!\n"));
+ return false;
}
- PLUGIN_PRINTF(("Plugin::LoadNaClModuleCommon (service_runtime_started=%d)\n",
+ PLUGIN_PRINTF(("Plugin::LoadHelperNaClModule (service_runtime_started=%d)\n",
service_runtime_started));
- if (!service_runtime_started) {
+ if (!service_runtime_started)
return false;
- }
+
+ PP_NaClFileInfo info;
+ info.handle = file_handle;
+ info.token_lo = 0;
+ info.token_hi = 0;
// Now actually load the nexe, which can happen on a background thread.
- bool nexe_loaded = new_service_runtime->LoadNexeAndStart(wrapper,
- params.error_info,
- crash_cb);
- PLUGIN_PRINTF(("Plugin::LoadNaClModuleCommon (nexe_loaded=%d)\n",
- nexe_loaded));
- if (!nexe_loaded) {
- return false;
+ //
+ // We can't use pp::BlockUntilComplete() inside an in-process plugin, so we
+ // have to roll our own blocking logic, similar to WaitForSelLdrStart()
+ // above, except without timeout logic.
+ bool nexe_started = false;
+ pp::CompletionCallback nexe_started_callback = callback_factory_.NewCallback(
+ &Plugin::SignalNexeStarted, &nexe_started, service_runtime);
+ pp::Module::Get()->core()->CallOnMainThread(
+ 0,
+ callback_factory_.NewCallback(
+ &Plugin::LoadNexeAndStart,
+ service_runtime, info, nexe_started_callback));
+ service_runtime->WaitForNexeStart();
+
+ return nexe_started;
+}
+
+void Plugin::StartSelLdrOnMainThread(int32_t pp_error,
+ ServiceRuntime* service_runtime,
+ const SelLdrStartParams& params,
+ pp::CompletionCallback callback) {
+ if (pp_error != PP_OK) {
+ PLUGIN_PRINTF(("Plugin::StartSelLdrOnMainThread: non-PP_OK arg "
+ "-- SHOULD NOT HAPPEN\n"));
+ pp::Module::Get()->core()->CallOnMainThread(0, callback, pp_error);
+ return;
}
- return true;
+ service_runtime->StartSelLdr(params, callback);
+}
+
+void Plugin::SignalStartSelLdrDone(int32_t pp_error,
+ bool* started,
+ ServiceRuntime* service_runtime) {
+ *started = (pp_error == PP_OK);
+ service_runtime->SignalStartSelLdrDone();
+}
+
+void Plugin::SignalNexeStarted(int32_t pp_error,
+ bool* started,
+ ServiceRuntime* service_runtime) {
+ *started = (pp_error == PP_OK);
+ service_runtime->SignalNexeStarted();
}
-bool Plugin::LoadNaClModule(nacl::DescWrapper* wrapper,
- ErrorInfo* error_info,
+void Plugin::LoadNaClModule(PP_NaClFileInfo file_info,
+ bool uses_nonsfi_mode,
bool enable_dyncode_syscalls,
bool enable_exception_handling,
bool enable_crash_throttling,
const pp::CompletionCallback& init_done_cb,
const pp::CompletionCallback& crash_cb) {
+ CHECK(pp::Module::Get()->core()->IsMainThread());
// Before forking a new sel_ldr process, ensure that we do not leak
// the ServiceRuntime object for an existing subprocess, and that any
// associated listener threads do not go unjoined because if they
// outlive the Plugin object, they will not be memory safe.
ShutDownSubprocesses();
- SelLdrStartParams params(manifest_base_url(),
- error_info,
+ pp::Var manifest_base_url =
+ pp::Var(pp::PASS_REF, nacl_interface_->GetManifestBaseURL(pp_instance()));
+ std::string manifest_base_url_str = manifest_base_url.AsString();
+ SelLdrStartParams params(manifest_base_url_str,
true /* uses_irt */,
true /* uses_ppapi */,
- enable_dev_interfaces_,
enable_dyncode_syscalls,
enable_exception_handling,
enable_crash_throttling);
- if (!LoadNaClModuleCommon(wrapper, &main_subprocess_, manifest_.get(),
- true /* should_report_uma */,
- params, init_done_cb, crash_cb)) {
- return false;
+ ErrorInfo error_info;
+ ServiceRuntime* service_runtime = new ServiceRuntime(
+ this, true, uses_nonsfi_mode, init_done_cb, crash_cb);
+ main_subprocess_.set_service_runtime(service_runtime);
+ PLUGIN_PRINTF(("Plugin::LoadNaClModule (service_runtime=%p)\n",
+ static_cast<void*>(service_runtime)));
+ if (NULL == service_runtime) {
+ error_info.SetReport(
+ PP_NACL_ERROR_SEL_LDR_INIT,
+ "sel_ldr init failure " + main_subprocess_.description());
+ ReportLoadError(error_info);
+ return;
}
- PLUGIN_PRINTF(("Plugin::LoadNaClModule (%s)\n",
- main_subprocess_.detailed_description().c_str()));
- return true;
+
+ // We don't take any action once nexe loading has completed, so pass an empty
+ // callback here for |callback|.
+ pp::CompletionCallback callback = callback_factory_.NewCallback(
+ &Plugin::LoadNexeAndStart,
+ service_runtime, file_info, pp::CompletionCallback());
+ StartSelLdrOnMainThread(
+ static_cast<int32_t>(PP_OK), service_runtime, params, callback);
}
-bool Plugin::LoadNaClModuleContinuationIntern(ErrorInfo* error_info) {
- if (!main_subprocess_.StartSrpcServices()) {
- // The NaCl process probably crashed. On Linux, a crash causes this error,
- // while on other platforms, the error is detected below, when we attempt to
- // start the proxy. Report a module initialization error here, to make it
- // less confusing for developers.
- NaClLog(LOG_ERROR, "LoadNaClModuleContinuationIntern: "
- "StartSrpcServices failed\n");
- error_info->SetReport(ERROR_START_PROXY_MODULE,
- "could not initialize module.");
- return false;
+void Plugin::LoadNexeAndStart(int32_t pp_error,
+ ServiceRuntime* service_runtime,
+ PP_NaClFileInfo file_info,
+ const pp::CompletionCallback& callback) {
+ CHECK(pp::Module::Get()->core()->IsMainThread());
+ if (pp_error != PP_OK)
+ return;
+ service_runtime->LoadNexeAndStart(file_info, callback);
+}
+
+bool Plugin::LoadNaClModuleContinuationIntern() {
+ ErrorInfo error_info;
+ if (!uses_nonsfi_mode_) {
+ if (!main_subprocess_.StartSrpcServices()) {
+ // The NaCl process probably crashed. On Linux, a crash causes this
+ // error, while on other platforms, the error is detected below, when we
+ // attempt to start the proxy. Report a module initialization error here,
+ // to make it less confusing for developers.
+ NaClLog(LOG_ERROR, "LoadNaClModuleContinuationIntern: "
+ "StartSrpcServices failed\n");
+ error_info.SetReport(PP_NACL_ERROR_START_PROXY_MODULE,
+ "could not initialize module.");
+ ReportLoadError(error_info);
+ return false;
+ }
}
- PP_ExternalPluginResult ipc_result =
- nacl_interface_->StartPpapiProxy(pp_instance());
- if (ipc_result == PP_EXTERNAL_PLUGIN_OK) {
- // Log the amound of time that has passed between the trusted plugin being
- // initialized and the untrusted plugin being initialized. This is
- // (roughly) the cost of using NaCl, in terms of startup time.
- HistogramStartupTimeMedium(
- "NaCl.Perf.StartupTime.NaClOverhead",
- static_cast<float>(NaClGetTimeOfDayMicroseconds() - init_time_)
- / NACL_MICROS_PER_MILLI);
- } else if (ipc_result == PP_EXTERNAL_PLUGIN_ERROR_MODULE) {
- NaClLog(LOG_ERROR, "LoadNaClModuleContinuationIntern: "
- "Got PP_EXTERNAL_PLUGIN_ERROR_MODULE\n");
- error_info->SetReport(ERROR_START_PROXY_MODULE,
- "could not initialize module.");
- return false;
- } else if (ipc_result == PP_EXTERNAL_PLUGIN_ERROR_INSTANCE) {
- error_info->SetReport(ERROR_START_PROXY_INSTANCE,
- "could not create instance.");
- return false;
+
+ bool result = PP_ToBool(nacl_interface_->StartPpapiProxy(pp_instance()));
+ if (result) {
+ PLUGIN_PRINTF(("Plugin::LoadNaClModule (%s)\n",
+ main_subprocess_.detailed_description().c_str()));
}
- PLUGIN_PRINTF(("Plugin::LoadNaClModule (%s)\n",
- main_subprocess_.detailed_description().c_str()));
- return true;
+ return result;
}
-NaClSubprocess* Plugin::LoadHelperNaClModule(nacl::DescWrapper* wrapper,
- const Manifest* manifest,
+NaClSubprocess* Plugin::LoadHelperNaClModule(const nacl::string& helper_url,
+ PP_FileHandle file_handle,
ErrorInfo* error_info) {
nacl::scoped_ptr<NaClSubprocess> nacl_subprocess(
new NaClSubprocess("helper module", NULL, NULL));
if (NULL == nacl_subprocess.get()) {
- error_info->SetReport(ERROR_SEL_LDR_INIT,
+ error_info->SetReport(PP_NACL_ERROR_SEL_LDR_INIT,
"unable to allocate helper subprocess.");
return NULL;
}
@@ -457,21 +246,16 @@ NaClSubprocess* Plugin::LoadHelperNaClModule(nacl::DescWrapper* wrapper,
// TODO(sehr): define new UMA stats for translator related nexe events.
// NOTE: The PNaCl translator nexes are not built to use the IRT. This is
// done to save on address space and swap space.
- // TODO(jvoung): See if we still need the uses_ppapi variable, now that
- // LaunchSelLdr always happens on the main thread.
- SelLdrStartParams params(manifest_base_url(),
- error_info,
+ SelLdrStartParams params(helper_url,
false /* uses_irt */,
false /* uses_ppapi */,
- enable_dev_interfaces_,
false /* enable_dyncode_syscalls */,
false /* enable_exception_handling */,
true /* enable_crash_throttling */);
- if (!LoadNaClModuleCommon(wrapper, nacl_subprocess.get(), manifest,
- false /* should_report_uma */,
- params,
- pp::BlockUntilComplete(),
- pp::BlockUntilComplete())) {
+
+ // Helper NaCl modules always use the PNaCl manifest, as there is no
+ // corresponding NMF.
+ if (!LoadHelperNaClModule(file_handle, nacl_subprocess.get(), params)) {
return NULL;
}
// We need not wait for the init_done callback. We can block
@@ -487,204 +271,67 @@ NaClSubprocess* Plugin::LoadHelperNaClModule(nacl::DescWrapper* wrapper,
// manifest is a per-plugin-instance object, not a per
// NaClSubprocess object.
if (!nacl_subprocess->StartSrpcServices()) {
- error_info->SetReport(ERROR_SRPC_CONNECTION_FAIL,
+ error_info->SetReport(PP_NACL_ERROR_SRPC_CONNECTION_FAIL,
"SRPC connection failure for " +
nacl_subprocess->description());
return NULL;
}
- PLUGIN_PRINTF(("Plugin::LoadHelperNaClModule (%s)\n",
+ PLUGIN_PRINTF(("Plugin::LoadHelperNaClModule (%s, %s)\n",
+ helper_url.c_str(),
nacl_subprocess.get()->detailed_description().c_str()));
return nacl_subprocess.release();
}
-char* Plugin::LookupArgument(const char* key) {
- char** keys = argn_;
- for (int ii = 0, len = argc_; ii < len; ++ii) {
- if (!strcmp(keys[ii], key)) {
- return argv_[ii];
- }
- }
- return NULL;
-}
-
-class ProgressEvent {
- public:
- ProgressEvent(PP_NaClEventType event_type,
- const nacl::string& url,
- Plugin::LengthComputable length_computable,
- uint64_t loaded_bytes,
- uint64_t total_bytes) :
- event_type_(event_type),
- url_(url),
- length_computable_(length_computable),
- loaded_bytes_(loaded_bytes),
- total_bytes_(total_bytes) { }
- PP_NaClEventType event_type() const { return event_type_; }
- const char* url() const { return url_.c_str(); }
- Plugin::LengthComputable length_computable() const {
- return length_computable_;
- }
- uint64_t loaded_bytes() const { return loaded_bytes_; }
- uint64_t total_bytes() const { return total_bytes_; }
-
- private:
- PP_NaClEventType event_type_;
- nacl::string url_;
- Plugin::LengthComputable length_computable_;
- uint64_t loaded_bytes_;
- uint64_t total_bytes_;
-};
-
-const char* const Plugin::kNaClMIMEType = "application/x-nacl";
-const char* const Plugin::kPnaclMIMEType = "application/x-pnacl";
-
-bool Plugin::NexeIsContentHandler() const {
- // Tests if the MIME type is not a NaCl MIME type.
- // If the MIME type is foreign, then this NEXE is being used as a content
- // type handler rather than directly by an HTML document.
- return
- !mime_type().empty() &&
- mime_type() != kNaClMIMEType &&
- mime_type() != kPnaclMIMEType;
-}
-
-
-Plugin* Plugin::New(PP_Instance pp_instance) {
- PLUGIN_PRINTF(("Plugin::New (pp_instance=%" NACL_PRId32 ")\n", pp_instance));
- Plugin* plugin = new Plugin(pp_instance);
- PLUGIN_PRINTF(("Plugin::New (plugin=%p)\n", static_cast<void*>(plugin)));
- return plugin;
-}
-
-
// All failures of this function will show up as "Missing Plugin-in", so
// there is no need to log to JS console that there was an initialization
// failure. Note that module loading functions will log their own errors.
bool Plugin::Init(uint32_t argc, const char* argn[], const char* argv[]) {
PLUGIN_PRINTF(("Plugin::Init (argc=%" NACL_PRIu32 ")\n", argc));
- HistogramEnumerateOsArch(GetSandboxISA());
- init_time_ = NaClGetTimeOfDayMicroseconds();
-
- ScriptablePlugin* scriptable_plugin = ScriptablePlugin::NewPlugin(this);
- if (scriptable_plugin == NULL)
- return false;
-
- set_scriptable_plugin(scriptable_plugin);
- PLUGIN_PRINTF(("Plugin::Init (scriptable_handle=%p)\n",
- static_cast<void*>(scriptable_plugin_)));
- url_util_ = pp::URLUtil_Dev::Get();
- if (url_util_ == NULL)
- return false;
-
- PLUGIN_PRINTF(("Plugin::Init (url_util_=%p)\n",
- static_cast<const void*>(url_util_)));
-
- bool status = EarlyInit(static_cast<int>(argc), argn, argv);
- if (status) {
- // Look for the developer attribute; if it's present, enable 'dev'
- // interfaces.
- const char* dev_settings = LookupArgument(kDevAttribute);
- enable_dev_interfaces_ = (dev_settings != NULL);
-
- const char* type_attr = LookupArgument(kTypeAttribute);
- if (type_attr != NULL) {
- mime_type_ = nacl::string(type_attr);
- std::transform(mime_type_.begin(), mime_type_.end(), mime_type_.begin(),
- tolower);
- }
-
- const char* manifest_url = LookupArgument(kSrcManifestAttribute);
- if (NexeIsContentHandler()) {
- // For content handlers 'src' will be the URL for the content
- // and 'nacl' will be the URL for the manifest.
- manifest_url = LookupArgument(kNaClManifestAttribute);
- // For content handlers the NEXE runs in the security context of the
- // content it is rendering and the NEXE itself appears to be a
- // cross-origin resource stored in a Chrome extension.
- }
- // Use the document URL as the base for resolving relative URLs to find the
- // manifest. This takes into account the setting of <base> tags that
- // precede the embed/object.
- CHECK(url_util_ != NULL);
- pp::Var base_var = url_util_->GetDocumentURL(this);
- if (!base_var.is_string()) {
- PLUGIN_PRINTF(("Plugin::Init (unable to find document url)\n"));
- return false;
- }
- set_plugin_base_url(base_var.AsString());
- if (manifest_url == NULL) {
- // TODO(sehr,polina): this should be a hard error when scripting
- // the src property is no longer allowed.
- PLUGIN_PRINTF(("Plugin::Init:"
- " WARNING: no 'src' property, so no manifest loaded.\n"));
- if (NULL != LookupArgument(kNaClManifestAttribute)) {
- PLUGIN_PRINTF(("Plugin::Init:"
- " WARNING: 'nacl' property is incorrect. Use 'src'.\n"));
- }
- } else {
- // Issue a GET for the manifest_url. The manifest file will be parsed to
- // determine the nexe URL.
- // Sets src property to full manifest URL.
- RequestNaClManifest(manifest_url);
- }
- }
-
- PLUGIN_PRINTF(("Plugin::Init (status=%d)\n", status));
- return status;
+ nacl_interface_->InitializePlugin(pp_instance(), argc, argn, argv);
+ wrapper_factory_ = new nacl::DescWrapperFactory();
+ pp::CompletionCallback open_cb =
+ callback_factory_.NewCallback(&Plugin::NaClManifestFileDidOpen);
+ nacl_interface_->RequestNaClManifest(pp_instance(),
+ open_cb.pp_completion_callback());
+ return true;
}
Plugin::Plugin(PP_Instance pp_instance)
- : pp::InstancePrivate(pp_instance),
- scriptable_plugin_(NULL),
- argc_(-1),
- argn_(NULL),
- argv_(NULL),
+ : pp::Instance(pp_instance),
main_subprocess_("main subprocess", NULL, NULL),
- nexe_error_reported_(false),
+ uses_nonsfi_mode_(false),
wrapper_factory_(NULL),
- enable_dev_interfaces_(false),
- is_installed_(false),
- init_time_(0),
- ready_time_(0),
- nexe_size_(0),
- time_of_last_progress_event_(0),
- exit_status_(-1),
- nacl_interface_(NULL) {
+ nacl_interface_(NULL),
+ uma_interface_(this) {
PLUGIN_PRINTF(("Plugin::Plugin (this=%p, pp_instance=%"
NACL_PRId32 ")\n", static_cast<void*>(this), pp_instance));
callback_factory_.Initialize(this);
- nexe_downloader_.Initialize(this);
nacl_interface_ = GetNaClInterface();
CHECK(nacl_interface_ != NULL);
- set_nacl_ready_state(UNSENT);
- set_last_error_string("");
+
+ // Notify PPB_NaCl_Private that the instance is created before altering any
+ // state that it tracks.
+ nacl_interface_->InstanceCreated(pp_instance);
// We call set_exit_status() here to ensure that the 'exitStatus' property is
// set. This can only be called when nacl_interface_ is not NULL.
set_exit_status(-1);
+ nexe_file_info_.handle = PP_kInvalidFileHandle;
+ nexe_file_info_.token_lo = 0;
+ nexe_file_info_.token_hi = 0;
}
Plugin::~Plugin() {
int64_t shutdown_start = NaClGetTimeOfDayMicroseconds();
- PLUGIN_PRINTF(("Plugin::~Plugin (this=%p, scriptable_plugin=%p)\n",
- static_cast<void*>(this),
- static_cast<void*>(scriptable_plugin())));
+ PLUGIN_PRINTF(("Plugin::~Plugin (this=%p)\n",
+ static_cast<void*>(this)));
// Destroy the coordinator while the rest of the data is still there
pnacl_coordinator_.reset(NULL);
- if (!nexe_error_reported()) {
- HistogramTimeLarge(
- "NaCl.ModuleUptime.Normal",
- (shutdown_start - ready_time_) / NACL_MICROS_PER_MILLI);
- }
-
- url_downloaders_.erase(url_downloaders_.begin(), url_downloaders_.end());
-
- ScriptablePlugin* scriptable_plugin_ = scriptable_plugin();
- ScriptablePlugin::Unref(&scriptable_plugin_);
+ nacl_interface_->InstanceDestroyed(pp_instance());
// ShutDownSubprocesses shuts down the main subprocess, which shuts
// down the main ServiceRuntime object, which kills the subprocess.
@@ -713,8 +360,6 @@ Plugin::~Plugin() {
ShutDownSubprocesses();
delete wrapper_factory_;
- delete[] argv_;
- delete[] argn_;
HistogramTimeSmall(
"NaCl.Perf.ShutdownTime.Total",
@@ -733,156 +378,36 @@ bool Plugin::HandleDocumentLoad(const pp::URLLoader& url_loader) {
return true;
}
-pp::Var Plugin::GetInstanceObject() {
- PLUGIN_PRINTF(("Plugin::GetInstanceObject (this=%p)\n",
- static_cast<void*>(this)));
- // The browser will unref when it discards the var for this object.
- ScriptablePlugin* handle =
- static_cast<ScriptablePlugin*>(scriptable_plugin()->AddRef());
- pp::Var* handle_var = handle->var();
- PLUGIN_PRINTF(("Plugin::GetInstanceObject (handle=%p, handle_var=%p)\n",
- static_cast<void*>(handle), static_cast<void*>(handle_var)));
- return *handle_var; // make a copy
-}
-
-void Plugin::HistogramStartupTimeSmall(const std::string& name, float dt) {
- if (nexe_size_ > 0) {
- float size_in_MB = static_cast<float>(nexe_size_) / (1024.f * 1024.f);
- HistogramTimeSmall(name, static_cast<int64_t>(dt));
- HistogramTimeSmall(name + "PerMB", static_cast<int64_t>(dt / size_in_MB));
- }
-}
-
-void Plugin::HistogramStartupTimeMedium(const std::string& name, float dt) {
- if (nexe_size_ > 0) {
- float size_in_MB = static_cast<float>(nexe_size_) / (1024.f * 1024.f);
- HistogramTimeMedium(name, static_cast<int64_t>(dt));
- HistogramTimeMedium(name + "PerMB", static_cast<int64_t>(dt / size_in_MB));
- }
-}
-
void Plugin::NexeFileDidOpen(int32_t pp_error) {
- PLUGIN_PRINTF(("Plugin::NexeFileDidOpen (pp_error=%" NACL_PRId32 ")\n",
- pp_error));
- struct NaClFileInfo info = nexe_downloader_.GetFileInfo();
- PLUGIN_PRINTF(("Plugin::NexeFileDidOpen (file_desc=%" NACL_PRId32 ")\n",
- info.desc));
- HistogramHTTPStatusCode(
- is_installed_ ?
- "NaCl.HttpStatusCodeClass.Nexe.InstalledApp" :
- "NaCl.HttpStatusCodeClass.Nexe.NotInstalledApp",
- nexe_downloader_.status_code());
- ErrorInfo error_info;
- if (pp_error != PP_OK || info.desc == NACL_NO_FILE_DESC) {
- if (pp_error == PP_ERROR_ABORTED) {
- ReportLoadAbort();
- } else if (pp_error == PP_ERROR_NOACCESS) {
- error_info.SetReport(ERROR_NEXE_NOACCESS_URL,
- "access to nexe url was denied.");
- ReportLoadError(error_info);
- } else {
- error_info.SetReport(ERROR_NEXE_LOAD_URL, "could not load nexe url.");
- ReportLoadError(error_info);
- }
+ if (pp_error != PP_OK)
return;
- }
- int32_t file_desc_ok_to_close = DUP(info.desc);
- if (file_desc_ok_to_close == NACL_NO_FILE_DESC) {
- error_info.SetReport(ERROR_NEXE_FH_DUP,
- "could not duplicate loaded file handle.");
- ReportLoadError(error_info);
- return;
- }
- struct stat stat_buf;
- if (0 != fstat(file_desc_ok_to_close, &stat_buf)) {
- CLOSE(file_desc_ok_to_close);
- error_info.SetReport(ERROR_NEXE_STAT, "could not stat nexe file.");
- ReportLoadError(error_info);
- return;
- }
- size_t nexe_bytes_read = static_cast<size_t>(stat_buf.st_size);
- nexe_size_ = nexe_bytes_read;
- HistogramSizeKB("NaCl.Perf.Size.Nexe",
- static_cast<int32_t>(nexe_size_ / 1024));
- HistogramStartupTimeMedium(
- "NaCl.Perf.StartupTime.NexeDownload",
- static_cast<float>(nexe_downloader_.TimeSinceOpenMilliseconds()));
-
- // Inform JavaScript that we successfully downloaded the nacl module.
- EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS,
- nexe_downloader_.url_to_open(),
- LENGTH_IS_COMPUTABLE,
- nexe_bytes_read,
- nexe_bytes_read);
-
- load_start_ = NaClGetTimeOfDayMicroseconds();
- nacl::scoped_ptr<nacl::DescWrapper>
- wrapper(wrapper_factory()->MakeFileDesc(file_desc_ok_to_close, O_RDONLY));
NaClLog(4, "NexeFileDidOpen: invoking LoadNaClModule\n");
- bool was_successful = LoadNaClModule(
- wrapper.get(), &error_info,
+ LoadNaClModule(
+ nexe_file_info_,
+ uses_nonsfi_mode_,
true, /* enable_dyncode_syscalls */
true, /* enable_exception_handling */
false, /* enable_crash_throttling */
callback_factory_.NewCallback(&Plugin::NexeFileDidOpenContinuation),
callback_factory_.NewCallback(&Plugin::NexeDidCrash));
-
- if (!was_successful) {
- ReportLoadError(error_info);
- }
}
void Plugin::NexeFileDidOpenContinuation(int32_t pp_error) {
- ErrorInfo error_info;
- bool was_successful;
-
UNREFERENCED_PARAMETER(pp_error);
NaClLog(4, "Entered NexeFileDidOpenContinuation\n");
- NaClLog(4, "NexeFileDidOpenContinuation: invoking"
- " LoadNaClModuleContinuationIntern\n");
- was_successful = LoadNaClModuleContinuationIntern(&error_info);
- if (was_successful) {
+ if (LoadNaClModuleContinuationIntern()) {
NaClLog(4, "NexeFileDidOpenContinuation: success;"
" setting histograms\n");
- ready_time_ = NaClGetTimeOfDayMicroseconds();
- HistogramStartupTimeSmall(
- "NaCl.Perf.StartupTime.LoadModule",
- static_cast<float>(ready_time_ - load_start_) / NACL_MICROS_PER_MILLI);
- HistogramStartupTimeMedium(
- "NaCl.Perf.StartupTime.Total",
- static_cast<float>(ready_time_ - init_time_) / NACL_MICROS_PER_MILLI);
-
- ReportLoadSuccess(LENGTH_IS_COMPUTABLE, nexe_size_, nexe_size_);
+ int64_t nexe_size = nacl_interface_->GetNexeSize(pp_instance());
+ nacl_interface_->ReportLoadSuccess(
+ pp_instance(), program_url_.c_str(), nexe_size, nexe_size);
} else {
NaClLog(4, "NexeFileDidOpenContinuation: failed.");
- ReportLoadError(error_info);
}
NaClLog(4, "Leaving NexeFileDidOpenContinuation\n");
}
-static void LogLineToConsole(Plugin* plugin, const nacl::string& one_line) {
- PLUGIN_PRINTF(("LogLineToConsole: %s\n",
- one_line.c_str()));
- plugin->AddToConsole(one_line);
-}
-
-void Plugin::CopyCrashLogToJsConsole() {
- nacl::string fatal_msg(main_service_runtime()->GetCrashLogOutput());
- size_t ix_start = 0;
- size_t ix_end;
-
- PLUGIN_PRINTF(("Plugin::CopyCrashLogToJsConsole: got %" NACL_PRIuS " bytes\n",
- fatal_msg.size()));
- while (nacl::string::npos != (ix_end = fatal_msg.find('\n', ix_start))) {
- LogLineToConsole(this, fatal_msg.substr(ix_start, ix_end - ix_start));
- ix_start = ix_end + 1;
- }
- if (ix_start != fatal_msg.size()) {
- LogLineToConsole(this, fatal_msg.substr(ix_start));
- }
-}
-
void Plugin::NexeDidCrash(int32_t pp_error) {
PLUGIN_PRINTF(("Plugin::NexeDidCrash (pp_error=%" NACL_PRId32 ")\n",
pp_error));
@@ -890,43 +415,10 @@ void Plugin::NexeDidCrash(int32_t pp_error) {
PLUGIN_PRINTF(("Plugin::NexeDidCrash: CallOnMainThread callback with"
" non-PP_OK arg -- SHOULD NOT HAPPEN\n"));
}
- PLUGIN_PRINTF(("Plugin::NexeDidCrash: crash event!\n"));
- if (-1 != exit_status()) {
- // The NaCl module voluntarily exited. However, this is still a
- // crash from the point of view of Pepper, since PPAPI plugins are
- // event handlers and should never exit.
- PLUGIN_PRINTF((("Plugin::NexeDidCrash: nexe exited with status %d"
- " so this is a \"controlled crash\".\n"),
- exit_status()));
- }
- // If the crash occurs during load, we just want to report an error
- // that fits into our load progress event grammar. If the crash
- // occurs after loaded/loadend, then we use ReportDeadNexe to send a
- // "crash" event.
- if (nexe_error_reported()) {
- PLUGIN_PRINTF(("Plugin::NexeDidCrash: error already reported;"
- " suppressing\n"));
- } else {
- if (nacl_ready_state_ == DONE) {
- ReportDeadNexe();
- } else {
- ErrorInfo error_info;
- // The error is not quite right. In particular, the crash
- // reported by this path could be due to NaCl application
- // crashes that occur after the PPAPI proxy has started.
- error_info.SetReport(ERROR_START_PROXY_CRASH,
- "Nexe crashed during startup");
- ReportLoadError(error_info);
- }
- }
- // In all cases, try to grab the crash log. The first error
- // reported may have come from the start_module RPC reply indicating
- // a validation error or something similar, which wouldn't grab the
- // crash log. In the event that this is called twice, the second
- // invocation will just be a no-op, since all the crash log will
- // have been received and we'll just get an EOF indication.
- CopyCrashLogToJsConsole();
+ std::string crash_log =
+ main_subprocess_.service_runtime()->GetCrashLogOutput();
+ nacl_interface_->NexeDidCrash(pp_instance(), crash_log.c_str());
}
void Plugin::BitcodeDidTranslate(int32_t pp_error) {
@@ -939,639 +431,84 @@ void Plugin::BitcodeDidTranslate(int32_t pp_error) {
}
// Inform JavaScript that we successfully translated the bitcode to a nexe.
- nacl::scoped_ptr<nacl::DescWrapper>
- wrapper(pnacl_coordinator_.get()->ReleaseTranslatedFD());
- ErrorInfo error_info;
- bool was_successful = LoadNaClModule(
- wrapper.get(), &error_info,
+ PP_FileHandle handle = pnacl_coordinator_->TakeTranslatedFileHandle();
+
+ PP_NaClFileInfo info;
+ info.handle = handle;
+ info.token_lo = 0;
+ info.token_hi = 0;
+ LoadNaClModule(
+ info,
+ false, /* uses_nonsfi_mode */
false, /* enable_dyncode_syscalls */
false, /* enable_exception_handling */
true, /* enable_crash_throttling */
callback_factory_.NewCallback(&Plugin::BitcodeDidTranslateContinuation),
callback_factory_.NewCallback(&Plugin::NexeDidCrash));
-
- if (!was_successful) {
- ReportLoadError(error_info);
- }
}
void Plugin::BitcodeDidTranslateContinuation(int32_t pp_error) {
- ErrorInfo error_info;
- bool was_successful = LoadNaClModuleContinuationIntern(&error_info);
-
NaClLog(4, "Entered BitcodeDidTranslateContinuation\n");
UNREFERENCED_PARAMETER(pp_error);
- if (was_successful) {
+ if (LoadNaClModuleContinuationIntern()) {
int64_t loaded;
int64_t total;
+ // TODO(teravest): Tighten this up so we can get rid of
+ // GetCurrentProgress(). loaded should always equal total.
pnacl_coordinator_->GetCurrentProgress(&loaded, &total);
- ReportLoadSuccess(LENGTH_IS_COMPUTABLE, loaded, total);
- } else {
- ReportLoadError(error_info);
+ nacl_interface_->ReportLoadSuccess(
+ pp_instance(), program_url_.c_str(), loaded, total);
}
}
-void Plugin::ReportDeadNexe() {
- PLUGIN_PRINTF(("Plugin::ReportDeadNexe\n"));
-
- if (nacl_ready_state_ == DONE && !nexe_error_reported()) { // After loadEnd.
- int64_t crash_time = NaClGetTimeOfDayMicroseconds();
- // Crashes will be more likely near startup, so use a medium histogram
- // instead of a large one.
- HistogramTimeMedium(
- "NaCl.ModuleUptime.Crash",
- (crash_time - ready_time_) / NACL_MICROS_PER_MILLI);
-
- nacl::string message = nacl::string("NaCl module crashed");
- set_last_error_string(message);
- AddToConsole(message);
-
- EnqueueProgressEvent(PP_NACL_EVENT_CRASH);
- set_nexe_error_reported(true);
- }
- // else ReportLoadError() and ReportAbortError() will be used by loading code
- // to provide error handling.
- //
- // NOTE: not all crashes during load will make it here.
- // Those in BrowserPpp::InitializeModule and creation of PPP interfaces
- // will just get reported back as PP_ERROR_FAILED.
-}
-
-void Plugin::NaClManifestBufferReady(int32_t pp_error) {
- PLUGIN_PRINTF(("Plugin::NaClManifestBufferReady (pp_error=%"
- NACL_PRId32 ")\n", pp_error));
- ErrorInfo error_info;
- set_manifest_url(nexe_downloader_.url());
- if (pp_error != PP_OK) {
- if (pp_error == PP_ERROR_ABORTED) {
- ReportLoadAbort();
- } else {
- error_info.SetReport(ERROR_MANIFEST_LOAD_URL,
- "could not load manifest url.");
- ReportLoadError(error_info);
- }
- return;
- }
-
- const std::deque<char>& buffer = nexe_downloader_.buffer();
- size_t buffer_size = buffer.size();
- if (buffer_size > kNaClManifestMaxFileBytes) {
- error_info.SetReport(ERROR_MANIFEST_TOO_LARGE,
- "manifest file too large.");
- ReportLoadError(error_info);
- return;
- }
- nacl::scoped_array<char> json_buffer(new char[buffer_size + 1]);
- if (json_buffer == NULL) {
- error_info.SetReport(ERROR_MANIFEST_MEMORY_ALLOC,
- "could not allocate manifest memory.");
- ReportLoadError(error_info);
- return;
- }
- std::copy(buffer.begin(), buffer.begin() + buffer_size, &json_buffer[0]);
- json_buffer[buffer_size] = '\0';
-
- ProcessNaClManifest(json_buffer.get());
-}
-
void Plugin::NaClManifestFileDidOpen(int32_t pp_error) {
PLUGIN_PRINTF(("Plugin::NaClManifestFileDidOpen (pp_error=%"
NACL_PRId32 ")\n", pp_error));
- HistogramTimeSmall("NaCl.Perf.StartupTime.ManifestDownload",
- nexe_downloader_.TimeSinceOpenMilliseconds());
- HistogramHTTPStatusCode(
- is_installed_ ?
- "NaCl.HttpStatusCodeClass.Manifest.InstalledApp" :
- "NaCl.HttpStatusCodeClass.Manifest.NotInstalledApp",
- nexe_downloader_.status_code());
- ErrorInfo error_info;
- // The manifest file was successfully opened. Set the src property on the
- // plugin now, so that the full url is available to error handlers.
- set_manifest_url(nexe_downloader_.url());
- struct NaClFileInfo info = nexe_downloader_.GetFileInfo();
- PLUGIN_PRINTF(("Plugin::NaClManifestFileDidOpen (file_desc=%"
- NACL_PRId32 ")\n", info.desc));
- if (pp_error != PP_OK || info.desc == NACL_NO_FILE_DESC) {
- if (pp_error == PP_ERROR_ABORTED) {
- ReportLoadAbort();
- } else if (pp_error == PP_ERROR_NOACCESS) {
- error_info.SetReport(ERROR_MANIFEST_NOACCESS_URL,
- "access to manifest url was denied.");
- ReportLoadError(error_info);
- } else {
- error_info.SetReport(ERROR_MANIFEST_LOAD_URL,
- "could not load manifest url.");
- ReportLoadError(error_info);
- }
+ if (pp_error != PP_OK)
return;
- }
- // SlurpFile closes the file descriptor after reading (or on error).
- // Duplicate our file descriptor since it will be handled by the browser.
- int dup_file_desc = DUP(info.desc);
- nacl::string json_buffer;
- file_utils::StatusCode status = file_utils::SlurpFile(
- dup_file_desc, json_buffer, kNaClManifestMaxFileBytes);
-
- if (status != file_utils::PLUGIN_FILE_SUCCESS) {
- switch (status) {
- case file_utils::PLUGIN_FILE_SUCCESS:
- CHECK(0);
- break;
- case file_utils::PLUGIN_FILE_ERROR_MEM_ALLOC:
- error_info.SetReport(ERROR_MANIFEST_MEMORY_ALLOC,
- "could not allocate manifest memory.");
- break;
- case file_utils::PLUGIN_FILE_ERROR_OPEN:
- error_info.SetReport(ERROR_MANIFEST_OPEN,
- "could not open manifest file.");
- break;
- case file_utils::PLUGIN_FILE_ERROR_FILE_TOO_LARGE:
- error_info.SetReport(ERROR_MANIFEST_TOO_LARGE,
- "manifest file too large.");
- break;
- case file_utils::PLUGIN_FILE_ERROR_STAT:
- error_info.SetReport(ERROR_MANIFEST_STAT,
- "could not stat manifest file.");
- break;
- case file_utils::PLUGIN_FILE_ERROR_READ:
- error_info.SetReport(ERROR_MANIFEST_READ,
- "could not read manifest file.");
- break;
- }
- ReportLoadError(error_info);
- return;
- }
- ProcessNaClManifest(json_buffer);
-}
-
-void Plugin::ProcessNaClManifest(const nacl::string& manifest_json) {
- HistogramSizeKB("NaCl.Perf.Size.Manifest",
- static_cast<int32_t>(manifest_json.length() / 1024));
- nacl::string program_url;
- PnaclOptions pnacl_options;
- ErrorInfo error_info;
- if (!SetManifestObject(manifest_json, &error_info)) {
- ReportLoadError(error_info);
- return;
- }
-
- if (manifest_->GetProgramURL(&program_url, &pnacl_options, &error_info)) {
- is_installed_ = GetUrlScheme(program_url) == SCHEME_CHROME_EXTENSION;
- set_nacl_ready_state(LOADING);
- // Inform JavaScript that we found a nexe URL to load.
- EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS);
- if (pnacl_options.translate()) {
+ PP_Var pp_program_url;
+ PP_PNaClOptions pnacl_options = {PP_FALSE, PP_FALSE, 2};
+ PP_Bool uses_nonsfi_mode;
+ if (nacl_interface_->GetManifestProgramURL(
+ pp_instance(), &pp_program_url, &pnacl_options, &uses_nonsfi_mode)) {
+ program_url_ = pp::Var(pp::PASS_REF, pp_program_url).AsString();
+ // TODO(teravest): Make ProcessNaClManifest take responsibility for more of
+ // this function.
+ nacl_interface_->ProcessNaClManifest(pp_instance(), program_url_.c_str());
+ uses_nonsfi_mode_ = PP_ToBool(uses_nonsfi_mode);
+ if (pnacl_options.translate) {
pp::CompletionCallback translate_callback =
callback_factory_.NewCallback(&Plugin::BitcodeDidTranslate);
- // Will always call the callback on success or failure.
pnacl_coordinator_.reset(
PnaclCoordinator::BitcodeToNative(this,
- program_url,
+ program_url_,
pnacl_options,
translate_callback));
return;
} else {
- // Try the fast path first. This will only block if the file is installed.
- if (OpenURLFast(program_url, &nexe_downloader_)) {
- NexeFileDidOpen(PP_OK);
- } else {
- pp::CompletionCallback open_callback =
- callback_factory_.NewCallback(&Plugin::NexeFileDidOpen);
- // Will always call the callback on success or failure.
- CHECK(
- nexe_downloader_.Open(program_url,
- DOWNLOAD_TO_FILE,
- open_callback,
- true,
- &UpdateDownloadProgress));
- }
+ pp::CompletionCallback open_callback =
+ callback_factory_.NewCallback(&Plugin::NexeFileDidOpen);
+ // Will always call the callback on success or failure.
+ nacl_interface_->DownloadNexe(pp_instance(),
+ program_url_.c_str(),
+ &nexe_file_info_,
+ open_callback.pp_completion_callback());
return;
}
}
- // Failed to select the program and/or the translator.
- ReportLoadError(error_info);
-}
-
-void Plugin::RequestNaClManifest(const nacl::string& url) {
- PLUGIN_PRINTF(("Plugin::RequestNaClManifest (url='%s')\n", url.c_str()));
- PLUGIN_PRINTF(("Plugin::RequestNaClManifest (plugin base url='%s')\n",
- plugin_base_url().c_str()));
- // The full URL of the manifest file is relative to the base url.
- CHECK(url_util_ != NULL);
- pp::Var nmf_resolved_url =
- url_util_->ResolveRelativeToURL(plugin_base_url(), pp::Var(url));
- if (!nmf_resolved_url.is_string()) {
- ErrorInfo error_info;
- error_info.SetReport(
- ERROR_MANIFEST_RESOLVE_URL,
- nacl::string("could not resolve URL \"") + url.c_str() +
- "\" relative to \"" + plugin_base_url().c_str() + "\".");
- ReportLoadError(error_info);
- return;
- }
- PLUGIN_PRINTF(("Plugin::RequestNaClManifest (resolved url='%s')\n",
- nmf_resolved_url.AsString().c_str()));
- is_installed_ = GetUrlScheme(nmf_resolved_url.AsString()) ==
- SCHEME_CHROME_EXTENSION;
- set_manifest_base_url(nmf_resolved_url.AsString());
- set_manifest_url(url);
- // Inform JavaScript that a load is starting.
- set_nacl_ready_state(OPENED);
- EnqueueProgressEvent(PP_NACL_EVENT_LOADSTART);
- bool is_data_uri = GetUrlScheme(nmf_resolved_url.AsString()) == SCHEME_DATA;
- HistogramEnumerateManifestIsDataURI(static_cast<int>(is_data_uri));
- if (is_data_uri) {
- pp::CompletionCallback open_callback =
- callback_factory_.NewCallback(&Plugin::NaClManifestBufferReady);
- // Will always call the callback on success or failure.
- CHECK(nexe_downloader_.Open(nmf_resolved_url.AsString(),
- DOWNLOAD_TO_BUFFER,
- open_callback,
- false,
- NULL));
- } else {
- pp::CompletionCallback open_callback =
- callback_factory_.NewCallback(&Plugin::NaClManifestFileDidOpen);
- // Will always call the callback on success or failure.
- CHECK(nexe_downloader_.Open(nmf_resolved_url.AsString(),
- DOWNLOAD_TO_FILE,
- open_callback,
- false,
- NULL));
- }
-}
-
-
-bool Plugin::SetManifestObject(const nacl::string& manifest_json,
- ErrorInfo* error_info) {
- PLUGIN_PRINTF(("Plugin::SetManifestObject(): manifest_json='%s'.\n",
- manifest_json.c_str()));
- if (error_info == NULL)
- return false;
- // Determine whether lookups should use portable (i.e., pnacl versions)
- // rather than platform-specific files.
- bool is_pnacl = (mime_type() == kPnaclMIMEType);
- nacl::scoped_ptr<JsonManifest> json_manifest(
- new JsonManifest(url_util_,
- manifest_base_url(),
- (is_pnacl ? kPortableISA : GetSandboxISA())));
- if (!json_manifest->Init(manifest_json, error_info)) {
- return false;
- }
- manifest_.reset(json_manifest.release());
- return true;
-}
-
-void Plugin::UrlDidOpenForStreamAsFile(int32_t pp_error,
- FileDownloader*& url_downloader,
- PP_CompletionCallback callback) {
- PLUGIN_PRINTF(("Plugin::UrlDidOpen (pp_error=%" NACL_PRId32
- ", url_downloader=%p)\n", pp_error,
- static_cast<void*>(url_downloader)));
- url_downloaders_.erase(url_downloader);
- nacl::scoped_ptr<FileDownloader> scoped_url_downloader(url_downloader);
- struct NaClFileInfo info = scoped_url_downloader->GetFileInfo();
-
- if (pp_error != PP_OK) {
- PP_RunCompletionCallback(&callback, pp_error);
- } else if (info.desc > NACL_NO_FILE_DESC) {
- url_file_info_map_[url_downloader->url_to_open()] = info;
- PP_RunCompletionCallback(&callback, PP_OK);
- } else {
- PP_RunCompletionCallback(&callback, PP_ERROR_FAILED);
- }
-}
-
-struct NaClFileInfo Plugin::GetFileInfo(const nacl::string& url) {
- struct NaClFileInfo info;
- memset(&info, 0, sizeof(info));
- std::map<nacl::string, struct NaClFileInfo>::iterator it =
- url_file_info_map_.find(url);
- if (it != url_file_info_map_.end()) {
- info = it->second;
- info.desc = DUP(info.desc);
- } else {
- info.desc = -1;
- }
- return info;
-}
-
-bool Plugin::StreamAsFile(const nacl::string& url,
- PP_CompletionCallback callback) {
- PLUGIN_PRINTF(("Plugin::StreamAsFile (url='%s')\n", url.c_str()));
- FileDownloader* downloader = new FileDownloader();
- downloader->Initialize(this);
- url_downloaders_.insert(downloader);
- // Untrusted loads are always relative to the page's origin.
- CHECK(url_util_ != NULL);
- pp::Var resolved_url =
- url_util_->ResolveRelativeToURL(pp::Var(plugin_base_url()), url);
- if (!resolved_url.is_string()) {
- PLUGIN_PRINTF(("Plugin::StreamAsFile: "
- "could not resolve url \"%s\" relative to plugin \"%s\".",
- url.c_str(),
- plugin_base_url().c_str()));
- return false;
- }
-
- // Try the fast path first. This will only block if the file is installed.
- if (OpenURLFast(url, downloader)) {
- UrlDidOpenForStreamAsFile(PP_OK, downloader, callback);
- return true;
- }
-
- pp::CompletionCallback open_callback = callback_factory_.NewCallback(
- &Plugin::UrlDidOpenForStreamAsFile, downloader, callback);
- // If true, will always call the callback on success or failure.
- return downloader->Open(url,
- DOWNLOAD_TO_FILE,
- open_callback,
- true,
- &UpdateDownloadProgress);
}
-
-void Plugin::ReportLoadSuccess(LengthComputable length_computable,
- uint64_t loaded_bytes,
- uint64_t total_bytes) {
- // Set the readyState attribute to indicate loaded.
- set_nacl_ready_state(DONE);
- // Inform JavaScript that loading was successful and is complete.
- const nacl::string& url = nexe_downloader_.url_to_open();
- EnqueueProgressEvent(
- PP_NACL_EVENT_LOAD, url, length_computable, loaded_bytes, total_bytes);
- EnqueueProgressEvent(
- PP_NACL_EVENT_LOADEND, url, length_computable, loaded_bytes, total_bytes);
-
- // UMA
- HistogramEnumerateLoadStatus(ERROR_LOAD_SUCCESS, is_installed_);
-}
-
-
-// TODO(ncbray): report UMA stats
void Plugin::ReportLoadError(const ErrorInfo& error_info) {
- PLUGIN_PRINTF(("Plugin::ReportLoadError (error='%s')\n",
- error_info.message().c_str()));
- // For errors the user (and not just the developer) should know about,
- // report them to the renderer so the browser can display a message.
- if (error_info.error_code() == ERROR_MANIFEST_PROGRAM_MISSING_ARCH) {
- // A special case: the manifest may otherwise be valid but is missing
- // a program/file compatible with the user's sandbox.
- nacl_interface()->ReportNaClError(pp_instance(),
- PP_NACL_MANIFEST_MISSING_ARCH);
- }
-
- // Set the readyState attribute to indicate we need to start over.
- set_nacl_ready_state(DONE);
- set_nexe_error_reported(true);
- // Report an error in lastError and on the JavaScript console.
- nacl::string message = nacl::string("NaCl module load failed: ") +
- error_info.message();
- set_last_error_string(message);
- AddToConsole(nacl::string("NaCl module load failed: ") +
- error_info.console_message());
- // Inform JavaScript that loading encountered an error and is complete.
- EnqueueProgressEvent(PP_NACL_EVENT_ERROR);
- EnqueueProgressEvent(PP_NACL_EVENT_LOADEND);
-
- // UMA
- HistogramEnumerateLoadStatus(error_info.error_code(), is_installed_);
-}
-
-
-void Plugin::ReportLoadAbort() {
- PLUGIN_PRINTF(("Plugin::ReportLoadAbort\n"));
- // Set the readyState attribute to indicate we need to start over.
- set_nacl_ready_state(DONE);
- set_nexe_error_reported(true);
- // Report an error in lastError and on the JavaScript console.
- nacl::string error_string("NaCl module load failed: user aborted");
- set_last_error_string(error_string);
- AddToConsole(error_string);
- // Inform JavaScript that loading was aborted and is complete.
- EnqueueProgressEvent(PP_NACL_EVENT_ABORT);
- EnqueueProgressEvent(PP_NACL_EVENT_LOADEND);
-
- // UMA
- HistogramEnumerateLoadStatus(ERROR_LOAD_ABORTED, is_installed_);
-}
-
-void Plugin::UpdateDownloadProgress(
- PP_Instance pp_instance,
- PP_Resource pp_resource,
- int64_t /*bytes_sent*/,
- int64_t /*total_bytes_to_be_sent*/,
- int64_t bytes_received,
- int64_t total_bytes_to_be_received) {
- Instance* instance = pp::Module::Get()->InstanceForPPInstance(pp_instance);
- if (instance != NULL) {
- Plugin* plugin = static_cast<Plugin*>(instance);
- // Rate limit progress events to a maximum of 100 per second.
- int64_t time = NaClGetTimeOfDayMicroseconds();
- int64_t elapsed = time - plugin->time_of_last_progress_event_;
- const int64_t kTenMilliseconds = 10000;
- if (elapsed > kTenMilliseconds) {
- plugin->time_of_last_progress_event_ = time;
-
- // Find the URL loader that sent this notification.
- const FileDownloader* file_downloader =
- plugin->FindFileDownloader(pp_resource);
- // If not a streamed file, it must be the .nexe loader.
- if (file_downloader == NULL)
- file_downloader = &plugin->nexe_downloader_;
- nacl::string url = file_downloader->url_to_open();
- LengthComputable length_computable = (total_bytes_to_be_received >= 0) ?
- LENGTH_IS_COMPUTABLE : LENGTH_IS_NOT_COMPUTABLE;
-
- plugin->EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS,
- url,
- length_computable,
- bytes_received,
- total_bytes_to_be_received);
- }
- }
-}
-
-const FileDownloader* Plugin::FindFileDownloader(
- PP_Resource url_loader) const {
- const FileDownloader* file_downloader = NULL;
- if (url_loader == nexe_downloader_.url_loader()) {
- file_downloader = &nexe_downloader_;
- } else {
- std::set<FileDownloader*>::const_iterator it = url_downloaders_.begin();
- while (it != url_downloaders_.end()) {
- if (url_loader == (*it)->url_loader()) {
- file_downloader = (*it);
- break;
- }
- ++it;
- }
- }
- return file_downloader;
-}
-
-void Plugin::EnqueueProgressEvent(PP_NaClEventType event_type) {
- EnqueueProgressEvent(event_type,
- NACL_NO_URL,
- Plugin::LENGTH_IS_NOT_COMPUTABLE,
- Plugin::kUnknownBytes,
- Plugin::kUnknownBytes);
-}
-
-void Plugin::EnqueueProgressEvent(PP_NaClEventType event_type,
- const nacl::string& url,
- LengthComputable length_computable,
- uint64_t loaded_bytes,
- uint64_t total_bytes) {
- PLUGIN_PRINTF(("Plugin::EnqueueProgressEvent ("
- "event_type='%d', url='%s', length_computable=%d, "
- "loaded=%" NACL_PRIu64 ", total=%" NACL_PRIu64 ")\n",
- static_cast<int>(event_type),
- url.c_str(),
- static_cast<int>(length_computable),
- loaded_bytes,
- total_bytes));
-
- progress_events_.push(new ProgressEvent(event_type,
- url,
- length_computable,
- loaded_bytes,
- total_bytes));
- // Note that using callback_factory_ in this way is not thread safe.
- // If/when EnqueueProgressEvent is callable from another thread, this
- // will need to change.
- pp::CompletionCallback callback =
- callback_factory_.NewCallback(&Plugin::DispatchProgressEvent);
- pp::Core* core = pp::Module::Get()->core();
- core->CallOnMainThread(0, callback, 0);
-}
-
-void Plugin::ReportSelLdrLoadStatus(int status) {
- HistogramEnumerateSelLdrLoadStatus(static_cast<NaClErrorCode>(status),
- is_installed_);
-}
-
-void Plugin::DispatchProgressEvent(int32_t result) {
- PLUGIN_PRINTF(("Plugin::DispatchProgressEvent (result=%"
- NACL_PRId32 ")\n", result));
- if (result < 0) {
- return;
- }
- if (progress_events_.empty()) {
- PLUGIN_PRINTF(("Plugin::DispatchProgressEvent: no pending events\n"));
- return;
- }
- nacl::scoped_ptr<ProgressEvent> event(progress_events_.front());
- progress_events_.pop();
- PLUGIN_PRINTF(("Plugin::DispatchProgressEvent ("
- "event_type='%d', url='%s', length_computable=%d, "
- "loaded=%" NACL_PRIu64 ", total=%" NACL_PRIu64 ")\n",
- static_cast<int>(event->event_type()),
- event->url(),
- static_cast<int>(event->length_computable()),
- event->loaded_bytes(),
- event->total_bytes()));
-
- nacl_interface_->DispatchEvent(
- pp_instance(),
- event->event_type(),
- pp::Var(event->url()).pp_var(),
- event->length_computable() == LENGTH_IS_COMPUTABLE ? PP_TRUE : PP_FALSE,
- event->loaded_bytes(),
- event->total_bytes());
-}
-
-bool Plugin::OpenURLFast(const nacl::string& url,
- FileDownloader* downloader) {
- // Fast path only works for installed file URLs.
- if (GetUrlScheme(url) != SCHEME_CHROME_EXTENSION)
- return false;
- // IMPORTANT: Make sure the document can request the given URL. If we don't
- // check, a malicious app could probe the extension system. This enforces a
- // same-origin policy which prevents the app from requesting resources from
- // another app.
- if (!DocumentCanRequest(url))
- return false;
-
- uint64_t file_token_lo = 0;
- uint64_t file_token_hi = 0;
- PP_FileHandle file_handle =
- nacl_interface()->OpenNaClExecutable(pp_instance(),
- url.c_str(),
- &file_token_lo, &file_token_hi);
- // We shouldn't hit this if the file URL is in an installed app.
- if (file_handle == PP_kInvalidFileHandle)
- return false;
-
- // FileDownloader takes ownership of the file handle.
- downloader->OpenFast(url, file_handle, file_token_lo, file_token_hi);
- return true;
-}
-
-UrlSchemeType Plugin::GetUrlScheme(const std::string& url) {
- CHECK(url_util_ != NULL);
- PP_URLComponents_Dev comps;
- pp::Var canonicalized =
- url_util_->Canonicalize(pp::Var(url), &comps);
-
- if (canonicalized.is_null() ||
- (comps.scheme.begin == 0 && comps.scheme.len == -1)) {
- // |url| was an invalid URL or has no scheme.
- return SCHEME_OTHER;
- }
-
- CHECK(comps.scheme.begin <
- static_cast<int>(canonicalized.AsString().size()));
- CHECK(comps.scheme.begin + comps.scheme.len <
- static_cast<int>(canonicalized.AsString().size()));
-
- std::string scheme = canonicalized.AsString().substr(comps.scheme.begin,
- comps.scheme.len);
- if (scheme == kChromeExtensionUriScheme)
- return SCHEME_CHROME_EXTENSION;
- if (scheme == kDataUriScheme)
- return SCHEME_DATA;
- return SCHEME_OTHER;
+ nacl_interface_->ReportLoadError(pp_instance(),
+ error_info.error_code(),
+ error_info.message().c_str());
}
bool Plugin::DocumentCanRequest(const std::string& url) {
- CHECK(url_util_ != NULL);
- return url_util_->DocumentCanRequest(this, pp::Var(url));
-}
-
-void Plugin::AddToConsole(const nacl::string& text) {
- pp::Module* module = pp::Module::Get();
- const PPB_Var* var_interface =
- static_cast<const PPB_Var*>(
- module->GetBrowserInterface(PPB_VAR_INTERFACE));
- nacl::string prefix_string("NativeClient");
- PP_Var prefix =
- var_interface->VarFromUtf8(prefix_string.c_str(),
- static_cast<uint32_t>(prefix_string.size()));
- PP_Var str = var_interface->VarFromUtf8(text.c_str(),
- static_cast<uint32_t>(text.size()));
- const PPB_Console* console_interface =
- static_cast<const PPB_Console*>(
- module->GetBrowserInterface(PPB_CONSOLE_INTERFACE));
- console_interface->LogWithSource(pp_instance(), PP_LOGLEVEL_LOG, prefix, str);
- var_interface->Release(prefix);
- var_interface->Release(str);
-}
-
-void Plugin::set_last_error_string(const nacl::string& error) {
- DCHECK(nacl_interface_);
- nacl_interface_->SetReadOnlyProperty(pp_instance(),
- pp::Var("lastError").pp_var(),
- pp::Var(error).pp_var());
-}
-
-void Plugin::set_nacl_ready_state(ReadyState state) {
- nacl_ready_state_ = state;
- DCHECK(nacl_interface_);
- nacl_interface_->SetReadOnlyProperty(pp_instance(),
- pp::Var("readyState").pp_var(),
- pp::Var(state).pp_var());
+ CHECK(pp::Module::Get()->core()->IsMainThread());
+ CHECK(pp::URLUtil_Dev::Get() != NULL);
+ return pp::URLUtil_Dev::Get()->DocumentCanRequest(this, pp::Var(url));
}
void Plugin::set_exit_status(int exit_status) {
@@ -1590,10 +527,7 @@ void Plugin::SetExitStatusOnMainThread(int32_t pp_error,
int exit_status) {
DCHECK(pp::Module::Get()->core()->IsMainThread());
DCHECK(nacl_interface_);
- exit_status_ = exit_status;
- nacl_interface_->SetReadOnlyProperty(pp_instance(),
- pp::Var("exitStatus").pp_var(),
- pp::Var(exit_status_).pp_var());
+ nacl_interface_->SetExitStatus(pp_instance(), exit_status);
}
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/plugin.gyp b/chromium/ppapi/native_client/src/trusted/plugin/plugin.gyp
index c932c2c40de..343883d2474 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/plugin.gyp
+++ b/chromium/ppapi/native_client/src/trusted/plugin/plugin.gyp
@@ -72,7 +72,6 @@
'<(DEPTH)/native_client/src/trusted/reverse_service/reverse_service.gyp:reverse_service',
'<(DEPTH)/native_client/src/trusted/weak_ref/weak_ref.gyp:weak_ref',
'<(DEPTH)/ppapi/ppapi.gyp:ppapi_cpp',
- '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp',
],
'conditions': [
['OS=="mac"', {
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/plugin.gypi b/chromium/ppapi/native_client/src/trusted/plugin/plugin.gypi
index 7f3bff41402..27ee36a8687 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/plugin.gypi
+++ b/chromium/ppapi/native_client/src/trusted/plugin/plugin.gypi
@@ -7,17 +7,12 @@
'chromium_code': 1, # Use higher warning level.
'common_sources': [
'file_downloader.cc',
- 'file_utils.cc',
- 'json_manifest.cc',
'module_ppapi.cc',
- 'nacl_http_response_headers.cc',
'nacl_subprocess.cc',
'plugin.cc',
'pnacl_coordinator.cc',
- 'pnacl_options.cc',
'pnacl_resources.cc',
'pnacl_translate_thread.cc',
- 'scriptable_plugin.cc',
'sel_ldr_launcher_chrome.cc',
'service_runtime.cc',
'srpc_client.cc',
@@ -25,21 +20,6 @@
'temporary_file.cc',
'utility.cc',
],
- # Append the arch-specific ISA code to common_sources.
- 'conditions': [
- # Note: this test assumes that if this is not an ARM build, then this is
- # is an x86 build. This is because |target_arch| for x86 can be one of a
- # number of values (x64, ia32, etc.).
- ['target_arch=="arm"', {
- 'common_sources': [
- 'arch_arm/sandbox_isa.cc',
- ],
- }, { # else: 'target_arch != "arm"
- 'common_sources': [
- 'arch_x86/sandbox_isa.cc',
- ],
- }],
- ],
},
'includes': [
'../../../../../native_client/build/common.gypi',
@@ -61,7 +41,7 @@
'-Wno-unused-parameter', # be a bit stricter to match NaCl flags.
],
'conditions': [
- ['asan!=1', {
+ ['asan!=1 and msan!=1', {
'ldflags': [
# Catch unresolved symbols.
'-Wl,-z,defs',
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/plugin.h b/chromium/ppapi/native_client/src/trusted/plugin/plugin.h
index ca8348968d2..dbfcac61faf 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/plugin.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/plugin.h
@@ -19,10 +19,11 @@
#include "native_client/src/include/nacl_macros.h"
#include "native_client/src/include/nacl_scoped_ptr.h"
#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/trusted/validator/nacl_file_info.h"
+#include "native_client/src/public/nacl_file_info.h"
#include "ppapi/c/private/ppb_nacl_private.h"
-#include "ppapi/cpp/private/instance_private.h"
+#include "ppapi/cpp/instance.h"
+#include "ppapi/cpp/private/uma_private.h"
#include "ppapi/cpp/url_loader.h"
#include "ppapi/cpp/var.h"
#include "ppapi/cpp/view.h"
@@ -39,25 +40,21 @@ class DescWrapperFactory;
} // namespace nacl
namespace pp {
+class CompletionCallback;
class URLLoader;
class URLUtil_Dev;
}
-namespace ppapi_proxy {
-class BrowserPpp;
-}
-
namespace plugin {
class ErrorInfo;
class Manifest;
-class ProgressEvent;
-class ScriptablePlugin;
-class Plugin : public pp::InstancePrivate {
+int32_t ConvertFileDescriptor(PP_FileHandle handle);
+
+class Plugin : public pp::Instance {
public:
- // Factory method for creation.
- static Plugin* New(PP_Instance instance);
+ explicit Plugin(PP_Instance instance);
// ----- Methods inherited from pp::Instance:
@@ -69,17 +66,10 @@ class Plugin : public pp::InstancePrivate {
// Handles document load, when the plugin is a MIME type handler.
virtual bool HandleDocumentLoad(const pp::URLLoader& url_loader);
- // Returns a scriptable reference to this plugin element.
- // Called by JavaScript document.getElementById(plugin_id).
- virtual pp::Var GetInstanceObject();
-
- // ----- Plugin interface support.
-
// Load support.
- // NaCl module can be loaded given a DescWrapper.
//
// Starts NaCl module but does not wait until low-level
- // initialization (e.g., ld.so dynamic loading of manifest files) is
+ // initialization (e.g. ld.so dynamic loading of manifest files) is
// done. The module will become ready later, asynchronously. Other
// event handlers should block until the module is ready before
// trying to communicate with it, i.e., until nacl_ready_state is
@@ -91,9 +81,8 @@ class Plugin : public pp::InstancePrivate {
// should include a time-out at which point we declare the
// nacl_ready_state to be done, and let the normal crash detection
// mechanism(s) take over.
- //
- // Updates nacl_module_origin() and nacl_module_url().
- bool LoadNaClModule(nacl::DescWrapper* wrapper, ErrorInfo* error_info,
+ void LoadNaClModule(PP_NaClFileInfo file_info,
+ bool uses_nonsfi_mode,
bool enable_dyncode_syscalls,
bool enable_exception_handling,
bool enable_crash_throttling,
@@ -102,7 +91,7 @@ class Plugin : public pp::InstancePrivate {
// Finish hooking interfaces up, after low-level initialization is
// complete.
- bool LoadNaClModuleContinuationIntern(ErrorInfo* error_info);
+ bool LoadNaClModuleContinuationIntern();
// Continuation for starting SRPC/JSProxy services as appropriate.
// This is invoked as a callback when the NaCl module makes the
@@ -113,188 +102,76 @@ class Plugin : public pp::InstancePrivate {
bool LoadNaClModuleContinuation(int32_t pp_error);
// Load support.
- // A helper SRPC NaCl module can be loaded given a DescWrapper.
+ // A helper SRPC NaCl module can be loaded given a PP_FileHandle.
// Blocks until the helper module signals initialization is done.
// Does not update nacl_module_origin().
// Returns NULL or the NaClSubprocess of the new helper NaCl module.
- NaClSubprocess* LoadHelperNaClModule(nacl::DescWrapper* wrapper,
- const Manifest* manifest,
+ NaClSubprocess* LoadHelperNaClModule(const nacl::string& helper_url,
+ PP_FileHandle file_handle,
ErrorInfo* error_info);
- // Returns the argument value for the specified key, or NULL if not found.
- // The callee retains ownership of the result.
- char* LookupArgument(const char* key);
-
- enum LengthComputable {
- LENGTH_IS_NOT_COMPUTABLE = 0,
- LENGTH_IS_COMPUTABLE = 1
- };
- // Report successful loading of a module.
- void ReportLoadSuccess(LengthComputable length_computable,
- uint64_t loaded_bytes,
- uint64_t total_bytes);
// Report an error that was encountered while loading a module.
void ReportLoadError(const ErrorInfo& error_info);
- // Report loading a module was aborted, typically due to user action.
- void ReportLoadAbort();
-
- // Write a text string on the JavaScript console.
- void AddToConsole(const nacl::string& text);
-
- // Dispatch a JavaScript event to indicate a key step in loading.
- // |event_type| is a character string indicating which type of progress
- // event (loadstart, progress, error, abort, load, loadend). Events are
- // enqueued on the JavaScript event loop, which then calls back through
- // DispatchProgressEvent.
- void EnqueueProgressEvent(PP_NaClEventType event_type);
- void EnqueueProgressEvent(PP_NaClEventType event_type,
- const nacl::string& url,
- LengthComputable length_computable,
- uint64_t loaded_bytes,
- uint64_t total_bytes);
-
- // Report the error code that sel_ldr produces when starting a nexe.
- void ReportSelLdrLoadStatus(int status);
-
- // Report nexe death after load to JS and shut down the proxy.
- void ReportDeadNexe();
-
- // URL resolution support.
- // plugin_base_url is the URL used for resolving relative URLs used in
- // src="...".
- nacl::string plugin_base_url() const { return plugin_base_url_; }
- void set_plugin_base_url(const nacl::string& url) { plugin_base_url_ = url; }
- // manifest_base_url is the URL used for resolving relative URLs mentioned
- // in manifest files. If the manifest is a data URI, this is an empty string.
- nacl::string manifest_base_url() const { return manifest_base_url_; }
- void set_manifest_base_url(const nacl::string& url) {
- manifest_base_url_ = url;
- }
-
- // The URL of the manifest file as set by the "src" attribute.
- // It is not the fully resolved URL if it was set as relative.
- const nacl::string& manifest_url() const { return manifest_url_; }
- void set_manifest_url(const nacl::string& manifest_url) {
- manifest_url_ = manifest_url;
- }
-
- // The state of readiness of the plugin.
- enum ReadyState {
- // The trusted plugin begins in this ready state.
- UNSENT = 0,
- // The manifest file has been requested, but not yet received.
- OPENED = 1,
- // This state is unused.
- HEADERS_RECEIVED = 2,
- // The manifest file has been received and the nexe successfully requested.
- LOADING = 3,
- // The nexe has been loaded and the proxy started, so it is ready for
- // interaction with the page.
- DONE = 4
- };
- bool nexe_error_reported() const { return nexe_error_reported_; }
- void set_nexe_error_reported(bool val) {
- nexe_error_reported_ = val;
- }
nacl::DescWrapperFactory* wrapper_factory() const { return wrapper_factory_; }
- // Requests a NaCl manifest download from a |url| relative to the page origin.
- void RequestNaClManifest(const nacl::string& url);
-
- // The size returned when a file download operation is unable to determine
- // the size of the file to load. W3C ProgressEvents specify that unknown
- // sizes return 0.
- static const uint64_t kUnknownBytes = 0;
-
- // Called back by CallOnMainThread. Dispatches the first enqueued progress
- // event.
- void DispatchProgressEvent(int32_t result);
-
- // Requests a URL asynchronously resulting in a call to pp_callback with
- // a PP_Error indicating status. On success an open file descriptor
- // corresponding to the url body is recorded for further lookup.
- bool StreamAsFile(const nacl::string& url,
- PP_CompletionCallback pp_callback);
-
- // Returns rich information for a file retrieved by StreamAsFile(). This info
- // contains a file descriptor. The caller must take ownership of this
- // descriptor.
- struct NaClFileInfo GetFileInfo(const nacl::string& url);
-
- // A helper function that gets the scheme type for |url|. Uses URLUtil_Dev
- // interface which this class has as a member.
- UrlSchemeType GetUrlScheme(const std::string& url);
-
// A helper function that indicates if |url| can be requested by the document
// under the same-origin policy. Strictly speaking, it may be possible for the
// document to request the URL using CORS even if this function returns false.
bool DocumentCanRequest(const std::string& url);
- void set_last_error_string(const nacl::string& error);
-
- // The MIME type used to instantiate this instance of the NaCl plugin.
- // Typically, the MIME type will be application/x-nacl. However, if the NEXE
- // is being used as a content type handler for another content type (such as
- // PDF), then this function will return that type.
- const nacl::string& mime_type() const { return mime_type_; }
- // The default MIME type for the NaCl plugin.
- static const char* const kNaClMIMEType;
- // The MIME type for the plugin when using PNaCl.
- static const char* const kPnaclMIMEType;
- // Returns true if PPAPI Dev interfaces should be allowed.
- bool enable_dev_interfaces() { return enable_dev_interfaces_; }
-
- Manifest const* manifest() const { return manifest_.get(); }
- const pp::URLUtil_Dev* url_util() const { return url_util_; }
-
- int exit_status() const { return exit_status_; }
// set_exit_status may be called off the main thread.
void set_exit_status(int exit_status);
const PPB_NaCl_Private* nacl_interface() const { return nacl_interface_; }
+ pp::UMAPrivate& uma_interface() { return uma_interface_; }
private:
NACL_DISALLOW_COPY_AND_ASSIGN(Plugin);
- // Prevent construction and destruction from outside the class:
- // must use factory New() method instead.
- explicit Plugin(PP_Instance instance);
// The browser will invoke the destructor via the pp::Instance
// pointer to this object, not from base's Delete().
~Plugin();
- bool EarlyInit(int argc, const char* argn[], const char* argv[]);
// Shuts down socket connection, service runtime, and receive thread,
// in this order, for the main nacl subprocess.
void ShutDownSubprocesses();
- ScriptablePlugin* scriptable_plugin() const { return scriptable_plugin_; }
- void set_scriptable_plugin(ScriptablePlugin* scriptable_plugin) {
- scriptable_plugin_ = scriptable_plugin;
- }
-
- // Access the service runtime for the main NaCl subprocess.
- ServiceRuntime* main_service_runtime() const {
- return main_subprocess_.service_runtime();
- }
+ // Histogram helper functions, internal to Plugin so they can use
+ // uma_interface_ normally.
+ void HistogramTimeSmall(const std::string& name, int64_t ms);
- // Help load a nacl module, from the file specified in wrapper.
- // This will fully initialize the |subprocess| if the load was successful.
- bool LoadNaClModuleCommon(nacl::DescWrapper* wrapper,
+ // Load a nacl module from the file specified in file_handle.
+ // Only to be used from a background (non-main) thread for the PNaCl
+ // translator. This will fully initialize the |subprocess| if the load was
+ // successful.
+ bool LoadHelperNaClModule(PP_FileHandle file_handle,
NaClSubprocess* subprocess,
- const Manifest* manifest,
- bool should_report_uma,
- const SelLdrStartParams& params,
- const pp::CompletionCallback& init_done_cb,
- const pp::CompletionCallback& crash_cb);
+ const SelLdrStartParams& params);
// Start sel_ldr from the main thread, given the start params.
- // Sets |success| to true on success.
// |pp_error| is set by CallOnMainThread (should be PP_OK).
void StartSelLdrOnMainThread(int32_t pp_error,
ServiceRuntime* service_runtime,
const SelLdrStartParams& params,
- bool* success);
+ pp::CompletionCallback callback);
+
+ // Signals that StartSelLdr has finished.
+ // This is invoked on the main thread.
+ void SignalStartSelLdrDone(int32_t pp_error,
+ bool* started,
+ ServiceRuntime* service_runtime);
+
+ // Signals that the nexe is started.
+ // This is invoked on the main thread.
+ void SignalNexeStarted(int32_t pp_error,
+ bool* started,
+ ServiceRuntime* service_runtime);
+
+ // This is invoked on the main thread.
+ void LoadNexeAndStart(int32_t pp_error,
+ ServiceRuntime* service_runtime,
+ PP_NaClFileInfo file_info,
+ const pp::CompletionCallback& callback);
// Callback used when getting the URL for the .nexe file. If the URL loading
// is successful, the file descriptor is opened and can be passed to sel_ldr
@@ -326,145 +203,34 @@ class Plugin : public pp::InstancePrivate {
// chosen for the sandbox ISA, any current service runtime is shut down, the
// .nexe is loaded and run.
- // Callback used when getting the manifest file as a buffer (e.g., data URIs)
- void NaClManifestBufferReady(int32_t pp_error);
-
// Callback used when getting the manifest file as a local file descriptor.
void NaClManifestFileDidOpen(int32_t pp_error);
// Processes the JSON manifest string and starts loading the nexe.
void ProcessNaClManifest(const nacl::string& manifest_json);
- // Parses the JSON in |manifest_json| and retains a Manifest in
- // |manifest_| for use by subsequent resource lookups.
- // On success, |true| is returned and |manifest_| is updated to
- // contain a Manifest that is used by SelectNexeURLFromManifest.
- // On failure, |false| is returned, and |manifest_| is unchanged.
- bool SetManifestObject(const nacl::string& manifest_json,
- ErrorInfo* error_info);
-
- // Logs timing information to a UMA histogram, and also logs the same timing
- // information divided by the size of the nexe to another histogram.
- void HistogramStartupTimeSmall(const std::string& name, float dt);
- void HistogramStartupTimeMedium(const std::string& name, float dt);
-
- // This NEXE is being used as a content type handler rather than directly by
- // an HTML document.
- bool NexeIsContentHandler() const;
-
- // Callback used when loading a URL for SRPC-based StreamAsFile().
- void UrlDidOpenForStreamAsFile(int32_t pp_error,
- FileDownloader*& url_downloader,
- PP_CompletionCallback pp_callback);
-
- // Copy the main service runtime's most recent NaClLog output to the
- // JavaScript console. Valid to use only after a crash, e.g., via a
- // detail level LOG_FATAL NaClLog entry. If the crash was not due
- // to a LOG_FATAL this method will do nothing.
- void CopyCrashLogToJsConsole();
-
- // Open an app file by requesting a file descriptor from the browser. This
- // method first checks that the url is for an installed file before making the
- // request so it won't slow down non-installed file downloads.
- bool OpenURLFast(const nacl::string& url, FileDownloader* downloader);
-
- void set_nacl_ready_state(ReadyState state);
-
void SetExitStatusOnMainThread(int32_t pp_error, int exit_status);
- ScriptablePlugin* scriptable_plugin_;
-
- int argc_;
- char** argn_;
- char** argv_;
-
// Keep track of the NaCl module subprocess that was spun up in the plugin.
NaClSubprocess main_subprocess_;
- nacl::string plugin_base_url_;
- nacl::string manifest_base_url_;
- nacl::string manifest_url_;
- ReadyState nacl_ready_state_;
- bool nexe_error_reported_; // error or crash reported
+ bool uses_nonsfi_mode_;
nacl::DescWrapperFactory* wrapper_factory_;
- // File download support. |nexe_downloader_| can be opened with a specific
- // callback to run when the file has been downloaded and is opened for
- // reading. We use one downloader for all URL downloads to prevent issuing
- // multiple GETs that might arrive out of order. For example, this will
- // prevent a GET of a NaCl manifest while a .nexe GET is pending. Note that
- // this will also prevent simultaneous handling of multiple .nexes on a page.
- FileDownloader nexe_downloader_;
+ // Original, unresolved URL for the .nexe program to load.
+ std::string program_url_;
+
pp::CompletionCallbackFactory<Plugin> callback_factory_;
nacl::scoped_ptr<PnaclCoordinator> pnacl_coordinator_;
- // The manifest dictionary. Used for looking up resources to be loaded.
- nacl::scoped_ptr<Manifest> manifest_;
- // URL processing interface for use in looking up resources in manifests.
- const pp::URLUtil_Dev* url_util_;
-
- // PPAPI Dev interfaces are disabled by default.
- bool enable_dev_interfaces_;
-
- // A flag indicating if the NaCl executable is being loaded from an installed
- // application. This flag is used to bucket UMA statistics more precisely to
- // help determine whether nexe loading problems are caused by networking
- // issues. (Installed applications will be loaded from disk.)
- // Unfortunately, the definition of what it means to be part of an installed
- // application is a little murky - for example an installed application can
- // register a mime handler that loads NaCl executables into an arbitrary web
- // page. As such, the flag actually means "our best guess, based on the URLs
- // for NaCl resources that we have seen so far".
- bool is_installed_;
-
- // If we get a DidChangeView event before the nexe is loaded, we store it and
- // replay it to nexe after it's loaded. We need to replay when this View
- // resource is non-is_null().
- pp::View view_to_replay_;
-
- // If we get a HandleDocumentLoad event before the nexe is loaded, we store
- // it and replay it to nexe after it's loaded. We need to replay when this
- // URLLoader resource is non-is_null().
- pp::URLLoader document_load_to_replay_;
-
- nacl::string mime_type_;
-
- // Keep track of the FileDownloaders created to fetch urls.
- std::set<FileDownloader*> url_downloaders_;
- // Keep track of file descriptors opened by StreamAsFile().
- // These are owned by the browser.
- std::map<nacl::string, struct NaClFileInfo> url_file_info_map_;
-
- // Pending progress events.
- std::queue<ProgressEvent*> progress_events_;
-
- // Used for NexeFileDidOpenContinuation
- int64_t load_start_;
-
- int64_t init_time_;
- int64_t ready_time_;
- size_t nexe_size_;
-
- // Callback to receive .nexe and .dso download progress notifications.
- static void UpdateDownloadProgress(
- PP_Instance pp_instance,
- PP_Resource pp_resource,
- int64_t bytes_sent,
- int64_t total_bytes_to_be_sent,
- int64_t bytes_received,
- int64_t total_bytes_to_be_received);
-
- // Finds the file downloader which owns the given URL loader. This is used
- // in UpdateDownloadProgress to map a url loader back to the URL being
- // downloaded.
- const FileDownloader* FindFileDownloader(PP_Resource url_loader) const;
-
- int64_t time_of_last_progress_event_;
int exit_status_;
+ PP_NaClFileInfo nexe_file_info_;
+
const PPB_NaCl_Private* nacl_interface_;
+ pp::UMAPrivate uma_interface_;
};
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/plugin_error.h b/chromium/ppapi/native_client/src/trusted/plugin/plugin_error.h
index 4ec0b51a9e0..a30e793647a 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/plugin_error.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/plugin_error.h
@@ -14,145 +14,32 @@
#include <string>
#include "native_client/src/include/nacl_macros.h"
+#include "ppapi/c/private/ppb_nacl_private.h"
namespace plugin {
-// These error codes are reported via UMA so, if you edit them:
-// 1) make sure you understand UMA, first.
-// 2) update src/tools/histograms/histograms.xml in
-// svn://svn.chromium.org/chrome-internal/trunk/src-internal
-// Values are explicitly specified to make sure they don't shift around when
-// edited, and also to make reading about:histograms easier.
-enum PluginErrorCode {
- ERROR_LOAD_SUCCESS = 0,
- ERROR_LOAD_ABORTED = 1,
- ERROR_UNKNOWN = 2,
- ERROR_MANIFEST_RESOLVE_URL = 3,
- ERROR_MANIFEST_LOAD_URL = 4,
- ERROR_MANIFEST_STAT = 5,
- ERROR_MANIFEST_TOO_LARGE = 6,
- ERROR_MANIFEST_OPEN = 7,
- ERROR_MANIFEST_MEMORY_ALLOC = 8,
- ERROR_MANIFEST_READ = 9,
- ERROR_MANIFEST_PARSING = 10,
- ERROR_MANIFEST_SCHEMA_VALIDATE = 11,
- ERROR_MANIFEST_GET_NEXE_URL = 12,
- ERROR_NEXE_LOAD_URL = 13,
- ERROR_NEXE_ORIGIN_PROTOCOL = 14,
- ERROR_NEXE_FH_DUP = 15,
- ERROR_NEXE_STAT = 16,
- ERROR_ELF_CHECK_IO = 17,
- ERROR_ELF_CHECK_FAIL = 18,
- ERROR_SEL_LDR_INIT = 19,
- ERROR_SEL_LDR_CREATE_LAUNCHER = 20,
- ERROR_SEL_LDR_FD = 21,
- ERROR_SEL_LDR_LAUNCH = 22,
- // Deprecated, safe to reuse the # because never logged in UMA.
- // ERROR_SEL_LDR_COMMUNICATION = 23,
- ERROR_SEL_LDR_SEND_NEXE = 24,
- ERROR_SEL_LDR_HANDLE_PASSING = 25,
- ERROR_SEL_LDR_START_MODULE = 26,
- ERROR_SEL_LDR_START_STATUS = 27,
- ERROR_SRPC_CONNECTION_FAIL = 28,
- ERROR_START_PROXY_CHECK_PPP = 29,
- ERROR_START_PROXY_ALLOC = 30,
- ERROR_START_PROXY_MODULE = 31,
- ERROR_START_PROXY_INSTANCE = 32,
- ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL = 33,
- ERROR_SEL_LDR_COMMUNICATION_REV_SETUP = 34,
- ERROR_SEL_LDR_COMMUNICATION_WRAPPER = 35,
- ERROR_SEL_LDR_COMMUNICATION_REV_SERVICE = 36,
- ERROR_START_PROXY_CRASH = 37,
- ERROR_MANIFEST_PROGRAM_MISSING_ARCH = 38,
- ERROR_PNACL_CACHE_OPEN_INPROGRESS = 39,
- ERROR_PNACL_CACHE_OPEN_NOACCESS = 40,
- ERROR_PNACL_CACHE_OPEN_NOQUOTA = 41,
- ERROR_PNACL_CACHE_OPEN_NOSPACE = 42,
- ERROR_PNACL_CACHE_OPEN_OTHER = 43,
- ERROR_PNACL_CACHE_DIRECTORY_CREATE = 44,
- ERROR_PNACL_CACHE_FILEOPEN_NOACCESS = 45,
- ERROR_PNACL_CACHE_FILEOPEN_NOQUOTA = 46,
- ERROR_PNACL_CACHE_FILEOPEN_NOSPACE = 47,
- ERROR_PNACL_CACHE_FILEOPEN_NOTAFILE = 48,
- ERROR_PNACL_CACHE_FILEOPEN_OTHER = 49,
- ERROR_PNACL_CACHE_FETCH_NOACCESS = 50,
- ERROR_PNACL_CACHE_FETCH_NOTFOUND = 51,
- ERROR_PNACL_CACHE_FETCH_OTHER = 52,
- ERROR_PNACL_CACHE_FINALIZE_COPY_NOQUOTA = 53,
- ERROR_PNACL_CACHE_FINALIZE_COPY_NOSPACE = 54,
- ERROR_PNACL_CACHE_FINALIZE_COPY_OTHER = 55,
- ERROR_PNACL_CACHE_FINALIZE_RENAME_NOACCESS = 56,
- ERROR_PNACL_CACHE_FINALIZE_RENAME_OTHER = 57,
- ERROR_PNACL_RESOURCE_FETCH = 58,
- ERROR_PNACL_PEXE_FETCH_ABORTED = 59,
- ERROR_PNACL_PEXE_FETCH_NOACCESS = 60,
- ERROR_PNACL_PEXE_FETCH_OTHER = 61,
- ERROR_PNACL_THREAD_CREATE = 62,
- ERROR_PNACL_LLC_SETUP = 63,
- ERROR_PNACL_LD_SETUP = 64,
- ERROR_PNACL_LLC_INTERNAL = 65,
- ERROR_PNACL_LD_INTERNAL = 66,
- ERROR_PNACL_CREATE_TEMP = 67,
- // This entry is no longer used, but should not be removed, because UMA
- // numbers need to be kept consistent.
- ERROR_PNACL_NOT_ENABLED = 68,
- ERROR_MANIFEST_NOACCESS_URL = 69,
- ERROR_NEXE_NOACCESS_URL = 70,
- ERROR_PNACL_CRASH_THROTTLED = 71,
- // If you add a code, read the enum comment above on how to update histograms.
- ERROR_MAX
-};
-
class ErrorInfo {
public:
ErrorInfo() {
- Reset();
- }
-
- void Reset() {
- SetReport(ERROR_UNKNOWN, std::string());
- }
-
- void SetReport(PluginErrorCode error_code, const std::string& message) {
- error_code_ = error_code;
- message_ = message;
- console_message_ = message;
+ SetReport(PP_NACL_ERROR_UNKNOWN, std::string());
}
- // console_message is a part of the error that is logged to
- // the JavaScript console but is not reported to JavaScript via
- // the lastError property. This is used to report internal errors which
- // may easily change in new versions of the browser and we don't want apps
- // to come to depend on the details of these errors.
- void SetReportWithConsoleOnlyError(PluginErrorCode error_code,
- const std::string& message,
- const std::string& console_message) {
+ void SetReport(PP_NaClError error_code, const std::string& message) {
error_code_ = error_code;
message_ = message;
- console_message_ = message + "; " + console_message;
}
- PluginErrorCode error_code() const {
+ PP_NaClError error_code() const {
return error_code_;
}
- void PrependMessage(const std::string& prefix) {
- message_ = prefix + message_;
- console_message_ = prefix + console_message_;
- }
-
const std::string& message() const {
return message_;
}
- const std::string& console_message() const {
- return console_message_;
- }
-
private:
- PluginErrorCode error_code_;
+ PP_NaClError error_code_;
std::string message_;
- std::string console_message_;
NACL_DISALLOW_COPY_AND_ASSIGN(ErrorInfo);
};
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
index f892059ad79..b85b44654ef 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
@@ -16,8 +16,6 @@
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_uma_private.h"
-#include "ppapi/native_client/src/trusted/plugin/manifest.h"
-#include "ppapi/native_client/src/trusted/plugin/nacl_http_response_headers.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
#include "ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h"
@@ -26,89 +24,8 @@
namespace plugin {
-//////////////////////////////////////////////////////////////////////
-// Pnacl-specific manifest support.
-//////////////////////////////////////////////////////////////////////
-
-// The PNaCl linker gets file descriptors via the service runtime's
-// reverse service lookup. The reverse service lookup requires a manifest.
-// Normally, that manifest is an NMF containing mappings for shared libraries.
-// Here, we provide a manifest that redirects to PNaCl component files
-// that are part of Chrome.
-class PnaclManifest : public Manifest {
- public:
- PnaclManifest() : manifest_base_url_(PnaclUrls::GetBaseUrl()) { }
- virtual ~PnaclManifest() { }
-
- virtual bool GetProgramURL(nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const {
- // Does not contain program urls.
- UNREFERENCED_PARAMETER(full_url);
- UNREFERENCED_PARAMETER(pnacl_options);
- UNREFERENCED_PARAMETER(error_info);
- PLUGIN_PRINTF(("PnaclManifest does not contain a program\n"));
- error_info->SetReport(ERROR_MANIFEST_GET_NEXE_URL,
- "pnacl manifest does not contain a program.");
- return false;
- }
-
- virtual bool ResolveURL(const nacl::string& relative_url,
- nacl::string* full_url,
- ErrorInfo* error_info) const {
- // Does not do general URL resolution, simply appends relative_url to
- // the end of manifest_base_url_.
- UNREFERENCED_PARAMETER(error_info);
- *full_url = manifest_base_url_ + relative_url;
- return true;
- }
-
- virtual bool GetFileKeys(std::set<nacl::string>* keys) const {
- // Does not support enumeration.
- PLUGIN_PRINTF(("PnaclManifest does not support key enumeration\n"));
- UNREFERENCED_PARAMETER(keys);
- return false;
- }
-
- virtual bool ResolveKey(const nacl::string& key,
- nacl::string* full_url,
- PnaclOptions* pnacl_options,
- ErrorInfo* error_info) const {
- // All of the component files are native (do not require pnacl translate).
- pnacl_options->set_translate(false);
- // We can only resolve keys in the files/ namespace.
- const nacl::string kFilesPrefix = "files/";
- size_t files_prefix_pos = key.find(kFilesPrefix);
- if (files_prefix_pos == nacl::string::npos) {
- error_info->SetReport(ERROR_MANIFEST_RESOLVE_URL,
- "key did not start with files/");
- return false;
- }
- // Resolve the full URL to the file. Provide it with a platform-specific
- // prefix.
- nacl::string key_basename = key.substr(kFilesPrefix.length());
- return ResolveURL(PnaclUrls::PrependPlatformPrefix(key_basename),
- full_url, error_info);
- }
-
- private:
- NACL_DISALLOW_COPY_AND_ASSIGN(PnaclManifest);
-
- nacl::string manifest_base_url_;
-};
-
-//////////////////////////////////////////////////////////////////////
-// UMA stat helpers.
-//////////////////////////////////////////////////////////////////////
-
namespace {
-// Assume translation time metrics *can be* large.
-// Up to 12 minutes.
-const int64_t kTimeLargeMin = 10; // in ms
-const int64_t kTimeLargeMax = 720000; // in ms
-const uint32_t kTimeLargeBuckets = 100;
-
const int32_t kSizeKBMin = 1;
const int32_t kSizeKBMax = 512*1024; // very large .pexe / .nexe.
const uint32_t kSizeKBBuckets = 100;
@@ -117,98 +34,37 @@ const int32_t kRatioMin = 10;
const int32_t kRatioMax = 10*100; // max of 10x difference.
const uint32_t kRatioBuckets = 100;
-const int32_t kKBPSMin = 1;
-const int32_t kKBPSMax = 30*1000; // max of 30 MB / sec.
-const uint32_t kKBPSBuckets = 100;
-
-const PPB_UMA_Private* uma_interface = NULL;
-
-const PPB_UMA_Private* GetUMAInterface() {
- if (uma_interface != NULL) {
- return uma_interface;
- }
- pp::Module *module = pp::Module::Get();
- DCHECK(module);
- uma_interface = static_cast<const PPB_UMA_Private*>(
- module->GetBrowserInterface(PPB_UMA_PRIVATE_INTERFACE));
- return uma_interface;
-}
-
-void HistogramTime(const std::string& name, int64_t ms) {
- if (ms < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomTimes(pp::Var(name).pp_var(),
- ms,
- kTimeLargeMin, kTimeLargeMax,
- kTimeLargeBuckets);
-}
-
-void HistogramSizeKB(const std::string& name, int32_t kb) {
+void HistogramSizeKB(pp::UMAPrivate& uma,
+ const nacl::string& name, int32_t kb) {
if (kb < 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomCounts(pp::Var(name).pp_var(),
- kb,
- kSizeKBMin, kSizeKBMax,
- kSizeKBBuckets);
+ uma.HistogramCustomCounts(name,
+ kb,
+ kSizeKBMin, kSizeKBMax,
+ kSizeKBBuckets);
}
-void HistogramRatio(const std::string& name, int64_t a, int64_t b) {
+void HistogramRatio(pp::UMAPrivate& uma,
+ const nacl::string& name, int64_t a, int64_t b) {
if (a < 0 || b <= 0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomCounts(pp::Var(name).pp_var(),
- 100 * a / b,
- kRatioMin, kRatioMax,
- kRatioBuckets);
+ uma.HistogramCustomCounts(name,
+ 100 * a / b,
+ kRatioMin, kRatioMax,
+ kRatioBuckets);
}
-void HistogramKBPerSec(const std::string& name, double kb, double s) {
- if (kb < 0.0 || s <= 0.0) return;
-
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
-
- ptr->HistogramCustomCounts(pp::Var(name).pp_var(),
- static_cast<int64_t>(kb / s),
- kKBPSMin, kKBPSMax,
- kKBPSBuckets);
+void HistogramEnumerateTranslationCache(pp::UMAPrivate& uma, bool hit) {
+ uma.HistogramEnumeration("NaCl.Perf.PNaClCache.IsHit",
+ hit, 2);
}
-void HistogramEnumerateTranslationCache(bool hit) {
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
- ptr->HistogramEnumeration(pp::Var("NaCl.Perf.PNaClCache.IsHit").pp_var(),
- hit, 2);
-}
-
-// Opt level is expected to be 0 to 3. Treating 4 as unknown.
-const int8_t kOptUnknown = 4;
-
-void HistogramOptLevel(int8_t opt_level) {
- const PPB_UMA_Private* ptr = GetUMAInterface();
- if (ptr == NULL) return;
- if (opt_level < 0 || opt_level > 3) {
- opt_level = kOptUnknown;
- }
- ptr->HistogramEnumeration(pp::Var("NaCl.Options.PNaCl.OptLevel").pp_var(),
- opt_level, kOptUnknown+1);
+nacl::string GetArchitectureAttributes(Plugin* plugin) {
+ pp::Var attrs_var(pp::PASS_REF,
+ plugin->nacl_interface()->GetCpuFeatureAttrs());
+ return attrs_var.AsString();
}
} // namespace
-
-//////////////////////////////////////////////////////////////////////
-// The coordinator class.
-//////////////////////////////////////////////////////////////////////
-
// Out-of-line destructor to keep it from getting put in every .o where
// callback_source.h is included
template<>
@@ -217,7 +73,7 @@ CallbackSource<FileStreamData>::~CallbackSource() {}
PnaclCoordinator* PnaclCoordinator::BitcodeToNative(
Plugin* plugin,
const nacl::string& pexe_url,
- const PnaclOptions& pnacl_options,
+ const PP_PNaClOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback) {
PLUGIN_PRINTF(("PnaclCoordinator::BitcodeToNative (plugin=%p, pexe=%s)\n",
static_cast<void*>(plugin), pexe_url.c_str()));
@@ -225,9 +81,10 @@ PnaclCoordinator* PnaclCoordinator::BitcodeToNative(
new PnaclCoordinator(plugin, pexe_url,
pnacl_options,
translate_notify_callback);
+
coordinator->pnacl_init_time_ = NaClGetTimeOfDayMicroseconds();
- PLUGIN_PRINTF(("PnaclCoordinator::BitcodeToNative (manifest=%p, ",
- reinterpret_cast<const void*>(coordinator->manifest_.get())));
+ int cpus = plugin->nacl_interface()->GetNumberOfProcessors();
+ coordinator->split_module_count_ = std::min(4, std::max(1, cpus));
// First start a network request for the pexe, to tickle the component
// updater's On-Demand resource throttler, and to get Last-Modified/ETag
@@ -240,15 +97,16 @@ PnaclCoordinator* PnaclCoordinator::BitcodeToNative(
PnaclCoordinator::PnaclCoordinator(
Plugin* plugin,
const nacl::string& pexe_url,
- const PnaclOptions& pnacl_options,
+ const PP_PNaClOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback)
: translate_finish_error_(PP_OK),
plugin_(plugin),
translate_notify_callback_(translate_notify_callback),
translation_finished_reported_(false),
- manifest_(new PnaclManifest()),
pexe_url_(pexe_url),
pnacl_options_(pnacl_options),
+ architecture_attributes_(GetArchitectureAttributes(plugin)),
+ split_module_count_(1),
is_cache_hit_(PP_FALSE),
error_already_reported_(false),
pnacl_init_time_(0),
@@ -269,42 +127,48 @@ PnaclCoordinator::~PnaclCoordinator() {
// running from the main thread, and by the time it exits, callback_factory_
// will have been destroyed. This will result in the cancellation of
// translation_complete_callback_, so no notification will be delivered.
- if (translate_thread_.get() != NULL) {
+ if (translate_thread_.get() != NULL)
translate_thread_->AbortSubprocesses();
- }
if (!translation_finished_reported_) {
plugin_->nacl_interface()->ReportTranslationFinished(
plugin_->pp_instance(),
- PP_FALSE);
+ PP_FALSE, 0, 0, 0, 0);
}
+ // Force deleting the translate_thread now. It must be deleted
+ // before any scoped_* fields hanging off of PnaclCoordinator
+ // since the thread may be accessing those fields.
+ // It will also be accessing obj_files_.
+ translate_thread_.reset(NULL);
+ for (size_t i = 0; i < obj_files_.size(); i++)
+ delete obj_files_[i];
}
-nacl::DescWrapper* PnaclCoordinator::ReleaseTranslatedFD() {
+PP_FileHandle PnaclCoordinator::TakeTranslatedFileHandle() {
DCHECK(temp_nexe_file_ != NULL);
- return temp_nexe_file_->release_read_wrapper();
+ return temp_nexe_file_->TakeFileHandle();
}
-void PnaclCoordinator::ReportNonPpapiError(enum PluginErrorCode err_code,
+void PnaclCoordinator::ReportNonPpapiError(PP_NaClError err_code,
const nacl::string& message) {
- error_info_.SetReport(err_code, message);
+ ErrorInfo error_info;
+ error_info.SetReport(err_code, message);
+ plugin_->ReportLoadError(error_info);
ExitWithError();
}
-void PnaclCoordinator::ReportPpapiError(enum PluginErrorCode err_code,
+void PnaclCoordinator::ReportPpapiError(PP_NaClError err_code,
int32_t pp_error,
const nacl::string& message) {
nacl::stringstream ss;
ss << "PnaclCoordinator: " << message << " (pp_error=" << pp_error << ").";
- error_info_.SetReport(err_code, ss.str());
+ ErrorInfo error_info;
+ error_info.SetReport(err_code, ss.str());
+ plugin_->ReportLoadError(error_info);
ExitWithError();
}
void PnaclCoordinator::ExitWithError() {
- PLUGIN_PRINTF(("PnaclCoordinator::ExitWithError (error_code=%d, "
- "message='%s')\n",
- error_info_.error_code(),
- error_info_.message().c_str()));
- plugin_->ReportLoadError(error_info_);
+ PLUGIN_PRINTF(("PnaclCoordinator::ExitWithError\n"));
// Free all the intermediate callbacks we ever created.
// Note: this doesn't *cancel* the callbacks from the factories attached
// to the various helper classes (e.g., pnacl_resources). Thus, those
@@ -317,7 +181,7 @@ void PnaclCoordinator::ExitWithError() {
translation_finished_reported_ = true;
plugin_->nacl_interface()->ReportTranslationFinished(
plugin_->pp_instance(),
- PP_FALSE);
+ PP_FALSE, 0, 0, 0, 0);
translate_notify_callback_.Run(PP_ERROR_FAILED);
} else {
PLUGIN_PRINTF(("PnaclCoordinator::ExitWithError an earlier error was "
@@ -332,37 +196,22 @@ void PnaclCoordinator::TranslateFinished(int32_t pp_error) {
// Bail out if there was an earlier error (e.g., pexe load failure),
// or if there is an error from the translation thread.
if (translate_finish_error_ != PP_OK || pp_error != PP_OK) {
+ plugin_->ReportLoadError(error_info_);
ExitWithError();
return;
}
+
// Send out one last progress event, to finish up the progress events
// that were delayed (see the delay inserted in BitcodeGotCompiled).
- if (ExpectedProgressKnown()) {
+ if (expected_pexe_size_ != -1) {
pexe_bytes_compiled_ = expected_pexe_size_;
- plugin_->EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS,
- pexe_url_,
- plugin::Plugin::LENGTH_IS_COMPUTABLE,
- pexe_bytes_compiled_,
- expected_pexe_size_);
+ GetNaClInterface()->DispatchEvent(plugin_->pp_instance(),
+ PP_NACL_EVENT_PROGRESS,
+ pexe_url_.c_str(),
+ PP_TRUE,
+ pexe_bytes_compiled_,
+ expected_pexe_size_);
}
-
- // If there are no errors, report stats from this thread (the main thread).
- HistogramOptLevel(pnacl_options_.opt_level());
- const plugin::PnaclTimeStats& time_stats = translate_thread_->GetTimeStats();
- HistogramTime("NaCl.Perf.PNaClLoadTime.LoadCompiler",
- time_stats.pnacl_llc_load_time / NACL_MICROS_PER_MILLI);
- HistogramTime("NaCl.Perf.PNaClLoadTime.CompileTime",
- time_stats.pnacl_compile_time / NACL_MICROS_PER_MILLI);
- HistogramKBPerSec("NaCl.Perf.PNaClLoadTime.CompileKBPerSec",
- pexe_size_ / 1024.0,
- time_stats.pnacl_compile_time / 1000000.0);
- HistogramTime("NaCl.Perf.PNaClLoadTime.LoadLinker",
- time_stats.pnacl_ld_load_time / NACL_MICROS_PER_MILLI);
- HistogramTime("NaCl.Perf.PNaClLoadTime.LinkTime",
- time_stats.pnacl_link_time / NACL_MICROS_PER_MILLI);
- HistogramSizeKB("NaCl.Perf.Size.Pexe",
- static_cast<int64_t>(pexe_size_ / 1024));
-
struct nacl_abi_stat stbuf;
struct NaClDesc* desc = temp_nexe_file_->read_wrapper()->desc();
int stat_ret;
@@ -371,27 +220,23 @@ void PnaclCoordinator::TranslateFinished(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::TranslateFinished can't stat nexe.\n"));
} else {
size_t nexe_size = stbuf.nacl_abi_st_size;
- HistogramSizeKB("NaCl.Perf.Size.PNaClTranslatedNexe",
+ HistogramSizeKB(plugin_->uma_interface(),
+ "NaCl.Perf.Size.PNaClTranslatedNexe",
static_cast<int64_t>(nexe_size / 1024));
- HistogramRatio("NaCl.Perf.Size.PexeNexeSizePct", pexe_size_, nexe_size);
+ HistogramRatio(plugin_->uma_interface(),
+ "NaCl.Perf.Size.PexeNexeSizePct", pexe_size_, nexe_size);
}
-
- int64_t total_time = NaClGetTimeOfDayMicroseconds() - pnacl_init_time_;
- HistogramTime("NaCl.Perf.PNaClLoadTime.TotalUncachedTime",
- total_time / NACL_MICROS_PER_MILLI);
- HistogramKBPerSec("NaCl.Perf.PNaClLoadTime.TotalUncachedKBPerSec",
- pexe_size_ / 1024.0,
- total_time / 1000000.0);
-
// The nexe is written to the temp_nexe_file_. We must Reset() the file
// pointer to be able to read it again from the beginning.
temp_nexe_file_->Reset();
+ int64_t total_time = NaClGetTimeOfDayMicroseconds() - pnacl_init_time_;
// Report to the browser that translation finished. The browser will take
// care of storing the nexe in the cache.
translation_finished_reported_ = true;
plugin_->nacl_interface()->ReportTranslationFinished(
- plugin_->pp_instance(), PP_TRUE);
+ plugin_->pp_instance(), PP_TRUE, pnacl_options_.opt_level,
+ pexe_size_, translate_thread_->GetCompileTime(), total_time);
NexeReadDidOpen(PP_OK);
}
@@ -401,18 +246,18 @@ void PnaclCoordinator::NexeReadDidOpen(int32_t pp_error) {
NACL_PRId32 ")\n", pp_error));
if (pp_error != PP_OK) {
if (pp_error == PP_ERROR_FILENOTFOUND) {
- ReportPpapiError(ERROR_PNACL_CACHE_FETCH_NOTFOUND,
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CACHE_FETCH_NOTFOUND,
pp_error,
"Failed to open translated nexe (not found).");
return;
}
if (pp_error == PP_ERROR_NOACCESS) {
- ReportPpapiError(ERROR_PNACL_CACHE_FETCH_NOACCESS,
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CACHE_FETCH_NOACCESS,
pp_error,
"Failed to open translated nexe (no access).");
return;
}
- ReportPpapiError(ERROR_PNACL_CACHE_FETCH_OTHER,
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CACHE_FETCH_OTHER,
pp_error,
"Failed to open translated nexe.");
return;
@@ -423,8 +268,7 @@ void PnaclCoordinator::NexeReadDidOpen(int32_t pp_error) {
void PnaclCoordinator::OpenBitcodeStream() {
// Now open the pexe stream.
- streaming_downloader_.reset(new FileDownloader());
- streaming_downloader_->Initialize(plugin_);
+ streaming_downloader_.reset(new FileDownloader(plugin_));
// Mark the request as requesting a PNaCl bitcode file,
// so that component updater can detect this user action.
streaming_downloader_->set_request_headers(
@@ -437,7 +281,7 @@ void PnaclCoordinator::OpenBitcodeStream() {
translate_thread_.reset(new PnaclTranslateThread());
if (translate_thread_ == NULL) {
ReportNonPpapiError(
- ERROR_PNACL_THREAD_CREATE,
+ PP_NACL_ERROR_PNACL_THREAD_CREATE,
"PnaclCoordinator: could not allocate translation thread.");
return;
}
@@ -446,7 +290,7 @@ void PnaclCoordinator::OpenBitcodeStream() {
callback_factory_.NewCallback(&PnaclCoordinator::BitcodeStreamDidOpen);
if (!streaming_downloader_->OpenStream(pexe_url_, cb, this)) {
ReportNonPpapiError(
- ERROR_PNACL_PEXE_FETCH_OTHER,
+ PP_NACL_ERROR_PNACL_PEXE_FETCH_OTHER,
nacl::string("PnaclCoordinator: failed to open stream ") + pexe_url_);
return;
}
@@ -464,19 +308,22 @@ void PnaclCoordinator::BitcodeStreamDidOpen(int32_t pp_error) {
// The component updater's resource throttles + OnDemand update/install
// should block the URL request until the compiler is present. Now we
// can load the resources (e.g. llc and ld nexes).
- resources_.reset(new PnaclResources(plugin_, this, this->manifest_.get()));
+ resources_.reset(new PnaclResources(plugin_));
CHECK(resources_ != NULL);
// The first step of loading resources: read the resource info file.
pp::CompletionCallback resource_info_read_cb =
callback_factory_.NewCallback(&PnaclCoordinator::ResourceInfoWasRead);
- resources_->ReadResourceInfo(PnaclUrls::GetResourceInfoUrl(),
- resource_info_read_cb);
+ resources_->ReadResourceInfo(resource_info_read_cb);
}
void PnaclCoordinator::ResourceInfoWasRead(int32_t pp_error) {
PLUGIN_PRINTF(("PluginCoordinator::ResourceInfoWasRead (pp_error=%"
NACL_PRId32 ")\n", pp_error));
+ if (pp_error != PP_OK) {
+ ExitWithError();
+ return;
+ }
// Second step of loading resources: call StartLoad to load pnacl-llc
// and pnacl-ld, based on the filenames found in the resource info file.
pp::CompletionCallback resources_cb =
@@ -488,8 +335,11 @@ void PnaclCoordinator::ResourcesDidLoad(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::ResourcesDidLoad (pp_error=%"
NACL_PRId32 ")\n", pp_error));
if (pp_error != PP_OK) {
- // Finer-grained error code should have already been reported by
- // the PnaclResources class.
+ ReportNonPpapiError(
+ PP_NACL_ERROR_PNACL_RESOURCE_FETCH,
+ nacl::string("The Portable Native Client (pnacl) component is not "
+ "installed. Please consult chrome://components for more "
+ "information."));
return;
}
@@ -498,8 +348,6 @@ void PnaclCoordinator::ResourcesDidLoad(int32_t pp_error) {
// get the cache key from the response headers and from the
// compiler's version metadata.
nacl::string headers = streaming_downloader_->GetResponseHeaders();
- NaClHttpResponseHeaders parser;
- parser.Parse(headers);
temp_nexe_file_.reset(new TempFile(plugin_));
pp::CompletionCallback cb =
@@ -507,65 +355,74 @@ void PnaclCoordinator::ResourcesDidLoad(int32_t pp_error) {
int32_t nexe_fd_err =
plugin_->nacl_interface()->GetNexeFd(
plugin_->pp_instance(),
- streaming_downloader_->url().c_str(),
+ streaming_downloader_->full_url().c_str(),
// TODO(dschuff): Get this value from the pnacl json file after it
// rolls in from NaCl.
1,
- pnacl_options_.opt_level(),
- parser.GetHeader("last-modified").c_str(),
- parser.GetHeader("etag").c_str(),
- PP_FromBool(parser.CacheControlNoStore()),
+ pnacl_options_.opt_level,
+ headers.c_str(),
+ architecture_attributes_.c_str(), // Extra compile flags.
&is_cache_hit_,
- temp_nexe_file_->existing_handle(),
+ temp_nexe_file_->internal_handle(),
cb.pp_completion_callback());
if (nexe_fd_err < PP_OK_COMPLETIONPENDING) {
- ReportPpapiError(ERROR_PNACL_CREATE_TEMP, nexe_fd_err,
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP, nexe_fd_err,
nacl::string("Call to GetNexeFd failed"));
}
}
void PnaclCoordinator::NexeFdDidOpen(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::NexeFdDidOpen (pp_error=%"
- NACL_PRId32 ", hit=%d, handle=%d)\n", pp_error,
- is_cache_hit_ == PP_TRUE,
- *temp_nexe_file_->existing_handle()));
+ NACL_PRId32 ", hit=%d)\n", pp_error,
+ is_cache_hit_ == PP_TRUE));
if (pp_error < PP_OK) {
- ReportPpapiError(ERROR_PNACL_CREATE_TEMP, pp_error,
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP, pp_error,
nacl::string("GetNexeFd failed"));
return;
}
- if (*temp_nexe_file_->existing_handle() == PP_kInvalidFileHandle) {
+ if (*temp_nexe_file_->internal_handle() == PP_kInvalidFileHandle) {
ReportNonPpapiError(
- ERROR_PNACL_CREATE_TEMP,
+ PP_NACL_ERROR_PNACL_CREATE_TEMP,
nacl::string(
"PnaclCoordinator: Got bad temp file handle from GetNexeFd"));
return;
}
- HistogramEnumerateTranslationCache(is_cache_hit_);
+ HistogramEnumerateTranslationCache(plugin_->uma_interface(), is_cache_hit_);
if (is_cache_hit_ == PP_TRUE) {
// Cache hit -- no need to stream the rest of the file.
streaming_downloader_.reset(NULL);
// Open it for reading as the cached nexe file.
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(&PnaclCoordinator::NexeReadDidOpen);
- temp_nexe_file_->Open(cb, false);
+ NexeReadDidOpen(temp_nexe_file_->Open(false));
} else {
// Open an object file first so the translator can start writing to it
// during streaming translation.
- obj_file_.reset(new TempFile(plugin_));
- pp::CompletionCallback obj_cb =
- callback_factory_.NewCallback(&PnaclCoordinator::ObjectFileDidOpen);
- obj_file_->Open(obj_cb, true);
+ for (int i = 0; i < split_module_count_; i++) {
+ nacl::scoped_ptr<TempFile> temp_file(new TempFile(plugin_));
+ int32_t pp_error = temp_file->Open(true);
+ if (pp_error != PP_OK) {
+ ReportPpapiError(PP_NACL_ERROR_PNACL_CREATE_TEMP,
+ pp_error,
+ "Failed to open scratch object file.");
+ return;
+ } else {
+ obj_files_.push_back(temp_file.release());
+ }
+ }
+ invalid_desc_wrapper_.reset(plugin_->wrapper_factory()->MakeInvalid());
// Meanwhile, a miss means we know we need to stream the bitcode, so stream
- // the rest of it now. (Calling FinishStreaming means that the downloader
+ // the rest of it now. (Calling BeginStreaming means that the downloader
// will begin handing data to the coordinator, which is safe any time after
// the translate_thread_ object has been initialized).
pp::CompletionCallback finish_cb = callback_factory_.NewCallback(
&PnaclCoordinator::BitcodeStreamDidFinish);
- streaming_downloader_->FinishStreaming(finish_cb);
+ streaming_downloader_->BeginStreaming(finish_cb);
+
+ // Open the nexe file for connecting ld and sel_ldr.
+ // Start translation when done with this last step of setup!
+ RunTranslate(temp_nexe_file_->Open(true));
}
}
@@ -578,21 +435,22 @@ void PnaclCoordinator::BitcodeStreamDidFinish(int32_t pp_error) {
// objects or writing to the files.
translate_finish_error_ = pp_error;
if (pp_error == PP_ERROR_ABORTED) {
- error_info_.SetReport(ERROR_PNACL_PEXE_FETCH_ABORTED,
+ error_info_.SetReport(PP_NACL_ERROR_PNACL_PEXE_FETCH_ABORTED,
"PnaclCoordinator: pexe load failed (aborted).");
}
if (pp_error == PP_ERROR_NOACCESS) {
- error_info_.SetReport(ERROR_PNACL_PEXE_FETCH_NOACCESS,
+ error_info_.SetReport(PP_NACL_ERROR_PNACL_PEXE_FETCH_NOACCESS,
"PnaclCoordinator: pexe load failed (no access).");
} else {
nacl::stringstream ss;
ss << "PnaclCoordinator: pexe load failed (pp_error=" << pp_error << ").";
- error_info_.SetReport(ERROR_PNACL_PEXE_FETCH_OTHER, ss.str());
+ error_info_.SetReport(PP_NACL_ERROR_PNACL_PEXE_FETCH_OTHER, ss.str());
}
translate_thread_->AbortSubprocesses();
} else {
// Compare download completion pct (100% now), to compile completion pct.
- HistogramRatio("NaCl.Perf.PNaClLoadTime.PctCompiledWhenFullyDownloaded",
+ HistogramRatio(plugin_->uma_interface(),
+ "NaCl.Perf.PNaClLoadTime.PctCompiledWhenFullyDownloaded",
pexe_bytes_compiled_, pexe_size_);
}
}
@@ -605,9 +463,8 @@ void PnaclCoordinator::BitcodeStreamGotData(int32_t pp_error,
translate_thread_->PutBytes(data, pp_error);
// If pp_error > 0, then it represents the number of bytes received.
- if (data && pp_error > 0) {
+ if (data && pp_error > 0)
pexe_size_ += pp_error;
- }
}
StreamCallback PnaclCoordinator::GetCallback() {
@@ -617,9 +474,10 @@ StreamCallback PnaclCoordinator::GetCallback() {
void PnaclCoordinator::BitcodeGotCompiled(int32_t pp_error,
int64_t bytes_compiled) {
+ DCHECK(pp_error == PP_OK);
pexe_bytes_compiled_ += bytes_compiled;
// If we don't know the expected total yet, ask.
- if (!ExpectedProgressKnown()) {
+ if (expected_pexe_size_ == -1) {
int64_t amount_downloaded; // dummy variable.
streaming_downloader_->GetDownloadProgress(&amount_downloaded,
&expected_pexe_size_);
@@ -627,20 +485,22 @@ void PnaclCoordinator::BitcodeGotCompiled(int32_t pp_error,
// Hold off reporting the last few bytes of progress, since we don't know
// when they are actually completely compiled. "bytes_compiled" only means
// that bytes were sent to the compiler.
- if (ExpectedProgressKnown()) {
+ if (expected_pexe_size_ != -1) {
if (!ShouldDelayProgressEvent()) {
- plugin_->EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS,
- pexe_url_,
- plugin::Plugin::LENGTH_IS_COMPUTABLE,
- pexe_bytes_compiled_,
- expected_pexe_size_);
+ GetNaClInterface()->DispatchEvent(plugin_->pp_instance(),
+ PP_NACL_EVENT_PROGRESS,
+ pexe_url_.c_str(),
+ PP_TRUE,
+ pexe_bytes_compiled_,
+ expected_pexe_size_);
}
} else {
- plugin_->EnqueueProgressEvent(PP_NACL_EVENT_PROGRESS,
- pexe_url_,
- plugin::Plugin::LENGTH_IS_NOT_COMPUTABLE,
- pexe_bytes_compiled_,
- expected_pexe_size_);
+ GetNaClInterface()->DispatchEvent(plugin_->pp_instance(),
+ PP_NACL_EVENT_PROGRESS,
+ pexe_url_.c_str(),
+ PP_FALSE,
+ pexe_bytes_compiled_,
+ expected_pexe_size_);
}
}
@@ -656,22 +516,6 @@ void PnaclCoordinator::GetCurrentProgress(int64_t* bytes_loaded,
*bytes_total = expected_pexe_size_;
}
-void PnaclCoordinator::ObjectFileDidOpen(int32_t pp_error) {
- PLUGIN_PRINTF(("PnaclCoordinator::ObjectFileDidOpen (pp_error=%"
- NACL_PRId32 ")\n", pp_error));
- if (pp_error != PP_OK) {
- ReportPpapiError(ERROR_PNACL_CREATE_TEMP,
- pp_error,
- "Failed to open scratch object file.");
- return;
- }
- // Open the nexe file for connecting ld and sel_ldr.
- // Start translation when done with this last step of setup!
- pp::CompletionCallback cb =
- callback_factory_.NewCallback(&PnaclCoordinator::RunTranslate);
- temp_nexe_file_->Open(cb, true);
-}
-
void PnaclCoordinator::RunTranslate(int32_t pp_error) {
PLUGIN_PRINTF(("PnaclCoordinator::RunTranslate (pp_error=%"
NACL_PRId32 ")\n", pp_error));
@@ -682,12 +526,13 @@ void PnaclCoordinator::RunTranslate(int32_t pp_error) {
CHECK(translate_thread_ != NULL);
translate_thread_->RunTranslate(report_translate_finished,
- manifest_.get(),
- obj_file_.get(),
+ &obj_files_,
temp_nexe_file_.get(),
+ invalid_desc_wrapper_.get(),
&error_info_,
resources_.get(),
&pnacl_options_,
+ architecture_attributes_,
this,
plugin_);
}
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h
index e38cbc07869..d1ab90eac46 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h
@@ -21,13 +21,12 @@
#include "ppapi/native_client/src/trusted/plugin/file_downloader.h"
#include "ppapi/native_client/src/trusted/plugin/nacl_subprocess.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
-#include "ppapi/native_client/src/trusted/plugin/pnacl_options.h"
#include "ppapi/native_client/src/trusted/plugin/pnacl_resources.h"
+struct PP_PNaClOptions;
namespace plugin {
-class Manifest;
class Plugin;
class PnaclCoordinator;
class PnaclTranslateThread;
@@ -52,56 +51,23 @@ class TempFile;
// Translation proceeds in two steps:
// (1) llc translates the bitcode in pexe_url_ to an object in obj_file_.
// (2) ld links the object code in obj_file_ and produces a nexe in nexe_file_.
-//
-// The coordinator proceeds through several states. They are
-// OPEN_BITCODE_STREAM
-// Complete when BitcodeStreamDidOpen is invoked
-// LOAD_TRANSLATOR_BINARIES
-// Complete when ResourcesDidLoad is invoked.
-// GET_NEXE_FD
-// Get an FD which contains the cached nexe, or is writeable for
-// translation output. Complete when NexeFdDidOpen is called.
-//
-// If there was a cache hit, go to OPEN_NEXE_FOR_SEL_LDR, otherwise,
-// continue streaming the bitcode, and:
-// OPEN_TMP_FOR_LLC_TO_LD_COMMUNICATION
-// Complete when ObjectFileDidOpen is invoked.
-// OPEN_NEXE_FD_FOR_WRITING
-// Complete when RunTranslate is invoked.
-// START_LD_AND_LLC_SUBPROCESS_AND_INITIATE_TRANSLATION
-// Complete when RunTranslate returns.
-// TRANSLATION_COMPLETE
-// Complete when TranslateFinished is invoked.
-//
-// OPEN_NEXE_FOR_SEL_LDR
-// Complete when NexeReadDidOpen is invoked.
class PnaclCoordinator: public CallbackSource<FileStreamData> {
public:
+ // Maximum number of object files passable to the translator. Cannot be
+ // changed without changing the RPC signatures.
+ const static size_t kMaxTranslatorObjectFiles = 16;
virtual ~PnaclCoordinator();
// The factory method for translations.
static PnaclCoordinator* BitcodeToNative(
Plugin* plugin,
const nacl::string& pexe_url,
- const PnaclOptions& pnacl_options,
+ const PP_PNaClOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback);
// Call this to take ownership of the FD of the translated nexe after
// BitcodeToNative has completed (and the finish_callback called).
- nacl::DescWrapper* ReleaseTranslatedFD();
-
- // Run |translate_notify_callback_| with an error condition that is not
- // PPAPI specific. Also set ErrorInfo report.
- void ReportNonPpapiError(PluginErrorCode err, const nacl::string& message);
- // Run when faced with a PPAPI error condition. Bring control back to the
- // plugin by invoking the |translate_notify_callback_|.
- // Also set ErrorInfo report.
- void ReportPpapiError(PluginErrorCode err,
- int32_t pp_error, const nacl::string& message);
- // Bring control back to the plugin by invoking the
- // |translate_notify_callback_|. This does not set the ErrorInfo report,
- // it is assumed that it was already set.
- void ExitWithError();
+ PP_FileHandle TakeTranslatedFileHandle();
// Implement FileDownloader's template of the CallbackSource interface.
// This method returns a callback which will be called by the FileDownloader
@@ -116,9 +82,6 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
// Get the last known load progress.
void GetCurrentProgress(int64_t* bytes_loaded, int64_t* bytes_total);
- // Return true if the total progress to report (w/ progress events) is known.
- bool ExpectedProgressKnown() { return expected_pexe_size_ != -1; }
-
// Return true if we should delay the progress event reporting.
// This delay approximates:
// - the size of the buffer of bytes sent but not-yet-compiled by LLC.
@@ -136,7 +99,7 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
// Therefore the constructor is private.
PnaclCoordinator(Plugin* plugin,
const nacl::string& pexe_url,
- const PnaclOptions& pnacl_options,
+ const PP_PNaClOptions& pnacl_options,
const pp::CompletionCallback& translate_notify_callback);
// Invoke to issue a GET request for bitcode.
@@ -159,8 +122,6 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
void BitcodeGotCompiled(int32_t pp_error, int64_t bytes_compiled);
// Invoked when the pexe download finishes (using streaming translation)
void BitcodeStreamDidFinish(int32_t pp_error);
- // Invoked when the write descriptor for obj_file_ is created.
- void ObjectFileDidOpen(int32_t pp_error);
// Once llc and ld nexes have been loaded and the two temporary files have
// been created, this starts the translation. Translation starts two
// subprocesses, one for llc and one for ld.
@@ -172,6 +133,20 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
// Invoked when the read descriptor for nexe_file_ is created.
void NexeReadDidOpen(int32_t pp_error);
+ // Bring control back to the plugin by invoking the
+ // |translate_notify_callback_|. This does not set the ErrorInfo report,
+ // it is assumed that it was already set.
+ void ExitWithError();
+ // Run |translate_notify_callback_| with an error condition that is not
+ // PPAPI specific. Also set ErrorInfo report.
+ void ReportNonPpapiError(PP_NaClError err, const nacl::string& message);
+ // Run when faced with a PPAPI error condition. Bring control back to the
+ // plugin by invoking the |translate_notify_callback_|.
+ // Also set ErrorInfo report.
+ void ReportPpapiError(PP_NaClError err,
+ int32_t pp_error, const nacl::string& message);
+
+
// Keeps track of the pp_error upon entry to TranslateFinished,
// for inspection after cleanup.
int32_t translate_finish_error_;
@@ -190,19 +165,24 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
pp::CompletionCallbackFactory<PnaclCoordinator,
pp::ThreadSafeThreadTraits> callback_factory_;
- // The manifest used by resource loading and ld + llc's reverse service
- // to look up objects and libraries.
- nacl::scoped_ptr<const Manifest> manifest_;
// An auxiliary class that manages downloaded resources (llc and ld nexes).
nacl::scoped_ptr<PnaclResources> resources_;
// The URL for the pexe file.
nacl::string pexe_url_;
// Options for translation.
- PnaclOptions pnacl_options_;
+ PP_PNaClOptions pnacl_options_;
+ // Architecture-specific attributes used for translation. These are
+ // supplied by Chrome, not the developer, and are therefore different
+ // from PNaCl options.
+ nacl::string architecture_attributes_;
// Object file, produced by the translator and consumed by the linker.
- nacl::scoped_ptr<TempFile> obj_file_;
+ std::vector<TempFile*> obj_files_;
+ nacl::scoped_ptr<nacl::DescWrapper> invalid_desc_wrapper_;
+ // Number of split modules (threads) for llc
+ int split_module_count_;
+
// Translated nexe file, produced by the linker.
nacl::scoped_ptr<TempFile> temp_nexe_file_;
// Passed to the browser, which sets it to true if there is a translation
@@ -226,8 +206,8 @@ class PnaclCoordinator: public CallbackSource<FileStreamData> {
int64_t expected_pexe_size_; // Expected download total (-1 if unknown).
// The helper thread used to do translations via SRPC.
- // Keep this last in declaration order to ensure the other variables
- // haven't been destroyed yet when its destructor runs.
+ // It accesses fields of PnaclCoordinator so it must have a
+ // shorter lifetime.
nacl::scoped_ptr<PnaclTranslateThread> translate_thread_;
};
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.cc b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.cc
deleted file mode 100644
index 6985883175e..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/native_client/src/trusted/plugin/pnacl_options.h"
-
-#include <iterator>
-#include <vector>
-
-#include "native_client/src/include/nacl_string.h"
-
-namespace plugin {
-
-PnaclOptions::PnaclOptions() : translate_(false), opt_level_(2) { }
-
-PnaclOptions::~PnaclOptions() {
-}
-
-void PnaclOptions::set_opt_level(int32_t l) {
- if (l <= 0) {
- opt_level_ = 0;
- return;
- }
- // Currently only allow 0 or 2, since that is what we test.
- opt_level_ = 2;
-}
-
-std::vector<char> PnaclOptions::GetOptCommandline() const {
- std::vector<char> result;
- nacl::string str;
-
- nacl::stringstream ss;
- ss << "-O" << opt_level_;
- str = ss.str();
-
- std::copy(str.begin(), str.end(), std::back_inserter(result));
- result.push_back('\x00');
-
- return result;
-}
-
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.h b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.h
deleted file mode 100644
index df2a9aa171f..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_options.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
-
-#include <vector>
-
-#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/include/portability.h"
-
-namespace plugin {
-
-// Options for PNaCl translation.
-class PnaclOptions {
-
- public:
- PnaclOptions();
- ~PnaclOptions();
-
- // Return a character array of \x00 delimited commandline options.
- std::vector<char> GetOptCommandline() const;
-
- bool translate() const { return translate_; }
- void set_translate(bool t) { translate_ = t; }
-
- int32_t opt_level() const { return opt_level_; }
- void set_opt_level(int32_t l);
-
- private:
- // NOTE: There are users of this class that use the copy constructor.
- // Currently the default copy constructor is good enough, but
- // double-check that it is the case when more fields are added.
- bool translate_;
- int32_t opt_level_;
-};
-
-} // namespace plugin;
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_OPTIONS_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.cc b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.cc
index d712bc4922e..0e1a0695dad 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.cc
@@ -8,234 +8,78 @@
#include "native_client/src/shared/platform/nacl_check.h"
#include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
#include "ppapi/c/pp_errors.h"
-#include "ppapi/native_client/src/trusted/plugin/file_utils.h"
-#include "ppapi/native_client/src/trusted/plugin/manifest.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
-#include "ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h"
#include "ppapi/native_client/src/trusted/plugin/utility.h"
-#include "third_party/jsoncpp/source/include/json/reader.h"
-#include "third_party/jsoncpp/source/include/json/value.h"
namespace plugin {
-static const char kPnaclComponentScheme[] = "pnacl-component://";
-const char PnaclUrls::kResourceInfoUrl[] = "pnacl.json";
+namespace {
-nacl::string PnaclUrls::GetBaseUrl() {
- return nacl::string(kPnaclComponentScheme);
-}
-
-nacl::string PnaclUrls::PrependPlatformPrefix(const nacl::string& url) {
- return nacl::string(GetSandboxISA()) + "/" + url;
-}
-
-// Determine if a URL is for a pnacl-component file, or if it is some other
-// type of URL (e.g., http://, https://, chrome-extension://).
-// The URL could be one of the other variants for shared libraries
-// served from the web.
-bool PnaclUrls::IsPnaclComponent(const nacl::string& full_url) {
- return full_url.find(kPnaclComponentScheme, 0) == 0;
-}
+static const char kPnaclBaseUrl[] = "chrome://pnacl-translator/";
-// Convert a URL to a filename accepted by GetReadonlyPnaclFd.
-// Must be kept in sync with chrome/browser/nacl_host/nacl_file_host.
-nacl::string PnaclUrls::PnaclComponentURLToFilename(
- const nacl::string& full_url) {
- // strip component scheme.
- nacl::string r = full_url.substr(
- nacl::string(kPnaclComponentScheme).length());
-
- // Use white-listed-chars.
- size_t replace_pos;
- static const char* white_list = "abcdefghijklmnopqrstuvwxyz0123456789_";
- replace_pos = r.find_first_not_of(white_list);
- while(replace_pos != nacl::string::npos) {
- r = r.replace(replace_pos, 1, "_");
- replace_pos = r.find_first_not_of(white_list);
- }
- return r;
+nacl::string GetFullUrl(const nacl::string& partial_url) {
+ return nacl::string(kPnaclBaseUrl) + GetNaClInterface()->GetSandboxArch() +
+ "/" + partial_url;
}
-//////////////////////////////////////////////////////////////////////
+} // namespace
PnaclResources::~PnaclResources() {
- for (std::map<nacl::string, nacl::DescWrapper*>::iterator
- i = resource_wrappers_.begin(), e = resource_wrappers_.end();
- i != e;
- ++i) {
- delete i->second;
- }
- resource_wrappers_.clear();
-}
-
-// static
-int32_t PnaclResources::GetPnaclFD(Plugin* plugin, const char* filename) {
- PP_FileHandle file_handle =
- plugin->nacl_interface()->GetReadonlyPnaclFd(filename);
- if (file_handle == PP_kInvalidFileHandle)
- return -1;
-
-#if NACL_WINDOWS
- //////// Now try the posix view.
- int32_t posix_desc = _open_osfhandle(reinterpret_cast<intptr_t>(file_handle),
- _O_RDONLY | _O_BINARY);
- if (posix_desc == -1) {
- PLUGIN_PRINTF((
- "PnaclResources::GetPnaclFD failed to convert HANDLE to posix\n"));
- // Close the Windows HANDLE if it can't be converted.
- CloseHandle(file_handle);
- }
- return posix_desc;
-#else
- return file_handle;
-#endif
-}
-
-nacl::DescWrapper* PnaclResources::WrapperForUrl(const nacl::string& url) {
- CHECK(resource_wrappers_.find(url) != resource_wrappers_.end());
- return resource_wrappers_[url];
+ if (llc_file_handle_ != PP_kInvalidFileHandle)
+ CloseFileHandle(llc_file_handle_);
+ if (ld_file_handle_ != PP_kInvalidFileHandle)
+ CloseFileHandle(ld_file_handle_);
}
void PnaclResources::ReadResourceInfo(
- const nacl::string& resource_info_url,
const pp::CompletionCallback& resource_info_read_cb) {
- PLUGIN_PRINTF(("PnaclResources::ReadResourceInfo\n"));
-
- nacl::string full_url;
- ErrorInfo error_info;
- if (!manifest_->ResolveURL(resource_info_url, &full_url, &error_info)) {
- ReadResourceInfoError(nacl::string("failed to resolve ") +
- resource_info_url + ": " +
- error_info.message() + ".");
- return;
- }
- PLUGIN_PRINTF(("Resolved resources info url: %s\n", full_url.c_str()));
- nacl::string resource_info_filename =
- PnaclUrls::PnaclComponentURLToFilename(full_url);
-
- PLUGIN_PRINTF(("Pnacl-converted resources info url: %s\n",
- resource_info_filename.c_str()));
-
- int32_t fd = GetPnaclFD(plugin_, resource_info_filename.c_str());
- if (fd < 0) {
- // File-open failed. Assume this means that the file is
- // not actually installed.
- ReadResourceInfoError(
- nacl::string("The Portable Native Client (pnacl) component is not "
- "installed. Please consult chrome://components for more "
- "information."));
+ PP_Var pp_llc_tool_name_var;
+ PP_Var pp_ld_tool_name_var;
+ if (!plugin_->nacl_interface()->GetPnaclResourceInfo(
+ plugin_->pp_instance(),
+ "chrome://pnacl-translator/pnacl.json",
+ &pp_llc_tool_name_var,
+ &pp_ld_tool_name_var)) {
+ pp::Module::Get()->core()->CallOnMainThread(0,
+ resource_info_read_cb,
+ PP_ERROR_FAILED);
return;
}
-
- nacl::string json_buffer;
- file_utils::StatusCode status = file_utils::SlurpFile(fd, json_buffer);
- if (status != file_utils::PLUGIN_FILE_SUCCESS) {
- ReadResourceInfoError(
- nacl::string("PnaclResources::ReadResourceInfo reading "
- "failed for: ") + resource_info_filename);
- return;
- }
-
- // Finally, we have the resource info JSON data in json_buffer.
- PLUGIN_PRINTF(("Resource info JSON data:\n%s\n", json_buffer.c_str()));
- nacl::string error_message;
- if (!ParseResourceInfo(json_buffer, error_message)) {
- ReadResourceInfoError(nacl::string("Parsing resource info failed: ") +
- error_message + "\n");
- return;
- }
-
- // Done. Queue the completion callback.
- pp::Core* core = pp::Module::Get()->core();
- core->CallOnMainThread(0, resource_info_read_cb, PP_OK);
+ pp::Var llc_tool_name(pp::PASS_REF, pp_llc_tool_name_var);
+ pp::Var ld_tool_name(pp::PASS_REF, pp_ld_tool_name_var);
+ llc_tool_name_ = GetFullUrl(llc_tool_name.AsString());
+ ld_tool_name_ = GetFullUrl(ld_tool_name.AsString());
+ pp::Module::Get()->core()->CallOnMainThread(0, resource_info_read_cb, PP_OK);
}
-void PnaclResources::ReadResourceInfoError(const nacl::string& msg) {
- coordinator_->ReportNonPpapiError(ERROR_PNACL_RESOURCE_FETCH, msg);
+PP_FileHandle PnaclResources::TakeLlcFileHandle() {
+ PP_FileHandle to_return = llc_file_handle_;
+ llc_file_handle_ = PP_kInvalidFileHandle;
+ return to_return;
}
-bool PnaclResources::ParseResourceInfo(const nacl::string& buf,
- nacl::string& errmsg) {
- // Expect the JSON file to contain a top-level object (dictionary).
- Json::Reader json_reader;
- Json::Value json_data;
- if (!json_reader.parse(buf, json_data)) {
- errmsg = nacl::string("JSON parse error: ") +
- json_reader.getFormatedErrorMessages();
- return false;
- }
-
- if (!json_data.isObject()) {
- errmsg = nacl::string("Malformed JSON dictionary");
- return false;
- }
-
- if (json_data.isMember("pnacl-llc-name")) {
- Json::Value json_name = json_data["pnacl-llc-name"];
- if (json_name.isString()) {
- llc_tool_name = json_name.asString();
- PLUGIN_PRINTF(("Set llc_tool_name=%s\n", llc_tool_name.c_str()));
- }
- }
-
- if (json_data.isMember("pnacl-ld-name")) {
- Json::Value json_name = json_data["pnacl-ld-name"];
- if (json_name.isString()) {
- ld_tool_name = json_name.asString();
- PLUGIN_PRINTF(("Set ld_tool_name=%s\n", ld_tool_name.c_str()));
- }
- }
-
- return true;
+PP_FileHandle PnaclResources::TakeLdFileHandle() {
+ PP_FileHandle to_return = ld_file_handle_;
+ ld_file_handle_ = PP_kInvalidFileHandle;
+ return to_return;
}
void PnaclResources::StartLoad(
const pp::CompletionCallback& all_loaded_callback) {
PLUGIN_PRINTF(("PnaclResources::StartLoad\n"));
- std::vector<nacl::string> resource_urls;
- resource_urls.push_back(GetLlcUrl());
- resource_urls.push_back(GetLdUrl());
-
- PLUGIN_PRINTF(("PnaclResources::StartLoad -- local install of PNaCl.\n"));
// Do a blocking load of each of the resources.
- int32_t result = PP_OK;
- for (size_t i = 0; i < resource_urls.size(); ++i) {
- const nacl::string& url_with_platform_prefix =
- PnaclUrls::PrependPlatformPrefix(resource_urls[i]);
- nacl::string full_url;
- ErrorInfo error_info;
- if (!manifest_->ResolveURL(url_with_platform_prefix, &full_url,
- &error_info)) {
- coordinator_->ReportNonPpapiError(
- ERROR_PNACL_RESOURCE_FETCH,
- nacl::string("failed to resolve ") +
- url_with_platform_prefix + ": " +
- error_info.message() + ".");
- break;
- }
- nacl::string filename = PnaclUrls::PnaclComponentURLToFilename(full_url);
+ llc_file_handle_ =
+ plugin_->nacl_interface()->GetReadonlyPnaclFd(llc_tool_name_.c_str());
+ ld_file_handle_ =
+ plugin_->nacl_interface()->GetReadonlyPnaclFd(ld_tool_name_.c_str());
- int32_t fd = PnaclResources::GetPnaclFD(plugin_, filename.c_str());
- if (fd < 0) {
- // File-open failed. Assume this means that the file is
- // not actually installed. This shouldn't actually occur since
- // ReadResourceInfo() should happen first, and error out.
- coordinator_->ReportNonPpapiError(
- ERROR_PNACL_RESOURCE_FETCH,
- nacl::string("The Portable Native Client (pnacl) component is not "
- "installed. Please consult chrome://components for more "
- "information."));
- result = PP_ERROR_FILENOTFOUND;
- break;
- } else {
- resource_wrappers_[resource_urls[i]] =
- plugin_->wrapper_factory()->MakeFileDesc(fd, O_RDONLY);
- }
+ int32_t result = PP_OK;
+ if (llc_file_handle_ == PP_kInvalidFileHandle ||
+ ld_file_handle_ == PP_kInvalidFileHandle) {
+ result = PP_ERROR_FILENOTFOUND;
}
- // We're done! Queue the callback.
- pp::Core* core = pp::Module::Get()->core();
- core->CallOnMainThread(0, all_loaded_callback, result);
+ pp::Module::Get()->core()->CallOnMainThread(0, all_loaded_callback, result);
}
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.h b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.h
index f514b687e0c..cca3b5443a8 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_resources.h
@@ -15,99 +15,54 @@
#include "ppapi/c/private/pp_file_handle.h"
#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/native_client/src/trusted/plugin/nexe_arch.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
namespace plugin {
-class Manifest;
class Plugin;
-class PnaclCoordinator;
-
-// Constants for loading LLC and LD.
-class PnaclUrls {
- public:
- // Get the base URL prefix for Pnacl resources (without platform prefix).
- static nacl::string GetBaseUrl();
-
- // Return {platform_prefix}/url
- static nacl::string PrependPlatformPrefix(const nacl::string& url);
-
- static bool IsPnaclComponent(const nacl::string& full_url);
- static nacl::string PnaclComponentURLToFilename(
- const nacl::string& full_url);
-
- // Get the URL for the resource info JSON file that contains information
- // about loadable resources.
- static const nacl::string GetResourceInfoUrl() {
- return nacl::string(kResourceInfoUrl);
- }
- private:
- static const char kResourceInfoUrl[];
-};
// Loads a list of resources, providing a way to get file descriptors for
// these resources. URLs for resources are resolved by the manifest
// and point to pnacl component filesystem resources.
class PnaclResources {
public:
- PnaclResources(Plugin* plugin,
- PnaclCoordinator* coordinator,
- const Manifest* manifest)
+ explicit PnaclResources(Plugin* plugin)
: plugin_(plugin),
- coordinator_(coordinator),
- manifest_(manifest) {
+ llc_file_handle_(PP_kInvalidFileHandle),
+ ld_file_handle_(PP_kInvalidFileHandle) {
}
virtual ~PnaclResources();
// Read the resource info JSON file. This is the first step after
// construction; it has to be completed before StartLoad is called.
virtual void ReadResourceInfo(
- const nacl::string& resource_info_url,
const pp::CompletionCallback& resource_info_read_cb);
// Start loading the resources.
virtual void StartLoad(
const pp::CompletionCallback& all_loaded_callback);
- const nacl::string& GetLlcUrl() {
- return llc_tool_name;
- }
-
- const nacl::string& GetLdUrl() {
- return ld_tool_name;
- }
+ const nacl::string& GetLlcUrl() { return llc_tool_name_; }
+ const nacl::string& GetLdUrl() { return ld_tool_name_; }
- // Get file descs by name. Only valid after StartLoad's completion callback
- // fired.
- nacl::DescWrapper* WrapperForUrl(const nacl::string& url);
-
- static int32_t GetPnaclFD(Plugin* plugin, const char* filename);
+ PP_FileHandle TakeLlcFileHandle();
+ PP_FileHandle TakeLdFileHandle();
private:
NACL_DISALLOW_COPY_AND_ASSIGN(PnaclResources);
// The plugin requesting the resource loading.
Plugin* plugin_;
- // The coordinator responsible for reporting errors, etc.
- PnaclCoordinator* coordinator_;
- // The manifest for looking up resource URLs.
- const Manifest* manifest_;
- // The descriptor wrappers for the downloaded URLs. Only valid
- // once all_loaded_callback_ has been invoked.
- std::map<nacl::string, nacl::DescWrapper*> resource_wrappers_;
// Tool names for llc and ld; read from the resource info file.
- nacl::string llc_tool_name;
- nacl::string ld_tool_name;
-
- // Parses resource info json data in |buf|. Returns true if successful.
- // Otherwise returns false and places an error message in |errmsg|.
- bool ParseResourceInfo(const nacl::string& buf, nacl::string& errmsg);
-
- // Convenience function for reporting an error while reading the resource
- // info file.
- void ReadResourceInfoError(const nacl::string& msg);
+ nacl::string llc_tool_name_;
+ nacl::string ld_tool_name_;
+
+ // File handles for llc and ld executables, after they've been opened.
+ // Only valid after the callback for StartLoad() has been called, and until
+ // TakeLlcFileHandle()/TakeLdFileHandle() is called.
+ PP_FileHandle llc_file_handle_;
+ PP_FileHandle ld_file_handle_;
};
} // namespace plugin;
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc
index d51efe45f6b..5f3c4f0d35b 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.cc
@@ -4,7 +4,10 @@
#include "ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h"
+#include <iterator>
+
#include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
+#include "ppapi/cpp/var.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
#include "ppapi/native_client/src/trusted/plugin/pnacl_resources.h"
@@ -13,13 +16,48 @@
#include "ppapi/native_client/src/trusted/plugin/utility.h"
namespace plugin {
+namespace {
+
+template <typename Val>
+nacl::string MakeCommandLineArg(const char* key, const Val val) {
+ nacl::stringstream ss;
+ ss << key << val;
+ return ss.str();
+}
+
+void GetLlcCommandLine(Plugin* plugin,
+ std::vector<char>* split_args,
+ size_t obj_files_size,
+ int32_t opt_level,
+ bool is_debug,
+ const nacl::string &architecture_attributes) {
+ typedef std::vector<nacl::string> Args;
+ Args args;
+
+ // TODO(dschuff): This CL override is ugly. Change llc to default to
+ // using the number of modules specified in the first param, and
+ // ignore multiple uses of -split-module
+ args.push_back(MakeCommandLineArg("-split-module=", obj_files_size));
+ args.push_back(MakeCommandLineArg("-O=", opt_level));
+ if (is_debug)
+ args.push_back("-bitcode-format=llvm");
+ if (!architecture_attributes.empty())
+ args.push_back("-mattr=" + architecture_attributes);
+
+ for (Args::const_iterator arg(args.begin()); arg != args.end(); ++arg) {
+ std::copy(arg->begin(), arg->end(), std::back_inserter(*split_args));
+ split_args->push_back('\x00');
+ }
+}
+
+} // namespace
PnaclTranslateThread::PnaclTranslateThread() : llc_subprocess_active_(false),
ld_subprocess_active_(false),
+ subprocesses_aborted_(false),
done_(false),
- time_stats_(),
- manifest_(NULL),
- obj_file_(NULL),
+ compile_time_(0),
+ obj_files_(NULL),
nexe_file_(NULL),
coordinator_error_info_(NULL),
resources_(NULL),
@@ -32,21 +70,23 @@ PnaclTranslateThread::PnaclTranslateThread() : llc_subprocess_active_(false),
void PnaclTranslateThread::RunTranslate(
const pp::CompletionCallback& finish_callback,
- const Manifest* manifest,
- TempFile* obj_file,
+ const std::vector<TempFile*>* obj_files,
TempFile* nexe_file,
+ nacl::DescWrapper* invalid_desc_wrapper,
ErrorInfo* error_info,
PnaclResources* resources,
- PnaclOptions* pnacl_options,
+ PP_PNaClOptions* pnacl_options,
+ const nacl::string &architecture_attributes,
PnaclCoordinator* coordinator,
Plugin* plugin) {
PLUGIN_PRINTF(("PnaclStreamingTranslateThread::RunTranslate)\n"));
- manifest_ = manifest;
- obj_file_ = obj_file;
+ obj_files_ = obj_files;
nexe_file_ = nexe_file;
+ invalid_desc_wrapper_ = invalid_desc_wrapper;
coordinator_error_info_ = error_info;
resources_ = resources;
pnacl_options_ = pnacl_options;
+ architecture_attributes_ = architecture_attributes;
coordinator_ = coordinator;
plugin_ = plugin;
@@ -55,7 +95,7 @@ void PnaclTranslateThread::RunTranslate(
report_translate_finished_ = finish_callback;
translate_thread_.reset(new NaClThread);
if (translate_thread_ == NULL) {
- TranslateFailed(ERROR_PNACL_THREAD_CREATE,
+ TranslateFailed(PP_NACL_ERROR_PNACL_THREAD_CREATE,
"could not allocate thread struct.");
return;
}
@@ -64,7 +104,7 @@ void PnaclTranslateThread::RunTranslate(
DoTranslateThread,
this,
kArbitraryStackSize)) {
- TranslateFailed(ERROR_PNACL_THREAD_CREATE,
+ TranslateFailed(PP_NACL_ERROR_PNACL_THREAD_CREATE,
"could not create thread.");
translate_thread_.reset(NULL);
}
@@ -104,23 +144,6 @@ void PnaclTranslateThread::PutBytes(std::vector<char>* bytes,
bytes->resize(buffer_size);
}
-NaClSubprocess* PnaclTranslateThread::StartSubprocess(
- const nacl::string& url_for_nexe,
- const Manifest* manifest,
- ErrorInfo* error_info) {
- PLUGIN_PRINTF(("PnaclTranslateThread::StartSubprocess (url_for_nexe=%s)\n",
- url_for_nexe.c_str()));
- nacl::DescWrapper* wrapper = resources_->WrapperForUrl(url_for_nexe);
- nacl::scoped_ptr<NaClSubprocess> subprocess(
- plugin_->LoadHelperNaClModule(wrapper, manifest, error_info));
- if (subprocess.get() == NULL) {
- PLUGIN_PRINTF((
- "PnaclTranslateThread::StartSubprocess: subprocess creation failed\n"));
- return NULL;
- }
- return subprocess.release();
-}
-
void WINAPI PnaclTranslateThread::DoTranslateThread(void* arg) {
PnaclTranslateThread* translator =
reinterpret_cast<PnaclTranslateThread*>(arg);
@@ -130,55 +153,92 @@ void WINAPI PnaclTranslateThread::DoTranslateThread(void* arg) {
void PnaclTranslateThread::DoTranslate() {
ErrorInfo error_info;
SrpcParams params;
- nacl::DescWrapper* llc_out_file = obj_file_->write_wrapper();
+ std::vector<nacl::DescWrapper*> llc_out_files;
+ size_t i;
+ for (i = 0; i < obj_files_->size(); i++)
+ llc_out_files.push_back((*obj_files_)[i]->write_wrapper());
+ for (; i < PnaclCoordinator::kMaxTranslatorObjectFiles; i++)
+ llc_out_files.push_back(invalid_desc_wrapper_);
+
+ pp::Core* core = pp::Module::Get()->core();
+ int64_t llc_start_time = NaClGetTimeOfDayMicroseconds();
+ PP_FileHandle llc_file_handle = resources_->TakeLlcFileHandle();
+ // On success, ownership of llc_file_handle is transferred.
+ NaClSubprocess* llc_subprocess = plugin_->LoadHelperNaClModule(
+ resources_->GetLlcUrl(), llc_file_handle, &error_info);
+ if (llc_subprocess == NULL) {
+ if (llc_file_handle != PP_kInvalidFileHandle)
+ CloseFileHandle(llc_file_handle);
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_SETUP,
+ "Compile process could not be created: " +
+ error_info.message());
+ return;
+ }
+ GetNaClInterface()->LogTranslateTime(
+ "NaCl.Perf.PNaClLoadTime.LoadCompiler",
+ NaClGetTimeOfDayMicroseconds() - llc_start_time);
{
nacl::MutexLocker ml(&subprocess_mu_);
- int64_t llc_start_time = NaClGetTimeOfDayMicroseconds();
- llc_subprocess_.reset(
- StartSubprocess(resources_->GetLlcUrl(), manifest_, &error_info));
- if (llc_subprocess_ == NULL) {
- TranslateFailed(ERROR_PNACL_LLC_SETUP,
- "Compile process could not be created: " +
- error_info.message());
+ // If we received a call to AbortSubprocesses() before we had a chance to
+ // set llc_subprocess_, shut down and clean up the subprocess started here.
+ if (subprocesses_aborted_) {
+ llc_subprocess->service_runtime()->Shutdown();
+ delete llc_subprocess;
return;
}
+ llc_subprocess_.reset(llc_subprocess);
+ llc_subprocess = NULL;
llc_subprocess_active_ = true;
- time_stats_.pnacl_llc_load_time =
- (NaClGetTimeOfDayMicroseconds() - llc_start_time);
- // Run LLC.
- PluginReverseInterface* llc_reverse =
- llc_subprocess_->service_runtime()->rev_interface();
- llc_reverse->AddTempQuotaManagedFile(obj_file_->identifier());
}
int64_t compile_start_time = NaClGetTimeOfDayMicroseconds();
bool init_success;
- std::vector<char> options = pnacl_options_->GetOptCommandline();
+
+ std::vector<char> split_args;
+ GetLlcCommandLine(plugin_,
+ &split_args,
+ obj_files_->size(),
+ pnacl_options_->opt_level,
+ pnacl_options_->is_debug,
+ architecture_attributes_);
init_success = llc_subprocess_->InvokeSrpcMethod(
- "StreamInitWithOverrides",
- "hC",
+ "StreamInitWithSplit",
+ "ihhhhhhhhhhhhhhhhC",
&params,
- llc_out_file->desc(),
- &options[0],
- options.size());
-
+ static_cast<int>(obj_files_->size()),
+ llc_out_files[0]->desc(),
+ llc_out_files[1]->desc(),
+ llc_out_files[2]->desc(),
+ llc_out_files[3]->desc(),
+ llc_out_files[4]->desc(),
+ llc_out_files[5]->desc(),
+ llc_out_files[6]->desc(),
+ llc_out_files[7]->desc(),
+ llc_out_files[8]->desc(),
+ llc_out_files[9]->desc(),
+ llc_out_files[10]->desc(),
+ llc_out_files[11]->desc(),
+ llc_out_files[12]->desc(),
+ llc_out_files[13]->desc(),
+ llc_out_files[14]->desc(),
+ llc_out_files[15]->desc(),
+ &split_args[0],
+ split_args.size());
if (!init_success) {
if (llc_subprocess_->srpc_client()->GetLastError() ==
NACL_SRPC_RESULT_APP_ERROR) {
// The error message is only present if the error was returned from llc
- TranslateFailed(ERROR_PNACL_LLC_INTERNAL,
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_INTERNAL,
nacl::string("Stream init failed: ") +
nacl::string(params.outs()[0]->arrays.str));
} else {
- TranslateFailed(ERROR_PNACL_LLC_INTERNAL,
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_INTERNAL,
"Stream init internal error");
}
return;
}
-
PLUGIN_PRINTF(("PnaclCoordinator: StreamInit successful\n"));
- pp::Core* core = pp::Module::Get()->core();
// llc process is started.
while(!done_ || data_buffers_.size() > 0) {
@@ -206,7 +266,7 @@ void PnaclTranslateThread::DoTranslate() {
// and call StreamEnd, which returns a string describing the error,
// which we can then send to the Javascript console. Otherwise just
// fail here, since the translator has probably crashed or asserted.
- TranslateFailed(ERROR_PNACL_LLC_INTERNAL,
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_INTERNAL,
"Compile stream chunk failed. "
"The PNaCl translator has probably crashed.");
return;
@@ -230,25 +290,17 @@ void PnaclTranslateThread::DoTranslate() {
if (llc_subprocess_->srpc_client()->GetLastError() ==
NACL_SRPC_RESULT_APP_ERROR) {
// The error string is only present if the error was sent back from llc.
- TranslateFailed(ERROR_PNACL_LLC_INTERNAL,
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_INTERNAL,
params.outs()[3]->arrays.str);
} else {
- TranslateFailed(ERROR_PNACL_LLC_INTERNAL,
+ TranslateFailed(PP_NACL_ERROR_PNACL_LLC_INTERNAL,
"Compile StreamEnd internal error");
}
return;
}
- time_stats_.pnacl_compile_time =
- (NaClGetTimeOfDayMicroseconds() - compile_start_time);
-
- // LLC returns values that are used to determine how linking is done.
- int is_shared_library = (params.outs()[0]->u.ival != 0);
- nacl::string soname = params.outs()[1]->arrays.str;
- nacl::string lib_dependencies = params.outs()[2]->arrays.str;
- PLUGIN_PRINTF(("PnaclCoordinator: compile (translator=%p) succeeded"
- " is_shared_library=%d, soname='%s', lib_dependencies='%s')\n",
- this, is_shared_library, soname.c_str(),
- lib_dependencies.c_str()));
+ compile_time_ = NaClGetTimeOfDayMicroseconds() - compile_start_time;
+ GetNaClInterface()->LogTranslateTime("NaCl.Perf.PNaClLoadTime.CompileTime",
+ compile_time_);
// Shut down the llc subprocess.
NaClXMutexLock(&subprocess_mu_);
@@ -256,63 +308,94 @@ void PnaclTranslateThread::DoTranslate() {
llc_subprocess_.reset(NULL);
NaClXMutexUnlock(&subprocess_mu_);
- if(!RunLdSubprocess(is_shared_library, soname, lib_dependencies)) {
+ if(!RunLdSubprocess()) {
return;
}
core->CallOnMainThread(0, report_translate_finished_, PP_OK);
}
-bool PnaclTranslateThread::RunLdSubprocess(int is_shared_library,
- const nacl::string& soname,
- const nacl::string& lib_dependencies
- ) {
+bool PnaclTranslateThread::RunLdSubprocess() {
ErrorInfo error_info;
SrpcParams params;
- // Reset object file for reading first.
- if (!obj_file_->Reset()) {
- TranslateFailed(ERROR_PNACL_LD_SETUP,
- "Link process could not reset object file");
- return false;
+
+ std::vector<nacl::DescWrapper*> ld_in_files;
+ size_t i;
+ for (i = 0; i < obj_files_->size(); i++) {
+ // Reset object file for reading first.
+ if (!(*obj_files_)[i]->Reset()) {
+ TranslateFailed(PP_NACL_ERROR_PNACL_LD_SETUP,
+ "Link process could not reset object file");
+ return false;
+ }
+ ld_in_files.push_back((*obj_files_)[i]->read_wrapper());
}
- nacl::DescWrapper* ld_in_file = obj_file_->read_wrapper();
- nacl::DescWrapper* ld_out_file = nexe_file_->write_wrapper();
+ for (; i < PnaclCoordinator::kMaxTranslatorObjectFiles; i++)
+ ld_in_files.push_back(invalid_desc_wrapper_);
+ nacl::DescWrapper* ld_out_file = nexe_file_->write_wrapper();
+ int64_t ld_start_time = NaClGetTimeOfDayMicroseconds();
+ PP_FileHandle ld_file_handle = resources_->TakeLdFileHandle();
+ // On success, ownership of ld_file_handle is transferred.
+ nacl::scoped_ptr<NaClSubprocess> ld_subprocess(
+ plugin_->LoadHelperNaClModule(resources_->GetLlcUrl(),
+ ld_file_handle,
+ &error_info));
+ if (ld_subprocess.get() == NULL) {
+ if (ld_file_handle != PP_kInvalidFileHandle)
+ CloseFileHandle(ld_file_handle);
+ TranslateFailed(PP_NACL_ERROR_PNACL_LD_SETUP,
+ "Link process could not be created: " +
+ error_info.message());
+ return false;
+ }
+ GetNaClInterface()->LogTranslateTime(
+ "NaCl.Perf.PNaClLoadTime.LoadLinker",
+ NaClGetTimeOfDayMicroseconds() - ld_start_time);
{
- // Create LD process
nacl::MutexLocker ml(&subprocess_mu_);
- int64_t ld_start_time = NaClGetTimeOfDayMicroseconds();
- ld_subprocess_.reset(
- StartSubprocess(resources_->GetLdUrl(), manifest_, &error_info));
- if (ld_subprocess_ == NULL) {
- TranslateFailed(ERROR_PNACL_LD_SETUP,
- "Link process could not be created: " +
- error_info.message());
+ // If we received a call to AbortSubprocesses() before we had a chance to
+ // set llc_subprocess_, shut down and clean up the subprocess started here.
+ if (subprocesses_aborted_) {
+ ld_subprocess->service_runtime()->Shutdown();
return false;
}
+ DCHECK(ld_subprocess_.get() == NULL);
+ ld_subprocess_.swap(ld_subprocess);
ld_subprocess_active_ = true;
- time_stats_.pnacl_ld_load_time =
- (NaClGetTimeOfDayMicroseconds() - ld_start_time);
- PluginReverseInterface* ld_reverse =
- ld_subprocess_->service_runtime()->rev_interface();
- ld_reverse->AddTempQuotaManagedFile(nexe_file_->identifier());
}
int64_t link_start_time = NaClGetTimeOfDayMicroseconds();
// Run LD.
- if (!ld_subprocess_->InvokeSrpcMethod("RunWithDefaultCommandLine",
- "hhiss",
- &params,
- ld_in_file->desc(),
- ld_out_file->desc(),
- is_shared_library,
- soname.c_str(),
- lib_dependencies.c_str())) {
- TranslateFailed(ERROR_PNACL_LD_INTERNAL,
+ bool success = ld_subprocess_->InvokeSrpcMethod(
+ "RunWithSplit",
+ "ihhhhhhhhhhhhhhhhh",
+ &params,
+ static_cast<int>(obj_files_->size()),
+ ld_in_files[0]->desc(),
+ ld_in_files[1]->desc(),
+ ld_in_files[2]->desc(),
+ ld_in_files[3]->desc(),
+ ld_in_files[4]->desc(),
+ ld_in_files[5]->desc(),
+ ld_in_files[6]->desc(),
+ ld_in_files[7]->desc(),
+ ld_in_files[8]->desc(),
+ ld_in_files[9]->desc(),
+ ld_in_files[10]->desc(),
+ ld_in_files[11]->desc(),
+ ld_in_files[12]->desc(),
+ ld_in_files[13]->desc(),
+ ld_in_files[14]->desc(),
+ ld_in_files[15]->desc(),
+ ld_out_file->desc());
+ if (!success) {
+ TranslateFailed(PP_NACL_ERROR_PNACL_LD_INTERNAL,
"link failed.");
return false;
}
- time_stats_.pnacl_link_time =
- NaClGetTimeOfDayMicroseconds() - link_start_time;
+ GetNaClInterface()->LogTranslateTime(
+ "NaCl.Perf.PNaClLoadTime.LinkTime",
+ NaClGetTimeOfDayMicroseconds() - link_start_time);
PLUGIN_PRINTF(("PnaclCoordinator: link (translator=%p) succeeded\n",
this));
// Shut down the ld subprocess.
@@ -324,7 +407,7 @@ bool PnaclTranslateThread::RunLdSubprocess(int is_shared_library,
}
void PnaclTranslateThread::TranslateFailed(
- enum PluginErrorCode err_code,
+ PP_NaClError err_code,
const nacl::string& error_string) {
PLUGIN_PRINTF(("PnaclTranslateThread::TranslateFailed (error_string='%s')\n",
error_string.c_str()));
@@ -350,6 +433,7 @@ void PnaclTranslateThread::AbortSubprocesses() {
ld_subprocess_->service_runtime()->Shutdown();
ld_subprocess_active_ = false;
}
+ subprocesses_aborted_ = true;
NaClXMutexUnlock(&subprocess_mu_);
nacl::MutexLocker ml(&cond_mu_);
done_ = true;
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
index 31981ebdec9..e5512123557 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
@@ -19,6 +19,8 @@
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
#include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
+struct PP_PNaClOptions;
+
namespace nacl {
class DescWrapper;
}
@@ -26,21 +28,12 @@ class DescWrapper;
namespace plugin {
-class Manifest;
class NaClSubprocess;
class Plugin;
class PnaclCoordinator;
-class PnaclOptions;
class PnaclResources;
class TempFile;
-struct PnaclTimeStats {
- int64_t pnacl_llc_load_time;
- int64_t pnacl_compile_time;
- int64_t pnacl_ld_load_time;
- int64_t pnacl_link_time;
-};
-
class PnaclTranslateThread {
public:
PnaclTranslateThread();
@@ -49,12 +42,13 @@ class PnaclTranslateThread {
// Start the translation process. It will continue to run and consume data
// as it is passed in with PutBytes.
void RunTranslate(const pp::CompletionCallback& finish_callback,
- const Manifest* manifest,
- TempFile* obj_file,
+ const std::vector<TempFile*>* obj_files,
TempFile* nexe_file,
+ nacl::DescWrapper* invalid_desc_wrapper,
ErrorInfo* error_info,
PnaclResources* resources,
- PnaclOptions* pnacl_options,
+ PP_PNaClOptions* pnacl_options,
+ const nacl::string &architecture_attributes,
PnaclCoordinator* coordinator,
Plugin* plugin);
@@ -69,25 +63,20 @@ class PnaclTranslateThread {
// Send bitcode bytes to the translator. Called from the main thread.
void PutBytes(std::vector<char>* data, int count);
- const PnaclTimeStats& GetTimeStats() const { return time_stats_; }
+ int64_t GetCompileTime() const { return compile_time_; }
private:
- // Starts an individual llc or ld subprocess used for translation.
- NaClSubprocess* StartSubprocess(const nacl::string& url,
- const Manifest* manifest,
- ErrorInfo* error_info);
// Helper thread entry point for translation. Takes a pointer to
// PnaclTranslateThread and calls DoTranslate().
static void WINAPI DoTranslateThread(void* arg);
// Runs the streaming translation. Called from the helper thread.
void DoTranslate() ;
// Signal that Pnacl translation failed, from the translation thread only.
- void TranslateFailed(enum PluginErrorCode err_code,
+ void TranslateFailed(PP_NaClError err_code,
const nacl::string& error_string);
- // Run the LD subprocess, returning true on success
- bool RunLdSubprocess(int is_shared_library,
- const nacl::string& soname,
- const nacl::string& lib_dependencies);
+ // Run the LD subprocess, returning true on success.
+ // On failure, it returns false and runs the callback.
+ bool RunLdSubprocess();
// Callback to run when tasks are completed or an error has occurred.
@@ -103,6 +92,8 @@ class PnaclTranslateThread {
bool llc_subprocess_active_;
bool ld_subprocess_active_;
+ bool subprocesses_aborted_;
+
// Condition variable to synchronize communication with the SRPC thread.
// SRPC thread waits on this condvar if data_buffers_ is empty (meaning
// there is no bitcode to send to the translator), and the main thread
@@ -117,15 +108,16 @@ class PnaclTranslateThread {
// Associated with buffer_cond_
bool done_;
- PnaclTimeStats time_stats_;
+ int64_t compile_time_;
// Data about the translation files, owned by the coordinator
- const Manifest* manifest_;
- TempFile* obj_file_;
+ const std::vector<TempFile*>* obj_files_;
TempFile* nexe_file_;
+ nacl::DescWrapper* invalid_desc_wrapper_;
ErrorInfo* coordinator_error_info_;
PnaclResources* resources_;
- PnaclOptions* pnacl_options_;
+ PP_PNaClOptions* pnacl_options_;
+ nacl::string architecture_attributes_;
PnaclCoordinator* coordinator_;
Plugin* plugin_;
private:
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.cc b/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.cc
deleted file mode 100644
index 05c0455d558..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.cc
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Scriptable plugin implementation.
-
-#include "ppapi/native_client/src/trusted/plugin/scriptable_plugin.h"
-
-#include <string.h>
-
-#include <sstream>
-#include <string>
-#include <vector>
-
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/nacl_string.h"
-#include "native_client/src/include/portability.h"
-#include "native_client/src/shared/platform/nacl_check.h"
-#include "native_client/src/shared/srpc/nacl_srpc.h"
-#include "ppapi/native_client/src/trusted/plugin/plugin.h"
-#include "ppapi/native_client/src/trusted/plugin/utility.h"
-
-
-namespace plugin {
-
-namespace {
-
-pp::Var Error(const nacl::string& call_name, const char* caller,
- const char* error, pp::Var* exception) {
- nacl::stringstream error_stream;
- error_stream << call_name << ": " << error;
- if (!exception->is_undefined()) {
- error_stream << " - " + exception->AsString();
- }
- // Get the error string in 2 steps; otherwise, the temporary string returned
- // by the stream is destructed, causing a dangling pointer.
- std::string str = error_stream.str();
- const char* e = str.c_str();
- PLUGIN_PRINTF(("ScriptablePlugin::%s (%s)\n", caller, e));
- *exception = pp::Var(e);
- return pp::Var();
-}
-
-} // namespace
-
-ScriptablePlugin::ScriptablePlugin(Plugin* plugin)
- : var_(NULL), num_unref_calls_(0), plugin_(plugin) {
- PLUGIN_PRINTF(("ScriptablePlugin::ScriptablePlugin (this=%p, plugin=%p)\n",
- static_cast<void*>(this),
- static_cast<void*>(plugin)));
-}
-
-ScriptablePlugin::~ScriptablePlugin() {
- PLUGIN_PRINTF(("ScriptablePlugin::~ScriptablePlugin (this=%p)\n",
- static_cast<void*>(this)));
- PLUGIN_PRINTF(("ScriptablePlugin::~ScriptablePlugin (this=%p, return)\n",
- static_cast<void*>(this)));
-}
-
-void ScriptablePlugin::Unref(ScriptablePlugin** handle) {
- if (*handle != NULL) {
- (*handle)->Unref();
- *handle = NULL;
- }
-}
-
-ScriptablePlugin* ScriptablePlugin::NewPlugin(Plugin* plugin) {
- PLUGIN_PRINTF(("ScriptablePlugin::NewPlugin (plugin=%p)\n",
- static_cast<void*>(plugin)));
- if (plugin == NULL) {
- return NULL;
- }
- ScriptablePlugin* scriptable_plugin = new ScriptablePlugin(plugin);
- if (scriptable_plugin == NULL) {
- return NULL;
- }
- PLUGIN_PRINTF(("ScriptablePlugin::NewPlugin (return %p)\n",
- static_cast<void*>(scriptable_plugin)));
- return scriptable_plugin;
-}
-
-bool ScriptablePlugin::HasProperty(const pp::Var& name, pp::Var* exception) {
- UNREFERENCED_PARAMETER(exception);
- PLUGIN_PRINTF(("ScriptablePlugin::HasProperty (this=%p, name=%s)\n",
- static_cast<void*>(this), name.DebugString().c_str()));
- return false;
-}
-
-bool ScriptablePlugin::HasMethod(const pp::Var& name, pp::Var* exception) {
- UNREFERENCED_PARAMETER(exception);
- PLUGIN_PRINTF(("ScriptablePlugin::HasMethod (this=%p, name='%s')\n",
- static_cast<void*>(this), name.DebugString().c_str()));
- return false;
-}
-
-pp::Var ScriptablePlugin::GetProperty(const pp::Var& name,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::GetProperty (name=%s)\n",
- name.DebugString().c_str()));
- Error("GetProperty", name.DebugString().c_str(),
- "property getting is not supported", exception);
- return pp::Var();
-}
-
-void ScriptablePlugin::SetProperty(const pp::Var& name,
- const pp::Var& value,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::SetProperty (name=%s, value=%s)\n",
- name.DebugString().c_str(), value.DebugString().c_str()));
- Error("SetProperty", name.DebugString().c_str(),
- "property setting is not supported", exception);
-}
-
-
-void ScriptablePlugin::RemoveProperty(const pp::Var& name,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::RemoveProperty (name=%s)\n",
- name.DebugString().c_str()));
- Error("RemoveProperty", name.DebugString().c_str(),
- "property removal is not supported", exception);
-}
-
-void ScriptablePlugin::GetAllPropertyNames(std::vector<pp::Var>* properties,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::GetAllPropertyNames ()\n"));
- UNREFERENCED_PARAMETER(properties);
- UNREFERENCED_PARAMETER(exception);
- Error("GetAllPropertyNames", "", "GetAllPropertyNames is not supported",
- exception);
-}
-
-
-pp::Var ScriptablePlugin::Call(const pp::Var& name,
- const std::vector<pp::Var>& args,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::Call (name=%s, %" NACL_PRIuS
- " args)\n", name.DebugString().c_str(), args.size()));
- return Error("Call", name.DebugString().c_str(),
- "method invocation is not supported", exception);
-}
-
-
-pp::Var ScriptablePlugin::Construct(const std::vector<pp::Var>& args,
- pp::Var* exception) {
- PLUGIN_PRINTF(("ScriptablePlugin::Construct (%" NACL_PRIuS
- " args)\n", args.size()));
- return Error("constructor", "Construct", "constructor is not supported",
- exception);
-}
-
-
-ScriptablePlugin* ScriptablePlugin::AddRef() {
- // This is called when we are about to share this object with the browser,
- // and we need to make sure we have an internal plugin reference, so this
- // object doesn't get deallocated when the browser discards its references.
- if (var_ == NULL) {
- var_ = new pp::VarPrivate(plugin_, this);
- CHECK(var_ != NULL);
- }
- PLUGIN_PRINTF(("ScriptablePlugin::AddRef (this=%p, var=%p)\n",
- static_cast<void*>(this), static_cast<void*>(var_)));
- return this;
-}
-
-
-void ScriptablePlugin::Unref() {
- // We should have no more than one internal owner of this object, so this
- // should be called no more than once.
- CHECK(++num_unref_calls_ == 1);
- PLUGIN_PRINTF(("ScriptablePlugin::Unref (this=%p, var=%p)\n",
- static_cast<void*>(this), static_cast<void*>(var_)));
- if (var_ != NULL) {
- // We have shared this with the browser while keeping our own var
- // reference, but we no longer need ours. If the browser has copies,
- // it will clean things up later, otherwise this object will get
- // deallocated right away.
- PLUGIN_PRINTF(("ScriptablePlugin::Unref (delete var)\n"));
- pp::Var* var = var_;
- var_ = NULL;
- delete var;
- } else {
- // Neither the browser nor plugin ever var referenced this object,
- // so it can safely discarded.
- PLUGIN_PRINTF(("ScriptablePlugin::Unref (delete this)\n"));
- CHECK(var_ == NULL);
- delete this;
- }
-}
-
-
-} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.h b/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.h
deleted file mode 100644
index d9b000dd1ba..00000000000
--- a/chromium/ppapi/native_client/src/trusted/plugin/scriptable_plugin.h
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The browser scriptable container class. The methods on this class
-// are defined in the specific API directories.
-
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SCRIPTABLE_PLUGIN_H_
-#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SCRIPTABLE_PLUGIN_H_
-
-#include <vector>
-
-#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/portability.h"
-#include "ppapi/cpp/dev/scriptable_object_deprecated.h"
-#include "ppapi/cpp/private/var_private.h"
-#include "ppapi/native_client/src/trusted/plugin/utility.h"
-
-namespace plugin {
-
-// Forward declarations for externals.
-class Plugin;
-
-// ScriptablePlugin encapsulates plugins that are scriptable from the browser.
-class ScriptablePlugin : public pp::deprecated::ScriptableObject {
- public:
- // Factory method.
- static ScriptablePlugin* NewPlugin(Plugin* plugin);
-
- // If not NULL, this var should be reused to pass this object to the browser.
- pp::VarPrivate* var() { return var_; }
-
- static void Unref(ScriptablePlugin** handle);
-
- // Get the contained plugin object. NULL if this contains a descriptor.
- Plugin* plugin() const { return plugin_; }
-
- // This function is called when we are about to share the object owned by the
- // plugin with the browser. Since reference counting on the browser side is
- // handled via pp::Var's, we create the var() here if not created already.
- ScriptablePlugin* AddRef();
- // Remove a browser reference to this object.
- // Delete the object when the ref count becomes 0.
- // If var() is set, we delete it. Otherwise, we delete the object itself.
- // Therefore, this cannot be called more than once.
- void Unref();
-
- // ------ Methods inherited from pp::deprecated::ScriptableObject:
-
- // Returns true for preloaded NaCl Plugin properties.
- // Does not set |exception|.
- virtual bool HasProperty(const pp::Var& name, pp::Var* exception);
- // Returns true for preloaded NaCl Plugin methods and SRPC methods exported
- // from a NaCl module. Does not set |exception|.
- virtual bool HasMethod(const pp::Var& name, pp::Var* exception);
-
- // Gets the value of a preloaded NaCl Plugin property.
- // Sets |exception| on failure.
- virtual pp::Var GetProperty(const pp::Var& name, pp::Var* exception);
- // Sets the value of a preloaded NaCl Plugin property.
- // Does not add new properties. Sets |exception| of failure.
- virtual void SetProperty(const pp::Var& name, const pp::Var& value,
- pp::Var* exception);
- // Set |exception| to indicate that property removal is not supported.
- virtual void RemoveProperty(const pp::Var& name, pp::Var* exception);
- // Returns a list of all preloaded NaCl Plugin |properties|.
- // Does not set |exception|.
- virtual void GetAllPropertyNames(std::vector<pp::Var>* properties,
- pp::Var* exception);
-
- // Calls preloaded NaCl Plugin methods or SRPC methods exported from
- // a NaCl module. Sets |exception| on failure.
- virtual pp::Var Call(const pp::Var& name, const std::vector<pp::Var>& args,
- pp::Var* exception);
-
- // Sets |exception| to indicate that constructor is not supported.
- virtual pp::Var Construct(const std::vector<pp::Var>& args,
- pp::Var* exception);
-
- private:
- NACL_DISALLOW_COPY_AND_ASSIGN(ScriptablePlugin);
- // Prevent construction from outside the class: must use factory New()
- // method instead.
- explicit ScriptablePlugin(Plugin* plugin);
- // This will be called when both the plugin and the browser clear all
- // references to this object.
- virtual ~ScriptablePlugin();
-
- // When we pass the object owned by the plugin to the browser, we need to wrap
- // it in a pp::VarPrivate, which also registers the object with the browser
- // for refcounting. It must be registered only once with all other var
- // references being copies of the original one. Thus, we record the
- // pp::VarPrivate here and reuse it when satisfiying additional browser
- // requests. This way we also ensure that when the browser clears its
- // references, this object does not get deallocated while we still hold ours.
- // This is never set for objects that are not shared with the browser nor for
- // objects created during SRPC calls as they are taken over by the browser on
- // return.
- pp::VarPrivate* var_;
-
- // We should have no more than one internal plugin owner for this object,
- // and only that owner should call Unref(). To CHECK for that keep a counter.
- int num_unref_calls_;
-
- // The contained plugin object.
- Plugin* plugin_;
-};
-
-} // namespace plugin
-
-#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_SCRIPTABLE_PLUGIN_H_
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc b/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc
index 486696bce53..46d636729db 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.cc
@@ -3,12 +3,10 @@
// found in the LICENSE file.
#include "native_client/src/include/nacl_macros.h"
-#include "ppapi/native_client/src/trusted/plugin/nacl_entry_points.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/cpp/module.h"
#include "ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h"
-
-#include "ppapi/cpp/var.h"
-
-LaunchNaClProcessFunc launch_nacl_process = NULL;
+#include "ppapi/native_client/src/trusted/plugin/utility.h"
namespace plugin {
@@ -17,37 +15,39 @@ bool SelLdrLauncherChrome::Start(const char* url) {
return false;
}
-bool SelLdrLauncherChrome::Start(PP_Instance instance,
- const char* url,
- bool uses_irt,
- bool uses_ppapi,
- bool enable_ppapi_dev,
- bool enable_dyncode_syscalls,
- bool enable_exception_handling,
- bool enable_crash_throttling,
- nacl::string* error_message) {
- *error_message = "";
- if (!launch_nacl_process)
- return false;
- PP_Var var_error_message;
- // send a synchronous message to the browser process
- if (launch_nacl_process(instance,
- url,
- PP_FromBool(uses_irt),
- PP_FromBool(uses_ppapi),
- PP_FromBool(enable_ppapi_dev),
- PP_FromBool(enable_dyncode_syscalls),
- PP_FromBool(enable_exception_handling),
- PP_FromBool(enable_crash_throttling),
- &channel_,
- &var_error_message) != PP_EXTERNAL_PLUGIN_OK) {
- pp::Var var_error_message_cpp(pp::PASS_REF, var_error_message);
- if (var_error_message_cpp.is_string()) {
- *error_message = var_error_message_cpp.AsString();
- }
- return false;
+void SelLdrLauncherChrome::Start(
+ PP_Instance instance,
+ bool main_service_runtime,
+ const char* url,
+ bool uses_irt,
+ bool uses_ppapi,
+ bool uses_nonsfi_mode,
+ bool enable_ppapi_dev,
+ bool enable_dyncode_syscalls,
+ bool enable_exception_handling,
+ bool enable_crash_throttling,
+ const PPP_ManifestService* manifest_service_interface,
+ void* manifest_service_user_data,
+ pp::CompletionCallback callback) {
+ if (!GetNaClInterface()) {
+ pp::Module::Get()->core()->CallOnMainThread(0, callback, PP_ERROR_FAILED);
+ return;
}
- return true;
+ GetNaClInterface()->LaunchSelLdr(
+ instance,
+ PP_FromBool(main_service_runtime),
+ url,
+ PP_FromBool(uses_irt),
+ PP_FromBool(uses_ppapi),
+ PP_FromBool(uses_nonsfi_mode),
+ PP_FromBool(enable_ppapi_dev),
+ PP_FromBool(enable_dyncode_syscalls),
+ PP_FromBool(enable_exception_handling),
+ PP_FromBool(enable_crash_throttling),
+ manifest_service_interface,
+ manifest_service_user_data,
+ &channel_,
+ callback.pp_completion_callback());
}
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h b/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h
index 69c171601c0..72b3eeed67e 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h
@@ -7,21 +7,27 @@
#include "native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h"
#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/private/ppb_nacl_private.h"
+#include "ppapi/cpp/completion_callback.h"
namespace plugin {
class SelLdrLauncherChrome : public nacl::SelLdrLauncherBase {
public:
virtual bool Start(const char* url);
- virtual bool Start(PP_Instance instance,
+ virtual void Start(PP_Instance instance,
+ bool main_service_runtime,
const char* url,
bool uses_irt,
bool uses_ppapi,
+ bool uses_nonsfi_mode,
bool enable_ppapi_dev,
bool enable_dyncode_syscalls,
bool enable_exception_handling,
bool enable_crash_throttling,
- nacl::string* error_message);
+ const PPP_ManifestService* manifest_service_interface,
+ void* manifest_service_user_data,
+ pp::CompletionCallback callback);
};
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.cc b/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.cc
index 8a5a11aac7d..ea4736d31c4 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.cc
@@ -4,7 +4,7 @@
* found in the LICENSE file.
*/
-#define NACL_LOG_MODULE_NAME "Plugin::ServiceRuntime"
+#define NACL_LOG_MODULE_NAME "Plugin_ServiceRuntime"
#include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
@@ -33,51 +33,164 @@
#include "native_client/src/trusted/desc/nrd_xfer.h"
#include "native_client/src/trusted/nonnacl_util/sel_ldr_launcher.h"
-// This is here due to a Windows API collision; plugin.h through
-// file_downloader.h transitively includes Instance.h which defines a
-// PostMessage method, so this undef must appear before any of those.
-#ifdef PostMessage
-#undef PostMessage
-#endif
#include "native_client/src/public/imc_types.h"
+#include "native_client/src/public/nacl_file_info.h"
#include "native_client/src/trusted/service_runtime/nacl_error_code.h"
-#include "native_client/src/trusted/validator/nacl_file_info.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/cpp/core.h"
#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/native_client/src/trusted/plugin/manifest.h"
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
-#include "ppapi/native_client/src/trusted/plugin/pnacl_options.h"
#include "ppapi/native_client/src/trusted/plugin/pnacl_resources.h"
#include "ppapi/native_client/src/trusted/plugin/sel_ldr_launcher_chrome.h"
#include "ppapi/native_client/src/trusted/plugin/srpc_client.h"
+#include "ppapi/native_client/src/trusted/plugin/utility.h"
#include "ppapi/native_client/src/trusted/weak_ref/call_on_main_thread.h"
+namespace plugin {
+
+class OpenManifestEntryAsyncCallback {
+ public:
+ OpenManifestEntryAsyncCallback(PP_OpenResourceCompletionCallback callback,
+ void* callback_user_data)
+ : callback_(callback), callback_user_data_(callback_user_data) {
+ }
+
+ ~OpenManifestEntryAsyncCallback() {
+ if (callback_)
+ callback_(callback_user_data_, PP_kInvalidFileHandle);
+ }
+
+ void Run(int32_t pp_error) {
+#if defined(OS_WIN)
+ // Currently, this is used only for non-SFI mode, and now the mode is not
+ // supported on windows.
+ // TODO(hidehiko): Support it on Windows when we switch to use
+ // ManifestService also in SFI-mode.
+ NACL_NOTREACHED();
+#elif defined(OS_POSIX)
+ // On posix, PlatformFile is the file descriptor.
+ callback_(callback_user_data_, (pp_error == PP_OK) ? info_.desc : -1);
+ callback_ = NULL;
+#endif
+ }
+
+ NaClFileInfo* mutable_info() { return &info_; }
+
+ private:
+ NaClFileInfo info_;
+ PP_OpenResourceCompletionCallback callback_;
+ void* callback_user_data_;
+ DISALLOW_COPY_AND_ASSIGN(OpenManifestEntryAsyncCallback);
+};
+
namespace {
-// For doing crude quota enforcement on writes to temp files.
-// We do not allow a temp file bigger than 128 MB for now.
-// There is currently a limit of 32M for nexe text size, so 128M
-// should be plenty for static data
-const int64_t kMaxTempQuota = 0x8000000;
+class ManifestService {
+ public:
+ ManifestService(nacl::WeakRefAnchor* anchor,
+ PluginReverseInterface* plugin_reverse)
+ : anchor_(anchor),
+ plugin_reverse_(plugin_reverse) {
+ }
+
+ ~ManifestService() {
+ anchor_->Unref();
+ }
+
+ bool Quit() {
+ delete this;
+ return false;
+ }
+
+ bool StartupInitializationComplete() {
+ // Release this instance if the ServiceRuntime is already destructed.
+ if (anchor_->is_abandoned()) {
+ delete this;
+ return false;
+ }
+
+ plugin_reverse_->StartupInitializationComplete();
+ return true;
+ }
+
+ bool OpenResource(const char* entry_key,
+ PP_OpenResourceCompletionCallback callback,
+ void* callback_user_data) {
+ // Release this instance if the ServiceRuntime is already destructed.
+ if (anchor_->is_abandoned()) {
+ callback(callback_user_data, PP_kInvalidFileHandle);
+ delete this;
+ return false;
+ }
+
+ OpenManifestEntryAsyncCallback* open_manifest_callback =
+ new OpenManifestEntryAsyncCallback(callback, callback_user_data);
+ plugin_reverse_->OpenManifestEntryAsync(
+ entry_key,
+ open_manifest_callback->mutable_info(),
+ open_manifest_callback);
+ return true;
+ }
+
+ static PP_Bool QuitTrampoline(void* user_data) {
+ return PP_FromBool(static_cast<ManifestService*>(user_data)->Quit());
+ }
+
+ static PP_Bool StartupInitializationCompleteTrampoline(void* user_data) {
+ return PP_FromBool(static_cast<ManifestService*>(user_data)->
+ StartupInitializationComplete());
+ }
+
+ static PP_Bool OpenResourceTrampoline(
+ void* user_data,
+ const char* entry_key,
+ PP_OpenResourceCompletionCallback callback,
+ void* callback_user_data) {
+ return PP_FromBool(static_cast<ManifestService*>(user_data)->OpenResource(
+ entry_key, callback, callback_user_data));
+ }
+
+ private:
+ // Weak reference to check if plugin_reverse is legally accessible or not.
+ nacl::WeakRefAnchor* anchor_;
+ PluginReverseInterface* plugin_reverse_;
+
+ DISALLOW_COPY_AND_ASSIGN(ManifestService);
+};
+
+// Vtable to pass functions to LaunchSelLdr.
+const PPP_ManifestService kManifestServiceVTable = {
+ &ManifestService::QuitTrampoline,
+ &ManifestService::StartupInitializationCompleteTrampoline,
+ &ManifestService::OpenResourceTrampoline,
+};
} // namespace
-namespace plugin {
+OpenManifestEntryResource::~OpenManifestEntryResource() {
+ MaybeRunCallback(PP_ERROR_ABORTED);
+}
+
+void OpenManifestEntryResource::MaybeRunCallback(int32_t pp_error) {
+ if (!callback)
+ return;
+
+ callback->Run(pp_error);
+ delete callback;
+ callback = NULL;
+}
PluginReverseInterface::PluginReverseInterface(
nacl::WeakRefAnchor* anchor,
Plugin* plugin,
- const Manifest* manifest,
ServiceRuntime* service_runtime,
pp::CompletionCallback init_done_cb,
pp::CompletionCallback crash_cb)
: anchor_(anchor),
plugin_(plugin),
- manifest_(manifest),
service_runtime_(service_runtime),
shutting_down_(false),
init_done_cb_(init_done_cb),
@@ -99,29 +212,10 @@ void PluginReverseInterface::ShutDown() {
NaClLog(4, "PluginReverseInterface::Shutdown: broadcasted, exiting\n");
}
-void PluginReverseInterface::Log(nacl::string message) {
- LogToJavaScriptConsoleResource* continuation =
- new LogToJavaScriptConsoleResource(message);
- CHECK(continuation != NULL);
- NaClLog(4, "PluginReverseInterface::Log(%s)\n", message.c_str());
- plugin::WeakRefCallOnMainThread(
- anchor_,
- 0, /* delay in ms */
- this,
- &plugin::PluginReverseInterface::Log_MainThreadContinuation,
- continuation);
-}
-
void PluginReverseInterface::DoPostMessage(nacl::string message) {
- PostMessageResource* continuation = new PostMessageResource(message);
- CHECK(continuation != NULL);
- NaClLog(4, "PluginReverseInterface::DoPostMessage(%s)\n", message.c_str());
- plugin::WeakRefCallOnMainThread(
- anchor_,
- 0, /* delay in ms */
- this,
- &plugin::PluginReverseInterface::PostMessage_MainThreadContinuation,
- continuation);
+ std::string full_message = std::string("DEBUG_POSTMESSAGE:") + message;
+ GetNaClInterface()->PostMessageToJavaScript(plugin_->pp_instance(),
+ full_message.c_str());
}
void PluginReverseInterface::StartupInitializationComplete() {
@@ -138,50 +232,18 @@ void PluginReverseInterface::StartupInitializationComplete() {
}
}
-void PluginReverseInterface::Log_MainThreadContinuation(
- LogToJavaScriptConsoleResource* p,
- int32_t err) {
- UNREFERENCED_PARAMETER(err);
- NaClLog(4,
- "PluginReverseInterface::Log_MainThreadContinuation(%s)\n",
- p->message.c_str());
- plugin_->AddToConsole(p->message);
-}
-void PluginReverseInterface::PostMessage_MainThreadContinuation(
- PostMessageResource* p,
- int32_t err) {
- UNREFERENCED_PARAMETER(err);
- NaClLog(4,
- "PluginReverseInterface::PostMessage_MainThreadContinuation(%s)\n",
- p->message.c_str());
- plugin_->PostMessage(std::string("DEBUG_POSTMESSAGE:") + p->message);
-}
-
-bool PluginReverseInterface::EnumerateManifestKeys(
- std::set<nacl::string>* out_keys) {
- Manifest const* mp = manifest_;
-
- if (!mp->GetFileKeys(out_keys)) {
- return false;
- }
-
- return true;
-}
-
// TODO(bsy): OpenManifestEntry should use the manifest to ResolveKey
// and invoke StreamAsFile with a completion callback that invokes
// GetPOSIXFileDesc.
bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key,
struct NaClFileInfo* info) {
- ErrorInfo error_info;
bool op_complete = false; // NB: mu_ and cv_ also controls access to this!
// The to_open object is owned by the weak ref callback. Because this function
// waits for the callback to finish, the to_open object will be deallocated on
// the main thread before this function can return. The pointers it contains
// to stack variables will not leak.
OpenManifestEntryResource* to_open =
- new OpenManifestEntryResource(url_key, info,
- &error_info, &op_complete);
+ new OpenManifestEntryResource(url_key, info, &op_complete, NULL);
CHECK(to_open != NULL);
NaClLog(4, "PluginReverseInterface::OpenManifestEntry: %s\n",
url_key.c_str());
@@ -195,34 +257,23 @@ bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key,
NaClLog(4,
"PluginReverseInterface::OpenManifestEntry:"
" waiting on main thread\n");
- bool shutting_down;
- do {
+
+ {
nacl::MutexLocker take(&mu_);
- for (;;) {
+ while (!shutting_down_ && !op_complete)
+ NaClXCondVarWait(&cv_, &mu_);
+ NaClLog(4, "PluginReverseInterface::OpenManifestEntry: done!\n");
+ if (shutting_down_) {
NaClLog(4,
"PluginReverseInterface::OpenManifestEntry:"
- " got lock, checking shutdown and completion: (%s, %s)\n",
- shutting_down_ ? "yes" : "no",
- op_complete ? "yes" : "no");
- shutting_down = shutting_down_;
- if (op_complete || shutting_down) {
- NaClLog(4,
- "PluginReverseInterface::OpenManifestEntry:"
- " done!\n");
- break;
- }
- NaClXCondVarWait(&cv_, &mu_);
+ " plugin is shutting down\n");
+ return false;
}
- } while (0);
- if (shutting_down) {
- NaClLog(4,
- "PluginReverseInterface::OpenManifestEntry:"
- " plugin is shutting down\n");
- return false;
}
- // out_desc has the returned descriptor if successful, else -1.
- // The caller is responsible for not closing *out_desc. If it is
+ // info->desc has the returned descriptor if successful, else -1.
+
+ // The caller is responsible for not closing info->desc. If it is
// closed prematurely, then another open could re-use the OS
// descriptor, confusing the opened_ map. If the caller is going to
// want to make a NaClDesc object and transfer it etc., then the
@@ -230,23 +281,28 @@ bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key,
// value) for use by the NaClDesc object, which closes when the
// object is destroyed.
NaClLog(4,
- "PluginReverseInterface::OpenManifestEntry:"
- " *out_desc = %d\n",
+ "PluginReverseInterface::OpenManifestEntry: info->desc = %d\n",
info->desc);
if (info->desc == -1) {
// TODO(bsy,ncbray): what else should we do with the error? This
// is a runtime error that may simply be a programming error in
// the untrusted code, or it may be something else wrong w/ the
// manifest.
- NaClLog(4,
- "OpenManifestEntry: failed for key %s, code %d (%s)\n",
- url_key.c_str(),
- error_info.error_code(),
- error_info.message().c_str());
+ NaClLog(4, "OpenManifestEntry: failed for key %s", url_key.c_str());
}
return true;
}
+void PluginReverseInterface::OpenManifestEntryAsync(
+ const nacl::string& entry_key,
+ struct NaClFileInfo* info,
+ OpenManifestEntryAsyncCallback* callback) {
+ bool op_complete = false;
+ OpenManifestEntryResource to_open(
+ entry_key, info, &op_complete, callback);
+ OpenManifestEntry_MainThreadContinuation(&to_open, PP_OK);
+}
+
// Transfer point from OpenManifestEntry() which runs on the main thread
// (Some PPAPI actions -- like StreamAsFile -- can only run on the main thread).
// OpenManifestEntry() is waiting on a condvar for this continuation to
@@ -256,169 +312,104 @@ bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key,
void PluginReverseInterface::OpenManifestEntry_MainThreadContinuation(
OpenManifestEntryResource* p,
int32_t err) {
- OpenManifestEntryResource *open_cont;
UNREFERENCED_PARAMETER(err);
// CallOnMainThread continuations always called with err == PP_OK.
NaClLog(4, "Entered OpenManifestEntry_MainThreadContinuation\n");
- std::string mapped_url;
- PnaclOptions pnacl_options;
- if (!manifest_->ResolveKey(p->url, &mapped_url,
- &pnacl_options, p->error_info)) {
+ PP_Var pp_mapped_url;
+ PP_PNaClOptions pnacl_options = {PP_FALSE, PP_FALSE, 2};
+ if (!GetNaClInterface()->ManifestResolveKey(
+ plugin_->pp_instance(),
+ PP_FromBool(!service_runtime_->main_service_runtime()),
+ p->url.c_str(),
+ &pp_mapped_url,
+ &pnacl_options)) {
NaClLog(4, "OpenManifestEntry_MainThreadContinuation: ResolveKey failed\n");
// Failed, and error_info has the details on what happened. Wake
// up requesting thread -- we are done.
- nacl::MutexLocker take(&mu_);
- *p->op_complete_ptr = true; // done...
- p->file_info->desc = -1; // but failed.
- NaClXCondVarBroadcast(&cv_);
+ {
+ nacl::MutexLocker take(&mu_);
+ *p->op_complete_ptr = true; // done...
+ p->file_info->desc = -1; // but failed.
+ NaClXCondVarBroadcast(&cv_);
+ }
+ p->MaybeRunCallback(PP_OK);
return;
}
+ nacl::string mapped_url = pp::Var(pp_mapped_url).AsString();
NaClLog(4,
"OpenManifestEntry_MainThreadContinuation: "
"ResolveKey: %s -> %s (pnacl_translate(%d))\n",
- p->url.c_str(), mapped_url.c_str(), pnacl_options.translate());
+ p->url.c_str(), mapped_url.c_str(), pnacl_options.translate);
- open_cont = new OpenManifestEntryResource(*p); // copy ctor!
- CHECK(open_cont != NULL);
- open_cont->url = mapped_url;
- if (!pnacl_options.translate()) {
- pp::CompletionCallback stream_cc = WeakRefNewCallback(
- anchor_,
- this,
- &PluginReverseInterface::StreamAsFile_MainThreadContinuation,
- open_cont);
- // Normal files.
- if (!PnaclUrls::IsPnaclComponent(mapped_url)) {
- if (!plugin_->StreamAsFile(mapped_url,
- stream_cc.pp_completion_callback())) {
- NaClLog(4,
- "OpenManifestEntry_MainThreadContinuation: "
- "StreamAsFile failed\n");
- nacl::MutexLocker take(&mu_);
- *p->op_complete_ptr = true; // done...
- p->file_info->desc = -1; // but failed.
- p->error_info->SetReport(ERROR_MANIFEST_OPEN,
- "ServiceRuntime: StreamAsFile failed");
- NaClXCondVarBroadcast(&cv_);
- return;
- }
- NaClLog(4,
- "OpenManifestEntry_MainThreadContinuation: StreamAsFile okay\n");
- } else {
- // Special PNaCl support files, that are installed on the
- // user machine.
- int32_t fd = PnaclResources::GetPnaclFD(
- plugin_,
- PnaclUrls::PnaclComponentURLToFilename(mapped_url).c_str());
- if (fd < 0) {
- // We checked earlier if the pnacl component wasn't installed
- // yet, so this shouldn't happen. At this point, we can't do much
- // anymore, so just continue with an invalid fd.
- NaClLog(4,
- "OpenManifestEntry_MainThreadContinuation: "
- "GetReadonlyPnaclFd failed\n");
- // TODO(jvoung): Separate the error codes?
- p->error_info->SetReport(ERROR_MANIFEST_OPEN,
- "ServiceRuntime: GetPnaclFd failed");
- }
- nacl::MutexLocker take(&mu_);
- *p->op_complete_ptr = true; // done!
- // TODO(ncbray): enable the fast loading and validation paths for this
- // type of file.
- p->file_info->desc = fd;
- NaClXCondVarBroadcast(&cv_);
- NaClLog(4,
- "OpenManifestEntry_MainThreadContinuation: GetPnaclFd okay\n");
- }
- } else {
+ if (pnacl_options.translate) {
// Requires PNaCl translation, but that's not supported.
NaClLog(4,
"OpenManifestEntry_MainThreadContinuation: "
"Requires PNaCl translation -- not supported\n");
- nacl::MutexLocker take(&mu_);
- *p->op_complete_ptr = true; // done...
- p->file_info->desc = -1; // but failed.
- p->error_info->SetReport(
- ERROR_MANIFEST_OPEN,
- "ServiceRuntime: Translating OpenManifestEntry files not supported");
- NaClXCondVarBroadcast(&cv_);
+ {
+ nacl::MutexLocker take(&mu_);
+ *p->op_complete_ptr = true; // done...
+ p->file_info->desc = -1; // but failed.
+ NaClXCondVarBroadcast(&cv_);
+ }
+ p->MaybeRunCallback(PP_OK);
return;
}
- // p is deleted automatically
+
+ // Because p is owned by the callback of this invocation, so it is necessary
+ // to create another instance.
+ OpenManifestEntryResource* open_cont = new OpenManifestEntryResource(*p);
+ open_cont->url = mapped_url;
+ // Callback is now delegated from p to open_cont. So, here we manually clear
+ // complete callback.
+ p->callback = NULL;
+
+ pp::CompletionCallback stream_cc = WeakRefNewCallback(
+ anchor_,
+ this,
+ &PluginReverseInterface::StreamAsFile_MainThreadContinuation,
+ open_cont);
+
+ GetNaClInterface()->DownloadFile(plugin_->pp_instance(),
+ mapped_url.c_str(),
+ &open_cont->pp_file_info,
+ stream_cc.pp_completion_callback());
+ // p is deleted automatically.
}
void PluginReverseInterface::StreamAsFile_MainThreadContinuation(
OpenManifestEntryResource* p,
int32_t result) {
- NaClLog(4,
- "Entered StreamAsFile_MainThreadContinuation\n");
-
- nacl::MutexLocker take(&mu_);
- if (result == PP_OK) {
- NaClLog(4, "StreamAsFile_MainThreadContinuation: GetFileInfo(%s)\n",
- p->url.c_str());
- *p->file_info = plugin_->GetFileInfo(p->url);
-
- NaClLog(4,
- "StreamAsFile_MainThreadContinuation: PP_OK, desc %d\n",
- p->file_info->desc);
- } else {
- NaClLog(4,
- "StreamAsFile_MainThreadContinuation: !PP_OK, setting desc -1\n");
- p->file_info->desc = -1;
- p->error_info->SetReport(ERROR_MANIFEST_OPEN,
- "Plugin StreamAsFile failed at callback");
- }
- *p->op_complete_ptr = true;
- NaClXCondVarBroadcast(&cv_);
-}
-
-bool PluginReverseInterface::CloseManifestEntry(int32_t desc) {
- bool op_complete = false;
- bool op_result;
- CloseManifestEntryResource* to_close =
- new CloseManifestEntryResource(desc, &op_complete, &op_result);
-
- bool shutting_down;
- plugin::WeakRefCallOnMainThread(
- anchor_,
- 0,
- this,
- &plugin::PluginReverseInterface::
- CloseManifestEntry_MainThreadContinuation,
- to_close);
- // wait for completion or surf-away.
- do {
+ NaClLog(4, "Entered StreamAsFile_MainThreadContinuation\n");
+ {
nacl::MutexLocker take(&mu_);
- for (;;) {
- shutting_down = shutting_down_;
- if (op_complete || shutting_down) {
- break;
- }
- NaClXCondVarWait(&cv_, &mu_);
+ if (result == PP_OK) {
+ // We downloaded this file to temporary storage for this plugin; it's
+ // reasonable to provide a file descriptor with write access.
+ p->file_info->desc = ConvertFileDescriptor(p->pp_file_info.handle, false);
+ p->file_info->file_token.lo = p->pp_file_info.token_lo;
+ p->file_info->file_token.hi = p->pp_file_info.token_hi;
+ NaClLog(4,
+ "StreamAsFile_MainThreadContinuation: PP_OK, desc %d\n",
+ p->file_info->desc);
+ } else {
+ NaClLog(
+ 4,
+ "StreamAsFile_MainThreadContinuation: !PP_OK, setting desc -1\n");
+ p->file_info->desc = -1;
}
- } while (0);
-
- if (shutting_down) return false;
- // op_result true if close was successful; false otherwise (e.g., bad desc).
- return op_result;
+ *p->op_complete_ptr = true;
+ NaClXCondVarBroadcast(&cv_);
+ }
+ p->MaybeRunCallback(PP_OK);
}
-void PluginReverseInterface::CloseManifestEntry_MainThreadContinuation(
- CloseManifestEntryResource* cls,
- int32_t err) {
- UNREFERENCED_PARAMETER(err);
-
- nacl::MutexLocker take(&mu_);
- // TODO(bsy): once the plugin has a reliable way to report that the
- // file usage is done -- and sel_ldr uses this RPC call -- we should
- // tell the plugin that the associated resources can be freed.
- *cls->op_result_ptr = true;
- *cls->op_complete_ptr = true;
- NaClXCondVarBroadcast(&cv_);
- // cls automatically deleted
+bool PluginReverseInterface::CloseManifestEntry(int32_t desc) {
+ // We don't take any action on a call to CloseManifestEntry today, so always
+ // return success.
+ return true;
}
void PluginReverseInterface::ReportCrash() {
@@ -427,6 +418,8 @@ void PluginReverseInterface::ReportCrash() {
if (crash_cb_.pp_completion_callback().func != NULL) {
NaClLog(4, "PluginReverseInterface::ReportCrash: invoking CB\n");
pp::Module::Get()->core()->CallOnMainThread(0, crash_cb_, PP_OK);
+ // Clear the callback to avoid it gets invoked twice.
+ crash_cb_ = pp::CompletionCallback();
} else {
NaClLog(1,
"PluginReverseInterface::ReportCrash:"
@@ -440,68 +433,151 @@ void PluginReverseInterface::ReportExitStatus(int exit_status) {
int64_t PluginReverseInterface::RequestQuotaForWrite(
nacl::string file_id, int64_t offset, int64_t bytes_to_write) {
- NaClLog(4,
- "PluginReverseInterface::RequestQuotaForWrite:"
- " (file_id='%s', offset=%" NACL_PRId64 ", bytes_to_write=%"
- NACL_PRId64 ")\n", file_id.c_str(), offset, bytes_to_write);
- uint64_t file_key = STRTOULL(file_id.c_str(), NULL, 10);
- nacl::MutexLocker take(&mu_);
- if (quota_files_.count(file_key) == 0) {
- // Look up failed to find the requested quota managed resource.
- NaClLog(4, "PluginReverseInterface::RequestQuotaForWrite: failed...\n");
- return 0;
+ return bytes_to_write;
+}
+
+// Thin wrapper for the arguments of LoadNexeAndStart(), as WeakRefNewCallback
+// can take only one argument. Also, this dtor has the responsibility to invoke
+// callbacks on destruction.
+struct ServiceRuntime::LoadNexeAndStartData {
+ explicit LoadNexeAndStartData(const pp::CompletionCallback& callback)
+ : callback(callback) {
}
- // Because we now only support this interface for tempfiles which are not
- // pepper objects, we can just do some crude quota enforcement here rather
- // than calling out to pepper from the main thread.
- if (offset + bytes_to_write >= kMaxTempQuota)
- return 0;
+ ~LoadNexeAndStartData() {
+ // We must call the callbacks here if they are not yet called, otherwise
+ // the resource would be leaked.
+ if (callback.pp_completion_callback().func)
+ callback.RunAndClear(PP_ERROR_ABORTED);
+ }
- return bytes_to_write;
-}
+ // On success path, this must be invoked manually. Otherwise the dtor would
+ // invoke callbacks with error code unexpectedly.
+ void Clear() {
+ callback = pp::CompletionCallback();
+ }
-void PluginReverseInterface::AddTempQuotaManagedFile(
- const nacl::string& file_id) {
- NaClLog(4, "PluginReverseInterface::AddTempQuotaManagedFile: "
- "(file_id='%s')\n", file_id.c_str());
- uint64_t file_key = STRTOULL(file_id.c_str(), NULL, 10);
- nacl::MutexLocker take(&mu_);
- quota_files_.insert(file_key);
-}
+ pp::CompletionCallback callback;
+};
ServiceRuntime::ServiceRuntime(Plugin* plugin,
- const Manifest* manifest,
bool main_service_runtime,
+ bool uses_nonsfi_mode,
pp::CompletionCallback init_done_cb,
pp::CompletionCallback crash_cb)
: plugin_(plugin),
main_service_runtime_(main_service_runtime),
+ uses_nonsfi_mode_(uses_nonsfi_mode),
reverse_service_(NULL),
anchor_(new nacl::WeakRefAnchor()),
- rev_interface_(new PluginReverseInterface(anchor_, plugin,
- manifest,
- this,
+ rev_interface_(new PluginReverseInterface(anchor_, plugin, this,
init_done_cb, crash_cb)),
- exit_status_(-1),
- start_sel_ldr_done_(false) {
+ start_sel_ldr_done_(false),
+ nexe_started_(false) {
NaClSrpcChannelInitialize(&command_channel_);
NaClXMutexCtor(&mu_);
NaClXCondVarCtor(&cond_);
}
-bool ServiceRuntime::InitCommunication(nacl::DescWrapper* nacl_desc,
- ErrorInfo* error_info) {
- NaClLog(4, "ServiceRuntime::InitCommunication"
- " (this=%p, subprocess=%p)\n",
+void ServiceRuntime::LoadNexeAndStartAfterLoadModule(
+ LoadNexeAndStartData* data, int32_t pp_error) {
+ if (pp_error != PP_OK) {
+ DidLoadNexeAndStart(data, pp_error);
+ return;
+ }
+
+ // Here, LoadModule is successfully done. So the remaining task is just
+ // calling StartModule(), here.
+ DidLoadNexeAndStart(data, StartModule() ? PP_OK : PP_ERROR_FAILED);
+}
+
+void ServiceRuntime::DidLoadNexeAndStart(
+ LoadNexeAndStartData* data, int32_t pp_error) {
+ if (pp_error == PP_OK) {
+ NaClLog(4, "ServiceRuntime::LoadNexeAndStart (success)\n");
+ } else {
+ // On a load failure the service runtime does not crash itself to
+ // avoid a race where the no-more-senders error on the reverse
+ // channel esrvice thread might cause the crash-detection logic to
+ // kick in before the start_module RPC reply has been received. So
+ // we induce a service runtime crash here. We do not release
+ // subprocess_ since it's needed to collect crash log output after
+ // the error is reported.
+ Log(LOG_FATAL, "reap logs");
+ if (NULL == reverse_service_) {
+ // No crash detector thread.
+ NaClLog(LOG_ERROR, "scheduling to get crash log\n");
+ // Invoking rev_interface's method is workaround to avoid crash_cb
+ // gets called twice or more. We should clean this up later.
+ rev_interface_->ReportCrash();
+ NaClLog(LOG_ERROR, "should fire soon\n");
+ } else {
+ NaClLog(LOG_ERROR, "Reverse service thread will pick up crash log\n");
+ }
+ }
+
+ pp::Module::Get()->core()->CallOnMainThread(0, data->callback, pp_error);
+
+ // Because the ownership of data is taken by caller, we must clear it
+ // manually here. Otherwise, its dtor invokes callbacks again.
+ data->Clear();
+}
+
+bool ServiceRuntime::SetupCommandChannel() {
+ NaClLog(4, "ServiceRuntime::SetupCommand (this=%p, subprocess=%p)\n",
static_cast<void*>(this),
static_cast<void*>(subprocess_.get()));
- // Create the command channel to the sel_ldr and load the nexe from nacl_desc.
- if (!subprocess_->SetupCommandAndLoad(&command_channel_, nacl_desc)) {
- error_info->SetReport(ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL,
- "ServiceRuntime: command channel creation failed");
+ if (!subprocess_->SetupCommand(&command_channel_)) {
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL,
+ "ServiceRuntime: command channel creation failed");
+ plugin_->ReportLoadError(error_info);
+ }
return false;
}
+ return true;
+}
+
+void ServiceRuntime::LoadModule(PP_NaClFileInfo file_info,
+ pp::CompletionCallback callback) {
+ NaClFileInfo nacl_file_info;
+ nacl_file_info.desc = ConvertFileDescriptor(file_info.handle, true);
+ nacl_file_info.file_token.lo = file_info.token_lo;
+ nacl_file_info.file_token.hi = file_info.token_hi;
+ NaClDesc* desc = NaClDescIoFromFileInfo(nacl_file_info, O_RDONLY);
+ if (desc == NULL) {
+ DidLoadModule(callback, PP_ERROR_FAILED);
+ return;
+ }
+
+ // We don't use a scoped_ptr here since we would immediately release the
+ // DescWrapper to LoadModule().
+ nacl::DescWrapper* wrapper =
+ plugin_->wrapper_factory()->MakeGenericCleanup(desc);
+
+ // TODO(teravest, hidehiko): Replace this by Chrome IPC.
+ bool result = subprocess_->LoadModule(&command_channel_, wrapper);
+ DidLoadModule(callback, result ? PP_OK : PP_ERROR_FAILED);
+}
+
+void ServiceRuntime::DidLoadModule(pp::CompletionCallback callback,
+ int32_t pp_error) {
+ if (pp_error != PP_OK) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_CMD_CHANNEL,
+ "ServiceRuntime: load module failed");
+ plugin_->ReportLoadError(error_info);
+ }
+ callback.Run(pp_error);
+}
+
+bool ServiceRuntime::InitReverseService() {
+ if (uses_nonsfi_mode_) {
+ // In non-SFI mode, no reverse service is set up. Just returns success.
+ return true;
+ }
+
// Hook up the reverse service channel. We are the IMC client, but
// provide SRPC service.
NaClDesc* out_conn_cap;
@@ -511,8 +587,12 @@ bool ServiceRuntime::InitCommunication(nacl::DescWrapper* nacl_desc,
&out_conn_cap);
if (NACL_SRPC_RESULT_OK != rpc_result) {
- error_info->SetReport(ERROR_SEL_LDR_COMMUNICATION_REV_SETUP,
- "ServiceRuntime: reverse setup rpc failed");
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SETUP,
+ "ServiceRuntime: reverse setup rpc failed");
+ plugin_->ReportLoadError(error_info);
+ }
return false;
}
// Get connection capability to service runtime where the IMC
@@ -522,88 +602,141 @@ bool ServiceRuntime::InitCommunication(nacl::DescWrapper* nacl_desc,
nacl::DescWrapper* conn_cap = plugin_->wrapper_factory()->MakeGenericCleanup(
out_conn_cap);
if (conn_cap == NULL) {
- error_info->SetReport(ERROR_SEL_LDR_COMMUNICATION_WRAPPER,
- "ServiceRuntime: wrapper allocation failure");
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_WRAPPER,
+ "ServiceRuntime: wrapper allocation failure");
+ plugin_->ReportLoadError(error_info);
+ }
return false;
}
out_conn_cap = NULL; // ownership passed
- NaClLog(4, "ServiceRuntime::InitCommunication: starting reverse service\n");
+ NaClLog(4, "ServiceRuntime::InitReverseService: starting reverse service\n");
reverse_service_ = new nacl::ReverseService(conn_cap, rev_interface_->Ref());
if (!reverse_service_->Start()) {
- error_info->SetReport(ERROR_SEL_LDR_COMMUNICATION_REV_SERVICE,
- "ServiceRuntime: starting reverse services failed");
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_COMMUNICATION_REV_SERVICE,
+ "ServiceRuntime: starting reverse services failed");
+ plugin_->ReportLoadError(error_info);
+ }
return false;
}
+ return true;
+}
+bool ServiceRuntime::StartModule() {
// start the module. otherwise we cannot connect for multimedia
// subsystem since that is handled by user-level code (not secure!)
// in libsrpc.
int load_status = -1;
- rpc_result =
- NaClSrpcInvokeBySignature(&command_channel_,
- "start_module::i",
- &load_status);
-
- if (NACL_SRPC_RESULT_OK != rpc_result) {
- error_info->SetReport(ERROR_SEL_LDR_START_MODULE,
- "ServiceRuntime: could not start nacl module");
- return false;
+ if (uses_nonsfi_mode_) {
+ // In non-SFI mode, we don't need to call start_module SRPC to launch
+ // the plugin.
+ load_status = LOAD_OK;
+ } else {
+ NaClSrpcResultCodes rpc_result =
+ NaClSrpcInvokeBySignature(&command_channel_,
+ "start_module::i",
+ &load_status);
+
+ if (NACL_SRPC_RESULT_OK != rpc_result) {
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(PP_NACL_ERROR_SEL_LDR_START_MODULE,
+ "ServiceRuntime: could not start nacl module");
+ plugin_->ReportLoadError(error_info);
+ }
+ return false;
+ }
}
- NaClLog(4, "ServiceRuntime::InitCommunication (load_status=%d)\n",
- load_status);
+
+ NaClLog(4, "ServiceRuntime::StartModule (load_status=%d)\n", load_status);
if (main_service_runtime_) {
- plugin_->ReportSelLdrLoadStatus(load_status);
+ if (load_status < 0 || load_status > NACL_ERROR_CODE_MAX)
+ load_status = LOAD_STATUS_UNKNOWN;
+ GetNaClInterface()->ReportSelLdrStatus(plugin_->pp_instance(),
+ load_status,
+ NACL_ERROR_CODE_MAX);
}
+
if (LOAD_OK != load_status) {
- error_info->SetReport(
- ERROR_SEL_LDR_START_STATUS,
- NaClErrorString(static_cast<NaClErrorCode>(load_status)));
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(
+ PP_NACL_ERROR_SEL_LDR_START_STATUS,
+ NaClErrorString(static_cast<NaClErrorCode>(load_status)));
+ plugin_->ReportLoadError(error_info);
+ }
return false;
}
return true;
}
-bool ServiceRuntime::StartSelLdr(const SelLdrStartParams& params) {
+void ServiceRuntime::StartSelLdr(const SelLdrStartParams& params,
+ pp::CompletionCallback callback) {
NaClLog(4, "ServiceRuntime::Start\n");
nacl::scoped_ptr<SelLdrLauncherChrome>
tmp_subprocess(new SelLdrLauncherChrome());
if (NULL == tmp_subprocess.get()) {
NaClLog(LOG_ERROR, "ServiceRuntime::Start (subprocess create failed)\n");
- params.error_info->SetReport(
- ERROR_SEL_LDR_CREATE_LAUNCHER,
- "ServiceRuntime: failed to create sel_ldr launcher");
- return false;
- }
- nacl::string error_message;
- bool started = tmp_subprocess->Start(plugin_->pp_instance(),
- params.url.c_str(),
- params.uses_irt,
- params.uses_ppapi,
- params.enable_dev_interfaces,
- params.enable_dyncode_syscalls,
- params.enable_exception_handling,
- params.enable_crash_throttling,
- &error_message);
- if (!started) {
- NaClLog(LOG_ERROR, "ServiceRuntime::Start (start failed)\n");
- params.error_info->SetReportWithConsoleOnlyError(
- ERROR_SEL_LDR_LAUNCH,
- "ServiceRuntime: failed to start",
- error_message);
- return false;
+ if (main_service_runtime_) {
+ ErrorInfo error_info;
+ error_info.SetReport(
+ PP_NACL_ERROR_SEL_LDR_CREATE_LAUNCHER,
+ "ServiceRuntime: failed to create sel_ldr launcher");
+ plugin_->ReportLoadError(error_info);
+ }
+ pp::Module::Get()->core()->CallOnMainThread(0, callback, PP_ERROR_FAILED);
+ return;
}
+ ManifestService* manifest_service =
+ new ManifestService(anchor_->Ref(), rev_interface_);
+ bool enable_dev_interfaces =
+ GetNaClInterface()->DevInterfacesEnabled(plugin_->pp_instance());
+
+ tmp_subprocess->Start(plugin_->pp_instance(),
+ main_service_runtime_,
+ params.url.c_str(),
+ params.uses_irt,
+ params.uses_ppapi,
+ uses_nonsfi_mode_,
+ enable_dev_interfaces,
+ params.enable_dyncode_syscalls,
+ params.enable_exception_handling,
+ params.enable_crash_throttling,
+ &kManifestServiceVTable,
+ manifest_service,
+ callback);
subprocess_.reset(tmp_subprocess.release());
- NaClLog(4, "ServiceRuntime::StartSelLdr (return 1)\n");
- return true;
}
-void ServiceRuntime::WaitForSelLdrStart() {
+bool ServiceRuntime::WaitForSelLdrStart() {
+ // Time to wait on condvar (for browser to create a new sel_ldr process on
+ // our behalf). Use 6 seconds to be *fairly* conservative.
+ //
+ // On surfaway, the CallOnMainThread above may never get scheduled
+ // to unblock this condvar, or the IPC reply from the browser to renderer
+ // might get canceled/dropped. However, it is currently important to
+ // avoid waiting indefinitely because ~PnaclCoordinator will attempt to
+ // join() the PnaclTranslateThread, and the PnaclTranslateThread is waiting
+ // for the signal before exiting.
+ static int64_t const kWaitTimeMicrosecs = 6 * NACL_MICROS_PER_UNIT;
+ int64_t left_to_wait = kWaitTimeMicrosecs;
+ int64_t deadline = NaClGetTimeOfDayMicroseconds() + left_to_wait;
nacl::MutexLocker take(&mu_);
- while(!start_sel_ldr_done_) {
- NaClXCondVarWait(&cond_, &mu_);
+ while(!start_sel_ldr_done_ && left_to_wait > 0) {
+ struct nacl_abi_timespec left_timespec;
+ left_timespec.tv_sec = left_to_wait / NACL_MICROS_PER_UNIT;
+ left_timespec.tv_nsec =
+ (left_to_wait % NACL_MICROS_PER_UNIT) * NACL_NANOS_PER_MICRO;
+ NaClXCondVarTimedWaitRelative(&cond_, &mu_, &left_timespec);
+ int64_t now = NaClGetTimeOfDayMicroseconds();
+ left_to_wait = deadline - now;
}
+ return start_sel_ldr_done_;
}
void ServiceRuntime::SignalStartSelLdrDone() {
@@ -612,33 +745,41 @@ void ServiceRuntime::SignalStartSelLdrDone() {
NaClXCondVarSignal(&cond_);
}
-bool ServiceRuntime::LoadNexeAndStart(nacl::DescWrapper* nacl_desc,
- ErrorInfo* error_info,
- const pp::CompletionCallback& crash_cb) {
- NaClLog(4, "ServiceRuntime::LoadNexeAndStart (nacl_desc=%p)\n",
- reinterpret_cast<void*>(nacl_desc));
- if (!InitCommunication(nacl_desc, error_info)) {
- // On a load failure the service runtime does not crash itself to
- // avoid a race where the no-more-senders error on the reverse
- // channel esrvice thread might cause the crash-detection logic to
- // kick in before the start_module RPC reply has been received. So
- // we induce a service runtime crash here. We do not release
- // subprocess_ since it's needed to collect crash log output after
- // the error is reported.
- Log(LOG_FATAL, "reap logs");
- if (NULL == reverse_service_) {
- // No crash detector thread.
- NaClLog(LOG_ERROR, "scheduling to get crash log\n");
- pp::Module::Get()->core()->CallOnMainThread(0, crash_cb, PP_OK);
- NaClLog(LOG_ERROR, "should fire soon\n");
- } else {
- NaClLog(LOG_ERROR, "Reverse service thread will pick up crash log\n");
- }
- return false;
+void ServiceRuntime::WaitForNexeStart() {
+ nacl::MutexLocker take(&mu_);
+ while (!nexe_started_)
+ NaClXCondVarWait(&cond_, &mu_);
+ // Reset nexe_started_ here in case we run again.
+ nexe_started_ = false;
+}
+
+void ServiceRuntime::SignalNexeStarted() {
+ nacl::MutexLocker take(&mu_);
+ nexe_started_ = true;
+ NaClXCondVarSignal(&cond_);
+}
+
+void ServiceRuntime::LoadNexeAndStart(PP_NaClFileInfo file_info,
+ const pp::CompletionCallback& callback) {
+ NaClLog(4, "ServiceRuntime::LoadNexeAndStart (handle_valid=%d "
+ "token_lo=%" NACL_PRIu64 " token_hi=%" NACL_PRIu64 ")\n",
+ file_info.handle != PP_kInvalidFileHandle,
+ file_info.token_lo,
+ file_info.token_hi);
+
+ nacl::scoped_ptr<LoadNexeAndStartData> data(
+ new LoadNexeAndStartData(callback));
+ if (!SetupCommandChannel() || !InitReverseService()) {
+ DidLoadNexeAndStart(data.get(), PP_ERROR_FAILED);
+ return;
}
- NaClLog(4, "ServiceRuntime::LoadNexeAndStart (return 1)\n");
- return true;
+ LoadModule(
+ file_info,
+ WeakRefNewCallback(anchor_,
+ this,
+ &ServiceRuntime::LoadNexeAndStartAfterLoadModule,
+ data.release())); // Delegate the ownership.
}
SrpcClient* ServiceRuntime::SetupAppChannel() {
@@ -700,9 +841,8 @@ ServiceRuntime::~ServiceRuntime() {
static_cast<void*>(this));
// We do this just in case Shutdown() was not called.
subprocess_.reset(NULL);
- if (reverse_service_ != NULL) {
+ if (reverse_service_ != NULL)
reverse_service_->Unref();
- }
rev_interface_->Unref();
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.h b/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.h
index 78c781b1941..dbafee7aa3b 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/service_runtime.h
@@ -24,7 +24,6 @@
#include "native_client/src/trusted/weak_ref/weak_ref.h"
#include "ppapi/cpp/completion_callback.h"
-
#include "ppapi/native_client/src/trusted/plugin/utility.h"
struct NaClFileInfo;
@@ -33,14 +32,9 @@ namespace nacl {
class DescWrapper;
} // namespace
-namespace pp {
-class FileIO;
-} // namespace
-
namespace plugin {
-class ErrorInfo;
-class Manifest;
+class OpenManifestEntryAsyncCallback;
class Plugin;
class SrpcClient;
class ServiceRuntime;
@@ -49,24 +43,19 @@ class ServiceRuntime;
// creation templates aren't overwhelmed with too many parameters.
struct SelLdrStartParams {
SelLdrStartParams(const nacl::string& url,
- ErrorInfo* error_info,
bool uses_irt,
bool uses_ppapi,
- bool enable_dev_interfaces,
bool enable_dyncode_syscalls,
bool enable_exception_handling,
bool enable_crash_throttling)
: url(url),
- error_info(error_info),
uses_irt(uses_irt),
uses_ppapi(uses_ppapi),
- enable_dev_interfaces(enable_dev_interfaces),
enable_dyncode_syscalls(enable_dyncode_syscalls),
enable_exception_handling(enable_exception_handling),
enable_crash_throttling(enable_crash_throttling) {
}
nacl::string url;
- ErrorInfo* error_info;
bool uses_irt;
bool uses_ppapi;
bool enable_dev_interfaces;
@@ -76,69 +65,24 @@ struct SelLdrStartParams {
};
// Callback resources are essentially our continuation state.
-
-struct LogToJavaScriptConsoleResource {
- public:
- explicit LogToJavaScriptConsoleResource(std::string msg)
- : message(msg) {}
- std::string message;
-};
-
-struct PostMessageResource {
- public:
- explicit PostMessageResource(std::string msg)
- : message(msg) {}
- std::string message;
-};
-
struct OpenManifestEntryResource {
public:
OpenManifestEntryResource(const std::string& target_url,
struct NaClFileInfo* finfo,
- ErrorInfo* infop,
- bool* op_complete)
+ bool* op_complete,
+ OpenManifestEntryAsyncCallback* callback)
: url(target_url),
file_info(finfo),
- error_info(infop),
- op_complete_ptr(op_complete) {}
- std::string url;
- struct NaClFileInfo* file_info;
- ErrorInfo* error_info;
- bool* op_complete_ptr;
-};
-
-struct CloseManifestEntryResource {
- public:
- CloseManifestEntryResource(int32_t desc_to_close,
- bool* op_complete,
- bool* op_result)
- : desc(desc_to_close),
op_complete_ptr(op_complete),
- op_result_ptr(op_result) {}
+ callback(callback) {}
+ ~OpenManifestEntryResource();
+ void MaybeRunCallback(int32_t pp_error);
- int32_t desc;
- bool* op_complete_ptr;
- bool* op_result_ptr;
-};
-
-struct QuotaRequest {
- public:
- QuotaRequest(PP_Resource pp_resource,
- int64_t start_offset,
- int64_t quota_bytes_requested,
- int64_t* quota_bytes_granted,
- bool* op_complete)
- : resource(pp_resource),
- offset(start_offset),
- bytes_requested(quota_bytes_requested),
- bytes_granted(quota_bytes_granted),
- op_complete_ptr(op_complete) { }
-
- PP_Resource resource;
- int64_t offset;
- int64_t bytes_requested;
- int64_t* bytes_granted;
+ std::string url;
+ struct NaClFileInfo* file_info;
+ PP_NaClFileInfo pp_file_info;
bool* op_complete_ptr;
+ OpenManifestEntryAsyncCallback* callback;
};
// Do not invoke from the main thread, since the main methods will
@@ -151,7 +95,6 @@ class PluginReverseInterface: public nacl::ReverseInterface {
public:
PluginReverseInterface(nacl::WeakRefAnchor* anchor,
Plugin* plugin,
- const Manifest* manifest,
ServiceRuntime* service_runtime,
pp::CompletionCallback init_done_cb,
pp::CompletionCallback crash_cb);
@@ -160,14 +103,10 @@ class PluginReverseInterface: public nacl::ReverseInterface {
void ShutDown();
- virtual void Log(nacl::string message);
-
virtual void DoPostMessage(nacl::string message);
virtual void StartupInitializationComplete();
- virtual bool EnumerateManifestKeys(std::set<nacl::string>* out_keys);
-
virtual bool OpenManifestEntry(nacl::string url_key,
struct NaClFileInfo *info);
@@ -177,21 +116,22 @@ class PluginReverseInterface: public nacl::ReverseInterface {
virtual void ReportExitStatus(int exit_status);
+ // TODO(teravest): Remove this method once it's gone from
+ // nacl::ReverseInterface.
virtual int64_t RequestQuotaForWrite(nacl::string file_id,
int64_t offset,
int64_t bytes_to_write);
- void AddQuotaManagedFile(const nacl::string& file_id,
- const pp::FileIO& file_io);
- void AddTempQuotaManagedFile(const nacl::string& file_id);
+ // This is a sibling of OpenManifestEntry. While OpenManifestEntry is
+ // a sync function and must be called on a non-main thread,
+ // OpenManifestEntryAsync must be called on the main thread. Upon completion
+ // (even on error), callback will be invoked. The caller has responsibility
+ // to keep the memory passed to info until callback is invoked.
+ void OpenManifestEntryAsync(const nacl::string& key,
+ struct NaClFileInfo* info,
+ OpenManifestEntryAsyncCallback* callback);
protected:
- virtual void Log_MainThreadContinuation(LogToJavaScriptConsoleResource* p,
- int32_t err);
-
- virtual void PostMessage_MainThreadContinuation(PostMessageResource* p,
- int32_t err);
-
virtual void OpenManifestEntry_MainThreadContinuation(
OpenManifestEntryResource* p,
int32_t err);
@@ -200,19 +140,13 @@ class PluginReverseInterface: public nacl::ReverseInterface {
OpenManifestEntryResource* p,
int32_t result);
- virtual void CloseManifestEntry_MainThreadContinuation(
- CloseManifestEntryResource* cls,
- int32_t err);
-
private:
nacl::WeakRefAnchor* anchor_; // holds a ref
Plugin* plugin_; // value may be copied, but should be used only in
// main thread in WeakRef-protected callbacks.
- const Manifest* manifest_;
ServiceRuntime* service_runtime_;
NaClMutex mu_;
NaClCondVar cv_;
- std::set<int64_t> quota_files_;
bool shutting_down_;
pp::CompletionCallback init_done_cb_;
@@ -225,34 +159,41 @@ class ServiceRuntime {
// TODO(sehr): This class should also implement factory methods, using the
// Start method below.
ServiceRuntime(Plugin* plugin,
- const Manifest* manifest,
- bool should_report_uma,
+ bool main_service_runtime,
+ bool uses_nonsfi_mode,
pp::CompletionCallback init_done_cb,
pp::CompletionCallback crash_cb);
// The destructor terminates the sel_ldr process.
~ServiceRuntime();
- // Spawn the sel_ldr instance. On success, returns true.
- // On failure, returns false and |error_string| is set to something
- // describing the error.
- bool StartSelLdr(const SelLdrStartParams& params);
+ // Spawn the sel_ldr instance.
+ void StartSelLdr(const SelLdrStartParams& params,
+ pp::CompletionCallback callback);
// If starting sel_ldr from a background thread, wait for sel_ldr to
- // actually start.
- void WaitForSelLdrStart();
+ // actually start. Returns |false| if timed out waiting for the process
+ // to start. Otherwise, returns |true| if StartSelLdr is complete
+ // (either successfully or unsuccessfully).
+ bool WaitForSelLdrStart();
- // Signal to waiting threads that StartSelLdr is complete.
- // Done externally, in case external users want to write to shared
- // memory that is yet to be fenced.
+ // Signal to waiting threads that StartSelLdr is complete (either
+ // successfully or unsuccessfully).
void SignalStartSelLdrDone();
+ // If starting the nexe from a background thread, wait for the nexe to
+ // actually start.
+ void WaitForNexeStart();
+
+ // Signal to waiting threads that LoadNexeAndStart is complete (either
+ // successfully or unsuccessfully).
+ void SignalNexeStarted();
+
// Establish an SrpcClient to the sel_ldr instance and load the nexe.
- // The nexe to be started is passed through |nacl_file_desc|.
- // On success, returns true. On failure, returns false and |error_string|
- // is set to something describing the error.
- bool LoadNexeAndStart(nacl::DescWrapper* nacl_file_desc,
- ErrorInfo* error_info,
- const pp::CompletionCallback& crash_cb);
+ // The nexe to be started is passed through |file_info|.
+ // Upon completion |callback| is invoked with status code.
+ // This function must be called on the main thread.
+ void LoadNexeAndStart(PP_NaClFileInfo file_info,
+ const pp::CompletionCallback& callback);
// Starts the application channel to the nexe.
SrpcClient* SetupAppChannel();
@@ -270,17 +211,26 @@ class ServiceRuntime {
nacl::string GetCrashLogOutput();
- // To establish quota callbacks the pnacl coordinator needs to communicate
- // with the reverse interface.
- PluginReverseInterface* rev_interface() const { return rev_interface_; }
+ bool main_service_runtime() const { return main_service_runtime_; }
private:
NACL_DISALLOW_COPY_AND_ASSIGN(ServiceRuntime);
- bool InitCommunication(nacl::DescWrapper* shm, ErrorInfo* error_info);
+ struct LoadNexeAndStartData;
+ void LoadNexeAndStartAfterLoadModule(
+ LoadNexeAndStartData* data, int32_t pp_error);
+ void DidLoadNexeAndStart(LoadNexeAndStartData* data, int32_t pp_error);
+
+ bool SetupCommandChannel();
+ bool InitReverseService();
+ void LoadModule(PP_NaClFileInfo file_info,
+ pp::CompletionCallback callback);
+ void DidLoadModule(pp::CompletionCallback callback, int32_t pp_error);
+ bool StartModule();
NaClSrpcChannel command_channel_;
Plugin* plugin_;
bool main_service_runtime_;
+ bool uses_nonsfi_mode_;
nacl::ReverseService* reverse_service_;
nacl::scoped_ptr<nacl::SelLdrLauncherBase> subprocess_;
@@ -288,13 +238,11 @@ class ServiceRuntime {
PluginReverseInterface* rev_interface_;
- // Mutex to protect exit_status_.
- // Also, in conjunction with cond_ it is used to signal when
- // StartSelLdr is complete with either success or error.
+ // Mutex and CondVar to protect start_sel_ldr_done_ and nexe_started_.
NaClMutex mu_;
NaClCondVar cond_;
- int exit_status_;
bool start_sel_ldr_done_;
+ bool nexe_started_;
};
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.cc b/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.cc
index 2bb65bf510d..eee655f40be 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.cc
@@ -16,45 +16,29 @@
#include "ppapi/native_client/src/trusted/plugin/plugin.h"
#include "ppapi/native_client/src/trusted/plugin/utility.h"
-
-//////////////////////////////////////////////////////////////////////
-// Temporary file access.
-//////////////////////////////////////////////////////////////////////
-
namespace plugin {
-uint32_t TempFile::next_identifier = 0;
-
TempFile::TempFile(Plugin* plugin) : plugin_(plugin),
- existing_handle_(PP_kInvalidFileHandle) {
- PLUGIN_PRINTF(("TempFile::TempFile\n"));
- ++next_identifier;
- SNPRINTF(reinterpret_cast<char *>(identifier_), sizeof identifier_,
- "%" NACL_PRIu32, next_identifier);
+ internal_handle_(PP_kInvalidFileHandle) {
}
-TempFile::~TempFile() {
- PLUGIN_PRINTF(("TempFile::~TempFile\n"));
-}
+TempFile::~TempFile() { }
-void TempFile::Open(const pp::CompletionCallback& cb, bool writeable) {
- PLUGIN_PRINTF(("TempFile::Open\n"));
- PP_FileHandle file_handle;
- if (existing_handle_ == PP_kInvalidFileHandle) {
- file_handle =
+int32_t TempFile::Open(bool writeable) {
+ // TODO(teravest): Clean up this Open() behavior; this is really confusing as
+ // written.
+ if (internal_handle_ == PP_kInvalidFileHandle) {
+ internal_handle_ =
plugin_->nacl_interface()->CreateTemporaryFile(plugin_->pp_instance());
- } else {
- file_handle = existing_handle_;
}
- pp::Core* core = pp::Module::Get()->core();
- if (file_handle == PP_kInvalidFileHandle) {
+ if (internal_handle_ == PP_kInvalidFileHandle) {
PLUGIN_PRINTF(("TempFile::Open failed w/ PP_kInvalidFileHandle\n"));
- core->CallOnMainThread(0, cb, PP_ERROR_FAILED);
+ return PP_ERROR_FAILED;
}
#if NACL_WINDOWS
- HANDLE handle = file_handle;
+ HANDLE handle = internal_handle_;
//////// Now try the posix view.
int rdwr_flag = writeable ? _O_RDWR : _O_RDONLY;
@@ -68,34 +52,29 @@ void TempFile::Open(const pp::CompletionCallback& cb, bool writeable) {
}
int32_t fd = posix_desc;
#else
- int32_t fd = file_handle;
+ int32_t fd = internal_handle_;
#endif
if (fd < 0) {
PLUGIN_PRINTF(("TempFile::Open failed\n"));
- core->CallOnMainThread(0, cb, PP_ERROR_FAILED);
- return;
+ return PP_ERROR_FAILED;
}
- // dup the fd to make allow making a non-Quota-based wrapper.
- // sel_ldr currently does not allow loading from Quota-backed descs,
- // only plain host descs. It's probably good hygiene to separate the
- // read wrapper from the write wrapper anyway.
+ // dup the fd to make allow making separate read and write wrappers.
int32_t read_fd = DUP(fd);
if (read_fd == NACL_NO_FILE_DESC) {
PLUGIN_PRINTF(("TempFile::Open DUP failed\n"));
- core->CallOnMainThread(0, cb, PP_ERROR_FAILED);
- return;
+ return PP_ERROR_FAILED;
}
- // The descriptor for a writeable file needs to have quota management.
if (writeable) {
write_wrapper_.reset(
- plugin_->wrapper_factory()->MakeFileDescQuota(fd, O_RDWR, identifier_));
+ plugin_->wrapper_factory()->MakeFileDesc(fd, O_RDWR));
}
+
read_wrapper_.reset(
plugin_->wrapper_factory()->MakeFileDesc(read_fd, O_RDONLY));
- core->CallOnMainThread(0, cb, PP_OK);
+ return PP_OK;
}
bool TempFile::Reset() {
@@ -104,7 +83,15 @@ bool TempFile::Reset() {
// backed by the same file, so it should also reset.
CHECK(read_wrapper_.get() != NULL);
nacl_off64_t newpos = read_wrapper_->Seek(0, SEEK_SET);
- return newpos >= 0;
+ return newpos == 0;
+}
+
+PP_FileHandle TempFile::TakeFileHandle() {
+ PP_FileHandle to_return = internal_handle_;
+ internal_handle_ = PP_kInvalidFileHandle;
+ read_wrapper_.release();
+ write_wrapper_.release();
+ return to_return;
}
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.h b/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.h
index 09a42502b6b..4bc8f7140e3 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/temporary_file.h
@@ -6,11 +6,9 @@
#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_TEMPORARY_FILE_H_
#include "native_client/src/include/nacl_macros.h"
-#include "native_client/src/include/nacl_string.h"
#include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/cpp/completion_callback.h"
namespace plugin {
@@ -44,7 +42,7 @@ class TempFile {
// Opens a temporary file object and descriptor wrapper referring to the file.
// If |writeable| is true, the descriptor will be opened for writing, and
// write_wrapper will return a valid pointer, otherwise it will return NULL.
- void Open(const pp::CompletionCallback& cb, bool writeable);
+ int32_t Open(bool writeable);
// Resets file position of the handle, for reuse.
bool Reset();
@@ -52,16 +50,13 @@ class TempFile {
// The nacl::DescWrapper* for the writeable version of the file.
nacl::DescWrapper* write_wrapper() { return write_wrapper_.get(); }
nacl::DescWrapper* read_wrapper() { return read_wrapper_.get(); }
- nacl::DescWrapper* release_read_wrapper() {
- return read_wrapper_.release();
- }
- PP_FileHandle* existing_handle() { return &existing_handle_; }
+ // Returns the handle to the file repesented and resets the internal handle
+ // and all wrappers.
+ PP_FileHandle TakeFileHandle();
- // For quota management.
- const nacl::string identifier() const {
- return nacl::string(reinterpret_cast<const char*>(identifier_));
- }
+ // Used by GetNexeFd() to set the underlying internal handle.
+ PP_FileHandle* internal_handle() { return &internal_handle_; }
private:
NACL_DISALLOW_COPY_AND_ASSIGN(TempFile);
@@ -69,15 +64,7 @@ class TempFile {
Plugin* plugin_;
nacl::scoped_ptr<nacl::DescWrapper> read_wrapper_;
nacl::scoped_ptr<nacl::DescWrapper> write_wrapper_;
- PP_FileHandle existing_handle_;
-
- // An identifier string used for quota request processing. The quota
- // interface needs a string that is unique per sel_ldr instance only, so
- // the identifiers can be reused between runs of the translator, start-ups of
- // the browser, etc.
- uint8_t identifier_[16];
- // A counter to dole out unique identifiers.
- static uint32_t next_identifier;
+ PP_FileHandle internal_handle_;
};
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/utility.cc b/chromium/ppapi/native_client/src/trusted/plugin/utility.cc
index 1458e185ce0..eaf525016f4 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/utility.cc
+++ b/chromium/ppapi/native_client/src/trusted/plugin/utility.cc
@@ -8,45 +8,50 @@
#include <stdlib.h>
#include <string.h>
+#include "native_client/src/include/portability_io.h"
+#include "native_client/src/include/portability_process.h"
+#include "native_client/src/shared/platform/nacl_check.h"
+#include "ppapi/cpp/module.h"
#include "ppapi/native_client/src/trusted/plugin/utility.h"
namespace plugin {
int gNaClPluginDebugPrintEnabled = -1;
-FILE* gNaClPluginLogFile = NULL;
/*
* Prints formatted message to the log.
*/
int NaClPluginPrintLog(const char *format, ...) {
- if (NULL == gNaClPluginLogFile) {
- return 0;
- }
va_list arg;
- int done;
+ int out_size;
+
+ static const int kStackBufferSize = 512;
+ char stack_buffer[kStackBufferSize];
+
+ // Just log locally to stderr if we can't use the nacl interface.
+ if (!GetNaClInterface()) {
+ va_start(arg, format);
+ int rc = vfprintf(stderr, format, arg);
+ va_end(arg);
+ return rc;
+ }
+
va_start(arg, format);
- done = vfprintf(gNaClPluginLogFile, format, arg);
+ out_size = vsnprintf(stack_buffer, kStackBufferSize, format, arg);
va_end(arg);
- fflush(gNaClPluginLogFile);
- return done;
-}
-
-/*
- * Opens file where plugin log should be written. The file name is
- * taken from NACL_PLUGIN_LOG environment variable.
- * If environment variable doesn't exist or file can't be opened,
- * the function returns stdout.
- */
-FILE* NaClPluginLogFileEnv() {
- char* file = getenv("NACL_PLUGIN_LOG");
- if (NULL != file) {
- FILE* log_file = fopen(file, "w+");
- if (NULL == log_file) {
- return stdout;
- }
- return log_file;
+ if (out_size < kStackBufferSize) {
+ GetNaClInterface()->Vlog(stack_buffer);
+ } else {
+ // Message too large for our stack buffer; we have to allocate memory
+ // instead.
+ char *buffer = static_cast<char*>(malloc(out_size + 1));
+ va_start(arg, format);
+ vsnprintf(buffer, out_size + 1, format, arg);
+ va_end(arg);
+ GetNaClInterface()->Vlog(buffer);
+ free(buffer);
}
- return stdout;
+ return out_size;
}
/*
@@ -100,4 +105,46 @@ bool IsValidIdentifierString(const char* strval, uint32_t* length) {
return true;
}
+// We cache the NaCl interface pointer and ensure that its set early on, on the
+// main thread. This allows GetNaClInterface() to be used from non-main threads.
+static const PPB_NaCl_Private* g_nacl_interface = NULL;
+
+const PPB_NaCl_Private* GetNaClInterface() {
+ return g_nacl_interface;
+}
+
+void SetNaClInterface(const PPB_NaCl_Private* nacl_interface) {
+ g_nacl_interface = nacl_interface;
+}
+
+void CloseFileHandle(PP_FileHandle file_handle) {
+#if NACL_WINDOWS
+ CloseHandle(file_handle);
+#else
+ close(file_handle);
+#endif
+}
+
+// Converts a PP_FileHandle to a POSIX file descriptor.
+int32_t ConvertFileDescriptor(PP_FileHandle handle, bool read_only) {
+ PLUGIN_PRINTF(("ConvertFileDescriptor, handle=%d\n", handle));
+#if NACL_WINDOWS
+ int32_t file_desc = NACL_NO_FILE_DESC;
+ // On Windows, valid handles are 32 bit unsigned integers so this is safe.
+ file_desc = reinterpret_cast<intptr_t>(handle);
+ // Convert the Windows HANDLE from Pepper to a POSIX file descriptor.
+ int flags = _O_BINARY;
+ flags |= read_only ? _O_RDONLY : _O_RDWR;
+ int32_t posix_desc = _open_osfhandle(file_desc, flags);
+ if (posix_desc == -1) {
+ // Close the Windows HANDLE if it can't be converted.
+ CloseHandle(reinterpret_cast<HANDLE>(file_desc));
+ return -1;
+ }
+ return posix_desc;
+#else
+ return handle;
+#endif
+}
+
} // namespace plugin
diff --git a/chromium/ppapi/native_client/src/trusted/plugin/utility.h b/chromium/ppapi/native_client/src/trusted/plugin/utility.h
index 6b9b27ecf67..8bb01943a35 100644
--- a/chromium/ppapi/native_client/src/trusted/plugin/utility.h
+++ b/chromium/ppapi/native_client/src/trusted/plugin/utility.h
@@ -13,6 +13,8 @@
#include "native_client/src/include/portability.h"
#include "native_client/src/shared/platform/nacl_threads.h"
#include "native_client/src/shared/platform/nacl_time.h"
+#include "ppapi/c/private/pp_file_handle.h"
+#include "ppapi/c/private/ppb_nacl_private.h"
#define SRPC_PLUGIN_DEBUG 1
@@ -26,18 +28,23 @@ namespace plugin {
// TODO(sehr): add Unicode identifier support.
bool IsValidIdentifierString(const char* strval, uint32_t* length);
+const PPB_NaCl_Private* GetNaClInterface();
+void SetNaClInterface(const PPB_NaCl_Private* nacl_interface);
+
+void CloseFileHandle(PP_FileHandle file_handle);
+
+// Converts a PP_FileHandle to a POSIX file descriptor.
+int32_t ConvertFileDescriptor(PP_FileHandle handle, bool read_only);
+
// Debugging print utility
extern int gNaClPluginDebugPrintEnabled;
-extern FILE* gNaClPluginLogFile;
extern int NaClPluginPrintLog(const char *format, ...);
extern int NaClPluginDebugPrintCheckEnv();
-extern FILE* NaClPluginLogFileEnv();
#if SRPC_PLUGIN_DEBUG
#define INIT_PLUGIN_LOGGING() do { \
if (-1 == ::plugin::gNaClPluginDebugPrintEnabled) { \
::plugin::gNaClPluginDebugPrintEnabled = \
::plugin::NaClPluginDebugPrintCheckEnv(); \
- ::plugin::gNaClPluginLogFile = ::plugin::NaClPluginLogFileEnv();\
} \
} while (0)
diff --git a/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c b/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c
index 64f880238ff..28a6593212e 100644
--- a/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c
+++ b/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_plugin_start.c
@@ -11,7 +11,7 @@
#include "native_client/src/include/elf32.h"
#include "native_client/src/include/elf_auxv.h"
#include "native_client/src/untrusted/irt/irt.h"
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
#include "ppapi/native_client/src/untrusted/irt_stub/thread_creator.h"
diff --git a/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h b/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h
index e20d10878da..65babfdaf00 100644
--- a/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h
+++ b/chromium/ppapi/native_client/src/untrusted/irt_stub/ppapi_start.h
@@ -7,7 +7,7 @@
#ifndef NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_PPAPI_START_H_
#define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_PPAPI_START_H_ 1
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
/*
* Start PPAPI using the given set of callbacks to invoke the application code.
diff --git a/chromium/ppapi/native_client/src/untrusted/irt_stub/thread_creator.h b/chromium/ppapi/native_client/src/untrusted/irt_stub/thread_creator.h
index a5c9265a416..7adbabe7805 100644
--- a/chromium/ppapi/native_client/src/untrusted/irt_stub/thread_creator.h
+++ b/chromium/ppapi/native_client/src/untrusted/irt_stub/thread_creator.h
@@ -8,8 +8,16 @@
#define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_STUB_THREAD_CREATOR_H_ 1
#include "native_client/src/untrusted/irt/irt.h"
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
void __nacl_register_thread_creator(const struct nacl_irt_ppapihook *hooks);
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
#endif
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c
new file mode 100644
index 00000000000..b52b8e9b398
--- /dev/null
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.c
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
+
+#include "native_client/src/untrusted/irt/irt.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
+#include "ppapi/nacl_irt/plugin_main.h"
+
+/*
+ * Defines a version of the version irt_ppapi_start and of the irt_ppapihook
+ * that returns a shimmed GetInterface for PNaCl.
+ *
+ * The hook will be linked into the IRT but it is considered unstable.
+ * Stable nexes should not use that IRT hook (and a filter prevents
+ * it from being used). Instead PNaCl nexes should embed the
+ * irt_shim_ppapi_start and the shim functions directly into the nexe
+ * for ABI stability.
+ */
+
+static struct PP_StartFunctions g_user_start_functions;
+
+static int32_t shim_PPPInitializeModule(PP_Module module_id,
+ PPB_GetInterface get_browser_intf) {
+ /* Record the original PPB_GetInterface and provide a shimmed one. */
+ __set_real_Pnacl_PPBGetInterface(get_browser_intf);
+ return (*g_user_start_functions.PPP_InitializeModule)(
+ module_id,
+ &__Pnacl_PPBGetInterface);
+}
+
+static void shim_PPPShutdownModule(void) {
+ (*g_user_start_functions.PPP_ShutdownModule)();
+}
+
+#ifdef PNACL_SHIM_AOT
+ /*
+ * This will be discovered and set by the shim, since we cannot link
+ * against the IRT directly in the AOT library.
+ */
+int (*real_irt_ppapi_start)(const struct PP_StartFunctions *) = NULL;
+#else
+ /*
+ * Otherwise, when linking directly into the IRT, we can refer to the
+ * real irt_ppapi_start from irt_ppapi.
+ */
+extern int irt_ppapi_start(const struct PP_StartFunctions *);
+static int (* const real_irt_ppapi_start)(const struct PP_StartFunctions *) =
+ &irt_ppapi_start;
+#endif
+
+int irt_shim_ppapi_start(const struct PP_StartFunctions *funcs) {
+ g_user_start_functions = *funcs;
+ /*
+ * Record the original PPP_GetInterface and provide a shimmed one
+ * via wrapped_ppapi_methods.
+ */
+ const struct PP_StartFunctions wrapped_ppapi_methods = {
+ shim_PPPInitializeModule,
+ shim_PPPShutdownModule,
+ __Pnacl_PPPGetInterface
+ };
+ __set_real_Pnacl_PPPGetInterface(g_user_start_functions.PPP_GetInterface);
+ /*
+ * Invoke the IRT's ppapi_start interface with the wrapped interface.
+ */
+ return (*real_irt_ppapi_start)(&wrapped_ppapi_methods);
+}
+
+#ifndef PNACL_SHIM_AOT
+const struct nacl_irt_ppapihook nacl_irt_ppapihook_pnacl_private = {
+ irt_shim_ppapi_start,
+ PpapiPluginRegisterThreadCreator,
+};
+#endif
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h
new file mode 100644
index 00000000000..34c23a58506
--- /dev/null
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2014 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_IRT_SHIM_PPAPI_H_
+#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_IRT_SHIM_PPAPI_H_
+
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+
+#ifdef PNACL_SHIM_AOT
+
+/* Given a hook for the real irt ppapi start, get a shimmed ppapi_start. */
+extern int (*real_irt_ppapi_start)(const struct PP_StartFunctions *);
+extern int irt_shim_ppapi_start(const struct PP_StartFunctions *funcs);
+
+#else
+
+/*
+ * A private version of the NACL_IRT_PPAPIHOOK_v0_1, which provides
+ * PNaCl with shimmed IRT interfaces.
+ */
+#define NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 \
+ "nacl-irt-ppapihook-pnacl-private-0.1"
+extern const struct nacl_irt_ppapihook nacl_irt_ppapihook_pnacl_private;
+
+#endif
+
+#endif
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp
index 787d6206b29..d3d5f2a11a4 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp
@@ -8,35 +8,98 @@
],
'targets': [
{
- 'target_name': 'pnacl_irt_shim',
+ # The full library, which PNaCl uses for offline .pexe -> .nexe.
+ # We keep the target names in this file short to avoid having really long
+ # path names on Windows.
+ # https://code.google.com/p/nativeclient/issues/detail?id=3846
+ 'target_name': 'shim_aot',
'type': 'none',
'variables': {
'nlib_target': 'libpnacl_irt_shim.a',
- 'out_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/libpnacl_irt_shim.a',
- 'out_newlib32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a',
- 'out_newlib64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a',
+ 'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/>(nlib_target)',
+ 'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/>(nlib_target)',
+ 'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/>(nlib_target)',
+ 'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/>(nlib_target)',
+ 'out_pnacl_newlib_x86_32_nonsfi': '>(tc_lib_dir_pnacl_translate)/lib-x86-32-nonsfi/>(nlib_target)',
'build_glibc': 0,
- 'build_newlib': 1,
- 'force_arm_pnacl': 1,
+ 'build_newlib': 0,
+ 'build_pnacl_newlib': 1,
+ 'pnacl_native_biased': 1,
+ 'enable_x86_32': 1,
+ 'enable_x86_64': 1,
+ 'enable_arm': 1,
+ 'enable_mips': 1,
+ 'enable_x86_32_nonsfi': 1,
'sources': [
+ 'irt_shim_ppapi.c',
'pnacl_shim.c',
'shim_entry.c',
'shim_ppapi.c',
],
- 'include_dirs': [
- '../../../..',
+ 'extra_args': [
+ '--strip-debug',
+ ],
+ # Indicate that shim should not depend on unstable IRT hook interface.
+ 'compile_flags': [
+ '-DPNACL_SHIM_AOT',
+ ],
+ },
+ 'dependencies': [
+ '<(DEPTH)/native_client/tools.gyp:prep_toolchain',
+ ],
+ },
+ # Smaller shim library for PNaCl in-browser translation.
+ # Uses an unstable IRT hook interface to get the shim from the IRT itself.
+ # If we ever change that hook interface or change the in-IRT shim's ABI,
+ # we would need to clear the translation cache to match the new IRT.
+ {
+ 'target_name': 'shim_browser',
+ 'type': 'none',
+ 'variables': {
+ # Same output file name as shim_aot, so that we don't need to change
+ # the linker commandlines, but output to the "for_browser" directory,
+ # and have the pnacl_support_extension copy from that directory.
+ 'nlib_target': 'libpnacl_irt_shim.a',
+ 'out_pnacl_newlib_arm': '>(tc_lib_dir_pnacl_translate)/lib-arm/for_browser/>(nlib_target)',
+ 'out_pnacl_newlib_x86_32': '>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/>(nlib_target)',
+ 'out_pnacl_newlib_x86_64': '>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/>(nlib_target)',
+ 'out_pnacl_newlib_mips': '>(tc_lib_dir_pnacl_translate)/lib-mips32/for_browser/>(nlib_target)',
+ 'build_glibc': 0,
+ 'build_newlib': 0,
+ 'build_pnacl_newlib': 1,
+ 'pnacl_native_biased': 1,
+ 'enable_x86_32': 1,
+ 'enable_x86_64': 1,
+ 'enable_arm': 1,
+ 'enable_mips': 1,
+ 'sources': [
+ 'shim_entry.c',
+ 'shim_ppapi.c',
],
'extra_args': [
'--strip-debug',
],
- 'conditions': [
- ['target_arch=="arm"', {
- 'compile_flags': [
- '--pnacl-allow-translate',
- '--pnacl-allow-native',
- '-arch', 'arm',
- ],
- }],
+ },
+ 'dependencies': [
+ '<(DEPTH)/native_client/tools.gyp:prep_toolchain',
+ ],
+ },
+ {
+ # Second half of shim library for PNaCl in-browser translation.
+ # This half goes into the IRT and is returned by the unstable
+ # IRT hook interface.
+ 'target_name': 'shim_for_irt',
+ 'type': 'none',
+ 'variables': {
+ 'nlib_target': 'libpnacl_irt_shim_for_irt.a',
+ 'build_glibc': 0,
+ 'build_newlib': 0,
+ # Unlike the above, build this the way the IRT is built so that the
+ # output library directories match the IRT linking search paths.
+ 'build_irt': 1,
+ 'sources': [
+ 'irt_shim_ppapi.c',
+ 'pnacl_shim.c',
],
},
'dependencies': [
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c
index ad7260b0e5b..1753ee01181 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c
@@ -1,67 +1,39 @@
-/* Copyright (c) 2013 The Chromium Authors. All rights reserved.
+/* Copyright (c) 2014 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* NOTE: this is auto-generated from IDL */
-#include "ppapi/generators/pnacl_shim.h"
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
#include "ppapi/c/ppb.h"
-#include "ppapi/c/dev/ppb_alarms_dev.h"
#include "ppapi/c/dev/ppb_audio_input_dev.h"
-#include "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/c/dev/ppb_crypto_dev.h"
-#include "ppapi/c/dev/ppb_cursor_control_dev.h"
#include "ppapi/c/dev/ppb_device_ref_dev.h"
#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/c/dev/ppb_file_io_dev.h"
-#include "ppapi/c/dev/ppb_find_dev.h"
#include "ppapi/c/dev/ppb_font_dev.h"
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/dev/ppb_keyboard_input_event_dev.h"
-#include "ppapi/c/dev/ppb_memory_dev.h"
#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/c/dev/ppb_resource_array_dev.h"
-#include "ppapi/c/dev/ppb_scrollbar_dev.h"
-#include "ppapi/c/dev/ppb_text_input_dev.h"
-#include "ppapi/c/dev/ppb_trace_event_dev.h"
#include "ppapi/c/dev/ppb_truetype_font_dev.h"
#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/dev/ppb_var_resource_dev.h"
#include "ppapi/c/dev/ppb_video_capture_dev.h"
#include "ppapi/c/dev/ppb_video_decoder_dev.h"
-#include "ppapi/c/dev/ppb_view_dev.h"
-#include "ppapi/c/dev/ppb_widget_dev.h"
-#include "ppapi/c/dev/ppb_zoom_dev.h"
-#include "ppapi/c/dev/ppp_network_state_dev.h"
-#include "ppapi/c/dev/ppp_printing_dev.h"
-#include "ppapi/c/dev/ppp_scrollbar_dev.h"
#include "ppapi/c/dev/ppp_selection_dev.h"
-#include "ppapi/c/dev/ppp_text_input_dev.h"
-#include "ppapi/c/dev/ppp_video_capture_dev.h"
-#include "ppapi/c/dev/ppp_video_decoder_dev.h"
-#include "ppapi/c/dev/ppp_widget_dev.h"
-#include "ppapi/c/dev/ppp_zoom_dev.h"
-#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_config.h"
+#include "ppapi/c/ppb_compositor.h"
+#include "ppapi/c/ppb_compositor_layer.h"
#include "ppapi/c/ppb_console.h"
#include "ppapi/c/ppb_core.h"
#include "ppapi/c/ppb_file_io.h"
+#include "ppapi/c/ppb_file_mapping.h"
#include "ppapi/c/ppb_file_ref.h"
#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/c/ppb_fullscreen.h"
-#include "ppapi/c/ppb_gamepad.h"
#include "ppapi/c/ppb_graphics_2d.h"
#include "ppapi/c/ppb_graphics_3d.h"
#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/c/ppb_image_data.h"
#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/c/ppb_instance.h"
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+#include "ppapi/c/ppb_media_stream_video_track.h"
#include "ppapi/c/ppb_message_loop.h"
#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/c/ppb_mouse_cursor.h"
#include "ppapi/c/ppb_mouse_lock.h"
#include "ppapi/c/ppb_net_address.h"
#include "ppapi/c/ppb_network_list.h"
@@ -77,14 +49,11 @@
#include "ppapi/c/ppb_var_array.h"
#include "ppapi/c/ppb_var_array_buffer.h"
#include "ppapi/c/ppb_var_dictionary.h"
-#include "ppapi/c/ppb_view.h"
+#include "ppapi/c/ppb_video_decoder.h"
#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/c/ppp_graphics_3d.h"
-#include "ppapi/c/ppp_input_event.h"
-#include "ppapi/c/ppp_instance.h"
#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/c/ppp_mouse_lock.h"
#include "ppapi/c/private/ppb_content_decryptor_private.h"
+#include "ppapi/c/private/ppb_display_color_profile_private.h"
#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
#include "ppapi/c/private/ppb_file_io_private.h"
#include "ppapi/c/private/ppb_file_ref_private.h"
@@ -92,11 +61,7 @@
#include "ppapi/c/private/ppb_flash_clipboard.h"
#include "ppapi/c/private/ppb_flash_device_id.h"
#include "ppapi/c/private/ppb_flash_drm.h"
-#include "ppapi/c/private/ppb_flash_font_file.h"
-#include "ppapi/c/private/ppb_flash_fullscreen.h"
#include "ppapi/c/private/ppb_flash_menu.h"
-#include "ppapi/c/private/ppb_flash_message_loop.h"
-#include "ppapi/c/private/ppb_flash_print.h"
#include "ppapi/c/private/ppb_host_resolver_private.h"
#include "ppapi/c/private/ppb_instance_private.h"
#include "ppapi/c/private/ppb_isolated_file_system_private.h"
@@ -114,13 +79,7 @@
#include "ppapi/c/private/ppb_video_source_private.h"
#include "ppapi/c/private/ppb_x509_certificate_private.h"
#include "ppapi/c/private/ppp_content_decryptor_private.h"
-#include "ppapi/c/private/ppp_flash_browser_operations.h"
#include "ppapi/c/private/ppp_instance_private.h"
-#include "ppapi/c/trusted/ppb_broker_trusted.h"
-#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/c/trusted/ppb_char_set_trusted.h"
-#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
/* Use local strcmp to avoid dependency on libc. */
static int mystrcmp(const char* s1, const char *s2) {
@@ -136,12 +95,16 @@ static int mystrcmp(const char* s1, const char *s2) {
/* BEGIN Declarations for all Wrapper Infos */
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Compositor_0_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_CompositorLayer_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Console_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Core_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileMapping_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileSystem_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_1;
@@ -151,10 +114,15 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MessageLoop_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_0;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseLock_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkList_1_0;
@@ -169,33 +137,30 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarDictionary_1_0;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WebSocket_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Messaging_1_0;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Font_Dev_0_6;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Printing_Dev_0_7;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TrueTypeFont_Dev_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Selection_Dev_0_3;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Private_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1;
@@ -205,6 +170,7 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_12_6;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_13_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_4_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_0;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DeviceID_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DRM_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DRM_1_1;
@@ -229,24 +195,107 @@ static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Testing_Private_1_0;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_1;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_3;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDestination_Private_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoSource_Private_0_1;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9;
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12;
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Instance_Private_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1;
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2;
/* END Declarations for all Wrapper Infos. */
/* Not generating wrapper methods for PPB_Audio_1_0 */
/* Not generating wrapper methods for PPB_Audio_1_1 */
+/* Not generating wrapper methods for PPB_AudioBuffer_0_1 */
+
/* Not generating wrapper methods for PPB_AudioConfig_1_0 */
/* Not generating wrapper methods for PPB_AudioConfig_1_1 */
+/* Begin wrapper methods for PPB_Compositor_0_1 */
+
+static PP_Bool Pnacl_M37_PPB_Compositor_IsCompositor(PP_Resource resource) {
+ const struct PPB_Compositor_0_1 *iface = Pnacl_WrapperInfo_PPB_Compositor_0_1.real_iface;
+ return iface->IsCompositor(resource);
+}
+
+static PP_Resource Pnacl_M37_PPB_Compositor_Create(PP_Instance instance) {
+ const struct PPB_Compositor_0_1 *iface = Pnacl_WrapperInfo_PPB_Compositor_0_1.real_iface;
+ return iface->Create(instance);
+}
+
+static PP_Resource Pnacl_M37_PPB_Compositor_AddLayer(PP_Resource compositor) {
+ const struct PPB_Compositor_0_1 *iface = Pnacl_WrapperInfo_PPB_Compositor_0_1.real_iface;
+ return iface->AddLayer(compositor);
+}
+
+static int32_t Pnacl_M37_PPB_Compositor_CommitLayers(PP_Resource compositor, struct PP_CompletionCallback* cc) {
+ const struct PPB_Compositor_0_1 *iface = Pnacl_WrapperInfo_PPB_Compositor_0_1.real_iface;
+ return iface->CommitLayers(compositor, *cc);
+}
+
+static int32_t Pnacl_M37_PPB_Compositor_ResetLayers(PP_Resource compositor) {
+ const struct PPB_Compositor_0_1 *iface = Pnacl_WrapperInfo_PPB_Compositor_0_1.real_iface;
+ return iface->ResetLayers(compositor);
+}
+
+/* End wrapper methods for PPB_Compositor_0_1 */
+
+/* Begin wrapper methods for PPB_CompositorLayer_0_1 */
+
+static PP_Bool Pnacl_M37_PPB_CompositorLayer_IsCompositorLayer(PP_Resource resource) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->IsCompositorLayer(resource);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetColor(PP_Resource layer, float red, float green, float blue, float alpha, const struct PP_Size* size) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetColor(layer, red, green, blue, alpha, size);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetTexture(PP_Resource layer, PP_Resource context, uint32_t texture, const struct PP_Size* size, struct PP_CompletionCallback* cc) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetTexture(layer, context, texture, size, *cc);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetImage(PP_Resource layer, PP_Resource image_data, const struct PP_Size* size, struct PP_CompletionCallback* cc) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetImage(layer, image_data, size, *cc);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetClipRect(PP_Resource layer, const struct PP_Rect* rect) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetClipRect(layer, rect);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetTransform(PP_Resource layer, const float matrix[16]) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetTransform(layer, matrix);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetOpacity(PP_Resource layer, float opacity) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetOpacity(layer, opacity);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetBlendMode(PP_Resource layer, PP_BlendMode mode) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetBlendMode(layer, mode);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetSourceRect(PP_Resource layer, const struct PP_FloatRect* rect) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetSourceRect(layer, rect);
+}
+
+static int32_t Pnacl_M37_PPB_CompositorLayer_SetPremultipliedAlpha(PP_Resource layer, PP_Bool premult) {
+ const struct PPB_CompositorLayer_0_1 *iface = Pnacl_WrapperInfo_PPB_CompositorLayer_0_1.real_iface;
+ return iface->SetPremultipliedAlpha(layer, premult);
+}
+
+/* End wrapper methods for PPB_CompositorLayer_0_1 */
+
/* Begin wrapper methods for PPB_Console_1_0 */
static void Pnacl_M25_PPB_Console_Log(PP_Instance instance, PP_LogLevel level, struct PP_Var* value) {
@@ -408,6 +457,25 @@ static int32_t Pnacl_M25_PPB_FileIO_ReadToArray(PP_Resource file_io, int64_t off
/* End wrapper methods for PPB_FileIO_1_1 */
+/* Begin wrapper methods for PPB_FileMapping_0_1 */
+
+static int32_t Pnacl_M34_PPB_FileMapping_Map(PP_Instance instance, PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void** address, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileMapping_0_1 *iface = Pnacl_WrapperInfo_PPB_FileMapping_0_1.real_iface;
+ return iface->Map(instance, file_io, length, map_protection, map_flags, offset, address, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileMapping_Unmap(PP_Instance instance, const void* address, int64_t length, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileMapping_0_1 *iface = Pnacl_WrapperInfo_PPB_FileMapping_0_1.real_iface;
+ return iface->Unmap(instance, address, length, *callback);
+}
+
+static int64_t Pnacl_M34_PPB_FileMapping_GetMapPageSize(PP_Instance instance) {
+ const struct PPB_FileMapping_0_1 *iface = Pnacl_WrapperInfo_PPB_FileMapping_0_1.real_iface;
+ return iface->GetMapPageSize(instance);
+}
+
+/* End wrapper methods for PPB_FileMapping_0_1 */
+
/* Begin wrapper methods for PPB_FileRef_1_0 */
static PP_Resource Pnacl_M14_PPB_FileRef_Create(PP_Resource file_system, const char* path) {
@@ -526,6 +594,70 @@ static int32_t Pnacl_M28_PPB_FileRef_ReadDirectoryEntries(PP_Resource file_ref,
/* End wrapper methods for PPB_FileRef_1_1 */
+/* Begin wrapper methods for PPB_FileRef_1_2 */
+
+static PP_Resource Pnacl_M34_PPB_FileRef_Create(PP_Resource file_system, const char* path) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->Create(file_system, path);
+}
+
+static PP_Bool Pnacl_M34_PPB_FileRef_IsFileRef(PP_Resource resource) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->IsFileRef(resource);
+}
+
+static PP_FileSystemType Pnacl_M34_PPB_FileRef_GetFileSystemType(PP_Resource file_ref) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->GetFileSystemType(file_ref);
+}
+
+static void Pnacl_M34_PPB_FileRef_GetName(struct PP_Var* _struct_result, PP_Resource file_ref) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ *_struct_result = iface->GetName(file_ref);
+}
+
+static void Pnacl_M34_PPB_FileRef_GetPath(struct PP_Var* _struct_result, PP_Resource file_ref) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ *_struct_result = iface->GetPath(file_ref);
+}
+
+static PP_Resource Pnacl_M34_PPB_FileRef_GetParent(PP_Resource file_ref) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->GetParent(file_ref);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_MakeDirectory(PP_Resource directory_ref, int32_t make_directory_flags, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->MakeDirectory(directory_ref, make_directory_flags, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_Touch(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->Touch(file_ref, last_access_time, last_modified_time, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_Delete(PP_Resource file_ref, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->Delete(file_ref, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_Rename(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->Rename(file_ref, new_file_ref, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_Query(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->Query(file_ref, info, *callback);
+}
+
+static int32_t Pnacl_M34_PPB_FileRef_ReadDirectoryEntries(PP_Resource file_ref, struct PP_ArrayOutput* output, struct PP_CompletionCallback* callback) {
+ const struct PPB_FileRef_1_2 *iface = Pnacl_WrapperInfo_PPB_FileRef_1_2.real_iface;
+ return iface->ReadDirectoryEntries(file_ref, *output, *callback);
+}
+
+/* End wrapper methods for PPB_FileRef_1_2 */
+
/* Begin wrapper methods for PPB_FileSystem_1_0 */
static PP_Resource Pnacl_M14_PPB_FileSystem_Create(PP_Instance instance, PP_FileSystemType type) {
@@ -840,6 +972,35 @@ static void Pnacl_M13_PPB_KeyboardInputEvent_GetCharacterText(struct PP_Var* _st
/* End wrapper methods for PPB_KeyboardInputEvent_1_0 */
+/* Begin wrapper methods for PPB_KeyboardInputEvent_1_2 */
+
+static PP_Resource Pnacl_M34_PPB_KeyboardInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var* character_text, struct PP_Var* code) {
+ const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
+ return iface->Create(instance, type, time_stamp, modifiers, key_code, *character_text, *code);
+}
+
+static PP_Bool Pnacl_M34_PPB_KeyboardInputEvent_IsKeyboardInputEvent(PP_Resource resource) {
+ const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
+ return iface->IsKeyboardInputEvent(resource);
+}
+
+static uint32_t Pnacl_M34_PPB_KeyboardInputEvent_GetKeyCode(PP_Resource key_event) {
+ const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
+ return iface->GetKeyCode(key_event);
+}
+
+static void Pnacl_M34_PPB_KeyboardInputEvent_GetCharacterText(struct PP_Var* _struct_result, PP_Resource character_event) {
+ const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
+ *_struct_result = iface->GetCharacterText(character_event);
+}
+
+static void Pnacl_M34_PPB_KeyboardInputEvent_GetCode(struct PP_Var* _struct_result, PP_Resource key_event) {
+ const struct PPB_KeyboardInputEvent_1_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2.real_iface;
+ *_struct_result = iface->GetCode(key_event);
+}
+
+/* End wrapper methods for PPB_KeyboardInputEvent_1_2 */
+
/* Begin wrapper methods for PPB_TouchInputEvent_1_0 */
static PP_Resource Pnacl_M13_PPB_TouchInputEvent_Create(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers) {
@@ -915,6 +1076,153 @@ static void Pnacl_M13_PPB_IMEInputEvent_GetSelection(PP_Resource ime_event, uint
/* Not generating wrapper methods for PPB_Instance_1_0 */
+/* Begin wrapper methods for PPB_MediaStreamAudioTrack_0_1 */
+
+static PP_Bool Pnacl_M35_PPB_MediaStreamAudioTrack_IsMediaStreamAudioTrack(PP_Resource resource) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->IsMediaStreamAudioTrack(resource);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_Configure(PP_Resource audio_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->Configure(audio_track, attrib_list, *callback);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_GetAttrib(PP_Resource audio_track, PP_MediaStreamAudioTrack_Attrib attrib, int32_t* value) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->GetAttrib(audio_track, attrib, value);
+}
+
+static void Pnacl_M35_PPB_MediaStreamAudioTrack_GetId(struct PP_Var* _struct_result, PP_Resource audio_track) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ *_struct_result = iface->GetId(audio_track);
+}
+
+static PP_Bool Pnacl_M35_PPB_MediaStreamAudioTrack_HasEnded(PP_Resource audio_track) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->HasEnded(audio_track);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_GetBuffer(PP_Resource audio_track, PP_Resource* buffer, struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->GetBuffer(audio_track, buffer, *callback);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamAudioTrack_RecycleBuffer(PP_Resource audio_track, PP_Resource buffer) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ return iface->RecycleBuffer(audio_track, buffer);
+}
+
+static void Pnacl_M35_PPB_MediaStreamAudioTrack_Close(PP_Resource audio_track) {
+ const struct PPB_MediaStreamAudioTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1.real_iface;
+ iface->Close(audio_track);
+}
+
+/* End wrapper methods for PPB_MediaStreamAudioTrack_0_1 */
+
+/* Begin wrapper methods for PPB_MediaStreamVideoTrack_0_1 */
+
+static PP_Bool Pnacl_M35_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack(PP_Resource resource) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->IsMediaStreamVideoTrack(resource);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_Configure(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->Configure(video_track, attrib_list, *callback);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_GetAttrib(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->GetAttrib(video_track, attrib, value);
+}
+
+static void Pnacl_M35_PPB_MediaStreamVideoTrack_GetId(struct PP_Var* _struct_result, PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ *_struct_result = iface->GetId(video_track);
+}
+
+static PP_Bool Pnacl_M35_PPB_MediaStreamVideoTrack_HasEnded(PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->HasEnded(video_track);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_GetFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->GetFrame(video_track, frame, *callback);
+}
+
+static int32_t Pnacl_M35_PPB_MediaStreamVideoTrack_RecycleFrame(PP_Resource video_track, PP_Resource frame) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ return iface->RecycleFrame(video_track, frame);
+}
+
+static void Pnacl_M35_PPB_MediaStreamVideoTrack_Close(PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_0_1 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1.real_iface;
+ iface->Close(video_track);
+}
+
+/* End wrapper methods for PPB_MediaStreamVideoTrack_0_1 */
+
+/* Begin wrapper methods for PPB_MediaStreamVideoTrack_1_0 */
+
+static PP_Resource Pnacl_M36_PPB_MediaStreamVideoTrack_Create(PP_Instance instance) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->Create(instance);
+}
+
+static PP_Bool Pnacl_M36_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack(PP_Resource resource) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->IsMediaStreamVideoTrack(resource);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_Configure(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->Configure(video_track, attrib_list, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetAttrib(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->GetAttrib(video_track, attrib, value);
+}
+
+static void Pnacl_M36_PPB_MediaStreamVideoTrack_GetId(struct PP_Var* _struct_result, PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ *_struct_result = iface->GetId(video_track);
+}
+
+static PP_Bool Pnacl_M36_PPB_MediaStreamVideoTrack_HasEnded(PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->HasEnded(video_track);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->GetFrame(video_track, frame, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_RecycleFrame(PP_Resource video_track, PP_Resource frame) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->RecycleFrame(video_track, frame);
+}
+
+static void Pnacl_M36_PPB_MediaStreamVideoTrack_Close(PP_Resource video_track) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ iface->Close(video_track);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_GetEmptyFrame(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback* callback) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->GetEmptyFrame(video_track, frame, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_MediaStreamVideoTrack_PutFrame(PP_Resource video_track, PP_Resource frame) {
+ const struct PPB_MediaStreamVideoTrack_1_0 *iface = Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0.real_iface;
+ return iface->PutFrame(video_track, frame);
+}
+
+/* End wrapper methods for PPB_MediaStreamVideoTrack_1_0 */
+
/* Begin wrapper methods for PPB_MessageLoop_1_0 */
static PP_Resource Pnacl_M25_PPB_MessageLoop_Create(PP_Instance instance) {
@@ -963,6 +1271,25 @@ static void Pnacl_M14_PPB_Messaging_PostMessage(PP_Instance instance, struct PP_
/* End wrapper methods for PPB_Messaging_1_0 */
+/* Begin wrapper methods for PPB_Messaging_1_1 */
+
+static void Pnacl_M37_PPB_Messaging_PostMessage(PP_Instance instance, struct PP_Var* message) {
+ const struct PPB_Messaging_1_1 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_1.real_iface;
+ iface->PostMessage(instance, *message);
+}
+
+static int32_t Pnacl_M37_PPB_Messaging_RegisterMessageHandler(PP_Instance instance, void* user_data, const struct PPP_MessageHandler_0_1* handler, PP_Resource message_loop) {
+ const struct PPB_Messaging_1_1 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_1.real_iface;
+ return iface->RegisterMessageHandler(instance, user_data, handler, message_loop);
+}
+
+static void Pnacl_M37_PPB_Messaging_UnregisterMessageHandler(PP_Instance instance) {
+ const struct PPB_Messaging_1_1 *iface = Pnacl_WrapperInfo_PPB_Messaging_1_1.real_iface;
+ iface->UnregisterMessageHandler(instance);
+}
+
+/* End wrapper methods for PPB_Messaging_1_1 */
+
/* Not generating wrapper methods for PPB_MouseCursor_1_0 */
/* Begin wrapper methods for PPB_MouseLock_1_0 */
@@ -1421,6 +1748,40 @@ static const char* Pnacl_M18_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len
/* End wrapper methods for PPB_Var_1_1 */
+/* Begin wrapper methods for PPB_Var_1_2 */
+
+static void Pnacl_M34_PPB_Var_AddRef(struct PP_Var* var) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ iface->AddRef(*var);
+}
+
+static void Pnacl_M34_PPB_Var_Release(struct PP_Var* var) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ iface->Release(*var);
+}
+
+static void Pnacl_M34_PPB_Var_VarFromUtf8(struct PP_Var* _struct_result, const char* data, uint32_t len) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ *_struct_result = iface->VarFromUtf8(data, len);
+}
+
+static const char* Pnacl_M34_PPB_Var_VarToUtf8(struct PP_Var* var, uint32_t* len) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ return iface->VarToUtf8(*var, len);
+}
+
+static PP_Resource Pnacl_M34_PPB_Var_VarToResource(struct PP_Var* var) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ return iface->VarToResource(*var);
+}
+
+static void Pnacl_M34_PPB_Var_VarFromResource(struct PP_Var* _struct_result, PP_Resource resource) {
+ const struct PPB_Var_1_2 *iface = Pnacl_WrapperInfo_PPB_Var_1_2.real_iface;
+ *_struct_result = iface->VarFromResource(resource);
+}
+
+/* End wrapper methods for PPB_Var_1_2 */
+
/* Begin wrapper methods for PPB_VarArray_1_0 */
static void Pnacl_M29_PPB_VarArray_Create(struct PP_Var* _struct_result) {
@@ -1508,10 +1869,58 @@ static void Pnacl_M29_PPB_VarDictionary_GetKeys(struct PP_Var* _struct_result, s
/* End wrapper methods for PPB_VarDictionary_1_0 */
+/* Begin wrapper methods for PPB_VideoDecoder_0_1 */
+
+static PP_Resource Pnacl_M36_PPB_VideoDecoder_Create(PP_Instance instance) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->Create(instance);
+}
+
+static PP_Bool Pnacl_M36_PPB_VideoDecoder_IsVideoDecoder(PP_Resource resource) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->IsVideoDecoder(resource);
+}
+
+static int32_t Pnacl_M36_PPB_VideoDecoder_Initialize(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_Bool allow_software_fallback, struct PP_CompletionCallback* callback) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->Initialize(video_decoder, graphics3d_context, profile, allow_software_fallback, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_VideoDecoder_Decode(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback* callback) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->Decode(video_decoder, decode_id, size, buffer, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_VideoDecoder_GetPicture(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback* callback) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->GetPicture(video_decoder, picture, *callback);
+}
+
+static void Pnacl_M36_PPB_VideoDecoder_RecyclePicture(PP_Resource video_decoder, const struct PP_VideoPicture* picture) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ iface->RecyclePicture(video_decoder, picture);
+}
+
+static int32_t Pnacl_M36_PPB_VideoDecoder_Flush(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->Flush(video_decoder, *callback);
+}
+
+static int32_t Pnacl_M36_PPB_VideoDecoder_Reset(PP_Resource video_decoder, struct PP_CompletionCallback* callback) {
+ const struct PPB_VideoDecoder_0_1 *iface = Pnacl_WrapperInfo_PPB_VideoDecoder_0_1.real_iface;
+ return iface->Reset(video_decoder, *callback);
+}
+
+/* End wrapper methods for PPB_VideoDecoder_0_1 */
+
+/* Not generating wrapper methods for PPB_VideoFrame_0_1 */
+
/* Not generating wrapper methods for PPB_View_1_0 */
/* Not generating wrapper methods for PPB_View_1_1 */
+/* Not generating wrapper methods for PPB_View_1_2 */
+
/* Begin wrapper methods for PPB_WebSocket_1_0 */
static PP_Resource Pnacl_M18_PPB_WebSocket_Create(PP_Instance instance) {
@@ -1594,6 +2003,8 @@ static void Pnacl_M18_PPB_WebSocket_GetURL(struct PP_Var* _struct_result, PP_Res
/* Not generating wrapper methods for PPP_Instance_1_1 */
+/* Not generating wrapper methods for PPP_MessageHandler_0_1 */
+
/* Begin wrapper methods for PPP_Messaging_1_0 */
static void Pnacl_M14_PPP_Messaging_HandleMessage(PP_Instance instance, struct PP_Var message) {
@@ -1621,84 +2032,6 @@ static void Pnacl_M14_PPP_Messaging_HandleMessage(PP_Instance instance, struct P
/* Not generating wrapper methods for PPB_URLLoaderTrusted_0_3 */
-/* Begin wrapper methods for PPB_Alarms_Dev_0_1 */
-
-static void Pnacl_M33_PPB_Alarms_Dev_Create(PP_Instance instance, struct PP_Var* name, const struct PP_Alarms_AlarmCreateInfo_Dev* alarm_info) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- iface->Create(instance, *name, alarm_info);
-}
-
-static int32_t Pnacl_M33_PPB_Alarms_Dev_Get(PP_Instance instance, struct PP_Var* name, struct PP_Alarms_Alarm_Dev* alarm, struct PP_CompletionCallback* callback) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- return iface->Get(instance, *name, alarm, *callback);
-}
-
-static int32_t Pnacl_M33_PPB_Alarms_Dev_GetAll(PP_Instance instance, struct PP_Alarms_Alarm_Array_Dev* alarms, struct PP_ArrayOutput* array_allocator, struct PP_CompletionCallback* callback) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- return iface->GetAll(instance, alarms, *array_allocator, *callback);
-}
-
-static void Pnacl_M33_PPB_Alarms_Dev_Clear(PP_Instance instance, struct PP_Var* name) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- iface->Clear(instance, *name);
-}
-
-static void Pnacl_M33_PPB_Alarms_Dev_ClearAll(PP_Instance instance) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- iface->ClearAll(instance);
-}
-
-static uint32_t Pnacl_M33_PPB_Alarms_Dev_AddOnAlarmListener(PP_Instance instance, PP_Alarms_OnAlarm_Dev callback, void* user_data) {
- const struct PPB_Alarms_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1.real_iface;
- return iface->AddOnAlarmListener(instance, callback, user_data);
-}
-
-/* End wrapper methods for PPB_Alarms_Dev_0_1 */
-
-/* Begin wrapper methods for PPB_AudioInput_Dev_0_2 */
-
-static PP_Resource Pnacl_M19_PPB_AudioInput_Dev_Create(PP_Instance instance) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M19_PPB_AudioInput_Dev_IsAudioInput(PP_Resource resource) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->IsAudioInput(resource);
-}
-
-static int32_t Pnacl_M19_PPB_AudioInput_Dev_EnumerateDevices(PP_Resource audio_input, PP_Resource* devices, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->EnumerateDevices(audio_input, devices, *callback);
-}
-
-static int32_t Pnacl_M19_PPB_AudioInput_Dev_Open(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_2 audio_input_callback, void* user_data, struct PP_CompletionCallback* callback) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->Open(audio_input, device_ref, config, audio_input_callback, user_data, *callback);
-}
-
-static PP_Resource Pnacl_M19_PPB_AudioInput_Dev_GetCurrentConfig(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->GetCurrentConfig(audio_input);
-}
-
-static PP_Bool Pnacl_M19_PPB_AudioInput_Dev_StartCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->StartCapture(audio_input);
-}
-
-static PP_Bool Pnacl_M19_PPB_AudioInput_Dev_StopCapture(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- return iface->StopCapture(audio_input);
-}
-
-static void Pnacl_M19_PPB_AudioInput_Dev_Close(PP_Resource audio_input) {
- const struct PPB_AudioInput_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2.real_iface;
- iface->Close(audio_input);
-}
-
-/* End wrapper methods for PPB_AudioInput_Dev_0_2 */
-
/* Begin wrapper methods for PPB_AudioInput_Dev_0_3 */
static PP_Resource Pnacl_M25_PPB_AudioInput_Dev_Create(PP_Instance instance) {
@@ -1721,7 +2054,7 @@ static int32_t Pnacl_M25_PPB_AudioInput_Dev_MonitorDeviceChange(PP_Resource audi
return iface->MonitorDeviceChange(audio_input, callback, user_data);
}
-static int32_t Pnacl_M25_PPB_AudioInput_Dev_Open(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_2 audio_input_callback, void* user_data, struct PP_CompletionCallback* callback) {
+static int32_t Pnacl_M25_PPB_AudioInput_Dev_Open(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_3 audio_input_callback, void* user_data, struct PP_CompletionCallback* callback) {
const struct PPB_AudioInput_Dev_0_3 *iface = Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3.real_iface;
return iface->Open(audio_input, device_ref, config, audio_input_callback, user_data, *callback);
}
@@ -1865,27 +2198,6 @@ static int32_t Pnacl_M19_PPB_FileChooser_Dev_Show(PP_Resource chooser, struct PP
/* End wrapper methods for PPB_FileChooser_Dev_0_6 */
-/* Begin wrapper methods for PPB_FileIO_Dev_0_1 */
-
-static int32_t Pnacl_M31_PPB_FileIO_Dev_Map(PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void** address, struct PP_CompletionCallback* callback) {
- const struct PPB_FileIO_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1.real_iface;
- return iface->Map(file_io, length, map_protection, map_flags, offset, address, *callback);
-}
-
-static void Pnacl_M31_PPB_FileIO_Dev_Unmap(PP_Resource file_io, void* address, int64_t length) {
- const struct PPB_FileIO_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1.real_iface;
- iface->Unmap(file_io, address, length);
-}
-
-static int64_t Pnacl_M31_PPB_FileIO_Dev_GetMapPageSize(PP_Resource file_io) {
- const struct PPB_FileIO_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1.real_iface;
- return iface->GetMapPageSize(file_io);
-}
-
-/* End wrapper methods for PPB_FileIO_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_Find_Dev_0_3 */
-
/* Begin wrapper methods for PPB_Font_Dev_0_6 */
static void Pnacl_M14_PPB_Font_Dev_GetFontFamilies(struct PP_Var* _struct_result, PP_Instance instance) {
@@ -1930,10 +2242,6 @@ static int32_t Pnacl_M14_PPB_Font_Dev_PixelOffsetForCharacter(PP_Resource font,
/* End wrapper methods for PPB_Font_Dev_0_6 */
-/* Not generating wrapper methods for PPB_Graphics2D_Dev_0_1 */
-
-/* Not generating wrapper methods for PPB_Graphics2D_Dev_0_2 */
-
/* Begin wrapper methods for PPB_IMEInputEvent_Dev_0_1 */
static PP_Bool Pnacl_M16_PPB_IMEInputEvent_Dev_IsIMEInputEvent(PP_Resource resource) {
@@ -2007,25 +2315,6 @@ static void Pnacl_M21_PPB_IMEInputEvent_Dev_GetSelection(PP_Resource ime_event,
/* End wrapper methods for PPB_IMEInputEvent_Dev_0_2 */
-/* Begin wrapper methods for PPB_KeyboardInputEvent_Dev_0_2 */
-
-static PP_Bool Pnacl_M31_PPB_KeyboardInputEvent_Dev_SetUsbKeyCode(PP_Resource key_event, uint32_t usb_key_code) {
- const struct PPB_KeyboardInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2.real_iface;
- return iface->SetUsbKeyCode(key_event, usb_key_code);
-}
-
-static uint32_t Pnacl_M31_PPB_KeyboardInputEvent_Dev_GetUsbKeyCode(PP_Resource key_event) {
- const struct PPB_KeyboardInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2.real_iface;
- return iface->GetUsbKeyCode(key_event);
-}
-
-static void Pnacl_M31_PPB_KeyboardInputEvent_Dev_GetCode(struct PP_Var* _struct_result, PP_Resource key_event) {
- const struct PPB_KeyboardInputEvent_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2.real_iface;
- *_struct_result = iface->GetCode(key_event);
-}
-
-/* End wrapper methods for PPB_KeyboardInputEvent_Dev_0_2 */
-
/* Not generating wrapper methods for PPB_Memory_Dev_0_1 */
/* Begin wrapper methods for PPB_Printing_Dev_0_7 */
@@ -2042,8 +2331,6 @@ static int32_t Pnacl_M23_PPB_Printing_Dev_GetDefaultPrintSettings(PP_Resource re
/* End wrapper methods for PPB_Printing_Dev_0_7 */
-/* Not generating wrapper methods for PPB_ResourceArray_Dev_0_1 */
-
/* Not generating wrapper methods for PPB_Scrollbar_Dev_0_5 */
/* Not generating wrapper methods for PPB_TextInput_Dev_0_1 */
@@ -2186,64 +2473,6 @@ static void Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL(struct PP_Var* _struc
/* End wrapper methods for PPB_URLUtil_Dev_0_7 */
-/* Begin wrapper methods for PPB_VarResource_Dev_0_1 */
-
-static PP_Resource Pnacl_M32_PPB_VarResource_Dev_VarToResource(struct PP_Var* var) {
- const struct PPB_VarResource_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1.real_iface;
- return iface->VarToResource(*var);
-}
-
-static void Pnacl_M32_PPB_VarResource_Dev_VarFromResource(struct PP_Var* _struct_result, PP_Resource resource) {
- const struct PPB_VarResource_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1.real_iface;
- *_struct_result = iface->VarFromResource(resource);
-}
-
-/* End wrapper methods for PPB_VarResource_Dev_0_1 */
-
-/* Begin wrapper methods for PPB_VideoCapture_Dev_0_2 */
-
-static PP_Resource Pnacl_M19_PPB_VideoCapture_Dev_Create(PP_Instance instance) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->Create(instance);
-}
-
-static PP_Bool Pnacl_M19_PPB_VideoCapture_Dev_IsVideoCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->IsVideoCapture(video_capture);
-}
-
-static int32_t Pnacl_M19_PPB_VideoCapture_Dev_EnumerateDevices(PP_Resource video_capture, PP_Resource* devices, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->EnumerateDevices(video_capture, devices, *callback);
-}
-
-static int32_t Pnacl_M19_PPB_VideoCapture_Dev_Open(PP_Resource video_capture, PP_Resource device_ref, const struct PP_VideoCaptureDeviceInfo_Dev* requested_info, uint32_t buffer_count, struct PP_CompletionCallback* callback) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->Open(video_capture, device_ref, requested_info, buffer_count, *callback);
-}
-
-static int32_t Pnacl_M19_PPB_VideoCapture_Dev_StartCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->StartCapture(video_capture);
-}
-
-static int32_t Pnacl_M19_PPB_VideoCapture_Dev_ReuseBuffer(PP_Resource video_capture, uint32_t buffer) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->ReuseBuffer(video_capture, buffer);
-}
-
-static int32_t Pnacl_M19_PPB_VideoCapture_Dev_StopCapture(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- return iface->StopCapture(video_capture);
-}
-
-static void Pnacl_M19_PPB_VideoCapture_Dev_Close(PP_Resource video_capture) {
- const struct PPB_VideoCapture_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2.real_iface;
- iface->Close(video_capture);
-}
-
-/* End wrapper methods for PPB_VideoCapture_Dev_0_2 */
-
/* Begin wrapper methods for PPB_VideoCapture_Dev_0_3 */
static PP_Resource Pnacl_M25_PPB_VideoCapture_Dev_Create(PP_Instance instance) {
@@ -2376,64 +2605,98 @@ static struct PP_Var Pnacl_M13_PPP_Selection_Dev_GetSelectedText(PP_Instance ins
/* Not generating wrapper methods for PPP_Zoom_Dev_0_3 */
-/* Begin wrapper methods for PPB_ContentDecryptor_Private_0_9 */
+/* Begin wrapper methods for PPB_ContentDecryptor_Private_0_12 */
+
+static void Pnacl_M36_PPB_ContentDecryptor_Private_PromiseResolved(PP_Instance instance, uint32_t promise_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->PromiseResolved(instance, promise_id);
+}
+
+static void Pnacl_M36_PPB_ContentDecryptor_Private_PromiseResolvedWithSession(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->PromiseResolvedWithSession(instance, promise_id, *web_session_id);
+}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_SessionCreated(PP_Instance instance, uint32_t session_id, struct PP_Var* web_session_id) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
- iface->SessionCreated(instance, session_id, *web_session_id);
+static void Pnacl_M36_PPB_ContentDecryptor_Private_PromiseRejected(PP_Instance instance, uint32_t promise_id, PP_CdmExceptionCode exception_code, uint32_t system_code, struct PP_Var* error_description) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->PromiseRejected(instance, promise_id, exception_code, system_code, *error_description);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_SessionMessage(PP_Instance instance, uint32_t session_id, struct PP_Var* message, struct PP_Var* destination_url) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
- iface->SessionMessage(instance, session_id, *message, *destination_url);
+static void Pnacl_M36_PPB_ContentDecryptor_Private_SessionMessage(PP_Instance instance, struct PP_Var* web_session_id, struct PP_Var* message, struct PP_Var* destination_url) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->SessionMessage(instance, *web_session_id, *message, *destination_url);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_SessionReady(PP_Instance instance, uint32_t session_id) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
- iface->SessionReady(instance, session_id);
+static void Pnacl_M36_PPB_ContentDecryptor_Private_SessionReady(PP_Instance instance, struct PP_Var* web_session_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->SessionReady(instance, *web_session_id);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_SessionClosed(PP_Instance instance, uint32_t session_id) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
- iface->SessionClosed(instance, session_id);
+static void Pnacl_M36_PPB_ContentDecryptor_Private_SessionClosed(PP_Instance instance, struct PP_Var* web_session_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->SessionClosed(instance, *web_session_id);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_SessionError(PP_Instance instance, uint32_t session_id, int32_t media_error, int32_t system_code) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
- iface->SessionError(instance, session_id, media_error, system_code);
+static void Pnacl_M36_PPB_ContentDecryptor_Private_SessionError(PP_Instance instance, struct PP_Var* web_session_id, PP_CdmExceptionCode exception_code, uint32_t system_code, struct PP_Var* error_description) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
+ iface->SessionError(instance, *web_session_id, exception_code, system_code, *error_description);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DeliverBlock(PP_Instance instance, PP_Resource decrypted_block, const struct PP_DecryptedBlockInfo* decrypted_block_info) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DeliverBlock(PP_Instance instance, PP_Resource decrypted_block, const struct PP_DecryptedBlockInfo* decrypted_block_info) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DeliverBlock(instance, decrypted_block, decrypted_block_info);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DecoderInitializeDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id, PP_Bool success) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DecoderInitializeDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id, PP_Bool success) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DecoderInitializeDone(instance, decoder_type, request_id, success);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DecoderDeinitializeDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DecoderDeinitializeDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DecoderDeinitializeDone(instance, decoder_type, request_id);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DecoderResetDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DecoderResetDone(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DecoderResetDone(instance, decoder_type, request_id);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DeliverFrame(PP_Instance instance, PP_Resource decrypted_frame, const struct PP_DecryptedFrameInfo* decrypted_frame_info) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DeliverFrame(PP_Instance instance, PP_Resource decrypted_frame, const struct PP_DecryptedFrameInfo* decrypted_frame_info) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DeliverFrame(instance, decrypted_frame, decrypted_frame_info);
}
-static void Pnacl_M33_PPB_ContentDecryptor_Private_DeliverSamples(PP_Instance instance, PP_Resource audio_frames, const struct PP_DecryptedSampleInfo* decrypted_sample_info) {
- const struct PPB_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPB_ContentDecryptor_Private_DeliverSamples(PP_Instance instance, PP_Resource audio_frames, const struct PP_DecryptedSampleInfo* decrypted_sample_info) {
+ const struct PPB_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12.real_iface;
iface->DeliverSamples(instance, audio_frames, decrypted_sample_info);
}
-/* End wrapper methods for PPB_ContentDecryptor_Private_0_9 */
+/* End wrapper methods for PPB_ContentDecryptor_Private_0_12 */
+
+/* Begin wrapper methods for PPB_DisplayColorProfile_Private_0_1 */
+
+static PP_Resource Pnacl_M33_PPB_DisplayColorProfile_Private_Create(PP_Instance instance) {
+ const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
+ return iface->Create(instance);
+}
+
+static PP_Bool Pnacl_M33_PPB_DisplayColorProfile_Private_IsDisplayColorProfile(PP_Resource resource) {
+ const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
+ return iface->IsDisplayColorProfile(resource);
+}
+
+static int32_t Pnacl_M33_PPB_DisplayColorProfile_Private_GetColorProfile(PP_Resource display_color_profile_res, struct PP_ArrayOutput* color_profile, struct PP_CompletionCallback* callback) {
+ const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
+ return iface->GetColorProfile(display_color_profile_res, *color_profile, *callback);
+}
+
+static int32_t Pnacl_M33_PPB_DisplayColorProfile_Private_RegisterColorProfileChangeCallback(PP_Resource display_color_profile_res, struct PP_CompletionCallback* callback) {
+ const struct PPB_DisplayColorProfile_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1.real_iface;
+ return iface->RegisterColorProfileChangeCallback(display_color_profile_res, *callback);
+}
+
+/* End wrapper methods for PPB_DisplayColorProfile_Private_0_1 */
/* Begin wrapper methods for PPB_Ext_CrxFileSystem_Private_0_1 */
@@ -2462,6 +2725,8 @@ static void Pnacl_M15_PPB_FileRefPrivate_GetAbsolutePath(struct PP_Var* _struct_
/* End wrapper methods for PPB_FileRefPrivate_0_1 */
+/* Not generating wrapper methods for PPB_Find_Private_0_3 */
+
/* Begin wrapper methods for PPB_Flash_12_4 */
static void Pnacl_M21_PPB_Flash_SetInstanceAlwaysOnTop(PP_Instance instance, PP_Bool on_top) {
@@ -2821,6 +3086,35 @@ static int32_t Pnacl_M24_PPB_Flash_Clipboard_WriteData(PP_Instance instance_id,
/* End wrapper methods for PPB_Flash_Clipboard_5_0 */
+/* Begin wrapper methods for PPB_Flash_Clipboard_5_1 */
+
+static uint32_t Pnacl_M34_PPB_Flash_Clipboard_RegisterCustomFormat(PP_Instance instance_id, const char* format_name) {
+ const struct PPB_Flash_Clipboard_5_1 *iface = Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1.real_iface;
+ return iface->RegisterCustomFormat(instance_id, format_name);
+}
+
+static PP_Bool Pnacl_M34_PPB_Flash_Clipboard_IsFormatAvailable(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format) {
+ const struct PPB_Flash_Clipboard_5_1 *iface = Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1.real_iface;
+ return iface->IsFormatAvailable(instance_id, clipboard_type, format);
+}
+
+static void Pnacl_M34_PPB_Flash_Clipboard_ReadData(struct PP_Var* _struct_result, PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format) {
+ const struct PPB_Flash_Clipboard_5_1 *iface = Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1.real_iface;
+ *_struct_result = iface->ReadData(instance_id, clipboard_type, format);
+}
+
+static int32_t Pnacl_M34_PPB_Flash_Clipboard_WriteData(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t data_item_count, const uint32_t formats[], const struct PP_Var data_items[]) {
+ const struct PPB_Flash_Clipboard_5_1 *iface = Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1.real_iface;
+ return iface->WriteData(instance_id, clipboard_type, data_item_count, formats, data_items);
+}
+
+static PP_Bool Pnacl_M34_PPB_Flash_Clipboard_GetSequenceNumber(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint64_t* sequence_number) {
+ const struct PPB_Flash_Clipboard_5_1 *iface = Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1.real_iface;
+ return iface->GetSequenceNumber(instance_id, clipboard_type, sequence_number);
+}
+
+/* End wrapper methods for PPB_Flash_Clipboard_5_1 */
+
/* Begin wrapper methods for PPB_Flash_DeviceID_1_0 */
static PP_Resource Pnacl_M21_PPB_Flash_DeviceID_Create(PP_Instance instance) {
@@ -2951,6 +3245,8 @@ static PP_Bool Pnacl_M19_PPB_HostResolver_Private_GetNetAddress(PP_Resource host
/* End wrapper methods for PPB_HostResolver_Private_0_1 */
+/* Not generating wrapper methods for PPB_InputEvent_Private_0_1 */
+
/* Begin wrapper methods for PPB_Instance_Private_0_1 */
static void Pnacl_M13_PPB_Instance_Private_GetWindowObject(struct PP_Var* _struct_result, PP_Instance instance) {
@@ -2979,14 +3275,16 @@ static int32_t Pnacl_M33_PPB_IsolatedFileSystem_Private_Open(PP_Instance instanc
/* End wrapper methods for PPB_IsolatedFileSystem_Private_0_2 */
+/* Not generating wrapper methods for PPP_ManifestService_1_0 */
+
/* Begin wrapper methods for PPB_NaCl_Private_1_0 */
-static PP_ExternalPluginResult Pnacl_M25_PPB_NaCl_Private_LaunchSelLdr(PP_Instance instance, const char* alleged_url, PP_Bool uses_irt, PP_Bool uses_ppapi, PP_Bool enable_ppapi_dev, PP_Bool enable_dyncode_syscalls, PP_Bool enable_exception_handling, PP_Bool enable_crash_throttling, void* imc_handle, struct PP_Var* error_message) {
+static void Pnacl_M25_PPB_NaCl_Private_LaunchSelLdr(PP_Instance instance, PP_Bool main_service_runtime, const char* alleged_url, PP_Bool uses_irt, PP_Bool uses_ppapi, PP_Bool uses_nonsfi_mode, PP_Bool enable_ppapi_dev, PP_Bool enable_dyncode_syscalls, PP_Bool enable_exception_handling, PP_Bool enable_crash_throttling, const struct PPP_ManifestService_1_0* manifest_service_interface, void* manifest_service_user_data, void* imc_handle, struct PP_CompletionCallback* callback) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- return iface->LaunchSelLdr(instance, alleged_url, uses_irt, uses_ppapi, enable_ppapi_dev, enable_dyncode_syscalls, enable_exception_handling, enable_crash_throttling, imc_handle, error_message);
+ iface->LaunchSelLdr(instance, main_service_runtime, alleged_url, uses_irt, uses_ppapi, uses_nonsfi_mode, enable_ppapi_dev, enable_dyncode_syscalls, enable_exception_handling, enable_crash_throttling, manifest_service_interface, manifest_service_user_data, imc_handle, *callback);
}
-static PP_ExternalPluginResult Pnacl_M25_PPB_NaCl_Private_StartPpapiProxy(PP_Instance instance) {
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_StartPpapiProxy(PP_Instance instance) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
return iface->StartPpapiProxy(instance);
}
@@ -3006,9 +3304,9 @@ static int32_t Pnacl_M25_PPB_NaCl_Private_BrokerDuplicateHandle(PP_FileHandle so
return iface->BrokerDuplicateHandle(source_handle, process_id, target_handle, desired_access, options);
}
-static PP_FileHandle Pnacl_M25_PPB_NaCl_Private_GetReadonlyPnaclFd(const char* filename) {
+static PP_FileHandle Pnacl_M25_PPB_NaCl_Private_GetReadonlyPnaclFd(const char* url) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- return iface->GetReadonlyPnaclFd(filename);
+ return iface->GetReadonlyPnaclFd(url);
}
static PP_FileHandle Pnacl_M25_PPB_NaCl_Private_CreateTemporaryFile(PP_Instance instance) {
@@ -3016,34 +3314,169 @@ static PP_FileHandle Pnacl_M25_PPB_NaCl_Private_CreateTemporaryFile(PP_Instance
return iface->CreateTemporaryFile(instance);
}
-static int32_t Pnacl_M25_PPB_NaCl_Private_GetNexeFd(PP_Instance instance, const char* pexe_url, uint32_t abi_version, uint32_t opt_level, const char* last_modified, const char* etag, PP_Bool has_no_store_header, PP_Bool* is_hit, PP_FileHandle* nexe_handle, struct PP_CompletionCallback* callback) {
+static int32_t Pnacl_M25_PPB_NaCl_Private_GetNumberOfProcessors(void) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetNumberOfProcessors();
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_IsNonSFIModeEnabled(void) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->IsNonSFIModeEnabled();
+}
+
+static int32_t Pnacl_M25_PPB_NaCl_Private_GetNexeFd(PP_Instance instance, const char* pexe_url, uint32_t abi_version, uint32_t opt_level, const char* headers, const char* extra_flags, PP_Bool* is_hit, PP_FileHandle* nexe_handle, struct PP_CompletionCallback* callback) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetNexeFd(instance, pexe_url, abi_version, opt_level, headers, extra_flags, is_hit, nexe_handle, *callback);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_ReportTranslationFinished(PP_Instance instance, PP_Bool success, int32_t opt_level, int64_t pexe_size, int64_t compile_time_us, int64_t total_time_us) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->ReportTranslationFinished(instance, success, opt_level, pexe_size, compile_time_us, total_time_us);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_DispatchEvent(PP_Instance instance, PP_NaClEventType event_type, const char* resource_url, PP_Bool length_is_computable, uint64_t loaded_bytes, uint64_t total_bytes) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->DispatchEvent(instance, event_type, resource_url, length_is_computable, loaded_bytes, total_bytes);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_ReportLoadSuccess(PP_Instance instance, const char* url, uint64_t loaded_bytes, uint64_t total_bytes) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->ReportLoadSuccess(instance, url, loaded_bytes, total_bytes);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_ReportLoadError(PP_Instance instance, PP_NaClError error, const char* error_message) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->ReportLoadError(instance, error, error_message);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_ReportLoadAbort(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->ReportLoadAbort(instance);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_NexeDidCrash(PP_Instance instance, const char* crash_log) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->NexeDidCrash(instance, crash_log);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_InstanceCreated(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->InstanceCreated(instance);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_InstanceDestroyed(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->InstanceDestroyed(instance);
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_NaClDebugEnabledForURL(const char* alleged_nmf_url) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->NaClDebugEnabledForURL(alleged_nmf_url);
+}
+
+static const char* Pnacl_M25_PPB_NaCl_Private_GetSandboxArch(void) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetSandboxArch();
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_LogToConsole(PP_Instance instance, const char* message) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->LogToConsole(instance, message);
+}
+
+static PP_NaClReadyState Pnacl_M25_PPB_NaCl_Private_GetNaClReadyState(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetNaClReadyState(instance);
+}
+
+static int32_t Pnacl_M25_PPB_NaCl_Private_GetExitStatus(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetExitStatus(instance);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_SetExitStatus(PP_Instance instance, int32_t exit_status) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->SetExitStatus(instance, exit_status);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_Vlog(const char* message) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->Vlog(message);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_InitializePlugin(PP_Instance instance, uint32_t argc, const char* argn[], const char* argv[]) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->InitializePlugin(instance, argc, argn, argv);
+}
+
+static int64_t Pnacl_M25_PPB_NaCl_Private_GetNexeSize(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetNexeSize(instance);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_RequestNaClManifest(PP_Instance instance, struct PP_CompletionCallback* callback) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->RequestNaClManifest(instance, *callback);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_GetManifestBaseURL(struct PP_Var* _struct_result, PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ *_struct_result = iface->GetManifestBaseURL(instance);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_ProcessNaClManifest(PP_Instance instance, const char* program_url) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->ProcessNaClManifest(instance, program_url);
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_DevInterfacesEnabled(PP_Instance instance) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->DevInterfacesEnabled(instance);
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_GetManifestProgramURL(PP_Instance instance, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options, PP_Bool* uses_nonsfi_mode) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->GetManifestProgramURL(instance, full_url, pnacl_options, uses_nonsfi_mode);
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_ManifestResolveKey(PP_Instance instance, PP_Bool helper_process, const char* key, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ return iface->ManifestResolveKey(instance, helper_process, key, full_url, pnacl_options);
+}
+
+static PP_Bool Pnacl_M25_PPB_NaCl_Private_GetPnaclResourceInfo(PP_Instance instance, const char* filename, struct PP_Var* llc_tool_name, struct PP_Var* ld_tool_name) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- return iface->GetNexeFd(instance, pexe_url, abi_version, opt_level, last_modified, etag, has_no_store_header, is_hit, nexe_handle, *callback);
+ return iface->GetPnaclResourceInfo(instance, filename, llc_tool_name, ld_tool_name);
}
-static void Pnacl_M25_PPB_NaCl_Private_ReportTranslationFinished(PP_Instance instance, PP_Bool success) {
+static void Pnacl_M25_PPB_NaCl_Private_GetCpuFeatureAttrs(struct PP_Var* _struct_result) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- iface->ReportTranslationFinished(instance, success);
+ *_struct_result = iface->GetCpuFeatureAttrs();
}
-static PP_ExternalPluginResult Pnacl_M25_PPB_NaCl_Private_ReportNaClError(PP_Instance instance, PP_NaClError message_id) {
+static void Pnacl_M25_PPB_NaCl_Private_PostMessageToJavaScript(PP_Instance instance, const char* message) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- return iface->ReportNaClError(instance, message_id);
+ iface->PostMessageToJavaScript(instance, message);
}
-static PP_FileHandle Pnacl_M25_PPB_NaCl_Private_OpenNaClExecutable(PP_Instance instance, const char* file_url, uint64_t* file_token_lo, uint64_t* file_token_hi) {
+static void Pnacl_M25_PPB_NaCl_Private_DownloadNexe(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback* callback) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- return iface->OpenNaClExecutable(instance, file_url, file_token_lo, file_token_hi);
+ iface->DownloadNexe(instance, url, file_info, *callback);
}
-static void Pnacl_M25_PPB_NaCl_Private_DispatchEvent(PP_Instance instance, PP_NaClEventType event_type, struct PP_Var* resource_url, PP_Bool length_is_computable, uint64_t loaded_bytes, uint64_t total_bytes) {
+static void Pnacl_M25_PPB_NaCl_Private_DownloadFile(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback* callback) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- iface->DispatchEvent(instance, event_type, *resource_url, length_is_computable, loaded_bytes, total_bytes);
+ iface->DownloadFile(instance, url, file_info, *callback);
}
-static void Pnacl_M25_PPB_NaCl_Private_SetReadOnlyProperty(PP_Instance instance, struct PP_Var* key, struct PP_Var* value) {
+static void Pnacl_M25_PPB_NaCl_Private_ReportSelLdrStatus(PP_Instance instance, int32_t load_status, int32_t max_status) {
const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
- iface->SetReadOnlyProperty(instance, *key, *value);
+ iface->ReportSelLdrStatus(instance, load_status, max_status);
+}
+
+static void Pnacl_M25_PPB_NaCl_Private_LogTranslateTime(const char* histogram_name, int64_t time_us) {
+ const struct PPB_NaCl_Private_1_0 *iface = Pnacl_WrapperInfo_PPB_NaCl_Private_1_0.real_iface;
+ iface->LogTranslateTime(histogram_name, time_us);
}
/* End wrapper methods for PPB_NaCl_Private_1_0 */
@@ -3692,24 +4125,29 @@ static void Pnacl_M23_PPB_UDPSocket_Private_Close(PP_Resource udp_socket) {
/* End wrapper methods for PPB_UDPSocket_Private_0_4 */
-/* Begin wrapper methods for PPB_UMA_Private_0_1 */
+/* Begin wrapper methods for PPB_UMA_Private_0_3 */
+
+static void Pnacl_M35_PPB_UMA_Private_HistogramCustomTimes(PP_Instance instance, struct PP_Var* name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count) {
+ const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
+ iface->HistogramCustomTimes(instance, *name, sample, min, max, bucket_count);
+}
-static void Pnacl_M18_PPB_UMA_Private_HistogramCustomTimes(struct PP_Var* name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count) {
- const struct PPB_UMA_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_1.real_iface;
- iface->HistogramCustomTimes(*name, sample, min, max, bucket_count);
+static void Pnacl_M35_PPB_UMA_Private_HistogramCustomCounts(PP_Instance instance, struct PP_Var* name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count) {
+ const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
+ iface->HistogramCustomCounts(instance, *name, sample, min, max, bucket_count);
}
-static void Pnacl_M18_PPB_UMA_Private_HistogramCustomCounts(struct PP_Var* name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count) {
- const struct PPB_UMA_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_1.real_iface;
- iface->HistogramCustomCounts(*name, sample, min, max, bucket_count);
+static void Pnacl_M35_PPB_UMA_Private_HistogramEnumeration(PP_Instance instance, struct PP_Var* name, int32_t sample, int32_t boundary_value) {
+ const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
+ iface->HistogramEnumeration(instance, *name, sample, boundary_value);
}
-static void Pnacl_M18_PPB_UMA_Private_HistogramEnumeration(struct PP_Var* name, int32_t sample, int32_t boundary_value) {
- const struct PPB_UMA_Private_0_1 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_1.real_iface;
- iface->HistogramEnumeration(*name, sample, boundary_value);
+static int32_t Pnacl_M35_PPB_UMA_Private_IsCrashReportingEnabled(PP_Instance instance, struct PP_CompletionCallback* callback) {
+ const struct PPB_UMA_Private_0_3 *iface = Pnacl_WrapperInfo_PPB_UMA_Private_0_3.real_iface;
+ return iface->IsCrashReportingEnabled(instance, *callback);
}
-/* End wrapper methods for PPB_UMA_Private_0_1 */
+/* End wrapper methods for PPB_UMA_Private_0_3 */
/* Begin wrapper methods for PPB_VideoDestination_Private_0_1 */
@@ -3793,79 +4231,88 @@ static void Pnacl_M19_PPB_X509Certificate_Private_GetField(struct PP_Var* _struc
/* End wrapper methods for PPB_X509Certificate_Private_0_1 */
-/* Begin wrapper methods for PPP_ContentDecryptor_Private_0_9 */
+/* Begin wrapper methods for PPP_ContentDecryptor_Private_0_12 */
-static void Pnacl_M33_PPP_ContentDecryptor_Private_Initialize(PP_Instance instance, struct PP_Var key_system) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_Initialize(PP_Instance instance, struct PP_Var key_system) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, struct PP_Var* key_system) =
((void (*)(PP_Instance instance, struct PP_Var* key_system))iface->Initialize);
temp_fp(instance, &key_system);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_CreateSession(PP_Instance instance, uint32_t session_id, struct PP_Var type, struct PP_Var init_data) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
- void (*temp_fp)(PP_Instance instance, uint32_t session_id, struct PP_Var* type, struct PP_Var* init_data) =
- ((void (*)(PP_Instance instance, uint32_t session_id, struct PP_Var* type, struct PP_Var* init_data))iface->CreateSession);
- temp_fp(instance, session_id, &type, &init_data);
+static void Pnacl_M36_PPP_ContentDecryptor_Private_CreateSession(PP_Instance instance, uint32_t promise_id, struct PP_Var init_data_type, struct PP_Var init_data, PP_SessionType session_type) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
+ void (*temp_fp)(PP_Instance instance, uint32_t promise_id, struct PP_Var* init_data_type, struct PP_Var* init_data, PP_SessionType session_type) =
+ ((void (*)(PP_Instance instance, uint32_t promise_id, struct PP_Var* init_data_type, struct PP_Var* init_data, PP_SessionType session_type))iface->CreateSession);
+ temp_fp(instance, promise_id, &init_data_type, &init_data, session_type);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_UpdateSession(PP_Instance instance, uint32_t session_id, struct PP_Var response) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
- void (*temp_fp)(PP_Instance instance, uint32_t session_id, struct PP_Var* response) =
- ((void (*)(PP_Instance instance, uint32_t session_id, struct PP_Var* response))iface->UpdateSession);
- temp_fp(instance, session_id, &response);
+static void Pnacl_M36_PPP_ContentDecryptor_Private_LoadSession(PP_Instance instance, uint32_t promise_id, struct PP_Var web_session_id) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
+ void (*temp_fp)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id) =
+ ((void (*)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id))iface->LoadSession);
+ temp_fp(instance, promise_id, &web_session_id);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_ReleaseSession(PP_Instance instance, uint32_t session_id) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
- void (*temp_fp)(PP_Instance instance, uint32_t session_id) =
- ((void (*)(PP_Instance instance, uint32_t session_id))iface->ReleaseSession);
- temp_fp(instance, session_id);
+static void Pnacl_M36_PPP_ContentDecryptor_Private_UpdateSession(PP_Instance instance, uint32_t promise_id, struct PP_Var web_session_id, struct PP_Var response) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
+ void (*temp_fp)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id, struct PP_Var* response) =
+ ((void (*)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id, struct PP_Var* response))iface->UpdateSession);
+ temp_fp(instance, promise_id, &web_session_id, &response);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_Decrypt(PP_Instance instance, PP_Resource encrypted_block, const struct PP_EncryptedBlockInfo* encrypted_block_info) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_ReleaseSession(PP_Instance instance, uint32_t promise_id, struct PP_Var web_session_id) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
+ void (*temp_fp)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id) =
+ ((void (*)(PP_Instance instance, uint32_t promise_id, struct PP_Var* web_session_id))iface->ReleaseSession);
+ temp_fp(instance, promise_id, &web_session_id);
+}
+
+static void Pnacl_M36_PPP_ContentDecryptor_Private_Decrypt(PP_Instance instance, PP_Resource encrypted_block, const struct PP_EncryptedBlockInfo* encrypted_block_info) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, PP_Resource encrypted_block, const struct PP_EncryptedBlockInfo* encrypted_block_info) =
((void (*)(PP_Instance instance, PP_Resource encrypted_block, const struct PP_EncryptedBlockInfo* encrypted_block_info))iface->Decrypt);
temp_fp(instance, encrypted_block, encrypted_block_info);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_InitializeAudioDecoder(PP_Instance instance, const struct PP_AudioDecoderConfig* decoder_config, PP_Resource codec_extra_data) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_InitializeAudioDecoder(PP_Instance instance, const struct PP_AudioDecoderConfig* decoder_config, PP_Resource codec_extra_data) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, const struct PP_AudioDecoderConfig* decoder_config, PP_Resource codec_extra_data) =
((void (*)(PP_Instance instance, const struct PP_AudioDecoderConfig* decoder_config, PP_Resource codec_extra_data))iface->InitializeAudioDecoder);
temp_fp(instance, decoder_config, codec_extra_data);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_InitializeVideoDecoder(PP_Instance instance, const struct PP_VideoDecoderConfig* decoder_config, PP_Resource codec_extra_data) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_InitializeVideoDecoder(PP_Instance instance, const struct PP_VideoDecoderConfig* decoder_config, PP_Resource codec_extra_data) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, const struct PP_VideoDecoderConfig* decoder_config, PP_Resource codec_extra_data) =
((void (*)(PP_Instance instance, const struct PP_VideoDecoderConfig* decoder_config, PP_Resource codec_extra_data))iface->InitializeVideoDecoder);
temp_fp(instance, decoder_config, codec_extra_data);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_DeinitializeDecoder(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_DeinitializeDecoder(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) =
((void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))iface->DeinitializeDecoder);
temp_fp(instance, decoder_type, request_id);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_ResetDecoder(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_ResetDecoder(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id) =
((void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))iface->ResetDecoder);
temp_fp(instance, decoder_type, request_id);
}
-static void Pnacl_M33_PPP_ContentDecryptor_Private_DecryptAndDecode(PP_Instance instance, PP_DecryptorStreamType decoder_type, PP_Resource encrypted_buffer, const struct PP_EncryptedBlockInfo* encrypted_block_info) {
- const struct PPP_ContentDecryptor_Private_0_9 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9.real_iface;
+static void Pnacl_M36_PPP_ContentDecryptor_Private_DecryptAndDecode(PP_Instance instance, PP_DecryptorStreamType decoder_type, PP_Resource encrypted_buffer, const struct PP_EncryptedBlockInfo* encrypted_block_info) {
+ const struct PPP_ContentDecryptor_Private_0_12 *iface = Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12.real_iface;
void (*temp_fp)(PP_Instance instance, PP_DecryptorStreamType decoder_type, PP_Resource encrypted_buffer, const struct PP_EncryptedBlockInfo* encrypted_block_info) =
((void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, PP_Resource encrypted_buffer, const struct PP_EncryptedBlockInfo* encrypted_block_info))iface->DecryptAndDecode);
temp_fp(instance, decoder_type, encrypted_buffer, encrypted_block_info);
}
-/* End wrapper methods for PPP_ContentDecryptor_Private_0_9 */
+/* End wrapper methods for PPP_ContentDecryptor_Private_0_12 */
+
+/* Not generating wrapper methods for PPP_Find_Private_0_3 */
/* Not generating wrapper methods for PPP_Flash_BrowserOperations_1_0 */
@@ -3886,203 +4333,43 @@ static struct PP_Var Pnacl_M18_PPP_Instance_Private_GetInstanceObject(PP_Instanc
/* End wrapper methods for PPP_Instance_Private_0_1 */
-/* Begin wrapper methods for PPB_Ext_Socket_Dev_0_1 */
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Create(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev* create_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Create(instance, type, options, create_info, *callback);
-}
-
-static void Pnacl_M28_PPB_Ext_Socket_Dev_Destroy(PP_Instance instance, struct PP_Var* socket_id) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- iface->Destroy(instance, *socket_id);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Connect(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* hostname, struct PP_Var* port, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Connect(instance, *socket_id, *hostname, *port, result, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Bind(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* port, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Bind(instance, *socket_id, *address, *port, result, *callback);
-}
-
-static void Pnacl_M28_PPB_Ext_Socket_Dev_Disconnect(PP_Instance instance, struct PP_Var* socket_id) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- iface->Disconnect(instance, *socket_id);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Read(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* buffer_size, PP_Ext_Socket_ReadInfo_Dev* read_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Read(instance, *socket_id, *buffer_size, read_info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Write(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* data, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Write(instance, *socket_id, *data, write_info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_RecvFrom(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* buffer_size, PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->RecvFrom(instance, *socket_id, *buffer_size, recv_from_info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_SendTo(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* data, struct PP_Var* address, struct PP_Var* port, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->SendTo(instance, *socket_id, *data, *address, *port, write_info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Listen(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* port, struct PP_Var* backlog, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Listen(instance, *socket_id, *address, *port, *backlog, result, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_Accept(PP_Instance instance, struct PP_Var* socket_id, PP_Ext_Socket_AcceptInfo_Dev* accept_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->Accept(instance, *socket_id, accept_info, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_SetKeepAlive(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* enable, struct PP_Var* delay, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->SetKeepAlive(instance, *socket_id, *enable, *delay, result, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_SetNoDelay(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* no_delay, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->SetNoDelay(instance, *socket_id, *no_delay, result, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_GetInfo(PP_Instance instance, struct PP_Var* socket_id, PP_Ext_Socket_SocketInfo_Dev* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->GetInfo(instance, *socket_id, result, *callback);
-}
-
-static int32_t Pnacl_M28_PPB_Ext_Socket_Dev_GetNetworkList(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_1 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1.real_iface;
- return iface->GetNetworkList(instance, result, *callback);
-}
-
-/* End wrapper methods for PPB_Ext_Socket_Dev_0_1 */
-
-/* Begin wrapper methods for PPB_Ext_Socket_Dev_0_2 */
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Create(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev* create_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Create(instance, type, options, create_info, *callback);
-}
-
-static void Pnacl_M29_PPB_Ext_Socket_Dev_Destroy(PP_Instance instance, struct PP_Var* socket_id) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- iface->Destroy(instance, *socket_id);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Connect(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* hostname, struct PP_Var* port, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Connect(instance, *socket_id, *hostname, *port, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Bind(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* port, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Bind(instance, *socket_id, *address, *port, result, *callback);
-}
-
-static void Pnacl_M29_PPB_Ext_Socket_Dev_Disconnect(PP_Instance instance, struct PP_Var* socket_id) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- iface->Disconnect(instance, *socket_id);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Read(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* buffer_size, PP_Ext_Socket_ReadInfo_Dev* read_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Read(instance, *socket_id, *buffer_size, read_info, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Write(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* data, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Write(instance, *socket_id, *data, write_info, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_RecvFrom(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* buffer_size, PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->RecvFrom(instance, *socket_id, *buffer_size, recv_from_info, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_SendTo(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* data, struct PP_Var* address, struct PP_Var* port, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->SendTo(instance, *socket_id, *data, *address, *port, write_info, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Listen(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* port, struct PP_Var* backlog, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Listen(instance, *socket_id, *address, *port, *backlog, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_Accept(PP_Instance instance, struct PP_Var* socket_id, PP_Ext_Socket_AcceptInfo_Dev* accept_info, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->Accept(instance, *socket_id, accept_info, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_SetKeepAlive(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* enable, struct PP_Var* delay, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->SetKeepAlive(instance, *socket_id, *enable, *delay, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_SetNoDelay(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* no_delay, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->SetNoDelay(instance, *socket_id, *no_delay, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_GetInfo(PP_Instance instance, struct PP_Var* socket_id, PP_Ext_Socket_SocketInfo_Dev* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->GetInfo(instance, *socket_id, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_GetNetworkList(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->GetNetworkList(instance, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_JoinGroup(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->JoinGroup(instance, *socket_id, *address, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_LeaveGroup(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* address, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->LeaveGroup(instance, *socket_id, *address, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_SetMulticastTimeToLive(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* ttl, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->SetMulticastTimeToLive(instance, *socket_id, *ttl, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_SetMulticastLoopbackMode(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* enabled, struct PP_Var* result, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->SetMulticastLoopbackMode(instance, *socket_id, *enabled, result, *callback);
-}
-
-static int32_t Pnacl_M29_PPB_Ext_Socket_Dev_GetJoinedGroups(PP_Instance instance, struct PP_Var* socket_id, struct PP_Var* groups, struct PP_CompletionCallback* callback) {
- const struct PPB_Ext_Socket_Dev_0_2 *iface = Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2.real_iface;
- return iface->GetJoinedGroups(instance, *socket_id, groups, *callback);
-}
-
-/* End wrapper methods for PPB_Ext_Socket_Dev_0_2 */
-
/* Not generating wrapper interface for PPB_Audio_1_0 */
/* Not generating wrapper interface for PPB_Audio_1_1 */
+/* Not generating wrapper interface for PPB_AudioBuffer_0_1 */
+
/* Not generating wrapper interface for PPB_AudioConfig_1_0 */
/* Not generating wrapper interface for PPB_AudioConfig_1_1 */
-struct PPB_Console_1_0 Pnacl_Wrappers_PPB_Console_1_0 = {
+static const struct PPB_Compositor_0_1 Pnacl_Wrappers_PPB_Compositor_0_1 = {
+ .IsCompositor = (PP_Bool (*)(PP_Resource resource))&Pnacl_M37_PPB_Compositor_IsCompositor,
+ .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M37_PPB_Compositor_Create,
+ .AddLayer = (PP_Resource (*)(PP_Resource compositor))&Pnacl_M37_PPB_Compositor_AddLayer,
+ .CommitLayers = (int32_t (*)(PP_Resource compositor, struct PP_CompletionCallback cc))&Pnacl_M37_PPB_Compositor_CommitLayers,
+ .ResetLayers = (int32_t (*)(PP_Resource compositor))&Pnacl_M37_PPB_Compositor_ResetLayers
+};
+
+static const struct PPB_CompositorLayer_0_1 Pnacl_Wrappers_PPB_CompositorLayer_0_1 = {
+ .IsCompositorLayer = (PP_Bool (*)(PP_Resource resource))&Pnacl_M37_PPB_CompositorLayer_IsCompositorLayer,
+ .SetColor = (int32_t (*)(PP_Resource layer, float red, float green, float blue, float alpha, const struct PP_Size* size))&Pnacl_M37_PPB_CompositorLayer_SetColor,
+ .SetTexture = (int32_t (*)(PP_Resource layer, PP_Resource context, uint32_t texture, const struct PP_Size* size, struct PP_CompletionCallback cc))&Pnacl_M37_PPB_CompositorLayer_SetTexture,
+ .SetImage = (int32_t (*)(PP_Resource layer, PP_Resource image_data, const struct PP_Size* size, struct PP_CompletionCallback cc))&Pnacl_M37_PPB_CompositorLayer_SetImage,
+ .SetClipRect = (int32_t (*)(PP_Resource layer, const struct PP_Rect* rect))&Pnacl_M37_PPB_CompositorLayer_SetClipRect,
+ .SetTransform = (int32_t (*)(PP_Resource layer, const float matrix[16]))&Pnacl_M37_PPB_CompositorLayer_SetTransform,
+ .SetOpacity = (int32_t (*)(PP_Resource layer, float opacity))&Pnacl_M37_PPB_CompositorLayer_SetOpacity,
+ .SetBlendMode = (int32_t (*)(PP_Resource layer, PP_BlendMode mode))&Pnacl_M37_PPB_CompositorLayer_SetBlendMode,
+ .SetSourceRect = (int32_t (*)(PP_Resource layer, const struct PP_FloatRect* rect))&Pnacl_M37_PPB_CompositorLayer_SetSourceRect,
+ .SetPremultipliedAlpha = (int32_t (*)(PP_Resource layer, PP_Bool premult))&Pnacl_M37_PPB_CompositorLayer_SetPremultipliedAlpha
+};
+
+static const struct PPB_Console_1_0 Pnacl_Wrappers_PPB_Console_1_0 = {
.Log = (void (*)(PP_Instance instance, PP_LogLevel level, struct PP_Var value))&Pnacl_M25_PPB_Console_Log,
.LogWithSource = (void (*)(PP_Instance instance, PP_LogLevel level, struct PP_Var source, struct PP_Var value))&Pnacl_M25_PPB_Console_LogWithSource
};
-struct PPB_Core_1_0 Pnacl_Wrappers_PPB_Core_1_0 = {
+static const struct PPB_Core_1_0 Pnacl_Wrappers_PPB_Core_1_0 = {
.AddRefResource = (void (*)(PP_Resource resource))&Pnacl_M14_PPB_Core_AddRefResource,
.ReleaseResource = (void (*)(PP_Resource resource))&Pnacl_M14_PPB_Core_ReleaseResource,
.GetTime = (PP_Time (*)(void))&Pnacl_M14_PPB_Core_GetTime,
@@ -4091,7 +4378,7 @@ struct PPB_Core_1_0 Pnacl_Wrappers_PPB_Core_1_0 = {
.IsMainThread = (PP_Bool (*)(void))&Pnacl_M14_PPB_Core_IsMainThread
};
-struct PPB_FileIO_1_0 Pnacl_Wrappers_PPB_FileIO_1_0 = {
+static const struct PPB_FileIO_1_0 Pnacl_Wrappers_PPB_FileIO_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_FileIO_Create,
.IsFileIO = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileIO_IsFileIO,
.Open = (int32_t (*)(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileIO_Open,
@@ -4104,7 +4391,7 @@ struct PPB_FileIO_1_0 Pnacl_Wrappers_PPB_FileIO_1_0 = {
.Close = (void (*)(PP_Resource file_io))&Pnacl_M14_PPB_FileIO_Close
};
-struct PPB_FileIO_1_1 Pnacl_Wrappers_PPB_FileIO_1_1 = {
+static const struct PPB_FileIO_1_1 Pnacl_Wrappers_PPB_FileIO_1_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_FileIO_Create,
.IsFileIO = (PP_Bool (*)(PP_Resource resource))&Pnacl_M25_PPB_FileIO_IsFileIO,
.Open = (int32_t (*)(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_Open,
@@ -4118,7 +4405,13 @@ struct PPB_FileIO_1_1 Pnacl_Wrappers_PPB_FileIO_1_1 = {
.ReadToArray = (int32_t (*)(PP_Resource file_io, int64_t offset, int32_t max_read_length, struct PP_ArrayOutput* output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_FileIO_ReadToArray
};
-struct PPB_FileRef_1_0 Pnacl_Wrappers_PPB_FileRef_1_0 = {
+static const struct PPB_FileMapping_0_1 Pnacl_Wrappers_PPB_FileMapping_0_1 = {
+ .Map = (int32_t (*)(PP_Instance instance, PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void** address, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileMapping_Map,
+ .Unmap = (int32_t (*)(PP_Instance instance, const void* address, int64_t length, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileMapping_Unmap,
+ .GetMapPageSize = (int64_t (*)(PP_Instance instance))&Pnacl_M34_PPB_FileMapping_GetMapPageSize
+};
+
+static const struct PPB_FileRef_1_0 Pnacl_Wrappers_PPB_FileRef_1_0 = {
.Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M14_PPB_FileRef_Create,
.IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileRef_IsFileRef,
.GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M14_PPB_FileRef_GetFileSystemType,
@@ -4131,7 +4424,7 @@ struct PPB_FileRef_1_0 Pnacl_Wrappers_PPB_FileRef_1_0 = {
.Rename = (int32_t (*)(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileRef_Rename
};
-struct PPB_FileRef_1_1 Pnacl_Wrappers_PPB_FileRef_1_1 = {
+static const struct PPB_FileRef_1_1 Pnacl_Wrappers_PPB_FileRef_1_1 = {
.Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M28_PPB_FileRef_Create,
.IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_FileRef_IsFileRef,
.GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M28_PPB_FileRef_GetFileSystemType,
@@ -4146,7 +4439,22 @@ struct PPB_FileRef_1_1 Pnacl_Wrappers_PPB_FileRef_1_1 = {
.ReadDirectoryEntries = (int32_t (*)(PP_Resource file_ref, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileRef_ReadDirectoryEntries
};
-struct PPB_FileSystem_1_0 Pnacl_Wrappers_PPB_FileSystem_1_0 = {
+static const struct PPB_FileRef_1_2 Pnacl_Wrappers_PPB_FileRef_1_2 = {
+ .Create = (PP_Resource (*)(PP_Resource file_system, const char* path))&Pnacl_M34_PPB_FileRef_Create,
+ .IsFileRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M34_PPB_FileRef_IsFileRef,
+ .GetFileSystemType = (PP_FileSystemType (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetFileSystemType,
+ .GetName = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetName,
+ .GetPath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetPath,
+ .GetParent = (PP_Resource (*)(PP_Resource file_ref))&Pnacl_M34_PPB_FileRef_GetParent,
+ .MakeDirectory = (int32_t (*)(PP_Resource directory_ref, int32_t make_directory_flags, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_MakeDirectory,
+ .Touch = (int32_t (*)(PP_Resource file_ref, PP_Time last_access_time, PP_Time last_modified_time, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Touch,
+ .Delete = (int32_t (*)(PP_Resource file_ref, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Delete,
+ .Rename = (int32_t (*)(PP_Resource file_ref, PP_Resource new_file_ref, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Rename,
+ .Query = (int32_t (*)(PP_Resource file_ref, struct PP_FileInfo* info, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_Query,
+ .ReadDirectoryEntries = (int32_t (*)(PP_Resource file_ref, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M34_PPB_FileRef_ReadDirectoryEntries
+};
+
+static const struct PPB_FileSystem_1_0 Pnacl_Wrappers_PPB_FileSystem_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_FileSystemType type))&Pnacl_M14_PPB_FileSystem_Create,
.IsFileSystem = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_FileSystem_IsFileSystem,
.Open = (int32_t (*)(PP_Resource file_system, int64_t expected_size, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_FileSystem_Open,
@@ -4157,7 +4465,7 @@ struct PPB_FileSystem_1_0 Pnacl_Wrappers_PPB_FileSystem_1_0 = {
/* Not generating wrapper interface for PPB_Gamepad_1_0 */
-struct PPB_Graphics2D_1_0 Pnacl_Wrappers_PPB_Graphics2D_1_0 = {
+static const struct PPB_Graphics2D_1_0 Pnacl_Wrappers_PPB_Graphics2D_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque))&Pnacl_M14_PPB_Graphics2D_Create,
.IsGraphics2D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_Graphics2D_IsGraphics2D,
.Describe = (PP_Bool (*)(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque))&Pnacl_M14_PPB_Graphics2D_Describe,
@@ -4167,7 +4475,7 @@ struct PPB_Graphics2D_1_0 Pnacl_Wrappers_PPB_Graphics2D_1_0 = {
.Flush = (int32_t (*)(PP_Resource graphics_2d, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_Graphics2D_Flush
};
-struct PPB_Graphics2D_1_1 Pnacl_Wrappers_PPB_Graphics2D_1_1 = {
+static const struct PPB_Graphics2D_1_1 Pnacl_Wrappers_PPB_Graphics2D_1_1 = {
.Create = (PP_Resource (*)(PP_Instance instance, const struct PP_Size* size, PP_Bool is_always_opaque))&Pnacl_M27_PPB_Graphics2D_Create,
.IsGraphics2D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M27_PPB_Graphics2D_IsGraphics2D,
.Describe = (PP_Bool (*)(PP_Resource graphics_2d, struct PP_Size* size, PP_Bool* is_always_opaque))&Pnacl_M27_PPB_Graphics2D_Describe,
@@ -4179,7 +4487,7 @@ struct PPB_Graphics2D_1_1 Pnacl_Wrappers_PPB_Graphics2D_1_1 = {
.GetScale = (float (*)(PP_Resource resource))&Pnacl_M27_PPB_Graphics2D_GetScale
};
-struct PPB_Graphics3D_1_0 Pnacl_Wrappers_PPB_Graphics3D_1_0 = {
+static const struct PPB_Graphics3D_1_0 Pnacl_Wrappers_PPB_Graphics3D_1_0 = {
.GetAttribMaxValue = (int32_t (*)(PP_Resource instance, int32_t attribute, int32_t* value))&Pnacl_M15_PPB_Graphics3D_GetAttribMaxValue,
.Create = (PP_Resource (*)(PP_Instance instance, PP_Resource share_context, const int32_t attrib_list[]))&Pnacl_M15_PPB_Graphics3D_Create,
.IsGraphics3D = (PP_Bool (*)(PP_Resource resource))&Pnacl_M15_PPB_Graphics3D_IsGraphics3D,
@@ -4190,7 +4498,7 @@ struct PPB_Graphics3D_1_0 Pnacl_Wrappers_PPB_Graphics3D_1_0 = {
.SwapBuffers = (int32_t (*)(PP_Resource context, struct PP_CompletionCallback callback))&Pnacl_M15_PPB_Graphics3D_SwapBuffers
};
-struct PPB_HostResolver_1_0 Pnacl_Wrappers_PPB_HostResolver_1_0 = {
+static const struct PPB_HostResolver_1_0 Pnacl_Wrappers_PPB_HostResolver_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_HostResolver_Create,
.IsHostResolver = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_HostResolver_IsHostResolver,
.Resolve = (int32_t (*)(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Hint* hint, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_HostResolver_Resolve,
@@ -4203,7 +4511,7 @@ struct PPB_HostResolver_1_0 Pnacl_Wrappers_PPB_HostResolver_1_0 = {
/* Not generating wrapper interface for PPB_InputEvent_1_0 */
-struct PPB_MouseInputEvent_1_0 Pnacl_Wrappers_PPB_MouseInputEvent_1_0 = {
+static const struct PPB_MouseInputEvent_1_0 Pnacl_Wrappers_PPB_MouseInputEvent_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count))&Pnacl_M13_PPB_MouseInputEvent_Create,
.IsMouseInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_MouseInputEvent_IsMouseInputEvent,
.GetButton = (PP_InputEvent_MouseButton (*)(PP_Resource mouse_event))&Pnacl_M13_PPB_MouseInputEvent_GetButton,
@@ -4211,7 +4519,7 @@ struct PPB_MouseInputEvent_1_0 Pnacl_Wrappers_PPB_MouseInputEvent_1_0 = {
.GetClickCount = (int32_t (*)(PP_Resource mouse_event))&Pnacl_M13_PPB_MouseInputEvent_GetClickCount
};
-struct PPB_MouseInputEvent_1_1 Pnacl_Wrappers_PPB_MouseInputEvent_1_1 = {
+static const struct PPB_MouseInputEvent_1_1 Pnacl_Wrappers_PPB_MouseInputEvent_1_1 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, PP_InputEvent_MouseButton mouse_button, const struct PP_Point* mouse_position, int32_t click_count, const struct PP_Point* mouse_movement))&Pnacl_M14_PPB_MouseInputEvent_Create,
.IsMouseInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_MouseInputEvent_IsMouseInputEvent,
.GetButton = (PP_InputEvent_MouseButton (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetButton,
@@ -4220,7 +4528,7 @@ struct PPB_MouseInputEvent_1_1 Pnacl_Wrappers_PPB_MouseInputEvent_1_1 = {
.GetMovement = (struct PP_Point (*)(PP_Resource mouse_event))&Pnacl_M14_PPB_MouseInputEvent_GetMovement
};
-struct PPB_WheelInputEvent_1_0 Pnacl_Wrappers_PPB_WheelInputEvent_1_0 = {
+static const struct PPB_WheelInputEvent_1_0 Pnacl_Wrappers_PPB_WheelInputEvent_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_TimeTicks time_stamp, uint32_t modifiers, const struct PP_FloatPoint* wheel_delta, const struct PP_FloatPoint* wheel_ticks, PP_Bool scroll_by_page))&Pnacl_M13_PPB_WheelInputEvent_Create,
.IsWheelInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_WheelInputEvent_IsWheelInputEvent,
.GetDelta = (struct PP_FloatPoint (*)(PP_Resource wheel_event))&Pnacl_M13_PPB_WheelInputEvent_GetDelta,
@@ -4228,14 +4536,22 @@ struct PPB_WheelInputEvent_1_0 Pnacl_Wrappers_PPB_WheelInputEvent_1_0 = {
.GetScrollByPage = (PP_Bool (*)(PP_Resource wheel_event))&Pnacl_M13_PPB_WheelInputEvent_GetScrollByPage
};
-struct PPB_KeyboardInputEvent_1_0 Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0 = {
+static const struct PPB_KeyboardInputEvent_1_0 Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var character_text))&Pnacl_M13_PPB_KeyboardInputEvent_Create,
.IsKeyboardInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_KeyboardInputEvent_IsKeyboardInputEvent,
.GetKeyCode = (uint32_t (*)(PP_Resource key_event))&Pnacl_M13_PPB_KeyboardInputEvent_GetKeyCode,
.GetCharacterText = (struct PP_Var (*)(PP_Resource character_event))&Pnacl_M13_PPB_KeyboardInputEvent_GetCharacterText
};
-struct PPB_TouchInputEvent_1_0 Pnacl_Wrappers_PPB_TouchInputEvent_1_0 = {
+static const struct PPB_KeyboardInputEvent_1_2 Pnacl_Wrappers_PPB_KeyboardInputEvent_1_2 = {
+ .Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers, uint32_t key_code, struct PP_Var character_text, struct PP_Var code))&Pnacl_M34_PPB_KeyboardInputEvent_Create,
+ .IsKeyboardInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M34_PPB_KeyboardInputEvent_IsKeyboardInputEvent,
+ .GetKeyCode = (uint32_t (*)(PP_Resource key_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetKeyCode,
+ .GetCharacterText = (struct PP_Var (*)(PP_Resource character_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetCharacterText,
+ .GetCode = (struct PP_Var (*)(PP_Resource key_event))&Pnacl_M34_PPB_KeyboardInputEvent_GetCode
+};
+
+static const struct PPB_TouchInputEvent_1_0 Pnacl_Wrappers_PPB_TouchInputEvent_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, uint32_t modifiers))&Pnacl_M13_PPB_TouchInputEvent_Create,
.AddTouchPoint = (void (*)(PP_Resource touch_event, PP_TouchListType list, const struct PP_TouchPoint* point))&Pnacl_M13_PPB_TouchInputEvent_AddTouchPoint,
.IsTouchInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_TouchInputEvent_IsTouchInputEvent,
@@ -4244,7 +4560,7 @@ struct PPB_TouchInputEvent_1_0 Pnacl_Wrappers_PPB_TouchInputEvent_1_0 = {
.GetTouchById = (struct PP_TouchPoint (*)(PP_Resource resource, PP_TouchListType list, uint32_t touch_id))&Pnacl_M13_PPB_TouchInputEvent_GetTouchById
};
-struct PPB_IMEInputEvent_1_0 Pnacl_Wrappers_PPB_IMEInputEvent_1_0 = {
+static const struct PPB_IMEInputEvent_1_0 Pnacl_Wrappers_PPB_IMEInputEvent_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end))&Pnacl_M13_PPB_IMEInputEvent_Create,
.IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M13_PPB_IMEInputEvent_IsIMEInputEvent,
.GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M13_PPB_IMEInputEvent_GetText,
@@ -4256,7 +4572,43 @@ struct PPB_IMEInputEvent_1_0 Pnacl_Wrappers_PPB_IMEInputEvent_1_0 = {
/* Not generating wrapper interface for PPB_Instance_1_0 */
-struct PPB_MessageLoop_1_0 Pnacl_Wrappers_PPB_MessageLoop_1_0 = {
+static const struct PPB_MediaStreamAudioTrack_0_1 Pnacl_Wrappers_PPB_MediaStreamAudioTrack_0_1 = {
+ .IsMediaStreamAudioTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M35_PPB_MediaStreamAudioTrack_IsMediaStreamAudioTrack,
+ .Configure = (int32_t (*)(PP_Resource audio_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamAudioTrack_Configure,
+ .GetAttrib = (int32_t (*)(PP_Resource audio_track, PP_MediaStreamAudioTrack_Attrib attrib, int32_t* value))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetAttrib,
+ .GetId = (struct PP_Var (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetId,
+ .HasEnded = (PP_Bool (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_HasEnded,
+ .GetBuffer = (int32_t (*)(PP_Resource audio_track, PP_Resource* buffer, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamAudioTrack_GetBuffer,
+ .RecycleBuffer = (int32_t (*)(PP_Resource audio_track, PP_Resource buffer))&Pnacl_M35_PPB_MediaStreamAudioTrack_RecycleBuffer,
+ .Close = (void (*)(PP_Resource audio_track))&Pnacl_M35_PPB_MediaStreamAudioTrack_Close
+};
+
+static const struct PPB_MediaStreamVideoTrack_0_1 Pnacl_Wrappers_PPB_MediaStreamVideoTrack_0_1 = {
+ .IsMediaStreamVideoTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M35_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack,
+ .Configure = (int32_t (*)(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamVideoTrack_Configure,
+ .GetAttrib = (int32_t (*)(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetAttrib,
+ .GetId = (struct PP_Var (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetId,
+ .HasEnded = (PP_Bool (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_HasEnded,
+ .GetFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_MediaStreamVideoTrack_GetFrame,
+ .RecycleFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M35_PPB_MediaStreamVideoTrack_RecycleFrame,
+ .Close = (void (*)(PP_Resource video_track))&Pnacl_M35_PPB_MediaStreamVideoTrack_Close
+};
+
+static const struct PPB_MediaStreamVideoTrack_1_0 Pnacl_Wrappers_PPB_MediaStreamVideoTrack_1_0 = {
+ .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M36_PPB_MediaStreamVideoTrack_Create,
+ .IsMediaStreamVideoTrack = (PP_Bool (*)(PP_Resource resource))&Pnacl_M36_PPB_MediaStreamVideoTrack_IsMediaStreamVideoTrack,
+ .Configure = (int32_t (*)(PP_Resource video_track, const int32_t attrib_list[], struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_Configure,
+ .GetAttrib = (int32_t (*)(PP_Resource video_track, PP_MediaStreamVideoTrack_Attrib attrib, int32_t* value))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetAttrib,
+ .GetId = (struct PP_Var (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetId,
+ .HasEnded = (PP_Bool (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_HasEnded,
+ .GetFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetFrame,
+ .RecycleFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M36_PPB_MediaStreamVideoTrack_RecycleFrame,
+ .Close = (void (*)(PP_Resource video_track))&Pnacl_M36_PPB_MediaStreamVideoTrack_Close,
+ .GetEmptyFrame = (int32_t (*)(PP_Resource video_track, PP_Resource* frame, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_MediaStreamVideoTrack_GetEmptyFrame,
+ .PutFrame = (int32_t (*)(PP_Resource video_track, PP_Resource frame))&Pnacl_M36_PPB_MediaStreamVideoTrack_PutFrame
+};
+
+static const struct PPB_MessageLoop_1_0 Pnacl_Wrappers_PPB_MessageLoop_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_MessageLoop_Create,
.GetForMainThread = (PP_Resource (*)(void))&Pnacl_M25_PPB_MessageLoop_GetForMainThread,
.GetCurrent = (PP_Resource (*)(void))&Pnacl_M25_PPB_MessageLoop_GetCurrent,
@@ -4266,18 +4618,24 @@ struct PPB_MessageLoop_1_0 Pnacl_Wrappers_PPB_MessageLoop_1_0 = {
.PostQuit = (int32_t (*)(PP_Resource message_loop, PP_Bool should_destroy))&Pnacl_M25_PPB_MessageLoop_PostQuit
};
-struct PPB_Messaging_1_0 Pnacl_Wrappers_PPB_Messaging_1_0 = {
+static const struct PPB_Messaging_1_0 Pnacl_Wrappers_PPB_Messaging_1_0 = {
.PostMessage = (void (*)(PP_Instance instance, struct PP_Var message))&Pnacl_M14_PPB_Messaging_PostMessage
};
+static const struct PPB_Messaging_1_1 Pnacl_Wrappers_PPB_Messaging_1_1 = {
+ .PostMessage = (void (*)(PP_Instance instance, struct PP_Var message))&Pnacl_M37_PPB_Messaging_PostMessage,
+ .RegisterMessageHandler = (int32_t (*)(PP_Instance instance, void* user_data, const struct PPP_MessageHandler_0_1* handler, PP_Resource message_loop))&Pnacl_M37_PPB_Messaging_RegisterMessageHandler,
+ .UnregisterMessageHandler = (void (*)(PP_Instance instance))&Pnacl_M37_PPB_Messaging_UnregisterMessageHandler
+};
+
/* Not generating wrapper interface for PPB_MouseCursor_1_0 */
-struct PPB_MouseLock_1_0 Pnacl_Wrappers_PPB_MouseLock_1_0 = {
+static const struct PPB_MouseLock_1_0 Pnacl_Wrappers_PPB_MouseLock_1_0 = {
.LockMouse = (int32_t (*)(PP_Instance instance, struct PP_CompletionCallback callback))&Pnacl_M16_PPB_MouseLock_LockMouse,
.UnlockMouse = (void (*)(PP_Instance instance))&Pnacl_M16_PPB_MouseLock_UnlockMouse
};
-struct PPB_NetAddress_1_0 Pnacl_Wrappers_PPB_NetAddress_1_0 = {
+static const struct PPB_NetAddress_1_0 Pnacl_Wrappers_PPB_NetAddress_1_0 = {
.CreateFromIPv4Address = (PP_Resource (*)(PP_Instance instance, const struct PP_NetAddress_IPv4* ipv4_addr))&Pnacl_M29_PPB_NetAddress_CreateFromIPv4Address,
.CreateFromIPv6Address = (PP_Resource (*)(PP_Instance instance, const struct PP_NetAddress_IPv6* ipv6_addr))&Pnacl_M29_PPB_NetAddress_CreateFromIPv6Address,
.IsNetAddress = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_NetAddress_IsNetAddress,
@@ -4287,7 +4645,7 @@ struct PPB_NetAddress_1_0 Pnacl_Wrappers_PPB_NetAddress_1_0 = {
.DescribeAsIPv6Address = (PP_Bool (*)(PP_Resource addr, struct PP_NetAddress_IPv6* ipv6_addr))&Pnacl_M29_PPB_NetAddress_DescribeAsIPv6Address
};
-struct PPB_NetworkList_1_0 Pnacl_Wrappers_PPB_NetworkList_1_0 = {
+static const struct PPB_NetworkList_1_0 Pnacl_Wrappers_PPB_NetworkList_1_0 = {
.IsNetworkList = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkList_IsNetworkList,
.GetCount = (uint32_t (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkList_GetCount,
.GetName = (struct PP_Var (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetName,
@@ -4298,17 +4656,17 @@ struct PPB_NetworkList_1_0 Pnacl_Wrappers_PPB_NetworkList_1_0 = {
.GetMTU = (uint32_t (*)(PP_Resource resource, uint32_t index))&Pnacl_M31_PPB_NetworkList_GetMTU
};
-struct PPB_NetworkMonitor_1_0 Pnacl_Wrappers_PPB_NetworkMonitor_1_0 = {
+static const struct PPB_NetworkMonitor_1_0 Pnacl_Wrappers_PPB_NetworkMonitor_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M31_PPB_NetworkMonitor_Create,
.UpdateNetworkList = (int32_t (*)(PP_Resource network_monitor, PP_Resource* network_list, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_NetworkMonitor_UpdateNetworkList,
.IsNetworkMonitor = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_NetworkMonitor_IsNetworkMonitor
};
-struct PPB_NetworkProxy_1_0 Pnacl_Wrappers_PPB_NetworkProxy_1_0 = {
+static const struct PPB_NetworkProxy_1_0 Pnacl_Wrappers_PPB_NetworkProxy_1_0 = {
.GetProxyForURL = (int32_t (*)(PP_Instance instance, struct PP_Var url, struct PP_Var* proxy_string, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_NetworkProxy_GetProxyForURL
};
-struct PPB_TCPSocket_1_0 Pnacl_Wrappers_PPB_TCPSocket_1_0 = {
+static const struct PPB_TCPSocket_1_0 Pnacl_Wrappers_PPB_TCPSocket_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_TCPSocket_Create,
.IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_TCPSocket_IsTCPSocket,
.Connect = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_Connect,
@@ -4320,7 +4678,7 @@ struct PPB_TCPSocket_1_0 Pnacl_Wrappers_PPB_TCPSocket_1_0 = {
.SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_TCPSocket_SetOption
};
-struct PPB_TCPSocket_1_1 Pnacl_Wrappers_PPB_TCPSocket_1_1 = {
+static const struct PPB_TCPSocket_1_1 Pnacl_Wrappers_PPB_TCPSocket_1_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M31_PPB_TCPSocket_Create,
.IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_TCPSocket_IsTCPSocket,
.Bind = (int32_t (*)(PP_Resource tcp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_Bind,
@@ -4335,14 +4693,14 @@ struct PPB_TCPSocket_1_1 Pnacl_Wrappers_PPB_TCPSocket_1_1 = {
.SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_TCPSocket_SetOption
};
-struct PPB_TextInputController_1_0 Pnacl_Wrappers_PPB_TextInputController_1_0 = {
+static const struct PPB_TextInputController_1_0 Pnacl_Wrappers_PPB_TextInputController_1_0 = {
.SetTextInputType = (void (*)(PP_Instance instance, PP_TextInput_Type type))&Pnacl_M30_PPB_TextInputController_SetTextInputType,
.UpdateCaretPosition = (void (*)(PP_Instance instance, const struct PP_Rect* caret))&Pnacl_M30_PPB_TextInputController_UpdateCaretPosition,
.CancelCompositionText = (void (*)(PP_Instance instance))&Pnacl_M30_PPB_TextInputController_CancelCompositionText,
.UpdateSurroundingText = (void (*)(PP_Instance instance, struct PP_Var text, uint32_t caret, uint32_t anchor))&Pnacl_M30_PPB_TextInputController_UpdateSurroundingText
};
-struct PPB_UDPSocket_1_0 Pnacl_Wrappers_PPB_UDPSocket_1_0 = {
+static const struct PPB_UDPSocket_1_0 Pnacl_Wrappers_PPB_UDPSocket_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_UDPSocket_Create,
.IsUDPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M29_PPB_UDPSocket_IsUDPSocket,
.Bind = (int32_t (*)(PP_Resource udp_socket, PP_Resource addr, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_Bind,
@@ -4353,7 +4711,7 @@ struct PPB_UDPSocket_1_0 Pnacl_Wrappers_PPB_UDPSocket_1_0 = {
.SetOption = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocket_Option name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_UDPSocket_SetOption
};
-struct PPB_URLLoader_1_0 Pnacl_Wrappers_PPB_URLLoader_1_0 = {
+static const struct PPB_URLLoader_1_0 Pnacl_Wrappers_PPB_URLLoader_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_URLLoader_Create,
.IsURLLoader = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLLoader_IsURLLoader,
.Open = (int32_t (*)(PP_Resource loader, PP_Resource request_info, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_URLLoader_Open,
@@ -4366,7 +4724,7 @@ struct PPB_URLLoader_1_0 Pnacl_Wrappers_PPB_URLLoader_1_0 = {
.Close = (void (*)(PP_Resource loader))&Pnacl_M14_PPB_URLLoader_Close
};
-struct PPB_URLRequestInfo_1_0 Pnacl_Wrappers_PPB_URLRequestInfo_1_0 = {
+static const struct PPB_URLRequestInfo_1_0 Pnacl_Wrappers_PPB_URLRequestInfo_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M14_PPB_URLRequestInfo_Create,
.IsURLRequestInfo = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLRequestInfo_IsURLRequestInfo,
.SetProperty = (PP_Bool (*)(PP_Resource request, PP_URLRequestProperty property, struct PP_Var value))&Pnacl_M14_PPB_URLRequestInfo_SetProperty,
@@ -4374,27 +4732,36 @@ struct PPB_URLRequestInfo_1_0 Pnacl_Wrappers_PPB_URLRequestInfo_1_0 = {
.AppendFileToBody = (PP_Bool (*)(PP_Resource request, PP_Resource file_ref, int64_t start_offset, int64_t number_of_bytes, PP_Time expected_last_modified_time))&Pnacl_M14_PPB_URLRequestInfo_AppendFileToBody
};
-struct PPB_URLResponseInfo_1_0 Pnacl_Wrappers_PPB_URLResponseInfo_1_0 = {
+static const struct PPB_URLResponseInfo_1_0 Pnacl_Wrappers_PPB_URLResponseInfo_1_0 = {
.IsURLResponseInfo = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_URLResponseInfo_IsURLResponseInfo,
.GetProperty = (struct PP_Var (*)(PP_Resource response, PP_URLResponseProperty property))&Pnacl_M14_PPB_URLResponseInfo_GetProperty,
.GetBodyAsFileRef = (PP_Resource (*)(PP_Resource response))&Pnacl_M14_PPB_URLResponseInfo_GetBodyAsFileRef
};
-struct PPB_Var_1_0 Pnacl_Wrappers_PPB_Var_1_0 = {
+static const struct PPB_Var_1_0 Pnacl_Wrappers_PPB_Var_1_0 = {
.AddRef = (void (*)(struct PP_Var var))&Pnacl_M14_PPB_Var_AddRef,
.Release = (void (*)(struct PP_Var var))&Pnacl_M14_PPB_Var_Release,
.VarFromUtf8 = (struct PP_Var (*)(PP_Module module, const char* data, uint32_t len))&Pnacl_M14_PPB_Var_VarFromUtf8,
.VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M14_PPB_Var_VarToUtf8
};
-struct PPB_Var_1_1 Pnacl_Wrappers_PPB_Var_1_1 = {
+static const struct PPB_Var_1_1 Pnacl_Wrappers_PPB_Var_1_1 = {
.AddRef = (void (*)(struct PP_Var var))&Pnacl_M18_PPB_Var_AddRef,
.Release = (void (*)(struct PP_Var var))&Pnacl_M18_PPB_Var_Release,
.VarFromUtf8 = (struct PP_Var (*)(const char* data, uint32_t len))&Pnacl_M18_PPB_Var_VarFromUtf8,
.VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M18_PPB_Var_VarToUtf8
};
-struct PPB_VarArray_1_0 Pnacl_Wrappers_PPB_VarArray_1_0 = {
+static const struct PPB_Var_1_2 Pnacl_Wrappers_PPB_Var_1_2 = {
+ .AddRef = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_AddRef,
+ .Release = (void (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_Release,
+ .VarFromUtf8 = (struct PP_Var (*)(const char* data, uint32_t len))&Pnacl_M34_PPB_Var_VarFromUtf8,
+ .VarToUtf8 = (const char* (*)(struct PP_Var var, uint32_t* len))&Pnacl_M34_PPB_Var_VarToUtf8,
+ .VarToResource = (PP_Resource (*)(struct PP_Var var))&Pnacl_M34_PPB_Var_VarToResource,
+ .VarFromResource = (struct PP_Var (*)(PP_Resource resource))&Pnacl_M34_PPB_Var_VarFromResource
+};
+
+static const struct PPB_VarArray_1_0 Pnacl_Wrappers_PPB_VarArray_1_0 = {
.Create = (struct PP_Var (*)(void))&Pnacl_M29_PPB_VarArray_Create,
.Get = (struct PP_Var (*)(struct PP_Var array, uint32_t index))&Pnacl_M29_PPB_VarArray_Get,
.Set = (PP_Bool (*)(struct PP_Var array, uint32_t index, struct PP_Var value))&Pnacl_M29_PPB_VarArray_Set,
@@ -4402,14 +4769,14 @@ struct PPB_VarArray_1_0 Pnacl_Wrappers_PPB_VarArray_1_0 = {
.SetLength = (PP_Bool (*)(struct PP_Var array, uint32_t length))&Pnacl_M29_PPB_VarArray_SetLength
};
-struct PPB_VarArrayBuffer_1_0 Pnacl_Wrappers_PPB_VarArrayBuffer_1_0 = {
+static const struct PPB_VarArrayBuffer_1_0 Pnacl_Wrappers_PPB_VarArrayBuffer_1_0 = {
.Create = (struct PP_Var (*)(uint32_t size_in_bytes))&Pnacl_M18_PPB_VarArrayBuffer_Create,
.ByteLength = (PP_Bool (*)(struct PP_Var array, uint32_t* byte_length))&Pnacl_M18_PPB_VarArrayBuffer_ByteLength,
.Map = (void* (*)(struct PP_Var array))&Pnacl_M18_PPB_VarArrayBuffer_Map,
.Unmap = (void (*)(struct PP_Var array))&Pnacl_M18_PPB_VarArrayBuffer_Unmap
};
-struct PPB_VarDictionary_1_0 Pnacl_Wrappers_PPB_VarDictionary_1_0 = {
+static const struct PPB_VarDictionary_1_0 Pnacl_Wrappers_PPB_VarDictionary_1_0 = {
.Create = (struct PP_Var (*)(void))&Pnacl_M29_PPB_VarDictionary_Create,
.Get = (struct PP_Var (*)(struct PP_Var dict, struct PP_Var key))&Pnacl_M29_PPB_VarDictionary_Get,
.Set = (PP_Bool (*)(struct PP_Var dict, struct PP_Var key, struct PP_Var value))&Pnacl_M29_PPB_VarDictionary_Set,
@@ -4418,11 +4785,26 @@ struct PPB_VarDictionary_1_0 Pnacl_Wrappers_PPB_VarDictionary_1_0 = {
.GetKeys = (struct PP_Var (*)(struct PP_Var dict))&Pnacl_M29_PPB_VarDictionary_GetKeys
};
+static const struct PPB_VideoDecoder_0_1 Pnacl_Wrappers_PPB_VideoDecoder_0_1 = {
+ .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M36_PPB_VideoDecoder_Create,
+ .IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M36_PPB_VideoDecoder_IsVideoDecoder,
+ .Initialize = (int32_t (*)(PP_Resource video_decoder, PP_Resource graphics3d_context, PP_VideoProfile profile, PP_Bool allow_software_fallback, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Initialize,
+ .Decode = (int32_t (*)(PP_Resource video_decoder, uint32_t decode_id, uint32_t size, const void* buffer, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Decode,
+ .GetPicture = (int32_t (*)(PP_Resource video_decoder, struct PP_VideoPicture* picture, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_GetPicture,
+ .RecyclePicture = (void (*)(PP_Resource video_decoder, const struct PP_VideoPicture* picture))&Pnacl_M36_PPB_VideoDecoder_RecyclePicture,
+ .Flush = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Flush,
+ .Reset = (int32_t (*)(PP_Resource video_decoder, struct PP_CompletionCallback callback))&Pnacl_M36_PPB_VideoDecoder_Reset
+};
+
+/* Not generating wrapper interface for PPB_VideoFrame_0_1 */
+
/* Not generating wrapper interface for PPB_View_1_0 */
/* Not generating wrapper interface for PPB_View_1_1 */
-struct PPB_WebSocket_1_0 Pnacl_Wrappers_PPB_WebSocket_1_0 = {
+/* Not generating wrapper interface for PPB_View_1_2 */
+
+static const struct PPB_WebSocket_1_0 Pnacl_Wrappers_PPB_WebSocket_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M18_PPB_WebSocket_Create,
.IsWebSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_WebSocket_IsWebSocket,
.Connect = (int32_t (*)(PP_Resource web_socket, struct PP_Var url, const struct PP_Var protocols[], uint32_t protocol_count, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_WebSocket_Connect,
@@ -4447,7 +4829,9 @@ struct PPB_WebSocket_1_0 Pnacl_Wrappers_PPB_WebSocket_1_0 = {
/* Not generating wrapper interface for PPP_Instance_1_1 */
-struct PPP_Messaging_1_0 Pnacl_Wrappers_PPP_Messaging_1_0 = {
+/* Not generating wrapper interface for PPP_MessageHandler_0_1 */
+
+static const struct PPP_Messaging_1_0 Pnacl_Wrappers_PPP_Messaging_1_0 = {
.HandleMessage = &Pnacl_M14_PPP_Messaging_HandleMessage
};
@@ -4467,39 +4851,19 @@ struct PPP_Messaging_1_0 Pnacl_Wrappers_PPP_Messaging_1_0 = {
/* Not generating wrapper interface for PPB_URLLoaderTrusted_0_3 */
-struct PPB_Alarms_Dev_0_1 Pnacl_Wrappers_PPB_Alarms_Dev_0_1 = {
- .Create = (void (*)(PP_Instance instance, struct PP_Var name, const struct PP_Alarms_AlarmCreateInfo_Dev* alarm_info))&Pnacl_M33_PPB_Alarms_Dev_Create,
- .Get = (int32_t (*)(PP_Instance instance, struct PP_Var name, struct PP_Alarms_Alarm_Dev* alarm, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_Alarms_Dev_Get,
- .GetAll = (int32_t (*)(PP_Instance instance, struct PP_Alarms_Alarm_Array_Dev* alarms, struct PP_ArrayOutput array_allocator, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_Alarms_Dev_GetAll,
- .Clear = (void (*)(PP_Instance instance, struct PP_Var name))&Pnacl_M33_PPB_Alarms_Dev_Clear,
- .ClearAll = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Alarms_Dev_ClearAll,
- .AddOnAlarmListener = (uint32_t (*)(PP_Instance instance, PP_Alarms_OnAlarm_Dev callback, void* user_data))&Pnacl_M33_PPB_Alarms_Dev_AddOnAlarmListener
-};
-
-struct PPB_AudioInput_Dev_0_2 Pnacl_Wrappers_PPB_AudioInput_Dev_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_AudioInput_Dev_Create,
- .IsAudioInput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_AudioInput_Dev_IsAudioInput,
- .EnumerateDevices = (int32_t (*)(PP_Resource audio_input, PP_Resource* devices, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_AudioInput_Dev_EnumerateDevices,
- .Open = (int32_t (*)(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_2 audio_input_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_AudioInput_Dev_Open,
- .GetCurrentConfig = (PP_Resource (*)(PP_Resource audio_input))&Pnacl_M19_PPB_AudioInput_Dev_GetCurrentConfig,
- .StartCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M19_PPB_AudioInput_Dev_StartCapture,
- .StopCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M19_PPB_AudioInput_Dev_StopCapture,
- .Close = (void (*)(PP_Resource audio_input))&Pnacl_M19_PPB_AudioInput_Dev_Close
-};
-
-struct PPB_AudioInput_Dev_0_3 Pnacl_Wrappers_PPB_AudioInput_Dev_0_3 = {
+static const struct PPB_AudioInput_Dev_0_3 Pnacl_Wrappers_PPB_AudioInput_Dev_0_3 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_AudioInput_Dev_Create,
.IsAudioInput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M25_PPB_AudioInput_Dev_IsAudioInput,
.EnumerateDevices = (int32_t (*)(PP_Resource audio_input, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_AudioInput_Dev_EnumerateDevices,
.MonitorDeviceChange = (int32_t (*)(PP_Resource audio_input, PP_MonitorDeviceChangeCallback callback, void* user_data))&Pnacl_M25_PPB_AudioInput_Dev_MonitorDeviceChange,
- .Open = (int32_t (*)(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_2 audio_input_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_AudioInput_Dev_Open,
+ .Open = (int32_t (*)(PP_Resource audio_input, PP_Resource device_ref, PP_Resource config, PPB_AudioInput_Callback_0_3 audio_input_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_AudioInput_Dev_Open,
.GetCurrentConfig = (PP_Resource (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_GetCurrentConfig,
.StartCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_StartCapture,
.StopCapture = (PP_Bool (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_StopCapture,
.Close = (void (*)(PP_Resource audio_input))&Pnacl_M25_PPB_AudioInput_Dev_Close
};
-struct PPB_AudioInput_Dev_0_4 Pnacl_Wrappers_PPB_AudioInput_Dev_0_4 = {
+static const struct PPB_AudioInput_Dev_0_4 Pnacl_Wrappers_PPB_AudioInput_Dev_0_4 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M30_PPB_AudioInput_Dev_Create,
.IsAudioInput = (PP_Bool (*)(PP_Resource resource))&Pnacl_M30_PPB_AudioInput_Dev_IsAudioInput,
.EnumerateDevices = (int32_t (*)(PP_Resource audio_input, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M30_PPB_AudioInput_Dev_EnumerateDevices,
@@ -4517,34 +4881,26 @@ struct PPB_AudioInput_Dev_0_4 Pnacl_Wrappers_PPB_AudioInput_Dev_0_4 = {
/* Not generating wrapper interface for PPB_CursorControl_Dev_0_4 */
-struct PPB_DeviceRef_Dev_0_1 Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1 = {
+static const struct PPB_DeviceRef_Dev_0_1 Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1 = {
.IsDeviceRef = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_DeviceRef_Dev_IsDeviceRef,
.GetType = (PP_DeviceType_Dev (*)(PP_Resource device_ref))&Pnacl_M18_PPB_DeviceRef_Dev_GetType,
.GetName = (struct PP_Var (*)(PP_Resource device_ref))&Pnacl_M18_PPB_DeviceRef_Dev_GetName
};
-struct PPB_FileChooser_Dev_0_5 Pnacl_Wrappers_PPB_FileChooser_Dev_0_5 = {
+static const struct PPB_FileChooser_Dev_0_5 Pnacl_Wrappers_PPB_FileChooser_Dev_0_5 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var accept_types))&Pnacl_M16_PPB_FileChooser_Dev_Create,
.IsFileChooser = (PP_Bool (*)(PP_Resource resource))&Pnacl_M16_PPB_FileChooser_Dev_IsFileChooser,
.Show = (int32_t (*)(PP_Resource chooser, struct PP_CompletionCallback callback))&Pnacl_M16_PPB_FileChooser_Dev_Show,
.GetNextChosenFile = (PP_Resource (*)(PP_Resource chooser))&Pnacl_M16_PPB_FileChooser_Dev_GetNextChosenFile
};
-struct PPB_FileChooser_Dev_0_6 Pnacl_Wrappers_PPB_FileChooser_Dev_0_6 = {
+static const struct PPB_FileChooser_Dev_0_6 Pnacl_Wrappers_PPB_FileChooser_Dev_0_6 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_FileChooserMode_Dev mode, struct PP_Var accept_types))&Pnacl_M19_PPB_FileChooser_Dev_Create,
.IsFileChooser = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_FileChooser_Dev_IsFileChooser,
.Show = (int32_t (*)(PP_Resource chooser, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_FileChooser_Dev_Show
};
-struct PPB_FileIO_Dev_0_1 Pnacl_Wrappers_PPB_FileIO_Dev_0_1 = {
- .Map = (int32_t (*)(PP_Resource file_io, int64_t length, uint32_t map_protection, uint32_t map_flags, int64_t offset, void** address, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_FileIO_Dev_Map,
- .Unmap = (void (*)(PP_Resource file_io, void* address, int64_t length))&Pnacl_M31_PPB_FileIO_Dev_Unmap,
- .GetMapPageSize = (int64_t (*)(PP_Resource file_io))&Pnacl_M31_PPB_FileIO_Dev_GetMapPageSize
-};
-
-/* Not generating wrapper interface for PPB_Find_Dev_0_3 */
-
-struct PPB_Font_Dev_0_6 Pnacl_Wrappers_PPB_Font_Dev_0_6 = {
+static const struct PPB_Font_Dev_0_6 Pnacl_Wrappers_PPB_Font_Dev_0_6 = {
.GetFontFamilies = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M14_PPB_Font_Dev_GetFontFamilies,
.Create = (PP_Resource (*)(PP_Instance instance, const struct PP_FontDescription_Dev* description))&Pnacl_M14_PPB_Font_Dev_Create,
.IsFont = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_Font_Dev_IsFont,
@@ -4555,11 +4911,7 @@ struct PPB_Font_Dev_0_6 Pnacl_Wrappers_PPB_Font_Dev_0_6 = {
.PixelOffsetForCharacter = (int32_t (*)(PP_Resource font, const struct PP_TextRun_Dev* text, uint32_t char_offset))&Pnacl_M14_PPB_Font_Dev_PixelOffsetForCharacter
};
-/* Not generating wrapper interface for PPB_Graphics2D_Dev_0_1 */
-
-/* Not generating wrapper interface for PPB_Graphics2D_Dev_0_2 */
-
-struct PPB_IMEInputEvent_Dev_0_1 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1 = {
+static const struct PPB_IMEInputEvent_Dev_0_1 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1 = {
.IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M16_PPB_IMEInputEvent_Dev_IsIMEInputEvent,
.GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetText,
.GetSegmentNumber = (uint32_t (*)(PP_Resource ime_event))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetSegmentNumber,
@@ -4568,7 +4920,7 @@ struct PPB_IMEInputEvent_Dev_0_1 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1 = {
.GetSelection = (void (*)(PP_Resource ime_event, uint32_t* start, uint32_t* end))&Pnacl_M16_PPB_IMEInputEvent_Dev_GetSelection
};
-struct PPB_IMEInputEvent_Dev_0_2 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2 = {
+static const struct PPB_IMEInputEvent_Dev_0_2 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_InputEvent_Type type, PP_TimeTicks time_stamp, struct PP_Var text, uint32_t segment_number, const uint32_t segment_offsets[], int32_t target_segment, uint32_t selection_start, uint32_t selection_end))&Pnacl_M21_PPB_IMEInputEvent_Dev_Create,
.IsIMEInputEvent = (PP_Bool (*)(PP_Resource resource))&Pnacl_M21_PPB_IMEInputEvent_Dev_IsIMEInputEvent,
.GetText = (struct PP_Var (*)(PP_Resource ime_event))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetText,
@@ -4578,21 +4930,13 @@ struct PPB_IMEInputEvent_Dev_0_2 Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2 = {
.GetSelection = (void (*)(PP_Resource ime_event, uint32_t* start, uint32_t* end))&Pnacl_M21_PPB_IMEInputEvent_Dev_GetSelection
};
-struct PPB_KeyboardInputEvent_Dev_0_2 Pnacl_Wrappers_PPB_KeyboardInputEvent_Dev_0_2 = {
- .SetUsbKeyCode = (PP_Bool (*)(PP_Resource key_event, uint32_t usb_key_code))&Pnacl_M31_PPB_KeyboardInputEvent_Dev_SetUsbKeyCode,
- .GetUsbKeyCode = (uint32_t (*)(PP_Resource key_event))&Pnacl_M31_PPB_KeyboardInputEvent_Dev_GetUsbKeyCode,
- .GetCode = (struct PP_Var (*)(PP_Resource key_event))&Pnacl_M31_PPB_KeyboardInputEvent_Dev_GetCode
-};
-
/* Not generating wrapper interface for PPB_Memory_Dev_0_1 */
-struct PPB_Printing_Dev_0_7 Pnacl_Wrappers_PPB_Printing_Dev_0_7 = {
+static const struct PPB_Printing_Dev_0_7 Pnacl_Wrappers_PPB_Printing_Dev_0_7 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M23_PPB_Printing_Dev_Create,
.GetDefaultPrintSettings = (int32_t (*)(PP_Resource resource, struct PP_PrintSettings_Dev* print_settings, struct PP_CompletionCallback callback))&Pnacl_M23_PPB_Printing_Dev_GetDefaultPrintSettings
};
-/* Not generating wrapper interface for PPB_ResourceArray_Dev_0_1 */
-
/* Not generating wrapper interface for PPB_Scrollbar_Dev_0_5 */
/* Not generating wrapper interface for PPB_TextInput_Dev_0_1 */
@@ -4603,7 +4947,7 @@ struct PPB_Printing_Dev_0_7 Pnacl_Wrappers_PPB_Printing_Dev_0_7 = {
/* Not generating wrapper interface for PPB_Trace_Event_Dev_0_2 */
-struct PPB_TrueTypeFont_Dev_0_1 Pnacl_Wrappers_PPB_TrueTypeFont_Dev_0_1 = {
+static const struct PPB_TrueTypeFont_Dev_0_1 Pnacl_Wrappers_PPB_TrueTypeFont_Dev_0_1 = {
.GetFontFamilies = (int32_t (*)(PP_Instance instance, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M26_PPB_TrueTypeFont_Dev_GetFontFamilies,
.GetFontsInFamily = (int32_t (*)(PP_Instance instance, struct PP_Var family, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M26_PPB_TrueTypeFont_Dev_GetFontsInFamily,
.Create = (PP_Resource (*)(PP_Instance instance, const struct PP_TrueTypeFontDesc_Dev* desc))&Pnacl_M26_PPB_TrueTypeFont_Dev_Create,
@@ -4613,7 +4957,7 @@ struct PPB_TrueTypeFont_Dev_0_1 Pnacl_Wrappers_PPB_TrueTypeFont_Dev_0_1 = {
.GetTable = (int32_t (*)(PP_Resource font, uint32_t table, int32_t offset, int32_t max_data_length, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M26_PPB_TrueTypeFont_Dev_GetTable
};
-struct PPB_URLUtil_Dev_0_6 Pnacl_Wrappers_PPB_URLUtil_Dev_0_6 = {
+static const struct PPB_URLUtil_Dev_0_6 Pnacl_Wrappers_PPB_URLUtil_Dev_0_6 = {
.Canonicalize = (struct PP_Var (*)(struct PP_Var url, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_Canonicalize,
.ResolveRelativeToURL = (struct PP_Var (*)(struct PP_Var base_url, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToURL,
.ResolveRelativeToDocument = (struct PP_Var (*)(PP_Instance instance, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_ResolveRelativeToDocument,
@@ -4624,7 +4968,7 @@ struct PPB_URLUtil_Dev_0_6 Pnacl_Wrappers_PPB_URLUtil_Dev_0_6 = {
.GetPluginInstanceURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M17_PPB_URLUtil_Dev_GetPluginInstanceURL
};
-struct PPB_URLUtil_Dev_0_7 Pnacl_Wrappers_PPB_URLUtil_Dev_0_7 = {
+static const struct PPB_URLUtil_Dev_0_7 Pnacl_Wrappers_PPB_URLUtil_Dev_0_7 = {
.Canonicalize = (struct PP_Var (*)(struct PP_Var url, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_Canonicalize,
.ResolveRelativeToURL = (struct PP_Var (*)(struct PP_Var base_url, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToURL,
.ResolveRelativeToDocument = (struct PP_Var (*)(PP_Instance instance, struct PP_Var relative_string, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_ResolveRelativeToDocument,
@@ -4636,23 +4980,7 @@ struct PPB_URLUtil_Dev_0_7 Pnacl_Wrappers_PPB_URLUtil_Dev_0_7 = {
.GetPluginReferrerURL = (struct PP_Var (*)(PP_Instance instance, struct PP_URLComponents_Dev* components))&Pnacl_M31_PPB_URLUtil_Dev_GetPluginReferrerURL
};
-struct PPB_VarResource_Dev_0_1 Pnacl_Wrappers_PPB_VarResource_Dev_0_1 = {
- .VarToResource = (PP_Resource (*)(struct PP_Var var))&Pnacl_M32_PPB_VarResource_Dev_VarToResource,
- .VarFromResource = (struct PP_Var (*)(PP_Resource resource))&Pnacl_M32_PPB_VarResource_Dev_VarFromResource
-};
-
-struct PPB_VideoCapture_Dev_0_2 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_2 = {
- .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_VideoCapture_Dev_Create,
- .IsVideoCapture = (PP_Bool (*)(PP_Resource video_capture))&Pnacl_M19_PPB_VideoCapture_Dev_IsVideoCapture,
- .EnumerateDevices = (int32_t (*)(PP_Resource video_capture, PP_Resource* devices, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_VideoCapture_Dev_EnumerateDevices,
- .Open = (int32_t (*)(PP_Resource video_capture, PP_Resource device_ref, const struct PP_VideoCaptureDeviceInfo_Dev* requested_info, uint32_t buffer_count, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_VideoCapture_Dev_Open,
- .StartCapture = (int32_t (*)(PP_Resource video_capture))&Pnacl_M19_PPB_VideoCapture_Dev_StartCapture,
- .ReuseBuffer = (int32_t (*)(PP_Resource video_capture, uint32_t buffer))&Pnacl_M19_PPB_VideoCapture_Dev_ReuseBuffer,
- .StopCapture = (int32_t (*)(PP_Resource video_capture))&Pnacl_M19_PPB_VideoCapture_Dev_StopCapture,
- .Close = (void (*)(PP_Resource video_capture))&Pnacl_M19_PPB_VideoCapture_Dev_Close
-};
-
-struct PPB_VideoCapture_Dev_0_3 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3 = {
+static const struct PPB_VideoCapture_Dev_0_3 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M25_PPB_VideoCapture_Dev_Create,
.IsVideoCapture = (PP_Bool (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_IsVideoCapture,
.EnumerateDevices = (int32_t (*)(PP_Resource video_capture, struct PP_ArrayOutput output, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_VideoCapture_Dev_EnumerateDevices,
@@ -4664,7 +4992,7 @@ struct PPB_VideoCapture_Dev_0_3 Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3 = {
.Close = (void (*)(PP_Resource video_capture))&Pnacl_M25_PPB_VideoCapture_Dev_Close
};
-struct PPB_VideoDecoder_Dev_0_16 Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16 = {
+static const struct PPB_VideoDecoder_Dev_0_16 Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16 = {
.Create = (PP_Resource (*)(PP_Instance instance, PP_Resource context, PP_VideoDecoder_Profile profile))&Pnacl_M14_PPB_VideoDecoder_Dev_Create,
.IsVideoDecoder = (PP_Bool (*)(PP_Resource resource))&Pnacl_M14_PPB_VideoDecoder_Dev_IsVideoDecoder,
.Decode = (int32_t (*)(PP_Resource video_decoder, const struct PP_VideoBitstreamBuffer_Dev* bitstream_buffer, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_VideoDecoder_Dev_Decode,
@@ -4691,7 +5019,7 @@ struct PPB_VideoDecoder_Dev_0_16 Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16 = {
/* Not generating wrapper interface for PPP_Scrollbar_Dev_0_3 */
-struct PPP_Selection_Dev_0_3 Pnacl_Wrappers_PPP_Selection_Dev_0_3 = {
+static const struct PPP_Selection_Dev_0_3 Pnacl_Wrappers_PPP_Selection_Dev_0_3 = {
.GetSelectedText = &Pnacl_M13_PPP_Selection_Dev_GetSelectedText
};
@@ -4705,33 +5033,44 @@ struct PPP_Selection_Dev_0_3 Pnacl_Wrappers_PPP_Selection_Dev_0_3 = {
/* Not generating wrapper interface for PPP_Zoom_Dev_0_3 */
-struct PPB_ContentDecryptor_Private_0_9 Pnacl_Wrappers_PPB_ContentDecryptor_Private_0_9 = {
- .SessionCreated = (void (*)(PP_Instance instance, uint32_t session_id, struct PP_Var web_session_id))&Pnacl_M33_PPB_ContentDecryptor_Private_SessionCreated,
- .SessionMessage = (void (*)(PP_Instance instance, uint32_t session_id, struct PP_Var message, struct PP_Var destination_url))&Pnacl_M33_PPB_ContentDecryptor_Private_SessionMessage,
- .SessionReady = (void (*)(PP_Instance instance, uint32_t session_id))&Pnacl_M33_PPB_ContentDecryptor_Private_SessionReady,
- .SessionClosed = (void (*)(PP_Instance instance, uint32_t session_id))&Pnacl_M33_PPB_ContentDecryptor_Private_SessionClosed,
- .SessionError = (void (*)(PP_Instance instance, uint32_t session_id, int32_t media_error, int32_t system_code))&Pnacl_M33_PPB_ContentDecryptor_Private_SessionError,
- .DeliverBlock = (void (*)(PP_Instance instance, PP_Resource decrypted_block, const struct PP_DecryptedBlockInfo* decrypted_block_info))&Pnacl_M33_PPB_ContentDecryptor_Private_DeliverBlock,
- .DecoderInitializeDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id, PP_Bool success))&Pnacl_M33_PPB_ContentDecryptor_Private_DecoderInitializeDone,
- .DecoderDeinitializeDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))&Pnacl_M33_PPB_ContentDecryptor_Private_DecoderDeinitializeDone,
- .DecoderResetDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))&Pnacl_M33_PPB_ContentDecryptor_Private_DecoderResetDone,
- .DeliverFrame = (void (*)(PP_Instance instance, PP_Resource decrypted_frame, const struct PP_DecryptedFrameInfo* decrypted_frame_info))&Pnacl_M33_PPB_ContentDecryptor_Private_DeliverFrame,
- .DeliverSamples = (void (*)(PP_Instance instance, PP_Resource audio_frames, const struct PP_DecryptedSampleInfo* decrypted_sample_info))&Pnacl_M33_PPB_ContentDecryptor_Private_DeliverSamples
-};
-
-struct PPB_Ext_CrxFileSystem_Private_0_1 Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1 = {
+static const struct PPB_ContentDecryptor_Private_0_12 Pnacl_Wrappers_PPB_ContentDecryptor_Private_0_12 = {
+ .PromiseResolved = (void (*)(PP_Instance instance, uint32_t promise_id))&Pnacl_M36_PPB_ContentDecryptor_Private_PromiseResolved,
+ .PromiseResolvedWithSession = (void (*)(PP_Instance instance, uint32_t promise_id, struct PP_Var web_session_id))&Pnacl_M36_PPB_ContentDecryptor_Private_PromiseResolvedWithSession,
+ .PromiseRejected = (void (*)(PP_Instance instance, uint32_t promise_id, PP_CdmExceptionCode exception_code, uint32_t system_code, struct PP_Var error_description))&Pnacl_M36_PPB_ContentDecryptor_Private_PromiseRejected,
+ .SessionMessage = (void (*)(PP_Instance instance, struct PP_Var web_session_id, struct PP_Var message, struct PP_Var destination_url))&Pnacl_M36_PPB_ContentDecryptor_Private_SessionMessage,
+ .SessionReady = (void (*)(PP_Instance instance, struct PP_Var web_session_id))&Pnacl_M36_PPB_ContentDecryptor_Private_SessionReady,
+ .SessionClosed = (void (*)(PP_Instance instance, struct PP_Var web_session_id))&Pnacl_M36_PPB_ContentDecryptor_Private_SessionClosed,
+ .SessionError = (void (*)(PP_Instance instance, struct PP_Var web_session_id, PP_CdmExceptionCode exception_code, uint32_t system_code, struct PP_Var error_description))&Pnacl_M36_PPB_ContentDecryptor_Private_SessionError,
+ .DeliverBlock = (void (*)(PP_Instance instance, PP_Resource decrypted_block, const struct PP_DecryptedBlockInfo* decrypted_block_info))&Pnacl_M36_PPB_ContentDecryptor_Private_DeliverBlock,
+ .DecoderInitializeDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id, PP_Bool success))&Pnacl_M36_PPB_ContentDecryptor_Private_DecoderInitializeDone,
+ .DecoderDeinitializeDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))&Pnacl_M36_PPB_ContentDecryptor_Private_DecoderDeinitializeDone,
+ .DecoderResetDone = (void (*)(PP_Instance instance, PP_DecryptorStreamType decoder_type, uint32_t request_id))&Pnacl_M36_PPB_ContentDecryptor_Private_DecoderResetDone,
+ .DeliverFrame = (void (*)(PP_Instance instance, PP_Resource decrypted_frame, const struct PP_DecryptedFrameInfo* decrypted_frame_info))&Pnacl_M36_PPB_ContentDecryptor_Private_DeliverFrame,
+ .DeliverSamples = (void (*)(PP_Instance instance, PP_Resource audio_frames, const struct PP_DecryptedSampleInfo* decrypted_sample_info))&Pnacl_M36_PPB_ContentDecryptor_Private_DeliverSamples
+};
+
+static const struct PPB_DisplayColorProfile_Private_0_1 Pnacl_Wrappers_PPB_DisplayColorProfile_Private_0_1 = {
+ .Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M33_PPB_DisplayColorProfile_Private_Create,
+ .IsDisplayColorProfile = (PP_Bool (*)(PP_Resource resource))&Pnacl_M33_PPB_DisplayColorProfile_Private_IsDisplayColorProfile,
+ .GetColorProfile = (int32_t (*)(PP_Resource display_color_profile_res, struct PP_ArrayOutput color_profile, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_DisplayColorProfile_Private_GetColorProfile,
+ .RegisterColorProfileChangeCallback = (int32_t (*)(PP_Resource display_color_profile_res, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_DisplayColorProfile_Private_RegisterColorProfileChangeCallback
+};
+
+static const struct PPB_Ext_CrxFileSystem_Private_0_1 Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1 = {
.Open = (int32_t (*)(PP_Instance instance, PP_Resource* file_system, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_CrxFileSystem_Private_Open
};
-struct PPB_FileIO_Private_0_1 Pnacl_Wrappers_PPB_FileIO_Private_0_1 = {
+static const struct PPB_FileIO_Private_0_1 Pnacl_Wrappers_PPB_FileIO_Private_0_1 = {
.RequestOSFileHandle = (int32_t (*)(PP_Resource file_io, PP_FileHandle* handle, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_FileIO_Private_RequestOSFileHandle
};
-struct PPB_FileRefPrivate_0_1 Pnacl_Wrappers_PPB_FileRefPrivate_0_1 = {
+static const struct PPB_FileRefPrivate_0_1 Pnacl_Wrappers_PPB_FileRefPrivate_0_1 = {
.GetAbsolutePath = (struct PP_Var (*)(PP_Resource file_ref))&Pnacl_M15_PPB_FileRefPrivate_GetAbsolutePath
};
-struct PPB_Flash_12_4 Pnacl_Wrappers_PPB_Flash_12_4 = {
+/* Not generating wrapper interface for PPB_Find_Private_0_3 */
+
+static const struct PPB_Flash_12_4 Pnacl_Wrappers_PPB_Flash_12_4 = {
.SetInstanceAlwaysOnTop = (void (*)(PP_Instance instance, PP_Bool on_top))&Pnacl_M21_PPB_Flash_SetInstanceAlwaysOnTop,
.DrawGlyphs = (PP_Bool (*)(PP_Instance instance, PP_Resource pp_image_data, const struct PP_BrowserFont_Trusted_Description* font_desc, uint32_t color, const struct PP_Point* position, const struct PP_Rect* clip, const float transformation[3][3], PP_Bool allow_subpixel_aa, uint32_t glyph_count, const uint16_t glyph_indices[], const struct PP_Point glyph_advances[]))&Pnacl_M21_PPB_Flash_DrawGlyphs,
.GetProxyForURL = (struct PP_Var (*)(PP_Instance instance, const char* url))&Pnacl_M21_PPB_Flash_GetProxyForURL,
@@ -4749,7 +5088,7 @@ struct PPB_Flash_12_4 Pnacl_Wrappers_PPB_Flash_12_4 = {
.GetSetting = (struct PP_Var (*)(PP_Instance instance, PP_FlashSetting setting))&Pnacl_M21_PPB_Flash_GetSetting
};
-struct PPB_Flash_12_5 Pnacl_Wrappers_PPB_Flash_12_5 = {
+static const struct PPB_Flash_12_5 Pnacl_Wrappers_PPB_Flash_12_5 = {
.SetInstanceAlwaysOnTop = (void (*)(PP_Instance instance, PP_Bool on_top))&Pnacl_M22_PPB_Flash_SetInstanceAlwaysOnTop,
.DrawGlyphs = (PP_Bool (*)(PP_Instance instance, PP_Resource pp_image_data, const struct PP_BrowserFont_Trusted_Description* font_desc, uint32_t color, const struct PP_Point* position, const struct PP_Rect* clip, const float transformation[3][3], PP_Bool allow_subpixel_aa, uint32_t glyph_count, const uint16_t glyph_indices[], const struct PP_Point glyph_advances[]))&Pnacl_M22_PPB_Flash_DrawGlyphs,
.GetProxyForURL = (struct PP_Var (*)(PP_Instance instance, const char* url))&Pnacl_M22_PPB_Flash_GetProxyForURL,
@@ -4768,7 +5107,7 @@ struct PPB_Flash_12_5 Pnacl_Wrappers_PPB_Flash_12_5 = {
.SetCrashData = (PP_Bool (*)(PP_Instance instance, PP_FlashCrashKey key, struct PP_Var value))&Pnacl_M22_PPB_Flash_SetCrashData
};
-struct PPB_Flash_12_6 Pnacl_Wrappers_PPB_Flash_12_6 = {
+static const struct PPB_Flash_12_6 Pnacl_Wrappers_PPB_Flash_12_6 = {
.SetInstanceAlwaysOnTop = (void (*)(PP_Instance instance, PP_Bool on_top))&Pnacl_M24_0_PPB_Flash_SetInstanceAlwaysOnTop,
.DrawGlyphs = (PP_Bool (*)(PP_Instance instance, PP_Resource pp_image_data, const struct PP_BrowserFont_Trusted_Description* font_desc, uint32_t color, const struct PP_Point* position, const struct PP_Rect* clip, const float transformation[3][3], PP_Bool allow_subpixel_aa, uint32_t glyph_count, const uint16_t glyph_indices[], const struct PP_Point glyph_advances[]))&Pnacl_M24_0_PPB_Flash_DrawGlyphs,
.GetProxyForURL = (struct PP_Var (*)(PP_Instance instance, const char* url))&Pnacl_M24_0_PPB_Flash_GetProxyForURL,
@@ -4788,7 +5127,7 @@ struct PPB_Flash_12_6 Pnacl_Wrappers_PPB_Flash_12_6 = {
.EnumerateVideoCaptureDevices = (int32_t (*)(PP_Instance instance, PP_Resource video_capture, struct PP_ArrayOutput devices))&Pnacl_M24_0_PPB_Flash_EnumerateVideoCaptureDevices
};
-struct PPB_Flash_13_0 Pnacl_Wrappers_PPB_Flash_13_0 = {
+static const struct PPB_Flash_13_0 Pnacl_Wrappers_PPB_Flash_13_0 = {
.SetInstanceAlwaysOnTop = (void (*)(PP_Instance instance, PP_Bool on_top))&Pnacl_M24_1_PPB_Flash_SetInstanceAlwaysOnTop,
.DrawGlyphs = (PP_Bool (*)(PP_Instance instance, PP_Resource pp_image_data, const struct PP_BrowserFont_Trusted_Description* font_desc, uint32_t color, const struct PP_Point* position, const struct PP_Rect* clip, const float transformation[3][3], PP_Bool allow_subpixel_aa, uint32_t glyph_count, const uint16_t glyph_indices[], const struct PP_Point glyph_advances[]))&Pnacl_M24_1_PPB_Flash_DrawGlyphs,
.GetProxyForURL = (struct PP_Var (*)(PP_Instance instance, const char* url))&Pnacl_M24_1_PPB_Flash_GetProxyForURL,
@@ -4803,32 +5142,40 @@ struct PPB_Flash_13_0 Pnacl_Wrappers_PPB_Flash_13_0 = {
.EnumerateVideoCaptureDevices = (int32_t (*)(PP_Instance instance, PP_Resource video_capture, struct PP_ArrayOutput devices))&Pnacl_M24_1_PPB_Flash_EnumerateVideoCaptureDevices
};
-struct PPB_Flash_Clipboard_4_0 Pnacl_Wrappers_PPB_Flash_Clipboard_4_0 = {
+static const struct PPB_Flash_Clipboard_4_0 Pnacl_Wrappers_PPB_Flash_Clipboard_4_0 = {
.IsFormatAvailable = (PP_Bool (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, PP_Flash_Clipboard_Format format))&Pnacl_M19_PPB_Flash_Clipboard_IsFormatAvailable,
.ReadData = (struct PP_Var (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, PP_Flash_Clipboard_Format format))&Pnacl_M19_PPB_Flash_Clipboard_ReadData,
.WriteData = (int32_t (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t data_item_count, const PP_Flash_Clipboard_Format formats[], const struct PP_Var data_items[]))&Pnacl_M19_PPB_Flash_Clipboard_WriteData
};
-struct PPB_Flash_Clipboard_5_0 Pnacl_Wrappers_PPB_Flash_Clipboard_5_0 = {
+static const struct PPB_Flash_Clipboard_5_0 Pnacl_Wrappers_PPB_Flash_Clipboard_5_0 = {
.RegisterCustomFormat = (uint32_t (*)(PP_Instance instance_id, const char* format_name))&Pnacl_M24_PPB_Flash_Clipboard_RegisterCustomFormat,
.IsFormatAvailable = (PP_Bool (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format))&Pnacl_M24_PPB_Flash_Clipboard_IsFormatAvailable,
.ReadData = (struct PP_Var (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format))&Pnacl_M24_PPB_Flash_Clipboard_ReadData,
.WriteData = (int32_t (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t data_item_count, const uint32_t formats[], const struct PP_Var data_items[]))&Pnacl_M24_PPB_Flash_Clipboard_WriteData
};
-struct PPB_Flash_DeviceID_1_0 Pnacl_Wrappers_PPB_Flash_DeviceID_1_0 = {
+static const struct PPB_Flash_Clipboard_5_1 Pnacl_Wrappers_PPB_Flash_Clipboard_5_1 = {
+ .RegisterCustomFormat = (uint32_t (*)(PP_Instance instance_id, const char* format_name))&Pnacl_M34_PPB_Flash_Clipboard_RegisterCustomFormat,
+ .IsFormatAvailable = (PP_Bool (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format))&Pnacl_M34_PPB_Flash_Clipboard_IsFormatAvailable,
+ .ReadData = (struct PP_Var (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t format))&Pnacl_M34_PPB_Flash_Clipboard_ReadData,
+ .WriteData = (int32_t (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint32_t data_item_count, const uint32_t formats[], const struct PP_Var data_items[]))&Pnacl_M34_PPB_Flash_Clipboard_WriteData,
+ .GetSequenceNumber = (PP_Bool (*)(PP_Instance instance_id, PP_Flash_Clipboard_Type clipboard_type, uint64_t* sequence_number))&Pnacl_M34_PPB_Flash_Clipboard_GetSequenceNumber
+};
+
+static const struct PPB_Flash_DeviceID_1_0 Pnacl_Wrappers_PPB_Flash_DeviceID_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M21_PPB_Flash_DeviceID_Create,
.GetDeviceID = (int32_t (*)(PP_Resource device_id, struct PP_Var* id, struct PP_CompletionCallback callback))&Pnacl_M21_PPB_Flash_DeviceID_GetDeviceID
};
-struct PPB_Flash_DRM_1_0 Pnacl_Wrappers_PPB_Flash_DRM_1_0 = {
+static const struct PPB_Flash_DRM_1_0 Pnacl_Wrappers_PPB_Flash_DRM_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_Flash_DRM_Create,
.GetDeviceID = (int32_t (*)(PP_Resource drm, struct PP_Var* id, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Flash_DRM_GetDeviceID,
.GetHmonitor = (PP_Bool (*)(PP_Resource drm, int64_t* hmonitor))&Pnacl_M29_PPB_Flash_DRM_GetHmonitor,
.GetVoucherFile = (int32_t (*)(PP_Resource drm, PP_Resource* file_ref, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Flash_DRM_GetVoucherFile
};
-struct PPB_Flash_DRM_1_1 Pnacl_Wrappers_PPB_Flash_DRM_1_1 = {
+static const struct PPB_Flash_DRM_1_1 Pnacl_Wrappers_PPB_Flash_DRM_1_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M33_PPB_Flash_DRM_Create,
.GetDeviceID = (int32_t (*)(PP_Resource drm, struct PP_Var* id, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_Flash_DRM_GetDeviceID,
.GetHmonitor = (PP_Bool (*)(PP_Resource drm, int64_t* hmonitor))&Pnacl_M33_PPB_Flash_DRM_GetHmonitor,
@@ -4842,7 +5189,7 @@ struct PPB_Flash_DRM_1_1 Pnacl_Wrappers_PPB_Flash_DRM_1_1 = {
/* Not generating wrapper interface for PPB_FlashFullscreen_1_0 */
-struct PPB_Flash_Menu_0_2 Pnacl_Wrappers_PPB_Flash_Menu_0_2 = {
+static const struct PPB_Flash_Menu_0_2 Pnacl_Wrappers_PPB_Flash_Menu_0_2 = {
.Create = (PP_Resource (*)(PP_Instance instance_id, const struct PP_Flash_Menu* menu_data))&Pnacl_M14_PPB_Flash_Menu_Create,
.IsFlashMenu = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M14_PPB_Flash_Menu_IsFlashMenu,
.Show = (int32_t (*)(PP_Resource menu_id, const struct PP_Point* location, int32_t* selected_id, struct PP_CompletionCallback callback))&Pnacl_M14_PPB_Flash_Menu_Show
@@ -4852,7 +5199,7 @@ struct PPB_Flash_Menu_0_2 Pnacl_Wrappers_PPB_Flash_Menu_0_2 = {
/* Not generating wrapper interface for PPB_Flash_Print_1_0 */
-struct PPB_HostResolver_Private_0_1 Pnacl_Wrappers_PPB_HostResolver_Private_0_1 = {
+static const struct PPB_HostResolver_Private_0_1 Pnacl_Wrappers_PPB_HostResolver_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_HostResolver_Private_Create,
.IsHostResolver = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_HostResolver_Private_IsHostResolver,
.Resolve = (int32_t (*)(PP_Resource host_resolver, const char* host, uint16_t port, const struct PP_HostResolver_Private_Hint* hint, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_HostResolver_Private_Resolve,
@@ -4861,33 +5208,64 @@ struct PPB_HostResolver_Private_0_1 Pnacl_Wrappers_PPB_HostResolver_Private_0_1
.GetNetAddress = (PP_Bool (*)(PP_Resource host_resolver, uint32_t index, struct PP_NetAddress_Private* addr))&Pnacl_M19_PPB_HostResolver_Private_GetNetAddress
};
-struct PPB_Instance_Private_0_1 Pnacl_Wrappers_PPB_Instance_Private_0_1 = {
+/* Not generating wrapper interface for PPB_InputEvent_Private_0_1 */
+
+static const struct PPB_Instance_Private_0_1 Pnacl_Wrappers_PPB_Instance_Private_0_1 = {
.GetWindowObject = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M13_PPB_Instance_Private_GetWindowObject,
.GetOwnerElementObject = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M13_PPB_Instance_Private_GetOwnerElementObject,
.ExecuteScript = (struct PP_Var (*)(PP_Instance instance, struct PP_Var script, struct PP_Var* exception))&Pnacl_M13_PPB_Instance_Private_ExecuteScript
};
-struct PPB_IsolatedFileSystem_Private_0_2 Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2 = {
+static const struct PPB_IsolatedFileSystem_Private_0_2 Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2 = {
.Open = (int32_t (*)(PP_Instance instance, PP_IsolatedFileSystemType_Private type, PP_Resource* file_system, struct PP_CompletionCallback callback))&Pnacl_M33_PPB_IsolatedFileSystem_Private_Open
};
-struct PPB_NaCl_Private_1_0 Pnacl_Wrappers_PPB_NaCl_Private_1_0 = {
- .LaunchSelLdr = (PP_ExternalPluginResult (*)(PP_Instance instance, const char* alleged_url, PP_Bool uses_irt, PP_Bool uses_ppapi, PP_Bool enable_ppapi_dev, PP_Bool enable_dyncode_syscalls, PP_Bool enable_exception_handling, PP_Bool enable_crash_throttling, void* imc_handle, struct PP_Var* error_message))&Pnacl_M25_PPB_NaCl_Private_LaunchSelLdr,
- .StartPpapiProxy = (PP_ExternalPluginResult (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_StartPpapiProxy,
+/* Not generating wrapper interface for PPP_ManifestService_1_0 */
+
+static const struct PPB_NaCl_Private_1_0 Pnacl_Wrappers_PPB_NaCl_Private_1_0 = {
+ .LaunchSelLdr = (void (*)(PP_Instance instance, PP_Bool main_service_runtime, const char* alleged_url, PP_Bool uses_irt, PP_Bool uses_ppapi, PP_Bool uses_nonsfi_mode, PP_Bool enable_ppapi_dev, PP_Bool enable_dyncode_syscalls, PP_Bool enable_exception_handling, PP_Bool enable_crash_throttling, const struct PPP_ManifestService_1_0* manifest_service_interface, void* manifest_service_user_data, void* imc_handle, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_LaunchSelLdr,
+ .StartPpapiProxy = (PP_Bool (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_StartPpapiProxy,
.UrandomFD = (int32_t (*)(void))&Pnacl_M25_PPB_NaCl_Private_UrandomFD,
.Are3DInterfacesDisabled = (PP_Bool (*)(void))&Pnacl_M25_PPB_NaCl_Private_Are3DInterfacesDisabled,
.BrokerDuplicateHandle = (int32_t (*)(PP_FileHandle source_handle, uint32_t process_id, PP_FileHandle* target_handle, uint32_t desired_access, uint32_t options))&Pnacl_M25_PPB_NaCl_Private_BrokerDuplicateHandle,
- .GetReadonlyPnaclFd = (PP_FileHandle (*)(const char* filename))&Pnacl_M25_PPB_NaCl_Private_GetReadonlyPnaclFd,
+ .GetReadonlyPnaclFd = (PP_FileHandle (*)(const char* url))&Pnacl_M25_PPB_NaCl_Private_GetReadonlyPnaclFd,
.CreateTemporaryFile = (PP_FileHandle (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_CreateTemporaryFile,
- .GetNexeFd = (int32_t (*)(PP_Instance instance, const char* pexe_url, uint32_t abi_version, uint32_t opt_level, const char* last_modified, const char* etag, PP_Bool has_no_store_header, PP_Bool* is_hit, PP_FileHandle* nexe_handle, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_GetNexeFd,
- .ReportTranslationFinished = (void (*)(PP_Instance instance, PP_Bool success))&Pnacl_M25_PPB_NaCl_Private_ReportTranslationFinished,
- .ReportNaClError = (PP_ExternalPluginResult (*)(PP_Instance instance, PP_NaClError message_id))&Pnacl_M25_PPB_NaCl_Private_ReportNaClError,
- .OpenNaClExecutable = (PP_FileHandle (*)(PP_Instance instance, const char* file_url, uint64_t* file_token_lo, uint64_t* file_token_hi))&Pnacl_M25_PPB_NaCl_Private_OpenNaClExecutable,
- .DispatchEvent = (void (*)(PP_Instance instance, PP_NaClEventType event_type, struct PP_Var resource_url, PP_Bool length_is_computable, uint64_t loaded_bytes, uint64_t total_bytes))&Pnacl_M25_PPB_NaCl_Private_DispatchEvent,
- .SetReadOnlyProperty = (void (*)(PP_Instance instance, struct PP_Var key, struct PP_Var value))&Pnacl_M25_PPB_NaCl_Private_SetReadOnlyProperty
-};
-
-struct PPB_NetAddress_Private_0_1 Pnacl_Wrappers_PPB_NetAddress_Private_0_1 = {
+ .GetNumberOfProcessors = (int32_t (*)(void))&Pnacl_M25_PPB_NaCl_Private_GetNumberOfProcessors,
+ .IsNonSFIModeEnabled = (PP_Bool (*)(void))&Pnacl_M25_PPB_NaCl_Private_IsNonSFIModeEnabled,
+ .GetNexeFd = (int32_t (*)(PP_Instance instance, const char* pexe_url, uint32_t abi_version, uint32_t opt_level, const char* headers, const char* extra_flags, PP_Bool* is_hit, PP_FileHandle* nexe_handle, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_GetNexeFd,
+ .ReportTranslationFinished = (void (*)(PP_Instance instance, PP_Bool success, int32_t opt_level, int64_t pexe_size, int64_t compile_time_us, int64_t total_time_us))&Pnacl_M25_PPB_NaCl_Private_ReportTranslationFinished,
+ .DispatchEvent = (void (*)(PP_Instance instance, PP_NaClEventType event_type, const char* resource_url, PP_Bool length_is_computable, uint64_t loaded_bytes, uint64_t total_bytes))&Pnacl_M25_PPB_NaCl_Private_DispatchEvent,
+ .ReportLoadSuccess = (void (*)(PP_Instance instance, const char* url, uint64_t loaded_bytes, uint64_t total_bytes))&Pnacl_M25_PPB_NaCl_Private_ReportLoadSuccess,
+ .ReportLoadError = (void (*)(PP_Instance instance, PP_NaClError error, const char* error_message))&Pnacl_M25_PPB_NaCl_Private_ReportLoadError,
+ .ReportLoadAbort = (void (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_ReportLoadAbort,
+ .NexeDidCrash = (void (*)(PP_Instance instance, const char* crash_log))&Pnacl_M25_PPB_NaCl_Private_NexeDidCrash,
+ .InstanceCreated = (void (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_InstanceCreated,
+ .InstanceDestroyed = (void (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_InstanceDestroyed,
+ .NaClDebugEnabledForURL = (PP_Bool (*)(const char* alleged_nmf_url))&Pnacl_M25_PPB_NaCl_Private_NaClDebugEnabledForURL,
+ .GetSandboxArch = (const char* (*)(void))&Pnacl_M25_PPB_NaCl_Private_GetSandboxArch,
+ .LogToConsole = (void (*)(PP_Instance instance, const char* message))&Pnacl_M25_PPB_NaCl_Private_LogToConsole,
+ .GetNaClReadyState = (PP_NaClReadyState (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_GetNaClReadyState,
+ .GetExitStatus = (int32_t (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_GetExitStatus,
+ .SetExitStatus = (void (*)(PP_Instance instance, int32_t exit_status))&Pnacl_M25_PPB_NaCl_Private_SetExitStatus,
+ .Vlog = (void (*)(const char* message))&Pnacl_M25_PPB_NaCl_Private_Vlog,
+ .InitializePlugin = (void (*)(PP_Instance instance, uint32_t argc, const char* argn[], const char* argv[]))&Pnacl_M25_PPB_NaCl_Private_InitializePlugin,
+ .GetNexeSize = (int64_t (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_GetNexeSize,
+ .RequestNaClManifest = (void (*)(PP_Instance instance, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_RequestNaClManifest,
+ .GetManifestBaseURL = (struct PP_Var (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_GetManifestBaseURL,
+ .ProcessNaClManifest = (void (*)(PP_Instance instance, const char* program_url))&Pnacl_M25_PPB_NaCl_Private_ProcessNaClManifest,
+ .DevInterfacesEnabled = (PP_Bool (*)(PP_Instance instance))&Pnacl_M25_PPB_NaCl_Private_DevInterfacesEnabled,
+ .GetManifestProgramURL = (PP_Bool (*)(PP_Instance instance, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options, PP_Bool* uses_nonsfi_mode))&Pnacl_M25_PPB_NaCl_Private_GetManifestProgramURL,
+ .ManifestResolveKey = (PP_Bool (*)(PP_Instance instance, PP_Bool helper_process, const char* key, struct PP_Var* full_url, struct PP_PNaClOptions* pnacl_options))&Pnacl_M25_PPB_NaCl_Private_ManifestResolveKey,
+ .GetPnaclResourceInfo = (PP_Bool (*)(PP_Instance instance, const char* filename, struct PP_Var* llc_tool_name, struct PP_Var* ld_tool_name))&Pnacl_M25_PPB_NaCl_Private_GetPnaclResourceInfo,
+ .GetCpuFeatureAttrs = (struct PP_Var (*)(void))&Pnacl_M25_PPB_NaCl_Private_GetCpuFeatureAttrs,
+ .PostMessageToJavaScript = (void (*)(PP_Instance instance, const char* message))&Pnacl_M25_PPB_NaCl_Private_PostMessageToJavaScript,
+ .DownloadNexe = (void (*)(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_DownloadNexe,
+ .DownloadFile = (void (*)(PP_Instance instance, const char* url, struct PP_NaClFileInfo* file_info, struct PP_CompletionCallback callback))&Pnacl_M25_PPB_NaCl_Private_DownloadFile,
+ .ReportSelLdrStatus = (void (*)(PP_Instance instance, int32_t load_status, int32_t max_status))&Pnacl_M25_PPB_NaCl_Private_ReportSelLdrStatus,
+ .LogTranslateTime = (void (*)(const char* histogram_name, int64_t time_us))&Pnacl_M25_PPB_NaCl_Private_LogTranslateTime
+};
+
+static const struct PPB_NetAddress_Private_0_1 Pnacl_Wrappers_PPB_NetAddress_Private_0_1 = {
.AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M17_PPB_NetAddress_Private_AreEqual,
.AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M17_PPB_NetAddress_Private_AreHostsEqual,
.Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M17_PPB_NetAddress_Private_Describe,
@@ -4895,7 +5273,7 @@ struct PPB_NetAddress_Private_0_1 Pnacl_Wrappers_PPB_NetAddress_Private_0_1 = {
.GetAnyAddress = (void (*)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr))&Pnacl_M17_PPB_NetAddress_Private_GetAnyAddress
};
-struct PPB_NetAddress_Private_1_0 Pnacl_Wrappers_PPB_NetAddress_Private_1_0 = {
+static const struct PPB_NetAddress_Private_1_0 Pnacl_Wrappers_PPB_NetAddress_Private_1_0 = {
.AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_0_PPB_NetAddress_Private_AreEqual,
.AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_0_PPB_NetAddress_Private_AreHostsEqual,
.Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M19_0_PPB_NetAddress_Private_Describe,
@@ -4906,7 +5284,7 @@ struct PPB_NetAddress_Private_1_0 Pnacl_Wrappers_PPB_NetAddress_Private_1_0 = {
.GetAddress = (PP_Bool (*)(const struct PP_NetAddress_Private* addr, void* address, uint16_t address_size))&Pnacl_M19_0_PPB_NetAddress_Private_GetAddress
};
-struct PPB_NetAddress_Private_1_1 Pnacl_Wrappers_PPB_NetAddress_Private_1_1 = {
+static const struct PPB_NetAddress_Private_1_1 Pnacl_Wrappers_PPB_NetAddress_Private_1_1 = {
.AreEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_1_PPB_NetAddress_Private_AreEqual,
.AreHostsEqual = (PP_Bool (*)(const struct PP_NetAddress_Private* addr1, const struct PP_NetAddress_Private* addr2))&Pnacl_M19_1_PPB_NetAddress_Private_AreHostsEqual,
.Describe = (struct PP_Var (*)(PP_Module module, const struct PP_NetAddress_Private* addr, PP_Bool include_port))&Pnacl_M19_1_PPB_NetAddress_Private_Describe,
@@ -4920,32 +5298,32 @@ struct PPB_NetAddress_Private_1_1 Pnacl_Wrappers_PPB_NetAddress_Private_1_1 = {
.CreateFromIPv6Address = (void (*)(const uint8_t ip[16], uint32_t scope_id, uint16_t port, struct PP_NetAddress_Private* addr_out))&Pnacl_M19_1_PPB_NetAddress_Private_CreateFromIPv6Address
};
-struct PPB_OutputProtection_Private_0_1 Pnacl_Wrappers_PPB_OutputProtection_Private_0_1 = {
+static const struct PPB_OutputProtection_Private_0_1 Pnacl_Wrappers_PPB_OutputProtection_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M31_PPB_OutputProtection_Private_Create,
.IsOutputProtection = (PP_Bool (*)(PP_Resource resource))&Pnacl_M31_PPB_OutputProtection_Private_IsOutputProtection,
.QueryStatus = (int32_t (*)(PP_Resource resource, uint32_t* link_mask, uint32_t* protection_mask, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_OutputProtection_Private_QueryStatus,
.EnableProtection = (int32_t (*)(PP_Resource resource, uint32_t desired_protection_mask, struct PP_CompletionCallback callback))&Pnacl_M31_PPB_OutputProtection_Private_EnableProtection
};
-struct PPB_PlatformVerification_Private_0_2 Pnacl_Wrappers_PPB_PlatformVerification_Private_0_2 = {
+static const struct PPB_PlatformVerification_Private_0_2 Pnacl_Wrappers_PPB_PlatformVerification_Private_0_2 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M32_PPB_PlatformVerification_Private_Create,
.IsPlatformVerification = (PP_Bool (*)(PP_Resource resource))&Pnacl_M32_PPB_PlatformVerification_Private_IsPlatformVerification,
.ChallengePlatform = (int32_t (*)(PP_Resource instance, struct PP_Var service_id, struct PP_Var challenge, struct PP_Var* signed_data, struct PP_Var* signed_data_signature, struct PP_Var* platform_key_certificate, struct PP_CompletionCallback callback))&Pnacl_M32_PPB_PlatformVerification_Private_ChallengePlatform
};
-struct PPB_Talk_Private_1_0 Pnacl_Wrappers_PPB_Talk_Private_1_0 = {
+static const struct PPB_Talk_Private_1_0 Pnacl_Wrappers_PPB_Talk_Private_1_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_Talk_Private_Create,
.GetPermission = (int32_t (*)(PP_Resource talk_resource, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_Talk_Private_GetPermission
};
-struct PPB_Talk_Private_2_0 Pnacl_Wrappers_PPB_Talk_Private_2_0 = {
+static const struct PPB_Talk_Private_2_0 Pnacl_Wrappers_PPB_Talk_Private_2_0 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M29_PPB_Talk_Private_Create,
.RequestPermission = (int32_t (*)(PP_Resource talk_resource, PP_TalkPermission permission, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Talk_Private_RequestPermission,
.StartRemoting = (int32_t (*)(PP_Resource talk_resource, PP_TalkEventCallback event_callback, void* user_data, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Talk_Private_StartRemoting,
.StopRemoting = (int32_t (*)(PP_Resource talk_resource, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Talk_Private_StopRemoting
};
-struct PPB_TCPServerSocket_Private_0_1 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1 = {
+static const struct PPB_TCPServerSocket_Private_0_1 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M18_PPB_TCPServerSocket_Private_Create,
.IsTCPServerSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M18_PPB_TCPServerSocket_Private_IsTCPServerSocket,
.Listen = (int32_t (*)(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M18_PPB_TCPServerSocket_Private_Listen,
@@ -4953,7 +5331,7 @@ struct PPB_TCPServerSocket_Private_0_1 Pnacl_Wrappers_PPB_TCPServerSocket_Privat
.StopListening = (void (*)(PP_Resource tcp_server_socket))&Pnacl_M18_PPB_TCPServerSocket_Private_StopListening
};
-struct PPB_TCPServerSocket_Private_0_2 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2 = {
+static const struct PPB_TCPServerSocket_Private_0_2 Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M28_PPB_TCPServerSocket_Private_Create,
.IsTCPServerSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_TCPServerSocket_Private_IsTCPServerSocket,
.Listen = (int32_t (*)(PP_Resource tcp_server_socket, const struct PP_NetAddress_Private* addr, int32_t backlog, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_TCPServerSocket_Private_Listen,
@@ -4962,7 +5340,7 @@ struct PPB_TCPServerSocket_Private_0_2 Pnacl_Wrappers_PPB_TCPServerSocket_Privat
.StopListening = (void (*)(PP_Resource tcp_server_socket))&Pnacl_M28_PPB_TCPServerSocket_Private_StopListening
};
-struct PPB_TCPSocket_Private_0_3 Pnacl_Wrappers_PPB_TCPSocket_Private_0_3 = {
+static const struct PPB_TCPSocket_Private_0_3 Pnacl_Wrappers_PPB_TCPSocket_Private_0_3 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M17_PPB_TCPSocket_Private_Create,
.IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M17_PPB_TCPSocket_Private_IsTCPSocket,
.Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_TCPSocket_Private_Connect,
@@ -4975,7 +5353,7 @@ struct PPB_TCPSocket_Private_0_3 Pnacl_Wrappers_PPB_TCPSocket_Private_0_3 = {
.Disconnect = (void (*)(PP_Resource tcp_socket))&Pnacl_M17_PPB_TCPSocket_Private_Disconnect
};
-struct PPB_TCPSocket_Private_0_4 Pnacl_Wrappers_PPB_TCPSocket_Private_0_4 = {
+static const struct PPB_TCPSocket_Private_0_4 Pnacl_Wrappers_PPB_TCPSocket_Private_0_4 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M20_PPB_TCPSocket_Private_Create,
.IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M20_PPB_TCPSocket_Private_IsTCPSocket,
.Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M20_PPB_TCPSocket_Private_Connect,
@@ -4990,7 +5368,7 @@ struct PPB_TCPSocket_Private_0_4 Pnacl_Wrappers_PPB_TCPSocket_Private_0_4 = {
.Disconnect = (void (*)(PP_Resource tcp_socket))&Pnacl_M20_PPB_TCPSocket_Private_Disconnect
};
-struct PPB_TCPSocket_Private_0_5 Pnacl_Wrappers_PPB_TCPSocket_Private_0_5 = {
+static const struct PPB_TCPSocket_Private_0_5 Pnacl_Wrappers_PPB_TCPSocket_Private_0_5 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M27_PPB_TCPSocket_Private_Create,
.IsTCPSocket = (PP_Bool (*)(PP_Resource resource))&Pnacl_M27_PPB_TCPSocket_Private_IsTCPSocket,
.Connect = (int32_t (*)(PP_Resource tcp_socket, const char* host, uint16_t port, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_Connect,
@@ -5006,7 +5384,7 @@ struct PPB_TCPSocket_Private_0_5 Pnacl_Wrappers_PPB_TCPSocket_Private_0_5 = {
.SetOption = (int32_t (*)(PP_Resource tcp_socket, PP_TCPSocketOption_Private name, struct PP_Var value, struct PP_CompletionCallback callback))&Pnacl_M27_PPB_TCPSocket_Private_SetOption
};
-struct PPB_Testing_Private_1_0 Pnacl_Wrappers_PPB_Testing_Private_1_0 = {
+static const struct PPB_Testing_Private_1_0 Pnacl_Wrappers_PPB_Testing_Private_1_0 = {
.ReadImageData = (PP_Bool (*)(PP_Resource device_context_2d, PP_Resource image, const struct PP_Point* top_left))&Pnacl_M33_PPB_Testing_Private_ReadImageData,
.RunMessageLoop = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_RunMessageLoop,
.QuitMessageLoop = (void (*)(PP_Instance instance))&Pnacl_M33_PPB_Testing_Private_QuitMessageLoop,
@@ -5018,7 +5396,7 @@ struct PPB_Testing_Private_1_0 Pnacl_Wrappers_PPB_Testing_Private_1_0 = {
.SetMinimumArrayBufferSizeForShmem = (void (*)(PP_Instance instance, uint32_t threshold))&Pnacl_M33_PPB_Testing_Private_SetMinimumArrayBufferSizeForShmem
};
-struct PPB_UDPSocket_Private_0_2 Pnacl_Wrappers_PPB_UDPSocket_Private_0_2 = {
+static const struct PPB_UDPSocket_Private_0_2 Pnacl_Wrappers_PPB_UDPSocket_Private_0_2 = {
.Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M17_PPB_UDPSocket_Private_Create,
.IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M17_PPB_UDPSocket_Private_IsUDPSocket,
.Bind = (int32_t (*)(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M17_PPB_UDPSocket_Private_Bind,
@@ -5028,7 +5406,7 @@ struct PPB_UDPSocket_Private_0_2 Pnacl_Wrappers_PPB_UDPSocket_Private_0_2 = {
.Close = (void (*)(PP_Resource udp_socket))&Pnacl_M17_PPB_UDPSocket_Private_Close
};
-struct PPB_UDPSocket_Private_0_3 Pnacl_Wrappers_PPB_UDPSocket_Private_0_3 = {
+static const struct PPB_UDPSocket_Private_0_3 Pnacl_Wrappers_PPB_UDPSocket_Private_0_3 = {
.Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M19_PPB_UDPSocket_Private_Create,
.IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M19_PPB_UDPSocket_Private_IsUDPSocket,
.Bind = (int32_t (*)(PP_Resource udp_socket, const struct PP_NetAddress_Private* addr, struct PP_CompletionCallback callback))&Pnacl_M19_PPB_UDPSocket_Private_Bind,
@@ -5039,7 +5417,7 @@ struct PPB_UDPSocket_Private_0_3 Pnacl_Wrappers_PPB_UDPSocket_Private_0_3 = {
.Close = (void (*)(PP_Resource udp_socket))&Pnacl_M19_PPB_UDPSocket_Private_Close
};
-struct PPB_UDPSocket_Private_0_4 Pnacl_Wrappers_PPB_UDPSocket_Private_0_4 = {
+static const struct PPB_UDPSocket_Private_0_4 Pnacl_Wrappers_PPB_UDPSocket_Private_0_4 = {
.Create = (PP_Resource (*)(PP_Instance instance_id))&Pnacl_M23_PPB_UDPSocket_Private_Create,
.IsUDPSocket = (PP_Bool (*)(PP_Resource resource_id))&Pnacl_M23_PPB_UDPSocket_Private_IsUDPSocket,
.SetSocketFeature = (int32_t (*)(PP_Resource udp_socket, PP_UDPSocketFeature_Private name, struct PP_Var value))&Pnacl_M23_PPB_UDPSocket_Private_SetSocketFeature,
@@ -5051,13 +5429,14 @@ struct PPB_UDPSocket_Private_0_4 Pnacl_Wrappers_PPB_UDPSocket_Private_0_4 = {
.Close = (void (*)(PP_Resource udp_socket))&Pnacl_M23_PPB_UDPSocket_Private_Close
};
-struct PPB_UMA_Private_0_1 Pnacl_Wrappers_PPB_UMA_Private_0_1 = {
- .HistogramCustomTimes = (void (*)(struct PP_Var name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count))&Pnacl_M18_PPB_UMA_Private_HistogramCustomTimes,
- .HistogramCustomCounts = (void (*)(struct PP_Var name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count))&Pnacl_M18_PPB_UMA_Private_HistogramCustomCounts,
- .HistogramEnumeration = (void (*)(struct PP_Var name, int32_t sample, int32_t boundary_value))&Pnacl_M18_PPB_UMA_Private_HistogramEnumeration
+static const struct PPB_UMA_Private_0_3 Pnacl_Wrappers_PPB_UMA_Private_0_3 = {
+ .HistogramCustomTimes = (void (*)(PP_Instance instance, struct PP_Var name, int64_t sample, int64_t min, int64_t max, uint32_t bucket_count))&Pnacl_M35_PPB_UMA_Private_HistogramCustomTimes,
+ .HistogramCustomCounts = (void (*)(PP_Instance instance, struct PP_Var name, int32_t sample, int32_t min, int32_t max, uint32_t bucket_count))&Pnacl_M35_PPB_UMA_Private_HistogramCustomCounts,
+ .HistogramEnumeration = (void (*)(PP_Instance instance, struct PP_Var name, int32_t sample, int32_t boundary_value))&Pnacl_M35_PPB_UMA_Private_HistogramEnumeration,
+ .IsCrashReportingEnabled = (int32_t (*)(PP_Instance instance, struct PP_CompletionCallback callback))&Pnacl_M35_PPB_UMA_Private_IsCrashReportingEnabled
};
-struct PPB_VideoDestination_Private_0_1 Pnacl_Wrappers_PPB_VideoDestination_Private_0_1 = {
+static const struct PPB_VideoDestination_Private_0_1 Pnacl_Wrappers_PPB_VideoDestination_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M28_PPB_VideoDestination_Private_Create,
.IsVideoDestination = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_VideoDestination_Private_IsVideoDestination,
.Open = (int32_t (*)(PP_Resource destination, struct PP_Var stream_url, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_VideoDestination_Private_Open,
@@ -5065,7 +5444,7 @@ struct PPB_VideoDestination_Private_0_1 Pnacl_Wrappers_PPB_VideoDestination_Priv
.Close = (void (*)(PP_Resource destination))&Pnacl_M28_PPB_VideoDestination_Private_Close
};
-struct PPB_VideoSource_Private_0_1 Pnacl_Wrappers_PPB_VideoSource_Private_0_1 = {
+static const struct PPB_VideoSource_Private_0_1 Pnacl_Wrappers_PPB_VideoSource_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M28_PPB_VideoSource_Private_Create,
.IsVideoSource = (PP_Bool (*)(PP_Resource resource))&Pnacl_M28_PPB_VideoSource_Private_IsVideoSource,
.Open = (int32_t (*)(PP_Resource source, struct PP_Var stream_url, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_VideoSource_Private_Open,
@@ -5073,690 +5452,686 @@ struct PPB_VideoSource_Private_0_1 Pnacl_Wrappers_PPB_VideoSource_Private_0_1 =
.Close = (void (*)(PP_Resource source))&Pnacl_M28_PPB_VideoSource_Private_Close
};
-struct PPB_X509Certificate_Private_0_1 Pnacl_Wrappers_PPB_X509Certificate_Private_0_1 = {
+static const struct PPB_X509Certificate_Private_0_1 Pnacl_Wrappers_PPB_X509Certificate_Private_0_1 = {
.Create = (PP_Resource (*)(PP_Instance instance))&Pnacl_M19_PPB_X509Certificate_Private_Create,
.IsX509CertificatePrivate = (PP_Bool (*)(PP_Resource resource))&Pnacl_M19_PPB_X509Certificate_Private_IsX509CertificatePrivate,
.Initialize = (PP_Bool (*)(PP_Resource resource, const char* bytes, uint32_t length))&Pnacl_M19_PPB_X509Certificate_Private_Initialize,
.GetField = (struct PP_Var (*)(PP_Resource resource, PP_X509Certificate_Private_Field field))&Pnacl_M19_PPB_X509Certificate_Private_GetField
};
-struct PPP_ContentDecryptor_Private_0_9 Pnacl_Wrappers_PPP_ContentDecryptor_Private_0_9 = {
- .Initialize = &Pnacl_M33_PPP_ContentDecryptor_Private_Initialize,
- .CreateSession = &Pnacl_M33_PPP_ContentDecryptor_Private_CreateSession,
- .UpdateSession = &Pnacl_M33_PPP_ContentDecryptor_Private_UpdateSession,
- .ReleaseSession = &Pnacl_M33_PPP_ContentDecryptor_Private_ReleaseSession,
- .Decrypt = &Pnacl_M33_PPP_ContentDecryptor_Private_Decrypt,
- .InitializeAudioDecoder = &Pnacl_M33_PPP_ContentDecryptor_Private_InitializeAudioDecoder,
- .InitializeVideoDecoder = &Pnacl_M33_PPP_ContentDecryptor_Private_InitializeVideoDecoder,
- .DeinitializeDecoder = &Pnacl_M33_PPP_ContentDecryptor_Private_DeinitializeDecoder,
- .ResetDecoder = &Pnacl_M33_PPP_ContentDecryptor_Private_ResetDecoder,
- .DecryptAndDecode = &Pnacl_M33_PPP_ContentDecryptor_Private_DecryptAndDecode
+static const struct PPP_ContentDecryptor_Private_0_12 Pnacl_Wrappers_PPP_ContentDecryptor_Private_0_12 = {
+ .Initialize = &Pnacl_M36_PPP_ContentDecryptor_Private_Initialize,
+ .CreateSession = &Pnacl_M36_PPP_ContentDecryptor_Private_CreateSession,
+ .LoadSession = &Pnacl_M36_PPP_ContentDecryptor_Private_LoadSession,
+ .UpdateSession = &Pnacl_M36_PPP_ContentDecryptor_Private_UpdateSession,
+ .ReleaseSession = &Pnacl_M36_PPP_ContentDecryptor_Private_ReleaseSession,
+ .Decrypt = &Pnacl_M36_PPP_ContentDecryptor_Private_Decrypt,
+ .InitializeAudioDecoder = &Pnacl_M36_PPP_ContentDecryptor_Private_InitializeAudioDecoder,
+ .InitializeVideoDecoder = &Pnacl_M36_PPP_ContentDecryptor_Private_InitializeVideoDecoder,
+ .DeinitializeDecoder = &Pnacl_M36_PPP_ContentDecryptor_Private_DeinitializeDecoder,
+ .ResetDecoder = &Pnacl_M36_PPP_ContentDecryptor_Private_ResetDecoder,
+ .DecryptAndDecode = &Pnacl_M36_PPP_ContentDecryptor_Private_DecryptAndDecode
};
+/* Not generating wrapper interface for PPP_Find_Private_0_3 */
+
/* Not generating wrapper interface for PPP_Flash_BrowserOperations_1_0 */
/* Not generating wrapper interface for PPP_Flash_BrowserOperations_1_2 */
/* Not generating wrapper interface for PPP_Flash_BrowserOperations_1_3 */
-struct PPP_Instance_Private_0_1 Pnacl_Wrappers_PPP_Instance_Private_0_1 = {
+static const struct PPP_Instance_Private_0_1 Pnacl_Wrappers_PPP_Instance_Private_0_1 = {
.GetInstanceObject = &Pnacl_M18_PPP_Instance_Private_GetInstanceObject
};
-struct PPB_Ext_Socket_Dev_0_1 Pnacl_Wrappers_PPB_Ext_Socket_Dev_0_1 = {
- .Create = (int32_t (*)(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev* create_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Create,
- .Destroy = (void (*)(PP_Instance instance, struct PP_Var socket_id))&Pnacl_M28_PPB_Ext_Socket_Dev_Destroy,
- .Connect = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var hostname, struct PP_Var port, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Connect,
- .Bind = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Bind,
- .Disconnect = (void (*)(PP_Instance instance, struct PP_Var socket_id))&Pnacl_M28_PPB_Ext_Socket_Dev_Disconnect,
- .Read = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_ReadInfo_Dev* read_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Read,
- .Write = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Write,
- .RecvFrom = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_RecvFrom,
- .SendTo = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, struct PP_Var address, struct PP_Var port, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_SendTo,
- .Listen = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var backlog, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Listen,
- .Accept = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_AcceptInfo_Dev* accept_info, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_Accept,
- .SetKeepAlive = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enable, struct PP_Var delay, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_SetKeepAlive,
- .SetNoDelay = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var no_delay, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_SetNoDelay,
- .GetInfo = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_SocketInfo_Dev* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_GetInfo,
- .GetNetworkList = (int32_t (*)(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array* result, struct PP_CompletionCallback callback))&Pnacl_M28_PPB_Ext_Socket_Dev_GetNetworkList
-};
-
-struct PPB_Ext_Socket_Dev_0_2 Pnacl_Wrappers_PPB_Ext_Socket_Dev_0_2 = {
- .Create = (int32_t (*)(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev* create_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Create,
- .Destroy = (void (*)(PP_Instance instance, struct PP_Var socket_id))&Pnacl_M29_PPB_Ext_Socket_Dev_Destroy,
- .Connect = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var hostname, struct PP_Var port, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Connect,
- .Bind = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Bind,
- .Disconnect = (void (*)(PP_Instance instance, struct PP_Var socket_id))&Pnacl_M29_PPB_Ext_Socket_Dev_Disconnect,
- .Read = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_ReadInfo_Dev* read_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Read,
- .Write = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Write,
- .RecvFrom = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_RecvFrom,
- .SendTo = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, struct PP_Var address, struct PP_Var port, PP_Ext_Socket_WriteInfo_Dev* write_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_SendTo,
- .Listen = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var backlog, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Listen,
- .Accept = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_AcceptInfo_Dev* accept_info, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_Accept,
- .SetKeepAlive = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enable, struct PP_Var delay, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_SetKeepAlive,
- .SetNoDelay = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var no_delay, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_SetNoDelay,
- .GetInfo = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_SocketInfo_Dev* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_GetInfo,
- .GetNetworkList = (int32_t (*)(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_GetNetworkList,
- .JoinGroup = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_JoinGroup,
- .LeaveGroup = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_LeaveGroup,
- .SetMulticastTimeToLive = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var ttl, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_SetMulticastTimeToLive,
- .SetMulticastLoopbackMode = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enabled, struct PP_Var* result, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_SetMulticastLoopbackMode,
- .GetJoinedGroups = (int32_t (*)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var* groups, struct PP_CompletionCallback callback))&Pnacl_M29_PPB_Ext_Socket_Dev_GetJoinedGroups
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Compositor_0_1 = {
+ .iface_macro = PPB_COMPOSITOR_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Compositor_0_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_CompositorLayer_0_1 = {
+ .iface_macro = PPB_COMPOSITORLAYER_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_CompositorLayer_0_1,
+ .real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Console_1_0 = {
.iface_macro = PPB_CONSOLE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Console_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Console_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Core_1_0 = {
.iface_macro = PPB_CORE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Core_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Core_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_0 = {
.iface_macro = PPB_FILEIO_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileIO_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_1_1 = {
.iface_macro = PPB_FILEIO_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileIO_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_1_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileMapping_0_1 = {
+ .iface_macro = PPB_FILEMAPPING_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileMapping_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_0 = {
.iface_macro = PPB_FILEREF_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileRef_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_1 = {
.iface_macro = PPB_FILEREF_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileRef_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRef_1_2 = {
+ .iface_macro = PPB_FILEREF_INTERFACE_1_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRef_1_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileSystem_1_0 = {
.iface_macro = PPB_FILESYSTEM_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileSystem_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileSystem_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_0 = {
.iface_macro = PPB_GRAPHICS_2D_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Graphics2D_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics2D_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics2D_1_1 = {
.iface_macro = PPB_GRAPHICS_2D_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Graphics2D_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics2D_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Graphics3D_1_0 = {
.iface_macro = PPB_GRAPHICS_3D_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Graphics3D_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Graphics3D_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_1_0 = {
.iface_macro = PPB_HOSTRESOLVER_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_HostResolver_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_HostResolver_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_0 = {
.iface_macro = PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1 = {
.iface_macro = PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseInputEvent_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0 = {
.iface_macro = PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_WheelInputEvent_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_WheelInputEvent_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0 = {
.iface_macro = PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_1_0,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2 = {
+ .iface_macro = PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_1_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0 = {
.iface_macro = PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TouchInputEvent_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TouchInputEvent_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0 = {
.iface_macro = PPB_IME_INPUT_EVENT_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_IMEInputEvent_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_1_0,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1 = {
+ .iface_macro = PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamAudioTrack_0_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1 = {
+ .iface_macro = PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamVideoTrack_0_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0 = {
+ .iface_macro = PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MediaStreamVideoTrack_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MessageLoop_1_0 = {
.iface_macro = PPB_MESSAGELOOP_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_MessageLoop_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MessageLoop_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_0 = {
.iface_macro = PPB_MESSAGING_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Messaging_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Messaging_1_0,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Messaging_1_1 = {
+ .iface_macro = PPB_MESSAGING_INTERFACE_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Messaging_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_MouseLock_1_0 = {
.iface_macro = PPB_MOUSELOCK_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_MouseLock_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_MouseLock_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_1_0 = {
.iface_macro = PPB_NETADDRESS_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetAddress_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkList_1_0 = {
.iface_macro = PPB_NETWORKLIST_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetworkList_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkList_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkMonitor_1_0 = {
.iface_macro = PPB_NETWORKMONITOR_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetworkMonitor_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkMonitor_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetworkProxy_1_0 = {
.iface_macro = PPB_NETWORKPROXY_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetworkProxy_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetworkProxy_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_0 = {
.iface_macro = PPB_TCPSOCKET_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPSocket_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_1_1 = {
.iface_macro = PPB_TCPSOCKET_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPSocket_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TextInputController_1_0 = {
.iface_macro = PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TextInputController_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TextInputController_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_1_0 = {
.iface_macro = PPB_UDPSOCKET_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_UDPSocket_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLLoader_1_0 = {
.iface_macro = PPB_URLLOADER_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_URLLoader_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLLoader_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLRequestInfo_1_0 = {
.iface_macro = PPB_URLREQUESTINFO_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_URLRequestInfo_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLRequestInfo_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0 = {
.iface_macro = PPB_URLRESPONSEINFO_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_URLResponseInfo_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLResponseInfo_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_0 = {
.iface_macro = PPB_VAR_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Var_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_1 = {
.iface_macro = PPB_VAR_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Var_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_1,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Var_1_2 = {
+ .iface_macro = PPB_VAR_INTERFACE_1_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Var_1_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArray_1_0 = {
.iface_macro = PPB_VAR_ARRAY_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarArray_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarArray_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0 = {
.iface_macro = PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarArrayBuffer_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarArrayBuffer_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarDictionary_1_0 = {
.iface_macro = PPB_VAR_DICTIONARY_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarDictionary_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VarDictionary_1_0,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_0_1 = {
+ .iface_macro = PPB_VIDEODECODER_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_WebSocket_1_0 = {
.iface_macro = PPB_WEBSOCKET_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_WebSocket_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_WebSocket_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Messaging_1_0 = {
.iface_macro = PPP_MESSAGING_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPP_Messaging_1_0,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1 = {
- .iface_macro = PPB_ALARMS_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Alarms_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2 = {
- .iface_macro = PPB_AUDIO_INPUT_DEV_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_Messaging_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3 = {
.iface_macro = PPB_AUDIO_INPUT_DEV_INTERFACE_0_3,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_3,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4 = {
.iface_macro = PPB_AUDIO_INPUT_DEV_INTERFACE_0_4,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_4,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_AudioInput_Dev_0_4,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1 = {
.iface_macro = PPB_DEVICEREF_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_DeviceRef_Dev_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5 = {
.iface_macro = PPB_FILECHOOSER_DEV_INTERFACE_0_5,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_5,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_5,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6 = {
.iface_macro = PPB_FILECHOOSER_DEV_INTERFACE_0_6,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_6,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1 = {
- .iface_macro = PPB_FILEIO_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileIO_Dev_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileChooser_Dev_0_6,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Font_Dev_0_6 = {
.iface_macro = PPB_FONT_DEV_INTERFACE_0_6,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Font_Dev_0_6,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Font_Dev_0_6,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1 = {
.iface_macro = PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2 = {
.iface_macro = PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2 = {
- .iface_macro = PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_KeyboardInputEvent_Dev_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IMEInputEvent_Dev_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Printing_Dev_0_7 = {
.iface_macro = PPB_PRINTING_DEV_INTERFACE_0_7,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Printing_Dev_0_7,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Printing_Dev_0_7,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TrueTypeFont_Dev_0_1 = {
.iface_macro = PPB_TRUETYPEFONT_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TrueTypeFont_Dev_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TrueTypeFont_Dev_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6 = {
.iface_macro = PPB_URLUTIL_DEV_INTERFACE_0_6,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_6,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_6,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7 = {
.iface_macro = PPB_URLUTIL_DEV_INTERFACE_0_7,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_7,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1 = {
- .iface_macro = PPB_VAR_RESOURCE_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VarResource_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2 = {
- .iface_macro = PPB_VIDEOCAPTURE_DEV_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoCapture_Dev_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_URLUtil_Dev_0_7,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3 = {
.iface_macro = PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoCapture_Dev_0_3,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16 = {
.iface_macro = PPB_VIDEODECODER_DEV_INTERFACE_0_16,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDecoder_Dev_0_16,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Selection_Dev_0_3 = {
.iface_macro = PPP_SELECTION_DEV_INTERFACE_0_3,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPP_Selection_Dev_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_Selection_Dev_0_3,
.real_iface = NULL
};
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9 = {
- .iface_macro = PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_ContentDecryptor_Private_0_9,
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12 = {
+ .iface_macro = PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_ContentDecryptor_Private_0_12,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1 = {
+ .iface_macro = PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_DisplayColorProfile_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1 = {
.iface_macro = PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Ext_CrxFileSystem_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileIO_Private_0_1 = {
.iface_macro = PPB_FILEIO_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileIO_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileIO_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1 = {
.iface_macro = PPB_FILEREFPRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_FileRefPrivate_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_FileRefPrivate_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_12_4 = {
.iface_macro = PPB_FLASH_INTERFACE_12_4,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_12_4,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_12_4,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_12_5 = {
.iface_macro = PPB_FLASH_INTERFACE_12_5,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_12_5,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_12_5,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_12_6 = {
.iface_macro = PPB_FLASH_INTERFACE_12_6,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_12_6,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_12_6,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_13_0 = {
.iface_macro = PPB_FLASH_INTERFACE_13_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_13_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_13_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_4_0 = {
.iface_macro = PPB_FLASH_CLIPBOARD_INTERFACE_4_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_Clipboard_4_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_Clipboard_4_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_0 = {
.iface_macro = PPB_FLASH_CLIPBOARD_INTERFACE_5_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_Clipboard_5_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_Clipboard_5_0,
+ .real_iface = NULL
+};
+
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1 = {
+ .iface_macro = PPB_FLASH_CLIPBOARD_INTERFACE_5_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_Clipboard_5_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DeviceID_1_0 = {
.iface_macro = PPB_FLASH_DEVICEID_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_DeviceID_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_DeviceID_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DRM_1_0 = {
.iface_macro = PPB_FLASH_DRM_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_DRM_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_DRM_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_DRM_1_1 = {
.iface_macro = PPB_FLASH_DRM_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_DRM_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_DRM_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Flash_Menu_0_2 = {
.iface_macro = PPB_FLASH_MENU_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Flash_Menu_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Flash_Menu_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_HostResolver_Private_0_1 = {
.iface_macro = PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_HostResolver_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_HostResolver_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Instance_Private_0_1 = {
.iface_macro = PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Instance_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Instance_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_IsolatedFileSystem_Private_0_2 = {
.iface_macro = PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_IsolatedFileSystem_Private_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NaCl_Private_1_0 = {
.iface_macro = PPB_NACL_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NaCl_Private_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NaCl_Private_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_0_1 = {
.iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetAddress_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_0 = {
.iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_NetAddress_Private_1_1 = {
.iface_macro = PPB_NETADDRESS_PRIVATE_INTERFACE_1_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_NetAddress_Private_1_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_OutputProtection_Private_0_1 = {
.iface_macro = PPB_OUTPUTPROTECTION_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_OutputProtection_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_OutputProtection_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_PlatformVerification_Private_0_2 = {
.iface_macro = PPB_PLATFORMVERIFICATION_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_PlatformVerification_Private_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_PlatformVerification_Private_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Talk_Private_1_0 = {
.iface_macro = PPB_TALK_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Talk_Private_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Talk_Private_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Talk_Private_2_0 = {
.iface_macro = PPB_TALK_PRIVATE_INTERFACE_2_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Talk_Private_2_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Talk_Private_2_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_1 = {
.iface_macro = PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPServerSocket_Private_0_2 = {
.iface_macro = PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPServerSocket_Private_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_3 = {
.iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_3,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_4 = {
.iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_4,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_4,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_TCPSocket_Private_0_5 = {
.iface_macro = PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_5,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_TCPSocket_Private_0_5,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Testing_Private_1_0 = {
.iface_macro = PPB_TESTING_PRIVATE_INTERFACE_1_0,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Testing_Private_1_0,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_Testing_Private_1_0,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2 = {
.iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_2,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3 = {
.iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_3,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4 = {
.iface_macro = PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_4,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UDPSocket_Private_0_4,
.real_iface = NULL
};
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_1 = {
- .iface_macro = PPB_UMA_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_UMA_Private_0_1,
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_UMA_Private_0_3 = {
+ .iface_macro = PPB_UMA_PRIVATE_INTERFACE_0_3,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_UMA_Private_0_3,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoDestination_Private_0_1 = {
.iface_macro = PPB_VIDEODESTINATION_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoDestination_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoDestination_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_VideoSource_Private_0_1 = {
.iface_macro = PPB_VIDEOSOURCE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_VideoSource_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_VideoSource_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1 = {
.iface_macro = PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_X509Certificate_Private_0_1,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPB_X509Certificate_Private_0_1,
.real_iface = NULL
};
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9 = {
- .iface_macro = PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPP_ContentDecryptor_Private_0_9,
+static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12 = {
+ .iface_macro = PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_ContentDecryptor_Private_0_12,
.real_iface = NULL
};
static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPP_Instance_Private_0_1 = {
.iface_macro = PPP_INSTANCE_PRIVATE_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPP_Instance_Private_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1 = {
- .iface_macro = PPB_EXT_SOCKET_DEV_INTERFACE_0_1,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Ext_Socket_Dev_0_1,
- .real_iface = NULL
-};
-
-static struct __PnaclWrapperInfo Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2 = {
- .iface_macro = PPB_EXT_SOCKET_DEV_INTERFACE_0_2,
- .wrapped_iface = (void *) &Pnacl_Wrappers_PPB_Ext_Socket_Dev_0_2,
+ .wrapped_iface = (const void *) &Pnacl_Wrappers_PPP_Instance_Private_0_1,
.real_iface = NULL
};
static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
+ &Pnacl_WrapperInfo_PPB_Compositor_0_1,
+ &Pnacl_WrapperInfo_PPB_CompositorLayer_0_1,
&Pnacl_WrapperInfo_PPB_Console_1_0,
&Pnacl_WrapperInfo_PPB_Core_1_0,
&Pnacl_WrapperInfo_PPB_FileIO_1_0,
&Pnacl_WrapperInfo_PPB_FileIO_1_1,
+ &Pnacl_WrapperInfo_PPB_FileMapping_0_1,
&Pnacl_WrapperInfo_PPB_FileRef_1_0,
&Pnacl_WrapperInfo_PPB_FileRef_1_1,
+ &Pnacl_WrapperInfo_PPB_FileRef_1_2,
&Pnacl_WrapperInfo_PPB_FileSystem_1_0,
&Pnacl_WrapperInfo_PPB_Graphics2D_1_0,
&Pnacl_WrapperInfo_PPB_Graphics2D_1_1,
@@ -5766,10 +6141,15 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
&Pnacl_WrapperInfo_PPB_MouseInputEvent_1_1,
&Pnacl_WrapperInfo_PPB_WheelInputEvent_1_0,
&Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_0,
+ &Pnacl_WrapperInfo_PPB_KeyboardInputEvent_1_2,
&Pnacl_WrapperInfo_PPB_TouchInputEvent_1_0,
&Pnacl_WrapperInfo_PPB_IMEInputEvent_1_0,
+ &Pnacl_WrapperInfo_PPB_MediaStreamAudioTrack_0_1,
+ &Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_0_1,
+ &Pnacl_WrapperInfo_PPB_MediaStreamVideoTrack_1_0,
&Pnacl_WrapperInfo_PPB_MessageLoop_1_0,
&Pnacl_WrapperInfo_PPB_Messaging_1_0,
+ &Pnacl_WrapperInfo_PPB_Messaging_1_1,
&Pnacl_WrapperInfo_PPB_MouseLock_1_0,
&Pnacl_WrapperInfo_PPB_NetAddress_1_0,
&Pnacl_WrapperInfo_PPB_NetworkList_1_0,
@@ -5784,31 +6164,28 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
&Pnacl_WrapperInfo_PPB_URLResponseInfo_1_0,
&Pnacl_WrapperInfo_PPB_Var_1_0,
&Pnacl_WrapperInfo_PPB_Var_1_1,
+ &Pnacl_WrapperInfo_PPB_Var_1_2,
&Pnacl_WrapperInfo_PPB_VarArray_1_0,
&Pnacl_WrapperInfo_PPB_VarArrayBuffer_1_0,
&Pnacl_WrapperInfo_PPB_VarDictionary_1_0,
+ &Pnacl_WrapperInfo_PPB_VideoDecoder_0_1,
&Pnacl_WrapperInfo_PPB_WebSocket_1_0,
- &Pnacl_WrapperInfo_PPB_Alarms_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_2,
&Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_3,
&Pnacl_WrapperInfo_PPB_AudioInput_Dev_0_4,
&Pnacl_WrapperInfo_PPB_DeviceRef_Dev_0_1,
&Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_5,
&Pnacl_WrapperInfo_PPB_FileChooser_Dev_0_6,
- &Pnacl_WrapperInfo_PPB_FileIO_Dev_0_1,
&Pnacl_WrapperInfo_PPB_Font_Dev_0_6,
&Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_1,
&Pnacl_WrapperInfo_PPB_IMEInputEvent_Dev_0_2,
- &Pnacl_WrapperInfo_PPB_KeyboardInputEvent_Dev_0_2,
&Pnacl_WrapperInfo_PPB_Printing_Dev_0_7,
&Pnacl_WrapperInfo_PPB_TrueTypeFont_Dev_0_1,
&Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_6,
&Pnacl_WrapperInfo_PPB_URLUtil_Dev_0_7,
- &Pnacl_WrapperInfo_PPB_VarResource_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_2,
&Pnacl_WrapperInfo_PPB_VideoCapture_Dev_0_3,
&Pnacl_WrapperInfo_PPB_VideoDecoder_Dev_0_16,
- &Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_9,
+ &Pnacl_WrapperInfo_PPB_ContentDecryptor_Private_0_12,
+ &Pnacl_WrapperInfo_PPB_DisplayColorProfile_Private_0_1,
&Pnacl_WrapperInfo_PPB_Ext_CrxFileSystem_Private_0_1,
&Pnacl_WrapperInfo_PPB_FileIO_Private_0_1,
&Pnacl_WrapperInfo_PPB_FileRefPrivate_0_1,
@@ -5818,6 +6195,7 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
&Pnacl_WrapperInfo_PPB_Flash_13_0,
&Pnacl_WrapperInfo_PPB_Flash_Clipboard_4_0,
&Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_0,
+ &Pnacl_WrapperInfo_PPB_Flash_Clipboard_5_1,
&Pnacl_WrapperInfo_PPB_Flash_DeviceID_1_0,
&Pnacl_WrapperInfo_PPB_Flash_DRM_1_0,
&Pnacl_WrapperInfo_PPB_Flash_DRM_1_1,
@@ -5842,19 +6220,17 @@ static struct __PnaclWrapperInfo *s_ppb_wrappers[] = {
&Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_2,
&Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_3,
&Pnacl_WrapperInfo_PPB_UDPSocket_Private_0_4,
- &Pnacl_WrapperInfo_PPB_UMA_Private_0_1,
+ &Pnacl_WrapperInfo_PPB_UMA_Private_0_3,
&Pnacl_WrapperInfo_PPB_VideoDestination_Private_0_1,
&Pnacl_WrapperInfo_PPB_VideoSource_Private_0_1,
&Pnacl_WrapperInfo_PPB_X509Certificate_Private_0_1,
- &Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_1,
- &Pnacl_WrapperInfo_PPB_Ext_Socket_Dev_0_2,
NULL
};
static struct __PnaclWrapperInfo *s_ppp_wrappers[] = {
&Pnacl_WrapperInfo_PPP_Messaging_1_0,
&Pnacl_WrapperInfo_PPP_Selection_Dev_0_3,
- &Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_9,
+ &Pnacl_WrapperInfo_PPP_ContentDecryptor_Private_0_12,
&Pnacl_WrapperInfo_PPP_Instance_Private_0_1,
NULL
};
@@ -5908,11 +6284,7 @@ const void *__Pnacl_PPBGetInterface(const char *name) {
wrapper->real_iface = iface;
}
- if (wrapper->wrapped_iface) {
- return wrapper->wrapped_iface;
- } else {
- return wrapper->real_iface;
- }
+ return wrapper->wrapped_iface;
}
const void *__Pnacl_PPPGetInterface(const char *name) {
@@ -5929,9 +6301,5 @@ const void *__Pnacl_PPPGetInterface(const char *name) {
wrapper->real_iface = iface;
}
- if (wrapper->wrapped_iface) {
- return wrapper->wrapped_iface;
- } else {
- return wrapper->real_iface;
- }
+ return wrapper->wrapped_iface;
}
diff --git a/chromium/ppapi/generators/pnacl_shim.h b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h
index 1002d07037a..eb801831163 100644
--- a/chromium/ppapi/generators/pnacl_shim.h
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h
@@ -3,8 +3,8 @@
* found in the LICENSE file.
*/
-#ifndef PPAPI_GENERATORS_PNACL_SHIM_H_
-#define PPAPI_GENERATORS_PNACL_SHIM_H_
+#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_
+#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_
#include "ppapi/c/ppb.h"
@@ -22,8 +22,8 @@ const void *__Pnacl_PPPGetInterface(const char *name);
struct __PnaclWrapperInfo {
const char* iface_macro;
- const void* wrapped_iface; /* If NULL then it was not wrapped! */
+ const void* wrapped_iface;
const void* real_iface;
};
-#endif /* PPAPI_GENERATORS_PNACL_SHIM_H_ */
+#endif /* PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_PNACL_SHIM_H_ */
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c
index 4c93c9e5e83..561b0cc391f 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_entry.c
@@ -28,15 +28,15 @@ void _pnacl_wrapper_start(uint32_t *info) {
if (entry != NULL) {
/*
- * Save the real irt interface.
+ * Save the real irt interface query function.
*/
- __pnacl_real_irt_interface = (TYPE_nacl_irt_query) entry->a_un.a_val;
+ __pnacl_real_irt_query_func = (TYPE_nacl_irt_query) entry->a_un.a_val;
/*
* Overwrite the auxv slot with the pnacl IRT shim query function.
*/
entry->a_type = AT_SYSINFO;
- entry->a_un.a_val = (uintptr_t) __pnacl_irt_interface_wrapper;
+ entry->a_un.a_val = (uintptr_t) __pnacl_wrap_irt_query_func;
}
/* If entry is NULL still allow startup to continue. It may be the case
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c
index 70f17b244ca..e6984edf44a 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.c
@@ -7,72 +7,11 @@
#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h"
#include <string.h>
-#include "native_client/src/include/nacl_macros.h"
#include "native_client/src/untrusted/irt/irt.h"
-#include "native_client/src/untrusted/irt/irt_dev.h"
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
-#include "ppapi/generators/pnacl_shim.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-
-
-/*
- * This is a whitelist of NaCl IRT interfaces that are exposed under
- * PNaCl. This list omits the following:
- *
- * * The old versions of "irt-memory", v0.1 and v0.2, which contain
- * the deprecated sysbrk() function. See:
- * https://code.google.com/p/nativeclient/issues/detail?id=3542
- *
- * * "irt-mutex", "irt-cond" and "irt-sem", which are deprecated and
- * are superseded by the "irt-futex" interface. See:
- * https://code.google.com/p/nativeclient/issues/detail?id=3484
- *
- * * "irt-dyncode", which is not supported under PNaCl because
- * dynamically loading architecture-specific native code is not
- * portable.
- *
- * * "irt-exception-handling", which is not supported under PNaCl
- * because it exposes non-portable, architecture-specific register
- * state. See:
- * https://code.google.com/p/nativeclient/issues/detail?id=3444
- *
- * * "irt-blockhook", which is deprecated. It was provided for
- * implementing thread suspension for conservative garbage
- * collection, but this is probably not a portable use case under
- * PNaCl, so this interface is disabled under PNaCl. See:
- * https://code.google.com/p/nativeclient/issues/detail?id=3539
- *
- * * "irt-resource-open". This was primarily provided for use by
- * nacl-glibc's dynamic linker, which is not supported under PNaCl.
- * open_resource() returns a file descriptor, but it is the only
- * interface in NaCl to do so inside Chromium. This is
- * inconsistent with PPAPI, which does not expose file descriptors
- * (except in private/dev interfaces). See:
- * https://code.google.com/p/nativeclient/issues/detail?id=3574
- *
- * * "irt-fdio" and "irt-filename". Under PNaCl, where
- * open_resource() open is disallowed, these are only useful for
- * debugging. They are only allowed via the "dev" query strings;
- * the non-"dev" query strings are disallowed.
- *
- * We omit these because they are only "dev" interfaces:
- *
- * * "irt-dev-getpid"
- * * "irt-dev-list-mappings"
- */
-static const char *const irt_interface_whitelist[] = {
- NACL_IRT_BASIC_v0_1,
- NACL_IRT_MEMORY_v0_3,
- NACL_IRT_THREAD_v0_1,
- NACL_IRT_FUTEX_v0_1,
- NACL_IRT_TLS_v0_1,
- NACL_IRT_PPAPIHOOK_v0_1,
- NACL_IRT_RANDOM_v0_1,
- NACL_IRT_CLOCK_v0_1,
- /* Allowed for debugging purposes: */
- NACL_IRT_DEV_FDIO_v0_1,
- NACL_IRT_DEV_FILENAME_v0_2,
-};
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.h"
/* Use local strcmp to avoid dependency on libc. */
static int mystrcmp(const char* s1, const char *s2) {
@@ -80,69 +19,10 @@ static int mystrcmp(const char* s1, const char *s2) {
return *(--s1) - *(--s2);
}
-static int is_irt_interface_whitelisted(const char *interface_name) {
- int i;
- for (i = 0; i < NACL_ARRAY_SIZE(irt_interface_whitelist); i++) {
- if (mystrcmp(interface_name, irt_interface_whitelist[i]) == 0) {
- return 1;
- }
- }
- return 0;
-}
-
-TYPE_nacl_irt_query __pnacl_real_irt_interface;
-
-/*
- * These remember the interface pointers the user registers by calling the
- * IRT entry point.
- */
-static struct PP_StartFunctions user_start_functions;
-
-static int32_t wrap_PPPInitializeModule(PP_Module module_id,
- PPB_GetInterface get_browser_intf) {
- __set_real_Pnacl_PPBGetInterface(get_browser_intf);
- /*
- * Calls from user code to the PPB interfaces pass through here and may
- * require shims to convert the ABI.
- */
- return (*user_start_functions.PPP_InitializeModule)(module_id,
- &__Pnacl_PPBGetInterface);
-}
-
-static void wrap_PPPShutdownModule() {
- (*user_start_functions.PPP_ShutdownModule)();
-}
-
-static const struct PP_StartFunctions wrapped_ppapi_methods = {
- wrap_PPPInitializeModule,
- wrap_PPPShutdownModule,
- /*
- * Calls from the IRT to the user plugin pass through here and may require
- * shims to convert the ABI.
- */
- __Pnacl_PPPGetInterface
-};
+TYPE_nacl_irt_query __pnacl_real_irt_query_func = NULL;
-static struct nacl_irt_ppapihook real_irt_ppapi_hook;
-
-static int wrap_ppapi_start(const struct PP_StartFunctions *funcs) {
- /*
- * Save the user's real bindings for the start functions.
- */
- user_start_functions = *funcs;
- __set_real_Pnacl_PPPGetInterface(user_start_functions.PPP_GetInterface);
-
- /*
- * Invoke the IRT's ppapi_start interface with the wrapped interface.
- */
- return (*real_irt_ppapi_hook.ppapi_start)(&wrapped_ppapi_methods);
-}
-
-size_t __pnacl_irt_interface_wrapper(const char *interface_ident,
+size_t __pnacl_wrap_irt_query_func(const char *interface_ident,
void *table, size_t tablesize) {
- if (!is_irt_interface_whitelisted(interface_ident))
- return 0;
-
/*
* Note there is a benign race in initializing the wrapper.
* We build the "hook" structure by copying from the IRT's hook and then
@@ -154,23 +34,39 @@ size_t __pnacl_irt_interface_wrapper(const char *interface_ident,
/*
* The interface is not wrapped, so use the real interface.
*/
- return (*__pnacl_real_irt_interface)(interface_ident, table, tablesize);
+ return (*__pnacl_real_irt_query_func)(interface_ident, table, tablesize);
}
- if ((*__pnacl_real_irt_interface)(NACL_IRT_PPAPIHOOK_v0_1,
- &real_irt_ppapi_hook,
- sizeof real_irt_ppapi_hook) !=
+#ifndef PNACL_SHIM_AOT
+ /*
+ * For PNaCl in-the-browser, redirect to using
+ * NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 instead of NACL_IRT_PPAPIHOOK_v0_1.
+ */
+ return (*__pnacl_real_irt_query_func)(NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1,
+ table, tablesize);
+#else
+ /*
+ * For offline generated nexes, avoid depending on the private
+ * NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1 interface, and just do the
+ * overriding here manually.
+ */
+ struct nacl_irt_ppapihook real_irt_ppapi_hook;
+ if ((*__pnacl_real_irt_query_func)(NACL_IRT_PPAPIHOOK_v0_1,
+ &real_irt_ppapi_hook,
+ sizeof real_irt_ppapi_hook) !=
sizeof real_irt_ppapi_hook) {
return 0;
}
+ real_irt_ppapi_start = real_irt_ppapi_hook.ppapi_start;
/*
* Copy the interface structure into the client.
*/
struct nacl_irt_ppapihook *dest = table;
if (sizeof *dest <= tablesize) {
- dest->ppapi_start = wrap_ppapi_start;
+ dest->ppapi_start = irt_shim_ppapi_start;
dest->ppapi_register_thread_creator =
real_irt_ppapi_hook.ppapi_register_thread_creator;
return sizeof *dest;
}
return 0;
+#endif
}
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h
index d5b7e32d85c..6231196996b 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_irt_shim/shim_ppapi.h
@@ -4,8 +4,8 @@
* found in the LICENSE file.
*/
-#ifndef NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_
-#define NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_ 1
+#ifndef PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_
+#define PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_ 1
#include <stddef.h>
#include "native_client/src/untrusted/irt/irt.h"
@@ -13,9 +13,12 @@
/*
* Remembers the IRT's true interface query function.
*/
-extern TYPE_nacl_irt_query __pnacl_real_irt_interface;
+extern TYPE_nacl_irt_query __pnacl_real_irt_query_func;
-size_t __pnacl_irt_interface_wrapper(const char *interface_ident,
- void *table, size_t tablesize);
+/*
+ * Provides a wrapped query function.
+ */
+size_t __pnacl_wrap_irt_query_func(const char *interface_ident,
+ void *table, size_t tablesize);
-#endif /* NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_ */
+#endif /* PPAPI_NATIVE_CLIENT_SRC_UNTRUSTED_PNACL_IRT_SHIM_SHIM_PPAPI_H_ */
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py b/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py
index 3d35b3f8fbd..bdc6cbf890b 100755
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_component_crx_gen.py
@@ -8,8 +8,7 @@
the result can then be packed into a multi-CRX zip file.
This script depends on and pulls in the translator nexes and libraries
- from the toolchain directory (so that must be downloaded first) and
- it depends on the pnacl_irt_shim.
+ from the PNaCl translator. It also depends on the pnacl_irt_shim.
"""
import json
@@ -19,6 +18,7 @@ import os
import platform
import re
import shutil
+import subprocess
import sys
J = os.path.join
@@ -38,6 +38,8 @@ def CanonicalArch(arch):
# TODO(jvoung): be more specific about the arm architecture version?
if arch in ('arm', 'armv7'):
return 'arm'
+ if arch in ('mipsel'):
+ return 'mips32'
if re.match('^i.86$', arch) or arch in ('x86_32', 'x86-32', 'ia32', 'x86'):
return 'x86-32'
return None
@@ -47,7 +49,7 @@ def GetBuildArch():
return CanonicalArch(arch)
BUILD_ARCH = GetBuildArch()
-ARCHES = ['x86-32', 'x86-64', 'arm']
+ARCHES = ['x86-32', 'x86-64', 'arm', 'mips32']
def IsValidArch(arch):
return arch in ARCHES
@@ -56,35 +58,8 @@ def IsValidArch(arch):
def StandardArch(arch):
return {'x86-32': 'i686',
'x86-64': 'x86_64',
- 'arm' : 'armv7'}[arch]
-
-
-######################################################################
-
-def GetNaClRoot():
- """ Find the native_client path, relative to this script.
- This script is in ppapi/... and native_client is a sibling of ppapi.
- """
- script_file = os.path.abspath(__file__)
- def SearchForNaCl(cur_dir):
- if cur_dir.endswith('ppapi'):
- parent = os.path.dirname(cur_dir)
- sibling = os.path.join(parent, 'native_client')
- if not os.path.isdir(sibling):
- raise Exception('Could not find native_client relative to %s' %
- script_file)
- return sibling
- # Detect when we've the root (linux is /, but windows is not...)
- next_dir = os.path.dirname(cur_dir)
- if cur_dir == next_dir:
- raise Exception('Could not find native_client relative to %s' %
- script_file)
- return SearchForNaCl(next_dir)
-
- return SearchForNaCl(script_file)
-
-
-NACL_ROOT = GetNaClRoot()
+ 'arm' : 'armv7',
+ 'mips32': 'mips'}[arch]
######################################################################
@@ -128,7 +103,8 @@ class PnaclPackaging(object):
# File paths that are set from the command line.
pnacl_template = None
- tool_revisions = None
+ package_version_path = None
+ pnacl_package = 'pnacl_newlib'
# Agreed-upon name for pnacl-specific info.
pnacl_json = 'pnacl.json'
@@ -138,25 +114,29 @@ class PnaclPackaging(object):
PnaclPackaging.pnacl_template = path
@staticmethod
- def SetToolsRevisionPath(path):
- PnaclPackaging.tool_revisions = path
+ def SetPackageVersionPath(path):
+ PnaclPackaging.package_version_path = path
+
+ @staticmethod
+ def SetPnaclPackageName(name):
+ PnaclPackaging.pnacl_package = name
@staticmethod
def PnaclToolsRevision():
- with open(PnaclPackaging.tool_revisions, 'r') as f:
- for line in f.read().splitlines():
- if line.startswith('PNACL_VERSION'):
- _, version = line.split('=')
- # CWS happens to use version quads, so make it a quad too.
- # However, each component of the quad is limited to 64K max.
- # Try to handle a bit more.
- max_version = 2 ** 16
- version = int(version)
- version_more = version / max_version
- version = version % max_version
- return '0.1.%d.%d' % (version_more, version)
- raise Exception('Cannot find PNACL_VERSION in TOOL_REVISIONS file: %s' %
- PnaclPackaging.tool_revisions)
+ pkg_ver_cmd = [sys.executable, PnaclPackaging.package_version_path,
+ 'getrevision',
+ '--revision-package', PnaclPackaging.pnacl_package]
+
+ version = subprocess.check_output(pkg_ver_cmd).strip()
+
+ # CWS happens to use version quads, so make it a quad too.
+ # However, each component of the quad is limited to 64K max.
+ # Try to handle a bit more.
+ max_version = 2 ** 16
+ version = int(version)
+ version_more = version / max_version
+ version = version % max_version
+ return '0.1.%d.%d' % (version_more, version)
@staticmethod
def GeneratePnaclInfo(target_dir, abi_version, arch):
@@ -177,12 +157,16 @@ class PnaclPackaging(object):
######################################################################
class PnaclDirs(object):
- toolchain_dir = J(NACL_ROOT, 'toolchain')
- output_dir = J(toolchain_dir, 'pnacl-package')
+ translator_dir = None
+ output_dir = None
+
+ @staticmethod
+ def SetTranslatorRoot(d):
+ PnaclDirs.translator_dir = d
@staticmethod
def TranslatorRoot():
- return J(PnaclDirs.toolchain_dir, 'pnacl_translator')
+ return PnaclDirs.translator_dir
@staticmethod
def LibDir(target_arch):
@@ -190,8 +174,7 @@ class PnaclDirs(object):
@staticmethod
def SandboxedCompilerDir(target_arch):
- return J(PnaclDirs.toolchain_dir,
- 'pnacl_translator', StandardArch(target_arch), 'bin')
+ return J(PnaclDirs.TranslatorRoot(), StandardArch(target_arch), 'bin')
@staticmethod
def SetOutputDir(d):
@@ -253,6 +236,9 @@ def CopyFlattenDirsAndPrefix(src_dir, arch, dest_dir):
When copying, also rename the files such that they match the white-listing
pattern in chrome/browser/nacl_host/nacl_file_host.cc.
"""
+ if not os.path.isdir(src_dir):
+ raise Exception('Copy dir failed, directory does not exist: %s' % src_dir)
+
for (root, dirs, files) in os.walk(src_dir, followlinks=True):
for f in files:
# Assume a flat directory.
@@ -326,8 +312,12 @@ def Main():
parser.add_option('--info_template_path',
dest='info_template_path', default=None,
help='Path of the info template file')
- parser.add_option('--tool_revisions_path', dest='tool_revisions_path',
- default=None, help='Location of NaCl TOOL_REVISIONS file.')
+ parser.add_option('--package_version_path', dest='package_version_path',
+ default=None, help='Path to package_version.py script.')
+ parser.add_option('--pnacl_package_name', dest='pnacl_package_name',
+ default=None, help='Name of PNaCl package.')
+ parser.add_option('--pnacl_translator_path', dest='pnacl_translator_path',
+ default=None, help='Location of PNaCl translator.')
parser.add_option('-v', '--verbose', dest='verbose', default=False,
action='store_true',
help='Print verbose debug messages.')
@@ -341,17 +331,27 @@ def Main():
% (options, args))
# Set destination directory before doing any cleaning, etc.
- if options.dest:
- PnaclDirs.SetOutputDir(options.dest)
+ if options.dest is None:
+ raise Exception('Destination path must be set.')
+ PnaclDirs.SetOutputDir(options.dest)
if options.clean:
Clean()
+ if options.pnacl_translator_path is None:
+ raise Exception('PNaCl translator path must be set.')
+ PnaclDirs.SetTranslatorRoot(options.pnacl_translator_path)
+
if options.info_template_path:
PnaclPackaging.SetPnaclInfoTemplatePath(options.info_template_path)
- if options.tool_revisions_path:
- PnaclPackaging.SetToolsRevisionPath(options.tool_revisions_path)
+ if options.package_version_path:
+ PnaclPackaging.SetPackageVersionPath(options.package_version_path)
+ else:
+ raise Exception('Package verison script must be specified.')
+
+ if options.pnacl_package_name:
+ PnaclPackaging.SetPnaclPackageName(options.pnacl_package_name)
lib_overrides = {}
for o in options.lib_overrides:
diff --git a/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp b/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp
index dfd83496759..de19ee3c9ef 100644
--- a/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp
+++ b/chromium/ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp
@@ -10,13 +10,36 @@
],
'targets': [
{
+ 'target_name': 'untar_pnacl_translator',
+ 'type': 'none',
+ 'actions': [{
+ 'action_name': 'Untar pnacl_translator',
+ 'description': 'Untar pnacl_translator',
+ 'inputs': [
+ '<(DEPTH)/native_client/build/package_version/package_version.py',
+ '<(DEPTH)/native_client/toolchain/.tars/<(TOOLCHAIN_OS)_x86/pnacl_translator.json',
+ ],
+ 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator/pnacl_translator.json'],
+ 'action': [
+ 'python',
+ '<(DEPTH)/native_client/build/package_version/package_version.py',
+ '--quiet',
+ '--packages', 'pnacl_translator',
+ '--tar-dir', '<(DEPTH)/native_client/toolchain/.tars',
+ '--dest-dir', '<(SHARED_INTERMEDIATE_DIR)',
+ 'extract',
+ ],
+ }],
+ },
+ {
'target_name': 'pnacl_support_extension',
'type': 'none',
'conditions': [
['disable_nacl==0 and disable_pnacl==0 and disable_nacl_untrusted==0', {
'dependencies': [
- '../../../../../ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:pnacl_irt_shim',
+ '../../../../../ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_browser',
'../../../../../native_client/tools.gyp:prep_toolchain',
+ 'untar_pnacl_translator',
],
'sources': [
'pnacl_component_crx_gen.py',
@@ -29,9 +52,9 @@
'inputs': [
'pnacl_component_crx_gen.py',
# A stamp file representing the contents of pnacl_translator.
- '<(DEPTH)/native_client/toolchain/pnacl_translator/SOURCE_SHA1',
+ '<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator/pnacl_translator.json',
'<(DEPTH)/native_client/pnacl/driver/pnacl_info_template.json',
- '<(DEPTH)/native_client/TOOL_REVISIONS',
+ '<(DEPTH)/native_client/toolchain_revisions/pnacl_newlib.json',
],
'conditions': [
# On windows we need both ia32 and x64.
@@ -54,14 +77,14 @@
'<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_pnacl_llc_nexe',
],
'inputs': [
- '>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a',
- '>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a',
+ '>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/libpnacl_irt_shim.a',
+ '>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/libpnacl_irt_shim.a',
],
'variables': {
'lib_overrides': [
# Use the two freshly generated shims.
- '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a',
- '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a',
+ '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/libpnacl_irt_shim.a',
+ '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/libpnacl_irt_shim.a',
],
},
}],
@@ -80,12 +103,33 @@
'<(PRODUCT_DIR)/pnacl/pnacl_public_arm_pnacl_llc_nexe',
],
'inputs': [
- '>(tc_lib_dir_pnacl_translate)/lib-arm/libpnacl_irt_shim.a',
+ '>(tc_lib_dir_pnacl_translate)/lib-arm/for_browser/libpnacl_irt_shim.a',
+ ],
+ 'variables': {
+ 'lib_overrides': [
+ # Use the freshly generated shim.
+ '--lib_override=arm,>(tc_lib_dir_pnacl_translate)/lib-arm/for_browser/libpnacl_irt_shim.a',
+ ],
+ },
+ }],
+ ['target_arch=="mipsel"', {
+ 'outputs': [
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_pnacl_json',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_crtbegin_o',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_ld_nexe',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libcrt_platform_a',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libgcc_a',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libgcc_eh_a',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_libpnacl_irt_shim_a',
+ '<(PRODUCT_DIR)/pnacl/pnacl_public_mips32_llc_nexe',
+ ],
+ 'inputs': [
+ '>(tc_lib_dir_pnacl_translate)/lib-mips32/for_browser/libpnacl_irt_shim.a',
],
'variables': {
'lib_overrides': [
# Use the freshly generated shim.
- '--lib_override=arm,>(tc_lib_dir_pnacl_translate)/lib-arm/libpnacl_irt_shim.a',
+ '--lib_override=mipsel,>(tc_lib_dir_pnacl_translate)/lib-mips32/for_browser/libpnacl_irt_shim.a',
],
},
}],
@@ -101,12 +145,12 @@
'<(PRODUCT_DIR)/pnacl/pnacl_public_x86_32_pnacl_llc_nexe',
],
'inputs': [
- '>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a',
+ '>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/libpnacl_irt_shim.a',
],
'variables': {
'lib_overrides': [
# Use the freshly generated shim.
- '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/libpnacl_irt_shim.a',
+ '--lib_override=ia32,>(tc_lib_dir_pnacl_translate)/lib-x86-32/for_browser/libpnacl_irt_shim.a',
],
},
}],
@@ -122,12 +166,12 @@
'<(PRODUCT_DIR)/pnacl/pnacl_public_x86_64_pnacl_llc_nexe',
],
'inputs': [
- '>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a',
+ '>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/libpnacl_irt_shim.a',
],
'variables': {
'lib_overrides': [
# Use the freshly generated shim.
- '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/libpnacl_irt_shim.a',
+ '--lib_override=x64,>(tc_lib_dir_pnacl_translate)/lib-x86-64/for_browser/libpnacl_irt_shim.a',
],
},
}],
@@ -140,7 +184,9 @@
'<@(lib_overrides)',
'--target_arch=<(target_arch)',
'--info_template_path=<(DEPTH)/native_client/pnacl/driver/pnacl_info_template.json',
- '--tool_revisions_path=<(DEPTH)/native_client/TOOL_REVISIONS',
+ '--pnacl_translator_path=<(SHARED_INTERMEDIATE_DIR)/<(TOOLCHAIN_OS)_x86/pnacl_translator',
+ '--package_version_path=<(DEPTH)/native_client/build/package_version/package_version.py',
+ '--pnacl_package_name=pnacl_newlib',
# ABI Version Number.
'1',
],
diff --git a/chromium/ppapi/ppapi_internal.gyp b/chromium/ppapi/ppapi_internal.gyp
index 26bd9c4f0e4..4c1614f7d49 100644
--- a/chromium/ppapi/ppapi_internal.gyp
+++ b/chromium/ppapi/ppapi_internal.gyp
@@ -52,6 +52,7 @@
'../media/media.gyp:shared_memory_support',
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
+ '../ui/events/events.gyp:events_base',
'../ui/surface/surface.gyp:surface',
'../url/url.gyp:url_lib',
'ppapi.gyp:ppapi_c',
@@ -102,6 +103,7 @@
'../gpu/gpu.gyp:gpu_ipc',
'../ipc/ipc.gyp:ipc',
'../skia/skia.gyp:skia',
+ '../ui/events/ipc/events_ipc.gyp:events_ipc',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
],
@@ -127,6 +129,7 @@
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/icu/icu.gyp:icui18n',
+ '../ui/events/events.gyp:events_base',
'../ui/surface/surface.gyp:surface',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
@@ -175,6 +178,8 @@
'../skia/skia.gyp:skia',
'../third_party/icu/icu.gyp:icuuc',
'../third_party/icu/icu.gyp:icui18n',
+ '../ui/events/events.gyp:events_base',
+ '../ui/events/ipc/events_ipc.gyp:events_ipc',
'../ui/surface/surface.gyp:surface',
'ppapi.gyp:ppapi_c',
'ppapi_shared',
@@ -224,15 +229,17 @@
},
'dependencies': [
'ppapi.gyp:ppapi_c',
- '../base/base.gyp:base_nacl_win64',
+ '../base/base.gyp:base_win64',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
+ '../gpu/gpu.gyp:command_buffer_common_win64',
'../ipc/ipc.gyp:ipc_win64',
+ '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
],
'defines': [
'<@(nacl_win64_defines)',
],
'export_dependent_settings': [
- '../base/base.gyp:base_nacl_win64',
+ '../base/base.gyp:base_win64',
],
'configurations': {
'Common_Base': {
@@ -248,9 +255,10 @@
'ppapi_ipc_target': 1,
},
'dependencies': [
- '../base/base.gyp:base_nacl_win64',
+ '../base/base.gyp:base_win64',
'../ipc/ipc.gyp:ipc_win64',
'../gpu/gpu.gyp:gpu_ipc_win64',
+ '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
'ppapi.gyp:ppapi_c',
'ppapi_shared_win64',
],
diff --git a/chromium/ppapi/ppapi_ipc_untrusted.gyp b/chromium/ppapi/ppapi_ipc_nacl.gyp
index 9e13867308b..955fc0792fd 100644
--- a/chromium/ppapi/ppapi_ipc_untrusted.gyp
+++ b/chromium/ppapi/ppapi_ipc_nacl.gyp
@@ -1,4 +1,4 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -14,13 +14,13 @@
['disable_nacl==0 and disable_nacl_untrusted==0', {
'targets': [
{
- 'target_name': 'ppapi_ipc_untrusted',
+ 'target_name': 'ppapi_ipc_nacl',
'type': 'none',
'variables': {
'ppapi_ipc_target': 1,
'nacl_win64_target': 0,
'nacl_untrusted_build': 1,
- 'nlib_target': 'libppapi_ipc_untrusted.a',
+ 'nlib_target': 'libppapi_ipc_nacl.a',
'build_glibc': 0,
'build_newlib': 0,
'build_irt': 1,
@@ -30,11 +30,11 @@
],
'dependencies': [
'../native_client/tools.gyp:prep_toolchain',
- '../base/base_untrusted.gyp:base_untrusted',
- '../gpu/gpu_untrusted.gyp:gpu_ipc_untrusted',
- '../ipc/ipc_untrusted.gyp:ipc_untrusted',
- '../ppapi/ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
- '../components/tracing_untrusted.gyp:tracing_untrusted',
+ '../base/base_nacl.gyp:base_nacl',
+ '../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
+ '../ipc/ipc_nacl.gyp:ipc_nacl',
+ '../ppapi/ppapi_shared_nacl.gyp:ppapi_shared_nacl',
+ '../components/tracing_nacl.gyp:tracing_nacl',
],
},
],
diff --git a/chromium/ppapi/ppapi_untrusted.gyp b/chromium/ppapi/ppapi_nacl.gyp
index 4c51db6b5d4..60ce912a489 100644
--- a/chromium/ppapi/ppapi_untrusted.gyp
+++ b/chromium/ppapi/ppapi_nacl.gyp
@@ -1,4 +1,4 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -74,7 +74,7 @@
# We compile with --strip-all under extra_args so debug info is
# discarded anyway. Remove this and the --strip-all flag if
# debug info is really needed.
- 'compile_flags!': [
+ 'compile_flags!': [
'-g',
],
'defines': [
@@ -98,7 +98,7 @@
'-O0',
],
'conditions': [
- ['target_arch!="arm"', {
+ ['target_arch=="ia32" or target_arch=="x64"', {
'extra_deps_newlib64': [
'>(tc_lib_dir_newlib64)/libppapi_cpp.a',
'>(tc_lib_dir_newlib64)/libppapi.a',
@@ -135,9 +135,10 @@
'--strip-all',
],
'create_nmf': '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py',
+ 'create_nonsfi_test_nmf': 'tests/create_nonsfi_test_nmf.py',
},
'conditions': [
- ['target_arch!="arm" and disable_glibc==0', {
+ ['target_arch!="arm" and target_arch!="mipsel" and disable_glibc==0', {
'variables': {
'build_glibc': 1,
# NOTE: Use /lib, not /lib64 here; it is a symbolic link which
@@ -168,7 +169,6 @@
'--output=>(nmf_glibc)',
'--stage-dependencies=<(PRODUCT_DIR)',
],
- 'msvs_cygwin_shell': 1,
},
],
}],
@@ -177,18 +177,19 @@
# and in-browser translation is tested elsewhere.
# NOTE: native_client/build/untrusted.gypi dictates that
# PNaCl only generate x86-32 and x86-64 on x86 platforms,
- # or ARM on ARM platforms, not all versions always.
+ # ARM on ARM platforms, or MIPS on MIPS platforms, not all
+ # versions always.
# The same goes for the PNaCl shims. So, we have two variations here.
- ['disable_pnacl==0 and target_arch!="arm"', {
+ ['disable_pnacl==0 and (target_arch=="ia32" or target_arch=="x64")', {
'variables': {
'build_pnacl_newlib': 1,
'nmf_pnacl%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl.nmf',
},
# Shim is a dependency for the nexe because we pre-translate.
'dependencies': [
- '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:pnacl_irt_shim',
+ '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_aot',
],
- 'actions': [
+ 'actions': [
{
'action_name': 'Generate PNACL NEWLIB NMF',
# NOTE: create_nmf must be first, it is the script python executes
@@ -207,6 +208,27 @@
},
],
}],
+ ['disable_pnacl==0 and target_arch=="ia32" and OS=="linux"', {
+ # In addition to above configuration, build x86-32-nonsfi .nexe file
+ # by translating from .pexe binary, for non-SFI mode PPAPI testing.
+ 'variables': {
+ 'enable_x86_32_nonsfi': 1,
+ 'nmf_nonsfi%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl_nonsfi.nmf',
+ },
+ 'actions': [
+ {
+ 'action_name': 'Generate PNACL NEWLIB NONSFI NMF',
+ 'inputs': ['>(create_nonsfi_test_nmf)'],
+ 'outputs': ['>(nmf_nonsfi)'],
+ 'action': [
+ 'python',
+ '>(create_nonsfi_test_nmf)',
+ '--output=>(nmf_nonsfi)',
+ '--program=>(out_pnacl_newlib_x86_32_nonsfi_nexe)',
+ ],
+ },
+ ],
+ }],
['disable_pnacl==0 and target_arch=="arm"', {
'variables': {
'build_pnacl_newlib': 1,
@@ -214,7 +236,7 @@
},
# Shim is a dependency for the nexe because we pre-translate.
'dependencies': [
- '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:pnacl_irt_shim',
+ '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_aot',
],
'actions': [
{
@@ -231,6 +253,28 @@
},
],
}],
+ ['disable_pnacl==0 and target_arch=="mipsel"', {
+ 'variables': {
+ 'build_pnacl_newlib': 1,
+ 'nmf_pnacl%': '<(PRODUCT_DIR)/>(nexe_target)_pnacl.nmf',
+ },
+ # Shim is a dependency for the nexe because we pre-translate.
+ 'dependencies': [
+ '<(DEPTH)/ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_aot',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'Generate PNACL NEWLIB NMF',
+ 'inputs': ['>(create_nmf)', '>(out_pnacl_newlib_mips_nexe)'],
+ 'outputs': ['>(nmf_pnacl)'],
+ 'action': [
+ 'python',
+ '>@(_inputs)',
+ '--output=>(nmf_pnacl)',
+ ],
+ },
+ ],
+ }],
],
},
],
diff --git a/chromium/ppapi/ppapi_nacl_test_common.gypi b/chromium/ppapi/ppapi_nacl_test_common.gypi
index 99599ef141a..5a42ae601c0 100644
--- a/chromium/ppapi/ppapi_nacl_test_common.gypi
+++ b/chromium/ppapi/ppapi_nacl_test_common.gypi
@@ -19,12 +19,14 @@
'nacl_newlib_out_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/newlib',
'nacl_glibc_out_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/glibc',
'nacl_pnacl_newlib_out_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/pnacl',
+ 'nacl_pnacl_newlib_nonsfi_out_dir': '<(PRODUCT_DIR)/>(nexe_destination_dir)/nonsfi',
'target_conditions': [
['nexe_target!=""', {
# These variables are used for nexe building and for library building.
'out_newlib32%': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_x86_32.nexe',
'out_newlib64%': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_x86_64.nexe',
'out_newlib_arm%': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_arm.nexe',
+ 'out_newlib_mips%': '>(nacl_newlib_out_dir)/>(nexe_target)_newlib_mips32.nexe',
'nmf_newlib%': '>(nacl_newlib_out_dir)/>(nexe_target).nmf',
'out_glibc32%': '>(nacl_glibc_out_dir)/>(nexe_target)_glibc_x86_32.nexe',
'out_glibc64%': '>(nacl_glibc_out_dir)/>(nexe_target)_glibc_x86_64.nexe',
@@ -32,12 +34,14 @@
'nmf_glibc%': '>(nacl_glibc_out_dir)/>(nexe_target).nmf',
'out_pnacl_newlib%': '>(nacl_pnacl_newlib_out_dir)/>(nexe_target)_newlib_pnacl.pexe',
'nmf_pnacl_newlib%': '>(nacl_pnacl_newlib_out_dir)/>(nexe_target).nmf',
+ 'out_pnacl_newlib_x86_32_nonsfi_nexe': '>(nacl_pnacl_newlib_nonsfi_out_dir)/>(nexe_target)_pnacl_newlib_x32_nonsfi.nexe',
+ 'nmf_pnacl_newlib_nonsfi%': '>(nacl_pnacl_newlib_nonsfi_out_dir)/>(nexe_target).nmf',
}],
],
},
'dependencies': [
'<(DEPTH)/native_client/src/untrusted/nacl/nacl.gyp:nacl_lib',
- '<(DEPTH)/ppapi/ppapi_untrusted.gyp:ppapi_cpp_lib',
+ '<(DEPTH)/ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
'<(DEPTH)/ppapi/native_client/native_client.gyp:ppapi_lib',
],
'target_conditions': [
@@ -51,7 +55,7 @@
},
],
}],
- ['test_files!=[] and "<(target_arch)"!="arm" and disable_glibc==0 and build_glibc==1', {
+ ['test_files!=[] and "<(target_arch)"!="arm" and "<(target_arch)"!="mipsel" and disable_glibc==0 and build_glibc==1', {
'copies': [
{
'destination': '>(nacl_glibc_out_dir)',
@@ -61,6 +65,7 @@
},
],
}],
+ # Nonsfi pnacl copy is covered below.
['test_files!=[] and build_pnacl_newlib==1 and disable_pnacl==0', {
'copies': [
{
@@ -71,6 +76,16 @@
},
],
}],
+ ['test_files!=[] and build_pnacl_newlib==1 and enable_x86_32_nonsfi==1', {
+ 'copies': [
+ {
+ 'destination': '>(nacl_pnacl_newlib_nonsfi_out_dir)',
+ 'files': [
+ '>@(test_files)',
+ ],
+ },
+ ],
+ }],
['nexe_target!=""', {
'variables': {
# Patch over the fact that untrusted.gypi doesn't define these in all
@@ -78,6 +93,7 @@
'enable_x86_64%': 0,
'enable_x86_32%': 0,
'enable_arm%': 0,
+ 'enable_mips%': 0,
'include_dirs': [
'<(DEPTH)',
],
@@ -90,6 +106,8 @@
'--strip-all',
],
'create_nmf': '<(DEPTH)/native_client_sdk/src/tools/create_nmf.py',
+ 'create_nmf_args_portable%': [],
+ 'create_nonsfi_test_nmf': '<(DEPTH)/ppapi/tests/create_nonsfi_test_nmf.py',
},
'target_conditions': [
['generate_nmf==1 and build_newlib==1', {
@@ -100,24 +118,32 @@
'outputs': ['>(nmf_newlib)'],
'action': [
'python',
- '>@(_inputs)',
+ '>(create_nmf)',
'--output=>(nmf_newlib)',
+ '>@(create_nmf_args_portable)',
],
'target_conditions': [
['enable_x86_64==1', {
'inputs': ['>(out_newlib64)'],
+ 'action': ['>(out_newlib64)'],
}],
['enable_x86_32==1', {
'inputs': ['>(out_newlib32)'],
+ 'action': ['>(out_newlib32)'],
}],
['enable_arm==1', {
'inputs': ['>(out_newlib_arm)'],
+ 'action': ['>(out_newlib_arm)'],
+ }],
+ ['enable_mips==1', {
+ 'inputs': ['>(out_newlib_mips)'],
+ 'action': ['>(out_newlib_mips)'],
}],
],
},
],
}],
- ['"<(target_arch)"!="arm" and generate_nmf==1 and disable_glibc==0 and build_glibc==1', {
+ ['"<(target_arch)"!="arm" and "<(target_arch)"!="mipsel" and generate_nmf==1 and disable_glibc==0 and build_glibc==1', {
'variables': {
# NOTE: Use /lib, not /lib64 here; it is a symbolic link which
# doesn't work on Windows.
@@ -135,16 +161,18 @@
'outputs': ['>(nmf_glibc)'],
'action': [
'python',
- '>@(_inputs)',
+ '>(create_nmf)',
'--objdump=>(nacl_objdump)',
'--output=>(nmf_glibc)',
'--path-prefix=>(nexe_target)_libs',
'--stage-dependencies=<(nacl_glibc_out_dir)',
+ '>@(create_nmf_args_portable)',
],
'target_conditions': [
['enable_x86_64==1', {
'inputs': ['>(out_glibc64)'],
'action': [
+ '>(out_glibc64)',
'--library-path=>(libdir_glibc64)',
'--library-path=>(tc_lib_dir_glibc64)',
],
@@ -152,6 +180,7 @@
['enable_x86_32==1', {
'inputs': ['>(out_glibc32)'],
'action': [
+ '>(out_glibc32)',
'--library-path=>(libdir_glibc32)',
'--library-path=>(tc_lib_dir_glibc32)',
],
@@ -171,8 +200,30 @@
'outputs': ['>(nmf_pnacl_newlib)'],
'action': [
'python',
- '>@(_inputs)',
+ '>(create_nmf)',
'--output=>(nmf_pnacl_newlib)',
+ '>(out_pnacl_newlib)',
+ '>@(create_nmf_args_portable)',
+ ],
+ },
+ ],
+ }],
+ ['generate_nmf==1 and build_pnacl_newlib==1 and disable_pnacl==0 and enable_x86_32_nonsfi==1', {
+ 'actions': [
+ {
+ 'action_name': 'Generate PNACL NEWLIB nonsfi NMF',
+ # If we add support for ARM, we should split the dependency on
+ # out_pnacl_newlib_x86_32_nonsfi_nexe to 'target_conditions',
+ # similar to build_newlib=1 config declared above.
+ 'inputs': ['>(create_nonsfi_test_nmf)',
+ '>(out_pnacl_newlib_x86_32_nonsfi_nexe)'],
+ 'outputs': ['>(nmf_pnacl_newlib_nonsfi)'],
+ 'action': [
+ 'python',
+ '>(create_nonsfi_test_nmf)',
+ '--output=>(nmf_pnacl_newlib_nonsfi)',
+ '--program=>(out_pnacl_newlib_x86_32_nonsfi_nexe)',
+ '>@(create_nmf_args_portable)'
],
},
],
diff --git a/chromium/ppapi/ppapi_proxy.gypi b/chromium/ppapi/ppapi_proxy.gypi
index 35186c86644..c775386e7cb 100644
--- a/chromium/ppapi/ppapi_proxy.gypi
+++ b/chromium/ppapi/ppapi_proxy.gypi
@@ -19,6 +19,8 @@
'cpp/completion_callback.h',
'utility/completion_callback_factory.h',
+ 'proxy/audio_buffer_resource.cc',
+ 'proxy/audio_buffer_resource.h',
'proxy/audio_input_resource.cc',
'proxy/audio_input_resource.h',
'proxy/broker_dispatcher.cc',
@@ -27,6 +29,10 @@
'proxy/broker_resource.h',
'proxy/browser_font_singleton_resource.cc',
'proxy/browser_font_singleton_resource.h',
+ 'proxy/compositor_layer_resource.cc',
+ 'proxy/compositor_layer_resource.h',
+ 'proxy/compositor_resource.cc',
+ 'proxy/compositor_resource.h',
'proxy/connection.h',
'proxy/device_enumeration_resource_helper.cc',
'proxy/device_enumeration_resource_helper.h',
@@ -35,12 +41,18 @@
'proxy/enter_proxy.h',
'proxy/error_conversion.cc',
'proxy/error_conversion.h',
- 'proxy/extensions_common_resource.cc',
- 'proxy/extensions_common_resource.h',
'proxy/file_chooser_resource.cc',
'proxy/file_chooser_resource.h',
+ 'proxy/file_io_resource.cc',
+ 'proxy/file_io_resource.h',
+ 'proxy/file_mapping_resource.cc',
+ 'proxy/file_mapping_resource.h',
+ 'proxy/file_mapping_resource_posix.cc',
+ 'proxy/file_mapping_resource_win.cc',
'proxy/file_ref_resource.cc',
'proxy/file_ref_resource.h',
+ 'proxy/file_system_resource.cc',
+ 'proxy/file_system_resource.h',
'proxy/flash_clipboard_resource.cc',
'proxy/flash_clipboard_resource.h',
'proxy/flash_drm_resource.cc',
@@ -55,10 +67,6 @@
'proxy/flash_menu_resource.h',
'proxy/flash_resource.cc',
'proxy/flash_resource.h',
- 'proxy/file_io_resource.cc',
- 'proxy/file_io_resource.h',
- 'proxy/file_system_resource.cc',
- 'proxy/file_system_resource.h',
'proxy/gamepad_resource.cc',
'proxy/gamepad_resource.h',
'proxy/graphics_2d_resource.cc',
@@ -80,6 +88,14 @@
'proxy/isolated_file_system_private_resource.cc',
'proxy/isolated_file_system_private_resource.h',
'proxy/locking_resource_releaser.h',
+ 'proxy/media_stream_audio_track_resource.cc',
+ 'proxy/media_stream_audio_track_resource.h',
+ 'proxy/media_stream_track_resource_base.cc',
+ 'proxy/media_stream_track_resource_base.h',
+ 'proxy/media_stream_video_track_resource.cc',
+ 'proxy/media_stream_video_track_resource.h',
+ 'proxy/message_handler.cc',
+ 'proxy/message_handler.h',
'proxy/net_address_resource.cc',
'proxy/net_address_resource.h',
'proxy/network_list_resource.cc',
@@ -100,7 +116,6 @@
'proxy/plugin_dispatcher.h',
'proxy/plugin_globals.cc',
'proxy/plugin_globals.h',
- 'proxy/plugin_main_nacl.cc',
'proxy/plugin_message_filter.cc',
'proxy/plugin_message_filter.h',
'proxy/plugin_resource.cc',
@@ -147,6 +162,8 @@
'proxy/ppp_class_proxy.h',
'proxy/ppp_content_decryptor_private_proxy.cc',
'proxy/ppp_content_decryptor_private_proxy.h',
+ 'proxy/ppp_find_proxy.cc',
+ 'proxy/ppp_find_proxy.h',
'proxy/ppp_graphics_3d_proxy.cc',
'proxy/ppp_graphics_3d_proxy.h',
'proxy/ppp_input_event_proxy.cc',
@@ -159,6 +176,8 @@
'proxy/ppp_messaging_proxy.h',
'proxy/ppp_mouse_lock_proxy.cc',
'proxy/ppp_mouse_lock_proxy.h',
+ 'proxy/ppp_pdf_proxy.cc',
+ 'proxy/ppp_pdf_proxy.h',
'proxy/ppp_printing_proxy.cc',
'proxy/ppp_printing_proxy.h',
'proxy/ppp_text_input_proxy.cc',
@@ -200,6 +219,8 @@
'proxy/udp_socket_resource.h',
'proxy/udp_socket_resource_base.cc',
'proxy/udp_socket_resource_base.h',
+ 'proxy/uma_private_resource.cc',
+ 'proxy/uma_private_resource.h',
'proxy/url_loader_resource.cc',
'proxy/url_loader_resource.h',
'proxy/url_request_info_resource.cc',
@@ -209,8 +230,12 @@
'proxy/var_serialization_rules.h',
'proxy/video_capture_resource.cc',
'proxy/video_capture_resource.h',
+ 'proxy/video_decoder_resource.cc',
+ 'proxy/video_decoder_resource.h',
'proxy/video_destination_resource.cc',
'proxy/video_destination_resource.h',
+ 'proxy/video_frame_resource.cc',
+ 'proxy/video_frame_resource.h',
'proxy/video_source_resource.cc',
'proxy/video_source_resource.h',
'proxy/websocket_resource.cc',
@@ -224,6 +249,19 @@
],
'target_conditions': [
['>(nacl_untrusted_build)==1', {
+ 'sources': [
+ 'nacl_irt/irt_ppapi.cc',
+ 'nacl_irt/irt_ppapi.h',
+ 'nacl_irt/irt_start.cc',
+ 'nacl_irt/manifest_service.cc',
+ 'nacl_irt/manifest_service.h',
+ 'nacl_irt/plugin_main.cc',
+ 'nacl_irt/plugin_main.h',
+ 'nacl_irt/plugin_startup.cc',
+ 'nacl_irt/plugin_startup.h',
+ 'nacl_irt/ppapi_dispatcher.cc',
+ 'nacl_irt/ppapi_dispatcher.h',
+ ],
'sources!': [
'proxy/audio_input_resource.cc',
'proxy/broker_dispatcher.cc',
diff --git a/chromium/ppapi/ppapi_proxy_nacl.gyp b/chromium/ppapi/ppapi_proxy_nacl.gyp
new file mode 100644
index 00000000000..868465d4ae1
--- /dev/null
+++ b/chromium/ppapi/ppapi_proxy_nacl.gyp
@@ -0,0 +1,51 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'variables': {
+ 'chromium_code': 1,
+ },
+ 'includes': [
+ '../build/common_untrusted.gypi',
+ 'ppapi_proxy.gypi',
+ ],
+ 'conditions': [
+ ['disable_nacl==0 and disable_nacl_untrusted==0', {
+ 'targets': [
+ {
+ 'target_name': 'ppapi_proxy_nacl',
+ 'type': 'none',
+ 'variables': {
+ 'ppapi_proxy_target': 1,
+ 'nacl_untrusted_build': 1,
+ 'nlib_target': 'libppapi_proxy_nacl.a',
+ 'build_glibc': 0,
+ 'build_newlib': 0,
+ 'build_irt': 1,
+ },
+ 'include_dirs': [
+ '..',
+ ],
+ 'dependencies': [
+ '../base/base_nacl.gyp:base_nacl',
+ '../components/tracing_nacl.gyp:tracing_nacl',
+ '../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
+ '../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
+ '../gpu/gpu_nacl.gyp:command_buffer_common_nacl',
+ '../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl',
+ '../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
+ '../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
+ '../ipc/ipc_nacl.gyp:ipc_nacl',
+ '../native_client/tools.gyp:prep_toolchain',
+ '../ppapi/ppapi_ipc_nacl.gyp:ppapi_ipc_nacl',
+ '../ppapi/ppapi_shared_nacl.gyp:ppapi_shared_nacl',
+ '../third_party/WebKit/public/blink_headers.gyp:blink_headers',
+ '../third_party/khronos/khronos.gyp:khronos_headers',
+ '../ui/events/latency_info_nacl.gyp:latency_info_nacl',
+ ],
+ },
+ ],
+ }],
+ ],
+}
diff --git a/chromium/ppapi/ppapi_proxy_untrusted.gyp b/chromium/ppapi/ppapi_proxy_untrusted.gyp
deleted file mode 100644
index 35dff872947..00000000000
--- a/chromium/ppapi/ppapi_proxy_untrusted.gyp
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
- 'variables': {
- 'chromium_code': 1,
- },
- 'includes': [
- '../build/common_untrusted.gypi',
- 'ppapi_proxy.gypi',
- ],
- 'conditions': [
- ['disable_nacl==0 and disable_nacl_untrusted==0', {
- 'targets': [
- {
- 'target_name': 'ppapi_proxy_untrusted',
- 'type': 'none',
- 'variables': {
- 'ppapi_proxy_target': 1,
- 'nacl_untrusted_build': 1,
- 'nlib_target': 'libppapi_proxy_untrusted.a',
- 'build_glibc': 0,
- 'build_newlib': 0,
- 'build_irt': 1,
- },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '../native_client/tools.gyp:prep_toolchain',
- '../base/base_untrusted.gyp:base_untrusted',
- '../gpu/command_buffer/command_buffer_untrusted.gyp:gles2_utils_untrusted',
- '../gpu/gpu_untrusted.gyp:command_buffer_client_untrusted',
- '../gpu/gpu_untrusted.gyp:command_buffer_common_untrusted',
- '../gpu/gpu_untrusted.gyp:gles2_implementation_untrusted',
- '../gpu/gpu_untrusted.gyp:gles2_cmd_helper_untrusted',
- '../gpu/gpu_untrusted.gyp:gpu_ipc_untrusted',
- '../ipc/ipc_untrusted.gyp:ipc_untrusted',
- '../ppapi/ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
- '../ppapi/ppapi_ipc_untrusted.gyp:ppapi_ipc_untrusted',
- '../third_party/khronos/khronos.gyp:khronos_headers',
- '../components/tracing_untrusted.gyp:tracing_untrusted',
- ],
- },
- ],
- }],
- ],
-}
diff --git a/chromium/ppapi/ppapi_shared.gypi b/chromium/ppapi/ppapi_shared.gypi
index 3cdec10e40f..78010bda937 100644
--- a/chromium/ppapi/ppapi_shared.gypi
+++ b/chromium/ppapi/ppapi_shared.gypi
@@ -17,10 +17,14 @@
'shared_impl/array_writer.h',
'shared_impl/callback_tracker.cc',
'shared_impl/callback_tracker.h',
+ 'shared_impl/compositor_layer_data.cc',
+ 'shared_impl/compositor_layer_data.h',
'shared_impl/dictionary_var.cc',
'shared_impl/dictionary_var.h',
'shared_impl/file_io_state_manager.cc',
'shared_impl/file_io_state_manager.h',
+ 'shared_impl/file_growth.cc',
+ 'shared_impl/file_growth.h',
'shared_impl/file_path.cc',
'shared_impl/file_path.h',
'shared_impl/file_ref_create_info.cc',
@@ -37,12 +41,20 @@
'shared_impl/host_resource.h',
'shared_impl/id_assignment.cc',
'shared_impl/id_assignment.h',
+ 'shared_impl/media_stream_buffer.h',
+ 'shared_impl/media_stream_buffer_manager.cc',
+ 'shared_impl/media_stream_buffer_manager.h',
+ 'shared_impl/media_stream_audio_track_shared.cc',
+ 'shared_impl/media_stream_audio_track_shared.h',
+ 'shared_impl/media_stream_video_track_shared.cc',
+ 'shared_impl/media_stream_video_track_shared.h',
'shared_impl/platform_file.cc',
'shared_impl/platform_file.h',
+ 'shared_impl/ppapi_constants.h',
'shared_impl/ppapi_globals.cc',
'shared_impl/ppapi_globals.h',
- 'shared_impl/ppapi_nacl_channel_args.cc',
- 'shared_impl/ppapi_nacl_channel_args.h',
+ 'shared_impl/ppapi_nacl_plugin_args.cc',
+ 'shared_impl/ppapi_nacl_plugin_args.h',
'shared_impl/ppapi_permissions.cc',
'shared_impl/ppapi_permissions.h',
'shared_impl/ppapi_preferences.cc',
@@ -71,8 +83,6 @@
'shared_impl/ppb_message_loop_shared.h',
'shared_impl/ppb_opengles2_shared.cc',
'shared_impl/ppb_opengles2_shared.h',
- 'shared_impl/ppb_resource_array_shared.cc',
- 'shared_impl/ppb_resource_array_shared.h',
'shared_impl/ppb_tcp_socket_shared.cc',
'shared_impl/ppb_tcp_socket_shared.h',
'shared_impl/ppb_trace_event_impl.cc',
@@ -102,6 +112,8 @@
'shared_impl/scoped_pp_var.h',
'shared_impl/socket_option_data.cc',
'shared_impl/socket_option_data.h',
+ 'shared_impl/test_harness_utils.cc',
+ 'shared_impl/test_harness_utils.h',
'shared_impl/thread_aware_callback.cc',
'shared_impl/thread_aware_callback.h',
'shared_impl/time_conversion.cc',
@@ -116,8 +128,6 @@
'shared_impl/var.h',
'shared_impl/var_tracker.cc',
'shared_impl/var_tracker.h',
- 'shared_impl/var_value_conversions.cc',
- 'shared_impl/var_value_conversions.h',
# TODO(viettrungluu): Split these out; it won't be used in NaCl.
'shared_impl/private/net_address_private_impl.cc',
'shared_impl/private/net_address_private_impl_constants.cc',
@@ -130,11 +140,11 @@
'thunk/enter.cc',
'thunk/enter.h',
- 'thunk/extensions_common_api.h',
- 'thunk/ppb_alarms_dev_thunk.cc',
'thunk/ppb_audio_api.h',
'thunk/ppb_audio_config_api.h',
'thunk/ppb_audio_config_thunk.cc',
+ 'thunk/ppb_audio_buffer_api.h',
+ 'thunk/ppb_audio_buffer_thunk.cc',
'thunk/ppb_audio_input_api.h',
'thunk/ppb_audio_input_dev_thunk.cc',
'thunk/ppb_audio_thunk.cc',
@@ -145,24 +155,28 @@
'thunk/ppb_buffer_api.h',
'thunk/ppb_buffer_thunk.cc',
'thunk/ppb_char_set_thunk.cc',
+ 'thunk/ppb_compositor_api.h',
+ 'thunk/ppb_compositor_layer_api.h',
+ 'thunk/ppb_compositor_layer_thunk.cc',
+ 'thunk/ppb_compositor_thunk.cc',
'thunk/ppb_console_thunk.cc',
'thunk/ppb_content_decryptor_private_thunk.cc',
'thunk/ppb_cursor_control_thunk.cc',
'thunk/ppb_device_ref_api.h',
'thunk/ppb_device_ref_dev_thunk.cc',
'thunk/ppb_ext_crx_file_system_private_thunk.cc',
- 'thunk/ppb_ext_socket_thunk.cc',
'thunk/ppb_file_chooser_api.h',
'thunk/ppb_file_chooser_dev_thunk.cc',
'thunk/ppb_file_chooser_trusted_thunk.cc',
'thunk/ppb_file_io_api.h',
'thunk/ppb_file_io_private_thunk.cc',
'thunk/ppb_file_io_thunk.cc',
+ 'thunk/ppb_file_mapping_thunk.cc',
'thunk/ppb_file_ref_api.h',
'thunk/ppb_file_ref_thunk.cc',
'thunk/ppb_file_system_api.h',
'thunk/ppb_file_system_thunk.cc',
- 'thunk/ppb_find_dev_thunk.cc',
+ 'thunk/ppb_find_private_thunk.cc',
'thunk/ppb_flash_clipboard_api.h',
'thunk/ppb_flash_clipboard_thunk.cc',
'thunk/ppb_flash_device_id_thunk.cc',
@@ -186,7 +200,6 @@
'thunk/ppb_gamepad_thunk.cc',
'thunk/ppb_gles_chromium_texture_mapping_thunk.cc',
'thunk/ppb_graphics_2d_api.h',
- 'thunk/ppb_graphics_2d_dev_thunk.cc',
'thunk/ppb_graphics_2d_thunk.cc',
'thunk/ppb_graphics_3d_api.h',
'thunk/ppb_graphics_3d_thunk.cc',
@@ -198,11 +211,16 @@
'thunk/ppb_image_data_thunk.cc',
'thunk/ppb_input_event_api.h',
'thunk/ppb_input_event_thunk.cc',
+ 'thunk/ppb_input_event_private_thunk.cc',
'thunk/ppb_instance_api.h',
'thunk/ppb_instance_private_thunk.cc',
'thunk/ppb_instance_thunk.cc',
'thunk/ppb_isolated_file_system_private_api.h',
'thunk/ppb_isolated_file_system_private_thunk.cc',
+ 'thunk/ppb_media_stream_audio_track_api.h',
+ 'thunk/ppb_media_stream_audio_track_thunk.cc',
+ 'thunk/ppb_media_stream_video_track_api.h',
+ 'thunk/ppb_media_stream_video_track_thunk.cc',
'thunk/ppb_message_loop_api.h',
'thunk/ppb_messaging_thunk.cc',
'thunk/ppb_mouse_cursor_thunk.cc',
@@ -223,8 +241,6 @@
'thunk/ppb_platform_verification_private_thunk.cc',
'thunk/ppb_printing_api.h',
'thunk/ppb_printing_dev_thunk.cc',
- 'thunk/ppb_resource_array_api.h',
- 'thunk/ppb_resource_array_dev_thunk.cc',
'thunk/ppb_scrollbar_api.h',
'thunk/ppb_scrollbar_thunk.cc',
'thunk/ppb_talk_private_api.h',
@@ -243,6 +259,8 @@
'thunk/ppb_udp_socket_thunk.cc',
'thunk/ppb_udp_socket_private_api.h',
'thunk/ppb_udp_socket_private_thunk.cc',
+ 'thunk/ppb_uma_private_thunk.cc',
+ 'thunk/ppb_uma_singleton_api.h',
'thunk/ppb_url_loader_api.h',
'thunk/ppb_url_loader_thunk.cc',
'thunk/ppb_url_loader_trusted_thunk.cc',
@@ -253,13 +271,16 @@
'thunk/ppb_url_util_thunk.cc',
'thunk/ppb_var_array_thunk.cc',
'thunk/ppb_var_dictionary_thunk.cc',
- 'thunk/ppb_var_resource_dev_thunk.cc',
'thunk/ppb_video_capture_api.h',
'thunk/ppb_video_capture_thunk.cc',
'thunk/ppb_video_decoder_api.h',
+ 'thunk/ppb_video_decoder_dev_api.h',
+ 'thunk/ppb_video_decoder_dev_thunk.cc',
'thunk/ppb_video_decoder_thunk.cc',
'thunk/ppb_video_destination_private_api.h',
'thunk/ppb_video_destination_private_thunk.cc',
+ 'thunk/ppb_video_frame_api.h',
+ 'thunk/ppb_video_frame_thunk.cc',
'thunk/ppb_video_source_private_api.h',
'thunk/ppb_video_source_private_thunk.cc',
'thunk/ppb_view_api.h',
@@ -315,7 +336,7 @@
'thunk/ppb_transport_thunk.cc',
'thunk/ppb_url_util_thunk.cc',
'thunk/ppb_video_capture_thunk.cc',
- 'thunk/ppb_video_decoder_thunk.cc',
+ 'thunk/ppb_video_decoder_dev_thunk.cc',
],
}],
# We exclude a few more things for nacl_win64, to avoid pulling in
diff --git a/chromium/ppapi/ppapi_shared_untrusted.gyp b/chromium/ppapi/ppapi_shared_nacl.gyp
index 453e711b06a..fe9c792b655 100644
--- a/chromium/ppapi/ppapi_shared_untrusted.gyp
+++ b/chromium/ppapi/ppapi_shared_nacl.gyp
@@ -1,4 +1,4 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -14,13 +14,13 @@
['disable_nacl==0 and disable_nacl_untrusted==0', {
'targets': [
{
- 'target_name': 'ppapi_shared_untrusted',
+ 'target_name': 'ppapi_shared_nacl',
'type': 'none',
'variables': {
'ppapi_shared_target': 1,
'nacl_win64_target': 0,
'nacl_untrusted_build': 1,
- 'nlib_target': 'libppapi_shared_untrusted.a',
+ 'nlib_target': 'libppapi_shared_nacl.a',
'build_glibc': 0,
'build_newlib': 0,
'build_irt': 1,
@@ -30,11 +30,11 @@
],
'dependencies': [
'../native_client/tools.gyp:prep_toolchain',
- '../base/base_untrusted.gyp:base_untrusted',
- '../gpu/command_buffer/command_buffer_untrusted.gyp:gles2_utils_untrusted',
- '../gpu/gpu_untrusted.gyp:command_buffer_client_untrusted',
- '../gpu/gpu_untrusted.gyp:gles2_implementation_untrusted',
- '../media/media_untrusted.gyp:shared_memory_support_untrusted',
+ '../base/base_nacl.gyp:base_nacl',
+ '../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
+ '../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
+ '../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
+ '../media/media_nacl.gyp:shared_memory_support_nacl',
'../third_party/khronos/khronos.gyp:khronos_headers',
],
},
diff --git a/chromium/ppapi/ppapi_sources.gypi b/chromium/ppapi/ppapi_sources.gypi
index 793cbfc2465..10f2d1613e4 100644
--- a/chromium/ppapi/ppapi_sources.gypi
+++ b/chromium/ppapi/ppapi_sources.gypi
@@ -7,6 +7,7 @@
'c_source_files': [
'c/pp_array_output.h',
'c/pp_bool.h',
+ 'c/pp_codecs.h',
'c/pp_completion_callback.h',
'c/pp_errors.h',
'c/pp_file_info.h',
@@ -25,10 +26,13 @@
'c/pp_var.h',
'c/ppb.h',
'c/ppb_audio.h',
+ 'c/ppb_audio_buffer.h',
'c/ppb_audio_config.h',
+ 'c/ppb_compositor.h',
'c/ppb_console.h',
'c/ppb_core.h',
'c/ppb_file_io.h',
+ 'c/ppb_file_mapping.h',
'c/ppb_file_ref.h',
'c/ppb_file_system.h',
'c/ppb_fullscreen.h',
@@ -39,6 +43,8 @@
'c/ppb_image_data.h',
'c/ppb_input_event.h',
'c/ppb_instance.h',
+ 'c/ppb_media_stream_audio_track.h',
+ 'c/ppb_media_stream_video_track.h',
'c/ppb_message_loop.h',
'c/ppb_messaging.h',
'c/ppb_mouse_cursor.h',
@@ -58,6 +64,8 @@
'c/ppb_var_array.h',
'c/ppb_var_array_buffer.h',
'c/ppb_var_dictionary.h',
+ 'c/ppb_video_decoder.h',
+ 'c/ppb_video_frame.h',
'c/ppb_view.h',
'c/ppb_websocket.h',
'c/ppp.h',
@@ -69,29 +77,23 @@
# Dev interfaces.
'c/dev/pp_cursor_type_dev.h',
- 'c/dev/pp_optional_structs_dev.h',
'c/dev/pp_video_dev.h',
- 'c/dev/ppb_alarms_dev.h',
'c/dev/ppb_buffer_dev.h',
'c/dev/ppb_char_set_dev.h',
'c/dev/ppb_cursor_control_dev.h',
'c/dev/ppb_device_ref_dev.h',
'c/dev/ppb_file_chooser_dev.h',
- 'c/dev/ppb_find_dev.h',
'c/dev/ppb_font_dev.h',
'c/dev/ppb_ime_input_event_dev.h',
'c/dev/ppb_memory_dev.h',
'c/dev/ppb_printing_dev.h',
- 'c/dev/ppb_resource_array_dev.h',
'c/dev/ppb_scrollbar_dev.h',
'c/dev/ppb_text_input_dev.h',
'c/dev/ppb_truetype_font_dev.h',
'c/dev/ppb_url_util_dev.h',
- 'c/dev/ppb_var_resource_dev.h',
'c/dev/ppb_video_decoder_dev.h',
'c/dev/ppb_widget_dev.h',
'c/dev/ppb_zoom_dev.h',
- 'c/dev/ppp_find_dev.h',
'c/dev/ppp_network_state_dev.h',
'c/dev/ppp_scrollbar_dev.h',
'c/dev/ppp_selection_dev.h',
@@ -106,6 +108,7 @@
'c/private/pp_video_frame_private.h',
'c/private/ppb_content_decryptor_private.h',
'c/private/ppb_ext_crx_file_system_private.h',
+ 'c/private/ppb_find_private.h',
'c/private/ppb_flash.h',
'c/private/ppb_flash_clipboard.h',
'c/private/ppb_flash_file.h',
@@ -114,6 +117,7 @@
'c/private/ppb_flash_menu.h',
'c/private/ppb_flash_message_loop.h',
'c/private/ppb_host_resolver_private.h',
+ 'c/private/ppb_input_event_private.h',
'c/private/ppb_instance_private.h',
'c/private/ppb_isolated_file_system_private.h',
'c/private/ppb_nacl_private.h',
@@ -126,10 +130,12 @@
'c/private/ppb_tcp_server_socket_private.h',
'c/private/ppb_tcp_socket_private.h',
'c/private/ppb_udp_socket_private.h',
+ 'c/private/ppb_uma_private.h',
'c/private/ppb_video_destination_private.h',
'c/private/ppb_video_source_private.h',
'c/private/ppb_x509_certificate_private.h',
'c/private/ppp_content_decryptor_private.h',
+ 'c/private/ppp_find_private.h',
'c/private/ppp_instance_private.h',
# Deprecated interfaces.
@@ -143,18 +149,21 @@
'c/trusted/ppb_file_chooser_trusted.h',
'c/trusted/ppb_url_loader_trusted.h',
'c/trusted/ppp_broker.h',
-
- # Extensions dev interfaces.
- 'c/extensions/dev/ppb_ext_socket_dev.h',
],
'cpp_source_files': [
'cpp/array_output.cc',
'cpp/array_output.h',
'cpp/audio.cc',
'cpp/audio.h',
+ 'cpp/audio_buffer.cc',
+ 'cpp/audio_buffer.h',
'cpp/audio_config.cc',
'cpp/audio_config.h',
'cpp/completion_callback.h',
+ 'cpp/compositor.cc',
+ 'cpp/compositor.h',
+ 'cpp/compositor_layer.cc',
+ 'cpp/compositor_layer.h',
'cpp/core.cc',
'cpp/core.h',
'cpp/directory_entry.cc',
@@ -184,6 +193,10 @@
'cpp/instance_handle.cc',
'cpp/instance_handle.h',
'cpp/logging.h',
+ 'cpp/media_stream_audio_track.cc',
+ 'cpp/media_stream_audio_track.h',
+ 'cpp/media_stream_video_track.cc',
+ 'cpp/media_stream_video_track.h',
'cpp/message_loop.cc',
'cpp/message_loop.h',
'cpp/module.cc',
@@ -229,6 +242,10 @@
'cpp/var_array_buffer.h',
'cpp/var_dictionary.cc',
'cpp/var_dictionary.h',
+ 'cpp/video_decoder.cc',
+ 'cpp/video_decoder.h',
+ 'cpp/video_frame.cc',
+ 'cpp/video_frame.h',
'cpp/view.cc',
'cpp/view.h',
'cpp/websocket.cc',
@@ -247,20 +264,14 @@
'cpp/dev/device_ref_dev.h',
'cpp/dev/file_chooser_dev.cc',
'cpp/dev/file_chooser_dev.h',
- 'cpp/dev/find_dev.cc',
- 'cpp/dev/find_dev.h',
'cpp/dev/font_dev.cc',
'cpp/dev/font_dev.h',
- 'cpp/dev/graphics_2d_dev.cc',
- 'cpp/dev/graphics_2d_dev.h',
'cpp/dev/ime_input_event_dev.cc',
'cpp/dev/ime_input_event_dev.h',
'cpp/dev/memory_dev.cc',
'cpp/dev/memory_dev.h',
'cpp/dev/printing_dev.cc',
'cpp/dev/printing_dev.h',
- 'cpp/dev/resource_array_dev.cc',
- 'cpp/dev/resource_array_dev.h',
'cpp/dev/scrollbar_dev.cc',
'cpp/dev/scrollbar_dev.h',
'cpp/dev/selection_dev.cc',
@@ -271,8 +282,6 @@
'cpp/dev/truetype_font_dev.h',
'cpp/dev/url_util_dev.cc',
'cpp/dev/url_util_dev.h',
- 'cpp/dev/var_resource_dev.cc',
- 'cpp/dev/var_resource_dev.h',
'cpp/dev/video_capture_client_dev.cc',
'cpp/dev/video_capture_client_dev.h',
'cpp/dev/video_capture_dev.cc',
@@ -301,6 +310,8 @@
'cpp/private/ext_crx_file_system_private.h',
'cpp/private/file_io_private.cc',
'cpp/private/file_io_private.h',
+ 'cpp/private/find_private.cc',
+ 'cpp/private/find_private.h',
'cpp/private/flash.cc',
'cpp/private/flash.h',
'cpp/private/flash_clipboard.cc',
@@ -321,6 +332,8 @@
'cpp/private/flash_message_loop.h',
'cpp/private/host_resolver_private.cc',
'cpp/private/host_resolver_private.h',
+ 'cpp/private/input_event_private.cc',
+ 'cpp/private/input_event_private.h',
'cpp/private/instance_private.cc',
'cpp/private/instance_private.h',
'cpp/private/isolated_file_system_private.cc',
@@ -341,6 +354,8 @@
'cpp/private/tcp_socket_private.h',
'cpp/private/udp_socket_private.cc',
'cpp/private/udp_socket_private.h',
+ 'cpp/private/uma_private.cc',
+ 'cpp/private/uma_private.h',
'cpp/private/var_private.cc',
'cpp/private/var_private.h',
'cpp/private/video_destination_private.cc',
@@ -358,17 +373,6 @@
'cpp/trusted/file_chooser_trusted.cc',
'cpp/trusted/file_chooser_trusted.h',
- # Extensions interfaces.
- 'cpp/extensions/dict_field.h',
- 'cpp/extensions/ext_output_traits.h',
- 'cpp/extensions/from_var_converter.h',
- 'cpp/extensions/optional.h',
- 'cpp/extensions/to_var_converter.h',
-
- # Extensions dev interfaces.
- 'cpp/extensions/dev/socket_dev.cc',
- 'cpp/extensions/dev/socket_dev.h',
-
# Utility sources.
'utility/completion_callback_factory.h',
'utility/completion_callback_factory_thread_traits.h',
@@ -402,6 +406,8 @@
'tests/test_audio_config.h',
'tests/test_case.cc',
'tests/test_case.h',
+ 'tests/test_compositor.cc',
+ 'tests/test_compositor.h',
'tests/test_console.cc',
'tests/test_console.h',
'tests/test_core.cc',
@@ -412,6 +418,8 @@
'tests/test_empty.h',
'tests/test_file_io.cc',
'tests/test_file_io.h',
+ 'tests/test_file_mapping.cc',
+ 'tests/test_file_mapping.h',
'tests/test_file_ref.cc',
'tests/test_file_ref.h',
'tests/test_file_system.cc',
@@ -434,8 +442,14 @@
'tests/test_ime_input_event.h',
'tests/test_input_event.cc',
'tests/test_input_event.h',
+ 'tests/test_media_stream_audio_track.cc',
+ 'tests/test_media_stream_audio_track.h',
+ 'tests/test_media_stream_video_track.cc',
+ 'tests/test_media_stream_video_track.h',
'tests/test_memory.cc',
'tests/test_memory.h',
+ 'tests/test_message_handler.cc',
+ 'tests/test_message_handler.h',
'tests/test_message_loop.cc',
'tests/test_message_loop.h',
'tests/test_mouse_cursor.cc',
@@ -466,6 +480,8 @@
'tests/test_tcp_socket.h',
'tests/test_tcp_socket_private.cc',
'tests/test_tcp_socket_private.h',
+ 'tests/test_test_internals.cc',
+ 'tests/test_test_internals.h',
'tests/test_trace_event.cc',
'tests/test_trace_event.h',
'tests/test_truetype_font.cc',
@@ -474,6 +490,8 @@
'tests/test_udp_socket.h',
'tests/test_udp_socket_private.cc',
'tests/test_udp_socket_private.h',
+ 'tests/test_uma.cc',
+ 'tests/test_uma.h',
'tests/test_url_loader.cc',
'tests/test_url_loader.h',
'tests/test_url_request.cc',
@@ -483,6 +501,8 @@
'tests/test_var.h',
'tests/test_var_resource.cc',
'tests/test_var_resource.h',
+ 'tests/test_video_decoder.cc',
+ 'tests/test_video_decoder.h',
'tests/test_video_destination.cc',
'tests/test_video_destination.h',
'tests/test_video_source.cc',
@@ -519,10 +539,8 @@
'tests/test_browser_font.h',
'tests/test_buffer.cc',
'tests/test_buffer.h',
- 'tests/test_c_includes.c',
'tests/test_char_set.cc',
'tests/test_char_set.h',
- 'tests/test_cpp_includes.cc',
'tests/test_crypto.cc',
'tests/test_crypto.h',
'tests/test_flash.cc',
@@ -543,21 +561,15 @@
'tests/test_pdf.h',
'tests/test_platform_verification_private.cc',
'tests/test_platform_verification_private.h',
- 'tests/test_resource_array.cc',
- 'tests/test_resource_array.h',
- 'tests/test_struct_sizes.c',
'tests/test_talk_private.cc',
'tests/test_talk_private.h',
'tests/test_tcp_socket_private_trusted.cc',
'tests/test_tcp_socket_private_trusted.h',
- 'tests/test_uma.cc',
- 'tests/test_uma.h',
'tests/test_url_util.cc',
'tests/test_url_util.h',
- 'tests/test_utils.cc',
'tests/test_utils.h',
- 'tests/test_video_decoder.cc',
- 'tests/test_video_decoder.h',
+ 'tests/test_video_decoder_dev.cc',
+ 'tests/test_video_decoder_dev.h',
'tests/test_x509_certificate_private.cc',
'tests/test_x509_certificate_private.h',
diff --git a/chromium/ppapi/ppapi_tests.gypi b/chromium/ppapi/ppapi_tests.gypi
index 4f439bafa42..df51b73c85a 100644
--- a/chromium/ppapi/ppapi_tests.gypi
+++ b/chromium/ppapi/ppapi_tests.gypi
@@ -125,7 +125,7 @@
],
'conditions': [
# See http://crbug.com/162998#c4 for why this is needed.
- ['OS=="linux" and linux_use_tcmalloc==1', {
+ ['OS=="linux" and use_allocator!="none"', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
],
@@ -153,26 +153,16 @@
'../testing/gtest.gyp:gtest',
'../ui/surface/surface.gyp:surface',
],
- # For the nacl_http_response_headers_unittest below.
- 'include_dirs': [
- '../ppapi',
- ],
'sources': [
'host/resource_message_filter_unittest.cc',
- # Piggy back on ppapi_unittests for a simple NaCl unittest,
- # which must not have dependencies on anything other than stdlibs.
- # We add the source file, not just the test to ensure that the object
- # is built. Otherwise, we would need to depend on the NaCl trusted
- # plugin being built to build the object.
- # TODO(jvoung): move this to unit_tests instead of ppapi_unittests
- # once this moves into chrome.
- 'native_client/src/trusted/plugin/nacl_http_response_headers.cc',
- 'native_client/src/trusted/plugin/nacl_http_response_headers_unittest.cc',
'proxy/device_enumeration_resource_helper_unittest.cc',
'proxy/file_chooser_resource_unittest.cc',
+ 'proxy/file_system_resource_unittest.cc',
'proxy/flash_resource_unittest.cc',
+ 'proxy/interface_list_unittest.cc',
'proxy/mock_resource.cc',
'proxy/mock_resource.h',
+ 'proxy/nacl_message_scanner_unittest.cc',
'proxy/pdf_resource_unittest.cc',
'proxy/plugin_dispatcher_unittest.cc',
'proxy/plugin_resource_tracker_unittest.cc',
@@ -185,19 +175,22 @@
'proxy/raw_var_data_unittest.cc',
'proxy/serialized_var_unittest.cc',
'proxy/talk_resource_unittest.cc',
+ 'proxy/video_decoder_resource_unittest.cc',
'proxy/websocket_resource_unittest.cc',
+ 'shared_impl/media_stream_audio_track_shared_unittest.cc',
+ 'shared_impl/media_stream_buffer_manager_unittest.cc',
+ 'shared_impl/media_stream_video_track_shared_unittest.cc',
'shared_impl/proxy_lock_unittest.cc',
'shared_impl/resource_tracker_unittest.cc',
'shared_impl/thread_aware_callback_unittest.cc',
'shared_impl/time_conversion_unittest.cc',
'shared_impl/tracked_callback_unittest.cc',
'shared_impl/var_tracker_unittest.cc',
- 'shared_impl/var_value_conversions_unittest.cc',
],
'conditions': [
[ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
'conditions': [
- [ 'linux_use_tcmalloc == 1', {
+ [ 'use_allocator!="none"', {
'dependencies': [
'../base/allocator/allocator.gyp:allocator',
],
@@ -206,7 +199,7 @@
}],
],
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
- 'msvs_disabled_warnings': [ 4267, ],
+ 'msvs_disabled_warnings': [ 4267, ],
},
{
'target_name': 'ppapi_example_skeleton',
@@ -465,6 +458,23 @@
'msvs_disabled_warnings': [ 4267, ],
},
{
+ 'target_name': 'ppapi_example_video_decode_dev',
+ 'dependencies': [
+ 'ppapi_example_skeleton',
+ 'ppapi.gyp:ppapi_cpp',
+ 'ppapi.gyp:ppapi_gles2',
+ ],
+ 'include_dirs': [
+ 'lib/gl/include',
+ ],
+ 'sources': [
+ 'examples/video_decode/video_decode_dev.cc',
+ 'examples/video_decode/testdata.h',
+ ],
+ # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
+ 'msvs_disabled_warnings': [ 4267, ],
+ },
+ {
'target_name': 'ppapi_example_vc',
'dependencies': [
'ppapi_example_skeleton',
@@ -520,5 +530,61 @@
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [ 4267, ],
},
+ {
+ 'target_name': 'ppapi_example_media_stream_audio',
+ 'dependencies': [
+ 'ppapi_example_skeleton',
+ 'ppapi.gyp:ppapi_cpp',
+ ],
+ 'sources': [
+ 'examples/media_stream_audio/media_stream_audio.cc',
+ ],
+ },
+ {
+ 'target_name': 'ppapi_example_media_stream_video',
+ 'dependencies': [
+ 'ppapi_example_skeleton',
+ 'ppapi.gyp:ppapi_cpp',
+ 'ppapi.gyp:ppapi_gles2',
+ ],
+ 'include_dirs': [
+ 'lib/gl/include',
+ ],
+ 'sources': [
+ 'examples/media_stream_video/media_stream_video.cc',
+ ],
+ },
+ {
+ 'target_name': 'ppapi_example_gles2_spinning_cube',
+ 'dependencies': [
+ 'ppapi_example_skeleton',
+ 'ppapi.gyp:ppapi_cpp',
+ 'ppapi.gyp:ppapi_gles2',
+ ],
+ 'include_dirs': [
+ 'lib/gl/include',
+ ],
+ 'sources': [
+ 'examples/gles2_spinning_cube/gles2_spinning_cube.cc',
+ 'examples/gles2_spinning_cube/spinning_cube.cc',
+ 'examples/gles2_spinning_cube/spinning_cube.h',
+ ],
+ },
+ {
+ 'target_name': 'ppapi_example_compositor',
+ 'dependencies': [
+ 'ppapi_example_skeleton',
+ 'ppapi.gyp:ppapi_cpp',
+ 'ppapi.gyp:ppapi_gles2',
+ ],
+ 'include_dirs': [
+ 'lib/gl/include',
+ ],
+ 'sources': [
+ 'examples/compositor/compositor.cc',
+ 'examples/compositor/spinning_cube.cc',
+ 'examples/compositor/spinning_cube.h',
+ ],
+ },
],
}
diff --git a/chromium/ppapi/proxy/DEPS b/chromium/ppapi/proxy/DEPS
index e56cd3def11..6183b609ef4 100644
--- a/chromium/ppapi/proxy/DEPS
+++ b/chromium/ppapi/proxy/DEPS
@@ -1,11 +1,12 @@
include_rules = [
"+base",
- "+components/tracing",
"+gpu",
"+ipc",
"+media/audio",
+ "+media/base",
"+skia",
"+ui/surface",
+ "+ui/events",
# We don't want the proxy to depend on the C++ layer, which is appropriate
# for plugins only. However, the completion callback factory is a very useful
@@ -14,9 +15,4 @@ include_rules = [
"-ppapi/cpp",
"+ppapi/cpp/completion_callback.h",
"+ppapi/cpp/output_traits.h",
-
- # The untrusted build references the NaCl integrated runtime (IRT).
- "+native_client/src/shared",
- "+native_client/src/untrusted"
]
-
diff --git a/chromium/ppapi/proxy/OWNERS b/chromium/ppapi/proxy/OWNERS
index 7d2c40a5e8b..6064b918dd6 100644
--- a/chromium/ppapi/proxy/OWNERS
+++ b/chromium/ppapi/proxy/OWNERS
@@ -3,9 +3,12 @@ piman@chromium.org
# Changes to IPC messages require a security review to avoid introducing
# new sandbox escapes.
per-file *_messages*.h=set noparent
-per-file *_messages*.h=cdn@chromium.org
per-file *_messages*.h=cevans@chromium.org
+per-file *_messages*.h=dcheng@chromium.org
+per-file *_messages*.h=inferno@chromium.org
per-file *_messages*.h=jln@chromium.org
per-file *_messages*.h=jschuh@chromium.org
+per-file *_messages*.h=kenrb@chromium.org
+per-file *_messages*.h=nasko@chromium.org
per-file *_messages*.h=palmer@chromium.org
per-file *_messages*.h=tsepez@chromium.org
diff --git a/chromium/ppapi/proxy/audio_buffer_resource.cc b/chromium/ppapi/proxy/audio_buffer_resource.cc
new file mode 100644
index 00000000000..1435b4cee75
--- /dev/null
+++ b/chromium/ppapi/proxy/audio_buffer_resource.cc
@@ -0,0 +1,112 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/audio_buffer_resource.h"
+
+#include "base/logging.h"
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/shared_impl/media_stream_buffer.h"
+#include "ppapi/shared_impl/var.h"
+
+namespace ppapi {
+namespace proxy {
+
+AudioBufferResource::AudioBufferResource(PP_Instance instance,
+ int32_t index,
+ MediaStreamBuffer* buffer)
+ : Resource(OBJECT_IS_PROXY, instance),
+ index_(index),
+ buffer_(buffer) {
+ DCHECK_EQ(buffer_->header.type, MediaStreamBuffer::TYPE_AUDIO);
+}
+
+AudioBufferResource::~AudioBufferResource() {
+ CHECK(!buffer_) << "An unused (or unrecycled) buffer is destroyed.";
+}
+
+thunk::PPB_AudioBuffer_API* AudioBufferResource::AsPPB_AudioBuffer_API() {
+ return this;
+}
+
+PP_TimeDelta AudioBufferResource::GetTimestamp() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return 0.0;
+ }
+ return buffer_->audio.timestamp;
+}
+
+void AudioBufferResource::SetTimestamp(PP_TimeDelta timestamp) {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return;
+ }
+ buffer_->audio.timestamp = timestamp;
+}
+
+PP_AudioBuffer_SampleRate AudioBufferResource::GetSampleRate() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
+ }
+ return buffer_->audio.sample_rate;
+}
+
+PP_AudioBuffer_SampleSize AudioBufferResource::GetSampleSize() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
+ }
+ return PP_AUDIOBUFFER_SAMPLESIZE_16_BITS;
+}
+
+uint32_t AudioBufferResource::GetNumberOfChannels() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return 0;
+ }
+ return buffer_->audio.number_of_channels;
+}
+
+uint32_t AudioBufferResource::GetNumberOfSamples() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return 0;
+ }
+ return buffer_->audio.number_of_samples;
+}
+
+void* AudioBufferResource::GetDataBuffer() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return NULL;
+ }
+ return buffer_->audio.data;
+}
+
+uint32_t AudioBufferResource::GetDataBufferSize() {
+ if (!buffer_) {
+ VLOG(1) << "Buffer is invalid";
+ return 0;
+ }
+ return buffer_->audio.data_size;
+}
+
+MediaStreamBuffer* AudioBufferResource::GetBuffer() {
+ return buffer_;
+}
+
+int32_t AudioBufferResource::GetBufferIndex() {
+ return index_;
+}
+
+void AudioBufferResource::Invalidate() {
+ DCHECK(buffer_);
+ DCHECK_GE(index_, 0);
+ buffer_ = NULL;
+ index_ = -1;
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/audio_buffer_resource.h b/chromium/ppapi/proxy/audio_buffer_resource.h
new file mode 100644
index 00000000000..b4ef3eb760c
--- /dev/null
+++ b/chromium/ppapi/proxy/audio_buffer_resource.h
@@ -0,0 +1,57 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_
+#define PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/resource.h"
+#include "ppapi/thunk/ppb_audio_buffer_api.h"
+
+namespace ppapi {
+
+union MediaStreamBuffer;
+
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT AudioBufferResource
+ : public Resource,
+ public thunk::PPB_AudioBuffer_API {
+ public:
+ AudioBufferResource(PP_Instance instance,
+ int32_t index,
+ MediaStreamBuffer* buffer);
+
+ virtual ~AudioBufferResource();
+
+ // PluginResource overrides:
+ virtual thunk::PPB_AudioBuffer_API* AsPPB_AudioBuffer_API() OVERRIDE;
+
+ // PPB_AudioBuffer_API overrides:
+ virtual PP_TimeDelta GetTimestamp() OVERRIDE;
+ virtual void SetTimestamp(PP_TimeDelta timestamp) OVERRIDE;
+ virtual PP_AudioBuffer_SampleRate GetSampleRate() OVERRIDE;
+ virtual PP_AudioBuffer_SampleSize GetSampleSize() OVERRIDE;
+ virtual uint32_t GetNumberOfChannels() OVERRIDE;
+ virtual uint32_t GetNumberOfSamples() OVERRIDE;
+ virtual void* GetDataBuffer() OVERRIDE;
+ virtual uint32_t GetDataBufferSize() OVERRIDE;
+ virtual MediaStreamBuffer* GetBuffer() OVERRIDE;
+ virtual int32_t GetBufferIndex() OVERRIDE;
+ virtual void Invalidate() OVERRIDE;
+
+ // Buffer index
+ int32_t index_;
+
+ MediaStreamBuffer* buffer_;
+
+ DISALLOW_COPY_AND_ASSIGN(AudioBufferResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/audio_input_resource.cc b/chromium/ppapi/proxy/audio_input_resource.cc
index 7c29df5b744..7f1f81983e6 100644
--- a/chromium/ppapi/proxy/audio_input_resource.cc
+++ b/chromium/ppapi/proxy/audio_input_resource.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "ipc/ipc_platform_file.h"
#include "media/audio/audio_parameters.h"
+#include "media/base/audio_bus.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/resource_message_params.h"
@@ -22,18 +23,19 @@
namespace ppapi {
namespace proxy {
-AudioInputResource::AudioInputResource(
- Connection connection,
- PP_Instance instance)
+AudioInputResource::AudioInputResource(Connection connection,
+ PP_Instance instance)
: PluginResource(connection, instance),
open_state_(BEFORE_OPEN),
capturing_(false),
shared_memory_size_(0),
- audio_input_callback_0_2_(NULL),
+ audio_input_callback_0_3_(NULL),
audio_input_callback_(NULL),
user_data_(NULL),
enumeration_helper_(this),
- bytes_per_second_(0) {
+ bytes_per_second_(0),
+ sample_frame_count_(0),
+ client_buffer_size_bytes_(0) {
SendCreate(RENDERER, PpapiHostMsg_AudioInput_Create());
}
@@ -52,12 +54,6 @@ void AudioInputResource::OnReplyReceived(
PluginResource::OnReplyReceived(params, msg);
}
-int32_t AudioInputResource::EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) {
- return enumeration_helper_.EnumerateDevices0_2(devices, callback);
-}
-
int32_t AudioInputResource::EnumerateDevices(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) {
@@ -70,13 +66,13 @@ int32_t AudioInputResource::MonitorDeviceChange(
return enumeration_helper_.MonitorDeviceChange(callback, user_data);
}
-int32_t AudioInputResource::Open0_2(
+int32_t AudioInputResource::Open0_3(
PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
void* user_data,
scoped_refptr<TrackedCallback> callback) {
- return CommonOpen(device_ref, config, audio_input_callback_0_2, NULL,
+ return CommonOpen(device_ref, config, audio_input_callback_0_3, NULL,
user_data, callback);
}
@@ -187,14 +183,33 @@ void AudioInputResource::SetStreamInfo(
socket_.reset(new base::CancelableSyncSocket(socket_handle));
shared_memory_.reset(new base::SharedMemory(shared_memory_handle, false));
shared_memory_size_ = shared_memory_size;
+ DCHECK(!shared_memory_->memory());
- if (!shared_memory_->Map(shared_memory_size_)) {
- PpapiGlobals::Get()->LogWithSource(
- pp_instance(),
- PP_LOGLEVEL_WARNING,
- std::string(),
- "Failed to map shared memory for PPB_AudioInput_Shared.");
- }
+ // If we fail to map the shared memory into the caller's address space we
+ // might as well fail here since nothing will work if this is the case.
+ CHECK(shared_memory_->Map(shared_memory_size_));
+
+ // Create a new audio bus and wrap the audio data section in shared memory.
+ media::AudioInputBuffer* buffer =
+ static_cast<media::AudioInputBuffer*>(shared_memory_->memory());
+ audio_bus_ = media::AudioBus::WrapMemory(
+ kAudioInputChannels, sample_frame_count_, buffer->audio);
+
+ // Ensure that the size of the created audio bus matches the allocated
+ // size in shared memory.
+ // Example: DCHECK_EQ(8208 - 16, 8192) for |sample_frame_count_| = 2048.
+ const uint32_t audio_bus_size_bytes = media::AudioBus::CalculateMemorySize(
+ audio_bus_->channels(), audio_bus_->frames());
+ DCHECK_EQ(shared_memory_size_ - sizeof(media::AudioInputBufferParameters),
+ audio_bus_size_bytes);
+
+ // Create an extra integer audio buffer for user audio data callbacks.
+ // Data in shared memory will be copied to this buffer, after interleaving
+ // and truncation, before each input callback to match the format expected
+ // by the client.
+ client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() *
+ kBitsPerAudioInputSample / 8;
+ client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]);
// There is a pending capture request before SetStreamInfo().
if (capturing_) {
@@ -207,8 +222,9 @@ void AudioInputResource::SetStreamInfo(
void AudioInputResource::StartThread() {
// Don't start the thread unless all our state is set up correctly.
- if ((!audio_input_callback_0_2_ && !audio_input_callback_) ||
- !socket_.get() || !capturing_ || !shared_memory_->memory()) {
+ if ((!audio_input_callback_0_3_ && !audio_input_callback_) ||
+ !socket_.get() || !capturing_ || !shared_memory_->memory() ||
+ !audio_bus_.get() || !client_buffer_.get()) {
return;
}
DCHECK(!audio_input_thread_.get());
@@ -229,28 +245,42 @@ void AudioInputResource::StopThread() {
void AudioInputResource::Run() {
// The shared memory represents AudioInputBufferParameters and the actual data
- // buffer.
+ // buffer stored as an audio bus.
media::AudioInputBuffer* buffer =
static_cast<media::AudioInputBuffer*>(shared_memory_->memory());
- uint32_t data_buffer_size =
+ const uint32_t audio_bus_size_bytes =
shared_memory_size_ - sizeof(media::AudioInputBufferParameters);
- int pending_data;
- while (sizeof(pending_data) == socket_->Receive(&pending_data,
- sizeof(pending_data)) &&
- pending_data >= 0) {
+ while (true) {
+ int pending_data = 0;
+ size_t bytes_read = socket_->Receive(&pending_data, sizeof(pending_data));
+ if (bytes_read != sizeof(pending_data)) {
+ DCHECK_EQ(bytes_read, 0U);
+ break;
+ }
+ if (pending_data < 0)
+ break;
+
+ // Convert an AudioBus from deinterleaved float to interleaved integer data.
+ // Store the result in a preallocated |client_buffer_|.
+ audio_bus_->ToInterleaved(audio_bus_->frames(),
+ kBitsPerAudioInputSample / 8,
+ client_buffer_.get());
+
// While closing the stream, we may receive buffers whose size is different
// from |data_buffer_size|.
- CHECK_LE(buffer->params.size, data_buffer_size);
+ CHECK_LE(buffer->params.size, audio_bus_size_bytes);
if (buffer->params.size > 0) {
if (audio_input_callback_) {
PP_TimeDelta latency =
static_cast<double>(pending_data) / bytes_per_second_;
- audio_input_callback_(&buffer->audio[0], buffer->params.size, latency,
+ audio_input_callback_(client_buffer_.get(),
+ client_buffer_size_bytes_,
+ latency,
user_data_);
} else {
- audio_input_callback_0_2_(&buffer->audio[0], buffer->params.size,
- user_data_);
+ audio_input_callback_0_3_(
+ client_buffer_.get(), client_buffer_size_bytes_, user_data_);
}
}
}
@@ -259,7 +289,7 @@ void AudioInputResource::Run() {
int32_t AudioInputResource::CommonOpen(
PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
PPB_AudioInput_Callback audio_input_callback,
void* user_data,
scoped_refptr<TrackedCallback> callback) {
@@ -279,7 +309,7 @@ int32_t AudioInputResource::CommonOpen(
if (open_state_ != BEFORE_OPEN)
return PP_ERROR_FAILED;
- if (!audio_input_callback_0_2 && !audio_input_callback)
+ if (!audio_input_callback_0_3 && !audio_input_callback)
return PP_ERROR_BADARGUMENT;
thunk::EnterResourceNoLock<thunk::PPB_AudioConfig_API> enter_config(config,
true);
@@ -287,12 +317,13 @@ int32_t AudioInputResource::CommonOpen(
return PP_ERROR_BADARGUMENT;
config_ = config;
- audio_input_callback_0_2_ = audio_input_callback_0_2;
+ audio_input_callback_0_3_ = audio_input_callback_0_3;
audio_input_callback_ = audio_input_callback;
user_data_ = user_data;
open_callback_ = callback;
bytes_per_second_ = kAudioInputChannels * (kBitsPerAudioInputSample / 8) *
enter_config.object()->GetSampleRate();
+ sample_frame_count_ = enter_config.object()->GetSampleFrameCount();
PpapiHostMsg_AudioInput_Open msg(
device_id, enter_config.object()->GetSampleRate(),
diff --git a/chromium/ppapi/proxy/audio_input_resource.h b/chromium/ppapi/proxy/audio_input_resource.h
index 84785d08052..0184260c359 100644
--- a/chromium/ppapi/proxy/audio_input_resource.h
+++ b/chromium/ppapi/proxy/audio_input_resource.h
@@ -17,6 +17,10 @@
#include "ppapi/shared_impl/scoped_pp_resource.h"
#include "ppapi/thunk/ppb_audio_input_api.h"
+namespace media {
+class AudioBus;
+}
+
namespace ppapi {
namespace proxy {
@@ -35,18 +39,15 @@ class AudioInputResource : public PluginResource,
const IPC::Message& msg) OVERRIDE;
// PPB_AudioInput_API implementation.
- virtual int32_t EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t EnumerateDevices(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t MonitorDeviceChange(
PP_MonitorDeviceChangeCallback callback,
void* user_data) OVERRIDE;
- virtual int32_t Open0_2(PP_Resource device_ref,
+ virtual int32_t Open0_3(PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
void* user_data,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t Open(PP_Resource device_ref,
@@ -90,7 +91,7 @@ class AudioInputResource : public PluginResource,
int32_t CommonOpen(PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
PPB_AudioInput_Callback audio_input_callback,
void* user_data,
scoped_refptr<TrackedCallback> callback);
@@ -116,7 +117,7 @@ class AudioInputResource : public PluginResource,
scoped_ptr<base::DelegateSimpleThread> audio_input_thread_;
// Callback to call when new samples are available.
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2_;
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3_;
PPB_AudioInput_Callback audio_input_callback_;
// User data pointer passed verbatim to the callback function.
@@ -136,6 +137,14 @@ class AudioInputResource : public PluginResource,
// latency.
size_t bytes_per_second_;
+ // AudioBus for shuttling data across the shared memory.
+ scoped_ptr<media::AudioBus> audio_bus_;
+ int sample_frame_count_;
+
+ // Internal buffer for client's integer audio data.
+ int client_buffer_size_bytes_;
+ scoped_ptr<uint8_t[]> client_buffer_;
+
DISALLOW_COPY_AND_ASSIGN(AudioInputResource);
};
diff --git a/chromium/ppapi/proxy/compositor_layer_resource.cc b/chromium/ppapi/proxy/compositor_layer_resource.cc
new file mode 100644
index 00000000000..17bc7b2fe42
--- /dev/null
+++ b/chromium/ppapi/proxy/compositor_layer_resource.cc
@@ -0,0 +1,368 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/compositor_layer_resource.h"
+
+#include "base/logging.h"
+#include "gpu/command_buffer/client/gles2_implementation.h"
+#include "gpu/command_buffer/common/mailbox.h"
+#include "ppapi/proxy/compositor_resource.h"
+#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_graphics_3d_api.h"
+#include "ppapi/thunk/ppb_image_data_api.h"
+
+using gpu::gles2::GLES2Implementation;
+using ppapi::thunk::EnterResourceNoLock;
+using ppapi::thunk::PPB_ImageData_API;
+using ppapi::thunk::PPB_Graphics3D_API;
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+float clamp(float value) {
+ return std::min(std::max(value, 0.0f), 1.0f);
+}
+
+void OnTextureReleased(
+ const ScopedPPResource& layer,
+ const ScopedPPResource& context,
+ uint32_t texture,
+ const scoped_refptr<TrackedCallback>& release_callback,
+ int32_t result,
+ uint32_t sync_point,
+ bool is_lost) {
+ if (!TrackedCallback::IsPending(release_callback))
+ return;
+
+ if (result != PP_OK) {
+ release_callback->Run(result);
+ return;
+ }
+
+ do {
+ if (!sync_point)
+ break;
+
+ EnterResourceNoLock<PPB_Graphics3D_API> enter(context.get(), true);
+ if (enter.failed())
+ break;
+
+ PPB_Graphics3D_Shared* graphics =
+ static_cast<PPB_Graphics3D_Shared*>(enter.object());
+
+ GLES2Implementation* gl = graphics->gles2_impl();
+ gl->WaitSyncPointCHROMIUM(sync_point);
+ } while (false);
+
+ release_callback->Run(is_lost ? PP_ERROR_FAILED : PP_OK);
+}
+
+void OnImageReleased(
+ const ScopedPPResource& layer,
+ const ScopedPPResource& image,
+ const scoped_refptr<TrackedCallback>& release_callback,
+ int32_t result,
+ uint32_t sync_point,
+ bool is_lost) {
+ if (!TrackedCallback::IsPending(release_callback))
+ return;
+ release_callback->Run(result);
+}
+
+} // namespace
+
+CompositorLayerResource::CompositorLayerResource(
+ Connection connection,
+ PP_Instance instance,
+ const CompositorResource* compositor)
+ : PluginResource(connection, instance),
+ compositor_(compositor),
+ source_size_(PP_MakeFloatSize(0.0f, 0.0f)) {
+}
+
+CompositorLayerResource::~CompositorLayerResource() {
+ DCHECK(!compositor_);
+ DCHECK(release_callback_.is_null());
+}
+
+thunk::PPB_CompositorLayer_API*
+CompositorLayerResource::AsPPB_CompositorLayer_API() {
+ return this;
+}
+
+int32_t CompositorLayerResource::SetColor(float red,
+ float green,
+ float blue,
+ float alpha,
+ const PP_Size* size) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ if (!SetType(TYPE_COLOR))
+ return PP_ERROR_BADARGUMENT;
+ DCHECK(data_.color);
+
+ if (!size)
+ return PP_ERROR_BADARGUMENT;
+
+ data_.color->red = clamp(red);
+ data_.color->green = clamp(green);
+ data_.color->blue = clamp(blue);
+ data_.color->alpha = clamp(alpha);
+ data_.common.size = *size;
+
+ return PP_OK;
+}
+
+int32_t CompositorLayerResource::SetTexture(
+ PP_Resource context,
+ uint32_t texture,
+ const PP_Size* size,
+ const scoped_refptr<TrackedCallback>& release_callback) {
+ int32_t rv = CheckForSetTextureAndImage(TYPE_TEXTURE, release_callback);
+ if (rv != PP_OK)
+ return rv;
+ DCHECK(data_.texture);
+
+ EnterResourceNoLock<PPB_Graphics3D_API> enter(context, true);
+ if (enter.failed())
+ return PP_ERROR_BADRESOURCE;
+
+ if (!size || size->width <= 0 || size->height <= 0)
+ return PP_ERROR_BADARGUMENT;
+
+ PPB_Graphics3D_Shared* graphics =
+ static_cast<PPB_Graphics3D_Shared*>(enter.object());
+
+ GLES2Implementation* gl = graphics->gles2_impl();
+
+ // Generate a Mailbox for the texture.
+ gl->GenMailboxCHROMIUM(
+ reinterpret_cast<GLbyte*>(data_.texture->mailbox.name));
+ gl->ProduceTextureDirectCHROMIUM(
+ texture, GL_TEXTURE_2D,
+ reinterpret_cast<const GLbyte*>(data_.texture->mailbox.name));
+
+ // Set the source size to (1, 1). It will be used to verify the source_rect
+ // passed to SetSourceRect().
+ source_size_ = PP_MakeFloatSize(1.0f, 1.0f);
+
+ data_.common.size = *size;
+ data_.common.resource_id = compositor_->GenerateResourceId();
+ data_.texture->sync_point = gl->InsertSyncPointCHROMIUM();
+ data_.texture->source_rect.point = PP_MakeFloatPoint(0.0f, 0.0f);
+ data_.texture->source_rect.size = source_size_;
+
+ // If the PP_Resource of this layer is released by the plugin, the
+ // release_callback will be aborted immediately, but the texture or image
+ // in this layer may still being used by chromium compositor. So we have to
+ // use ScopedPPResource to keep this resource alive until the texture or image
+ // is released by the chromium compositor.
+ release_callback_ = base::Bind(
+ &OnTextureReleased,
+ ScopedPPResource(pp_resource()), // Keep layer alive.
+ ScopedPPResource(context), // Keep context alive
+ texture,
+ release_callback);
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t CompositorLayerResource::SetImage(
+ PP_Resource image_data,
+ const PP_Size* size,
+ const scoped_refptr<TrackedCallback>& release_callback) {
+ int32_t rv = CheckForSetTextureAndImage(TYPE_IMAGE, release_callback);
+ if (rv != PP_OK)
+ return rv;
+ DCHECK(data_.image);
+
+ EnterResourceNoLock<PPB_ImageData_API> enter(image_data, true);
+ if (enter.failed())
+ return PP_ERROR_BADRESOURCE;
+
+ PP_ImageDataDesc desc;
+ if (!enter.object()->Describe(&desc))
+ return PP_ERROR_BADARGUMENT;
+
+ // TODO(penghuang): Support image which width * 4 != stride.
+ if (desc.size.width * 4 != desc.stride)
+ return PP_ERROR_BADARGUMENT;
+
+ // TODO(penghuang): Support all formats.
+ if (desc.format != PP_IMAGEDATAFORMAT_RGBA_PREMUL)
+ return PP_ERROR_BADARGUMENT;
+
+ if (!size || size->width <= 0 || size->height <= 0)
+ return PP_ERROR_BADARGUMENT;
+
+ // Set the source size to image's size. It will be used to verify
+ // the source_rect passed to SetSourceRect().
+ source_size_ = PP_MakeFloatSize(desc.size.width, desc.size.height);
+
+ data_.common.size = size ? *size : desc.size;
+ data_.common.resource_id = compositor_->GenerateResourceId();
+ data_.image->resource = enter.resource()->host_resource().host_resource();
+ data_.image->source_rect.point = PP_MakeFloatPoint(0.0f, 0.0f);
+ data_.image->source_rect.size = source_size_;
+
+ // If the PP_Resource of this layer is released by the plugin, the
+ // release_callback will be aborted immediately, but the texture or image
+ // in this layer may still being used by chromium compositor. So we have to
+ // use ScopedPPResource to keep this resource alive until the texture or image
+ // is released by the chromium compositor.
+ release_callback_ = base::Bind(
+ &OnImageReleased,
+ ScopedPPResource(pp_resource()), // Keep layer alive.
+ ScopedPPResource(image_data), // Keep image_data alive.
+ release_callback);
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t CompositorLayerResource::SetClipRect(const PP_Rect* rect) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ data_.common.clip_rect = rect ? *rect : PP_MakeRectFromXYWH(0, 0, 0, 0);
+ return PP_OK;
+}
+
+int32_t CompositorLayerResource::SetTransform(const float matrix[16]) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ std::copy(matrix, matrix + 16, data_.common.transform.matrix);
+ return PP_OK;
+}
+
+int32_t CompositorLayerResource::SetOpacity(float opacity) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ data_.common.opacity = clamp(opacity);
+ return PP_OK;
+}
+
+int32_t CompositorLayerResource::SetBlendMode(PP_BlendMode mode) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ switch (mode) {
+ case PP_BLENDMODE_NONE:
+ case PP_BLENDMODE_SRC_OVER:
+ data_.common.blend_mode = mode;
+ return PP_OK;
+ }
+ return PP_ERROR_BADARGUMENT;
+}
+
+int32_t CompositorLayerResource::SetSourceRect(
+ const PP_FloatRect* rect) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ if (!rect ||
+ rect->point.x < 0.0f ||
+ rect->point.y < 0.0f ||
+ rect->point.x + rect->size.width > source_size_.width ||
+ rect->point.y + rect->size.height > source_size_.height) {
+ return PP_ERROR_BADARGUMENT;
+ }
+
+ if (data_.texture) {
+ data_.texture->source_rect = *rect;
+ return PP_OK;
+ }
+ if (data_.image) {
+ data_.image->source_rect = *rect;
+ return PP_OK;
+ }
+ return PP_ERROR_BADARGUMENT;
+}
+
+int32_t CompositorLayerResource::SetPremultipliedAlpha(PP_Bool premult) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ if (data_.texture) {
+ data_.texture->premult_alpha = PP_ToBool(premult);
+ return PP_OK;
+ }
+ return PP_ERROR_BADARGUMENT;
+}
+
+bool CompositorLayerResource::SetType(LayerType type) {
+ if (type == TYPE_COLOR) {
+ if (data_.is_null())
+ data_.color.reset(new CompositorLayerData::ColorLayer());
+ return data_.color;
+ }
+
+ if (type == TYPE_TEXTURE) {
+ if (data_.is_null())
+ data_.texture.reset(new CompositorLayerData::TextureLayer());
+ return data_.texture;
+ }
+
+ if (type == TYPE_IMAGE) {
+ if (data_.is_null())
+ data_.image.reset(new CompositorLayerData::ImageLayer());
+ return data_.image;
+ }
+
+ // Should not be reached.
+ DCHECK(false);
+ return false;
+}
+
+int32_t CompositorLayerResource::CheckForSetTextureAndImage(
+ LayerType type,
+ const scoped_refptr<TrackedCallback>& release_callback) {
+ if (!compositor_)
+ return PP_ERROR_BADRESOURCE;
+
+ if (compositor_->IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ if (!SetType(type))
+ return PP_ERROR_BADARGUMENT;
+
+ // The layer's image has been set and it is not committed.
+ if (!release_callback_.is_null())
+ return PP_ERROR_INPROGRESS;
+
+ // Do not allow using a block callback as a release callback.
+ if (release_callback->is_blocking())
+ return PP_ERROR_BADARGUMENT;
+
+ return PP_OK;
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/compositor_layer_resource.h b/chromium/ppapi/proxy/compositor_layer_resource.h
new file mode 100644
index 00000000000..a31d8fe7c8a
--- /dev/null
+++ b/chromium/ppapi/proxy/compositor_layer_resource.h
@@ -0,0 +1,99 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_COMPOSITOR_LAYER_RESOURCE_H_
+#define PPAPI_PROXY_COMPOSITOR_LAYER_RESOURCE_H_
+
+#include "ppapi/c/ppb_compositor_layer.h"
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/compositor_layer_data.h"
+#include "ppapi/shared_impl/scoped_pp_resource.h"
+#include "ppapi/thunk/ppb_compositor_layer_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+class CompositorResource;
+
+class PPAPI_PROXY_EXPORT CompositorLayerResource
+ : public PluginResource,
+ public thunk::PPB_CompositorLayer_API {
+ public:
+ // Release callback for texture or image layer.
+ typedef base::Callback<void(int32_t, uint32_t, bool)> ReleaseCallback;
+
+ CompositorLayerResource(Connection connection,
+ PP_Instance instance,
+ const CompositorResource* compositor);
+
+ const CompositorLayerData& data() const { return data_; }
+ const ReleaseCallback& release_callback() const {
+ return release_callback_;
+ }
+ void ResetReleaseCallback() { release_callback_.Reset(); }
+ void Invalidate() { compositor_ = NULL; }
+
+ private:
+ enum LayerType {
+ TYPE_COLOR,
+ TYPE_TEXTURE,
+ TYPE_IMAGE,
+ };
+
+ virtual ~CompositorLayerResource();
+
+ // Resource overrides:
+ virtual thunk::PPB_CompositorLayer_API* AsPPB_CompositorLayer_API() OVERRIDE;
+
+ // thunk::PPB_Compositor_API overrides:
+ virtual int32_t SetColor(float red,
+ float green,
+ float blue,
+ float alpha,
+ const PP_Size* size) OVERRIDE;
+ virtual int32_t SetTexture(
+ PP_Resource context,
+ uint32_t texture,
+ const PP_Size* size,
+ const scoped_refptr<TrackedCallback>& callback) OVERRIDE;
+ virtual int32_t SetImage(
+ PP_Resource image_data,
+ const PP_Size* size,
+ const scoped_refptr<TrackedCallback>& callback) OVERRIDE;
+ virtual int32_t SetClipRect(const PP_Rect* rect) OVERRIDE;
+ virtual int32_t SetTransform(const float matrix[16]) OVERRIDE;
+ virtual int32_t SetOpacity(float opacity) OVERRIDE;
+ virtual int32_t SetBlendMode(PP_BlendMode mode) OVERRIDE;
+ virtual int32_t SetSourceRect(const PP_FloatRect* rect) OVERRIDE;
+ virtual int32_t SetPremultipliedAlpha(PP_Bool premult) OVERRIDE;
+
+ bool SetType(LayerType type);
+ int32_t CheckForSetTextureAndImage(
+ LayerType type,
+ const scoped_refptr<TrackedCallback>& release_callback);
+
+ // The CompositorResource which own the layer. The layer is invalidated if
+ // compositor_ is NULL.
+ const CompositorResource* compositor_;
+
+ // Release callback for uncommitted texture or image. When CommitLayers() on
+ // the compositor_ is called, the callback will be copied into a map in the
+ // compositor_, and it will be reset to NULL.
+ ReleaseCallback release_callback_;
+
+ // Size of texture or image. It is used to verify the rect arg of
+ // SetSourceRect().
+ PP_FloatSize source_size_;
+
+ // Layer data.
+ CompositorLayerData data_;
+
+ DISALLOW_COPY_AND_ASSIGN(CompositorLayerResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_COMPOSITOR_LAYER_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/compositor_resource.cc b/chromium/ppapi/proxy/compositor_resource.cc
new file mode 100644
index 00000000000..443d7a949e9
--- /dev/null
+++ b/chromium/ppapi/proxy/compositor_resource.cc
@@ -0,0 +1,154 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/compositor_resource.h"
+
+#include "base/logging.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/thunk/enter.h"
+
+namespace ppapi {
+namespace proxy {
+
+CompositorResource::CompositorResource(Connection connection,
+ PP_Instance instance)
+ : PluginResource(connection, instance),
+ layer_reset_(true),
+ last_resource_id_(0) {
+ SendCreate(RENDERER, PpapiHostMsg_Compositor_Create());
+}
+
+bool CompositorResource::IsInProgress() const {
+ ProxyLock::AssertAcquiredDebugOnly();
+ return TrackedCallback::IsPending(commit_callback_);
+}
+
+int32_t CompositorResource::GenerateResourceId() const {
+ ProxyLock::AssertAcquiredDebugOnly();
+ return ++last_resource_id_;
+}
+
+CompositorResource::~CompositorResource() {
+ ResetLayersInternal(true);
+
+ // Abort all release callbacks.
+ for (ReleaseCallbackMap::iterator it = release_callback_map_.begin();
+ it != release_callback_map_.end(); ++it) {
+ if (!it->second.is_null())
+ it->second.Run(PP_ERROR_ABORTED, 0, false);
+ }
+}
+
+thunk::PPB_Compositor_API* CompositorResource::AsPPB_Compositor_API() {
+ return this;
+}
+
+void CompositorResource::OnReplyReceived(
+ const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) {
+ PPAPI_BEGIN_MESSAGE_MAP(CompositorResource, msg)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_Compositor_ReleaseResource,
+ OnPluginMsgReleaseResource)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
+ PluginResource::OnReplyReceived(params, msg))
+ PPAPI_END_MESSAGE_MAP()
+}
+
+PP_Resource CompositorResource::AddLayer() {
+ scoped_refptr<CompositorLayerResource> resource(new CompositorLayerResource(
+ connection(), pp_instance(), this));
+ layers_.push_back(resource);
+ return resource->GetReference();
+}
+
+int32_t CompositorResource::CommitLayers(
+ const scoped_refptr<ppapi::TrackedCallback>& callback) {
+ if (IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ std::vector<CompositorLayerData> layers;
+ layers.reserve(layers_.size());
+
+ for (LayerList::const_iterator it = layers_.begin();
+ it != layers_.end(); ++it) {
+ if ((*it)->data().is_null())
+ return PP_ERROR_FAILED;
+ layers.push_back((*it)->data());
+ }
+
+ commit_callback_ = callback;
+ Call<PpapiPluginMsg_Compositor_CommitLayersReply>(
+ RENDERER,
+ PpapiHostMsg_Compositor_CommitLayers(layers, layer_reset_),
+ base::Bind(&CompositorResource::OnPluginMsgCommitLayersReply,
+ base::Unretained(this)),
+ callback);
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t CompositorResource::ResetLayers() {
+ if (IsInProgress())
+ return PP_ERROR_INPROGRESS;
+
+ ResetLayersInternal(false);
+ return PP_OK;
+}
+
+void CompositorResource::OnPluginMsgCommitLayersReply(
+ const ResourceMessageReplyParams& params) {
+ if (!TrackedCallback::IsPending(commit_callback_))
+ return;
+
+ // On success, we put layers' release_callbacks into a map,
+ // otherwise we will do nothing. So plugin may change layers and
+ // call CommitLayers() again.
+ if (params.result() == PP_OK) {
+ layer_reset_ = false;
+ for (LayerList::iterator it = layers_.begin();
+ it != layers_.end(); ++it) {
+ ReleaseCallback release_callback = (*it)->release_callback();
+ if (!release_callback.is_null()) {
+ release_callback_map_.insert(ReleaseCallbackMap::value_type(
+ (*it)->data().common.resource_id, release_callback));
+ (*it)->ResetReleaseCallback();
+ }
+ }
+ }
+
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(commit_callback_);
+ callback->Run(params.result());
+}
+
+void CompositorResource::OnPluginMsgReleaseResource(
+ const ResourceMessageReplyParams& params,
+ int32_t id,
+ uint32_t sync_point,
+ bool is_lost) {
+ ReleaseCallbackMap::iterator it = release_callback_map_.find(id);
+ DCHECK(it != release_callback_map_.end()) <<
+ "Can not found release_callback_ by id(" << id << ")!";
+ it->second.Run(PP_OK, sync_point, is_lost);
+ release_callback_map_.erase(it);
+}
+
+void CompositorResource::ResetLayersInternal(bool is_aborted) {
+ for (LayerList::iterator it = layers_.begin();
+ it != layers_.end(); ++it) {
+ ReleaseCallback release_callback = (*it)->release_callback();
+ if (!release_callback.is_null()) {
+ release_callback.Run(is_aborted ? PP_ERROR_ABORTED : PP_OK, 0, false);
+ (*it)->ResetReleaseCallback();
+ }
+ (*it)->Invalidate();
+ }
+
+ layers_.clear();
+ layer_reset_ = true;
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/compositor_resource.h b/chromium/ppapi/proxy/compositor_resource.h
new file mode 100644
index 00000000000..8bdeb3f650e
--- /dev/null
+++ b/chromium/ppapi/proxy/compositor_resource.h
@@ -0,0 +1,80 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_COMPOSITOR_RESOURCE_H_
+#define PPAPI_PROXY_COMPOSITOR_RESOURCE_H_
+
+#include <map>
+
+#include "ppapi/proxy/compositor_layer_resource.h"
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/thunk/ppb_compositor_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT CompositorResource
+ : public PluginResource,
+ public thunk::PPB_Compositor_API {
+ public:
+ CompositorResource(Connection connection,
+ PP_Instance instance);
+
+ bool IsInProgress() const;
+
+ int32_t GenerateResourceId() const;
+
+ private:
+ virtual ~CompositorResource();
+
+ // Resource overrides:
+ virtual thunk::PPB_Compositor_API* AsPPB_Compositor_API() OVERRIDE;
+
+ // PluginResource overrides:
+ virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) OVERRIDE;
+
+ // thunk::PPB_Compositor_API overrides:
+ virtual PP_Resource AddLayer() OVERRIDE;
+ virtual int32_t CommitLayers(
+ const scoped_refptr<TrackedCallback>& callback) OVERRIDE;
+ virtual int32_t ResetLayers() OVERRIDE;
+
+ // IPC msg handlers:
+ void OnPluginMsgCommitLayersReply(const ResourceMessageReplyParams& params);
+ void OnPluginMsgReleaseResource(
+ const ResourceMessageReplyParams& params,
+ int32_t id,
+ uint32_t sync_point,
+ bool is_lost);
+
+ void ResetLayersInternal(bool is_aborted);
+
+ // Callback for CommitLayers().
+ scoped_refptr<TrackedCallback> commit_callback_;
+
+ // True if layers_ has been reset by ResetLayers().
+ bool layer_reset_;
+
+ // Layer stack.
+ typedef std::vector<scoped_refptr<CompositorLayerResource> > LayerList;
+ LayerList layers_;
+
+ // Release callback map for texture and image.
+ typedef CompositorLayerResource::ReleaseCallback ReleaseCallback;
+ typedef std::map<int32_t, ReleaseCallback> ReleaseCallbackMap;
+ ReleaseCallbackMap release_callback_map_;
+
+ // The last resource id for texture or image.
+ mutable int32_t last_resource_id_;
+
+ DISALLOW_COPY_AND_ASSIGN(CompositorResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_COMPOSITOR_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/device_enumeration_resource_helper.cc b/chromium/ppapi/proxy/device_enumeration_resource_helper.cc
index e8d63e1dbdf..18b1939d5ba 100644
--- a/chromium/ppapi/proxy/device_enumeration_resource_helper.cc
+++ b/chromium/ppapi/proxy/device_enumeration_resource_helper.cc
@@ -36,24 +36,6 @@ DeviceEnumerationResourceHelper::DeviceEnumerationResourceHelper(
DeviceEnumerationResourceHelper::~DeviceEnumerationResourceHelper() {
}
-int32_t DeviceEnumerationResourceHelper::EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) {
- if (pending_enumerate_devices_)
- return PP_ERROR_INPROGRESS;
- if (!devices)
- return PP_ERROR_BADARGUMENT;
-
- pending_enumerate_devices_ = true;
- PpapiHostMsg_DeviceEnumeration_EnumerateDevices msg;
- owner_->Call<PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply>(
- PluginResource::RENDERER, msg,
- base::Bind(
- &DeviceEnumerationResourceHelper::OnPluginMsgEnumerateDevicesReply0_2,
- AsWeakPtr(), devices, callback));
- return PP_OK_COMPLETIONPENDING;
-}
-
int32_t DeviceEnumerationResourceHelper::EnumerateDevices(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) {
@@ -111,12 +93,12 @@ int32_t DeviceEnumerationResourceHelper::MonitorDeviceChange(
bool DeviceEnumerationResourceHelper::HandleReply(
const ResourceMessageReplyParams& params,
const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(DeviceEnumerationResourceHelper, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(DeviceEnumerationResourceHelper, msg)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
OnPluginMsgNotifyDeviceChange)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(return false)
- IPC_END_MESSAGE_MAP()
+ PPAPI_END_MESSAGE_MAP()
return true;
}
@@ -132,27 +114,6 @@ void DeviceEnumerationResourceHelper::LastPluginRefWasDeleted() {
// that properly.
}
-void DeviceEnumerationResourceHelper::OnPluginMsgEnumerateDevicesReply0_2(
- PP_Resource* devices_resource,
- scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params,
- const std::vector<DeviceRefData>& devices) {
- pending_enumerate_devices_ = false;
-
- // We shouldn't access |devices_resource| if the callback has been called,
- // which is possible if the last plugin reference to the corresponding
- // resource has gone away, and the callback has been aborted.
- if (!TrackedCallback::IsPending(callback))
- return;
-
- if (params.result() == PP_OK) {
- *devices_resource = PPB_DeviceRef_Shared::CreateResourceArray(
- OBJECT_IS_PROXY, owner_->pp_instance(), devices);
- }
-
- callback->Run(params.result());
-}
-
void DeviceEnumerationResourceHelper::OnPluginMsgEnumerateDevicesReply(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback,
diff --git a/chromium/ppapi/proxy/device_enumeration_resource_helper.h b/chromium/ppapi/proxy/device_enumeration_resource_helper.h
index a2574ec6461..cea31537df2 100644
--- a/chromium/ppapi/proxy/device_enumeration_resource_helper.h
+++ b/chromium/ppapi/proxy/device_enumeration_resource_helper.h
@@ -37,8 +37,6 @@ class PPAPI_PROXY_EXPORT DeviceEnumerationResourceHelper
explicit DeviceEnumerationResourceHelper(PluginResource* owner);
~DeviceEnumerationResourceHelper();
- int32_t EnumerateDevices0_2(PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback);
int32_t EnumerateDevices(const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback);
int32_t EnumerateDevicesSync(const PP_ArrayOutput& output);
@@ -52,11 +50,6 @@ class PPAPI_PROXY_EXPORT DeviceEnumerationResourceHelper
void LastPluginRefWasDeleted();
private:
- void OnPluginMsgEnumerateDevicesReply0_2(
- PP_Resource* devices_resource,
- scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params,
- const std::vector<DeviceRefData>& devices);
void OnPluginMsgEnumerateDevicesReply(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback,
diff --git a/chromium/ppapi/proxy/dispatch_reply_message.h b/chromium/ppapi/proxy/dispatch_reply_message.h
index a380cdcf97b..1a53e864fd6 100644
--- a/chromium/ppapi/proxy/dispatch_reply_message.h
+++ b/chromium/ppapi/proxy/dispatch_reply_message.h
@@ -129,6 +129,16 @@ void DispatchResourceReplyOrDefaultParams(
(obj->*method)(reply_params);
}
+// When using PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL* below, use this macro to
+// begin the map instead of IPC_BEGIN_MESSAGE_MAP. The reason is that the macros
+// in src/ipc are all closely tied together, and there might be errors for
+// unused variables or other errors if they're used with these macros.
+#define PPAPI_BEGIN_MESSAGE_MAP(class_name, msg) \
+ { \
+ typedef class_name _IpcMessageHandlerClass; \
+ const IPC::Message& ipc_message__ = msg; \
+ switch (ipc_message__.type()) { \
+
// Note that this only works for message with 1 or more parameters. For
// 0-parameter messages you need to use the _0 version below (since there are
// no params in the message).
@@ -158,6 +168,10 @@ void DispatchResourceReplyOrDefaultParams(
} \
break;
+#define PPAPI_END_MESSAGE_MAP() \
+ } \
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/dispatcher.cc b/chromium/ppapi/proxy/dispatcher.cc
index 3b18932447a..786c24d8b07 100644
--- a/chromium/ppapi/proxy/dispatcher.cc
+++ b/chromium/ppapi/proxy/dispatcher.cc
@@ -14,6 +14,10 @@
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/var_serialization_rules.h"
+namespace IPC {
+class MessageFilter;
+}
+
namespace ppapi {
namespace proxy {
@@ -26,10 +30,6 @@ Dispatcher::Dispatcher(PP_GetInterface_Func local_get_interface,
Dispatcher::~Dispatcher() {
}
-void Dispatcher::AddFilter(IPC::Listener* listener) {
- filters_.push_back(listener);
-}
-
InterfaceProxy* Dispatcher::GetInterfaceProxy(ApiID id) {
InterfaceProxy* proxy = proxies_[id].get();
if (!proxy) {
@@ -47,12 +47,7 @@ InterfaceProxy* Dispatcher::GetInterfaceProxy(ApiID id) {
return proxy;
}
-base::MessageLoopProxy* Dispatcher::GetIPCMessageLoop() {
- return delegate()->GetIPCMessageLoop();
-}
-
-void Dispatcher::AddIOThreadMessageFilter(
- IPC::ChannelProxy::MessageFilter* filter) {
+void Dispatcher::AddIOThreadMessageFilter(IPC::MessageFilter* filter) {
// Our filter is refcounted. The channel will call the destruct method on the
// filter when the channel is done with it, so the corresponding Release()
// happens there.
diff --git a/chromium/ppapi/proxy/dispatcher.h b/chromium/ppapi/proxy/dispatcher.h
index 7bb2c7ec2a7..68d67fe4d8b 100644
--- a/chromium/ppapi/proxy/dispatcher.h
+++ b/chromium/ppapi/proxy/dispatcher.h
@@ -13,7 +13,6 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
#include "base/tracked_objects.h"
-#include "ipc/ipc_channel_proxy.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_module.h"
#include "ppapi/c/ppp.h"
@@ -23,8 +22,11 @@
#include "ppapi/proxy/plugin_var_tracker.h"
#include "ppapi/shared_impl/api_id.h"
-namespace ppapi {
+namespace IPC {
+class MessageFilter;
+}
+namespace ppapi {
namespace proxy {
class VarSerializationRules;
@@ -51,8 +53,6 @@ class PPAPI_PROXY_EXPORT Dispatcher : public ProxyChannel {
// browser side.
virtual bool IsPlugin() const = 0;
- void AddFilter(IPC::Listener* listener);
-
VarSerializationRules* serialization_rules() const {
return serialization_rules_.get();
}
@@ -62,19 +62,8 @@ class PPAPI_PROXY_EXPORT Dispatcher : public ProxyChannel {
// created so far.
InterfaceProxy* GetInterfaceProxy(ApiID id);
- // Returns the pointer to the IO thread for processing IPC messages.
- // TODO(brettw) remove this. It's a hack to support the Flash
- // ModuleLocalThreadAdapter. When the thread stuff is sorted out, this
- // implementation detail should be hidden.
- base::MessageLoopProxy* GetIPCMessageLoop();
-
// Adds the given filter to the IO thread. Takes ownership of the pointer.
- void AddIOThreadMessageFilter(IPC::ChannelProxy::MessageFilter* filter);
-
- // TODO(brettw): What is this comment referring to?
- // Called if the remote side is declaring to us which interfaces it supports
- // so we don't have to query for each one. We'll pre-create proxies for
- // each of the given interfaces.
+ void AddIOThreadMessageFilter(IPC::MessageFilter* filter);
// IPC::Listener implementation.
virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
@@ -97,18 +86,12 @@ class PPAPI_PROXY_EXPORT Dispatcher : public ProxyChannel {
// default implementation does nothing, derived classes can override.
virtual void OnInvalidMessageReceived();
- protected:
- std::vector<IPC::Listener*> filters_;
-
private:
- friend class HostDispatcherTest;
friend class PluginDispatcherTest;
// Lists all lazily-created interface proxies.
scoped_ptr<InterfaceProxy> proxies_[API_ID_COUNT];
- bool disallow_trusted_interfaces_;
-
PP_GetInterface_Func local_get_interface_;
scoped_refptr<VarSerializationRules> serialization_rules_;
diff --git a/chromium/ppapi/proxy/extensions_common_resource.cc b/chromium/ppapi/proxy/extensions_common_resource.cc
deleted file mode 100644
index 40d03f97822..00000000000
--- a/chromium/ppapi/proxy/extensions_common_resource.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/proxy/extensions_common_resource.h"
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/values.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/shared_impl/var_value_conversions.h"
-
-namespace ppapi {
-namespace proxy {
-
-ExtensionsCommonResource::ExtensionsCommonResource(Connection connection,
- PP_Instance instance)
- : PluginResource(connection, instance) {
- SendCreate(RENDERER, PpapiHostMsg_ExtensionsCommon_Create());
- SendCreate(BROWSER, PpapiHostMsg_ExtensionsCommon_Create());
-}
-
-ExtensionsCommonResource::~ExtensionsCommonResource() {
-}
-
-thunk::ExtensionsCommon_API*
-ExtensionsCommonResource::AsExtensionsCommon_API() {
- return this;
-}
-
-int32_t ExtensionsCommonResource::CallRenderer(
- const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) {
- return CommonCall(RENDERER, request_name, input_args, output_args, callback);
-}
-
-void ExtensionsCommonResource::PostRenderer(const std::string& request_name,
- const std::vector<PP_Var>& args) {
- CommonPost(RENDERER, request_name, args);
-}
-
-int32_t ExtensionsCommonResource::CallBrowser(
- const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) {
- return CommonCall(BROWSER, request_name, input_args, output_args, callback);
-}
-
-void ExtensionsCommonResource::PostBrowser(const std::string& request_name,
- const std::vector<PP_Var>& args) {
- CommonPost(BROWSER, request_name, args);
-}
-
-int32_t ExtensionsCommonResource::CommonCall(
- Destination dest,
- const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) {
- // TODO(yzshen): CreateValueFromVar() doesn't generate null fields for
- // dictionary values. That is the expected behavior for most APIs. If later we
- // want to support APIs that require to preserve null fields in dictionaries,
- // we should change the behavior to always preserve null fields at the plugin
- // side, and figure out whether they should be stripped at the renderer side.
- scoped_ptr<base::ListValue> input_args_value(
- CreateListValueFromVarVector(input_args));
- if (!input_args_value.get()) {
- LOG(WARNING) << "Failed to convert PP_Var input arguments.";
- return PP_ERROR_BADARGUMENT;
- }
-
- PluginResource::Call<PpapiPluginMsg_ExtensionsCommon_CallReply>(
- dest,
- PpapiHostMsg_ExtensionsCommon_Call(request_name, *input_args_value),
- base::Bind(&ExtensionsCommonResource::OnPluginMsgCallReply,
- base::Unretained(this), output_args, callback));
- return PP_OK_COMPLETIONPENDING;
-}
-
-void ExtensionsCommonResource::CommonPost(Destination dest,
- const std::string& request_name,
- const std::vector<PP_Var>& args) {
- scoped_ptr<base::ListValue> args_value(CreateListValueFromVarVector(args));
- if (!args_value.get()) {
- LOG(WARNING) << "Failed to convert PP_Var input arguments.";
- return;
- }
-
- PluginResource::Post(
- dest, PpapiHostMsg_ExtensionsCommon_Post(request_name, *args_value));
-}
-
-void ExtensionsCommonResource::OnPluginMsgCallReply(
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params,
- const base::ListValue& output) {
- // |output_args| may be invalid and shouldn't be accessed if the callback has
- // been called.
- if (!TrackedCallback::IsPending(callback))
- return;
-
- int32_t result = params.result();
-
- // If the size doesn't match, something must be really wrong.
- CHECK_EQ(output_args.size(), output.GetSize());
-
- std::vector<PP_Var> output_vars;
- if (CreateVarVectorFromListValue(output, &output_vars)) {
- DCHECK_EQ(output_args.size(), output_vars.size());
- std::vector<PP_Var>::const_iterator src_iter = output_vars.begin();
- std::vector<PP_Var*>::const_iterator dest_iter = output_args.begin();
- for (; src_iter != output_vars.end() && dest_iter != output_args.end();
- ++src_iter, ++dest_iter) {
- **dest_iter = *src_iter;
- }
- } else {
- NOTREACHED();
- result = PP_ERROR_FAILED;
- for (std::vector<PP_Var*>::const_iterator dest_iter = output_args.begin();
- dest_iter != output_args.end();
- ++dest_iter) {
- **dest_iter = PP_MakeUndefined();
- }
- }
-
- callback->Run(result);
-}
-
-} // namespace proxy
-} // namespace ppapi
diff --git a/chromium/ppapi/proxy/extensions_common_resource.h b/chromium/ppapi/proxy/extensions_common_resource.h
deleted file mode 100644
index b3ec366a0d9..00000000000
--- a/chromium/ppapi/proxy/extensions_common_resource.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_PROXY_EXTENSIONS_COMMON_RESOURCE_H_
-#define PPAPI_PROXY_EXTENSIONS_COMMON_RESOURCE_H_
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/thunk/extensions_common_api.h"
-
-namespace base {
-class ListValue;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-class ExtensionsCommonResource : public PluginResource,
- public thunk::ExtensionsCommon_API {
- public:
- ExtensionsCommonResource(Connection connection, PP_Instance instance);
- virtual ~ExtensionsCommonResource();
-
- // Resource overrides.
- virtual thunk::ExtensionsCommon_API* AsExtensionsCommon_API() OVERRIDE;
-
- // ExtensionsCommon_API implementation.
- virtual int32_t CallRenderer(
- const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) OVERRIDE;
- virtual void PostRenderer(const std::string& request_name,
- const std::vector<PP_Var>& args) OVERRIDE;
- virtual int32_t CallBrowser(const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) OVERRIDE;
- virtual void PostBrowser(const std::string& request_name,
- const std::vector<PP_Var>& args) OVERRIDE;
-
- private:
- int32_t CommonCall(Destination dest,
- const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback);
- void CommonPost(Destination dest,
- const std::string& request_name,
- const std::vector<PP_Var>& args);
-
- void OnPluginMsgCallReply(const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params,
- const base::ListValue& output);
-
- DISALLOW_COPY_AND_ASSIGN(ExtensionsCommonResource);
-};
-
-} // namespace proxy
-} // namespace ppapi
-
-#endif // PPAPI_PROXY_EXTENSIONS_COMMON_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/file_chooser_resource.cc b/chromium/ppapi/proxy/file_chooser_resource.cc
index 9847e295c9c..06425686cf7 100644
--- a/chromium/ppapi/proxy/file_chooser_resource.cc
+++ b/chromium/ppapi/proxy/file_chooser_resource.cc
@@ -84,7 +84,7 @@ void FileChooserResource::PopulateAcceptTypes(
for (size_t i = 0; i < type_list.size(); ++i) {
std::string type = type_list[i];
- TrimWhitespaceASCII(type, TRIM_ALL, &type);
+ base::TrimWhitespaceASCII(type, base::TRIM_ALL, &type);
// If the type is a single character, it definitely cannot be valid. In the
// case of a file extension it would be a single ".". In the case of a MIME
diff --git a/chromium/ppapi/proxy/file_io_resource.cc b/chromium/ppapi/proxy/file_io_resource.cc
index ad0718709c3..29335ba90f4 100644
--- a/chromium/ppapi/proxy/file_io_resource.cc
+++ b/chromium/ppapi/proxy/file_io_resource.cc
@@ -39,8 +39,7 @@ void* DummyGetDataBuffer(void* user_data, uint32_t count, uint32_t size) {
}
// File thread task to close the file handle.
-void DoClose(base::PlatformFile file) {
- base::ClosePlatformFile(file);
+void DoClose(base::File auto_close_file) {
}
} // namespace
@@ -48,26 +47,25 @@ void DoClose(base::PlatformFile file) {
namespace ppapi {
namespace proxy {
-FileIOResource::QueryOp::QueryOp(scoped_refptr<FileHandleHolder> file_handle)
- : file_handle_(file_handle) {
- DCHECK(file_handle_);
+FileIOResource::QueryOp::QueryOp(scoped_refptr<FileHolder> file_holder)
+ : file_holder_(file_holder) {
+ DCHECK(file_holder_);
}
FileIOResource::QueryOp::~QueryOp() {
}
int32_t FileIOResource::QueryOp::DoWork() {
- return base::GetPlatformFileInfo(file_handle_->raw_handle(), &file_info_) ?
- PP_OK : PP_ERROR_FAILED;
+ return file_holder_->file()->GetInfo(&file_info_) ? PP_OK : PP_ERROR_FAILED;
}
-FileIOResource::ReadOp::ReadOp(scoped_refptr<FileHandleHolder> file_handle,
+FileIOResource::ReadOp::ReadOp(scoped_refptr<FileHolder> file_holder,
int64_t offset,
int32_t bytes_to_read)
- : file_handle_(file_handle),
+ : file_holder_(file_holder),
offset_(offset),
bytes_to_read_(bytes_to_read) {
- DCHECK(file_handle_);
+ DCHECK(file_holder_);
}
FileIOResource::ReadOp::~ReadOp() {
@@ -76,13 +74,42 @@ FileIOResource::ReadOp::~ReadOp() {
int32_t FileIOResource::ReadOp::DoWork() {
DCHECK(!buffer_.get());
buffer_.reset(new char[bytes_to_read_]);
- return base::ReadPlatformFile(
- file_handle_->raw_handle(), offset_, buffer_.get(), bytes_to_read_);
+ return file_holder_->file()->Read(offset_, buffer_.get(), bytes_to_read_);
+}
+
+FileIOResource::WriteOp::WriteOp(scoped_refptr<FileHolder> file_holder,
+ int64_t offset,
+ scoped_ptr<char[]> buffer,
+ int32_t bytes_to_write,
+ bool append)
+ : file_holder_(file_holder),
+ offset_(offset),
+ buffer_(buffer.Pass()),
+ bytes_to_write_(bytes_to_write),
+ append_(append) {
+}
+
+FileIOResource::WriteOp::~WriteOp() {
+}
+
+int32_t FileIOResource::WriteOp::DoWork() {
+ // In append mode, we can't call Write, since NaCl doesn't implement fcntl,
+ // causing the function to call pwrite, which is incorrect.
+ if (append_) {
+ return file_holder_->file()->WriteAtCurrentPos(buffer_.get(),
+ bytes_to_write_);
+ } else {
+ return file_holder_->file()->Write(offset_, buffer_.get(), bytes_to_write_);
+ }
}
FileIOResource::FileIOResource(Connection connection, PP_Instance instance)
: PluginResource(connection, instance),
file_system_type_(PP_FILESYSTEMTYPE_INVALID),
+ open_flags_(0),
+ max_written_offset_(0),
+ append_mode_write_amount_(0),
+ check_quota_(false),
called_close_(false) {
SendCreate(BROWSER, PpapiHostMsg_FileIO_Create());
}
@@ -113,6 +140,7 @@ int32_t FileIOResource::Open(PP_Resource file_ref,
if (rv != PP_OK)
return rv;
+ open_flags_ = open_flags;
file_system_type_ = create_info.file_system_type;
if (create_info.file_system_plugin_resource) {
@@ -148,7 +176,7 @@ int32_t FileIOResource::Query(PP_FileInfo* info,
return rv;
if (!info)
return PP_ERROR_BADARGUMENT;
- if (!FileHandleHolder::IsValid(file_handle_))
+ if (!FileHolder::IsValid(file_holder_))
return PP_ERROR_FAILED;
state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
@@ -156,21 +184,21 @@ int32_t FileIOResource::Query(PP_FileInfo* info,
// If the callback is blocking, perform the task on the calling thread.
if (callback->is_blocking()) {
int32_t result = PP_ERROR_FAILED;
- base::PlatformFileInfo file_info;
+ base::File::Info file_info;
// The plugin could release its reference to this instance when we release
// the proxy lock below.
scoped_refptr<FileIOResource> protect(this);
{
// Release the proxy lock while making a potentially slow file call.
ProxyAutoUnlock unlock;
- if (base::GetPlatformFileInfo(file_handle_->raw_handle(), &file_info))
+ if (file_holder_->file()->GetInfo(&file_info))
result = PP_OK;
}
if (result == PP_OK) {
// This writes the file info into the plugin's PP_FileInfo struct.
- ppapi::PlatformFileInfoToPepperFileInfo(file_info,
- file_system_type_,
- info);
+ ppapi::FileInfoToPepperFileInfo(file_info,
+ file_system_type_,
+ info);
}
state_manager_.SetOperationFinished();
return result;
@@ -178,7 +206,7 @@ int32_t FileIOResource::Query(PP_FileInfo* info,
// For the non-blocking case, post a task to the file thread and add a
// completion task to write the result.
- scoped_refptr<QueryOp> query_op(new QueryOp(file_handle_));
+ scoped_refptr<QueryOp> query_op(new QueryOp(file_holder_));
base::PostTaskAndReplyWithResult(
PpapiGlobals::Get()->GetFileTaskRunner(),
FROM_HERE,
@@ -239,22 +267,58 @@ int32_t FileIOResource::Write(int64_t offset,
const char* buffer,
int32_t bytes_to_write,
scoped_refptr<TrackedCallback> callback) {
+ if (!buffer)
+ return PP_ERROR_FAILED;
+ if (offset < 0 || bytes_to_write < 0)
+ return PP_ERROR_FAILED;
+ if (!FileHolder::IsValid(file_holder_))
+ return PP_ERROR_FAILED;
+
int32_t rv = state_manager_.CheckOperationState(
FileIOStateManager::OPERATION_WRITE, true);
if (rv != PP_OK)
return rv;
- // TODO(brettw) it would be nice to use a shared memory buffer for large
- // writes rather than having to copy to a string (which will involve a number
- // of extra copies to serialize over IPC).
- bytes_to_write = std::min(bytes_to_write, kMaxReadWriteSize);
- Call<PpapiPluginMsg_FileIO_GeneralReply>(BROWSER,
- PpapiHostMsg_FileIO_Write(offset, std::string(buffer, bytes_to_write)),
- base::Bind(&FileIOResource::OnPluginMsgGeneralComplete, this,
- callback));
-
state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_WRITE);
- return PP_OK_COMPLETIONPENDING;
+
+ if (check_quota_) {
+ int64_t increase = 0;
+ uint64_t max_offset = 0;
+ bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
+ if (append) {
+ increase = bytes_to_write;
+ } else {
+ uint64_t max_offset = offset + bytes_to_write;
+ if (max_offset > static_cast<uint64_t>(kint64max))
+ return PP_ERROR_FAILED; // amount calculation would overflow.
+ increase = static_cast<int64_t>(max_offset) - max_written_offset_;
+ }
+
+ if (increase > 0) {
+ // Request a quota reservation. This makes the Write asynchronous, so we
+ // must copy the plugin's buffer.
+ scoped_ptr<char[]> copy(new char[bytes_to_write]);
+ memcpy(copy.get(), buffer, bytes_to_write);
+ int64_t result =
+ file_system_resource_->AsPPB_FileSystem_API()->RequestQuota(
+ increase,
+ base::Bind(&FileIOResource::OnRequestWriteQuotaComplete,
+ this,
+ offset,
+ base::Passed(&copy),
+ bytes_to_write,
+ callback));
+ if (result == PP_OK_COMPLETIONPENDING)
+ return PP_OK_COMPLETIONPENDING;
+ DCHECK(result == increase);
+
+ if (append)
+ append_mode_write_amount_ += bytes_to_write;
+ else
+ max_written_offset_ = max_offset;
+ }
+ }
+ return WriteValidated(offset, buffer, bytes_to_write, callback);
}
int32_t FileIOResource::SetLength(int64_t length,
@@ -263,13 +327,30 @@ int32_t FileIOResource::SetLength(int64_t length,
FileIOStateManager::OPERATION_EXCLUSIVE, true);
if (rv != PP_OK)
return rv;
+ if (length < 0)
+ return PP_ERROR_FAILED;
- Call<PpapiPluginMsg_FileIO_GeneralReply>(BROWSER,
- PpapiHostMsg_FileIO_SetLength(length),
- base::Bind(&FileIOResource::OnPluginMsgGeneralComplete, this,
- callback));
+ if (check_quota_) {
+ int64_t increase = length - max_written_offset_;
+ if (increase > 0) {
+ int32_t result =
+ file_system_resource_->AsPPB_FileSystem_API()->RequestQuota(
+ increase,
+ base::Bind(&FileIOResource::OnRequestSetLengthQuotaComplete,
+ this,
+ length, callback));
+ if (result == PP_OK_COMPLETIONPENDING) {
+ state_manager_.SetPendingOperation(
+ FileIOStateManager::OPERATION_EXCLUSIVE);
+ return PP_OK_COMPLETIONPENDING;
+ }
+ DCHECK(result == increase);
+ max_written_offset_ = length;
+ }
+ }
state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
+ SetLengthValidated(length, callback);
return PP_OK_COMPLETIONPENDING;
}
@@ -288,15 +369,39 @@ int32_t FileIOResource::Flush(scoped_refptr<TrackedCallback> callback) {
return PP_OK_COMPLETIONPENDING;
}
+int64_t FileIOResource::GetMaxWrittenOffset() const {
+ return max_written_offset_;
+}
+
+int64_t FileIOResource::GetAppendModeWriteAmount() const {
+ return append_mode_write_amount_;
+}
+
+void FileIOResource::SetMaxWrittenOffset(int64_t max_written_offset) {
+ max_written_offset_ = max_written_offset;
+}
+
+void FileIOResource::SetAppendModeWriteAmount(
+ int64_t append_mode_write_amount) {
+ append_mode_write_amount_ = append_mode_write_amount;
+}
+
void FileIOResource::Close() {
if (called_close_)
return;
called_close_ = true;
- if (file_handle_)
- file_handle_ = NULL;
+ if (check_quota_) {
+ check_quota_ = false;
+ file_system_resource_->AsPPB_FileSystem_API()->CloseQuotaFile(
+ pp_resource());
+ }
+
+ if (file_holder_)
+ file_holder_ = NULL;
- Post(BROWSER, PpapiHostMsg_FileIO_Close());
+ Post(BROWSER, PpapiHostMsg_FileIO_Close(
+ FileGrowth(max_written_offset_, append_mode_write_amount_)));
}
int32_t FileIOResource::RequestOSFileHandle(
@@ -316,22 +421,22 @@ int32_t FileIOResource::RequestOSFileHandle(
return PP_OK_COMPLETIONPENDING;
}
-FileIOResource::FileHandleHolder::FileHandleHolder(PP_FileHandle file_handle)
- : raw_handle_(file_handle) {
+FileIOResource::FileHolder::FileHolder(PP_FileHandle file_handle)
+ : file_(file_handle) {
}
// static
-bool FileIOResource::FileHandleHolder::IsValid(
- const scoped_refptr<FileIOResource::FileHandleHolder>& handle) {
- return handle && (handle->raw_handle() != base::kInvalidPlatformFileValue);
+bool FileIOResource::FileHolder::IsValid(
+ const scoped_refptr<FileIOResource::FileHolder>& handle) {
+ return handle && handle->file_.IsValid();
}
-FileIOResource::FileHandleHolder::~FileHandleHolder() {
- if (raw_handle_ != base::kInvalidPlatformFileValue) {
+FileIOResource::FileHolder::~FileHolder() {
+ if (file_.IsValid()) {
base::TaskRunner* file_task_runner =
PpapiGlobals::Get()->GetFileTaskRunner();
file_task_runner->PostTask(FROM_HERE,
- base::Bind(&DoClose, raw_handle_));
+ base::Bind(&DoClose, Passed(&file_)));
}
}
@@ -341,7 +446,7 @@ int32_t FileIOResource::ReadValidated(int64_t offset,
scoped_refptr<TrackedCallback> callback) {
if (bytes_to_read < 0)
return PP_ERROR_FAILED;
- if (!FileHandleHolder::IsValid(file_handle_))
+ if (!FileHolder::IsValid(file_holder_))
return PP_ERROR_FAILED;
state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_READ);
@@ -357,8 +462,7 @@ int32_t FileIOResource::ReadValidated(int64_t offset,
if (buffer) {
// Release the proxy lock while making a potentially slow file call.
ProxyAutoUnlock unlock;
- result = base::ReadPlatformFile(
- file_handle_->raw_handle(), offset, buffer, bytes_to_read);
+ result = file_holder_->file()->Read(offset, buffer, bytes_to_read);
if (result < 0)
result = PP_ERROR_FAILED;
}
@@ -368,7 +472,7 @@ int32_t FileIOResource::ReadValidated(int64_t offset,
// For the non-blocking case, post a task to the file thread.
scoped_refptr<ReadOp> read_op(
- new ReadOp(file_handle_, offset, bytes_to_read));
+ new ReadOp(file_holder_, offset, bytes_to_read));
base::PostTaskAndReplyWithResult(
PpapiGlobals::Get()->GetFileTaskRunner(),
FROM_HERE,
@@ -380,6 +484,62 @@ int32_t FileIOResource::ReadValidated(int64_t offset,
return PP_OK_COMPLETIONPENDING;
}
+int32_t FileIOResource::WriteValidated(
+ int64_t offset,
+ const char* buffer,
+ int32_t bytes_to_write,
+ scoped_refptr<TrackedCallback> callback) {
+ bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
+ if (callback->is_blocking()) {
+ int32_t result;
+ {
+ // Release the proxy lock while making a potentially slow file call.
+ ProxyAutoUnlock unlock;
+ if (append) {
+ result = file_holder_->file()->WriteAtCurrentPos(buffer,
+ bytes_to_write);
+ } else {
+ result = file_holder_->file()->Write(offset, buffer, bytes_to_write);
+ }
+ }
+ if (result < 0)
+ result = PP_ERROR_FAILED;
+
+ state_manager_.SetOperationFinished();
+ return result;
+ }
+
+ // For the non-blocking case, post a task to the file thread. We must copy the
+ // plugin's buffer at this point.
+ scoped_ptr<char[]> copy(new char[bytes_to_write]);
+ memcpy(copy.get(), buffer, bytes_to_write);
+ scoped_refptr<WriteOp> write_op(
+ new WriteOp(file_holder_, offset, copy.Pass(), bytes_to_write, append));
+ base::PostTaskAndReplyWithResult(
+ PpapiGlobals::Get()->GetFileTaskRunner(),
+ FROM_HERE,
+ Bind(&FileIOResource::WriteOp::DoWork, write_op),
+ RunWhileLocked(Bind(&TrackedCallback::Run, callback)));
+ callback->set_completion_task(Bind(&FileIOResource::OnWriteComplete, this));
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void FileIOResource::SetLengthValidated(
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback) {
+ Call<PpapiPluginMsg_FileIO_GeneralReply>(BROWSER,
+ PpapiHostMsg_FileIO_SetLength(length),
+ base::Bind(&FileIOResource::OnPluginMsgGeneralComplete, this,
+ callback));
+
+ // On the browser side we grow |max_written_offset_| monotonically, due to the
+ // unpredictable ordering of plugin side Write and SetLength calls. Match that
+ // behavior here.
+ if (max_written_offset_ < length)
+ max_written_offset_ = length;
+}
+
int32_t FileIOResource::OnQueryComplete(scoped_refptr<QueryOp> query_op,
PP_FileInfo* info,
int32_t result) {
@@ -388,9 +548,9 @@ int32_t FileIOResource::OnQueryComplete(scoped_refptr<QueryOp> query_op,
if (result == PP_OK) {
// This writes the file info into the plugin's PP_FileInfo struct.
- ppapi::PlatformFileInfoToPepperFileInfo(query_op->file_info(),
- file_system_type_,
- info);
+ ppapi::FileInfoToPepperFileInfo(query_op->file_info(),
+ file_system_type_,
+ info);
}
state_manager_.SetOperationFinished();
return result;
@@ -416,6 +576,73 @@ int32_t FileIOResource::OnReadComplete(scoped_refptr<ReadOp> read_op,
return result;
}
+void FileIOResource::OnRequestWriteQuotaComplete(
+ int64_t offset,
+ scoped_ptr<char[]> buffer,
+ int32_t bytes_to_write,
+ scoped_refptr<TrackedCallback> callback,
+ int64_t granted) {
+ DCHECK(granted >= 0);
+ if (granted == 0) {
+ callback->Run(PP_ERROR_NOQUOTA);
+ return;
+ }
+ if (open_flags_ & PP_FILEOPENFLAG_APPEND) {
+ DCHECK_LE(bytes_to_write, granted);
+ append_mode_write_amount_ += bytes_to_write;
+ } else {
+ DCHECK_LE(offset + bytes_to_write - max_written_offset_, granted);
+
+ int64_t max_offset = offset + bytes_to_write;
+ if (max_written_offset_ < max_offset)
+ max_written_offset_ = max_offset;
+ }
+
+ if (callback->is_blocking()) {
+ int32_t result =
+ WriteValidated(offset, buffer.get(), bytes_to_write, callback);
+ DCHECK(result != PP_OK_COMPLETIONPENDING);
+ callback->Run(result);
+ } else {
+ bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
+ scoped_refptr<WriteOp> write_op(new WriteOp(
+ file_holder_, offset, buffer.Pass(), bytes_to_write, append));
+ base::PostTaskAndReplyWithResult(
+ PpapiGlobals::Get()->GetFileTaskRunner(),
+ FROM_HERE,
+ Bind(&FileIOResource::WriteOp::DoWork, write_op),
+ RunWhileLocked(Bind(&TrackedCallback::Run, callback)));
+ callback->set_completion_task(Bind(&FileIOResource::OnWriteComplete, this));
+ }
+}
+
+void FileIOResource::OnRequestSetLengthQuotaComplete(
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback,
+ int64_t granted) {
+ DCHECK(granted >= 0);
+ if (granted == 0) {
+ callback->Run(PP_ERROR_NOQUOTA);
+ return;
+ }
+
+ DCHECK_LE(length - max_written_offset_, granted);
+ if (max_written_offset_ < length)
+ max_written_offset_ = length;
+ SetLengthValidated(length, callback);
+}
+
+int32_t FileIOResource::OnWriteComplete(int32_t result) {
+ DCHECK(state_manager_.get_pending_operation() ==
+ FileIOStateManager::OPERATION_WRITE);
+ // |result| is the return value of WritePlatformFile; -1 indicates failure.
+ if (result < 0)
+ result = PP_ERROR_FAILED;
+
+ state_manager_.SetOperationFinished();
+ return result;
+}
+
void FileIOResource::OnPluginMsgGeneralComplete(
scoped_refptr<TrackedCallback> callback,
const ResourceMessageReplyParams& params) {
@@ -431,20 +658,31 @@ void FileIOResource::OnPluginMsgGeneralComplete(
void FileIOResource::OnPluginMsgOpenFileComplete(
scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params) {
+ const ResourceMessageReplyParams& params,
+ PP_Resource quota_file_system,
+ int64_t max_written_offset) {
DCHECK(state_manager_.get_pending_operation() ==
FileIOStateManager::OPERATION_EXCLUSIVE);
// Release the FileRef resource.
file_ref_ = NULL;
- if (params.result() == PP_OK)
+ int32_t result = params.result();
+ if (result == PP_OK) {
state_manager_.SetOpenSucceed();
- int32_t result = params.result();
- IPC::PlatformFileForTransit transit_file;
- if ((result == PP_OK) && params.TakeFileHandleAtIndex(0, &transit_file)) {
- file_handle_ = new FileHandleHolder(
- IPC::PlatformFileForTransitToPlatformFile(transit_file));
+ if (quota_file_system) {
+ DCHECK(quota_file_system == file_system_resource_->pp_resource());
+ check_quota_ = true;
+ max_written_offset_ = max_written_offset;
+ file_system_resource_->AsPPB_FileSystem_API()->OpenQuotaFile(
+ pp_resource());
+ }
+
+ IPC::PlatformFileForTransit transit_file;
+ if (params.TakeFileHandleAtIndex(0, &transit_file)) {
+ file_holder_ = new FileHolder(
+ IPC::PlatformFileForTransitToPlatformFile(transit_file));
+ }
}
// End this operation now, so the user's callback can execute another FileIO
// operation, assuming there are no other pending operations.
diff --git a/chromium/ppapi/proxy/file_io_resource.h b/chromium/ppapi/proxy/file_io_resource.h
index bfdf24fb602..c9e15df01db 100644
--- a/chromium/ppapi/proxy/file_io_resource.h
+++ b/chromium/ppapi/proxy/file_io_resource.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/files/file.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "ppapi/c/private/pp_file_handle.h"
@@ -57,15 +58,19 @@ class PPAPI_PROXY_EXPORT FileIOResource
scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t SetLength(int64_t length,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int64_t GetMaxWrittenOffset() const OVERRIDE;
+ virtual int64_t GetAppendModeWriteAmount() const OVERRIDE;
+ virtual void SetMaxWrittenOffset(int64_t max_written_offset) OVERRIDE;
+ virtual void SetAppendModeWriteAmount(
+ int64_t append_mode_write_amount) OVERRIDE;
virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual void Close() OVERRIDE;
virtual int32_t RequestOSFileHandle(
PP_FileHandle* handle,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
- private:
- // FileHandleHolder is used to guarantee that file operations will have a
- // valid FD to operate on, even if they're in a different thread.
+ // FileHolder is used to guarantee that file operations will have a valid FD
+ // to operate on, even if they're in a different thread.
// If instead we just passed the raw FD, the FD could be closed before the
// file operation has a chance to run. It could interact with an invalid FD,
// or worse, the FD value could be reused if another file is opened quickly
@@ -75,51 +80,56 @@ class PPAPI_PROXY_EXPORT FileIOResource
//
// Operations that run on a background thread should hold one of these to
// ensure they have a valid file descriptor. The file handle is only closed
- // when the last reference to the FileHandleHolder is removed, so we are
- // guaranteed to operate on the correct file descriptor. It *is* still
- // possible that the FileIOResource will be destroyed and "Abort" callbacks
- // just before the operation does its task (e.g., Reading). In that case, we
- // might for example Read from a file even though the FileIO has been
- // destroyed and the plugin's callback got a PP_ERROR_ABORTED result. In the
- // case of a write, we could write some data to the file despite the plugin
- // receiving a PP_ERROR_ABORTED instead of a successful result.
- class FileHandleHolder : public base::RefCountedThreadSafe<FileHandleHolder> {
+ // when the last reference to the FileHolder is removed, so we are guaranteed
+ // to operate on the correct file descriptor. It *is* still possible that the
+ // FileIOResource will be destroyed and "Abort" callbacks just before the
+ // operation does its task (e.g., Reading). In that case, we might for example
+ // Read from a file even though the FileIO has been destroyed and the plugin's
+ // callback got a PP_ERROR_ABORTED result. In the case of a write, we could
+ // write some data to the file despite the plugin receiving a
+ // PP_ERROR_ABORTED instead of a successful result.
+ class FileHolder : public base::RefCountedThreadSafe<FileHolder> {
public:
- explicit FileHandleHolder(PP_FileHandle file_handle_);
- PP_FileHandle raw_handle() {
- return raw_handle_;
+ explicit FileHolder(PP_FileHandle file_handle);
+ base::File* file() {
+ return &file_;
}
static bool IsValid(
- const scoped_refptr<FileIOResource::FileHandleHolder>& handle);
+ const scoped_refptr<FileIOResource::FileHolder>& handle);
private:
- friend class base::RefCountedThreadSafe<FileHandleHolder>;
- ~FileHandleHolder();
- PP_FileHandle raw_handle_;
+ friend class base::RefCountedThreadSafe<FileHolder>;
+ ~FileHolder();
+ base::File file_;
};
+ scoped_refptr<FileHolder> file_holder() {
+ return file_holder_;
+ }
+
+ private:
// Class to perform file query operations across multiple threads.
class QueryOp : public base::RefCountedThreadSafe<QueryOp> {
public:
- explicit QueryOp(scoped_refptr<FileHandleHolder> file_handle);
+ explicit QueryOp(scoped_refptr<FileHolder> file_holder);
// Queries the file. Called on the file thread (non-blocking) or the plugin
// thread (blocking). This should not be called when we hold the proxy lock.
int32_t DoWork();
- const base::PlatformFileInfo& file_info() const { return file_info_; }
+ const base::File::Info& file_info() const { return file_info_; }
private:
friend class base::RefCountedThreadSafe<QueryOp>;
~QueryOp();
- scoped_refptr<FileHandleHolder> file_handle_;
- base::PlatformFileInfo file_info_;
+ scoped_refptr<FileHolder> file_holder_;
+ base::File::Info file_info_;
};
// Class to perform file read operations across multiple threads.
class ReadOp : public base::RefCountedThreadSafe<ReadOp> {
public:
- ReadOp(scoped_refptr<FileHandleHolder> file_handle,
+ ReadOp(scoped_refptr<FileHolder> file_holder,
int64_t offset,
int32_t bytes_to_read);
@@ -133,16 +143,55 @@ class PPAPI_PROXY_EXPORT FileIOResource
friend class base::RefCountedThreadSafe<ReadOp>;
~ReadOp();
- scoped_refptr<FileHandleHolder> file_handle_;
+ scoped_refptr<FileHolder> file_holder_;
int64_t offset_;
int32_t bytes_to_read_;
scoped_ptr<char[]> buffer_;
};
+ // Class to perform file write operations across multiple threads.
+ class WriteOp : public base::RefCountedThreadSafe<WriteOp> {
+ public:
+ WriteOp(scoped_refptr<FileHolder> file_holder,
+ int64_t offset,
+ scoped_ptr<char[]> buffer,
+ int32_t bytes_to_write,
+ bool append);
+
+ // Writes the file. Called on the file thread (non-blocking) or the plugin
+ // thread (blocking). This should not be called when we hold the proxy lock.
+ int32_t DoWork();
+
+ private:
+ friend class base::RefCountedThreadSafe<WriteOp>;
+ ~WriteOp();
+
+ scoped_refptr<FileHolder> file_holder_;
+ int64_t offset_;
+ scoped_ptr<char[]> buffer_;
+ int32_t bytes_to_write_;
+ bool append_;
+ };
+
+ void OnRequestWriteQuotaComplete(int64_t offset,
+ scoped_ptr<char[]> buffer,
+ int32_t bytes_to_write,
+ scoped_refptr<TrackedCallback> callback,
+ int64_t granted);
+ void OnRequestSetLengthQuotaComplete(int64_t length,
+ scoped_refptr<TrackedCallback> callback,
+ int64_t granted);
+
int32_t ReadValidated(int64_t offset,
int32_t bytes_to_read,
const PP_ArrayOutput& array_output,
scoped_refptr<TrackedCallback> callback);
+ int32_t WriteValidated(int64_t offset,
+ const char* buffer,
+ int32_t bytes_to_write,
+ scoped_refptr<TrackedCallback> callback);
+ void SetLengthValidated(int64_t length,
+ scoped_refptr<TrackedCallback> callback);
// Completion tasks for file operations that are done in the plugin.
int32_t OnQueryComplete(scoped_refptr<QueryOp> query_op,
@@ -151,25 +200,33 @@ class PPAPI_PROXY_EXPORT FileIOResource
int32_t OnReadComplete(scoped_refptr<ReadOp> read_op,
PP_ArrayOutput array_output,
int32_t result);
+ int32_t OnWriteComplete(int32_t result);
// Reply message handlers for operations that are done in the host.
void OnPluginMsgGeneralComplete(scoped_refptr<TrackedCallback> callback,
const ResourceMessageReplyParams& params);
void OnPluginMsgOpenFileComplete(scoped_refptr<TrackedCallback> callback,
- const ResourceMessageReplyParams& params);
+ const ResourceMessageReplyParams& params,
+ PP_Resource quota_file_system,
+ int64_t max_written_offset);
void OnPluginMsgRequestOSFileHandleComplete(
scoped_refptr<TrackedCallback> callback,
PP_FileHandle* output_handle,
const ResourceMessageReplyParams& params);
- scoped_refptr<FileHandleHolder> file_handle_;
+ scoped_refptr<FileHolder> file_holder_;
PP_FileSystemType file_system_type_;
scoped_refptr<Resource> file_system_resource_;
- bool called_close_;
FileIOStateManager state_manager_;
scoped_refptr<Resource> file_ref_;
+ int32_t open_flags_;
+ int64_t max_written_offset_;
+ int64_t append_mode_write_amount_;
+ bool check_quota_;
+ bool called_close_;
+
DISALLOW_COPY_AND_ASSIGN(FileIOResource);
};
diff --git a/chromium/ppapi/proxy/file_mapping_resource.cc b/chromium/ppapi/proxy/file_mapping_resource.cc
new file mode 100644
index 00000000000..c620c06dd29
--- /dev/null
+++ b/chromium/ppapi/proxy/file_mapping_resource.cc
@@ -0,0 +1,160 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/file_mapping_resource.h"
+
+#include "base/bind.h"
+#include "base/numerics/safe_conversions.h"
+#include "base/task_runner_util.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/shared_impl/var.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_file_io_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+FileMappingResource::FileMappingResource(Connection connection,
+ PP_Instance instance)
+ : PluginResource(connection, instance) {
+}
+
+FileMappingResource::~FileMappingResource() {
+}
+
+thunk::PPB_FileMapping_API* FileMappingResource::AsPPB_FileMapping_API() {
+ return this;
+}
+
+int32_t FileMappingResource::Map(PP_Instance /* instance */,
+ PP_Resource file_io,
+ int64_t length,
+ uint32_t protection,
+ uint32_t flags,
+ int64_t offset,
+ void** address,
+ scoped_refptr<TrackedCallback> callback) {
+ thunk::EnterResourceNoLock<thunk::PPB_FileIO_API> enter(file_io, true);
+ if (enter.failed())
+ return PP_ERROR_BADARGUMENT;
+ FileIOResource* file_io_resource =
+ static_cast<FileIOResource*>(enter.object());
+ scoped_refptr<FileIOResource::FileHolder> file_holder =
+ file_io_resource->file_holder();
+ if (!FileIOResource::FileHolder::IsValid(file_holder))
+ return PP_ERROR_FAILED;
+ if (length < 0 || offset < 0 ||
+ !base::IsValueInRangeForNumericType<off_t>(offset)) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ if (!base::IsValueInRangeForNumericType<size_t>(length)) {
+ return PP_ERROR_NOMEMORY;
+ }
+
+ // Ensure any bits we don't recognize are zero.
+ if (protection &
+ ~(PP_FILEMAPPROTECTION_READ | PP_FILEMAPPROTECTION_WRITE)) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ if (flags &
+ ~(PP_FILEMAPFLAG_SHARED | PP_FILEMAPFLAG_PRIVATE |
+ PP_FILEMAPFLAG_FIXED)) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ // Ensure at least one of SHARED and PRIVATE is set.
+ if (!(flags & (PP_FILEMAPFLAG_SHARED | PP_FILEMAPFLAG_PRIVATE)))
+ return PP_ERROR_BADARGUMENT;
+ // Ensure at most one of SHARED and PRIVATE is set.
+ if ((flags & PP_FILEMAPFLAG_SHARED) &&
+ (flags & PP_FILEMAPFLAG_PRIVATE)) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ if (!address)
+ return PP_ERROR_BADARGUMENT;
+
+ base::Callback<MapResult()> map_cb(
+ base::Bind(&FileMappingResource::DoMapBlocking, file_holder, *address,
+ length, protection, flags, offset));
+ if (callback->is_blocking()) {
+ // The plugin could release its reference to this instance when we release
+ // the proxy lock below.
+ scoped_refptr<FileMappingResource> protect(this);
+ MapResult map_result;
+ {
+ // Release the proxy lock while making a potentially slow file call.
+ ProxyAutoUnlock unlock;
+ map_result = map_cb.Run();
+ }
+ OnMapCompleted(address, length, callback, map_result);
+ return map_result.result;
+ } else {
+ base::PostTaskAndReplyWithResult(
+ PpapiGlobals::Get()->GetFileTaskRunner(),
+ FROM_HERE,
+ map_cb,
+ RunWhileLocked(Bind(&FileMappingResource::OnMapCompleted,
+ this,
+ base::Unretained(address),
+ length,
+ callback)));
+ return PP_OK_COMPLETIONPENDING;
+ }
+}
+
+int32_t FileMappingResource::Unmap(PP_Instance /* instance */,
+ const void* address,
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback) {
+ if (!address)
+ return PP_ERROR_BADARGUMENT;
+ if (!base::IsValueInRangeForNumericType<size_t>(length))
+ return PP_ERROR_BADARGUMENT;
+
+ base::Callback<int32_t()> unmap_cb(
+ base::Bind(&FileMappingResource::DoUnmapBlocking, address, length));
+ if (callback->is_blocking()) {
+ // Release the proxy lock while making a potentially slow file call.
+ ProxyAutoUnlock unlock;
+ return unmap_cb.Run();
+ } else {
+ base::PostTaskAndReplyWithResult(
+ PpapiGlobals::Get()->GetFileTaskRunner(),
+ FROM_HERE,
+ unmap_cb,
+ RunWhileLocked(Bind(&TrackedCallback::Run, callback)));
+ return PP_OK_COMPLETIONPENDING;
+ }
+}
+
+int64_t FileMappingResource::GetMapPageSize(PP_Instance /* instance */) {
+ return DoGetMapPageSize();
+}
+
+void FileMappingResource::OnMapCompleted(
+ void** mapped_address_out_param,
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback,
+ const MapResult& map_result) {
+ if (callback->aborted()) {
+ if (map_result.result == PP_OK) {
+ // If the Map operation was successful, we need to Unmap to avoid leaks.
+ // The plugin won't get the address, so doesn't have a chance to do the
+ // Unmap.
+ PpapiGlobals::Get()->GetFileTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(base::IgnoreResult(&FileMappingResource::DoUnmapBlocking),
+ map_result.address,
+ length));
+ }
+ return;
+ }
+ if (map_result.result == PP_OK)
+ *mapped_address_out_param = map_result.address;
+ if (!callback->is_blocking())
+ callback->Run(map_result.result);
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/file_mapping_resource.h b/chromium/ppapi/proxy/file_mapping_resource.h
new file mode 100644
index 00000000000..31c49f9d17b
--- /dev/null
+++ b/chromium/ppapi/proxy/file_mapping_resource.h
@@ -0,0 +1,77 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_FILE_MAPPING_RESOURCE_H_
+#define PPAPI_PROXY_FILE_MAPPING_RESOURCE_H_
+
+#include "ppapi/proxy/file_io_resource.h"
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/thunk/ppb_file_mapping_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+// The proxy-side resource for PPB_FileMapping.
+class PPAPI_PROXY_EXPORT FileMappingResource
+ : public PluginResource,
+ public thunk::PPB_FileMapping_API {
+ public:
+ FileMappingResource(Connection connection, PP_Instance instance);
+
+ private:
+ virtual ~FileMappingResource();
+
+ // Resource implementation.
+ virtual thunk::PPB_FileMapping_API* AsPPB_FileMapping_API() OVERRIDE;
+
+ // PPB_FileMapping_API implementation.
+ virtual int32_t Map(PP_Instance instance,
+ PP_Resource file_io,
+ int64_t length,
+ uint32_t protection,
+ uint32_t flags,
+ int64_t offset,
+ void** address,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t Unmap(PP_Instance instance,
+ const void* address,
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int64_t GetMapPageSize(PP_Instance instance) OVERRIDE;
+
+ struct MapResult {
+ MapResult() : result(PP_ERROR_FAILED), address(NULL) {
+ }
+ int32_t result;
+ void* address;
+ };
+ void OnMapCompleted(void** mapped_address_out_param,
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback,
+ const MapResult& map_result);
+
+ // These functions perform potentially blocking operations so they should not
+ // be called on the main thread or while we hold the proxy lock. Their
+ // implementation is platform specific. See file_mapping_resource_posix.cc and
+ // file_mapping_resource_win.cc.
+ static MapResult DoMapBlocking(
+ scoped_refptr<FileIOResource::FileHolder> file_holder,
+ void* address_hint,
+ int64_t length,
+ uint32_t protection,
+ uint32_t flags,
+ int64_t offset);
+ static int32_t DoUnmapBlocking(const void* address, int64_t length);
+ // DoGetMapPageSize is platform-specific, but fast enough that we can call it
+ // on the main thread with the lock.
+ static int64_t DoGetMapPageSize();
+
+ DISALLOW_COPY_AND_ASSIGN(FileMappingResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_FILE_MAPPING_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/file_mapping_resource_posix.cc b/chromium/ppapi/proxy/file_mapping_resource_posix.cc
new file mode 100644
index 00000000000..24ce546916c
--- /dev/null
+++ b/chromium/ppapi/proxy/file_mapping_resource_posix.cc
@@ -0,0 +1,89 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/file_mapping_resource.h"
+
+#include <stdio.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#include "ppapi/c/pp_errors.h"
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+int32_t ErrnoToPPError(int error_code) {
+ switch (error_code) {
+ case EACCES:
+ return PP_ERROR_NOACCESS;
+ case EAGAIN:
+ return PP_ERROR_NOMEMORY;
+ case EINVAL:
+ return PP_ERROR_BADARGUMENT;
+ case ENFILE:
+ case ENOMEM:
+ return PP_ERROR_NOMEMORY;
+ default:
+ return PP_ERROR_FAILED;
+ }
+}
+
+} // namespace
+
+// static
+FileMappingResource::MapResult FileMappingResource::DoMapBlocking(
+ scoped_refptr<FileIOResource::FileHolder> file_holder,
+ void* address_hint,
+ int64_t length,
+ uint32_t map_protection,
+ uint32_t map_flags,
+ int64_t offset) {
+ int prot_for_mmap = 0;
+ if (map_protection & PP_FILEMAPPROTECTION_READ)
+ prot_for_mmap |= PROT_READ;
+ if (map_protection & PP_FILEMAPPROTECTION_WRITE)
+ prot_for_mmap |= PROT_WRITE;
+ if (prot_for_mmap == 0)
+ prot_for_mmap = PROT_NONE;
+
+ int flags_for_mmap = 0;
+ if (map_flags & PP_FILEMAPFLAG_SHARED)
+ flags_for_mmap |= MAP_SHARED;
+ if (map_flags & PP_FILEMAPFLAG_PRIVATE)
+ flags_for_mmap |= MAP_PRIVATE;
+ if (map_flags & PP_FILEMAPFLAG_FIXED)
+ flags_for_mmap |= MAP_FIXED;
+
+ MapResult map_result;
+ map_result.address =
+ mmap(address_hint,
+ static_cast<size_t>(length),
+ prot_for_mmap,
+ flags_for_mmap,
+ file_holder->file()->GetPlatformFile(),
+ static_cast<off_t>(offset));
+ if (map_result.address != MAP_FAILED)
+ map_result.result = PP_OK;
+ else
+ map_result.result = ErrnoToPPError(errno);
+ return map_result;
+}
+
+// static
+int32_t FileMappingResource::DoUnmapBlocking(const void* address,
+ int64_t length) {
+ if (munmap(const_cast<void*>(address), static_cast<size_t>(length)))
+ return ErrnoToPPError(errno);
+ return PP_OK;
+}
+
+// static
+int64_t FileMappingResource::DoGetMapPageSize() {
+ return getpagesize();
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/file_mapping_resource_win.cc b/chromium/ppapi/proxy/file_mapping_resource_win.cc
new file mode 100644
index 00000000000..c5d9353f3d4
--- /dev/null
+++ b/chromium/ppapi/proxy/file_mapping_resource_win.cc
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/file_mapping_resource.h"
+
+#include "ppapi/c/pp_errors.h"
+
+namespace ppapi {
+namespace proxy {
+
+// static
+FileMappingResource::MapResult FileMappingResource::DoMapBlocking(
+ scoped_refptr<FileIOResource::FileHolder> file_holder,
+ void* address_hint,
+ int64_t length,
+ uint32_t map_protection,
+ uint32_t map_flags,
+ int64_t offset) {
+ // TODO(dmichael): Implement for Windows (crbug.com/83774).
+ MapResult map_result;
+ map_result.result = PP_ERROR_NOTSUPPORTED;
+ return map_result;
+}
+
+// static
+int32_t FileMappingResource::DoUnmapBlocking(const void* address,
+ int64_t length) {
+ // TODO(dmichael): Implement for Windows (crbug.com/83774).
+ return PP_ERROR_NOTSUPPORTED;
+}
+
+// static
+int64_t FileMappingResource::DoGetMapPageSize() {
+ // TODO(dmichael): Implement for Windows (crbug.com/83774).
+ return 0;
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/file_ref_resource.cc b/chromium/ppapi/proxy/file_ref_resource.cc
index 7cd96bc60a0..098ef5f336a 100644
--- a/chromium/ppapi/proxy/file_ref_resource.cc
+++ b/chromium/ppapi/proxy/file_ref_resource.cc
@@ -26,7 +26,7 @@ FileRefResource::FileRefResource(
: PluginResource(connection, instance),
create_info_(create_info),
file_system_resource_(create_info.file_system_plugin_resource) {
- if (create_info_.file_system_type != PP_FILESYSTEMTYPE_EXTERNAL) {
+ if (uses_internal_paths()) {
// If path ends with a slash, then normalize it away unless path is
// the root path.
int path_size = create_info_.internal_path.size();
@@ -36,6 +36,8 @@ FileRefResource::FileRefResource(
path_var_ = new StringVar(create_info_.internal_path);
create_info_.display_name = GetNameForInternalFilePath(
create_info_.internal_path);
+ } else {
+ DCHECK(!create_info_.display_name.empty());
}
name_var_ = new StringVar(create_info_.display_name);
@@ -45,13 +47,13 @@ FileRefResource::FileRefResource(
AttachToPendingHost(RENDERER,
create_info_.renderer_pending_host_resource_id);
} else {
- CHECK(create_info_.browser_pending_host_resource_id == 0);
- CHECK(create_info_.renderer_pending_host_resource_id == 0);
- CHECK(create_info_.file_system_type != PP_FILESYSTEMTYPE_EXTERNAL);
- SendCreate(BROWSER, PpapiHostMsg_FileRef_CreateInternal(
+ CHECK_EQ(0, create_info_.browser_pending_host_resource_id);
+ CHECK_EQ(0, create_info_.renderer_pending_host_resource_id);
+ CHECK(uses_internal_paths());
+ SendCreate(BROWSER, PpapiHostMsg_FileRef_CreateForFileAPI(
create_info.file_system_plugin_resource,
create_info.internal_path));
- SendCreate(RENDERER, PpapiHostMsg_FileRef_CreateInternal(
+ SendCreate(RENDERER, PpapiHostMsg_FileRef_CreateForFileAPI(
create_info.file_system_plugin_resource,
create_info.internal_path));
}
@@ -60,7 +62,7 @@ FileRefResource::FileRefResource(
FileRefResource::~FileRefResource() {
}
-//static
+// static
PP_Resource FileRefResource::CreateFileRef(
Connection connection,
PP_Instance instance,
@@ -101,13 +103,13 @@ PP_Var FileRefResource::GetName() const {
}
PP_Var FileRefResource::GetPath() const {
- if (create_info_.file_system_type == PP_FILESYSTEMTYPE_EXTERNAL)
+ if (!uses_internal_paths())
return PP_MakeUndefined();
return path_var_->GetPPVar();
}
PP_Resource FileRefResource::GetParent() {
- if (create_info_.file_system_type == PP_FILESYSTEMTYPE_EXTERNAL)
+ if (!uses_internal_paths())
return 0;
size_t pos = create_info_.internal_path.rfind('/');
@@ -129,11 +131,11 @@ PP_Resource FileRefResource::GetParent() {
}
int32_t FileRefResource::MakeDirectory(
- PP_Bool make_ancestors,
+ int32_t make_directory_flags,
scoped_refptr<TrackedCallback> callback) {
Call<PpapiPluginMsg_FileRef_MakeDirectoryReply>(
BROWSER,
- PpapiHostMsg_FileRef_MakeDirectory(PP_TRUE == make_ancestors),
+ PpapiHostMsg_FileRef_MakeDirectory(make_directory_flags),
base::Bind(&FileRefResource::RunTrackedCallback, this, callback));
return PP_OK_COMPLETIONPENDING;
}
@@ -256,5 +258,10 @@ void FileRefResource::OnDirectoryEntriesReply(
callback->Run(params.result());
}
+bool FileRefResource::uses_internal_paths() const {
+ return (create_info_.file_system_type != PP_FILESYSTEMTYPE_EXTERNAL) ||
+ !create_info_.internal_path.empty();
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/file_ref_resource.h b/chromium/ppapi/proxy/file_ref_resource.h
index f982438fb0d..0437b23ab94 100644
--- a/chromium/ppapi/proxy/file_ref_resource.h
+++ b/chromium/ppapi/proxy/file_ref_resource.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef PPAPI_PROXY_PPB_FILE_REF_PROXY_H_
-#define PPAPI_PROXY_PPB_FILE_REF_PROXY_H_
+#ifndef PPAPI_PROXY_FILE_REF_RESOURCE_H_
+#define PPAPI_PROXY_FILE_REF_RESOURCE_H_
#include <string>
@@ -42,8 +42,8 @@ class PPAPI_PROXY_EXPORT FileRefResource
virtual PP_Var GetPath() const OVERRIDE;
virtual PP_Resource GetParent() OVERRIDE;
virtual int32_t MakeDirectory(
- PP_Bool make_ancestors,
- scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ int32_t make_directory_flags,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t Touch(PP_Time last_access_time,
PP_Time last_modified_time,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
@@ -80,6 +80,8 @@ class PPAPI_PROXY_EXPORT FileRefResource
const std::vector<ppapi::FileRefCreateInfo>& infos,
const std::vector<PP_FileType>& file_types);
+ bool uses_internal_paths() const;
+
// Populated after creation.
FileRefCreateInfo create_info_;
@@ -98,4 +100,4 @@ class PPAPI_PROXY_EXPORT FileRefResource
} // namespace proxy
} // namespace ppapi
-#endif // PPAPI_PROXY_PPB_FILE_REF_PROXY_H_
+#endif // PPAPI_PROXY_FILE_REF_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/file_system_resource.cc b/chromium/ppapi/proxy/file_system_resource.cc
index df8c3907751..0be0ea52e5e 100644
--- a/chromium/ppapi/proxy/file_system_resource.cc
+++ b/chromium/ppapi/proxy/file_system_resource.cc
@@ -5,16 +5,32 @@
#include "ppapi/proxy/file_system_resource.h"
#include "base/bind.h"
+#include "base/stl_util.h"
#include "ipc/ipc_message.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/shared_impl/file_growth.h"
#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_file_io_api.h"
+using ppapi::thunk::EnterResourceNoLock;
+using ppapi::thunk::PPB_FileIO_API;
using ppapi::thunk::PPB_FileSystem_API;
namespace ppapi {
namespace proxy {
+FileSystemResource::QuotaRequest::QuotaRequest(
+ int64_t amount_arg,
+ const RequestQuotaCallback& callback_arg)
+ : amount(amount_arg),
+ callback(callback_arg) {
+}
+
+FileSystemResource::QuotaRequest::~QuotaRequest() {
+}
+
FileSystemResource::FileSystemResource(Connection connection,
PP_Instance instance,
PP_FileSystemType type)
@@ -22,7 +38,9 @@ FileSystemResource::FileSystemResource(Connection connection,
type_(type),
called_open_(false),
callback_count_(0),
- callback_result_(PP_OK) {
+ callback_result_(PP_OK),
+ reserved_quota_(0),
+ reserving_quota_(false) {
DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID);
SendCreate(RENDERER, PpapiHostMsg_FileSystem_Create(type_));
SendCreate(BROWSER, PpapiHostMsg_FileSystem_Create(type_));
@@ -37,7 +55,9 @@ FileSystemResource::FileSystemResource(Connection connection,
type_(type),
called_open_(true),
callback_count_(0),
- callback_result_(PP_OK) {
+ callback_result_(PP_OK),
+ reserved_quota_(0),
+ reserving_quota_(false) {
DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID);
AttachToPendingHost(RENDERER, pending_renderer_id);
AttachToPendingHost(BROWSER, pending_browser_id);
@@ -74,6 +94,35 @@ PP_FileSystemType FileSystemResource::GetType() {
return type_;
}
+void FileSystemResource::OpenQuotaFile(PP_Resource file_io) {
+ DCHECK(!ContainsKey(files_, file_io));
+ files_.insert(file_io);
+}
+
+void FileSystemResource::CloseQuotaFile(PP_Resource file_io) {
+ DCHECK(ContainsKey(files_, file_io));
+ files_.erase(file_io);
+}
+
+int64_t FileSystemResource::RequestQuota(
+ int64_t amount,
+ const RequestQuotaCallback& callback) {
+ DCHECK(amount >= 0);
+ if (!reserving_quota_ && reserved_quota_ >= amount) {
+ reserved_quota_ -= amount;
+ return amount;
+ }
+
+ // Queue up a pending quota request.
+ pending_quota_requests_.push(QuotaRequest(amount, callback));
+
+ // Reserve more quota if we haven't already.
+ if (!reserving_quota_)
+ ReserveQuota(amount);
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
int32_t FileSystemResource::InitIsolatedFileSystem(
const std::string& fsid,
PP_IsolatedFileSystemType_Private type,
@@ -122,5 +171,71 @@ void FileSystemResource::InitIsolatedFileSystemComplete(
callback.Run(callback_result_);
}
+void FileSystemResource::ReserveQuota(int64_t amount) {
+ DCHECK(!reserving_quota_);
+ reserving_quota_ = true;
+
+ FileGrowthMap file_growths;
+ for (std::set<PP_Resource>::iterator it = files_.begin();
+ it != files_.end(); ++it) {
+ EnterResourceNoLock<PPB_FileIO_API> enter(*it, true);
+ if (enter.failed()) {
+ NOTREACHED();
+ continue;
+ }
+ PPB_FileIO_API* file_io_api = enter.object();
+ file_growths[*it] = FileGrowth(
+ file_io_api->GetMaxWrittenOffset(),
+ file_io_api->GetAppendModeWriteAmount());
+ }
+ Call<PpapiPluginMsg_FileSystem_ReserveQuotaReply>(BROWSER,
+ PpapiHostMsg_FileSystem_ReserveQuota(amount, file_growths),
+ base::Bind(&FileSystemResource::ReserveQuotaComplete,
+ this));
+}
+
+void FileSystemResource::ReserveQuotaComplete(
+ const ResourceMessageReplyParams& params,
+ int64_t amount,
+ const FileSizeMap& file_sizes) {
+ DCHECK(reserving_quota_);
+ reserving_quota_ = false;
+ reserved_quota_ = amount;
+
+ for (FileSizeMap::const_iterator it = file_sizes.begin();
+ it != file_sizes.end(); ++it) {
+ EnterResourceNoLock<PPB_FileIO_API> enter(it->first, true);
+
+ // It is possible that the host has sent an offset for a file that has been
+ // destroyed in the plugin. Ignore it.
+ if (enter.failed())
+ continue;
+ PPB_FileIO_API* file_io_api = enter.object();
+ file_io_api->SetMaxWrittenOffset(it->second);
+ file_io_api->SetAppendModeWriteAmount(0);
+ }
+
+ DCHECK(!pending_quota_requests_.empty());
+ // If we can't grant the first request after refreshing reserved_quota_, then
+ // fail all pending quota requests to avoid an infinite refresh/fail loop.
+ bool fail_all = reserved_quota_ < pending_quota_requests_.front().amount;
+ while (!pending_quota_requests_.empty()) {
+ QuotaRequest& request = pending_quota_requests_.front();
+ if (fail_all) {
+ request.callback.Run(0);
+ pending_quota_requests_.pop();
+ } else if (reserved_quota_ >= request.amount) {
+ reserved_quota_ -= request.amount;
+ request.callback.Run(request.amount);
+ pending_quota_requests_.pop();
+ } else {
+ // Refresh the quota reservation for the first pending request that we
+ // can't satisfy.
+ ReserveQuota(request.amount);
+ break;
+ }
+ }
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/file_system_resource.h b/chromium/ppapi/proxy/file_system_resource.h
index 9029583c819..d54e8afff32 100644
--- a/chromium/ppapi/proxy/file_system_resource.h
+++ b/chromium/ppapi/proxy/file_system_resource.h
@@ -5,10 +5,13 @@
#ifndef PPAPI_PROXY_FILE_SYSTEM_RESOURCE_H_
#define PPAPI_PROXY_FILE_SYSTEM_RESOURCE_H_
+#include <map>
+#include <queue>
#include <string>
#include "base/memory/ref_counted.h"
#include "ppapi/c/pp_file_info.h"
+#include "ppapi/c/pp_resource.h"
#include "ppapi/c/private/ppb_isolated_file_system_private.h"
#include "ppapi/proxy/connection.h"
#include "ppapi/proxy/plugin_resource.h"
@@ -48,11 +51,25 @@ class PPAPI_PROXY_EXPORT FileSystemResource
virtual int32_t Open(int64_t expected_size,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual PP_FileSystemType GetType() OVERRIDE;
+ virtual void OpenQuotaFile(PP_Resource file_io) OVERRIDE;
+ virtual void CloseQuotaFile(PP_Resource file_io) OVERRIDE;
+ typedef base::Callback<void(int64_t)> RequestQuotaCallback;
+ virtual int64_t RequestQuota(int64_t amount,
+ const RequestQuotaCallback& callback) OVERRIDE;
int32_t InitIsolatedFileSystem(const std::string& fsid,
PP_IsolatedFileSystemType_Private type,
const base::Callback<void(int32_t)>& callback);
private:
+ struct QuotaRequest {
+ QuotaRequest(int64_t amount,
+ const RequestQuotaCallback& callback);
+ ~QuotaRequest();
+
+ int64_t amount;
+ RequestQuotaCallback callback;
+ };
+
// Called when the host has responded to our open request.
void OpenComplete(scoped_refptr<TrackedCallback> callback,
const ResourceMessageReplyParams& params);
@@ -62,11 +79,22 @@ class PPAPI_PROXY_EXPORT FileSystemResource
const base::Callback<void(int32_t)>& callback,
const ResourceMessageReplyParams& params);
+ void ReserveQuota(int64_t amount);
+ typedef std::map<int32_t, int64_t> OffsetMap;
+ void ReserveQuotaComplete(const ResourceMessageReplyParams& params,
+ int64_t amount,
+ const OffsetMap& max_written_offsets);
+
PP_FileSystemType type_;
bool called_open_;
uint32_t callback_count_;
int32_t callback_result_;
+ std::set<PP_Resource> files_;
+ std::queue<QuotaRequest> pending_quota_requests_;
+ int64_t reserved_quota_;
+ bool reserving_quota_;
+
DISALLOW_COPY_AND_ASSIGN(FileSystemResource);
};
diff --git a/chromium/ppapi/proxy/file_system_resource_unittest.cc b/chromium/ppapi/proxy/file_system_resource_unittest.cc
new file mode 100644
index 00000000000..9b5d981242d
--- /dev/null
+++ b/chromium/ppapi/proxy/file_system_resource_unittest.cc
@@ -0,0 +1,369 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/message_loop/message_loop.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_file_io.h"
+#include "ppapi/c/ppb_file_ref.h"
+#include "ppapi/c/ppb_file_system.h"
+#include "ppapi/proxy/file_system_resource.h"
+#include "ppapi/proxy/locking_resource_releaser.h"
+#include "ppapi/proxy/plugin_message_filter.h"
+#include "ppapi/proxy/ppapi_message_utils.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppapi_proxy_test.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/shared_impl/scoped_pp_var.h"
+#include "ppapi/shared_impl/var.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_file_system_api.h"
+#include "ppapi/thunk/thunk.h"
+
+using ppapi::proxy::ResourceMessageTestSink;
+using ppapi::thunk::EnterResource;
+using ppapi::thunk::PPB_FileSystem_API;
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+const int64_t kExpectedFileSystemSize = 100;
+const int64_t kQuotaRequestAmount1 = 10;
+const int64_t kQuotaRequestAmount2 = 20;
+
+class MockCompletionCallback {
+ public:
+ MockCompletionCallback() : called_(false) {}
+
+ bool called() { return called_; }
+ int32_t result() { return result_; }
+
+ static void Callback(void* user_data, int32_t result) {
+ MockCompletionCallback* that =
+ reinterpret_cast<MockCompletionCallback*>(user_data);
+ that->called_ = true;
+ that->result_ = result;
+ }
+
+ private:
+ bool called_;
+ int32_t result_;
+};
+
+class MockRequestQuotaCallback {
+ public:
+ MockRequestQuotaCallback() : called_(false) {}
+
+ bool called() { return called_; }
+ int64_t result() { return result_; }
+
+ void Reset() { called_ = false; }
+
+ void Callback(int64_t result) {
+ ASSERT_FALSE(called_);
+ called_ = true;
+ result_ = result;
+ }
+
+ private:
+ bool called_;
+ int64_t result_;
+};
+
+class FileSystemResourceTest : public PluginProxyTest {
+ public:
+ const PPB_FileSystem_1_0* file_system_iface;
+ const PPB_FileRef_1_1* file_ref_iface;
+ const PPB_FileIO_1_1* file_io_iface;
+
+ FileSystemResourceTest()
+ : file_system_iface(thunk::GetPPB_FileSystem_1_0_Thunk()),
+ file_ref_iface(thunk::GetPPB_FileRef_1_1_Thunk()),
+ file_io_iface(thunk::GetPPB_FileIO_1_1_Thunk()) {
+ }
+
+ void SendReply(const ResourceMessageCallParams& params,
+ int32_t result,
+ const IPC::Message& nested_message) {
+ ResourceMessageReplyParams reply_params(params.pp_resource(),
+ params.sequence());
+ reply_params.set_result(result);
+ PluginMessageFilter::DispatchResourceReplyForTest(
+ reply_params, nested_message);
+ }
+
+ void SendOpenReply(const ResourceMessageCallParams& params, int32_t result) {
+ SendReply(params, result, PpapiPluginMsg_FileSystem_OpenReply());
+ }
+
+ // Opens the given file system.
+ void OpenFileSystem(PP_Resource file_system) {
+ MockCompletionCallback cb;
+ int32_t result = file_system_iface->Open(
+ file_system,
+ kExpectedFileSystemSize,
+ PP_MakeCompletionCallback(&MockCompletionCallback::Callback, &cb));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ // Should have sent two new "open" messages to the browser and renderer.
+ ResourceMessageTestSink::ResourceCallVector open_messages =
+ sink().GetAllResourceCallsMatching(PpapiHostMsg_FileSystem_Open::ID);
+ ASSERT_EQ(2U, open_messages.size());
+ sink().ClearMessages();
+
+ // The resource is expecting two replies.
+ SendOpenReply(open_messages[0].first, PP_OK);
+ SendOpenReply(open_messages[1].first, PP_OK);
+
+ ASSERT_TRUE(cb.called());
+ ASSERT_EQ(PP_OK, cb.result());
+ }
+
+ // Opens the given file in the given file system. Since there is no host,
+ // the file handle will be invalid.
+ void OpenFile(PP_Resource file_io,
+ PP_Resource file_ref,
+ PP_Resource file_system) {
+ MockCompletionCallback cb;
+ int32_t result = file_io_iface->Open(
+ file_io,
+ file_ref,
+ PP_FILEOPENFLAG_WRITE,
+ PP_MakeCompletionCallback(&MockCompletionCallback::Callback, &cb));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ // Should have sent an "open" message.
+ ResourceMessageCallParams params;
+ IPC::Message msg;
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileIO_Open::ID, &params, &msg));
+ sink().ClearMessages();
+
+ // Send a success reply.
+ ResourceMessageReplyParams reply_params(params.pp_resource(),
+ params.sequence());
+ reply_params.set_result(PP_OK);
+ PluginMessageFilter::DispatchResourceReplyForTest(
+ reply_params,
+ PpapiPluginMsg_FileIO_OpenReply(file_system,
+ 0 /* max_written_offset */));
+ }
+};
+
+} // namespace
+
+// Test that Open fails if either host returns failure. The other tests exercise
+// the case where both hosts return PP_OK.
+TEST_F(FileSystemResourceTest, OpenFailure) {
+ // Fail if the first reply doesn't return PP_OK.
+ {
+ LockingResourceReleaser file_system(
+ file_system_iface->Create(pp_instance(),
+ PP_FILESYSTEMTYPE_LOCALTEMPORARY));
+
+ MockCompletionCallback cb;
+ int32_t result = file_system_iface->Open(
+ file_system.get(),
+ kExpectedFileSystemSize,
+ PP_MakeCompletionCallback(&MockCompletionCallback::Callback, &cb));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ ResourceMessageTestSink::ResourceCallVector open_messages =
+ sink().GetAllResourceCallsMatching(PpapiHostMsg_FileSystem_Open::ID);
+ ASSERT_EQ(2U, open_messages.size());
+ sink().ClearMessages();
+
+ SendOpenReply(open_messages[0].first, PP_ERROR_FAILED);
+ SendOpenReply(open_messages[1].first, PP_OK);
+
+ ASSERT_TRUE(cb.called());
+ ASSERT_EQ(PP_ERROR_FAILED, cb.result());
+ }
+ // Fail if the second reply doesn't return PP_OK.
+ {
+ LockingResourceReleaser file_system(
+ file_system_iface->Create(pp_instance(),
+ PP_FILESYSTEMTYPE_LOCALTEMPORARY));
+
+ MockCompletionCallback cb;
+ int32_t result = file_system_iface->Open(
+ file_system.get(),
+ kExpectedFileSystemSize,
+ PP_MakeCompletionCallback(&MockCompletionCallback::Callback, &cb));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ ResourceMessageTestSink::ResourceCallVector open_messages =
+ sink().GetAllResourceCallsMatching(PpapiHostMsg_FileSystem_Open::ID);
+ ASSERT_EQ(2U, open_messages.size());
+ sink().ClearMessages();
+
+ SendOpenReply(open_messages[0].first, PP_OK);
+ SendOpenReply(open_messages[1].first, PP_ERROR_FAILED);
+
+ ASSERT_TRUE(cb.called());
+ ASSERT_EQ(PP_ERROR_FAILED, cb.result());
+ }
+}
+
+TEST_F(FileSystemResourceTest, RequestQuota) {
+ LockingResourceReleaser file_system(
+ file_system_iface->Create(pp_instance(),
+ PP_FILESYSTEMTYPE_LOCALTEMPORARY));
+
+ OpenFileSystem(file_system.get());
+
+ // Create and open two files in the file system. FileIOResource calls
+ // FileSystemResource::OpenQuotaFile on success.
+ LockingResourceReleaser file_ref1(
+ file_ref_iface->Create(file_system.get(), "/file1"));
+ LockingResourceReleaser file_io1(file_io_iface->Create(pp_instance()));
+ OpenFile(file_io1.get(), file_ref1.get(), file_system.get());
+ LockingResourceReleaser file_ref2(
+ file_ref_iface->Create(file_system.get(), "/file2"));
+ LockingResourceReleaser file_io2(file_io_iface->Create(pp_instance()));
+ OpenFile(file_io2.get(), file_ref2.get(), file_system.get());
+
+ EnterResource<PPB_FileSystem_API> enter(file_system.get(), true);
+ ASSERT_FALSE(enter.failed());
+ PPB_FileSystem_API* file_system_api = enter.object();
+
+ MockRequestQuotaCallback cb1;
+ int64_t result = file_system_api->RequestQuota(
+ kQuotaRequestAmount1,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb1)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ // Should have sent a "reserve quota" message, with the amount of the request
+ // and a map of all currently open files to their max written offsets.
+ ResourceMessageCallParams params;
+ IPC::Message msg;
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileSystem_ReserveQuota::ID, &params, &msg));
+ sink().ClearMessages();
+
+ int64_t amount = 0;
+ FileGrowthMap file_growths;
+ ASSERT_TRUE(UnpackMessage<PpapiHostMsg_FileSystem_ReserveQuota>(
+ msg, &amount, &file_growths));
+ ASSERT_EQ(kQuotaRequestAmount1, amount);
+ ASSERT_EQ(2U, file_growths.size());
+ ASSERT_EQ(0, file_growths[file_io1.get()].max_written_offset);
+ ASSERT_EQ(0, file_growths[file_io2.get()].max_written_offset);
+
+ // Make another request while the "reserve quota" message is pending.
+ MockRequestQuotaCallback cb2;
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount2,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb2)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+ // No new "reserve quota" message should be sent while one is pending.
+ ASSERT_FALSE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileSystem_ReserveQuota::ID, &params, &msg));
+ {
+ ProxyAutoUnlock unlock_to_prevent_deadlock;
+ // Reply with quota reservation amount sufficient to cover both requests.
+ // Both callbacks should be called with the requests granted.
+ SendReply(params,
+ PP_OK,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaRequestAmount1 + kQuotaRequestAmount2,
+ FileGrowthMapToFileSizeMapForTesting(file_growths)));
+ }
+ ASSERT_TRUE(cb1.called());
+ ASSERT_EQ(kQuotaRequestAmount1, cb1.result());
+ ASSERT_TRUE(cb2.called());
+ ASSERT_EQ(kQuotaRequestAmount2, cb2.result());
+ cb1.Reset();
+ cb2.Reset();
+
+ // All requests should fail when insufficient quota is returned to satisfy
+ // the first request.
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount1,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb1)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount2,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb2)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileSystem_ReserveQuota::ID, &params, &msg));
+ sink().ClearMessages();
+ {
+ ProxyAutoUnlock unlock_to_prevent_deadlock;
+ // Reply with quota reservation amount insufficient to cover the first
+ // request.
+ SendReply(params,
+ PP_OK,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaRequestAmount1 - 1,
+ FileGrowthMapToFileSizeMapForTesting(file_growths)));
+ }
+ ASSERT_TRUE(cb1.called());
+ ASSERT_EQ(0, cb1.result());
+ ASSERT_TRUE(cb2.called());
+ ASSERT_EQ(0, cb2.result());
+ cb1.Reset();
+ cb2.Reset();
+
+ // A new request should be made if the quota reservation is enough to satisfy
+ // at least one request.
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount1,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb1)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount2,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb2)));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileSystem_ReserveQuota::ID, &params, &msg));
+ sink().ClearMessages();
+ {
+ ProxyAutoUnlock unlock_to_prevent_deadlock;
+ // Reply with quota reservation amount sufficient only to cover the first
+ // request.
+ SendReply(params,
+ PP_OK,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaRequestAmount1,
+ FileGrowthMapToFileSizeMapForTesting(file_growths)));
+ }
+ ASSERT_TRUE(cb1.called());
+ ASSERT_EQ(kQuotaRequestAmount1, cb1.result());
+ ASSERT_FALSE(cb2.called());
+
+ // Another request message should have been sent.
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_FileSystem_ReserveQuota::ID, &params, &msg));
+ sink().ClearMessages();
+ {
+ ProxyAutoUnlock unlock_to_prevent_deadlock;
+ // Reply with quota reservation amount sufficient to cover the second
+ // request and some extra.
+ SendReply(params,
+ PP_OK,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaRequestAmount1 + kQuotaRequestAmount2,
+ FileGrowthMapToFileSizeMapForTesting(file_growths)));
+ }
+
+ ASSERT_TRUE(cb2.called());
+ ASSERT_EQ(kQuotaRequestAmount2, cb2.result());
+ cb1.Reset();
+ cb2.Reset();
+
+ // There is kQuotaRequestAmount1 of quota left, and a request for it should
+ // succeed immediately.
+ result = file_system_api->RequestQuota(
+ kQuotaRequestAmount1,
+ base::Bind(&MockRequestQuotaCallback::Callback, base::Unretained(&cb1)));
+ ASSERT_EQ(kQuotaRequestAmount1, result);
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/flash_clipboard_resource.cc b/chromium/ppapi/proxy/flash_clipboard_resource.cc
index 5f064023f35..2b665bfa059 100644
--- a/chromium/ppapi/proxy/flash_clipboard_resource.cc
+++ b/chromium/ppapi/proxy/flash_clipboard_resource.cc
@@ -152,5 +152,17 @@ int32_t FlashClipboardResource::WriteData(
return PP_OK;
}
+PP_Bool FlashClipboardResource::GetSequenceNumber(
+ PP_Instance instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number) {
+ int32_t result =
+ SyncCall<PpapiPluginMsg_FlashClipboard_GetSequenceNumberReply>(
+ BROWSER,
+ PpapiHostMsg_FlashClipboard_GetSequenceNumber(clipboard_type),
+ sequence_number);
+ return PP_FromBool(result == PP_OK);
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/flash_clipboard_resource.h b/chromium/ppapi/proxy/flash_clipboard_resource.h
index fdb7e79a48e..3c12f550062 100644
--- a/chromium/ppapi/proxy/flash_clipboard_resource.h
+++ b/chromium/ppapi/proxy/flash_clipboard_resource.h
@@ -37,6 +37,10 @@ class FlashClipboardResource
uint32_t data_item_count,
const uint32_t formats[],
const PP_Var data_items[]) OVERRIDE;
+ virtual PP_Bool GetSequenceNumber(
+ PP_Instance instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number) OVERRIDE;
private:
FlashClipboardFormatRegistry clipboard_formats_;
diff --git a/chromium/ppapi/proxy/flash_file_resource.cc b/chromium/ppapi/proxy/flash_file_resource.cc
index ce7a2cee110..6b8fc6cc796 100644
--- a/chromium/ppapi/proxy/flash_file_resource.cc
+++ b/chromium/ppapi/proxy/flash_file_resource.cc
@@ -206,7 +206,7 @@ int32_t FlashFileResource::QueryFileHelper(const std::string& path,
if (path.empty() || !info)
return PP_ERROR_BADARGUMENT;
- base::PlatformFileInfo file_info;
+ base::File::Info file_info;
PepperFilePath pepper_path(domain_type, base::FilePath::FromUTF8Unsafe(path));
int32_t error = SyncCall<PpapiPluginMsg_FlashFile_QueryFileReply>(BROWSER,
diff --git a/chromium/ppapi/proxy/graphics_2d_resource.cc b/chromium/ppapi/proxy/graphics_2d_resource.cc
index f545364f1e7..ea8a9c52ce4 100644
--- a/chromium/ppapi/proxy/graphics_2d_resource.cc
+++ b/chromium/ppapi/proxy/graphics_2d_resource.cc
@@ -103,7 +103,7 @@ void Graphics2DResource::ReplaceContents(PP_Resource image_data) {
PP_Bool Graphics2DResource::SetScale(float scale) {
if (scale <= 0.0f)
return PP_FALSE;
- Post(RENDERER, PpapiHostMsg_Graphics2D_Dev_SetScale(scale));
+ Post(RENDERER, PpapiHostMsg_Graphics2D_SetScale(scale));
scale_ = scale;
return PP_TRUE;
}
@@ -112,15 +112,6 @@ float Graphics2DResource::GetScale() {
return scale_;
}
-void Graphics2DResource::SetOffset(const PP_Point* offset) {
- Post(RENDERER, PpapiHostMsg_Graphics2D_SetOffset(*offset));
-}
-
-void Graphics2DResource::SetResizeMode(
- PP_Graphics2D_Dev_ResizeMode resize_mode) {
- Post(RENDERER, PpapiHostMsg_Graphics2D_SetResizeMode(resize_mode));
-}
-
int32_t Graphics2DResource::Flush(scoped_refptr<TrackedCallback> callback) {
// If host is not even created, return failure immediately. This can happen
// when failed to initialize (in constructor).
@@ -131,20 +122,12 @@ int32_t Graphics2DResource::Flush(scoped_refptr<TrackedCallback> callback) {
return PP_ERROR_INPROGRESS; // Can't have >1 flush pending.
current_flush_callback_ = callback;
- // Send the current view data with the Flush() message. This allows the
- // renderer to know what the plugin's view of the renderer is at the time
- // Flush was called.
- PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(
- pp_instance());
- ppapi::ViewData view_data;
- if (dispatcher) {
- InstanceData* data = dispatcher->GetInstanceData(pp_instance());
- if (data)
- view_data = data->view;
- }
+ std::vector<ui::LatencyInfo> latency_info;
+ PpapiGlobals::Get()->TransferLatencyInfoTo(&latency_info, pp_instance());
+
Call<PpapiPluginMsg_Graphics2D_FlushAck>(
RENDERER,
- PpapiHostMsg_Graphics2D_Flush(view_data),
+ PpapiHostMsg_Graphics2D_Flush(latency_info),
base::Bind(&Graphics2DResource::OnPluginMsgFlushACK, this));
return PP_OK_COMPLETIONPENDING;
}
diff --git a/chromium/ppapi/proxy/graphics_2d_resource.h b/chromium/ppapi/proxy/graphics_2d_resource.h
index 93d182b65a5..b7ec30c710d 100644
--- a/chromium/ppapi/proxy/graphics_2d_resource.h
+++ b/chromium/ppapi/proxy/graphics_2d_resource.h
@@ -40,8 +40,6 @@ class PPAPI_PROXY_EXPORT Graphics2DResource
virtual void ReplaceContents(PP_Resource image_data) OVERRIDE;
virtual PP_Bool SetScale(float scale) OVERRIDE;
virtual float GetScale() OVERRIDE;
- virtual void SetOffset(const PP_Point* offset) OVERRIDE;
- virtual void SetResizeMode(PP_Graphics2D_Dev_ResizeMode resize_mode) OVERRIDE;
virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual bool ReadImageData(PP_Resource image,
const PP_Point* top_left) OVERRIDE;
diff --git a/chromium/ppapi/proxy/host_dispatcher.cc b/chromium/ppapi/proxy/host_dispatcher.cc
index cea7ab31f08..8f3833f5ddf 100644
--- a/chromium/ppapi/proxy/host_dispatcher.cc
+++ b/chromium/ppapi/proxy/host_dispatcher.cc
@@ -240,6 +240,10 @@ const void* HostDispatcher::GetProxiedInterface(const std::string& iface_name) {
return NULL;
}
+void HostDispatcher::AddFilter(IPC::Listener* listener) {
+ filters_.push_back(listener);
+}
+
void HostDispatcher::OnInvalidMessageReceived() {
// TODO(brettw) bug 95345 kill the plugin when an invalid message is
// received.
diff --git a/chromium/ppapi/proxy/host_dispatcher.h b/chromium/ppapi/proxy/host_dispatcher.h
index ebd6ef96587..c1ba15feb11 100644
--- a/chromium/ppapi/proxy/host_dispatcher.h
+++ b/chromium/ppapi/proxy/host_dispatcher.h
@@ -12,7 +12,7 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
#include "base/process/process.h"
-#include "ipc/ipc_channel_proxy.h"
+#include "ipc/message_filter.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/proxy/dispatcher.h"
@@ -31,7 +31,7 @@ class PPAPI_PROXY_EXPORT HostDispatcher : public Dispatcher {
//
// Note that there can be nested sync messages, so the begin/end status
// actually represents a stack of blocking messages.
- class SyncMessageStatusReceiver : public IPC::ChannelProxy::MessageFilter {
+ class SyncMessageStatusReceiver : public IPC::MessageFilter {
public:
// Notification that a sync message is about to be sent out.
virtual void BeginBlockOnSyncMessage() = 0;
@@ -102,6 +102,8 @@ class PPAPI_PROXY_EXPORT HostDispatcher : public Dispatcher {
// Returns the proxy interface for talking to the implementation.
const PPB_Proxy_Private* ppb_proxy() const { return ppb_proxy_; }
+ void AddFilter(IPC::Listener* listener);
+
protected:
// Overridden from Dispatcher.
virtual void OnInvalidMessageReceived();
@@ -131,6 +133,8 @@ class PPAPI_PROXY_EXPORT HostDispatcher : public Dispatcher {
// ultimately call back into the plugin.
bool allow_plugin_reentrancy_;
+ std::vector<IPC::Listener*> filters_;
+
DISALLOW_COPY_AND_ASSIGN(HostDispatcher);
};
diff --git a/chromium/ppapi/proxy/interface_list.cc b/chromium/ppapi/proxy/interface_list.cc
index 8b05f7ace99..7e5125d9e17 100644
--- a/chromium/ppapi/proxy/interface_list.cc
+++ b/chromium/ppapi/proxy/interface_list.cc
@@ -4,9 +4,9 @@
#include "ppapi/proxy/interface_list.h"
+#include "base/hash.h"
#include "base/lazy_instance.h"
#include "base/memory/singleton.h"
-#include "ppapi/c/dev/ppb_alarms_dev.h"
#include "ppapi/c/dev/ppb_audio_input_dev.h"
#include "ppapi/c/dev/ppb_buffer_dev.h"
#include "ppapi/c/dev/ppb_char_set_dev.h"
@@ -15,27 +15,29 @@
#include "ppapi/c/dev/ppb_device_ref_dev.h"
#include "ppapi/c/dev/ppb_font_dev.h"
#include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h"
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/dev/ppb_keyboard_input_event_dev.h"
#include "ppapi/c/dev/ppb_memory_dev.h"
#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/c/dev/ppb_resource_array_dev.h"
+#include "ppapi/c/dev/ppb_scrollbar_dev.h"
#include "ppapi/c/dev/ppb_text_input_dev.h"
#include "ppapi/c/dev/ppb_trace_event_dev.h"
#include "ppapi/c/dev/ppb_truetype_font_dev.h"
#include "ppapi/c/dev/ppb_url_util_dev.h"
#include "ppapi/c/dev/ppb_var_deprecated.h"
-#include "ppapi/c/dev/ppb_var_resource_dev.h"
#include "ppapi/c/dev/ppb_video_capture_dev.h"
#include "ppapi/c/dev/ppb_view_dev.h"
-#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
-#include "ppapi/c/ppb_audio_config.h"
+#include "ppapi/c/dev/ppb_widget_dev.h"
+#include "ppapi/c/dev/ppb_zoom_dev.h"
#include "ppapi/c/ppb_audio.h"
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/c/ppb_audio_config.h"
+#include "ppapi/c/ppb_compositor.h"
+#include "ppapi/c/ppb_compositor_layer.h"
#include "ppapi/c/ppb_console.h"
#include "ppapi/c/ppb_core.h"
#include "ppapi/c/ppb_file_io.h"
+#include "ppapi/c/ppb_file_mapping.h"
#include "ppapi/c/ppb_file_ref.h"
#include "ppapi/c/ppb_file_system.h"
#include "ppapi/c/ppb_fullscreen.h"
@@ -44,6 +46,8 @@
#include "ppapi/c/ppb_image_data.h"
#include "ppapi/c/ppb_input_event.h"
#include "ppapi/c/ppb_instance.h"
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+#include "ppapi/c/ppb_media_stream_video_track.h"
#include "ppapi/c/ppb_message_loop.h"
#include "ppapi/c/ppb_messaging.h"
#include "ppapi/c/ppb_mouse_lock.h"
@@ -62,6 +66,8 @@
#include "ppapi/c/ppb_var_array.h"
#include "ppapi/c/ppb_var_array_buffer.h"
#include "ppapi/c/ppb_var_dictionary.h"
+#include "ppapi/c/ppb_video_decoder.h"
+#include "ppapi/c/ppb_video_frame.h"
#include "ppapi/c/ppb_view.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppp_instance.h"
@@ -69,6 +75,7 @@
#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
#include "ppapi/c/private/ppb_file_io_private.h"
#include "ppapi/c/private/ppb_file_ref_private.h"
+#include "ppapi/c/private/ppb_find_private.h"
#include "ppapi/c/private/ppb_flash_clipboard.h"
#include "ppapi/c/private/ppb_flash_file.h"
#include "ppapi/c/private/ppb_flash_font_file.h"
@@ -80,6 +87,7 @@
#include "ppapi/c/private/ppb_flash_message_loop.h"
#include "ppapi/c/private/ppb_flash_print.h"
#include "ppapi/c/private/ppb_host_resolver_private.h"
+#include "ppapi/c/private/ppb_input_event_private.h"
#include "ppapi/c/private/ppb_isolated_file_system_private.h"
#include "ppapi/c/private/ppb_net_address_private.h"
#include "ppapi/c/private/ppb_output_protection_private.h"
@@ -90,6 +98,7 @@
#include "ppapi/c/private/ppb_tcp_socket_private.h"
#include "ppapi/c/private/ppb_testing_private.h"
#include "ppapi/c/private/ppb_udp_socket_private.h"
+#include "ppapi/c/private/ppb_uma_private.h"
#include "ppapi/c/private/ppb_video_destination_private.h"
#include "ppapi/c/private/ppb_video_source_private.h"
#include "ppapi/c/private/ppb_x509_certificate_private.h"
@@ -100,6 +109,8 @@
#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
#include "ppapi/proxy/interface_proxy.h"
+#include "ppapi/proxy/plugin_globals.h"
+#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/ppb_audio_proxy.h"
#include "ppapi/proxy/ppb_broker_proxy.h"
#include "ppapi/proxy/ppb_buffer_proxy.h"
@@ -115,12 +126,14 @@
#include "ppapi/proxy/ppb_x509_certificate_private_proxy.h"
#include "ppapi/proxy/ppp_class_proxy.h"
#include "ppapi/proxy/ppp_content_decryptor_private_proxy.h"
+#include "ppapi/proxy/ppp_find_proxy.h"
#include "ppapi/proxy/ppp_graphics_3d_proxy.h"
#include "ppapi/proxy/ppp_input_event_proxy.h"
#include "ppapi/proxy/ppp_instance_private_proxy.h"
#include "ppapi/proxy/ppp_instance_proxy.h"
#include "ppapi/proxy/ppp_messaging_proxy.h"
#include "ppapi/proxy/ppp_mouse_lock_proxy.h"
+#include "ppapi/proxy/ppp_pdf_proxy.h"
#include "ppapi/proxy/ppp_printing_proxy.h"
#include "ppapi/proxy/ppp_text_input_proxy.h"
#include "ppapi/proxy/ppp_video_decoder_proxy.h"
@@ -148,24 +161,12 @@ namespace proxy {
namespace {
-// The interface list has interfaces with no ID listed as "NoAPIName" which
-// means there's no corresponding _Proxy object. Our macros expand this to
-// NoAPIName_Proxy, and then they look for kApiID inside it.
-//
-// This dummy class provides the correct definition for that interface ID,
-// which is "NONE".
-class NoAPIName_Proxy {
- public:
- static const ApiID kApiID = API_ID_NONE;
-};
-
template<typename ProxyClass>
InterfaceProxy* ProxyFactory(Dispatcher* dispatcher) {
return new ProxyClass(dispatcher);
}
base::LazyInstance<PpapiPermissions> g_process_global_permissions;
-base::LazyInstance<bool> g_supports_dev_channel;
} // namespace
@@ -180,8 +181,8 @@ InterfaceList::InterfaceList() {
// Register each proxied interface by calling AddPPB for each supported
// interface. Set current_required_permission to the appropriate value for
// the value you want expanded by this macro.
- #define PROXIED_IFACE(api_name, iface_str, iface_struct) \
- AddPPB(iface_str, PROXY_API_ID(api_name), \
+ #define PROXIED_IFACE(iface_str, iface_struct) \
+ AddPPB(iface_str, \
INTERFACE_THUNK_NAME(iface_struct)(), \
current_required_permission);
@@ -204,8 +205,10 @@ InterfaceList::InterfaceList() {
#include "ppapi/thunk/interfaces_ppb_private_flash.h"
#endif // !defined(OS_NACL)
}
-
- // TODO(teravest): Add dev channel interfaces here.
+ {
+ Permission current_required_permission = PERMISSION_DEV_CHANNEL;
+ #include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
+ }
#undef PROXIED_API
#undef PROXIED_IFACE
@@ -216,34 +219,39 @@ InterfaceList::InterfaceList() {
// proxy and the impl and there's no obvious message routing.
AddProxy(API_ID_RESOURCE_CREATION, &ResourceCreationProxy::Create);
AddProxy(API_ID_PPP_CLASS, &PPP_Class_Proxy::Create);
- AddPPB(PPB_CORE_INTERFACE_1_0, API_ID_PPB_CORE,
+ AddPPB(PPB_CORE_INTERFACE_1_0,
PPB_Core_Proxy::GetPPB_Core_Interface(), PERMISSION_NONE);
- AddPPB(PPB_MESSAGELOOP_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_MESSAGELOOP_INTERFACE_1_0,
PPB_MessageLoop_Proxy::GetInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetInstancedArraysInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetFramebufferBlitInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface(),
PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface(),
PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
- AddPPB(PPB_OPENGLES2_QUERY_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_QUERY_INTERFACE_1_0,
PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE);
- AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0,
+ PPB_OpenGLES2_Shared::GetDrawBuffersInterface(),
+ PERMISSION_DEV);
+ AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
PPB_Var_Shared::GetVarArrayBufferInterface1_0(),
PERMISSION_NONE);
- AddPPB(PPB_VAR_INTERFACE_1_1, API_ID_NONE,
+ AddPPB(PPB_VAR_INTERFACE_1_2,
+ PPB_Var_Shared::GetVarInterface1_2(), PERMISSION_NONE);
+ AddPPB(PPB_VAR_INTERFACE_1_1,
PPB_Var_Shared::GetVarInterface1_1(), PERMISSION_NONE);
- AddPPB(PPB_VAR_INTERFACE_1_0, API_ID_NONE,
+ AddPPB(PPB_VAR_INTERFACE_1_0,
PPB_Var_Shared::GetVarInterface1_0(), PERMISSION_NONE);
#if !defined(OS_NACL)
@@ -251,12 +259,12 @@ InterfaceList::InterfaceList() {
// Do not add more stuff here, they should be added to interface_list*.h
// TODO(brettw) remove these.
AddProxy(API_ID_PPB_INSTANCE_PRIVATE, &ProxyFactory<PPB_Instance_Proxy>);
- AddPPB(PPB_INSTANCE_PRIVATE_INTERFACE_0_1, API_ID_PPB_INSTANCE_PRIVATE,
+ AddPPB(PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
thunk::GetPPB_Instance_Private_0_1_Thunk(),
PERMISSION_PRIVATE);
AddProxy(API_ID_PPB_VAR_DEPRECATED, &ProxyFactory<PPB_Var_Deprecated_Proxy>);
- AddPPB(PPB_VAR_DEPRECATED_INTERFACE, API_ID_PPB_VAR_DEPRECATED,
+ AddPPB(PPB_VAR_DEPRECATED_INTERFACE,
PPB_Var_Deprecated_Proxy::GetProxyInterface(), PERMISSION_DEV);
// TODO(tomfinegan): Figure out where to put these once we refactor things
@@ -264,37 +272,42 @@ InterfaceList::InterfaceList() {
AddProxy(API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
&ProxyFactory<PPP_ContentDecryptor_Private_Proxy>);
AddPPP(PPP_CONTENTDECRYPTOR_PRIVATE_INTERFACE,
- API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
PPP_ContentDecryptor_Private_Proxy::GetProxyInterface());
#endif
AddProxy(API_ID_PPB_TESTING, &ProxyFactory<PPB_Testing_Proxy>);
- AddPPB(PPB_TESTING_PRIVATE_INTERFACE, API_ID_PPB_TESTING,
+ AddPPB(PPB_TESTING_PRIVATE_INTERFACE,
PPB_Testing_Proxy::GetProxyInterface(), PERMISSION_TESTING);
// PPP (plugin) interfaces.
// TODO(brettw) move these to interface_list*.h
+ AddProxy(API_ID_PPP_GRAPHICS_3D, &ProxyFactory<PPP_Graphics3D_Proxy>);
+ AddPPP(PPP_GRAPHICS_3D_INTERFACE, PPP_Graphics3D_Proxy::GetProxyInterface());
+ AddProxy(API_ID_PPP_INPUT_EVENT, &ProxyFactory<PPP_InputEvent_Proxy>);
+ AddPPP(PPP_INPUT_EVENT_INTERFACE, PPP_InputEvent_Proxy::GetProxyInterface());
AddProxy(API_ID_PPP_INSTANCE, &ProxyFactory<PPP_Instance_Proxy>);
- #if !defined(OS_NACL)
- AddPPP(PPP_INSTANCE_INTERFACE_1_1, API_ID_PPP_INSTANCE,
+#if !defined(OS_NACL)
+ AddPPP(PPP_INSTANCE_INTERFACE_1_1,
PPP_Instance_Proxy::GetInstanceInterface());
- #endif
+ AddProxy(API_ID_PPP_INSTANCE_PRIVATE,
+ &ProxyFactory<PPP_Instance_Private_Proxy>);
+ AddPPP(PPP_INSTANCE_PRIVATE_INTERFACE,
+ PPP_Instance_Private_Proxy::GetProxyInterface());
+#endif
+ AddProxy(API_ID_PPP_MESSAGING, &ProxyFactory<PPP_Messaging_Proxy>);
+ AddProxy(API_ID_PPP_MOUSE_LOCK, &ProxyFactory<PPP_MouseLock_Proxy>);
+ AddPPP(PPP_MOUSELOCK_INTERFACE, PPP_MouseLock_Proxy::GetProxyInterface());
AddProxy(API_ID_PPP_PRINTING, &ProxyFactory<PPP_Printing_Proxy>);
- AddPPP(PPP_PRINTING_DEV_INTERFACE, API_ID_PPP_PRINTING,
- PPP_Printing_Proxy::GetProxyInterface());
+ AddPPP(PPP_PRINTING_DEV_INTERFACE, PPP_Printing_Proxy::GetProxyInterface());
AddProxy(API_ID_PPP_TEXT_INPUT, &ProxyFactory<PPP_TextInput_Proxy>);
- AddPPP(PPP_TEXTINPUT_DEV_INTERFACE, API_ID_PPP_TEXT_INPUT,
- PPP_TextInput_Proxy::GetProxyInterface());
-
- // Old-style GetInfo PPP interfaces.
- // Do not add more stuff here, they should be added to interface_list*.h
- // TODO(brettw) remove these.
- AddPPP(PPP_InputEvent_Proxy::GetInfo());
- AddPPP(PPP_Messaging_Proxy::GetInfo());
- AddPPP(PPP_MouseLock_Proxy::GetInfo());
- AddPPP(PPP_Graphics3D_Proxy::GetInfo());
+ AddPPP(PPP_TEXTINPUT_DEV_INTERFACE, PPP_TextInput_Proxy::GetProxyInterface());
#if !defined(OS_NACL)
- AddPPP(PPP_Instance_Private_Proxy::GetInfo());
- AddPPP(PPP_VideoDecoder_Proxy::GetInfo());
+ AddProxy(API_ID_PPP_PDF, &ProxyFactory<PPP_Pdf_Proxy>);
+ AddPPP(PPP_PDF_INTERFACE, PPP_Pdf_Proxy::GetProxyInterface());
+ AddProxy(API_ID_PPP_FIND_PRIVATE, &ProxyFactory<PPP_Find_Proxy>);
+ AddPPP(PPP_FIND_PRIVATE_INTERFACE, PPP_Find_Proxy::GetProxyInterface());
+ AddProxy(API_ID_PPP_VIDEO_DECODER_DEV, &ProxyFactory<PPP_VideoDecoder_Proxy>);
+ AddPPP(PPP_VIDEODECODER_DEV_INTERFACE,
+ PPP_VideoDecoder_Proxy::GetProxyInterface());
#endif
}
@@ -312,28 +325,6 @@ void InterfaceList::SetProcessGlobalPermissions(
g_process_global_permissions.Get() = permissions;
}
-// static
-void InterfaceList::SetSupportsDevChannel(
- bool supports_dev_channel) {
- g_supports_dev_channel.Get() = supports_dev_channel;
-}
-
-ApiID InterfaceList::GetIDForPPBInterface(const std::string& name) const {
- NameToInterfaceInfoMap::const_iterator found =
- name_to_browser_info_.find(name);
- if (found == name_to_browser_info_.end())
- return API_ID_NONE;
- return found->second.id;
-}
-
-ApiID InterfaceList::GetIDForPPPInterface(const std::string& name) const {
- NameToInterfaceInfoMap::const_iterator found =
- name_to_plugin_info_.find(name);
- if (found == name_to_plugin_info_.end())
- return API_ID_NONE;
- return found->second.id;
-}
-
InterfaceProxy::Factory InterfaceList::GetFactoryForID(ApiID id) const {
int index = static_cast<int>(id);
COMPILE_ASSERT(API_ID_NONE == 0, none_must_be_zero);
@@ -342,17 +333,22 @@ InterfaceProxy::Factory InterfaceList::GetFactoryForID(ApiID id) const {
return id_to_factory_[index];
}
-const void* InterfaceList::GetInterfaceForPPB(const std::string& name) const {
- NameToInterfaceInfoMap::const_iterator found =
+const void* InterfaceList::GetInterfaceForPPB(const std::string& name) {
+ NameToInterfaceInfoMap::iterator found =
name_to_browser_info_.find(name);
if (found == name_to_browser_info_.end())
return NULL;
- // Dev channel checking goes here.
-
if (g_process_global_permissions.Get().HasPermission(
- found->second.required_permission))
+ found->second.required_permission)) {
+ // Only log interface use once per plugin.
+ if (!found->second.interface_logged) {
+ PluginGlobals::Get()->GetBrowserSender()->Send(
+ new PpapiHostMsg_LogInterfaceUsage(HashInterfaceName(name)));
+ found->second.interface_logged = true;
+ }
return found->second.iface;
+ }
return NULL;
}
@@ -381,23 +377,24 @@ void InterfaceList::AddProxy(ApiID id,
}
void InterfaceList::AddPPB(const char* name,
- ApiID id,
const void* iface,
Permission perm) {
DCHECK(name_to_browser_info_.find(name) == name_to_browser_info_.end());
- name_to_browser_info_[name] = InterfaceInfo(id, iface, perm);
+ name_to_browser_info_[name] = InterfaceInfo(iface, perm);
}
void InterfaceList::AddPPP(const char* name,
- ApiID id,
const void* iface) {
DCHECK(name_to_plugin_info_.find(name) == name_to_plugin_info_.end());
- name_to_plugin_info_[name] = InterfaceInfo(id, iface, PERMISSION_NONE);
+ name_to_plugin_info_[name] = InterfaceInfo(iface, PERMISSION_NONE);
}
-void InterfaceList::AddPPP(const InterfaceProxy::Info* info) {
- AddProxy(info->id, info->create_proxy);
- AddPPP(info->name, info->id, info->interface_ptr);
+// static
+int InterfaceList::HashInterfaceName(const std::string& name) {
+ uint32 data = base::Hash(name.c_str(), name.size());
+ // Strip off the signed bit because UMA doesn't support negative values,
+ // but takes a signed int as input.
+ return static_cast<int>(data & 0x7fffffff);
}
} // namespace proxy
diff --git a/chromium/ppapi/proxy/interface_list.h b/chromium/ppapi/proxy/interface_list.h
index 78064170d1c..a2b4569c8f1 100644
--- a/chromium/ppapi/proxy/interface_list.h
+++ b/chromium/ppapi/proxy/interface_list.h
@@ -16,7 +16,7 @@
namespace ppapi {
namespace proxy {
-class InterfaceList {
+class PPAPI_PROXY_EXPORT InterfaceList {
public:
InterfaceList();
~InterfaceList();
@@ -33,15 +33,7 @@ class InterfaceList {
// plugin process. A real security check is required for all IPC messages.
// This check just allows us to return NULL for interfaces you "shouldn't" be
// using to keep honest plugins honest.
- static PPAPI_PROXY_EXPORT void SetProcessGlobalPermissions(
- const PpapiPermissions& permissions);
- static PPAPI_PROXY_EXPORT void SetSupportsDevChannel(
- bool supports_dev_channel);
-
- // Looks up the ID for the given interface name. Returns API_ID_NONE if
- // the interface string is not found.
- ApiID GetIDForPPBInterface(const std::string& name) const;
- ApiID GetIDForPPPInterface(const std::string& name) const;
+ static void SetProcessGlobalPermissions(const PpapiPermissions& permissions);
// Looks up the factory function for the given ID. Returns NULL if not
// supported.
@@ -49,29 +41,33 @@ class InterfaceList {
// Returns the interface pointer for the given browser or plugin interface,
// or NULL if it's not supported.
- const void* GetInterfaceForPPB(const std::string& name) const;
+ const void* GetInterfaceForPPB(const std::string& name);
const void* GetInterfaceForPPP(const std::string& name) const;
private:
+ friend class InterfaceListTest;
+
struct InterfaceInfo {
InterfaceInfo()
- : id(API_ID_NONE),
- iface(NULL),
- required_permission(PERMISSION_NONE) {
+ : iface(NULL),
+ required_permission(PERMISSION_NONE),
+ interface_logged(false) {
}
- InterfaceInfo(ApiID in_id, const void* in_interface, Permission in_perm)
- : id(in_id),
- iface(in_interface),
- required_permission(in_perm) {
+ InterfaceInfo(const void* in_interface, Permission in_perm)
+ : iface(in_interface),
+ required_permission(in_perm),
+ interface_logged(false) {
}
- ApiID id;
const void* iface;
// Permission required to return non-null for this interface. This will
// be checked with the value set via SetProcessGlobalPermissionBits when
// an interface is requested.
Permission required_permission;
+
+ // Interface usage is logged just once per-interface-per-plugin-process.
+ bool interface_logged;
};
typedef std::map<std::string, InterfaceInfo> NameToInterfaceInfoMap;
@@ -81,13 +77,11 @@ class InterfaceList {
// Permissions is the type of permission required to access the corresponding
// interface. Currently this must be just one unique permission (rather than
// a bitfield).
- void AddPPB(const char* name, ApiID id, const void* iface,
- Permission permission);
- void AddPPP(const char* name, ApiID id, const void* iface);
+ void AddPPB(const char* name, const void* iface, Permission permission);
+ void AddPPP(const char* name, const void* iface);
- // Old-style add functions. These should be removed when the rest of the
- // proxies are converted over to using the new system.
- void AddPPP(const InterfaceProxy::Info* info);
+ // Hash the interface name for UMA logging.
+ static int HashInterfaceName(const std::string& name);
PpapiPermissions permissions_;
diff --git a/chromium/ppapi/proxy/interface_list_unittest.cc b/chromium/ppapi/proxy/interface_list_unittest.cc
new file mode 100644
index 00000000000..902a0a18a4a
--- /dev/null
+++ b/chromium/ppapi/proxy/interface_list_unittest.cc
@@ -0,0 +1,80 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/hash.h"
+#include "ppapi/c/ppb_core.h"
+#include "ppapi/proxy/interface_list.h"
+#include "ppapi/proxy/ppapi_proxy_test.h"
+
+namespace ppapi {
+namespace proxy {
+
+class InterfaceListTest : public PluginProxyTest {
+ public:
+ // Wrapper function so we can use the private InterfaceList::AddPPB.
+ void AddPPB(InterfaceList* list,
+ const char* iface_name, void* iface_addr, Permission perm) {
+ list->AddPPB(iface_name, iface_addr, perm);
+ }
+
+ // Wrapper function so we can use the private
+ // InterfaceList::HashInterfaceName.
+ int HashInterfaceName(const std::string& name) {
+ return InterfaceList::HashInterfaceName(name);
+ }
+};
+
+// Tests looking up a stable interface.
+TEST_F(InterfaceListTest, Stable) {
+ InterfaceList list;
+ ASSERT_TRUE(list.GetInterfaceForPPB(PPB_CORE_INTERFACE_1_0) != NULL);
+ ASSERT_TRUE(list.GetInterfaceForPPB("FakeUnknownInterface") == NULL);
+}
+
+// Tests that dev channel restrictions work properly.
+TEST_F(InterfaceListTest, DevChannel) {
+ InterfaceList list;
+ // "Dev channel" interface.
+ static const char* dev_channel_iface_name = "TestDevChannelInterface";
+ void* dev_channel_iface_addr = (void*)0xdeadbeef;
+ // "Dev" interface
+ static const char* dev_iface_name = "TestDevInterface";
+ void* dev_iface_addr = (void*)0xcafefade;
+
+ AddPPB(&list, dev_channel_iface_name, dev_channel_iface_addr,
+ PERMISSION_DEV_CHANNEL);
+ AddPPB(&list, dev_iface_name, dev_iface_addr, PERMISSION_DEV);
+
+ InterfaceList::SetProcessGlobalPermissions(
+ PpapiPermissions(PERMISSION_NONE));
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_channel_iface_name) == NULL);
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_iface_name) == NULL);
+
+ InterfaceList::SetProcessGlobalPermissions(
+ PpapiPermissions(PERMISSION_DEV_CHANNEL));
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_channel_iface_name) ==
+ dev_channel_iface_addr);
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_iface_name) == NULL);
+
+ InterfaceList::SetProcessGlobalPermissions(
+ PpapiPermissions(PERMISSION_DEV));
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_channel_iface_name) == NULL);
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_iface_name) == dev_iface_addr);
+
+ InterfaceList::SetProcessGlobalPermissions(
+ PpapiPermissions(PERMISSION_DEV | PERMISSION_DEV_CHANNEL));
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_channel_iface_name) ==
+ dev_channel_iface_addr);
+ ASSERT_TRUE(list.GetInterfaceForPPB(dev_iface_name) == dev_iface_addr);
+}
+
+// Test that the hash function provided by base::Hash is unchanged. This is so
+// that we will generate correct values when logging interface use to UMA.
+TEST_F(InterfaceListTest, InterfaceHash) {
+ EXPECT_EQ(612625164, HashInterfaceName("PPB_InputEvent;1.0"));
+ EXPECT_EQ(79708274, HashInterfaceName("PPB_TCPSocket;1.1"));
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/interface_proxy.h b/chromium/ppapi/proxy/interface_proxy.h
index dcab5473c9c..099d58b5fe7 100644
--- a/chromium/ppapi/proxy/interface_proxy.h
+++ b/chromium/ppapi/proxy/interface_proxy.h
@@ -24,24 +24,6 @@ class InterfaceProxy : public IPC::Listener, public IPC::Sender {
// is transferred to the caller.
typedef InterfaceProxy* (*Factory)(Dispatcher* dispatcher);
- // DEPRECATED: New classes should be registered directly in the interface
- // list. This is kept around until we convert all the existing code.
- //
- // Information about the interface. Each interface has a static function to
- // return its info, which allows either construction on the target side, and
- // getting the proxied interface on the source side (see dispatcher.h for
- // terminology).
- struct Info {
- const void* interface_ptr;
-
- const char* name;
- ApiID id;
-
- bool is_trusted;
-
- InterfaceProxy::Factory create_proxy;
- };
-
virtual ~InterfaceProxy();
Dispatcher* dispatcher() const { return dispatcher_; }
diff --git a/chromium/ppapi/proxy/media_stream_audio_track_resource.cc b/chromium/ppapi/proxy/media_stream_audio_track_resource.cc
new file mode 100644
index 00000000000..32fdd2846fe
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_audio_track_resource.cc
@@ -0,0 +1,197 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/media_stream_audio_track_resource.h"
+
+#include "ppapi/proxy/audio_buffer_resource.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
+#include "ppapi/shared_impl/media_stream_buffer.h"
+#include "ppapi/shared_impl/var.h"
+
+namespace ppapi {
+namespace proxy {
+
+MediaStreamAudioTrackResource::MediaStreamAudioTrackResource(
+ Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id)
+ : MediaStreamTrackResourceBase(
+ connection, instance, pending_renderer_id, id),
+ get_buffer_output_(NULL) {
+}
+
+MediaStreamAudioTrackResource::~MediaStreamAudioTrackResource() {
+ Close();
+}
+
+thunk::PPB_MediaStreamAudioTrack_API*
+MediaStreamAudioTrackResource::AsPPB_MediaStreamAudioTrack_API() {
+ return this;
+}
+
+PP_Var MediaStreamAudioTrackResource::GetId() {
+ return StringVar::StringToPPVar(id());
+}
+
+PP_Bool MediaStreamAudioTrackResource::HasEnded() {
+ return PP_FromBool(has_ended());
+}
+
+int32_t MediaStreamAudioTrackResource::Configure(
+ const int32_t attrib_list[],
+ scoped_refptr<TrackedCallback> callback) {
+ if (has_ended())
+ return PP_ERROR_FAILED;
+
+ if (TrackedCallback::IsPending(configure_callback_) ||
+ TrackedCallback::IsPending(get_buffer_callback_)) {
+ return PP_ERROR_INPROGRESS;
+ }
+
+ // Do not support configure if audio buffers are held by plugin.
+ if (!buffers_.empty())
+ return PP_ERROR_INPROGRESS;
+
+ MediaStreamAudioTrackShared::Attributes attributes;
+ int i = 0;
+ for (; attrib_list[i] != PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE; i += 2) {
+ switch (attrib_list[i]) {
+ case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS:
+ attributes.buffers = attrib_list[i + 1];
+ break;
+ case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE:
+ case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE:
+ case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS:
+ case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION:
+ return PP_ERROR_NOTSUPPORTED;
+ default:
+ return PP_ERROR_BADARGUMENT;
+ }
+ }
+
+ if (!MediaStreamAudioTrackShared::VerifyAttributes(attributes))
+ return PP_ERROR_BADARGUMENT;
+
+ configure_callback_ = callback;
+ Call<PpapiPluginMsg_MediaStreamAudioTrack_ConfigureReply>(
+ RENDERER,
+ PpapiHostMsg_MediaStreamAudioTrack_Configure(attributes),
+ base::Bind(&MediaStreamAudioTrackResource::OnPluginMsgConfigureReply,
+ base::Unretained(this)),
+ callback);
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t MediaStreamAudioTrackResource::GetAttrib(
+ PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value) {
+ // TODO(penghuang): Implement this function.
+ return PP_ERROR_NOTSUPPORTED;
+}
+
+int32_t MediaStreamAudioTrackResource::GetBuffer(
+ PP_Resource* buffer,
+ scoped_refptr<TrackedCallback> callback) {
+ if (has_ended())
+ return PP_ERROR_FAILED;
+
+ if (TrackedCallback::IsPending(configure_callback_) ||
+ TrackedCallback::IsPending(get_buffer_callback_))
+ return PP_ERROR_INPROGRESS;
+
+ *buffer = GetAudioBuffer();
+ if (*buffer)
+ return PP_OK;
+
+ // TODO(penghuang): Use the callback as hints to determine which thread will
+ // use the resource, so we could deliver buffers to the target thread directly
+ // for better performance.
+ get_buffer_output_ = buffer;
+ get_buffer_callback_ = callback;
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t MediaStreamAudioTrackResource::RecycleBuffer(PP_Resource buffer) {
+ BufferMap::iterator it = buffers_.find(buffer);
+ if (it == buffers_.end())
+ return PP_ERROR_BADRESOURCE;
+
+ scoped_refptr<AudioBufferResource> buffer_resource = it->second;
+ buffers_.erase(it);
+
+ if (has_ended())
+ return PP_OK;
+
+ DCHECK_GE(buffer_resource->GetBufferIndex(), 0);
+
+ SendEnqueueBufferMessageToHost(buffer_resource->GetBufferIndex());
+ buffer_resource->Invalidate();
+ return PP_OK;
+}
+
+void MediaStreamAudioTrackResource::Close() {
+ if (has_ended())
+ return;
+
+ if (TrackedCallback::IsPending(get_buffer_callback_)) {
+ *get_buffer_output_ = 0;
+ get_buffer_callback_->PostAbort();
+ get_buffer_callback_ = NULL;
+ get_buffer_output_ = 0;
+ }
+
+ ReleaseBuffers();
+ MediaStreamTrackResourceBase::CloseInternal();
+}
+
+void MediaStreamAudioTrackResource::OnNewBufferEnqueued() {
+ if (!TrackedCallback::IsPending(get_buffer_callback_))
+ return;
+
+ *get_buffer_output_ = GetAudioBuffer();
+ int32_t result = *get_buffer_output_ ? PP_OK : PP_ERROR_FAILED;
+ get_buffer_output_ = NULL;
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(get_buffer_callback_);
+ callback->Run(result);
+}
+
+PP_Resource MediaStreamAudioTrackResource::GetAudioBuffer() {
+ int32_t index = buffer_manager()->DequeueBuffer();
+ if (index < 0)
+ return 0;
+
+ MediaStreamBuffer* buffer = buffer_manager()->GetBufferPointer(index);
+ DCHECK(buffer);
+ scoped_refptr<AudioBufferResource> resource =
+ new AudioBufferResource(pp_instance(), index, buffer);
+ // Add |pp_resource()| and |resource| into |buffers_|.
+ // |buffers_| uses scoped_ptr<> to hold a ref of |resource|. It keeps the
+ // resource alive.
+ buffers_.insert(BufferMap::value_type(resource->pp_resource(), resource));
+ return resource->GetReference();
+}
+
+void MediaStreamAudioTrackResource::ReleaseBuffers() {
+ for (BufferMap::iterator it = buffers_.begin(); it != buffers_.end(); ++it) {
+ // Just invalidate and release VideoBufferResorce, but keep PP_Resource.
+ // So plugin can still use |RecycleBuffer()|.
+ it->second->Invalidate();
+ it->second = NULL;
+ }
+}
+
+void MediaStreamAudioTrackResource::OnPluginMsgConfigureReply(
+ const ResourceMessageReplyParams& params) {
+ if (TrackedCallback::IsPending(configure_callback_)) {
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(configure_callback_);
+ callback->Run(params.result());
+ }
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/media_stream_audio_track_resource.h b/chromium/ppapi/proxy/media_stream_audio_track_resource.h
new file mode 100644
index 00000000000..6cc5d436f50
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_audio_track_resource.h
@@ -0,0 +1,76 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
+#define PPAPI_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
+
+#include <map>
+#include <string>
+
+#include "base/memory/ref_counted.h"
+#include "ppapi/proxy/media_stream_track_resource_base.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/thunk/ppb_media_stream_audio_track_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+class AudioBufferResource;
+
+class PPAPI_PROXY_EXPORT MediaStreamAudioTrackResource
+ : public MediaStreamTrackResourceBase,
+ public thunk::PPB_MediaStreamAudioTrack_API {
+ public:
+ MediaStreamAudioTrackResource(Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id);
+
+ virtual ~MediaStreamAudioTrackResource();
+
+ // Resource overrides:
+ virtual thunk::PPB_MediaStreamAudioTrack_API*
+ AsPPB_MediaStreamAudioTrack_API() OVERRIDE;
+
+ // PPB_MediaStreamAudioTrack_API overrides:
+ virtual PP_Var GetId() OVERRIDE;
+ virtual PP_Bool HasEnded() OVERRIDE;
+ virtual int32_t Configure(const int32_t attrib_list[],
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value) OVERRIDE;
+ virtual int32_t GetBuffer(
+ PP_Resource* buffer,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t RecycleBuffer(PP_Resource buffer) OVERRIDE;
+ virtual void Close() OVERRIDE;
+
+ // MediaStreamBufferManager::Delegate overrides:
+ virtual void OnNewBufferEnqueued() OVERRIDE;
+
+ private:
+ PP_Resource GetAudioBuffer();
+
+ void ReleaseBuffers();
+
+ // IPC message handlers.
+ void OnPluginMsgConfigureReply(const ResourceMessageReplyParams& params);
+
+ // Allocated buffer resources by |GetBuffer()|.
+ typedef std::map<PP_Resource, scoped_refptr<AudioBufferResource> > BufferMap;
+ BufferMap buffers_;
+
+ PP_Resource* get_buffer_output_;
+
+ scoped_refptr<TrackedCallback> configure_callback_;
+
+ scoped_refptr<TrackedCallback> get_buffer_callback_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaStreamAudioTrackResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/media_stream_track_resource_base.cc b/chromium/ppapi/proxy/media_stream_track_resource_base.cc
new file mode 100644
index 00000000000..12ebdb7c4f9
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_track_resource_base.cc
@@ -0,0 +1,93 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/media_stream_track_resource_base.h"
+
+#include "base/logging.h"
+#include "ppapi/proxy/ppapi_messages.h"
+
+namespace ppapi {
+namespace proxy {
+
+MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
+ Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id)
+ : PluginResource(connection, instance),
+ buffer_manager_(this),
+ id_(id),
+ has_ended_(false) {
+ AttachToPendingHost(RENDERER, pending_renderer_id);
+}
+
+MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
+ Connection connection,
+ PP_Instance instance)
+ : PluginResource(connection, instance),
+ buffer_manager_(this),
+ has_ended_(false) {
+}
+
+MediaStreamTrackResourceBase::~MediaStreamTrackResourceBase() {
+}
+
+void MediaStreamTrackResourceBase::SendEnqueueBufferMessageToHost(
+ int32_t index) {
+ DCHECK_GE(index, 0);
+ DCHECK_LT(index, buffer_manager()->number_of_buffers());
+ Post(RENDERER, PpapiHostMsg_MediaStreamTrack_EnqueueBuffer(index));
+}
+
+void MediaStreamTrackResourceBase::OnReplyReceived(
+ const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) {
+ PPAPI_BEGIN_MESSAGE_MAP(MediaStreamTrackResourceBase, msg)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_MediaStreamTrack_InitBuffers, OnPluginMsgInitBuffers)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer, OnPluginMsgEnqueueBuffer)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
+ OnPluginMsgEnqueueBuffers)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
+ PluginResource::OnReplyReceived(params, msg))
+ PPAPI_END_MESSAGE_MAP()
+}
+
+void MediaStreamTrackResourceBase::CloseInternal() {
+ if (!has_ended_) {
+ Post(RENDERER, PpapiHostMsg_MediaStreamTrack_Close());
+ has_ended_ = true;
+ }
+}
+
+void MediaStreamTrackResourceBase::OnPluginMsgInitBuffers(
+ const ResourceMessageReplyParams& params,
+ int32_t number_of_buffers,
+ int32_t buffer_size,
+ bool readonly) {
+ base::SharedMemoryHandle shm_handle = base::SharedMemory::NULLHandle();
+ params.TakeSharedMemoryHandleAtIndex(0, &shm_handle);
+ buffer_manager_.SetBuffers(number_of_buffers, buffer_size,
+ scoped_ptr<base::SharedMemory>(new base::SharedMemory(shm_handle,
+ readonly)),
+ false);
+}
+
+void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffer(
+ const ResourceMessageReplyParams& params,
+ int32_t index) {
+ buffer_manager_.EnqueueBuffer(index);
+}
+
+void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffers(
+ const ResourceMessageReplyParams& params,
+ const std::vector<int32_t>& indices) {
+ for (size_t i = 0; i < indices.size(); ++i)
+ buffer_manager_.EnqueueBuffer(indices[i]);
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/media_stream_track_resource_base.h b/chromium/ppapi/proxy/media_stream_track_resource_base.h
new file mode 100644
index 00000000000..087d4a95c98
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_track_resource_base.h
@@ -0,0 +1,71 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
+#define PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
+
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/media_stream_buffer_manager.h"
+
+namespace ppapi {
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT MediaStreamTrackResourceBase
+ : public PluginResource,
+ public MediaStreamBufferManager::Delegate {
+ protected:
+ MediaStreamTrackResourceBase(Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id);
+
+ MediaStreamTrackResourceBase(Connection connection, PP_Instance instance);
+
+ virtual ~MediaStreamTrackResourceBase();
+
+ std::string id() const { return id_; }
+
+ void set_id(const std::string& id) { id_ = id; }
+
+ bool has_ended() const { return has_ended_; }
+
+ MediaStreamBufferManager* buffer_manager() { return &buffer_manager_; }
+
+ void CloseInternal();
+
+ // Sends a buffer index to the corresponding PepperMediaStreamTrackHostBase
+ // via an IPC message. The host adds the buffer index into its
+ // |buffer_manager_| for reading or writing.
+ // Also see |MediaStreamBufferManager|.
+ void SendEnqueueBufferMessageToHost(int32_t index);
+
+ // PluginResource overrides:
+ virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) OVERRIDE;
+
+ private:
+ // Message handlers:
+ void OnPluginMsgInitBuffers(const ResourceMessageReplyParams& params,
+ int32_t number_of_buffers,
+ int32_t buffer_size,
+ bool readonly);
+ void OnPluginMsgEnqueueBuffer(const ResourceMessageReplyParams& params,
+ int32_t index);
+ void OnPluginMsgEnqueueBuffers(const ResourceMessageReplyParams& params,
+ const std::vector<int32_t>& indices);
+
+ MediaStreamBufferManager buffer_manager_;
+
+ std::string id_;
+
+ bool has_ended_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaStreamTrackResourceBase);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
diff --git a/chromium/ppapi/proxy/media_stream_video_track_resource.cc b/chromium/ppapi/proxy/media_stream_video_track_resource.cc
new file mode 100644
index 00000000000..2942ff574fb
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_video_track_resource.cc
@@ -0,0 +1,225 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/media_stream_video_track_resource.h"
+
+#include "base/logging.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/video_frame_resource.h"
+#include "ppapi/shared_impl/media_stream_buffer.h"
+#include "ppapi/shared_impl/media_stream_video_track_shared.h"
+#include "ppapi/shared_impl/var.h"
+
+namespace ppapi {
+namespace proxy {
+
+MediaStreamVideoTrackResource::MediaStreamVideoTrackResource(
+ Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id)
+ : MediaStreamTrackResourceBase(
+ connection, instance, pending_renderer_id, id),
+ get_frame_output_(NULL) {
+}
+
+MediaStreamVideoTrackResource::MediaStreamVideoTrackResource(
+ Connection connection,
+ PP_Instance instance)
+ : MediaStreamTrackResourceBase(connection, instance),
+ get_frame_output_(NULL) {
+ SendCreate(RENDERER, PpapiHostMsg_MediaStreamVideoTrack_Create());
+}
+
+MediaStreamVideoTrackResource::~MediaStreamVideoTrackResource() {
+ Close();
+}
+
+thunk::PPB_MediaStreamVideoTrack_API*
+MediaStreamVideoTrackResource::AsPPB_MediaStreamVideoTrack_API() {
+ return this;
+}
+
+PP_Var MediaStreamVideoTrackResource::GetId() {
+ return StringVar::StringToPPVar(id());
+}
+
+PP_Bool MediaStreamVideoTrackResource::HasEnded() {
+ return PP_FromBool(has_ended());
+}
+
+int32_t MediaStreamVideoTrackResource::Configure(
+ const int32_t attrib_list[],
+ scoped_refptr<TrackedCallback> callback) {
+ if (has_ended())
+ return PP_ERROR_FAILED;
+
+ if (TrackedCallback::IsPending(configure_callback_) ||
+ TrackedCallback::IsPending(get_frame_callback_)) {
+ return PP_ERROR_INPROGRESS;
+ }
+
+ // Do not support configure, if frames are hold by plugin.
+ if (!frames_.empty())
+ return PP_ERROR_INPROGRESS;
+
+ MediaStreamVideoTrackShared::Attributes attributes;
+ int i = 0;
+ for (;attrib_list[i] != PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE; i += 2) {
+ switch (attrib_list[i]) {
+ case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES:
+ attributes.buffers = attrib_list[i + 1];
+ break;
+ case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH:
+ attributes.width = attrib_list[i + 1];
+ break;
+ case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT:
+ attributes.height = attrib_list[i + 1];
+ break;
+ case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT:
+ attributes.format = static_cast<PP_VideoFrame_Format>(attrib_list[i + 1]);
+ break;
+ default:
+ return PP_ERROR_BADARGUMENT;
+ }
+ }
+
+ if (!MediaStreamVideoTrackShared::VerifyAttributes(attributes))
+ return PP_ERROR_BADARGUMENT;
+
+ configure_callback_ = callback;
+ Call<PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply>(
+ RENDERER,
+ PpapiHostMsg_MediaStreamVideoTrack_Configure(attributes),
+ base::Bind(&MediaStreamVideoTrackResource::OnPluginMsgConfigureReply,
+ base::Unretained(this)),
+ callback);
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t MediaStreamVideoTrackResource::GetAttrib(
+ PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value) {
+ // TODO(penghuang): implement this function.
+ return PP_ERROR_NOTSUPPORTED;
+}
+
+int32_t MediaStreamVideoTrackResource::GetFrame(
+ PP_Resource* frame,
+ scoped_refptr<TrackedCallback> callback) {
+ if (has_ended())
+ return PP_ERROR_FAILED;
+
+ if (TrackedCallback::IsPending(configure_callback_) ||
+ TrackedCallback::IsPending(get_frame_callback_)) {
+ return PP_ERROR_INPROGRESS;
+ }
+
+ *frame = GetVideoFrame();
+ if (*frame)
+ return PP_OK;
+
+ get_frame_output_ = frame;
+ get_frame_callback_ = callback;
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t MediaStreamVideoTrackResource::RecycleFrame(PP_Resource frame) {
+ FrameMap::iterator it = frames_.find(frame);
+ if (it == frames_.end())
+ return PP_ERROR_BADRESOURCE;
+
+ scoped_refptr<VideoFrameResource> frame_resource = it->second;
+ frames_.erase(it);
+
+ if (has_ended())
+ return PP_OK;
+
+ DCHECK_GE(frame_resource->GetBufferIndex(), 0);
+
+ SendEnqueueBufferMessageToHost(frame_resource->GetBufferIndex());
+ frame_resource->Invalidate();
+ return PP_OK;
+}
+
+void MediaStreamVideoTrackResource::Close() {
+ if (has_ended())
+ return;
+
+ if (TrackedCallback::IsPending(get_frame_callback_)) {
+ *get_frame_output_ = 0;
+ get_frame_callback_->PostAbort();
+ get_frame_callback_ = NULL;
+ get_frame_output_ = 0;
+ }
+
+ ReleaseFrames();
+ MediaStreamTrackResourceBase::CloseInternal();
+}
+
+int32_t MediaStreamVideoTrackResource::GetEmptyFrame(
+ PP_Resource* frame, scoped_refptr<TrackedCallback> callback) {
+ return GetFrame(frame, callback);
+}
+
+int32_t MediaStreamVideoTrackResource::PutFrame(PP_Resource frame) {
+ // TODO(ronghuawu): Consider to rename RecycleFrame to PutFrame and use
+ // one set of GetFrame and PutFrame for both input and output.
+ return RecycleFrame(frame);
+}
+
+void MediaStreamVideoTrackResource::OnNewBufferEnqueued() {
+ if (!TrackedCallback::IsPending(get_frame_callback_))
+ return;
+
+ *get_frame_output_ = GetVideoFrame();
+ int32_t result = *get_frame_output_ ? PP_OK : PP_ERROR_FAILED;
+ get_frame_output_ = NULL;
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(get_frame_callback_);
+ callback->Run(result);
+}
+
+PP_Resource MediaStreamVideoTrackResource::GetVideoFrame() {
+ int32_t index = buffer_manager()->DequeueBuffer();
+ if (index < 0)
+ return 0;
+
+ MediaStreamBuffer* buffer = buffer_manager()->GetBufferPointer(index);
+ DCHECK(buffer);
+ scoped_refptr<VideoFrameResource> resource =
+ new VideoFrameResource(pp_instance(), index, buffer);
+ // Add |pp_resource()| and |resource| into |frames_|.
+ // |frames_| uses scoped_ptr<> to hold a ref of |resource|. It keeps the
+ // resource alive.
+ frames_.insert(FrameMap::value_type(resource->pp_resource(), resource));
+ return resource->GetReference();
+}
+
+void MediaStreamVideoTrackResource::ReleaseFrames() {
+ for (FrameMap::iterator it = frames_.begin(); it != frames_.end(); ++it) {
+ // Just invalidate and release VideoFrameResorce, but keep PP_Resource.
+ // So plugin can still use |RecycleFrame()|.
+ it->second->Invalidate();
+ it->second = NULL;
+ }
+}
+
+void MediaStreamVideoTrackResource::OnPluginMsgConfigureReply(
+ const ResourceMessageReplyParams& params,
+ const std::string& track_id) {
+ if (id().empty()) {
+ set_id(track_id);
+ } else {
+ DCHECK_EQ(id(), track_id);
+ }
+ if (TrackedCallback::IsPending(configure_callback_)) {
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(configure_callback_);
+ callback->Run(params.result());
+ }
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/media_stream_video_track_resource.h b/chromium/ppapi/proxy/media_stream_video_track_resource.h
new file mode 100644
index 00000000000..1e9927f82fe
--- /dev/null
+++ b/chromium/ppapi/proxy/media_stream_video_track_resource.h
@@ -0,0 +1,79 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
+#define PPAPI_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
+
+#include <map>
+
+#include "base/memory/ref_counted.h"
+#include "ppapi/proxy/media_stream_track_resource_base.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/thunk/ppb_media_stream_video_track_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+class VideoFrameResource;
+
+class PPAPI_PROXY_EXPORT MediaStreamVideoTrackResource
+ : public MediaStreamTrackResourceBase,
+ public thunk::PPB_MediaStreamVideoTrack_API {
+ public:
+ MediaStreamVideoTrackResource(Connection connection,
+ PP_Instance instance,
+ int pending_renderer_id,
+ const std::string& id);
+
+ MediaStreamVideoTrackResource(Connection connection, PP_Instance instance);
+
+ virtual ~MediaStreamVideoTrackResource();
+
+ // Resource overrides:
+ virtual thunk::PPB_MediaStreamVideoTrack_API*
+ AsPPB_MediaStreamVideoTrack_API() OVERRIDE;
+
+ // PPB_MediaStreamVideoTrack_API overrides:
+ virtual PP_Var GetId() OVERRIDE;
+ virtual PP_Bool HasEnded() OVERRIDE;
+ virtual int32_t Configure(const int32_t attrib_list[],
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value) OVERRIDE;
+ virtual int32_t GetFrame(PP_Resource* frame,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t RecycleFrame(PP_Resource frame) OVERRIDE;
+ virtual void Close() OVERRIDE;
+ virtual int32_t GetEmptyFrame(
+ PP_Resource* frame, scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t PutFrame(PP_Resource frame) OVERRIDE;
+
+ // MediaStreamBufferManager::Delegate overrides:
+ virtual void OnNewBufferEnqueued() OVERRIDE;
+
+ private:
+ PP_Resource GetVideoFrame();
+
+ void ReleaseFrames();
+
+ // IPC message handlers.
+ void OnPluginMsgConfigureReply(const ResourceMessageReplyParams& params,
+ const std::string& track_id);
+
+ // Allocated frame resources by |GetFrame()|.
+ typedef std::map<PP_Resource, scoped_refptr<VideoFrameResource> > FrameMap;
+ FrameMap frames_;
+
+ PP_Resource* get_frame_output_;
+ scoped_refptr<TrackedCallback> get_frame_callback_;
+
+ scoped_refptr<TrackedCallback> configure_callback_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoTrackResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/message_handler.cc b/chromium/ppapi/proxy/message_handler.cc
new file mode 100644
index 00000000000..6e44d0e018e
--- /dev/null
+++ b/chromium/ppapi/proxy/message_handler.cc
@@ -0,0 +1,134 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/message_handler.h"
+
+#include "ipc/ipc_message.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppb_message_loop_proxy.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/shared_impl/scoped_pp_var.h"
+#include "ppapi/thunk/enter.h"
+
+namespace ppapi {
+namespace proxy {
+namespace {
+
+typedef void (*HandleMessageFunc)(PP_Instance, void*, PP_Var);
+typedef PP_Var (*HandleBlockingMessageFunc)(PP_Instance, void*, PP_Var);
+
+void HandleMessageWrapper(HandleMessageFunc function,
+ PP_Instance instance,
+ void* user_data,
+ ScopedPPVar message_data) {
+ CallWhileUnlocked(function, instance, user_data, message_data.get());
+}
+
+void HandleBlockingMessageWrapper(HandleBlockingMessageFunc function,
+ PP_Instance instance,
+ void* user_data,
+ ScopedPPVar message_data,
+ scoped_ptr<IPC::Message> reply_msg) {
+ PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
+ if (!dispatcher)
+ return;
+ PP_Var return_value = CallWhileUnlocked(function,
+ instance,
+ user_data,
+ message_data.get());
+ PpapiMsg_PPPMessageHandler_HandleBlockingMessage::WriteReplyParams(
+ reply_msg.get(),
+ SerializedVarReturnValue::Convert(dispatcher, return_value),
+ true /* was_handled */);
+ dispatcher->Send(reply_msg.release());
+}
+
+} // namespace
+
+// static
+scoped_ptr<MessageHandler> MessageHandler::Create(
+ PP_Instance instance,
+ const PPP_MessageHandler_0_1* handler_if,
+ void* user_data,
+ PP_Resource message_loop,
+ int32_t* error) {
+ scoped_ptr<MessageHandler> result;
+ // The interface and all function pointers must be valid.
+ if (!handler_if ||
+ !handler_if->HandleMessage ||
+ !handler_if->HandleBlockingMessage ||
+ !handler_if->Destroy) {
+ *error = PP_ERROR_BADARGUMENT;
+ return result.Pass();
+ }
+ thunk::EnterResourceNoLock<thunk::PPB_MessageLoop_API>
+ enter_loop(message_loop, true);
+ if (enter_loop.failed()) {
+ *error = PP_ERROR_BADRESOURCE;
+ return result.Pass();
+ }
+ scoped_refptr<MessageLoopResource> message_loop_resource(
+ static_cast<MessageLoopResource*>(enter_loop.object()));
+ if (message_loop_resource->is_main_thread_loop()) {
+ *error = PP_ERROR_WRONG_THREAD;
+ return result.Pass();
+ }
+
+ result.reset(new MessageHandler(
+ instance, handler_if, user_data, message_loop_resource));
+ *error = PP_OK;
+ return result.Pass();
+}
+
+MessageHandler::~MessageHandler() {
+ // It's possible the message_loop_proxy is NULL if that loop has been quit.
+ // In that case, we unfortunately just can't call Destroy.
+ if (message_loop_->message_loop_proxy()) {
+ // The posted task won't have the proxy lock, but that's OK, it doesn't
+ // touch any internal state; it's a direct call on the plugin's function.
+ message_loop_->message_loop_proxy()->PostTask(FROM_HERE,
+ base::Bind(handler_if_->Destroy,
+ instance_,
+ user_data_));
+ }
+}
+
+bool MessageHandler::LoopIsValid() const {
+ return !!message_loop_->message_loop_proxy();
+}
+
+void MessageHandler::HandleMessage(ScopedPPVar var) {
+ message_loop_->message_loop_proxy()->PostTask(FROM_HERE,
+ RunWhileLocked(base::Bind(&HandleMessageWrapper,
+ handler_if_->HandleMessage,
+ instance_,
+ user_data_,
+ var)));
+}
+
+void MessageHandler::HandleBlockingMessage(ScopedPPVar var,
+ scoped_ptr<IPC::Message> reply_msg) {
+ message_loop_->message_loop_proxy()->PostTask(FROM_HERE,
+ RunWhileLocked(base::Bind(&HandleBlockingMessageWrapper,
+ handler_if_->HandleBlockingMessage,
+ instance_,
+ user_data_,
+ var,
+ base::Passed(reply_msg.Pass()))));
+}
+
+MessageHandler::MessageHandler(
+ PP_Instance instance,
+ const PPP_MessageHandler_0_1* handler_if,
+ void* user_data,
+ scoped_refptr<MessageLoopResource> message_loop)
+ : instance_(instance),
+ handler_if_(handler_if),
+ user_data_(user_data),
+ message_loop_(message_loop) {
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/message_handler.h b/chromium/ppapi/proxy/message_handler.h
new file mode 100644
index 00000000000..61ee639f0b1
--- /dev/null
+++ b/chromium/ppapi/proxy/message_handler.h
@@ -0,0 +1,75 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_MESSAGE_HANDLER_H_
+#define PPAPI_PROXY_MESSAGE_HANDLER_H_
+
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/ppp_message_handler.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+
+namespace IPC {
+class Message;
+}
+
+namespace ppapi {
+
+class ScopedPPVar;
+
+namespace proxy {
+
+class MessageLoopResource;
+
+// MessageHandler wraps a PPP_MessageHandler to encapsulate calling methods
+// on the right thread and calling the Destroy function when this
+// MessageHandler is destroyed.
+class PPAPI_PROXY_EXPORT MessageHandler {
+ public:
+ // Create a MessageHandler. If any parameters are invalid, it will return a
+ // null scoped_ptr and set |*error| appropriately.
+ // |handler_if| is the struct of function pointers we will invoke. All of
+ // the function pointers within must be valid, or we fail
+ // with PP_ERROR_BADARGUMENT.
+ // |user_data| is a pointer provided by the plugin that we pass back when we
+ // call functions in |handler_if|.
+ // |message_loop| is the message loop where we will invoke functions in
+ // |handler_if|. Must not be the main thread message loop,
+ // to try to force the plugin to not over-subscribe the main
+ // thread. If it's the main thread loop, |error| will be set
+ // to PP_ERROR_WRONGTHREAD.
+ // |error| is an out-param that will be set on failure.
+ static scoped_ptr<MessageHandler> Create(
+ PP_Instance instance,
+ const PPP_MessageHandler_0_1* handler_if,
+ void* user_data,
+ PP_Resource message_loop,
+ int32_t* error);
+ ~MessageHandler();
+
+ bool LoopIsValid() const;
+
+ void HandleMessage(ScopedPPVar var);
+ void HandleBlockingMessage(ScopedPPVar var,
+ scoped_ptr<IPC::Message> reply_msg);
+
+ private:
+ MessageHandler(PP_Instance instance,
+ const PPP_MessageHandler_0_1* handler_if,
+ void* user_data,
+ scoped_refptr<MessageLoopResource> message_loop);
+
+ PP_Instance instance_;
+ const PPP_MessageHandler_0_1* handler_if_;
+ void* user_data_;
+ scoped_refptr<MessageLoopResource> message_loop_;
+
+ DISALLOW_COPY_AND_ASSIGN(MessageHandler);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_MESSAGE_HANDLER_H_
diff --git a/chromium/ppapi/proxy/nacl_message_scanner.cc b/chromium/ppapi/proxy/nacl_message_scanner.cc
index 027975eb66c..e3a965dbf33 100644
--- a/chromium/ppapi/proxy/nacl_message_scanner.cc
+++ b/chromium/ppapi/proxy/nacl_message_scanner.cc
@@ -19,12 +19,16 @@ namespace IPC {
class Message;
}
+using ppapi::proxy::ResourceMessageReplyParams;
+using ppapi::proxy::SerializedHandle;
+using ppapi::proxy::SerializedVar;
+
namespace {
-typedef std::vector<ppapi::proxy::SerializedHandle> Handles;
+typedef std::vector<SerializedHandle> Handles;
struct ScanningResults {
- ScanningResults() : handle_index(0) {}
+ ScanningResults() : handle_index(0), pp_resource(0) {}
// Vector to hold handles found in the message.
Handles handles;
@@ -36,12 +40,18 @@ struct ScanningResults {
// may set this to NULL when it can determine that there are no parameters
// that need conversion. (See the ResourceMessageReplyParams overload.)
scoped_ptr<IPC::Message> new_msg;
+ // Resource id for resource messages. Save this when scanning resource replies
+ // so when we audit the nested message, we know which resource it is for.
+ PP_Resource pp_resource;
+ // Callback to receive the nested message in a resource message or reply.
+ base::Callback<void(PP_Resource, const IPC::Message&, SerializedHandle*)>
+ nested_msg_callback;
};
void WriteHandle(int handle_index,
- const ppapi::proxy::SerializedHandle& handle,
+ const SerializedHandle& handle,
IPC::Message* msg) {
- ppapi::proxy::SerializedHandle::WriteHeader(handle.header(), msg);
+ SerializedHandle::WriteHeader(handle.header(), msg);
// Now write the handle itself in POSIX style.
msg->WriteBool(true); // valid == true
@@ -52,8 +62,7 @@ void WriteHandle(int handle_index,
// handling. See ScanTuple for how these get used.
// Overload to match SerializedHandle.
-void ScanParam(const ppapi::proxy::SerializedHandle& handle,
- ScanningResults* results) {
+void ScanParam(const SerializedHandle& handle, ScanningResults* results) {
results->handles.push_back(handle);
if (results->new_msg)
WriteHandle(results->handle_index++, handle, results->new_msg.get());
@@ -61,14 +70,13 @@ void ScanParam(const ppapi::proxy::SerializedHandle& handle,
void HandleWriter(int* handle_index,
IPC::Message* m,
- const ppapi::proxy::SerializedHandle& handle) {
+ const SerializedHandle& handle) {
WriteHandle((*handle_index)++, handle, m);
}
// Overload to match SerializedVar, which can contain handles.
-void ScanParam(const ppapi::proxy::SerializedVar& var,
- ScanningResults* results) {
- std::vector<ppapi::proxy::SerializedHandle*> var_handles = var.GetHandles();
+void ScanParam(const SerializedVar& var, ScanningResults* results) {
+ std::vector<SerializedHandle*> var_handles = var.GetHandles();
// Copy any handles and then rewrite the message.
for (size_t i = 0; i < var_handles.size(); ++i)
results->handles.push_back(*var_handles[i]);
@@ -82,8 +90,9 @@ void ScanParam(const ppapi::proxy::SerializedVar& var,
// NOTE: We only intercept handles from host->NaCl. The only kind of
// ResourceMessageParams that travels this direction is
// ResourceMessageReplyParams, so that's the only one we need to handle.
-void ScanParam(const ppapi::proxy::ResourceMessageReplyParams& params,
+void ScanParam(const ResourceMessageReplyParams& params,
ScanningResults* results) {
+ results->pp_resource = params.pp_resource();
// If the resource reply params don't contain handles, NULL the new message
// pointer to cancel further rewriting.
// NOTE: This works because only handles currently need rewriting, and we
@@ -112,8 +121,21 @@ void ScanParam(const ppapi::proxy::ResourceMessageReplyParams& params,
params.ConsumeHandles();
}
-// Overload to match all other types. If we need to rewrite the message,
-// write the parameter.
+// Overload to match nested messages. If we need to rewrite the message, write
+// the parameter.
+void ScanParam(const IPC::Message& param, ScanningResults* results) {
+ if (results->pp_resource && !results->nested_msg_callback.is_null()) {
+ SerializedHandle* handle = NULL;
+ if (results->handles.size() == 1)
+ handle = &results->handles[0];
+ results->nested_msg_callback.Run(results->pp_resource, param, handle);
+ }
+ if (results->new_msg)
+ IPC::WriteParam(results->new_msg.get(), param);
+}
+
+// Overload to match all other types. If we need to rewrite the message, write
+// the parameter.
template <class T>
void ScanParam(const T& param, ScanningResults* results) {
if (results->new_msg)
@@ -211,18 +233,62 @@ namespace proxy {
class SerializedHandle;
+NaClMessageScanner::FileSystem::FileSystem()
+ : reserved_quota_(0) {
+}
+
+NaClMessageScanner::FileSystem::~FileSystem() {
+}
+
+bool NaClMessageScanner::FileSystem::UpdateReservedQuota(int64_t delta) {
+ base::AutoLock lock(lock_);
+ if (std::numeric_limits<int64_t>::max() - reserved_quota_ < delta)
+ return false; // reserved_quota_ + delta would overflow.
+ if (reserved_quota_ + delta < 0)
+ return false;
+ reserved_quota_ += delta;
+ return true;
+}
+
+NaClMessageScanner::FileIO::FileIO(FileSystem* file_system,
+ int64_t max_written_offset)
+ : file_system_(file_system),
+ max_written_offset_(max_written_offset) {
+}
+
+NaClMessageScanner::FileIO::~FileIO() {
+}
+
+void NaClMessageScanner::FileIO::SetMaxWrittenOffset(
+ int64_t max_written_offset) {
+ base::AutoLock lock(lock_);
+ max_written_offset_ = max_written_offset;
+}
+
+bool NaClMessageScanner::FileIO::Grow(int64_t amount) {
+ base::AutoLock lock(lock_);
+ DCHECK(amount > 0);
+ if (!file_system_->UpdateReservedQuota(-amount))
+ return false;
+ max_written_offset_ += amount;
+ return true;
+}
+
NaClMessageScanner::NaClMessageScanner() {
}
+NaClMessageScanner::~NaClMessageScanner() {
+ for (FileSystemMap::iterator it = file_systems_.begin();
+ it != file_systems_.end(); ++it)
+ delete it->second;
+ for (FileIOMap::iterator it = files_.begin(); it != files_.end(); ++it)
+ delete it->second;
+}
+
// Windows IPC differs from POSIX in that native handles are serialized in the
// message body, rather than passed in a separate FileDescriptorSet. Therefore,
// on Windows, any message containing handles must be rewritten in the POSIX
// format before we can send it to the NaCl plugin.
-//
-// On POSIX and Windows we have to rewrite PpapiMsg_CreateNaClChannel messages.
-// These contain a handle with an invalid (place holder) descriptor. We need to
-// locate this handle so it can be replaced with a valid one when the channel is
-// created.
bool NaClMessageScanner::ScanMessage(
const IPC::Message& msg,
std::vector<SerializedHandle>* handles,
@@ -236,17 +302,18 @@ bool NaClMessageScanner::ScanMessage(
#if defined(OS_WIN)
true;
#else
- (msg.type() == PpapiMsg_CreateNaClChannel::ID);
+ false;
#endif
-
// We can't always tell from the message ID if rewriting is needed. Therefore,
// scan any message types that might contain a handle. If we later determine
// that there are no handles, we can cancel the rewriting by clearing the
// results.new_msg pointer.
ScanningResults results;
+ results.nested_msg_callback =
+ base::Bind(&NaClMessageScanner::AuditNestedMessage,
+ base::Unretained(this));
switch (msg.type()) {
- CASE_FOR_MESSAGE(PpapiMsg_CreateNaClChannel)
CASE_FOR_MESSAGE(PpapiMsg_PPBAudio_NotifyAudioStreamCreated)
CASE_FOR_MESSAGE(PpapiMsg_PPPMessaging_HandleMessage)
CASE_FOR_MESSAGE(PpapiPluginMsg_ResourceReply)
@@ -260,7 +327,7 @@ bool NaClMessageScanner::ScanMessage(
uint32_t type = iter->second;
pending_sync_msgs_.erase(iter);
switch (type) {
- CASE_FOR_REPLY(PpapiHostMsg_PPBGraphics3D_GetTransferBuffer)
+ CASE_FOR_REPLY(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer)
CASE_FOR_REPLY(PpapiHostMsg_PPBImageData_CreateSimple)
CASE_FOR_REPLY(PpapiHostMsg_ResourceSyncCall)
CASE_FOR_REPLY(PpapiHostMsg_SharedMemory_CreateSharedMemory)
@@ -285,14 +352,192 @@ bool NaClMessageScanner::ScanMessage(
return true;
}
-void NaClMessageScanner::RegisterSyncMessageForReply(const IPC::Message& msg) {
- DCHECK(msg.is_sync());
+void NaClMessageScanner::ScanUntrustedMessage(
+ const IPC::Message& untrusted_msg,
+ scoped_ptr<IPC::Message>* new_msg_ptr) {
+ if (untrusted_msg.is_sync())
+ RegisterSyncMessageForReply(untrusted_msg);
+
+ // Audit FileIO and FileSystem messages to ensure that the plugin doesn't
+ // exceed its file quota. If we find the message is malformed, just pass it
+ // through - we only care about well formed messages to the host.
+ if (untrusted_msg.type() == PpapiHostMsg_ResourceCall::ID) {
+ ResourceMessageCallParams params;
+ IPC::Message nested_msg;
+ if (!UnpackMessage<PpapiHostMsg_ResourceCall>(
+ untrusted_msg, &params, &nested_msg))
+ return;
+
+ switch (nested_msg.type()) {
+ case PpapiHostMsg_FileIO_Close::ID: {
+ FileIOMap::iterator it = files_.find(params.pp_resource());
+ if (it == files_.end())
+ return;
+ // Audit FileIO Close messages to make sure the plugin reports an
+ // accurate file size.
+ FileGrowth file_growth;
+ if (!UnpackMessage<PpapiHostMsg_FileIO_Close>(
+ nested_msg, &file_growth))
+ return;
+
+ int64_t trusted_max_written_offset = it->second->max_written_offset();
+ delete it->second;
+ files_.erase(it);
+ // If the plugin is under-reporting, rewrite the message with the
+ // trusted value.
+ if (trusted_max_written_offset > file_growth.max_written_offset) {
+ new_msg_ptr->reset(
+ new PpapiHostMsg_ResourceCall(
+ params,
+ PpapiHostMsg_FileIO_Close(
+ FileGrowth(trusted_max_written_offset, 0))));
+ }
+ break;
+ }
+ case PpapiHostMsg_FileIO_SetLength::ID: {
+ FileIOMap::iterator it = files_.find(params.pp_resource());
+ if (it == files_.end())
+ return;
+ // Audit FileIO SetLength messages to make sure the plugin is within
+ // the current quota reservation. In addition, deduct the file size
+ // increase from the quota reservation.
+ int64_t length = 0;
+ if (!UnpackMessage<PpapiHostMsg_FileIO_SetLength>(
+ nested_msg, &length))
+ return;
+
+ // Calculate file size increase, taking care to avoid overflows.
+ if (length < 0)
+ return;
+ int64_t trusted_max_written_offset = it->second->max_written_offset();
+ int64_t increase = length - trusted_max_written_offset;
+ if (increase <= 0)
+ return;
+ if (!it->second->Grow(increase)) {
+ new_msg_ptr->reset(
+ new PpapiHostMsg_ResourceCall(
+ params,
+ PpapiHostMsg_FileIO_SetLength(-1)));
+ }
+ break;
+ }
+ case PpapiHostMsg_FileSystem_ReserveQuota::ID: {
+ // Audit FileSystem ReserveQuota messages to make sure the plugin
+ // reports accurate file sizes.
+ int64_t amount = 0;
+ FileGrowthMap file_growths;
+ if (!UnpackMessage<PpapiHostMsg_FileSystem_ReserveQuota>(
+ nested_msg, &amount, &file_growths))
+ return;
+
+ bool audit_failed = false;
+ for (FileGrowthMap::iterator it = file_growths.begin();
+ it != file_growths.end(); ++it) {
+ FileIOMap::iterator file_it = files_.find(it->first);
+ if (file_it == files_.end())
+ continue;
+ int64_t trusted_max_written_offset =
+ file_it->second->max_written_offset();
+ if (trusted_max_written_offset > it->second.max_written_offset) {
+ audit_failed = true;
+ it->second.max_written_offset = trusted_max_written_offset;
+ }
+ if (it->second.append_mode_write_amount < 0) {
+ audit_failed = true;
+ it->second.append_mode_write_amount = 0;
+ }
+ }
+ if (audit_failed) {
+ new_msg_ptr->reset(
+ new PpapiHostMsg_ResourceCall(
+ params,
+ PpapiHostMsg_FileSystem_ReserveQuota(
+ amount, file_growths)));
+ }
+ break;
+ }
+ case PpapiHostMsg_ResourceDestroyed::ID: {
+ // Audit resource destroyed messages to release FileSystems.
+ PP_Resource resource;
+ if (!UnpackMessage<PpapiHostMsg_ResourceDestroyed>(
+ nested_msg, &resource))
+ return;
+ FileSystemMap::iterator fs_it = file_systems_.find(resource);
+ if (fs_it != file_systems_.end()) {
+ delete fs_it->second;
+ file_systems_.erase(fs_it);
+ }
+ break;
+ }
+ }
+ }
+}
+void NaClMessageScanner::RegisterSyncMessageForReply(const IPC::Message& msg) {
int msg_id = IPC::SyncMessage::GetMessageId(msg);
DCHECK(pending_sync_msgs_.find(msg_id) == pending_sync_msgs_.end());
pending_sync_msgs_[msg_id] = msg.type();
}
+NaClMessageScanner::FileIO* NaClMessageScanner::GetFile(
+ PP_Resource file_io) {
+ FileIOMap::iterator it = files_.find(file_io);
+ DCHECK(it != files_.end());
+ return it->second;
+}
+
+void NaClMessageScanner::AuditNestedMessage(PP_Resource resource,
+ const IPC::Message& msg,
+ SerializedHandle* handle) {
+ switch (msg.type()) {
+ case PpapiPluginMsg_FileIO_OpenReply::ID: {
+ // A file that requires quota checking was opened.
+ PP_Resource quota_file_system;
+ int64_t max_written_offset = 0;
+ if (ppapi::UnpackMessage<PpapiPluginMsg_FileIO_OpenReply>(
+ msg, &quota_file_system, &max_written_offset)) {
+ if (quota_file_system) {
+ // Look up the FileSystem by inserting a new one. If it was already
+ // present, get the existing one, otherwise construct it.
+ FileSystem* file_system = NULL;
+ std::pair<FileSystemMap::iterator, bool> insert_result =
+ file_systems_.insert(std::make_pair(quota_file_system,
+ file_system));
+ if (insert_result.second)
+ insert_result.first->second = new FileSystem();
+ file_system = insert_result.first->second;
+ // Create the FileIO.
+ DCHECK(files_.find(resource) == files_.end());
+ files_.insert(std::make_pair(
+ resource,
+ new FileIO(file_system, max_written_offset)));
+ }
+ }
+ break;
+ }
+ case PpapiPluginMsg_FileSystem_ReserveQuotaReply::ID: {
+ // The amount of reserved quota for a FileSystem was refreshed.
+ int64_t amount = 0;
+ FileSizeMap file_sizes;
+ if (ppapi::UnpackMessage<PpapiPluginMsg_FileSystem_ReserveQuotaReply>(
+ msg, &amount, &file_sizes)) {
+ FileSystemMap::iterator it = file_systems_.find(resource);
+ DCHECK(it != file_systems_.end());
+ it->second->UpdateReservedQuota(amount);
+
+ FileSizeMap::const_iterator offset_it = file_sizes.begin();
+ for (; offset_it != file_sizes.end(); ++offset_it) {
+ FileIOMap::iterator fio_it = files_.find(offset_it->first);
+ DCHECK(fio_it != files_.end());
+ if (fio_it != files_.end())
+ fio_it->second->SetMaxWrittenOffset(offset_it->second);
+ }
+ }
+ break;
+ }
+ }
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/nacl_message_scanner.h b/chromium/ppapi/proxy/nacl_message_scanner.h
index cce821b7f0c..d1360b72519 100644
--- a/chromium/ppapi/proxy/nacl_message_scanner.h
+++ b/chromium/ppapi/proxy/nacl_message_scanner.h
@@ -10,6 +10,8 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
+#include "base/synchronization/lock.h"
+#include "ppapi/c/pp_resource.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
namespace IPC {
@@ -24,6 +26,7 @@ class SerializedHandle;
class PPAPI_PROXY_EXPORT NaClMessageScanner {
public:
NaClMessageScanner();
+ ~NaClMessageScanner();
// Scans the message for items that require special handling. Copies any
// SerializedHandles in the message into |handles| and if the message must be
@@ -39,20 +42,83 @@ class PPAPI_PROXY_EXPORT NaClMessageScanner {
std::vector<SerializedHandle>* handles,
scoped_ptr<IPC::Message>* new_msg_ptr);
- // This method informs NaClMessageScanner that a sync message is being sent
- // so that it can associate reply messages with their type.
- //
- // Users of NaClMessageScanner must call this when they send a synchronous
- // message, otherwise NaClMessageScanner won't scan replies.
- void RegisterSyncMessageForReply(const IPC::Message& msg);
+ // Scans an untrusted message for items that require special handling. If the
+ // message had to be rewritten, sets |new_msg_ptr| to the new message.
+ void ScanUntrustedMessage(const IPC::Message& untrusted_msg,
+ scoped_ptr<IPC::Message>* new_msg_ptr);
+
+ // FileSystem information for quota auditing.
+ class PPAPI_PROXY_EXPORT FileSystem {
+ public:
+ FileSystem();
+ ~FileSystem();
+
+ int64_t reserved_quota() const { return reserved_quota_; }
+
+ // Adds amount to reserved quota. Returns true if reserved quota >= 0.
+ bool UpdateReservedQuota(int64_t delta);
+
+ private:
+ base::Lock lock_;
+ // This is the remaining amount of quota reserved for the file system.
+ // Acquire the lock to modify this field, since it may be used on multiple
+ // threads.
+ int64_t reserved_quota_;
+
+ DISALLOW_COPY_AND_ASSIGN(FileSystem);
+ };
+
+ // FileIO information for quota auditing.
+ class PPAPI_PROXY_EXPORT FileIO {
+ public:
+ FileIO(FileSystem* file_system, int64_t max_written_offset);
+ ~FileIO();
+
+ int64_t max_written_offset() { return max_written_offset_; }
+
+ void SetMaxWrittenOffset(int64_t max_written_offset);
+
+ // Grows file by the given amount. Returns true on success.
+ bool Grow(int64_t amount);
+
+ private:
+ base::Lock lock_;
+
+ // The file system that contains this file.
+ FileSystem* file_system_;
+
+ // The maximum written offset. This is initialized by NaClMessageScanner
+ // when the file is opened and modified by a NaClDescQuotaInterface when the
+ // plugin writes to greater maximum offsets.
+ int64_t max_written_offset_;
+
+ DISALLOW_COPY_AND_ASSIGN(FileIO);
+ };
+
+ FileIO* GetFile(PP_Resource file_io);
private:
+ friend class NaClMessageScannerTest;
+
+ void RegisterSyncMessageForReply(const IPC::Message& msg);
+ void AuditNestedMessage(PP_Resource resource,
+ const IPC::Message& msg,
+ SerializedHandle* handle);
+
// When we send a synchronous message (from untrusted to trusted), we store
// its type here, so that later we can associate the reply with its type
// for scanning.
typedef std::map<int, uint32> PendingSyncMsgMap;
PendingSyncMsgMap pending_sync_msgs_;
+ // We intercept FileSystem and FileIO messages to maintain information about
+ // file systems and open files. This is used by NaClQuotaDescs to calculate
+ // quota consumption and check it against the reserved amount.
+ typedef std::map<int32_t, FileSystem*> FileSystemMap;
+ FileSystemMap file_systems_;
+ typedef std::map<int32_t, FileIO*> FileIOMap;
+ FileIOMap files_;
+
DISALLOW_COPY_AND_ASSIGN(NaClMessageScanner);
};
diff --git a/chromium/ppapi/proxy/nacl_message_scanner_unittest.cc b/chromium/ppapi/proxy/nacl_message_scanner_unittest.cc
new file mode 100644
index 00000000000..3e439559c71
--- /dev/null
+++ b/chromium/ppapi/proxy/nacl_message_scanner_unittest.cc
@@ -0,0 +1,295 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ipc/ipc_message.h"
+#include "ppapi/proxy/nacl_message_scanner.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppapi_proxy_test.h"
+#include "ppapi/proxy/serialized_handle.h"
+#include "ppapi/shared_impl/host_resource.h"
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+const PP_Resource kInvalidResource = 0;
+const PP_Resource kFileSystem = 1;
+const PP_Resource kFileIO = 2;
+const int64_t kQuotaReservationAmount = 100;
+}
+
+class NaClMessageScannerTest : public PluginProxyTest {
+ public:
+ NaClMessageScannerTest() {}
+
+ uint32 FindPendingSyncMessage(
+ const NaClMessageScanner& scanner,
+ const IPC::Message& msg) {
+ int msg_id = IPC::SyncMessage::GetMessageId(msg);
+ std::map<int, uint32>::const_iterator it =
+ scanner.pending_sync_msgs_.find(msg_id);
+ // O can signal that no message was found.
+ return (it != scanner.pending_sync_msgs_.end()) ? it->second : 0;
+ }
+
+ NaClMessageScanner::FileSystem* FindFileSystem(
+ const NaClMessageScanner& scanner,
+ PP_Resource file_system) {
+ NaClMessageScanner::FileSystemMap::const_iterator it =
+ scanner.file_systems_.find(file_system);
+ return (it != scanner.file_systems_.end()) ? it->second : NULL;
+ }
+
+ NaClMessageScanner::FileIO* FindFileIO(
+ const NaClMessageScanner& scanner,
+ PP_Resource file_io) {
+ NaClMessageScanner::FileIOMap::const_iterator it =
+ scanner.files_.find(file_io);
+ return (it != scanner.files_.end()) ? it->second : NULL;
+ }
+
+ void OpenQuotaFile(NaClMessageScanner* scanner,
+ PP_Resource file_io,
+ PP_Resource file_system) {
+ std::vector<SerializedHandle> unused_handles;
+ ResourceMessageReplyParams fio_reply_params(file_io, 0);
+ scoped_ptr<IPC::Message> new_msg_ptr;
+ scanner->ScanMessage(
+ PpapiPluginMsg_ResourceReply(
+ fio_reply_params,
+ PpapiPluginMsg_FileIO_OpenReply(file_system, 0)),
+ &unused_handles,
+ &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ }
+};
+
+TEST_F(NaClMessageScannerTest, SyncMessageAndReply) {
+ NaClMessageScanner test;
+ ppapi::proxy::SerializedHandle handle(
+ ppapi::proxy::SerializedHandle::SHARED_MEMORY);
+ int id = -1;
+ IPC::Message msg =
+ PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer(
+ ppapi::API_ID_PPB_GRAPHICS_3D,
+ HostResource(),
+ 4096, // size
+ &id,
+ &handle);
+ scoped_ptr<IPC::Message> new_msg_ptr;
+ EXPECT_NE(msg.type(), FindPendingSyncMessage(test, msg));
+ test.ScanUntrustedMessage(msg, &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ EXPECT_EQ(msg.type(), FindPendingSyncMessage(test, msg));
+
+ // TODO(bbudge) Figure out how to put together a sync reply message.
+}
+
+TEST_F(NaClMessageScannerTest, FileOpenClose) {
+ NaClMessageScanner test;
+ std::vector<SerializedHandle> unused_handles;
+ ResourceMessageCallParams fio_call_params(kFileIO, 0);
+ ResourceMessageCallParams fs_call_params(kFileSystem, 0);
+ ResourceMessageReplyParams fio_reply_params(kFileIO, 0);
+ ResourceMessageReplyParams fs_reply_params(kFileSystem, 0);
+ scoped_ptr<IPC::Message> new_msg_ptr;
+
+ EXPECT_EQ(NULL, FindFileSystem(test, kFileSystem));
+ EXPECT_EQ(NULL, FindFileIO(test, kFileIO));
+
+ // Open a file, not in a quota file system.
+ test.ScanMessage(
+ PpapiPluginMsg_ResourceReply(
+ fio_reply_params,
+ PpapiPluginMsg_FileIO_OpenReply(kInvalidResource, 0)),
+ &unused_handles,
+ &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ EXPECT_FALSE(FindFileSystem(test, kFileSystem));
+ EXPECT_FALSE(FindFileIO(test, kFileIO));
+
+ // Open a file in a quota file system; info objects for it and its file system
+ // should be created.
+ OpenQuotaFile(&test, kFileIO, kFileSystem);
+ NaClMessageScanner::FileSystem* fs = FindFileSystem(test, kFileSystem);
+ NaClMessageScanner::FileIO* fio = FindFileIO(test, kFileIO);
+ EXPECT_TRUE(fs);
+ EXPECT_EQ(0, fs->reserved_quota());
+ EXPECT_TRUE(fio);
+ EXPECT_EQ(0, fio->max_written_offset());
+
+ const int64_t kNewFileSize = 10;
+ fio->SetMaxWrittenOffset(kNewFileSize);
+
+ // We should not be able to under-report max_written_offset when closing.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fio_call_params,
+ PpapiHostMsg_FileIO_Close(FileGrowth(0, 0))),
+ &new_msg_ptr);
+ EXPECT_TRUE(new_msg_ptr);
+ ResourceMessageCallParams call_params;
+ IPC::Message nested_msg;
+ FileGrowth file_growth;
+ EXPECT_TRUE(UnpackMessage<PpapiHostMsg_ResourceCall>(
+ *new_msg_ptr, &call_params, &nested_msg) &&
+ UnpackMessage<PpapiHostMsg_FileIO_Close>(
+ nested_msg, &file_growth));
+ new_msg_ptr.reset();
+ EXPECT_EQ(kNewFileSize, file_growth.max_written_offset);
+ EXPECT_FALSE(FindFileIO(test, kFileIO));
+
+ // Reopen the file.
+ OpenQuotaFile(&test, kFileIO, kFileSystem);
+ fio = FindFileIO(test, kFileIO);
+ fio->SetMaxWrittenOffset(kNewFileSize);
+
+ // Close with correct max_written_offset.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fio_call_params,
+ PpapiHostMsg_FileIO_Close(FileGrowth(kNewFileSize, 0))),
+ &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ EXPECT_FALSE(FindFileIO(test, kFileIO));
+
+ // Destroy file system.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fs_call_params,
+ PpapiHostMsg_ResourceDestroyed(kFileSystem)),
+ &new_msg_ptr);
+ EXPECT_FALSE(FindFileSystem(test, kFileSystem));
+}
+
+TEST_F(NaClMessageScannerTest, QuotaAuditing) {
+ NaClMessageScanner test;
+ std::vector<SerializedHandle> unused_handles;
+ ResourceMessageCallParams fio_call_params(kFileIO, 0);
+ ResourceMessageCallParams fs_call_params(kFileSystem, 0);
+ ResourceMessageReplyParams fio_reply_params(kFileIO, 0);
+ ResourceMessageReplyParams fs_reply_params(kFileSystem, 0);
+ scoped_ptr<IPC::Message> new_msg_ptr;
+
+ OpenQuotaFile(&test, kFileIO, kFileSystem);
+ NaClMessageScanner::FileSystem* fs = FindFileSystem(test, kFileSystem);
+ NaClMessageScanner::FileIO* fio = FindFileIO(test, kFileIO);
+ EXPECT_TRUE(fs);
+ EXPECT_EQ(0, fs->reserved_quota());
+ EXPECT_TRUE(fio);
+ EXPECT_EQ(0, fio->max_written_offset());
+
+ // Without reserving quota, we should not be able to grow the file.
+ EXPECT_FALSE(fio->Grow(1));
+ EXPECT_EQ(0, fs->reserved_quota());
+ EXPECT_EQ(0, fio->max_written_offset());
+
+ // Receive reserved quota, and updated file sizes.
+ const int64_t kNewFileSize = 10;
+ FileSizeMap file_sizes;
+ file_sizes[kFileIO] = kNewFileSize;
+ test.ScanMessage(
+ PpapiPluginMsg_ResourceReply(
+ fs_reply_params,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaReservationAmount,
+ file_sizes)),
+ &unused_handles,
+ &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ EXPECT_EQ(kQuotaReservationAmount, fs->reserved_quota());
+ EXPECT_EQ(kNewFileSize, fio->max_written_offset());
+
+ // We should be able to grow the file within quota.
+ EXPECT_TRUE(fio->Grow(1));
+ EXPECT_EQ(kQuotaReservationAmount - 1, fs->reserved_quota());
+ EXPECT_EQ(kNewFileSize + 1, fio->max_written_offset());
+
+ // We should not be able to grow the file over quota.
+ EXPECT_FALSE(fio->Grow(kQuotaReservationAmount));
+ EXPECT_EQ(kQuotaReservationAmount - 1, fs->reserved_quota());
+ EXPECT_EQ(kNewFileSize + 1, fio->max_written_offset());
+
+ // Plugin should not under-report max written offsets when reserving quota.
+ file_sizes[kFileIO] = 0; // should be kNewFileSize + 1.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fio_call_params,
+ PpapiHostMsg_FileSystem_ReserveQuota(
+ kQuotaReservationAmount,
+ FileSizeMapToFileGrowthMapForTesting(file_sizes))),
+ &new_msg_ptr);
+ EXPECT_TRUE(new_msg_ptr);
+ ResourceMessageCallParams call_params;
+ IPC::Message nested_msg;
+ int64_t amount = 0;
+ FileGrowthMap new_file_growths;
+ EXPECT_TRUE(UnpackMessage<PpapiHostMsg_ResourceCall>(
+ *new_msg_ptr, &call_params, &nested_msg) &&
+ UnpackMessage<PpapiHostMsg_FileSystem_ReserveQuota>(
+ nested_msg, &amount, &new_file_growths));
+ new_msg_ptr.reset();
+ EXPECT_EQ(kQuotaReservationAmount, amount);
+ EXPECT_EQ(kNewFileSize + 1, new_file_growths[kFileIO].max_written_offset);
+}
+
+TEST_F(NaClMessageScannerTest, SetLength) {
+ NaClMessageScanner test;
+ std::vector<SerializedHandle> unused_handles;
+ ResourceMessageCallParams fio_call_params(kFileIO, 0);
+ ResourceMessageCallParams fs_call_params(kFileSystem, 0);
+ ResourceMessageReplyParams fio_reply_params(kFileIO, 0);
+ ResourceMessageReplyParams fs_reply_params(kFileSystem, 0);
+ scoped_ptr<IPC::Message> new_msg_ptr;
+
+ OpenQuotaFile(&test, kFileIO, kFileSystem);
+ NaClMessageScanner::FileSystem* fs = FindFileSystem(test, kFileSystem);
+ NaClMessageScanner::FileIO* fio = FindFileIO(test, kFileIO);
+
+ // Receive reserved quota, and updated file sizes.
+ const int64_t kNewFileSize = 10;
+ FileSizeMap file_sizes;
+ file_sizes[kFileIO] = 0;
+ test.ScanMessage(
+ PpapiPluginMsg_ResourceReply(
+ fs_reply_params,
+ PpapiPluginMsg_FileSystem_ReserveQuotaReply(
+ kQuotaReservationAmount,
+ file_sizes)),
+ &unused_handles,
+ &new_msg_ptr);
+
+ // We should be able to SetLength within quota.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fio_call_params,
+ PpapiHostMsg_FileIO_SetLength(kNewFileSize)),
+ &new_msg_ptr);
+ EXPECT_FALSE(new_msg_ptr);
+ EXPECT_EQ(kQuotaReservationAmount - kNewFileSize, fs->reserved_quota());
+ EXPECT_EQ(kNewFileSize, fio->max_written_offset());
+
+ // We shouldn't be able to SetLength beyond quota. The message should be
+ // rewritten to fail with length == -1.
+ test.ScanUntrustedMessage(
+ PpapiHostMsg_ResourceCall(
+ fio_call_params,
+ PpapiHostMsg_FileIO_SetLength(kQuotaReservationAmount + 1)),
+ &new_msg_ptr);
+ EXPECT_TRUE(new_msg_ptr);
+ ResourceMessageCallParams call_params;
+ IPC::Message nested_msg;
+ int64_t length = 0;
+ EXPECT_TRUE(UnpackMessage<PpapiHostMsg_ResourceCall>(
+ *new_msg_ptr, &call_params, &nested_msg) &&
+ UnpackMessage<PpapiHostMsg_FileIO_SetLength>(
+ nested_msg, &length));
+ new_msg_ptr.reset();
+ EXPECT_EQ(-1, length);
+ EXPECT_EQ(kQuotaReservationAmount - kNewFileSize, fs->reserved_quota());
+ EXPECT_EQ(kNewFileSize, fio->max_written_offset());
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/network_monitor_resource.cc b/chromium/ppapi/proxy/network_monitor_resource.cc
index 0dfb0b4b3eb..c76f1b8485f 100644
--- a/chromium/ppapi/proxy/network_monitor_resource.cc
+++ b/chromium/ppapi/proxy/network_monitor_resource.cc
@@ -31,14 +31,14 @@ NetworkMonitorResource::AsPPB_NetworkMonitor_API() {
void NetworkMonitorResource::OnReplyReceived(
const ResourceMessageReplyParams& params,
const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(NetworkMonitorResource, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(NetworkMonitorResource, msg)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_NetworkMonitor_NetworkList, OnPluginMsgNetworkList)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_0(
PpapiPluginMsg_NetworkMonitor_Forbidden, OnPluginMsgForbidden)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
PluginResource::OnReplyReceived(params, msg))
- IPC_END_MESSAGE_MAP()
+ PPAPI_END_MESSAGE_MAP()
}
int32_t NetworkMonitorResource::UpdateNetworkList(
diff --git a/chromium/ppapi/proxy/pdf_resource.cc b/chromium/ppapi/proxy/pdf_resource.cc
index 80c4237a5e5..1398866e924 100644
--- a/chromium/ppapi/proxy/pdf_resource.cc
+++ b/chromium/ppapi/proxy/pdf_resource.cc
@@ -9,6 +9,7 @@
#include "base/command_line.h"
#include "base/metrics/histogram.h"
+#include "base/strings/utf_string_conversions.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_pdf.h"
#include "ppapi/proxy/ppapi_messages.h"
@@ -62,8 +63,10 @@ void PDFResource::SearchString(const unsigned short* input_string,
PP_PrivateFindResult** results, int* count) {
if (locale_.empty())
locale_ = GetLocale();
- const char16* string = reinterpret_cast<const char16*>(input_string);
- const char16* term = reinterpret_cast<const char16*>(input_term);
+ const base::char16* string =
+ reinterpret_cast<const base::char16*>(input_string);
+ const base::char16* term =
+ reinterpret_cast<const base::char16*>(input_term);
UErrorCode status = U_ZERO_ERROR;
UStringSearch* searcher = usearch_open(term, -1, string, -1, locale_.c_str(),
@@ -192,5 +195,14 @@ PP_Bool PDFResource::IsOutOfProcess() {
return PP_TRUE;
}
+void PDFResource::SetSelectedText(const char* selected_text) {
+ Post(RENDERER,
+ PpapiHostMsg_PDF_SetSelectedText(base::UTF8ToUTF16(selected_text)));
+}
+
+void PDFResource::SetLinkUnderCursor(const char* url) {
+ Post(RENDERER, PpapiHostMsg_PDF_SetLinkUnderCursor(url));
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/pdf_resource.h b/chromium/ppapi/proxy/pdf_resource.h
index 4ab30ba1ca7..46f7cbed0fc 100644
--- a/chromium/ppapi/proxy/pdf_resource.h
+++ b/chromium/ppapi/proxy/pdf_resource.h
@@ -55,6 +55,8 @@ class PPAPI_PROXY_EXPORT PDFResource
float scale) OVERRIDE;
virtual PP_Resource GetResourceImage(PP_ResourceImage image_id) OVERRIDE;
virtual PP_Bool IsOutOfProcess() OVERRIDE;
+ virtual void SetSelectedText(const char* selected_text) OVERRIDE;
+ virtual void SetLinkUnderCursor(const char* url) OVERRIDE;
private:
std::string locale_;
diff --git a/chromium/ppapi/proxy/pdf_resource_unittest.cc b/chromium/ppapi/proxy/pdf_resource_unittest.cc
index 3ac60d6413b..62fcea877bc 100644
--- a/chromium/ppapi/proxy/pdf_resource_unittest.cc
+++ b/chromium/ppapi/proxy/pdf_resource_unittest.cc
@@ -65,10 +65,10 @@ TEST_F(PDFResourceTest, SearchString) {
new PDFResource(Connection(&sink(), &sink()), pp_instance()));
pdf_resource->SetLocaleForTest("en-US");
- string16 input;
- string16 term;
- UTF8ToUTF16("abcdefabcdef", 12, &input);
- UTF8ToUTF16("bc", 2, &term);
+ base::string16 input;
+ base::string16 term;
+ base::UTF8ToUTF16("abcdefabcdef", 12, &input);
+ base::UTF8ToUTF16("bc", 2, &term);
PP_PrivateFindResult* results;
int count = 0;
diff --git a/chromium/ppapi/proxy/plugin_dispatcher.cc b/chromium/ppapi/proxy/plugin_dispatcher.cc
index 6cd0ab4151d..f6448d380c2 100644
--- a/chromium/ppapi/proxy/plugin_dispatcher.cc
+++ b/chromium/ppapi/proxy/plugin_dispatcher.cc
@@ -252,14 +252,11 @@ void PluginDispatcher::DidCreateInstance(PP_Instance instance) {
if (!g_instance_to_dispatcher)
g_instance_to_dispatcher = new InstanceToDispatcherMap;
(*g_instance_to_dispatcher)[instance] = this;
-
- instance_map_[instance] = InstanceData();
+ instance_map_.set(instance, scoped_ptr<InstanceData>(new InstanceData()));
}
void PluginDispatcher::DidDestroyInstance(PP_Instance instance) {
- InstanceDataMap::iterator it = instance_map_.find(instance);
- if (it != instance_map_.end())
- instance_map_.erase(it);
+ instance_map_.erase(instance);
if (g_instance_to_dispatcher) {
InstanceToDispatcherMap::iterator found = g_instance_to_dispatcher->find(
@@ -274,8 +271,7 @@ void PluginDispatcher::DidDestroyInstance(PP_Instance instance) {
}
InstanceData* PluginDispatcher::GetInstanceData(PP_Instance instance) {
- InstanceDataMap::iterator it = instance_map_.find(instance);
- return (it == instance_map_.end()) ? NULL : &it->second;
+ return instance_map_.get(instance);
}
thunk::PPB_Instance_API* PluginDispatcher::GetInstanceAPI() {
diff --git a/chromium/ppapi/proxy/plugin_dispatcher.h b/chromium/ppapi/proxy/plugin_dispatcher.h
index 5176eba7c74..f8e22f6ebde 100644
--- a/chromium/ppapi/proxy/plugin_dispatcher.h
+++ b/chromium/ppapi/proxy/plugin_dispatcher.h
@@ -10,6 +10,7 @@
#include "base/basictypes.h"
#include "base/containers/hash_tables.h"
+#include "base/containers/scoped_ptr_hash_map.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/process/process.h"
@@ -19,6 +20,7 @@
#include "ppapi/c/pp_rect.h"
#include "ppapi/c/ppb_console.h"
#include "ppapi/proxy/dispatcher.h"
+#include "ppapi/proxy/message_handler.h"
#include "ppapi/shared_impl/ppapi_preferences.h"
#include "ppapi/shared_impl/ppb_view_shared.h"
#include "ppapi/shared_impl/singleton_resource_id.h"
@@ -61,6 +63,10 @@ struct InstanceData {
// calling when we shouldn't).
bool is_request_surrounding_text_pending;
bool should_do_request_surrounding_text;
+
+ // The message handler which should handle JavaScript->Plugin messages, if
+ // one has been registered, otherwise NULL.
+ scoped_ptr<MessageHandler> message_handler;
};
class PPAPI_PROXY_EXPORT PluginDispatcher
@@ -183,7 +189,7 @@ class PPAPI_PROXY_EXPORT PluginDispatcher
typedef base::hash_map<std::string, const void*> InterfaceMap;
InterfaceMap plugin_interfaces_;
- typedef base::hash_map<PP_Instance, InstanceData> InstanceDataMap;
+ typedef base::ScopedPtrHashMap<PP_Instance, InstanceData> InstanceDataMap;
InstanceDataMap instance_map_;
// The preferences sent from the host. We only want to set this once, which
diff --git a/chromium/ppapi/proxy/plugin_globals.cc b/chromium/ppapi/proxy/plugin_globals.cc
index 59b51919e1a..d361ae11919 100644
--- a/chromium/ppapi/proxy/plugin_globals.cc
+++ b/chromium/ppapi/proxy/plugin_globals.cc
@@ -10,8 +10,10 @@
#include "ipc/ipc_sender.h"
#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/plugin_proxy_delegate.h"
+#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/ppb_message_loop_proxy.h"
#include "ppapi/proxy/resource_reply_thread_registrar.h"
+#include "ppapi/shared_impl/ppapi_constants.h"
#include "ppapi/shared_impl/proxy_lock.h"
#include "ppapi/thunk/enter.h"
@@ -54,7 +56,11 @@ PluginGlobals::PluginGlobals()
plugin_proxy_delegate_(NULL),
callback_tracker_(new CallbackTracker),
resource_reply_thread_registrar_(
- new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())) {
+ new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())),
+ plugin_recently_active_(false),
+ keepalive_throttle_interval_milliseconds_(
+ ppapi::kKeepaliveThrottleIntervalDefaultMilliseconds),
+ weak_factory_(this) {
DCHECK(!plugin_globals_);
plugin_globals_ = this;
@@ -71,7 +77,11 @@ PluginGlobals::PluginGlobals(PerThreadForTest per_thread_for_test)
plugin_proxy_delegate_(NULL),
callback_tracker_(new CallbackTracker),
resource_reply_thread_registrar_(
- new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())) {
+ new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())),
+ plugin_recently_active_(false),
+ keepalive_throttle_interval_milliseconds_(
+ kKeepaliveThrottleIntervalDefaultMilliseconds),
+ weak_factory_(this) {
DCHECK(!plugin_globals_);
}
@@ -165,6 +175,22 @@ base::TaskRunner* PluginGlobals::GetFileTaskRunner() {
return file_thread_->message_loop_proxy();
}
+void PluginGlobals::MarkPluginIsActive() {
+ if (!plugin_recently_active_) {
+ plugin_recently_active_ = true;
+ if (!GetBrowserSender() || !base::MessageLoop::current())
+ return;
+ GetBrowserSender()->Send(new PpapiHostMsg_Keepalive());
+ DCHECK(keepalive_throttle_interval_milliseconds_);
+ GetMainThreadMessageLoop()->PostDelayedTask(
+ FROM_HERE,
+ RunWhileLocked(base::Bind(&PluginGlobals::OnReleaseKeepaliveThrottle,
+ weak_factory_.GetWeakPtr())),
+ base::TimeDelta::FromMilliseconds(
+ keepalive_throttle_interval_milliseconds_));
+ }
+}
+
IPC::Sender* PluginGlobals::GetBrowserSender() {
if (!browser_sender_.get()) {
browser_sender_.reset(
@@ -195,9 +221,18 @@ MessageLoopResource* PluginGlobals::loop_for_main_thread() {
return loop_for_main_thread_.get();
}
+void PluginGlobals::set_keepalive_throttle_interval_milliseconds(unsigned i) {
+ keepalive_throttle_interval_milliseconds_ = i;
+}
+
bool PluginGlobals::IsPluginGlobals() const {
return true;
}
+void PluginGlobals::OnReleaseKeepaliveThrottle() {
+ ppapi::ProxyLock::AssertAcquiredDebugOnly();
+ plugin_recently_active_ = false;
+}
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/plugin_globals.h b/chromium/ppapi/proxy/plugin_globals.h
index 029e2d2e28e..5dc614d239b 100644
--- a/chromium/ppapi/proxy/plugin_globals.h
+++ b/chromium/ppapi/proxy/plugin_globals.h
@@ -74,6 +74,7 @@ class PPAPI_PROXY_EXPORT PluginGlobals : public PpapiGlobals {
const std::string& value) OVERRIDE;
virtual MessageLoopShared* GetCurrentMessageLoop() OVERRIDE;
base::TaskRunner* GetFileTaskRunner() OVERRIDE;
+ virtual void MarkPluginIsActive() OVERRIDE;
// Returns the channel for sending to the browser.
IPC::Sender* GetBrowserSender();
@@ -133,12 +134,20 @@ class PPAPI_PROXY_EXPORT PluginGlobals : public PpapiGlobals {
return resource_reply_thread_registrar_.get();
}
+ // Interval to limit how many IPC messages are sent indicating that the plugin
+ // is active and should be kept alive. The value must be smaller than any
+ // threshold used to kill inactive plugins by the embedder host.
+ void set_keepalive_throttle_interval_milliseconds(unsigned i);
+
private:
class BrowserSender;
// PpapiGlobals overrides.
virtual bool IsPluginGlobals() const OVERRIDE;
+ // Locks the proxy lock and releases the throttle on keepalive IPC messages.
+ void OnReleaseKeepaliveThrottle();
+
static PluginGlobals* plugin_globals_;
PluginProxyDelegate* plugin_proxy_delegate_;
@@ -167,6 +176,17 @@ class PPAPI_PROXY_EXPORT PluginGlobals : public PpapiGlobals {
scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_;
+ // Indicates activity by the plugin. Used to monitor when a plugin can be
+ // shutdown due to idleness. Current needs do not require differentiating
+ // between idle state between multiple instances, if any are active they are
+ // all considered active.
+ bool plugin_recently_active_;
+
+ unsigned keepalive_throttle_interval_milliseconds_;
+
+ // Member variables should appear before the WeakPtrFactory, see weak_ptr.h.
+ base::WeakPtrFactory<PluginGlobals> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(PluginGlobals);
};
diff --git a/chromium/ppapi/proxy/plugin_main_nacl.cc b/chromium/ppapi/proxy/plugin_main_nacl.cc
deleted file mode 100644
index 985deb7bd12..00000000000
--- a/chromium/ppapi/proxy/plugin_main_nacl.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <map>
-#include <set>
-
-#include "build/build_config.h"
-// Need to include this before most other files because it defines
-// IPC_MESSAGE_LOG_ENABLED. We need to use it to define
-// IPC_MESSAGE_MACROS_LOG_ENABLED so ppapi_messages.h will generate the
-// ViewMsgLog et al. functions.
-
-#include "base/command_line.h"
-#include "base/message_loop/message_loop.h"
-#include "base/synchronization/waitable_event.h"
-#include "base/threading/thread.h"
-#include "components/tracing/child_trace_message_filter.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ipc/ipc_logging.h"
-#include "ipc/ipc_message.h"
-#include "native_client/src/shared/srpc/nacl_srpc.h"
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
-#include "ppapi/c/ppp.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_message_filter.h"
-#include "ppapi/proxy/plugin_proxy_delegate.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-#include "ppapi/shared_impl/ppb_audio_shared.h"
-
-#if defined(IPC_MESSAGE_LOG_ENABLED)
-#include "base/containers/hash_tables.h"
-
-LogFunctionMap g_log_function_mapping;
-
-#define IPC_MESSAGE_MACROS_LOG_ENABLED
-#define IPC_LOG_TABLE_ADD_ENTRY(msg_id, logger) \
- g_log_function_mapping[msg_id] = logger
-
-#endif
-#include "ppapi/proxy/ppapi_messages.h"
-
-// This must match up with NACL_CHROME_INITIAL_IPC_DESC,
-// defined in sel_main_chrome.h
-#define NACL_IPC_FD 6
-
-using ppapi::proxy::PluginDispatcher;
-using ppapi::proxy::PluginGlobals;
-using ppapi::proxy::PluginProxyDelegate;
-using ppapi::proxy::ProxyChannel;
-using ppapi::proxy::SerializedHandle;
-
-namespace {
-
-// This class manages communication between the plugin and the browser, and
-// manages the PluginDispatcher instances for communication between the plugin
-// and the renderer.
-class PpapiDispatcher : public ProxyChannel,
- public PluginDispatcher::PluginDelegate,
- public PluginProxyDelegate {
- public:
- explicit PpapiDispatcher(scoped_refptr<base::MessageLoopProxy> io_loop);
-
- // PluginDispatcher::PluginDelegate implementation.
- virtual base::MessageLoopProxy* GetIPCMessageLoop() OVERRIDE;
- virtual base::WaitableEvent* GetShutdownEvent() OVERRIDE;
- virtual IPC::PlatformFileForTransit ShareHandleWithRemote(
- base::PlatformFile handle,
- base::ProcessId peer_pid,
- bool should_close_source) OVERRIDE;
- virtual std::set<PP_Instance>* GetGloballySeenInstanceIDSet() OVERRIDE;
- virtual uint32 Register(PluginDispatcher* plugin_dispatcher) OVERRIDE;
- virtual void Unregister(uint32 plugin_dispatcher_id) OVERRIDE;
-
- // PluginProxyDelegate implementation.
- virtual IPC::Sender* GetBrowserSender() OVERRIDE;
- virtual std::string GetUILanguage() OVERRIDE;
- virtual void PreCacheFont(const void* logfontw) OVERRIDE;
- virtual void SetActiveURL(const std::string& url) OVERRIDE;
- virtual PP_Resource CreateBrowserFont(
- ppapi::proxy::Connection connection,
- PP_Instance instance,
- const PP_BrowserFont_Trusted_Description& desc,
- const ppapi::Preferences& prefs) OVERRIDE;
-
- // IPC::Listener implementation.
- virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
- private:
- void OnMsgCreateNaClChannel(int renderer_id,
- const ppapi::PpapiNaClChannelArgs& args,
- SerializedHandle handle);
- void OnPluginDispatcherMessageReceived(const IPC::Message& msg);
-
- std::set<PP_Instance> instances_;
- std::map<uint32, PluginDispatcher*> plugin_dispatchers_;
- uint32 next_plugin_dispatcher_id_;
- scoped_refptr<base::MessageLoopProxy> message_loop_;
- base::WaitableEvent shutdown_event_;
-};
-
-PpapiDispatcher::PpapiDispatcher(scoped_refptr<base::MessageLoopProxy> io_loop)
- : next_plugin_dispatcher_id_(0),
- message_loop_(io_loop),
- shutdown_event_(true, false) {
- IPC::ChannelHandle channel_handle(
- "NaCl IPC", base::FileDescriptor(NACL_IPC_FD, false));
- // We don't have/need a PID since handle sharing happens outside of the
- // NaCl sandbox.
- InitWithChannel(this, base::kNullProcessId, channel_handle,
- false); // Channel is server.
- channel()->AddFilter(new ppapi::proxy::PluginMessageFilter(
- NULL, PluginGlobals::Get()->resource_reply_thread_registrar()));
- channel()->AddFilter(
- new tracing::ChildTraceMessageFilter(message_loop_.get()));
-}
-
-base::MessageLoopProxy* PpapiDispatcher::GetIPCMessageLoop() {
- return message_loop_.get();
-}
-
-base::WaitableEvent* PpapiDispatcher::GetShutdownEvent() {
- return &shutdown_event_;
-}
-
-IPC::PlatformFileForTransit PpapiDispatcher::ShareHandleWithRemote(
- base::PlatformFile handle,
- base::ProcessId peer_pid,
- bool should_close_source) {
- return IPC::InvalidPlatformFileForTransit();
-}
-
-std::set<PP_Instance>* PpapiDispatcher::GetGloballySeenInstanceIDSet() {
- return &instances_;
-}
-
-uint32 PpapiDispatcher::Register(PluginDispatcher* plugin_dispatcher) {
- if (!plugin_dispatcher ||
- plugin_dispatchers_.size() >= std::numeric_limits<uint32>::max()) {
- return 0;
- }
-
- uint32 id = 0;
- do {
- // Although it is unlikely, make sure that we won't cause any trouble
- // when the counter overflows.
- id = next_plugin_dispatcher_id_++;
- } while (id == 0 ||
- plugin_dispatchers_.find(id) != plugin_dispatchers_.end());
- plugin_dispatchers_[id] = plugin_dispatcher;
- return id;
-}
-
-void PpapiDispatcher::Unregister(uint32 plugin_dispatcher_id) {
- plugin_dispatchers_.erase(plugin_dispatcher_id);
-}
-
-IPC::Sender* PpapiDispatcher::GetBrowserSender() {
- return this;
-}
-
-std::string PpapiDispatcher::GetUILanguage() {
- NOTIMPLEMENTED();
- return std::string();
-}
-
-void PpapiDispatcher::PreCacheFont(const void* logfontw) {
- NOTIMPLEMENTED();
-}
-
-void PpapiDispatcher::SetActiveURL(const std::string& url) {
- NOTIMPLEMENTED();
-}
-
-PP_Resource PpapiDispatcher::CreateBrowserFont(
- ppapi::proxy::Connection connection,
- PP_Instance instance,
- const PP_BrowserFont_Trusted_Description& desc,
- const ppapi::Preferences& prefs) {
- NOTIMPLEMENTED();
- return 0;
-}
-
-bool PpapiDispatcher::OnMessageReceived(const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(PpapiDispatcher, msg)
- IPC_MESSAGE_HANDLER(PpapiMsg_CreateNaClChannel, OnMsgCreateNaClChannel)
- // All other messages are simply forwarded to a PluginDispatcher.
- IPC_MESSAGE_UNHANDLED(OnPluginDispatcherMessageReceived(msg))
- IPC_END_MESSAGE_MAP()
- return true;
-}
-
-void PpapiDispatcher::OnMsgCreateNaClChannel(
- int renderer_id,
- const ppapi::PpapiNaClChannelArgs& args,
- SerializedHandle handle) {
- static bool command_line_and_logging_initialized = false;
- if (!command_line_and_logging_initialized) {
- CommandLine::Init(0, NULL);
- for (size_t i = 0; i < args.switch_names.size(); ++i) {
- DCHECK(i < args.switch_values.size());
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- args.switch_names[i], args.switch_values[i]);
- }
- logging::LoggingSettings settings;
- settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
- logging::InitLogging(settings);
- command_line_and_logging_initialized = true;
- }
- // Tell the process-global GetInterface which interfaces it can return to the
- // plugin.
- ppapi::proxy::InterfaceList::SetProcessGlobalPermissions(
- args.permissions);
- ppapi::proxy::InterfaceList::SetSupportsDevChannel(
- args.supports_dev_channel);
-
- int32_t error = ::PPP_InitializeModule(
- 0 /* module */,
- &ppapi::proxy::PluginDispatcher::GetBrowserInterface);
- if (error)
- ::exit(error);
-
- PluginDispatcher* dispatcher =
- new PluginDispatcher(::PPP_GetInterface, args.permissions,
- args.off_the_record);
- // The channel handle's true name is not revealed here.
- IPC::ChannelHandle channel_handle("nacl", handle.descriptor());
- if (!dispatcher->InitPluginWithChannel(this, base::kNullProcessId,
- channel_handle, false)) {
- delete dispatcher;
- return;
- }
- // From here, the dispatcher will manage its own lifetime according to the
- // lifetime of the attached channel.
-}
-
-void PpapiDispatcher::OnPluginDispatcherMessageReceived(
- const IPC::Message& msg) {
- // The first parameter should be a plugin dispatcher ID.
- PickleIterator iter(msg);
- uint32 id = 0;
- if (!msg.ReadUInt32(&iter, &id)) {
- NOTREACHED();
- return;
- }
- std::map<uint32, ppapi::proxy::PluginDispatcher*>::iterator dispatcher =
- plugin_dispatchers_.find(id);
- if (dispatcher != plugin_dispatchers_.end())
- dispatcher->second->OnMessageReceived(msg);
-}
-
-} // namespace
-
-void PpapiPluginRegisterThreadCreator(
- const struct PP_ThreadFunctions* thread_functions) {
- // Initialize all classes that need to create threads that call back into
- // user code.
- ppapi::PPB_Audio_Shared::SetThreadFunctions(thread_functions);
-}
-
-int PpapiPluginMain() {
- // Though it isn't referenced here, we must instantiate an AtExitManager.
- base::AtExitManager exit_manager;
- base::MessageLoop loop;
- IPC::Logging::set_log_function_map(&g_log_function_mapping);
- ppapi::proxy::PluginGlobals plugin_globals;
- base::Thread io_thread("Chrome_NaClIOThread");
- base::Thread::Options options;
- options.message_loop_type = base::MessageLoop::TYPE_IO;
- io_thread.StartWithOptions(options);
-
- // Start up the SRPC server on another thread. Otherwise, when it blocks
- // on an RPC, the PPAPI proxy will hang. Do this before we initialize the
- // module and start the PPAPI proxy so that the NaCl plugin can continue
- // loading the app.
- static struct NaClSrpcHandlerDesc srpc_methods[] = { { NULL, NULL } };
- if (!NaClSrpcAcceptClientOnThread(srpc_methods)) {
- return 1;
- }
-
- PpapiDispatcher ppapi_dispatcher(io_thread.message_loop_proxy());
- plugin_globals.set_plugin_proxy_delegate(&ppapi_dispatcher);
-
- loop.Run();
-
- return 0;
-}
diff --git a/chromium/ppapi/proxy/plugin_message_filter.cc b/chromium/ppapi/proxy/plugin_message_filter.cc
index 1a62d21454b..18469579b38 100644
--- a/chromium/ppapi/proxy/plugin_message_filter.cc
+++ b/chromium/ppapi/proxy/plugin_message_filter.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/logging.h"
+#include "ipc/ipc_channel.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/resource_message_params.h"
#include "ppapi/proxy/resource_reply_thread_registrar.h"
@@ -22,18 +23,18 @@ PluginMessageFilter::PluginMessageFilter(
scoped_refptr<ResourceReplyThreadRegistrar> registrar)
: seen_instance_ids_(seen_instance_ids),
resource_reply_thread_registrar_(registrar),
- channel_(NULL) {
+ sender_(NULL) {
}
PluginMessageFilter::~PluginMessageFilter() {
}
-void PluginMessageFilter::OnFilterAdded(IPC::Channel* channel) {
- channel_ = channel;
+void PluginMessageFilter::OnFilterAdded(IPC::Sender* sender) {
+ sender_ = sender;
}
void PluginMessageFilter::OnFilterRemoved() {
- channel_ = NULL;
+ sender_ = NULL;
}
bool PluginMessageFilter::OnMessageReceived(const IPC::Message& message) {
@@ -47,8 +48,8 @@ bool PluginMessageFilter::OnMessageReceived(const IPC::Message& message) {
}
bool PluginMessageFilter::Send(IPC::Message* msg) {
- if (channel_)
- return channel_->Send(msg);
+ if (sender_)
+ return sender_->Send(msg);
delete msg;
return false;
}
diff --git a/chromium/ppapi/proxy/plugin_message_filter.h b/chromium/ppapi/proxy/plugin_message_filter.h
index 646900724a2..4018ffcc9e1 100644
--- a/chromium/ppapi/proxy/plugin_message_filter.h
+++ b/chromium/ppapi/proxy/plugin_message_filter.h
@@ -9,8 +9,8 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
-#include "ipc/ipc_channel_proxy.h"
#include "ipc/ipc_sender.h"
+#include "ipc/message_filter.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
@@ -25,9 +25,8 @@ class ResourceReplyThreadRegistrar;
//
// There is one instance of this class for each renderer channel (same as for
// the PluginDispatchers).
-class PPAPI_PROXY_EXPORT PluginMessageFilter
- : public IPC::ChannelProxy::MessageFilter,
- public IPC::Sender {
+class PPAPI_PROXY_EXPORT PluginMessageFilter : public IPC::MessageFilter,
+ public IPC::Sender {
public:
// |seen_instance_ids| is a pointer to a set that will be used to uniquify
// PP_Instances across all renderer channels. The same pointer should be
@@ -42,7 +41,7 @@ class PPAPI_PROXY_EXPORT PluginMessageFilter
virtual ~PluginMessageFilter();
// MessageFilter implementation.
- virtual void OnFilterAdded(IPC::Channel* channel) OVERRIDE;
+ virtual void OnFilterAdded(IPC::Sender* sender) OVERRIDE;
virtual void OnFilterRemoved() OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
@@ -73,9 +72,9 @@ class PPAPI_PROXY_EXPORT PluginMessageFilter
scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_;
- // The IPC channel to the renderer. May be NULL if we're not currently
+ // The IPC sender to the renderer. May be NULL if we're not currently
// attached as a filter.
- IPC::Channel* channel_;
+ IPC::Sender* sender_;
};
} // namespace proxy
diff --git a/chromium/ppapi/proxy/plugin_var_tracker.cc b/chromium/ppapi/proxy/plugin_var_tracker.cc
index a9cbd9c7a62..06db2249af3 100644
--- a/chromium/ppapi/proxy/plugin_var_tracker.cc
+++ b/chromium/ppapi/proxy/plugin_var_tracker.cc
@@ -10,6 +10,8 @@
#include "ppapi/c/dev/ppp_class_deprecated.h"
#include "ppapi/c/ppb_var.h"
#include "ppapi/proxy/file_system_resource.h"
+#include "ppapi/proxy/media_stream_audio_track_resource.h"
+#include "ppapi/proxy/media_stream_video_track_resource.h"
#include "ppapi/proxy/plugin_array_buffer_var.h"
#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/plugin_globals.h"
@@ -172,10 +174,10 @@ PP_Var PluginVarTracker::MakeResourcePPVarFromMessage(
const IPC::Message& creation_message,
int pending_renderer_id,
int pending_browser_id) {
- DCHECK(pending_renderer_id);
- DCHECK(pending_browser_id);
switch (creation_message.type()) {
case PpapiPluginMsg_FileSystem_CreateFromPendingHost::ID: {
+ DCHECK(pending_renderer_id);
+ DCHECK(pending_browser_id);
PP_FileSystemType file_system_type;
if (!UnpackMessage<PpapiPluginMsg_FileSystem_CreateFromPendingHost>(
creation_message, &file_system_type)) {
@@ -194,6 +196,42 @@ PP_Var PluginVarTracker::MakeResourcePPVarFromMessage(
file_system_type))->GetReference();
return MakeResourcePPVar(pp_resource);
}
+ case PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost::ID: {
+ DCHECK(pending_renderer_id);
+ std::string track_id;
+ if (!UnpackMessage<
+ PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost>(
+ creation_message, &track_id)) {
+ NOTREACHED() <<
+ "Invalid message of type "
+ "PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost";
+ return PP_MakeNull();
+ }
+ PP_Resource pp_resource =
+ (new MediaStreamAudioTrackResource(GetConnectionForInstance(instance),
+ instance,
+ pending_renderer_id,
+ track_id))->GetReference();
+ return MakeResourcePPVar(pp_resource);
+ }
+ case PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost::ID: {
+ DCHECK(pending_renderer_id);
+ std::string track_id;
+ if (!UnpackMessage<
+ PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost>(
+ creation_message, &track_id)) {
+ NOTREACHED() <<
+ "Invalid message of type "
+ "PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost";
+ return PP_MakeNull();
+ }
+ PP_Resource pp_resource =
+ (new MediaStreamVideoTrackResource(GetConnectionForInstance(instance),
+ instance,
+ pending_renderer_id,
+ track_id))->GetReference();
+ return MakeResourcePPVar(pp_resource);
+ }
default: {
NOTREACHED() << "Creation message has unexpected type "
<< creation_message.type();
diff --git a/chromium/ppapi/proxy/ppapi_command_buffer_proxy.cc b/chromium/ppapi/proxy/ppapi_command_buffer_proxy.cc
index a6da210795d..b9bd98fbb6d 100644
--- a/chromium/ppapi/proxy/ppapi_command_buffer_proxy.cc
+++ b/chromium/ppapi/proxy/ppapi_command_buffer_proxy.cc
@@ -21,33 +21,14 @@ PpapiCommandBufferProxy::PpapiCommandBufferProxy(
}
PpapiCommandBufferProxy::~PpapiCommandBufferProxy() {
- // Delete all the locally cached shared memory objects, closing the handle
- // in this process.
- for (TransferBufferMap::iterator it = transfer_buffers_.begin();
- it != transfer_buffers_.end(); ++it) {
- delete it->second.shared_memory;
- it->second.shared_memory = NULL;
- }
+ // gpu::Buffers are no longer referenced, allowing shared memory objects to be
+ // deleted, closing the handle in this process.
}
bool PpapiCommandBufferProxy::Initialize() {
return true;
}
-gpu::CommandBuffer::State PpapiCommandBufferProxy::GetState() {
- // Send will flag state with lost context if IPC fails.
- if (last_state_.error == gpu::error::kNoError) {
- gpu::CommandBuffer::State state;
- bool success = false;
- if (Send(new PpapiHostMsg_PPBGraphics3D_GetState(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, &state, &success))) {
- UpdateState(state, success);
- }
- }
-
- return last_state_;
-}
-
gpu::CommandBuffer::State PpapiCommandBufferProxy::GetLastState() {
ppapi::ProxyLock::AssertAcquiredDebugOnly();
return last_state_;
@@ -72,130 +53,94 @@ void PpapiCommandBufferProxy::Flush(int32 put_offset) {
Send(message);
}
-gpu::CommandBuffer::State PpapiCommandBufferProxy::FlushSync(int32 put_offset,
- int32 last_known_get) {
- if (last_known_get == last_state_.get_offset) {
- // Send will flag state with lost context if IPC fails.
- if (last_state_.error == gpu::error::kNoError) {
- gpu::CommandBuffer::State state;
- bool success = false;
- if (Send(new PpapiHostMsg_PPBGraphics3D_Flush(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, put_offset,
- last_known_get, &state, &success))) {
- UpdateState(state, success);
- }
- }
- } else {
- Flush(put_offset);
- }
- return last_state_;
-}
-
-void PpapiCommandBufferProxy::SetGetBuffer(int32 transfer_buffer_id) {
- if (last_state_.error == gpu::error::kNoError) {
- Send(new PpapiHostMsg_PPBGraphics3D_SetGetBuffer(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, transfer_buffer_id));
- }
-}
-
-void PpapiCommandBufferProxy::SetGetOffset(int32 get_offset) {
- // Not implemented in proxy.
- NOTREACHED();
-}
-
-gpu::Buffer PpapiCommandBufferProxy::CreateTransferBuffer(size_t size,
- int32* id) {
- *id = -1;
-
+void PpapiCommandBufferProxy::WaitForTokenInRange(int32 start, int32 end) {
if (last_state_.error != gpu::error::kNoError)
- return gpu::Buffer();
-
- if (!Send(new PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, size, id))) {
- return gpu::Buffer();
- }
-
- if ((*id) <= 0)
- return gpu::Buffer();
+ return;
- return GetTransferBuffer(*id);
+ bool success;
+ gpu::CommandBuffer::State state;
+ if (Send(new PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange(
+ ppapi::API_ID_PPB_GRAPHICS_3D,
+ resource_,
+ start,
+ end,
+ &state,
+ &success)))
+ UpdateState(state, success);
}
-void PpapiCommandBufferProxy::DestroyTransferBuffer(int32 id) {
+void PpapiCommandBufferProxy::WaitForGetOffsetInRange(int32 start, int32 end) {
if (last_state_.error != gpu::error::kNoError)
return;
- // Remove the transfer buffer from the client side4 cache.
- TransferBufferMap::iterator it = transfer_buffers_.find(id);
-
- if (it != transfer_buffers_.end()) {
- // Delete the shared memory object, closing the handle in this process.
- delete it->second.shared_memory;
+ bool success;
+ gpu::CommandBuffer::State state;
+ if (Send(new PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange(
+ ppapi::API_ID_PPB_GRAPHICS_3D,
+ resource_,
+ start,
+ end,
+ &state,
+ &success)))
+ UpdateState(state, success);
+}
- transfer_buffers_.erase(it);
+void PpapiCommandBufferProxy::SetGetBuffer(int32 transfer_buffer_id) {
+ if (last_state_.error == gpu::error::kNoError) {
+ Send(new PpapiHostMsg_PPBGraphics3D_SetGetBuffer(
+ ppapi::API_ID_PPB_GRAPHICS_3D, resource_, transfer_buffer_id));
}
-
- Send(new PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, id));
}
-void PpapiCommandBufferProxy::Echo(const base::Closure& callback) {
- NOTREACHED();
-}
+scoped_refptr<gpu::Buffer> PpapiCommandBufferProxy::CreateTransferBuffer(
+ size_t size,
+ int32* id) {
+ *id = -1;
-gpu::Buffer PpapiCommandBufferProxy::GetTransferBuffer(int32 id) {
if (last_state_.error != gpu::error::kNoError)
- return gpu::Buffer();
-
- // Check local cache to see if there is already a client side shared memory
- // object for this id.
- TransferBufferMap::iterator it = transfer_buffers_.find(id);
- if (it != transfer_buffers_.end()) {
- return it->second;
- }
+ return NULL;
// Assuming we are in the renderer process, the service is responsible for
// duplicating the handle. This might not be true for NaCl.
ppapi::proxy::SerializedHandle handle(
ppapi::proxy::SerializedHandle::SHARED_MEMORY);
- if (!Send(new PpapiHostMsg_PPBGraphics3D_GetTransferBuffer(
- ppapi::API_ID_PPB_GRAPHICS_3D, resource_, id, &handle))) {
- return gpu::Buffer();
+ if (!Send(new PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer(
+ ppapi::API_ID_PPB_GRAPHICS_3D, resource_, size, id, &handle))) {
+ return NULL;
}
- if (!handle.is_shmem())
- return gpu::Buffer();
- // Cache the transfer buffer shared memory object client side.
+ if (*id <= 0 || !handle.is_shmem())
+ return NULL;
+
scoped_ptr<base::SharedMemory> shared_memory(
new base::SharedMemory(handle.shmem(), false));
// Map the shared memory on demand.
if (!shared_memory->memory()) {
if (!shared_memory->Map(handle.size())) {
- return gpu::Buffer();
+ *id = -1;
+ return NULL;
}
}
- gpu::Buffer buffer;
- buffer.ptr = shared_memory->memory();
- buffer.size = handle.size();
- buffer.shared_memory = shared_memory.release();
- transfer_buffers_[id] = buffer;
-
- return buffer;
+ return gpu::MakeBufferFromSharedMemory(shared_memory.Pass(), handle.size());
}
-void PpapiCommandBufferProxy::SetToken(int32 token) {
- NOTREACHED();
+void PpapiCommandBufferProxy::DestroyTransferBuffer(int32 id) {
+ if (last_state_.error != gpu::error::kNoError)
+ return;
+
+ Send(new PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer(
+ ppapi::API_ID_PPB_GRAPHICS_3D, resource_, id));
}
-void PpapiCommandBufferProxy::SetParseError(gpu::error::Error error) {
+void PpapiCommandBufferProxy::Echo(const base::Closure& callback) {
NOTREACHED();
}
-void PpapiCommandBufferProxy::SetContextLostReason(
- gpu::error::ContextLostReason reason) {
+uint32 PpapiCommandBufferProxy::CreateStreamTexture(uint32 texture_id) {
NOTREACHED();
+ return 0;
}
uint32 PpapiCommandBufferProxy::InsertSyncPoint() {
@@ -221,11 +166,6 @@ void PpapiCommandBufferProxy::SetSurfaceVisible(bool visible) {
NOTREACHED();
}
-void PpapiCommandBufferProxy::SendManagedMemoryStats(
- const gpu::ManagedMemoryStats& stats) {
- NOTREACHED();
-}
-
gpu::Capabilities PpapiCommandBufferProxy::GetCapabilities() {
// TODO(boliu): Need to implement this to use cc in Pepper. Tracked in
// crbug.com/325391.
@@ -236,6 +176,7 @@ gfx::GpuMemoryBuffer* PpapiCommandBufferProxy::CreateGpuMemoryBuffer(
size_t width,
size_t height,
unsigned internalformat,
+ unsigned usage,
int32* id) {
NOTREACHED();
return NULL;
@@ -245,15 +186,6 @@ void PpapiCommandBufferProxy::DestroyGpuMemoryBuffer(int32 id) {
NOTREACHED();
}
-bool PpapiCommandBufferProxy::GenerateMailboxNames(
- unsigned num, std::vector<gpu::Mailbox>* names) {
- // TODO(piman): implement this so we can expose mailboxes to pepper
- // eventually.
- NOTREACHED();
- return false;
-}
-
-
bool PpapiCommandBufferProxy::Send(IPC::Message* msg) {
DCHECK(last_state_.error == gpu::error::kNoError);
diff --git a/chromium/ppapi/proxy/ppapi_command_buffer_proxy.h b/chromium/ppapi/proxy/ppapi_command_buffer_proxy.h
index 16809bdfea9..ad5cf62e814 100644
--- a/chromium/ppapi/proxy/ppapi_command_buffer_proxy.h
+++ b/chromium/ppapi/proxy/ppapi_command_buffer_proxy.h
@@ -7,8 +7,8 @@
#include "base/callback.h"
#include "base/containers/hash_tables.h"
+#include "gpu/command_buffer/client/gpu_control.h"
#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/gpu_control.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
#include "ppapi/shared_impl/host_resource.h"
@@ -30,48 +30,37 @@ class PPAPI_PROXY_EXPORT PpapiCommandBufferProxy : public gpu::CommandBuffer,
// gpu::CommandBuffer implementation:
virtual bool Initialize() OVERRIDE;
- virtual State GetState() OVERRIDE;
virtual State GetLastState() OVERRIDE;
virtual int32 GetLastToken() OVERRIDE;
virtual void Flush(int32 put_offset) OVERRIDE;
- virtual State FlushSync(int32 put_offset, int32 last_known_get) OVERRIDE;
+ virtual void WaitForTokenInRange(int32 start, int32 end) OVERRIDE;
+ virtual void WaitForGetOffsetInRange(int32 start, int32 end) OVERRIDE;
virtual void SetGetBuffer(int32 transfer_buffer_id) OVERRIDE;
- virtual void SetGetOffset(int32 get_offset) OVERRIDE;
- virtual gpu::Buffer CreateTransferBuffer(size_t size, int32* id) OVERRIDE;
+ virtual scoped_refptr<gpu::Buffer> CreateTransferBuffer(size_t size,
+ int32* id) OVERRIDE;
virtual void DestroyTransferBuffer(int32 id) OVERRIDE;
- virtual gpu::Buffer GetTransferBuffer(int32 id) OVERRIDE;
- virtual void SetToken(int32 token) OVERRIDE;
- virtual void SetParseError(gpu::error::Error error) OVERRIDE;
- virtual void SetContextLostReason(gpu::error::ContextLostReason reason)
- OVERRIDE;
// gpu::GpuControl implementation:
virtual gpu::Capabilities GetCapabilities() OVERRIDE;
- virtual gfx::GpuMemoryBuffer* CreateGpuMemoryBuffer(
- size_t width,
- size_t height,
- unsigned internalformat,
- int32* id) OVERRIDE;
+ virtual gfx::GpuMemoryBuffer* CreateGpuMemoryBuffer(size_t width,
+ size_t height,
+ unsigned internalformat,
+ unsigned usage,
+ int32* id) OVERRIDE;
virtual void DestroyGpuMemoryBuffer(int32 id) OVERRIDE;
- virtual bool GenerateMailboxNames(unsigned num,
- std::vector<gpu::Mailbox>* names) OVERRIDE;
virtual uint32 InsertSyncPoint() OVERRIDE;
virtual void SignalSyncPoint(uint32 sync_point,
const base::Closure& callback) OVERRIDE;
virtual void SignalQuery(uint32 query,
const base::Closure& callback) OVERRIDE;
virtual void SetSurfaceVisible(bool visible) OVERRIDE;
- virtual void SendManagedMemoryStats(const gpu::ManagedMemoryStats& stats)
- OVERRIDE;
virtual void Echo(const base::Closure& callback) OVERRIDE;
+ virtual uint32 CreateStreamTexture(uint32 texture_id) OVERRIDE;
private:
bool Send(IPC::Message* msg);
void UpdateState(const gpu::CommandBuffer::State& state, bool success);
- typedef base::hash_map<int32, gpu::Buffer> TransferBufferMap;
- TransferBufferMap transfer_buffers_;
-
State last_state_;
HostResource resource_;
diff --git a/chromium/ppapi/proxy/ppapi_messages.h b/chromium/ppapi/proxy/ppapi_messages.h
index 4b4fed8aef4..03f15d71c83 100644
--- a/chromium/ppapi/proxy/ppapi_messages.h
+++ b/chromium/ppapi/proxy/ppapi_messages.h
@@ -3,6 +3,7 @@
// found in the LICENSE file.
// Multiply-included message header, no traditional include guard.
+#include <map>
#include <string>
#include <vector>
@@ -12,8 +13,8 @@
#include "base/process/process.h"
#include "base/strings/string16.h"
#include "base/sync_socket.h"
-#include "base/values.h"
#include "gpu/command_buffer/common/command_buffer.h"
+#include "gpu/command_buffer/common/mailbox.h"
#include "gpu/ipc/gpu_command_buffer_traits.h"
#include "ipc/ipc_channel_handle.h"
#include "ipc/ipc_message_macros.h"
@@ -21,11 +22,11 @@
#include "ipc/ipc_platform_file.h"
#include "ppapi/c/dev/pp_video_capture_dev.h"
#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
#include "ppapi/c/dev/ppb_truetype_font_dev.h"
#include "ppapi/c/dev/ppb_url_util_dev.h"
#include "ppapi/c/dev/ppp_printing_dev.h"
#include "ppapi/c/pp_bool.h"
+#include "ppapi/c/pp_codecs.h"
#include "ppapi/c/pp_file_info.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_module.h"
@@ -35,6 +36,7 @@
#include "ppapi/c/pp_size.h"
#include "ppapi/c/pp_time.h"
#include "ppapi/c/ppb_audio_config.h"
+#include "ppapi/c/ppb_compositor_layer.h"
#include "ppapi/c/ppb_image_data.h"
#include "ppapi/c/ppb_tcp_socket.h"
#include "ppapi/c/ppb_text_input_controller.h"
@@ -57,10 +59,14 @@
#include "ppapi/proxy/serialized_handle.h"
#include "ppapi/proxy/serialized_structs.h"
#include "ppapi/proxy/serialized_var.h"
+#include "ppapi/shared_impl/compositor_layer_data.h"
#include "ppapi/shared_impl/dir_contents.h"
+#include "ppapi/shared_impl/file_growth.h"
#include "ppapi/shared_impl/file_path.h"
#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/ppapi_nacl_channel_args.h"
+#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
+#include "ppapi/shared_impl/media_stream_video_track_shared.h"
+#include "ppapi/shared_impl/ppapi_nacl_plugin_args.h"
#include "ppapi/shared_impl/ppapi_preferences.h"
#include "ppapi/shared_impl/ppb_device_ref_shared.h"
#include "ppapi/shared_impl/ppb_input_event_shared.h"
@@ -71,6 +77,7 @@
#include "ppapi/shared_impl/socket_option_data.h"
#include "ppapi/shared_impl/url_request_info_data.h"
#include "ppapi/shared_impl/url_response_info_data.h"
+#include "ui/events/ipc/latency_info_param_traits.h"
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT
@@ -80,15 +87,16 @@
IPC_ENUM_TRAITS_MAX_VALUE(ppapi::TCPSocketVersion,
ppapi::TCP_SOCKET_VERSION_1_1_OR_ABOVE)
IPC_ENUM_TRAITS(PP_AudioSampleRate)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_BlendMode, PP_BLENDMODE_LAST)
IPC_ENUM_TRAITS(PP_DeviceType_Dev)
IPC_ENUM_TRAITS(PP_DecryptorStreamType)
+IPC_ENUM_TRAITS(PP_SessionType)
+IPC_ENUM_TRAITS(PP_CdmExceptionCode)
IPC_ENUM_TRAITS_MAX_VALUE(PP_FileSystemType, PP_FILESYSTEMTYPE_ISOLATED)
IPC_ENUM_TRAITS_MAX_VALUE(PP_FileType, PP_FILETYPE_OTHER)
IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_Permission)
IPC_ENUM_TRAITS(PP_Flash_BrowserOperations_SettingType)
IPC_ENUM_TRAITS(PP_FlashSetting)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_Graphics2D_Dev_ResizeMode,
- PP_GRAPHICS2D_DEV_RESIZEMODE_STRETCH)
IPC_ENUM_TRAITS(PP_ImageDataFormat)
IPC_ENUM_TRAITS(PP_InputEvent_MouseButton)
IPC_ENUM_TRAITS(PP_InputEvent_Type)
@@ -119,6 +127,8 @@ IPC_ENUM_TRAITS_MAX_VALUE(PP_UDPSocket_Option,
PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE)
IPC_ENUM_TRAITS(PP_VideoDecodeError_Dev)
IPC_ENUM_TRAITS(PP_VideoDecoder_Profile)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoFrame_Format, PP_VIDEOFRAME_FORMAT_LAST)
+IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoProfile, PP_VIDEOPROFILE_MAX)
IPC_STRUCT_TRAITS_BEGIN(PP_Point)
IPC_STRUCT_TRAITS_MEMBER(x)
@@ -135,11 +145,21 @@ IPC_STRUCT_TRAITS_BEGIN(PP_Size)
IPC_STRUCT_TRAITS_MEMBER(width)
IPC_STRUCT_TRAITS_END()
+IPC_STRUCT_TRAITS_BEGIN(PP_FloatSize)
+ IPC_STRUCT_TRAITS_MEMBER(height)
+ IPC_STRUCT_TRAITS_MEMBER(width)
+IPC_STRUCT_TRAITS_END()
+
IPC_STRUCT_TRAITS_BEGIN(PP_Rect)
IPC_STRUCT_TRAITS_MEMBER(point)
IPC_STRUCT_TRAITS_MEMBER(size)
IPC_STRUCT_TRAITS_END()
+IPC_STRUCT_TRAITS_BEGIN(PP_FloatRect)
+ IPC_STRUCT_TRAITS_MEMBER(point)
+ IPC_STRUCT_TRAITS_MEMBER(size)
+IPC_STRUCT_TRAITS_END()
+
IPC_STRUCT_TRAITS_BEGIN(PP_ImageDataDesc)
IPC_STRUCT_TRAITS_MEMBER(format)
IPC_STRUCT_TRAITS_MEMBER(size)
@@ -209,6 +229,46 @@ IPC_STRUCT_TRAITS_BEGIN(PP_FileInfo)
IPC_STRUCT_TRAITS_MEMBER(last_modified_time)
IPC_STRUCT_TRAITS_END()
+IPC_STRUCT_TRAITS_BEGIN(ppapi::FileGrowth)
+ IPC_STRUCT_TRAITS_MEMBER(max_written_offset)
+ IPC_STRUCT_TRAITS_MEMBER(append_mode_write_amount)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData)
+ IPC_STRUCT_TRAITS_MEMBER(common)
+ IPC_STRUCT_TRAITS_MEMBER(color)
+ IPC_STRUCT_TRAITS_MEMBER(texture)
+ IPC_STRUCT_TRAITS_MEMBER(image)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::LayerCommon)
+ IPC_STRUCT_TRAITS_MEMBER(size)
+ IPC_STRUCT_TRAITS_MEMBER(clip_rect)
+ IPC_STRUCT_TRAITS_MEMBER(transform)
+ IPC_STRUCT_TRAITS_MEMBER(blend_mode)
+ IPC_STRUCT_TRAITS_MEMBER(opacity)
+ IPC_STRUCT_TRAITS_MEMBER(resource_id)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::ColorLayer)
+ IPC_STRUCT_TRAITS_MEMBER(red)
+ IPC_STRUCT_TRAITS_MEMBER(green)
+ IPC_STRUCT_TRAITS_MEMBER(blue)
+ IPC_STRUCT_TRAITS_MEMBER(alpha)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::ImageLayer)
+ IPC_STRUCT_TRAITS_MEMBER(resource)
+ IPC_STRUCT_TRAITS_MEMBER(source_rect)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::CompositorLayerData::TextureLayer)
+ IPC_STRUCT_TRAITS_MEMBER(mailbox)
+ IPC_STRUCT_TRAITS_MEMBER(sync_point)
+ IPC_STRUCT_TRAITS_MEMBER(source_rect)
+ IPC_STRUCT_TRAITS_MEMBER(premult_alpha)
+IPC_STRUCT_TRAITS_END()
+
IPC_STRUCT_TRAITS_BEGIN(ppapi::DeviceRefData)
IPC_STRUCT_TRAITS_MEMBER(type)
IPC_STRUCT_TRAITS_MEMBER(name)
@@ -234,6 +294,17 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::FlashSiteSetting)
IPC_STRUCT_TRAITS_MEMBER(permission)
IPC_STRUCT_TRAITS_END()
+IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamAudioTrackShared::Attributes)
+ IPC_STRUCT_TRAITS_MEMBER(buffers)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamVideoTrackShared::Attributes)
+ IPC_STRUCT_TRAITS_MEMBER(buffers)
+ IPC_STRUCT_TRAITS_MEMBER(width)
+ IPC_STRUCT_TRAITS_MEMBER(height)
+ IPC_STRUCT_TRAITS_MEMBER(format)
+IPC_STRUCT_TRAITS_END()
+
IPC_STRUCT_TRAITS_BEGIN(ppapi::ViewData)
IPC_STRUCT_TRAITS_MEMBER(rect)
IPC_STRUCT_TRAITS_MEMBER(is_fullscreen)
@@ -241,6 +312,7 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::ViewData)
IPC_STRUCT_TRAITS_MEMBER(clip_rect)
IPC_STRUCT_TRAITS_MEMBER(device_scale)
IPC_STRUCT_TRAITS_MEMBER(css_scale)
+ IPC_STRUCT_TRAITS_MEMBER(scroll_offset)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(PP_TouchPoint)
@@ -262,6 +334,7 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::Preferences)
IPC_STRUCT_TRAITS_MEMBER(is_3d_supported)
IPC_STRUCT_TRAITS_MEMBER(is_stage3d_supported)
IPC_STRUCT_TRAITS_MEMBER(is_stage3d_baseline_supported)
+ IPC_STRUCT_TRAITS_MEMBER(is_accelerated_video_decode_enabled)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
@@ -277,7 +350,6 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
IPC_STRUCT_TRAITS_MEMBER(wheel_ticks)
IPC_STRUCT_TRAITS_MEMBER(wheel_scroll_by_page)
IPC_STRUCT_TRAITS_MEMBER(key_code)
- IPC_STRUCT_TRAITS_MEMBER(usb_key_code)
IPC_STRUCT_TRAITS_MEMBER(code)
IPC_STRUCT_TRAITS_MEMBER(character_text)
IPC_STRUCT_TRAITS_MEMBER(composition_segment_offsets)
@@ -287,6 +359,7 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
IPC_STRUCT_TRAITS_MEMBER(touches)
IPC_STRUCT_TRAITS_MEMBER(changed_touches)
IPC_STRUCT_TRAITS_MEMBER(target_touches)
+ IPC_STRUCT_TRAITS_MEMBER(latency_info)
IPC_STRUCT_TRAITS_END()
IPC_STRUCT_TRAITS_BEGIN(ppapi::HostPortPair)
@@ -342,12 +415,13 @@ IPC_STRUCT_TRAITS_BEGIN(ppapi::proxy::SerializedNetworkInfo)
IPC_STRUCT_TRAITS_MEMBER(mtu)
IPC_STRUCT_TRAITS_END()
-// Only whitelisted switches passed through NaClChannelArgs.
+// Only whitelisted switches passed through PpapiNaClPluginArgs.
// The list of switches can be found in:
-// chrome/browser/nacl_host/nacl_process_host.cc
-IPC_STRUCT_TRAITS_BEGIN(ppapi::PpapiNaClChannelArgs)
+// components/nacl/browser/nacl_process_host.cc
+IPC_STRUCT_TRAITS_BEGIN(ppapi::PpapiNaClPluginArgs)
IPC_STRUCT_TRAITS_MEMBER(off_the_record)
IPC_STRUCT_TRAITS_MEMBER(permissions)
+ IPC_STRUCT_TRAITS_MEMBER(keepalive_throttle_interval_milliseconds)
IPC_STRUCT_TRAITS_MEMBER(switch_names)
IPC_STRUCT_TRAITS_MEMBER(switch_values)
IPC_STRUCT_TRAITS_END()
@@ -364,10 +438,9 @@ IPC_STRUCT_TRAITS_END()
// These are from the browser to the plugin.
// Loads the given plugin.
-IPC_MESSAGE_CONTROL3(PpapiMsg_LoadPlugin,
+IPC_MESSAGE_CONTROL2(PpapiMsg_LoadPlugin,
base::FilePath /* path */,
- ppapi::PpapiPermissions /* permissions */,
- bool /* supports_dev_channel */)
+ ppapi::PpapiPermissions /* permissions */)
// Creates a channel to talk to a renderer. The plugin will respond with
// PpapiHostMsg_ChannelCreated.
@@ -376,13 +449,9 @@ IPC_MESSAGE_CONTROL3(PpapiMsg_CreateChannel,
int /* renderer_child_id */,
bool /* incognito */)
-// Creates a channel to talk to a renderer. This message is only used by the
-// NaCl IPC proxy. It is intercepted by NaClIPCAdapter, which creates the
-// actual channel and rewrites the message for the untrusted side.
-IPC_MESSAGE_CONTROL3(PpapiMsg_CreateNaClChannel,
- int /* renderer_id */,
- ppapi::PpapiNaClChannelArgs /* args */,
- ppapi::proxy::SerializedHandle /* channel_handle */)
+// Initializes the IPC dispatchers in the NaCl plugin.
+IPC_MESSAGE_CONTROL1(PpapiMsg_InitializeNaClDispatcher,
+ ppapi::PpapiNaClPluginArgs /* args */)
// Instructs the plugin process to crash.
IPC_MESSAGE_CONTROL0(PpapiMsg_Crash)
@@ -418,6 +487,9 @@ IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_SupportsInterface,
std::string /* interface_name */,
bool /* result */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_LogInterfaceUsage,
+ int /* interface_hash */)
+
#if !defined(OS_NACL) && !defined(NACL_WIN64)
// Network state notification from the browser for implementing
// PPP_NetworkState_Dev.
@@ -605,15 +677,48 @@ IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_HandleDocumentLoad,
int /* pending_loader_host_id */,
ppapi::URLResponseInfoData /* response */)
-// PPP_Messaging.
+// PPP_Messaging and PPP_MessageHandler.
IPC_MESSAGE_ROUTED2(PpapiMsg_PPPMessaging_HandleMessage,
PP_Instance /* instance */,
ppapi::proxy::SerializedVar /* message */)
+IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPMessageHandler_HandleBlockingMessage,
+ PP_Instance /* instance */,
+ ppapi::proxy::SerializedVar /* message */,
+ ppapi::proxy::SerializedVar /* result */,
+ bool /* was_handled */);
// PPP_MouseLock.
IPC_MESSAGE_ROUTED1(PpapiMsg_PPPMouseLock_MouseLockLost,
PP_Instance /* instance */)
+// PPP_Pdf
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPPPdf_Rotate,
+ PP_Instance /* instance */,
+ bool /* clockwise */)
+
+// Find
+IPC_MESSAGE_ROUTED2(PpapiPluginMsg_PPPFind_StartFind,
+ PP_Instance /* instance */,
+ std::string /* text */)
+IPC_MESSAGE_ROUTED2(PpapiPluginMsg_PPPFind_SelectFindResult,
+ PP_Instance /* instance */,
+ PP_Bool /* forward */)
+IPC_MESSAGE_ROUTED1(PpapiPluginMsg_PPPFind_StopFind,
+ PP_Instance /* instance */)
+
+IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_SetPluginToHandleFindRequests,
+ PP_Instance /* instance */)
+IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_NumberOfFindResultsChanged,
+ PP_Instance /* instance */,
+ int32_t /* total */,
+ PP_Bool /* final_result */)
+IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SelectFindResultChanged,
+ PP_Instance /* instance */,
+ int32_t /* index */)
+IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTickmarks,
+ PP_Instance /* instance */,
+ std::vector<PP_Rect> /* tickmarks */)
+
// PPP_Printing
IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_QuerySupportedFormats,
PP_Instance /* instance */,
@@ -649,18 +754,25 @@ IPC_MESSAGE_ROUTED3(
IPC_MESSAGE_ROUTED2(PpapiMsg_PPPContentDecryptor_Initialize,
PP_Instance /* instance */,
ppapi::proxy::SerializedVar /* key_system, String */)
-IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_CreateSession,
+IPC_MESSAGE_ROUTED5(PpapiMsg_PPPContentDecryptor_CreateSession,
PP_Instance /* instance */,
- uint32_t /* session_id */,
- ppapi::proxy::SerializedVar /* type, String */,
- ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */)
-IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_UpdateSession,
+ uint32_t /* promise_id */,
+ ppapi::proxy::SerializedVar /* init_data_type, String */,
+ ppapi::proxy::SerializedVar /* init_data, ArrayBuffer */,
+ PP_SessionType /* session_type */)
+IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_LoadSession,
PP_Instance /* instance */,
- uint32_t /* session_id */,
+ uint32_t /* promise_id */,
+ ppapi::proxy::SerializedVar /* web_session_id, String */)
+IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_UpdateSession,
+ PP_Instance /* instance */,
+ uint32_t /* promise_id */,
+ ppapi::proxy::SerializedVar /* web_session_id, String */,
ppapi::proxy::SerializedVar /* response, ArrayBuffer */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPContentDecryptor_ReleaseSession,
+IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_ReleaseSession,
PP_Instance /* instance */,
- uint32_t /* session_id */)
+ uint32_t /* promise_id */,
+ ppapi::proxy::SerializedVar /* web_session_id, String */)
IPC_MESSAGE_ROUTED3(PpapiMsg_PPPContentDecryptor_Decrypt,
PP_Instance /* instance */,
ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
@@ -688,44 +800,17 @@ IPC_MESSAGE_ROUTED4(PpapiMsg_PPPContentDecryptor_DecryptAndDecode,
PP_DecryptorStreamType /* decoder_type */,
ppapi::proxy::PPPDecryptor_Buffer /* buffer */,
std::string /* serialized_block_info */)
-#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
-#if !defined(OS_NACL) && !defined(NACL_WIN64)
// PPP_Instance_Private.
IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPInstancePrivate_GetInstanceObject,
PP_Instance /* instance */,
ppapi::proxy::SerializedVar /* result */)
-// PPB_VideoDecoder_Dev.
-// (Messages from renderer to plugin to notify it to run callbacks.)
-IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
- ppapi::HostResource /* video_decoder */,
- int32_t /* bitstream buffer id */,
- int32_t /* PP_CompletionCallback result */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK,
- ppapi::HostResource /* video_decoder */,
- int32_t /* PP_CompletionCallback result */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK,
- ppapi::HostResource /* video_decoder */,
- int32_t /* PP_CompletionCallback result */)
-
-// PPP_VideoDecoder_Dev.
-IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
- ppapi::HostResource /* video_decoder */,
- uint32_t /* requested number of buffers */,
- PP_Size /* dimensions of buffers */,
- uint32_t /* texture_target */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
- ppapi::HostResource /* video_decoder */,
- int32_t /* picture buffer id */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
- ppapi::HostResource /* video_decoder */,
- PP_Picture_Dev /* output picture */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
- ppapi::HostResource /* video_decoder */,
- PP_VideoDecodeError_Dev /* error */)
#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
+// Reports to the browser that a plugin has been active.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_Keepalive)
+
// -----------------------------------------------------------------------------
// These are from the plugin to the renderer.
@@ -736,6 +821,14 @@ IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
IPC_MESSAGE_CONTROL1(PpapiHostMsg_ChannelCreated,
IPC::ChannelHandle /* handle */)
+// Notify the renderer that the PPAPI channel gets ready in the plugin.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_StartupInitializationComplete);
+
+// Calls renderer to open a resource file for nacl_irt_open_resource().
+IPC_SYNC_MESSAGE_CONTROL1_1(PpapiHostMsg_OpenResource,
+ std::string /* key */,
+ ppapi::proxy::SerializedHandle /* fd */)
+
// Logs the given message to the console of all instances.
IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource,
PP_Instance /* instance */,
@@ -768,30 +861,29 @@ IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBGraphics3D_Create,
IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
ppapi::HostResource /* context */,
int32 /* transfer_buffer_id */)
-IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBGraphics3D_GetState,
+IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange,
ppapi::HostResource /* context */,
+ int32 /* start */,
+ int32 /* end */,
gpu::CommandBuffer::State /* state */,
bool /* success */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_Flush,
+IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange,
ppapi::HostResource /* context */,
- int32 /* put_offset */,
- int32 /* last_known_get */,
+ int32 /* start */,
+ int32 /* end */,
gpu::CommandBuffer::State /* state */,
bool /* success */)
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_AsyncFlush,
ppapi::HostResource /* context */,
int32 /* put_offset */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
+IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
ppapi::HostResource /* context */,
uint32 /* size */,
- int32 /* id */)
+ int32 /* id */,
+ ppapi::proxy::SerializedHandle /* transfer_buffer */)
IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
ppapi::HostResource /* context */,
int32 /* id */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBGraphics3D_GetTransferBuffer,
- ppapi::HostResource /* context */,
- int32 /* id */,
- ppapi::proxy::SerializedHandle /* transfer_buffer */)
IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
ppapi::HostResource /* graphics_3d */)
IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBGraphics3D_InsertSyncPoint,
@@ -860,6 +952,8 @@ IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_RequestInputEvents,
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_ClearInputEvents,
PP_Instance /* instance */,
uint32_t /* event_classes */)
+IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_StartTrackingLatency,
+ PP_Instance /* instance */)
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PostMessage,
PP_Instance /* instance */,
ppapi::proxy::SerializedVar /* message */)
@@ -983,26 +1077,36 @@ IPC_SYNC_MESSAGE_ROUTED2_2(
ppapi::proxy::SerializedHandle /* result_shm_handle */)
// PPB_ContentDecryptor_Dev messages handled in PPB_Instance_Proxy.
-IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_SessionCreated,
+IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PromiseResolved,
PP_Instance /* instance */,
- uint32_t /* session_id */,
+ uint32_t /* promise_id */)
+IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_PromiseResolvedWithSession,
+ PP_Instance /* instance */,
+ uint32_t /* promise_id */,
ppapi::proxy::SerializedVar /* web_session_id, String */)
+IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_PromiseRejected,
+ PP_Instance /* instance */,
+ uint32_t /* promise_id */,
+ PP_CdmExceptionCode /* exception_code */,
+ int32_t /* system_code */,
+ ppapi::proxy::SerializedVar /* error_description, String */)
IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SessionMessage,
PP_Instance /* instance */,
- uint32_t /* session_id */,
+ ppapi::proxy::SerializedVar /* web_session_id, String */,
ppapi::proxy::SerializedVar /* message, ArrayBuffer */,
ppapi::proxy::SerializedVar /* destination_url, String */)
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SessionReady,
PP_Instance /* instance */,
- uint32_t /* session_id */)
+ ppapi::proxy::SerializedVar /* web_session_id, String */)
IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SessionClosed,
PP_Instance /* instance */,
- uint32_t /* session_id */)
-IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SessionError,
+ ppapi::proxy::SerializedVar /* web_session_id, String */)
+IPC_MESSAGE_ROUTED5(PpapiHostMsg_PPBInstance_SessionError,
PP_Instance /* instance */,
- uint32_t /* session_id */,
- int32_t /* media_error */,
- int32_t /* system_code */)
+ ppapi::proxy::SerializedVar /* web_session_id, String */,
+ PP_CdmExceptionCode /* exception_code */,
+ int32_t /* system_code */,
+ ppapi::proxy::SerializedVar /* error_description, String */)
IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_DeliverBlock,
PP_Instance /* instance */,
PP_Resource /* decrypted_block, PPB_Buffer_Dev */,
@@ -1049,7 +1153,8 @@ IPC_SYNC_MESSAGE_ROUTED1_0(
#if !defined(OS_NACL) && !defined(NACL_WIN64)
-// PPB_VideoDecoder.
+// PPB_VideoDecoder_Dev.
+// (Messages from plugin to renderer.)
IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVideoDecoder_Create,
PP_Instance /* instance */,
ppapi::HostResource /* context */,
@@ -1073,15 +1178,34 @@ IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset,
IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy,
ppapi::HostResource /* video_decoder */)
-// PPB_Flash_MessageLoop.
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create,
- PP_Instance /* instance */,
- ppapi::HostResource /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Run,
- ppapi::HostResource /* flash_message_loop */,
- int32_t /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBFlashMessageLoop_Quit,
- ppapi::HostResource /* flash_message_loop */)
+// PPB_VideoDecoder_Dev.
+// (Messages from renderer to plugin to notify it to run callbacks.)
+IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
+ ppapi::HostResource /* video_decoder */,
+ int32_t /* bitstream buffer id */,
+ int32_t /* PP_CompletionCallback result */)
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK,
+ ppapi::HostResource /* video_decoder */,
+ int32_t /* PP_CompletionCallback result */)
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK,
+ ppapi::HostResource /* video_decoder */,
+ int32_t /* PP_CompletionCallback result */)
+
+// PPP_VideoDecoder_Dev.
+IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
+ ppapi::HostResource /* video_decoder */,
+ uint32_t /* requested number of buffers */,
+ PP_Size /* dimensions of buffers */,
+ uint32_t /* texture_target */)
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
+ ppapi::HostResource /* video_decoder */,
+ int32_t /* picture buffer id */)
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
+ ppapi::HostResource /* video_decoder */,
+ PP_Picture_Dev /* output picture */)
+IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
+ ppapi::HostResource /* video_decoder */,
+ PP_VideoDecodeError_Dev /* error */)
#endif // !defined(OS_NACL) && !defined(NACL_WIN64)
// PPB_X509Certificate_Private
@@ -1188,24 +1312,37 @@ IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_Create)
// ResourceMessageReplyParams in the reply message.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_Broker_IsAllowed)
-// Extensions common -----------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_ExtensionsCommon_Create)
-
-// Starts an extension API request which doesn't expect a response.
-// |request_name| is an API function name. |args| is a list of input arguments.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Post,
- std::string /* request_name */,
- base::ListValue /* args */)
-
-// Starts an extension API request which expects a response sent back using a
-// PpapiPluginMsg_ExtensionsCommon_CallReply message.
-// |request_name| is an API function name. |args| is a list of input arguments.
-// |output| is a list of output results.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_ExtensionsCommon_Call,
- std::string /* request_name */,
- base::ListValue /* args */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_ExtensionsCommon_CallReply,
- base::ListValue /* output */)
+// UMA
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_Create)
+IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomTimes,
+ std::string /* name */,
+ int64_t /* sample */,
+ int64_t /* min */,
+ int64_t /* max */,
+ uint32_t /* bucket_count */)
+IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomCounts,
+ std::string /* name */,
+ int32_t /* sample */,
+ int32_t /* min */,
+ int32_t /* max */,
+ uint32_t /* bucket_count */)
+IPC_MESSAGE_CONTROL3(PpapiHostMsg_UMA_HistogramEnumeration,
+ std::string /* name */,
+ int32_t /* sample */,
+ int32_t /* boundary_value */)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_IsCrashReportingEnabled);
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UMA_IsCrashReportingEnabledReply);
+
+// Compositor
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_Compositor_Create)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_Compositor_CommitLayers,
+ std::vector<ppapi::CompositorLayerData> /* layers */,
+ bool /* reset */)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Compositor_CommitLayersReply)
+IPC_MESSAGE_CONTROL3(PpapiPluginMsg_Compositor_ReleaseResource,
+ int32_t /* id */,
+ uint32_t /* sync_point */,
+ bool /* is_lost */)
// File chooser.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileChooser_Create)
@@ -1222,14 +1359,14 @@ IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Create)
IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Open,
PP_Resource /* file_ref_resource */,
int32_t /* open_flags */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_OpenReply)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Close)
+IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileIO_OpenReply,
+ PP_Resource /* quota_file_system */,
+ int64_t /* file_size */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_Close,
+ ppapi::FileGrowth /* file_growth */)
IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Touch,
PP_Time /* last_access_time */,
PP_Time /* last_modified_time */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Write,
- int64_t /* offset */,
- std::string /* data */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_SetLength,
int64_t /* length */)
IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Flush)
@@ -1240,19 +1377,19 @@ IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_GeneralReply)
// FileRef
// Creates a FileRef to a path on an external file system. This message may
// only be sent from the renderer.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateExternal,
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateForRawFS,
base::FilePath /* external_path */)
-// Creates a FileRef to a path on an internal file system. This message may
-// be sent from the renderer or the plugin.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateInternal,
+// Creates a FileRef to a path on a file system that uses fileapi.
+// This message may be sent from the renderer or the plugin.
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateForFileAPI,
PP_Resource /* file_system */,
std::string /* internal_path */)
// Requests that the browser create a directory at the location indicated by
// the FileRef.
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_MakeDirectory,
- bool /* make_ancestors */)
+ int32_t /* make_directory_flags */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_MakeDirectoryReply)
// Requests that the browser update the last accessed and last modified times
@@ -1315,38 +1452,12 @@ IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_CreateFromRenderer,
// linked to the existing resource host given in the ResourceVar.
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileSystem_CreateFromPendingHost,
PP_FileSystemType /* file_system_type */)
-
-// Flash DRM ------------------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_Create)
-
-// Requests the device ID.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetDeviceID)
-// Reply for GetDeviceID which includes the device ID as a string.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetDeviceIDReply,
- std::string /* id */)
-
-// Requests the HMONITOR corresponding to the monitor on which the instance is
-// displayed.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetHmonitor)
-// Reply message for GetHmonitor which contains the HMONITOR as an int64_t.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetHmonitorReply,
- int64_t /* hmonitor */)
-
-// Requests the voucher file which is used to verify the integrity of the Flash
-// module. A PPB_FileRef resource will be created.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetVoucherFile)
-// Reply message for GetVoucherFile which contains the CreateInfo for a
-// PPB_FileRef which points to the voucher file.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetVoucherFileReply,
- ppapi::FileRefCreateInfo /* file_info */)
-
-// Requests a value indicating whether the monitor on which the instance is
-// displayed is external.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_MonitorIsExternal)
-// Reply message for MonitorIsExternal which contains the value indicating if
-// the monitor is external.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_MonitorIsExternalReply,
- PP_Bool /* is_external */)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_ReserveQuota,
+ int64_t /* amount */,
+ ppapi::FileGrowthMap /* file_growths */)
+IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileSystem_ReserveQuotaReply,
+ int64_t /* amount */,
+ ppapi::FileSizeMap /* file_sizes */)
// Gamepad.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_Create)
@@ -1375,16 +1486,12 @@ IPC_MESSAGE_CONTROL3(PpapiHostMsg_Graphics2D_Scroll,
PP_Point /* amount */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_ReplaceContents,
ppapi::HostResource /* image_data */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_Dev_SetScale,
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_SetScale,
float /* scale */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_SetOffset,
- PP_Point /* offset */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_SetResizeMode,
- PP_Graphics2D_Dev_ResizeMode /* resize_mode */)
// Graphics2D, plugin -> host -> plugin
IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_Flush,
- ppapi::ViewData /* view_data */)
+ std::vector<ui::LatencyInfo> /* latency_info */)
IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_FlushAck)
IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_ReadImageData,
@@ -1399,6 +1506,36 @@ IPC_MESSAGE_CONTROL1(PpapiHostMsg_IsolatedFileSystem_BrowserOpen,
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_IsolatedFileSystem_BrowserOpenReply,
std::string /* fsid */)
+// MediaStream -----------------------------------------------------------------
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost,
+ std::string /* track_id */)
+IPC_MESSAGE_CONTROL1(
+ PpapiHostMsg_MediaStreamAudioTrack_Configure,
+ ppapi::MediaStreamAudioTrackShared::Attributes /* attributes */)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaStreamAudioTrack_ConfigureReply)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost,
+ std::string /* track_id */)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamVideoTrack_Create)
+IPC_MESSAGE_CONTROL1(
+ PpapiHostMsg_MediaStreamVideoTrack_Configure,
+ ppapi::MediaStreamVideoTrackShared::Attributes /* attributes */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply,
+ std::string /* track_id */)
+
+// Message for init buffers. It also takes a shared memory handle which is put
+// in the outer ResourceReplyMessage.
+IPC_MESSAGE_CONTROL3(PpapiPluginMsg_MediaStreamTrack_InitBuffers,
+ int32_t /* number_of_buffers */,
+ int32_t /* buffer_size */,
+ bool /* readonly */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer,
+ int32_t /* index */);
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaStreamTrack_EnqueueBuffer,
+ int32_t /* index */);
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
+ std::vector<int32_t> /* indices */);
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamTrack_Close)
+
// NetworkMonitor.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkMonitor_Create)
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkMonitor_NetworkList,
@@ -1749,6 +1886,48 @@ IPC_MESSAGE_CONTROL2(PpapiPluginMsg_OutputProtection_QueryStatusReply,
uint32_t /* link_mask */,
uint32_t /* protection_mask */)
+// VideoDecoder ------------------------------------------------------
+
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Create)
+IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoDecoder_Initialize,
+ ppapi::HostResource /* graphics_context */,
+ PP_VideoProfile /* profile */,
+ bool /* allow_software_fallback */)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_InitializeReply)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDecoder_GetShm,
+ uint32_t /* shm_id */,
+ uint32_t /* shm_size */)
+// On success, a shm handle is passed in the ReplyParams struct.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_GetShmReply,
+ uint32_t /* shm_size */)
+IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoDecoder_Decode,
+ uint32_t /* shm_id */,
+ uint32_t /* size */,
+ int32_t /* decode_id */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_DecodeReply,
+ uint32_t /* shm_id */)
+IPC_MESSAGE_CONTROL4(PpapiPluginMsg_VideoDecoder_RequestTextures,
+ uint32_t /* num_textures */,
+ PP_Size /* size */,
+ uint32_t /* texture_target */,
+ std::vector<gpu::Mailbox> /* mailboxes*/)
+IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDecoder_AssignTextures,
+ PP_Size /* size */,
+ std::vector<uint32_t> /* texture_ids */)
+IPC_MESSAGE_CONTROL2(PpapiPluginMsg_VideoDecoder_PictureReady,
+ int32_t /* decode_id */,
+ uint32_t /* texture_id */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDecoder_RecyclePicture,
+ uint32_t /* texture_id */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_DismissPicture,
+ uint32_t /* texture_id */)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Flush)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_FlushReply)
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Reset)
+IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_ResetReply)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_NotifyError,
+ int32_t /* error */)
+
#if !defined(OS_NACL) && !defined(NACL_WIN64)
// Audio input.
@@ -1865,6 +2044,42 @@ IPC_MESSAGE_CONTROL3(PpapiHostMsg_FlashClipboard_WriteData,
uint32_t /* clipboard_type */,
std::vector<uint32_t> /* formats */,
std::vector<std::string> /* data */)
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashClipboard_GetSequenceNumber,
+ uint32_t /* clipboard_type */)
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashClipboard_GetSequenceNumberReply,
+ uint64_t /* sequence_number */)
+
+// Flash DRM.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_Create)
+
+// Requests the device ID.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetDeviceID)
+// Reply for GetDeviceID which includes the device ID as a string.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetDeviceIDReply,
+ std::string /* id */)
+
+// Requests the HMONITOR corresponding to the monitor on which the instance is
+// displayed.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetHmonitor)
+// Reply message for GetHmonitor which contains the HMONITOR as an int64_t.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetHmonitorReply,
+ int64_t /* hmonitor */)
+
+// Requests the voucher file which is used to verify the integrity of the Flash
+// module. A PPB_FileRef resource will be created.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_GetVoucherFile)
+// Reply message for GetVoucherFile which contains the CreateInfo for a
+// PPB_FileRef which points to the voucher file.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_GetVoucherFileReply,
+ ppapi::FileRefCreateInfo /* file_info */)
+
+// Requests a value indicating whether the monitor on which the instance is
+// displayed is external.
+IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashDRM_MonitorIsExternal)
+// Reply message for MonitorIsExternal which contains the value indicating if
+// the monitor is external.
+IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashDRM_MonitorIsExternalReply,
+ PP_Bool /* is_external */)
// Flash file.
IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFile_Create)
@@ -1882,7 +2097,7 @@ IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_CreateDir,
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_QueryFile,
ppapi::PepperFilePath /* path */)
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_QueryFileReply,
- base::PlatformFileInfo /* file_info */)
+ base::File::Info /* file_info */)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFile_GetDirContents,
ppapi::PepperFilePath /* path */)
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashFile_GetDirContentsReply,
@@ -1903,7 +2118,7 @@ IPC_MESSAGE_CONTROL0(PpapiHostMsg_FlashFullscreen_Create)
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashFullscreen_SetFullscreen,
bool /* fullscreen */)
-// FlashMenu ------------------------------------------------------------------
+// FlashMenu.
// Creates the flash menu with the given data.
IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Create,
@@ -1918,6 +2133,16 @@ IPC_MESSAGE_CONTROL1(PpapiHostMsg_FlashMenu_Show,
IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FlashMenu_ShowReply,
int32_t /* selected_id */)
+// PPB_Flash_MessageLoop.
+IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Create,
+ PP_Instance /* instance */,
+ ppapi::HostResource /* result */)
+IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBFlashMessageLoop_Run,
+ ppapi::HostResource /* flash_message_loop */,
+ int32_t /* result */)
+IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBFlashMessageLoop_Quit,
+ ppapi::HostResource /* flash_message_loop */)
+
// PDF ------------------------------------------------------------------------
// Creates the PDF resource.
@@ -1966,6 +2191,14 @@ IPC_MESSAGE_CONTROL2(PpapiPluginMsg_PDF_GetResourceImageReply,
ppapi::HostResource /* resource_id */,
PP_ImageDataDesc /* image_data_desc */)
+// Called by the plugin when its selection changes.
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetSelectedText,
+ base::string16 /* selected_text */)
+
+// Called by the plugin to set the link under the cursor.
+IPC_MESSAGE_CONTROL1(PpapiHostMsg_PDF_SetLinkUnderCursor,
+ std::string /* url */)
+
// VideoCapture_Dev, plugin -> host
IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Create)
IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StartCapture)
diff --git a/chromium/ppapi/proxy/ppapi_param_traits.cc b/chromium/ppapi/proxy/ppapi_param_traits.cc
index 5ee0a34397a..1623395924e 100644
--- a/chromium/ppapi/proxy/ppapi_param_traits.cc
+++ b/chromium/ppapi/proxy/ppapi_param_traits.cc
@@ -235,7 +235,6 @@ void ParamTraits<ppapi::proxy::SerializedHandle>::Write(Message* m,
ParamTraits<base::SharedMemoryHandle>::Write(m, p.shmem());
break;
case ppapi::proxy::SerializedHandle::SOCKET:
- case ppapi::proxy::SerializedHandle::CHANNEL_HANDLE:
case ppapi::proxy::SerializedHandle::FILE:
ParamTraits<IPC::PlatformFileForTransit>::Write(m, p.descriptor());
break;
@@ -269,18 +268,10 @@ bool ParamTraits<ppapi::proxy::SerializedHandle>::Read(const Message* m,
}
break;
}
- case ppapi::proxy::SerializedHandle::CHANNEL_HANDLE: {
- IPC::PlatformFileForTransit desc;
- if (ParamTraits<IPC::PlatformFileForTransit>::Read(m, iter, &desc)) {
- r->set_channel_handle(desc);
- return true;
- }
- break;
- }
case ppapi::proxy::SerializedHandle::FILE: {
IPC::PlatformFileForTransit desc;
if (ParamTraits<IPC::PlatformFileForTransit>::Read(m, iter, &desc)) {
- r->set_file_handle(desc, header.open_flag);
+ r->set_file_handle(desc, header.open_flags, header.file_io);
return true;
}
break;
@@ -642,4 +633,31 @@ void ParamTraits<ppapi::SocketOptionData>::Log(const param_type& p,
std::string* l) {
}
+// ppapi::CompositorLayerData --------------------------------------------------
+
+// static
+void ParamTraits<ppapi::CompositorLayerData::Transform>::Write(
+ Message* m,
+ const param_type& p) {
+ for (size_t i = 0; i < arraysize(p.matrix); i++)
+ ParamTraits<float>::Write(m, p.matrix[i]);
+}
+
+// static
+bool ParamTraits<ppapi::CompositorLayerData::Transform>::Read(
+ const Message* m,
+ PickleIterator* iter,
+ param_type* r) {
+ for (size_t i = 0; i < arraysize(r->matrix);i++) {
+ if (!ParamTraits<float>::Read(m, iter, &r->matrix[i]))
+ return false;
+ }
+ return true;
+}
+
+void ParamTraits<ppapi::CompositorLayerData::Transform>::Log(
+ const param_type& p,
+ std::string* l) {
+}
+
} // namespace IPC
diff --git a/chromium/ppapi/proxy/ppapi_param_traits.h b/chromium/ppapi/proxy/ppapi_param_traits.h
index 3bf5fb6b696..76dd10df6f8 100644
--- a/chromium/ppapi/proxy/ppapi_param_traits.h
+++ b/chromium/ppapi/proxy/ppapi_param_traits.h
@@ -14,8 +14,10 @@
#include "ppapi/c/pp_rect.h"
#include "ppapi/c/pp_var.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/compositor_layer_data.h"
#include "ppapi/shared_impl/file_path.h"
#include "ppapi/shared_impl/file_ref_create_info.h"
+#include "ppapi/shared_impl/media_stream_video_track_shared.h"
#include "ppapi/shared_impl/ppapi_permissions.h"
#include "ppapi/shared_impl/socket_option_data.h"
@@ -176,6 +178,14 @@ struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::SocketOptionData> {
static void Log(const param_type& p, std::string* l);
};
+template<>
+struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::CompositorLayerData::Transform> {
+ typedef ppapi::CompositorLayerData::Transform param_type;
+ static void Write(Message* m, const param_type& p);
+ static bool Read(const Message* m, PickleIterator* iter, param_type* r);
+ static void Log(const param_type& p, std::string* l);
+};
+
} // namespace IPC
#endif // PPAPI_PROXY_PPAPI_PARAM_TRAITS_H_
diff --git a/chromium/ppapi/proxy/ppb_audio_proxy.cc b/chromium/ppapi/proxy/ppb_audio_proxy.cc
index 58f5abc0d41..d84c3cb6995 100644
--- a/chromium/ppapi/proxy/ppb_audio_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_audio_proxy.cc
@@ -95,6 +95,8 @@ PP_Resource Audio::GetCurrentConfig() {
PP_Bool Audio::StartPlayback() {
if (playing())
return PP_TRUE;
+ if (!PPB_Audio_Shared::IsThreadFunctionReady())
+ return PP_FALSE;
SetStartPlaybackState();
PluginDispatcher::GetForResource(this)->Send(
new PpapiHostMsg_PPBAudio_StartOrStop(
diff --git a/chromium/ppapi/proxy/ppb_broker_proxy.cc b/chromium/ppapi/proxy/ppb_broker_proxy.cc
index 19cd978608f..5463cf3a9ab 100644
--- a/chromium/ppapi/proxy/ppb_broker_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_broker_proxy.cc
@@ -57,11 +57,11 @@ class Broker : public PPB_Broker_API, public Resource {
Broker::Broker(const HostResource& resource)
: Resource(OBJECT_IS_PROXY, resource),
called_connect_(false),
- socket_handle_(base::kInvalidPlatformFileValue) {
+ socket_handle_(base::SyncSocket::kInvalidHandle) {
}
Broker::~Broker() {
- socket_handle_ = base::kInvalidPlatformFileValue;
+ socket_handle_ = base::SyncSocket::kInvalidHandle;
}
PPB_Broker_API* Broker::AsPPB_Broker_API() {
@@ -84,7 +84,7 @@ int32_t Broker::Connect(scoped_refptr<TrackedCallback> connect_callback) {
}
int32_t Broker::GetHandle(int32_t* handle) {
- if (socket_handle_ == base::kInvalidPlatformFileValue)
+ if (socket_handle_ == base::SyncSocket::kInvalidHandle)
return PP_ERROR_FAILED;
*handle = PlatformFileToInt(socket_handle_);
return PP_OK;
@@ -93,7 +93,7 @@ int32_t Broker::GetHandle(int32_t* handle) {
void Broker::ConnectComplete(IPC::PlatformFileForTransit socket_handle,
int32_t result) {
if (result == PP_OK) {
- DCHECK(socket_handle_ == base::kInvalidPlatformFileValue);
+ DCHECK(socket_handle_ == base::SyncSocket::kInvalidHandle);
socket_handle_ = IPC::PlatformFileForTransitToPlatformFile(socket_handle);
} else {
// The caller may still have given us a handle in the failure case.
@@ -197,12 +197,13 @@ void PPB_Broker_Proxy::ConnectCompleteInHost(int32_t result,
IPC::PlatformFileForTransit foreign_socket_handle =
IPC::InvalidPlatformFileForTransit();
if (result == PP_OK) {
- int32_t socket_handle = PlatformFileToInt(base::kInvalidPlatformFileValue);
+ int32_t socket_handle = PlatformFileToInt(base::SyncSocket::kInvalidHandle);
EnterHostFromHostResource<PPB_Broker_API> enter(broker);
if (enter.succeeded())
result = enter.object()->GetHandle(&socket_handle);
DCHECK(result == PP_OK ||
- socket_handle == PlatformFileToInt(base::kInvalidPlatformFileValue));
+ socket_handle ==
+ PlatformFileToInt(base::SyncSocket::kInvalidHandle));
if (result == PP_OK) {
foreign_socket_handle =
diff --git a/chromium/ppapi/proxy/ppb_core_proxy.cc b/chromium/ppapi/proxy/ppb_core_proxy.cc
index 65845aed7be..52f965c1245 100644
--- a/chromium/ppapi/proxy/ppb_core_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_core_proxy.cc
@@ -103,18 +103,20 @@ const PPB_Core* PPB_Core_Proxy::GetPPB_Core_Interface() {
}
bool PPB_Core_Proxy::OnMessageReceived(const IPC::Message& msg) {
+#if defined(OS_NACL)
+ return false;
+#else
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PPB_Core_Proxy, msg)
-#if !defined(OS_NACL)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBCore_AddRefResource,
OnMsgAddRefResource)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBCore_ReleaseResource,
OnMsgReleaseResource)
-#endif
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
// TODO(brettw) handle bad messages!
return handled;
+#endif
}
#if !defined(OS_NACL)
diff --git a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc
index 02e06f76b8f..ba0e505bd46 100644
--- a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.cc
@@ -28,18 +28,10 @@ namespace {
const int32 kCommandBufferSize = 1024 * 1024;
const int32 kTransferBufferSize = 1024 * 1024;
-base::SharedMemoryHandle TransportSHMHandleFromInt(Dispatcher* dispatcher,
- int shm_handle) {
- // TODO(piman): Change trusted interface to return a PP_FileHandle, those
- // casts are ugly.
+base::SharedMemoryHandle TransportSHMHandle(Dispatcher* dispatcher,
+ base::SharedMemory* shm) {
base::PlatformFile source =
-#if defined(OS_WIN)
- reinterpret_cast<HANDLE>(static_cast<intptr_t>(shm_handle));
-#elif defined(OS_POSIX)
- shm_handle;
-#else
- #error Not implemented.
-#endif
+ IPC::PlatformFileForTransitToPlatformFile(shm->handle());
// Don't close the handle, it doesn't belong to us.
return dispatcher->ShareHandleWithRemote(source, false);
}
@@ -76,34 +68,28 @@ PP_Bool Graphics3D::SetGetBuffer(int32_t /* transfer_buffer_id */) {
return PP_FALSE;
}
-gpu::CommandBuffer::State Graphics3D::GetState() {
- return GetErrorState();
-}
-
PP_Bool Graphics3D::Flush(int32_t put_offset) {
return PP_FALSE;
}
-gpu::CommandBuffer::State Graphics3D::FlushSync(int32_t put_offset) {
- return GetErrorState();
-}
-
-int32_t Graphics3D::CreateTransferBuffer(uint32_t size) {
- return PP_FALSE;
+scoped_refptr<gpu::Buffer> Graphics3D::CreateTransferBuffer(
+ uint32_t size,
+ int32_t* id) {
+ *id = -1;
+ return NULL;
}
PP_Bool Graphics3D::DestroyTransferBuffer(int32_t id) {
return PP_FALSE;
}
-PP_Bool Graphics3D::GetTransferBuffer(int32_t id,
- int* shm_handle,
- uint32_t* shm_size) {
- return PP_FALSE;
+gpu::CommandBuffer::State Graphics3D::WaitForTokenInRange(int32_t start,
+ int32_t end) {
+ return GetErrorState();
}
-gpu::CommandBuffer::State Graphics3D::FlushSyncFast(int32_t put_offset,
- int32_t last_known_get) {
+gpu::CommandBuffer::State Graphics3D::WaitForGetOffsetInRange(int32_t start,
+ int32_t end) {
return GetErrorState();
}
@@ -191,18 +177,15 @@ bool PPB_Graphics3D_Proxy::OnMessageReceived(const IPC::Message& msg) {
OnMsgCreate)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
OnMsgSetGetBuffer)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_GetState,
- OnMsgGetState)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_Flush,
- OnMsgFlush)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_AsyncFlush,
- OnMsgAsyncFlush)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange,
+ OnMsgWaitForTokenInRange)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange,
+ OnMsgWaitForGetOffsetInRange)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_AsyncFlush, OnMsgAsyncFlush)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
OnMsgCreateTransferBuffer)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
OnMsgDestroyTransferBuffer)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_GetTransferBuffer,
- OnMsgGetTransferBuffer)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
OnMsgSwapBuffers)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_InsertSyncPoint,
@@ -247,29 +230,33 @@ void PPB_Graphics3D_Proxy::OnMsgSetGetBuffer(
enter.object()->SetGetBuffer(transfer_buffer_id);
}
-void PPB_Graphics3D_Proxy::OnMsgGetState(const HostResource& context,
- gpu::CommandBuffer::State* state,
- bool* success) {
+void PPB_Graphics3D_Proxy::OnMsgWaitForTokenInRange(
+ const HostResource& context,
+ int32 start,
+ int32 end,
+ gpu::CommandBuffer::State* state,
+ bool* success) {
EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
if (enter.failed()) {
*success = false;
return;
}
- *state = enter.object()->GetState();
+ *state = enter.object()->WaitForTokenInRange(start, end);
*success = true;
}
-void PPB_Graphics3D_Proxy::OnMsgFlush(const HostResource& context,
- int32 put_offset,
- int32 last_known_get,
- gpu::CommandBuffer::State* state,
- bool* success) {
+void PPB_Graphics3D_Proxy::OnMsgWaitForGetOffsetInRange(
+ const HostResource& context,
+ int32 start,
+ int32 end,
+ gpu::CommandBuffer::State* state,
+ bool* success) {
EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
if (enter.failed()) {
*success = false;
return;
}
- *state = enter.object()->FlushSyncFast(put_offset, last_known_get);
+ *state = enter.object()->WaitForGetOffsetInRange(start, end);
*success = true;
}
@@ -283,12 +270,24 @@ void PPB_Graphics3D_Proxy::OnMsgAsyncFlush(const HostResource& context,
void PPB_Graphics3D_Proxy::OnMsgCreateTransferBuffer(
const HostResource& context,
uint32 size,
- int32* id) {
+ int32* id,
+ ppapi::proxy::SerializedHandle* transfer_buffer) {
+ transfer_buffer->set_null_shmem();
EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
- if (enter.succeeded())
- *id = enter.object()->CreateTransferBuffer(size);
- else
+ if (enter.succeeded()) {
+ scoped_refptr<gpu::Buffer> buffer =
+ enter.object()->CreateTransferBuffer(size, id);
+ if (!buffer)
+ return;
+ gpu::SharedMemoryBufferBacking* backing =
+ static_cast<gpu::SharedMemoryBufferBacking*>(buffer->backing());
+ DCHECK(backing && backing->shared_memory());
+ transfer_buffer->set_shmem(
+ TransportSHMHandle(dispatcher(), backing->shared_memory()),
+ buffer->size());
+ } else {
*id = -1;
+ }
}
void PPB_Graphics3D_Proxy::OnMsgDestroyTransferBuffer(
@@ -299,23 +298,6 @@ void PPB_Graphics3D_Proxy::OnMsgDestroyTransferBuffer(
enter.object()->DestroyTransferBuffer(id);
}
-void PPB_Graphics3D_Proxy::OnMsgGetTransferBuffer(
- const HostResource& context,
- int32 id,
- ppapi::proxy::SerializedHandle* transfer_buffer) {
- transfer_buffer->set_null_shmem();
-
- EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
- int shm_handle = 0;
- uint32_t shm_size = 0;
- if (enter.succeeded() &&
- enter.object()->GetTransferBuffer(id, &shm_handle, &shm_size)) {
- transfer_buffer->set_shmem(
- TransportSHMHandleFromInt(dispatcher(), shm_handle),
- shm_size);
- }
-}
-
void PPB_Graphics3D_Proxy::OnMsgSwapBuffers(const HostResource& context) {
EnterHostFromHostResourceForceCallback<PPB_Graphics3D_API> enter(
context, callback_factory_,
diff --git a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h
index 18ba9dd5e3c..e66405cc99b 100644
--- a/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h
+++ b/chromium/ppapi/proxy/ppb_graphics_3d_proxy.h
@@ -12,6 +12,7 @@
#include "ppapi/c/pp_graphics_3d.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/proxy/interface_proxy.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
#include "ppapi/proxy/proxy_completion_callback_factory.h"
#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
#include "ppapi/shared_impl/resource.h"
@@ -26,7 +27,7 @@ namespace proxy {
class SerializedHandle;
class PpapiCommandBufferProxy;
-class Graphics3D : public PPB_Graphics3D_Shared {
+class PPAPI_PROXY_EXPORT Graphics3D : public PPB_Graphics3D_Shared {
public:
explicit Graphics3D(const HostResource& resource);
virtual ~Graphics3D();
@@ -35,17 +36,15 @@ class Graphics3D : public PPB_Graphics3D_Shared {
// Graphics3DTrusted API. These are not implemented in the proxy.
virtual PP_Bool SetGetBuffer(int32_t shm_id) OVERRIDE;
- virtual gpu::CommandBuffer::State GetState() OVERRIDE;
virtual PP_Bool Flush(int32_t put_offset) OVERRIDE;
- virtual gpu::CommandBuffer::State FlushSync(int32_t put_offset) OVERRIDE;
- virtual int32_t CreateTransferBuffer(uint32_t size) OVERRIDE;
+ virtual scoped_refptr<gpu::Buffer> CreateTransferBuffer(uint32_t size,
+ int32* id) OVERRIDE;
virtual PP_Bool DestroyTransferBuffer(int32_t id) OVERRIDE;
- virtual PP_Bool GetTransferBuffer(int32_t id,
- int* shm_handle,
- uint32_t* shm_size) OVERRIDE;
- virtual gpu::CommandBuffer::State FlushSyncFast(
- int32_t put_offset,
- int32_t last_known_get) OVERRIDE;
+ virtual gpu::CommandBuffer::State WaitForTokenInRange(int32_t start,
+ int32_t end) OVERRIDE;
+ virtual gpu::CommandBuffer::State WaitForGetOffsetInRange(int32_t start,
+ int32_t end)
+ OVERRIDE;
virtual uint32_t InsertSyncPoint() OVERRIDE;
private:
@@ -81,24 +80,24 @@ class PPB_Graphics3D_Proxy : public InterfaceProxy {
HostResource* result);
void OnMsgSetGetBuffer(const HostResource& context,
int32 id);
- void OnMsgGetState(const HostResource& context,
- gpu::CommandBuffer::State* state,
- bool* success);
- void OnMsgFlush(const HostResource& context,
- int32 put_offset,
- int32 last_known_get,
- gpu::CommandBuffer::State* state,
- bool* success);
- void OnMsgAsyncFlush(const HostResource& context,
- int32 put_offset);
- void OnMsgCreateTransferBuffer(const HostResource& context,
- uint32 size,
- int32* id);
+ void OnMsgWaitForTokenInRange(const HostResource& context,
+ int32 start,
+ int32 end,
+ gpu::CommandBuffer::State* state,
+ bool* success);
+ void OnMsgWaitForGetOffsetInRange(const HostResource& context,
+ int32 start,
+ int32 end,
+ gpu::CommandBuffer::State* state,
+ bool* success);
+ void OnMsgAsyncFlush(const HostResource& context, int32 put_offset);
+ void OnMsgCreateTransferBuffer(
+ const HostResource& context,
+ uint32 size,
+ int32* id,
+ ppapi::proxy::SerializedHandle* transfer_buffer);
void OnMsgDestroyTransferBuffer(const HostResource& context,
int32 id);
- void OnMsgGetTransferBuffer(const HostResource& context,
- int32 id,
- ppapi::proxy::SerializedHandle* transfer_buffer);
void OnMsgSwapBuffers(const HostResource& context);
void OnMsgInsertSyncPoint(const HostResource& context, uint32* sync_point);
// Renderer->plugin message handlers.
diff --git a/chromium/ppapi/proxy/ppb_image_data_proxy.cc b/chromium/ppapi/proxy/ppb_image_data_proxy.cc
index c9d61f9feae..4ed4442ceb4 100644
--- a/chromium/ppapi/proxy/ppb_image_data_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_image_data_proxy.cc
@@ -416,8 +416,6 @@ SkCanvas* PlatformImageData::GetCanvas() {
ImageHandle PlatformImageData::NullHandle() {
#if defined(OS_WIN)
return NULL;
-#elif defined(TOOLKIT_GTK)
- return 0;
#else
return ImageHandle();
#endif
@@ -426,8 +424,6 @@ ImageHandle PlatformImageData::NullHandle() {
ImageHandle PlatformImageData::HandleFromInt(int32_t i) {
#if defined(OS_WIN)
return reinterpret_cast<ImageHandle>(i);
-#elif defined(TOOLKIT_GTK)
- return static_cast<ImageHandle>(i);
#else
return ImageHandle(i, false);
#endif
@@ -607,14 +603,6 @@ PP_Resource PPB_ImageData_Proxy::CreateImageData(
#if defined(OS_WIN)
*image_handle = dispatcher->ShareHandleWithRemote(
reinterpret_cast<HANDLE>(static_cast<intptr_t>(local_fd)), false);
-#elif defined(TOOLKIT_GTK)
- // On X Windows, a PlatformImageData is backed by a SysV shared memory key,
- // so embed that in a fake PlatformFileForTransit and don't share it across
- // processes.
- if (type == PPB_ImageData_Shared::PLATFORM)
- *image_handle = IPC::PlatformFileForTransit(local_fd, false);
- else
- *image_handle = dispatcher->ShareHandleWithRemote(local_fd, false);
#elif defined(OS_POSIX)
*image_handle = dispatcher->ShareHandleWithRemote(local_fd, false);
#else
@@ -632,6 +620,9 @@ void PPB_ImageData_Proxy::OnHostMsgCreatePlatform(
HostResource* result,
PP_ImageDataDesc* desc,
ImageHandle* result_image_handle) {
+ // Clear |desc| so we don't send unitialized memory to the plugin.
+ // https://crbug.com/391023.
+ *desc = PP_ImageDataDesc();
IPC::PlatformFileForTransit image_handle;
uint32_t byte_count;
PP_Resource resource =
@@ -643,12 +634,7 @@ void PPB_ImageData_Proxy::OnHostMsgCreatePlatform(
desc, &image_handle, &byte_count);
result->SetHostResource(instance, resource);
if (resource) {
-#if defined(TOOLKIT_GTK)
- // On X Windows ImageHandle is a SysV shared memory key.
- *result_image_handle = image_handle.fd;
-#else
*result_image_handle = image_handle;
-#endif
} else {
*result_image_handle = PlatformImageData::NullHandle();
}
@@ -662,6 +648,9 @@ void PPB_ImageData_Proxy::OnHostMsgCreateSimple(
HostResource* result,
PP_ImageDataDesc* desc,
ppapi::proxy::SerializedHandle* result_image_handle) {
+ // Clear |desc| so we don't send unitialized memory to the plugin.
+ // https://crbug.com/391023.
+ *desc = PP_ImageDataDesc();
IPC::PlatformFileForTransit image_handle;
uint32_t byte_count;
PP_Resource resource =
diff --git a/chromium/ppapi/proxy/ppb_instance_proxy.cc b/chromium/ppapi/proxy/ppb_instance_proxy.cc
index 5d0e7ed3eb0..4f64e917af4 100644
--- a/chromium/ppapi/proxy/ppb_instance_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_instance_proxy.cc
@@ -18,7 +18,7 @@
#include "ppapi/proxy/browser_font_singleton_resource.h"
#include "ppapi/proxy/content_decryptor_private_serializer.h"
#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/extensions_common_resource.h"
+#include "ppapi/proxy/file_mapping_resource.h"
#include "ppapi/proxy/flash_clipboard_resource.h"
#include "ppapi/proxy/flash_file_resource.h"
#include "ppapi/proxy/flash_fullscreen_resource.h"
@@ -26,17 +26,20 @@
#include "ppapi/proxy/gamepad_resource.h"
#include "ppapi/proxy/host_dispatcher.h"
#include "ppapi/proxy/isolated_file_system_private_resource.h"
+#include "ppapi/proxy/message_handler.h"
#include "ppapi/proxy/network_proxy_resource.h"
#include "ppapi/proxy/pdf_resource.h"
#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/serialized_var.h"
#include "ppapi/proxy/truetype_font_singleton_resource.h"
+#include "ppapi/proxy/uma_private_resource.h"
#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/ppb_url_util_shared.h"
#include "ppapi/shared_impl/ppb_view_shared.h"
#include "ppapi/shared_impl/var.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_compositor_api.h"
#include "ppapi/thunk/ppb_graphics_2d_api.h"
#include "ppapi/thunk/ppb_graphics_3d_api.h"
#include "ppapi/thunk/thunk.h"
@@ -48,6 +51,7 @@
using ppapi::thunk::EnterInstanceNoLock;
using ppapi::thunk::EnterResourceNoLock;
+using ppapi::thunk::PPB_Compositor_API;
using ppapi::thunk::PPB_Graphics2D_API;
using ppapi::thunk::PPB_Graphics3D_API;
using ppapi::thunk::PPB_Instance_API;
@@ -57,13 +61,11 @@ namespace proxy {
namespace {
+#if !defined(OS_NACL)
const char kSerializationError[] = "Failed to convert a PostMessage "
"argument from a PP_Var to a Javascript value. It may have cycles or be of "
"an unsupported type.";
-
-InterfaceProxy* CreateInstanceProxy(Dispatcher* dispatcher) {
- return new PPB_Instance_Proxy(dispatcher);
-}
+#endif
void RequestSurroundingText(PP_Instance instance) {
PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
@@ -96,18 +98,6 @@ PPB_Instance_Proxy::PPB_Instance_Proxy(Dispatcher* dispatcher)
PPB_Instance_Proxy::~PPB_Instance_Proxy() {
}
-// static
-const InterfaceProxy::Info* PPB_Instance_Proxy::GetInfoPrivate() {
- static const Info info = {
- ppapi::thunk::GetPPB_Instance_Private_0_1_Thunk(),
- PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
- API_ID_NONE, // 1_0 is the canonical one.
- false,
- &CreateInstanceProxy,
- };
- return &info;
-}
-
bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
// Prevent the dispatcher from going away during a call to ExecuteScript.
// This must happen OUTSIDE of ExecuteScript since the SerializedVars use
@@ -139,6 +129,14 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
OnHostMsgExecuteScript)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetDefaultCharSet,
OnHostMsgGetDefaultCharSet)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetPluginToHandleFindRequests,
+ OnHostMsgSetPluginToHandleFindRequests);
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_NumberOfFindResultsChanged,
+ OnHostMsgNumberOfFindResultsChanged)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SelectFindResultChanged,
+ OnHostMsgSelectFindResultChanged)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetTickmarks,
+ OnHostMsgSetTickmarks)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PostMessage,
OnHostMsgPostMessage)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetFullscreen,
@@ -149,6 +147,8 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
OnHostMsgRequestInputEvents)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ClearInputEvents,
OnHostMsgClearInputEvents)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_StartTrackingLatency,
+ OnHostMsgStartTrackingLatency)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_LockMouse,
OnHostMsgLockMouse)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_UnlockMouse,
@@ -175,8 +175,12 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
OnHostMsgGetPluginInstanceURL)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginReferrerURL,
OnHostMsgGetPluginReferrerURL)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionCreated,
- OnHostMsgSessionCreated)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolved,
+ OnHostMsgPromiseResolved)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseResolvedWithSession,
+ OnHostMsgPromiseResolvedWithSession)
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PromiseRejected,
+ OnHostMsgPromiseRejected)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionMessage,
OnHostMsgSessionMessage)
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SessionReady,
@@ -230,9 +234,10 @@ PP_Bool PPB_Instance_Proxy::BindGraphics(PP_Instance instance,
// We need to pass different resource to Graphics 2D and 3D right now. Once
// 3D is migrated to the new design, we should be able to unify this.
+ EnterResourceNoLock<PPB_Compositor_API> enter_compositor(device, false);
EnterResourceNoLock<PPB_Graphics2D_API> enter_2d(device, false);
EnterResourceNoLock<PPB_Graphics3D_API> enter_3d(device, false);
- if (enter_2d.succeeded()) {
+ if (enter_compositor.succeeded() || enter_2d.succeeded()) {
dispatcher()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
API_ID_PPB_INSTANCE, instance, pp_resource));
return PP_TRUE;
@@ -323,15 +328,30 @@ PP_Var PPB_Instance_Proxy::GetDefaultCharSet(PP_Instance instance) {
return result.Return(dispatcher);
}
+void PPB_Instance_Proxy::SetPluginToHandleFindRequests(PP_Instance instance) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_SetPluginToHandleFindRequests(
+ API_ID_PPB_INSTANCE, instance));
+}
+
void PPB_Instance_Proxy::NumberOfFindResultsChanged(PP_Instance instance,
int32_t total,
PP_Bool final_result) {
- NOTIMPLEMENTED(); // Not proxied yet.
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_NumberOfFindResultsChanged(
+ API_ID_PPB_INSTANCE, instance, total, final_result));
}
void PPB_Instance_Proxy::SelectedFindResultChanged(PP_Instance instance,
int32_t index) {
- NOTIMPLEMENTED(); // Not proxied yet.
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_SelectFindResultChanged(
+ API_ID_PPB_INSTANCE, instance, index));
+}
+
+void PPB_Instance_Proxy::SetTickmarks(PP_Instance instance,
+ const PP_Rect* tickmarks,
+ uint32_t count) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_SetTickmarks(
+ API_ID_PPB_INSTANCE, instance,
+ std::vector<PP_Rect>(tickmarks, tickmarks + count)));
}
PP_Bool PPB_Instance_Proxy::IsFullscreen(PP_Instance instance) {
@@ -375,8 +395,8 @@ Resource* PPB_Instance_Proxy::GetSingletonResource(PP_Instance instance,
case BROKER_SINGLETON_ID:
new_singleton = new BrokerResource(connection, instance);
break;
- case EXTENSIONS_COMMON_SINGLETON_ID:
- new_singleton = new ExtensionsCommonResource(connection, instance);
+ case FILE_MAPPING_SINGLETON_ID:
+ new_singleton = new FileMappingResource(connection, instance);
break;
case GAMEPAD_SINGLETON_ID:
new_singleton = new GamepadResource(connection, instance);
@@ -391,6 +411,9 @@ Resource* PPB_Instance_Proxy::GetSingletonResource(PP_Instance instance,
case TRUETYPE_FONT_SINGLETON_ID:
new_singleton = new TrueTypeFontSingletonResource(connection, instance);
break;
+ case UMA_SINGLETON_ID:
+ new_singleton = new UMAPrivateResource(connection, instance);
+ break;
// Flash/trusted resources aren't needed for NaCl.
#if !defined(OS_NACL) && !defined(NACL_WIN64)
case BROWSER_FONT_SINGLETON_ID:
@@ -463,6 +486,11 @@ void PPB_Instance_Proxy::ClearInputEventRequest(PP_Instance instance,
API_ID_PPB_INSTANCE, instance, event_classes));
}
+void PPB_Instance_Proxy::StartTrackingLatency(PP_Instance instance) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_StartTrackingLatency(
+ API_ID_PPB_INSTANCE, instance));
+}
+
void PPB_Instance_Proxy::ZoomChanged(PP_Instance instance,
double factor) {
// Not proxied yet.
@@ -542,46 +570,76 @@ PP_Var PPB_Instance_Proxy::GetPluginReferrerURL(
components);
}
-void PPB_Instance_Proxy::SessionCreated(PP_Instance instance,
- uint32_t session_id,
- PP_Var web_session_id) {
- dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionCreated(
+void PPB_Instance_Proxy::PromiseResolved(PP_Instance instance,
+ uint32 promise_id) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseResolved(
+ API_ID_PPB_INSTANCE, instance, promise_id));
+}
+
+void PPB_Instance_Proxy::PromiseResolvedWithSession(PP_Instance instance,
+ uint32 promise_id,
+ PP_Var web_session_id_var) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseResolvedWithSession(
API_ID_PPB_INSTANCE,
instance,
- session_id,
- SerializedVarSendInput(dispatcher(), web_session_id)));
+ promise_id,
+ SerializedVarSendInput(dispatcher(), web_session_id_var)));
+}
+
+void PPB_Instance_Proxy::PromiseRejected(PP_Instance instance,
+ uint32 promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) {
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_PromiseRejected(
+ API_ID_PPB_INSTANCE,
+ instance,
+ promise_id,
+ exception_code,
+ system_code,
+ SerializedVarSendInput(dispatcher(), error_description_var)));
}
void PPB_Instance_Proxy::SessionMessage(PP_Instance instance,
- uint32_t session_id,
- PP_Var message,
- PP_Var destination_url) {
+ PP_Var web_session_id_var,
+ PP_Var message_var,
+ PP_Var destination_url_var) {
dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionMessage(
API_ID_PPB_INSTANCE,
instance,
- session_id,
- SerializedVarSendInput(dispatcher(), message),
- SerializedVarSendInput(dispatcher(), destination_url)));
+ SerializedVarSendInput(dispatcher(), web_session_id_var),
+ SerializedVarSendInput(dispatcher(), message_var),
+ SerializedVarSendInput(dispatcher(), destination_url_var)));
}
void PPB_Instance_Proxy::SessionReady(PP_Instance instance,
- uint32_t session_id) {
+ PP_Var web_session_id_var) {
dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionReady(
- API_ID_PPB_INSTANCE, instance, session_id));
+ API_ID_PPB_INSTANCE,
+ instance,
+ SerializedVarSendInput(dispatcher(), web_session_id_var)));
}
void PPB_Instance_Proxy::SessionClosed(PP_Instance instance,
- uint32_t session_id) {
+ PP_Var web_session_id_var) {
dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionClosed(
- API_ID_PPB_INSTANCE, instance, session_id));
+ API_ID_PPB_INSTANCE,
+ instance,
+ SerializedVarSendInput(dispatcher(), web_session_id_var)));
}
void PPB_Instance_Proxy::SessionError(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_code) {
+ PP_Var web_session_id_var,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) {
dispatcher()->Send(new PpapiHostMsg_PPBInstance_SessionError(
- API_ID_PPB_INSTANCE, instance, session_id, media_error, system_code));
+ API_ID_PPB_INSTANCE,
+ instance,
+ SerializedVarSendInput(dispatcher(), web_session_id_var),
+ exception_code,
+ system_code,
+ SerializedVarSendInput(dispatcher(), error_description_var)));
}
void PPB_Instance_Proxy::DeliverBlock(PP_Instance instance,
@@ -717,6 +775,32 @@ void PPB_Instance_Proxy::PostMessage(PP_Instance instance,
instance)));
}
+int32_t PPB_Instance_Proxy::RegisterMessageHandler(
+ PP_Instance instance,
+ void* user_data,
+ const PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) {
+ InstanceData* data =
+ static_cast<PluginDispatcher*>(dispatcher())->GetInstanceData(instance);
+ if (!data)
+ return PP_ERROR_BADARGUMENT;
+
+ int32_t result = PP_ERROR_FAILED;
+ scoped_ptr<MessageHandler> message_handler = MessageHandler::Create(
+ instance, handler, user_data, message_loop, &result);
+ if (message_handler)
+ data->message_handler = message_handler.Pass();
+ return result;
+}
+
+void PPB_Instance_Proxy::UnregisterMessageHandler(PP_Instance instance) {
+ InstanceData* data =
+ static_cast<PluginDispatcher*>(dispatcher())->GetInstanceData(instance);
+ if (!data)
+ return;
+ data->message_handler.reset();
+}
+
PP_Bool PPB_Instance_Proxy::SetCursor(PP_Instance instance,
PP_MouseCursor_Type type,
PP_Resource image,
@@ -905,6 +989,52 @@ void PPB_Instance_Proxy::OnHostMsgGetDefaultCharSet(
result.Return(dispatcher(), enter.functions()->GetDefaultCharSet(instance));
}
+void PPB_Instance_Proxy::OnHostMsgSetPluginToHandleFindRequests(
+ PP_Instance instance) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded())
+ enter.functions()->SetPluginToHandleFindRequests(instance);
+}
+
+void PPB_Instance_Proxy::OnHostMsgNumberOfFindResultsChanged(
+ PP_Instance instance,
+ int32_t total,
+ PP_Bool final_result) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded()) {
+ enter.functions()->NumberOfFindResultsChanged(
+ instance, total, final_result);
+ }
+}
+
+void PPB_Instance_Proxy::OnHostMsgSelectFindResultChanged(
+ PP_Instance instance,
+ int32_t index) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded())
+ enter.functions()->SelectedFindResultChanged(instance, index);
+}
+
+void PPB_Instance_Proxy::OnHostMsgSetTickmarks(
+ PP_Instance instance,
+ const std::vector<PP_Rect>& tickmarks) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ const PP_Rect* array = tickmarks.empty() ? NULL : &tickmarks[0];
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded()) {
+ enter.functions()->SetTickmarks(instance,
+ array,
+ static_cast<uint32_t>(tickmarks.size()));
+ }
+}
+
void PPB_Instance_Proxy::OnHostMsgSetFullscreen(PP_Instance instance,
PP_Bool fullscreen,
PP_Bool* result) {
@@ -941,6 +1071,12 @@ void PPB_Instance_Proxy::OnHostMsgClearInputEvents(PP_Instance instance,
enter.functions()->ClearInputEventRequest(instance, event_classes);
}
+void PPB_Instance_Proxy::OnHostMsgStartTrackingLatency(PP_Instance instance) {
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded())
+ enter.functions()->StartTrackingLatency(instance);
+}
+
void PPB_Instance_Proxy::OnHostMsgPostMessage(
PP_Instance instance,
SerializedVarReceiveInput message) {
@@ -1048,22 +1184,50 @@ void PPB_Instance_Proxy::OnHostMsgGetPluginReferrerURL(
}
}
-void PPB_Instance_Proxy::OnHostMsgSessionCreated(
+void PPB_Instance_Proxy::OnHostMsgPromiseResolved(PP_Instance instance,
+ uint32_t promise_id) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded()) {
+ enter.functions()->PromiseResolved(instance, promise_id);
+ }
+}
+
+void PPB_Instance_Proxy::OnHostMsgPromiseResolvedWithSession(
PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
SerializedVarReceiveInput web_session_id) {
if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
- enter.functions()->SessionCreated(
- instance, session_id, web_session_id.Get(dispatcher()));
+ enter.functions()->PromiseResolvedWithSession(
+ instance, promise_id, web_session_id.Get(dispatcher()));
+ }
+}
+
+void PPB_Instance_Proxy::OnHostMsgPromiseRejected(
+ PP_Instance instance,
+ uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ SerializedVarReceiveInput error_description) {
+ if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
+ return;
+ EnterInstanceNoLock enter(instance);
+ if (enter.succeeded()) {
+ enter.functions()->PromiseRejected(instance,
+ promise_id,
+ exception_code,
+ system_code,
+ error_description.Get(dispatcher()));
}
}
void PPB_Instance_Proxy::OnHostMsgSessionMessage(
PP_Instance instance,
- uint32_t session_id,
+ SerializedVarReceiveInput web_session_id,
SerializedVarReceiveInput message,
SerializedVarReceiveInput destination_url) {
if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
@@ -1071,42 +1235,50 @@ void PPB_Instance_Proxy::OnHostMsgSessionMessage(
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
enter.functions()->SessionMessage(instance,
- session_id,
+ web_session_id.Get(dispatcher()),
message.Get(dispatcher()),
destination_url.Get(dispatcher()));
}
}
-void PPB_Instance_Proxy::OnHostMsgSessionReady(PP_Instance instance,
- uint32_t session_id) {
+void PPB_Instance_Proxy::OnHostMsgSessionReady(
+ PP_Instance instance,
+ SerializedVarReceiveInput web_session_id) {
if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
- enter.functions()->SessionReady(instance, session_id);
+ enter.functions()->SessionReady(instance, web_session_id.Get(dispatcher()));
}
}
-void PPB_Instance_Proxy::OnHostMsgSessionClosed(PP_Instance instance,
- uint32_t session_id) {
+void PPB_Instance_Proxy::OnHostMsgSessionClosed(
+ PP_Instance instance,
+ SerializedVarReceiveInput web_session_id) {
if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
- enter.functions()->SessionClosed(instance, session_id);
+ enter.functions()->SessionClosed(instance,
+ web_session_id.Get(dispatcher()));
}
}
-void PPB_Instance_Proxy::OnHostMsgSessionError(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_error) {
+void PPB_Instance_Proxy::OnHostMsgSessionError(
+ PP_Instance instance,
+ SerializedVarReceiveInput web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ SerializedVarReceiveInput error_description) {
if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
- enter.functions()->SessionError(
- instance, session_id, media_error, system_error);
+ enter.functions()->SessionError(instance,
+ web_session_id.Get(dispatcher()),
+ exception_code,
+ system_code,
+ error_description.Get(dispatcher()));
}
}
@@ -1211,8 +1383,6 @@ void PPB_Instance_Proxy::OnHostMsgSetCursor(
void PPB_Instance_Proxy::OnHostMsgSetTextInputType(PP_Instance instance,
PP_TextInput_Type type) {
- if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
- return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded())
enter.functions()->SetTextInputType(instance, type);
@@ -1222,8 +1392,6 @@ void PPB_Instance_Proxy::OnHostMsgUpdateCaretPosition(
PP_Instance instance,
const PP_Rect& caret,
const PP_Rect& bounding_box) {
- if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
- return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded())
enter.functions()->UpdateCaretPosition(instance, caret, bounding_box);
@@ -1231,8 +1399,6 @@ void PPB_Instance_Proxy::OnHostMsgUpdateCaretPosition(
void PPB_Instance_Proxy::OnHostMsgCancelCompositionText(PP_Instance instance) {
EnterInstanceNoLock enter(instance);
- if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
- return;
if (enter.succeeded())
enter.functions()->CancelCompositionText(instance);
}
@@ -1242,8 +1408,6 @@ void PPB_Instance_Proxy::OnHostMsgUpdateSurroundingText(
const std::string& text,
uint32_t caret,
uint32_t anchor) {
- if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
- return;
EnterInstanceNoLock enter(instance);
if (enter.succeeded()) {
enter.functions()->UpdateSurroundingText(instance, text.c_str(), caret,
diff --git a/chromium/ppapi/proxy/ppb_instance_proxy.h b/chromium/ppapi/proxy/ppb_instance_proxy.h
index 12e56b938e5..24086741d54 100644
--- a/chromium/ppapi/proxy/ppb_instance_proxy.h
+++ b/chromium/ppapi/proxy/ppb_instance_proxy.h
@@ -39,8 +39,6 @@ class PPB_Instance_Proxy : public InterfaceProxy,
PPB_Instance_Proxy(Dispatcher* dispatcher);
virtual ~PPB_Instance_Proxy();
- static const Info* GetInfoPrivate();
-
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
@@ -60,11 +58,15 @@ class PPB_Instance_Proxy : public InterfaceProxy,
virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance)
OVERRIDE;
virtual PP_Var GetDefaultCharSet(PP_Instance instance) OVERRIDE;
+ virtual void SetPluginToHandleFindRequests(PP_Instance instance) OVERRIDE;
virtual void NumberOfFindResultsChanged(PP_Instance instance,
int32_t total,
PP_Bool final_result) OVERRIDE;
virtual void SelectedFindResultChanged(PP_Instance instance,
int32_t index) OVERRIDE;
+ virtual void SetTickmarks(PP_Instance instance,
+ const PP_Rect* tickmarks,
+ uint32_t count) OVERRIDE;
virtual PP_Bool IsFullscreen(PP_Instance instance) OVERRIDE;
virtual PP_Bool SetFullscreen(PP_Instance instance,
PP_Bool fullscreen) OVERRIDE;
@@ -76,6 +78,7 @@ class PPB_Instance_Proxy : public InterfaceProxy,
uint32_t event_classes) OVERRIDE;
virtual int32_t RequestFilteringInputEvents(PP_Instance instance,
uint32_t event_classes) OVERRIDE;
+ virtual void StartTrackingLatency(PP_Instance instance) OVERRIDE;
virtual void ClearInputEventRequest(PP_Instance instance,
uint32_t event_classes) OVERRIDE;
virtual void ZoomChanged(PP_Instance instance, double factor) OVERRIDE;
@@ -83,6 +86,11 @@ class PPB_Instance_Proxy : public InterfaceProxy,
double minimum_factor,
double maximium_factor) OVERRIDE;
virtual void PostMessage(PP_Instance instance, PP_Var message) OVERRIDE;
+ virtual int32_t RegisterMessageHandler(PP_Instance instance,
+ void* user_data,
+ const PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) OVERRIDE;
+ virtual void UnregisterMessageHandler(PP_Instance instance) OVERRIDE;
virtual PP_Bool SetCursor(PP_Instance instance,
PP_MouseCursor_Type type,
PP_Resource image,
@@ -117,20 +125,29 @@ class PPB_Instance_Proxy : public InterfaceProxy,
virtual PP_Var GetPluginReferrerURL(
PP_Instance instance,
PP_URLComponents_Dev* components) OVERRIDE;
- virtual void SessionCreated(PP_Instance instance,
- uint32_t session_id,
- PP_Var web_session_id) OVERRIDE;
+ virtual void PromiseResolved(PP_Instance instance,
+ uint32 promise_id) OVERRIDE;
+ virtual void PromiseResolvedWithSession(PP_Instance instance,
+ uint32 promise_id,
+ PP_Var web_session_id_var) OVERRIDE;
+ virtual void PromiseRejected(PP_Instance instance,
+ uint32 promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) OVERRIDE;
virtual void SessionMessage(PP_Instance instance,
- uint32_t session_id,
- PP_Var message,
- PP_Var destination_url) OVERRIDE;
- virtual void SessionReady(PP_Instance instance, uint32_t session_id) OVERRIDE;
+ PP_Var web_session_id_var,
+ PP_Var message_var,
+ PP_Var destination_url_var) OVERRIDE;
+ virtual void SessionReady(PP_Instance instance,
+ PP_Var web_session_id_var) OVERRIDE;
virtual void SessionClosed(PP_Instance instance,
- uint32_t session_id) OVERRIDE;
+ PP_Var web_session_id_var) OVERRIDE;
virtual void SessionError(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_code) OVERRIDE;
+ PP_Var web_session_id_var,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) OVERRIDE;
virtual void DeliverBlock(PP_Instance instance,
PP_Resource decrypted_block,
const PP_DecryptedBlockInfo* block_info) OVERRIDE;
@@ -174,6 +191,14 @@ class PPB_Instance_Proxy : public InterfaceProxy,
uint32_t *result);
void OnHostMsgGetDefaultCharSet(PP_Instance instance,
SerializedVarReturnValue result);
+ void OnHostMsgSetPluginToHandleFindRequests(PP_Instance instance);
+ void OnHostMsgNumberOfFindResultsChanged(PP_Instance instance,
+ int32_t total,
+ PP_Bool final_result);
+ void OnHostMsgSelectFindResultChanged(PP_Instance instance,
+ int32_t index);
+ void OnHostMsgSetTickmarks(PP_Instance instance,
+ const std::vector<PP_Rect>& tickmarks);
void OnHostMsgSetFullscreen(PP_Instance instance,
PP_Bool fullscreen,
PP_Bool* result);
@@ -183,6 +208,7 @@ class PPB_Instance_Proxy : public InterfaceProxy,
void OnHostMsgRequestInputEvents(PP_Instance instance,
bool is_filtering,
uint32_t event_classes);
+ void OnHostMsgStartTrackingLatency(PP_Instance instance);
void OnHostMsgClearInputEvents(PP_Instance instance,
uint32_t event_classes);
void OnHostMsgPostMessage(PP_Instance instance,
@@ -221,22 +247,34 @@ class PPB_Instance_Proxy : public InterfaceProxy,
SerializedVarReturnValue result);
void OnHostMsgGetPluginReferrerURL(PP_Instance instance,
SerializedVarReturnValue result);
- virtual void OnHostMsgSessionCreated(
+
+ virtual void OnHostMsgPromiseResolved(PP_Instance instance,
+ uint32_t promise_id);
+ virtual void OnHostMsgPromiseResolvedWithSession(
PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
SerializedVarReceiveInput web_session_id);
+ virtual void OnHostMsgPromiseRejected(
+ PP_Instance instance,
+ uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ SerializedVarReceiveInput error_description);
virtual void OnHostMsgSessionMessage(
PP_Instance instance,
- uint32_t session_id,
+ SerializedVarReceiveInput web_session_id,
SerializedVarReceiveInput message,
SerializedVarReceiveInput destination_url);
- virtual void OnHostMsgSessionReady(PP_Instance instance, uint32_t session_id);
+ virtual void OnHostMsgSessionReady(PP_Instance instance,
+ SerializedVarReceiveInput web_session_id);
virtual void OnHostMsgSessionClosed(PP_Instance instance,
- uint32_t session_id);
- virtual void OnHostMsgSessionError(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_code);
+ SerializedVarReceiveInput web_session_id);
+ virtual void OnHostMsgSessionError(
+ PP_Instance instance,
+ SerializedVarReceiveInput web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ SerializedVarReceiveInput error_description);
virtual void OnHostMsgDecoderInitializeDone(
PP_Instance instance,
PP_DecryptorStreamType decoder_type,
diff --git a/chromium/ppapi/proxy/ppb_message_loop_proxy.cc b/chromium/ppapi/proxy/ppb_message_loop_proxy.cc
index 582ddcbeb73..2bc9694ab5d 100644
--- a/chromium/ppapi/proxy/ppb_message_loop_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_message_loop_proxy.cc
@@ -86,7 +86,7 @@ int32_t MessageLoopResource::AttachToCurrentThread() {
AddRef();
slot->Set(this);
- loop_.reset(new base::MessageLoop(base::MessageLoop::TYPE_DEFAULT));
+ loop_.reset(new base::MessageLoop);
loop_proxy_ = base::MessageLoopProxy::current();
// Post all pending work to the message loop.
diff --git a/chromium/ppapi/proxy/ppb_message_loop_proxy.h b/chromium/ppapi/proxy/ppb_message_loop_proxy.h
index d8bfc4c644d..f6cc25227bc 100644
--- a/chromium/ppapi/proxy/ppb_message_loop_proxy.h
+++ b/chromium/ppapi/proxy/ppb_message_loop_proxy.h
@@ -44,6 +44,10 @@ class PPAPI_PROXY_EXPORT MessageLoopResource : public MessageLoopShared {
return is_main_thread_loop_;
}
+ const scoped_refptr<base::MessageLoopProxy>& message_loop_proxy() {
+ return loop_proxy_;
+ }
+
private:
struct TaskInfo {
tracked_objects::Location from_here;
diff --git a/chromium/ppapi/proxy/ppb_var_unittest.cc b/chromium/ppapi/proxy/ppb_var_unittest.cc
index 7315d00b72a..5e25379eeb0 100644
--- a/chromium/ppapi/proxy/ppb_var_unittest.cc
+++ b/chromium/ppapi/proxy/ppb_var_unittest.cc
@@ -30,7 +30,7 @@ class PPB_VarTest : public PluginProxyTest {
public:
PPB_VarTest()
: test_strings_(kNumStrings), vars_(kNumStrings),
- ppb_var_(ppapi::PPB_Var_Shared::GetVarInterface1_1()) {
+ ppb_var_(ppapi::PPB_Var_Shared::GetVarInterface1_2()) {
// Set the value of test_strings_[i] to "i".
for (size_t i = 0; i < kNumStrings; ++i)
test_strings_[i] = base::IntToString(i);
@@ -102,7 +102,7 @@ class CreateVarThreadDelegate : public base::PlatformThread::Delegate {
}
virtual ~CreateVarThreadDelegate() {}
virtual void ThreadMain() {
- const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1();
+ const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2();
for (size_t i = 0; i < size_; ++i) {
vars_out_[i] = ppb_var->VarFromUtf8(strings_in_[i].c_str(),
strings_in_[i].length());
@@ -125,7 +125,7 @@ class ChangeRefVarThreadDelegate : public base::PlatformThread::Delegate {
}
virtual ~ChangeRefVarThreadDelegate() {}
virtual void ThreadMain() {
- const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1();
+ const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2();
// Increment and decrement the reference count for each var kRefsToAdd
// times. Note that we always AddRef once before doing the matching Release,
// to ensure that we never accidentally release the last reference.
@@ -153,7 +153,7 @@ class RemoveRefVarThreadDelegate : public base::PlatformThread::Delegate {
}
virtual ~RemoveRefVarThreadDelegate() {}
virtual void ThreadMain() {
- const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_1();
+ const PPB_Var* ppb_var = ppapi::PPB_Var_Shared::GetVarInterface1_2();
for (size_t i = 0; i < kNumStrings; ++i) {
ppb_var->Release(vars_[i]);
}
diff --git a/chromium/ppapi/proxy/ppb_video_decoder_proxy.cc b/chromium/ppapi/proxy/ppb_video_decoder_proxy.cc
index 2a00674f416..4eae1f22654 100644
--- a/chromium/ppapi/proxy/ppb_video_decoder_proxy.cc
+++ b/chromium/ppapi/proxy/ppb_video_decoder_proxy.cc
@@ -18,7 +18,7 @@
using ppapi::thunk::EnterResourceNoLock;
using ppapi::thunk::PPB_Buffer_API;
using ppapi::thunk::PPB_Graphics3D_API;
-using ppapi::thunk::PPB_VideoDecoder_API;
+using ppapi::thunk::PPB_VideoDecoder_Dev_API;
namespace ppapi {
namespace proxy {
@@ -33,7 +33,7 @@ class VideoDecoder : public PPB_VideoDecoder_Shared {
PP_Resource graphics_context,
PP_VideoDecoder_Profile profile);
- // PPB_VideoDecoder_API implementation.
+ // PPB_VideoDecoder_Dev_API implementation.
virtual int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual void AssignPictureBuffers(
@@ -192,6 +192,9 @@ PP_Resource PPB_VideoDecoder_Proxy::CreateProxyResource(
if (!dispatcher)
return 0;
+ if (!dispatcher->preferences().is_accelerated_video_decode_enabled)
+ return 0;
+
EnterResourceNoLock<PPB_Graphics3D_API> enter_context(graphics_context,
true);
if (enter_context.failed())
@@ -222,14 +225,14 @@ void PPB_VideoDecoder_Proxy::OnMsgCreate(
// Make the resource and get the API pointer to its interface.
result->SetHostResource(
- instance, resource_creation.functions()->CreateVideoDecoder(
+ instance, resource_creation.functions()->CreateVideoDecoderDev(
instance, graphics_context.host_resource(), profile));
}
void PPB_VideoDecoder_Proxy::OnMsgDecode(
const HostResource& decoder,
const HostResource& buffer, int32 id, uint32 size) {
- EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
+ EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
decoder, callback_factory_,
&PPB_VideoDecoder_Proxy::SendMsgEndOfBitstreamACKToPlugin, decoder, id);
if (enter.failed())
@@ -241,7 +244,7 @@ void PPB_VideoDecoder_Proxy::OnMsgDecode(
void PPB_VideoDecoder_Proxy::OnMsgAssignPictureBuffers(
const HostResource& decoder,
const std::vector<PP_PictureBuffer_Dev>& buffers) {
- EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded() && !buffers.empty()) {
const PP_PictureBuffer_Dev* buffer_array = &buffers.front();
enter.object()->AssignPictureBuffers(buffers.size(), buffer_array);
@@ -250,13 +253,13 @@ void PPB_VideoDecoder_Proxy::OnMsgAssignPictureBuffers(
void PPB_VideoDecoder_Proxy::OnMsgReusePictureBuffer(
const HostResource& decoder, int32 picture_buffer_id) {
- EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded())
enter.object()->ReusePictureBuffer(picture_buffer_id);
}
void PPB_VideoDecoder_Proxy::OnMsgFlush(const HostResource& decoder) {
- EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
+ EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
decoder, callback_factory_,
&PPB_VideoDecoder_Proxy::SendMsgFlushACKToPlugin, decoder);
if (enter.succeeded())
@@ -264,7 +267,7 @@ void PPB_VideoDecoder_Proxy::OnMsgFlush(const HostResource& decoder) {
}
void PPB_VideoDecoder_Proxy::OnMsgReset(const HostResource& decoder) {
- EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
+ EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
decoder, callback_factory_,
&PPB_VideoDecoder_Proxy::SendMsgResetACKToPlugin, decoder);
if (enter.succeeded())
@@ -272,7 +275,7 @@ void PPB_VideoDecoder_Proxy::OnMsgReset(const HostResource& decoder) {
}
void PPB_VideoDecoder_Proxy::OnMsgDestroy(const HostResource& decoder) {
- EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded())
enter.object()->Destroy();
}
@@ -297,21 +300,21 @@ void PPB_VideoDecoder_Proxy::SendMsgResetACKToPlugin(
void PPB_VideoDecoder_Proxy::OnMsgEndOfBitstreamACK(
const HostResource& decoder, int32_t id, int32_t result) {
- EnterPluginFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded())
static_cast<VideoDecoder*>(enter.object())->EndOfBitstreamACK(id, result);
}
void PPB_VideoDecoder_Proxy::OnMsgFlushACK(
const HostResource& decoder, int32_t result) {
- EnterPluginFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded())
static_cast<VideoDecoder*>(enter.object())->FlushACK(result);
}
void PPB_VideoDecoder_Proxy::OnMsgResetACK(
const HostResource& decoder, int32_t result) {
- EnterPluginFromHostResource<PPB_VideoDecoder_API> enter(decoder);
+ EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
if (enter.succeeded())
static_cast<VideoDecoder*>(enter.object())->ResetACK(result);
}
diff --git a/chromium/ppapi/proxy/ppb_video_decoder_proxy.h b/chromium/ppapi/proxy/ppb_video_decoder_proxy.h
index e9127a7e63a..dbc030e47cc 100644
--- a/chromium/ppapi/proxy/ppb_video_decoder_proxy.h
+++ b/chromium/ppapi/proxy/ppb_video_decoder_proxy.h
@@ -9,7 +9,7 @@
#include "ppapi/proxy/interface_proxy.h"
#include "ppapi/proxy/proxy_completion_callback_factory.h"
#include "ppapi/shared_impl/ppb_video_decoder_shared.h"
-#include "ppapi/thunk/ppb_video_decoder_api.h"
+#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
#include "ppapi/utility/completion_callback_factory.h"
namespace ppapi {
diff --git a/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.cc b/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
index 167e4764d38..eee3871b509 100644
--- a/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
@@ -4,7 +4,7 @@
#include "ppapi/proxy/ppp_content_decryptor_private_proxy.h"
-#include "base/platform_file.h"
+#include "base/files/file.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/ppb_core.h"
#include "ppapi/proxy/content_decryptor_private_serializer.h"
@@ -125,9 +125,10 @@ void Initialize(PP_Instance instance,
}
void CreateSession(PP_Instance instance,
- uint32_t session_id,
- PP_Var type,
- PP_Var init_data) {
+ uint32_t promise_id,
+ PP_Var init_data_type,
+ PP_Var init_data,
+ PP_SessionType session_type) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -137,12 +138,32 @@ void CreateSession(PP_Instance instance,
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_CreateSession(
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
instance,
- session_id,
- SerializedVarSendInput(dispatcher, type),
- SerializedVarSendInput(dispatcher, init_data)));
+ promise_id,
+ SerializedVarSendInput(dispatcher, init_data_type),
+ SerializedVarSendInput(dispatcher, init_data),
+ session_type));
}
-void UpdateSession(PP_Instance instance, uint32_t session_id, PP_Var response) {
+void LoadSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id) {
+ HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
+ if (!dispatcher) {
+ NOTREACHED();
+ return;
+ }
+
+ dispatcher->Send(new PpapiMsg_PPPContentDecryptor_LoadSession(
+ API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
+ instance,
+ promise_id,
+ SerializedVarSendInput(dispatcher, web_session_id)));
+}
+
+void UpdateSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id,
+ PP_Var response) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -152,11 +173,14 @@ void UpdateSession(PP_Instance instance, uint32_t session_id, PP_Var response) {
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession(
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
instance,
- session_id,
+ promise_id,
+ SerializedVarSendInput(dispatcher, web_session_id),
SerializedVarSendInput(dispatcher, response)));
}
-void ReleaseSession(PP_Instance instance, uint32_t session_id) {
+void ReleaseSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -164,7 +188,10 @@ void ReleaseSession(PP_Instance instance, uint32_t session_id) {
}
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_ReleaseSession(
- API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, instance, session_id));
+ API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
+ instance,
+ promise_id,
+ SerializedVarSendInput(dispatcher, web_session_id)));
}
void Decrypt(PP_Instance instance,
@@ -357,6 +384,7 @@ void DecryptAndDecode(PP_Instance instance,
static const PPP_ContentDecryptor_Private content_decryptor_interface = {
&Initialize,
&CreateSession,
+ &LoadSession,
&UpdateSession,
&ReleaseSession,
&Decrypt,
@@ -401,6 +429,8 @@ bool PPP_ContentDecryptor_Private_Proxy::OnMessageReceived(
OnMsgInitialize)
IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_CreateSession,
OnMsgCreateSession)
+ IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_LoadSession,
+ OnMsgLoadSession)
IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_UpdateSession,
OnMsgUpdateSession)
IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_ReleaseSession,
@@ -436,37 +466,59 @@ void PPP_ContentDecryptor_Private_Proxy::OnMsgInitialize(
void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession(
PP_Instance instance,
- uint32_t session_id,
- SerializedVarReceiveInput type,
- SerializedVarReceiveInput init_data) {
+ uint32_t promise_id,
+ SerializedVarReceiveInput init_data_type,
+ SerializedVarReceiveInput init_data,
+ PP_SessionType session_type) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->CreateSession,
- instance,
- session_id,
- ExtractReceivedVarAndAddRef(dispatcher(), &type),
- ExtractReceivedVarAndAddRef(dispatcher(), &init_data));
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->CreateSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &init_data_type),
+ ExtractReceivedVarAndAddRef(dispatcher(), &init_data),
+ session_type);
+ }
+}
+
+void PPP_ContentDecryptor_Private_Proxy::OnMsgLoadSession(
+ PP_Instance instance,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id) {
+ if (ppp_decryptor_impl_) {
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->LoadSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id));
}
}
void PPP_ContentDecryptor_Private_Proxy::OnMsgUpdateSession(
PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id,
SerializedVarReceiveInput response) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->UpdateSession,
- instance,
- session_id,
- ExtractReceivedVarAndAddRef(dispatcher(), &response));
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->UpdateSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id),
+ ExtractReceivedVarAndAddRef(dispatcher(), &response));
}
}
void PPP_ContentDecryptor_Private_Proxy::OnMsgReleaseSession(
PP_Instance instance,
- uint32_t session_id) {
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->ReleaseSession,
- instance,
- session_id);
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->ReleaseSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id));
}
}
diff --git a/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.h b/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.h
index dfbcf4f5d42..f7c78baa6db 100644
--- a/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.h
+++ b/chromium/ppapi/proxy/ppp_content_decryptor_private_proxy.h
@@ -33,13 +33,20 @@ class PPP_ContentDecryptor_Private_Proxy : public InterfaceProxy {
void OnMsgInitialize(PP_Instance instance,
SerializedVarReceiveInput key_system);
void OnMsgCreateSession(PP_Instance instance,
- uint32_t session_id,
- SerializedVarReceiveInput type,
- SerializedVarReceiveInput init_data);
+ uint32_t promise_id,
+ SerializedVarReceiveInput init_data_type,
+ SerializedVarReceiveInput init_data,
+ PP_SessionType session_type);
+ void OnMsgLoadSession(PP_Instance instance,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id);
void OnMsgUpdateSession(PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id,
SerializedVarReceiveInput response);
- void OnMsgReleaseSession(PP_Instance instance, uint32_t session_id);
+ void OnMsgReleaseSession(PP_Instance instance,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id);
void OnMsgDecrypt(PP_Instance instance,
const PPPDecryptor_Buffer& encrypted_buffer,
const std::string& serialized_encrypted_block_info);
diff --git a/chromium/ppapi/proxy/ppp_find_proxy.cc b/chromium/ppapi/proxy/ppp_find_proxy.cc
new file mode 100644
index 00000000000..abd5663ba7e
--- /dev/null
+++ b/chromium/ppapi/proxy/ppp_find_proxy.cc
@@ -0,0 +1,103 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/ppp_find_proxy.h"
+
+#include "ppapi/proxy/host_dispatcher.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/shared_impl/api_id.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+#if !defined(OS_NACL)
+PP_Bool StartFind(PP_Instance instance,
+ const char* text,
+ PP_Bool case_sensitive) {
+ DCHECK(case_sensitive == PP_FALSE);
+ HostDispatcher::GetForInstance(instance)->Send(
+ new PpapiPluginMsg_PPPFind_StartFind(API_ID_PPP_FIND_PRIVATE,
+ instance,
+ text));
+ return PP_TRUE;
+}
+
+void SelectFindResult(PP_Instance instance,
+ PP_Bool forward) {
+ HostDispatcher::GetForInstance(instance)->Send(
+ new PpapiPluginMsg_PPPFind_SelectFindResult(API_ID_PPP_FIND_PRIVATE,
+ instance, forward));
+}
+
+void StopFind(PP_Instance instance) {
+ HostDispatcher::GetForInstance(instance)->Send(
+ new PpapiPluginMsg_PPPFind_StopFind(API_ID_PPP_FIND_PRIVATE, instance));
+}
+
+const PPP_Find_Private ppp_find_interface = {
+ &StartFind,
+ &SelectFindResult,
+ &StopFind
+};
+#else
+// The NaCl plugin doesn't need the host side interface - stub it out.
+const PPP_Find_Private ppp_find_interface = {};
+#endif
+
+} // namespace
+
+PPP_Find_Proxy::PPP_Find_Proxy(Dispatcher* dispatcher)
+ : InterfaceProxy(dispatcher),
+ ppp_find_(NULL) {
+ if (dispatcher->IsPlugin()) {
+ ppp_find_ = static_cast<const PPP_Find_Private*>(
+ dispatcher->local_get_interface()(PPP_FIND_PRIVATE_INTERFACE));
+ }
+}
+
+PPP_Find_Proxy::~PPP_Find_Proxy() {
+}
+
+// static
+const PPP_Find_Private* PPP_Find_Proxy::GetProxyInterface() {
+ return &ppp_find_interface;
+}
+
+bool PPP_Find_Proxy::OnMessageReceived(const IPC::Message& msg) {
+ if (!dispatcher()->IsPlugin())
+ return false;
+
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(PPP_Find_Proxy, msg)
+ IPC_MESSAGE_HANDLER(PpapiPluginMsg_PPPFind_StartFind, OnPluginMsgStartFind)
+ IPC_MESSAGE_HANDLER(PpapiPluginMsg_PPPFind_SelectFindResult,
+ OnPluginMsgSelectFindResult)
+ IPC_MESSAGE_HANDLER(PpapiPluginMsg_PPPFind_StopFind, OnPluginMsgStopFind)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void PPP_Find_Proxy::OnPluginMsgStartFind(PP_Instance instance,
+ const std::string& text) {
+ if (ppp_find_)
+ CallWhileUnlocked(ppp_find_->StartFind, instance, text.c_str(), PP_FALSE);
+}
+
+void PPP_Find_Proxy::OnPluginMsgSelectFindResult(PP_Instance instance,
+ PP_Bool forward) {
+ if (ppp_find_)
+ CallWhileUnlocked(ppp_find_->SelectFindResult, instance, forward);
+}
+
+void PPP_Find_Proxy::OnPluginMsgStopFind(PP_Instance instance) {
+ if (ppp_find_)
+ CallWhileUnlocked(ppp_find_->StopFind, instance);
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/ppp_find_proxy.h b/chromium/ppapi/proxy/ppp_find_proxy.h
new file mode 100644
index 00000000000..6d2230424d8
--- /dev/null
+++ b/chromium/ppapi/proxy/ppp_find_proxy.h
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_PPP_FIND_PROXY_H_
+#define PPAPI_PROXY_PPP_FIND_PROXY_H_
+
+#include <string>
+
+#include "ppapi/c/private/ppp_find_private.h"
+#include "ppapi/proxy/interface_proxy.h"
+
+namespace ppapi {
+
+namespace proxy {
+
+class PPP_Find_Proxy : public InterfaceProxy {
+ public:
+ explicit PPP_Find_Proxy(Dispatcher* dispatcher);
+ virtual ~PPP_Find_Proxy();
+
+ static const PPP_Find_Private* GetProxyInterface();
+
+ // InterfaceProxy implementation.
+ virtual bool OnMessageReceived(const IPC::Message& msg);
+
+ private:
+ // Message handlers.
+ void OnPluginMsgStartFind(PP_Instance instance,
+ const std::string& text);
+ void OnPluginMsgSelectFindResult(PP_Instance instance,
+ PP_Bool forward);
+ void OnPluginMsgStopFind(PP_Instance instance);
+
+ // When this proxy is in the plugin side, this value caches the interface
+ // pointer so we don't have to retrieve it from the dispatcher each time.
+ // In the host, this value is always NULL.
+ const PPP_Find_Private* ppp_find_;
+
+ DISALLOW_COPY_AND_ASSIGN(PPP_Find_Proxy);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_PPP_FIND_PROXY_H_
diff --git a/chromium/ppapi/proxy/ppp_graphics_3d_proxy.cc b/chromium/ppapi/proxy/ppp_graphics_3d_proxy.cc
index ee00a925ed0..b5f0ac1df85 100644
--- a/chromium/ppapi/proxy/ppp_graphics_3d_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_graphics_3d_proxy.cc
@@ -29,10 +29,6 @@ static const PPP_Graphics3D graphics_3d_interface = {
static const PPP_Graphics3D graphics_3d_interface = {};
#endif // !defined(OS_NACL)
-InterfaceProxy* CreateGraphics3DProxy(Dispatcher* dispatcher) {
- return new PPP_Graphics3D_Proxy(dispatcher);
-}
-
} // namespace
PPP_Graphics3D_Proxy::PPP_Graphics3D_Proxy(Dispatcher* dispatcher)
@@ -48,15 +44,8 @@ PPP_Graphics3D_Proxy::~PPP_Graphics3D_Proxy() {
}
// static
-const InterfaceProxy::Info* PPP_Graphics3D_Proxy::GetInfo() {
- static const Info info = {
- &graphics_3d_interface,
- PPP_GRAPHICS_3D_INTERFACE,
- API_ID_PPP_GRAPHICS_3D,
- false,
- &CreateGraphics3DProxy,
- };
- return &info;
+const PPP_Graphics3D* PPP_Graphics3D_Proxy::GetProxyInterface() {
+ return &graphics_3d_interface;
}
bool PPP_Graphics3D_Proxy::OnMessageReceived(const IPC::Message& msg) {
diff --git a/chromium/ppapi/proxy/ppp_graphics_3d_proxy.h b/chromium/ppapi/proxy/ppp_graphics_3d_proxy.h
index 9b4d7a0fe67..a6f7eb63b1e 100644
--- a/chromium/ppapi/proxy/ppp_graphics_3d_proxy.h
+++ b/chromium/ppapi/proxy/ppp_graphics_3d_proxy.h
@@ -18,7 +18,7 @@ class PPP_Graphics3D_Proxy : public InterfaceProxy {
PPP_Graphics3D_Proxy(Dispatcher* dispatcher);
virtual ~PPP_Graphics3D_Proxy();
- static const Info* GetInfo();
+ static const PPP_Graphics3D* GetProxyInterface();
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
diff --git a/chromium/ppapi/proxy/ppp_input_event_proxy.cc b/chromium/ppapi/proxy/ppp_input_event_proxy.cc
index 8302dfd12db..cbf6a63ad2a 100644
--- a/chromium/ppapi/proxy/ppp_input_event_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_input_event_proxy.cc
@@ -54,10 +54,6 @@ static const PPP_InputEvent input_event_interface = {
static const PPP_InputEvent input_event_interface = {};
#endif // !defined(OS_NACL)
-InterfaceProxy* CreateInputEventProxy(Dispatcher* dispatcher) {
- return new PPP_InputEvent_Proxy(dispatcher);
-}
-
} // namespace
PPP_InputEvent_Proxy::PPP_InputEvent_Proxy(Dispatcher* dispatcher)
@@ -73,15 +69,8 @@ PPP_InputEvent_Proxy::~PPP_InputEvent_Proxy() {
}
// static
-const InterfaceProxy::Info* PPP_InputEvent_Proxy::GetInfo() {
- static const Info info = {
- &input_event_interface,
- PPP_INPUT_EVENT_INTERFACE,
- API_ID_PPP_INPUT_EVENT,
- false,
- &CreateInputEventProxy,
- };
- return &info;
+const PPP_InputEvent* PPP_InputEvent_Proxy::GetProxyInterface() {
+ return &input_event_interface;
}
bool PPP_InputEvent_Proxy::OnMessageReceived(const IPC::Message& msg) {
diff --git a/chromium/ppapi/proxy/ppp_input_event_proxy.h b/chromium/ppapi/proxy/ppp_input_event_proxy.h
index a7cc05455c9..9fbc418b687 100644
--- a/chromium/ppapi/proxy/ppp_input_event_proxy.h
+++ b/chromium/ppapi/proxy/ppp_input_event_proxy.h
@@ -20,7 +20,7 @@ class PPP_InputEvent_Proxy : public InterfaceProxy {
PPP_InputEvent_Proxy(Dispatcher* dispatcher);
virtual ~PPP_InputEvent_Proxy();
- static const Info* GetInfo();
+ static const PPP_InputEvent* GetProxyInterface();
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
diff --git a/chromium/ppapi/proxy/ppp_instance_private_proxy.cc b/chromium/ppapi/proxy/ppp_instance_private_proxy.cc
index 1d8b8d753ca..8df9c4f28f1 100644
--- a/chromium/ppapi/proxy/ppp_instance_private_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_instance_private_proxy.cc
@@ -34,10 +34,6 @@ static const PPP_Instance_Private instance_private_interface = {
&GetInstanceObject
};
-InterfaceProxy* CreateInstancePrivateProxy(Dispatcher* dispatcher) {
- return new PPP_Instance_Private_Proxy(dispatcher);
-}
-
} // namespace
PPP_Instance_Private_Proxy::PPP_Instance_Private_Proxy(Dispatcher* dispatcher)
@@ -53,15 +49,8 @@ PPP_Instance_Private_Proxy::~PPP_Instance_Private_Proxy() {
}
// static
-const InterfaceProxy::Info* PPP_Instance_Private_Proxy::GetInfo() {
- static const Info info = {
- &instance_private_interface,
- PPP_INSTANCE_PRIVATE_INTERFACE,
- API_ID_PPP_INSTANCE_PRIVATE,
- false,
- &CreateInstancePrivateProxy,
- };
- return &info;
+const PPP_Instance_Private* PPP_Instance_Private_Proxy::GetProxyInterface() {
+ return &instance_private_interface;
}
bool PPP_Instance_Private_Proxy::OnMessageReceived(const IPC::Message& msg) {
diff --git a/chromium/ppapi/proxy/ppp_instance_private_proxy.h b/chromium/ppapi/proxy/ppp_instance_private_proxy.h
index 60d5ea9f1f3..4fc3a3a068a 100644
--- a/chromium/ppapi/proxy/ppp_instance_private_proxy.h
+++ b/chromium/ppapi/proxy/ppp_instance_private_proxy.h
@@ -22,7 +22,7 @@ class PPP_Instance_Private_Proxy : public InterfaceProxy {
PPP_Instance_Private_Proxy(Dispatcher* dispatcher);
virtual ~PPP_Instance_Private_Proxy();
- static const Info* GetInfo();
+ static const PPP_Instance_Private* GetProxyInterface();
private:
// InterfaceProxy implementation.
diff --git a/chromium/ppapi/proxy/ppp_messaging_proxy.cc b/chromium/ppapi/proxy/ppp_messaging_proxy.cc
index 5a12419f78a..75614ae08b2 100644
--- a/chromium/ppapi/proxy/ppp_messaging_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_messaging_proxy.cc
@@ -8,12 +8,15 @@
#include "ppapi/c/ppp_messaging.h"
#include "ppapi/proxy/host_dispatcher.h"
+#include "ppapi/proxy/message_handler.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
#include "ppapi/proxy/plugin_resource_tracker.h"
#include "ppapi/proxy/plugin_var_tracker.h"
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/serialized_var.h"
#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/shared_impl/scoped_pp_var.h"
#include "ppapi/shared_impl/var_tracker.h"
namespace ppapi {
@@ -21,32 +24,33 @@ namespace proxy {
namespace {
-#if !defined(OS_NACL)
-void HandleMessage(PP_Instance instance, PP_Var message_data) {
- HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
- if (!dispatcher || (message_data.type == PP_VARTYPE_OBJECT)) {
- // The dispatcher should always be valid, and the browser should never send
- // an 'object' var over PPP_Messaging.
+MessageHandler* GetMessageHandler(Dispatcher* dispatcher,
+ PP_Instance instance) {
+ if (!dispatcher || !dispatcher->IsPlugin()) {
NOTREACHED();
- return;
+ return NULL;
}
+ PluginDispatcher* plugin_dispatcher =
+ static_cast<PluginDispatcher*>(dispatcher);
+ InstanceData* instance_data = plugin_dispatcher->GetInstanceData(instance);
+ if (!instance_data)
+ return NULL;
- dispatcher->Send(new PpapiMsg_PPPMessaging_HandleMessage(
- API_ID_PPP_MESSAGING,
- instance,
- SerializedVarSendInputShmem(dispatcher, message_data, instance)));
+ return instance_data->message_handler.get();
}
-static const PPP_Messaging messaging_interface = {
- &HandleMessage
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_Messaging messaging_interface = {};
-#endif // !defined(OS_NACL)
+void ResetMessageHandler(Dispatcher* dispatcher, PP_Instance instance) {
+ if (!dispatcher || !dispatcher->IsPlugin()) {
+ NOTREACHED();
+ return;
+ }
+ PluginDispatcher* plugin_dispatcher =
+ static_cast<PluginDispatcher*>(dispatcher);
+ InstanceData* instance_data = plugin_dispatcher->GetInstanceData(instance);
+ if (!instance_data)
+ return;
-InterfaceProxy* CreateMessagingProxy(Dispatcher* dispatcher) {
- return new PPP_Messaging_Proxy(dispatcher);
+ instance_data->message_handler.reset();
}
} // namespace
@@ -63,18 +67,6 @@ PPP_Messaging_Proxy::PPP_Messaging_Proxy(Dispatcher* dispatcher)
PPP_Messaging_Proxy::~PPP_Messaging_Proxy() {
}
-// static
-const InterfaceProxy::Info* PPP_Messaging_Proxy::GetInfo() {
- static const Info info = {
- &messaging_interface,
- PPP_MESSAGING_INTERFACE,
- API_ID_PPP_MESSAGING,
- false,
- &CreateMessagingProxy,
- };
- return &info;
-}
-
bool PPP_Messaging_Proxy::OnMessageReceived(const IPC::Message& msg) {
if (!dispatcher()->IsPlugin())
return false;
@@ -83,6 +75,9 @@ bool PPP_Messaging_Proxy::OnMessageReceived(const IPC::Message& msg) {
IPC_BEGIN_MESSAGE_MAP(PPP_Messaging_Proxy, msg)
IPC_MESSAGE_HANDLER(PpapiMsg_PPPMessaging_HandleMessage,
OnMsgHandleMessage)
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(
+ PpapiMsg_PPPMessageHandler_HandleBlockingMessage,
+ OnMsgHandleBlockingMessage)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -91,13 +86,57 @@ bool PPP_Messaging_Proxy::OnMessageReceived(const IPC::Message& msg) {
void PPP_Messaging_Proxy::OnMsgHandleMessage(
PP_Instance instance, SerializedVarReceiveInput message_data) {
PP_Var received_var(message_data.GetForInstance(dispatcher(), instance));
+ MessageHandler* message_handler = GetMessageHandler(dispatcher(), instance);
+ if (message_handler) {
+ if (message_handler->LoopIsValid()) {
+ message_handler->HandleMessage(ScopedPPVar(received_var));
+ return;
+ } else {
+ // If the MessageHandler's loop has been quit, then we should treat it as
+ // though it has been unregistered and start sending messages to the
+ // default handler. This might mean the plugin has lost messages, but
+ // there's not really anything sane we can do about it. They should have
+ // used UnregisterMessageHandler.
+ ResetMessageHandler(dispatcher(), instance);
+ }
+ }
+ // If we reach this point, then there's no message handler registered, so
+ // we send to the default PPP_Messaging one for the instance.
+
// SerializedVarReceiveInput will decrement the reference count, but we want
- // to give the recipient a reference.
+ // to give the recipient a reference in the legacy API.
PpapiGlobals::Get()->GetVarTracker()->AddRefVar(received_var);
CallWhileUnlocked(ppp_messaging_impl_->HandleMessage,
instance,
received_var);
}
+void PPP_Messaging_Proxy::OnMsgHandleBlockingMessage(
+ PP_Instance instance,
+ SerializedVarReceiveInput message_data,
+ IPC::Message* reply_msg) {
+ ScopedPPVar received_var(message_data.GetForInstance(dispatcher(), instance));
+ MessageHandler* message_handler = GetMessageHandler(dispatcher(), instance);
+ if (message_handler) {
+ if (message_handler->LoopIsValid()) {
+ message_handler->HandleBlockingMessage(
+ received_var, scoped_ptr<IPC::Message>(reply_msg));
+ return;
+ } else {
+ // If the MessageHandler's loop has been quit, then we should treat it as
+ // though it has been unregistered. Also see the note for PostMessage.
+ ResetMessageHandler(dispatcher(), instance);
+ }
+ }
+ // We have no handler, but we still need to respond to unblock the renderer
+ // and inform the JavaScript caller.
+ PpapiMsg_PPPMessageHandler_HandleBlockingMessage::WriteReplyParams(
+ reply_msg,
+ SerializedVarReturnValue::Convert(dispatcher(), PP_MakeUndefined()),
+ false /* was_handled */);
+ dispatcher()->Send(reply_msg);
+}
+
+
} // namespace proxy
} // namespace ppapi
diff --git a/chromium/ppapi/proxy/ppp_messaging_proxy.h b/chromium/ppapi/proxy/ppp_messaging_proxy.h
index 4b66f92c4f7..d9dde3cb2e5 100644
--- a/chromium/ppapi/proxy/ppp_messaging_proxy.h
+++ b/chromium/ppapi/proxy/ppp_messaging_proxy.h
@@ -20,8 +20,6 @@ class PPP_Messaging_Proxy : public InterfaceProxy {
PPP_Messaging_Proxy(Dispatcher* dispatcher);
virtual ~PPP_Messaging_Proxy();
- static const Info* GetInfo();
-
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
@@ -29,6 +27,9 @@ class PPP_Messaging_Proxy : public InterfaceProxy {
// Message handlers.
void OnMsgHandleMessage(PP_Instance instance,
SerializedVarReceiveInput data);
+ void OnMsgHandleBlockingMessage(PP_Instance instance,
+ SerializedVarReceiveInput data,
+ IPC::Message* reply);
// When this proxy is in the plugin side, this value caches the interface
// pointer so we don't have to retrieve it from the dispatcher each time.
diff --git a/chromium/ppapi/proxy/ppp_messaging_proxy_unittest.cc b/chromium/ppapi/proxy/ppp_messaging_proxy_unittest.cc
index 1fe0ef71806..d1fa9b60fde 100644
--- a/chromium/ppapi/proxy/ppp_messaging_proxy_unittest.cc
+++ b/chromium/ppapi/proxy/ppp_messaging_proxy_unittest.cc
@@ -8,7 +8,10 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/c/ppb_var.h"
#include "ppapi/c/ppp_messaging.h"
+#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/ppapi_proxy_test.h"
+#include "ppapi/proxy/serialized_var.h"
+#include "ppapi/shared_impl/api_id.h"
#include "ppapi/shared_impl/proxy_lock.h"
#include "ppapi/shared_impl/var.h"
@@ -42,6 +45,17 @@ PPP_Messaging ppp_messaging_mock = {
&HandleMessage
};
+// CallHandleMessage does the host-side work to cause HandleMessage to be called
+// in the plugin side.
+void CallHandleMessage(Dispatcher* dispatcher,
+ PP_Instance instance,
+ PP_Var message) {
+ dispatcher->Send(new PpapiMsg_PPPMessaging_HandleMessage(
+ API_ID_PPP_MESSAGING,
+ instance,
+ SerializedVarSendInputShmem(dispatcher, message, instance)));
+}
+
class PPP_Messaging_ProxyTest : public TwoWayTest {
public:
PPP_Messaging_ProxyTest()
@@ -68,29 +82,25 @@ void CompareAndReleaseStringVar(PluginProxyTestHarness* plugin_harness,
} // namespace
TEST_F(PPP_Messaging_ProxyTest, SendMessages) {
- // Grab the host-side proxy of ppp_messaging.
- const PPP_Messaging* ppp_messaging = static_cast<const PPP_Messaging*>(
- host().host_dispatcher()->GetProxiedInterface(
- PPP_MESSAGING_INTERFACE));
-
PP_Instance expected_instance = pp_instance();
PP_Var expected_var = PP_MakeUndefined();
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ Dispatcher* host_dispatcher = host().GetDispatcher();
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
handle_message_called.Wait();
EXPECT_EQ(expected_instance, received_instance);
EXPECT_EQ(expected_var.type, received_var.type);
expected_var = PP_MakeNull();
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
handle_message_called.Wait();
EXPECT_EQ(expected_instance, received_instance);
EXPECT_EQ(expected_var.type, received_var.type);
expected_var = PP_MakeBool(PP_TRUE);
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
handle_message_called.Wait();
EXPECT_EQ(expected_instance, received_instance);
EXPECT_EQ(expected_var.type, received_var.type);
@@ -98,7 +108,7 @@ TEST_F(PPP_Messaging_ProxyTest, SendMessages) {
expected_var = PP_MakeInt32(12345);
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
handle_message_called.Wait();
EXPECT_EQ(expected_instance, received_instance);
EXPECT_EQ(expected_var.type, received_var.type);
@@ -106,7 +116,7 @@ TEST_F(PPP_Messaging_ProxyTest, SendMessages) {
expected_var = PP_MakeDouble(3.1415);
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
handle_message_called.Wait();
EXPECT_EQ(expected_instance, received_instance);
EXPECT_EQ(expected_var.type, received_var.type);
@@ -115,7 +125,7 @@ TEST_F(PPP_Messaging_ProxyTest, SendMessages) {
const std::string kTestString("Hello world!");
expected_var = StringVar::StringToPPVar(kTestString);
ResetReceived();
- ppp_messaging->HandleMessage(expected_instance, expected_var);
+ CallHandleMessage(host_dispatcher, expected_instance, expected_var);
// Now release the var, and the string should go away (because the ref
// count should be one).
host().var_tracker().ReleaseVar(expected_var);
diff --git a/chromium/ppapi/proxy/ppp_mouse_lock_proxy.cc b/chromium/ppapi/proxy/ppp_mouse_lock_proxy.cc
index 6fd746dc01f..66dc1304c51 100644
--- a/chromium/ppapi/proxy/ppp_mouse_lock_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_mouse_lock_proxy.cc
@@ -35,10 +35,6 @@ static const PPP_MouseLock mouse_lock_interface = {
static const PPP_MouseLock mouse_lock_interface = {};
#endif // !defined(OS_NACL)
-InterfaceProxy* CreateMouseLockProxy(Dispatcher* dispatcher) {
- return new PPP_MouseLock_Proxy(dispatcher);
-}
-
} // namespace
PPP_MouseLock_Proxy::PPP_MouseLock_Proxy(Dispatcher* dispatcher)
@@ -54,15 +50,8 @@ PPP_MouseLock_Proxy::~PPP_MouseLock_Proxy() {
}
// static
-const InterfaceProxy::Info* PPP_MouseLock_Proxy::GetInfo() {
- static const Info info = {
- &mouse_lock_interface,
- PPP_MOUSELOCK_INTERFACE,
- API_ID_PPP_MOUSE_LOCK,
- false,
- &CreateMouseLockProxy,
- };
- return &info;
+const PPP_MouseLock* PPP_MouseLock_Proxy::GetProxyInterface() {
+ return &mouse_lock_interface;
}
bool PPP_MouseLock_Proxy::OnMessageReceived(const IPC::Message& msg) {
diff --git a/chromium/ppapi/proxy/ppp_mouse_lock_proxy.h b/chromium/ppapi/proxy/ppp_mouse_lock_proxy.h
index 64f1b7a05d7..3945bdfad0e 100644
--- a/chromium/ppapi/proxy/ppp_mouse_lock_proxy.h
+++ b/chromium/ppapi/proxy/ppp_mouse_lock_proxy.h
@@ -18,7 +18,7 @@ class PPP_MouseLock_Proxy : public InterfaceProxy {
PPP_MouseLock_Proxy(Dispatcher* dispatcher);
virtual ~PPP_MouseLock_Proxy();
- static const Info* GetInfo();
+ static const PPP_MouseLock* GetProxyInterface();
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
diff --git a/chromium/ppapi/proxy/ppp_pdf_proxy.cc b/chromium/ppapi/proxy/ppp_pdf_proxy.cc
new file mode 100644
index 00000000000..356b42f0ebd
--- /dev/null
+++ b/chromium/ppapi/proxy/ppp_pdf_proxy.cc
@@ -0,0 +1,77 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/ppp_pdf_proxy.h"
+
+#include "ppapi/proxy/host_dispatcher.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+#if !defined(OS_NACL)
+PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) {
+ // This isn't implemented in the out of process case.
+ return PP_MakeUndefined();
+}
+
+void Transform(PP_Instance instance, PP_PrivatePageTransformType type) {
+ bool clockwise = type == PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW;
+ HostDispatcher::GetForInstance(instance)->Send(
+ new PpapiMsg_PPPPdf_Rotate(API_ID_PPP_PDF, instance, clockwise));
+}
+
+const PPP_Pdf ppp_pdf_interface = {
+ &GetLinkAtPosition,
+ &Transform,
+};
+#else
+// The NaCl plugin doesn't need the host side interface - stub it out.
+const PPP_Pdf ppp_pdf_interface = {};
+#endif
+
+} // namespace
+
+PPP_Pdf_Proxy::PPP_Pdf_Proxy(Dispatcher* dispatcher)
+ : InterfaceProxy(dispatcher),
+ ppp_pdf_(NULL) {
+ if (dispatcher->IsPlugin()) {
+ ppp_pdf_ = static_cast<const PPP_Pdf*>(
+ dispatcher->local_get_interface()(PPP_PDF_INTERFACE));
+ }
+}
+
+PPP_Pdf_Proxy::~PPP_Pdf_Proxy() {
+}
+
+// static
+const PPP_Pdf* PPP_Pdf_Proxy::GetProxyInterface() {
+ return &ppp_pdf_interface;
+}
+
+bool PPP_Pdf_Proxy::OnMessageReceived(const IPC::Message& msg) {
+ if (!dispatcher()->IsPlugin())
+ return false;
+
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(PPP_Pdf_Proxy, msg)
+ IPC_MESSAGE_HANDLER(PpapiMsg_PPPPdf_Rotate, OnPluginMsgRotate)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void PPP_Pdf_Proxy::OnPluginMsgRotate(PP_Instance instance, bool clockwise) {
+ PP_PrivatePageTransformType type = clockwise ?
+ PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CW :
+ PP_PRIVATEPAGETRANSFORMTYPE_ROTATE_90_CCW;
+ if (ppp_pdf_)
+ CallWhileUnlocked(ppp_pdf_->Transform, instance, type);
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/ppp_pdf_proxy.h b/chromium/ppapi/proxy/ppp_pdf_proxy.h
new file mode 100644
index 00000000000..992b2248811
--- /dev/null
+++ b/chromium/ppapi/proxy/ppp_pdf_proxy.h
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_PPP_PDF_PROXY_H_
+#define PPAPI_PROXY_PPP_PDF_PROXY_H_
+
+#include "ppapi/c/private/ppp_pdf.h"
+#include "ppapi/proxy/interface_proxy.h"
+
+namespace ppapi {
+
+namespace proxy {
+
+class PPP_Pdf_Proxy : public InterfaceProxy {
+ public:
+ PPP_Pdf_Proxy(Dispatcher* dispatcher);
+ virtual ~PPP_Pdf_Proxy();
+
+ static const PPP_Pdf* GetProxyInterface();
+
+ // InterfaceProxy implementation.
+ virtual bool OnMessageReceived(const IPC::Message& msg);
+
+ private:
+ // Message handlers.
+ void OnPluginMsgRotate(PP_Instance instance, bool clockwise);
+
+ // When this proxy is in the plugin side, this value caches the interface
+ // pointer so we don't have to retrieve it from the dispatcher each time.
+ // In the host, this value is always NULL.
+ const PPP_Pdf* ppp_pdf_;
+
+ DISALLOW_COPY_AND_ASSIGN(PPP_Pdf_Proxy);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_PPP_PDF_PROXY_H_
diff --git a/chromium/ppapi/proxy/ppp_video_decoder_proxy.cc b/chromium/ppapi/proxy/ppp_video_decoder_proxy.cc
index f1a67212791..19803187d17 100644
--- a/chromium/ppapi/proxy/ppp_video_decoder_proxy.cc
+++ b/chromium/ppapi/proxy/ppp_video_decoder_proxy.cc
@@ -10,11 +10,9 @@
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/ppb_video_decoder_proxy.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_video_decoder_api.h"
+#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
#include "ppapi/thunk/thunk.h"
-using ppapi::thunk::PPB_VideoDecoder_API;
-
namespace ppapi {
namespace proxy {
@@ -77,10 +75,6 @@ static const PPP_VideoDecoder_Dev video_decoder_interface = {
&NotifyError
};
-InterfaceProxy* CreateVideoDecoderPPPProxy(Dispatcher* dispatcher) {
- return new PPP_VideoDecoder_Proxy(dispatcher);
-}
-
} // namespace
PPP_VideoDecoder_Proxy::PPP_VideoDecoder_Proxy(Dispatcher* dispatcher)
@@ -96,15 +90,8 @@ PPP_VideoDecoder_Proxy::~PPP_VideoDecoder_Proxy() {
}
// static
-const InterfaceProxy::Info* PPP_VideoDecoder_Proxy::GetInfo() {
- static const Info info = {
- &video_decoder_interface,
- PPP_VIDEODECODER_DEV_INTERFACE,
- API_ID_PPP_VIDEO_DECODER_DEV,
- false,
- &CreateVideoDecoderPPPProxy,
- };
- return &info;
+const PPP_VideoDecoder_Dev* PPP_VideoDecoder_Proxy::GetProxyInterface() {
+ return &video_decoder_interface;
}
bool PPP_VideoDecoder_Proxy::OnMessageReceived(const IPC::Message& msg) {
diff --git a/chromium/ppapi/proxy/ppp_video_decoder_proxy.h b/chromium/ppapi/proxy/ppp_video_decoder_proxy.h
index 84d83a56b1a..54beac12796 100644
--- a/chromium/ppapi/proxy/ppp_video_decoder_proxy.h
+++ b/chromium/ppapi/proxy/ppp_video_decoder_proxy.h
@@ -21,7 +21,7 @@ class PPP_VideoDecoder_Proxy : public InterfaceProxy {
PPP_VideoDecoder_Proxy(Dispatcher* dispatcher);
virtual ~PPP_VideoDecoder_Proxy();
- static const Info* GetInfo();
+ static const PPP_VideoDecoder_Dev* GetProxyInterface();
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
diff --git a/chromium/ppapi/proxy/proxy_channel.cc b/chromium/ppapi/proxy/proxy_channel.cc
index b7f8a826ce3..7a7dfaa469e 100644
--- a/chromium/ppapi/proxy/proxy_channel.cc
+++ b/chromium/ppapi/proxy/proxy_channel.cc
@@ -31,11 +31,12 @@ bool ProxyChannel::InitWithChannel(Delegate* delegate,
bool is_client) {
delegate_ = delegate;
peer_pid_ = peer_pid;
- IPC::Channel::Mode mode = is_client ? IPC::Channel::MODE_CLIENT
- : IPC::Channel::MODE_SERVER;
- channel_.reset(new IPC::SyncChannel(channel_handle, mode, this,
+ IPC::Channel::Mode mode = is_client
+ ? IPC::Channel::MODE_CLIENT
+ : IPC::Channel::MODE_SERVER;
+ channel_ = IPC::SyncChannel::Create(channel_handle, mode, this,
delegate->GetIPCMessageLoop(), true,
- delegate->GetShutdownEvent()));
+ delegate->GetShutdownEvent());
return true;
}
@@ -64,11 +65,7 @@ IPC::PlatformFileForTransit ProxyChannel::ShareHandleWithRemote(
// Channel could be closed if the plugin crashes.
if (!channel_.get()) {
if (should_close_source) {
-#if !defined(OS_NACL)
- base::ClosePlatformFile(handle);
-#else
- close(handle);
-#endif
+ base::File file_closer(handle);
}
return IPC::InvalidPlatformFileForTransit();
}
diff --git a/chromium/ppapi/proxy/raw_var_data.cc b/chromium/ppapi/proxy/raw_var_data.cc
index 49ee8c261dd..97a6d944ae5 100644
--- a/chromium/ppapi/proxy/raw_var_data.cc
+++ b/chromium/ppapi/proxy/raw_var_data.cc
@@ -319,7 +319,7 @@ bool BasicRawVarData::Read(PP_VarType type,
case PP_VARTYPE_UNDEFINED:
case PP_VARTYPE_NULL:
// These don't have any data associated with them other than the type we
- // just serialized.
+ // just deserialized.
break;
case PP_VARTYPE_BOOL: {
bool bool_value;
diff --git a/chromium/ppapi/proxy/raw_var_data_unittest.cc b/chromium/ppapi/proxy/raw_var_data_unittest.cc
index 03408923322..e1c56a3358d 100644
--- a/chromium/ppapi/proxy/raw_var_data_unittest.cc
+++ b/chromium/ppapi/proxy/raw_var_data_unittest.cc
@@ -72,7 +72,7 @@ bool WriteReadAndCompare(const PP_Var& var) {
if (!success)
return false;
ScopedPPVar actual(ScopedPPVar::PassRef(), result);
- return TestEqual(expected.get(), actual.get());
+ return TestEqual(expected.get(), actual.get(), true);
}
} // namespace
diff --git a/chromium/ppapi/proxy/resource_creation_proxy.cc b/chromium/ppapi/proxy/resource_creation_proxy.cc
index 231142a937d..8b65dbd30cc 100644
--- a/chromium/ppapi/proxy/resource_creation_proxy.cc
+++ b/chromium/ppapi/proxy/resource_creation_proxy.cc
@@ -7,6 +7,7 @@
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/pp_size.h"
#include "ppapi/proxy/audio_input_resource.h"
+#include "ppapi/proxy/compositor_resource.h"
#include "ppapi/proxy/connection.h"
#include "ppapi/proxy/file_chooser_resource.h"
#include "ppapi/proxy/file_io_resource.h"
@@ -18,6 +19,7 @@
#include "ppapi/proxy/graphics_2d_resource.h"
#include "ppapi/proxy/host_resolver_private_resource.h"
#include "ppapi/proxy/host_resolver_resource.h"
+#include "ppapi/proxy/media_stream_video_track_resource.h"
#include "ppapi/proxy/net_address_resource.h"
#include "ppapi/proxy/network_monitor_resource.h"
#include "ppapi/proxy/output_protection_resource.h"
@@ -46,6 +48,7 @@
#include "ppapi/proxy/url_request_info_resource.h"
#include "ppapi/proxy/url_response_info_resource.h"
#include "ppapi/proxy/video_capture_resource.h"
+#include "ppapi/proxy/video_decoder_resource.h"
#include "ppapi/proxy/video_destination_resource.h"
#include "ppapi/proxy/video_source_resource.h"
#include "ppapi/proxy/websocket_resource.h"
@@ -54,7 +57,6 @@
#include "ppapi/shared_impl/ppb_audio_config_shared.h"
#include "ppapi/shared_impl/ppb_audio_shared.h"
#include "ppapi/shared_impl/ppb_input_event_shared.h"
-#include "ppapi/shared_impl/ppb_resource_array_shared.h"
#include "ppapi/shared_impl/var.h"
#include "ppapi/thunk/enter.h"
#include "ppapi/thunk/ppb_image_data_api.h"
@@ -108,16 +110,30 @@ PP_Resource ResourceCreationProxy::CreateIMEInputEvent(
segment_offsets, target_segment, selection_start, selection_end);
}
-PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent(
+PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent_1_0(
PP_Instance instance,
PP_InputEvent_Type type,
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
struct PP_Var character_text) {
+ PP_Var code = StringVar::StringToPPVar("");
return PPB_InputEvent_Shared::CreateKeyboardInputEvent(
OBJECT_IS_PROXY, instance, type, time_stamp, modifiers, key_code,
- character_text);
+ character_text, code);
+}
+
+PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent_1_2(
+ PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ struct PP_Var character_text,
+ struct PP_Var code) {
+ return PPB_InputEvent_Shared::CreateKeyboardInputEvent(
+ OBJECT_IS_PROXY, instance, type, time_stamp, modifiers, key_code,
+ character_text, code);
}
PP_Resource ResourceCreationProxy::CreateMouseInputEvent(
@@ -143,15 +159,6 @@ PP_Resource ResourceCreationProxy::CreateTouchInputEvent(
OBJECT_IS_PROXY, instance, type, time_stamp, modifiers);
}
-PP_Resource ResourceCreationProxy::CreateResourceArray(
- PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size) {
- PPB_ResourceArray_Shared* object = new PPB_ResourceArray_Shared(
- OBJECT_IS_PROXY, instance, elements, size);
- return object->GetReference();
-}
-
PP_Resource ResourceCreationProxy::CreateTrueTypeFont(
PP_Instance instance,
const PP_TrueTypeFontDesc_Dev* desc) {
@@ -213,6 +220,10 @@ PP_Resource ResourceCreationProxy::CreateAudioConfig(
OBJECT_IS_PROXY, instance, sample_rate, sample_frame_count);
}
+PP_Resource ResourceCreationProxy::CreateCompositor(PP_Instance instance) {
+ return (new CompositorResource(GetConnection(), instance))->GetReference();
+}
+
PP_Resource ResourceCreationProxy::CreateFileChooser(
PP_Instance instance,
PP_FileChooserMode_Dev mode,
@@ -286,6 +297,12 @@ PP_Resource ResourceCreationProxy::CreateImageDataSimple(
format, *size, init_to_zero);
}
+PP_Resource ResourceCreationProxy::CreateMediaStreamVideoTrack(
+ PP_Instance instance) {
+ return (new MediaStreamVideoTrackResource(GetConnection(),
+ instance))->GetReference();
+}
+
PP_Resource ResourceCreationProxy::CreateNetAddressFromIPv4Address(
PP_Instance instance,
const PP_NetAddress_IPv4* ipv4_addr) {
@@ -358,6 +375,10 @@ PP_Resource ResourceCreationProxy::CreateUDPSocketPrivate(
GetConnection(), instance))->GetReference();
}
+PP_Resource ResourceCreationProxy::CreateVideoDecoder(PP_Instance instance) {
+ return (new VideoDecoderResource(GetConnection(), instance))->GetReference();
+}
+
PP_Resource ResourceCreationProxy::CreateVideoDestination(
PP_Instance instance) {
return (new VideoDestinationResource(GetConnection(),
@@ -454,7 +475,7 @@ PP_Resource ResourceCreationProxy::CreateVideoCapture(PP_Instance instance) {
->GetReference();
}
-PP_Resource ResourceCreationProxy::CreateVideoDecoder(
+PP_Resource ResourceCreationProxy::CreateVideoDecoderDev(
PP_Instance instance,
PP_Resource context3d_id,
PP_VideoDecoder_Profile profile) {
diff --git a/chromium/ppapi/proxy/resource_creation_proxy.h b/chromium/ppapi/proxy/resource_creation_proxy.h
index df564da7ca3..48b8aaa8255 100644
--- a/chromium/ppapi/proxy/resource_creation_proxy.h
+++ b/chromium/ppapi/proxy/resource_creation_proxy.h
@@ -52,13 +52,21 @@ class ResourceCreationProxy : public InterfaceProxy,
int32_t target_segment,
uint32_t selection_start,
uint32_t selection_end) OVERRIDE;
- virtual PP_Resource CreateKeyboardInputEvent(
+ virtual PP_Resource CreateKeyboardInputEvent_1_0(
PP_Instance instance,
PP_InputEvent_Type type,
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
PP_Var character_text) OVERRIDE;
+ virtual PP_Resource CreateKeyboardInputEvent_1_2(
+ PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ PP_Var character_text,
+ PP_Var code) OVERRIDE;
virtual PP_Resource CreateMouseInputEvent(
PP_Instance instance,
PP_InputEvent_Type type,
@@ -73,9 +81,6 @@ class ResourceCreationProxy : public InterfaceProxy,
PP_InputEvent_Type type,
PP_TimeTicks time_stamp,
uint32_t modifiers) OVERRIDE;
- virtual PP_Resource CreateResourceArray(PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size) OVERRIDE;
virtual PP_Resource CreateTrueTypeFont(
PP_Instance instance,
const PP_TrueTypeFontDesc_Dev* desc) OVERRIDE;
@@ -101,6 +106,7 @@ class ResourceCreationProxy : public InterfaceProxy,
virtual PP_Resource CreateAudioConfig(PP_Instance instance,
PP_AudioSampleRate sample_rate,
uint32_t sample_frame_count) OVERRIDE;
+ virtual PP_Resource CreateCompositor(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateFileChooser(PP_Instance instance,
PP_FileChooserMode_Dev mode,
const PP_Var& accept_types) OVERRIDE;
@@ -124,6 +130,8 @@ class ResourceCreationProxy : public InterfaceProxy,
PP_ImageDataFormat format,
const PP_Size* size,
PP_Bool init_to_zero) OVERRIDE;
+ virtual PP_Resource CreateMediaStreamVideoTrack(
+ PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateNetAddressFromIPv4Address(
PP_Instance instance,
const PP_NetAddress_IPv4* ipv4_addr) OVERRIDE;
@@ -144,6 +152,7 @@ class ResourceCreationProxy : public InterfaceProxy,
virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateUDPSocket(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateUDPSocketPrivate(PP_Instance instance) OVERRIDE;
+ virtual PP_Resource CreateVideoDecoder(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateVideoDestination(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateVideoSource(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateWebSocket(PP_Instance instance) OVERRIDE;
@@ -171,7 +180,7 @@ class ResourceCreationProxy : public InterfaceProxy,
PP_Bool vertical) OVERRIDE;
virtual PP_Resource CreateTalk(PP_Instance instance) OVERRIDE;
virtual PP_Resource CreateVideoCapture(PP_Instance instance) OVERRIDE;
- virtual PP_Resource CreateVideoDecoder(
+ virtual PP_Resource CreateVideoDecoderDev(
PP_Instance instance,
PP_Resource context3d_id,
PP_VideoDecoder_Profile profile) OVERRIDE;
diff --git a/chromium/ppapi/proxy/resource_message_test_sink.cc b/chromium/ppapi/proxy/resource_message_test_sink.cc
index e76e32ac88e..2c237b0670a 100644
--- a/chromium/ppapi/proxy/resource_message_test_sink.cc
+++ b/chromium/ppapi/proxy/resource_message_test_sink.cc
@@ -13,26 +13,25 @@ namespace proxy {
namespace {
-// Backend for GetFirstResource[Call|Reply]Matching.
+// Backend for GetAllResource[Calls|Replies]Matching.
template<class WrapperMessage, class Params>
-bool GetFirstResourceMessageMatching(const ResourceMessageTestSink& sink,
- uint32 id,
- Params* params,
- IPC::Message* nested_msg) {
+std::vector<std::pair<Params, IPC::Message> >
+GetAllResourceMessagesMatching(const ResourceMessageTestSink& sink,
+ uint32 id) {
+ std::vector<std::pair<Params, IPC::Message> > result;
for (size_t i = 0; i < sink.message_count(); i++) {
const IPC::Message* msg = sink.GetMessageAt(i);
if (msg->type() == WrapperMessage::ID) {
- Params cur_params;
- IPC::Message cur_msg;
- WrapperMessage::Read(msg, &cur_params, &cur_msg);
+ typename WrapperMessage::Param params;
+ WrapperMessage::Read(msg, &params);
+ Params cur_params = params.a;
+ IPC::Message cur_msg = params.b;
if (cur_msg.type() == id) {
- *params = cur_params;
- *nested_msg = cur_msg;
- return true;
+ result.push_back(std::make_pair(cur_params, cur_msg));
}
}
}
- return false;
+ return result;
}
} // namespace
@@ -71,18 +70,42 @@ bool ResourceMessageTestSink::GetFirstResourceCallMatching(
uint32 id,
ResourceMessageCallParams* params,
IPC::Message* nested_msg) const {
- return GetFirstResourceMessageMatching<PpapiHostMsg_ResourceCall,
- ResourceMessageCallParams>(
- *this, id, params, nested_msg);
+ ResourceCallVector matching_messages =
+ GetAllResourceMessagesMatching<PpapiHostMsg_ResourceCall,
+ ResourceMessageCallParams>(*this, id);
+ if (matching_messages.empty())
+ return false;
+
+ *params = matching_messages[0].first;
+ *nested_msg = matching_messages[0].second;
+ return true;
}
bool ResourceMessageTestSink::GetFirstResourceReplyMatching(
uint32 id,
ResourceMessageReplyParams* params,
IPC::Message* nested_msg) {
- return GetFirstResourceMessageMatching<PpapiPluginMsg_ResourceReply,
- ResourceMessageReplyParams>(
- *this, id, params, nested_msg);
+ ResourceReplyVector matching_messages =
+ GetAllResourceMessagesMatching<PpapiPluginMsg_ResourceReply,
+ ResourceMessageReplyParams>(*this, id);
+ if (matching_messages.empty())
+ return false;
+
+ *params = matching_messages[0].first;
+ *nested_msg = matching_messages[0].second;
+ return true;
+}
+
+ResourceMessageTestSink::ResourceCallVector
+ResourceMessageTestSink::GetAllResourceCallsMatching(uint32 id) {
+ return GetAllResourceMessagesMatching<PpapiHostMsg_ResourceCall,
+ ResourceMessageCallParams>(*this, id);
+}
+
+ResourceMessageTestSink::ResourceReplyVector
+ResourceMessageTestSink::GetAllResourceRepliesMatching(uint32 id) {
+ return GetAllResourceMessagesMatching<PpapiPluginMsg_ResourceReply,
+ ResourceMessageReplyParams>(*this, id);
}
ResourceSyncCallHandler::ResourceSyncCallHandler(
diff --git a/chromium/ppapi/proxy/resource_message_test_sink.h b/chromium/ppapi/proxy/resource_message_test_sink.h
index cbbece3134d..2593aaae221 100644
--- a/chromium/ppapi/proxy/resource_message_test_sink.h
+++ b/chromium/ppapi/proxy/resource_message_test_sink.h
@@ -33,7 +33,7 @@ class ResourceMessageTestSink : public IPC::TestSink {
// Searches the queue for the first resource call message with a nested
// message matching the given ID. On success, returns true and populates the
- // givem params and nested message.
+ // given params and nested message.
bool GetFirstResourceCallMatching(
uint32 id,
ResourceMessageCallParams* params,
@@ -45,6 +45,17 @@ class ResourceMessageTestSink : public IPC::TestSink {
ResourceMessageReplyParams* params,
IPC::Message* nested_msg);
+ // Searches the queue for all resource call messages with a nested message
+ // matching the given ID.
+ typedef std::pair<ResourceMessageCallParams, IPC::Message> ResourceCall;
+ typedef std::vector<ResourceCall> ResourceCallVector;
+ ResourceCallVector GetAllResourceCallsMatching(uint32 id);
+
+ // Like GetAllResourceCallsMatching except for replies.
+ typedef std::pair<ResourceMessageReplyParams, IPC::Message> ResourceReply;
+ typedef std::vector<ResourceReply> ResourceReplyVector;
+ ResourceReplyVector GetAllResourceRepliesMatching(uint32 id);
+
private:
scoped_ptr<IPC::Message> sync_reply_msg_;
};
diff --git a/chromium/ppapi/proxy/serialized_handle.cc b/chromium/ppapi/proxy/serialized_handle.cc
index c9ce13b41a9..7d06c763b31 100644
--- a/chromium/ppapi/proxy/serialized_handle.cc
+++ b/chromium/ppapi/proxy/serialized_handle.cc
@@ -4,9 +4,9 @@
#include "ppapi/proxy/serialized_handle.h"
+#include "base/files/file.h"
#include "base/memory/shared_memory.h"
#include "base/pickle.h"
-#include "base/platform_file.h"
#include "build/build_config.h"
#include "ipc/ipc_platform_file.h"
@@ -21,14 +21,18 @@ SerializedHandle::SerializedHandle()
: type_(INVALID),
shm_handle_(base::SharedMemory::NULLHandle()),
size_(0),
- descriptor_(IPC::InvalidPlatformFileForTransit()) {
+ descriptor_(IPC::InvalidPlatformFileForTransit()),
+ open_flags_(0),
+ file_io_(0) {
}
SerializedHandle::SerializedHandle(Type type_param)
: type_(type_param),
shm_handle_(base::SharedMemory::NULLHandle()),
size_(0),
- descriptor_(IPC::InvalidPlatformFileForTransit()) {
+ descriptor_(IPC::InvalidPlatformFileForTransit()),
+ open_flags_(0),
+ file_io_(0) {
}
SerializedHandle::SerializedHandle(const base::SharedMemoryHandle& handle,
@@ -36,7 +40,9 @@ SerializedHandle::SerializedHandle(const base::SharedMemoryHandle& handle,
: type_(SHARED_MEMORY),
shm_handle_(handle),
size_(size),
- descriptor_(IPC::InvalidPlatformFileForTransit()) {
+ descriptor_(IPC::InvalidPlatformFileForTransit()),
+ open_flags_(0),
+ file_io_(0) {
}
SerializedHandle::SerializedHandle(
@@ -45,7 +51,9 @@ SerializedHandle::SerializedHandle(
: type_(type),
shm_handle_(base::SharedMemory::NULLHandle()),
size_(0),
- descriptor_(socket_descriptor) {
+ descriptor_(socket_descriptor),
+ open_flags_(0),
+ file_io_(0) {
}
bool SerializedHandle::IsHandleValid() const {
@@ -53,7 +61,6 @@ bool SerializedHandle::IsHandleValid() const {
case SHARED_MEMORY:
return base::SharedMemory::IsHandleValid(shm_handle_);
case SOCKET:
- case CHANNEL_HANDLE:
case FILE:
return !(IPC::InvalidPlatformFileForTransit() == descriptor_);
case INVALID:
@@ -73,15 +80,8 @@ void SerializedHandle::Close() {
base::SharedMemory::CloseHandle(shm_handle_);
break;
case SOCKET:
- case CHANNEL_HANDLE:
case FILE:
- base::PlatformFile file =
- IPC::PlatformFileForTransitToPlatformFile(descriptor_);
-#if !defined(OS_NACL)
- base::ClosePlatformFile(file);
-#else
- close(file);
-#endif
+ base::File file_closer = IPC::PlatformFileForTransitToFile(descriptor_);
break;
// No default so the compiler will warn us if a new type is added.
}
@@ -98,7 +98,7 @@ bool SerializedHandle::WriteHeader(const Header& hdr, Pickle* pickle) {
return false;
}
if (hdr.type == FILE) {
- if (!pickle->WriteInt(hdr.open_flag))
+ if (!pickle->WriteInt(hdr.open_flags) || !pickle->WriteInt(hdr.file_io))
return false;
}
return true;
@@ -106,7 +106,7 @@ bool SerializedHandle::WriteHeader(const Header& hdr, Pickle* pickle) {
// static
bool SerializedHandle::ReadHeader(PickleIterator* iter, Header* hdr) {
- *hdr = Header(INVALID, 0, 0);
+ *hdr = Header(INVALID, 0, 0, 0);
int type = 0;
if (!iter->ReadInt(&type))
return false;
@@ -121,14 +121,15 @@ bool SerializedHandle::ReadHeader(PickleIterator* iter, Header* hdr) {
break;
}
case FILE: {
- int open_flag = 0;
- if (!iter->ReadInt(&open_flag))
+ int open_flags = 0;
+ PP_Resource file_io = 0;
+ if (!iter->ReadInt(&open_flags) || !iter->ReadInt(&file_io))
return false;
- hdr->open_flag = open_flag;
+ hdr->open_flags = open_flags;
+ hdr->file_io = file_io;
valid_type = true;
}
case SOCKET:
- case CHANNEL_HANDLE:
case INVALID:
valid_type = true;
break;
diff --git a/chromium/ppapi/proxy/serialized_handle.h b/chromium/ppapi/proxy/serialized_handle.h
index 91efa075b5d..252ffcb9f3c 100644
--- a/chromium/ppapi/proxy/serialized_handle.h
+++ b/chromium/ppapi/proxy/serialized_handle.h
@@ -8,11 +8,14 @@
#include <string>
#include <vector>
+#include "base/atomicops.h"
#include "base/basictypes.h"
#include "base/logging.h"
+#include "base/memory/ref_counted.h"
#include "base/memory/shared_memory.h"
#include "build/build_config.h"
#include "ipc/ipc_platform_file.h"
+#include "ppapi/c/pp_resource.h"
#include "ppapi/proxy/ppapi_proxy_export.h"
class Pickle;
@@ -26,15 +29,25 @@ namespace proxy {
// NaClIPCAdapter for use in NaCl.
class PPAPI_PROXY_EXPORT SerializedHandle {
public:
- enum Type { INVALID, SHARED_MEMORY, SOCKET, CHANNEL_HANDLE, FILE };
+ enum Type { INVALID, SHARED_MEMORY, SOCKET, FILE };
+ // Header contains the fields that we send in IPC messages, apart from the
+ // actual handle. See comments on the SerializedHandle fields below.
struct Header {
- Header() : type(INVALID), size(0), open_flag(0) {}
- Header(Type type_arg, uint32 size_arg, int32 open_flag_arg)
- : type(type_arg), size(size_arg), open_flag(open_flag_arg) {
+ Header() : type(INVALID), size(0), open_flags(0) {}
+ Header(Type type_arg,
+ uint32 size_arg,
+ int32 open_flags_arg,
+ PP_Resource file_io_arg)
+ : type(type_arg),
+ size(size_arg),
+ open_flags(open_flags_arg),
+ file_io(file_io_arg) {
}
+
Type type;
uint32 size;
- int32 open_flag;
+ int32 open_flags;
+ PP_Resource file_io;
};
SerializedHandle();
@@ -44,14 +57,13 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
// Create a shared memory handle.
SerializedHandle(const base::SharedMemoryHandle& handle, uint32 size);
- // Create a socket, channel or file handle.
+ // Create a socket or file handle.
SerializedHandle(const Type type,
const IPC::PlatformFileForTransit& descriptor);
Type type() const { return type_; }
bool is_shmem() const { return type_ == SHARED_MEMORY; }
bool is_socket() const { return type_ == SOCKET; }
- bool is_channel_handle() const { return type_ == CHANNEL_HANDLE; }
bool is_file() const { return type_ == FILE; }
const base::SharedMemoryHandle& shmem() const {
DCHECK(is_shmem());
@@ -62,11 +74,14 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
return size_;
}
const IPC::PlatformFileForTransit& descriptor() const {
- DCHECK(is_socket() || is_channel_handle() || is_file());
+ DCHECK(is_socket() || is_file());
return descriptor_;
}
- int32 open_flag() const {
- return open_flag_;
+ int32 open_flags() const {
+ return open_flags_;
+ }
+ PP_Resource file_io() const {
+ return file_io_;
}
void set_shmem(const base::SharedMemoryHandle& handle, uint32 size) {
type_ = SHARED_MEMORY;
@@ -82,21 +97,16 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
shm_handle_ = base::SharedMemory::NULLHandle();
size_ = 0;
}
- void set_channel_handle(const IPC::PlatformFileForTransit& descriptor) {
- type_ = CHANNEL_HANDLE;
-
- descriptor_ = descriptor;
- shm_handle_ = base::SharedMemory::NULLHandle();
- size_ = 0;
- }
void set_file_handle(const IPC::PlatformFileForTransit& descriptor,
- int32 open_flag) {
+ int32 open_flags,
+ PP_Resource file_io) {
type_ = FILE;
descriptor_ = descriptor;
shm_handle_ = base::SharedMemory::NULLHandle();
size_ = 0;
- open_flag_ = open_flag;
+ open_flags_ = open_flags;
+ file_io_ = file_io;
}
void set_null_shmem() {
set_shmem(base::SharedMemory::NULLHandle(), 0);
@@ -104,16 +114,13 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
void set_null_socket() {
set_socket(IPC::InvalidPlatformFileForTransit());
}
- void set_null_channel_handle() {
- set_channel_handle(IPC::InvalidPlatformFileForTransit());
- }
void set_null_file_handle() {
- set_file_handle(IPC::InvalidPlatformFileForTransit(), 0);
+ set_file_handle(IPC::InvalidPlatformFileForTransit(), 0, 0);
}
bool IsHandleValid() const;
Header header() const {
- return Header(type_, size_, open_flag_);
+ return Header(type_, size_, open_flags_, file_io_);
}
// Closes the handle and sets it to invalid.
@@ -137,11 +144,13 @@ class PPAPI_PROXY_EXPORT SerializedHandle {
base::SharedMemoryHandle shm_handle_;
uint32 size_;
- // This is valid if type == SOCKET || type == CHANNEL_HANDLE || type == FILE.
+ // This is valid if type == SOCKET || type == FILE.
IPC::PlatformFileForTransit descriptor_;
- // This is valid if type == FILE.
- int32 open_flag_;
+ // The following fields are valid if type == FILE.
+ int32 open_flags_;
+ // This is non-zero if file writes require quota checking.
+ PP_Resource file_io_;
};
} // namespace proxy
diff --git a/chromium/ppapi/proxy/serialized_structs.h b/chromium/ppapi/proxy/serialized_structs.h
index fb93dd16d03..f3e114c09fa 100644
--- a/chromium/ppapi/proxy/serialized_structs.h
+++ b/chromium/ppapi/proxy/serialized_structs.h
@@ -135,9 +135,6 @@ struct PPPDecryptor_Buffer {
// TODO(raymes): Make ImageHandle compatible with SerializedHandle.
#if defined(OS_WIN)
typedef HANDLE ImageHandle;
-#elif defined(TOOLKIT_GTK)
-// On legacy X Windows this is a SysV shared memory key.
-typedef int ImageHandle;
#else
typedef base::SharedMemoryHandle ImageHandle;
#endif
diff --git a/chromium/ppapi/proxy/serialized_var.cc b/chromium/ppapi/proxy/serialized_var.cc
index 72e7cc8ecbb..d00a7d39aab 100644
--- a/chromium/ppapi/proxy/serialized_var.cc
+++ b/chromium/ppapi/proxy/serialized_var.cc
@@ -68,14 +68,14 @@ PP_Var SerializedVar::Inner::GetVar() {
#if defined(NACL_WIN64)
NOTREACHED();
return PP_MakeUndefined();
-#endif
-
+#else
if (raw_var_data_.get()) {
var_ = raw_var_data_->CreatePPVar(instance_);
raw_var_data_.reset(NULL);
}
return var_;
+#endif
}
void SerializedVar::Inner::SetVar(PP_Var var) {
diff --git a/chromium/ppapi/proxy/talk_resource.cc b/chromium/ppapi/proxy/talk_resource.cc
index 2e60abfd331..b076064df6e 100644
--- a/chromium/ppapi/proxy/talk_resource.cc
+++ b/chromium/ppapi/proxy/talk_resource.cc
@@ -78,13 +78,13 @@ int32_t TalkResource::StopRemoting(scoped_refptr<TrackedCallback> callback) {
void TalkResource::OnReplyReceived(const ResourceMessageReplyParams& params,
const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(TalkResource, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(TalkResource, msg)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_Talk_NotifyEvent,
OnNotifyEvent)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
PluginResource::OnReplyReceived(params, msg))
- IPC_END_MESSAGE_MAP()
+ PPAPI_END_MESSAGE_MAP()
}
void TalkResource::OnNotifyEvent(const ResourceMessageReplyParams& params,
diff --git a/chromium/ppapi/proxy/tcp_socket_resource_base.cc b/chromium/ppapi/proxy/tcp_socket_resource_base.cc
index fff2da3cf8a..39c9fa311d6 100644
--- a/chromium/ppapi/proxy/tcp_socket_resource_base.cc
+++ b/chromium/ppapi/proxy/tcp_socket_resource_base.cc
@@ -189,32 +189,13 @@ PP_Resource TCPSocketResourceBase::GetServerCertificateImpl() {
PP_Bool TCPSocketResourceBase::AddChainBuildingCertificateImpl(
PP_Resource certificate,
PP_Bool trusted) {
- // TODO(raymes): The plumbing for this functionality is implemented but the
- // certificates aren't yet used for the connection, so just return false for
- // now.
+ // TODO(raymes): This is exposed in the private PPB_TCPSocket_Private
+ // interface for Flash but isn't currently implemented due to security
+ // implications. It is exposed so that it can be hooked up on the Flash side
+ // and if we decide to implement it we can do so without modifying the Flash
+ // codebase.
+ NOTIMPLEMENTED();
return PP_FALSE;
-
- thunk::EnterResourceNoLock<thunk::PPB_X509Certificate_Private_API>
- enter_cert(certificate, true);
- if (enter_cert.failed())
- return PP_FALSE;
-
- PP_Var der_var = enter_cert.object()->GetField(
- PP_X509CERTIFICATE_PRIVATE_RAW);
- ArrayBufferVar* der_array_buffer = ArrayBufferVar::FromPPVar(der_var);
- PP_Bool success = PP_FALSE;
- if (der_array_buffer) {
- const char* der_bytes = static_cast<const char*>(der_array_buffer->Map());
- uint32_t der_length = der_array_buffer->ByteLength();
- std::vector<char> der(der_bytes, der_bytes + der_length);
- if (PP_ToBool(trusted))
- trusted_certificates_.push_back(der);
- else
- untrusted_certificates_.push_back(der);
- success = PP_TRUE;
- }
- PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(der_var);
- return success;
}
int32_t TCPSocketResourceBase::ReadImpl(
diff --git a/chromium/ppapi/proxy/uma_private_resource.cc b/chromium/ppapi/proxy/uma_private_resource.cc
new file mode 100644
index 00000000000..2932e6cbe26
--- /dev/null
+++ b/chromium/ppapi/proxy/uma_private_resource.cc
@@ -0,0 +1,110 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/uma_private_resource.h"
+
+#include "base/bind.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/resource_message_params.h"
+#include "ppapi/shared_impl/var.h"
+
+namespace {
+
+std::string StringFromPPVar(const PP_Var& var) {
+ scoped_refptr<ppapi::StringVar> name_stringvar =
+ ppapi::StringVar::FromPPVar(var);
+ if (!name_stringvar.get())
+ return std::string();
+ return name_stringvar->value();
+}
+
+}
+
+namespace ppapi {
+namespace proxy {
+
+UMAPrivateResource::UMAPrivateResource(
+ Connection connection, PP_Instance instance)
+ : PluginResource(connection, instance) {
+ SendCreate(RENDERER, PpapiHostMsg_UMA_Create());
+}
+
+UMAPrivateResource::~UMAPrivateResource() {
+}
+
+thunk::PPB_UMA_Singleton_API* UMAPrivateResource::AsPPB_UMA_Singleton_API() {
+ return this;
+}
+
+void UMAPrivateResource::HistogramCustomTimes(
+ PP_Instance instance,
+ struct PP_Var name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count) {
+ if (name.type != PP_VARTYPE_STRING)
+ return;
+
+ Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomTimes(StringFromPPVar(name),
+ sample,
+ min,
+ max,
+ bucket_count));
+}
+
+void UMAPrivateResource::HistogramCustomCounts(
+ PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count) {
+ if (name.type != PP_VARTYPE_STRING)
+ return;
+
+ Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomCounts(StringFromPPVar(name),
+ sample,
+ min,
+ max,
+ bucket_count));
+}
+
+void UMAPrivateResource::HistogramEnumeration(
+ PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t boundary_value) {
+ if (name.type != PP_VARTYPE_STRING)
+ return;
+
+ Post(RENDERER, PpapiHostMsg_UMA_HistogramEnumeration(StringFromPPVar(name),
+ sample,
+ boundary_value));
+}
+
+int32_t UMAPrivateResource::IsCrashReportingEnabled(
+ PP_Instance instance,
+ scoped_refptr<TrackedCallback> callback) {
+ if (pending_callback_ != NULL)
+ return PP_ERROR_INPROGRESS;
+ pending_callback_ = callback;
+ Call<PpapiPluginMsg_UMA_IsCrashReportingEnabledReply>(
+ RENDERER,
+ PpapiHostMsg_UMA_IsCrashReportingEnabled(),
+ base::Bind(&UMAPrivateResource::OnPluginMsgIsCrashReportingEnabled,
+ this));
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void UMAPrivateResource::OnPluginMsgIsCrashReportingEnabled(
+ const ResourceMessageReplyParams& params) {
+ if (TrackedCallback::IsPending(pending_callback_))
+ pending_callback_->Run(params.result());
+ pending_callback_ = NULL;
+}
+
+} // namespace proxy
+} // namespace ppapi
+
diff --git a/chromium/ppapi/proxy/uma_private_resource.h b/chromium/ppapi/proxy/uma_private_resource.h
new file mode 100644
index 00000000000..93328e8ec84
--- /dev/null
+++ b/chromium/ppapi/proxy/uma_private_resource.h
@@ -0,0 +1,62 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_
+#define PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_
+
+#include "ppapi/proxy/connection.h"
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/thunk/ppb_uma_singleton_api.h"
+
+namespace ppapi {
+
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT UMAPrivateResource
+ : public PluginResource,
+ public thunk::PPB_UMA_Singleton_API {
+ public:
+ UMAPrivateResource(Connection connection, PP_Instance instance);
+ virtual ~UMAPrivateResource();
+
+ // Resource overrides.
+ virtual thunk::PPB_UMA_Singleton_API* AsPPB_UMA_Singleton_API() OVERRIDE;
+
+ // PPB_UMA_Singleton_API implementation.
+ virtual void HistogramCustomTimes(PP_Instance instance,
+ struct PP_Var name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count) OVERRIDE;
+
+ virtual void HistogramCustomCounts(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count) OVERRIDE;
+
+ virtual void HistogramEnumeration(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t boundary_value) OVERRIDE;
+
+ virtual int32_t IsCrashReportingEnabled(
+ PP_Instance instance,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+
+ private:
+ void OnPluginMsgIsCrashReportingEnabled(
+ const ResourceMessageReplyParams& params);
+ scoped_refptr<TrackedCallback> pending_callback_;
+
+ DISALLOW_COPY_AND_ASSIGN(UMAPrivateResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/url_loader_resource.cc b/chromium/ppapi/proxy/url_loader_resource.cc
index 1ff0a5e1a98..73bdb2342f4 100644
--- a/chromium/ppapi/proxy/url_loader_resource.cc
+++ b/chromium/ppapi/proxy/url_loader_resource.cc
@@ -235,7 +235,7 @@ void URLLoaderResource::RegisterStatusCallback(
void URLLoaderResource::OnReplyReceived(
const ResourceMessageReplyParams& params,
const IPC::Message& msg) {
- IPC_BEGIN_MESSAGE_MAP(URLLoaderResource, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(URLLoaderResource, msg)
case PpapiPluginMsg_URLLoader_SendData::ID:
// Special message, manually dispatch since we don't want the automatic
// unpickling.
@@ -251,7 +251,7 @@ void URLLoaderResource::OnReplyReceived(
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_URLLoader_UpdateProgress,
OnPluginMsgUpdateProgress)
- IPC_END_MESSAGE_MAP()
+ PPAPI_END_MESSAGE_MAP()
}
void URLLoaderResource::OnPluginMsgReceivedResponse(
diff --git a/chromium/ppapi/proxy/video_capture_resource.cc b/chromium/ppapi/proxy/video_capture_resource.cc
index 6ea8bd50015..8931b8fa378 100644
--- a/chromium/ppapi/proxy/video_capture_resource.cc
+++ b/chromium/ppapi/proxy/video_capture_resource.cc
@@ -45,7 +45,7 @@ void VideoCaptureResource::OnReplyReceived(
return;
}
- IPC_BEGIN_MESSAGE_MAP(VideoCaptureResource, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(VideoCaptureResource, msg)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_VideoCapture_OnDeviceInfo,
OnPluginMsgOnDeviceInfo)
@@ -59,13 +59,7 @@ void VideoCaptureResource::OnReplyReceived(
PpapiPluginMsg_VideoCapture_OnBufferReady,
OnPluginMsgOnBufferReady)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(NOTREACHED())
- IPC_END_MESSAGE_MAP()
-}
-
-int32_t VideoCaptureResource::EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) {
- return enumeration_helper_.EnumerateDevices0_2(devices, callback);
+ PPAPI_END_MESSAGE_MAP()
}
int32_t VideoCaptureResource::EnumerateDevices(
diff --git a/chromium/ppapi/proxy/video_capture_resource.h b/chromium/ppapi/proxy/video_capture_resource.h
index e533ef095fb..44e415e2d41 100644
--- a/chromium/ppapi/proxy/video_capture_resource.h
+++ b/chromium/ppapi/proxy/video_capture_resource.h
@@ -29,9 +29,6 @@ class VideoCaptureResource
}
// PPB_VideoCapture_API implementation.
- virtual int32_t EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) OVERRIDE;
virtual int32_t EnumerateDevices(
const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
diff --git a/chromium/ppapi/proxy/video_decoder_constants.h b/chromium/ppapi/proxy/video_decoder_constants.h
new file mode 100644
index 00000000000..666ad46044d
--- /dev/null
+++ b/chromium/ppapi/proxy/video_decoder_constants.h
@@ -0,0 +1,28 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_VIDEO_DECODER_CONSTANTS_H_
+#define PPAPI_PROXY_VIDEO_DECODER_CONSTANTS_H_
+
+namespace ppapi {
+namespace proxy {
+
+// These constants are shared by the video decoder resource and host.
+enum {
+ // Maximum number of concurrent decodes which can be pending.
+ kMaximumPendingDecodes = 8,
+
+ // Minimum size of shared-memory buffers (100 KB). Make them large since we
+ // try to reuse them.
+ kMinimumBitstreamBufferSize = 100 << 10,
+
+ // Maximum size of shared-memory buffers (4 MB). This should be enough even
+ // for 4K video at reasonable compression levels.
+ kMaximumBitstreamBufferSize = 4 << 20
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_VIDEO_DECODER_CONSTANTS_H_
diff --git a/chromium/ppapi/proxy/video_decoder_resource.cc b/chromium/ppapi/proxy/video_decoder_resource.cc
new file mode 100644
index 00000000000..54ccfe78254
--- /dev/null
+++ b/chromium/ppapi/proxy/video_decoder_resource.cc
@@ -0,0 +1,518 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/video_decoder_resource.h"
+
+#include "base/bind.h"
+#include "gpu/command_buffer/client/gles2_cmd_helper.h"
+#include "gpu/command_buffer/client/gles2_implementation.h"
+#include "gpu/command_buffer/common/mailbox.h"
+#include "ipc/ipc_message.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_opengles2.h"
+#include "ppapi/proxy/plugin_dispatcher.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
+#include "ppapi/proxy/serialized_handle.h"
+#include "ppapi/proxy/video_decoder_constants.h"
+#include "ppapi/shared_impl/ppapi_globals.h"
+#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/shared_impl/resource_tracker.h"
+#include "ppapi/thunk/enter.h"
+
+using ppapi::thunk::EnterResourceNoLock;
+using ppapi::thunk::PPB_Graphics3D_API;
+using ppapi::thunk::PPB_VideoDecoder_API;
+
+namespace ppapi {
+namespace proxy {
+
+VideoDecoderResource::ShmBuffer::ShmBuffer(
+ scoped_ptr<base::SharedMemory> shm_ptr,
+ uint32_t size,
+ uint32_t shm_id)
+ : shm(shm_ptr.Pass()), addr(NULL), shm_id(shm_id) {
+ if (shm->Map(size))
+ addr = shm->memory();
+}
+
+VideoDecoderResource::ShmBuffer::~ShmBuffer() {
+}
+
+VideoDecoderResource::Texture::Texture(uint32_t texture_target,
+ const PP_Size& size)
+ : texture_target(texture_target), size(size) {
+}
+
+VideoDecoderResource::Texture::~Texture() {
+}
+
+VideoDecoderResource::Picture::Picture(int32_t decode_id, uint32_t texture_id)
+ : decode_id(decode_id), texture_id(texture_id) {
+}
+
+VideoDecoderResource::Picture::~Picture() {
+}
+
+VideoDecoderResource::VideoDecoderResource(Connection connection,
+ PP_Instance instance)
+ : PluginResource(connection, instance),
+ num_decodes_(0),
+ get_picture_(NULL),
+ gles2_impl_(NULL),
+ initialized_(false),
+ testing_(false),
+ // Set |decoder_last_error_| to PP_OK after successful initialization.
+ // This makes error checking a little more concise, since we can check
+ // that the decoder has been initialized and hasn't returned an error by
+ // just testing |decoder_last_error_|.
+ decoder_last_error_(PP_ERROR_FAILED) {
+ // Clear the decode_ids_ array.
+ memset(decode_ids_, 0, arraysize(decode_ids_));
+ SendCreate(RENDERER, PpapiHostMsg_VideoDecoder_Create());
+}
+
+VideoDecoderResource::~VideoDecoderResource() {
+ // Destroy any textures which haven't been dismissed.
+ TextureMap::iterator it = textures_.begin();
+ for (; it != textures_.end(); ++it)
+ DeleteGLTexture(it->first);
+}
+
+PPB_VideoDecoder_API* VideoDecoderResource::AsPPB_VideoDecoder_API() {
+ return this;
+}
+
+int32_t VideoDecoderResource::Initialize(
+ PP_Resource graphics_context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ scoped_refptr<TrackedCallback> callback) {
+ if (initialized_)
+ return PP_ERROR_FAILED;
+ if (profile < 0 || profile > PP_VIDEOPROFILE_MAX)
+ return PP_ERROR_BADARGUMENT;
+ if (initialize_callback_)
+ return PP_ERROR_INPROGRESS;
+ if (!graphics_context)
+ return PP_ERROR_BADRESOURCE;
+
+ HostResource host_resource;
+ if (!testing_) {
+ // Create a new Graphics3D resource that can create texture resources to
+ // share with the plugin. We can't use the plugin's Graphics3D, since we
+ // create textures on a proxy thread, and would interfere with the plugin.
+ thunk::EnterResourceCreationNoLock enter_create(pp_instance());
+ if (enter_create.failed())
+ return PP_ERROR_FAILED;
+ int32_t attrib_list[] = {PP_GRAPHICS3DATTRIB_NONE};
+ graphics3d_ =
+ ScopedPPResource(ScopedPPResource::PassRef(),
+ enter_create.functions()->CreateGraphics3D(
+ pp_instance(), graphics_context, attrib_list));
+ EnterResourceNoLock<PPB_Graphics3D_API> enter_graphics(graphics3d_.get(),
+ false);
+ if (enter_graphics.failed())
+ return PP_ERROR_BADRESOURCE;
+
+ PPB_Graphics3D_Shared* ppb_graphics3d_shared =
+ static_cast<PPB_Graphics3D_Shared*>(enter_graphics.object());
+ gles2_impl_ = ppb_graphics3d_shared->gles2_impl();
+ host_resource = ppb_graphics3d_shared->host_resource();
+ }
+
+ initialize_callback_ = callback;
+
+ Call<PpapiPluginMsg_VideoDecoder_InitializeReply>(
+ RENDERER,
+ PpapiHostMsg_VideoDecoder_Initialize(
+ host_resource, profile, PP_ToBool(allow_software_fallback)),
+ base::Bind(&VideoDecoderResource::OnPluginMsgInitializeComplete, this));
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t VideoDecoderResource::Decode(uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ scoped_refptr<TrackedCallback> callback) {
+ if (decoder_last_error_)
+ return decoder_last_error_;
+ if (flush_callback_ || reset_callback_)
+ return PP_ERROR_FAILED;
+ if (decode_callback_)
+ return PP_ERROR_INPROGRESS;
+ if (size > kMaximumBitstreamBufferSize)
+ return PP_ERROR_NOMEMORY;
+
+ // If we allow the plugin to call Decode again, we must have somewhere to
+ // copy their buffer.
+ DCHECK(!available_shm_buffers_.empty() ||
+ shm_buffers_.size() < kMaximumPendingDecodes);
+
+ // Count up, wrapping back to 0 before overflowing.
+ int32_t uid = ++num_decodes_;
+ if (uid == std::numeric_limits<int32_t>::max())
+ num_decodes_ = 0;
+
+ // Save decode_id in a ring buffer. The ring buffer is sized to store
+ // decode_id for the maximum picture delay.
+ decode_ids_[uid % kMaximumPictureDelay] = decode_id;
+
+ if (available_shm_buffers_.empty() ||
+ available_shm_buffers_.back()->shm->mapped_size() < size) {
+ uint32_t shm_id;
+ if (shm_buffers_.size() < kMaximumPendingDecodes) {
+ // Signal the host to create a new shm buffer by passing an index outside
+ // the legal range.
+ shm_id = static_cast<uint32_t>(shm_buffers_.size());
+ } else {
+ // Signal the host to grow a buffer by passing a legal index. Choose the
+ // last available shm buffer for simplicity.
+ shm_id = available_shm_buffers_.back()->shm_id;
+ available_shm_buffers_.pop_back();
+ }
+
+ // Synchronously get shared memory. Use GenericSyncCall so we can get the
+ // reply params, which contain the handle.
+ uint32_t shm_size = 0;
+ IPC::Message reply;
+ ResourceMessageReplyParams reply_params;
+ int32_t result =
+ GenericSyncCall(RENDERER,
+ PpapiHostMsg_VideoDecoder_GetShm(shm_id, size),
+ &reply,
+ &reply_params);
+ if (result != PP_OK)
+ return PP_ERROR_FAILED;
+ if (!UnpackMessage<PpapiPluginMsg_VideoDecoder_GetShmReply>(reply,
+ &shm_size))
+ return PP_ERROR_FAILED;
+ base::SharedMemoryHandle shm_handle = base::SharedMemory::NULLHandle();
+ if (!reply_params.TakeSharedMemoryHandleAtIndex(0, &shm_handle))
+ return PP_ERROR_NOMEMORY;
+ scoped_ptr<base::SharedMemory> shm(
+ new base::SharedMemory(shm_handle, false /* read_only */));
+ scoped_ptr<ShmBuffer> shm_buffer(
+ new ShmBuffer(shm.Pass(), shm_size, shm_id));
+ if (!shm_buffer->addr)
+ return PP_ERROR_NOMEMORY;
+
+ available_shm_buffers_.push_back(shm_buffer.get());
+ if (shm_buffers_.size() < kMaximumPendingDecodes) {
+ shm_buffers_.push_back(shm_buffer.release());
+ } else {
+ // Delete manually since ScopedVector won't delete the existing element if
+ // we just assign it.
+ delete shm_buffers_[shm_id];
+ shm_buffers_[shm_id] = shm_buffer.release();
+ }
+ }
+
+ // At this point we should have shared memory to hold the plugin's buffer.
+ DCHECK(!available_shm_buffers_.empty() &&
+ available_shm_buffers_.back()->shm->mapped_size() >= size);
+
+ ShmBuffer* shm_buffer = available_shm_buffers_.back();
+ available_shm_buffers_.pop_back();
+ memcpy(shm_buffer->addr, buffer, size);
+
+ Call<PpapiPluginMsg_VideoDecoder_DecodeReply>(
+ RENDERER,
+ PpapiHostMsg_VideoDecoder_Decode(shm_buffer->shm_id, size, uid),
+ base::Bind(&VideoDecoderResource::OnPluginMsgDecodeComplete, this));
+
+ // If we have another free buffer, or we can still create new buffers, let
+ // the plugin call Decode again.
+ if (!available_shm_buffers_.empty() ||
+ shm_buffers_.size() < kMaximumPendingDecodes)
+ return PP_OK;
+
+ // All buffers are busy and we can't create more. Delay completion until a
+ // buffer is available.
+ decode_callback_ = callback;
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t VideoDecoderResource::GetPicture(
+ PP_VideoPicture* picture,
+ scoped_refptr<TrackedCallback> callback) {
+ if (decoder_last_error_)
+ return decoder_last_error_;
+ if (reset_callback_)
+ return PP_ERROR_FAILED;
+ if (get_picture_callback_)
+ return PP_ERROR_INPROGRESS;
+
+ // If the next picture is ready, return it synchronously.
+ if (!received_pictures_.empty()) {
+ WriteNextPicture(picture);
+ return PP_OK;
+ }
+
+ get_picture_callback_ = callback;
+ get_picture_ = picture;
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void VideoDecoderResource::RecyclePicture(const PP_VideoPicture* picture) {
+ if (decoder_last_error_)
+ return;
+
+ Post(RENDERER, PpapiHostMsg_VideoDecoder_RecyclePicture(picture->texture_id));
+}
+
+int32_t VideoDecoderResource::Flush(scoped_refptr<TrackedCallback> callback) {
+ if (decoder_last_error_)
+ return decoder_last_error_;
+ if (reset_callback_)
+ return PP_ERROR_FAILED;
+ if (flush_callback_)
+ return PP_ERROR_INPROGRESS;
+ flush_callback_ = callback;
+
+ Call<PpapiPluginMsg_VideoDecoder_FlushReply>(
+ RENDERER,
+ PpapiHostMsg_VideoDecoder_Flush(),
+ base::Bind(&VideoDecoderResource::OnPluginMsgFlushComplete, this));
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+int32_t VideoDecoderResource::Reset(scoped_refptr<TrackedCallback> callback) {
+ if (decoder_last_error_)
+ return decoder_last_error_;
+ if (flush_callback_)
+ return PP_ERROR_FAILED;
+ if (reset_callback_)
+ return PP_ERROR_INPROGRESS;
+ reset_callback_ = callback;
+
+ // Cause any pending Decode or GetPicture callbacks to abort after we return,
+ // to avoid reentering the plugin.
+ if (TrackedCallback::IsPending(decode_callback_))
+ decode_callback_->PostAbort();
+ decode_callback_ = NULL;
+ if (TrackedCallback::IsPending(get_picture_callback_))
+ get_picture_callback_->PostAbort();
+ get_picture_callback_ = NULL;
+ Call<PpapiPluginMsg_VideoDecoder_ResetReply>(
+ RENDERER,
+ PpapiHostMsg_VideoDecoder_Reset(),
+ base::Bind(&VideoDecoderResource::OnPluginMsgResetComplete, this));
+
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void VideoDecoderResource::OnReplyReceived(
+ const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) {
+ PPAPI_BEGIN_MESSAGE_MAP(VideoDecoderResource, msg)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_VideoDecoder_RequestTextures, OnPluginMsgRequestTextures)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_VideoDecoder_PictureReady, OnPluginMsgPictureReady)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_VideoDecoder_DismissPicture, OnPluginMsgDismissPicture)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
+ PpapiPluginMsg_VideoDecoder_NotifyError, OnPluginMsgNotifyError)
+ PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
+ PluginResource::OnReplyReceived(params, msg))
+ PPAPI_END_MESSAGE_MAP()
+}
+
+void VideoDecoderResource::SetForTest() {
+ testing_ = true;
+}
+
+void VideoDecoderResource::OnPluginMsgRequestTextures(
+ const ResourceMessageReplyParams& params,
+ uint32_t num_textures,
+ const PP_Size& size,
+ uint32_t texture_target,
+ const std::vector<gpu::Mailbox>& mailboxes) {
+ DCHECK(num_textures);
+ DCHECK(mailboxes.empty() || mailboxes.size() == num_textures);
+ std::vector<uint32_t> texture_ids(num_textures);
+ if (gles2_impl_) {
+ gles2_impl_->GenTextures(num_textures, &texture_ids.front());
+ for (uint32_t i = 0; i < num_textures; ++i) {
+ gles2_impl_->ActiveTexture(GL_TEXTURE0);
+ gles2_impl_->BindTexture(texture_target, texture_ids[i]);
+ gles2_impl_->TexParameteri(
+ texture_target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ gles2_impl_->TexParameteri(
+ texture_target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ gles2_impl_->TexParameterf(
+ texture_target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ gles2_impl_->TexParameterf(
+ texture_target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ if (texture_target == GL_TEXTURE_2D) {
+ gles2_impl_->TexImage2D(texture_target,
+ 0,
+ GL_RGBA,
+ size.width,
+ size.height,
+ 0,
+ GL_RGBA,
+ GL_UNSIGNED_BYTE,
+ NULL);
+ }
+ if (!mailboxes.empty()) {
+ gles2_impl_->ProduceTextureCHROMIUM(
+ GL_TEXTURE_2D, reinterpret_cast<const GLbyte*>(mailboxes[i].name));
+ }
+
+ textures_.insert(
+ std::make_pair(texture_ids[i], Texture(texture_target, size)));
+ }
+ gles2_impl_->Flush();
+ } else {
+ DCHECK(testing_);
+ // Create some fake texture ids so we can test picture handling.
+ for (uint32_t i = 0; i < num_textures; ++i) {
+ texture_ids[i] = i + 1;
+ textures_.insert(
+ std::make_pair(texture_ids[i], Texture(texture_target, size)));
+ }
+ }
+
+ Post(RENDERER, PpapiHostMsg_VideoDecoder_AssignTextures(size, texture_ids));
+}
+
+void VideoDecoderResource::OnPluginMsgPictureReady(
+ const ResourceMessageReplyParams& params,
+ int32_t decode_id,
+ uint32_t texture_id) {
+ received_pictures_.push(Picture(decode_id, texture_id));
+
+ if (TrackedCallback::IsPending(get_picture_callback_)) {
+ // The plugin may call GetPicture in its callback.
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(get_picture_callback_);
+ PP_VideoPicture* picture = get_picture_;
+ get_picture_ = NULL;
+ WriteNextPicture(picture);
+ callback->Run(PP_OK);
+ }
+}
+
+void VideoDecoderResource::OnPluginMsgDismissPicture(
+ const ResourceMessageReplyParams& params,
+ uint32_t texture_id) {
+ DeleteGLTexture(texture_id);
+ textures_.erase(texture_id);
+}
+
+void VideoDecoderResource::OnPluginMsgNotifyError(
+ const ResourceMessageReplyParams& params,
+ int32_t error) {
+ decoder_last_error_ = error;
+ // Cause any pending callbacks to run immediately. Reentrancy isn't a problem,
+ // since the plugin wasn't calling us.
+ RunCallbackWithError(&initialize_callback_);
+ RunCallbackWithError(&decode_callback_);
+ RunCallbackWithError(&get_picture_callback_);
+ RunCallbackWithError(&flush_callback_);
+ RunCallbackWithError(&reset_callback_);
+}
+
+void VideoDecoderResource::OnPluginMsgInitializeComplete(
+ const ResourceMessageReplyParams& params) {
+ decoder_last_error_ = params.result();
+ if (decoder_last_error_ == PP_OK)
+ initialized_ = true;
+
+ // Let the plugin call Initialize again from its callback in case of failure.
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(initialize_callback_);
+ callback->Run(decoder_last_error_);
+}
+
+void VideoDecoderResource::OnPluginMsgDecodeComplete(
+ const ResourceMessageReplyParams& params,
+ uint32_t shm_id) {
+ if (shm_id >= shm_buffers_.size()) {
+ NOTREACHED();
+ return;
+ }
+ // Make the shm buffer available.
+ available_shm_buffers_.push_back(shm_buffers_[shm_id]);
+ // If the plugin is waiting, let it call Decode again.
+ if (decode_callback_) {
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(decode_callback_);
+ callback->Run(PP_OK);
+ }
+}
+
+void VideoDecoderResource::OnPluginMsgFlushComplete(
+ const ResourceMessageReplyParams& params) {
+ // All shm buffers should have been made available by now.
+ DCHECK_EQ(shm_buffers_.size(), available_shm_buffers_.size());
+
+ if (get_picture_callback_) {
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(get_picture_callback_);
+ callback->Abort();
+ }
+
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(flush_callback_);
+ callback->Run(params.result());
+}
+
+void VideoDecoderResource::OnPluginMsgResetComplete(
+ const ResourceMessageReplyParams& params) {
+ // All shm buffers should have been made available by now.
+ DCHECK_EQ(shm_buffers_.size(), available_shm_buffers_.size());
+ // Recycle any pictures which haven't been passed to the plugin.
+ while (!received_pictures_.empty()) {
+ Post(RENDERER, PpapiHostMsg_VideoDecoder_RecyclePicture(
+ received_pictures_.front().texture_id));
+ received_pictures_.pop();
+ }
+
+ scoped_refptr<TrackedCallback> callback;
+ callback.swap(reset_callback_);
+ callback->Run(params.result());
+}
+
+void VideoDecoderResource::RunCallbackWithError(
+ scoped_refptr<TrackedCallback>* callback) {
+ if (TrackedCallback::IsPending(*callback)) {
+ scoped_refptr<TrackedCallback> temp;
+ callback->swap(temp);
+ temp->Run(decoder_last_error_);
+ }
+}
+
+void VideoDecoderResource::DeleteGLTexture(uint32_t id) {
+ if (gles2_impl_) {
+ gles2_impl_->DeleteTextures(1, &id);
+ gles2_impl_->Flush();
+ }
+}
+
+void VideoDecoderResource::WriteNextPicture(PP_VideoPicture* pp_picture) {
+ DCHECK(!received_pictures_.empty());
+ Picture& picture = received_pictures_.front();
+ // Internally, we identify decodes by a unique id, which the host returns
+ // to us in the picture. Use this to get the plugin's decode_id.
+ pp_picture->decode_id = decode_ids_[picture.decode_id % kMaximumPictureDelay];
+ pp_picture->texture_id = picture.texture_id;
+ TextureMap::iterator it = textures_.find(picture.texture_id);
+ if (it != textures_.end()) {
+ pp_picture->texture_target = it->second.texture_target;
+ pp_picture->texture_size = it->second.size;
+ } else {
+ NOTREACHED();
+ }
+ received_pictures_.pop();
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/video_decoder_resource.h b/chromium/ppapi/proxy/video_decoder_resource.h
new file mode 100644
index 00000000000..a466eb2774f
--- /dev/null
+++ b/chromium/ppapi/proxy/video_decoder_resource.h
@@ -0,0 +1,181 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_VIDEO_DECODER_RESOURCE_H_
+#define PPAPI_PROXY_VIDEO_DECODER_RESOURCE_H_
+
+#include <queue>
+
+#include "base/containers/hash_tables.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/scoped_vector.h"
+#include "ppapi/proxy/connection.h"
+#include "ppapi/proxy/plugin_resource.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/resource.h"
+#include "ppapi/shared_impl/scoped_pp_resource.h"
+#include "ppapi/thunk/ppb_video_decoder_api.h"
+
+namespace gpu {
+struct Mailbox;
+namespace gles2 {
+class GLES2Implementation;
+}
+}
+
+namespace ppapi {
+
+class PPB_Graphics3D_Shared;
+class TrackedCallback;
+
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT VideoDecoderResource
+ : public PluginResource,
+ public thunk::PPB_VideoDecoder_API {
+ public:
+ VideoDecoderResource(Connection connection, PP_Instance instance);
+ virtual ~VideoDecoderResource();
+
+ // Resource overrides.
+ virtual thunk::PPB_VideoDecoder_API* AsPPB_VideoDecoder_API() OVERRIDE;
+
+ // PPB_VideoDecoder_API implementation.
+ virtual int32_t Initialize(PP_Resource graphics_context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t Decode(uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t GetPicture(PP_VideoPicture* picture,
+ scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual void RecyclePicture(const PP_VideoPicture* picture) OVERRIDE;
+ virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) OVERRIDE;
+ virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) OVERRIDE;
+
+ // PluginResource implementation.
+ virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
+ const IPC::Message& msg) OVERRIDE;
+
+ // Called only by unit tests. This bypasses Graphics3D setup, which doesn't
+ // work in ppapi::proxy::PluginProxyTest.
+ void SetForTest();
+
+ private:
+ // Struct to hold a shared memory buffer.
+ struct ShmBuffer {
+ ShmBuffer(scoped_ptr<base::SharedMemory> shm,
+ uint32_t size,
+ uint32_t shm_id);
+ ~ShmBuffer();
+
+ const scoped_ptr<base::SharedMemory> shm;
+ void* addr;
+ // Index into shm_buffers_ vector, used as an id. This should map 1:1 to
+ // the index on the host side of the proxy.
+ const uint32_t shm_id;
+ };
+
+ // Struct to hold texture information.
+ struct Texture {
+ Texture(uint32_t texture_target, const PP_Size& size);
+ ~Texture();
+
+ const uint32_t texture_target;
+ const PP_Size size;
+ };
+
+ // Struct to hold a picture received from the decoder.
+ struct Picture {
+ Picture(int32_t decode_id, uint32_t texture_id);
+ ~Picture();
+
+ int32_t decode_id;
+ uint32_t texture_id;
+ };
+
+ int32_t InitializeInternal(PP_Resource graphics_context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ scoped_refptr<TrackedCallback> callback,
+ bool testing);
+
+ // Unsolicited reply message handlers.
+ void OnPluginMsgRequestTextures(const ResourceMessageReplyParams& params,
+ uint32_t num_textures,
+ const PP_Size& size,
+ uint32_t texture_target,
+ const std::vector<gpu::Mailbox>& mailboxes);
+ void OnPluginMsgPictureReady(const ResourceMessageReplyParams& params,
+ int32_t decode_id,
+ uint32_t texture_id);
+ void OnPluginMsgDismissPicture(const ResourceMessageReplyParams& params,
+ uint32_t texture_id);
+ void OnPluginMsgNotifyError(const ResourceMessageReplyParams& params,
+ int32_t error);
+
+ // Reply message handlers for operations that are done in the host.
+ void OnPluginMsgInitializeComplete(const ResourceMessageReplyParams& params);
+ void OnPluginMsgDecodeComplete(const ResourceMessageReplyParams& params,
+ uint32_t shm_id);
+ void OnPluginMsgFlushComplete(const ResourceMessageReplyParams& params);
+ void OnPluginMsgResetComplete(const ResourceMessageReplyParams& params);
+
+ void RunCallbackWithError(scoped_refptr<TrackedCallback>* callback);
+ void DeleteGLTexture(uint32_t texture_id);
+ void WriteNextPicture(PP_VideoPicture* picture);
+
+ // ScopedVector to own the shared memory buffers.
+ ScopedVector<ShmBuffer> shm_buffers_;
+
+ // List of available shared memory buffers.
+ typedef std::vector<ShmBuffer*> ShmBufferList;
+ ShmBufferList available_shm_buffers_;
+
+ // Map of GL texture id to texture info.
+ typedef base::hash_map<uint32_t, Texture> TextureMap;
+ TextureMap textures_;
+
+ // Queue of received pictures.
+ typedef std::queue<Picture> PictureQueue;
+ PictureQueue received_pictures_;
+
+ // Pending callbacks.
+ scoped_refptr<TrackedCallback> initialize_callback_;
+ scoped_refptr<TrackedCallback> decode_callback_;
+ scoped_refptr<TrackedCallback> get_picture_callback_;
+ scoped_refptr<TrackedCallback> flush_callback_;
+ scoped_refptr<TrackedCallback> reset_callback_;
+
+ // Number of Decode calls made, mod 2^31, to serve as a uid for each decode.
+ int32_t num_decodes_;
+ // The maximum delay (in Decode calls) before we receive a picture. If we
+ // haven't received a picture from a Decode call after this many successive
+ // calls to Decode, then we will never receive a picture from the call.
+ // Note that this isn't guaranteed by H264 or other codecs. In practice, this
+ // number is less than 16. Make it much larger just to be safe.
+ // NOTE: because we count decodes mod 2^31, this value must be a power of 2.
+ static const int kMaximumPictureDelay = 128;
+ uint32_t decode_ids_[kMaximumPictureDelay];
+
+ // State for pending get_picture_callback_.
+ PP_VideoPicture* get_picture_;
+
+ ScopedPPResource graphics3d_;
+ gpu::gles2::GLES2Implementation* gles2_impl_;
+
+ bool initialized_;
+ bool testing_;
+ int32_t decoder_last_error_;
+
+ DISALLOW_COPY_AND_ASSIGN(VideoDecoderResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_VIDEO_DECODER_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/video_decoder_resource_unittest.cc b/chromium/ppapi/proxy/video_decoder_resource_unittest.cc
new file mode 100644
index 00000000000..b9f0e7918d4
--- /dev/null
+++ b/chromium/ppapi/proxy/video_decoder_resource_unittest.cc
@@ -0,0 +1,583 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <GLES2/gl2.h>
+
+#include "base/memory/shared_memory.h"
+#include "base/message_loop/message_loop.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_video_decoder.h"
+#include "ppapi/proxy/locking_resource_releaser.h"
+#include "ppapi/proxy/plugin_message_filter.h"
+#include "ppapi/proxy/ppapi_message_utils.h"
+#include "ppapi/proxy/ppapi_messages.h"
+#include "ppapi/proxy/ppapi_proxy_test.h"
+#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
+#include "ppapi/proxy/video_decoder_constants.h"
+#include "ppapi/proxy/video_decoder_resource.h"
+#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/thunk/thunk.h"
+
+using ppapi::proxy::ResourceMessageTestSink;
+
+namespace ppapi {
+namespace proxy {
+
+namespace {
+
+const PP_Bool kAllowSoftwareFallback = PP_TRUE;
+const PP_Resource kGraphics3D = 7;
+const uint32_t kShmSize = 256;
+const size_t kDecodeBufferSize = 16;
+const uint32_t kDecodeId = 5;
+const uint32_t kTextureId1 = 1;
+const uint32_t kTextureId2 = 2;
+const uint32_t kNumRequestedTextures = 2;
+
+class MockCompletionCallback {
+ public:
+ MockCompletionCallback() : called_(false) {}
+
+ bool called() { return called_; }
+ int32_t result() { return result_; }
+
+ void Reset() { called_ = false; }
+
+ static void Callback(void* user_data, int32_t result) {
+ MockCompletionCallback* that =
+ reinterpret_cast<MockCompletionCallback*>(user_data);
+ that->called_ = true;
+ that->result_ = result;
+ }
+
+ private:
+ bool called_;
+ int32_t result_;
+};
+
+class VideoDecoderResourceTest : public PluginProxyTest {
+ public:
+ VideoDecoderResourceTest()
+ : decoder_iface_(thunk::GetPPB_VideoDecoder_0_1_Thunk()) {}
+
+ const PPB_VideoDecoder_0_1* decoder_iface() const { return decoder_iface_; }
+
+ void SendReply(const ResourceMessageCallParams& params,
+ int32_t result,
+ const IPC::Message& nested_message) {
+ ResourceMessageReplyParams reply_params(params.pp_resource(),
+ params.sequence());
+ reply_params.set_result(result);
+ PluginMessageFilter::DispatchResourceReplyForTest(reply_params,
+ nested_message);
+ }
+
+ void SendReplyWithHandle(const ResourceMessageCallParams& params,
+ int32_t result,
+ const IPC::Message& nested_message,
+ const SerializedHandle& handle) {
+ ResourceMessageReplyParams reply_params(params.pp_resource(),
+ params.sequence());
+ reply_params.set_result(result);
+ reply_params.AppendHandle(handle);
+ PluginMessageFilter::DispatchResourceReplyForTest(reply_params,
+ nested_message);
+ }
+
+ PP_Resource CreateDecoder() {
+ PP_Resource result = decoder_iface()->Create(pp_instance());
+ if (result) {
+ ProxyAutoLock lock;
+ ppapi::Resource* resource =
+ GetGlobals()->GetResourceTracker()->GetResource(result);
+ proxy::VideoDecoderResource* decoder =
+ static_cast<proxy::VideoDecoderResource*>(resource);
+ decoder->SetForTest();
+ }
+
+ return result;
+ }
+
+ PP_Resource CreateGraphics3d() {
+ ProxyAutoLock lock;
+
+ HostResource host_resource;
+ host_resource.SetHostResource(pp_instance(), kGraphics3D);
+ scoped_refptr<ppapi::proxy::Graphics3D> graphics_3d(
+ new ppapi::proxy::Graphics3D(host_resource));
+ return graphics_3d->GetReference();
+ }
+
+ PP_Resource CreateAndInitializeDecoder() {
+ PP_Resource decoder = CreateDecoder();
+ LockingResourceReleaser graphics3d(CreateGraphics3d());
+ MockCompletionCallback cb;
+ int32_t result = decoder_iface()->Initialize(
+ decoder,
+ graphics3d.get(),
+ PP_VIDEOPROFILE_H264MAIN,
+ PP_TRUE /* allow_software_fallback */,
+ PP_MakeOptionalCompletionCallback(&MockCompletionCallback::Callback,
+ &cb));
+ if (result != PP_OK_COMPLETIONPENDING)
+ return 0;
+ ResourceMessageCallParams params;
+ IPC::Message msg;
+ if (!sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_VideoDecoder_Initialize::ID, &params, &msg))
+ return 0;
+ sink().ClearMessages();
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_InitializeReply());
+ return decoder;
+ }
+
+ int32_t CallDecode(PP_Resource pp_decoder,
+ MockCompletionCallback* cb,
+ const PpapiHostMsg_VideoDecoder_GetShm* expected_shm_msg) {
+ // Set up a handler in case the resource sends a sync message to create
+ // shared memory.
+ PpapiPluginMsg_VideoDecoder_GetShmReply shm_msg_reply(kShmSize);
+ ResourceSyncCallHandler shm_msg_handler(
+ &sink(), PpapiHostMsg_VideoDecoder_GetShm::ID, PP_OK, shm_msg_reply);
+ sink().AddFilter(&shm_msg_handler);
+
+ base::SharedMemory shm;
+ if (expected_shm_msg) {
+ shm.CreateAnonymous(kShmSize);
+ base::SharedMemoryHandle shm_handle;
+ shm.ShareToProcess(base::GetCurrentProcessHandle(), &shm_handle);
+ SerializedHandle serialized_handle(shm_handle, kShmSize);
+ shm_msg_handler.set_serialized_handle(&serialized_handle);
+ }
+
+ memset(decode_buffer_, 0x55, kDecodeBufferSize);
+ int32_t result =
+ decoder_iface()->Decode(pp_decoder,
+ kDecodeId,
+ kDecodeBufferSize,
+ decode_buffer_,
+ PP_MakeOptionalCompletionCallback(
+ &MockCompletionCallback::Callback, cb));
+
+ if (expected_shm_msg) {
+ uint32_t shm_id, shm_size, expected_shm_id, expected_shm_size;
+ UnpackMessage<PpapiHostMsg_VideoDecoder_GetShm>(
+ *expected_shm_msg, &expected_shm_id, &expected_shm_size);
+ if (shm_msg_handler.last_handled_msg().type() == 0 ||
+ !UnpackMessage<PpapiHostMsg_VideoDecoder_GetShm>(
+ shm_msg_handler.last_handled_msg(), &shm_id, &shm_size) ||
+ shm_id != expected_shm_id ||
+ shm_size != expected_shm_size) {
+ // Signal that the expected shm message wasn't sent by failing.
+ result = PP_ERROR_FAILED;
+ }
+ }
+
+ sink().RemoveFilter(&shm_msg_handler);
+ return result;
+ }
+
+ int32_t CallGetPicture(PP_Resource pp_decoder,
+ PP_VideoPicture* picture,
+ MockCompletionCallback* cb) {
+ int32_t result =
+ decoder_iface()->GetPicture(pp_decoder,
+ picture,
+ PP_MakeOptionalCompletionCallback(
+ &MockCompletionCallback::Callback, cb));
+ return result;
+ }
+
+ void CallRecyclePicture(PP_Resource pp_decoder,
+ const PP_VideoPicture& picture) {
+ decoder_iface()->RecyclePicture(pp_decoder, &picture);
+ }
+
+ int32_t CallFlush(PP_Resource pp_decoder, MockCompletionCallback* cb) {
+ int32_t result =
+ decoder_iface()->Flush(pp_decoder,
+ PP_MakeOptionalCompletionCallback(
+ &MockCompletionCallback::Callback, cb));
+ return result;
+ }
+
+ int32_t CallReset(PP_Resource pp_decoder, MockCompletionCallback* cb) {
+ int32_t result =
+ decoder_iface()->Reset(pp_decoder,
+ PP_MakeOptionalCompletionCallback(
+ &MockCompletionCallback::Callback, cb));
+ return result;
+ }
+
+ void SendDecodeReply(const ResourceMessageCallParams& params,
+ uint32_t shm_id) {
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_DecodeReply(shm_id));
+ }
+
+ void SendPictureReady(const ResourceMessageCallParams& params,
+ uint32_t decode_count,
+ uint32_t texture_id) {
+ SendReply(
+ params,
+ PP_OK,
+ PpapiPluginMsg_VideoDecoder_PictureReady(decode_count, texture_id));
+ }
+
+ void SendFlushReply(const ResourceMessageCallParams& params) {
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_FlushReply());
+ }
+
+ void SendResetReply(const ResourceMessageCallParams& params) {
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_ResetReply());
+ }
+
+ void SendRequestTextures(const ResourceMessageCallParams& params) {
+ SendReply(params,
+ PP_OK,
+ PpapiPluginMsg_VideoDecoder_RequestTextures(
+ kNumRequestedTextures,
+ PP_MakeSize(320, 240),
+ GL_TEXTURE_2D,
+ std::vector<gpu::Mailbox>()));
+ }
+
+ void SendNotifyError(const ResourceMessageCallParams& params, int32_t error) {
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_NotifyError(error));
+ }
+
+ bool CheckDecodeMsg(ResourceMessageCallParams* params,
+ uint32_t* shm_id,
+ uint32_t* size,
+ int32_t* decode_id) {
+ IPC::Message msg;
+ if (!sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_VideoDecoder_Decode::ID, params, &msg))
+ return false;
+ sink().ClearMessages();
+ return UnpackMessage<PpapiHostMsg_VideoDecoder_Decode>(
+ msg, shm_id, size, decode_id);
+ }
+
+ bool CheckRecyclePictureMsg(ResourceMessageCallParams* params,
+ uint32_t* texture_id) {
+ IPC::Message msg;
+ if (!sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_VideoDecoder_RecyclePicture::ID, params, &msg))
+ return false;
+ sink().ClearMessages();
+ return UnpackMessage<PpapiHostMsg_VideoDecoder_RecyclePicture>(msg,
+ texture_id);
+ }
+
+ bool CheckFlushMsg(ResourceMessageCallParams* params) {
+ return CheckMsg(params, PpapiHostMsg_VideoDecoder_Flush::ID);
+ }
+
+ bool CheckResetMsg(ResourceMessageCallParams* params) {
+ return CheckMsg(params, PpapiHostMsg_VideoDecoder_Reset::ID);
+ }
+
+ void ClearCallbacks(PP_Resource pp_decoder) {
+ ResourceMessageCallParams params;
+ MockCompletionCallback cb;
+
+ // Reset to abort Decode and GetPicture callbacks.
+ CallReset(pp_decoder, &cb);
+ // Initialize params so we can reply to the Reset.
+ CheckResetMsg(&params);
+ // Run the Reset callback.
+ SendResetReply(params);
+ }
+
+ private:
+ bool CheckMsg(ResourceMessageCallParams* params, int id) {
+ IPC::Message msg;
+ if (!sink().GetFirstResourceCallMatching(id, params, &msg))
+ return false;
+ sink().ClearMessages();
+ return true;
+ }
+
+ const PPB_VideoDecoder_0_1* decoder_iface_;
+
+ char decode_buffer_[kDecodeBufferSize];
+};
+
+} // namespace
+
+TEST_F(VideoDecoderResourceTest, Initialize) {
+ // Initialize with 0 graphics3d_context should fail.
+ {
+ LockingResourceReleaser decoder(CreateDecoder());
+ MockCompletionCallback cb;
+ int32_t result = decoder_iface()->Initialize(
+ decoder.get(),
+ 0 /* invalid 3d graphics */,
+ PP_VIDEOPROFILE_H264MAIN,
+ kAllowSoftwareFallback,
+ PP_MakeOptionalCompletionCallback(&MockCompletionCallback::Callback,
+ &cb));
+ ASSERT_EQ(PP_ERROR_BADRESOURCE, result);
+ }
+ // Initialize with bad profile value should fail.
+ {
+ LockingResourceReleaser decoder(CreateDecoder());
+ MockCompletionCallback cb;
+ int32_t result = decoder_iface()->Initialize(
+ decoder.get(),
+ 1 /* non-zero resource */,
+ static_cast<PP_VideoProfile>(-1),
+ kAllowSoftwareFallback,
+ PP_MakeOptionalCompletionCallback(&MockCompletionCallback::Callback,
+ &cb));
+ ASSERT_EQ(PP_ERROR_BADARGUMENT, result);
+ }
+ // Initialize with valid graphics3d_context and profile should succeed.
+ {
+ LockingResourceReleaser decoder(CreateDecoder());
+ LockingResourceReleaser graphics3d(CreateGraphics3d());
+ MockCompletionCallback cb;
+ int32_t result = decoder_iface()->Initialize(
+ decoder.get(),
+ graphics3d.get(),
+ PP_VIDEOPROFILE_H264MAIN,
+ kAllowSoftwareFallback,
+ PP_MakeOptionalCompletionCallback(&MockCompletionCallback::Callback,
+ &cb));
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, result);
+ ASSERT_TRUE(decoder_iface()->IsVideoDecoder(decoder.get()));
+
+ // Another attempt while pending should fail.
+ result = decoder_iface()->Initialize(
+ decoder.get(),
+ graphics3d.get(),
+ PP_VIDEOPROFILE_H264MAIN,
+ kAllowSoftwareFallback,
+ PP_MakeOptionalCompletionCallback(&MockCompletionCallback::Callback,
+ &cb));
+ ASSERT_EQ(PP_ERROR_INPROGRESS, result);
+
+ // Check for host message and send a reply to complete initialization.
+ ResourceMessageCallParams params;
+ IPC::Message msg;
+ ASSERT_TRUE(sink().GetFirstResourceCallMatching(
+ PpapiHostMsg_VideoDecoder_Initialize::ID, &params, &msg));
+ sink().ClearMessages();
+ SendReply(params, PP_OK, PpapiPluginMsg_VideoDecoder_InitializeReply());
+ ASSERT_TRUE(cb.called());
+ ASSERT_EQ(PP_OK, cb.result());
+ }
+}
+
+TEST_F(VideoDecoderResourceTest, Uninitialized) {
+ // Operations on uninitialized decoders should fail.
+ LockingResourceReleaser decoder(CreateDecoder());
+ MockCompletionCallback uncalled_cb;
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallDecode(decoder.get(), &uncalled_cb, NULL));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallGetPicture(decoder.get(), NULL, &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallFlush(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallReset(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+}
+
+// TODO(bbudge) Fix sync message testing on Windows 64 bit builds. The reply
+// message for GetShm isn't received, causing Decode to fail.
+// http://crbug.com/379260
+#if !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+TEST_F(VideoDecoderResourceTest, DecodeAndGetPicture) {
+ LockingResourceReleaser decoder(CreateAndInitializeDecoder());
+ ResourceMessageCallParams params, params2;
+ MockCompletionCallback decode_cb, get_picture_cb, uncalled_cb;
+
+ uint32_t shm_id;
+ uint32_t decode_size;
+ int32_t decode_id;
+ // Call Decode until we have the maximum pending, minus one.
+ for (uint32_t i = 0; i < kMaximumPendingDecodes - 1; i++) {
+ PpapiHostMsg_VideoDecoder_GetShm shm_msg(i, kDecodeBufferSize);
+ ASSERT_EQ(PP_OK, CallDecode(decoder.get(), &uncalled_cb, &shm_msg));
+ ASSERT_FALSE(uncalled_cb.called());
+ CheckDecodeMsg(&params, &shm_id, &decode_size, &decode_id);
+ ASSERT_EQ(i, shm_id);
+ ASSERT_EQ(kDecodeBufferSize, decode_size);
+ // The resource generates uids internally, starting at 1.
+ int32_t uid = i + 1;
+ ASSERT_EQ(uid, decode_id);
+ }
+ // Once we've allocated the maximum number of buffers, we must wait.
+ PpapiHostMsg_VideoDecoder_GetShm shm_msg(7U, kDecodeBufferSize);
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING,
+ CallDecode(decoder.get(), &decode_cb, &shm_msg));
+ CheckDecodeMsg(&params, &shm_id, &decode_size, &decode_id);
+ ASSERT_EQ(7U, shm_id);
+ ASSERT_EQ(kDecodeBufferSize, decode_size);
+
+ // Calling Decode when another Decode is pending should fail.
+ ASSERT_EQ(PP_ERROR_INPROGRESS, CallDecode(decoder.get(), &uncalled_cb, NULL));
+ ASSERT_FALSE(uncalled_cb.called());
+ // Free up the first decode buffer.
+ SendDecodeReply(params, 0U);
+ // The decoder should run the pending callback.
+ ASSERT_TRUE(decode_cb.called());
+ ASSERT_EQ(PP_OK, decode_cb.result());
+ decode_cb.Reset();
+
+ // Now try to get a picture. No picture ready message has been received yet.
+ PP_VideoPicture picture;
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING,
+ CallGetPicture(decoder.get(), &picture, &get_picture_cb));
+ ASSERT_FALSE(get_picture_cb.called());
+ // Calling GetPicture when another GetPicture is pending should fail.
+ ASSERT_EQ(PP_ERROR_INPROGRESS,
+ CallGetPicture(decoder.get(), &picture, &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+ // Send 'request textures' message to initialize textures.
+ SendRequestTextures(params);
+ // Send a picture ready message for Decode call 1. The GetPicture callback
+ // should complete.
+ SendPictureReady(params, 1U, kTextureId1);
+ ASSERT_TRUE(get_picture_cb.called());
+ ASSERT_EQ(PP_OK, get_picture_cb.result());
+ ASSERT_EQ(kDecodeId, picture.decode_id);
+ get_picture_cb.Reset();
+
+ // Send a picture ready message for Decode call 2. Since there is no pending
+ // GetPicture call, the picture should be queued.
+ SendPictureReady(params, 2U, kTextureId2);
+ // The next GetPicture should return synchronously.
+ ASSERT_EQ(PP_OK, CallGetPicture(decoder.get(), &picture, &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+ ASSERT_EQ(kDecodeId, picture.decode_id);
+}
+#endif // !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+
+// TODO(bbudge) Fix sync message testing on Windows 64 bit builds. The reply
+// message for GetShm isn't received, causing Decode to fail.
+// http://crbug.com/379260
+#if !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+TEST_F(VideoDecoderResourceTest, RecyclePicture) {
+ LockingResourceReleaser decoder(CreateAndInitializeDecoder());
+ ResourceMessageCallParams params;
+ MockCompletionCallback decode_cb, get_picture_cb, uncalled_cb;
+
+ // Get to a state where we have a picture to recycle.
+ PpapiHostMsg_VideoDecoder_GetShm shm_msg(0U, kDecodeBufferSize);
+ ASSERT_EQ(PP_OK, CallDecode(decoder.get(), &decode_cb, &shm_msg));
+ uint32_t shm_id;
+ uint32_t decode_size;
+ int32_t decode_id;
+ CheckDecodeMsg(&params, &shm_id, &decode_size, &decode_id);
+ SendDecodeReply(params, 0U);
+ // Send 'request textures' message to initialize textures.
+ SendRequestTextures(params);
+ // Call GetPicture and send 'picture ready' message to get a picture to
+ // recycle.
+ PP_VideoPicture picture;
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING,
+ CallGetPicture(decoder.get(), &picture, &get_picture_cb));
+ SendPictureReady(params, 0U, kTextureId1);
+ ASSERT_EQ(kTextureId1, picture.texture_id);
+
+ CallRecyclePicture(decoder.get(), picture);
+ uint32_t texture_id;
+ ASSERT_TRUE(CheckRecyclePictureMsg(&params, &texture_id));
+ ASSERT_EQ(kTextureId1, texture_id);
+
+ ClearCallbacks(decoder.get());
+}
+#endif // !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+
+TEST_F(VideoDecoderResourceTest, Flush) {
+ LockingResourceReleaser decoder(CreateAndInitializeDecoder());
+ ResourceMessageCallParams params, params2;
+ MockCompletionCallback flush_cb, get_picture_cb, uncalled_cb;
+
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING, CallFlush(decoder.get(), &flush_cb));
+ ASSERT_FALSE(flush_cb.called());
+ ASSERT_TRUE(CheckFlushMsg(&params));
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallDecode(decoder.get(), &uncalled_cb, NULL));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ // Plugin can call GetPicture while Flush is pending.
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING,
+ CallGetPicture(decoder.get(), NULL, &get_picture_cb));
+ ASSERT_FALSE(get_picture_cb.called());
+
+ ASSERT_EQ(PP_ERROR_INPROGRESS, CallFlush(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ ASSERT_EQ(PP_ERROR_FAILED, CallReset(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+
+ // Plugin can call RecyclePicture while Flush is pending.
+ PP_VideoPicture picture;
+ picture.texture_id = kTextureId1;
+ CallRecyclePicture(decoder.get(), picture);
+ uint32_t texture_id;
+ ASSERT_TRUE(CheckRecyclePictureMsg(&params2, &texture_id));
+
+ SendFlushReply(params);
+ // Any pending GetPicture call is aborted.
+ ASSERT_TRUE(get_picture_cb.called());
+ ASSERT_EQ(PP_ERROR_ABORTED, get_picture_cb.result());
+ ASSERT_TRUE(flush_cb.called());
+ ASSERT_EQ(PP_OK, flush_cb.result());
+}
+
+// TODO(bbudge) Test Reset when we can run the message loop to get aborted
+// callbacks to run.
+
+// TODO(bbudge) Fix sync message testing on Windows 64 bit builds. The reply
+// message for GetShm isn't received, causing Decode to fail.
+// http://crbug.com/379260
+#if !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+TEST_F(VideoDecoderResourceTest, NotifyError) {
+ LockingResourceReleaser decoder(CreateAndInitializeDecoder());
+ ResourceMessageCallParams params;
+ MockCompletionCallback decode_cb, get_picture_cb, uncalled_cb;
+
+ // Call Decode and GetPicture to have some pending requests.
+ PpapiHostMsg_VideoDecoder_GetShm shm_msg(0U, kDecodeBufferSize);
+ ASSERT_EQ(PP_OK, CallDecode(decoder.get(), &decode_cb, &shm_msg));
+ ASSERT_FALSE(decode_cb.called());
+ ASSERT_EQ(PP_OK_COMPLETIONPENDING,
+ CallGetPicture(decoder.get(), NULL, &get_picture_cb));
+ ASSERT_FALSE(get_picture_cb.called());
+
+ // Send the decoder resource an unsolicited notify error message. We first
+ // need to initialize 'params' so the message is routed to the decoder.
+ uint32_t shm_id;
+ uint32_t decode_size;
+ int32_t decode_id;
+ CheckDecodeMsg(&params, &shm_id, &decode_size, &decode_id);
+ SendNotifyError(params, PP_ERROR_RESOURCE_FAILED);
+
+ // Any pending message should be run with the reported error.
+ ASSERT_TRUE(get_picture_cb.called());
+ ASSERT_EQ(PP_ERROR_RESOURCE_FAILED, get_picture_cb.result());
+
+ // All further calls return the reported error.
+ ASSERT_EQ(PP_ERROR_RESOURCE_FAILED,
+ CallDecode(decoder.get(), &uncalled_cb, NULL));
+ ASSERT_FALSE(uncalled_cb.called());
+ ASSERT_EQ(PP_ERROR_RESOURCE_FAILED,
+ CallGetPicture(decoder.get(), NULL, &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+ ASSERT_EQ(PP_ERROR_RESOURCE_FAILED, CallFlush(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+ ASSERT_EQ(PP_ERROR_RESOURCE_FAILED, CallReset(decoder.get(), &uncalled_cb));
+ ASSERT_FALSE(uncalled_cb.called());
+}
+#endif // !defined(OS_WIN) || !defined(ARCH_CPU_64_BITS)
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/video_frame_resource.cc b/chromium/ppapi/proxy/video_frame_resource.cc
new file mode 100644
index 00000000000..941471256ee
--- /dev/null
+++ b/chromium/ppapi/proxy/video_frame_resource.cc
@@ -0,0 +1,96 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/proxy/video_frame_resource.h"
+
+#include "base/logging.h"
+#include "ppapi/c/pp_bool.h"
+#include "ppapi/shared_impl/var.h"
+
+namespace ppapi {
+namespace proxy {
+
+VideoFrameResource::VideoFrameResource(PP_Instance instance,
+ int32_t index,
+ MediaStreamBuffer* buffer)
+ : Resource(OBJECT_IS_PROXY, instance),
+ index_(index),
+ buffer_(buffer) {
+ DCHECK_EQ(buffer_->header.type, MediaStreamBuffer::TYPE_VIDEO);
+}
+
+VideoFrameResource::~VideoFrameResource() {
+ CHECK(!buffer_) << "An unused (or unrecycled) frame is destroyed.";
+}
+
+thunk::PPB_VideoFrame_API* VideoFrameResource::AsPPB_VideoFrame_API() {
+ return this;
+}
+
+PP_TimeDelta VideoFrameResource::GetTimestamp() {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return 0.0;
+ }
+ return buffer_->video.timestamp;
+}
+
+void VideoFrameResource::SetTimestamp(PP_TimeDelta timestamp) {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return;
+ }
+ buffer_->video.timestamp = timestamp;
+}
+
+PP_VideoFrame_Format VideoFrameResource::GetFormat() {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return PP_VIDEOFRAME_FORMAT_UNKNOWN;
+ }
+ return buffer_->video.format;
+}
+
+PP_Bool VideoFrameResource::GetSize(PP_Size* size) {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return PP_FALSE;
+ }
+ *size = buffer_->video.size;
+ return PP_TRUE;
+}
+
+void* VideoFrameResource::GetDataBuffer() {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return NULL;
+ }
+ return buffer_->video.data;
+}
+
+uint32_t VideoFrameResource::GetDataBufferSize() {
+ if (!buffer_) {
+ VLOG(1) << "Frame is invalid";
+ return 0;
+ }
+ return buffer_->video.data_size;
+}
+
+MediaStreamBuffer* VideoFrameResource::GetBuffer() {
+ return buffer_;
+}
+
+int32_t VideoFrameResource::GetBufferIndex() {
+ return index_;
+}
+
+void VideoFrameResource::Invalidate() {
+ DCHECK(buffer_);
+ DCHECK_GE(index_, 0);
+ buffer_ = NULL;
+ index_ = -1;
+}
+
+} // namespace proxy
+} // namespace ppapi
diff --git a/chromium/ppapi/proxy/video_frame_resource.h b/chromium/ppapi/proxy/video_frame_resource.h
new file mode 100644
index 00000000000..92ac08e0c9d
--- /dev/null
+++ b/chromium/ppapi/proxy/video_frame_resource.h
@@ -0,0 +1,52 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
+#define PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "ppapi/proxy/ppapi_proxy_export.h"
+#include "ppapi/shared_impl/media_stream_buffer.h"
+#include "ppapi/shared_impl/resource.h"
+#include "ppapi/thunk/ppb_video_frame_api.h"
+
+namespace ppapi {
+namespace proxy {
+
+class PPAPI_PROXY_EXPORT VideoFrameResource : public Resource,
+ public thunk::PPB_VideoFrame_API {
+ public:
+ VideoFrameResource(PP_Instance instance,
+ int32_t index,
+ MediaStreamBuffer* buffer);
+
+ virtual ~VideoFrameResource();
+
+ // PluginResource overrides:
+ virtual thunk::PPB_VideoFrame_API* AsPPB_VideoFrame_API() OVERRIDE;
+
+ // PPB_VideoFrame_API overrides:
+ virtual PP_TimeDelta GetTimestamp() OVERRIDE;
+ virtual void SetTimestamp(PP_TimeDelta timestamp) OVERRIDE;
+ virtual PP_VideoFrame_Format GetFormat() OVERRIDE;
+ virtual PP_Bool GetSize(PP_Size* size) OVERRIDE;
+ virtual void* GetDataBuffer() OVERRIDE;
+ virtual uint32_t GetDataBufferSize() OVERRIDE;
+ virtual MediaStreamBuffer* GetBuffer() OVERRIDE;
+ virtual int32_t GetBufferIndex() OVERRIDE;
+ virtual void Invalidate() OVERRIDE;
+
+ // Frame index
+ int32_t index_;
+
+ MediaStreamBuffer* buffer_;
+
+ DISALLOW_COPY_AND_ASSIGN(VideoFrameResource);
+};
+
+} // namespace proxy
+} // namespace ppapi
+
+#endif // PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
diff --git a/chromium/ppapi/proxy/websocket_resource.cc b/chromium/ppapi/proxy/websocket_resource.cc
index c998cd94b72..d03121a870f 100644
--- a/chromium/ppapi/proxy/websocket_resource.cc
+++ b/chromium/ppapi/proxy/websocket_resource.cc
@@ -15,7 +15,6 @@
#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/var.h"
#include "ppapi/shared_impl/var_tracker.h"
-#include "third_party/WebKit/public/web/WebSocket.h"
namespace {
@@ -137,17 +136,10 @@ int32_t WebSocketResource::Close(uint16_t code,
// Validate |code| and |reason|.
scoped_refptr<StringVar> reason_string_var;
std::string reason_string;
- blink::WebSocket::CloseEventCode event_code =
- static_cast<blink::WebSocket::CloseEventCode>(code);
- if (code == PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED) {
- // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED and CloseEventCodeNotSpecified are
- // assigned to different values. A conversion is needed if
- // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED is specified.
- event_code = blink::WebSocket::CloseEventCodeNotSpecified;
- } else {
- if (!(code == PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE ||
- (PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN <= code &&
- code <= PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX)))
+ if (code != PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED) {
+ if (code != PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE &&
+ (code < PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN ||
+ code > PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX))
// RFC 6455 limits applications to use reserved connection close code in
// section 7.4.2.. The WebSocket API (http://www.w3.org/TR/websockets/)
// defines this out of range error as InvalidAccessError in JavaScript.
@@ -195,7 +187,7 @@ int32_t WebSocketResource::Close(uint16_t code,
// Close connection.
state_ = PP_WEBSOCKETREADYSTATE_CLOSING;
- PpapiHostMsg_WebSocket_Close msg(static_cast<int32_t>(event_code),
+ PpapiHostMsg_WebSocket_Close msg(static_cast<int32_t>(code),
reason_string);
Call<PpapiPluginMsg_WebSocket_CloseReply>(RENDERER, msg,
base::Bind(&WebSocketResource::OnPluginMsgCloseReply, this));
@@ -336,7 +328,7 @@ void WebSocketResource::OnReplyReceived(
return;
}
- IPC_BEGIN_MESSAGE_MAP(WebSocketResource, msg)
+ PPAPI_BEGIN_MESSAGE_MAP(WebSocketResource, msg)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
PpapiPluginMsg_WebSocket_ReceiveTextReply,
OnPluginMsgReceiveTextReply)
@@ -356,7 +348,7 @@ void WebSocketResource::OnReplyReceived(
PpapiPluginMsg_WebSocket_ClosedReply,
OnPluginMsgClosedReply)
PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(NOTREACHED())
- IPC_END_MESSAGE_MAP()
+ PPAPI_END_MESSAGE_MAP()
}
void WebSocketResource::OnPluginMsgConnectReply(
diff --git a/chromium/ppapi/proxy/websocket_resource_unittest.cc b/chromium/ppapi/proxy/websocket_resource_unittest.cc
index 5cfc71a88e3..eac6d8f8320 100644
--- a/chromium/ppapi/proxy/websocket_resource_unittest.cc
+++ b/chromium/ppapi/proxy/websocket_resource_unittest.cc
@@ -46,7 +46,7 @@ PP_CompletionCallback MakeCallback() {
PP_Var MakeStringVar(const std::string& string) {
if (!ppb_var_)
- ppb_var_ = ppapi::PPB_Var_Shared::GetVarInterface1_1();
+ ppb_var_ = ppapi::PPB_Var_Shared::GetVarInterface1_2();
return ppb_var_->VarFromUtf8(string.c_str(), string.length());
}
diff --git a/chromium/ppapi/shared_impl/DEPS b/chromium/ppapi/shared_impl/DEPS
index 48f8c434080..1877bfb659e 100644
--- a/chromium/ppapi/shared_impl/DEPS
+++ b/chromium/ppapi/shared_impl/DEPS
@@ -4,12 +4,10 @@ include_rules = [
"+media/audio",
"+media/base",
"+skia",
+ "+ui/events",
"+webkit/common/webpreferences.h",
"+webkit/common/fileapi/file_system_types.h",
- # The untrusted build references the NaCl integrated runtime (IRT).
- "+native_client/src/untrusted/irt",
-
"-ppapi/cpp",
"-ppapi/proxy",
diff --git a/chromium/ppapi/shared_impl/README.txt b/chromium/ppapi/shared_impl/README.txt
index 71ff8d6f991..31a62d3b52e 100644
--- a/chromium/ppapi/shared_impl/README.txt
+++ b/chromium/ppapi/shared_impl/README.txt
@@ -1,2 +1,2 @@
This directory contains implementation code for PPAPI that needs to be shared
-between the backend implemntation in the renderer and in the proxy.
+between the backend implementation in the renderer and in the proxy.
diff --git a/chromium/ppapi/shared_impl/api_id.h b/chromium/ppapi/shared_impl/api_id.h
index 104a078a07a..a049948522e 100644
--- a/chromium/ppapi/shared_impl/api_id.h
+++ b/chromium/ppapi/shared_impl/api_id.h
@@ -46,22 +46,22 @@ enum ApiID {
API_ID_PPB_VIDEO_CAPTURE_DEV,
API_ID_PPB_VIDEO_DECODER_DEV,
API_ID_PPB_X509_CERTIFICATE_PRIVATE,
-
API_ID_PPP_CLASS,
// TODO(tomfinegan): Remove this after we refactor things to load the PPP
// interface struct from the PPB interface.
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
+ API_ID_PPP_FIND_PRIVATE,
API_ID_PPP_GRAPHICS_3D,
API_ID_PPP_INPUT_EVENT,
API_ID_PPP_INSTANCE,
API_ID_PPP_INSTANCE_PRIVATE,
API_ID_PPP_MESSAGING,
API_ID_PPP_MOUSE_LOCK,
+ API_ID_PPP_PDF,
API_ID_PPP_PRINTING,
API_ID_PPP_TEXT_INPUT,
API_ID_PPP_VIDEO_CAPTURE_DEV,
API_ID_PPP_VIDEO_DECODER_DEV,
-
API_ID_RESOURCE_CREATION,
// Must be last to indicate the number of interface IDs.
diff --git a/chromium/ppapi/shared_impl/array_var.cc b/chromium/ppapi/shared_impl/array_var.cc
index def1bb57e0e..6207379f5da 100644
--- a/chromium/ppapi/shared_impl/array_var.cc
+++ b/chromium/ppapi/shared_impl/array_var.cc
@@ -13,11 +13,9 @@
namespace ppapi {
-ArrayVar::ArrayVar() {
-}
+ArrayVar::ArrayVar() {}
-ArrayVar::~ArrayVar() {
-}
+ArrayVar::~ArrayVar() {}
// static
ArrayVar* ArrayVar::FromPPVar(const PP_Var& var) {
@@ -31,13 +29,9 @@ ArrayVar* ArrayVar::FromPPVar(const PP_Var& var) {
return var_object->AsArrayVar();
}
-ArrayVar* ArrayVar::AsArrayVar() {
- return this;
-}
+ArrayVar* ArrayVar::AsArrayVar() { return this; }
-PP_VarType ArrayVar::GetType() const {
- return PP_VARTYPE_ARRAY;
-}
+PP_VarType ArrayVar::GetType() const { return PP_VARTYPE_ARRAY; }
PP_Var ArrayVar::Get(uint32_t index) const {
if (index >= elements_.size())
diff --git a/chromium/ppapi/shared_impl/array_var.h b/chromium/ppapi/shared_impl/array_var.h
index 1214d87500c..673fbff7703 100644
--- a/chromium/ppapi/shared_impl/array_var.h
+++ b/chromium/ppapi/shared_impl/array_var.h
@@ -37,13 +37,9 @@ class PPAPI_SHARED_EXPORT ArrayVar : public Var {
uint32_t GetLength() const;
PP_Bool SetLength(uint32_t length);
- const ElementVector& elements() const {
- return elements_;
- }
+ const ElementVector& elements() const { return elements_; }
- ElementVector& elements() {
- return elements_;
- }
+ ElementVector& elements() { return elements_; }
protected:
virtual ~ArrayVar();
diff --git a/chromium/ppapi/shared_impl/array_writer.cc b/chromium/ppapi/shared_impl/array_writer.cc
index 26ee1bd669b..fe87e070a8d 100644
--- a/chromium/ppapi/shared_impl/array_writer.cc
+++ b/chromium/ppapi/shared_impl/array_writer.cc
@@ -14,16 +14,12 @@
namespace ppapi {
-ArrayWriter::ArrayWriter() {
- Reset();
-}
+ArrayWriter::ArrayWriter() { Reset(); }
ArrayWriter::ArrayWriter(const PP_ArrayOutput& output)
- : pp_array_output_(output) {
-}
+ : pp_array_output_(output) {}
-ArrayWriter::~ArrayWriter() {
-}
+ArrayWriter::~ArrayWriter() {}
void ArrayWriter::Reset() {
pp_array_output_.GetDataBuffer = NULL;
@@ -31,12 +27,12 @@ void ArrayWriter::Reset() {
}
bool ArrayWriter::StoreResourceVector(
- const std::vector< scoped_refptr<Resource> >& input) {
+ const std::vector<scoped_refptr<Resource> >& input) {
// Always call the alloc function, even on 0 array size.
- void* dest = pp_array_output_.GetDataBuffer(
- pp_array_output_.user_data,
- static_cast<uint32_t>(input.size()),
- sizeof(PP_Resource));
+ void* dest =
+ pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
+ static_cast<uint32_t>(input.size()),
+ sizeof(PP_Resource));
// Regardless of success, we clear the output to prevent future calls on
// this same output object.
@@ -56,10 +52,10 @@ bool ArrayWriter::StoreResourceVector(
bool ArrayWriter::StoreResourceVector(const std::vector<PP_Resource>& input) {
// Always call the alloc function, even on 0 array size.
- void* dest = pp_array_output_.GetDataBuffer(
- pp_array_output_.user_data,
- static_cast<uint32_t>(input.size()),
- sizeof(PP_Resource));
+ void* dest =
+ pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
+ static_cast<uint32_t>(input.size()),
+ sizeof(PP_Resource));
// Regardless of success, we clear the output to prevent future calls on
// this same output object.
@@ -79,12 +75,12 @@ bool ArrayWriter::StoreResourceVector(const std::vector<PP_Resource>& input) {
}
bool ArrayWriter::StoreVarVector(
- const std::vector< scoped_refptr<Var> >& input) {
+ const std::vector<scoped_refptr<Var> >& input) {
// Always call the alloc function, even on 0 array size.
- void* dest = pp_array_output_.GetDataBuffer(
- pp_array_output_.user_data,
- static_cast<uint32_t>(input.size()),
- sizeof(PP_Var));
+ void* dest =
+ pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
+ static_cast<uint32_t>(input.size()),
+ sizeof(PP_Var));
// Regardless of success, we clear the output to prevent future calls on
// this same output object.
@@ -104,10 +100,10 @@ bool ArrayWriter::StoreVarVector(
bool ArrayWriter::StoreVarVector(const std::vector<PP_Var>& input) {
// Always call the alloc function, even on 0 array size.
- void* dest = pp_array_output_.GetDataBuffer(
- pp_array_output_.user_data,
- static_cast<uint32_t>(input.size()),
- sizeof(PP_Var));
+ void* dest =
+ pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
+ static_cast<uint32_t>(input.size()),
+ sizeof(PP_Var));
// Regardless of success, we clear the output to prevent future calls on
// this same output object.
diff --git a/chromium/ppapi/shared_impl/array_writer.h b/chromium/ppapi/shared_impl/array_writer.h
index 7e6c3492fd1..fce10e4fc73 100644
--- a/chromium/ppapi/shared_impl/array_writer.h
+++ b/chromium/ppapi/shared_impl/array_writer.h
@@ -54,9 +54,7 @@ class PPAPI_SHARED_EXPORT ArrayWriter {
bool StoreArray(const T* input, uint32_t count) {
// Always call the alloc function, even on 0 array size.
void* dest = pp_array_output_.GetDataBuffer(
- pp_array_output_.user_data,
- count,
- sizeof(T));
+ pp_array_output_.user_data, count, sizeof(T));
// Regardless of success, we clear the output to prevent future calls on
// this same output object.
@@ -74,7 +72,7 @@ class PPAPI_SHARED_EXPORT ArrayWriter {
// Copies the given array/vector of data to the plugin output array. See
// comment of StoreArray() for detail.
- template<typename T>
+ template <typename T>
bool StoreVector(const std::vector<T>& input) {
return StoreArray(input.size() ? &input[0] : NULL, input.size());
}
@@ -90,7 +88,7 @@ class PPAPI_SHARED_EXPORT ArrayWriter {
// Note: potentially this could be a template in case you have a vector of
// FileRef objects, for example. However, this saves code since there's only
// one instantiation and is sufficient for now.
- bool StoreResourceVector(const std::vector< scoped_refptr<Resource> >& input);
+ bool StoreResourceVector(const std::vector<scoped_refptr<Resource> >& input);
// Like the above version but takes an array of AddRef'ed PP_Resources. On
// storage failure, this will release each resource.
@@ -103,7 +101,7 @@ class PPAPI_SHARED_EXPORT ArrayWriter {
// refcounts will be unchanged. In either case, the object will become
// is_null() immediately after the call since one output function should only
// be issued once.
- bool StoreVarVector(const std::vector< scoped_refptr<Var> >& input);
+ bool StoreVarVector(const std::vector<scoped_refptr<Var> >& input);
// Like the above version but takes an array of AddRef'ed PP_Vars. On
// storage failure, this will release each var.
diff --git a/chromium/ppapi/shared_impl/callback_tracker.cc b/chromium/ppapi/shared_impl/callback_tracker.cc
index 6857c4c2aca..feefb0e117d 100644
--- a/chromium/ppapi/shared_impl/callback_tracker.cc
+++ b/chromium/ppapi/shared_impl/callback_tracker.cc
@@ -17,17 +17,18 @@ namespace ppapi {
// CallbackTracker -------------------------------------------------------------
-CallbackTracker::CallbackTracker() {
-}
+CallbackTracker::CallbackTracker() {}
void CallbackTracker::AbortAll() {
// Iterate over a copy since |Abort()| calls |Remove()| (indirectly).
// TODO(viettrungluu): This obviously isn't so efficient.
CallbackSetMap pending_callbacks_copy = pending_callbacks_;
for (CallbackSetMap::iterator it1 = pending_callbacks_copy.begin();
- it1 != pending_callbacks_copy.end(); ++it1) {
+ it1 != pending_callbacks_copy.end();
+ ++it1) {
for (CallbackSet::iterator it2 = it1->second.begin();
- it2 != it1->second.end(); ++it2) {
+ it2 != it1->second.end();
+ ++it2) {
(*it2)->Abort();
}
}
@@ -39,7 +40,8 @@ void CallbackTracker::PostAbortForResource(PP_Resource resource_id) {
if (it1 == pending_callbacks_.end())
return;
for (CallbackSet::iterator it2 = it1->second.begin();
- it2 != it1->second.end(); ++it2) {
+ it2 != it1->second.end();
+ ++it2) {
// Post the abort.
(*it2)->PostAbort();
}
diff --git a/chromium/ppapi/shared_impl/compositor_layer_data.cc b/chromium/ppapi/shared_impl/compositor_layer_data.cc
new file mode 100644
index 00000000000..a4b51d379c9
--- /dev/null
+++ b/chromium/ppapi/shared_impl/compositor_layer_data.cc
@@ -0,0 +1,36 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/compositor_layer_data.h"
+
+namespace ppapi {
+
+namespace {
+
+template<typename T>
+void Copy(scoped_ptr<T>* a, const scoped_ptr<T>& b) {
+ if (b) {
+ if (!(*a))
+ a->reset(new T());
+ **a = *b;
+ } else {
+ a->reset();
+ }
+}
+
+} // namespace
+
+const CompositorLayerData& CompositorLayerData::operator=(
+ const CompositorLayerData& other) {
+ DCHECK(other.is_null() || other.is_valid());
+
+ common = other.common;
+ Copy(&color, other.color);
+ Copy(&texture, other.texture);
+ Copy(&image, other.image);
+
+ return *this;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/compositor_layer_data.h b/chromium/ppapi/shared_impl/compositor_layer_data.h
new file mode 100644
index 00000000000..b51fcd787a9
--- /dev/null
+++ b/chromium/ppapi/shared_impl/compositor_layer_data.h
@@ -0,0 +1,119 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
+#define PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
+
+#include <string.h>
+
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
+#include "gpu/command_buffer/common/mailbox.h"
+#include "ppapi/c/ppb_compositor_layer.h"
+#include "ppapi/shared_impl/host_resource.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+struct PPAPI_SHARED_EXPORT CompositorLayerData {
+
+ struct Transform {
+ Transform() {
+ matrix[0] = 1.0f;
+ matrix[1] = 0.0f;
+ matrix[2] = 0.0f;
+ matrix[3] = 0.0f;
+ matrix[4] = 0.0f;
+ matrix[5] = 1.0f;
+ matrix[6] = 0.0f;
+ matrix[7] = 0.0f;
+ matrix[8] = 0.0f;
+ matrix[9] = 0.0f;
+ matrix[10] = 1.0f;
+ matrix[11] = 0.0f;
+ matrix[12] = 0.0f;
+ matrix[13] = 0.0f;
+ matrix[14] = 0.0f;
+ matrix[15] = 1.0f;
+ }
+
+ float matrix[16];
+ };
+
+ struct LayerCommon {
+ LayerCommon()
+ : size(PP_MakeSize(0, 0)),
+ clip_rect(PP_MakeRectFromXYWH(0, 0, 0, 0)),
+ blend_mode(PP_BLENDMODE_SRC_OVER),
+ opacity(1.0f),
+ resource_id(0) {
+ }
+
+ PP_Size size;
+ PP_Rect clip_rect;
+ Transform transform;
+ PP_BlendMode blend_mode;
+ float opacity;
+ uint32_t resource_id;
+ };
+
+ struct ColorLayer {
+ ColorLayer() : red(0.0f), green(0.0f), blue(0.0f), alpha(0.0f) {}
+
+ float red;
+ float green;
+ float blue;
+ float alpha;
+ };
+
+ struct ImageLayer {
+ ImageLayer()
+ : resource(0),
+ source_rect(PP_MakeFloatRectFromXYWH(0.0f, 0.0f, 0.0f, 0.0f)) {}
+
+ PP_Resource resource;
+ PP_FloatRect source_rect;
+ };
+
+ struct TextureLayer {
+ TextureLayer()
+ : sync_point(0),
+ source_rect(PP_MakeFloatRectFromXYWH(0.0f, 0.0f, 1.0f, 1.0f)),
+ premult_alpha(true) {}
+
+ gpu::Mailbox mailbox;
+ uint32_t sync_point;
+ PP_FloatRect source_rect;
+ bool premult_alpha;
+ };
+
+ CompositorLayerData() {}
+
+ CompositorLayerData(const CompositorLayerData& other) {
+ *this = other;
+ }
+
+ bool is_null() const {
+ return !(color || texture || image);
+ }
+
+ bool is_valid() const {
+ int i = 0;
+ if (color) ++i;
+ if (texture) ++i;
+ if (image) ++i;
+ return i == 1;
+ }
+
+ const CompositorLayerData& operator=(const CompositorLayerData& other);
+
+ LayerCommon common;
+ scoped_ptr<ColorLayer> color;
+ scoped_ptr<TextureLayer> texture;
+ scoped_ptr<ImageLayer> image;
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
diff --git a/chromium/ppapi/shared_impl/dictionary_var.cc b/chromium/ppapi/shared_impl/dictionary_var.cc
index 6a66ea374b2..8676c4356e8 100644
--- a/chromium/ppapi/shared_impl/dictionary_var.cc
+++ b/chromium/ppapi/shared_impl/dictionary_var.cc
@@ -12,11 +12,9 @@
namespace ppapi {
-DictionaryVar::DictionaryVar() {
-}
+DictionaryVar::DictionaryVar() {}
-DictionaryVar::~DictionaryVar() {
-}
+DictionaryVar::~DictionaryVar() {}
// static
DictionaryVar* DictionaryVar::FromPPVar(const PP_Var& var) {
@@ -30,13 +28,9 @@ DictionaryVar* DictionaryVar::FromPPVar(const PP_Var& var) {
return var_object->AsDictionaryVar();
}
-DictionaryVar* DictionaryVar::AsDictionaryVar() {
- return this;
-}
+DictionaryVar* DictionaryVar::AsDictionaryVar() { return this; }
-PP_VarType DictionaryVar::GetType() const {
- return PP_VARTYPE_DICTIONARY;
-}
+PP_VarType DictionaryVar::GetType() const { return PP_VARTYPE_DICTIONARY; }
PP_Var DictionaryVar::Get(const PP_Var& key) const {
StringVar* string_var = StringVar::FromPPVar(key);
@@ -86,17 +80,17 @@ PP_Var DictionaryVar::GetKeys() const {
array_var->elements().reserve(key_value_map_.size());
for (KeyValueMap::const_iterator iter = key_value_map_.begin();
- iter != key_value_map_.end(); ++iter) {
- array_var->elements().push_back(
- ScopedPPVar(ScopedPPVar::PassRef(),
- StringVar::StringToPPVar(iter->first)));
+ iter != key_value_map_.end();
+ ++iter) {
+ array_var->elements().push_back(ScopedPPVar(
+ ScopedPPVar::PassRef(), StringVar::StringToPPVar(iter->first)));
}
return array_var->GetPPVar();
}
bool DictionaryVar::SetWithStringKey(const std::string& utf8_key,
const PP_Var& value) {
- if (!IsStringUTF8(utf8_key))
+ if (!base::IsStringUTF8(utf8_key))
return false;
key_value_map_[utf8_key] = value;
diff --git a/chromium/ppapi/shared_impl/dictionary_var.h b/chromium/ppapi/shared_impl/dictionary_var.h
index cdc63bdee8d..728bae11d5c 100644
--- a/chromium/ppapi/shared_impl/dictionary_var.h
+++ b/chromium/ppapi/shared_impl/dictionary_var.h
@@ -45,9 +45,7 @@ class PPAPI_SHARED_EXPORT DictionaryVar : public Var {
bool SetWithStringKey(const std::string& utf8_key, const PP_Var& value);
void DeleteWithStringKey(const std::string& utf8_key);
- const KeyValueMap& key_value_map() const {
- return key_value_map_;
- }
+ const KeyValueMap& key_value_map() const { return key_value_map_; }
protected:
virtual ~DictionaryVar();
diff --git a/chromium/ppapi/shared_impl/dir_contents.h b/chromium/ppapi/shared_impl/dir_contents.h
index 4d895b50c8f..fd4cd20eb63 100644
--- a/chromium/ppapi/shared_impl/dir_contents.h
+++ b/chromium/ppapi/shared_impl/dir_contents.h
@@ -5,7 +5,6 @@
#ifndef PPAPI_SHARED_IMPL_DIR_CONTENTS_H_
#define PPAPI_SHARED_IMPL_DIR_CONTENTS_H_
-
#include <vector>
#include "base/files/file_path.h"
diff --git a/chromium/ppapi/shared_impl/file_growth.cc b/chromium/ppapi/shared_impl/file_growth.cc
new file mode 100644
index 00000000000..79f6b5cded2
--- /dev/null
+++ b/chromium/ppapi/shared_impl/file_growth.cc
@@ -0,0 +1,41 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/file_growth.h"
+
+#include "base/logging.h"
+
+namespace ppapi {
+
+FileGrowth::FileGrowth() : max_written_offset(0), append_mode_write_amount(0) {}
+
+FileGrowth::FileGrowth(int64_t max_written_offset,
+ int64_t append_mode_write_amount)
+ : max_written_offset(max_written_offset),
+ append_mode_write_amount(append_mode_write_amount) {
+ DCHECK_LE(0, max_written_offset);
+ DCHECK_LE(0, append_mode_write_amount);
+}
+
+FileGrowthMap FileSizeMapToFileGrowthMapForTesting(
+ const FileSizeMap& file_sizes) {
+ FileGrowthMap file_growths;
+ for (FileSizeMap::const_iterator it = file_sizes.begin();
+ it != file_sizes.end();
+ ++it)
+ file_growths[it->first] = FileGrowth(it->second, 0);
+ return file_growths;
+}
+
+FileSizeMap FileGrowthMapToFileSizeMapForTesting(
+ const FileGrowthMap& file_growths) {
+ FileSizeMap file_sizes;
+ for (FileGrowthMap::const_iterator it = file_growths.begin();
+ it != file_growths.end();
+ ++it)
+ file_sizes[it->first] = it->second.max_written_offset;
+ return file_sizes;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/file_growth.h b/chromium/ppapi/shared_impl/file_growth.h
new file mode 100644
index 00000000000..b2c3ed44d65
--- /dev/null
+++ b/chromium/ppapi/shared_impl/file_growth.h
@@ -0,0 +1,33 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_FILE_GROWTH_H_
+#define PPAPI_SHARED_IMPL_FILE_GROWTH_H_
+
+#include <map>
+
+#include "ppapi/c/pp_stdint.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+struct PPAPI_SHARED_EXPORT FileGrowth {
+ FileGrowth();
+ FileGrowth(int64_t max_written_offset, int64_t append_mode_write_amount);
+
+ int64_t max_written_offset;
+ int64_t append_mode_write_amount;
+};
+
+typedef std::map<int32_t, FileGrowth> FileGrowthMap;
+typedef std::map<int32_t, int64_t> FileSizeMap;
+
+PPAPI_SHARED_EXPORT FileGrowthMap
+ FileSizeMapToFileGrowthMapForTesting(const FileSizeMap& file_sizes);
+PPAPI_SHARED_EXPORT FileSizeMap
+ FileGrowthMapToFileSizeMapForTesting(const FileGrowthMap& file_growths);
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_FILE_GROWTH_H_
diff --git a/chromium/ppapi/shared_impl/file_io_state_manager.cc b/chromium/ppapi/shared_impl/file_io_state_manager.cc
index 9c9b6ea6676..c705f84da3a 100644
--- a/chromium/ppapi/shared_impl/file_io_state_manager.cc
+++ b/chromium/ppapi/shared_impl/file_io_state_manager.cc
@@ -10,17 +10,11 @@
namespace ppapi {
FileIOStateManager::FileIOStateManager()
- : num_pending_ops_(0),
- pending_op_(OPERATION_NONE),
- file_open_(false) {
-}
+ : num_pending_ops_(0), pending_op_(OPERATION_NONE), file_open_(false) {}
-FileIOStateManager::~FileIOStateManager() {
-}
+FileIOStateManager::~FileIOStateManager() {}
-void FileIOStateManager::SetOpenSucceed() {
- file_open_ = true;
-}
+void FileIOStateManager::SetOpenSucceed() { file_open_ = true; }
int32_t FileIOStateManager::CheckOperationState(OperationType new_op,
bool should_be_open) {
@@ -53,4 +47,3 @@ void FileIOStateManager::SetOperationFinished() {
}
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/file_io_state_manager.h b/chromium/ppapi/shared_impl/file_io_state_manager.h
index 7b5f926c852..1c4fa1a9cda 100644
--- a/chromium/ppapi/shared_impl/file_io_state_manager.h
+++ b/chromium/ppapi/shared_impl/file_io_state_manager.h
@@ -66,4 +66,3 @@ class PPAPI_SHARED_EXPORT FileIOStateManager {
} // namespace ppapi
#endif // PPAPI_SHARED_IMPL_FILE_IO_STATE_MANAGER_H_
-
diff --git a/chromium/ppapi/shared_impl/file_path.cc b/chromium/ppapi/shared_impl/file_path.cc
index d05b1b3452f..248893a6ebd 100644
--- a/chromium/ppapi/shared_impl/file_path.cc
+++ b/chromium/ppapi/shared_impl/file_path.cc
@@ -6,14 +6,10 @@
namespace ppapi {
-PepperFilePath::PepperFilePath()
- : domain_(DOMAIN_INVALID),
- path_() {
-}
+PepperFilePath::PepperFilePath() : domain_(DOMAIN_INVALID), path_() {}
PepperFilePath::PepperFilePath(Domain domain, const base::FilePath& path)
- : domain_(domain),
- path_(path) {
+ : domain_(domain), path_(path) {
// TODO(viettrungluu): Should we DCHECK() some things here?
}
diff --git a/chromium/ppapi/shared_impl/file_ref_create_info.cc b/chromium/ppapi/shared_impl/file_ref_create_info.cc
index 2fd3e13acd9..7d975b7f597 100644
--- a/chromium/ppapi/shared_impl/file_ref_create_info.cc
+++ b/chromium/ppapi/shared_impl/file_ref_create_info.cc
@@ -31,11 +31,11 @@ bool FileRefCreateInfo::IsValid() const {
return file_system_type != PP_FILESYSTEMTYPE_INVALID;
}
-FileRefCreateInfo
-MakeExternalFileRefCreateInfo(const base::FilePath& external_path,
- const std::string& display_name,
- int browser_pending_host_resource_id,
- int renderer_pending_host_resource_id) {
+FileRefCreateInfo MakeExternalFileRefCreateInfo(
+ const base::FilePath& external_path,
+ const std::string& display_name,
+ int browser_pending_host_resource_id,
+ int renderer_pending_host_resource_id) {
FileRefCreateInfo info;
info.file_system_type = PP_FILESYSTEMTYPE_EXTERNAL;
if (!display_name.empty())
diff --git a/chromium/ppapi/shared_impl/file_ref_create_info.h b/chromium/ppapi/shared_impl/file_ref_create_info.h
index 02fc8cc11f7..a3cb4661873 100644
--- a/chromium/ppapi/shared_impl/file_ref_create_info.h
+++ b/chromium/ppapi/shared_impl/file_ref_create_info.h
@@ -17,10 +17,11 @@ namespace ppapi {
// FileRefs are created in a number of places and they include a number of
// return values. This struct encapsulates everything in one place.
struct FileRefCreateInfo {
- FileRefCreateInfo() : file_system_type(PP_FILESYSTEMTYPE_INVALID),
- browser_pending_host_resource_id(0),
- renderer_pending_host_resource_id(0),
- file_system_plugin_resource(0) { }
+ FileRefCreateInfo()
+ : file_system_type(PP_FILESYSTEMTYPE_INVALID),
+ browser_pending_host_resource_id(0),
+ renderer_pending_host_resource_id(0),
+ file_system_plugin_resource(0) {}
PPAPI_SHARED_EXPORT bool IsValid() const;
@@ -41,10 +42,10 @@ struct FileRefCreateInfo {
// Used in the renderer when sending a FileRefCreateInfo to a plugin for a
// FileRef on an external filesystem.
PPAPI_SHARED_EXPORT FileRefCreateInfo
-MakeExternalFileRefCreateInfo(const base::FilePath& external_path,
- const std::string& display_name,
- int browser_pending_host_resource_id,
- int renderer_pending_host_resource_id);
+ MakeExternalFileRefCreateInfo(const base::FilePath& external_path,
+ const std::string& display_name,
+ int browser_pending_host_resource_id,
+ int renderer_pending_host_resource_id);
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/file_ref_util.cc b/chromium/ppapi/shared_impl/file_ref_util.cc
index 3d2deff50ec..a5523cbb944 100644
--- a/chromium/ppapi/shared_impl/file_ref_util.cc
+++ b/chromium/ppapi/shared_impl/file_ref_util.cc
@@ -23,7 +23,7 @@ std::string GetNameForExternalFilePath(const base::FilePath& path) {
size_t pos = file_path.rfind(base::FilePath::kSeparators[0]);
CHECK(pos != base::FilePath::StringType::npos);
#if defined(OS_WIN)
- return WideToUTF8(file_path.substr(pos + 1));
+ return base::WideToUTF8(file_path.substr(pos + 1));
#elif defined(OS_POSIX)
return file_path.substr(pos + 1);
#else
@@ -36,7 +36,7 @@ bool IsValidInternalPath(const std::string& path) {
// The path starts with '/'
// The path must contain valid UTF-8 characters.
// It must not FilePath::ReferencesParent().
- if (path.empty() || !IsStringUTF8(path) || path[0] != '/')
+ if (path.empty() || !base::IsStringUTF8(path) || path[0] != '/')
return false;
base::FilePath file_path = base::FilePath::FromUTF8Unsafe(path);
if (file_path.ReferencesParent())
diff --git a/chromium/ppapi/shared_impl/file_type_conversion.cc b/chromium/ppapi/shared_impl/file_type_conversion.cc
index 1a4bb16c7be..8d7eaf3ca4a 100644
--- a/chromium/ppapi/shared_impl/file_type_conversion.cc
+++ b/chromium/ppapi/shared_impl/file_type_conversion.cc
@@ -11,24 +11,24 @@
namespace ppapi {
-int PlatformFileErrorToPepperError(base::PlatformFileError error_code) {
+int FileErrorToPepperError(base::File::Error error_code) {
switch (error_code) {
- case base::PLATFORM_FILE_OK:
+ case base::File::FILE_OK:
return PP_OK;
- case base::PLATFORM_FILE_ERROR_EXISTS:
+ case base::File::FILE_ERROR_EXISTS:
return PP_ERROR_FILEEXISTS;
- case base::PLATFORM_FILE_ERROR_NOT_FOUND:
+ case base::File::FILE_ERROR_NOT_FOUND:
return PP_ERROR_FILENOTFOUND;
- case base::PLATFORM_FILE_ERROR_ACCESS_DENIED:
- case base::PLATFORM_FILE_ERROR_SECURITY:
+ case base::File::FILE_ERROR_ACCESS_DENIED:
+ case base::File::FILE_ERROR_SECURITY:
return PP_ERROR_NOACCESS;
- case base::PLATFORM_FILE_ERROR_NO_MEMORY:
+ case base::File::FILE_ERROR_NO_MEMORY:
return PP_ERROR_NOMEMORY;
- case base::PLATFORM_FILE_ERROR_NO_SPACE:
+ case base::File::FILE_ERROR_NO_SPACE:
return PP_ERROR_NOSPACE;
- case base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY:
+ case base::File::FILE_ERROR_NOT_A_DIRECTORY:
return PP_ERROR_FAILED;
- case base::PLATFORM_FILE_ERROR_NOT_A_FILE:
+ case base::File::FILE_ERROR_NOT_A_FILE:
return PP_ERROR_NOTAFILE;
default:
return PP_ERROR_FAILED;
@@ -45,17 +45,17 @@ bool PepperFileOpenFlagsToPlatformFileFlags(int32_t pp_open_flags,
bool pp_append = !!(pp_open_flags & PP_FILEOPENFLAG_APPEND);
// Pepper allows Touch on any open file, so always set this Windows-only flag.
- int flags = base::PLATFORM_FILE_WRITE_ATTRIBUTES;
+ int flags = base::File::FLAG_WRITE_ATTRIBUTES;
if (pp_read)
- flags |= base::PLATFORM_FILE_READ;
+ flags |= base::File::FLAG_READ;
if (pp_write) {
- flags |= base::PLATFORM_FILE_WRITE;
+ flags |= base::File::FLAG_WRITE;
}
if (pp_append) {
if (pp_write)
return false;
- flags |= base::PLATFORM_FILE_APPEND;
+ flags |= base::File::FLAG_APPEND;
}
if (pp_truncate && !pp_write)
@@ -63,16 +63,16 @@ bool PepperFileOpenFlagsToPlatformFileFlags(int32_t pp_open_flags,
if (pp_create) {
if (pp_exclusive) {
- flags |= base::PLATFORM_FILE_CREATE;
+ flags |= base::File::FLAG_CREATE;
} else if (pp_truncate) {
- flags |= base::PLATFORM_FILE_CREATE_ALWAYS;
+ flags |= base::File::FLAG_CREATE_ALWAYS;
} else {
- flags |= base::PLATFORM_FILE_OPEN_ALWAYS;
+ flags |= base::File::FLAG_OPEN_ALWAYS;
}
} else if (pp_truncate) {
- flags |= base::PLATFORM_FILE_OPEN_TRUNCATED;
+ flags |= base::File::FLAG_OPEN_TRUNCATED;
} else {
- flags |= base::PLATFORM_FILE_OPEN;
+ flags |= base::File::FLAG_OPEN;
}
if (flags_out)
@@ -80,9 +80,9 @@ bool PepperFileOpenFlagsToPlatformFileFlags(int32_t pp_open_flags,
return true;
}
-void PlatformFileInfoToPepperFileInfo(const base::PlatformFileInfo& info,
- PP_FileSystemType fs_type,
- PP_FileInfo* info_out) {
+void FileInfoToPepperFileInfo(const base::File::Info& info,
+ PP_FileSystemType fs_type,
+ PP_FileInfo* info_out) {
DCHECK(info_out);
info_out->size = info.size;
info_out->creation_time = TimeToPPTime(info.creation_time);
diff --git a/chromium/ppapi/shared_impl/file_type_conversion.h b/chromium/ppapi/shared_impl/file_type_conversion.h
index c41b79b7ddb..d49831a9821 100644
--- a/chromium/ppapi/shared_impl/file_type_conversion.h
+++ b/chromium/ppapi/shared_impl/file_type_conversion.h
@@ -5,7 +5,7 @@
#ifndef PPAPI_SHARED_IMPL_FILE_TYPE_CONVERSION_H_
#define PPAPI_SHARED_IMPL_FILE_TYPE_CONVERSION_H_
-#include "base/platform_file.h"
+#include "base/files/file.h"
#include "ppapi/c/pp_file_info.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/ppb_file_system.h"
@@ -13,8 +13,7 @@
namespace ppapi {
-PPAPI_SHARED_EXPORT int PlatformFileErrorToPepperError(
- base::PlatformFileError error_code);
+PPAPI_SHARED_EXPORT int FileErrorToPepperError(base::File::Error error_code);
// Converts a PP_FileOpenFlags_Dev flag combination into a corresponding
// PlatformFileFlags flag combination.
@@ -23,10 +22,9 @@ PPAPI_SHARED_EXPORT bool PepperFileOpenFlagsToPlatformFileFlags(
int32_t pp_open_flags,
int* flags_out);
-PPAPI_SHARED_EXPORT void PlatformFileInfoToPepperFileInfo(
- const base::PlatformFileInfo& info,
- PP_FileSystemType fs_type,
- PP_FileInfo* info_out);
+PPAPI_SHARED_EXPORT void FileInfoToPepperFileInfo(const base::File::Info& info,
+ PP_FileSystemType fs_type,
+ PP_FileInfo* info_out);
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/flash_clipboard_format_registry.cc b/chromium/ppapi/shared_impl/flash_clipboard_format_registry.cc
index a5d50c6432c..89a051e2d3d 100644
--- a/chromium/ppapi/shared_impl/flash_clipboard_format_registry.cc
+++ b/chromium/ppapi/shared_impl/flash_clipboard_format_registry.cc
@@ -17,11 +17,8 @@ const size_t kMaxFormatNameLength = 50;
// All formats in PP_Flash_Clipboard_Format should be added here.
const PP_Flash_Clipboard_Format kPredefinedFormats[] = {
- PP_FLASH_CLIPBOARD_FORMAT_INVALID,
- PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT,
- PP_FLASH_CLIPBOARD_FORMAT_HTML,
- PP_FLASH_CLIPBOARD_FORMAT_RTF
-};
+ PP_FLASH_CLIPBOARD_FORMAT_INVALID, PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT,
+ PP_FLASH_CLIPBOARD_FORMAT_HTML, PP_FLASH_CLIPBOARD_FORMAT_RTF};
// The first custom format ID will be the ID after that max value in
// PP_Flash_Clipboard_Format.
@@ -36,11 +33,9 @@ bool IsValidFormatName(const std::string& format_name) {
} // namespace
-FlashClipboardFormatRegistry::FlashClipboardFormatRegistry() {
-}
+FlashClipboardFormatRegistry::FlashClipboardFormatRegistry() {}
-FlashClipboardFormatRegistry::~FlashClipboardFormatRegistry() {
-}
+FlashClipboardFormatRegistry::~FlashClipboardFormatRegistry() {}
uint32_t FlashClipboardFormatRegistry::RegisterFormat(
const std::string& format_name) {
@@ -63,8 +58,7 @@ bool FlashClipboardFormatRegistry::IsFormatRegistered(uint32_t format) const {
return custom_formats_.find(format) != custom_formats_.end();
}
-std::string FlashClipboardFormatRegistry::GetFormatName(
- uint32_t format) const {
+std::string FlashClipboardFormatRegistry::GetFormatName(uint32_t format) const {
FormatMap::const_iterator it = custom_formats_.find(format);
if (it == custom_formats_.end())
return std::string();
@@ -74,7 +68,8 @@ std::string FlashClipboardFormatRegistry::GetFormatName(
uint32_t FlashClipboardFormatRegistry::GetFormatID(
const std::string& format_name) const {
for (FormatMap::const_iterator it = custom_formats_.begin();
- it != custom_formats_.end(); ++it) {
+ it != custom_formats_.end();
+ ++it) {
if (it->second == format_name)
return it->first;
}
diff --git a/chromium/ppapi/shared_impl/flash_clipboard_format_registry.h b/chromium/ppapi/shared_impl/flash_clipboard_format_registry.h
index 90520ea81cb..9e9ae3000c9 100644
--- a/chromium/ppapi/shared_impl/flash_clipboard_format_registry.h
+++ b/chromium/ppapi/shared_impl/flash_clipboard_format_registry.h
@@ -62,4 +62,3 @@ class PPAPI_SHARED_EXPORT FlashClipboardFormatRegistry {
} // ppapi
#endif // PPAPI_SHARED_IMPL_FLASH_CLIPBOARD_FORMAT_REGISTRY_H_
-
diff --git a/chromium/ppapi/shared_impl/host_resource.cc b/chromium/ppapi/shared_impl/host_resource.cc
index 031a5f04aec..ef15270de38 100644
--- a/chromium/ppapi/shared_impl/host_resource.cc
+++ b/chromium/ppapi/shared_impl/host_resource.cc
@@ -6,8 +6,7 @@
namespace ppapi {
-HostResource::HostResource() : instance_(0), host_resource_(0) {
-}
+HostResource::HostResource() : instance_(0), host_resource_(0) {}
// static
HostResource HostResource::MakeInstanceOnly(PP_Instance instance) {
@@ -22,4 +21,3 @@ void HostResource::SetHostResource(PP_Instance instance, PP_Resource resource) {
}
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/host_resource.h b/chromium/ppapi/shared_impl/host_resource.h
index 6001bb0fe5a..6770a52005e 100644
--- a/chromium/ppapi/shared_impl/host_resource.h
+++ b/chromium/ppapi/shared_impl/host_resource.h
@@ -39,9 +39,7 @@ class PPAPI_SHARED_EXPORT HostResource {
public:
HostResource();
- bool is_null() const {
- return !host_resource_;
- }
+ bool is_null() const { return !host_resource_; }
// Some resources are plugin-side only and don't have a corresponding
// resource in the host. Yet these resources still need an instance to be
@@ -55,9 +53,7 @@ class PPAPI_SHARED_EXPORT HostResource {
// DO NOT CALL THESE FUNCTIONS IN THE PLUGIN SIDE OF THE PROXY. The values
// will be invalid. See the class comment above.
void SetHostResource(PP_Instance instance, PP_Resource resource);
- PP_Resource host_resource() const {
- return host_resource_;
- }
+ PP_Resource host_resource() const { return host_resource_; }
PP_Instance instance() const { return instance_; }
diff --git a/chromium/ppapi/shared_impl/id_assignment.cc b/chromium/ppapi/shared_impl/id_assignment.cc
index 9d36822c5dc..363dbb49f91 100644
--- a/chromium/ppapi/shared_impl/id_assignment.cc
+++ b/chromium/ppapi/shared_impl/id_assignment.cc
@@ -12,7 +12,7 @@ const unsigned int kPPIdTypeBits = 2;
const int32 kMaxPPId = kint32max >> kPPIdTypeBits;
-COMPILE_ASSERT(PP_ID_TYPE_COUNT <= (1<<kPPIdTypeBits),
+COMPILE_ASSERT(PP_ID_TYPE_COUNT <= (1 << kPPIdTypeBits),
kPPIdTypeBits_is_too_small_for_all_id_types);
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/id_assignment.h b/chromium/ppapi/shared_impl/id_assignment.h
index 3bacac3829f..4ca8cd17d3e 100644
--- a/chromium/ppapi/shared_impl/id_assignment.h
+++ b/chromium/ppapi/shared_impl/id_assignment.h
@@ -27,11 +27,13 @@ PPAPI_SHARED_EXPORT extern const unsigned int kPPIdTypeBits;
extern const int32 kMaxPPId;
// The least significant bits are the type, the rest are the value.
-template <typename T> inline T MakeTypedId(T value, PPIdType type) {
+template <typename T>
+inline T MakeTypedId(T value, PPIdType type) {
return (value << kPPIdTypeBits) | static_cast<T>(type);
}
-template <typename T> inline bool CheckIdType(T id, PPIdType type) {
+template <typename T>
+inline bool CheckIdType(T id, PPIdType type) {
// Say a resource of 0 is always valid, since that means "no resource."
// You shouldn't be passing 0 var, instance, or module IDs around so those
// are still invalid.
diff --git a/chromium/ppapi/shared_impl/media_stream_audio_track_shared.cc b/chromium/ppapi/shared_impl/media_stream_audio_track_shared.cc
new file mode 100644
index 00000000000..ac649547d8c
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_audio_track_shared.cc
@@ -0,0 +1,17 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
+
+namespace ppapi {
+
+// static
+bool MediaStreamAudioTrackShared::VerifyAttributes(
+ const Attributes& attributes) {
+ if (attributes.buffers < 0)
+ return false;
+ return true;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/media_stream_audio_track_shared.h b/chromium/ppapi/shared_impl/media_stream_audio_track_shared.h
new file mode 100644
index 00000000000..0a2ecea69db
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_audio_track_shared.h
@@ -0,0 +1,25 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
+#define PPAPI_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
+
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+class PPAPI_SHARED_EXPORT MediaStreamAudioTrackShared {
+ public:
+ struct Attributes {
+ Attributes() : buffers(0) {}
+ int32_t buffers;
+ };
+
+ static bool VerifyAttributes(const Attributes& attributes);
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
diff --git a/chromium/ppapi/shared_impl/media_stream_audio_track_shared_unittest.cc b/chromium/ppapi/shared_impl/media_stream_audio_track_shared_unittest.cc
new file mode 100644
index 00000000000..00cd90576bb
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_audio_track_shared_unittest.cc
@@ -0,0 +1,33 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace ppapi {
+
+TEST(MediaStreamAudioTrackShared, Verify) {
+ {
+ MediaStreamAudioTrackShared::Attributes attributes;
+ EXPECT_TRUE(MediaStreamAudioTrackShared::VerifyAttributes(attributes));
+ }
+
+ // Verify buffers
+ {
+ MediaStreamAudioTrackShared::Attributes attributes;
+ attributes.buffers = 0;
+ EXPECT_TRUE(MediaStreamAudioTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = 8;
+ EXPECT_TRUE(MediaStreamAudioTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = 1024;
+ EXPECT_TRUE(MediaStreamAudioTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = -1;
+ EXPECT_FALSE(MediaStreamAudioTrackShared::VerifyAttributes(attributes));
+ }
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/media_stream_buffer.h b/chromium/ppapi/shared_impl/media_stream_buffer.h
new file mode 100644
index 00000000000..8b0ebe1cc40
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_buffer.h
@@ -0,0 +1,58 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
+#define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
+
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/c/ppb_video_frame.h"
+
+namespace ppapi {
+
+union MediaStreamBuffer {
+ enum Type { TYPE_UNKNOWN = 0, TYPE_AUDIO = 1, TYPE_VIDEO = 2, };
+
+ struct Header {
+ Type type;
+ uint32_t size;
+ };
+
+ struct Audio {
+ Header header;
+ PP_TimeDelta timestamp;
+ PP_AudioBuffer_SampleRate sample_rate;
+ uint32_t number_of_channels;
+ uint32_t number_of_samples;
+ uint32_t data_size;
+ // Uses 8 bytes to make sure the Audio struct has consistent size between
+ // NaCl code and renderer code.
+ uint8_t data[8];
+ };
+
+ struct Video {
+ Header header;
+ PP_TimeDelta timestamp;
+ PP_VideoFrame_Format format;
+ PP_Size size;
+ uint32_t data_size;
+ // Uses 8 bytes to make sure the Video struct has consistent size between
+ // NaCl code and renderer code.
+ uint8_t data[8];
+ };
+
+ // Because these structs are written and read in shared memory, we need
+ // the size and alighment to be consistent between NaCl and its host trusted
+ // platform.
+ PP_COMPILE_ASSERT_SIZE_IN_BYTES(Header, 8);
+ PP_COMPILE_ASSERT_SIZE_IN_BYTES(Audio, 40);
+ PP_COMPILE_ASSERT_SIZE_IN_BYTES(Video, 40);
+
+ Header header;
+ Video video;
+ Audio audio;
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
diff --git a/chromium/ppapi/shared_impl/media_stream_buffer_manager.cc b/chromium/ppapi/shared_impl/media_stream_buffer_manager.cc
new file mode 100644
index 00000000000..29bc1537e7d
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_buffer_manager.cc
@@ -0,0 +1,81 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/media_stream_buffer_manager.h"
+
+#include "base/logging.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/shared_impl/media_stream_buffer.h"
+
+namespace ppapi {
+
+MediaStreamBufferManager::Delegate::~Delegate() {}
+
+void MediaStreamBufferManager::Delegate::OnNewBufferEnqueued() {}
+
+MediaStreamBufferManager::MediaStreamBufferManager(Delegate* delegate)
+ : delegate_(delegate), buffer_size_(0), number_of_buffers_(0) {
+ DCHECK(delegate_);
+}
+
+MediaStreamBufferManager::~MediaStreamBufferManager() {}
+
+bool MediaStreamBufferManager::SetBuffers(int32_t number_of_buffers,
+ int32_t buffer_size,
+ scoped_ptr<base::SharedMemory> shm,
+ bool enqueue_all_buffers) {
+ DCHECK(shm);
+ DCHECK_GT(number_of_buffers, 0);
+ DCHECK_GT(buffer_size,
+ static_cast<int32_t>(sizeof(MediaStreamBuffer::Header)));
+ DCHECK_EQ(buffer_size & 0x3, 0);
+
+ number_of_buffers_ = number_of_buffers;
+ buffer_size_ = buffer_size;
+
+ size_t size = number_of_buffers_ * buffer_size;
+ shm_ = shm.Pass();
+ if (!shm_->Map(size))
+ return false;
+
+ buffer_queue_.clear();
+ buffers_.clear();
+ uint8_t* p = reinterpret_cast<uint8_t*>(shm_->memory());
+ for (int32_t i = 0; i < number_of_buffers; ++i) {
+ if (enqueue_all_buffers)
+ buffer_queue_.push_back(i);
+ buffers_.push_back(reinterpret_cast<MediaStreamBuffer*>(p));
+ p += buffer_size_;
+ }
+ return true;
+}
+
+int32_t MediaStreamBufferManager::DequeueBuffer() {
+ if (buffer_queue_.empty())
+ return PP_ERROR_FAILED;
+ int32_t buffer = buffer_queue_.front();
+ buffer_queue_.pop_front();
+ return buffer;
+}
+
+std::vector<int32_t> MediaStreamBufferManager::DequeueBuffers() {
+ std::vector<int32_t> buffers(buffer_queue_.begin(), buffer_queue_.end());
+ buffer_queue_.clear();
+ return buffers;
+}
+
+void MediaStreamBufferManager::EnqueueBuffer(int32_t index) {
+ CHECK_GE(index, 0) << "Invalid buffer index";
+ CHECK_LT(index, number_of_buffers_) << "Invalid buffer index";
+ buffer_queue_.push_back(index);
+ delegate_->OnNewBufferEnqueued();
+}
+
+MediaStreamBuffer* MediaStreamBufferManager::GetBufferPointer(int32_t index) {
+ if (index < 0 || index >= number_of_buffers_)
+ return NULL;
+ return buffers_[index];
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/media_stream_buffer_manager.h b/chromium/ppapi/shared_impl/media_stream_buffer_manager.h
new file mode 100644
index 00000000000..eafd10cc2e9
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_buffer_manager.h
@@ -0,0 +1,97 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
+#define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
+
+#include <deque>
+#include <vector>
+
+#include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/shared_memory.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+union MediaStreamBuffer;
+
+// This class is used by both read side and write side of a MediaStreamTrack to
+// maintain a queue of buffers for reading or writing.
+//
+// An example:
+// 1. The writer calls the writer's |buffer_manager_.Dequeue()| to get a free
+// buffer.
+// 2. The writer fills data into the buffer.
+// 3. The writer sends the buffer index to the reader via an IPC message.
+// 4. The reader receives the buffer index and calls the reader's
+// |buffer_buffer.Enqueue()| to put the buffer into the read's queue.
+// 5. The reader calls reader's |buffer_buffer_.Dequeue()| to get a received
+// buffer.
+// 6. When the buffer from the step 5 is consumed, the reader sends the buffer
+// index back to writer via an IPC message.
+// 7. The writer receives the buffer index and puts it back to the writer's
+// free buffer queue by calling the writer's |buffer_manager_.Enqueue()|.
+// 8. Go back to step 1.
+class PPAPI_SHARED_EXPORT MediaStreamBufferManager {
+ public:
+ class PPAPI_SHARED_EXPORT Delegate {
+ public:
+ virtual ~Delegate();
+ // It is called when a new buffer is enqueued.
+ virtual void OnNewBufferEnqueued();
+ };
+
+ // MediaStreamBufferManager doesn't own |delegate|, the caller should keep
+ // it alive during the MediaStreamBufferManager's lifecycle.
+ explicit MediaStreamBufferManager(Delegate* delegate);
+
+ ~MediaStreamBufferManager();
+
+ int32_t number_of_buffers() const { return number_of_buffers_; }
+
+ int32_t buffer_size() const { return buffer_size_; }
+
+ // Initializes shared memory for buffers transmission.
+ bool SetBuffers(int32_t number_of_buffers,
+ int32_t buffer_size,
+ scoped_ptr<base::SharedMemory> shm,
+ bool enqueue_all_buffers);
+
+ // Dequeues a buffer from |buffer_queue_|.
+ int32_t DequeueBuffer();
+
+ // Dequeues all the buffers from |buffer_queue_|.
+ std::vector<int32_t> DequeueBuffers();
+
+ // Puts a buffer into |buffer_queue_|.
+ void EnqueueBuffer(int32_t index);
+
+ // Gets the buffer address for the given buffer index.
+ MediaStreamBuffer* GetBufferPointer(int32_t index);
+
+ private:
+ Delegate* delegate_;
+
+ // A queue of buffer indices.
+ std::deque<int32_t> buffer_queue_;
+
+ // A vector of buffer pointers. It is used for index to pointer converting.
+ std::vector<MediaStreamBuffer*> buffers_;
+
+ // The buffer size in bytes.
+ int32_t buffer_size_;
+
+ // The number of buffers in the shared memory.
+ int32_t number_of_buffers_;
+
+ // A memory block shared between renderer process and plugin process.
+ scoped_ptr<base::SharedMemory> shm_;
+
+ DISALLOW_COPY_AND_ASSIGN(MediaStreamBufferManager);
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHAERD_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
diff --git a/chromium/ppapi/shared_impl/media_stream_buffer_manager_unittest.cc b/chromium/ppapi/shared_impl/media_stream_buffer_manager_unittest.cc
new file mode 100644
index 00000000000..9374875a9e4
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_buffer_manager_unittest.cc
@@ -0,0 +1,180 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/shared_memory.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/shared_impl/media_stream_buffer_manager.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using base::SharedMemory;
+using base::SharedMemoryCreateOptions;
+
+namespace {
+
+scoped_ptr<SharedMemory> CreateSharedMemory(int32_t buffer_size,
+ int32_t number_of_buffers) {
+ scoped_ptr<SharedMemory> shared_memory(new SharedMemory());
+ SharedMemoryCreateOptions options;
+ options.size = buffer_size * number_of_buffers;
+ options.executable = false;
+ EXPECT_TRUE(shared_memory->Create(options));
+ return shared_memory.Pass();
+}
+
+} // namespace
+
+namespace ppapi {
+
+class MockDelegate : public MediaStreamBufferManager::Delegate {
+ public:
+ MockDelegate() : new_buffer_enqueue_counter_(0) {}
+ virtual void OnNewBufferEnqueued() OVERRIDE {
+ new_buffer_enqueue_counter_++;
+ }
+
+ int32_t new_buffer_enqueue_counter_;
+};
+
+TEST(MediaStreamBufferManager, General) {
+ {
+ const int32_t kNumberOfBuffers = 5;
+ const int32_t kBufferSize = 128;
+ MockDelegate delegate;
+ MediaStreamBufferManager manager(&delegate);
+ scoped_ptr<SharedMemory> shared_memory =
+ CreateSharedMemory(kBufferSize, kNumberOfBuffers);
+ // SetBuffers with enqueue_all_buffers = true;
+ EXPECT_TRUE(manager.SetBuffers(kNumberOfBuffers,
+ kBufferSize,
+ shared_memory.Pass(),
+ true));
+
+ int8_t* memory = reinterpret_cast<int8_t*>(manager.GetBufferPointer(0));
+ EXPECT_NE(static_cast<int8_t*>(NULL), memory);
+
+ EXPECT_EQ(kNumberOfBuffers, manager.number_of_buffers());
+ EXPECT_EQ(kBufferSize, manager.buffer_size());
+
+ // Test DequeueBuffer() and GetBufferPointer()
+ for (int32_t i = 0; i < kNumberOfBuffers; ++i) {
+ EXPECT_EQ(i, manager.DequeueBuffer());
+ EXPECT_EQ(reinterpret_cast<MediaStreamBuffer*>(memory + i * kBufferSize),
+ manager.GetBufferPointer(i));
+ }
+
+ manager.EnqueueBuffer(0);
+ manager.EnqueueBuffer(4);
+ manager.EnqueueBuffer(3);
+ manager.EnqueueBuffer(1);
+ manager.EnqueueBuffer(2);
+ EXPECT_EQ(5, delegate.new_buffer_enqueue_counter_);
+
+ EXPECT_EQ(0, manager.DequeueBuffer());
+ EXPECT_EQ(4, manager.DequeueBuffer());
+ EXPECT_EQ(3, manager.DequeueBuffer());
+ EXPECT_EQ(1, manager.DequeueBuffer());
+ EXPECT_EQ(2, manager.DequeueBuffer());
+ EXPECT_EQ(PP_ERROR_FAILED, manager.DequeueBuffer());
+ EXPECT_EQ(PP_ERROR_FAILED, manager.DequeueBuffer());
+
+ // Returns NULL for invalid index to GetBufferPointer()
+ EXPECT_EQ(NULL, manager.GetBufferPointer(-1));
+ EXPECT_EQ(NULL, manager.GetBufferPointer(kNumberOfBuffers));
+
+ // Test crash for passing invalid index to EnqueueBuffer().
+ EXPECT_DEATH(manager.EnqueueBuffer(-1),
+ ".*Check failed: index >= 0.*");
+ EXPECT_DEATH(manager.EnqueueBuffer(kNumberOfBuffers),
+ ".*Check failed: index < number_of_buffers_.*");
+ }
+
+ {
+ const int32_t kNumberOfBuffers = 5;
+ const int32_t kBufferSize = 128;
+ MockDelegate delegate;
+ MediaStreamBufferManager manager(&delegate);
+ scoped_ptr<SharedMemory> shared_memory =
+ CreateSharedMemory(kBufferSize, kNumberOfBuffers);
+ // SetBuffers with enqueue_all_buffers = false;
+ EXPECT_TRUE(manager.SetBuffers(kNumberOfBuffers,
+ kBufferSize,
+ shared_memory.Pass(),
+ false));
+
+ int8_t* memory = reinterpret_cast<int8_t*>(manager.GetBufferPointer(0));
+ EXPECT_NE(static_cast<int8_t*>(NULL), memory);
+
+ EXPECT_EQ(kNumberOfBuffers, manager.number_of_buffers());
+ EXPECT_EQ(kBufferSize, manager.buffer_size());
+
+ // Test DequeueBuffer() and GetBufferPointer()
+ for (int32_t i = 0; i < kNumberOfBuffers; ++i) {
+ EXPECT_EQ(PP_ERROR_FAILED, manager.DequeueBuffer());
+ EXPECT_EQ(reinterpret_cast<MediaStreamBuffer*>(memory + i * kBufferSize),
+ manager.GetBufferPointer(i));
+ }
+ }
+}
+
+TEST(MediaStreamBufferManager, ResetBuffers) {
+ const int32_t kNumberOfBuffers1 = 5;
+ const int32_t kBufferSize1 = 128;
+ const int32_t kNumberOfBuffers2 = 8;
+ const int32_t kBufferSize2 = 256;
+ MockDelegate delegate;
+ MediaStreamBufferManager manager(&delegate);
+ {
+ scoped_ptr<SharedMemory> shared_memory(new SharedMemory());
+ SharedMemoryCreateOptions options;
+ options.size = kBufferSize1 * kNumberOfBuffers1;
+ options.executable = false;
+
+ EXPECT_TRUE(shared_memory->Create(options));
+
+ // SetBuffers with enqueue_all_buffers = true;
+ EXPECT_TRUE(manager.SetBuffers(kNumberOfBuffers1,
+ kBufferSize1,
+ shared_memory.Pass(),
+ true));
+
+ int8_t* memory = reinterpret_cast<int8_t*>(manager.GetBufferPointer(0));
+ EXPECT_NE(static_cast<int8_t*>(NULL), memory);
+
+ EXPECT_EQ(kNumberOfBuffers1, manager.number_of_buffers());
+ EXPECT_EQ(kBufferSize1, manager.buffer_size());
+
+ // Test DequeueBuffer() and GetBufferPointer()
+ for (int32_t i = 0; i < kNumberOfBuffers1; ++i) {
+ EXPECT_EQ(i, manager.DequeueBuffer());
+ EXPECT_EQ(reinterpret_cast<MediaStreamBuffer*>(memory + i * kBufferSize1),
+ manager.GetBufferPointer(i));
+ }
+ }
+
+ {
+ scoped_ptr<SharedMemory> shared_memory =
+ CreateSharedMemory(kBufferSize2, kNumberOfBuffers2);
+ // SetBuffers with enqueue_all_buffers = true;
+ EXPECT_TRUE(manager.SetBuffers(kNumberOfBuffers2,
+ kBufferSize2,
+ shared_memory.Pass(),
+ true));
+
+ int8_t* memory = reinterpret_cast<int8_t*>(manager.GetBufferPointer(0));
+ EXPECT_NE(static_cast<int8_t*>(NULL), memory);
+
+ EXPECT_EQ(kNumberOfBuffers2, manager.number_of_buffers());
+ EXPECT_EQ(kBufferSize2, manager.buffer_size());
+
+ // Test DequeueBuffer() and GetBufferPointer()
+ for (int32_t i = 0; i < kNumberOfBuffers2; ++i) {
+ EXPECT_EQ(i, manager.DequeueBuffer());
+ EXPECT_EQ(reinterpret_cast<MediaStreamBuffer*>(memory + i * kBufferSize2),
+ manager.GetBufferPointer(i));
+ }
+ }
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/media_stream_video_track_shared.cc b/chromium/ppapi/shared_impl/media_stream_video_track_shared.cc
new file mode 100644
index 00000000000..0ca894af62c
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_video_track_shared.cc
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/media_stream_video_track_shared.h"
+
+#include "base/logging.h"
+
+namespace {
+
+const int32_t kMaxWidth = 4096;
+const int32_t kMaxHeight = 4096;
+
+} // namespace
+
+namespace ppapi {
+
+// static
+bool MediaStreamVideoTrackShared::VerifyAttributes(
+ const Attributes& attributes) {
+ if (attributes.buffers < 0)
+ return false;
+ if (attributes.format < PP_VIDEOFRAME_FORMAT_UNKNOWN ||
+ attributes.format > PP_VIDEOFRAME_FORMAT_LAST) {
+ return false;
+ }
+ if (attributes.width < 0 ||
+ attributes.width > kMaxWidth ||
+ attributes.width & 0x3) {
+ return false;
+ }
+ if (attributes.height < 0 ||
+ attributes.height > kMaxHeight ||
+ attributes.height & 0x3) {
+ return false;
+ }
+ return true;
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/media_stream_video_track_shared.h b/chromium/ppapi/shared_impl/media_stream_video_track_shared.h
new file mode 100644
index 00000000000..75e32b8ed40
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_video_track_shared.h
@@ -0,0 +1,32 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
+#define PPAPI_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
+
+#include "ppapi/c/ppb_video_frame.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+class PPAPI_SHARED_EXPORT MediaStreamVideoTrackShared {
+ public:
+ struct Attributes {
+ Attributes()
+ : buffers(0),
+ width(0),
+ height(0),
+ format(PP_VIDEOFRAME_FORMAT_UNKNOWN) {}
+ int32_t buffers;
+ int32_t width;
+ int32_t height;
+ PP_VideoFrame_Format format;
+ };
+
+ static bool VerifyAttributes(const Attributes& attributes);
+};
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
diff --git a/chromium/ppapi/shared_impl/media_stream_video_track_shared_unittest.cc b/chromium/ppapi/shared_impl/media_stream_video_track_shared_unittest.cc
new file mode 100644
index 00000000000..55b011953a3
--- /dev/null
+++ b/chromium/ppapi/shared_impl/media_stream_video_track_shared_unittest.cc
@@ -0,0 +1,96 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/media_stream_video_track_shared.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace ppapi {
+
+TEST(MediaStreamVideoTrackShared, Verify) {
+ {
+ MediaStreamVideoTrackShared::Attributes attributes;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+ // Verify buffers
+ {
+ MediaStreamVideoTrackShared::Attributes attributes;
+ attributes.buffers = 0;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = 8;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = 1024;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.buffers = -1;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+ // Verify format
+ {
+ MediaStreamVideoTrackShared::Attributes attributes;
+ for (int32_t i = PP_VIDEOFRAME_FORMAT_UNKNOWN;
+ i <= PP_VIDEOFRAME_FORMAT_LAST;
+ ++i) {
+ attributes.format = static_cast<PP_VideoFrame_Format>(i);
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+ attributes.format = static_cast<PP_VideoFrame_Format>(-1);
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.format =
+ static_cast<PP_VideoFrame_Format>(PP_VIDEOFRAME_FORMAT_LAST + 1);
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+ // Verify width
+ {
+ MediaStreamVideoTrackShared::Attributes attributes;
+ attributes.width = 1024;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.width = 1025;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.width = 1026;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.width = -1;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.width = -4;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.width = 4097;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+ // Verify height
+ {
+ MediaStreamVideoTrackShared::Attributes attributes;
+ attributes.height = 1024;
+ EXPECT_TRUE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.height = 1025;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.height = 1026;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.height = -1;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.height = -4;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+
+ attributes.height = 4096 + 4;
+ EXPECT_FALSE(MediaStreamVideoTrackShared::VerifyAttributes(attributes));
+ }
+
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/platform_file.cc b/chromium/ppapi/shared_impl/platform_file.cc
index fe9c2ff6bd3..0bdd5db7f8e 100644
--- a/chromium/ppapi/shared_impl/platform_file.cc
+++ b/chromium/ppapi/shared_impl/platform_file.cc
@@ -14,7 +14,7 @@ base::PlatformFile IntToPlatformFile(int32_t handle) {
#elif defined(OS_POSIX)
return handle;
#else
- #error Not implemented.
+#error Not implemented.
#endif
}
@@ -24,7 +24,7 @@ int32_t PlatformFileToInt(base::PlatformFile handle) {
#elif defined(OS_POSIX)
return handle;
#else
- #error Not implemented.
+#error Not implemented.
#endif
}
diff --git a/chromium/ppapi/shared_impl/platform_file.h b/chromium/ppapi/shared_impl/platform_file.h
index d2313eccabb..05462c4a91e 100644
--- a/chromium/ppapi/shared_impl/platform_file.h
+++ b/chromium/ppapi/shared_impl/platform_file.h
@@ -5,7 +5,7 @@
#ifndef PPAPI_SHARED_IMPL_PLATFORM_FILE_H_
#define PPAPI_SHARED_IMPL_PLATFORM_FILE_H_
-#include "base/platform_file.h"
+#include "base/files/file.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/shared_impl/ppapi_shared_export.h"
diff --git a/chromium/ppapi/shared_impl/ppapi_constants.h b/chromium/ppapi/shared_impl/ppapi_constants.h
new file mode 100644
index 00000000000..dcc9b29de5e
--- /dev/null
+++ b/chromium/ppapi/shared_impl/ppapi_constants.h
@@ -0,0 +1,19 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_SHARED_IMPL_PPAPI_CONSTANTS_H_
+#define PPAPI_SHARED_IMPL_PPAPI_CONSTANTS_H_
+
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+namespace ppapi {
+
+// Default interval to space out IPC messages sent indicating that a plugin is
+// active and should be kept alive. The value must be smaller than any threshold
+// used to kill inactive plugins by the embedder host.
+const unsigned kKeepaliveThrottleIntervalDefaultMilliseconds = 5000;
+
+} // namespace ppapi
+
+#endif // PPAPI_SHARED_IMPL_PPAPI_CONSTANTS_H_
diff --git a/chromium/ppapi/shared_impl/ppapi_globals.cc b/chromium/ppapi/shared_impl/ppapi_globals.cc
index 28ed2cf16bc..eef3f5c9004 100644
--- a/chromium/ppapi/shared_impl/ppapi_globals.cc
+++ b/chromium/ppapi/shared_impl/ppapi_globals.cc
@@ -36,7 +36,7 @@ PpapiGlobals::~PpapiGlobals() {
ppapi_globals = NULL;
}
-//Static Getter for the global singleton.
+// Static Getter for the global singleton.
PpapiGlobals* PpapiGlobals::Get() {
if (ppapi_globals)
return ppapi_globals;
@@ -61,12 +61,21 @@ void PpapiGlobals::ResetMainThreadMessageLoopForTesting() {
main_loop_proxy_ = base::MessageLoopProxy::current();
}
-bool PpapiGlobals::IsHostGlobals() const {
- return false;
+bool PpapiGlobals::IsHostGlobals() const { return false; }
+
+bool PpapiGlobals::IsPluginGlobals() const { return false; }
+
+void PpapiGlobals::MarkPluginIsActive() {}
+
+void PpapiGlobals::AddLatencyInfo(const ui::LatencyInfo& latency_info,
+ PP_Instance instance) {
+ latency_info_for_frame_[instance].push_back(latency_info);
}
-bool PpapiGlobals::IsPluginGlobals() const {
- return false;
+void PpapiGlobals::TransferLatencyInfoTo(
+ std::vector<ui::LatencyInfo>* latency_info, PP_Instance instance) {
+ latency_info->swap(latency_info_for_frame_[instance]);
+ latency_info_for_frame_.erase(instance);
}
// static
diff --git a/chromium/ppapi/shared_impl/ppapi_globals.h b/chromium/ppapi/shared_impl/ppapi_globals.h
index 93ab2998e34..a98d8979383 100644
--- a/chromium/ppapi/shared_impl/ppapi_globals.h
+++ b/chromium/ppapi/shared_impl/ppapi_globals.h
@@ -5,7 +5,9 @@
#ifndef PPAPI_SHARED_IMPL_PPAPI_GLOBALS_H_
#define PPAPI_SHARED_IMPL_PPAPI_GLOBALS_H_
+#include <map>
#include <string>
+#include <vector>
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
@@ -15,6 +17,7 @@
#include "ppapi/c/ppb_console.h"
#include "ppapi/shared_impl/api_id.h"
#include "ppapi/shared_impl/ppapi_shared_export.h"
+#include "ui/events/latency_info.h"
namespace base {
class MessageLoopProxy;
@@ -128,6 +131,19 @@ class PPAPI_SHARED_EXPORT PpapiGlobals {
virtual bool IsHostGlobals() const;
virtual bool IsPluginGlobals() const;
+ // Records that the plugin is active. The plugin reports that it is active to
+ // containers that monitor and shutdown idle content such as background apps.
+ // This method only has an effect on the plugin process, calls from the
+ // renderer process will have no effect.
+ virtual void MarkPluginIsActive();
+
+ // Caches an input event's |latency_info| for the plugin |instance|.
+ void AddLatencyInfo(const ui::LatencyInfo& latency_info,
+ PP_Instance instance);
+ // Transfers plugin |instance|'s latency info into |latency_info|.
+ void TransferLatencyInfoTo(std::vector<ui::LatencyInfo>* latency_info,
+ PP_Instance instance);
+
private:
// Return the thread-local pointer which is used only for unit testing. It
// should always be NULL when running in production. It allows separate
@@ -136,6 +152,11 @@ class PPAPI_SHARED_EXPORT PpapiGlobals {
scoped_refptr<base::MessageLoopProxy> main_loop_proxy_;
+ // If an input event is believed to have caused rendering damage, its latency
+ // info is cached in |latency_info_for_frame_| indexed by instance. These
+ // latency info will be passed back to renderer with the next plugin frame.
+ std::map<PP_Instance, std::vector<ui::LatencyInfo> > latency_info_for_frame_;
+
DISALLOW_COPY_AND_ASSIGN(PpapiGlobals);
};
diff --git a/chromium/ppapi/shared_impl/ppapi_nacl_channel_args.cc b/chromium/ppapi/shared_impl/ppapi_nacl_channel_args.cc
deleted file mode 100644
index 670e4e762dc..00000000000
--- a/chromium/ppapi/shared_impl/ppapi_nacl_channel_args.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/shared_impl/ppapi_nacl_channel_args.h"
-
-namespace ppapi {
-
-// We must provide explicit definitions of these functions for builds on
-// Windows.
-PpapiNaClChannelArgs::PpapiNaClChannelArgs() : off_the_record(false),
- supports_dev_channel(false) {
-}
-
-PpapiNaClChannelArgs::~PpapiNaClChannelArgs() {
-}
-
-} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.cc b/chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.cc
new file mode 100644
index 00000000000..4dd511040c4
--- /dev/null
+++ b/chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.cc
@@ -0,0 +1,20 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/ppapi_constants.h"
+#include "ppapi/shared_impl/ppapi_nacl_plugin_args.h"
+
+namespace ppapi {
+
+// We must provide explicit definitions of these functions for builds on
+// Windows.
+PpapiNaClPluginArgs::PpapiNaClPluginArgs()
+ : off_the_record(false),
+ supports_dev_channel(false),
+ keepalive_throttle_interval_milliseconds(
+ kKeepaliveThrottleIntervalDefaultMilliseconds) {}
+
+PpapiNaClPluginArgs::~PpapiNaClPluginArgs() {}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppapi_nacl_channel_args.h b/chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.h
index 1e4e4d58f1f..993131d3b09 100644
--- a/chromium/ppapi/shared_impl/ppapi_nacl_channel_args.h
+++ b/chromium/ppapi/shared_impl/ppapi_nacl_plugin_args.h
@@ -1,9 +1,9 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef PPAPI_SHARED_IMPL_PPAPI_CREATE_NACL_CHANNEL_ARGS_H
-#define PPAPI_SHARED_IMPL_PPAPI_CREATE_NACL_CHANNEL_ARGS_H
+#ifndef PPAPI_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H
+#define PPAPI_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H
#include <string>
#include <vector>
@@ -12,14 +12,15 @@
namespace ppapi {
-struct PPAPI_SHARED_EXPORT PpapiNaClChannelArgs {
+struct PPAPI_SHARED_EXPORT PpapiNaClPluginArgs {
public:
- PpapiNaClChannelArgs();
- ~PpapiNaClChannelArgs();
+ PpapiNaClPluginArgs();
+ ~PpapiNaClPluginArgs();
bool off_the_record;
PpapiPermissions permissions;
bool supports_dev_channel;
+ unsigned keepalive_throttle_interval_milliseconds;
// Switches from the command-line.
std::vector<std::string> switch_names;
@@ -28,4 +29,4 @@ struct PPAPI_SHARED_EXPORT PpapiNaClChannelArgs {
} // namespace ppapi
-#endif // PPAPI_SHARED_IMPL_PPAPI_CREATE_NACL_CHANNEL_ARGS_H
+#endif // PPAPI_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H
diff --git a/chromium/ppapi/shared_impl/ppapi_permissions.cc b/chromium/ppapi/shared_impl/ppapi_permissions.cc
index 7b83323847b..3fc6578384c 100644
--- a/chromium/ppapi/shared_impl/ppapi_permissions.cc
+++ b/chromium/ppapi/shared_impl/ppapi_permissions.cc
@@ -10,14 +10,11 @@
namespace ppapi {
-PpapiPermissions::PpapiPermissions() : permissions_(0) {
-}
+PpapiPermissions::PpapiPermissions() : permissions_(0) {}
-PpapiPermissions::PpapiPermissions(uint32 perms) : permissions_(perms) {
-}
+PpapiPermissions::PpapiPermissions(uint32 perms) : permissions_(perms) {}
-PpapiPermissions::~PpapiPermissions() {
-}
+PpapiPermissions::~PpapiPermissions() {}
// static
PpapiPermissions PpapiPermissions::AllPermissions() {
diff --git a/chromium/ppapi/shared_impl/ppapi_permissions.h b/chromium/ppapi/shared_impl/ppapi_permissions.h
index fb82cfcd268..8a12206b9d4 100644
--- a/chromium/ppapi/shared_impl/ppapi_permissions.h
+++ b/chromium/ppapi/shared_impl/ppapi_permissions.h
@@ -14,7 +14,8 @@ enum Permission {
// Placeholder/uninitialized permission.
PERMISSION_NONE = 0,
- // Allows access to dev interfaces.
+ // Allows access to dev interfaces. These are experimental interfaces not
+ // tied to any particular release channel.
PERMISSION_DEV = 1 << 0,
// Allows access to Browser-internal interfaces.
@@ -30,15 +31,20 @@ enum Permission {
// Flash-related interfaces.
PERMISSION_FLASH = 1 << 4,
+ // "Dev channel" interfaces. This is different than PERMISSION_DEV above;
+ // these interfaces may only be used on Dev or Canary channel releases of
+ // Chrome.
+ PERMISSION_DEV_CHANNEL = 1 << 5,
+
// NOTE: If you add stuff be sure to update PERMISSION_ALL_BITS.
// Meta permission for initializing plugins registered on the command line
// that get all permissions.
- PERMISSION_ALL_BITS = PERMISSION_DEV |
- PERMISSION_PRIVATE |
+ PERMISSION_ALL_BITS = PERMISSION_DEV | PERMISSION_PRIVATE |
PERMISSION_BYPASS_USER_GESTURE |
PERMISSION_TESTING |
- PERMISSION_FLASH
+ PERMISSION_FLASH |
+ PERMISSION_DEV_CHANNEL
};
class PPAPI_SHARED_EXPORT PpapiPermissions {
diff --git a/chromium/ppapi/shared_impl/ppapi_preferences.cc b/chromium/ppapi/shared_impl/ppapi_preferences.cc
index fd2ee97370a..662c8ebd34a 100644
--- a/chromium/ppapi/shared_impl/ppapi_preferences.cc
+++ b/chromium/ppapi/shared_impl/ppapi_preferences.cc
@@ -12,8 +12,8 @@ Preferences::Preferences()
number_of_cpu_cores(0),
is_3d_supported(true),
is_stage3d_supported(false),
- is_stage3d_baseline_supported(false) {
-}
+ is_stage3d_baseline_supported(false),
+ is_accelerated_video_decode_enabled(false) {}
Preferences::Preferences(const WebPreferences& prefs)
: standard_font_family_map(prefs.standard_font_family_map),
@@ -26,14 +26,10 @@ Preferences::Preferences(const WebPreferences& prefs)
is_3d_supported(prefs.flash_3d_enabled),
is_stage3d_supported(prefs.flash_stage3d_enabled),
is_stage3d_baseline_supported(prefs.flash_stage3d_baseline_enabled),
- // This determines both if webgl is supported (experimental_webgl_enabled)
- // and if it runs in hardware
- // (accelerated_compositing_for_plugins_enabled)
- is_webgl_supported(prefs.experimental_webgl_enabled &&
- prefs.accelerated_compositing_for_plugins_enabled) {
-}
+ is_webgl_supported(prefs.experimental_webgl_enabled),
+ is_accelerated_video_decode_enabled(
+ prefs.pepper_accelerated_video_decode_enabled) {}
-Preferences::~Preferences() {
-}
+Preferences::~Preferences() {}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppapi_preferences.h b/chromium/ppapi/shared_impl/ppapi_preferences.h
index d3fad965a3b..0ef91362f53 100644
--- a/chromium/ppapi/shared_impl/ppapi_preferences.h
+++ b/chromium/ppapi/shared_impl/ppapi_preferences.h
@@ -29,6 +29,7 @@ struct PPAPI_SHARED_EXPORT Preferences {
bool is_stage3d_supported;
bool is_stage3d_baseline_supported;
bool is_webgl_supported;
+ bool is_accelerated_video_decode_enabled;
};
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_audio_config_shared.cc b/chromium/ppapi/shared_impl/ppb_audio_config_shared.cc
index e727d170ac7..13f1925a8d9 100644
--- a/chromium/ppapi/shared_impl/ppb_audio_config_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_audio_config_shared.cc
@@ -21,17 +21,14 @@ PPB_AudioConfig_Shared::PPB_AudioConfig_Shared(ResourceObjectType type,
PP_Instance instance)
: Resource(type, instance),
sample_rate_(PP_AUDIOSAMPLERATE_NONE),
- sample_frame_count_(0) {
-}
+ sample_frame_count_(0) {}
-PPB_AudioConfig_Shared::~PPB_AudioConfig_Shared() {
-}
+PPB_AudioConfig_Shared::~PPB_AudioConfig_Shared() {}
-PP_Resource PPB_AudioConfig_Shared::Create(
- ResourceObjectType type,
- PP_Instance instance,
- PP_AudioSampleRate sample_rate,
- uint32_t sample_frame_count) {
+PP_Resource PPB_AudioConfig_Shared::Create(ResourceObjectType type,
+ PP_Instance instance,
+ PP_AudioSampleRate sample_rate,
+ uint32_t sample_frame_count) {
scoped_refptr<PPB_AudioConfig_Shared> object(
new PPB_AudioConfig_Shared(type, instance));
if (!object->Init(sample_rate, sample_frame_count))
@@ -97,8 +94,8 @@ uint32_t PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_1(
// If client is using same sample rate as audio hardware, then recommend a
// multiple of the audio hardware's sample frame count.
if (!kHighLatencyDevice && hardware_sample_rate == sample_rate) {
- return CalculateMultipleOfSampleFrameCount(
- hardware_sample_frame_count, sample_frame_count);
+ return CalculateMultipleOfSampleFrameCount(hardware_sample_frame_count,
+ sample_frame_count);
}
// If the hardware requires a high latency buffer or we're at a low sample
@@ -126,12 +123,12 @@ uint32_t PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_1(
int min_sample_frame_count = kLowLatencySampleFrameCount;
if (hardware_sample_rate == 44100 && sample_rate == 48000 &&
hardware_sample_frame_count > hardware_sample_rate / 100u) {
- min_sample_frame_count = std::max(
- 2 * kLowLatencySampleFrameCount, hardware_sample_frame_count);
+ min_sample_frame_count =
+ std::max(2 * kLowLatencySampleFrameCount, hardware_sample_frame_count);
}
- return CalculateMultipleOfSampleFrameCount(
- min_sample_frame_count, sample_frame_count);
+ return CalculateMultipleOfSampleFrameCount(min_sample_frame_count,
+ sample_frame_count);
}
// static
@@ -141,7 +138,7 @@ PP_AudioSampleRate PPB_AudioConfig_Shared::RecommendSampleRate(
if (enter.failed())
return PP_AUDIOSAMPLERATE_NONE;
PP_AudioSampleRate hardware_sample_rate = static_cast<PP_AudioSampleRate>(
- enter.functions()->GetAudioHardwareOutputSampleRate(instance));
+ enter.functions()->GetAudioHardwareOutputSampleRate(instance));
return hardware_sample_rate;
}
diff --git a/chromium/ppapi/shared_impl/ppb_audio_config_shared.h b/chromium/ppapi/shared_impl/ppb_audio_config_shared.h
index edc84baeae5..5aca24aeaa8 100644
--- a/chromium/ppapi/shared_impl/ppb_audio_config_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_audio_config_shared.h
@@ -30,9 +30,11 @@ class PPAPI_SHARED_EXPORT PPB_AudioConfig_Shared
PP_Instance instance,
PP_AudioSampleRate sample_rate,
uint32_t sample_frame_count);
- static uint32_t RecommendSampleFrameCount_1_0(PP_AudioSampleRate sample_rate,
+ static uint32_t RecommendSampleFrameCount_1_0(
+ PP_AudioSampleRate sample_rate,
uint32_t request_sample_frame_count);
- static uint32_t RecommendSampleFrameCount_1_1(PP_Instance instance,
+ static uint32_t RecommendSampleFrameCount_1_1(
+ PP_Instance instance,
PP_AudioSampleRate sample_rate,
uint32_t request_sample_frame_count);
static PP_AudioSampleRate RecommendSampleRate(PP_Instance);
diff --git a/chromium/ppapi/shared_impl/ppb_audio_shared.cc b/chromium/ppapi/shared_impl/ppb_audio_shared.cc
index 1b12d5c5efc..99af9d7e7e2 100644
--- a/chromium/ppapi/shared_impl/ppb_audio_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_audio_shared.cc
@@ -4,37 +4,32 @@
#include "ppapi/shared_impl/ppb_audio_shared.h"
+#include "base/debug/trace_event.h"
#include "base/logging.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/ppb_audio_config_shared.h"
#include "ppapi/shared_impl/proxy_lock.h"
namespace ppapi {
-#if defined(OS_NACL)
namespace {
+bool g_nacl_mode = false;
// Because this is static, the function pointers will be NULL initially.
-PP_ThreadFunctions thread_functions;
+PP_ThreadFunctions g_thread_functions;
}
-#endif // defined(OS_NACL)
-AudioCallbackCombined::AudioCallbackCombined() : callback_1_0_(NULL),
- callback_(NULL) {
-}
+AudioCallbackCombined::AudioCallbackCombined()
+ : callback_1_0_(NULL), callback_(NULL) {}
AudioCallbackCombined::AudioCallbackCombined(
PPB_Audio_Callback_1_0 callback_1_0)
- : callback_1_0_(callback_1_0),
- callback_(NULL) {
-}
+ : callback_1_0_(callback_1_0), callback_(NULL) {}
AudioCallbackCombined::AudioCallbackCombined(PPB_Audio_Callback callback)
- : callback_1_0_(NULL),
- callback_(callback) {
-}
+ : callback_1_0_(NULL), callback_(callback) {}
-AudioCallbackCombined::~AudioCallbackCombined() {
-}
+AudioCallbackCombined::~AudioCallbackCombined() {}
bool AudioCallbackCombined::IsValid() const {
return callback_1_0_ || callback_;
@@ -56,10 +51,7 @@ void AudioCallbackCombined::Run(void* sample_buffer,
PPB_Audio_Shared::PPB_Audio_Shared()
: playing_(false),
shared_memory_size_(0),
-#if defined(OS_NACL)
- thread_id_(0),
- thread_active_(false),
-#endif
+ nacl_thread_active_(false),
user_data_(NULL),
client_buffer_size_bytes_(0),
bytes_per_second_(0),
@@ -81,11 +73,8 @@ void PPB_Audio_Shared::SetCallback(const AudioCallbackCombined& callback,
void PPB_Audio_Shared::SetStartPlaybackState() {
DCHECK(!playing_);
-#if !defined(OS_NACL)
DCHECK(!audio_thread_.get());
-#else
- DCHECK(!thread_active_);
-#endif
+ DCHECK(!nacl_thread_active_);
// If the socket doesn't exist, that means that the plugin has started before
// the browser has had a chance to create all the shared memory info and
// notify us. This is a common case. In this case, we just set the playing_
@@ -111,8 +100,8 @@ void PPB_Audio_Shared::SetStreamInfo(
socket_.reset(new base::CancelableSyncSocket(socket_handle));
shared_memory_.reset(new base::SharedMemory(shared_memory_handle, false));
shared_memory_size_ = shared_memory_size;
- bytes_per_second_ = kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) *
- sample_rate;
+ bytes_per_second_ =
+ kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) * sample_rate;
buffer_index_ = 0;
if (!shared_memory_->Map(shared_memory_size_)) {
@@ -125,9 +114,8 @@ void PPB_Audio_Shared::SetStreamInfo(
audio_bus_ = media::AudioBus::WrapMemory(
kAudioOutputChannels, sample_frame_count, shared_memory_->memory());
// Setup integer audio buffer for user audio data.
- client_buffer_size_bytes_ =
- audio_bus_->frames() * audio_bus_->channels() *
- kBitsPerAudioOutputSample / 8;
+ client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() *
+ kBitsPerAudioOutputSample / 8;
client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]);
}
@@ -145,54 +133,68 @@ void PPB_Audio_Shared::StartThread() {
// start up quickly enough.
memset(shared_memory_->memory(), 0, shared_memory_size_);
memset(client_buffer_.get(), 0, client_buffer_size_bytes_);
-#if !defined(OS_NACL)
- DCHECK(!audio_thread_.get());
- audio_thread_.reset(new base::DelegateSimpleThread(
- this, "plugin_audio_thread"));
- audio_thread_->Start();
-#else
- // Use NaCl's special API for IRT code that creates threads that call back
- // into user code.
- if (NULL == thread_functions.thread_create ||
- NULL == thread_functions.thread_join)
- return;
- int result = thread_functions.thread_create(&thread_id_, CallRun, this);
- DCHECK_EQ(result, 0);
- thread_active_ = true;
-#endif
+ if (g_nacl_mode) {
+ // Use NaCl's special API for IRT code that creates threads that call back
+ // into user code.
+ if (!IsThreadFunctionReady())
+ return;
+
+ DCHECK(!nacl_thread_active_);
+ int result =
+ g_thread_functions.thread_create(&nacl_thread_id_, CallRun, this);
+ DCHECK_EQ(0, result);
+ nacl_thread_active_ = true;
+ } else {
+ DCHECK(!audio_thread_.get());
+ audio_thread_.reset(
+ new base::DelegateSimpleThread(this, "plugin_audio_thread"));
+ audio_thread_->Start();
+ }
}
void PPB_Audio_Shared::StopThread() {
-#if !defined(OS_NACL)
- if (audio_thread_.get()) {
- // In general, the audio thread should not do Pepper calls, but it might
- // anyway (for example, our Audio test does CallOnMainThread). If it did
- // a pepper call which acquires the lock (most of them do), and we try to
- // shut down the thread and Join it while holding the lock, we would
- // deadlock. So we give up the lock here so that the thread at least _can_
- // make Pepper calls without causing deadlock.
- CallWhileUnlocked(base::Bind(&base::DelegateSimpleThread::Join,
- base::Unretained(audio_thread_.get())));
- audio_thread_.reset();
- }
-#else
- if (thread_active_) {
- // See comment above about why we unlock here.
- int result = CallWhileUnlocked(thread_functions.thread_join, thread_id_);
- DCHECK_EQ(0, result);
- thread_active_ = false;
+ // In general, the audio thread should not do Pepper calls, but it might
+ // anyway (for example, our Audio test does CallOnMainThread). If it did a
+ // pepper call which acquires the lock (most of them do), and we try to shut
+ // down the thread and Join it while holding the lock, we would deadlock. So
+ // we give up the lock here so that the thread at least _can_ make Pepper
+ // calls without causing deadlock.
+ if (g_nacl_mode) {
+ if (nacl_thread_active_) {
+ int result =
+ CallWhileUnlocked(g_thread_functions.thread_join, nacl_thread_id_);
+ DCHECK_EQ(0, result);
+ nacl_thread_active_ = false;
+ }
+ } else {
+ if (audio_thread_.get()) {
+ CallWhileUnlocked(base::Bind(&base::DelegateSimpleThread::Join,
+ base::Unretained(audio_thread_.get())));
+ audio_thread_.reset();
+ }
}
-#endif
}
-#if defined(OS_NACL)
+// static
+bool PPB_Audio_Shared::IsThreadFunctionReady() {
+ if (!g_nacl_mode)
+ return true;
+
+ return (g_thread_functions.thread_create != NULL &&
+ g_thread_functions.thread_join != NULL);
+}
+
+// static
+void PPB_Audio_Shared::SetNaClMode() {
+ g_nacl_mode = true;
+}
+
// static
void PPB_Audio_Shared::SetThreadFunctions(
const struct PP_ThreadFunctions* functions) {
- DCHECK(thread_functions.thread_create == NULL);
- DCHECK(thread_functions.thread_join == NULL);
- thread_functions = *functions;
+ DCHECK(g_nacl_mode);
+ g_thread_functions = *functions;
}
// static
@@ -200,7 +202,6 @@ void PPB_Audio_Shared::CallRun(void* self) {
PPB_Audio_Shared* audio = static_cast<PPB_Audio_Shared*>(self);
audio->Run();
}
-#endif
void PPB_Audio_Shared::Run() {
int pending_data = 0;
@@ -212,15 +213,18 @@ void PPB_Audio_Shared::Run() {
if (pending_data < 0)
break;
- PP_TimeDelta latency =
- static_cast<double>(pending_data) / bytes_per_second_;
- callback_.Run(client_buffer_.get(), client_buffer_size_bytes_, latency,
- user_data_);
+ {
+ TRACE_EVENT0("audio", "PPB_Audio_Shared::FireRenderCallback");
+ PP_TimeDelta latency =
+ static_cast<double>(pending_data) / bytes_per_second_;
+ callback_.Run(
+ client_buffer_.get(), client_buffer_size_bytes_, latency, user_data_);
+ }
// Deinterleave the audio data into the shared memory as floats.
- audio_bus_->FromInterleaved(
- client_buffer_.get(), audio_bus_->frames(),
- kBitsPerAudioOutputSample / 8);
+ audio_bus_->FromInterleaved(client_buffer_.get(),
+ audio_bus_->frames(),
+ kBitsPerAudioOutputSample / 8);
// Let the other end know which buffer we just filled. The buffer index is
// used to ensure the other end is getting the buffer it expects. For more
diff --git a/chromium/ppapi/shared_impl/ppb_audio_shared.h b/chromium/ppapi/shared_impl/ppb_audio_shared.h
index 738c56b083e..31888c88264 100644
--- a/chromium/ppapi/shared_impl/ppb_audio_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_audio_shared.h
@@ -15,9 +15,7 @@
#include "ppapi/shared_impl/resource.h"
#include "ppapi/thunk/ppb_audio_api.h"
-#if defined(OS_NACL)
-#include "native_client/src/untrusted/irt/irt_ppapi.h"
-#endif
+struct PP_ThreadFunctions;
namespace ppapi {
@@ -79,11 +77,20 @@ class PPAPI_SHARED_EXPORT PPB_Audio_Shared
PP_AudioSampleRate sample_rate,
int sample_frame_count);
-#if defined(OS_NACL)
+ // Returns whether a thread can be created on the client context.
+ // In trusted plugin, this should always return true, as it uses Chrome's
+ // thread library. In NaCl plugin, this returns whether SetThreadFunctions
+ // was invoked properly.
+ static bool IsThreadFunctionReady();
+
+ // Configures this class to run in a NaCl plugin.
+ // If called, SetThreadFunctions() must be called before calling
+ // SetStartPlaybackState() on any instance of this class.
+ static void SetNaClMode();
+
// NaCl has a special API for IRT code to create threads that can call back
// into user code.
static void SetThreadFunctions(const struct PP_ThreadFunctions* functions);
-#endif
private:
// Starts execution of the audio thread.
@@ -110,15 +117,12 @@ class PPAPI_SHARED_EXPORT PPB_Audio_Shared
// The size of the sample buffer in bytes.
size_t shared_memory_size_;
-#if !defined(OS_NACL)
// When the callback is set, this thread is spawned for calling it.
scoped_ptr<base::DelegateSimpleThread> audio_thread_;
-#else
- uintptr_t thread_id_;
- bool thread_active_;
+ uintptr_t nacl_thread_id_;
+ bool nacl_thread_active_;
static void CallRun(void* self);
-#endif
// Callback to call when audio is ready to accept new samples.
AudioCallbackCombined callback_;
diff --git a/chromium/ppapi/shared_impl/ppb_crypto_shared.cc b/chromium/ppapi/shared_impl/ppb_crypto_shared.cc
index 02b50514c5d..f172ea7d5b5 100644
--- a/chromium/ppapi/shared_impl/ppb_crypto_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_crypto_shared.cc
@@ -19,9 +19,7 @@ void GetRandomBytes(char* buffer, uint32_t num_bytes) {
base::RandBytes(buffer, num_bytes);
}
-const PPB_Crypto_Dev crypto_interface = {
- &GetRandomBytes
-};
+const PPB_Crypto_Dev crypto_interface = {&GetRandomBytes};
} // namespace
diff --git a/chromium/ppapi/shared_impl/ppb_device_ref_shared.cc b/chromium/ppapi/shared_impl/ppb_device_ref_shared.cc
index 4f9c14c09a2..81d887831b8 100644
--- a/chromium/ppapi/shared_impl/ppb_device_ref_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_device_ref_shared.cc
@@ -4,10 +4,8 @@
#include "ppapi/shared_impl/ppb_device_ref_shared.h"
-#include "base/memory/scoped_ptr.h"
#include "ppapi/shared_impl/host_resource.h"
#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_resource_array_shared.h"
#include "ppapi/shared_impl/resource_tracker.h"
#include "ppapi/shared_impl/var.h"
@@ -15,56 +13,23 @@ using ppapi::thunk::PPB_DeviceRef_API;
namespace ppapi {
-DeviceRefData::DeviceRefData()
- : type(PP_DEVICETYPE_DEV_INVALID) {
-}
+DeviceRefData::DeviceRefData() : type(PP_DEVICETYPE_DEV_INVALID) {}
PPB_DeviceRef_Shared::PPB_DeviceRef_Shared(ResourceObjectType type,
PP_Instance instance,
const DeviceRefData& data)
- : Resource(type, instance),
- data_(data) {
-}
+ : Resource(type, instance), data_(data) {}
-PPB_DeviceRef_API* PPB_DeviceRef_Shared::AsPPB_DeviceRef_API() {
- return this;
-}
+PPB_DeviceRef_API* PPB_DeviceRef_Shared::AsPPB_DeviceRef_API() { return this; }
const DeviceRefData& PPB_DeviceRef_Shared::GetDeviceRefData() const {
return data_;
}
-PP_DeviceType_Dev PPB_DeviceRef_Shared::GetType() {
- return data_.type;
-}
+PP_DeviceType_Dev PPB_DeviceRef_Shared::GetType() { return data_.type; }
PP_Var PPB_DeviceRef_Shared::GetName() {
return StringVar::StringToPPVar(data_.name);
}
-// static
-PP_Resource PPB_DeviceRef_Shared::CreateResourceArray(
- ResourceObjectType type,
- PP_Instance instance,
- const std::vector<DeviceRefData>& devices) {
- scoped_ptr<PP_Resource[]> elements;
- size_t size = devices.size();
- if (size > 0) {
- elements.reset(new PP_Resource[size]);
- for (size_t index = 0; index < size; ++index) {
- PPB_DeviceRef_Shared* device_object =
- new PPB_DeviceRef_Shared(type, instance, devices[index]);
- elements[index] = device_object->GetReference();
- }
- }
- PPB_ResourceArray_Shared* array_object =
- new PPB_ResourceArray_Shared(type, instance, elements.get(),
- static_cast<uint32_t>(size));
-
- for (size_t index = 0; index < size; ++index)
- PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(elements[index]);
-
- return array_object->GetReference();
-}
-
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_device_ref_shared.h b/chromium/ppapi/shared_impl/ppb_device_ref_shared.h
index 9ea367ee05d..294093fe871 100644
--- a/chromium/ppapi/shared_impl/ppb_device_ref_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_device_ref_shared.h
@@ -6,7 +6,6 @@
#define PPAPI_SHARED_IMPL_PPB_DEVICE_REF_SHARED_H_
#include <string>
-#include <vector>
#include "base/basictypes.h"
#include "base/compiler_specific.h"
@@ -22,9 +21,7 @@ struct PPAPI_SHARED_EXPORT DeviceRefData {
DeviceRefData();
bool operator==(const DeviceRefData& other) const {
- return type == other.type &&
- name == other.name &&
- id == other.id;
+ return type == other.type && name == other.name && id == other.id;
}
PP_DeviceType_Dev type;
@@ -48,11 +45,6 @@ class PPAPI_SHARED_EXPORT PPB_DeviceRef_Shared
virtual PP_DeviceType_Dev GetType() OVERRIDE;
virtual PP_Var GetName() OVERRIDE;
- static PP_Resource CreateResourceArray(
- ResourceObjectType type,
- PP_Instance instance,
- const std::vector<DeviceRefData>& devices);
-
private:
DeviceRefData data_;
diff --git a/chromium/ppapi/shared_impl/ppb_gamepad_shared.cc b/chromium/ppapi/shared_impl/ppb_gamepad_shared.cc
index 41c7668ebb1..c9134014817 100644
--- a/chromium/ppapi/shared_impl/ppb_gamepad_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_gamepad_shared.cc
@@ -18,18 +18,14 @@ void ConvertWebKitGamepadData(const WebKitGamepads& webkit_data,
if (webkit_pad.connected) {
COMPILE_ASSERT(sizeof(output_pad.id) == sizeof(webkit_pad.id),
id_size_does_not_match);
- COMPILE_ASSERT(sizeof(output_pad.axes) == sizeof(webkit_pad.axes),
- axes_size_does_not_match);
- COMPILE_ASSERT(sizeof(output_pad.buttons) == sizeof(webkit_pad.buttons),
- buttons_size_does_not_match);
memcpy(output_pad.id, webkit_pad.id, sizeof(output_pad.id));
output_pad.timestamp = webkit_pad.timestamp;
output_pad.axes_length = webkit_pad.axes_length;
- memcpy(output_pad.axes, webkit_pad.axes, sizeof(output_pad.axes));
+ for (unsigned j = 0; j < webkit_pad.axes_length; ++j)
+ output_pad.axes[j] = static_cast<float>(webkit_pad.axes[j]);
output_pad.buttons_length = webkit_pad.buttons_length;
- memcpy(output_pad.buttons,
- webkit_pad.buttons,
- sizeof(output_pad.buttons));
+ for (unsigned j = 0; j < webkit_pad.buttons_length; ++j)
+ output_pad.buttons[j] = static_cast<float>(webkit_pad.buttons[j].value);
}
}
}
diff --git a/chromium/ppapi/shared_impl/ppb_gamepad_shared.h b/chromium/ppapi/shared_impl/ppb_gamepad_shared.h
index 72d53311e52..22b4df7a7be 100644
--- a/chromium/ppapi/shared_impl/ppb_gamepad_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_gamepad_shared.h
@@ -17,46 +17,55 @@ namespace ppapi {
#pragma pack(push, 1)
+struct WebKitGamepadButton {
+ bool pressed;
+ double value;
+};
+
// This must match the definition of blink::Gamepad. The GamepadHost unit test
// has some compile asserts to validate this.
struct WebKitGamepad {
- static const size_t kIdLengthCap = 128;
- static const size_t kAxesLengthCap = 16;
- static const size_t kButtonsLengthCap = 32;
+ static const size_t kIdLengthCap = 128;
+ static const size_t kMappingLengthCap = 16;
+ static const size_t kAxesLengthCap = 16;
+ static const size_t kButtonsLengthCap = 32;
+
+ // Is there a gamepad connected at this index?
+ bool connected;
- // Is there a gamepad connected at this index?
- bool connected;
+ // Device identifier (based on manufacturer, model, etc.).
+ base::char16 id[kIdLengthCap];
- // Device identifier (based on manufacturer, model, etc.).
- char16 id[kIdLengthCap];
+ // Monotonically increasing value referring to when the data were last
+ // updated.
+ unsigned long long timestamp;
- // Monotonically increasing value referring to when the data were last
- // updated.
- unsigned long long timestamp;
+ // Number of valid entries in the axes array.
+ unsigned axes_length;
- // Number of valid entries in the axes array.
- unsigned axes_length;
+ // Normalized values representing axes, in the range [-1..1].
+ double axes[kAxesLengthCap];
- // Normalized values representing axes, in the range [-1..1].
- float axes[kAxesLengthCap];
+ // Number of valid entries in the buttons array.
+ unsigned buttons_length;
- // Number of valid entries in the buttons array.
- unsigned buttons_length;
+ // Normalized values representing buttons, in the range [0..1].
+ WebKitGamepadButton buttons[kButtonsLengthCap];
- // Normalized values representing buttons, in the range [0..1].
- float buttons[kButtonsLengthCap];
+ // Mapping type (for example "standard")
+ base::char16 mapping[kMappingLengthCap];
};
// This must match the definition of blink::Gamepads. The GamepadHost unit
// test has some compile asserts to validate this.
struct WebKitGamepads {
- static const size_t kItemsLengthCap = 4;
+ static const size_t kItemsLengthCap = 4;
- // Number of valid entries in the items array.
- unsigned length;
+ // Number of valid entries in the items array.
+ unsigned length;
- // Gamepad data for N separate gamepad devices.
- WebKitGamepad items[kItemsLengthCap];
+ // Gamepad data for N separate gamepad devices.
+ WebKitGamepad items[kItemsLengthCap];
};
// This is the structure store in shared memory. It must match
diff --git a/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.cc b/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.cc
index be8ee76431c..1b3677b18c6 100644
--- a/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.cc
@@ -13,12 +13,10 @@
namespace ppapi {
PPB_Graphics3D_Shared::PPB_Graphics3D_Shared(PP_Instance instance)
- : Resource(OBJECT_IS_IMPL, instance) {
-}
+ : Resource(OBJECT_IS_IMPL, instance) {}
PPB_Graphics3D_Shared::PPB_Graphics3D_Shared(const HostResource& host_resource)
- : Resource(OBJECT_IS_PROXY, host_resource) {
-}
+ : Resource(OBJECT_IS_PROXY, host_resource) {}
PPB_Graphics3D_Shared::~PPB_Graphics3D_Shared() {
// Make sure that GLES2 implementation has already been destroyed.
@@ -58,8 +56,9 @@ int32_t PPB_Graphics3D_Shared::ResizeBuffers(int32_t width, int32_t height) {
int32_t PPB_Graphics3D_Shared::SwapBuffers(
scoped_refptr<TrackedCallback> callback) {
if (HasPendingSwap()) {
- Log(PP_LOGLEVEL_ERROR, "PPB_Graphics3D.SwapBuffers: Plugin attempted swap "
- "with previous swap still pending.");
+ Log(PP_LOGLEVEL_ERROR,
+ "PPB_Graphics3D.SwapBuffers: Plugin attempted swap "
+ "with previous swap still pending.");
// Already a pending SwapBuffers that hasn't returned yet.
return PP_ERROR_INPROGRESS;
}
@@ -119,7 +118,7 @@ bool PPB_Graphics3D_Shared::CreateGLES2Impl(
transfer_buffer_.reset(new gpu::TransferBuffer(gles2_helper_.get()));
const bool bind_creates_resources = true;
- const bool free_everything_when_invisible = false;
+ const bool lose_context_when_out_of_memory = false;
// Create the object exposing the OpenGL API.
gles2_impl_.reset(new gpu::gles2::GLES2Implementation(
@@ -127,14 +126,14 @@ bool PPB_Graphics3D_Shared::CreateGLES2Impl(
share_gles2 ? share_gles2->share_group() : NULL,
transfer_buffer_.get(),
bind_creates_resources,
- free_everything_when_invisible,
+ lose_context_when_out_of_memory,
GetGpuControl()));
if (!gles2_impl_->Initialize(
- transfer_buffer_size,
- kMinTransferBufferSize,
- std::max(kMaxTransferBufferSize, transfer_buffer_size),
- gpu::gles2::GLES2Implementation::kNoLimit)) {
+ transfer_buffer_size,
+ kMinTransferBufferSize,
+ std::max(kMaxTransferBufferSize, transfer_buffer_size),
+ gpu::gles2::GLES2Implementation::kNoLimit)) {
return false;
}
@@ -150,4 +149,3 @@ void PPB_Graphics3D_Shared::DestroyGLES2Impl() {
}
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.h b/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.h
index d576d57fa27..116a8c4e1e4 100644
--- a/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_graphics_3d_shared.h
@@ -51,9 +51,7 @@ class PPAPI_SHARED_EXPORT PPB_Graphics3D_Shared
GLenum access) OVERRIDE;
virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) OVERRIDE;
- gpu::gles2::GLES2Implementation* gles2_impl() {
- return gles2_impl_.get();
- }
+ gpu::gles2::GLES2Implementation* gles2_impl() { return gles2_impl_.get(); }
// Sends swap-buffers notification to the plugin.
void SwapBuffersACK(int32_t pp_error);
@@ -87,4 +85,3 @@ class PPAPI_SHARED_EXPORT PPB_Graphics3D_Shared
} // namespace ppapi
#endif // PPAPI_SHARED_IMPL_GRAPHICS_3D_IMPL_H_
-
diff --git a/chromium/ppapi/shared_impl/ppb_image_data_shared.cc b/chromium/ppapi/shared_impl/ppb_image_data_shared.cc
index 3900c92197a..2dfbabdb96a 100644
--- a/chromium/ppapi/shared_impl/ppb_image_data_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_image_data_shared.cc
@@ -31,7 +31,7 @@ PP_ImageDataFormat PPB_ImageData_Shared::GetNativeImageDataFormat() {
else if (SK_R32_SHIFT == 0)
return PP_IMAGEDATAFORMAT_RGBA_PREMUL;
else
- return PP_IMAGEDATAFORMAT_BGRA_PREMUL; // Default to something on failure
+ return PP_IMAGEDATAFORMAT_BGRA_PREMUL; // Default to something on failure
#endif
}
@@ -46,8 +46,7 @@ PP_Bool PPB_ImageData_Shared::IsImageDataFormatSupported(
PP_Bool PPB_ImageData_Shared::IsImageDataDescValid(
const PP_ImageDataDesc& desc) {
return PP_FromBool(IsImageDataFormatSupported(desc.format) &&
- desc.size.width > 0 &&
- desc.size.height > 0 &&
+ desc.size.width > 0 && desc.size.height > 0 &&
desc.stride > 0);
}
diff --git a/chromium/ppapi/shared_impl/ppb_input_event_shared.cc b/chromium/ppapi/shared_impl/ppb_input_event_shared.cc
index c837e5aefca..ef4e719ce35 100644
--- a/chromium/ppapi/shared_impl/ppb_input_event_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_input_event_shared.cc
@@ -4,6 +4,7 @@
#include "ppapi/shared_impl/ppb_input_event_shared.h"
+#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/var.h"
using ppapi::thunk::PPB_InputEvent_API;
@@ -23,7 +24,6 @@ InputEventData::InputEventData()
wheel_ticks(PP_MakeFloatPoint(0.0f, 0.0f)),
wheel_scroll_by_page(false),
key_code(0),
- usb_key_code(0),
code(),
character_text(),
composition_target_segment(-1),
@@ -31,18 +31,14 @@ InputEventData::InputEventData()
composition_selection_end(0),
touches(),
changed_touches(),
- target_touches() {
-}
+ target_touches() {}
-InputEventData::~InputEventData() {
-}
+InputEventData::~InputEventData() {}
PPB_InputEvent_Shared::PPB_InputEvent_Shared(ResourceObjectType type,
PP_Instance instance,
const InputEventData& data)
- : Resource(type, instance),
- data_(data) {
-}
+ : Resource(type, instance), data_(data) {}
PPB_InputEvent_API* PPB_InputEvent_Shared::AsPPB_InputEvent_API() {
return this;
@@ -52,17 +48,13 @@ const InputEventData& PPB_InputEvent_Shared::GetInputEventData() const {
return data_;
}
-PP_InputEvent_Type PPB_InputEvent_Shared::GetType() {
- return data_.event_type;
-}
+PP_InputEvent_Type PPB_InputEvent_Shared::GetType() { return data_.event_type; }
PP_TimeTicks PPB_InputEvent_Shared::GetTimeStamp() {
return data_.event_time_stamp;
}
-uint32_t PPB_InputEvent_Shared::GetModifiers() {
- return data_.event_modifiers;
-}
+uint32_t PPB_InputEvent_Shared::GetModifiers() { return data_.event_modifiers; }
PP_InputEvent_MouseButton PPB_InputEvent_Shared::GetMouseButton() {
return data_.mouse_button;
@@ -92,23 +84,12 @@ PP_Bool PPB_InputEvent_Shared::GetWheelScrollByPage() {
return PP_FromBool(data_.wheel_scroll_by_page);
}
-uint32_t PPB_InputEvent_Shared::GetKeyCode() {
- return data_.key_code;
-}
+uint32_t PPB_InputEvent_Shared::GetKeyCode() { return data_.key_code; }
PP_Var PPB_InputEvent_Shared::GetCharacterText() {
return StringVar::StringToPPVar(data_.character_text);
}
-PP_Bool PPB_InputEvent_Shared::SetUsbKeyCode(uint32_t usb_key_code) {
- data_.usb_key_code = usb_key_code;
- return PP_TRUE;
-}
-
-uint32_t PPB_InputEvent_Shared::GetUsbKeyCode() {
- return data_.usb_key_code;
-}
-
PP_Var PPB_InputEvent_Shared::GetCode() {
return StringVar::StringToPPVar(data_.code);
}
@@ -211,7 +192,21 @@ PP_TouchPoint PPB_InputEvent_Shared::GetTouchById(PP_TouchListType list,
return PP_MakeTouchPoint();
}
-//static
+PP_Bool PPB_InputEvent_Shared::TraceInputLatency(PP_Bool has_damage) {
+ ui::LatencyInfo latency = data_.latency_info;
+ if (!latency.FindLatency(ui::INPUT_EVENT_LATENCY_BEGIN_PLUGIN_COMPONENT,
+ 0, NULL))
+ return PP_FALSE;
+ if (has_damage) {
+ PpapiGlobals::Get()->AddLatencyInfo(latency, pp_instance());
+ } else {
+ latency.AddLatencyNumber(
+ ui::INPUT_EVENT_LATENCY_TERMINATED_PLUGIN_COMPONENT, 0, 0);
+ }
+ return PP_TRUE;
+}
+
+// static
PP_Resource PPB_InputEvent_Shared::CreateIMEInputEvent(
ResourceObjectType type,
PP_Instance instance,
@@ -249,7 +244,7 @@ PP_Resource PPB_InputEvent_Shared::CreateIMEInputEvent(
return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
}
-//static
+// static
PP_Resource PPB_InputEvent_Shared::CreateKeyboardInputEvent(
ResourceObjectType type,
PP_Instance instance,
@@ -257,7 +252,8 @@ PP_Resource PPB_InputEvent_Shared::CreateKeyboardInputEvent(
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
- struct PP_Var character_text) {
+ struct PP_Var character_text,
+ struct PP_Var code) {
if (event_type != PP_INPUTEVENT_TYPE_RAWKEYDOWN &&
event_type != PP_INPUTEVENT_TYPE_KEYDOWN &&
event_type != PP_INPUTEVENT_TYPE_KEYUP &&
@@ -275,11 +271,17 @@ PP_Resource PPB_InputEvent_Shared::CreateKeyboardInputEvent(
return 0;
data.character_text = text_str->value();
}
+ if (code.type == PP_VARTYPE_STRING) {
+ StringVar* code_str = StringVar::FromPPVar(code);
+ if (!code_str)
+ return 0;
+ data.code = code_str->value();
+ }
return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
}
-//static
+// static
PP_Resource PPB_InputEvent_Shared::CreateMouseInputEvent(
ResourceObjectType type,
PP_Instance instance,
@@ -309,7 +311,7 @@ PP_Resource PPB_InputEvent_Shared::CreateMouseInputEvent(
return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
}
-//static
+// static
PP_Resource PPB_InputEvent_Shared::CreateWheelInputEvent(
ResourceObjectType type,
PP_Instance instance,
diff --git a/chromium/ppapi/shared_impl/ppb_input_event_shared.h b/chromium/ppapi/shared_impl/ppb_input_event_shared.h
index 623d997ba59..ebfad8611d7 100644
--- a/chromium/ppapi/shared_impl/ppb_input_event_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_input_event_shared.h
@@ -13,6 +13,7 @@
#include "ppapi/c/ppb_input_event.h"
#include "ppapi/shared_impl/resource.h"
#include "ppapi/thunk/ppb_input_event_api.h"
+#include "ui/events/latency_info.h"
namespace ppapi {
@@ -41,7 +42,6 @@ struct PPAPI_SHARED_EXPORT InputEventData {
bool wheel_scroll_by_page;
uint32_t key_code;
- uint32_t usb_key_code;
// The key event's |code| attribute as defined in:
// http://www.w3.org/TR/uievents/
@@ -57,6 +57,8 @@ struct PPAPI_SHARED_EXPORT InputEventData {
std::vector<PP_TouchPoint> touches;
std::vector<PP_TouchPoint> changed_touches;
std::vector<PP_TouchPoint> target_touches;
+
+ ui::LatencyInfo latency_info;
};
// This simple class implements the PPB_InputEvent_API in terms of the
@@ -86,8 +88,6 @@ class PPAPI_SHARED_EXPORT PPB_InputEvent_Shared
virtual PP_Bool GetWheelScrollByPage() OVERRIDE;
virtual uint32_t GetKeyCode() OVERRIDE;
virtual PP_Var GetCharacterText() OVERRIDE;
- virtual PP_Bool SetUsbKeyCode(uint32_t usb_key_code) OVERRIDE;
- virtual uint32_t GetUsbKeyCode() OVERRIDE;
virtual PP_Var GetCode() OVERRIDE;
virtual uint32_t GetIMESegmentNumber() OVERRIDE;
virtual uint32_t GetIMESegmentOffset(uint32_t index) OVERRIDE;
@@ -100,6 +100,7 @@ class PPAPI_SHARED_EXPORT PPB_InputEvent_Shared
uint32_t index) OVERRIDE;
virtual PP_TouchPoint GetTouchById(PP_TouchListType list,
uint32_t id) OVERRIDE;
+ virtual PP_Bool TraceInputLatency(PP_Bool has_damage) OVERRIDE;
// Implementations for event creation.
static PP_Resource CreateIMEInputEvent(ResourceObjectType type,
@@ -118,7 +119,8 @@ class PPAPI_SHARED_EXPORT PPB_InputEvent_Shared
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
- struct PP_Var character_text);
+ struct PP_Var character_text,
+ struct PP_Var code);
static PP_Resource CreateMouseInputEvent(
ResourceObjectType type,
PP_Instance instance,
diff --git a/chromium/ppapi/shared_impl/ppb_instance_shared.cc b/chromium/ppapi/shared_impl/ppb_instance_shared.cc
index 18033fc4b11..49b865a47e5 100644
--- a/chromium/ppapi/shared_impl/ppb_instance_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_instance_shared.cc
@@ -21,8 +21,7 @@ namespace ppapi {
// static
const int PPB_Instance_Shared::kExtraCharsForTextInput = 100;
-PPB_Instance_Shared::~PPB_Instance_Shared() {
-}
+PPB_Instance_Shared::~PPB_Instance_Shared() {}
void PPB_Instance_Shared::Log(PP_Instance instance,
PP_LogLevel level,
@@ -48,12 +47,11 @@ int32_t PPB_Instance_Shared::ValidateRequestInputEvents(
bool is_filtering,
uint32_t event_classes) {
// See if any bits are set we don't know about.
- if (event_classes &
- ~static_cast<uint32_t>(PP_INPUTEVENT_CLASS_MOUSE |
- PP_INPUTEVENT_CLASS_KEYBOARD |
- PP_INPUTEVENT_CLASS_WHEEL |
- PP_INPUTEVENT_CLASS_TOUCH |
- PP_INPUTEVENT_CLASS_IME))
+ if (event_classes & ~static_cast<uint32_t>(PP_INPUTEVENT_CLASS_MOUSE |
+ PP_INPUTEVENT_CLASS_KEYBOARD |
+ PP_INPUTEVENT_CLASS_WHEEL |
+ PP_INPUTEVENT_CLASS_TOUCH |
+ PP_INPUTEVENT_CLASS_IME))
return PP_ERROR_NOTSUPPORTED;
// Everything else is valid.
@@ -94,8 +92,8 @@ bool PPB_Instance_Shared::ValidateSetCursorParams(PP_MouseCursor_Type type,
return false;
// Validate the hot spot location.
- if (hot_spot->x < 0 || hot_spot->x >= desc.size.width ||
- hot_spot->y < 0 || hot_spot->y >= desc.size.height)
+ if (hot_spot->x < 0 || hot_spot->x >= desc.size.width || hot_spot->y < 0 ||
+ hot_spot->y >= desc.size.height)
return false;
return true;
}
diff --git a/chromium/ppapi/shared_impl/ppb_memory_shared.cc b/chromium/ppapi/shared_impl/ppb_memory_shared.cc
index 57d52f037c4..aaf5f368126 100644
--- a/chromium/ppapi/shared_impl/ppb_memory_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_memory_shared.cc
@@ -16,18 +16,11 @@ namespace ppapi {
namespace {
-void* MemAlloc(uint32_t num_bytes) {
- return malloc(num_bytes);
-}
+void* MemAlloc(uint32_t num_bytes) { return malloc(num_bytes); }
-void MemFree(void* ptr) {
- free(ptr);
-}
+void MemFree(void* ptr) { free(ptr); }
-const PPB_Memory_Dev ppb_memory = {
- &MemAlloc,
- &MemFree
-};
+const PPB_Memory_Dev ppb_memory = {&MemAlloc, &MemFree};
} // namespace
diff --git a/chromium/ppapi/shared_impl/ppb_message_loop_shared.cc b/chromium/ppapi/shared_impl/ppb_message_loop_shared.cc
index 9c0c92d8b65..3ca72390176 100644
--- a/chromium/ppapi/shared_impl/ppb_message_loop_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_message_loop_shared.cc
@@ -7,14 +7,11 @@
namespace ppapi {
MessageLoopShared::MessageLoopShared(PP_Instance instance)
- : Resource(OBJECT_IS_PROXY, instance) {
-}
+ : Resource(OBJECT_IS_PROXY, instance) {}
MessageLoopShared::MessageLoopShared(ForMainThread)
- : Resource(Resource::Untracked()) {
-}
+ : Resource(Resource::Untracked()) {}
-MessageLoopShared::~MessageLoopShared() {
-}
+MessageLoopShared::~MessageLoopShared() {}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_opengles2_shared.cc b/chromium/ppapi/shared_impl/ppb_opengles2_shared.cc
index 5c05065dcd8..00cb2ed2f4d 100644
--- a/chromium/ppapi/shared_impl/ppb_opengles2_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_opengles2_shared.cc
@@ -1,9 +1,11 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
+// It's formatted by clang-format using chromium coding style:
+// clang-format -i -style=chromium filename
// DO NOT EDIT!
#include "ppapi/shared_impl/ppb_opengles2_shared.h"
@@ -39,8 +41,10 @@ void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) {
}
}
-void BindAttribLocation(
- PP_Resource context_id, GLuint program, GLuint index, const char* name) {
+void BindAttribLocation(PP_Resource context_id,
+ GLuint program,
+ GLuint index,
+ const char* name) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BindAttribLocation(program, index, name);
@@ -54,16 +58,18 @@ void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) {
}
}
-void BindFramebuffer(
- PP_Resource context_id, GLenum target, GLuint framebuffer) {
+void BindFramebuffer(PP_Resource context_id,
+ GLenum target,
+ GLuint framebuffer) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BindFramebuffer(target, framebuffer);
}
}
-void BindRenderbuffer(
- PP_Resource context_id, GLenum target, GLuint renderbuffer) {
+void BindRenderbuffer(PP_Resource context_id,
+ GLenum target,
+ GLuint renderbuffer) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BindRenderbuffer(target, renderbuffer);
@@ -77,9 +83,11 @@ void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) {
}
}
-void BlendColor(
- PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue,
- GLclampf alpha) {
+void BlendColor(PP_Resource context_id,
+ GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BlendColor(red, green, blue, alpha);
@@ -93,8 +101,9 @@ void BlendEquation(PP_Resource context_id, GLenum mode) {
}
}
-void BlendEquationSeparate(
- PP_Resource context_id, GLenum modeRGB, GLenum modeAlpha) {
+void BlendEquationSeparate(PP_Resource context_id,
+ GLenum modeRGB,
+ GLenum modeAlpha) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BlendEquationSeparate(modeRGB, modeAlpha);
@@ -108,27 +117,33 @@ void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) {
}
}
-void BlendFuncSeparate(
- PP_Resource context_id, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
- GLenum dstAlpha) {
+void BlendFuncSeparate(PP_Resource context_id,
+ GLenum srcRGB,
+ GLenum dstRGB,
+ GLenum srcAlpha,
+ GLenum dstAlpha) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
}
}
-void BufferData(
- PP_Resource context_id, GLenum target, GLsizeiptr size, const void* data,
- GLenum usage) {
+void BufferData(PP_Resource context_id,
+ GLenum target,
+ GLsizeiptr size,
+ const void* data,
+ GLenum usage) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BufferData(target, size, data, usage);
}
}
-void BufferSubData(
- PP_Resource context_id, GLenum target, GLintptr offset, GLsizeiptr size,
- const void* data) {
+void BufferSubData(PP_Resource context_id,
+ GLenum target,
+ GLintptr offset,
+ GLsizeiptr size,
+ const void* data) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->BufferSubData(target, offset, size, data);
@@ -151,9 +166,11 @@ void Clear(PP_Resource context_id, GLbitfield mask) {
}
}
-void ClearColor(
- PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue,
- GLclampf alpha) {
+void ClearColor(PP_Resource context_id,
+ GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->ClearColor(red, green, blue, alpha);
@@ -174,9 +191,11 @@ void ClearStencil(PP_Resource context_id, GLint s) {
}
}
-void ColorMask(
- PP_Resource context_id, GLboolean red, GLboolean green, GLboolean blue,
- GLboolean alpha) {
+void ColorMask(PP_Resource context_id,
+ GLboolean red,
+ GLboolean green,
+ GLboolean blue,
+ GLboolean alpha) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->ColorMask(red, green, blue, alpha);
@@ -190,51 +209,75 @@ void CompileShader(PP_Resource context_id, GLuint shader) {
}
}
-void CompressedTexImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLenum internalformat,
- GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
- const void* data) {
+void CompressedTexImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLsizei imageSize,
+ const void* data) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->CompressedTexImage2D(
- target, level, internalformat, width, height, border, imageSize,
- data);
+ ToGles2Impl(&enter)->CompressedTexImage2D(
+ target, level, internalformat, width, height, border, imageSize, data);
}
}
-void CompressedTexSubImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format,
- GLsizei imageSize, const void* data) {
+void CompressedTexSubImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->CompressedTexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, imageSize,
- data);
+ ToGles2Impl(&enter)->CompressedTexSubImage2D(target,
+ level,
+ xoffset,
+ yoffset,
+ width,
+ height,
+ format,
+ imageSize,
+ data);
}
}
-void CopyTexImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLenum internalformat,
- GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
+void CopyTexImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->CopyTexImage2D(
- target, level, internalformat, x, y, width, height, border);
+ ToGles2Impl(&enter)->CopyTexImage2D(
+ target, level, internalformat, x, y, width, height, border);
}
}
-void CopyTexSubImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+void CopyTexSubImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->CopyTexSubImage2D(
- target, level, xoffset, yoffset, x, y, width, height);
+ ToGles2Impl(&enter)->CopyTexSubImage2D(
+ target, level, xoffset, yoffset, x, y, width, height);
}
}
@@ -270,8 +313,9 @@ void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) {
}
}
-void DeleteFramebuffers(
- PP_Resource context_id, GLsizei n, const GLuint* framebuffers) {
+void DeleteFramebuffers(PP_Resource context_id,
+ GLsizei n,
+ const GLuint* framebuffers) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DeleteFramebuffers(n, framebuffers);
@@ -285,8 +329,9 @@ void DeleteProgram(PP_Resource context_id, GLuint program) {
}
}
-void DeleteRenderbuffers(
- PP_Resource context_id, GLsizei n, const GLuint* renderbuffers) {
+void DeleteRenderbuffers(PP_Resource context_id,
+ GLsizei n,
+ const GLuint* renderbuffers) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DeleteRenderbuffers(n, renderbuffers);
@@ -300,8 +345,7 @@ void DeleteShader(PP_Resource context_id, GLuint shader) {
}
}
-void DeleteTextures(
- PP_Resource context_id, GLsizei n, const GLuint* textures) {
+void DeleteTextures(PP_Resource context_id, GLsizei n, const GLuint* textures) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DeleteTextures(n, textures);
@@ -350,17 +394,21 @@ void DisableVertexAttribArray(PP_Resource context_id, GLuint index) {
}
}
-void DrawArrays(
- PP_Resource context_id, GLenum mode, GLint first, GLsizei count) {
+void DrawArrays(PP_Resource context_id,
+ GLenum mode,
+ GLint first,
+ GLsizei count) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DrawArrays(mode, first, count);
}
}
-void DrawElements(
- PP_Resource context_id, GLenum mode, GLsizei count, GLenum type,
- const void* indices) {
+void DrawElements(PP_Resource context_id,
+ GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DrawElements(mode, count, type, indices);
@@ -395,25 +443,28 @@ void Flush(PP_Resource context_id) {
}
}
-void FramebufferRenderbuffer(
- PP_Resource context_id, GLenum target, GLenum attachment,
- GLenum renderbuffertarget, GLuint renderbuffer) {
+void FramebufferRenderbuffer(PP_Resource context_id,
+ GLenum target,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->FramebufferRenderbuffer(
- target, attachment, renderbuffertarget, renderbuffer);
+ ToGles2Impl(&enter)->FramebufferRenderbuffer(
+ target, attachment, renderbuffertarget, renderbuffer);
}
}
-void FramebufferTexture2D(
- PP_Resource context_id, GLenum target, GLenum attachment, GLenum textarget,
- GLuint texture, GLint level) {
+void FramebufferTexture2D(PP_Resource context_id,
+ GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->FramebufferTexture2D(
- target, attachment, textarget, texture, level);
+ ToGles2Impl(&enter)
+ ->FramebufferTexture2D(target, attachment, textarget, texture, level);
}
}
@@ -445,8 +496,9 @@ void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) {
}
}
-void GenRenderbuffers(
- PP_Resource context_id, GLsizei n, GLuint* renderbuffers) {
+void GenRenderbuffers(PP_Resource context_id,
+ GLsizei n,
+ GLuint* renderbuffers) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GenRenderbuffers(n, renderbuffers);
@@ -460,39 +512,50 @@ void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) {
}
}
-void GetActiveAttrib(
- PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize,
- GLsizei* length, GLint* size, GLenum* type, char* name) {
+void GetActiveAttrib(PP_Resource context_id,
+ GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->GetActiveAttrib(
- program, index, bufsize, length, size, type, name);
+ ToGles2Impl(&enter)
+ ->GetActiveAttrib(program, index, bufsize, length, size, type, name);
}
}
-void GetActiveUniform(
- PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize,
- GLsizei* length, GLint* size, GLenum* type, char* name) {
+void GetActiveUniform(PP_Resource context_id,
+ GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->GetActiveUniform(
- program, index, bufsize, length, size, type, name);
+ ToGles2Impl(&enter)
+ ->GetActiveUniform(program, index, bufsize, length, size, type, name);
}
}
-void GetAttachedShaders(
- PP_Resource context_id, GLuint program, GLsizei maxcount, GLsizei* count,
- GLuint* shaders) {
+void GetAttachedShaders(PP_Resource context_id,
+ GLuint program,
+ GLsizei maxcount,
+ GLsizei* count,
+ GLuint* shaders) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetAttachedShaders(program, maxcount, count, shaders);
}
}
-GLint GetAttribLocation(
- PP_Resource context_id, GLuint program, const char* name) {
+GLint GetAttribLocation(PP_Resource context_id,
+ GLuint program,
+ const char* name) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
return ToGles2Impl(&enter)->GetAttribLocation(program, name);
@@ -508,8 +571,10 @@ void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) {
}
}
-void GetBufferParameteriv(
- PP_Resource context_id, GLenum target, GLenum pname, GLint* params) {
+void GetBufferParameteriv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetBufferParameteriv(target, pname, params);
@@ -532,14 +597,15 @@ void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) {
}
}
-void GetFramebufferAttachmentParameteriv(
- PP_Resource context_id, GLenum target, GLenum attachment, GLenum pname,
- GLint* params) {
+void GetFramebufferAttachmentParameteriv(PP_Resource context_id,
+ GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->GetFramebufferAttachmentParameteriv(
- target, attachment, pname, params);
+ ToGles2Impl(&enter)->GetFramebufferAttachmentParameteriv(
+ target, attachment, pname, params);
}
}
@@ -550,62 +616,75 @@ void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) {
}
}
-void GetProgramiv(
- PP_Resource context_id, GLuint program, GLenum pname, GLint* params) {
+void GetProgramiv(PP_Resource context_id,
+ GLuint program,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetProgramiv(program, pname, params);
}
}
-void GetProgramInfoLog(
- PP_Resource context_id, GLuint program, GLsizei bufsize, GLsizei* length,
- char* infolog) {
+void GetProgramInfoLog(PP_Resource context_id,
+ GLuint program,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetProgramInfoLog(program, bufsize, length, infolog);
}
}
-void GetRenderbufferParameteriv(
- PP_Resource context_id, GLenum target, GLenum pname, GLint* params) {
+void GetRenderbufferParameteriv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetRenderbufferParameteriv(target, pname, params);
}
}
-void GetShaderiv(
- PP_Resource context_id, GLuint shader, GLenum pname, GLint* params) {
+void GetShaderiv(PP_Resource context_id,
+ GLuint shader,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetShaderiv(shader, pname, params);
}
}
-void GetShaderInfoLog(
- PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length,
- char* infolog) {
+void GetShaderInfoLog(PP_Resource context_id,
+ GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetShaderInfoLog(shader, bufsize, length, infolog);
}
}
-void GetShaderPrecisionFormat(
- PP_Resource context_id, GLenum shadertype, GLenum precisiontype,
- GLint* range, GLint* precision) {
+void GetShaderPrecisionFormat(PP_Resource context_id,
+ GLenum shadertype,
+ GLenum precisiontype,
+ GLint* range,
+ GLint* precision) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->GetShaderPrecisionFormat(
- shadertype, precisiontype, range, precision);
+ ToGles2Impl(&enter)
+ ->GetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
}
}
-void GetShaderSource(
- PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length,
- char* source) {
+void GetShaderSource(PP_Resource context_id,
+ GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* source) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetShaderSource(shader, bufsize, length, source);
@@ -621,40 +700,49 @@ const GLubyte* GetString(PP_Resource context_id, GLenum name) {
}
}
-void GetTexParameterfv(
- PP_Resource context_id, GLenum target, GLenum pname, GLfloat* params) {
+void GetTexParameterfv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLfloat* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetTexParameterfv(target, pname, params);
}
}
-void GetTexParameteriv(
- PP_Resource context_id, GLenum target, GLenum pname, GLint* params) {
+void GetTexParameteriv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetTexParameteriv(target, pname, params);
}
}
-void GetUniformfv(
- PP_Resource context_id, GLuint program, GLint location, GLfloat* params) {
+void GetUniformfv(PP_Resource context_id,
+ GLuint program,
+ GLint location,
+ GLfloat* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetUniformfv(program, location, params);
}
}
-void GetUniformiv(
- PP_Resource context_id, GLuint program, GLint location, GLint* params) {
+void GetUniformiv(PP_Resource context_id,
+ GLuint program,
+ GLint location,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetUniformiv(program, location, params);
}
}
-GLint GetUniformLocation(
- PP_Resource context_id, GLuint program, const char* name) {
+GLint GetUniformLocation(PP_Resource context_id,
+ GLuint program,
+ const char* name) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
return ToGles2Impl(&enter)->GetUniformLocation(program, name);
@@ -663,24 +751,30 @@ GLint GetUniformLocation(
}
}
-void GetVertexAttribfv(
- PP_Resource context_id, GLuint index, GLenum pname, GLfloat* params) {
+void GetVertexAttribfv(PP_Resource context_id,
+ GLuint index,
+ GLenum pname,
+ GLfloat* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetVertexAttribfv(index, pname, params);
}
}
-void GetVertexAttribiv(
- PP_Resource context_id, GLuint index, GLenum pname, GLint* params) {
+void GetVertexAttribiv(PP_Resource context_id,
+ GLuint index,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetVertexAttribiv(index, pname, params);
}
}
-void GetVertexAttribPointerv(
- PP_Resource context_id, GLuint index, GLenum pname, void** pointer) {
+void GetVertexAttribPointerv(PP_Resource context_id,
+ GLuint index,
+ GLenum pname,
+ void** pointer) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetVertexAttribPointerv(index, pname, pointer);
@@ -785,9 +879,14 @@ void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) {
}
}
-void ReadPixels(
- PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height,
- GLenum format, GLenum type, void* pixels) {
+void ReadPixels(PP_Resource context_id,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ void* pixels) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->ReadPixels(x, y, width, height, format, type, pixels);
@@ -801,13 +900,15 @@ void ReleaseShaderCompiler(PP_Resource context_id) {
}
}
-void RenderbufferStorage(
- PP_Resource context_id, GLenum target, GLenum internalformat, GLsizei width,
- GLsizei height) {
+void RenderbufferStorage(PP_Resource context_id,
+ GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->RenderbufferStorage(target, internalformat, width, height);
+ ToGles2Impl(&enter)
+ ->RenderbufferStorage(target, internalformat, width, height);
}
}
@@ -818,27 +919,34 @@ void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) {
}
}
-void Scissor(
- PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) {
+void Scissor(PP_Resource context_id,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Scissor(x, y, width, height);
}
}
-void ShaderBinary(
- PP_Resource context_id, GLsizei n, const GLuint* shaders,
- GLenum binaryformat, const void* binary, GLsizei length) {
+void ShaderBinary(PP_Resource context_id,
+ GLsizei n,
+ const GLuint* shaders,
+ GLenum binaryformat,
+ const void* binary,
+ GLsizei length) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->ShaderBinary(n, shaders, binaryformat, binary, length);
+ ToGles2Impl(&enter)->ShaderBinary(n, shaders, binaryformat, binary, length);
}
}
-void ShaderSource(
- PP_Resource context_id, GLuint shader, GLsizei count, const char** str,
- const GLint* length) {
+void ShaderSource(PP_Resource context_id,
+ GLuint shader,
+ GLsizei count,
+ const char** str,
+ const GLint* length) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->ShaderSource(shader, count, str, length);
@@ -852,8 +960,11 @@ void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) {
}
}
-void StencilFuncSeparate(
- PP_Resource context_id, GLenum face, GLenum func, GLint ref, GLuint mask) {
+void StencilFuncSeparate(PP_Resource context_id,
+ GLenum face,
+ GLenum func,
+ GLint ref,
+ GLuint mask) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->StencilFuncSeparate(face, func, ref, mask);
@@ -874,79 +985,105 @@ void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) {
}
}
-void StencilOp(
- PP_Resource context_id, GLenum fail, GLenum zfail, GLenum zpass) {
+void StencilOp(PP_Resource context_id,
+ GLenum fail,
+ GLenum zfail,
+ GLenum zpass) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->StencilOp(fail, zfail, zpass);
}
}
-void StencilOpSeparate(
- PP_Resource context_id, GLenum face, GLenum fail, GLenum zfail,
- GLenum zpass) {
+void StencilOpSeparate(PP_Resource context_id,
+ GLenum face,
+ GLenum fail,
+ GLenum zfail,
+ GLenum zpass) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->StencilOpSeparate(face, fail, zfail, zpass);
}
}
-void TexImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLint internalformat,
- GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
- const void* pixels) {
+void TexImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->TexImage2D(
- target, level, internalformat, width, height, border, format, type,
- pixels);
+ ToGles2Impl(&enter)->TexImage2D(target,
+ level,
+ internalformat,
+ width,
+ height,
+ border,
+ format,
+ type,
+ pixels);
}
}
-void TexParameterf(
- PP_Resource context_id, GLenum target, GLenum pname, GLfloat param) {
+void TexParameterf(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLfloat param) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->TexParameterf(target, pname, param);
}
}
-void TexParameterfv(
- PP_Resource context_id, GLenum target, GLenum pname,
- const GLfloat* params) {
+void TexParameterfv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ const GLfloat* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->TexParameterfv(target, pname, params);
}
}
-void TexParameteri(
- PP_Resource context_id, GLenum target, GLenum pname, GLint param) {
+void TexParameteri(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLint param) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->TexParameteri(target, pname, param);
}
}
-void TexParameteriv(
- PP_Resource context_id, GLenum target, GLenum pname, const GLint* params) {
+void TexParameteriv(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ const GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->TexParameteriv(target, pname, params);
}
}
-void TexSubImage2D(
- PP_Resource context_id, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
- const void* pixels) {
+void TexSubImage2D(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->TexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, type,
- pixels);
+ ToGles2Impl(&enter)->TexSubImage2D(
+ target, level, xoffset, yoffset, width, height, format, type, pixels);
}
}
@@ -957,8 +1094,10 @@ void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) {
}
}
-void Uniform1fv(
- PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) {
+void Uniform1fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform1fv(location, count, v);
@@ -972,8 +1111,10 @@ void Uniform1i(PP_Resource context_id, GLint location, GLint x) {
}
}
-void Uniform1iv(
- PP_Resource context_id, GLint location, GLsizei count, const GLint* v) {
+void Uniform1iv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLint* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform1iv(location, count, v);
@@ -987,8 +1128,10 @@ void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) {
}
}
-void Uniform2fv(
- PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) {
+void Uniform2fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform2fv(location, count, v);
@@ -1002,101 +1145,129 @@ void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) {
}
}
-void Uniform2iv(
- PP_Resource context_id, GLint location, GLsizei count, const GLint* v) {
+void Uniform2iv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLint* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform2iv(location, count, v);
}
}
-void Uniform3f(
- PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z) {
+void Uniform3f(PP_Resource context_id,
+ GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform3f(location, x, y, z);
}
}
-void Uniform3fv(
- PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) {
+void Uniform3fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform3fv(location, count, v);
}
}
-void Uniform3i(
- PP_Resource context_id, GLint location, GLint x, GLint y, GLint z) {
+void Uniform3i(PP_Resource context_id,
+ GLint location,
+ GLint x,
+ GLint y,
+ GLint z) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform3i(location, x, y, z);
}
}
-void Uniform3iv(
- PP_Resource context_id, GLint location, GLsizei count, const GLint* v) {
+void Uniform3iv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLint* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform3iv(location, count, v);
}
}
-void Uniform4f(
- PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z,
- GLfloat w) {
+void Uniform4f(PP_Resource context_id,
+ GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform4f(location, x, y, z, w);
}
}
-void Uniform4fv(
- PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) {
+void Uniform4fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLfloat* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform4fv(location, count, v);
}
}
-void Uniform4i(
- PP_Resource context_id, GLint location, GLint x, GLint y, GLint z,
- GLint w) {
+void Uniform4i(PP_Resource context_id,
+ GLint location,
+ GLint x,
+ GLint y,
+ GLint z,
+ GLint w) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform4i(location, x, y, z, w);
}
}
-void Uniform4iv(
- PP_Resource context_id, GLint location, GLsizei count, const GLint* v) {
+void Uniform4iv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ const GLint* v) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Uniform4iv(location, count, v);
}
}
-void UniformMatrix2fv(
- PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value) {
+void UniformMatrix2fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->UniformMatrix2fv(location, count, transpose, value);
}
}
-void UniformMatrix3fv(
- PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value) {
+void UniformMatrix3fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->UniformMatrix3fv(location, count, transpose, value);
}
}
-void UniformMatrix4fv(
- PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose,
- const GLfloat* value) {
+void UniformMatrix4fv(PP_Resource context_id,
+ GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->UniformMatrix4fv(location, count, transpose, value);
@@ -1124,103 +1295,125 @@ void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) {
}
}
-void VertexAttrib1fv(
- PP_Resource context_id, GLuint indx, const GLfloat* values) {
+void VertexAttrib1fv(PP_Resource context_id,
+ GLuint indx,
+ const GLfloat* values) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib1fv(indx, values);
}
}
-void VertexAttrib2f(
- PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) {
+void VertexAttrib2f(PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib2f(indx, x, y);
}
}
-void VertexAttrib2fv(
- PP_Resource context_id, GLuint indx, const GLfloat* values) {
+void VertexAttrib2fv(PP_Resource context_id,
+ GLuint indx,
+ const GLfloat* values) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib2fv(indx, values);
}
}
-void VertexAttrib3f(
- PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
+void VertexAttrib3f(PP_Resource context_id,
+ GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib3f(indx, x, y, z);
}
}
-void VertexAttrib3fv(
- PP_Resource context_id, GLuint indx, const GLfloat* values) {
+void VertexAttrib3fv(PP_Resource context_id,
+ GLuint indx,
+ const GLfloat* values) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib3fv(indx, values);
}
}
-void VertexAttrib4f(
- PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z,
- GLfloat w) {
+void VertexAttrib4f(PP_Resource context_id,
+ GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib4f(indx, x, y, z, w);
}
}
-void VertexAttrib4fv(
- PP_Resource context_id, GLuint indx, const GLfloat* values) {
+void VertexAttrib4fv(PP_Resource context_id,
+ GLuint indx,
+ const GLfloat* values) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttrib4fv(indx, values);
}
}
-void VertexAttribPointer(
- PP_Resource context_id, GLuint indx, GLint size, GLenum type,
- GLboolean normalized, GLsizei stride, const void* ptr) {
+void VertexAttribPointer(PP_Resource context_id,
+ GLuint indx,
+ GLint size,
+ GLenum type,
+ GLboolean normalized,
+ GLsizei stride,
+ const void* ptr) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->VertexAttribPointer(
- indx, size, type, normalized, stride, ptr);
+ ToGles2Impl(&enter)
+ ->VertexAttribPointer(indx, size, type, normalized, stride, ptr);
}
}
-void Viewport(
- PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) {
+void Viewport(PP_Resource context_id,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->Viewport(x, y, width, height);
}
}
-void BlitFramebufferEXT(
- PP_Resource context_id, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
- GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
- GLenum filter) {
+void BlitFramebufferEXT(PP_Resource context_id,
+ GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->BlitFramebufferCHROMIUM(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask,
- filter);
+ ToGles2Impl(&enter)->BlitFramebufferCHROMIUM(
+ srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}
}
-void RenderbufferStorageMultisampleEXT(
- PP_Resource context_id, GLenum target, GLsizei samples,
- GLenum internalformat, GLsizei width, GLsizei height) {
+void RenderbufferStorageMultisampleEXT(PP_Resource context_id,
+ GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->RenderbufferStorageMultisampleCHROMIUM(
- target, samples, internalformat, width, height);
+ ToGles2Impl(&enter)->RenderbufferStorageMultisampleCHROMIUM(
+ target, samples, internalformat, width, height);
}
}
@@ -1231,8 +1424,9 @@ void GenQueriesEXT(PP_Resource context_id, GLsizei n, GLuint* queries) {
}
}
-void DeleteQueriesEXT(
- PP_Resource context_id, GLsizei n, const GLuint* queries) {
+void DeleteQueriesEXT(PP_Resource context_id,
+ GLsizei n,
+ const GLuint* queries) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->DeleteQueriesEXT(n, queries);
@@ -1262,16 +1456,20 @@ void EndQueryEXT(PP_Resource context_id, GLenum target) {
}
}
-void GetQueryivEXT(
- PP_Resource context_id, GLenum target, GLenum pname, GLint* params) {
+void GetQueryivEXT(PP_Resource context_id,
+ GLenum target,
+ GLenum pname,
+ GLint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetQueryivEXT(target, pname, params);
}
}
-void GetQueryObjectuivEXT(
- PP_Resource context_id, GLuint id, GLenum pname, GLuint* params) {
+void GetQueryObjectuivEXT(PP_Resource context_id,
+ GLuint id,
+ GLenum pname,
+ GLuint* params) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->GetQueryObjectuivEXT(id, pname, params);
@@ -1287,13 +1485,15 @@ GLboolean EnableFeatureCHROMIUM(PP_Resource context_id, const char* feature) {
}
}
-void* MapBufferSubDataCHROMIUM(
- PP_Resource context_id, GLuint target, GLintptr offset, GLsizeiptr size,
- GLenum access) {
+void* MapBufferSubDataCHROMIUM(PP_Resource context_id,
+ GLuint target,
+ GLintptr offset,
+ GLsizeiptr size,
+ GLenum access) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- return ToGles2Impl(
- &enter)->MapBufferSubDataCHROMIUM(target, offset, size, access);
+ return ToGles2Impl(&enter)
+ ->MapBufferSubDataCHROMIUM(target, offset, size, access);
} else {
return NULL;
}
@@ -1306,16 +1506,20 @@ void UnmapBufferSubDataCHROMIUM(PP_Resource context_id, const void* mem) {
}
}
-void* MapTexSubImage2DCHROMIUM(
- PP_Resource context_id, GLenum target, GLint level, GLint xoffset,
- GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
- GLenum access) {
+void* MapTexSubImage2DCHROMIUM(PP_Resource context_id,
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLenum access) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- return ToGles2Impl(
- &enter)->MapTexSubImage2DCHROMIUM(
- target, level, xoffset, yoffset, width, height, format, type,
- access);
+ return ToGles2Impl(&enter)->MapTexSubImage2DCHROMIUM(
+ target, level, xoffset, yoffset, width, height, format, type, access);
} else {
return NULL;
}
@@ -1328,228 +1532,165 @@ void UnmapTexSubImage2DCHROMIUM(PP_Resource context_id, const void* mem) {
}
}
-void DrawArraysInstancedANGLE(
- PP_Resource context_id, GLenum mode, GLint first, GLsizei count,
- GLsizei primcount) {
+void DrawArraysInstancedANGLE(PP_Resource context_id,
+ GLenum mode,
+ GLint first,
+ GLsizei count,
+ GLsizei primcount) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->DrawArraysInstancedANGLE(mode, first, count, primcount);
+ ToGles2Impl(&enter)
+ ->DrawArraysInstancedANGLE(mode, first, count, primcount);
}
}
-void DrawElementsInstancedANGLE(
- PP_Resource context_id, GLenum mode, GLsizei count, GLenum type,
- const void* indices, GLsizei primcount) {
+void DrawElementsInstancedANGLE(PP_Resource context_id,
+ GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
- ToGles2Impl(
- &enter)->DrawElementsInstancedANGLE(
- mode, count, type, indices, primcount);
+ ToGles2Impl(&enter)
+ ->DrawElementsInstancedANGLE(mode, count, type, indices, primcount);
}
}
-void VertexAttribDivisorANGLE(
- PP_Resource context_id, GLuint index, GLuint divisor) {
+void VertexAttribDivisorANGLE(PP_Resource context_id,
+ GLuint index,
+ GLuint divisor) {
Enter3D enter(context_id, true);
if (enter.succeeded()) {
ToGles2Impl(&enter)->VertexAttribDivisorANGLE(index, divisor);
}
}
+void DrawBuffersEXT(PP_Resource context_id, GLsizei count, const GLenum* bufs) {
+ Enter3D enter(context_id, true);
+ if (enter.succeeded()) {
+ ToGles2Impl(&enter)->DrawBuffersEXT(count, bufs);
+ }
+}
+
} // namespace
const PPB_OpenGLES2* PPB_OpenGLES2_Shared::GetInterface() {
static const struct PPB_OpenGLES2 ppb_opengles2 = {
- &ActiveTexture,
- &AttachShader,
- &BindAttribLocation,
- &BindBuffer,
- &BindFramebuffer,
- &BindRenderbuffer,
- &BindTexture,
- &BlendColor,
- &BlendEquation,
- &BlendEquationSeparate,
- &BlendFunc,
- &BlendFuncSeparate,
- &BufferData,
- &BufferSubData,
- &CheckFramebufferStatus,
- &Clear,
- &ClearColor,
- &ClearDepthf,
- &ClearStencil,
- &ColorMask,
- &CompileShader,
- &CompressedTexImage2D,
- &CompressedTexSubImage2D,
- &CopyTexImage2D,
- &CopyTexSubImage2D,
- &CreateProgram,
- &CreateShader,
- &CullFace,
- &DeleteBuffers,
- &DeleteFramebuffers,
- &DeleteProgram,
- &DeleteRenderbuffers,
- &DeleteShader,
- &DeleteTextures,
- &DepthFunc,
- &DepthMask,
- &DepthRangef,
- &DetachShader,
- &Disable,
- &DisableVertexAttribArray,
- &DrawArrays,
- &DrawElements,
- &Enable,
- &EnableVertexAttribArray,
- &Finish,
- &Flush,
- &FramebufferRenderbuffer,
- &FramebufferTexture2D,
- &FrontFace,
- &GenBuffers,
- &GenerateMipmap,
- &GenFramebuffers,
- &GenRenderbuffers,
- &GenTextures,
- &GetActiveAttrib,
- &GetActiveUniform,
- &GetAttachedShaders,
- &GetAttribLocation,
- &GetBooleanv,
- &GetBufferParameteriv,
- &GetError,
- &GetFloatv,
- &GetFramebufferAttachmentParameteriv,
- &GetIntegerv,
- &GetProgramiv,
- &GetProgramInfoLog,
- &GetRenderbufferParameteriv,
- &GetShaderiv,
- &GetShaderInfoLog,
- &GetShaderPrecisionFormat,
- &GetShaderSource,
- &GetString,
- &GetTexParameterfv,
- &GetTexParameteriv,
- &GetUniformfv,
- &GetUniformiv,
- &GetUniformLocation,
- &GetVertexAttribfv,
- &GetVertexAttribiv,
- &GetVertexAttribPointerv,
- &Hint,
- &IsBuffer,
- &IsEnabled,
- &IsFramebuffer,
- &IsProgram,
- &IsRenderbuffer,
- &IsShader,
- &IsTexture,
- &LineWidth,
- &LinkProgram,
- &PixelStorei,
- &PolygonOffset,
- &ReadPixels,
- &ReleaseShaderCompiler,
- &RenderbufferStorage,
- &SampleCoverage,
- &Scissor,
- &ShaderBinary,
- &ShaderSource,
- &StencilFunc,
- &StencilFuncSeparate,
- &StencilMask,
- &StencilMaskSeparate,
- &StencilOp,
- &StencilOpSeparate,
- &TexImage2D,
- &TexParameterf,
- &TexParameterfv,
- &TexParameteri,
- &TexParameteriv,
- &TexSubImage2D,
- &Uniform1f,
- &Uniform1fv,
- &Uniform1i,
- &Uniform1iv,
- &Uniform2f,
- &Uniform2fv,
- &Uniform2i,
- &Uniform2iv,
- &Uniform3f,
- &Uniform3fv,
- &Uniform3i,
- &Uniform3iv,
- &Uniform4f,
- &Uniform4fv,
- &Uniform4i,
- &Uniform4iv,
- &UniformMatrix2fv,
- &UniformMatrix3fv,
- &UniformMatrix4fv,
- &UseProgram,
- &ValidateProgram,
- &VertexAttrib1f,
- &VertexAttrib1fv,
- &VertexAttrib2f,
- &VertexAttrib2fv,
- &VertexAttrib3f,
- &VertexAttrib3fv,
- &VertexAttrib4f,
- &VertexAttrib4fv,
- &VertexAttribPointer,
- &Viewport
- };
+ &ActiveTexture, &AttachShader,
+ &BindAttribLocation, &BindBuffer,
+ &BindFramebuffer, &BindRenderbuffer,
+ &BindTexture, &BlendColor,
+ &BlendEquation, &BlendEquationSeparate,
+ &BlendFunc, &BlendFuncSeparate,
+ &BufferData, &BufferSubData,
+ &CheckFramebufferStatus, &Clear,
+ &ClearColor, &ClearDepthf,
+ &ClearStencil, &ColorMask,
+ &CompileShader, &CompressedTexImage2D,
+ &CompressedTexSubImage2D, &CopyTexImage2D,
+ &CopyTexSubImage2D, &CreateProgram,
+ &CreateShader, &CullFace,
+ &DeleteBuffers, &DeleteFramebuffers,
+ &DeleteProgram, &DeleteRenderbuffers,
+ &DeleteShader, &DeleteTextures,
+ &DepthFunc, &DepthMask,
+ &DepthRangef, &DetachShader,
+ &Disable, &DisableVertexAttribArray,
+ &DrawArrays, &DrawElements,
+ &Enable, &EnableVertexAttribArray,
+ &Finish, &Flush,
+ &FramebufferRenderbuffer, &FramebufferTexture2D,
+ &FrontFace, &GenBuffers,
+ &GenerateMipmap, &GenFramebuffers,
+ &GenRenderbuffers, &GenTextures,
+ &GetActiveAttrib, &GetActiveUniform,
+ &GetAttachedShaders, &GetAttribLocation,
+ &GetBooleanv, &GetBufferParameteriv,
+ &GetError, &GetFloatv,
+ &GetFramebufferAttachmentParameteriv, &GetIntegerv,
+ &GetProgramiv, &GetProgramInfoLog,
+ &GetRenderbufferParameteriv, &GetShaderiv,
+ &GetShaderInfoLog, &GetShaderPrecisionFormat,
+ &GetShaderSource, &GetString,
+ &GetTexParameterfv, &GetTexParameteriv,
+ &GetUniformfv, &GetUniformiv,
+ &GetUniformLocation, &GetVertexAttribfv,
+ &GetVertexAttribiv, &GetVertexAttribPointerv,
+ &Hint, &IsBuffer,
+ &IsEnabled, &IsFramebuffer,
+ &IsProgram, &IsRenderbuffer,
+ &IsShader, &IsTexture,
+ &LineWidth, &LinkProgram,
+ &PixelStorei, &PolygonOffset,
+ &ReadPixels, &ReleaseShaderCompiler,
+ &RenderbufferStorage, &SampleCoverage,
+ &Scissor, &ShaderBinary,
+ &ShaderSource, &StencilFunc,
+ &StencilFuncSeparate, &StencilMask,
+ &StencilMaskSeparate, &StencilOp,
+ &StencilOpSeparate, &TexImage2D,
+ &TexParameterf, &TexParameterfv,
+ &TexParameteri, &TexParameteriv,
+ &TexSubImage2D, &Uniform1f,
+ &Uniform1fv, &Uniform1i,
+ &Uniform1iv, &Uniform2f,
+ &Uniform2fv, &Uniform2i,
+ &Uniform2iv, &Uniform3f,
+ &Uniform3fv, &Uniform3i,
+ &Uniform3iv, &Uniform4f,
+ &Uniform4fv, &Uniform4i,
+ &Uniform4iv, &UniformMatrix2fv,
+ &UniformMatrix3fv, &UniformMatrix4fv,
+ &UseProgram, &ValidateProgram,
+ &VertexAttrib1f, &VertexAttrib1fv,
+ &VertexAttrib2f, &VertexAttrib2fv,
+ &VertexAttrib3f, &VertexAttrib3fv,
+ &VertexAttrib4f, &VertexAttrib4fv,
+ &VertexAttribPointer, &Viewport};
return &ppb_opengles2;
}
-const PPB_OpenGLES2InstancedArrays* PPB_OpenGLES2_Shared::GetInstancedArraysInterface() { // NOLINT
+const PPB_OpenGLES2InstancedArrays*
+PPB_OpenGLES2_Shared::GetInstancedArraysInterface() {
static const struct PPB_OpenGLES2InstancedArrays ppb_opengles2 = {
- &DrawArraysInstancedANGLE,
- &DrawElementsInstancedANGLE,
- &VertexAttribDivisorANGLE
- };
+ &DrawArraysInstancedANGLE, &DrawElementsInstancedANGLE,
+ &VertexAttribDivisorANGLE};
return &ppb_opengles2;
}
-const PPB_OpenGLES2FramebufferBlit* PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() { // NOLINT
+const PPB_OpenGLES2FramebufferBlit*
+PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() {
static const struct PPB_OpenGLES2FramebufferBlit ppb_opengles2 = {
- &BlitFramebufferEXT
- };
+ &BlitFramebufferEXT};
return &ppb_opengles2;
}
-const PPB_OpenGLES2FramebufferMultisample* PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() { // NOLINT
+const PPB_OpenGLES2FramebufferMultisample*
+PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() {
static const struct PPB_OpenGLES2FramebufferMultisample ppb_opengles2 = {
- &RenderbufferStorageMultisampleEXT
- };
+ &RenderbufferStorageMultisampleEXT};
return &ppb_opengles2;
}
-const PPB_OpenGLES2ChromiumEnableFeature* PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() { // NOLINT
+const PPB_OpenGLES2ChromiumEnableFeature*
+PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() {
static const struct PPB_OpenGLES2ChromiumEnableFeature ppb_opengles2 = {
- &EnableFeatureCHROMIUM
- };
+ &EnableFeatureCHROMIUM};
return &ppb_opengles2;
}
-const PPB_OpenGLES2ChromiumMapSub* PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() { // NOLINT
+const PPB_OpenGLES2ChromiumMapSub*
+PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() {
static const struct PPB_OpenGLES2ChromiumMapSub ppb_opengles2 = {
- &MapBufferSubDataCHROMIUM,
- &UnmapBufferSubDataCHROMIUM,
- &MapTexSubImage2DCHROMIUM,
- &UnmapTexSubImage2DCHROMIUM
- };
+ &MapBufferSubDataCHROMIUM, &UnmapBufferSubDataCHROMIUM,
+ &MapTexSubImage2DCHROMIUM, &UnmapTexSubImage2DCHROMIUM};
return &ppb_opengles2;
}
const PPB_OpenGLES2Query* PPB_OpenGLES2_Shared::GetQueryInterface() {
static const struct PPB_OpenGLES2Query ppb_opengles2 = {
- &GenQueriesEXT,
- &DeleteQueriesEXT,
- &IsQueryEXT,
- &BeginQueryEXT,
- &EndQueryEXT,
- &GetQueryivEXT,
- &GetQueryObjectuivEXT
- };
+ &GenQueriesEXT, &DeleteQueriesEXT, &IsQueryEXT, &BeginQueryEXT,
+ &EndQueryEXT, &GetQueryivEXT, &GetQueryObjectuivEXT};
+ return &ppb_opengles2;
+}
+const PPB_OpenGLES2DrawBuffers_Dev*
+PPB_OpenGLES2_Shared::GetDrawBuffersInterface() {
+ static const struct PPB_OpenGLES2DrawBuffers_Dev ppb_opengles2 = {
+ &DrawBuffersEXT};
return &ppb_opengles2;
}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_opengles2_shared.h b/chromium/ppapi/shared_impl/ppb_opengles2_shared.h
index 8e25dfa5081..63a272dd925 100644
--- a/chromium/ppapi/shared_impl/ppb_opengles2_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_opengles2_shared.h
@@ -22,9 +22,9 @@ class PPAPI_SHARED_EXPORT PPB_OpenGLES2_Shared {
GetChromiumEnableFeatureInterface();
static const PPB_OpenGLES2ChromiumMapSub* GetChromiumMapSubInterface();
static const PPB_OpenGLES2Query* GetQueryInterface();
+ static const PPB_OpenGLES2DrawBuffers_Dev* GetDrawBuffersInterface();
};
} // namespace ppapi
#endif // PPAPI_SHARED_IMPL_PPB_OPENGLES2_SHARED_H_
-
diff --git a/chromium/ppapi/shared_impl/ppb_resource_array_shared.cc b/chromium/ppapi/shared_impl/ppb_resource_array_shared.cc
deleted file mode 100644
index f7353f11662..00000000000
--- a/chromium/ppapi/shared_impl/ppb_resource_array_shared.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/shared_impl/ppb_resource_array_shared.h"
-
-#include "base/logging.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-using ppapi::thunk::PPB_ResourceArray_API;
-
-namespace ppapi {
-
-PPB_ResourceArray_Shared::PPB_ResourceArray_Shared(ResourceObjectType type,
- PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size)
- : Resource(type, instance) {
- DCHECK(resources_.empty());
-
- resources_.reserve(size);
- for (uint32_t index = 0; index < size; ++index) {
- PP_Resource element = elements[index];
- if (element)
- PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(element);
- resources_.push_back(element);
- }
-}
-
-PPB_ResourceArray_Shared::~PPB_ResourceArray_Shared() {
- for (std::vector<PP_Resource>::iterator iter = resources_.begin();
- iter != resources_.end(); ++iter) {
- if (*iter)
- PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(*iter);
- }
-}
-
-PPB_ResourceArray_API* PPB_ResourceArray_Shared::AsPPB_ResourceArray_API() {
- return this;
-}
-
-uint32_t PPB_ResourceArray_Shared::GetSize() {
- return static_cast<uint32_t>(resources_.size());
-}
-
-PP_Resource PPB_ResourceArray_Shared::GetAt(uint32_t index) {
- return index < resources_.size() ? resources_[index] : 0;
-}
-
-} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_resource_array_shared.h b/chromium/ppapi/shared_impl/ppb_resource_array_shared.h
deleted file mode 100644
index e3d6750d131..00000000000
--- a/chromium/ppapi/shared_impl/ppb_resource_array_shared.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_
-
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_resource_array_api.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT PPB_ResourceArray_Shared
- : public Resource,
- public thunk::PPB_ResourceArray_API {
- public:
- PPB_ResourceArray_Shared(ResourceObjectType type,
- PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size);
- virtual ~PPB_ResourceArray_Shared();
-
- // Resource overrides.
- virtual PPB_ResourceArray_API* AsPPB_ResourceArray_API() OVERRIDE;
-
- // PPB_ResourceArray_API implementation.
- virtual uint32_t GetSize() OVERRIDE;
- virtual PP_Resource GetAt(uint32_t index) OVERRIDE;
-
- private:
- std::vector<PP_Resource> resources_;
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(PPB_ResourceArray_Shared);
-};
-
-} // namespace ppapi
-
-#endif // PPAPI_SHARED_IMPL_PPB_RESOURCE_ARRAY_SHARED_H_
diff --git a/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.cc b/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.cc
index 934c573d16d..94fb45ea381 100644
--- a/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.cc
@@ -9,13 +9,11 @@
namespace ppapi {
TCPSocketState::TCPSocketState(StateType state)
- : state_(state),
- pending_transition_(NONE) {
+ : state_(state), pending_transition_(NONE) {
DCHECK(state_ == INITIAL || state_ == CONNECTED);
}
-TCPSocketState::~TCPSocketState() {
-}
+TCPSocketState::~TCPSocketState() {}
void TCPSocketState::SetPendingTransition(TransitionType pending_transition) {
DCHECK(IsValidTransition(pending_transition));
diff --git a/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.h b/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.h
index c723bdc6e18..82286702bb3 100644
--- a/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_tcp_socket_shared.h
@@ -29,14 +29,7 @@ class PPAPI_SHARED_EXPORT TCPSocketState {
// Transitions that will change the socket state. Please note that
// read/write/accept are not included because they don't change the socket
// state.
- enum TransitionType {
- NONE,
- BIND,
- CONNECT,
- SSL_CONNECT,
- LISTEN,
- CLOSE
- };
+ enum TransitionType { NONE, BIND, CONNECT, SSL_CONNECT, LISTEN, CLOSE };
explicit TCPSocketState(StateType state);
~TCPSocketState();
diff --git a/chromium/ppapi/shared_impl/ppb_trace_event_impl.cc b/chromium/ppapi/shared_impl/ppb_trace_event_impl.cc
index 80037d693c4..ce1afb94b51 100644
--- a/chromium/ppapi/shared_impl/ppb_trace_event_impl.cc
+++ b/chromium/ppapi/shared_impl/ppb_trace_event_impl.cc
@@ -9,7 +9,6 @@
#include "base/threading/platform_thread.h"
#include "ppapi/thunk/thunk.h"
-
namespace ppapi {
// PPB_Trace_Event_Dev is a shared implementation because Trace Events can be
@@ -30,27 +29,33 @@ void* TraceEventImpl::GetCategoryEnabled(const char* category_name) {
}
// static
-void TraceEventImpl::AddTraceEvent(
- int8_t phase,
- const void* category_enabled,
- const char* name,
- uint64_t id,
- uint32_t num_args,
- const char* arg_names[],
- const uint8_t arg_types[],
- const uint64_t arg_values[],
- uint8_t flags) {
+void TraceEventImpl::AddTraceEvent(int8_t phase,
+ const void* category_enabled,
+ const char* name,
+ uint64_t id,
+ uint32_t num_args,
+ const char* arg_names[],
+ const uint8_t arg_types[],
+ const uint64_t arg_values[],
+ uint8_t flags) {
COMPILE_ASSERT(sizeof(unsigned long long) == sizeof(uint64_t), msg);
- base::debug::TraceLog::GetInstance()->AddTraceEvent(phase,
- static_cast<const unsigned char*>(category_enabled), name, id, num_args,
- arg_names, arg_types,
+ base::debug::TraceLog::GetInstance()->AddTraceEvent(
+ phase,
+ static_cast<const unsigned char*>(category_enabled),
+ name,
+ id,
+ num_args,
+ arg_names,
+ arg_types,
// This cast is necessary for LP64 systems, where uint64_t is defined as
// an unsigned long int, but trace_event internals are hermetic and
// accepts an |unsigned long long*|. The pointer types are compatible but
// the compiler throws an error without an explicit cast.
- reinterpret_cast<const unsigned long long*>(arg_values), NULL, flags);
+ reinterpret_cast<const unsigned long long*>(arg_values),
+ NULL,
+ flags);
}
// static
@@ -68,15 +73,21 @@ void TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp(
uint8_t flags) {
base::debug::TraceLog::GetInstance()->AddTraceEventWithThreadIdAndTimestamp(
phase,
- static_cast<const unsigned char*>(category_enabled), name, id,
+ static_cast<const unsigned char*>(category_enabled),
+ name,
+ id,
thread_id,
base::TimeTicks::FromInternalValue(timestamp),
- num_args, arg_names, arg_types,
+ num_args,
+ arg_names,
+ arg_types,
// This cast is necessary for LP64 systems, where uint64_t is defined as
// an unsigned long int, but trace_event internals are hermetic and
// accepts an |unsigned long long*|. The pointer types are compatible but
// the compiler throws an error without an explicit cast.
- reinterpret_cast<const unsigned long long*>(arg_values), NULL, flags);
+ reinterpret_cast<const unsigned long long*>(arg_values),
+ NULL,
+ flags);
}
// static
@@ -92,18 +103,15 @@ void TraceEventImpl::SetThreadName(const char* thread_name) {
namespace {
const PPB_Trace_Event_Dev_0_1 g_ppb_trace_event_thunk_0_1 = {
- &TraceEventImpl::GetCategoryEnabled,
- &TraceEventImpl::AddTraceEvent,
- &TraceEventImpl::SetThreadName,
-};
+ &TraceEventImpl::GetCategoryEnabled, &TraceEventImpl::AddTraceEvent,
+ &TraceEventImpl::SetThreadName, };
const PPB_Trace_Event_Dev_0_2 g_ppb_trace_event_thunk_0_2 = {
- &TraceEventImpl::GetCategoryEnabled,
- &TraceEventImpl::AddTraceEvent,
- &TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp,
- &TraceEventImpl::Now,
- &TraceEventImpl::SetThreadName,
-};
+ &TraceEventImpl::GetCategoryEnabled,
+ &TraceEventImpl::AddTraceEvent,
+ &TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp,
+ &TraceEventImpl::Now,
+ &TraceEventImpl::SetThreadName, };
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_trace_event_impl.h b/chromium/ppapi/shared_impl/ppb_trace_event_impl.h
index 6df7cc8c15b..b7a5eb43f40 100644
--- a/chromium/ppapi/shared_impl/ppb_trace_event_impl.h
+++ b/chromium/ppapi/shared_impl/ppb_trace_event_impl.h
@@ -18,16 +18,15 @@ namespace ppapi {
class PPAPI_SHARED_EXPORT TraceEventImpl {
public:
static void* GetCategoryEnabled(const char* category_name);
- static void AddTraceEvent(
- int8_t phase,
- const void* category_enabled,
- const char* name,
- uint64_t id,
- uint32_t num_args,
- const char* arg_names[],
- const uint8_t arg_types[],
- const uint64_t arg_values[],
- uint8_t flags);
+ static void AddTraceEvent(int8_t phase,
+ const void* category_enabled,
+ const char* name,
+ uint64_t id,
+ uint32_t num_args,
+ const char* arg_names[],
+ const uint8_t arg_types[],
+ const uint64_t arg_values[],
+ uint8_t flags);
static void AddTraceEventWithThreadIdAndTimestamp(
int8_t phase,
const void* category_enabled,
diff --git a/chromium/ppapi/shared_impl/ppb_url_util_shared.cc b/chromium/ppapi/shared_impl/ppb_url_util_shared.cc
index b328059aaa9..0e90f2f2ad5 100644
--- a/chromium/ppapi/shared_impl/ppb_url_util_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_url_util_shared.cc
@@ -14,7 +14,7 @@ namespace ppapi {
namespace {
-void ConvertComponent(const url_parse::Component& input,
+void ConvertComponent(const url::Component& input,
PP_URLComponent_Dev* output) {
output->begin = input.begin;
output->len = input.len;
@@ -26,8 +26,7 @@ void ConvertComponent(const url_parse::Component& input,
//
// Output can be NULL to specify "do nothing." This rule is followed by all the
// url util functions, so we implement it once here.
-void ConvertComponents(const url_parse::Parsed& input,
- PP_URLComponents_Dev* output) {
+void ConvertComponents(const url::Parsed& input, PP_URLComponents_Dev* output) {
if (!output)
return;
diff --git a/chromium/ppapi/shared_impl/ppb_url_util_shared.h b/chromium/ppapi/shared_impl/ppb_url_util_shared.h
index d45557d4cb8..3627ac42646 100644
--- a/chromium/ppapi/shared_impl/ppb_url_util_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_url_util_shared.h
@@ -22,8 +22,7 @@ namespace ppapi {
class PPAPI_SHARED_EXPORT PPB_URLUtil_Shared {
public:
// PPB_URLUtil shared functions.
- static PP_Var Canonicalize(PP_Var url,
- PP_URLComponents_Dev* components);
+ static PP_Var Canonicalize(PP_Var url, PP_URLComponents_Dev* components);
static PP_Var ResolveRelativeToURL(PP_Var base_url,
PP_Var relative,
PP_URLComponents_Dev* components);
diff --git a/chromium/ppapi/shared_impl/ppb_var_shared.cc b/chromium/ppapi/shared_impl/ppb_var_shared.cc
index 702a89a6848..d256fc16c14 100644
--- a/chromium/ppapi/shared_impl/ppb_var_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_var_shared.cc
@@ -11,6 +11,8 @@
#include "ppapi/c/pp_var.h"
#include "ppapi/shared_impl/ppapi_globals.h"
#include "ppapi/shared_impl/proxy_lock.h"
+#include "ppapi/shared_impl/resource_tracker.h"
+#include "ppapi/shared_impl/resource_var.h"
#include "ppapi/shared_impl/var.h"
#include "ppapi/shared_impl/var_tracker.h"
@@ -20,7 +22,6 @@ using ppapi::StringVar;
namespace ppapi {
namespace {
-
// PPB_Var methods -------------------------------------------------------------
void AddRefVar(PP_Var var) {
@@ -53,20 +54,29 @@ const char* VarToUtf8(PP_Var var, uint32_t* len) {
return NULL;
}
-const PPB_Var var_interface = {
- &AddRefVar,
- &ReleaseVar,
- &VarFromUtf8,
- &VarToUtf8
-};
+PP_Resource VarToResource(PP_Var var) {
+ ProxyAutoLock lock;
+ ResourceVar* resource = ResourceVar::FromPPVar(var);
+ if (!resource)
+ return 0;
+ PP_Resource pp_resource = resource->GetPPResource();
+ PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource);
+ return pp_resource;
+}
+
+PP_Var VarFromResource(PP_Resource resource) {
+ ProxyAutoLock lock;
+ return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(resource);
+}
+
+const PPB_Var var_interface = {&AddRefVar, &ReleaseVar, &VarFromUtf8,
+ &VarToUtf8, &VarToResource, &VarFromResource};
-const PPB_Var_1_0 var_interface1_0 = {
- &AddRefVar,
- &ReleaseVar,
- &VarFromUtf8_1_0,
- &VarToUtf8
-};
+const PPB_Var_1_1 var_interface1_1 = {&AddRefVar, &ReleaseVar,
+ &VarFromUtf8, &VarToUtf8};
+const PPB_Var_1_0 var_interface1_0 = {&AddRefVar, &ReleaseVar,
+ &VarFromUtf8_1_0, &VarToUtf8};
// PPB_VarArrayBuffer methods --------------------------------------------------
@@ -101,20 +111,21 @@ void Unmap(PP_Var array) {
}
const PPB_VarArrayBuffer_1_0 var_arraybuffer_interface = {
- &CreateArrayBufferVar,
- &ByteLength,
- &Map,
- &Unmap
-};
+ &CreateArrayBufferVar, &ByteLength, &Map, &Unmap};
} // namespace
// static
-const PPB_Var_1_1* PPB_Var_Shared::GetVarInterface1_1() {
+const PPB_Var_1_2* PPB_Var_Shared::GetVarInterface1_2() {
return &var_interface;
}
// static
+const PPB_Var_1_1* PPB_Var_Shared::GetVarInterface1_1() {
+ return &var_interface1_1;
+}
+
+// static
const PPB_Var_1_0* PPB_Var_Shared::GetVarInterface1_0() {
return &var_interface1_0;
}
diff --git a/chromium/ppapi/shared_impl/ppb_var_shared.h b/chromium/ppapi/shared_impl/ppb_var_shared.h
index 88078ba5adc..b1076e0456f 100644
--- a/chromium/ppapi/shared_impl/ppb_var_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_var_shared.h
@@ -17,6 +17,7 @@ namespace ppapi {
class PPAPI_SHARED_EXPORT PPB_Var_Shared {
public:
+ static const PPB_Var_1_2* GetVarInterface1_2();
static const PPB_Var_1_1* GetVarInterface1_1();
static const PPB_Var_1_0* GetVarInterface1_0();
static const PPB_VarArrayBuffer_1_0* GetVarArrayBufferInterface1_0();
diff --git a/chromium/ppapi/shared_impl/ppb_video_decoder_shared.cc b/chromium/ppapi/shared_impl/ppb_video_decoder_shared.cc
index 8b75cc7c89a..88c9ca2a4f2 100644
--- a/chromium/ppapi/shared_impl/ppb_video_decoder_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_video_decoder_shared.cc
@@ -16,22 +16,21 @@ namespace ppapi {
PPB_VideoDecoder_Shared::PPB_VideoDecoder_Shared(PP_Instance instance)
: Resource(OBJECT_IS_IMPL, instance),
graphics_context_(0),
- gles2_impl_(NULL) {
-}
+ gles2_impl_(NULL) {}
PPB_VideoDecoder_Shared::PPB_VideoDecoder_Shared(
const HostResource& host_resource)
: Resource(OBJECT_IS_PROXY, host_resource),
graphics_context_(0),
- gles2_impl_(NULL) {
-}
+ gles2_impl_(NULL) {}
PPB_VideoDecoder_Shared::~PPB_VideoDecoder_Shared() {
// Destroy() must be called before the object is destroyed.
DCHECK(graphics_context_ == 0);
}
-thunk::PPB_VideoDecoder_API* PPB_VideoDecoder_Shared::AsPPB_VideoDecoder_API() {
+thunk::PPB_VideoDecoder_Dev_API*
+PPB_VideoDecoder_Shared::AsPPB_VideoDecoder_Dev_API() {
return this;
}
@@ -73,8 +72,8 @@ bool PPB_VideoDecoder_Shared::SetResetCallback(
bool PPB_VideoDecoder_Shared::SetBitstreamBufferCallback(
int32 bitstream_buffer_id,
scoped_refptr<TrackedCallback> callback) {
- return bitstream_buffer_callbacks_.insert(
- std::make_pair(bitstream_buffer_id, callback)).second;
+ return bitstream_buffer_callbacks_.insert(std::make_pair(bitstream_buffer_id,
+ callback)).second;
}
void PPB_VideoDecoder_Shared::RunFlushCallback(int32 result) {
@@ -86,7 +85,8 @@ void PPB_VideoDecoder_Shared::RunResetCallback(int32 result) {
}
void PPB_VideoDecoder_Shared::RunBitstreamBufferCallback(
- int32 bitstream_buffer_id, int32 result) {
+ int32 bitstream_buffer_id,
+ int32 result) {
CallbackById::iterator it =
bitstream_buffer_callbacks_.find(bitstream_buffer_id);
DCHECK(it != bitstream_buffer_callbacks_.end());
diff --git a/chromium/ppapi/shared_impl/ppb_video_decoder_shared.h b/chromium/ppapi/shared_impl/ppb_video_decoder_shared.h
index 618b6d03dbb..ce294fb1ed8 100644
--- a/chromium/ppapi/shared_impl/ppb_video_decoder_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_video_decoder_shared.h
@@ -13,7 +13,7 @@
#include "ppapi/c/dev/ppb_video_decoder_dev.h"
#include "ppapi/shared_impl/resource.h"
#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_video_decoder_api.h"
+#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
namespace gpu {
namespace gles2 {
@@ -27,16 +27,17 @@ namespace ppapi {
// events. Both the proxy and the renderer implementation share this code.
class PPAPI_SHARED_EXPORT PPB_VideoDecoder_Shared
: public Resource,
- NON_EXPORTED_BASE(public thunk::PPB_VideoDecoder_API) {
+ NON_EXPORTED_BASE(public thunk::PPB_VideoDecoder_Dev_API) {
public:
explicit PPB_VideoDecoder_Shared(PP_Instance instance);
explicit PPB_VideoDecoder_Shared(const HostResource& host_resource);
virtual ~PPB_VideoDecoder_Shared();
// Resource overrides.
- virtual thunk::PPB_VideoDecoder_API* AsPPB_VideoDecoder_API() OVERRIDE;
+ virtual thunk::PPB_VideoDecoder_Dev_API* AsPPB_VideoDecoder_Dev_API()
+ OVERRIDE;
- // PPB_VideoDecoder_API implementation.
+ // PPB_VideoDecoder_Dev_API implementation.
virtual void Destroy() OVERRIDE;
protected:
diff --git a/chromium/ppapi/shared_impl/ppb_view_shared.cc b/chromium/ppapi/shared_impl/ppb_view_shared.cc
index f11fe1f3d0b..36c047d6609 100644
--- a/chromium/ppapi/shared_impl/ppb_view_shared.cc
+++ b/chromium/ppapi/shared_impl/ppb_view_shared.cc
@@ -22,8 +22,7 @@ ViewData::ViewData() {
css_scale = 1.0f;
}
-ViewData::~ViewData() {
-}
+ViewData::~ViewData() {}
bool ViewData::Equals(const ViewData& other) const {
return rect.point.x == other.rect.point.x &&
@@ -36,27 +35,21 @@ bool ViewData::Equals(const ViewData& other) const {
clip_rect.point.y == other.clip_rect.point.y &&
clip_rect.size.width == other.clip_rect.size.width &&
clip_rect.size.height == other.clip_rect.size.height &&
- device_scale == other.device_scale &&
- css_scale == other.css_scale;
+ device_scale == other.device_scale && css_scale == other.css_scale &&
+ scroll_offset.x == other.scroll_offset.x &&
+ scroll_offset.y == other.scroll_offset.y;
}
PPB_View_Shared::PPB_View_Shared(ResourceObjectType type,
PP_Instance instance,
const ViewData& data)
- : Resource(type, instance),
- data_(data) {
-}
+ : Resource(type, instance), data_(data) {}
-PPB_View_Shared::~PPB_View_Shared() {
-}
+PPB_View_Shared::~PPB_View_Shared() {}
-thunk::PPB_View_API* PPB_View_Shared::AsPPB_View_API() {
- return this;
-}
+thunk::PPB_View_API* PPB_View_Shared::AsPPB_View_API() { return this; }
-const ViewData& PPB_View_Shared::GetData() const {
- return data_;
-}
+const ViewData& PPB_View_Shared::GetData() const { return data_; }
PP_Bool PPB_View_Shared::GetRect(PP_Rect* viewport) const {
if (!viewport)
@@ -84,12 +77,15 @@ PP_Bool PPB_View_Shared::GetClipRect(PP_Rect* clip) const {
return PP_TRUE;
}
-float PPB_View_Shared::GetDeviceScale() const {
- return data_.device_scale;
-}
+float PPB_View_Shared::GetDeviceScale() const { return data_.device_scale; }
+
+float PPB_View_Shared::GetCSSScale() const { return data_.css_scale; }
-float PPB_View_Shared::GetCSSScale() const {
- return data_.css_scale;
+PP_Bool PPB_View_Shared::GetScrollOffset(PP_Point* scroll_offset) const {
+ if (!scroll_offset)
+ return PP_FALSE;
+ *scroll_offset = data_.scroll_offset;
+ return PP_TRUE;
}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/ppb_view_shared.h b/chromium/ppapi/shared_impl/ppb_view_shared.h
index 77bf8f2011b..b98306959d5 100644
--- a/chromium/ppapi/shared_impl/ppb_view_shared.h
+++ b/chromium/ppapi/shared_impl/ppb_view_shared.h
@@ -27,11 +27,11 @@ struct PPAPI_SHARED_EXPORT ViewData {
PP_Rect clip_rect;
float device_scale;
float css_scale;
+ PP_Point scroll_offset;
};
-class PPAPI_SHARED_EXPORT PPB_View_Shared
- : public Resource,
- public thunk::PPB_View_API {
+class PPAPI_SHARED_EXPORT PPB_View_Shared : public Resource,
+ public thunk::PPB_View_API {
public:
PPB_View_Shared(ResourceObjectType type,
PP_Instance instance,
@@ -47,10 +47,10 @@ class PPAPI_SHARED_EXPORT PPB_View_Shared
virtual PP_Bool IsFullscreen() const OVERRIDE;
virtual PP_Bool IsVisible() const OVERRIDE;
virtual PP_Bool IsPageVisible() const OVERRIDE;
- virtual PP_Bool GetClipRect(PP_Rect* clip) const
- OVERRIDE;
+ virtual PP_Bool GetClipRect(PP_Rect* clip) const OVERRIDE;
virtual float GetDeviceScale() const OVERRIDE;
virtual float GetCSSScale() const OVERRIDE;
+ virtual PP_Bool GetScrollOffset(PP_Point* scroll_offset) const OVERRIDE;
private:
ViewData data_;
diff --git a/chromium/ppapi/shared_impl/ppp_flash_browser_operations_shared.h b/chromium/ppapi/shared_impl/ppp_flash_browser_operations_shared.h
index c77ad2bd9a4..7584390ea85 100644
--- a/chromium/ppapi/shared_impl/ppp_flash_browser_operations_shared.h
+++ b/chromium/ppapi/shared_impl/ppp_flash_browser_operations_shared.h
@@ -14,13 +14,10 @@ namespace ppapi {
struct FlashSiteSetting {
FlashSiteSetting()
- : permission(PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT) {
- }
+ : permission(PP_FLASH_BROWSEROPERATIONS_PERMISSION_DEFAULT) {}
FlashSiteSetting(const std::string& in_site,
PP_Flash_BrowserOperations_Permission in_permission)
- : site(in_site),
- permission(in_permission) {
- }
+ : site(in_site), permission(in_permission) {}
std::string site;
PP_Flash_BrowserOperations_Permission permission;
diff --git a/chromium/ppapi/shared_impl/ppp_instance_combined.cc b/chromium/ppapi/shared_impl/ppp_instance_combined.cc
index 5baaf12c12b..ffde05e7ca7 100644
--- a/chromium/ppapi/shared_impl/ppp_instance_combined.cc
+++ b/chromium/ppapi/shared_impl/ppp_instance_combined.cc
@@ -40,9 +40,7 @@ PPP_Instance_Combined::PPP_Instance_Combined(
PPP_Instance_Combined::PPP_Instance_Combined(
const PPP_Instance_1_1& instance_if)
- : instance_1_1_(instance_if),
- did_change_view_1_0_(NULL) {
-}
+ : instance_1_1_(instance_if), did_change_view_1_0_(NULL) {}
PP_Bool PPP_Instance_Combined::DidCreate(PP_Instance instance,
uint32_t argc,
@@ -60,9 +58,8 @@ void PPP_Instance_Combined::DidChangeView(PP_Instance instance,
const struct PP_Rect* position,
const struct PP_Rect* clip) {
if (instance_1_1_.DidChangeView) {
- CallWhileUnlocked(instance_1_1_.DidChangeView,
- instance,
- view_changed_resource);
+ CallWhileUnlocked(
+ instance_1_1_.DidChangeView, instance, view_changed_resource);
} else {
CallWhileUnlocked(did_change_view_1_0_, instance, position, clip);
}
@@ -75,10 +72,8 @@ void PPP_Instance_Combined::DidChangeFocus(PP_Instance instance,
PP_Bool PPP_Instance_Combined::HandleDocumentLoad(PP_Instance instance,
PP_Resource url_loader) {
- return CallWhileUnlocked(instance_1_1_.HandleDocumentLoad,
- instance,
- url_loader);
+ return CallWhileUnlocked(
+ instance_1_1_.HandleDocumentLoad, instance, url_loader);
}
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/ppp_instance_combined.h b/chromium/ppapi/shared_impl/ppp_instance_combined.h
index a01725eadb0..a29b1bb5fa4 100644
--- a/chromium/ppapi/shared_impl/ppp_instance_combined.h
+++ b/chromium/ppapi/shared_impl/ppp_instance_combined.h
@@ -60,4 +60,3 @@ struct PPAPI_SHARED_EXPORT PPP_Instance_Combined {
} // namespace ppapi
#endif // PPAPI_SHARED_IMPL_PPP_INSTANCE_COMBINED_H_
-
diff --git a/chromium/ppapi/shared_impl/private/ppb_char_set_shared.cc b/chromium/ppapi/shared_impl/private/ppb_char_set_shared.cc
index 2fda8aac556..c45c1ba5b17 100644
--- a/chromium/ppapi/shared_impl/private/ppb_char_set_shared.cc
+++ b/chromium/ppapi/shared_impl/private/ppb_char_set_shared.cc
@@ -220,7 +220,7 @@ PP_Bool PPB_CharSet_Shared::CharSetToUTF16(
// We can convert this call to the implementation in base to avoid code
// duplication, although this does introduce an extra copy of the data.
- string16 output;
+ base::string16 output;
if (!base::CodepageToUTF16(std::string(input, input_len), input_char_set,
base_on_error, &output)) {
*output_utf16_length = 0;
diff --git a/chromium/ppapi/shared_impl/proxy_lock.cc b/chromium/ppapi/shared_impl/proxy_lock.cc
index 3c1c3473ae4..6598379ca8b 100644
--- a/chromium/ppapi/shared_impl/proxy_lock.cc
+++ b/chromium/ppapi/shared_impl/proxy_lock.cc
@@ -11,8 +11,7 @@
namespace ppapi {
-base::LazyInstance<base::Lock>::Leaky
- g_proxy_lock = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<base::Lock>::Leaky g_proxy_lock = LAZY_INSTANCE_INITIALIZER;
bool g_disable_locking = false;
base::LazyInstance<base::ThreadLocalBoolean>::Leaky
@@ -20,8 +19,8 @@ base::LazyInstance<base::ThreadLocalBoolean>::Leaky
// Simple single-thread deadlock detector for the proxy lock.
// |true| when the current thread has the lock.
-base::LazyInstance<base::ThreadLocalBoolean>::Leaky
- g_proxy_locked_on_thread = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<base::ThreadLocalBoolean>::Leaky g_proxy_locked_on_thread =
+ LAZY_INSTANCE_INITIALIZER;
// static
base::Lock* ProxyLock::Get() {
diff --git a/chromium/ppapi/shared_impl/proxy_lock.h b/chromium/ppapi/shared_impl/proxy_lock.h
index f6dea318417..8e82ea609aa 100644
--- a/chromium/ppapi/shared_impl/proxy_lock.h
+++ b/chromium/ppapi/shared_impl/proxy_lock.h
@@ -81,12 +81,9 @@ class PPAPI_SHARED_EXPORT ProxyLock {
// such as PPB_Var and PPB_Core.
class ProxyAutoLock {
public:
- ProxyAutoLock() {
- ProxyLock::Acquire();
- }
- ~ProxyAutoLock() {
- ProxyLock::Release();
- }
+ ProxyAutoLock() { ProxyLock::Acquire(); }
+ ~ProxyAutoLock() { ProxyLock::Release(); }
+
private:
DISALLOW_COPY_AND_ASSIGN(ProxyAutoLock);
};
@@ -97,12 +94,9 @@ class ProxyAutoLock {
// exception.
class ProxyAutoUnlock {
public:
- ProxyAutoUnlock() {
- ProxyLock::Release();
- }
- ~ProxyAutoUnlock() {
- ProxyLock::Acquire();
- }
+ ProxyAutoUnlock() { ProxyLock::Release(); }
+ ~ProxyAutoUnlock() { ProxyLock::Acquire(); }
+
private:
DISALLOW_COPY_AND_ASSIGN(ProxyAutoUnlock);
};
@@ -170,9 +164,9 @@ template <typename RunType>
class RunWhileLockedHelper;
template <>
-class RunWhileLockedHelper<void ()> {
+class RunWhileLockedHelper<void()> {
public:
- typedef base::Callback<void ()> CallbackType;
+ typedef base::Callback<void()> CallbackType;
explicit RunWhileLockedHelper(const CallbackType& callback)
: callback_(new CallbackType(callback)) {
// Copying |callback| may adjust reference counts for bound Vars or
@@ -224,6 +218,7 @@ class RunWhileLockedHelper<void ()> {
callback_.reset();
}
}
+
private:
scoped_ptr<CallbackType> callback_;
@@ -232,9 +227,9 @@ class RunWhileLockedHelper<void ()> {
};
template <typename P1>
-class RunWhileLockedHelper<void (P1)> {
+class RunWhileLockedHelper<void(P1)> {
public:
- typedef base::Callback<void (P1)> CallbackType;
+ typedef base::Callback<void(P1)> CallbackType;
explicit RunWhileLockedHelper(const CallbackType& callback)
: callback_(new CallbackType(callback)) {
ProxyLock::AssertAcquired();
@@ -255,15 +250,16 @@ class RunWhileLockedHelper<void (P1)> {
callback_.reset();
}
}
+
private:
scoped_ptr<CallbackType> callback_;
base::ThreadChecker thread_checker_;
};
template <typename P1, typename P2>
-class RunWhileLockedHelper<void (P1, P2)> {
+class RunWhileLockedHelper<void(P1, P2)> {
public:
- typedef base::Callback<void (P1, P2)> CallbackType;
+ typedef base::Callback<void(P1, P2)> CallbackType;
explicit RunWhileLockedHelper(const CallbackType& callback)
: callback_(new CallbackType(callback)) {
ProxyLock::AssertAcquired();
@@ -284,15 +280,16 @@ class RunWhileLockedHelper<void (P1, P2)> {
callback_.reset();
}
}
+
private:
scoped_ptr<CallbackType> callback_;
base::ThreadChecker thread_checker_;
};
template <typename P1, typename P2, typename P3>
-class RunWhileLockedHelper<void (P1, P2, P3)> {
+class RunWhileLockedHelper<void(P1, P2, P3)> {
public:
- typedef base::Callback<void (P1, P2, P3)> CallbackType;
+ typedef base::Callback<void(P1, P2, P3)> CallbackType;
explicit RunWhileLockedHelper(const CallbackType& callback)
: callback_(new CallbackType(callback)) {
ProxyLock::AssertAcquired();
@@ -313,6 +310,7 @@ class RunWhileLockedHelper<void (P1, P2, P3)> {
callback_.reset();
}
}
+
private:
scoped_ptr<CallbackType> callback_;
base::ThreadChecker thread_checker_;
@@ -349,8 +347,8 @@ class RunWhileLockedHelper<void (P1, P2, P3)> {
// was run (but can be destroyed with or without the proxy lock acquired). Or
// (3) destroyed without the proxy lock acquired.
template <class FunctionType>
-inline base::Callback<FunctionType>
-RunWhileLocked(const base::Callback<FunctionType>& callback) {
+inline base::Callback<FunctionType> RunWhileLocked(
+ const base::Callback<FunctionType>& callback) {
internal::RunWhileLockedHelper<FunctionType>* helper =
new internal::RunWhileLockedHelper<FunctionType>(callback);
return base::Bind(
diff --git a/chromium/ppapi/shared_impl/proxy_lock_unittest.cc b/chromium/ppapi/shared_impl/proxy_lock_unittest.cc
index f0751493ace..c533b5ba989 100644
--- a/chromium/ppapi/shared_impl/proxy_lock_unittest.cc
+++ b/chromium/ppapi/shared_impl/proxy_lock_unittest.cc
@@ -34,14 +34,11 @@ class CheckLockStateInDestructor
: public base::RefCounted<CheckLockStateInDestructor> {
public:
CheckLockStateInDestructor() {}
- void Method() {
- ++called_num;
- }
+ void Method() { ++called_num; }
+
private:
friend class base::RefCounted<CheckLockStateInDestructor>;
- ~CheckLockStateInDestructor() {
- CheckLockState();
- }
+ ~CheckLockStateInDestructor() { CheckLockState(); }
DISALLOW_COPY_AND_ASSIGN(CheckLockStateInDestructor);
};
@@ -93,9 +90,8 @@ TEST(PpapiProxyLockTest, Locking) {
ProxyAutoLock lock;
scoped_refptr<CheckLockStateInDestructor> object =
new CheckLockStateInDestructor();
- cb0 = RunWhileLocked(
- base::Bind(&CheckLockStateInDestructor::Method,
- object));
+ cb0 =
+ RunWhileLocked(base::Bind(&CheckLockStateInDestructor::Method, object));
// Note after this scope, the Callback owns the only reference.
}
cb0.Run();
@@ -158,18 +154,21 @@ TEST(PpapiProxyLockTest, Unlocking) {
CallWhileUnlocked(TestCallback_0);
ASSERT_EQ(1, called_num);
called_num = 0;
- } {
+ }
+ {
CallWhileUnlocked(TestCallback_1, 123);
ASSERT_EQ(1, called_num);
called_num = 0;
- } {
+ }
+ {
// TODO(dmichael): Make const-ref arguments work properly with type
// deduction.
CallWhileUnlocked<void, int, const std::string&>(
TestCallback_2, 123, std::string("yo"));
ASSERT_EQ(1, called_num);
called_num = 0;
- } {
+ }
+ {
base::Callback<void()> callback(base::Bind(TestCallback_0));
CallWhileUnlocked(callback);
ASSERT_EQ(1, called_num);
diff --git a/chromium/ppapi/shared_impl/resource.cc b/chromium/ppapi/shared_impl/resource.cc
index 2c409618c00..e7ed70820c1 100644
--- a/chromium/ppapi/shared_impl/resource.cc
+++ b/chromium/ppapi/shared_impl/resource.cc
@@ -44,9 +44,7 @@ Resource::Resource(Untracked) {
pp_resource_ = PpapiGlobals::Get()->GetResourceTracker()->AddResource(this);
}
-Resource::~Resource() {
- RemoveFromResourceTracker();
-}
+Resource::~Resource() { RemoveFromResourceTracker(); }
PP_Resource Resource::GetReference() {
PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource());
@@ -75,8 +73,8 @@ void Resource::OnReplyReceived(const proxy::ResourceMessageReplyParams& params,
}
void Resource::Log(PP_LogLevel level, const std::string& message) {
- PpapiGlobals::Get()->LogWithSource(pp_instance(), level, std::string(),
- message);
+ PpapiGlobals::Get()->LogWithSource(
+ pp_instance(), level, std::string(), message);
}
void Resource::RemoveFromResourceTracker() {
@@ -89,4 +87,3 @@ FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER)
#undef DEFINE_TYPE_GETTER
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/resource.h b/chromium/ppapi/shared_impl/resource.h
index ec4f5179c1f..fdcf4fc6401 100644
--- a/chromium/ppapi/shared_impl/resource.h
+++ b/chromium/ppapi/shared_impl/resource.h
@@ -18,71 +18,77 @@
// All resource types should be added here. This implements our hand-rolled
// RTTI system since we don't compile with "real" RTTI.
-#define FOR_ALL_PPAPI_RESOURCE_APIS(F) \
- F(ExtensionsCommon_API) \
- F(PPB_Audio_API) \
- F(PPB_AudioConfig_API) \
- F(PPB_AudioInput_API) \
- F(PPB_AudioTrusted_API) \
- F(PPB_Broker_API) \
- F(PPB_Broker_Instance_API) \
- F(PPB_BrowserFont_Singleton_API) \
- F(PPB_BrowserFont_Trusted_API) \
- F(PPB_Buffer_API) \
- F(PPB_DeviceRef_API) \
- F(PPB_Ext_CrxFileSystem_Private_API) \
- F(PPB_FileChooser_API) \
- F(PPB_FileIO_API) \
- F(PPB_FileRef_API) \
- F(PPB_FileSystem_API) \
- F(PPB_Find_API) \
- F(PPB_Flash_Clipboard_API) \
- F(PPB_Flash_DRM_API) \
- F(PPB_Flash_File_API) \
- F(PPB_Flash_FontFile_API) \
- F(PPB_Flash_Fullscreen_API) \
- F(PPB_Flash_Functions_API) \
- F(PPB_Flash_Menu_API) \
- F(PPB_Flash_MessageLoop_API) \
- F(PPB_Gamepad_API) \
- F(PPB_Graphics2D_API) \
- F(PPB_Graphics3D_API) \
- F(PPB_HostResolver_API) \
- F(PPB_HostResolver_Private_API) \
- F(PPB_ImageData_API) \
- F(PPB_InputEvent_API) \
+#define FOR_ALL_PPAPI_RESOURCE_APIS(F) \
+ F(PPB_Audio_API) \
+ F(PPB_AudioBuffer_API) \
+ F(PPB_AudioConfig_API) \
+ F(PPB_AudioInput_API) \
+ F(PPB_AudioTrusted_API) \
+ F(PPB_Broker_API) \
+ F(PPB_Broker_Instance_API) \
+ F(PPB_BrowserFont_Singleton_API) \
+ F(PPB_BrowserFont_Trusted_API) \
+ F(PPB_Buffer_API) \
+ F(PPB_Compositor_API) \
+ F(PPB_CompositorLayer_API) \
+ F(PPB_DeviceRef_API) \
+ F(PPB_Ext_CrxFileSystem_Private_API) \
+ F(PPB_FileChooser_API) \
+ F(PPB_FileIO_API) \
+ F(PPB_FileMapping_API) \
+ F(PPB_FileRef_API) \
+ F(PPB_FileSystem_API) \
+ F(PPB_Find_API) \
+ F(PPB_Flash_Clipboard_API) \
+ F(PPB_Flash_DRM_API) \
+ F(PPB_Flash_File_API) \
+ F(PPB_Flash_FontFile_API) \
+ F(PPB_Flash_Fullscreen_API) \
+ F(PPB_Flash_Functions_API) \
+ F(PPB_Flash_Menu_API) \
+ F(PPB_Flash_MessageLoop_API) \
+ F(PPB_Gamepad_API) \
+ F(PPB_Graphics2D_API) \
+ F(PPB_Graphics3D_API) \
+ F(PPB_HostResolver_API) \
+ F(PPB_HostResolver_Private_API) \
+ F(PPB_ImageData_API) \
+ F(PPB_InputEvent_API) \
F(PPB_IsolatedFileSystem_Private_API) \
- F(PPB_LayerCompositor_API) \
- F(PPB_MessageLoop_API) \
- F(PPB_NetAddress_API) \
- F(PPB_NetworkList_API) \
- F(PPB_NetworkMonitor_API) \
- F(PPB_NetworkProxy_API) \
- F(PPB_OutputProtection_API) \
- F(PPB_PDF_API) \
- F(PPB_PlatformVerification_API) \
- F(PPB_Printing_API) \
- F(PPB_ResourceArray_API) \
- F(PPB_Scrollbar_API) \
- F(PPB_Talk_Private_API) \
- F(PPB_TrueTypeFont_API) \
- F(PPB_TrueTypeFont_Singleton_API) \
- F(PPB_TCPServerSocket_Private_API) \
- F(PPB_TCPSocket_API) \
- F(PPB_TCPSocket_Private_API) \
- F(PPB_UDPSocket_API) \
- F(PPB_UDPSocket_Private_API) \
- F(PPB_URLLoader_API) \
- F(PPB_URLRequestInfo_API) \
- F(PPB_URLResponseInfo_API) \
- F(PPB_VideoCapture_API) \
- F(PPB_VideoDecoder_API) \
- F(PPB_VideoDestination_Private_API) \
- F(PPB_VideoLayer_API) \
- F(PPB_VideoSource_Private_API) \
- F(PPB_View_API) \
- F(PPB_WebSocket_API) \
- F(PPB_Widget_API) \
+ F(PPB_MediaStreamAudioTrack_API) \
+ F(PPB_MediaStreamVideoTrack_API) \
+ F(PPB_MessageLoop_API) \
+ F(PPB_NetAddress_API) \
+ F(PPB_NetworkList_API) \
+ F(PPB_NetworkMonitor_API) \
+ F(PPB_NetworkProxy_API) \
+ F(PPB_OutputProtection_API) \
+ F(PPB_PDF_API) \
+ F(PPB_PlatformVerification_API) \
+ F(PPB_Printing_API) \
+ F(PPB_Scrollbar_API) \
+ F(PPB_Talk_Private_API) \
+ F(PPB_TrueTypeFont_API) \
+ F(PPB_TrueTypeFont_Singleton_API) \
+ F(PPB_TCPServerSocket_Private_API) \
+ F(PPB_TCPSocket_API) \
+ F(PPB_TCPSocket_Private_API) \
+ F(PPB_UDPSocket_API) \
+ F(PPB_UDPSocket_Private_API) \
+ F(PPB_UMA_Singleton_API) \
+ F(PPB_URLLoader_API) \
+ F(PPB_URLRequestInfo_API) \
+ F(PPB_URLResponseInfo_API) \
+ F(PPB_VideoCapture_API) \
+ F(PPB_VideoDecoder_API) \
+ F(PPB_VideoDecoder_Dev_API) \
+ F(PPB_VideoDestination_Private_API) \
+ F(PPB_VideoFrame_API) \
+ F(PPB_VideoLayer_API) \
+ F(PPB_VideoSource_Private_API) \
+ F(PPB_View_API) \
+ F(PPB_WebSocket_API) \
+ F(PPB_Widget_API) \
F(PPB_X509Certificate_Private_API)
namespace IPC {
@@ -108,10 +114,7 @@ FOR_ALL_PPAPI_RESOURCE_APIS(DECLARE_RESOURCE_CLASS)
// in-process ("impl") resource in the host (renderer) process, or when they're
// a proxied resource in the plugin process. This enum differentiates those
// cases.
-enum ResourceObjectType {
- OBJECT_IS_IMPL,
- OBJECT_IS_PROXY
-};
+enum ResourceObjectType { OBJECT_IS_IMPL, OBJECT_IS_PROXY };
class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> {
public:
@@ -190,19 +193,19 @@ class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> {
// InstanceWasDeleted() to be notified.
virtual void NotifyInstanceWasDeleted();
- // Dynamic casting for this object. Returns the pointer to the given type if
- // it's supported. Derived classes override the functions they support to
- // return the interface.
- #define DEFINE_TYPE_GETTER(RESOURCE) \
- virtual thunk::RESOURCE* As##RESOURCE();
+// Dynamic casting for this object. Returns the pointer to the given type if
+// it's supported. Derived classes override the functions they support to
+// return the interface.
+#define DEFINE_TYPE_GETTER(RESOURCE) virtual thunk::RESOURCE* As##RESOURCE();
FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER)
- #undef DEFINE_TYPE_GETTER
+#undef DEFINE_TYPE_GETTER
// Template-based dynamic casting. See specializations below. This is
// unimplemented for the default case. This way, for anything that's not a
// resource (or if a developer forgets to add the resource to the list in
// this file), the result is a linker error.
- template <typename T> T* GetAs();
+ template <typename T>
+ T* GetAs();
// Called when a PpapiPluginMsg_ResourceReply reply is received for a
// previous CallRenderer. The message is the nested reply message, which may
@@ -243,9 +246,10 @@ class PPAPI_SHARED_EXPORT Resource : public base::RefCounted<Resource> {
// Template-based dynamic casting. These specializations forward to the
// AsXXX virtual functions to return whether the given type is supported.
-#define DEFINE_RESOURCE_CAST(RESOURCE) \
- template<> inline thunk::RESOURCE* Resource::GetAs() { \
- return As##RESOURCE(); \
+#define DEFINE_RESOURCE_CAST(RESOURCE) \
+ template <> \
+ inline thunk::RESOURCE* Resource::GetAs() { \
+ return As##RESOURCE(); \
}
FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST)
#undef DEFINE_RESOURCE_CAST
diff --git a/chromium/ppapi/shared_impl/resource_tracker.cc b/chromium/ppapi/shared_impl/resource_tracker.cc
index 36aa2e142dc..9b151846f83 100644
--- a/chromium/ppapi/shared_impl/resource_tracker.cc
+++ b/chromium/ppapi/shared_impl/resource_tracker.cc
@@ -16,14 +16,12 @@
namespace ppapi {
ResourceTracker::ResourceTracker(ThreadMode thread_mode)
- : last_resource_value_(0),
- weak_ptr_factory_(this) {
+ : last_resource_value_(0), weak_ptr_factory_(this) {
if (thread_mode == SINGLE_THREADED)
thread_checker_.reset(new base::ThreadChecker);
}
-ResourceTracker::~ResourceTracker() {
-}
+ResourceTracker::~ResourceTracker() {}
void ResourceTracker::CheckThreadingPreconditions() const {
DCHECK(!thread_checker_ || thread_checker_->CalledOnValidThread());
@@ -202,7 +200,7 @@ PP_Resource ResourceTracker::AddResource(Resource* object) {
// could happen for OOP plugins where due to reentrancies in context of
// outgoing sync calls the renderer can send events after a plugin has
// exited.
- DLOG(INFO) << "Failed to find plugin instance in instance map";
+ VLOG(1) << "Failed to find plugin instance in instance map";
return 0;
}
found->second->resources.insert(new_id);
@@ -267,7 +265,6 @@ bool ResourceTracker::CanOperateOnResource(PP_Resource res) {
// same as that of |last_resource_value_|.
return ((res >> kPPIdTypeBits) & 1) == (last_resource_value_ & 1);
#endif
-
}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/resource_tracker_unittest.cc b/chromium/ppapi/shared_impl/resource_tracker_unittest.cc
index 3c7f90167cc..d2b53ac2f7c 100644
--- a/chromium/ppapi/shared_impl/resource_tracker_unittest.cc
+++ b/chromium/ppapi/shared_impl/resource_tracker_unittest.cc
@@ -23,16 +23,12 @@ class MyMockResource : public Resource {
MyMockResource(PP_Instance instance) : Resource(OBJECT_IS_IMPL, instance) {
mock_resource_alive_count++;
}
- virtual ~MyMockResource() {
- mock_resource_alive_count--;
- }
+ virtual ~MyMockResource() { mock_resource_alive_count--; }
virtual void LastPluginRefWasDeleted() OVERRIDE {
last_plugin_ref_was_deleted_count++;
}
- virtual void InstanceWasDeleted() OVERRIDE {
- instance_was_deleted_count++;
- }
+ virtual void InstanceWasDeleted() OVERRIDE { instance_was_deleted_count++; }
};
} // namespace
@@ -47,8 +43,7 @@ class ResourceTrackerTest : public testing::Test {
last_plugin_ref_was_deleted_count = 0;
instance_was_deleted_count = 0;
}
- virtual void TearDown() OVERRIDE {
- }
+ virtual void TearDown() OVERRIDE {}
ResourceTracker& resource_tracker() { return *globals_.GetResourceTracker(); }
diff --git a/chromium/ppapi/shared_impl/resource_var.cc b/chromium/ppapi/shared_impl/resource_var.cc
index 1260843a28a..40d9e356b28 100644
--- a/chromium/ppapi/shared_impl/resource_var.cc
+++ b/chromium/ppapi/shared_impl/resource_var.cc
@@ -9,25 +9,15 @@
namespace ppapi {
-int ResourceVar::GetPendingRendererHostId() const {
- return 0;
-}
+int ResourceVar::GetPendingRendererHostId() const { return 0; }
-int ResourceVar::GetPendingBrowserHostId() const {
- return 0;
-}
+int ResourceVar::GetPendingBrowserHostId() const { return 0; }
-const IPC::Message* ResourceVar::GetCreationMessage() const {
- return NULL;
-}
+const IPC::Message* ResourceVar::GetCreationMessage() const { return NULL; }
-ResourceVar* ResourceVar::AsResourceVar() {
- return this;
-}
+ResourceVar* ResourceVar::AsResourceVar() { return this; }
-PP_VarType ResourceVar::GetType() const {
- return PP_VARTYPE_RESOURCE;
-}
+PP_VarType ResourceVar::GetType() const { return PP_VARTYPE_RESOURCE; }
// static
ResourceVar* ResourceVar::FromPPVar(PP_Var var) {
diff --git a/chromium/ppapi/shared_impl/scoped_pp_resource.cc b/chromium/ppapi/shared_impl/scoped_pp_resource.cc
index 45a1ad77f03..b842b56d875 100644
--- a/chromium/ppapi/shared_impl/scoped_pp_resource.cc
+++ b/chromium/ppapi/shared_impl/scoped_pp_resource.cc
@@ -10,16 +10,14 @@
namespace ppapi {
-ScopedPPResource::ScopedPPResource() : id_(0) {
-}
+ScopedPPResource::ScopedPPResource() : id_(0) {}
ScopedPPResource::ScopedPPResource(PP_Resource resource) : id_(resource) {
CallAddRef();
}
ScopedPPResource::ScopedPPResource(const PassRef&, PP_Resource resource)
- : id_(resource) {
-}
+ : id_(resource) {}
ScopedPPResource::ScopedPPResource(Resource* resource)
: id_(resource ? resource->GetReference() : 0) {
@@ -31,9 +29,7 @@ ScopedPPResource::ScopedPPResource(const ScopedPPResource& other)
CallAddRef();
}
-ScopedPPResource::~ScopedPPResource() {
- CallRelease();
-}
+ScopedPPResource::~ScopedPPResource() { CallRelease(); }
ScopedPPResource& ScopedPPResource::operator=(PP_Resource resource) {
if (id_ == resource)
diff --git a/chromium/ppapi/shared_impl/scoped_pp_var.cc b/chromium/ppapi/shared_impl/scoped_pp_var.cc
index 3ae13b0445a..f612aa1a2ac 100644
--- a/chromium/ppapi/shared_impl/scoped_pp_var.cc
+++ b/chromium/ppapi/shared_impl/scoped_pp_var.cc
@@ -21,24 +21,17 @@ void CallRelease(const PP_Var& v) {
} // namespace
-ScopedPPVar::ScopedPPVar() : var_(PP_MakeUndefined()) {
-}
+ScopedPPVar::ScopedPPVar() : var_(PP_MakeUndefined()) {}
-ScopedPPVar::ScopedPPVar(const PP_Var& v) : var_(v) {
- CallAddRef(var_);
-}
+ScopedPPVar::ScopedPPVar(const PP_Var& v) : var_(v) { CallAddRef(var_); }
-ScopedPPVar::ScopedPPVar(const PassRef&, const PP_Var& v) : var_(v) {
-}
+ScopedPPVar::ScopedPPVar(const PassRef&, const PP_Var& v) : var_(v) {}
-ScopedPPVar::ScopedPPVar(const ScopedPPVar& other)
- : var_(other.var_) {
+ScopedPPVar::ScopedPPVar(const ScopedPPVar& other) : var_(other.var_) {
CallAddRef(var_);
}
-ScopedPPVar::~ScopedPPVar() {
- CallRelease(var_);
-}
+ScopedPPVar::~ScopedPPVar() { CallRelease(var_); }
ScopedPPVar& ScopedPPVar::operator=(const PP_Var& v) {
CallAddRef(v);
diff --git a/chromium/ppapi/shared_impl/singleton_resource_id.h b/chromium/ppapi/shared_impl/singleton_resource_id.h
index 90b0e6f61fb..4d34fd638bb 100644
--- a/chromium/ppapi/shared_impl/singleton_resource_id.h
+++ b/chromium/ppapi/shared_impl/singleton_resource_id.h
@@ -15,7 +15,7 @@ enum SingletonResourceID {
// resource model.
BROKER_SINGLETON_ID,
BROWSER_FONT_SINGLETON_ID,
- EXTENSIONS_COMMON_SINGLETON_ID,
+ FILE_MAPPING_SINGLETON_ID,
FLASH_CLIPBOARD_SINGLETON_ID,
FLASH_FILE_SINGLETON_ID,
FLASH_FULLSCREEN_SINGLETON_ID,
@@ -25,6 +25,7 @@ enum SingletonResourceID {
NETWORK_PROXY_SINGLETON_ID,
PDF_SINGLETON_ID,
TRUETYPE_FONT_SINGLETON_ID,
+ UMA_SINGLETON_ID,
};
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/socket_option_data.cc b/chromium/ppapi/shared_impl/socket_option_data.cc
index e45bb2534bc..27e66a2b4b5 100644
--- a/chromium/ppapi/shared_impl/socket_option_data.cc
+++ b/chromium/ppapi/shared_impl/socket_option_data.cc
@@ -6,15 +6,11 @@
namespace ppapi {
-SocketOptionData::SocketOptionData() : type_(TYPE_INVALID), value_(0) {
-}
+SocketOptionData::SocketOptionData() : type_(TYPE_INVALID), value_(0) {}
-SocketOptionData::~SocketOptionData() {
-}
+SocketOptionData::~SocketOptionData() {}
-SocketOptionData::Type SocketOptionData::GetType() const {
- return type_;
-}
+SocketOptionData::Type SocketOptionData::GetType() const { return type_; }
bool SocketOptionData::GetBool(bool* out_value) const {
if (!out_value || type_ != TYPE_BOOL)
diff --git a/chromium/ppapi/shared_impl/socket_option_data.h b/chromium/ppapi/shared_impl/socket_option_data.h
index ec754a9b9a9..2c8845482c2 100644
--- a/chromium/ppapi/shared_impl/socket_option_data.h
+++ b/chromium/ppapi/shared_impl/socket_option_data.h
@@ -12,11 +12,7 @@ namespace ppapi {
class PPAPI_SHARED_EXPORT SocketOptionData {
public:
- enum Type {
- TYPE_INVALID = 0,
- TYPE_BOOL = 1,
- TYPE_INT32 = 2
- };
+ enum Type { TYPE_INVALID = 0, TYPE_BOOL = 1, TYPE_INT32 = 2 };
SocketOptionData();
~SocketOptionData();
diff --git a/chromium/ppapi/shared_impl/test_globals.cc b/chromium/ppapi/shared_impl/test_globals.cc
index 2739e26373d..d6409975d57 100644
--- a/chromium/ppapi/shared_impl/test_globals.cc
+++ b/chromium/ppapi/shared_impl/test_globals.cc
@@ -9,33 +9,27 @@ namespace ppapi {
TestGlobals::TestGlobals()
: ppapi::PpapiGlobals(),
resource_tracker_(ResourceTracker::THREAD_SAFE),
- callback_tracker_(new CallbackTracker) {
-}
+ callback_tracker_(new CallbackTracker) {}
TestGlobals::TestGlobals(PpapiGlobals::PerThreadForTest per_thread_for_test)
: ppapi::PpapiGlobals(per_thread_for_test),
resource_tracker_(ResourceTracker::THREAD_SAFE),
- callback_tracker_(new CallbackTracker) {
-}
+ callback_tracker_(new CallbackTracker) {}
-TestGlobals::~TestGlobals() {
-}
+TestGlobals::~TestGlobals() {}
ResourceTracker* TestGlobals::GetResourceTracker() {
return &resource_tracker_;
}
-VarTracker* TestGlobals::GetVarTracker() {
- return &var_tracker_;
-}
+VarTracker* TestGlobals::GetVarTracker() { return &var_tracker_; }
CallbackTracker* TestGlobals::GetCallbackTrackerForInstance(
PP_Instance instance) {
return callback_tracker_.get();
}
-thunk::PPB_Instance_API* TestGlobals::GetInstanceAPI(
- PP_Instance instance) {
+thunk::PPB_Instance_API* TestGlobals::GetInstanceAPI(PP_Instance instance) {
return NULL;
}
@@ -44,36 +38,25 @@ thunk::ResourceCreationAPI* TestGlobals::GetResourceCreationAPI(
return NULL;
}
-PP_Module TestGlobals::GetModuleForInstance(PP_Instance instance) {
- return 0;
-}
+PP_Module TestGlobals::GetModuleForInstance(PP_Instance instance) { return 0; }
-std::string TestGlobals::GetCmdLine() {
- return std::string();
-}
+std::string TestGlobals::GetCmdLine() { return std::string(); }
-void TestGlobals::PreCacheFontForFlash(const void* /* logfontw */) {
-}
+void TestGlobals::PreCacheFontForFlash(const void* /* logfontw */) {}
void TestGlobals::LogWithSource(PP_Instance instance,
PP_LogLevel level,
const std::string& source,
- const std::string& value) {
-}
+ const std::string& value) {}
void TestGlobals::BroadcastLogWithSource(PP_Module module,
PP_LogLevel level,
const std::string& source,
- const std::string& value) {
-}
+ const std::string& value) {}
-MessageLoopShared* TestGlobals::GetCurrentMessageLoop() {
- return NULL;
-}
+MessageLoopShared* TestGlobals::GetCurrentMessageLoop() { return NULL; }
-base::TaskRunner* TestGlobals::GetFileTaskRunner() {
- return NULL;
-}
+base::TaskRunner* TestGlobals::GetFileTaskRunner() { return NULL; }
bool TestGlobals::IsHostGlobals() const {
// Pretend to be the host-side, for code that expects one or the other.
diff --git a/chromium/ppapi/shared_impl/test_globals.h b/chromium/ppapi/shared_impl/test_globals.h
index 2b4b5cbcbf3..dbc62b9793a 100644
--- a/chromium/ppapi/shared_impl/test_globals.h
+++ b/chromium/ppapi/shared_impl/test_globals.h
@@ -31,13 +31,12 @@ class TestVarTracker : public VarTracker {
virtual ArrayBufferVar* CreateArrayBuffer(uint32 size_in_bytes) OVERRIDE {
return NULL;
}
- virtual ArrayBufferVar* CreateShmArrayBuffer(
- uint32 size_in_bytes,
- base::SharedMemoryHandle handle) OVERRIDE {
+ virtual ArrayBufferVar* CreateShmArrayBuffer(uint32 size_in_bytes,
+ base::SharedMemoryHandle handle)
+ OVERRIDE {
return NULL;
}
- virtual void DidDeleteInstance(PP_Instance instance) OVERRIDE {
- }
+ virtual void DidDeleteInstance(PP_Instance instance) OVERRIDE {}
virtual int TrackSharedMemoryHandle(PP_Instance instance,
base::SharedMemoryHandle handle,
uint32 size_in_bytes) OVERRIDE {
@@ -62,10 +61,10 @@ class TestGlobals : public PpapiGlobals {
// PpapiGlobals implementation.
virtual ResourceTracker* GetResourceTracker() OVERRIDE;
virtual VarTracker* GetVarTracker() OVERRIDE;
- virtual CallbackTracker* GetCallbackTrackerForInstance(
- PP_Instance instance) OVERRIDE;
- virtual thunk::PPB_Instance_API* GetInstanceAPI(
- PP_Instance instance) OVERRIDE;
+ virtual CallbackTracker* GetCallbackTrackerForInstance(PP_Instance instance)
+ OVERRIDE;
+ virtual thunk::PPB_Instance_API* GetInstanceAPI(PP_Instance instance)
+ OVERRIDE;
virtual thunk::ResourceCreationAPI* GetResourceCreationAPI(
PP_Instance instance) OVERRIDE;
virtual PP_Module GetModuleForInstance(PP_Instance instance) OVERRIDE;
@@ -95,4 +94,4 @@ class TestGlobals : public PpapiGlobals {
} // namespace ppapi
-#endif // PPAPI_SHARED_IMPL_TEST_GLOBALS_H_
+#endif // PPAPI_SHARED_IMPL_TEST_GLOBALS_H_
diff --git a/chromium/ppapi/shared_impl/test_harness_utils.cc b/chromium/ppapi/shared_impl/test_harness_utils.cc
new file mode 100644
index 00000000000..93ba755c958
--- /dev/null
+++ b/chromium/ppapi/shared_impl/test_harness_utils.cc
@@ -0,0 +1,31 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/shared_impl/test_harness_utils.h"
+
+#include <string>
+#include "base/macros.h"
+
+namespace ppapi {
+
+std::string StripTestPrefixes(const std::string& test_name) {
+ const char* const kTestPrefixes[] = {
+ "FAILS_", "FLAKY_", "DISABLED_", "SLOW_" };
+ for (size_t i = 0; i < arraysize(kTestPrefixes); ++i)
+ if (test_name.find(kTestPrefixes[i]) == 0)
+ return test_name.substr(strlen(kTestPrefixes[i]));
+ return test_name;
+}
+
+base::FilePath::StringType GetTestLibraryName() {
+#if defined(OS_WIN)
+ return L"ppapi_tests.dll";
+#elif defined(OS_MACOSX)
+ return "ppapi_tests.plugin";
+#elif defined(OS_POSIX)
+ return "libppapi_tests.so";
+#endif
+}
+
+} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/test_harness_utils.h b/chromium/ppapi/shared_impl/test_harness_utils.h
new file mode 100644
index 00000000000..0098969cf8b
--- /dev/null
+++ b/chromium/ppapi/shared_impl/test_harness_utils.h
@@ -0,0 +1,29 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_TESTS_TEST_HARNESS_UTILS_H_
+#define PPAPI_TESTS_TEST_HARNESS_UTILS_H_
+
+#include <string>
+#include "base/files/file_path.h"
+#include "ppapi/shared_impl/ppapi_shared_export.h"
+
+// This file specifies utility functions used in Pepper testing in
+// browser_tests and content_browsertests.
+
+namespace base {
+class CommandLine;
+}
+
+namespace ppapi {
+
+// Strips prefixes used to annotate tests from a test name.
+std::string PPAPI_SHARED_EXPORT StripTestPrefixes(const std::string& test_name);
+
+// Returns a platform-specific filename relative to the chrome executable.
+base::FilePath::StringType PPAPI_SHARED_EXPORT GetTestLibraryName();
+
+} // namespace ppapi
+
+#endif // PPAPI_TESTS_TEST_HARNESS_UTILS_H_
diff --git a/chromium/ppapi/shared_impl/thread_aware_callback.cc b/chromium/ppapi/shared_impl/thread_aware_callback.cc
index 06e722aa03d..4739a949445 100644
--- a/chromium/ppapi/shared_impl/thread_aware_callback.cc
+++ b/chromium/ppapi/shared_impl/thread_aware_callback.cc
@@ -14,8 +14,7 @@ namespace internal {
class ThreadAwareCallbackBase::Core : public base::RefCountedThreadSafe<Core> {
public:
- Core() : aborted_(false) {
- }
+ Core() : aborted_(false) {}
void MarkAsAborted() { aborted_ = true; }
@@ -26,8 +25,7 @@ class ThreadAwareCallbackBase::Core : public base::RefCountedThreadSafe<Core> {
private:
friend class base::RefCountedThreadSafe<Core>;
- ~Core() {
- }
+ ~Core() {}
bool aborted_;
};
@@ -38,9 +36,7 @@ ThreadAwareCallbackBase::ThreadAwareCallbackBase()
DCHECK(target_loop_.get());
}
-ThreadAwareCallbackBase::~ThreadAwareCallbackBase() {
- core_->MarkAsAborted();
-}
+ThreadAwareCallbackBase::~ThreadAwareCallbackBase() { core_->MarkAsAborted(); }
// static
bool ThreadAwareCallbackBase::HasTargetLoop() {
diff --git a/chromium/ppapi/shared_impl/thread_aware_callback.h b/chromium/ppapi/shared_impl/thread_aware_callback.h
index b954eec8bd1..92284678c25 100644
--- a/chromium/ppapi/shared_impl/thread_aware_callback.h
+++ b/chromium/ppapi/shared_impl/thread_aware_callback.h
@@ -64,12 +64,9 @@ class ThreadAwareCallback : public internal::ThreadAwareCallbackBase {
return new ThreadAwareCallback(func);
}
- ~ThreadAwareCallback() {
- }
+ ~ThreadAwareCallback() {}
- void RunOnTargetThread() {
- InternalRunOnTargetThread(base::Bind(func_));
- }
+ void RunOnTargetThread() { InternalRunOnTargetThread(base::Bind(func_)); }
template <class P1>
void RunOnTargetThread(const P1& p1) {
@@ -104,8 +101,7 @@ class ThreadAwareCallback : public internal::ThreadAwareCallbackBase {
}
private:
- explicit ThreadAwareCallback(FuncType func) : func_(func) {
- }
+ explicit ThreadAwareCallback(FuncType func) : func_(func) {}
FuncType func_;
};
diff --git a/chromium/ppapi/shared_impl/thread_aware_callback_unittest.cc b/chromium/ppapi/shared_impl/thread_aware_callback_unittest.cc
index f86048a7690..51737537819 100644
--- a/chromium/ppapi/shared_impl/thread_aware_callback_unittest.cc
+++ b/chromium/ppapi/shared_impl/thread_aware_callback_unittest.cc
@@ -18,29 +18,20 @@ namespace {
class TestParameter {
public:
- TestParameter() : value_(0) {
- }
+ TestParameter() : value_(0) {}
int value_;
};
int called_num = 0;
-void TestCallback_0() {
- ++called_num;
-}
+void TestCallback_0() { ++called_num; }
-void TestCallback_1(int p1) {
- ++called_num;
-}
+void TestCallback_1(int p1) { ++called_num; }
-void TestCallback_2(int p1, const double* p2) {
- ++called_num;
-}
+void TestCallback_2(int p1, const double* p2) { ++called_num; }
-void TestCallback_3(int p1, const double* p2, bool* p3) {
- ++called_num;
-}
+void TestCallback_3(int p1, const double* p2, bool* p3) { ++called_num; }
void TestCallback_4(int p1, const double* p2, bool* p3, TestParameter p4) {
++called_num;
@@ -61,8 +52,7 @@ typedef proxy::PluginProxyTest ThreadAwareCallbackTest;
class ThreadAwareCallbackMultiThreadTest
: public proxy::PluginProxyMultiThreadTest {
public:
- ThreadAwareCallbackMultiThreadTest() : main_thread_callback_called_(false) {
- }
+ ThreadAwareCallbackMultiThreadTest() : main_thread_callback_called_(false) {}
virtual ~ThreadAwareCallbackMultiThreadTest() {
CHECK(main_thread_callback_called_);
}
@@ -109,10 +99,8 @@ class ThreadAwareCallbackMultiThreadTest
// run the callback will be ignored.
class ThreadAwareCallbackAbortTest : public proxy::PluginProxyMultiThreadTest {
public:
- ThreadAwareCallbackAbortTest() {
- }
- virtual ~ThreadAwareCallbackAbortTest() {
- }
+ ThreadAwareCallbackAbortTest() {}
+ virtual ~ThreadAwareCallbackAbortTest() {}
// proxy::PluginProxyMultiThreadTest implementation.
virtual void SetUpTestOnMainThread() OVERRIDE {
@@ -194,25 +182,18 @@ TEST_F(ThreadAwareCallbackTest, Basics) {
ThreadAwareCallback<FuncType_4>::Create(TestCallback_4));
callback_4->RunOnTargetThread(1, &double_arg, &bool_arg, object_arg);
- typedef void (*FuncType_5)(int,
- const double*,
- bool*,
- TestParameter,
- const TestParameter&);
+ typedef void (*FuncType_5)(
+ int, const double*, bool*, TestParameter, const TestParameter&);
scoped_ptr<ThreadAwareCallback<FuncType_5> > callback_5(
ThreadAwareCallback<FuncType_5>::Create(TestCallback_5));
- callback_5->RunOnTargetThread(1, &double_arg, &bool_arg, object_arg,
- object_arg);
+ callback_5->RunOnTargetThread(
+ 1, &double_arg, &bool_arg, object_arg, object_arg);
EXPECT_EQ(6, called_num);
}
-TEST_F(ThreadAwareCallbackMultiThreadTest, RunOnTargetThread) {
- RunTest();
-}
+TEST_F(ThreadAwareCallbackMultiThreadTest, RunOnTargetThread) { RunTest(); }
-TEST_F(ThreadAwareCallbackAbortTest, NotRunIfAborted) {
- RunTest();
-}
+TEST_F(ThreadAwareCallbackAbortTest, NotRunIfAborted) { RunTest(); }
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/time_conversion.cc b/chromium/ppapi/shared_impl/time_conversion.cc
index 27ea494b0fc..8da14836f7b 100644
--- a/chromium/ppapi/shared_impl/time_conversion.cc
+++ b/chromium/ppapi/shared_impl/time_conversion.cc
@@ -25,9 +25,7 @@ double GetTimeToTimeTicksDeltaInSeconds() {
} // namespace
-PP_Time TimeToPPTime(base::Time t) {
- return t.ToDoubleT();
-}
+PP_Time TimeToPPTime(base::Time t) { return t.ToDoubleT(); }
base::Time PPTimeToTime(PP_Time t) {
// The time code handles exact "0" values as special, and produces
@@ -41,7 +39,7 @@ base::Time PPTimeToTime(PP_Time t) {
PP_TimeTicks TimeTicksToPPTimeTicks(base::TimeTicks t) {
return static_cast<double>(t.ToInternalValue()) /
- base::Time::kMicrosecondsPerSecond;
+ base::Time::kMicrosecondsPerSecond;
}
PP_TimeTicks EventTimeToPPTimeTicks(double event_time) {
@@ -56,8 +54,8 @@ double PPGetLocalTimeZoneOffset(const base::Time& time) {
// Explode it to local time and then unexplode it as if it were UTC. Also
// explode it to UTC and unexplode it (this avoids mismatching rounding or
// lack thereof). The time zone offset is their difference.
- base::Time::Exploded exploded = { 0 };
- base::Time::Exploded utc_exploded = { 0 };
+ base::Time::Exploded exploded = {0};
+ base::Time::Exploded utc_exploded = {0};
time.LocalExplode(&exploded);
time.UTCExplode(&utc_exploded);
if (exploded.HasValidValues() && utc_exploded.HasValidValues()) {
diff --git a/chromium/ppapi/shared_impl/tracked_callback.cc b/chromium/ppapi/shared_impl/tracked_callback.cc
index f3b8bb9820d..70565a19d19 100644
--- a/chromium/ppapi/shared_impl/tracked_callback.cc
+++ b/chromium/ppapi/shared_impl/tracked_callback.cc
@@ -23,8 +23,9 @@ namespace ppapi {
namespace {
bool IsMainThread() {
- return
- PpapiGlobals::Get()->GetMainThreadMessageLoop()->BelongsToCurrentThread();
+ return PpapiGlobals::Get()
+ ->GetMainThreadMessageLoop()
+ ->BelongsToCurrentThread();
}
int32_t RunCompletionTask(TrackedCallback::CompletionTask completion_task,
@@ -40,9 +41,8 @@ int32_t RunCompletionTask(TrackedCallback::CompletionTask completion_task,
// TrackedCallback -------------------------------------------------------------
// Note: don't keep a Resource* since it may go out of scope before us.
-TrackedCallback::TrackedCallback(
- Resource* resource,
- const PP_CompletionCallback& callback)
+TrackedCallback::TrackedCallback(Resource* resource,
+ const PP_CompletionCallback& callback)
: is_scheduled_(false),
resource_id_(resource ? resource->pp_resource() : 0),
completed_(false),
@@ -80,16 +80,11 @@ TrackedCallback::TrackedCallback(
}
}
-TrackedCallback::~TrackedCallback() {
-}
+TrackedCallback::~TrackedCallback() {}
-void TrackedCallback::Abort() {
- Run(PP_ERROR_ABORTED);
-}
+void TrackedCallback::Abort() { Run(PP_ERROR_ABORTED); }
-void TrackedCallback::PostAbort() {
- PostRun(PP_ERROR_ABORTED);
-}
+void TrackedCallback::PostAbort() { PostRun(PP_ERROR_ABORTED); }
void TrackedCallback::Run(int32_t result) {
// Only allow the callback to be run once. Note that this also covers the case
diff --git a/chromium/ppapi/shared_impl/tracked_callback.h b/chromium/ppapi/shared_impl/tracked_callback.h
index c8b6c013628..294c9b99b4e 100644
--- a/chromium/ppapi/shared_impl/tracked_callback.h
+++ b/chromium/ppapi/shared_impl/tracked_callback.h
@@ -109,13 +109,9 @@ class PPAPI_SHARED_EXPORT TrackedCallback
bool aborted() const { return aborted_; }
// Returns true if this is a blocking callback.
- bool is_blocking() {
- return !callback_.func;
- }
+ bool is_blocking() { return !callback_.func; }
- MessageLoopShared* target_loop() const {
- return target_loop_.get();
- }
+ MessageLoopShared* target_loop() const { return target_loop_.get(); }
// Determines if the given callback is pending. A callback is pending if it
// has not completed and has not been aborted. When receiving a plugin call,
diff --git a/chromium/ppapi/shared_impl/tracked_callback_unittest.cc b/chromium/ppapi/shared_impl/tracked_callback_unittest.cc
index 55db0aaf93e..cd787f8fe67 100644
--- a/chromium/ppapi/shared_impl/tracked_callback_unittest.cc
+++ b/chromium/ppapi/shared_impl/tracked_callback_unittest.cc
@@ -21,8 +21,7 @@ namespace {
class TrackedCallbackTest : public testing::Test {
public:
- TrackedCallbackTest()
- : message_loop_(base::MessageLoop::TYPE_DEFAULT), pp_instance_(1234) {}
+ TrackedCallbackTest() : pp_instance_(1234) {}
PP_Instance pp_instance() const { return pp_instance_; }
@@ -79,7 +78,7 @@ class CallbackShutdownTest : public TrackedCallbackTest {
// (1) A callback which is run (so shouldn't be aborted on shutdown).
// (2) A callback which is aborted (so shouldn't be aborted on shutdown).
// (3) A callback which isn't run (so should be aborted on shutdown).
- CallbackRunInfo& info_did_run() { return info_did_run_; } // (1)
+ CallbackRunInfo& info_did_run() { return info_did_run_; } // (1)
CallbackRunInfo& info_did_abort() { return info_did_abort_; } // (2)
CallbackRunInfo& info_didnt_run() { return info_didnt_run_; } // (3)
@@ -156,8 +155,7 @@ class CallbackMockResource : public Resource {
EXPECT_NE(0, resource_id);
callback_did_run_ = new TrackedCallback(
- this,
- PP_MakeCompletionCallback(&TestCallback, &info_did_run_));
+ this, PP_MakeCompletionCallback(&TestCallback, &info_did_run_));
EXPECT_EQ(0U, info_did_run_.run_count);
EXPECT_EQ(0U, info_did_run_.completion_task_run_count);
@@ -168,22 +166,21 @@ class CallbackMockResource : public Resource {
PP_MakeCompletionCallback(&TestCallback,
&info_did_run_with_completion_task_));
callback_did_run_with_completion_task_->set_completion_task(
- Bind(&CallbackMockResource::CompletionTask, this,
+ Bind(&CallbackMockResource::CompletionTask,
+ this,
&info_did_run_with_completion_task_));
EXPECT_EQ(0U, info_did_run_with_completion_task_.run_count);
EXPECT_EQ(0U, info_did_run_with_completion_task_.completion_task_run_count);
callback_did_abort_ = new TrackedCallback(
- this,
- PP_MakeCompletionCallback(&TestCallback, &info_did_abort_));
+ this, PP_MakeCompletionCallback(&TestCallback, &info_did_abort_));
callback_did_abort_->set_completion_task(
Bind(&CallbackMockResource::CompletionTask, this, &info_did_abort_));
EXPECT_EQ(0U, info_did_abort_.run_count);
EXPECT_EQ(0U, info_did_abort_.completion_task_run_count);
callback_didnt_run_ = new TrackedCallback(
- this,
- PP_MakeCompletionCallback(&TestCallback, &info_didnt_run_));
+ this, PP_MakeCompletionCallback(&TestCallback, &info_didnt_run_));
callback_didnt_run_->set_completion_task(
Bind(&CallbackMockResource::CompletionTask, this, &info_didnt_run_));
EXPECT_EQ(0U, info_didnt_run_.run_count);
@@ -216,8 +213,7 @@ class CallbackMockResource : public Resource {
// completion task should override the result.
EXPECT_EQ(kOverrideResultValue, info_did_run_with_completion_task_.result);
EXPECT_EQ(1U, info_did_run_with_completion_task_.completion_task_run_count);
- EXPECT_EQ(PP_OK,
- info_did_run_with_completion_task_.completion_task_result);
+ EXPECT_EQ(PP_OK, info_did_run_with_completion_task_.completion_task_result);
EXPECT_EQ(1U, info_did_abort_.run_count);
// completion task shouldn't override an abort.
@@ -256,8 +252,7 @@ class CallbackMockResource : public Resource {
// Test that callbacks get aborted on the last resource unref.
TEST_F(CallbackResourceTest, AbortOnNoRef) {
ProxyAutoLock lock;
- ResourceTracker* resource_tracker =
- PpapiGlobals::Get()->GetResourceTracker();
+ ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker();
// Test several things: Unref-ing a resource (to zero refs) with callbacks
// which (1) have been run, (2) have been aborted, (3) haven't been completed.
@@ -306,8 +301,7 @@ TEST_F(CallbackResourceTest, AbortOnNoRef) {
// doesn't resurrect callbacks.
TEST_F(CallbackResourceTest, Resurrection) {
ProxyAutoLock lock;
- ResourceTracker* resource_tracker =
- PpapiGlobals::Get()->GetResourceTracker();
+ ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker();
scoped_refptr<CallbackMockResource> resource(
new CallbackMockResource(pp_instance()));
diff --git a/chromium/ppapi/shared_impl/unittest_utils.cc b/chromium/ppapi/shared_impl/unittest_utils.cc
index 6974bd20b3f..af904324187 100644
--- a/chromium/ppapi/shared_impl/unittest_utils.cc
+++ b/chromium/ppapi/shared_impl/unittest_utils.cc
@@ -25,10 +25,11 @@ namespace {
// nodes in |actual| and check whether the graphs have equivalent topology.
bool Equals(const PP_Var& expected,
const PP_Var& actual,
+ bool test_string_references,
base::hash_map<int64_t, int64_t>* visited_map) {
if (expected.type != actual.type) {
- LOG(ERROR) << "expected type: " << expected.type <<
- " actual type: " << actual.type;
+ LOG(ERROR) << "expected type: " << expected.type
+ << " actual type: " << actual.type;
return false;
}
if (VarTracker::IsVarTypeRefcounted(expected.type)) {
@@ -36,14 +37,15 @@ bool Equals(const PP_Var& expected,
visited_map->find(expected.value.as_id);
if (it != visited_map->end()) {
if (it->second != actual.value.as_id) {
- LOG(ERROR) << "expected id: " << it->second << " actual id: " <<
- actual.value.as_id;
+ LOG(ERROR) << "expected id: " << it->second
+ << " actual id: " << actual.value.as_id;
return false;
} else {
return true;
}
} else {
- (*visited_map)[expected.value.as_id] = actual.value.as_id;
+ if (expected.type != PP_VARTYPE_STRING || test_string_references)
+ (*visited_map)[expected.value.as_id] = actual.value.as_id;
}
}
switch (expected.type) {
@@ -53,29 +55,29 @@ bool Equals(const PP_Var& expected,
return true;
case PP_VARTYPE_BOOL:
if (expected.value.as_bool != actual.value.as_bool) {
- LOG(ERROR) << "expected: " << expected.value.as_bool << " actual: " <<
- actual.value.as_bool;
+ LOG(ERROR) << "expected: " << expected.value.as_bool
+ << " actual: " << actual.value.as_bool;
return false;
}
return true;
case PP_VARTYPE_INT32:
if (expected.value.as_int != actual.value.as_int) {
- LOG(ERROR) << "expected: " << expected.value.as_int << " actual: " <<
- actual.value.as_int;
+ LOG(ERROR) << "expected: " << expected.value.as_int
+ << " actual: " << actual.value.as_int;
return false;
}
return true;
case PP_VARTYPE_DOUBLE:
if (fabs(expected.value.as_double - actual.value.as_double) > 1.0e-4) {
- LOG(ERROR) << "expected: " << expected.value.as_double <<
- " actual: " << actual.value.as_double;
+ LOG(ERROR) << "expected: " << expected.value.as_double
+ << " actual: " << actual.value.as_double;
return false;
}
return true;
case PP_VARTYPE_OBJECT:
if (expected.value.as_id != actual.value.as_id) {
- LOG(ERROR) << "expected: " << expected.value.as_id << " actual: " <<
- actual.value.as_id;
+ LOG(ERROR) << "expected: " << expected.value.as_id
+ << " actual: " << actual.value.as_id;
return false;
}
return true;
@@ -84,8 +86,8 @@ bool Equals(const PP_Var& expected,
StringVar* actual_var = StringVar::FromPPVar(actual);
DCHECK(expected_var && actual_var);
if (expected_var->value() != actual_var->value()) {
- LOG(ERROR) << "expected: " << expected_var->value() << " actual: " <<
- actual_var->value();
+ LOG(ERROR) << "expected: " << expected_var->value()
+ << " actual: " << actual_var->value();
return false;
}
return true;
@@ -95,11 +97,12 @@ bool Equals(const PP_Var& expected,
ArrayBufferVar* actual_var = ArrayBufferVar::FromPPVar(actual);
DCHECK(expected_var && actual_var);
if (expected_var->ByteLength() != actual_var->ByteLength()) {
- LOG(ERROR) << "expected: " << expected_var->ByteLength() <<
- " actual: " << actual_var->ByteLength();
+ LOG(ERROR) << "expected: " << expected_var->ByteLength()
+ << " actual: " << actual_var->ByteLength();
return false;
}
- if (memcmp(expected_var->Map(), actual_var->Map(),
+ if (memcmp(expected_var->Map(),
+ actual_var->Map(),
expected_var->ByteLength()) != 0) {
LOG(ERROR) << "expected array buffer does not match actual.";
return false;
@@ -111,13 +114,14 @@ bool Equals(const PP_Var& expected,
ArrayVar* actual_var = ArrayVar::FromPPVar(actual);
DCHECK(expected_var && actual_var);
if (expected_var->elements().size() != actual_var->elements().size()) {
- LOG(ERROR) << "expected: " << expected_var->elements().size() <<
- " actual: " << actual_var->elements().size();
+ LOG(ERROR) << "expected: " << expected_var->elements().size()
+ << " actual: " << actual_var->elements().size();
return false;
}
for (size_t i = 0; i < expected_var->elements().size(); ++i) {
if (!Equals(expected_var->elements()[i].get(),
actual_var->elements()[i].get(),
+ test_string_references,
visited_map)) {
return false;
}
@@ -130,23 +134,24 @@ bool Equals(const PP_Var& expected,
DCHECK(expected_var && actual_var);
if (expected_var->key_value_map().size() !=
actual_var->key_value_map().size()) {
- LOG(ERROR) << "expected: " << expected_var->key_value_map().size() <<
- " actual: " << actual_var->key_value_map().size();
+ LOG(ERROR) << "expected: " << expected_var->key_value_map().size()
+ << " actual: " << actual_var->key_value_map().size();
return false;
}
DictionaryVar::KeyValueMap::const_iterator expected_iter =
expected_var->key_value_map().begin();
DictionaryVar::KeyValueMap::const_iterator actual_iter =
actual_var->key_value_map().begin();
- for ( ; expected_iter != expected_var->key_value_map().end();
+ for (; expected_iter != expected_var->key_value_map().end();
++expected_iter, ++actual_iter) {
if (expected_iter->first != actual_iter->first) {
- LOG(ERROR) << "expected: " << expected_iter->first <<
- " actual: " << actual_iter->first;
+ LOG(ERROR) << "expected: " << expected_iter->first
+ << " actual: " << actual_iter->first;
return false;
}
if (!Equals(expected_iter->second.get(),
actual_iter->second.get(),
+ test_string_references,
visited_map)) {
return false;
}
@@ -164,12 +169,11 @@ bool Equals(const PP_Var& expected,
}
const IPC::Message* actual_message = actual_var->GetCreationMessage();
- const IPC::Message* expected_message =
- expected_var->GetCreationMessage();
+ const IPC::Message* expected_message = expected_var->GetCreationMessage();
if (expected_message->size() != actual_message->size()) {
LOG(ERROR) << "expected creation message size: "
- << expected_message->size() << " actual: "
- << actual_message->size();
+ << expected_message->size()
+ << " actual: " << actual_message->size();
return false;
}
@@ -179,10 +183,12 @@ bool Equals(const PP_Var& expected,
// the comparison to fail.
IPC::Message local_actual_message(*actual_message);
local_actual_message.SetHeaderValues(
- actual_message->routing_id(), actual_message->type(),
+ actual_message->routing_id(),
+ actual_message->type(),
(expected_message->flags() & 0xffffff00) |
- (actual_message->flags() & 0xff));
- if (memcmp(expected_message->data(), local_actual_message.data(),
+ (actual_message->flags() & 0xff));
+ if (memcmp(expected_message->data(),
+ local_actual_message.data(),
expected_message->size()) != 0) {
LOG(ERROR) << "expected creation message does not match actual.";
return false;
@@ -196,9 +202,11 @@ bool Equals(const PP_Var& expected,
} // namespace
-bool TestEqual(const PP_Var& expected, const PP_Var& actual) {
+bool TestEqual(const PP_Var& expected,
+ const PP_Var& actual,
+ bool test_string_references) {
base::hash_map<int64_t, int64_t> visited_map;
- return Equals(expected, actual, &visited_map);
+ return Equals(expected, actual, test_string_references, &visited_map);
}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/unittest_utils.h b/chromium/ppapi/shared_impl/unittest_utils.h
index e07d8a8a3fc..a6fb296ea64 100644
--- a/chromium/ppapi/shared_impl/unittest_utils.h
+++ b/chromium/ppapi/shared_impl/unittest_utils.h
@@ -12,7 +12,12 @@ namespace ppapi {
// Compares two vars for equality. This is a deep comparison (the entire graph
// is traversed recursively). The function guarantees that the topology of the
// two PP_Var graphs being compared is identical, including graphs with cycles.
-bool TestEqual(const PP_Var& expected, const PP_Var& actual);
+// If |test_string_references| is set to true, then incoming references to
+// string vars in the two graphs must be isomorphic. Otherwise only the content
+// of the strings is tested for equality.
+bool TestEqual(const PP_Var& expected,
+ const PP_Var& actual,
+ bool test_string_references);
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/url_request_info_data.cc b/chromium/ppapi/shared_impl/url_request_info_data.cc
index 15b27875608..bb77a43e242 100644
--- a/chromium/ppapi/shared_impl/url_request_info_data.cc
+++ b/chromium/ppapi/shared_impl/url_request_info_data.cc
@@ -20,8 +20,7 @@ URLRequestInfoData::BodyItem::BodyItem()
file_ref_pp_resource(0),
start_offset(0),
number_of_bytes(-1),
- expected_last_modified_time(0.0) {
-}
+ expected_last_modified_time(0.0) {}
URLRequestInfoData::BodyItem::BodyItem(const std::string& data)
: is_file(false),
@@ -29,21 +28,18 @@ URLRequestInfoData::BodyItem::BodyItem(const std::string& data)
file_ref_pp_resource(0),
start_offset(0),
number_of_bytes(-1),
- expected_last_modified_time(0.0) {
-}
+ expected_last_modified_time(0.0) {}
-URLRequestInfoData::BodyItem::BodyItem(
- Resource* file_ref,
- int64_t start_offset,
- int64_t number_of_bytes,
- PP_Time expected_last_modified_time)
+URLRequestInfoData::BodyItem::BodyItem(Resource* file_ref,
+ int64_t start_offset,
+ int64_t number_of_bytes,
+ PP_Time expected_last_modified_time)
: is_file(true),
file_ref_resource(file_ref),
file_ref_pp_resource(file_ref->pp_resource()),
start_offset(start_offset),
number_of_bytes(number_of_bytes),
- expected_last_modified_time(expected_last_modified_time) {
-}
+ expected_last_modified_time(expected_last_modified_time) {}
URLRequestInfoData::URLRequestInfoData()
: url(),
@@ -63,10 +59,8 @@ URLRequestInfoData::URLRequestInfoData()
custom_user_agent(),
prefetch_buffer_upper_threshold(kDefaultPrefetchBufferUpperThreshold),
prefetch_buffer_lower_threshold(kDefaultPrefetchBufferLowerThreshold),
- body() {
-}
+ body() {}
-URLRequestInfoData::~URLRequestInfoData() {
-}
+URLRequestInfoData::~URLRequestInfoData() {}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/url_response_info_data.cc b/chromium/ppapi/shared_impl/url_response_info_data.cc
index 0b4b0784108..5fc41e54983 100644
--- a/chromium/ppapi/shared_impl/url_response_info_data.cc
+++ b/chromium/ppapi/shared_impl/url_response_info_data.cc
@@ -6,10 +6,8 @@
namespace ppapi {
-URLResponseInfoData::URLResponseInfoData() : status_code(-1) {
-}
+URLResponseInfoData::URLResponseInfoData() : status_code(-1) {}
-URLResponseInfoData::~URLResponseInfoData() {
-}
+URLResponseInfoData::~URLResponseInfoData() {}
} // namespace ppapi
diff --git a/chromium/ppapi/shared_impl/var.cc b/chromium/ppapi/shared_impl/var.cc
index 56def197c67..30201823ec1 100644
--- a/chromium/ppapi/shared_impl/var.cc
+++ b/chromium/ppapi/shared_impl/var.cc
@@ -76,33 +76,19 @@ std::string Var::PPVarToLogString(PP_Var var) {
}
}
-StringVar* Var::AsStringVar() {
- return NULL;
-}
+StringVar* Var::AsStringVar() { return NULL; }
-ArrayBufferVar* Var::AsArrayBufferVar() {
- return NULL;
-}
+ArrayBufferVar* Var::AsArrayBufferVar() { return NULL; }
-NPObjectVar* Var::AsNPObjectVar() {
- return NULL;
-}
+NPObjectVar* Var::AsNPObjectVar() { return NULL; }
-ProxyObjectVar* Var::AsProxyObjectVar() {
- return NULL;
-}
+ProxyObjectVar* Var::AsProxyObjectVar() { return NULL; }
-ArrayVar* Var::AsArrayVar() {
- return NULL;
-}
+ArrayVar* Var::AsArrayVar() { return NULL; }
-DictionaryVar* Var::AsDictionaryVar() {
- return NULL;
-}
+DictionaryVar* Var::AsDictionaryVar() { return NULL; }
-ResourceVar* Var::AsResourceVar() {
- return NULL;
-}
+ResourceVar* Var::AsResourceVar() { return NULL; }
PP_Var Var::GetPPVar() {
int32 id = GetOrCreateVarID();
@@ -116,15 +102,11 @@ PP_Var Var::GetPPVar() {
return result;
}
-int32 Var::GetExistingVarID() const {
- return var_id_;
-}
+int32 Var::GetExistingVarID() const { return var_id_; }
-Var::Var() : var_id_(0) {
-}
+Var::Var() : var_id_(0) {}
-Var::~Var() {
-}
+Var::~Var() {}
int32 Var::GetOrCreateVarID() {
VarTracker* tracker = PpapiGlobals::Get()->GetVarTracker();
@@ -146,27 +128,17 @@ void Var::AssignVarID(int32 id) {
// StringVar -------------------------------------------------------------------
-StringVar::StringVar() {
-}
+StringVar::StringVar() {}
-StringVar::StringVar(const std::string& str)
- : value_(str) {
-}
+StringVar::StringVar(const std::string& str) : value_(str) {}
-StringVar::StringVar(const char* str, uint32 len)
- : value_(str, len) {
-}
+StringVar::StringVar(const char* str, uint32 len) : value_(str, len) {}
-StringVar::~StringVar() {
-}
+StringVar::~StringVar() {}
-StringVar* StringVar::AsStringVar() {
- return this;
-}
+StringVar* StringVar::AsStringVar() { return this; }
-PP_VarType StringVar::GetType() const {
- return PP_VARTYPE_STRING;
-}
+PP_VarType StringVar::GetType() const { return PP_VARTYPE_STRING; }
// static
PP_Var StringVar::StringToPPVar(const std::string& var) {
@@ -176,7 +148,7 @@ PP_Var StringVar::StringToPPVar(const std::string& var) {
// static
PP_Var StringVar::StringToPPVar(const char* data, uint32 len) {
scoped_refptr<StringVar> str(new StringVar(data, len));
- if (!str.get() || !IsStringUTF8(str->value()))
+ if (!str.get() || !base::IsStringUTF8(str->value()))
return PP_MakeNull();
return str->GetPPVar();
}
@@ -201,19 +173,13 @@ PP_Var StringVar::SwapValidatedUTF8StringIntoPPVar(std::string* src) {
// ArrayBufferVar --------------------------------------------------------------
-ArrayBufferVar::ArrayBufferVar() {
-}
+ArrayBufferVar::ArrayBufferVar() {}
-ArrayBufferVar::~ArrayBufferVar() {
-}
+ArrayBufferVar::~ArrayBufferVar() {}
-ArrayBufferVar* ArrayBufferVar::AsArrayBufferVar() {
- return this;
-}
+ArrayBufferVar* ArrayBufferVar::AsArrayBufferVar() { return this; }
-PP_VarType ArrayBufferVar::GetType() const {
- return PP_VARTYPE_ARRAY_BUFFER;
-}
+PP_VarType ArrayBufferVar::GetType() const { return PP_VARTYPE_ARRAY_BUFFER; }
// static
ArrayBufferVar* ArrayBufferVar::FromPPVar(PP_Var var) {
@@ -227,4 +193,3 @@ ArrayBufferVar* ArrayBufferVar::FromPPVar(PP_Var var) {
}
} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/var.h b/chromium/ppapi/shared_impl/var.h
index a52dc3accc3..d5a7a558297 100644
--- a/chromium/ppapi/shared_impl/var.h
+++ b/chromium/ppapi/shared_impl/var.h
@@ -10,7 +10,6 @@
#include "base/compiler_specific.h"
#include "base/memory/ref_counted.h"
#include "base/memory/shared_memory.h"
-#include "base/platform_file.h"
#include "ppapi/c/pp_var.h"
#include "ppapi/shared_impl/host_resource.h"
#include "ppapi/shared_impl/ppapi_shared_export.h"
@@ -172,10 +171,9 @@ class PPAPI_SHARED_EXPORT ArrayBufferVar : public Var {
//
// Returns true if creating the shared memory (and copying) is successful,
// false otherwise.
- virtual bool CopyToNewShmem(
- PP_Instance instance,
- int *host_shm_handle_id,
- base::SharedMemoryHandle *plugin_shm_handle) = 0;
+ virtual bool CopyToNewShmem(PP_Instance instance,
+ int* host_shm_handle_id,
+ base::SharedMemoryHandle* plugin_shm_handle) = 0;
// Var override.
virtual ArrayBufferVar* AsArrayBufferVar() OVERRIDE;
diff --git a/chromium/ppapi/shared_impl/var_tracker.cc b/chromium/ppapi/shared_impl/var_tracker.cc
index bada0ab76dd..7fabb80641c 100644
--- a/chromium/ppapi/shared_impl/var_tracker.cc
+++ b/chromium/ppapi/shared_impl/var_tracker.cc
@@ -19,24 +19,17 @@
namespace ppapi {
VarTracker::VarInfo::VarInfo()
- : var(),
- ref_count(0),
- track_with_no_reference_count(0) {
-}
+ : var(), ref_count(0), track_with_no_reference_count(0) {}
VarTracker::VarInfo::VarInfo(Var* v, int input_ref_count)
- : var(v),
- ref_count(input_ref_count),
- track_with_no_reference_count(0) {
-}
+ : var(v), ref_count(input_ref_count), track_with_no_reference_count(0) {}
VarTracker::VarTracker(ThreadMode thread_mode) : last_var_id_(0) {
if (thread_mode == SINGLE_THREADED)
thread_checker_.reset(new base::ThreadChecker);
}
-VarTracker::~VarTracker() {
-}
+VarTracker::~VarTracker() {}
void VarTracker::CheckThreadingPreconditions() const {
DCHECK(!thread_checker_ || thread_checker_->CalledOnValidThread());
@@ -151,8 +144,8 @@ int32 VarTracker::AddVarInternal(Var* var, AddVarRefMode mode) {
int32 new_id = MakeTypedId(++last_var_id_, PP_ID_TYPE_VAR);
std::pair<VarMap::iterator, bool> was_inserted =
- live_vars_.insert(std::make_pair(new_id,
- VarInfo(var, mode == ADD_VAR_TAKE_ONE_REFERENCE ? 1 : 0)));
+ live_vars_.insert(std::make_pair(
+ new_id, VarInfo(var, mode == ADD_VAR_TAKE_ONE_REFERENCE ? 1 : 0)));
// We should never insert an ID that already exists.
DCHECK(was_inserted.second);
@@ -191,8 +184,8 @@ VarTracker::VarMap::iterator VarTracker::GetLiveVar(const PP_Var& var) {
return live_vars_.find(static_cast<int32>(var.value.as_id));
}
-VarTracker::VarMap::const_iterator VarTracker::GetLiveVar(
- const PP_Var& var) const {
+VarTracker::VarMap::const_iterator VarTracker::GetLiveVar(const PP_Var& var)
+ const {
return live_vars_.find(static_cast<int32>(var.value.as_id));
}
diff --git a/chromium/ppapi/shared_impl/var_tracker.h b/chromium/ppapi/shared_impl/var_tracker.h
index a63c74372bd..814b58cebc2 100644
--- a/chromium/ppapi/shared_impl/var_tracker.h
+++ b/chromium/ppapi/shared_impl/var_tracker.h
@@ -80,8 +80,7 @@ class PPAPI_SHARED_EXPORT VarTracker {
PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes, const void* data);
// Same as above, but copy the contents of the shared memory in |h|
// into the new array buffer.
- PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes,
- base::SharedMemoryHandle h);
+ PP_Var MakeArrayBufferPPVar(uint32 size_in_bytes, base::SharedMemoryHandle h);
// Create an ArrayBuffer and copy the contents of |data| in to it. The
// returned object has 0 reference count in the tracker, and like all
@@ -143,11 +142,10 @@ class PPAPI_SHARED_EXPORT VarTracker {
// Resolves an "id" generated by TrackSharedMemoryHandle back into
// a SharedMemory handle and its size on the host.
// Not implemented on the plugin side.
- virtual bool StopTrackingSharedMemoryHandle(
- int id,
- PP_Instance instance,
- base::SharedMemoryHandle *handle,
- uint32* size_in_bytes) = 0;
+ virtual bool StopTrackingSharedMemoryHandle(int id,
+ PP_Instance instance,
+ base::SharedMemoryHandle* handle,
+ uint32* size_in_bytes) = 0;
protected:
struct PPAPI_SHARED_EXPORT VarInfo {
diff --git a/chromium/ppapi/shared_impl/var_tracker_unittest.cc b/chromium/ppapi/shared_impl/var_tracker_unittest.cc
index 0fe1a03b396..1a4a469ecaf 100644
--- a/chromium/ppapi/shared_impl/var_tracker_unittest.cc
+++ b/chromium/ppapi/shared_impl/var_tracker_unittest.cc
@@ -21,28 +21,16 @@ class MockStringVar : public StringVar {
MockStringVar(const std::string& str) : StringVar(str) {
mock_var_alive_count++;
}
- virtual ~MockStringVar() {
- mock_var_alive_count--;
- }
- bool HasValidVarID() {
- return GetExistingVarID() != 0;
- }
+ virtual ~MockStringVar() { mock_var_alive_count--; }
+ bool HasValidVarID() { return GetExistingVarID() != 0; }
};
class MockObjectVar : public Var {
public:
- MockObjectVar() : Var() {
- mock_var_alive_count++;
- }
- virtual ~MockObjectVar() {
- mock_var_alive_count--;
- }
- virtual PP_VarType GetType() const OVERRIDE {
- return PP_VARTYPE_OBJECT;
- }
- bool HasValidVarID() {
- return GetExistingVarID() != 0;
- }
+ MockObjectVar() : Var() { mock_var_alive_count++; }
+ virtual ~MockObjectVar() { mock_var_alive_count--; }
+ virtual PP_VarType GetType() const OVERRIDE { return PP_VARTYPE_OBJECT; }
+ bool HasValidVarID() { return GetExistingVarID() != 0; }
};
} // namespace
@@ -56,8 +44,7 @@ class VarTrackerTest : public testing::Test {
ASSERT_EQ(0, mock_var_alive_count);
ProxyLock::EnableLockingOnThreadForTest();
}
- virtual void TearDown() OVERRIDE {
- }
+ virtual void TearDown() OVERRIDE {}
VarTracker& var_tracker() { return *globals_.GetVarTracker(); }
diff --git a/chromium/ppapi/shared_impl/var_value_conversions.cc b/chromium/ppapi/shared_impl/var_value_conversions.cc
deleted file mode 100644
index e3a5bddc4f0..00000000000
--- a/chromium/ppapi/shared_impl/var_value_conversions.cc
+++ /dev/null
@@ -1,394 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/shared_impl/var_value_conversions.h"
-
-#include <limits>
-#include <set>
-#include <stack>
-
-#include "base/logging.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/stl_util.h"
-#include "base/values.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/dictionary_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-namespace {
-
-// In CreateValueFromVar(), a stack is used to keep track of conversion progress
-// of array and dictionary vars. VarNode represents elements of that stack.
-struct VarNode {
- VarNode(const PP_Var& in_var, base::Value* in_value)
- : var(in_var),
- value(in_value),
- sentinel(false) {
- }
-
- // This object doesn't hold a reference to it.
- PP_Var var;
- // It is not owned by this object.
- base::Value* value;
- // When this is set to true for a node in the stack, it means that we have
- // finished processing the node itself. However, we keep it in the stack as
- // a sentinel. When it becomes the top element of the stack again, we know
- // that we have processed all the descendants of this node.
- bool sentinel;
-};
-
-// In CreateVarFromValue(), a stack is used to keep track of conversion progress
-// of list and dictionary values. ValueNode represents elements of that stack.
-struct ValueNode {
- ValueNode(const PP_Var& in_var, const base::Value* in_value)
- : var(in_var),
- value(in_value) {
- }
-
- // This object doesn't hold a reference to it.
- PP_Var var;
- // It is not owned by this object.
- const base::Value* value;
-};
-
-// Helper function for CreateValueFromVar(). It only looks at |var| but not its
-// descendants. The conversion result is stored in |value|. If |var| is array or
-// dictionary, a new node is pushed onto |state|.
-//
-// Returns false on failure.
-bool CreateValueFromVarHelper(const std::set<int64_t>& parent_ids,
- const PP_Var& var,
- scoped_ptr<base::Value>* value,
- std::stack<VarNode>* state) {
- switch (var.type) {
- case PP_VARTYPE_UNDEFINED:
- case PP_VARTYPE_NULL: {
- value->reset(base::Value::CreateNullValue());
- return true;
- }
- case PP_VARTYPE_BOOL: {
- value->reset(new base::FundamentalValue(PP_ToBool(var.value.as_bool)));
- return true;
- }
- case PP_VARTYPE_INT32: {
- value->reset(new base::FundamentalValue(var.value.as_int));
- return true;
- }
- case PP_VARTYPE_DOUBLE: {
- value->reset(new base::FundamentalValue(var.value.as_double));
- return true;
- }
- case PP_VARTYPE_STRING: {
- StringVar* string_var = StringVar::FromPPVar(var);
- if (!string_var)
- return false;
-
- value->reset(new base::StringValue(string_var->value()));
- return true;
- }
- case PP_VARTYPE_OBJECT: {
- return false;
- }
- case PP_VARTYPE_ARRAY: {
- if (ContainsKey(parent_ids, var.value.as_id)) {
- // A circular reference is found.
- return false;
- }
-
- value->reset(new base::ListValue());
- state->push(VarNode(var, value->get()));
- return true;
- }
- case PP_VARTYPE_DICTIONARY: {
- if (ContainsKey(parent_ids, var.value.as_id)) {
- // A circular reference is found.
- return false;
- }
-
- value->reset(new base::DictionaryValue());
- state->push(VarNode(var, value->get()));
- return true;
- }
- case PP_VARTYPE_ARRAY_BUFFER: {
- ArrayBufferVar* array_buffer = ArrayBufferVar::FromPPVar(var);
- if (!array_buffer)
- return false;
-
- base::BinaryValue* binary_value =
- base::BinaryValue::CreateWithCopiedBuffer(
- static_cast<const char*>(array_buffer->Map()),
- array_buffer->ByteLength());
- array_buffer->Unmap();
- value->reset(binary_value);
- return true;
- }
- case PP_VARTYPE_RESOURCE: {
- return false;
- }
- }
- NOTREACHED();
- return false;
-}
-
-// Helper function for CreateVarFromValue(). It only looks at |value| but not
-// its descendants. The conversion result is stored in |var|. If |value| is list
-// or dictionary, a new node is pushed onto |state|.
-//
-// Returns false on failure.
-bool CreateVarFromValueHelper(const base::Value& value,
- ScopedPPVar* var,
- std::stack<ValueNode>* state) {
- switch (value.GetType()) {
- case base::Value::TYPE_NULL: {
- *var = PP_MakeNull();
- return true;
- }
- case base::Value::TYPE_BOOLEAN: {
- bool result = false;
- if (value.GetAsBoolean(&result)) {
- *var = PP_MakeBool(PP_FromBool(result));
- return true;
- }
- return false;
- }
- case base::Value::TYPE_INTEGER: {
- int result = 0;
- if (value.GetAsInteger(&result)) {
- *var = PP_MakeInt32(result);
- return true;
- }
- return false;
- }
- case base::Value::TYPE_DOUBLE: {
- double result = 0;
- if (value.GetAsDouble(&result)) {
- *var = PP_MakeDouble(result);
- return true;
- }
- return false;
- }
- case base::Value::TYPE_STRING: {
- std::string result;
- if (value.GetAsString(&result)) {
- *var = ScopedPPVar(ScopedPPVar::PassRef(),
- StringVar::StringToPPVar(result));
- return true;
- }
- return false;
- }
- case base::Value::TYPE_BINARY: {
- const base::BinaryValue& binary_value =
- static_cast<const base::BinaryValue&>(value);
-
- size_t size = binary_value.GetSize();
- if (size > std::numeric_limits<uint32>::max())
- return false;
-
- ScopedPPVar temp(
- ScopedPPVar::PassRef(),
- PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
- static_cast<uint32>(size), binary_value.GetBuffer()));
- if (temp.get().type == PP_VARTYPE_ARRAY_BUFFER) {
- *var = temp;
- return true;
- }
- return false;
- }
- case base::Value::TYPE_DICTIONARY: {
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- *var = ScopedPPVar(ScopedPPVar::PassRef(), dict_var->GetPPVar());
- state->push(ValueNode(var->get(), &value));
- return true;
- }
- case base::Value::TYPE_LIST: {
- scoped_refptr<ArrayVar> array_var(new ArrayVar());
- *var = ScopedPPVar(ScopedPPVar::PassRef(), array_var->GetPPVar());
- state->push(ValueNode(var->get(), &value));
- return true;
- }
- }
- NOTREACHED();
- return false;
-}
-
-} // namespace
-
-base::Value* CreateValueFromVar(const PP_Var& var) {
- // Used to detect circular references.
- std::set<int64_t> parent_ids;
- std::stack<VarNode> state;
- scoped_ptr<base::Value> root_value;
-
- if (!CreateValueFromVarHelper(parent_ids, var, &root_value, &state))
- return NULL;
-
- while (!state.empty()) {
- VarNode& top = state.top();
- if (top.sentinel) {
- parent_ids.erase(top.var.value.as_id);
- state.pop();
- } else if (top.var.type == PP_VARTYPE_DICTIONARY) {
- parent_ids.insert(top.var.value.as_id);
- top.sentinel = true;
-
- DictionaryVar* dict_var = DictionaryVar::FromPPVar(top.var);
- if (!dict_var)
- return NULL;
-
- DCHECK(top.value->GetType() == base::Value::TYPE_DICTIONARY);
- base::DictionaryValue* dict_value =
- static_cast<base::DictionaryValue*>(top.value);
-
- for (DictionaryVar::KeyValueMap::const_iterator iter =
- dict_var->key_value_map().begin();
- iter != dict_var->key_value_map().end();
- ++iter) {
- // Skip the key-value pair if the value is undefined or null.
- if (iter->second.get().type == PP_VARTYPE_UNDEFINED ||
- iter->second.get().type == PP_VARTYPE_NULL) {
- continue;
- }
-
- scoped_ptr<base::Value> child_value;
- if (!CreateValueFromVarHelper(parent_ids, iter->second.get(),
- &child_value, &state)) {
- return NULL;
- }
-
- dict_value->SetWithoutPathExpansion(iter->first, child_value.release());
- }
- } else if (top.var.type == PP_VARTYPE_ARRAY) {
- parent_ids.insert(top.var.value.as_id);
- top.sentinel = true;
-
- ArrayVar* array_var = ArrayVar::FromPPVar(top.var);
- if (!array_var)
- return NULL;
-
- DCHECK(top.value->GetType() == base::Value::TYPE_LIST);
- base::ListValue* list_value = static_cast<base::ListValue*>(top.value);
-
- for (ArrayVar::ElementVector::const_iterator iter =
- array_var->elements().begin();
- iter != array_var->elements().end();
- ++iter) {
- scoped_ptr<base::Value> child_value;
- if (!CreateValueFromVarHelper(parent_ids, iter->get(), &child_value,
- &state)) {
- return NULL;
- }
-
- list_value->Append(child_value.release());
- }
- } else {
- NOTREACHED();
- return NULL;
- }
- }
- DCHECK(parent_ids.empty());
- return root_value.release();
-}
-
-PP_Var CreateVarFromValue(const base::Value& value) {
- std::stack<ValueNode> state;
- ScopedPPVar root_var;
-
- if (!CreateVarFromValueHelper(value, &root_var, &state))
- return PP_MakeUndefined();
-
- while (!state.empty()) {
- ValueNode top = state.top();
- state.pop();
-
- if (top.value->GetType() == base::Value::TYPE_DICTIONARY) {
- const base::DictionaryValue* dict_value =
- static_cast<const base::DictionaryValue*>(top.value);
- DictionaryVar* dict_var = DictionaryVar::FromPPVar(top.var);
- DCHECK(dict_var);
- for (base::DictionaryValue::Iterator iter(*dict_value);
- !iter.IsAtEnd();
- iter.Advance()) {
- ScopedPPVar child_var;
- if (!CreateVarFromValueHelper(iter.value(), &child_var, &state) ||
- !dict_var->SetWithStringKey(iter.key(), child_var.get())) {
- return PP_MakeUndefined();
- }
- }
- } else if (top.value->GetType() == base::Value::TYPE_LIST) {
- const base::ListValue* list_value =
- static_cast<const base::ListValue*>(top.value);
- ArrayVar* array_var = ArrayVar::FromPPVar(top.var);
- DCHECK(array_var);
- for (base::ListValue::const_iterator iter = list_value->begin();
- iter != list_value->end();
- ++iter) {
- ScopedPPVar child_var;
- if (!CreateVarFromValueHelper(**iter, &child_var, &state))
- return PP_MakeUndefined();
-
- array_var->elements().push_back(child_var);
- }
- } else {
- NOTREACHED();
- return PP_MakeUndefined();
- }
- }
-
- return root_var.Release();
-}
-
-base::ListValue* CreateListValueFromVarVector(
- const std::vector<PP_Var>& vars) {
- scoped_ptr<base::ListValue> list_value(new base::ListValue());
-
- for (std::vector<PP_Var>::const_iterator iter = vars.begin();
- iter != vars.end();
- ++iter) {
- base::Value* value = CreateValueFromVar(*iter);
- if (!value)
- return NULL;
- list_value->Append(value);
- }
- return list_value.release();
-}
-
-bool CreateVarVectorFromListValue(const base::ListValue& list_value,
- std::vector<PP_Var>* vars) {
- if (!vars)
- return false;
-
- std::vector<ScopedPPVar> result;
- result.reserve(list_value.GetSize());
- for (base::ListValue::const_iterator iter = list_value.begin();
- iter != list_value.end();
- ++iter) {
- ScopedPPVar child_var(ScopedPPVar::PassRef(),
- CreateVarFromValue(**iter));
- if (child_var.get().type == PP_VARTYPE_UNDEFINED)
- return false;
-
- result.push_back(child_var);
- }
-
- vars->clear();
- vars->reserve(result.size());
- for (std::vector<ScopedPPVar>::iterator iter = result.begin();
- iter != result.end();
- ++iter) {
- vars->push_back(iter->Release());
- }
-
- return true;
-}
-
-} // namespace ppapi
-
diff --git a/chromium/ppapi/shared_impl/var_value_conversions.h b/chromium/ppapi/shared_impl/var_value_conversions.h
deleted file mode 100644
index b72e7ccfd40..00000000000
--- a/chromium/ppapi/shared_impl/var_value_conversions.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_SHARED_IMPL_VAR_VALUE_CONVERSIONS_H_
-#define PPAPI_SHARED_IMPL_VAR_VALUE_CONVERSIONS_H_
-
-#include <vector>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace base {
-class ListValue;
-class Value;
-}
-
-namespace ppapi {
-
-// Converts a PP_Var to a base::Value object. The caller takes ownership of the
-// returned object.
-//
-// Both PP_VARTYPE_UNDEFINED and PP_VARTYPE_NULL are converted to
-// base::Value::TYPE_NULL. In dictionary vars, key-value pairs whose value is
-// undefined (PP_VARTYPE_UNDEFINED) or null (PP_VARTYPE_NULL) are ignored. If a
-// node in |var| appears more than once, it is duplicated in the result. For
-// example, if |var| is an array and it has two elements pointing to the same
-// dictionary, the resulting list value will have two copies of the dictionary.
-//
-// The conversion fails and returns NULL if
-// - |var| is object (PP_VARTYPE_OBJECT); or
-// - |var| is an array or dictionary, and calling CreateValueFromVar() on any of
-// the array elements or dictionary values fails; or
-// - there exist circular references, i.e., an array or dictionary is its own
-// ancestor/descendant.
-PPAPI_SHARED_EXPORT base::Value* CreateValueFromVar(const PP_Var& var);
-
-// The returned var has had 1 ref added on behalf of the caller.
-// Returns an undefined var if the conversion fails.
-PPAPI_SHARED_EXPORT PP_Var CreateVarFromValue(const base::Value& value);
-
-// Calls CreateValueFromVar() on each element of |vars| and puts them in a
-// base::ListValue. The caller takes ownership of the returned object.
-//
-// The conversion fails and returns NULL if any of the calls to
-// CreateValueFromVar() fails.
-PPAPI_SHARED_EXPORT base::ListValue* CreateListValueFromVarVector(
- const std::vector<PP_Var>& vars);
-
-// Calls CreateVarFromValue() on each element of |list_value| and puts them in
-// |vars|. The returned vars have had 1 ref added on behalf of the caller.
-//
-// The conversion fails and returns false if any of the calls to
-// CreateVarFromValue() fails. In that case, |vars| is untouched.
-PPAPI_SHARED_EXPORT bool CreateVarVectorFromListValue(
- const base::ListValue& list_value, std::vector<PP_Var>* vars);
-
-} // namespace ppapi
-
-#endif // PPAPI_SHARED_IMPL_VAR_VALUE_CONVERSIONS_H_
diff --git a/chromium/ppapi/shared_impl/var_value_conversions_unittest.cc b/chromium/ppapi/shared_impl/var_value_conversions_unittest.cc
deleted file mode 100644
index f8a0a3129e8..00000000000
--- a/chromium/ppapi/shared_impl/var_value_conversions_unittest.cc
+++ /dev/null
@@ -1,396 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/shared_impl/var_value_conversions.h"
-
-#include <cmath>
-#include <cstring>
-
-#include "base/logging.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/values.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/dictionary_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/test_globals.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace ppapi {
-namespace {
-
-bool Equals(const base::Value& value, const PP_Var& var) {
- switch (value.GetType()) {
- case base::Value::TYPE_NULL: {
- return var.type == PP_VARTYPE_NULL || var.type == PP_VARTYPE_UNDEFINED;
- }
- case base::Value::TYPE_BOOLEAN: {
- bool result = false;
- return var.type == PP_VARTYPE_BOOL &&
- value.GetAsBoolean(&result) &&
- result == PP_ToBool(var.value.as_bool);
- }
- case base::Value::TYPE_INTEGER: {
- int result = 0;
- return var.type == PP_VARTYPE_INT32 &&
- value.GetAsInteger(&result) &&
- result == var.value.as_int;
- }
- case base::Value::TYPE_DOUBLE: {
- double result = 0;
- return var.type == PP_VARTYPE_DOUBLE &&
- value.GetAsDouble(&result) &&
- fabs(result - var.value.as_double) < 1.0e-4;
- }
- case base::Value::TYPE_STRING: {
- std::string result;
- StringVar* string_var = StringVar::FromPPVar(var);
- return string_var &&
- value.GetAsString(&result) &&
- result == string_var->value();
- }
- case base::Value::TYPE_BINARY: {
- const base::BinaryValue& binary_value =
- static_cast<const base::BinaryValue&>(value);
- ArrayBufferVar* array_buffer_var = ArrayBufferVar::FromPPVar(var);
- if (!array_buffer_var ||
- binary_value.GetSize() != array_buffer_var->ByteLength()) {
- return false;
- }
-
- bool result = !memcmp(binary_value.GetBuffer(), array_buffer_var->Map(),
- binary_value.GetSize());
- array_buffer_var->Unmap();
- return result;
- }
- case base::Value::TYPE_DICTIONARY: {
- const base::DictionaryValue& dict_value =
- static_cast<const base::DictionaryValue&>(value);
- DictionaryVar* dict_var = DictionaryVar::FromPPVar(var);
- if (!dict_var)
- return false;
-
- size_t count = 0;
- for (DictionaryVar::KeyValueMap::const_iterator iter =
- dict_var->key_value_map().begin();
- iter != dict_var->key_value_map().end();
- ++iter) {
- if (iter->second.get().type == PP_VARTYPE_UNDEFINED ||
- iter->second.get().type == PP_VARTYPE_NULL) {
- continue;
- }
-
- ++count;
- const base::Value* sub_value = NULL;
- if (!dict_value.GetWithoutPathExpansion(iter->first, &sub_value) ||
- !Equals(*sub_value, iter->second.get())) {
- return false;
- }
- }
- return count == dict_value.size();
- }
- case base::Value::TYPE_LIST: {
- const base::ListValue& list_value =
- static_cast<const base::ListValue&>(value);
- ArrayVar* array_var = ArrayVar::FromPPVar(var);
- if (!array_var || list_value.GetSize() != array_var->elements().size())
- return false;
-
- base::ListValue::const_iterator value_iter = list_value.begin();
- ArrayVar::ElementVector::const_iterator var_iter =
- array_var->elements().begin();
- for (; value_iter != list_value.end() &&
- var_iter != array_var->elements().end();
- ++value_iter, ++var_iter) {
- if (!Equals(**value_iter, var_iter->get()))
- return false;
- }
- return true;
- }
- }
- NOTREACHED();
- return false;
-}
-
-bool ConvertVarAndVerify(const PP_Var& var) {
- scoped_ptr<base::Value> value(CreateValueFromVar(var));
- if (value.get())
- return Equals(*value, var);
- return false;
-}
-
-bool ConvertValueAndVerify(const base::Value& value) {
- ScopedPPVar var(ScopedPPVar::PassRef(), CreateVarFromValue(value));
- if (var.get().type != PP_VARTYPE_UNDEFINED)
- return Equals(value, var.get());
- return false;
-}
-
-class VarValueConversionsTest : public testing::Test {
- public:
- VarValueConversionsTest() {
- }
- virtual ~VarValueConversionsTest() {
- }
-
- // testing::Test implementation.
- virtual void SetUp() {
- ProxyLock::EnableLockingOnThreadForTest();
- ProxyLock::Acquire();
- }
- virtual void TearDown() {
- ASSERT_TRUE(PpapiGlobals::Get()->GetVarTracker()->GetLiveVars().empty());
- ProxyLock::Release();
- }
-
- private:
- TestGlobals globals_;
-};
-
-} // namespace
-
-TEST_F(VarValueConversionsTest, CreateValueFromVar) {
- {
- // Var holding a ref to itself is not a valid input.
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- ScopedPPVar var_1(ScopedPPVar::PassRef(), dict_var->GetPPVar());
- scoped_refptr<ArrayVar> array_var(new ArrayVar());
- ScopedPPVar var_2(ScopedPPVar::PassRef(), array_var->GetPPVar());
-
- ASSERT_TRUE(dict_var->SetWithStringKey("key_1", var_2.get()));
- ASSERT_TRUE(ConvertVarAndVerify(var_1.get()));
-
- ASSERT_TRUE(array_var->Set(0, var_1.get()));
- scoped_ptr<base::Value> value(CreateValueFromVar(var_1.get()));
- ASSERT_EQ(NULL, value.get());
-
- // Make sure |var_1| doesn't indirectly hold a ref to itself, otherwise it
- // is leaked.
- dict_var->DeleteWithStringKey("key_1");
- }
-
- // Vars of null or undefined type are converted to null values.
- {
- ASSERT_TRUE(ConvertVarAndVerify(PP_MakeNull()));
- ASSERT_TRUE(ConvertVarAndVerify(PP_MakeUndefined()));
- }
-
- {
- // Test empty dictionary.
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- ScopedPPVar var(ScopedPPVar::PassRef(), dict_var->GetPPVar());
-
- ASSERT_TRUE(ConvertVarAndVerify(var.get()));
- }
-
- {
- // Key-value pairs whose value is undefined or null are ignored.
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- ASSERT_TRUE(dict_var->SetWithStringKey("key_1", PP_MakeUndefined()));
- ASSERT_TRUE(dict_var->SetWithStringKey("key_2", PP_MakeInt32(1)));
- ASSERT_TRUE(dict_var->SetWithStringKey("key_3", PP_MakeNull()));
- ScopedPPVar var(ScopedPPVar::PassRef(), dict_var->GetPPVar());
-
- ASSERT_TRUE(ConvertVarAndVerify(var.get()));
- }
-
- {
- // The same PP_Var is allowed to appear multiple times.
- scoped_refptr<DictionaryVar> dict_var_1(new DictionaryVar());
- ScopedPPVar dict_pp_var_1(ScopedPPVar::PassRef(), dict_var_1->GetPPVar());
- scoped_refptr<DictionaryVar> dict_var_2(new DictionaryVar());
- ScopedPPVar dict_pp_var_2(ScopedPPVar::PassRef(), dict_var_2->GetPPVar());
- scoped_refptr<StringVar> string_var(new StringVar("string_value"));
- ScopedPPVar string_pp_var(ScopedPPVar::PassRef(), string_var->GetPPVar());
-
- ASSERT_TRUE(dict_var_1->SetWithStringKey("key_1", dict_pp_var_2.get()));
- ASSERT_TRUE(dict_var_1->SetWithStringKey("key_2", dict_pp_var_2.get()));
- ASSERT_TRUE(dict_var_1->SetWithStringKey("key_3", string_pp_var.get()));
- ASSERT_TRUE(dict_var_2->SetWithStringKey("key_4", string_pp_var.get()));
-
- ASSERT_TRUE(ConvertVarAndVerify(dict_pp_var_1.get()));
- }
-
- {
- // Test basic cases for array.
- scoped_refptr<ArrayVar> array_var(new ArrayVar());
- ScopedPPVar var(ScopedPPVar::PassRef(), array_var->GetPPVar());
-
- ASSERT_TRUE(ConvertVarAndVerify(var.get()));
-
- ASSERT_TRUE(array_var->Set(0, PP_MakeDouble(1)));
-
- ASSERT_TRUE(ConvertVarAndVerify(var.get()));
- }
-
- {
- // Test more complex inputs.
- scoped_refptr<DictionaryVar> dict_var_1(new DictionaryVar());
- ScopedPPVar dict_pp_var_1(ScopedPPVar::PassRef(), dict_var_1->GetPPVar());
- scoped_refptr<DictionaryVar> dict_var_2(new DictionaryVar());
- ScopedPPVar dict_pp_var_2(ScopedPPVar::PassRef(), dict_var_2->GetPPVar());
- scoped_refptr<ArrayVar> array_var(new ArrayVar());
- ScopedPPVar array_pp_var(ScopedPPVar::PassRef(), array_var->GetPPVar());
- scoped_refptr<StringVar> string_var(new StringVar("string_value"));
- ScopedPPVar string_pp_var(ScopedPPVar::PassRef(), string_var->GetPPVar());
-
- ASSERT_TRUE(dict_var_1->SetWithStringKey("null_key", PP_MakeNull()));
- ASSERT_TRUE(dict_var_1->SetWithStringKey("string_key",
- string_pp_var.get()));
- ASSERT_TRUE(dict_var_1->SetWithStringKey("dict_key", dict_pp_var_2.get()));
-
- ASSERT_TRUE(dict_var_2->SetWithStringKey("undefined_key",
- PP_MakeUndefined()));
- ASSERT_TRUE(dict_var_2->SetWithStringKey("double_key", PP_MakeDouble(1)));
- ASSERT_TRUE(dict_var_2->SetWithStringKey("array_key", array_pp_var.get()));
-
- ASSERT_TRUE(array_var->Set(0, PP_MakeInt32(2)));
- ASSERT_TRUE(array_var->Set(1, PP_MakeBool(PP_TRUE)));
- ASSERT_TRUE(array_var->SetLength(4));
-
- ASSERT_TRUE(ConvertVarAndVerify(dict_pp_var_1.get()));
- }
-
- {
- // Test that dictionary keys containing '.' are handled correctly.
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- ScopedPPVar dict_pp_var(ScopedPPVar::PassRef(), dict_var->GetPPVar());
-
- ASSERT_TRUE(dict_var->SetWithStringKey("double.key", PP_MakeDouble(1)));
- ASSERT_TRUE(dict_var->SetWithStringKey("int.key..name", PP_MakeInt32(2)));
-
- ASSERT_TRUE(ConvertVarAndVerify(dict_pp_var.get()));
- }
-}
-
-TEST_F(VarValueConversionsTest, CreateVarFromValue) {
- {
- // Test basic cases for dictionary.
- base::DictionaryValue dict_value;
- ASSERT_TRUE(ConvertValueAndVerify(dict_value));
-
- dict_value.SetInteger("int_key", 1);
- ASSERT_TRUE(ConvertValueAndVerify(dict_value));
- }
-
- {
- // Test basic cases for array.
- base::ListValue list_value;
- ASSERT_TRUE(ConvertValueAndVerify(list_value));
-
- list_value.AppendInteger(1);
- ASSERT_TRUE(ConvertValueAndVerify(list_value));
- }
-
- {
- // Test more complex inputs.
- base::DictionaryValue dict_value;
- dict_value.SetString("string_key", "string_value");
- dict_value.SetDouble("dict_key.double_key", 1);
-
- scoped_ptr<base::ListValue> list_value(new base::ListValue());
- list_value->AppendInteger(2);
- list_value->AppendBoolean(true);
- list_value->Append(base::Value::CreateNullValue());
-
- dict_value.Set("dict_key.array_key", list_value.release());
-
- ASSERT_TRUE(ConvertValueAndVerify(dict_value));
- }
-}
-
-TEST_F(VarValueConversionsTest, CreateListValueFromVarVector) {
- {
- // Test empty var vector.
- scoped_ptr<base::ListValue> list_value(
- CreateListValueFromVarVector(std::vector<PP_Var>()));
- ASSERT_TRUE(list_value.get());
- ASSERT_EQ(0u, list_value->GetSize());
- }
-
- {
- // Test more complex inputs.
- scoped_refptr<StringVar> string_var(new StringVar("string_value"));
- ScopedPPVar string_pp_var(ScopedPPVar::PassRef(), string_var->GetPPVar());
-
- scoped_refptr<DictionaryVar> dict_var(new DictionaryVar());
- ScopedPPVar dict_pp_var(ScopedPPVar::PassRef(), dict_var->GetPPVar());
- ASSERT_TRUE(dict_var->SetWithStringKey("null_key", PP_MakeNull()));
- ASSERT_TRUE(dict_var->SetWithStringKey("string_key", string_pp_var.get()));
-
- scoped_refptr<ArrayVar> array_var(new ArrayVar());
- ScopedPPVar array_pp_var(ScopedPPVar::PassRef(), array_var->GetPPVar());
- ASSERT_TRUE(array_var->Set(0, PP_MakeInt32(2)));
- ASSERT_TRUE(array_var->Set(1, PP_MakeBool(PP_TRUE)));
- ASSERT_TRUE(array_var->SetLength(4));
-
- std::vector<PP_Var> vars;
- vars.push_back(dict_pp_var.get());
- vars.push_back(string_pp_var.get());
- vars.push_back(array_pp_var.get());
- vars.push_back(PP_MakeDouble(1));
- vars.push_back(PP_MakeUndefined());
- vars.push_back(PP_MakeNull());
-
- scoped_ptr<base::ListValue> list_value(CreateListValueFromVarVector(vars));
-
- ASSERT_TRUE(list_value.get());
- ASSERT_EQ(vars.size(), list_value->GetSize());
-
- for (size_t i = 0; i < list_value->GetSize(); ++i) {
- const base::Value* value = NULL;
- ASSERT_TRUE(list_value->Get(i, &value));
- ASSERT_TRUE(Equals(*value, vars[i]));
- }
- }
-}
-
-TEST_F(VarValueConversionsTest, CreateVarVectorFromListValue) {
- {
- // Test empty list.
- base::ListValue list_value;
- std::vector<PP_Var> vars;
- ASSERT_TRUE(CreateVarVectorFromListValue(list_value, &vars));
- ASSERT_EQ(0u, vars.size());
- }
-
- {
- // Test more complex inputs.
- base::ListValue list_value;
-
- scoped_ptr<base::DictionaryValue> dict_value(new base::DictionaryValue());
- dict_value->SetString("string_key", "string_value");
-
- scoped_ptr<base::ListValue> sub_list_value(new base::ListValue());
- sub_list_value->AppendInteger(2);
- sub_list_value->AppendBoolean(true);
-
- list_value.Append(dict_value.release());
- list_value.AppendString("string_value");
- list_value.Append(sub_list_value.release());
- list_value.AppendDouble(1);
- list_value.Append(base::Value::CreateNullValue());
-
- std::vector<PP_Var> vars;
- ASSERT_TRUE(CreateVarVectorFromListValue(list_value, &vars));
-
- ASSERT_EQ(list_value.GetSize(), vars.size());
-
- for (size_t i = 0; i < list_value.GetSize(); ++i) {
- const base::Value* value = NULL;
- ASSERT_TRUE(list_value.Get(i, &value));
- ASSERT_TRUE(Equals(*value, vars[i]));
-
- PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(vars[i]);
- }
- }
-}
-
-} // namespace ppapi
diff --git a/chromium/ppapi/tests/extensions/extensions.gyp b/chromium/ppapi/tests/extensions/extensions.gyp
index d063b83f47e..62cbb3e4cd8 100644
--- a/chromium/ppapi/tests/extensions/extensions.gyp
+++ b/chromium/ppapi/tests/extensions/extensions.gyp
@@ -8,24 +8,44 @@
],
'targets': [
{
- 'target_name': 'ppapi_tests_extensions_socket',
+ 'target_name': 'ppapi_tests_extensions_background_keepalive',
'type': 'none',
'variables': {
- 'nexe_target': 'ppapi_tests_extensions_socket',
+ 'nexe_target': 'ppapi_tests_extensions_background_keepalive',
+ # Only newlib build is used in tests, no need to build others.
'build_newlib': 1,
'build_glibc': 0,
'build_pnacl_newlib': 0,
- 'nexe_destination_dir': 'test_data/ppapi/tests/extensions/socket',
+ 'nexe_destination_dir': 'test_data/ppapi/tests/extensions/background_keepalive',
'sources': [
- 'socket/test_socket.cc',
+ 'background_keepalive/background.cc',
+ ],
+ 'test_files': [
+ 'background_keepalive/background.js',
+ 'background_keepalive/manifest.json',
+ ],
+ },
+ },
+ {
+ 'target_name': 'ppapi_tests_extensions_media_galleries',
+ 'type': 'none',
+ 'variables': {
+ 'nexe_target': 'ppapi_tests_extensions_media_galleries',
+ # Only newlib build is used in tests, no need to build others.
+ 'build_newlib': 1,
+ 'build_glibc': 0,
+ 'build_pnacl_newlib': 0,
+ 'nexe_destination_dir': 'test_data/ppapi/tests/extensions/media_galleries',
+ 'sources': [
+ 'media_galleries/test_galleries.cc',
'<(DEPTH)/ppapi/tests/test_utils.cc',
'<(DEPTH)/ppapi/tests/test_utils.h',
],
'test_files': [
- 'socket/controller.js',
- 'socket/index.html',
- 'socket/main.js',
- 'socket/manifest.json',
+ 'media_galleries/background.js',
+ 'media_galleries/index.html',
+ 'media_galleries/manifest.json',
+ 'media_galleries/test.js',
],
},
},
diff --git a/chromium/ppapi/thunk/OWNERS b/chromium/ppapi/thunk/OWNERS
new file mode 100644
index 00000000000..80e764b4e0e
--- /dev/null
+++ b/chromium/ppapi/thunk/OWNERS
@@ -0,0 +1,12 @@
+# New interfaces that use dev channel permissions should have a security review
+# until http://crbug.com/386743 is resolved.
+per-file interfaces_ppb_public_dev_channel.h=set noparent
+per-file interfaces_ppb_public_dev_channel.h=cevans@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=dcheng@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=inferno@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=jln@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=jschuh@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=kenrb@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=nasko@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=palmer@chromium.org
+per-file interfaces_ppb_public_dev_channel.h=tsepez@chromium.org
diff --git a/chromium/ppapi/thunk/enter.cc b/chromium/ppapi/thunk/enter.cc
index 47889dd1577..03937c9b533 100644
--- a/chromium/ppapi/thunk/enter.cc
+++ b/chromium/ppapi/thunk/enter.cc
@@ -32,16 +32,19 @@ namespace subtle {
EnterBase::EnterBase()
: resource_(NULL),
retval_(PP_OK) {
+ PpapiGlobals::Get()->MarkPluginIsActive();
}
EnterBase::EnterBase(PP_Resource resource)
: resource_(GetResource(resource)),
retval_(PP_OK) {
+ PpapiGlobals::Get()->MarkPluginIsActive();
}
EnterBase::EnterBase(PP_Instance instance, SingletonResourceID resource_id)
: resource_(GetSingletonResource(instance, resource_id)),
retval_(PP_OK) {
+ PpapiGlobals::Get()->MarkPluginIsActive();
}
EnterBase::EnterBase(PP_Resource resource,
@@ -49,16 +52,17 @@ EnterBase::EnterBase(PP_Resource resource,
: resource_(GetResource(resource)),
retval_(PP_OK) {
callback_ = new TrackedCallback(resource_, callback);
+ PpapiGlobals::Get()->MarkPluginIsActive();
}
EnterBase::EnterBase(PP_Instance instance, SingletonResourceID resource_id,
const PP_CompletionCallback& callback)
: resource_(GetSingletonResource(instance, resource_id)),
retval_(PP_OK) {
- DCHECK(resource_ || !instance);
if (!resource_)
retval_ = PP_ERROR_BADARGUMENT;
callback_ = new TrackedCallback(resource_, callback);
+ PpapiGlobals::Get()->MarkPluginIsActive();
}
EnterBase::~EnterBase() {
diff --git a/chromium/ppapi/thunk/extensions_common_api.h b/chromium/ppapi/thunk/extensions_common_api.h
deleted file mode 100644
index 5afb73fac90..00000000000
--- a/chromium/ppapi/thunk/extensions_common_api.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_THUNK_EXTENSIONS_COMMON_API_H_
-#define PPAPI_THUNK_EXTENSIONS_COMMON_API_H_
-
-#include <string>
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT ExtensionsCommon_API {
- public:
- virtual ~ExtensionsCommon_API() {}
-
- virtual int32_t CallRenderer(const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) = 0;
- virtual void PostRenderer(const std::string& request_name,
- const std::vector<PP_Var>& args) = 0;
- virtual int32_t CallBrowser(const std::string& request_name,
- const std::vector<PP_Var>& input_args,
- const std::vector<PP_Var*>& output_args,
- scoped_refptr<TrackedCallback> callback) = 0;
- virtual void PostBrowser(const std::string& request_name,
- const std::vector<PP_Var>& args) = 0;
-
- static const SingletonResourceID kSingletonResourceID =
- EXTENSIONS_COMMON_SINGLETON_ID;
-};
-
-} // namespace thunk
-} // namespace ppapi
-
-#endif // PPAPI_THUNK_EXTENSIONS_COMMON_API_H_
diff --git a/chromium/ppapi/thunk/interfaces_legacy.h b/chromium/ppapi/thunk/interfaces_legacy.h
index 60518249a06..db47faea5aa 100644
--- a/chromium/ppapi/thunk/interfaces_legacy.h
+++ b/chromium/ppapi/thunk/interfaces_legacy.h
@@ -27,14 +27,17 @@ LEGACY_IFACE(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0,
::ppapi::PPB_OpenGLES2_Shared::GetChromiumMapSubInterface())
LEGACY_IFACE(PPB_OPENGLES2_QUERY_INTERFACE,
::ppapi::PPB_OpenGLES2_Shared::GetQueryInterface())
+LEGACY_IFACE(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE,
+ ::ppapi::PPB_OpenGLES2_Shared::GetDrawBuffersInterface())
LEGACY_IFACE(PPB_PROXY_PRIVATE_INTERFACE, PPB_Proxy_Impl::GetInterface())
-LEGACY_IFACE(PPB_UMA_PRIVATE_INTERFACE, PPB_UMA_Private_Impl::GetInterface())
LEGACY_IFACE(PPB_VAR_DEPRECATED_INTERFACE,
PPB_Var_Deprecated_Impl::GetVarDeprecatedInterface())
LEGACY_IFACE(PPB_VAR_INTERFACE_1_0,
::ppapi::PPB_Var_Shared::GetVarInterface1_0())
LEGACY_IFACE(PPB_VAR_INTERFACE_1_1,
::ppapi::PPB_Var_Shared::GetVarInterface1_1())
+LEGACY_IFACE(PPB_VAR_INTERFACE_1_2,
+ ::ppapi::PPB_Var_Shared::GetVarInterface1_2())
LEGACY_IFACE(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
::ppapi::PPB_Var_Shared::GetVarArrayBufferInterface1_0())
diff --git a/chromium/ppapi/thunk/interfaces_postamble.h b/chromium/ppapi/thunk/interfaces_postamble.h
index cebfe74e5d2..c845b5f072e 100644
--- a/chromium/ppapi/thunk/interfaces_postamble.h
+++ b/chromium/ppapi/thunk/interfaces_postamble.h
@@ -9,17 +9,7 @@
#undef PROXIED_API
#endif
-#ifdef UNDEFINE_UNPROXIED_API
-#undef UNDEFINE_UNPROXIED_API
-#undef UNPROXIED_API
-#endif
-
#ifdef UNDEFINE_PROXIED_IFACE
#undef UNDEFINE_PROXIED_IFACE
#undef PROXIED_IFACE
#endif
-
-#ifdef UNDEFINE_UNPROXIED_IFACE
-#undef UNDEFINE_UNPROXIED_IFACE
-#undef UNPROXIED_IFACE
-#endif
diff --git a/chromium/ppapi/thunk/interfaces_ppb_private.h b/chromium/ppapi/thunk/interfaces_ppb_private.h
index 11d5e526709..e4aff229127 100644
--- a/chromium/ppapi/thunk/interfaces_ppb_private.h
+++ b/chromium/ppapi/thunk/interfaces_ppb_private.h
@@ -11,59 +11,59 @@
PROXIED_API(PPB_X509Certificate_Private)
-PROXIED_IFACE(PPB_X509Certificate_Private,
- PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1,
PPB_X509Certificate_Private_0_1)
#if !defined(OS_NACL)
PROXIED_API(PPB_Broker)
-PROXIED_IFACE(PPB_Broker, PPB_BROKER_TRUSTED_INTERFACE_0_2,
+PROXIED_IFACE(PPB_BROKER_TRUSTED_INTERFACE_0_2,
PPB_BrokerTrusted_0_2)
-PROXIED_IFACE(PPB_Broker, PPB_BROKER_TRUSTED_INTERFACE_0_3,
+PROXIED_IFACE(PPB_BROKER_TRUSTED_INTERFACE_0_3,
PPB_BrokerTrusted_0_3)
-PROXIED_IFACE(PPB_Instance, PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0,
+PROXIED_IFACE(PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0,
PPB_BrowserFont_Trusted_1_0)
-PROXIED_IFACE(PPB_Instance,
- PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_9,
- PPB_ContentDecryptor_Private_0_9)
-PROXIED_IFACE(PPB_Instance, PPB_CHARSET_TRUSTED_INTERFACE_1_0,
+PROXIED_IFACE(PPB_CONTENTDECRYPTOR_PRIVATE_INTERFACE_0_12,
+ PPB_ContentDecryptor_Private_0_12)
+PROXIED_IFACE(PPB_CHARSET_TRUSTED_INTERFACE_1_0,
PPB_CharSet_Trusted_1_0)
-PROXIED_IFACE(NoAPIName, PPB_FILECHOOSER_TRUSTED_INTERFACE_0_5,
+PROXIED_IFACE(PPB_FILECHOOSER_TRUSTED_INTERFACE_0_5,
PPB_FileChooserTrusted_0_5)
-PROXIED_IFACE(NoAPIName, PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6,
+PROXIED_IFACE(PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6,
PPB_FileChooserTrusted_0_6)
-PROXIED_IFACE(NoAPIName, PPB_FILEREFPRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_FILEREFPRIVATE_INTERFACE_0_1,
PPB_FileRefPrivate_0_1)
-// TODO(xhwang): Move PPB_Flash_DeviceID back to interfaces_ppb_private_flash.h.
-PROXIED_IFACE(NoAPIName, PPB_FLASH_DEVICEID_INTERFACE_1_0,
- PPB_Flash_DeviceID_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_FLASHFULLSCREEN_INTERFACE_0_1,
+PROXIED_IFACE(PPB_FIND_PRIVATE_INTERFACE_0_3,
+ PPB_Find_Private_0_3)
+PROXIED_IFACE(PPB_FLASHFULLSCREEN_INTERFACE_0_1,
PPB_FlashFullscreen_0_1)
-PROXIED_IFACE(PPB_Instance, PPB_FLASHFULLSCREEN_INTERFACE_1_0,
+PROXIED_IFACE(PPB_FLASHFULLSCREEN_INTERFACE_1_0,
PPB_FlashFullscreen_0_1)
-PROXIED_IFACE(NoAPIName, PPB_PDF_INTERFACE,
+PROXIED_IFACE(PPB_PDF_INTERFACE,
PPB_PDF)
#if defined(OS_CHROMEOS)
-PROXIED_IFACE(NoAPIName, PPB_PLATFORMVERIFICATION_PRIVATE_INTERFACE_0_2,
+PROXIED_IFACE(PPB_PLATFORMVERIFICATION_PRIVATE_INTERFACE_0_2,
PPB_PlatformVerification_Private_0_2)
#endif
-PROXIED_IFACE(NoAPIName, PPB_TALK_PRIVATE_INTERFACE_1_0,
+PROXIED_IFACE(PPB_TALK_PRIVATE_INTERFACE_1_0,
PPB_Talk_Private_1_0)
-PROXIED_IFACE(NoAPIName, PPB_TALK_PRIVATE_INTERFACE_2_0,
+PROXIED_IFACE(PPB_TALK_PRIVATE_INTERFACE_2_0,
PPB_Talk_Private_2_0)
-PROXIED_IFACE(NoAPIName, PPB_URLLOADERTRUSTED_INTERFACE_0_3,
+PROXIED_IFACE(PPB_URLLOADERTRUSTED_INTERFACE_0_3,
PPB_URLLoaderTrusted_0_3)
-PROXIED_IFACE(NoAPIName, PPB_OUTPUTPROTECTION_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_OUTPUTPROTECTION_PRIVATE_INTERFACE_0_1,
PPB_OutputProtection_Private_0_1)
// Hack to keep font working. The Font 0.6 API is binary compatible with
// BrowserFont 1.0, so just map the string to the same thing.
// TODO(brettw) remove support for the old Font API.
-PROXIED_IFACE(PPB_Instance, PPB_FONT_DEV_INTERFACE_0_6,
+PROXIED_IFACE(PPB_FONT_DEV_INTERFACE_0_6,
PPB_BrowserFont_Trusted_1_0)
#endif // !defined(OS_NACL)
+PROXIED_IFACE(PPB_INPUTEVENT_PRIVATE_INTERFACE_0_1,
+ PPB_InputEvent_Private_0_1)
+
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_ppb_private_flash.h b/chromium/ppapi/thunk/interfaces_ppb_private_flash.h
index facfdebc620..8957526e7c7 100644
--- a/chromium/ppapi/thunk/interfaces_ppb_private_flash.h
+++ b/chromium/ppapi/thunk/interfaces_ppb_private_flash.h
@@ -7,52 +7,45 @@
#include "ppapi/thunk/interfaces_preamble.h"
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_INTERFACE_12_4,
+PROXIED_IFACE(PPB_FLASH_INTERFACE_12_4,
PPB_Flash_12_4)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_INTERFACE_12_5,
+PROXIED_IFACE(PPB_FLASH_INTERFACE_12_5,
PPB_Flash_12_5)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_INTERFACE_12_6,
+PROXIED_IFACE(PPB_FLASH_INTERFACE_12_6,
PPB_Flash_12_6)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_INTERFACE_13_0,
+PROXIED_IFACE(PPB_FLASH_INTERFACE_13_0,
PPB_Flash_13_0)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_FILE_MODULELOCAL_INTERFACE_3_0,
+PROXIED_IFACE(PPB_FLASH_FILE_MODULELOCAL_INTERFACE_3_0,
PPB_Flash_File_ModuleLocal_3_0)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_FILE_FILEREF_INTERFACE,
+PROXIED_IFACE(PPB_FLASH_FILE_FILEREF_INTERFACE,
PPB_Flash_File_FileRef)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_CLIPBOARD_INTERFACE_4_0,
+PROXIED_IFACE(PPB_FLASH_CLIPBOARD_INTERFACE_4_0,
PPB_Flash_Clipboard_4_0)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_CLIPBOARD_INTERFACE_5_0,
+PROXIED_IFACE(PPB_FLASH_CLIPBOARD_INTERFACE_5_0,
PPB_Flash_Clipboard_5_0)
+PROXIED_IFACE(PPB_FLASH_CLIPBOARD_INTERFACE_5_1,
+ PPB_Flash_Clipboard_5_1)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_DRM_INTERFACE_1_0,
+PROXIED_IFACE(PPB_FLASH_DEVICEID_INTERFACE_1_0,
+ PPB_Flash_DeviceID_1_0)
+PROXIED_IFACE(PPB_FLASH_DRM_INTERFACE_1_0,
PPB_Flash_DRM_1_0)
+PROXIED_IFACE(PPB_FLASH_DRM_INTERFACE_1_1,
+ PPB_Flash_DRM_1_1)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_FONTFILE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_FLASH_FONTFILE_INTERFACE_0_1,
PPB_Flash_FontFile_0_1)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_MENU_INTERFACE_0_2,
+PROXIED_IFACE(PPB_FLASH_MENU_INTERFACE_0_2,
PPB_Flash_Menu_0_2)
PROXIED_API(PPB_Flash_MessageLoop)
-PROXIED_IFACE(PPB_Flash_MessageLoop,
- PPB_FLASH_MESSAGELOOP_INTERFACE_0_1,
+PROXIED_IFACE(PPB_FLASH_MESSAGELOOP_INTERFACE_0_1,
PPB_Flash_MessageLoop_0_1)
-PROXIED_IFACE(NoAPIName,
- PPB_FLASH_PRINT_INTERFACE_1_0,
+PROXIED_IFACE(PPB_FLASH_PRINT_INTERFACE_1_0,
PPB_Flash_Print_1_0)
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_ppb_private_no_permissions.h b/chromium/ppapi/thunk/interfaces_ppb_private_no_permissions.h
index 3b4446f9fbe..6c224fe57bf 100644
--- a/chromium/ppapi/thunk/interfaces_ppb_private_no_permissions.h
+++ b/chromium/ppapi/thunk/interfaces_ppb_private_no_permissions.h
@@ -10,42 +10,45 @@
// These interfaces don't require private permissions. However, they only work
// for whitelisted origins.
-PROXIED_IFACE(NoAPIName, PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1,
PPB_HostResolver_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1,
PPB_TCPServerSocket_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2,
+PROXIED_IFACE(PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2,
PPB_TCPServerSocket_Private_0_2)
-PROXIED_IFACE(NoAPIName, PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3,
+PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3,
PPB_TCPSocket_Private_0_3)
-PROXIED_IFACE(NoAPIName, PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4,
+PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4,
PPB_TCPSocket_Private_0_4)
-PROXIED_IFACE(NoAPIName, PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5,
+PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5,
PPB_TCPSocket_Private_0_5)
-PROXIED_IFACE(NoAPIName, PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2,
+PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2,
PPB_UDPSocket_Private_0_2)
-PROXIED_IFACE(NoAPIName, PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3,
+PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3,
PPB_UDPSocket_Private_0_3)
-PROXIED_IFACE(NoAPIName, PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4,
+PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4,
PPB_UDPSocket_Private_0_4)
-PROXIED_IFACE(NoAPIName, PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
PPB_NetAddress_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
+PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
PPB_NetAddress_Private_1_0)
-PROXIED_IFACE(NoAPIName, PPB_NETADDRESS_PRIVATE_INTERFACE_1_1,
+PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_1_1,
PPB_NetAddress_Private_1_1)
-PROXIED_IFACE(NoAPIName, PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1,
PPB_Ext_CrxFileSystem_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_FILEIO_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_FILEIO_PRIVATE_INTERFACE_0_1,
PPB_FileIO_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2,
+PROXIED_IFACE(PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2,
PPB_IsolatedFileSystem_Private_0_2)
-PROXIED_IFACE(NoAPIName, PPB_VIDEODESTINATION_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_VIDEODESTINATION_PRIVATE_INTERFACE_0_1,
PPB_VideoDestination_Private_0_1)
-PROXIED_IFACE(NoAPIName, PPB_VIDEOSOURCE_PRIVATE_INTERFACE_0_1,
+PROXIED_IFACE(PPB_VIDEOSOURCE_PRIVATE_INTERFACE_0_1,
PPB_VideoSource_Private_0_1)
+PROXIED_IFACE(PPB_UMA_PRIVATE_INTERFACE_0_3,
+ PPB_UMA_Private_0_3)
+
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_ppb_public_dev.h b/chromium/ppapi/thunk/interfaces_ppb_public_dev.h
index 2c894e409da..9597843a701 100644
--- a/chromium/ppapi/thunk/interfaces_ppb_public_dev.h
+++ b/chromium/ppapi/thunk/interfaces_ppb_public_dev.h
@@ -9,81 +9,39 @@
// Map the old dev console interface to the stable one (which is the same) to
// keep Flash, etc. working.
-PROXIED_IFACE(PPB_Instance, "PPB_Console(Dev);0.1", PPB_Console_1_0)
-PROXIED_IFACE(NoAPIName, PPB_ALARMS_DEV_INTERFACE_0_1, PPB_Alarms_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4,
- PPB_CursorControl_Dev_0_4)
-PROXIED_IFACE(NoAPIName, PPB_EXT_SOCKET_DEV_INTERFACE_0_1,
- PPB_Ext_Socket_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_EXT_SOCKET_DEV_INTERFACE_0_2,
- PPB_Ext_Socket_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_FILECHOOSER_DEV_INTERFACE_0_5,
- PPB_FileChooser_Dev_0_5)
-PROXIED_IFACE(NoAPIName, PPB_FILECHOOSER_DEV_INTERFACE_0_6,
- PPB_FileChooser_Dev_0_6)
-UNPROXIED_IFACE(PPB_Find, PPB_FIND_DEV_INTERFACE_0_3, PPB_Find_Dev_0_3)
-PROXIED_IFACE(NoAPIName, PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2,
- PPB_IMEInputEvent_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_KEYBOARD_INPUT_EVENT_DEV_INTERFACE_0_2,
- PPB_KeyboardInputEvent_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_PRINTING_DEV_INTERFACE_0_7,
- PPB_Printing_Dev_0_7)
-PROXIED_IFACE(NoAPIName, PPB_RESOURCEARRAY_DEV_INTERFACE_0_1,
- PPB_ResourceArray_Dev_0_1)
-PROXIED_IFACE(PPB_Instance, PPB_TEXTINPUT_DEV_INTERFACE_0_2,
- PPB_TextInput_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_TRUETYPEFONT_DEV_INTERFACE_0_1,
- PPB_TrueTypeFont_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_VAR_RESOURCE_DEV_INTERFACE_0_1,
- PPB_VarResource_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_VIEW_DEV_INTERFACE_0_1,
- PPB_View_Dev_0_1)
-UNPROXIED_IFACE(PPB_Instance, PPB_ZOOM_DEV_INTERFACE_0_2, PPB_Zoom_Dev_0_2)
-PROXIED_IFACE(PPB_Instance, PPB_TRACE_EVENT_DEV_INTERFACE_0_1,
- PPB_Trace_Event_Dev_0_1)
-PROXIED_IFACE(PPB_Instance, PPB_TRACE_EVENT_DEV_INTERFACE_0_2,
- PPB_Trace_Event_Dev_0_2)
+PROXIED_IFACE("PPB_Console(Dev);0.1", PPB_Console_1_0)
+PROXIED_IFACE(PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4, PPB_CursorControl_Dev_0_4)
+PROXIED_IFACE(PPB_FILECHOOSER_DEV_INTERFACE_0_5, PPB_FileChooser_Dev_0_5)
+PROXIED_IFACE(PPB_FILECHOOSER_DEV_INTERFACE_0_6, PPB_FileChooser_Dev_0_6)
+PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2, PPB_IMEInputEvent_Dev_0_2)
+PROXIED_IFACE(PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1)
+PROXIED_IFACE(PPB_PRINTING_DEV_INTERFACE_0_7, PPB_Printing_Dev_0_7)
+PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_2, PPB_TextInput_Dev_0_2)
+PROXIED_IFACE(PPB_TRUETYPEFONT_DEV_INTERFACE_0_1, PPB_TrueTypeFont_Dev_0_1)
+PROXIED_IFACE(PPB_VIEW_DEV_INTERFACE_0_1, PPB_View_Dev_0_1)
+PROXIED_IFACE(PPB_ZOOM_DEV_INTERFACE_0_2, PPB_Zoom_Dev_0_2)
#if !defined(OS_NACL)
PROXIED_API(PPB_Buffer)
-UNPROXIED_API(PPB_Scrollbar)
PROXIED_API(PPB_VideoDecoder)
-UNPROXIED_API(PPB_Widget)
-PROXIED_IFACE(NoAPIName, PPB_AUDIO_INPUT_DEV_INTERFACE_0_2,
- PPB_AudioInput_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_AUDIO_INPUT_DEV_INTERFACE_0_3,
- PPB_AudioInput_Dev_0_3)
-PROXIED_IFACE(NoAPIName, PPB_AUDIO_INPUT_DEV_INTERFACE_0_4,
- PPB_AudioInput_Dev_0_4)
-PROXIED_IFACE(NoAPIName, PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1,
- PPB_IMEInputEvent_Dev_0_1)
-PROXIED_IFACE(PPB_Buffer, PPB_BUFFER_DEV_INTERFACE_0_4, PPB_Buffer_Dev_0_4)
-PROXIED_IFACE(PPB_Graphics3D,
- PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1,
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
+PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
+PROXIED_IFACE(PPB_BUFFER_DEV_INTERFACE_0_4, PPB_Buffer_Dev_0_4)
+PROXIED_IFACE(PPB_CHAR_SET_DEV_INTERFACE_0_4, PPB_CharSet_Dev_0_4)
+PROXIED_IFACE(PPB_CRYPTO_DEV_INTERFACE_0_1, PPB_Crypto_Dev_0_1)
+PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
+PROXIED_IFACE(PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1,
PPB_GLESChromiumTextureMapping_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_CRYPTO_DEV_INTERFACE_0_1, PPB_Crypto_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_GRAPHICS2D_DEV_INTERFACE_0_1,
- PPB_Graphics2D_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_GRAPHICS2D_DEV_INTERFACE_0_2,
- PPB_Graphics2D_Dev_0_2)
-PROXIED_IFACE(PPB_Instance, PPB_CHAR_SET_DEV_INTERFACE_0_4, PPB_CharSet_Dev_0_4)
-PROXIED_IFACE(PPB_Instance, PPB_URLUTIL_DEV_INTERFACE_0_6, PPB_URLUtil_Dev_0_6)
-PROXIED_IFACE(PPB_Instance, PPB_URLUTIL_DEV_INTERFACE_0_7, PPB_URLUtil_Dev_0_7)
-UNPROXIED_IFACE(PPB_Scrollbar, PPB_SCROLLBAR_DEV_INTERFACE_0_5,
- PPB_Scrollbar_Dev_0_5)
-PROXIED_IFACE(PPB_Instance, PPB_TEXTINPUT_DEV_INTERFACE_0_1,
- PPB_TextInput_Dev_0_1)
-PROXIED_IFACE(NoAPIName, PPB_VIDEOCAPTURE_DEV_INTERFACE_0_2,
- PPB_VideoCapture_Dev_0_2)
-PROXIED_IFACE(NoAPIName, PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3,
- PPB_VideoCapture_Dev_0_3)
-PROXIED_IFACE(PPB_VideoDecoder, PPB_VIDEODECODER_DEV_INTERFACE_0_16,
- PPB_VideoDecoder_Dev_0_16)
-UNPROXIED_IFACE(PPB_Widget, PPB_WIDGET_DEV_INTERFACE_0_3, PPB_Widget_Dev_0_3)
-UNPROXIED_IFACE(PPB_Widget, PPB_WIDGET_DEV_INTERFACE_0_4, PPB_Widget_Dev_0_4)
+PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1, PPB_IMEInputEvent_Dev_0_1)
+PROXIED_IFACE(PPB_SCROLLBAR_DEV_INTERFACE_0_5, PPB_Scrollbar_Dev_0_5)
+PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_1, PPB_TextInput_Dev_0_1)
+PROXIED_IFACE(PPB_URLUTIL_DEV_INTERFACE_0_6, PPB_URLUtil_Dev_0_6)
+PROXIED_IFACE(PPB_URLUTIL_DEV_INTERFACE_0_7, PPB_URLUtil_Dev_0_7)
+PROXIED_IFACE(PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3, PPB_VideoCapture_Dev_0_3)
+PROXIED_IFACE(PPB_VIDEODECODER_DEV_INTERFACE_0_16, PPB_VideoDecoder_Dev_0_16)
+PROXIED_IFACE(PPB_WIDGET_DEV_INTERFACE_0_3, PPB_Widget_Dev_0_3)
+PROXIED_IFACE(PPB_WIDGET_DEV_INTERFACE_0_4, PPB_Widget_Dev_0_4)
#endif // !defined(OS_NACL)
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_ppb_public_dev_channel.h b/chromium/ppapi/thunk/interfaces_ppb_public_dev_channel.h
new file mode 100644
index 00000000000..a4f0e5963ff
--- /dev/null
+++ b/chromium/ppapi/thunk/interfaces_ppb_public_dev_channel.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Please see inteface_ppb_public_stable for the documentation on the format of
+// this file.
+
+#include "ppapi/thunk/interfaces_preamble.h"
+
+// Interfaces go here.
+PROXIED_IFACE(PPB_COMPOSITOR_INTERFACE_0_1, PPB_Compositor_0_1)
+PROXIED_IFACE(PPB_COMPOSITORLAYER_INTERFACE_0_1, PPB_CompositorLayer_0_1)
+PROXIED_IFACE(PPB_FILEMAPPING_INTERFACE_0_1, PPB_FileMapping_0_1)
+PROXIED_IFACE(PPB_MESSAGING_INTERFACE_1_1, PPB_Messaging_1_1)
+PROXIED_IFACE(PPB_VIDEODECODER_INTERFACE_0_1, PPB_VideoDecoder_0_1)
+
+// Note, PPB_TraceEvent is special. We don't want to actually make it stable,
+// but we want developers to be able to leverage it when running Chrome Dev or
+// Chrome Canary.
+PROXIED_IFACE(PPB_TRACE_EVENT_DEV_INTERFACE_0_1,
+ PPB_Trace_Event_Dev_0_1)
+PROXIED_IFACE(PPB_TRACE_EVENT_DEV_INTERFACE_0_2,
+ PPB_Trace_Event_Dev_0_2)
+
+#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_ppb_public_stable.h b/chromium/ppapi/thunk/interfaces_ppb_public_stable.h
index 91e023afe66..adf765640cc 100644
--- a/chromium/ppapi/thunk/interfaces_ppb_public_stable.h
+++ b/chromium/ppapi/thunk/interfaces_ppb_public_stable.h
@@ -7,7 +7,13 @@
// This file contains lists of interfaces. It's intended to be included by
// another file which defines implementations of the macros. This allows files
// to do specific registration tasks for each supported interface.
-
+//
+// When adding an interface, you must also add the hash value for the
+// interface's name to tools/metrics/histograms/histograms.xml. This is so we
+// get human-readable UMA tracking for interface usage.
+//
+// Use the 'pepper_hash_for_uma' tool in ppapi/tools to determine the hash for
+// a given interface string.
// Api categories
// --------------
@@ -15,21 +21,16 @@
// this directory. One API may implement one or more actual interfaces.
//
// For PROXIED_APIs, these also correspond to *_Proxy objects. The proxied ones
-// define factory functions for each of these classes. UNPROXIED_APIs are ones
-// that exist in the webkit/plugins/ppapi/*_impl.h, but not in the proxy.
+// define factory functions for each of these classes.
PROXIED_API(PPB_Audio)
PROXIED_API(PPB_Core)
PROXIED_API(PPB_Graphics3D)
PROXIED_API(PPB_ImageData)
PROXIED_API(PPB_Instance)
-// AudioConfig isn't proxied in the normal way, we have only local classes and
-// serialize it to a struct when we need it on the host side.
-UNPROXIED_API(PPB_AudioConfig)
-
// Interfaces
// ----------
-// Enumerates interfaces as (api_name, interface_name, interface_struct).
+// Enumerates interfaces as (interface_name, interface_struct).
//
// The api_name corresponds to the class in the list above for the object
// that implements the API. Some things may be special and aren't implemented
@@ -43,64 +44,65 @@ UNPROXIED_API(PPB_AudioConfig)
// The interface_struct is the typename of the struct corresponding to the
// interface string.
// Note: Core is special and is registered manually.
-PROXIED_IFACE(PPB_Audio, PPB_AUDIO_INTERFACE_1_0, PPB_Audio_1_0)
-PROXIED_IFACE(PPB_Audio, PPB_AUDIO_INTERFACE_1_1, PPB_Audio_1_1)
-PROXIED_IFACE(NoAPIName, PPB_FILEREF_INTERFACE_1_0, PPB_FileRef_1_0)
-PROXIED_IFACE(NoAPIName, PPB_FILEREF_INTERFACE_1_1, PPB_FileRef_1_1)
-PROXIED_IFACE(NoAPIName, PPB_FILESYSTEM_INTERFACE_1_0, PPB_FileSystem_1_0)
-PROXIED_IFACE(PPB_Graphics3D, PPB_GRAPHICS_3D_INTERFACE_1_0, PPB_Graphics3D_1_0)
-PROXIED_IFACE(PPB_ImageData, PPB_IMAGEDATA_INTERFACE_1_0, PPB_ImageData_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_CONSOLE_INTERFACE_1_0, PPB_Console_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_GAMEPAD_INTERFACE_1_0, PPB_Gamepad_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_INSTANCE_INTERFACE_1_0, PPB_Instance_1_0)
-PROXIED_IFACE(NoAPIName, PPB_FILEIO_INTERFACE_1_0, PPB_FileIO_1_0)
-PROXIED_IFACE(NoAPIName, PPB_FILEIO_INTERFACE_1_1, PPB_FileIO_1_1)
-PROXIED_IFACE(NoAPIName, PPB_GRAPHICS_2D_INTERFACE_1_0, PPB_Graphics2D_1_0)
-PROXIED_IFACE(NoAPIName, PPB_GRAPHICS_2D_INTERFACE_1_1, PPB_Graphics2D_1_1)
-PROXIED_IFACE(NoAPIName, PPB_HOSTRESOLVER_INTERFACE_1_0, PPB_HostResolver_1_0)
-PROXIED_IFACE(NoAPIName, PPB_IME_INPUT_EVENT_INTERFACE_1_0,
- PPB_IMEInputEvent_1_0)
-PROXIED_IFACE(NoAPIName, PPB_INPUT_EVENT_INTERFACE_1_0, PPB_InputEvent_1_0)
-PROXIED_IFACE(NoAPIName, PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0,
+PROXIED_IFACE(PPB_AUDIO_INTERFACE_1_0, PPB_Audio_1_0)
+PROXIED_IFACE(PPB_AUDIO_INTERFACE_1_1, PPB_Audio_1_1)
+PROXIED_IFACE(PPB_AUDIOBUFFER_INTERFACE_0_1, PPB_AudioBuffer_0_1)
+PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_0, PPB_FileRef_1_0)
+PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_1, PPB_FileRef_1_1)
+PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_2, PPB_FileRef_1_2)
+PROXIED_IFACE(PPB_FILESYSTEM_INTERFACE_1_0, PPB_FileSystem_1_0)
+PROXIED_IFACE(PPB_GRAPHICS_3D_INTERFACE_1_0, PPB_Graphics3D_1_0)
+PROXIED_IFACE(PPB_IMAGEDATA_INTERFACE_1_0, PPB_ImageData_1_0)
+PROXIED_IFACE(PPB_CONSOLE_INTERFACE_1_0, PPB_Console_1_0)
+PROXIED_IFACE(PPB_GAMEPAD_INTERFACE_1_0, PPB_Gamepad_1_0)
+PROXIED_IFACE(PPB_INSTANCE_INTERFACE_1_0, PPB_Instance_1_0)
+PROXIED_IFACE(PPB_FILEIO_INTERFACE_1_0, PPB_FileIO_1_0)
+PROXIED_IFACE(PPB_FILEIO_INTERFACE_1_1, PPB_FileIO_1_1)
+PROXIED_IFACE(PPB_GRAPHICS_2D_INTERFACE_1_0, PPB_Graphics2D_1_0)
+PROXIED_IFACE(PPB_GRAPHICS_2D_INTERFACE_1_1, PPB_Graphics2D_1_1)
+PROXIED_IFACE(PPB_HOSTRESOLVER_INTERFACE_1_0, PPB_HostResolver_1_0)
+PROXIED_IFACE(PPB_IME_INPUT_EVENT_INTERFACE_1_0, PPB_IMEInputEvent_1_0)
+PROXIED_IFACE(PPB_INPUT_EVENT_INTERFACE_1_0, PPB_InputEvent_1_0)
+PROXIED_IFACE(PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0,
PPB_KeyboardInputEvent_1_0)
-PROXIED_IFACE(NoAPIName, PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0,
- PPB_MouseInputEvent_1_0)
-PROXIED_IFACE(NoAPIName, PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1,
- PPB_MouseInputEvent_1_1)
-PROXIED_IFACE(NoAPIName, PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0,
- PPB_WheelInputEvent_1_0)
-PROXIED_IFACE(NoAPIName, PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0,
- PPB_TouchInputEvent_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_FULLSCREEN_INTERFACE_1_0, PPB_Fullscreen_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_MESSAGING_INTERFACE_1_0, PPB_Messaging_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_MOUSECURSOR_INTERFACE_1_0, PPB_MouseCursor_1_0)
-PROXIED_IFACE(PPB_Instance, PPB_MOUSELOCK_INTERFACE_1_0, PPB_MouseLock_1_0)
-PROXIED_IFACE(NoAPIName, PPB_NETADDRESS_INTERFACE_1_0, PPB_NetAddress_1_0)
-PROXIED_IFACE(NoAPIName, PPB_NETWORKLIST_INTERFACE_1_0, PPB_NetworkList_1_0)
-PROXIED_IFACE(NoAPIName, PPB_NETWORKMONITOR_INTERFACE_1_0,
- PPB_NetworkMonitor_1_0)
-PROXIED_IFACE(NoAPIName, PPB_NETWORKPROXY_INTERFACE_1_0, PPB_NetworkProxy_1_0)
-PROXIED_IFACE(NoAPIName, PPB_TCPSOCKET_INTERFACE_1_0, PPB_TCPSocket_1_0)
-PROXIED_IFACE(NoAPIName, PPB_TCPSOCKET_INTERFACE_1_1, PPB_TCPSocket_1_1)
-PROXIED_IFACE(NoAPIName, PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0,
+PROXIED_IFACE(PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2,
+ PPB_KeyboardInputEvent_1_2)
+PROXIED_IFACE(PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0, PPB_MouseInputEvent_1_0)
+PROXIED_IFACE(PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1, PPB_MouseInputEvent_1_1)
+PROXIED_IFACE(PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0, PPB_WheelInputEvent_1_0)
+PROXIED_IFACE(PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0, PPB_TouchInputEvent_1_0)
+PROXIED_IFACE(PPB_FULLSCREEN_INTERFACE_1_0, PPB_Fullscreen_1_0)
+PROXIED_IFACE(PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1,
+ PPB_MediaStreamAudioTrack_0_1)
+PROXIED_IFACE(PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1,
+ PPB_MediaStreamVideoTrack_0_1)
+PROXIED_IFACE(PPB_MESSAGING_INTERFACE_1_0, PPB_Messaging_1_0)
+PROXIED_IFACE(PPB_MOUSECURSOR_INTERFACE_1_0, PPB_MouseCursor_1_0)
+PROXIED_IFACE(PPB_MOUSELOCK_INTERFACE_1_0, PPB_MouseLock_1_0)
+PROXIED_IFACE(PPB_NETADDRESS_INTERFACE_1_0, PPB_NetAddress_1_0)
+PROXIED_IFACE(PPB_NETWORKLIST_INTERFACE_1_0, PPB_NetworkList_1_0)
+PROXIED_IFACE(PPB_NETWORKMONITOR_INTERFACE_1_0, PPB_NetworkMonitor_1_0)
+PROXIED_IFACE(PPB_NETWORKPROXY_INTERFACE_1_0, PPB_NetworkProxy_1_0)
+PROXIED_IFACE(PPB_TCPSOCKET_INTERFACE_1_0, PPB_TCPSocket_1_0)
+PROXIED_IFACE(PPB_TCPSOCKET_INTERFACE_1_1, PPB_TCPSocket_1_1)
+PROXIED_IFACE(PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0,
PPB_TextInputController_1_0)
-PROXIED_IFACE(NoAPIName, PPB_UDPSOCKET_INTERFACE_1_0, PPB_UDPSocket_1_0)
-PROXIED_IFACE(NoAPIName, PPB_URLLOADER_INTERFACE_1_0, PPB_URLLoader_1_0)
-PROXIED_IFACE(NoAPIName, PPB_URLREQUESTINFO_INTERFACE_1_0,
- PPB_URLRequestInfo_1_0)
-PROXIED_IFACE(NoAPIName, PPB_URLRESPONSEINFO_INTERFACE_1_0,
- PPB_URLResponseInfo_1_0)
-PROXIED_IFACE(NoAPIName, PPB_VAR_ARRAY_INTERFACE_1_0, PPB_VarArray_1_0)
-PROXIED_IFACE(NoAPIName, PPB_VAR_DICTIONARY_INTERFACE_1_0,
- PPB_VarDictionary_1_0)
-PROXIED_IFACE(NoAPIName, PPB_WEBSOCKET_INTERFACE_1_0, PPB_WebSocket_1_0)
+PROXIED_IFACE(PPB_UDPSOCKET_INTERFACE_1_0, PPB_UDPSocket_1_0)
+PROXIED_IFACE(PPB_URLLOADER_INTERFACE_1_0, PPB_URLLoader_1_0)
+PROXIED_IFACE(PPB_URLREQUESTINFO_INTERFACE_1_0, PPB_URLRequestInfo_1_0)
+PROXIED_IFACE(PPB_URLRESPONSEINFO_INTERFACE_1_0, PPB_URLResponseInfo_1_0)
+PROXIED_IFACE(PPB_VAR_ARRAY_INTERFACE_1_0, PPB_VarArray_1_0)
+PROXIED_IFACE(PPB_VAR_DICTIONARY_INTERFACE_1_0, PPB_VarDictionary_1_0)
+PROXIED_IFACE(PPB_VIDEOFRAME_INTERFACE_0_1, PPB_VideoFrame_0_1)
+PROXIED_IFACE(PPB_WEBSOCKET_INTERFACE_1_0, PPB_WebSocket_1_0)
// Note: PPB_Var and PPB_VarArrayBuffer are special and registered manually.
-PROXIED_IFACE(NoAPIName, PPB_VIEW_INTERFACE_1_0, PPB_View_1_0)
-PROXIED_IFACE(NoAPIName, PPB_VIEW_INTERFACE_1_1, PPB_View_1_1)
+PROXIED_IFACE(PPB_VIEW_INTERFACE_1_0, PPB_View_1_0)
+PROXIED_IFACE(PPB_VIEW_INTERFACE_1_1, PPB_View_1_1)
+PROXIED_IFACE(PPB_VIEW_INTERFACE_1_2, PPB_View_1_2)
// This has no corresponding _Proxy object since it does no IPC.
-PROXIED_IFACE(NoAPIName, PPB_AUDIO_CONFIG_INTERFACE_1_0, PPB_AudioConfig_1_0)
-PROXIED_IFACE(NoAPIName, PPB_AUDIO_CONFIG_INTERFACE_1_1, PPB_AudioConfig_1_1)
+PROXIED_IFACE(PPB_AUDIO_CONFIG_INTERFACE_1_0, PPB_AudioConfig_1_0)
+PROXIED_IFACE(PPB_AUDIO_CONFIG_INTERFACE_1_1, PPB_AudioConfig_1_1)
#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/chromium/ppapi/thunk/interfaces_preamble.h b/chromium/ppapi/thunk/interfaces_preamble.h
index 7fe1d77bbf8..beaa357055c 100644
--- a/chromium/ppapi/thunk/interfaces_preamble.h
+++ b/chromium/ppapi/thunk/interfaces_preamble.h
@@ -15,17 +15,7 @@
#define UNDEFINE_PROXIED_API
#endif
-#ifndef UNPROXIED_API
-#define UNPROXIED_API(api_name)
-#define UNDEFINE_UNPROXIED_API
-#endif
-
#ifndef PROXIED_IFACE
-#define PROXIED_IFACE(api_name, iface_str, iface_struct)
+#define PROXIED_IFACE(iface_str, iface_struct)
#define UNDEFINE_PROXIED_IFACE
#endif
-
-#ifndef UNPROXIED_IFACE
-#define UNPROXIED_IFACE(api_name, iface_str, iface_struct)
-#define UNDEFINE_UNPROXIED_IFACE
-#endif
diff --git a/chromium/ppapi/thunk/ppb_alarms_dev_thunk.cc b/chromium/ppapi/thunk/ppb_alarms_dev_thunk.cc
deleted file mode 100644
index 2d2ae14b89f..00000000000
--- a/chromium/ppapi/thunk/ppb_alarms_dev_thunk.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_alarms_dev.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/extensions_common_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-// TODO(yzshen): crbug.com/327197 Implement the thunk.
-
-void Create(PP_Instance instance,
- PP_Var name,
- const PP_Alarms_AlarmCreateInfo_Dev* alarm_info) {
- NOTIMPLEMENTED();
-}
-
-int32_t Get(PP_Instance instance,
- PP_Var name,
- PP_Alarms_Alarm_Dev* alarm,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- NOTIMPLEMENTED();
-
- return enter.SetResult(PP_ERROR_FAILED);
-}
-
-int32_t GetAll(PP_Instance instance,
- PP_Alarms_Alarm_Array_Dev* alarms,
- PP_ArrayOutput array_allocator,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- NOTIMPLEMENTED();
-
- return enter.SetResult(PP_ERROR_FAILED);
-}
-
-void Clear(PP_Instance instance, PP_Var name) {
- NOTIMPLEMENTED();
-}
-
-void ClearAll(PP_Instance instance) {
- NOTIMPLEMENTED();
-}
-
-uint32_t AddOnAlarmListener(PP_Instance instance,
- PP_Alarms_OnAlarm_Dev callback,
- void* user_data) {
- NOTIMPLEMENTED();
- return 0;
-}
-
-const PPB_Alarms_Dev_0_1 g_ppb_alarms_dev_0_1_thunk = {
- &Create,
- &Get,
- &GetAll,
- &Clear,
- &ClearAll,
- &AddOnAlarmListener
-};
-
-} // namespace
-
-const PPB_Alarms_Dev_0_1* GetPPB_Alarms_Dev_0_1_Thunk() {
- return &g_ppb_alarms_dev_0_1_thunk;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_audio_buffer_api.h b/chromium/ppapi/thunk/ppb_audio_buffer_api.h
new file mode 100644
index 00000000000..7c37e65851c
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_audio_buffer_api.h
@@ -0,0 +1,38 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_AUDIO_BUFFER_API_H_
+#define PPAPI_THUNK_PPB_AUDIO_BUFFER_API_H_
+
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+
+union MediaStreamBuffer;
+
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_AudioBuffer_API {
+ public:
+ virtual ~PPB_AudioBuffer_API() {}
+ virtual PP_TimeDelta GetTimestamp() = 0;
+ virtual void SetTimestamp(PP_TimeDelta timestamp) = 0;
+ virtual PP_AudioBuffer_SampleRate GetSampleRate() = 0;
+ virtual PP_AudioBuffer_SampleSize GetSampleSize() = 0;
+ virtual uint32_t GetNumberOfChannels() = 0;
+ virtual uint32_t GetNumberOfSamples() = 0;
+ virtual void* GetDataBuffer() = 0;
+ virtual uint32_t GetDataBufferSize() = 0;
+
+ // Methods used by Pepper internal implementation only.
+ virtual MediaStreamBuffer* GetBuffer() = 0;
+ virtual int32_t GetBufferIndex() = 0;
+ virtual void Invalidate() = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_AUDIO_BUFFER_API_H_
diff --git a/chromium/ppapi/thunk/ppb_audio_buffer_thunk.cc b/chromium/ppapi/thunk/ppb_audio_buffer_thunk.cc
new file mode 100644
index 00000000000..d87d5b0780a
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_audio_buffer_thunk.cc
@@ -0,0 +1,108 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_audio_buffer.idl modified Thu Feb 6 15:31:48 2014.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_audio_buffer.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_audio_buffer_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool IsAudioBuffer(PP_Resource resource) {
+ VLOG(4) << "PPB_AudioBuffer::IsAudioBuffer()";
+ EnterResource<PPB_AudioBuffer_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+PP_TimeDelta GetTimestamp(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetTimestamp()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return 0.0;
+ return enter.object()->GetTimestamp();
+}
+
+void SetTimestamp(PP_Resource buffer, PP_TimeDelta timestamp) {
+ VLOG(4) << "PPB_AudioBuffer::SetTimestamp()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return;
+ enter.object()->SetTimestamp(timestamp);
+}
+
+PP_AudioBuffer_SampleRate GetSampleRate(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetSampleRate()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
+ return enter.object()->GetSampleRate();
+}
+
+PP_AudioBuffer_SampleSize GetSampleSize(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetSampleSize()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
+ return enter.object()->GetSampleSize();
+}
+
+uint32_t GetNumberOfChannels(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetNumberOfChannels()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return 0;
+ return enter.object()->GetNumberOfChannels();
+}
+
+uint32_t GetNumberOfSamples(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetNumberOfSamples()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return 0;
+ return enter.object()->GetNumberOfSamples();
+}
+
+void* GetDataBuffer(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetDataBuffer()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return NULL;
+ return enter.object()->GetDataBuffer();
+}
+
+uint32_t GetDataBufferSize(PP_Resource buffer) {
+ VLOG(4) << "PPB_AudioBuffer::GetDataBufferSize()";
+ EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
+ if (enter.failed())
+ return 0;
+ return enter.object()->GetDataBufferSize();
+}
+
+const PPB_AudioBuffer_0_1 g_ppb_audiobuffer_thunk_0_1 = {
+ &IsAudioBuffer,
+ &GetTimestamp,
+ &SetTimestamp,
+ &GetSampleRate,
+ &GetSampleSize,
+ &GetNumberOfChannels,
+ &GetNumberOfSamples,
+ &GetDataBuffer,
+ &GetDataBufferSize
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_AudioBuffer_0_1* GetPPB_AudioBuffer_0_1_Thunk() {
+ return &g_ppb_audiobuffer_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_audio_input_api.h b/chromium/ppapi/thunk/ppb_audio_input_api.h
index 60fc881d8a8..706417ee0fd 100644
--- a/chromium/ppapi/thunk/ppb_audio_input_api.h
+++ b/chromium/ppapi/thunk/ppb_audio_input_api.h
@@ -20,16 +20,13 @@ class PPB_AudioInput_API {
public:
virtual ~PPB_AudioInput_API() {}
- virtual int32_t EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
void* user_data) = 0;
- virtual int32_t Open0_2(PP_Resource device_ref,
+ virtual int32_t Open0_3(PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback_0_2,
+ PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
void* user_data,
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t Open(PP_Resource device_ref,
diff --git a/chromium/ppapi/thunk/ppb_audio_input_dev_thunk.cc b/chromium/ppapi/thunk/ppb_audio_input_dev_thunk.cc
index ee38c7ad9fe..7d44a030787 100644
--- a/chromium/ppapi/thunk/ppb_audio_input_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_audio_input_dev_thunk.cc
@@ -31,18 +31,6 @@ PP_Bool IsAudioInput(PP_Resource resource) {
return PP_FromBool(enter.succeeded());
}
-int32_t EnumerateDevices_0_2(PP_Resource audio_input,
- PP_Resource* devices,
- struct PP_CompletionCallback callback) {
- VLOG(4) << "PPB_AudioInput_Dev::EnumerateDevices()";
- EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true);
- if (enter.failed())
- return enter.retval();
- return enter.SetResult(enter.object()->EnumerateDevices0_2(
- devices,
- enter.callback()));
-}
-
int32_t EnumerateDevices(PP_Resource audio_input,
struct PP_ArrayOutput output,
struct PP_CompletionCallback callback) {
@@ -64,17 +52,17 @@ int32_t MonitorDeviceChange(PP_Resource audio_input,
return enter.object()->MonitorDeviceChange(callback, user_data);
}
-int32_t Open_0_2(PP_Resource audio_input,
+int32_t Open_0_3(PP_Resource audio_input,
PP_Resource device_ref,
PP_Resource config,
- PPB_AudioInput_Callback_0_2 audio_input_callback,
+ PPB_AudioInput_Callback_0_3 audio_input_callback,
void* user_data,
struct PP_CompletionCallback callback) {
VLOG(4) << "PPB_AudioInput_Dev::Open()";
EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true);
if (enter.failed())
return enter.retval();
- return enter.SetResult(enter.object()->Open0_2(device_ref,
+ return enter.SetResult(enter.object()->Open0_3(device_ref,
config,
audio_input_callback,
user_data,
@@ -130,23 +118,12 @@ void Close(PP_Resource audio_input) {
enter.object()->Close();
}
-const PPB_AudioInput_Dev_0_2 g_ppb_audioinput_dev_thunk_0_2 = {
- &Create,
- &IsAudioInput,
- &EnumerateDevices_0_2,
- &Open_0_2,
- &GetCurrentConfig,
- &StartCapture,
- &StopCapture,
- &Close
-};
-
const PPB_AudioInput_Dev_0_3 g_ppb_audioinput_dev_thunk_0_3 = {
&Create,
&IsAudioInput,
&EnumerateDevices,
&MonitorDeviceChange,
- &Open_0_2,
+ &Open_0_3,
&GetCurrentConfig,
&StartCapture,
&StopCapture,
@@ -167,10 +144,6 @@ const PPB_AudioInput_Dev_0_4 g_ppb_audioinput_dev_thunk_0_4 = {
} // namespace
-const PPB_AudioInput_Dev_0_2* GetPPB_AudioInput_Dev_0_2_Thunk() {
- return &g_ppb_audioinput_dev_thunk_0_2;
-}
-
const PPB_AudioInput_Dev_0_3* GetPPB_AudioInput_Dev_0_3_Thunk() {
return &g_ppb_audioinput_dev_thunk_0_3;
}
diff --git a/chromium/ppapi/thunk/ppb_compositor_api.h b/chromium/ppapi/thunk/ppb_compositor_api.h
new file mode 100644
index 00000000000..78a40ff6394
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_compositor_api.h
@@ -0,0 +1,27 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_COMPOSITOR_API_H_
+#define PPAPI_THUNK_PPB_COMPOSITOR_API_H_
+
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/ppb_compositor.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_Compositor_API {
+ public:
+ virtual ~PPB_Compositor_API() {}
+ virtual PP_Resource AddLayer() = 0;
+ virtual int32_t CommitLayers(
+ const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
+ virtual int32_t ResetLayers() = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_COMPOSITOR_API_H_
diff --git a/chromium/ppapi/thunk/ppb_compositor_layer_api.h b/chromium/ppapi/thunk/ppb_compositor_layer_api.h
new file mode 100644
index 00000000000..e59f6325c42
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_compositor_layer_api.h
@@ -0,0 +1,43 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_COMPOSITOR_LAYER_API_H_
+#define PPAPI_THUNK_PPB_COMPOSITOR_LAYER_API_H_
+
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/ppb_compositor_layer.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_CompositorLayer_API {
+ public:
+ virtual ~PPB_CompositorLayer_API() {}
+ virtual int32_t SetColor(float red,
+ float green,
+ float blue,
+ float alpha,
+ const PP_Size* size) = 0;
+ virtual int32_t SetTexture(
+ PP_Resource context,
+ uint32_t texture,
+ const PP_Size* size,
+ const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
+ virtual int32_t SetImage(
+ PP_Resource image_data,
+ const PP_Size* size,
+ const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
+ virtual int32_t SetClipRect(const PP_Rect* rects) = 0;
+ virtual int32_t SetTransform(const float matrix[16]) = 0;
+ virtual int32_t SetOpacity(float opacity) = 0;
+ virtual int32_t SetBlendMode(PP_BlendMode mode) = 0;
+ virtual int32_t SetSourceRect(const PP_FloatRect* rect) = 0;
+ virtual int32_t SetPremultipliedAlpha(PP_Bool premult) = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_COMPOSITOR_API_H_
diff --git a/chromium/ppapi/thunk/ppb_compositor_layer_thunk.cc b/chromium/ppapi/thunk/ppb_compositor_layer_thunk.cc
new file mode 100644
index 00000000000..4923feab600
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_compositor_layer_thunk.cc
@@ -0,0 +1,136 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_compositor_layer.idl modified Wed Jun 4 11:17:54 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_compositor_layer.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_compositor_layer_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool IsCompositorLayer(PP_Resource resource) {
+ VLOG(4) << "PPB_CompositorLayer::IsCompositorLayer()";
+ EnterResource<PPB_CompositorLayer_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+int32_t SetColor(PP_Resource layer,
+ float red,
+ float green,
+ float blue,
+ float alpha,
+ const struct PP_Size* size) {
+ VLOG(4) << "PPB_CompositorLayer::SetColor()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetColor(red, green, blue, alpha, size);
+}
+
+int32_t SetTexture(PP_Resource layer,
+ PP_Resource context,
+ uint32_t texture,
+ const struct PP_Size* size,
+ struct PP_CompletionCallback cc) {
+ VLOG(4) << "PPB_CompositorLayer::SetTexture()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, cc, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->SetTexture(context,
+ texture,
+ size,
+ enter.callback()));
+}
+
+int32_t SetImage(PP_Resource layer,
+ PP_Resource image_data,
+ const struct PP_Size* size,
+ struct PP_CompletionCallback cc) {
+ VLOG(4) << "PPB_CompositorLayer::SetImage()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, cc, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->SetImage(image_data,
+ size,
+ enter.callback()));
+}
+
+int32_t SetClipRect(PP_Resource layer, const struct PP_Rect* rect) {
+ VLOG(4) << "PPB_CompositorLayer::SetClipRect()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetClipRect(rect);
+}
+
+int32_t SetTransform(PP_Resource layer, const float matrix[16]) {
+ VLOG(4) << "PPB_CompositorLayer::SetTransform()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetTransform(matrix);
+}
+
+int32_t SetOpacity(PP_Resource layer, float opacity) {
+ VLOG(4) << "PPB_CompositorLayer::SetOpacity()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetOpacity(opacity);
+}
+
+int32_t SetBlendMode(PP_Resource layer, PP_BlendMode mode) {
+ VLOG(4) << "PPB_CompositorLayer::SetBlendMode()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetBlendMode(mode);
+}
+
+int32_t SetSourceRect(PP_Resource layer, const struct PP_FloatRect* rect) {
+ VLOG(4) << "PPB_CompositorLayer::SetSourceRect()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetSourceRect(rect);
+}
+
+int32_t SetPremultipliedAlpha(PP_Resource layer, PP_Bool premult) {
+ VLOG(4) << "PPB_CompositorLayer::SetPremultipliedAlpha()";
+ EnterResource<PPB_CompositorLayer_API> enter(layer, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->SetPremultipliedAlpha(premult);
+}
+
+const PPB_CompositorLayer_0_1 g_ppb_compositorlayer_thunk_0_1 = {
+ &IsCompositorLayer,
+ &SetColor,
+ &SetTexture,
+ &SetImage,
+ &SetClipRect,
+ &SetTransform,
+ &SetOpacity,
+ &SetBlendMode,
+ &SetSourceRect,
+ &SetPremultipliedAlpha
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_CompositorLayer_0_1*
+ GetPPB_CompositorLayer_0_1_Thunk() {
+ return &g_ppb_compositorlayer_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_compositor_thunk.cc b/chromium/ppapi/thunk/ppb_compositor_thunk.cc
new file mode 100644
index 00000000000..682b42d5c39
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_compositor_thunk.cc
@@ -0,0 +1,73 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_compositor.idl modified Thu May 15 17:40:43 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_compositor.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_compositor_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool IsCompositor(PP_Resource resource) {
+ VLOG(4) << "PPB_Compositor::IsCompositor()";
+ EnterResource<PPB_Compositor_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+PP_Resource Create(PP_Instance instance) {
+ VLOG(4) << "PPB_Compositor::Create()";
+ EnterResourceCreation enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateCompositor(instance);
+}
+
+PP_Resource AddLayer(PP_Resource compositor) {
+ VLOG(4) << "PPB_Compositor::AddLayer()";
+ EnterResource<PPB_Compositor_API> enter(compositor, true);
+ if (enter.failed())
+ return 0;
+ return enter.object()->AddLayer();
+}
+
+int32_t CommitLayers(PP_Resource compositor, struct PP_CompletionCallback cc) {
+ VLOG(4) << "PPB_Compositor::CommitLayers()";
+ EnterResource<PPB_Compositor_API> enter(compositor, cc, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->CommitLayers(enter.callback()));
+}
+
+int32_t ResetLayers(PP_Resource compositor) {
+ VLOG(4) << "PPB_Compositor::ResetLayers()";
+ EnterResource<PPB_Compositor_API> enter(compositor, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->ResetLayers();
+}
+
+const PPB_Compositor_0_1 g_ppb_compositor_thunk_0_1 = {
+ &IsCompositor,
+ &Create,
+ &AddLayer,
+ &CommitLayers,
+ &ResetLayers
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_Compositor_0_1* GetPPB_Compositor_0_1_Thunk() {
+ return &g_ppb_compositor_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_console_thunk.cc b/chromium/ppapi/thunk/ppb_console_thunk.cc
index 80b115c0608..65c992bbf14 100644
--- a/chromium/ppapi/thunk/ppb_console_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_console_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_console.idl modified Tue Apr 16 11:25:44 2013.
+// From ppb_console.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_console.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -43,7 +41,7 @@ const PPB_Console_1_0 g_ppb_console_thunk_1_0 = {
} // namespace
-const PPB_Console_1_0* GetPPB_Console_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Console_1_0* GetPPB_Console_1_0_Thunk() {
return &g_ppb_console_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_content_decryptor_private_thunk.cc b/chromium/ppapi/thunk/ppb_content_decryptor_private_thunk.cc
index e434f4f7226..19bbd18705a 100644
--- a/chromium/ppapi/thunk/ppb_content_decryptor_private_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_content_decryptor_private_thunk.cc
@@ -3,33 +3,57 @@
// found in the LICENSE file.
// From private/ppb_content_decryptor_private.idl,
-// modified Fri Dec 6 12:16:22 2013.
+// modified Thu Jun 5 13:39:15 2014.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_content_decryptor_private.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
namespace {
-void SessionCreated(PP_Instance instance,
- uint32_t session_id,
- struct PP_Var web_session_id) {
- VLOG(4) << "PPB_ContentDecryptor_Private::SessionCreated()";
+void PromiseResolved(PP_Instance instance, uint32_t promise_id) {
+ VLOG(4) << "PPB_ContentDecryptor_Private::PromiseResolved()";
EnterInstance enter(instance);
if (enter.failed())
return;
- enter.functions()->SessionCreated(instance, session_id, web_session_id);
+ enter.functions()->PromiseResolved(instance, promise_id);
+}
+
+void PromiseResolvedWithSession(PP_Instance instance,
+ uint32_t promise_id,
+ struct PP_Var web_session_id) {
+ VLOG(4) << "PPB_ContentDecryptor_Private::PromiseResolvedWithSession()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->PromiseResolvedWithSession(instance,
+ promise_id,
+ web_session_id);
+}
+
+void PromiseRejected(PP_Instance instance,
+ uint32_t promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ struct PP_Var error_description) {
+ VLOG(4) << "PPB_ContentDecryptor_Private::PromiseRejected()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->PromiseRejected(instance,
+ promise_id,
+ exception_code,
+ system_code,
+ error_description);
}
void SessionMessage(PP_Instance instance,
- uint32_t session_id,
+ struct PP_Var web_session_id,
struct PP_Var message,
struct PP_Var destination_url) {
VLOG(4) << "PPB_ContentDecryptor_Private::SessionMessage()";
@@ -37,39 +61,41 @@ void SessionMessage(PP_Instance instance,
if (enter.failed())
return;
enter.functions()->SessionMessage(instance,
- session_id,
+ web_session_id,
message,
destination_url);
}
-void SessionReady(PP_Instance instance, uint32_t session_id) {
+void SessionReady(PP_Instance instance, struct PP_Var web_session_id) {
VLOG(4) << "PPB_ContentDecryptor_Private::SessionReady()";
EnterInstance enter(instance);
if (enter.failed())
return;
- enter.functions()->SessionReady(instance, session_id);
+ enter.functions()->SessionReady(instance, web_session_id);
}
-void SessionClosed(PP_Instance instance, uint32_t session_id) {
+void SessionClosed(PP_Instance instance, struct PP_Var web_session_id) {
VLOG(4) << "PPB_ContentDecryptor_Private::SessionClosed()";
EnterInstance enter(instance);
if (enter.failed())
return;
- enter.functions()->SessionClosed(instance, session_id);
+ enter.functions()->SessionClosed(instance, web_session_id);
}
void SessionError(PP_Instance instance,
- uint32_t session_id,
- int32_t media_error,
- int32_t system_code) {
+ struct PP_Var web_session_id,
+ PP_CdmExceptionCode exception_code,
+ uint32_t system_code,
+ struct PP_Var error_description) {
VLOG(4) << "PPB_ContentDecryptor_Private::SessionError()";
EnterInstance enter(instance);
if (enter.failed())
return;
enter.functions()->SessionError(instance,
- session_id,
- media_error,
- system_code);
+ web_session_id,
+ exception_code,
+ system_code,
+ error_description);
}
void DeliverBlock(PP_Instance instance,
@@ -145,9 +171,11 @@ void DeliverSamples(
decrypted_sample_info);
}
-const PPB_ContentDecryptor_Private_0_9
- g_ppb_contentdecryptor_private_thunk_0_9 = {
- &SessionCreated,
+const PPB_ContentDecryptor_Private_0_12
+ g_ppb_contentdecryptor_private_thunk_0_12 = {
+ &PromiseResolved,
+ &PromiseResolvedWithSession,
+ &PromiseRejected,
&SessionMessage,
&SessionReady,
&SessionClosed,
@@ -162,9 +190,9 @@ const PPB_ContentDecryptor_Private_0_9
} // namespace
-const PPB_ContentDecryptor_Private_0_9*
- GetPPB_ContentDecryptor_Private_0_9_Thunk() {
- return &g_ppb_contentdecryptor_private_thunk_0_9;
+PPAPI_THUNK_EXPORT const PPB_ContentDecryptor_Private_0_12*
+ GetPPB_ContentDecryptor_Private_0_12_Thunk() {
+ return &g_ppb_contentdecryptor_private_thunk_0_12;
}
} // namespace thunk
diff --git a/chromium/ppapi/thunk/ppb_device_ref_dev_thunk.cc b/chromium/ppapi/thunk/ppb_device_ref_dev_thunk.cc
index 9045cd84410..eb87093b530 100644
--- a/chromium/ppapi/thunk/ppb_device_ref_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_device_ref_dev_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_device_ref_dev.idl modified Thu Dec 20 13:10:26 2012.
+// From dev/ppb_device_ref_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_device_ref_dev.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_device_ref_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -48,7 +46,8 @@ const PPB_DeviceRef_Dev_0_1 g_ppb_deviceref_dev_thunk_0_1 = {
} // namespace
-const PPB_DeviceRef_Dev_0_1* GetPPB_DeviceRef_Dev_0_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_DeviceRef_Dev_0_1*
+ GetPPB_DeviceRef_Dev_0_1_Thunk() {
return &g_ppb_deviceref_dev_thunk_0_1;
}
diff --git a/chromium/ppapi/thunk/ppb_display_color_profile_private_thunk.cc b/chromium/ppapi/thunk/ppb_display_color_profile_private_thunk.cc
new file mode 100644
index 00000000000..6b14347c5fa
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_display_color_profile_private_thunk.cc
@@ -0,0 +1,78 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From private/ppb_display_color_profile_private.idl,
+// modified Tue Feb 18 18:03:36 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/private/ppb_display_color_profile_private.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_display_color_profile_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Resource Create(PP_Instance instance) {
+ VLOG(4) << "PPB_DisplayColorProfile_Private::Create()";
+ EnterResourceCreation enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateDisplayColorProfilePrivate(instance);
+}
+
+PP_Bool IsDisplayColorProfile(PP_Resource resource) {
+ VLOG(4) << "PPB_DisplayColorProfile_Private::IsDisplayColorProfile()";
+ EnterResource<PPB_DisplayColorProfile_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+int32_t GetColorProfile(PP_Resource display_color_profile_res,
+ struct PP_ArrayOutput color_profile,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_DisplayColorProfile_Private::GetColorProfile()";
+ EnterResource<PPB_DisplayColorProfile_API> enter(display_color_profile_res,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->GetColorProfile(color_profile,
+ enter.callback()));
+}
+
+int32_t RegisterColorProfileChangeCallback(
+ PP_Resource display_color_profile_res,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) <<
+ "PPB_DisplayColorProfile_Private::RegisterColorProfileChangeCallback()";
+ EnterResource<PPB_DisplayColorProfile_API> enter(display_color_profile_res,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->RegisterColorProfileChangeCallback(
+ enter.callback()));
+}
+
+const PPB_DisplayColorProfile_Private_0_1
+ g_ppb_displaycolorprofile_private_thunk_0_1 = {
+ &Create,
+ &IsDisplayColorProfile,
+ &GetColorProfile,
+ &RegisterColorProfileChangeCallback
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_DisplayColorProfile_Private_0_1*
+ GetPPB_DisplayColorProfile_Private_0_1_Thunk() {
+ return &g_ppb_displaycolorprofile_private_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_ext_socket_thunk.cc b/chromium/ppapi/thunk/ppb_ext_socket_thunk.cc
deleted file mode 100644
index e0afd66e27e..00000000000
--- a/chromium/ppapi/thunk/ppb_ext_socket_thunk.cc
+++ /dev/null
@@ -1,419 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <vector>
-
-#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/extensions_common_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t Create(PP_Instance instance,
- PP_Ext_Socket_SocketType_Dev type,
- PP_Ext_Socket_CreateOptions_Dev options,
- PP_Ext_Socket_CreateInfo_Dev* create_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(type);
- input_args.push_back(options);
- output_args.push_back(create_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.create", input_args, output_args, enter.callback()));
-}
-
-void Destroy(PP_Instance instance, PP_Var socket_id) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance);
- if (enter.failed())
- return;
-
- std::vector<PP_Var> args;
- args.push_back(socket_id);
- enter.functions()->PostBrowser("socket.destroy", args);
-}
-
-int32_t Connect(PP_Instance instance,
- PP_Var socket_id,
- PP_Var hostname,
- PP_Var port,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(hostname);
- input_args.push_back(port);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.connect", input_args, output_args, enter.callback()));
-}
-
-int32_t Bind(PP_Instance instance,
- PP_Var socket_id,
- PP_Var address,
- PP_Var port,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(address);
- input_args.push_back(port);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.bind", input_args, output_args, enter.callback()));
-}
-
-void Disconnect(PP_Instance instance, PP_Var socket_id) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance);
- if (enter.failed())
- return;
-
- std::vector<PP_Var> args;
- args.push_back(socket_id);
- enter.functions()->PostBrowser("socket.disconnect", args);
-}
-
-int32_t Read(PP_Instance instance,
- PP_Var socket_id,
- PP_Var buffer_size,
- PP_Ext_Socket_ReadInfo_Dev* read_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(buffer_size);
- output_args.push_back(read_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.read", input_args, output_args, enter.callback()));
-}
-
-int32_t Write(PP_Instance instance,
- PP_Var socket_id,
- PP_Var data,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(data);
- output_args.push_back(write_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.write", input_args, output_args, enter.callback()));
-}
-
-int32_t RecvFrom(PP_Instance instance,
- PP_Var socket_id,
- PP_Var buffer_size,
- PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(buffer_size);
- output_args.push_back(recv_from_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.recvFrom", input_args, output_args, enter.callback()));
-}
-
-int32_t SendTo(PP_Instance instance,
- PP_Var socket_id,
- PP_Var data,
- PP_Var address,
- PP_Var port,
- PP_Ext_Socket_WriteInfo_Dev* write_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(data);
- input_args.push_back(address);
- input_args.push_back(port);
- output_args.push_back(write_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.sendTo", input_args, output_args, enter.callback()));
-}
-
-int32_t Listen(PP_Instance instance,
- PP_Var socket_id,
- PP_Var address,
- PP_Var port,
- PP_Var backlog,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(address);
- input_args.push_back(port);
- input_args.push_back(backlog);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.listen", input_args, output_args, enter.callback()));
-}
-
-int32_t Accept(PP_Instance instance,
- PP_Var socket_id,
- PP_Ext_Socket_AcceptInfo_Dev* accept_info,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- output_args.push_back(accept_info);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.accept", input_args, output_args, enter.callback()));
-}
-
-int32_t SetKeepAlive(PP_Instance instance,
- PP_Var socket_id,
- PP_Var enable,
- PP_Var delay,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(enable);
- input_args.push_back(delay);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.setKeepAlive", input_args, output_args, enter.callback()));
-}
-
-int32_t SetNoDelay(PP_Instance instance,
- PP_Var socket_id,
- PP_Var no_delay,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(no_delay);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.setNoDelay", input_args, output_args, enter.callback()));
-}
-
-int32_t GetInfo(PP_Instance instance,
- PP_Var socket_id,
- PP_Ext_Socket_SocketInfo_Dev* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.getInfo", input_args, output_args, enter.callback()));
-}
-
-int32_t GetNetworkList(PP_Instance instance,
- PP_Ext_Socket_NetworkInterface_Dev_Array* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.getNetworkList", input_args, output_args, enter.callback()));
-}
-
-int32_t JoinGroup(PP_Instance instance,
- PP_Var socket_id,
- PP_Var address,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(address);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.joinGroup", input_args, output_args, enter.callback()));
-}
-
-int32_t LeaveGroup(PP_Instance instance,
- PP_Var socket_id,
- PP_Var address,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(address);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.leaveGroup", input_args, output_args, enter.callback()));
-}
-
-int32_t SetMulticastTimeToLive(PP_Instance instance,
- PP_Var socket_id,
- PP_Var ttl,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(ttl);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.setMulticastTimeToLive", input_args, output_args,
- enter.callback()));
-}
-
-int32_t SetMulticastLoopbackMode(PP_Instance instance,
- PP_Var socket_id,
- PP_Var enabled,
- PP_Var* result,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- input_args.push_back(enabled);
- output_args.push_back(result);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.setMulticastLoopbackMode", input_args, output_args,
- enter.callback()));
-}
-
-int32_t GetJoinedGroups(PP_Instance instance,
- PP_Var socket_id,
- PP_Var* groups,
- PP_CompletionCallback callback) {
- EnterInstanceAPI<ExtensionsCommon_API> enter(instance, callback);
- if (enter.failed())
- return enter.retval();
-
- std::vector<PP_Var> input_args;
- std::vector<PP_Var*> output_args;
- input_args.push_back(socket_id);
- output_args.push_back(groups);
- return enter.SetResult(enter.functions()->CallBrowser(
- "socket.getJoinedGroups", input_args, output_args, enter.callback()));
-}
-
-const PPB_Ext_Socket_Dev_0_1 g_ppb_ext_socket_dev_0_1_thunk = {
- &Create,
- &Destroy,
- &Connect,
- &Bind,
- &Disconnect,
- &Read,
- &Write,
- &RecvFrom,
- &SendTo,
- &Listen,
- &Accept,
- &SetKeepAlive,
- &SetNoDelay,
- &GetInfo,
- &GetNetworkList
-};
-
-const PPB_Ext_Socket_Dev_0_2 g_ppb_ext_socket_dev_0_2_thunk = {
- &Create,
- &Destroy,
- &Connect,
- &Bind,
- &Disconnect,
- &Read,
- &Write,
- &RecvFrom,
- &SendTo,
- &Listen,
- &Accept,
- &SetKeepAlive,
- &SetNoDelay,
- &GetInfo,
- &GetNetworkList,
- &JoinGroup,
- &LeaveGroup,
- &SetMulticastTimeToLive,
- &SetMulticastLoopbackMode,
- &GetJoinedGroups
-};
-} // namespace
-
-const PPB_Ext_Socket_Dev_0_1* GetPPB_Ext_Socket_Dev_0_1_Thunk() {
- return &g_ppb_ext_socket_dev_0_1_thunk;
-}
-
-const PPB_Ext_Socket_Dev_0_2* GetPPB_Ext_Socket_Dev_0_2_Thunk() {
- return &g_ppb_ext_socket_dev_0_2_thunk;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_file_chooser_dev_thunk.cc b/chromium/ppapi/thunk/ppb_file_chooser_dev_thunk.cc
index fe1aa0dbf77..5d8fae07784 100644
--- a/chromium/ppapi/thunk/ppb_file_chooser_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_file_chooser_dev_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_file_chooser_dev.idl modified Mon Apr 1 08:24:03 2013.
+// From dev/ppb_file_chooser_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_file_chooser_dev.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_file_chooser_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -76,11 +74,13 @@ const PPB_FileChooser_Dev_0_6 g_ppb_filechooser_dev_thunk_0_6 = {
} // namespace
-const PPB_FileChooser_Dev_0_5* GetPPB_FileChooser_Dev_0_5_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileChooser_Dev_0_5*
+ GetPPB_FileChooser_Dev_0_5_Thunk() {
return &g_ppb_filechooser_dev_thunk_0_5;
}
-const PPB_FileChooser_Dev_0_6* GetPPB_FileChooser_Dev_0_6_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileChooser_Dev_0_6*
+ GetPPB_FileChooser_Dev_0_6_Thunk() {
return &g_ppb_filechooser_dev_thunk_0_6;
}
diff --git a/chromium/ppapi/thunk/ppb_file_chooser_trusted_thunk.cc b/chromium/ppapi/thunk/ppb_file_chooser_trusted_thunk.cc
index 552bee08f8f..e3b790b73a9 100644
--- a/chromium/ppapi/thunk/ppb_file_chooser_trusted_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_file_chooser_trusted_thunk.cc
@@ -3,17 +3,15 @@
// found in the LICENSE file.
// From trusted/ppb_file_chooser_trusted.idl,
-// modified Mon Apr 1 08:24:03 2013.
+// modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_file_chooser_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -60,11 +58,13 @@ const PPB_FileChooserTrusted_0_6 g_ppb_filechoosertrusted_thunk_0_6 = {
} // namespace
-const PPB_FileChooserTrusted_0_5* GetPPB_FileChooserTrusted_0_5_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileChooserTrusted_0_5*
+ GetPPB_FileChooserTrusted_0_5_Thunk() {
return &g_ppb_filechoosertrusted_thunk_0_5;
}
-const PPB_FileChooserTrusted_0_6* GetPPB_FileChooserTrusted_0_6_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileChooserTrusted_0_6*
+ GetPPB_FileChooserTrusted_0_6_Thunk() {
return &g_ppb_filechoosertrusted_thunk_0_6;
}
diff --git a/chromium/ppapi/thunk/ppb_file_io_api.h b/chromium/ppapi/thunk/ppb_file_io_api.h
index b794f1ca80b..c1e78d4c55f 100644
--- a/chromium/ppapi/thunk/ppb_file_io_api.h
+++ b/chromium/ppapi/thunk/ppb_file_io_api.h
@@ -42,6 +42,10 @@ class PPAPI_THUNK_EXPORT PPB_FileIO_API {
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t SetLength(int64_t length,
scoped_refptr<TrackedCallback> callback) = 0;
+ virtual int64_t GetMaxWrittenOffset() const = 0;
+ virtual int64_t GetAppendModeWriteAmount() const = 0;
+ virtual void SetMaxWrittenOffset(int64_t max_written_offset) = 0;
+ virtual void SetAppendModeWriteAmount(int64_t append_mode_write_amount) = 0;
virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
virtual void Close() = 0;
diff --git a/chromium/ppapi/thunk/ppb_file_io_thunk.cc b/chromium/ppapi/thunk/ppb_file_io_thunk.cc
index 331d190ca81..9e5c6e8fed2 100644
--- a/chromium/ppapi/thunk/ppb_file_io_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_file_io_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_file_io.idl modified Tue Apr 16 11:25:44 2013.
+// From ppb_file_io.idl modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_file_io.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_file_io_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -169,11 +167,11 @@ const PPB_FileIO_1_1 g_ppb_fileio_thunk_1_1 = {
} // namespace
-const PPB_FileIO_1_0* GetPPB_FileIO_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileIO_1_0* GetPPB_FileIO_1_0_Thunk() {
return &g_ppb_fileio_thunk_1_0;
}
-const PPB_FileIO_1_1* GetPPB_FileIO_1_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileIO_1_1* GetPPB_FileIO_1_1_Thunk() {
return &g_ppb_fileio_thunk_1_1;
}
diff --git a/chromium/ppapi/thunk/ppb_file_mapping_api.h b/chromium/ppapi/thunk/ppb_file_mapping_api.h
new file mode 100644
index 00000000000..530d04b61af
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_file_mapping_api.h
@@ -0,0 +1,46 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_FILE_MAPPING_API_H_
+#define PPAPI_THUNK_PPB_FILE_MAPPING_API_H_
+
+#include "base/basictypes.h"
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/pp_instance.h"
+#include "ppapi/c/ppb_file_mapping.h"
+#include "ppapi/shared_impl/singleton_resource_id.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+
+class TrackedCallback;
+
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_FileMapping_API {
+ public:
+ virtual ~PPB_FileMapping_API() {}
+
+ virtual int32_t Map(PP_Instance instance,
+ PP_Resource file_io,
+ int64_t length,
+ uint32_t map_protection,
+ uint32_t map_flags,
+ int64_t offset,
+ void** address,
+ scoped_refptr<TrackedCallback> callback) = 0;
+ virtual int32_t Unmap(PP_Instance instance,
+ const void* address,
+ int64_t length,
+ scoped_refptr<TrackedCallback> callback) = 0;
+ virtual int64_t GetMapPageSize(PP_Instance instance) = 0;
+
+ static const SingletonResourceID kSingletonResourceID =
+ FILE_MAPPING_SINGLETON_ID;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_FILE_MAPPING_API_H_
diff --git a/chromium/ppapi/thunk/ppb_file_mapping_thunk.cc b/chromium/ppapi/thunk/ppb_file_mapping_thunk.cc
new file mode 100644
index 00000000000..bdf29ca06e8
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_file_mapping_thunk.cc
@@ -0,0 +1,77 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_file_mapping.idl modified Mon Jan 27 11:00:43 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_file_mapping.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_file_mapping_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+int32_t Map(PP_Instance instance,
+ PP_Resource file_io,
+ int64_t length,
+ uint32_t map_protection,
+ uint32_t map_flags,
+ int64_t offset,
+ void** address,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_FileMapping::Map()";
+ EnterInstanceAPI<PPB_FileMapping_API> enter(instance, callback);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.functions()->Map(instance,
+ file_io,
+ length,
+ map_protection,
+ map_flags,
+ offset,
+ address,
+ enter.callback()));
+}
+
+int32_t Unmap(PP_Instance instance,
+ const void* address,
+ int64_t length,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_FileMapping::Unmap()";
+ EnterInstanceAPI<PPB_FileMapping_API> enter(instance, callback);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.functions()->Unmap(instance,
+ address,
+ length,
+ enter.callback()));
+}
+
+int64_t GetMapPageSize(PP_Instance instance) {
+ VLOG(4) << "PPB_FileMapping::GetMapPageSize()";
+ EnterInstanceAPI<PPB_FileMapping_API> enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->GetMapPageSize(instance);
+}
+
+const PPB_FileMapping_0_1 g_ppb_filemapping_thunk_0_1 = {
+ &Map,
+ &Unmap,
+ &GetMapPageSize
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_FileMapping_0_1* GetPPB_FileMapping_0_1_Thunk() {
+ return &g_ppb_filemapping_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_file_ref_api.h b/chromium/ppapi/thunk/ppb_file_ref_api.h
index b473ae28721..2a27af5e8cd 100644
--- a/chromium/ppapi/thunk/ppb_file_ref_api.h
+++ b/chromium/ppapi/thunk/ppb_file_ref_api.h
@@ -28,7 +28,7 @@ class PPAPI_THUNK_EXPORT PPB_FileRef_API {
virtual PP_Var GetName() const = 0;
virtual PP_Var GetPath() const = 0;
virtual PP_Resource GetParent() = 0;
- virtual int32_t MakeDirectory(PP_Bool make_ancestors,
+ virtual int32_t MakeDirectory(int32_t make_directory_flags,
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t Touch(PP_Time last_access_time,
PP_Time last_modified_time,
diff --git a/chromium/ppapi/thunk/ppb_file_ref_thunk.cc b/chromium/ppapi/thunk/ppb_file_ref_thunk.cc
index 64c90b55dbc..ef31e9227c3 100644
--- a/chromium/ppapi/thunk/ppb_file_ref_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_file_ref_thunk.cc
@@ -87,8 +87,21 @@ int32_t MakeDirectory(PP_Resource directory_ref,
EnterFileRef enter(directory_ref, callback, true);
if (enter.failed())
return enter.retval();
- return enter.SetResult(enter.object()->MakeDirectory(make_ancestors,
- enter.callback()));
+ int32_t flag = make_ancestors ? PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS
+ : PP_MAKEDIRECTORYFLAG_NONE;
+ return enter.SetResult(enter.object()->MakeDirectory(
+ flag, enter.callback()));
+}
+
+int32_t MakeDirectory_1_2(PP_Resource directory_ref,
+ int32_t make_directory_flags,
+ PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_FileRef::MakeDirectory()";
+ EnterFileRef enter(directory_ref, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->MakeDirectory(
+ make_directory_flags, enter.callback()));
}
int32_t Touch(PP_Resource file_ref,
@@ -180,6 +193,21 @@ const PPB_FileRef_1_1 g_ppb_file_ref_thunk_1_1 = {
&ReadDirectoryEntries
};
+const PPB_FileRef_1_2 g_ppb_file_ref_thunk_1_2 = {
+ &Create,
+ &IsFileRef,
+ &GetFileSystemType,
+ &GetName,
+ &GetPath,
+ &GetParent,
+ &MakeDirectory_1_2,
+ &Touch,
+ &Delete,
+ &Rename,
+ &Query,
+ &ReadDirectoryEntries
+};
+
const PPB_FileRefPrivate g_ppb_file_ref_private_thunk = {
&GetAbsolutePath
};
@@ -194,6 +222,10 @@ const PPB_FileRef_1_1* GetPPB_FileRef_1_1_Thunk() {
return &g_ppb_file_ref_thunk_1_1;
}
+const PPB_FileRef_1_2* GetPPB_FileRef_1_2_Thunk() {
+ return &g_ppb_file_ref_thunk_1_2;
+}
+
const PPB_FileRefPrivate_0_1* GetPPB_FileRefPrivate_0_1_Thunk() {
return &g_ppb_file_ref_private_thunk;
}
diff --git a/chromium/ppapi/thunk/ppb_file_system_api.h b/chromium/ppapi/thunk/ppb_file_system_api.h
index f9524dc0fd0..0351bde4c12 100644
--- a/chromium/ppapi/thunk/ppb_file_system_api.h
+++ b/chromium/ppapi/thunk/ppb_file_system_api.h
@@ -5,6 +5,7 @@
#ifndef PPAPI_THUNK_PPB_FILE_SYSTEM_API_H_
#define PPAPI_THUNK_PPB_FILE_SYSTEM_API_H_
+#include "base/callback_forward.h"
#include "base/memory/ref_counted.h"
#include "ppapi/c/ppb_file_system.h"
@@ -21,6 +22,11 @@ class PPB_FileSystem_API {
virtual int32_t Open(int64_t expected_size,
scoped_refptr<TrackedCallback> callback) = 0;
virtual PP_FileSystemType GetType() = 0;
+ virtual void OpenQuotaFile(PP_Resource file_io) = 0;
+ virtual void CloseQuotaFile(PP_Resource file_io) = 0;
+ typedef base::Callback<void(int64_t)> RequestQuotaCallback;
+ virtual int64_t RequestQuota(int64_t amount,
+ const RequestQuotaCallback& callback) = 0;
};
} // namespace thunk
diff --git a/chromium/ppapi/thunk/ppb_file_system_thunk.cc b/chromium/ppapi/thunk/ppb_file_system_thunk.cc
index 8a608ac6293..b6dec411d19 100644
--- a/chromium/ppapi/thunk/ppb_file_system_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_file_system_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_file_system.idl modified Thu Dec 20 13:10:26 2012.
+// From ppb_file_system.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_file_system.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_file_system_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -60,7 +58,7 @@ const PPB_FileSystem_1_0 g_ppb_filesystem_thunk_1_0 = {
} // namespace
-const PPB_FileSystem_1_0* GetPPB_FileSystem_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_FileSystem_1_0* GetPPB_FileSystem_1_0_Thunk() {
return &g_ppb_filesystem_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_find_dev_thunk.cc b/chromium/ppapi/thunk/ppb_find_dev_thunk.cc
deleted file mode 100644
index 79a10854563..00000000000
--- a/chromium/ppapi/thunk/ppb_find_dev_thunk.cc
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// From dev/ppb_find_dev.idl modified Tue Apr 16 11:25:44 2013.
-
-#include "ppapi/c/dev/ppb_find_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void NumberOfFindResultsChanged(PP_Instance instance,
- int32_t total,
- PP_Bool final_result) {
- VLOG(4) << "PPB_Find_Dev::NumberOfFindResultsChanged()";
- EnterInstance enter(instance);
- if (enter.failed())
- return;
- enter.functions()->NumberOfFindResultsChanged(instance, total, final_result);
-}
-
-void SelectedFindResultChanged(PP_Instance instance, int32_t index) {
- VLOG(4) << "PPB_Find_Dev::SelectedFindResultChanged()";
- EnterInstance enter(instance);
- if (enter.failed())
- return;
- enter.functions()->SelectedFindResultChanged(instance, index);
-}
-
-const PPB_Find_Dev_0_3 g_ppb_find_dev_thunk_0_3 = {
- &NumberOfFindResultsChanged,
- &SelectedFindResultChanged
-};
-
-} // namespace
-
-const PPB_Find_Dev_0_3* GetPPB_Find_Dev_0_3_Thunk() {
- return &g_ppb_find_dev_thunk_0_3;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_find_private_thunk.cc b/chromium/ppapi/thunk/ppb_find_private_thunk.cc
new file mode 100644
index 00000000000..ffa50afbe47
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_find_private_thunk.cc
@@ -0,0 +1,69 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From private/ppb_find_private.idl modified Wed Mar 19 13:42:13 2014.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/private/ppb_find_private.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+void SetPluginToHandleFindRequests(PP_Instance instance) {
+ VLOG(4) << "PPB_Find_Private::SetPluginToHandleFindRequests()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->SetPluginToHandleFindRequests(instance);
+}
+
+void NumberOfFindResultsChanged(PP_Instance instance,
+ int32_t total,
+ PP_Bool final_result) {
+ VLOG(4) << "PPB_Find_Private::NumberOfFindResultsChanged()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->NumberOfFindResultsChanged(instance, total, final_result);
+}
+
+void SelectedFindResultChanged(PP_Instance instance, int32_t index) {
+ VLOG(4) << "PPB_Find_Private::SelectedFindResultChanged()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->SelectedFindResultChanged(instance, index);
+}
+
+void SetTickmarks(PP_Instance instance,
+ const struct PP_Rect tickmarks[],
+ uint32_t count) {
+ VLOG(4) << "PPB_Find_Private::SetTickmarks()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->SetTickmarks(instance, tickmarks, count);
+}
+
+const PPB_Find_Private_0_3 g_ppb_find_private_thunk_0_3 = {
+ &SetPluginToHandleFindRequests,
+ &NumberOfFindResultsChanged,
+ &SelectedFindResultChanged,
+ &SetTickmarks
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_Find_Private_0_3*
+ GetPPB_Find_Private_0_3_Thunk() {
+ return &g_ppb_find_private_thunk_0_3;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_flash_clipboard_api.h b/chromium/ppapi/thunk/ppb_flash_clipboard_api.h
index 4be9aeefed8..6d39bbefce5 100644
--- a/chromium/ppapi/thunk/ppb_flash_clipboard_api.h
+++ b/chromium/ppapi/thunk/ppb_flash_clipboard_api.h
@@ -29,6 +29,10 @@ class PPB_Flash_Clipboard_API {
uint32_t data_item_count,
const uint32_t formats[],
const PP_Var data_items[]) = 0;
+ virtual PP_Bool GetSequenceNumber(
+ PP_Instance instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number) = 0;
static const SingletonResourceID kSingletonResourceID =
FLASH_CLIPBOARD_SINGLETON_ID;
diff --git a/chromium/ppapi/thunk/ppb_flash_clipboard_thunk.cc b/chromium/ppapi/thunk/ppb_flash_clipboard_thunk.cc
index 359d78f203f..95e4ba55c81 100644
--- a/chromium/ppapi/thunk/ppb_flash_clipboard_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_flash_clipboard_thunk.cc
@@ -77,6 +77,16 @@ int32_t WriteData_4_0(PP_Instance instance,
new_formats.get(), data_items);
}
+PP_Bool GetSequenceNumber(PP_Instance instance,
+ PP_Flash_Clipboard_Type clipboard_type,
+ uint64_t* sequence_number) {
+ EnterInstanceAPI<PPB_Flash_Clipboard_API> enter(instance);
+ if (enter.failed())
+ return PP_FALSE;
+ return enter.functions()->GetSequenceNumber(instance, clipboard_type,
+ sequence_number);
+}
+
const PPB_Flash_Clipboard_4_0 g_ppb_flash_clipboard_thunk_4_0 = {
&IsFormatAvailable_4_0,
&ReadData_4_0,
@@ -90,6 +100,14 @@ const PPB_Flash_Clipboard_5_0 g_ppb_flash_clipboard_thunk_5_0 = {
&WriteData
};
+const PPB_Flash_Clipboard_5_1 g_ppb_flash_clipboard_thunk_5_1 = {
+ &RegisterCustomFormat,
+ &IsFormatAvailable,
+ &ReadData,
+ &WriteData,
+ &GetSequenceNumber
+};
+
} // namespace
const PPB_Flash_Clipboard_4_0* GetPPB_Flash_Clipboard_4_0_Thunk() {
@@ -100,5 +118,9 @@ const PPB_Flash_Clipboard_5_0* GetPPB_Flash_Clipboard_5_0_Thunk() {
return &g_ppb_flash_clipboard_thunk_5_0;
}
+const PPB_Flash_Clipboard_5_1* GetPPB_Flash_Clipboard_5_1_Thunk() {
+ return &g_ppb_flash_clipboard_thunk_5_1;
+}
+
} // namespace thunk
} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_flash_drm_thunk.cc b/chromium/ppapi/thunk/ppb_flash_drm_thunk.cc
index a7a3cbaa3ce..359a014c3d4 100644
--- a/chromium/ppapi/thunk/ppb_flash_drm_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_flash_drm_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From private/ppb_flash_drm.idl modified Mon Nov 11 14:49:53 2013.
+// From private/ppb_flash_drm.idl modified Tue Dec 3 15:22:00 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_flash_drm.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_flash_drm_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -84,11 +82,11 @@ const PPB_Flash_DRM_1_1 g_ppb_flash_drm_thunk_1_1 = {
} // namespace
-const PPB_Flash_DRM_1_0* GetPPB_Flash_DRM_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Flash_DRM_1_0* GetPPB_Flash_DRM_1_0_Thunk() {
return &g_ppb_flash_drm_thunk_1_0;
}
-const PPB_Flash_DRM_1_1* GetPPB_Flash_DRM_1_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Flash_DRM_1_1* GetPPB_Flash_DRM_1_1_Thunk() {
return &g_ppb_flash_drm_thunk_1_1;
}
diff --git a/chromium/ppapi/thunk/ppb_fullscreen_thunk.cc b/chromium/ppapi/thunk/ppb_fullscreen_thunk.cc
index 9e07356c918..4be20cab50f 100644
--- a/chromium/ppapi/thunk/ppb_fullscreen_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_fullscreen_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_fullscreen.idl modified Wed May 1 09:47:29 2013.
+// From ppb_fullscreen.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_fullscreen.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -49,7 +47,7 @@ const PPB_Fullscreen_1_0 g_ppb_fullscreen_thunk_1_0 = {
} // namespace
-const PPB_Fullscreen_1_0* GetPPB_Fullscreen_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Fullscreen_1_0* GetPPB_Fullscreen_1_0_Thunk() {
return &g_ppb_fullscreen_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_gamepad_thunk.cc b/chromium/ppapi/thunk/ppb_gamepad_thunk.cc
index e36af344106..8e49e521997 100644
--- a/chromium/ppapi/thunk/ppb_gamepad_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_gamepad_thunk.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_gamepad.idl modified Wed Apr 17 11:16:00 2013.
+// From ppb_gamepad.idl modified Fri Nov 15 14:40:57 2013.
#include <string.h>
@@ -10,10 +10,8 @@
#include "ppapi/c/ppb_gamepad.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_gamepad_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -36,7 +34,7 @@ const PPB_Gamepad_1_0 g_ppb_gamepad_thunk_1_0 = {
} // namespace
-const PPB_Gamepad_1_0* GetPPB_Gamepad_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Gamepad_1_0* GetPPB_Gamepad_1_0_Thunk() {
return &g_ppb_gamepad_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_graphics_2d_api.h b/chromium/ppapi/thunk/ppb_graphics_2d_api.h
index 0709a50ba91..cdb07cce807 100644
--- a/chromium/ppapi/thunk/ppb_graphics_2d_api.h
+++ b/chromium/ppapi/thunk/ppb_graphics_2d_api.h
@@ -6,7 +6,6 @@
#define PPAPI_THUNK_PPB_GRAPHICS_2D_API_H_
#include "base/memory/ref_counted.h"
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_point.h"
@@ -33,12 +32,8 @@ class PPAPI_THUNK_EXPORT PPB_Graphics2D_API {
const PP_Point* amount) = 0;
virtual void ReplaceContents(PP_Resource image_data) = 0;
virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
-
- // Dev interface.
virtual PP_Bool SetScale(float scale) = 0;
virtual float GetScale() = 0;
- virtual void SetOffset(const PP_Point* offset) = 0;
- virtual void SetResizeMode(PP_Graphics2D_Dev_ResizeMode resize_mode) = 0;
// Test only
virtual bool ReadImageData(PP_Resource image, const PP_Point* top_left) = 0;
diff --git a/chromium/ppapi/thunk/ppb_graphics_2d_dev_thunk.cc b/chromium/ppapi/thunk/ppb_graphics_2d_dev_thunk.cc
deleted file mode 100644
index 288215555bb..00000000000
--- a/chromium/ppapi/thunk/ppb_graphics_2d_dev_thunk.cc
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// From dev/ppb_graphics_2d_dev.idl modified Fri Nov 8 13:58:50 2013.
-
-#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_graphics_2d_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool SetScale(PP_Resource resource, float scale) {
- VLOG(4) << "PPB_Graphics2D_Dev::SetScale()";
- EnterResource<PPB_Graphics2D_API> enter(resource, true);
- if (enter.failed())
- return PP_FALSE;
- return enter.object()->SetScale(scale);
-}
-
-float GetScale(PP_Resource resource) {
- VLOG(4) << "PPB_Graphics2D_Dev::GetScale()";
- EnterResource<PPB_Graphics2D_API> enter(resource, true);
- if (enter.failed())
- return 0.0f;
- return enter.object()->GetScale();
-}
-
-void SetOffset(PP_Resource resource, const struct PP_Point* offset) {
- VLOG(4) << "PPB_Graphics2D_Dev::SetOffset()";
- EnterResource<PPB_Graphics2D_API> enter(resource, true);
- if (enter.failed())
- return;
- enter.object()->SetOffset(offset);
-}
-
-void SetResizeMode(PP_Resource resource,
- PP_Graphics2D_Dev_ResizeMode resize_mode) {
- VLOG(4) << "PPB_Graphics2D_Dev::SetResizeMode()";
- EnterResource<PPB_Graphics2D_API> enter(resource, true);
- if (enter.failed())
- return;
- enter.object()->SetResizeMode(resize_mode);
-}
-
-const PPB_Graphics2D_Dev_0_1 g_ppb_graphics2d_dev_thunk_0_1 = {
- &SetScale,
- &GetScale,
- &SetResizeMode
-};
-
-const PPB_Graphics2D_Dev_0_2 g_ppb_graphics2d_dev_thunk_0_2 = {
- &SetScale,
- &GetScale,
- &SetOffset,
- &SetResizeMode
-};
-
-} // namespace
-
-const PPB_Graphics2D_Dev_0_1* GetPPB_Graphics2D_Dev_0_1_Thunk() {
- return &g_ppb_graphics2d_dev_thunk_0_1;
-}
-
-const PPB_Graphics2D_Dev_0_2* GetPPB_Graphics2D_Dev_0_2_Thunk() {
- return &g_ppb_graphics2d_dev_thunk_0_2;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_graphics_2d_thunk.cc b/chromium/ppapi/thunk/ppb_graphics_2d_thunk.cc
index 9eefee2d303..f4446aaa7b2 100644
--- a/chromium/ppapi/thunk/ppb_graphics_2d_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_graphics_2d_thunk.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_graphics_2d.idl modified Fri Apr 26 08:49:08 2013.
+// From ppb_graphics_2d.idl modified Tue Aug 20 08:13:36 2013.
#include <string.h>
@@ -11,10 +11,8 @@
#include "ppapi/c/ppb_graphics_2d.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_graphics_2d_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -127,11 +125,11 @@ const PPB_Graphics2D_1_1 g_ppb_graphics2d_thunk_1_1 = {
} // namespace
-const PPB_Graphics2D_1_0* GetPPB_Graphics2D_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Graphics2D_1_0* GetPPB_Graphics2D_1_0_Thunk() {
return &g_ppb_graphics2d_thunk_1_0;
}
-const PPB_Graphics2D_1_1* GetPPB_Graphics2D_1_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Graphics2D_1_1* GetPPB_Graphics2D_1_1_Thunk() {
return &g_ppb_graphics2d_thunk_1_1;
}
diff --git a/chromium/ppapi/thunk/ppb_graphics_3d_api.h b/chromium/ppapi/thunk/ppb_graphics_3d_api.h
index 6c6a2417b76..ec0b187f76b 100644
--- a/chromium/ppapi/thunk/ppb_graphics_3d_api.h
+++ b/chromium/ppapi/thunk/ppb_graphics_3d_api.h
@@ -31,16 +31,14 @@ class PPAPI_THUNK_EXPORT PPB_Graphics3D_API {
// Graphics3DTrusted API.
virtual PP_Bool SetGetBuffer(int32_t shm_id) = 0;
- virtual gpu::CommandBuffer::State GetState() = 0;
- virtual int32_t CreateTransferBuffer(uint32_t size) = 0;
+ virtual scoped_refptr<gpu::Buffer> CreateTransferBuffer(uint32_t size,
+ int32_t* id) = 0;
virtual PP_Bool DestroyTransferBuffer(int32_t id) = 0;
- virtual PP_Bool GetTransferBuffer(int32_t id,
- int* shm_handle,
- uint32_t* shm_size) = 0;
virtual PP_Bool Flush(int32_t put_offset) = 0;
- virtual gpu::CommandBuffer::State FlushSync(int32_t put_offset) = 0;
- virtual gpu::CommandBuffer::State FlushSyncFast(int32_t put_offset,
- int32_t last_known_get) = 0;
+ virtual gpu::CommandBuffer::State WaitForTokenInRange(int32_t start,
+ int32_t end) = 0;
+ virtual gpu::CommandBuffer::State WaitForGetOffsetInRange(int32_t start,
+ int32_t end) = 0;
// GLESChromiumTextureMapping.
virtual void* MapTexSubImage2DCHROMIUM(GLenum target,
diff --git a/chromium/ppapi/thunk/ppb_graphics_3d_thunk.cc b/chromium/ppapi/thunk/ppb_graphics_3d_thunk.cc
index cc006965e05..837e2bcb06a 100644
--- a/chromium/ppapi/thunk/ppb_graphics_3d_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_graphics_3d_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_graphics_3d.idl modified Mon Apr 1 08:24:03 2013.
+// From ppb_graphics_3d.idl modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_graphics_3d.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_graphics_3d_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -101,7 +99,7 @@ const PPB_Graphics3D_1_0 g_ppb_graphics3d_thunk_1_0 = {
} // namespace
-const PPB_Graphics3D_1_0* GetPPB_Graphics3D_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Graphics3D_1_0* GetPPB_Graphics3D_1_0_Thunk() {
return &g_ppb_graphics3d_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_host_resolver_thunk.cc b/chromium/ppapi/thunk/ppb_host_resolver_thunk.cc
index 03b8d01be45..bac4007ebc0 100644
--- a/chromium/ppapi/thunk/ppb_host_resolver_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_host_resolver_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_host_resolver.idl modified Thu Jun 20 15:36:07 2013.
+// From ppb_host_resolver.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_host_resolver.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_host_resolver_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -83,7 +81,8 @@ const PPB_HostResolver_1_0 g_ppb_hostresolver_thunk_1_0 = {
} // namespace
-const PPB_HostResolver_1_0* GetPPB_HostResolver_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_HostResolver_1_0*
+ GetPPB_HostResolver_1_0_Thunk() {
return &g_ppb_hostresolver_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_image_data_thunk.cc b/chromium/ppapi/thunk/ppb_image_data_thunk.cc
index 51daa590457..6370185f6fa 100644
--- a/chromium/ppapi/thunk/ppb_image_data_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_image_data_thunk.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_image_data.idl modified Thu Jun 6 18:05:40 2013.
+// From ppb_image_data.idl modified Tue Aug 20 08:13:36 2013.
#include <string.h>
@@ -11,10 +11,8 @@
#include "ppapi/shared_impl/ppb_image_data_shared.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_image_data_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -89,7 +87,7 @@ const PPB_ImageData_1_0 g_ppb_imagedata_thunk_1_0 = {
} // namespace
-const PPB_ImageData_1_0* GetPPB_ImageData_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_ImageData_1_0* GetPPB_ImageData_1_0_Thunk() {
return &g_ppb_imagedata_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_input_event_api.h b/chromium/ppapi/thunk/ppb_input_event_api.h
index e2eb3576566..9210c85b9e0 100644
--- a/chromium/ppapi/thunk/ppb_input_event_api.h
+++ b/chromium/ppapi/thunk/ppb_input_event_api.h
@@ -6,7 +6,6 @@
#define PPAPI_THUNK_PPB_INPUT_EVENT_API_H_
#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/dev/ppb_keyboard_input_event_dev.h"
#include "ppapi/c/ppb_input_event.h"
#include "ppapi/thunk/ppapi_thunk_export.h"
@@ -36,8 +35,6 @@ class PPAPI_THUNK_EXPORT PPB_InputEvent_API {
virtual PP_Bool GetWheelScrollByPage() = 0;
virtual uint32_t GetKeyCode() = 0;
virtual PP_Var GetCharacterText() = 0;
- virtual PP_Bool SetUsbKeyCode(uint32_t) = 0;
- virtual uint32_t GetUsbKeyCode() = 0;
virtual PP_Var GetCode() = 0;
virtual uint32_t GetIMESegmentNumber() = 0;
virtual uint32_t GetIMESegmentOffset(uint32_t index) = 0;
@@ -50,6 +47,9 @@ class PPAPI_THUNK_EXPORT PPB_InputEvent_API {
uint32_t index) = 0;
virtual PP_TouchPoint GetTouchById(PP_TouchListType list,
uint32_t id) = 0;
+
+ // Private API.
+ virtual PP_Bool TraceInputLatency(PP_Bool has_damage) = 0;
};
} // namespace thunk
diff --git a/chromium/ppapi/thunk/ppb_input_event_private_thunk.cc b/chromium/ppapi/thunk/ppb_input_event_private_thunk.cc
new file mode 100644
index 00000000000..4bc78128fd1
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_input_event_private_thunk.cc
@@ -0,0 +1,42 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/private/ppb_input_event_private.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_input_event_api.h"
+#include "ppapi/thunk/thunk.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool TraceInputLatency(PP_Resource event, PP_Bool has_damage) {
+ EnterResource<PPB_InputEvent_API> enter(event, true);
+ if (enter.failed())
+ return PP_FALSE;
+ return enter.object()->TraceInputLatency(has_damage);
+}
+
+void StartTrackingLatency(PP_Instance instance) {
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->StartTrackingLatency(instance);
+}
+
+const PPB_InputEvent_Private_0_1 g_ppb_input_event_private_thunk_0_1 = {
+ &TraceInputLatency,
+ &StartTrackingLatency
+};
+
+} // namespace
+
+const PPB_InputEvent_Private_0_1* GetPPB_InputEvent_Private_0_1_Thunk() {
+ return &g_ppb_input_event_private_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_input_event_thunk.cc b/chromium/ppapi/thunk/ppb_input_event_thunk.cc
index 5a0927da68d..c29b56c3f32 100644
--- a/chromium/ppapi/thunk/ppb_input_event_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_input_event_thunk.cc
@@ -244,19 +244,37 @@ const PPB_WheelInputEvent g_ppb_wheel_input_event_thunk = {
// Keyboard --------------------------------------------------------------------
-PP_Resource CreateKeyboardInputEvent(PP_Instance instance,
- PP_InputEvent_Type type,
- PP_TimeTicks time_stamp,
- uint32_t modifiers,
- uint32_t key_code,
- struct PP_Var character_text) {
+PP_Resource CreateKeyboardInputEvent_1_0(PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ struct PP_Var character_text) {
VLOG(4) << "PPB_KeyboardInputEvent::Create()";
EnterResourceCreation enter(instance);
if (enter.failed())
return 0;
- return enter.functions()->CreateKeyboardInputEvent(instance, type, time_stamp,
- modifiers, key_code,
- character_text);
+ return enter.functions()->CreateKeyboardInputEvent_1_0(instance, type,
+ time_stamp,
+ modifiers, key_code,
+ character_text);
+}
+
+PP_Resource CreateKeyboardInputEvent_1_2(PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ struct PP_Var character_text,
+ struct PP_Var code) {
+ VLOG(4) << "PPB_KeyboardInputEvent::Create()";
+ EnterResourceCreation enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateKeyboardInputEvent_1_2(instance, type,
+ time_stamp,
+ modifiers, key_code,
+ character_text, code);
}
PP_Bool IsKeyboardInputEvent(PP_Resource resource) {
@@ -286,44 +304,27 @@ PP_Var GetCharacterText(PP_Resource character_event) {
return enter.object()->GetCharacterText();
}
-const PPB_KeyboardInputEvent g_ppb_keyboard_input_event_thunk = {
- &CreateKeyboardInputEvent,
- &IsKeyboardInputEvent,
- &GetKeyCode,
- &GetCharacterText
-};
-
-// _Dev interface.
-
-PP_Bool SetUsbKeyCode(PP_Resource key_event, uint32_t usb_key_code) {
- VLOG(4) << "PPB_KeyboardInputEvent_Dev::SetUsbKeyCode()";
- EnterInputEvent enter(key_event, true);
- if (enter.failed())
- return PP_FALSE;
- return enter.object()->SetUsbKeyCode(usb_key_code);
-}
-
-uint32_t GetUsbKeyCode(PP_Resource key_event) {
- VLOG(4) << "PPB_KeyboardInputEvent_Dev::GetUsbKeyCode()";
- EnterInputEvent enter(key_event, true);
- if (enter.failed())
- return 0;
- return enter.object()->GetUsbKeyCode();
-}
-
PP_Var GetCode(PP_Resource key_event) {
- VLOG(4) << "PPB_KeyboardInputEvent_Dev::GetCode()";
+ VLOG(4) << "PPB_KeyboardInputEvent::GetCode()";
EnterInputEvent enter(key_event, true);
if (enter.failed())
return PP_MakeUndefined();
return enter.object()->GetCode();
}
-const PPB_KeyboardInputEvent_Dev_0_2
- g_ppb_keyboard_input_event_dev_0_2_thunk = {
- &SetUsbKeyCode,
- &GetUsbKeyCode,
- &GetCode,
+const PPB_KeyboardInputEvent_1_0 g_ppb_keyboard_input_event_1_0_thunk = {
+ &CreateKeyboardInputEvent_1_0,
+ &IsKeyboardInputEvent,
+ &GetKeyCode,
+ &GetCharacterText
+};
+
+const PPB_KeyboardInputEvent g_ppb_keyboard_input_event_thunk = {
+ &CreateKeyboardInputEvent_1_2,
+ &IsKeyboardInputEvent,
+ &GetKeyCode,
+ &GetCharacterText,
+ &GetCode
};
// Composition -----------------------------------------------------------------
@@ -518,12 +519,11 @@ const PPB_MouseInputEvent_1_1* GetPPB_MouseInputEvent_1_1_Thunk() {
}
const PPB_KeyboardInputEvent_1_0* GetPPB_KeyboardInputEvent_1_0_Thunk() {
- return &g_ppb_keyboard_input_event_thunk;
+ return &g_ppb_keyboard_input_event_1_0_thunk;
}
-const PPB_KeyboardInputEvent_Dev_0_2*
- GetPPB_KeyboardInputEvent_Dev_0_2_Thunk() {
- return &g_ppb_keyboard_input_event_dev_0_2_thunk;
+const PPB_KeyboardInputEvent_1_2* GetPPB_KeyboardInputEvent_1_2_Thunk() {
+ return &g_ppb_keyboard_input_event_thunk;
}
const PPB_WheelInputEvent_1_0* GetPPB_WheelInputEvent_1_0_Thunk() {
diff --git a/chromium/ppapi/thunk/ppb_instance_api.h b/chromium/ppapi/thunk/ppb_instance_api.h
index bac3f97292a..263b49cc42c 100644
--- a/chromium/ppapi/thunk/ppb_instance_api.h
+++ b/chromium/ppapi/thunk/ppb_instance_api.h
@@ -30,6 +30,7 @@
struct PP_DecryptedBlockInfo;
struct PP_DecryptedFrameInfo;
+struct PPP_MessageHandler_0_1;
namespace ppapi {
@@ -78,11 +79,15 @@ class PPB_Instance_API {
PP_Var value) = 0;
// Find.
+ virtual void SetPluginToHandleFindRequests(PP_Instance instance) = 0;
virtual void NumberOfFindResultsChanged(PP_Instance instance,
int32_t total,
PP_Bool final_result) = 0;
virtual void SelectedFindResultChanged(PP_Instance instance,
int32_t index) = 0;
+ virtual void SetTickmarks(PP_Instance instance,
+ const PP_Rect* tickmarks,
+ uint32_t count) = 0;
// Fullscreen.
virtual PP_Bool IsFullscreen(PP_Instance instance) = 0;
@@ -105,8 +110,16 @@ class PPB_Instance_API {
virtual void ClearInputEventRequest(PP_Instance instance,
uint32_t event_classes) = 0;
+ // InputEventPrivate.
+ virtual void StartTrackingLatency(PP_Instance instance) = 0;
+
// Messaging.
virtual void PostMessage(PP_Instance instance, PP_Var message) = 0;
+ virtual int32_t RegisterMessageHandler(PP_Instance instance,
+ void* user_data,
+ const PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) = 0;
+ virtual void UnregisterMessageHandler(PP_Instance instance) = 0;
// Mouse cursor.
virtual PP_Bool SetCursor(PP_Instance instance,
@@ -142,19 +155,28 @@ class PPB_Instance_API {
PP_URLComponents_Dev* components) = 0;
#if !defined(OS_NACL)
// Content Decryptor.
- virtual void SessionCreated(PP_Instance instance,
- uint32 session_id,
- PP_Var web_session_id) = 0;
+ virtual void PromiseResolved(PP_Instance instance, uint32 promise_id) = 0;
+ virtual void PromiseResolvedWithSession(PP_Instance instance,
+ uint32 promise_id,
+ PP_Var web_session_id_var) = 0;
+ virtual void PromiseRejected(PP_Instance instance,
+ uint32 promise_id,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) = 0;
virtual void SessionMessage(PP_Instance instance,
- uint32 session_id,
- PP_Var message,
- PP_Var destination_url) = 0;
- virtual void SessionReady(PP_Instance instance, uint32 session_id) = 0;
- virtual void SessionClosed(PP_Instance instance, uint32 session_id) = 0;
+ PP_Var web_session_id_var,
+ PP_Var message_var,
+ PP_Var destination_url_var) = 0;
+ virtual void SessionReady(PP_Instance instance,
+ PP_Var web_session_id_var) = 0;
+ virtual void SessionClosed(PP_Instance instance,
+ PP_Var web_session_id_var) = 0;
virtual void SessionError(PP_Instance instance,
- uint32 session_id,
- int32_t media_error,
- int32_t system_error) = 0;
+ PP_Var web_session_id_var,
+ PP_CdmExceptionCode exception_code,
+ uint32 system_code,
+ PP_Var error_description_var) = 0;
virtual void DeliverBlock(PP_Instance instance,
PP_Resource decrypted_block,
const PP_DecryptedBlockInfo* block_info) = 0;
diff --git a/chromium/ppapi/thunk/ppb_instance_private_thunk.cc b/chromium/ppapi/thunk/ppb_instance_private_thunk.cc
index 0d9c10bcf71..545b4ecf973 100644
--- a/chromium/ppapi/thunk/ppb_instance_private_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_instance_private_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From private/ppb_instance_private.idl modified Thu Feb 28 11:58:17 2013.
+// From private/ppb_instance_private.idl modified Thu Nov 14 08:28:26 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_instance_private.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -51,7 +49,8 @@ const PPB_Instance_Private_0_1 g_ppb_instance_private_thunk_0_1 = {
} // namespace
-const PPB_Instance_Private_0_1* GetPPB_Instance_Private_0_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Instance_Private_0_1*
+ GetPPB_Instance_Private_0_1_Thunk() {
return &g_ppb_instance_private_thunk_0_1;
}
diff --git a/chromium/ppapi/thunk/ppb_instance_thunk.cc b/chromium/ppapi/thunk/ppb_instance_thunk.cc
index f55c7ee38bf..770998f3710 100644
--- a/chromium/ppapi/thunk/ppb_instance_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_instance_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_instance.idl modified Thu Feb 28 11:58:17 2013.
+// From ppb_instance.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_instance.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -40,7 +38,7 @@ const PPB_Instance_1_0 g_ppb_instance_thunk_1_0 = {
} // namespace
-const PPB_Instance_1_0* GetPPB_Instance_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Instance_1_0* GetPPB_Instance_1_0_Thunk() {
return &g_ppb_instance_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_isolated_file_system_private_thunk.cc b/chromium/ppapi/thunk/ppb_isolated_file_system_private_thunk.cc
index cd58b24527e..6b328592d15 100644
--- a/chromium/ppapi/thunk/ppb_isolated_file_system_private_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_isolated_file_system_private_thunk.cc
@@ -3,17 +3,15 @@
// found in the LICENSE file.
// From private/ppb_isolated_file_system_private.idl,
-// modified Fri Nov 8 02:21:15 2013.
+// modified Mon Nov 25 11:17:07 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_isolated_file_system_private.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_isolated_file_system_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -42,7 +40,7 @@ const PPB_IsolatedFileSystem_Private_0_2
} // namespace
-const PPB_IsolatedFileSystem_Private_0_2*
+PPAPI_THUNK_EXPORT const PPB_IsolatedFileSystem_Private_0_2*
GetPPB_IsolatedFileSystem_Private_0_2_Thunk() {
return &g_ppb_isolatedfilesystem_private_thunk_0_2;
}
diff --git a/chromium/ppapi/thunk/ppb_media_stream_audio_track_api.h b/chromium/ppapi/thunk/ppb_media_stream_audio_track_api.h
new file mode 100644
index 00000000000..2c43136d329
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_media_stream_audio_track_api.h
@@ -0,0 +1,31 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
+#define PPAPI_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
+
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_MediaStreamAudioTrack_API {
+ public:
+ virtual ~PPB_MediaStreamAudioTrack_API() {}
+ virtual PP_Var GetId() = 0;
+ virtual PP_Bool HasEnded() = 0;
+ virtual int32_t Configure(const int32_t attrib_list[],
+ scoped_refptr<ppapi::TrackedCallback> callback) = 0;
+ virtual int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value) = 0;
+ virtual int32_t GetBuffer(PP_Resource* buffer,
+ scoped_refptr<ppapi::TrackedCallback> callback) = 0;
+ virtual int32_t RecycleBuffer(PP_Resource buffer) = 0;
+ virtual void Close() = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
diff --git a/chromium/ppapi/thunk/ppb_media_stream_audio_track_thunk.cc b/chromium/ppapi/thunk/ppb_media_stream_audio_track_thunk.cc
new file mode 100644
index 00000000000..c7140a1c1d3
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_media_stream_audio_track_thunk.cc
@@ -0,0 +1,112 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_media_stream_audio_track.idl modified Thu Feb 6 15:43:37 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_media_stream_audio_track.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_media_stream_audio_track_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool IsMediaStreamAudioTrack(PP_Resource resource) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::IsMediaStreamAudioTrack()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+int32_t Configure(PP_Resource audio_track,
+ const int32_t attrib_list[],
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::Configure()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->Configure(attrib_list,
+ enter.callback()));
+}
+
+int32_t GetAttrib(PP_Resource audio_track,
+ PP_MediaStreamAudioTrack_Attrib attrib,
+ int32_t* value) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::GetAttrib()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->GetAttrib(attrib, value);
+}
+
+struct PP_Var GetId(PP_Resource audio_track) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::GetId()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
+ if (enter.failed())
+ return PP_MakeUndefined();
+ return enter.object()->GetId();
+}
+
+PP_Bool HasEnded(PP_Resource audio_track) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::HasEnded()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
+ if (enter.failed())
+ return PP_TRUE;
+ return enter.object()->HasEnded();
+}
+
+int32_t GetBuffer(PP_Resource audio_track,
+ PP_Resource* buffer,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::GetBuffer()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->GetBuffer(buffer, enter.callback()));
+}
+
+int32_t RecycleBuffer(PP_Resource audio_track, PP_Resource buffer) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::RecycleBuffer()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->RecycleBuffer(buffer);
+}
+
+void Close(PP_Resource audio_track) {
+ VLOG(4) << "PPB_MediaStreamAudioTrack::Close()";
+ EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
+ if (enter.failed())
+ return;
+ enter.object()->Close();
+}
+
+const PPB_MediaStreamAudioTrack_0_1 g_ppb_mediastreamaudiotrack_thunk_0_1 = {
+ &IsMediaStreamAudioTrack,
+ &Configure,
+ &GetAttrib,
+ &GetId,
+ &HasEnded,
+ &GetBuffer,
+ &RecycleBuffer,
+ &Close
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_MediaStreamAudioTrack_0_1*
+ GetPPB_MediaStreamAudioTrack_0_1_Thunk() {
+ return &g_ppb_mediastreamaudiotrack_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_media_stream_video_track_api.h b/chromium/ppapi/thunk/ppb_media_stream_video_track_api.h
new file mode 100644
index 00000000000..6cee06a5e99
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_media_stream_video_track_api.h
@@ -0,0 +1,35 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
+#define PPAPI_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
+
+#include "ppapi/c/ppb_media_stream_video_track.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_MediaStreamVideoTrack_API {
+ public:
+ virtual ~PPB_MediaStreamVideoTrack_API() {}
+ virtual PP_Var GetId() = 0;
+ virtual PP_Bool HasEnded() = 0;
+ virtual int32_t Configure(const int32_t attrib_list[],
+ scoped_refptr<ppapi::TrackedCallback> callback) = 0;
+ virtual int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value) = 0;
+ virtual int32_t GetFrame(PP_Resource* frame,
+ scoped_refptr<ppapi::TrackedCallback> callback) = 0;
+ virtual int32_t RecycleFrame(PP_Resource frame) = 0;
+ virtual void Close() = 0;
+ virtual int32_t GetEmptyFrame(
+ PP_Resource* frame,
+ scoped_refptr<ppapi::TrackedCallback> callback) = 0;
+ virtual int32_t PutFrame(PP_Resource frame) = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
diff --git a/chromium/ppapi/thunk/ppb_media_stream_video_track_thunk.cc b/chromium/ppapi/thunk/ppb_media_stream_video_track_thunk.cc
new file mode 100644
index 00000000000..8a26a41426c
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_media_stream_video_track_thunk.cc
@@ -0,0 +1,160 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_media_stream_video_track.idl modified Mon Mar 31 14:40:45 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_media_stream_video_track.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_media_stream_video_track_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Resource Create(PP_Instance instance) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::Create()";
+ EnterResourceCreation enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateMediaStreamVideoTrack(instance);
+}
+
+PP_Bool IsMediaStreamVideoTrack(PP_Resource resource) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::IsMediaStreamVideoTrack()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+int32_t Configure(PP_Resource video_track,
+ const int32_t attrib_list[],
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::Configure()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->Configure(attrib_list,
+ enter.callback()));
+}
+
+int32_t GetAttrib(PP_Resource video_track,
+ PP_MediaStreamVideoTrack_Attrib attrib,
+ int32_t* value) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::GetAttrib()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->GetAttrib(attrib, value);
+}
+
+struct PP_Var GetId(PP_Resource video_track) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::GetId()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return PP_MakeUndefined();
+ return enter.object()->GetId();
+}
+
+PP_Bool HasEnded(PP_Resource video_track) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::HasEnded()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return PP_TRUE;
+ return enter.object()->HasEnded();
+}
+
+int32_t GetFrame(PP_Resource video_track,
+ PP_Resource* frame,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::GetFrame()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->GetFrame(frame, enter.callback()));
+}
+
+int32_t RecycleFrame(PP_Resource video_track, PP_Resource frame) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::RecycleFrame()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->RecycleFrame(frame);
+}
+
+void Close(PP_Resource video_track) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::Close()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return;
+ enter.object()->Close();
+}
+
+int32_t GetEmptyFrame(PP_Resource video_track,
+ PP_Resource* frame,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::GetEmptyFrame()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track,
+ callback,
+ true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->GetEmptyFrame(frame,
+ enter.callback()));
+}
+
+int32_t PutFrame(PP_Resource video_track, PP_Resource frame) {
+ VLOG(4) << "PPB_MediaStreamVideoTrack::PutFrame()";
+ EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.object()->PutFrame(frame);
+}
+
+const PPB_MediaStreamVideoTrack_0_1 g_ppb_mediastreamvideotrack_thunk_0_1 = {
+ &IsMediaStreamVideoTrack,
+ &Configure,
+ &GetAttrib,
+ &GetId,
+ &HasEnded,
+ &GetFrame,
+ &RecycleFrame,
+ &Close
+};
+
+const PPB_MediaStreamVideoTrack_1_0 g_ppb_mediastreamvideotrack_thunk_1_0 = {
+ &Create,
+ &IsMediaStreamVideoTrack,
+ &Configure,
+ &GetAttrib,
+ &GetId,
+ &HasEnded,
+ &GetFrame,
+ &RecycleFrame,
+ &Close,
+ &GetEmptyFrame,
+ &PutFrame
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_MediaStreamVideoTrack_0_1*
+ GetPPB_MediaStreamVideoTrack_0_1_Thunk() {
+ return &g_ppb_mediastreamvideotrack_thunk_0_1;
+}
+
+PPAPI_THUNK_EXPORT const PPB_MediaStreamVideoTrack_1_0*
+ GetPPB_MediaStreamVideoTrack_1_0_Thunk() {
+ return &g_ppb_mediastreamvideotrack_thunk_1_0;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_messaging_thunk.cc b/chromium/ppapi/thunk/ppb_messaging_thunk.cc
index d485b3d8643..c35123360a4 100644
--- a/chromium/ppapi/thunk/ppb_messaging_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_messaging_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_messaging.idl modified Tue Apr 16 11:25:44 2013.
+// From ppb_messaging.idl modified Thu May 29 15:54:46 2014.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_messaging.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -25,15 +23,47 @@ void PostMessage(PP_Instance instance, struct PP_Var message) {
enter.functions()->PostMessage(instance, message);
}
+int32_t RegisterMessageHandler(PP_Instance instance,
+ void* user_data,
+ const struct PPP_MessageHandler_0_1* handler,
+ PP_Resource message_loop) {
+ VLOG(4) << "PPB_Messaging::RegisterMessageHandler()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return enter.retval();
+ return enter.functions()->RegisterMessageHandler(instance,
+ user_data,
+ handler,
+ message_loop);
+}
+
+void UnregisterMessageHandler(PP_Instance instance) {
+ VLOG(4) << "PPB_Messaging::UnregisterMessageHandler()";
+ EnterInstance enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->UnregisterMessageHandler(instance);
+}
+
const PPB_Messaging_1_0 g_ppb_messaging_thunk_1_0 = {
&PostMessage
};
+const PPB_Messaging_1_1 g_ppb_messaging_thunk_1_1 = {
+ &PostMessage,
+ &RegisterMessageHandler,
+ &UnregisterMessageHandler
+};
+
} // namespace
-const PPB_Messaging_1_0* GetPPB_Messaging_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Messaging_1_0* GetPPB_Messaging_1_0_Thunk() {
return &g_ppb_messaging_thunk_1_0;
}
+PPAPI_THUNK_EXPORT const PPB_Messaging_1_1* GetPPB_Messaging_1_1_Thunk() {
+ return &g_ppb_messaging_thunk_1_1;
+}
+
} // namespace thunk
} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_mouse_cursor_thunk.cc b/chromium/ppapi/thunk/ppb_mouse_cursor_thunk.cc
index beb826302ea..8e4ec359989 100644
--- a/chromium/ppapi/thunk/ppb_mouse_cursor_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_mouse_cursor_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_mouse_cursor.idl modified Mon Apr 1 08:24:03 2013.
+// From ppb_mouse_cursor.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_mouse_cursor.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -34,7 +32,7 @@ const PPB_MouseCursor_1_0 g_ppb_mousecursor_thunk_1_0 = {
} // namespace
-const PPB_MouseCursor_1_0* GetPPB_MouseCursor_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_MouseCursor_1_0* GetPPB_MouseCursor_1_0_Thunk() {
return &g_ppb_mousecursor_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_mouse_lock_thunk.cc b/chromium/ppapi/thunk/ppb_mouse_lock_thunk.cc
index d9bfa2d635e..586a2297921 100644
--- a/chromium/ppapi/thunk/ppb_mouse_lock_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_mouse_lock_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_mouse_lock.idl modified Mon May 6 13:58:10 2013.
+// From ppb_mouse_lock.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_mouse_lock.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -42,7 +40,7 @@ const PPB_MouseLock_1_0 g_ppb_mouselock_thunk_1_0 = {
} // namespace
-const PPB_MouseLock_1_0* GetPPB_MouseLock_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_MouseLock_1_0* GetPPB_MouseLock_1_0_Thunk() {
return &g_ppb_mouselock_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_network_list_thunk.cc b/chromium/ppapi/thunk/ppb_network_list_thunk.cc
index 393a752cc01..3610fe62277 100644
--- a/chromium/ppapi/thunk/ppb_network_list_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_network_list_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_network_list.idl modified Mon Sep 9 11:18:02 2013.
+// From ppb_network_list.idl modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_network_list.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_network_list_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -95,7 +93,7 @@ const PPB_NetworkList_1_0 g_ppb_networklist_thunk_1_0 = {
} // namespace
-const PPB_NetworkList_1_0* GetPPB_NetworkList_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_NetworkList_1_0* GetPPB_NetworkList_1_0_Thunk() {
return &g_ppb_networklist_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_network_monitor_thunk.cc b/chromium/ppapi/thunk/ppb_network_monitor_thunk.cc
index 089d783b63b..5f7851d8170 100644
--- a/chromium/ppapi/thunk/ppb_network_monitor_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_network_monitor_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_network_monitor.idl modified Thu Sep 5 12:10:00 2013.
+// From ppb_network_monitor.idl modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_network_monitor.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_network_monitor_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -52,7 +50,8 @@ const PPB_NetworkMonitor_1_0 g_ppb_networkmonitor_thunk_1_0 = {
} // namespace
-const PPB_NetworkMonitor_1_0* GetPPB_NetworkMonitor_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_NetworkMonitor_1_0*
+ GetPPB_NetworkMonitor_1_0_Thunk() {
return &g_ppb_networkmonitor_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_network_proxy_thunk.cc b/chromium/ppapi/thunk/ppb_network_proxy_thunk.cc
index 20c14ade989..f041e956bb1 100644
--- a/chromium/ppapi/thunk/ppb_network_proxy_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_network_proxy_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_network_proxy.idl modified Thu Jun 20 22:03:12 2013.
+// From ppb_network_proxy.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_network_proxy.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_network_proxy_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -39,7 +37,8 @@ const PPB_NetworkProxy_1_0 g_ppb_networkproxy_thunk_1_0 = {
} // namespace
-const PPB_NetworkProxy_1_0* GetPPB_NetworkProxy_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_NetworkProxy_1_0*
+ GetPPB_NetworkProxy_1_0_Thunk() {
return &g_ppb_networkproxy_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_output_protection_private_thunk.cc b/chromium/ppapi/thunk/ppb_output_protection_private_thunk.cc
index 8708806a2a2..0813f99080f 100644
--- a/chromium/ppapi/thunk/ppb_output_protection_private_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_output_protection_private_thunk.cc
@@ -3,17 +3,15 @@
// found in the LICENSE file.
// From private/ppb_output_protection_private.idl,
-// modified Thu Aug 29 13:39:04 2013.
+// modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_output_protection_private.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_output_protection_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -69,7 +67,7 @@ const PPB_OutputProtection_Private_0_1
} // namespace
-const PPB_OutputProtection_Private_0_1*
+PPAPI_THUNK_EXPORT const PPB_OutputProtection_Private_0_1*
GetPPB_OutputProtection_Private_0_1_Thunk() {
return &g_ppb_outputprotection_private_thunk_0_1;
}
diff --git a/chromium/ppapi/thunk/ppb_pdf_api.h b/chromium/ppapi/thunk/ppb_pdf_api.h
index a23c527189e..a37da2b66a2 100644
--- a/chromium/ppapi/thunk/ppb_pdf_api.h
+++ b/chromium/ppapi/thunk/ppb_pdf_api.h
@@ -32,6 +32,8 @@ class PPB_PDF_API {
virtual PP_Resource GetResourceImageForScale(PP_ResourceImage image_id,
float scale) = 0;
virtual PP_Bool IsOutOfProcess() = 0;
+ virtual void SetSelectedText(const char* selected_text) = 0;
+ virtual void SetLinkUnderCursor(const char* url) = 0;
static const SingletonResourceID kSingletonResourceID = PDF_SINGLETON_ID;
};
diff --git a/chromium/ppapi/thunk/ppb_pdf_thunk.cc b/chromium/ppapi/thunk/ppb_pdf_thunk.cc
index 282f8934850..a8aa0806b17 100644
--- a/chromium/ppapi/thunk/ppb_pdf_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_pdf_thunk.cc
@@ -147,6 +147,20 @@ PP_Bool IsOutOfProcess(PP_Instance instance) {
return enter.functions()->IsOutOfProcess();
}
+void SetSelectedText(PP_Instance instance,
+ const char* selected_text) {
+ EnterInstanceAPI<PPB_PDF_API> enter(instance);
+ if (enter.succeeded())
+ enter.functions()->SetSelectedText(selected_text);
+}
+
+void SetLinkUnderCursor(PP_Instance instance, const char* url) {
+ EnterInstanceAPI<PPB_PDF_API> enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->SetLinkUnderCursor(url);
+}
+
const PPB_PDF g_ppb_pdf_thunk = {
&GetLocalizedString,
&GetResourceImage,
@@ -165,6 +179,8 @@ const PPB_PDF g_ppb_pdf_thunk = {
&GetResourceImageForScale,
&ModalPromptForPassword,
&IsOutOfProcess,
+ &SetSelectedText,
+ &SetLinkUnderCursor,
};
} // namespace
diff --git a/chromium/ppapi/thunk/ppb_platform_verification_private_thunk.cc b/chromium/ppapi/thunk/ppb_platform_verification_private_thunk.cc
index 37d842eeb7d..c24e7d4144f 100644
--- a/chromium/ppapi/thunk/ppb_platform_verification_private_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_platform_verification_private_thunk.cc
@@ -3,17 +3,15 @@
// found in the LICENSE file.
// From private/ppb_platform_verification_private.idl,
-// modified Fri Oct 18 15:02:09 2013.
+// modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_platform_verification_private.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_platform_verification_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -63,7 +61,7 @@ const PPB_PlatformVerification_Private_0_2
} // namespace
-const PPB_PlatformVerification_Private_0_2*
+PPAPI_THUNK_EXPORT const PPB_PlatformVerification_Private_0_2*
GetPPB_PlatformVerification_Private_0_2_Thunk() {
return &g_ppb_platformverification_private_thunk_0_2;
}
diff --git a/chromium/ppapi/thunk/ppb_printing_dev_thunk.cc b/chromium/ppapi/thunk/ppb_printing_dev_thunk.cc
index 117ef17ca75..96f52f5832c 100644
--- a/chromium/ppapi/thunk/ppb_printing_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_printing_dev_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_printing_dev.idl modified Fri Apr 19 10:45:09 2013.
+// From dev/ppb_printing_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_printing_dev.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_printing_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -46,7 +44,8 @@ const PPB_Printing_Dev_0_7 g_ppb_printing_dev_thunk_0_7 = {
} // namespace
-const PPB_Printing_Dev_0_7* GetPPB_Printing_Dev_0_7_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Printing_Dev_0_7*
+ GetPPB_Printing_Dev_0_7_Thunk() {
return &g_ppb_printing_dev_thunk_0_7;
}
diff --git a/chromium/ppapi/thunk/ppb_resource_array_api.h b/chromium/ppapi/thunk/ppb_resource_array_api.h
deleted file mode 100644
index ec37f9e0fc3..00000000000
--- a/chromium/ppapi/thunk/ppb_resource_array_api.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
-#define PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
-
-#include "ppapi/c/dev/ppb_resource_array_dev.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_ResourceArray_API {
- public:
- virtual ~PPB_ResourceArray_API() {}
-
- virtual uint32_t GetSize() = 0;
- virtual PP_Resource GetAt(uint32_t index) = 0;
-};
-
-} // namespace thunk
-} // namespace ppapi
-
-#endif // PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_
diff --git a/chromium/ppapi/thunk/ppb_resource_array_dev_thunk.cc b/chromium/ppapi/thunk/ppb_resource_array_dev_thunk.cc
deleted file mode 100644
index 6d51a564d8a..00000000000
--- a/chromium/ppapi/thunk/ppb_resource_array_dev_thunk.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// From dev/ppb_resource_array_dev.idl modified Thu Dec 20 13:10:26 2012.
-
-#include "ppapi/c/dev/ppb_resource_array_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/ppb_resource_array_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size) {
- VLOG(4) << "PPB_ResourceArray_Dev::Create()";
- EnterResourceCreation enter(instance);
- if (enter.failed())
- return 0;
- return enter.functions()->CreateResourceArray(instance, elements, size);
-}
-
-PP_Bool IsResourceArray(PP_Resource resource) {
- VLOG(4) << "PPB_ResourceArray_Dev::IsResourceArray()";
- EnterResource<PPB_ResourceArray_API> enter(resource, false);
- return PP_FromBool(enter.succeeded());
-}
-
-uint32_t GetSize(PP_Resource resource_array) {
- VLOG(4) << "PPB_ResourceArray_Dev::GetSize()";
- EnterResource<PPB_ResourceArray_API> enter(resource_array, true);
- if (enter.failed())
- return 0;
- return enter.object()->GetSize();
-}
-
-PP_Resource GetAt(PP_Resource resource_array, uint32_t index) {
- VLOG(4) << "PPB_ResourceArray_Dev::GetAt()";
- EnterResource<PPB_ResourceArray_API> enter(resource_array, true);
- if (enter.failed())
- return 0;
- return enter.object()->GetAt(index);
-}
-
-const PPB_ResourceArray_Dev_0_1 g_ppb_resourcearray_dev_thunk_0_1 = {
- &Create,
- &IsResourceArray,
- &GetSize,
- &GetAt
-};
-
-} // namespace
-
-const PPB_ResourceArray_Dev_0_1* GetPPB_ResourceArray_Dev_0_1_Thunk() {
- return &g_ppb_resourcearray_dev_thunk_0_1;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_truetype_font_dev_thunk.cc b/chromium/ppapi/thunk/ppb_truetype_font_dev_thunk.cc
index afed58e7b6b..fec60115a20 100644
--- a/chromium/ppapi/thunk/ppb_truetype_font_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_truetype_font_dev_thunk.cc
@@ -2,18 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_truetype_font_dev.idl modified Wed Apr 17 15:38:46 2013.
+// From dev/ppb_truetype_font_dev.idl modified Thu Oct 31 12:30:06 2013.
#include "ppapi/c/dev/ppb_truetype_font_dev.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_truetype_font_api.h"
#include "ppapi/thunk/ppb_truetype_font_singleton_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -113,7 +111,8 @@ const PPB_TrueTypeFont_Dev_0_1 g_ppb_truetypefont_dev_thunk_0_1 = {
} // namespace
-const PPB_TrueTypeFont_Dev_0_1* GetPPB_TrueTypeFont_Dev_0_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_TrueTypeFont_Dev_0_1*
+ GetPPB_TrueTypeFont_Dev_0_1_Thunk() {
return &g_ppb_truetypefont_dev_thunk_0_1;
}
diff --git a/chromium/ppapi/thunk/ppb_udp_socket_thunk.cc b/chromium/ppapi/thunk/ppb_udp_socket_thunk.cc
index 8343d2f8629..212ff93f6fa 100644
--- a/chromium/ppapi/thunk/ppb_udp_socket_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_udp_socket_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_udp_socket.idl modified Thu Jun 20 14:03:55 2013.
+// From ppb_udp_socket.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_udp_socket.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_udp_socket_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -115,7 +113,7 @@ const PPB_UDPSocket_1_0 g_ppb_udpsocket_thunk_1_0 = {
} // namespace
-const PPB_UDPSocket_1_0* GetPPB_UDPSocket_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_UDPSocket_1_0* GetPPB_UDPSocket_1_0_Thunk() {
return &g_ppb_udpsocket_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_uma_private_thunk.cc b/chromium/ppapi/thunk/ppb_uma_private_thunk.cc
new file mode 100644
index 00000000000..299b64369b4
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_uma_private_thunk.cc
@@ -0,0 +1,95 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From private/ppb_uma_private.idl modified Thu Mar 13 11:54:51 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/private/ppb_uma_private.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_uma_singleton_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+void HistogramCustomTimes(PP_Instance instance,
+ struct PP_Var name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count) {
+ VLOG(4) << "PPB_UMA_Private::HistogramCustomTimes()";
+ EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->HistogramCustomTimes(instance,
+ name,
+ sample,
+ min,
+ max,
+ bucket_count);
+}
+
+void HistogramCustomCounts(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count) {
+ VLOG(4) << "PPB_UMA_Private::HistogramCustomCounts()";
+ EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->HistogramCustomCounts(instance,
+ name,
+ sample,
+ min,
+ max,
+ bucket_count);
+}
+
+void HistogramEnumeration(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t boundary_value) {
+ VLOG(4) << "PPB_UMA_Private::HistogramEnumeration()";
+ EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
+ if (enter.failed())
+ return;
+ enter.functions()->HistogramEnumeration(instance,
+ name,
+ sample,
+ boundary_value);
+}
+
+int32_t IsCrashReportingEnabled(PP_Instance instance,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_UMA_Private::IsCrashReportingEnabled()";
+ EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance, callback);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.functions()->IsCrashReportingEnabled(
+ instance,
+ enter.callback()));
+}
+
+const PPB_UMA_Private_0_3 g_ppb_uma_private_thunk_0_3 = {
+ &HistogramCustomTimes,
+ &HistogramCustomCounts,
+ &HistogramEnumeration,
+ &IsCrashReportingEnabled
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_UMA_Private_0_3* GetPPB_UMA_Private_0_3_Thunk() {
+ return &g_ppb_uma_private_thunk_0_3;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_uma_singleton_api.h b/chromium/ppapi/thunk/ppb_uma_singleton_api.h
new file mode 100644
index 00000000000..f8414b91a6e
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_uma_singleton_api.h
@@ -0,0 +1,47 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_UMA_PRIVATE_API_H_
+#define PPAPI_THUNK_PPB_UMA_PRIVATE_API_H_
+
+#include "ppapi/shared_impl/singleton_resource_id.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_UMA_Singleton_API {
+ public:
+ virtual ~PPB_UMA_Singleton_API() {}
+
+ virtual void HistogramCustomTimes(PP_Instance instance,
+ struct PP_Var name,
+ int64_t sample,
+ int64_t min,
+ int64_t max,
+ uint32_t bucket_count) = 0;
+
+ virtual void HistogramCustomCounts(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t min,
+ int32_t max,
+ uint32_t bucket_count) = 0;
+
+ virtual void HistogramEnumeration(PP_Instance instance,
+ struct PP_Var name,
+ int32_t sample,
+ int32_t boundary_value) = 0;
+
+ virtual int32_t IsCrashReportingEnabled(
+ PP_Instance instance,
+ scoped_refptr<TrackedCallback> cc) = 0;
+
+ static const SingletonResourceID kSingletonResourceID = UMA_SINGLETON_ID;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_UMA_PRIVATE_API_H_
diff --git a/chromium/ppapi/thunk/ppb_url_loader_thunk.cc b/chromium/ppapi/thunk/ppb_url_loader_thunk.cc
index 7df78b9177c..22594298f5d 100644
--- a/chromium/ppapi/thunk/ppb_url_loader_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_url_loader_thunk.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_url_loader.idl modified Wed Apr 17 11:16:00 2013.
+// From ppb_url_loader.idl modified Tue Aug 20 08:13:36 2013.
#include <string.h>
@@ -11,10 +11,8 @@
#include "ppapi/c/ppb_url_loader.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_url_loader_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -135,7 +133,7 @@ const PPB_URLLoader_1_0 g_ppb_urlloader_thunk_1_0 = {
} // namespace
-const PPB_URLLoader_1_0* GetPPB_URLLoader_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_URLLoader_1_0* GetPPB_URLLoader_1_0_Thunk() {
return &g_ppb_urlloader_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_url_loader_trusted_thunk.cc b/chromium/ppapi/thunk/ppb_url_loader_trusted_thunk.cc
index 3082f36ed6a..d0c71e1f5ec 100644
--- a/chromium/ppapi/thunk/ppb_url_loader_trusted_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_url_loader_trusted_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From trusted/ppb_url_loader_trusted.idl modified Wed Apr 17 11:16:00 2013.
+// From trusted/ppb_url_loader_trusted.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_url_loader_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -42,7 +40,8 @@ const PPB_URLLoaderTrusted_0_3 g_ppb_urlloadertrusted_thunk_0_3 = {
} // namespace
-const PPB_URLLoaderTrusted_0_3* GetPPB_URLLoaderTrusted_0_3_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_URLLoaderTrusted_0_3*
+ GetPPB_URLLoaderTrusted_0_3_Thunk() {
return &g_ppb_urlloadertrusted_thunk_0_3;
}
diff --git a/chromium/ppapi/thunk/ppb_url_request_info_thunk.cc b/chromium/ppapi/thunk/ppb_url_request_info_thunk.cc
index c6a73972160..7fa058cf5e8 100644
--- a/chromium/ppapi/thunk/ppb_url_request_info_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_url_request_info_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_url_request_info.idl modified Mon Apr 1 08:24:03 2013.
+// From ppb_url_request_info.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_url_request_info.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_url_request_info_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -75,7 +73,8 @@ const PPB_URLRequestInfo_1_0 g_ppb_urlrequestinfo_thunk_1_0 = {
} // namespace
-const PPB_URLRequestInfo_1_0* GetPPB_URLRequestInfo_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_URLRequestInfo_1_0*
+ GetPPB_URLRequestInfo_1_0_Thunk() {
return &g_ppb_urlrequestinfo_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_url_response_info_thunk.cc b/chromium/ppapi/thunk/ppb_url_response_info_thunk.cc
index fe6ef08ed3a..48bc04e5c68 100644
--- a/chromium/ppapi/thunk/ppb_url_response_info_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_url_response_info_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_url_response_info.idl modified Thu Apr 25 13:21:08 2013.
+// From ppb_url_response_info.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_url_response_info.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_url_response_info_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -49,7 +47,8 @@ const PPB_URLResponseInfo_1_0 g_ppb_urlresponseinfo_thunk_1_0 = {
} // namespace
-const PPB_URLResponseInfo_1_0* GetPPB_URLResponseInfo_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_URLResponseInfo_1_0*
+ GetPPB_URLResponseInfo_1_0_Thunk() {
return &g_ppb_urlresponseinfo_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_var_resource_dev_thunk.cc b/chromium/ppapi/thunk/ppb_var_resource_dev_thunk.cc
deleted file mode 100644
index e02ea5d14ec..00000000000
--- a/chromium/ppapi/thunk/ppb_var_resource_dev_thunk.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ppapi/c/dev/ppb_var_resource_dev.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource VarToResource(struct PP_Var var) {
- ProxyAutoLock lock;
- ResourceVar* resource = ResourceVar::FromPPVar(var);
- if (!resource)
- return 0;
- PP_Resource pp_resource = resource->GetPPResource();
- PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource);
- return pp_resource;
-}
-
-struct PP_Var VarFromResource(PP_Resource resource) {
- ProxyAutoLock lock;
- return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(resource);
-}
-
-const PPB_VarResource_Dev_0_1 g_ppb_varresource_dev_0_1_thunk = {
- &VarToResource,
- &VarFromResource
-};
-
-} // namespace
-
-const PPB_VarResource_Dev_0_1* GetPPB_VarResource_Dev_0_1_Thunk() {
- return &g_ppb_varresource_dev_0_1_thunk;
-}
-
-} // namespace thunk
-} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_video_capture_api.h b/chromium/ppapi/thunk/ppb_video_capture_api.h
index baa7e00e641..2c0089e328c 100644
--- a/chromium/ppapi/thunk/ppb_video_capture_api.h
+++ b/chromium/ppapi/thunk/ppb_video_capture_api.h
@@ -23,9 +23,6 @@ class PPB_VideoCapture_API {
public:
virtual ~PPB_VideoCapture_API() {}
- virtual int32_t EnumerateDevices0_2(
- PP_Resource* devices,
- scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
diff --git a/chromium/ppapi/thunk/ppb_video_capture_thunk.cc b/chromium/ppapi/thunk/ppb_video_capture_thunk.cc
index 9d6571e8d2c..83772a53f5c 100644
--- a/chromium/ppapi/thunk/ppb_video_capture_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_video_capture_thunk.cc
@@ -30,17 +30,6 @@ PP_Bool IsVideoCapture(PP_Resource resource) {
return PP_FromBool(enter.succeeded());
}
-int32_t EnumerateDevices0_2(PP_Resource video_capture,
- PP_Resource* devices,
- PP_CompletionCallback callback) {
- EnterVideoCapture enter(video_capture, callback, true);
- if (enter.failed())
- return enter.retval();
-
- return enter.SetResult(enter.object()->EnumerateDevices0_2(devices,
- enter.callback()));
-}
-
int32_t EnumerateDevices(PP_Resource video_capture,
PP_ArrayOutput output,
PP_CompletionCallback callback) {
@@ -112,17 +101,6 @@ void Close(PP_Resource video_capture) {
enter.object()->Close();
}
-const PPB_VideoCapture_Dev_0_2 g_ppb_video_capture_0_2_thunk = {
- &Create,
- &IsVideoCapture,
- &EnumerateDevices0_2,
- &Open,
- &StartCapture,
- &ReuseBuffer,
- &StopCapture,
- &Close
-};
-
const PPB_VideoCapture_Dev_0_3 g_ppb_video_capture_0_3_thunk = {
&Create,
&IsVideoCapture,
@@ -137,10 +115,6 @@ const PPB_VideoCapture_Dev_0_3 g_ppb_video_capture_0_3_thunk = {
} // namespace
-const PPB_VideoCapture_Dev_0_2* GetPPB_VideoCapture_Dev_0_2_Thunk() {
- return &g_ppb_video_capture_0_2_thunk;
-}
-
const PPB_VideoCapture_Dev_0_3* GetPPB_VideoCapture_Dev_0_3_Thunk() {
return &g_ppb_video_capture_0_3_thunk;
}
diff --git a/chromium/ppapi/thunk/ppb_video_decoder_api.h b/chromium/ppapi/thunk/ppb_video_decoder_api.h
index e26c887ebcc..c40845ec1de 100644
--- a/chromium/ppapi/thunk/ppb_video_decoder_api.h
+++ b/chromium/ppapi/thunk/ppb_video_decoder_api.h
@@ -1,12 +1,13 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef PPAPI_THUNK_VIDEO_DECODER_API_H_
-#define PPAPI_THUNK_VIDEO_DECODER_API_H_
+#ifndef PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_
+#define PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/dev/ppb_video_decoder_dev.h"
+#include "ppapi/c/pp_codecs.h"
+#include "ppapi/c/ppb_video_decoder.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
@@ -14,21 +15,26 @@ class TrackedCallback;
namespace thunk {
-class PPB_VideoDecoder_API {
+class PPAPI_THUNK_EXPORT PPB_VideoDecoder_API {
public:
virtual ~PPB_VideoDecoder_API() {}
- virtual int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
+ virtual int32_t Initialize(PP_Resource context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ scoped_refptr<TrackedCallback> callback) = 0;
+ virtual int32_t Decode(uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
scoped_refptr<TrackedCallback> callback) = 0;
- virtual void AssignPictureBuffers(uint32_t no_of_buffers,
- const PP_PictureBuffer_Dev* buffers) = 0;
- virtual void ReusePictureBuffer(int32_t picture_buffer_id) = 0;
+ virtual int32_t GetPicture(PP_VideoPicture* picture,
+ scoped_refptr<TrackedCallback> callback) = 0;
+ virtual void RecyclePicture(const PP_VideoPicture* picture) = 0;
virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0;
- virtual void Destroy() = 0;
};
} // namespace thunk
} // namespace ppapi
-#endif // PPAPI_THUNK_VIDEO_DECODER_API_H_
+#endif // PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_
diff --git a/chromium/ppapi/thunk/ppb_video_decoder_dev_api.h b/chromium/ppapi/thunk/ppb_video_decoder_dev_api.h
new file mode 100644
index 00000000000..d652f5f4df6
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_video_decoder_dev_api.h
@@ -0,0 +1,34 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_VIDEO_DECODER_DEV_API_H_
+#define PPAPI_THUNK_VIDEO_DECODER_DEV_API_H_
+
+#include "base/memory/ref_counted.h"
+#include "ppapi/c/dev/ppb_video_decoder_dev.h"
+
+namespace ppapi {
+
+class TrackedCallback;
+
+namespace thunk {
+
+class PPB_VideoDecoder_Dev_API {
+ public:
+ virtual ~PPB_VideoDecoder_Dev_API() {}
+
+ virtual int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
+ scoped_refptr<TrackedCallback> callback) = 0;
+ virtual void AssignPictureBuffers(uint32_t no_of_buffers,
+ const PP_PictureBuffer_Dev* buffers) = 0;
+ virtual void ReusePictureBuffer(int32_t picture_buffer_id) = 0;
+ virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
+ virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0;
+ virtual void Destroy() = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_VIDEO_DECODER_DEV_API_H_
diff --git a/chromium/ppapi/thunk/ppb_video_decoder_dev_thunk.cc b/chromium/ppapi/thunk/ppb_video_decoder_dev_thunk.cc
new file mode 100644
index 00000000000..bf15dd8abb3
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_video_decoder_dev_thunk.cc
@@ -0,0 +1,96 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
+#include "ppapi/thunk/resource_creation_api.h"
+#include "ppapi/thunk/thunk.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+typedef EnterResource<PPB_VideoDecoder_Dev_API> EnterVideoDecoder;
+
+PP_Resource Create(PP_Instance instance,
+ PP_Resource graphics_3d,
+ PP_VideoDecoder_Profile profile) {
+ EnterResourceCreation enter(instance);
+ if (enter.failed())
+ return 0;
+ return enter.functions()->CreateVideoDecoderDev(
+ instance, graphics_3d, profile);
+}
+
+PP_Bool IsVideoDecoder(PP_Resource resource) {
+ EnterVideoDecoder enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+int32_t Decode(PP_Resource video_decoder,
+ const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
+ PP_CompletionCallback callback) {
+ EnterVideoDecoder enter(video_decoder, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(
+ enter.object()->Decode(bitstream_buffer, enter.callback()));
+}
+
+void AssignPictureBuffers(PP_Resource video_decoder,
+ uint32_t no_of_buffers,
+ const PP_PictureBuffer_Dev* buffers) {
+ EnterVideoDecoder enter(video_decoder, true);
+ if (enter.succeeded())
+ enter.object()->AssignPictureBuffers(no_of_buffers, buffers);
+}
+
+void ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) {
+ EnterVideoDecoder enter(video_decoder, true);
+ if (enter.succeeded())
+ enter.object()->ReusePictureBuffer(picture_buffer_id);
+}
+
+int32_t Flush(PP_Resource video_decoder, PP_CompletionCallback callback) {
+ EnterVideoDecoder enter(video_decoder, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->Flush(enter.callback()));
+}
+
+int32_t Reset(PP_Resource video_decoder, PP_CompletionCallback callback) {
+ EnterVideoDecoder enter(video_decoder, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->Reset(enter.callback()));
+}
+
+void Destroy(PP_Resource video_decoder) {
+ EnterVideoDecoder enter(video_decoder, true);
+ if (enter.succeeded())
+ enter.object()->Destroy();
+}
+
+const PPB_VideoDecoder_Dev g_ppb_videodecoder_dev_thunk = {
+ &Create,
+ &IsVideoDecoder,
+ &Decode,
+ &AssignPictureBuffers,
+ &ReusePictureBuffer,
+ &Flush,
+ &Reset,
+ &Destroy
+};
+
+} // namespace
+
+const PPB_VideoDecoder_Dev_0_16* GetPPB_VideoDecoder_Dev_0_16_Thunk() {
+ return &g_ppb_videodecoder_dev_thunk;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_video_decoder_thunk.cc b/chromium/ppapi/thunk/ppb_video_decoder_thunk.cc
index 2472d8ab321..d84617c696c 100644
--- a/chromium/ppapi/thunk/ppb_video_decoder_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_video_decoder_thunk.cc
@@ -1,95 +1,119 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// From ppb_video_decoder.idl modified Tue May 6 05:06:35 2014.
+
+#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_video_decoder.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_video_decoder_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
namespace ppapi {
namespace thunk {
namespace {
-typedef EnterResource<PPB_VideoDecoder_API> EnterVideoDecoder;
-
-PP_Resource Create(PP_Instance instance,
- PP_Resource graphics_3d,
- PP_VideoDecoder_Profile profile) {
+PP_Resource Create(PP_Instance instance) {
+ VLOG(4) << "PPB_VideoDecoder::Create()";
EnterResourceCreation enter(instance);
if (enter.failed())
return 0;
- return enter.functions()->CreateVideoDecoder(instance, graphics_3d, profile);
+ return enter.functions()->CreateVideoDecoder(instance);
}
PP_Bool IsVideoDecoder(PP_Resource resource) {
- EnterVideoDecoder enter(resource, false);
+ VLOG(4) << "PPB_VideoDecoder::IsVideoDecoder()";
+ EnterResource<PPB_VideoDecoder_API> enter(resource, false);
return PP_FromBool(enter.succeeded());
}
+int32_t Initialize(PP_Resource video_decoder,
+ PP_Resource graphics3d_context,
+ PP_VideoProfile profile,
+ PP_Bool allow_software_fallback,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_VideoDecoder::Initialize()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->Initialize(graphics3d_context,
+ profile,
+ allow_software_fallback,
+ enter.callback()));
+}
+
int32_t Decode(PP_Resource video_decoder,
- const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
- PP_CompletionCallback callback) {
- EnterVideoDecoder enter(video_decoder, callback, true);
+ uint32_t decode_id,
+ uint32_t size,
+ const void* buffer,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_VideoDecoder::Decode()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
if (enter.failed())
return enter.retval();
- return enter.SetResult(enter.object()->Decode(bitstream_buffer,
+ return enter.SetResult(enter.object()->Decode(decode_id,
+ size,
+ buffer,
enter.callback()));
}
-void AssignPictureBuffers(PP_Resource video_decoder,
- uint32_t no_of_buffers,
- const PP_PictureBuffer_Dev* buffers) {
- EnterVideoDecoder enter(video_decoder, true);
- if (enter.succeeded())
- enter.object()->AssignPictureBuffers(no_of_buffers, buffers);
+int32_t GetPicture(PP_Resource video_decoder,
+ struct PP_VideoPicture* picture,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_VideoDecoder::GetPicture()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
+ if (enter.failed())
+ return enter.retval();
+ return enter.SetResult(enter.object()->GetPicture(picture, enter.callback()));
}
-void ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) {
- EnterVideoDecoder enter(video_decoder, true);
- if (enter.succeeded())
- enter.object()->ReusePictureBuffer(picture_buffer_id);
+void RecyclePicture(PP_Resource video_decoder,
+ const struct PP_VideoPicture* picture) {
+ VLOG(4) << "PPB_VideoDecoder::RecyclePicture()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, true);
+ if (enter.failed())
+ return;
+ enter.object()->RecyclePicture(picture);
}
-int32_t Flush(PP_Resource video_decoder, PP_CompletionCallback callback) {
- EnterVideoDecoder enter(video_decoder, callback, true);
+int32_t Flush(PP_Resource video_decoder,
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_VideoDecoder::Flush()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
if (enter.failed())
return enter.retval();
return enter.SetResult(enter.object()->Flush(enter.callback()));
}
int32_t Reset(PP_Resource video_decoder,
- PP_CompletionCallback callback) {
- EnterVideoDecoder enter(video_decoder, callback, true);
+ struct PP_CompletionCallback callback) {
+ VLOG(4) << "PPB_VideoDecoder::Reset()";
+ EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
if (enter.failed())
return enter.retval();
return enter.SetResult(enter.object()->Reset(enter.callback()));
}
-void Destroy(PP_Resource video_decoder) {
- EnterVideoDecoder enter(video_decoder, true);
- if (enter.succeeded())
- enter.object()->Destroy();
-}
-
-const PPB_VideoDecoder_Dev g_ppb_videodecoder_thunk = {
+const PPB_VideoDecoder_0_1 g_ppb_videodecoder_thunk_0_1 = {
&Create,
&IsVideoDecoder,
+ &Initialize,
&Decode,
- &AssignPictureBuffers,
- &ReusePictureBuffer,
+ &GetPicture,
+ &RecyclePicture,
&Flush,
- &Reset,
- &Destroy
+ &Reset
};
} // namespace
-const PPB_VideoDecoder_Dev_0_16* GetPPB_VideoDecoder_Dev_0_16_Thunk() {
- return &g_ppb_videodecoder_thunk;
+PPAPI_THUNK_EXPORT const PPB_VideoDecoder_0_1*
+ GetPPB_VideoDecoder_0_1_Thunk() {
+ return &g_ppb_videodecoder_thunk_0_1;
}
} // namespace thunk
diff --git a/chromium/ppapi/thunk/ppb_video_frame_api.h b/chromium/ppapi/thunk/ppb_video_frame_api.h
new file mode 100644
index 00000000000..105d72b9988
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_video_frame_api.h
@@ -0,0 +1,36 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
+#define PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
+
+#include "ppapi/c/ppb_video_frame.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+
+namespace ppapi {
+
+union MediaStreamBuffer;
+
+namespace thunk {
+
+class PPAPI_THUNK_EXPORT PPB_VideoFrame_API {
+ public:
+ virtual ~PPB_VideoFrame_API() {}
+ virtual PP_TimeDelta GetTimestamp() = 0;
+ virtual void SetTimestamp(PP_TimeDelta timestamp) = 0;
+ virtual PP_VideoFrame_Format GetFormat() = 0;
+ virtual PP_Bool GetSize(PP_Size* size) = 0;
+ virtual void* GetDataBuffer() = 0;
+ virtual uint32_t GetDataBufferSize() = 0;
+
+ // Methods used by Pepper internal implementation only.
+ virtual MediaStreamBuffer* GetBuffer() = 0;
+ virtual int32_t GetBufferIndex() = 0;
+ virtual void Invalidate() = 0;
+};
+
+} // namespace thunk
+} // namespace ppapi
+
+#endif // PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
diff --git a/chromium/ppapi/thunk/ppb_video_frame_thunk.cc b/chromium/ppapi/thunk/ppb_video_frame_thunk.cc
new file mode 100644
index 00000000000..762e260e56b
--- /dev/null
+++ b/chromium/ppapi/thunk/ppb_video_frame_thunk.cc
@@ -0,0 +1,90 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// From ppb_video_frame.idl modified Mon Jan 13 12:02:23 2014.
+
+#include "ppapi/c/pp_errors.h"
+#include "ppapi/c/ppb_video_frame.h"
+#include "ppapi/shared_impl/tracked_callback.h"
+#include "ppapi/thunk/enter.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
+#include "ppapi/thunk/ppb_video_frame_api.h"
+
+namespace ppapi {
+namespace thunk {
+
+namespace {
+
+PP_Bool IsVideoFrame(PP_Resource resource) {
+ VLOG(4) << "PPB_VideoFrame::IsVideoFrame()";
+ EnterResource<PPB_VideoFrame_API> enter(resource, false);
+ return PP_FromBool(enter.succeeded());
+}
+
+PP_TimeDelta GetTimestamp(PP_Resource frame) {
+ VLOG(4) << "PPB_VideoFrame::GetTimestamp()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return 0.0;
+ return enter.object()->GetTimestamp();
+}
+
+void SetTimestamp(PP_Resource frame, PP_TimeDelta timestamp) {
+ VLOG(4) << "PPB_VideoFrame::SetTimestamp()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return;
+ enter.object()->SetTimestamp(timestamp);
+}
+
+PP_VideoFrame_Format GetFormat(PP_Resource frame) {
+ VLOG(4) << "PPB_VideoFrame::GetFormat()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return PP_VIDEOFRAME_FORMAT_UNKNOWN;
+ return enter.object()->GetFormat();
+}
+
+PP_Bool GetSize(PP_Resource frame, struct PP_Size* size) {
+ VLOG(4) << "PPB_VideoFrame::GetSize()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return PP_FALSE;
+ return enter.object()->GetSize(size);
+}
+
+void* GetDataBuffer(PP_Resource frame) {
+ VLOG(4) << "PPB_VideoFrame::GetDataBuffer()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return NULL;
+ return enter.object()->GetDataBuffer();
+}
+
+uint32_t GetDataBufferSize(PP_Resource frame) {
+ VLOG(4) << "PPB_VideoFrame::GetDataBufferSize()";
+ EnterResource<PPB_VideoFrame_API> enter(frame, true);
+ if (enter.failed())
+ return 0;
+ return enter.object()->GetDataBufferSize();
+}
+
+const PPB_VideoFrame_0_1 g_ppb_videoframe_thunk_0_1 = {
+ &IsVideoFrame,
+ &GetTimestamp,
+ &SetTimestamp,
+ &GetFormat,
+ &GetSize,
+ &GetDataBuffer,
+ &GetDataBufferSize
+};
+
+} // namespace
+
+PPAPI_THUNK_EXPORT const PPB_VideoFrame_0_1* GetPPB_VideoFrame_0_1_Thunk() {
+ return &g_ppb_videoframe_thunk_0_1;
+}
+
+} // namespace thunk
+} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_view_api.h b/chromium/ppapi/thunk/ppb_view_api.h
index 756134422cb..8fb9386e073 100644
--- a/chromium/ppapi/thunk/ppb_view_api.h
+++ b/chromium/ppapi/thunk/ppb_view_api.h
@@ -27,6 +27,7 @@ class PPAPI_THUNK_EXPORT PPB_View_API {
virtual PP_Bool GetClipRect(PP_Rect* clip) const = 0;
virtual float GetDeviceScale() const = 0;
virtual float GetCSSScale() const = 0;
+ virtual PP_Bool GetScrollOffset(PP_Point* offset) const = 0;
};
} // namespace thunk
diff --git a/chromium/ppapi/thunk/ppb_view_dev_thunk.cc b/chromium/ppapi/thunk/ppb_view_dev_thunk.cc
index d3a637451ae..7ec98f924fb 100644
--- a/chromium/ppapi/thunk/ppb_view_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_view_dev_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_view_dev.idl modified Thu Mar 28 11:12:59 2013.
+// From dev/ppb_view_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_view_dev.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_view_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -41,7 +39,7 @@ const PPB_View_Dev_0_1 g_ppb_view_dev_thunk_0_1 = {
} // namespace
-const PPB_View_Dev_0_1* GetPPB_View_Dev_0_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_View_Dev_0_1* GetPPB_View_Dev_0_1_Thunk() {
return &g_ppb_view_dev_thunk_0_1;
}
diff --git a/chromium/ppapi/thunk/ppb_view_thunk.cc b/chromium/ppapi/thunk/ppb_view_thunk.cc
index 3014099dda8..c6bd195cbde 100644
--- a/chromium/ppapi/thunk/ppb_view_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_view_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_view.idl modified Wed Apr 10 14:15:15 2013.
+// From ppb_view.idl modified Wed Jun 11 15:42:26 2014.
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_view.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_view_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -80,6 +78,14 @@ float GetCSSScale(PP_Resource resource) {
return enter.object()->GetCSSScale();
}
+PP_Bool GetScrollOffset(PP_Resource resource, struct PP_Point* offset) {
+ VLOG(4) << "PPB_View::GetScrollOffset()";
+ EnterResource<PPB_View_API> enter(resource, true);
+ if (enter.failed())
+ return PP_FALSE;
+ return enter.object()->GetScrollOffset(offset);
+}
+
const PPB_View_1_0 g_ppb_view_thunk_1_0 = {
&IsView,
&GetRect,
@@ -100,15 +106,31 @@ const PPB_View_1_1 g_ppb_view_thunk_1_1 = {
&GetCSSScale
};
+const PPB_View_1_2 g_ppb_view_thunk_1_2 = {
+ &IsView,
+ &GetRect,
+ &IsFullscreen,
+ &IsVisible,
+ &IsPageVisible,
+ &GetClipRect,
+ &GetDeviceScale,
+ &GetCSSScale,
+ &GetScrollOffset
+};
+
} // namespace
-const PPB_View_1_0* GetPPB_View_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_View_1_0* GetPPB_View_1_0_Thunk() {
return &g_ppb_view_thunk_1_0;
}
-const PPB_View_1_1* GetPPB_View_1_1_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_View_1_1* GetPPB_View_1_1_Thunk() {
return &g_ppb_view_thunk_1_1;
}
+PPAPI_THUNK_EXPORT const PPB_View_1_2* GetPPB_View_1_2_Thunk() {
+ return &g_ppb_view_thunk_1_2;
+}
+
} // namespace thunk
} // namespace ppapi
diff --git a/chromium/ppapi/thunk/ppb_websocket_thunk.cc b/chromium/ppapi/thunk/ppb_websocket_thunk.cc
index 10406657383..fa7ed561643 100644
--- a/chromium/ppapi/thunk/ppb_websocket_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_websocket_thunk.cc
@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From ppb_websocket.idl modified Thu Feb 28 11:58:17 2013.
+// From ppb_websocket.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/ppb_websocket.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_websocket_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -161,7 +159,7 @@ const PPB_WebSocket_1_0 g_ppb_websocket_thunk_1_0 = {
} // namespace
-const PPB_WebSocket_1_0* GetPPB_WebSocket_1_0_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_WebSocket_1_0* GetPPB_WebSocket_1_0_Thunk() {
return &g_ppb_websocket_thunk_1_0;
}
diff --git a/chromium/ppapi/thunk/ppb_widget_dev_thunk.cc b/chromium/ppapi/thunk/ppb_widget_dev_thunk.cc
index 2232371a69e..2b27d048dba 100644
--- a/chromium/ppapi/thunk/ppb_widget_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_widget_dev_thunk.cc
@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_widget_dev.idl modified Tue Apr 16 11:25:44 2013.
+// From dev/ppb_widget_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_widget_dev.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
#include "ppapi/thunk/ppb_widget_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -85,11 +83,11 @@ const PPB_Widget_Dev_0_4 g_ppb_widget_dev_thunk_0_4 = {
} // namespace
-const PPB_Widget_Dev_0_3* GetPPB_Widget_Dev_0_3_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Widget_Dev_0_3* GetPPB_Widget_Dev_0_3_Thunk() {
return &g_ppb_widget_dev_thunk_0_3;
}
-const PPB_Widget_Dev_0_4* GetPPB_Widget_Dev_0_4_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Widget_Dev_0_4* GetPPB_Widget_Dev_0_4_Thunk() {
return &g_ppb_widget_dev_thunk_0_4;
}
diff --git a/chromium/ppapi/thunk/ppb_zoom_dev_thunk.cc b/chromium/ppapi/thunk/ppb_zoom_dev_thunk.cc
index ab0c874d107..6ff9fac6d80 100644
--- a/chromium/ppapi/thunk/ppb_zoom_dev_thunk.cc
+++ b/chromium/ppapi/thunk/ppb_zoom_dev_thunk.cc
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// From dev/ppb_zoom_dev.idl modified Wed Apr 24 13:31:08 2013.
+// From dev/ppb_zoom_dev.idl modified Tue Aug 20 08:13:36 2013.
#include "ppapi/c/dev/ppb_zoom_dev.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/shared_impl/tracked_callback.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppapi_thunk_export.h"
namespace ppapi {
namespace thunk {
@@ -44,7 +42,7 @@ const PPB_Zoom_Dev_0_2 g_ppb_zoom_dev_thunk_0_2 = {
} // namespace
-const PPB_Zoom_Dev_0_2* GetPPB_Zoom_Dev_0_2_Thunk() {
+PPAPI_THUNK_EXPORT const PPB_Zoom_Dev_0_2* GetPPB_Zoom_Dev_0_2_Thunk() {
return &g_ppb_zoom_dev_thunk_0_2;
}
diff --git a/chromium/ppapi/thunk/resource_creation_api.h b/chromium/ppapi/thunk/resource_creation_api.h
index 61eaa973f02..90261667326 100644
--- a/chromium/ppapi/thunk/resource_creation_api.h
+++ b/chromium/ppapi/thunk/resource_creation_api.h
@@ -63,13 +63,21 @@ class ResourceCreationAPI {
int32_t target_segment,
uint32_t selection_start,
uint32_t selection_end) = 0;
- virtual PP_Resource CreateKeyboardInputEvent(
+ virtual PP_Resource CreateKeyboardInputEvent_1_0(
PP_Instance instance,
PP_InputEvent_Type type,
PP_TimeTicks time_stamp,
uint32_t modifiers,
uint32_t key_code,
struct PP_Var character_text) = 0;
+ virtual PP_Resource CreateKeyboardInputEvent_1_2(
+ PP_Instance instance,
+ PP_InputEvent_Type type,
+ PP_TimeTicks time_stamp,
+ uint32_t modifiers,
+ uint32_t key_code,
+ struct PP_Var character_text,
+ struct PP_Var code) = 0;
virtual PP_Resource CreateMouseInputEvent(
PP_Instance instance,
PP_InputEvent_Type type,
@@ -84,9 +92,6 @@ class ResourceCreationAPI {
PP_InputEvent_Type type,
PP_TimeTicks time_stamp,
uint32_t modifiers) = 0;
- virtual PP_Resource CreateResourceArray(PP_Instance instance,
- const PP_Resource elements[],
- uint32_t size) = 0;
virtual PP_Resource CreateTrueTypeFont(
PP_Instance instance,
const PP_TrueTypeFontDesc_Dev* desc) = 0;
@@ -114,6 +119,7 @@ class ResourceCreationAPI {
virtual PP_Resource CreateAudioConfig(PP_Instance instance,
PP_AudioSampleRate sample_rate,
uint32_t sample_frame_count) = 0;
+ virtual PP_Resource CreateCompositor(PP_Instance instance) = 0;
virtual PP_Resource CreateFileChooser(PP_Instance instance,
PP_FileChooserMode_Dev mode,
const PP_Var& accept_types) = 0;
@@ -136,6 +142,7 @@ class ResourceCreationAPI {
PP_ImageDataFormat format,
const PP_Size* size,
PP_Bool init_to_zero) = 0;
+ virtual PP_Resource CreateMediaStreamVideoTrack(PP_Instance instance) = 0;
virtual PP_Resource CreateNetAddressFromIPv4Address(
PP_Instance instance,
const PP_NetAddress_IPv4* ipv4_addr) = 0;
@@ -154,6 +161,7 @@ class ResourceCreationAPI {
virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instace) = 0;
virtual PP_Resource CreateUDPSocket(PP_Instance instace) = 0;
virtual PP_Resource CreateUDPSocketPrivate(PP_Instance instace) = 0;
+ virtual PP_Resource CreateVideoDecoder(PP_Instance instance) = 0;
virtual PP_Resource CreateVideoDestination(PP_Instance instance) = 0;
virtual PP_Resource CreateVideoSource(PP_Instance instance) = 0;
virtual PP_Resource CreateWebSocket(PP_Instance instance) = 0;
@@ -179,7 +187,7 @@ class ResourceCreationAPI {
PP_Bool vertical) = 0;
virtual PP_Resource CreateTalk(PP_Instance instance) = 0;
virtual PP_Resource CreateVideoCapture(PP_Instance instance) = 0;
- virtual PP_Resource CreateVideoDecoder(
+ virtual PP_Resource CreateVideoDecoderDev(
PP_Instance instance,
PP_Resource context3d_id,
PP_VideoDecoder_Profile profile) = 0;
diff --git a/chromium/ppapi/thunk/thunk.h b/chromium/ppapi/thunk/thunk.h
index f454be7368b..3d4a77f3f77 100644
--- a/chromium/ppapi/thunk/thunk.h
+++ b/chromium/ppapi/thunk/thunk.h
@@ -12,23 +12,20 @@
//
// const PPB_Foo* ppapi::thunk::GetPPB_Foo_Thunk();
//
-#define IFACE(api_name, interface_name, InterfaceType) \
+#define PROXIED_IFACE(interface_name, InterfaceType) \
struct InterfaceType; \
namespace ppapi { namespace thunk { \
PPAPI_THUNK_EXPORT const InterfaceType* Get##InterfaceType##_Thunk(); \
} }
-#define PROXIED_IFACE IFACE
-#define UNPROXIED_IFACE IFACE
#include "ppapi/thunk/interfaces_ppb_private.h"
#include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
#include "ppapi/thunk/interfaces_ppb_private_flash.h"
#include "ppapi/thunk/interfaces_ppb_public_stable.h"
#include "ppapi/thunk/interfaces_ppb_public_dev.h"
+#include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
-#undef UNPROXIED_IFACE
#undef PROXIED_IFACE
-#undef IFACE
namespace ppapi {
namespace thunk {
diff --git a/chromium/ppapi/tools/pepper_hash_for_uma.cc b/chromium/ppapi/tools/pepper_hash_for_uma.cc
new file mode 100644
index 00000000000..6e38cfdd4b6
--- /dev/null
+++ b/chromium/ppapi/tools/pepper_hash_for_uma.cc
@@ -0,0 +1,37 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// This is a utility executable used for generating hashes for pepper
+// interfaces for inclusion in tools/metrics/histograms/histograms.xml. Every
+// interface-version pair must have a corresponding entry in the enum there.
+//
+// The hashing logic here must match the hashing logic at
+// ppapi/proxy/interface_list.cc.
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "base/hash.h"
+#include "base/macros.h"
+
+int main(int argc, char **argv) {
+ if (argc < 2) {
+ fprintf(stderr, "Usage: %s <interface1> <interface2> <...>\n", argv[0]);
+ fprintf(stderr, "\n");
+ fprintf(stderr, "Prints hashes for interface names.\n");
+ fprintf(stderr, "Example: %s \"PPB_Var;1.1\" \"PPB_FileIO;1.2\"\n",
+ argv[0]);
+ return 1;
+ }
+ for (int i = 1; i < argc; i++) {
+ uint32 data = base::Hash(argv[i], strlen(argv[i]));
+
+ // Strip off the signed bit because UMA doesn't support negative values,
+ // but takes a signed int as input.
+ int hash = static_cast<int>(data & 0x7fffffff);
+ printf("<int value=\"%d\" label=\"%s\"/>\n", hash, argv[i]);
+ }
+ return 0;
+}
diff --git a/chromium/ppapi/tools/ppapi_tools.gyp b/chromium/ppapi/tools/ppapi_tools.gyp
new file mode 100644
index 00000000000..67986ff19a2
--- /dev/null
+++ b/chromium/ppapi/tools/ppapi_tools.gyp
@@ -0,0 +1,18 @@
+# Copyright (c) 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+{
+ 'targets': [
+ {
+ 'target_name': 'pepper_hash_for_uma',
+ 'type': 'executable',
+ 'dependencies': [
+ '../../base/base.gyp:base'
+ ],
+ 'sources': [
+ 'pepper_hash_for_uma.cc',
+ ],
+ }
+ ]
+}
diff --git a/chromium/ppapi/utility/completion_callback_factory.h b/chromium/ppapi/utility/completion_callback_factory.h
index 3af860a098b..f755c5c2e12 100644
--- a/chromium/ppapi/utility/completion_callback_factory.h
+++ b/chromium/ppapi/utility/completion_callback_factory.h
@@ -185,10 +185,6 @@ template <typename T> struct TypeUnwrapper<const T&> {
/// is to accept your output argument as a non-const reference and to swap()
/// the argument with a vector of your own to store it. This means you don't
/// have to copy the buffer to consume it.
-///
-/// NewExtCallbackWithOutput is similar to NewCallbackWithOutput. It creates
-/// ext::ExtCompletionCallbackWithOutput instances which are used by APIs within
-/// the pp::ext namespace.
template <typename T, typename ThreadTraits = ThreadSafeThreadTraits>
class CompletionCallbackFactory {
public:
@@ -295,33 +291,9 @@ class CompletionCallbackFactory {
CompletionCallbackWithOutput<
typename internal::TypeUnwrapper<Output>::StorageType>
NewCallbackWithOutput(void (T::*method)(int32_t, Output)) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef CompletionCallbackWithOutput<OutputStorageType> CallbackType;
- typedef DispatcherWithOutput0<
- typename CallbackType::TraitsType,
- OutputStorageType,
- void (T::*)(int32_t, Output)> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method));
- }
-
- /// Similar to NewCallbackWithOutput(), but returns an
- /// <code>ext::ExtCompletionCallbackWithOutput</code>.
- template <typename Output>
- ext::ExtCompletionCallbackWithOutput<
- typename internal::TypeUnwrapper<Output>::StorageType>
- NewExtCallbackWithOutput(void (T::*method)(int32_t, Output)) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef ext::ExtCompletionCallbackWithOutput<OutputStorageType>
- CallbackType;
- typedef DispatcherWithOutput0<
- typename CallbackType::TraitsType,
- OutputStorageType,
- void (T::*)(int32_t, Output)> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method));
+ return NewCallbackWithOutputHelper(new DispatcherWithOutput0<
+ typename internal::TypeUnwrapper<Output>::StorageType,
+ void (T::*)(int32_t, Output)>(method));
}
/// NewCallback() allocates a new, single-use <code>CompletionCallback</code>.
@@ -381,36 +353,10 @@ class CompletionCallbackFactory {
typename internal::TypeUnwrapper<Output>::StorageType>
NewCallbackWithOutput(void (T::*method)(int32_t, Output, A),
const A& a) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef CompletionCallbackWithOutput<OutputStorageType> CallbackType;
- typedef DispatcherWithOutput1<
- typename CallbackType::TraitsType,
- OutputStorageType,
- void (T::*)(int32_t, Output, A),
- typename internal::TypeUnwrapper<A>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a));
- }
-
- /// Similar to NewCallbackWithOutput(), but returns an
- /// <code>ext::ExtCompletionCallbackWithOutput</code>.
- template <typename Output, typename A>
- ext::ExtCompletionCallbackWithOutput<
- typename internal::TypeUnwrapper<Output>::StorageType>
- NewExtCallbackWithOutput(void (T::*method)(int32_t, Output, A),
- const A& a) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef ext::ExtCompletionCallbackWithOutput<OutputStorageType>
- CallbackType;
- typedef DispatcherWithOutput1<
- typename CallbackType::TraitsType,
- OutputStorageType,
+ return NewCallbackWithOutputHelper(new DispatcherWithOutput1<
+ typename internal::TypeUnwrapper<Output>::StorageType,
void (T::*)(int32_t, Output, A),
- typename internal::TypeUnwrapper<A>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a));
+ typename internal::TypeUnwrapper<A>::StorageType>(method, a));
}
/// NewCallback() allocates a new, single-use
@@ -481,39 +427,11 @@ class CompletionCallbackFactory {
NewCallbackWithOutput(void (T::*method)(int32_t, Output, A, B),
const A& a,
const B& b) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef CompletionCallbackWithOutput<OutputStorageType> CallbackType;
- typedef DispatcherWithOutput2<
- typename CallbackType::TraitsType,
- OutputStorageType,
- void (T::*)(int32_t, Output, A, B),
- typename internal::TypeUnwrapper<A>::StorageType,
- typename internal::TypeUnwrapper<B>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a, b));
- }
-
- /// Similar to NewCallbackWithOutput(), but returns an
- /// <code>ext::ExtCompletionCallbackWithOutput</code>.
- template <typename Output, typename A, typename B>
- ext::ExtCompletionCallbackWithOutput<
- typename internal::TypeUnwrapper<Output>::StorageType>
- NewExtCallbackWithOutput(void (T::*method)(int32_t, Output, A, B),
- const A& a,
- const B& b) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef ext::ExtCompletionCallbackWithOutput<OutputStorageType>
- CallbackType;
- typedef DispatcherWithOutput2<
- typename CallbackType::TraitsType,
- OutputStorageType,
+ return NewCallbackWithOutputHelper(new DispatcherWithOutput2<
+ typename internal::TypeUnwrapper<Output>::StorageType,
void (T::*)(int32_t, Output, A, B),
typename internal::TypeUnwrapper<A>::StorageType,
- typename internal::TypeUnwrapper<B>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a, b));
+ typename internal::TypeUnwrapper<B>::StorageType>(method, a, b));
}
/// NewCallback() allocates a new, single-use
@@ -598,42 +516,12 @@ class CompletionCallbackFactory {
const A& a,
const B& b,
const C& c) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef CompletionCallbackWithOutput<OutputStorageType> CallbackType;
- typedef DispatcherWithOutput3<
- typename CallbackType::TraitsType,
- OutputStorageType,
- void (T::*)(int32_t, Output, A, B, C),
- typename internal::TypeUnwrapper<A>::StorageType,
- typename internal::TypeUnwrapper<B>::StorageType,
- typename internal::TypeUnwrapper<C>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a, b, c));
- }
-
- /// Similar to NewCallbackWithOutput(), but returns an
- /// <code>ext::ExtCompletionCallbackWithOutput</code>.
- template <typename Output, typename A, typename B, typename C>
- ext::ExtCompletionCallbackWithOutput<
- typename internal::TypeUnwrapper<Output>::StorageType>
- NewExtCallbackWithOutput(void (T::*method)(int32_t, Output, A, B, C),
- const A& a,
- const B& b,
- const C& c) {
- typedef typename internal::TypeUnwrapper<Output>::StorageType
- OutputStorageType;
- typedef ext::ExtCompletionCallbackWithOutput<OutputStorageType>
- CallbackType;
- typedef DispatcherWithOutput3<
- typename CallbackType::TraitsType,
- OutputStorageType,
+ return NewCallbackWithOutputHelper(new DispatcherWithOutput3<
+ typename internal::TypeUnwrapper<Output>::StorageType,
void (T::*)(int32_t, Output, A, B, C),
typename internal::TypeUnwrapper<A>::StorageType,
typename internal::TypeUnwrapper<B>::StorageType,
- typename internal::TypeUnwrapper<C>::StorageType> DispatcherType;
- return NewCallbackWithOutputHelper<CallbackType>(
- new DispatcherType(method, a, b, c));
+ typename internal::TypeUnwrapper<C>::StorageType>(method, a, b, c));
}
private:
@@ -720,10 +608,11 @@ class CompletionCallbackFactory {
Method method_;
};
- template <typename Traits, typename Output, typename Method>
+ template <typename Output, typename Method>
class DispatcherWithOutput0 {
public:
typedef Output OutputType;
+ typedef internal::CallbackOutputTraits<Output> Traits;
DispatcherWithOutput0()
: method_(NULL),
@@ -772,10 +661,11 @@ class CompletionCallbackFactory {
A a_;
};
- template <typename Traits, typename Output, typename Method, typename A>
+ template <typename Output, typename Method, typename A>
class DispatcherWithOutput1 {
public:
typedef Output OutputType;
+ typedef internal::CallbackOutputTraits<Output> Traits;
DispatcherWithOutput1()
: method_(NULL),
@@ -830,14 +720,11 @@ class CompletionCallbackFactory {
B b_;
};
- template <typename Traits,
- typename Output,
- typename Method,
- typename A,
- typename B>
+ template <typename Output, typename Method, typename A, typename B>
class DispatcherWithOutput2 {
public:
typedef Output OutputType;
+ typedef internal::CallbackOutputTraits<Output> Traits;
DispatcherWithOutput2()
: method_(NULL),
@@ -898,15 +785,12 @@ class CompletionCallbackFactory {
C c_;
};
- template <typename Traits,
- typename Output,
- typename Method,
- typename A,
- typename B,
+ template <typename Output, typename Method, typename A, typename B,
typename C>
class DispatcherWithOutput3 {
public:
typedef Output OutputType;
+ typedef internal::CallbackOutputTraits<Output> Traits;
DispatcherWithOutput3()
: method_(NULL),
@@ -973,17 +857,20 @@ class CompletionCallbackFactory {
}
// Takes ownership of the dispatcher pointer, which should be heap allocated.
- template <typename Callback, typename Dispatcher>
- Callback NewCallbackWithOutputHelper(Dispatcher* dispatcher) {
+ template <typename Dispatcher> CompletionCallbackWithOutput<
+ typename internal::TypeUnwrapper<
+ typename Dispatcher::OutputType>::StorageType>
+ NewCallbackWithOutputHelper(Dispatcher* dispatcher) {
typename ThreadTraits::AutoLock lock(lock_);
PP_DCHECK(object_); // Expects a non-null object!
CallbackData<Dispatcher>* data =
new CallbackData<Dispatcher>(back_pointer_, dispatcher);
- return Callback(&CallbackData<Dispatcher>::Thunk,
- data,
- data->dispatcher()->output());
+ return CompletionCallbackWithOutput<typename Dispatcher::OutputType>(
+ &CallbackData<Dispatcher>::Thunk,
+ data,
+ data->dispatcher()->output());
}
// Disallowed:
diff --git a/chromium/ppapi/utility/websocket/websocket_api.cc b/chromium/ppapi/utility/websocket/websocket_api.cc
index c251539365c..82a320e5adb 100644
--- a/chromium/ppapi/utility/websocket/websocket_api.cc
+++ b/chromium/ppapi/utility/websocket/websocket_api.cc
@@ -24,7 +24,7 @@ class WebSocketAPI::Implement : public WebSocket {
Implement(Instance* instance, WebSocketAPI* api)
: WebSocket(instance),
api_(api),
- callback_factory_(PP_ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
+ callback_factory_(this) {
}
virtual ~Implement() {}
@@ -104,7 +104,7 @@ class WebSocketAPI::Implement : public WebSocket {
};
WebSocketAPI::WebSocketAPI(Instance* instance)
- : impl_(new Implement(instance, PP_ALLOW_THIS_IN_INITIALIZER_LIST(this))) {
+ : impl_(new Implement(instance, this)) {
}
WebSocketAPI::~WebSocketAPI() {